<?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>234081</bug_id>
          
          <creation_ts>2021-12-09 06:43:10 -0800</creation_ts>
          <short_desc>REGRESSION(r286764): broke the build</short_desc>
          <delta_ts>2021-12-09 08:13:02 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>233988</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1822108</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-12-09 06:43:10 -0800</bug_when>
    <thetext>https://commits.webkit.org/r286764 introduced a regression:
broke the build

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822110</commentid>
    <comment_count>1</comment_count>
      <attachid>446541</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-12-09 06:43:23 -0800</bug_when>
    <thetext>Created attachment 446541
REVERT of r286764

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822113</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-09 06:47:42 -0800</bug_when>
    <thetext>Committed r286777 (245018@main): &lt;https://commits.webkit.org/245018@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 446541.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822114</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-09 06:48:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/86269244&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446541</attachid>
            <date>2021-12-09 06:43:23 -0800</date>
            <delta_ts>2021-12-09 06:47:45 -0800</delta_ts>
            <desc>REVERT of r286764</desc>
            <filename>bug-234081-20211209064322.patch</filename>
            <type>text/plain</type>
            <size>70400</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2Nzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVmZTQ4YjRiZjBjOTMxZmJl
MWZiZDU0MTc3NzRjNWFjYzYyZDQwYjAuLmQ4MmQ1NGYxZjFlNzljOWY4YjVlY2RkZTE5MWMxNTE0
YmU2MWE3YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTItMDkgIENvbW1pdCBR
dWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJl
dmVydGluZyByMjg2NzY0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM0MDgxCisKKyAgICAgICAgYnJva2UgdGhlIGJ1aWxkCisKKyAgICAgICAgUmV2
ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJBZGQgYWJpbGl0eSB0byBpbmplY3QgbWVzc2Fn
ZXMgaW50byB3ZWJwdXNoZCIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMzk4OAorICAgICAgICBodHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy9yMjg2
NzY0CisKIDIwMjEtMTItMDkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIENvcHkgU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIgZXJyb3Igd2hlbiBm
YWlsaW5nIGl0cyBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NvbmZpZ3VyYXRpb25zL3dlYnB1c2h0b29sLnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9D
b25maWd1cmF0aW9ucy93ZWJwdXNodG9vbC54Y2NvbmZpZwppbmRleCA3Y2I3Zjg1ZWI2ZjQ2Y2I0
OWIxMDJlZTA3YWQxMDE5MTMyZjg4MGIxLi43MzcxYTMzNzM0ZjdhZjgzNjI3NDk5OTRjNDFiYTEw
NGZlMmZjYjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL3dlYnB1
c2h0b29sLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvd2VicHVz
aHRvb2wueGNjb25maWcKQEAgLTI5LDcgKzI5LDcgQEAgU0tJUF9JTlNUQUxMID0gWUVTOwogRVhD
TFVERURfU09VUkNFX0ZJTEVfTkFNRVNbc2RrPWFwcGxldHYqXSA9ICo7CiBFWENMVURFRF9TT1VS
Q0VfRklMRV9OQU1FU1tzZGs9d2F0Y2gqXSA9ICo7CiAKLU9USEVSX0xERkxBR1MgPSAtZnJhbWV3
b3JrIFdlYktpdCAtZnJhbWV3b3JrIEphdmFTY3JpcHRDb3JlCitPVEhFUl9MREZMQUdTID0gLWwg
V1RGIC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uOwogTElC
UkFSWV9TRUFSQ0hfUEFUSFMgPSAkKEJVSUxUX1BST0RVQ1RTX0RJUik7CiAKIENPREVfU0lHTl9F
TlRJVExFTUVOVFMgPSBSZXNvdXJjZXMvd2VicHVzaHRvb2wuZW50aXRsZW1lbnRzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAxZWYz
M2E2ZTYyNzM3MTA0NDc3NTFhNTczYzI3NDg5N2VkMjk0MGE2Li40M2Y1YmJlN2IxYWJlMDlkZDc3
NGM5MmI1YzBlNGY0MmRjZTFkZGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNTgsNyArNTgsNiBAQAogI2luY2x1ZGUgIldlYkNv
b2tpZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIldlYlByb2Nlc3NQb29sTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJQdXNoTWVzc2FnZS5o
IgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIgogI2luY2x1ZGUg
IldlYlNXT3JpZ2luU3RvcmUuaCIKICNpbmNsdWRlICJXZWJTV1NlcnZlckNvbm5lY3Rpb24uaCIK
QEAgLTI1NTYsMjAgKzI1NTUsMTIgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6YWRkU2VydmljZVdv
cmtlclNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHByb2MKICAgICAgICAg
U2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KGhhbmRsZSk7CiB9CiAKLXZvaWQg
TmV0d29ya1Byb2Nlc3M6OmdldFBlbmRpbmdQdXNoTWVzc2FnZXMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJQdXNoTWVzc2Fn
ZT4mKT4mJiBjYWxsYmFjaykKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NQdXNoTWVzc2Fn
ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8SVBDOjpEYXRh
UmVmZXJlbmNlPiYgaXBjRGF0YSwgVVJMJiYgcmVnaXN0cmF0aW9uVVJMLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQogewotI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJ
RklDQVRJT05TKQotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lv
bklEKSkgewotICAgICAgICBzZXNzaW9uLT5ub3RpZmljYXRpb25NYW5hZ2VyKCkuZ2V0UGVuZGlu
Z1B1c2hNZXNzYWdlcyhXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0jZW5kaWYKLSAgICBjYWxsYmFjayh7IH0pOwotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpw
cm9jZXNzUHVzaE1lc3NhZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJQdXNoTWVzc2Fn
ZSYmIHB1c2hNZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNr
KQotewotICAgIHN3U2VydmVyRm9yU2Vzc2lvbihzZXNzaW9uSUQpLnByb2Nlc3NQdXNoTWVzc2Fn
ZShXVEZNb3ZlKHB1c2hNZXNzYWdlLnB1c2hEYXRhKSwgV1RGTW92ZShwdXNoTWVzc2FnZS5yZWdp
c3RyYXRpb25VUkwpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0
b3I8dWludDhfdD4+IGRhdGE7CisgICAgaWYgKGlwY0RhdGEpCisgICAgICAgIGRhdGEgPSBWZWN0
b3I8dWludDhfdD4geyBpcGNEYXRhLT5kYXRhKCksIGlwY0RhdGEtPnNpemUoKSB9OworICAgIHN3
U2VydmVyRm9yU2Vzc2lvbihzZXNzaW9uSUQpLnByb2Nlc3NQdXNoTWVzc2FnZShXVEZNb3ZlKGRh
dGEpLCBXVEZNb3ZlKHJlZ2lzdHJhdGlvblVSTCksIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KICNl
bmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCA4ODAxN2M0NGExMDVmMWMwZmRlNTViMjRj
MmZlMDk5Yjc2NmZhZjgxLi45YmM1N2VlMzdlYjYwOWMzOTdlZDdlM2QyMmY1NWUwNjRkMDJlMDE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBA
IC0xMTcsNyArMTE3LDYgQEAgZW51bSBjbGFzcyBTdG9yYWdlQWNjZXNzU3RhdHVzIDogdWludDhf
dDsKIGVudW0gY2xhc3MgV2Vic2l0ZURhdGFGZXRjaE9wdGlvbiA6IHVpbnQ4X3Q7CiBlbnVtIGNs
YXNzIFdlYnNpdGVEYXRhVHlwZSA6IHVpbnQzMl90Owogc3RydWN0IE5ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOwotc3RydWN0IFdlYlB1c2hNZXNzYWdlOwogc3RydWN0IFdlYnNpdGVE
YXRhU3RvcmVQYXJhbWV0ZXJzOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpAQCAtMzk3
LDggKzM5Niw3IEBAIHB1YmxpYzoKICAgICBib29sIGZ0cEVuYWJsZWQoKSBjb25zdCB7IHJldHVy
biBtX2Z0cEVuYWJsZWQ7IH0KIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICB2b2lk
IGdldFBlbmRpbmdQdXNoTWVzc2FnZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoY29uc3QgVmVjdG9yPFdlYlB1c2hNZXNzYWdlPiYpPiYmKTsKLSAgICB2b2lkIHByb2Nl
c3NQdXNoTWVzc2FnZShQQUw6OlNlc3Npb25JRCwgV2ViUHVzaE1lc3NhZ2UmJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBwcm9jZXNzUHVzaE1lc3NhZ2UoUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8SVBDOjpEYXRhUmVmZXJlbmNlPiYsIFVS
TCYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICNlbmRpZgogCiAgICAgdm9p
ZCBkZWxldGVQdXNoQW5kTm90aWZpY2F0aW9uUmVnaXN0cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGNvbnN0IFN0cmluZyYpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGYzYzIzZDFjMTg0NmQ1NDM1
ZDBiMTMzMTMxODQ0ZjQ5NWQyMDUzOTAuLjhkMzRlNzEzOTY2YzdlOTBhYjQzNWIxYmZkZDNlM2Qz
YjZjMjA4M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMjA3LDggKzIwNyw3IEBAIG1lc3NhZ2VzIC0+
IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQotICAgIEdldFBlbmRpbmdQdXNoTWVzc2FnZXMoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKSAtPiAoVmVjdG9yPFdlYktpdDo6V2ViUHVzaE1lc3NhZ2U+IG1lc3NhZ2VzKSBB
c3luYwotICAgIFByb2Nlc3NQdXNoTWVzc2FnZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0
cnVjdCBXZWJLaXQ6OldlYlB1c2hNZXNzYWdlIHB1c2hNZXNzYWdlKSAtPiAoYm9vbCBkaWRTdWNj
ZWVkKSBBc3luYworICAgIFByb2Nlc3NQdXNoTWVzc2FnZShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIHN0ZDo6b3B0aW9uYWw8SVBDOjpEYXRhUmVmZXJlbmNlPiBkYXRhLCBVUkwgcmVnaXN0cmF0
aW9uVVJMKSAtPiAoYm9vbCBkaWRTdWNjZWVkKSBBc3luYwogI2VuZGlmCiAgICAgRGVsZXRlUHVz
aEFuZE5vdGlmaWNhdGlvblJlZ2lzdHJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKSAtPiAoU3RyaW5nIGVycm9y
TWVzc2FnZSkgQXN5bmMKICAgICBHZXRPcmlnaW5zV2l0aFB1c2hBbmROb3RpZmljYXRpb25QZXJt
aXNzaW9ucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChWZWN0b3I8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5zKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3Jr
Tm90aWZpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggZTFhMDE4N2MxNDI2MTRlZjEzYjBkMjU3NDdi
NTZmNGNjNTBkYWZkZC4uZGZlMTUyMmUzNjBkNmNkNGIwYWUwNWExODEwNjhkNjZlYzU2MGY2YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05l
dHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCkBAIC0z
Miw3ICszMiw2IEBACiAjaW5jbHVkZSAiRGFlbW9uRW5jb2Rlci5oIgogI2luY2x1ZGUgIk5ldHdv
cmtTZXNzaW9uLmgiCiAjaW5jbHVkZSAiV2ViUHVzaERhZW1vbkNvbm5lY3Rpb25Db25maWd1cmF0
aW9uLmgiCi0jaW5jbHVkZSAiV2ViUHVzaE1lc3NhZ2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Nl
Y3VyaXR5T3JpZ2luRGF0YS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTg5LDE1ICs4OCw2
IEBAIHZvaWQgTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OmdldE9yaWdpbnNXaXRoUHVzaEFu
ZE5vdGlmaWNhdGlvblBlcm1pc3Npb25zKENvCiAgICAgc2VuZE1lc3NhZ2VXaXRoUmVwbHk8V2Vi
UHVzaEQ6Ok1lc3NhZ2VUeXBlOjpHZXRPcmlnaW5zV2l0aFB1c2hBbmROb3RpZmljYXRpb25QZXJt
aXNzaW9ucz4oV1RGTW92ZShyZXBseUhhbmRsZXIpKTsKIH0KIAotdm9pZCBOZXR3b3JrTm90aWZp
Y2F0aW9uTWFuYWdlcjo6Z2V0UGVuZGluZ1B1c2hNZXNzYWdlcyhDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGNvbnN0IFZlY3RvcjxXZWJQdXNoTWVzc2FnZT4mKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
LXsKLSAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJQdXNoTWVzc2FnZT4mJik+
IHJlcGx5SGFuZGxlciA9IFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSAoVmVjdG9yPFdlYlB1c2hNZXNzYWdlPiYmIG1lc3NhZ2VzKSBtdXRhYmxlIHsKLSAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShtZXNzYWdlcykpOwotICAgIH07Ci0KLSAg
ICBzZW5kTWVzc2FnZVdpdGhSZXBseTxXZWJQdXNoRDo6TWVzc2FnZVR5cGU6OkdldFBlbmRpbmdQ
dXNoTWVzc2FnZXM+KFdURk1vdmUocmVwbHlIYW5kbGVyKSk7Ci19Ci0KIHZvaWQgTmV0d29ya05v
dGlmaWNhdGlvbk1hbmFnZXI6OnNob3dOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgV2Vi
Q29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uLCBjb25zdCBTdHJpbmcmLCB1aW50NjRfdCkKIHsK
ICAgICBpZiAoIW1fY29ubmVjdGlvbikKQEAgLTE5NiwxNyArMTg2LDYgQEAgdGVtcGxhdGU8PiBz
dHJ1Y3QgUmVwbHlDYWxsZXI8VmVjdG9yPFN0cmluZz4mJj4gewogICAgIH0KIH07CiAKLXRlbXBs
YXRlPD4gc3RydWN0IFJlcGx5Q2FsbGVyPFZlY3RvcjxXZWJQdXNoTWVzc2FnZT4mJj4gewotICAg
IHN0YXRpYyB2b2lkIGNhbGxSZXBseShEYWVtb246OkRlY29kZXImJiBkZWNvZGVyLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJQdXNoTWVzc2FnZT4mJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCi0gICAgewotICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJQdXNoTWVzc2Fn
ZT4+IG1lc3NhZ2VzOwotICAgICAgICBkZWNvZGVyID4+IG1lc3NhZ2VzOwotICAgICAgICBpZiAo
IW1lc3NhZ2VzKQotICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7Ci0g
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoKm1lc3NhZ2VzKSk7Ci0gICAgfQotfTsK
LQogdGVtcGxhdGU8V2ViUHVzaEQ6Ok1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlLCB0eXBlbmFtZS4u
LiBBcmdzLCB0eXBlbmFtZS4uLiBSZXBseUFyZ3M+CiB2b2lkIE5ldHdvcmtOb3RpZmljYXRpb25N
YW5hZ2VyOjpzZW5kTWVzc2FnZVdpdGhSZXBseShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlcGx5
QXJncy4uLik+JiYgY29tcGxldGlvbkhhbmRsZXIsIEFyZ3MmJi4uLiBhcmdzKSBjb25zdAogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05l
dHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaAppbmRleCBkZmZmNWRi
ZjAyMTYxOTBmN2E5ZWY2YTMzZTkwYWNlMmY2OTA4OGQ4Li42ZjE2ODFhNzI1MWNjMWJhYTQ1NjEy
NjRlNmUyNDNhNmMwMjc1YTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlv
bk1hbmFnZXIuaApAQCAtMjksNyArMjksNiBAQAogCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uTWFu
YWdlck1lc3NhZ2VIYW5kbGVyLmgiCiAjaW5jbHVkZSAiV2ViUHVzaERhZW1vbkNvbm5lY3Rpb24u
aCIKLSNpbmNsdWRlICJXZWJQdXNoTWVzc2FnZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZp
Y2F0aW9uRGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAg
LTUzLDcgKzUyLDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBkZWxldGVQdXNoQW5kTm90aWZpY2F0
aW9uUmVnaXN0cmF0aW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJik+JiYpOwogICAgIHZvaWQgZ2V0T3JpZ2lu
c1dpdGhQdXNoQW5kTm90aWZpY2F0aW9uUGVybWlzc2lvbnMoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYpPiYmKTsKLSAgICB2
b2lkIGdldFBlbmRpbmdQdXNoTWVzc2FnZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBW
ZWN0b3I8V2ViUHVzaE1lc3NhZ2U+Jik+JiYpOwogCiBwcml2YXRlOgogICAgIE5ldHdvcmtOb3Rp
ZmljYXRpb25NYW5hZ2VyKE5ldHdvcmtTZXNzaW9uJiwgY29uc3QgU3RyaW5nJiB3ZWJQdXNoTWFj
aFNlcnZpY2VOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL3dlYnB1
c2h0b29sLmVudGl0bGVtZW50cyBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL3dlYnB1c2h0b29s
LmVudGl0bGVtZW50cwppbmRleCA2MzI0ZjA1YWQ5NmFlYmFmMjUzMTgxOTUwNGIwNWYyOWQzYWQ5
ZjU3Li42NGEwYjU2YmM1MDBjMmRjNWZkY2E5NzRkZDdiMTcxYTg2MmZjZGVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy93ZWJwdXNodG9vbC5lbnRpdGxlbWVudHMKKysrIGIv
U291cmNlL1dlYktpdC9SZXNvdXJjZXMvd2VicHVzaHRvb2wuZW50aXRsZW1lbnRzCkBAIC00LDcg
KzQsNSBAQAogPGRpY3Q+CiAJPGtleT5jb20uYXBwbGUucHJpdmF0ZS53ZWJraXQud2VicHVzaDwv
a2V5PgogCTx0cnVlLz4KLQk8a2V5PmNvbS5hcHBsZS5wcml2YXRlLndlYmtpdC53ZWJwdXNoLmlu
amVjdDwva2V5PgotCTx0cnVlLz4KIDwvZGljdD4KIDwvcGxpc3Q+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJQdXNoTWVzc2FnZUNvY29hLm1tIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvQ29jb2EvV2ViUHVzaE1lc3NhZ2VDb2NvYS5tbQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZjEyOTM4YmM0ZGRmMWRlNDkxZDkwOWU4YjdhZmRhNjUyZDBjOTA3Yi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db2NvYS9XZWJQdXNoTWVzc2FnZUNvY29hLm1tCisrKyAvZGV2L251bGwKQEAg
LTEsNjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAi
V2ViUHVzaE1lc3NhZ2UuaCIKLQotI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgotCi1uYW1lc3Bh
Y2UgV2ViS2l0IHsKLQotI2RlZmluZSBXZWJLaXRQdXNoRGF0YUtleSBAIldlYktpdFB1c2hEYXRh
IgotI2RlZmluZSBXZWJLaXRQdXNoUmVnaXN0cmF0aW9uVVJMS2V5IEAiV2ViS2l0UHVzaFJlZ2lz
dHJhdGlvblVSTCIKLQotc3RkOjpvcHRpb25hbDxXZWJQdXNoTWVzc2FnZT4gV2ViUHVzaE1lc3Nh
Z2U6OmZyb21EaWN0aW9uYXJ5KE5TRGljdGlvbmFyeSAqZGljdGlvbmFyeSkKLXsKLSAgICBOU1VS
TCAqdXJsID0gW2RpY3Rpb25hcnkgb2JqZWN0Rm9yS2V5OldlYktpdFB1c2hSZWdpc3RyYXRpb25V
UkxLZXldOwotICAgIGlmICghdXJsIHx8ICFbdXJsIGlzS2luZE9mQ2xhc3M6W05TVVJMIGNsYXNz
XV0pCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICBOU0RhdGEgKnB1c2hEYXRh
ID0gW2RpY3Rpb25hcnkgb2JqZWN0Rm9yS2V5OldlYktpdFB1c2hEYXRhS2V5XTsKLSAgICBpZiAo
IXB1c2hEYXRhIHx8ICFbcHVzaERhdGEgaXNLaW5kT2ZDbGFzczpbTlNEYXRhIGNsYXNzXV0pCi0g
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICByZXR1cm4geyB7Ci0gICAgICAgIFZl
Y3Rvcjx1aW50OF90PiB7IHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihwdXNoRGF0YS5ieXRl
cyksIHB1c2hEYXRhLmxlbmd0aCB9LAotICAgICAgICBVUkwgeyB1cmwgfQotICAgIH0gfTsKLX0K
LQotTlNEaWN0aW9uYXJ5ICpXZWJQdXNoTWVzc2FnZTo6dG9EaWN0aW9uYXJ5KCkgY29uc3QKLXsK
LSAgICBhdXRvIG5zRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6
cHVzaERhdGEuZGF0YSgpIGxlbmd0aDpwdXNoRGF0YS5zaXplKCldKTsKLSAgICByZXR1cm4gQHsK
LSAgICAgICAgV2ViS2l0UHVzaERhdGFLZXkgOiBuc0RhdGEuZ2V0KCksCi0gICAgICAgIFdlYktp
dFB1c2hSZWdpc3RyYXRpb25VUkxLZXkgOiAoTlNVUkwgKilyZWdpc3RyYXRpb25VUkwKLSAgICB9
OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1B1c2hNZXNzYWdlRm9yVGVzdGluZy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUHVz
aE1lc3NhZ2VGb3JUZXN0aW5nLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFjNzQ3
ZTE2MjgyNmY2ZjQxNmQ5OTg1OWIzNWIyNWVlZTc0YzM4Y2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvUHVzaE1lc3Nh
Z2VGb3JUZXN0aW5nLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlIDx3dGYvVVJMLmg+Ci0jaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQ6OldlYlB1c2hEIHsKLQotc3RydWN0
IFB1c2hNZXNzYWdlRm9yVGVzdGluZyB7Ci0gICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFB1c2hNZXNzYWdlRm9yVGVzdGluZz4gZGVjb2RlKERlY29kZXIm
KTsKLQotICAgIFN0cmluZyB0YXJnZXRBcHBDb2RlU2lnbmluZ0lkZW50aWZpZXI7Ci0gICAgVVJM
IHJlZ2lzdHJhdGlvblVSTDsKLSAgICBTdHJpbmcgbWVzc2FnZTsKLX07Ci0KLXRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+Ci12b2lkIFB1c2hNZXNzYWdlRm9yVGVzdGluZzo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0Ci17Ci0gICAgZW5jb2RlciA8PCB0YXJnZXRBcHBDb2RlU2lnbmluZ0lk
ZW50aWZpZXIgPDwgcmVnaXN0cmF0aW9uVVJMIDw8IG1lc3NhZ2U7Ci19Ci0KLXRlbXBsYXRlPGNs
YXNzIERlY29kZXI+Ci1zdGQ6Om9wdGlvbmFsPFB1c2hNZXNzYWdlRm9yVGVzdGluZz4gUHVzaE1l
c3NhZ2VGb3JUZXN0aW5nOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBzdGQ6Om9w
dGlvbmFsPFN0cmluZz4gdGFyZ2V0QXBwQ29kZVNpZ25pbmdJZGVudGlmaWVyOwotICAgIGRlY29k
ZXIgPj4gdGFyZ2V0QXBwQ29kZVNpZ25pbmdJZGVudGlmaWVyOwotICAgIGlmICghdGFyZ2V0QXBw
Q29kZVNpZ25pbmdJZGVudGlmaWVyKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0g
ICAgc3RkOjpvcHRpb25hbDxVUkw+IHJlZ2lzdHJhdGlvblVSTDsKLSAgICBkZWNvZGVyID4+IHJl
Z2lzdHJhdGlvblVSTDsKLSAgICBpZiAoIXJlZ2lzdHJhdGlvblVSTCkKLSAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKLQotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBtZXNzYWdlOwotICAg
IGRlY29kZXIgPj4gbWVzc2FnZTsKLSAgICBpZiAoIW1lc3NhZ2UpCi0gICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7Ci0KLSAgICByZXR1cm4geyB7Ci0gICAgICAgIFdURk1vdmUoKnRhcmdldEFw
cENvZGVTaWduaW5nSWRlbnRpZmllciksCi0gICAgICAgIFdURk1vdmUoKnJlZ2lzdHJhdGlvblVS
TCksCi0gICAgICAgIFdURk1vdmUoKm1lc3NhZ2UpLAotICAgIH0gfTsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgV2ViS2l0OjpXZWJQdXNoRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHVzaERhZW1vbkNvbnN0YW50cy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHVzaERh
ZW1vbkNvbnN0YW50cy5oCmluZGV4IDU4MDJiYjA3YzM5YTkzOThjZjliODg3MDQxZGU5YWJkMjk3
ZWJiZGYuLmE0ZGJjZDc3OTEyNDM4M2FlZGZkYmJmOTdmMzU0MWFlZTlmMjNjMTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlB1c2hEYWVtb25Db25zdGFudHMuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQdXNoRGFlbW9uQ29uc3RhbnRzLmgKQEAgLTQyLDggKzQy
LDYgQEAgZW51bSBjbGFzcyBNZXNzYWdlVHlwZSA6IHVpbnQ4X3QgewogICAgIEdldE9yaWdpbnNX
aXRoUHVzaEFuZE5vdGlmaWNhdGlvblBlcm1pc3Npb25zLAogICAgIFNldERlYnVnTW9kZUlzRW5h
YmxlZCwKICAgICBVcGRhdGVDb25uZWN0aW9uQ29uZmlndXJhdGlvbiwKLSAgICBJbmplY3RQdXNo
TWVzc2FnZUZvclRlc3RpbmcsCi0gICAgR2V0UGVuZGluZ1B1c2hNZXNzYWdlcywKIH07CiAKIGlu
bGluZSBib29sIG1lc3NhZ2VUeXBlU2VuZHNSZXBseShNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSkK
QEAgLTUzLDggKzUxLDYgQEAgaW5saW5lIGJvb2wgbWVzc2FnZVR5cGVTZW5kc1JlcGx5KE1lc3Nh
Z2VUeXBlIG1lc3NhZ2VUeXBlKQogICAgIGNhc2UgTWVzc2FnZVR5cGU6OkdldE9yaWdpbnNXaXRo
UHVzaEFuZE5vdGlmaWNhdGlvblBlcm1pc3Npb25zOgogICAgIGNhc2UgTWVzc2FnZVR5cGU6OkRl
bGV0ZVB1c2hBbmROb3RpZmljYXRpb25SZWdpc3RyYXRpb246CiAgICAgY2FzZSBNZXNzYWdlVHlw
ZTo6UmVxdWVzdFN5c3RlbU5vdGlmaWNhdGlvblBlcm1pc3Npb246Ci0gICAgY2FzZSBNZXNzYWdl
VHlwZTo6R2V0UGVuZGluZ1B1c2hNZXNzYWdlczoKLSAgICBjYXNlIE1lc3NhZ2VUeXBlOjpJbmpl
Y3RQdXNoTWVzc2FnZUZvclRlc3Rpbmc6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGNhc2Ug
TWVzc2FnZVR5cGU6OlNldERlYnVnTW9kZUlzRW5hYmxlZDoKICAgICBjYXNlIE1lc3NhZ2VUeXBl
OjpVcGRhdGVDb25uZWN0aW9uQ29uZmlndXJhdGlvbjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlB1c2hNZXNzYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQdXNo
TWVzc2FnZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmOWU0M2YzMzNkNTY4NDg4
YzJmYmUxZTZlYmMxMWQ2MjMzNGNmOGU3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlB1c2hNZXNzYWdlLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0K
LSNpbmNsdWRlIDxvcHRpb25hbD4KLSNpbmNsdWRlIDx3dGYvVVJMLmg+Ci0jaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgotCi1PQkpDX0NMQVNTIE5TRGljdGlvbmFyeTsKLQotbmFtZXNwYWNlIFdlYktp
dCB7Ci0KLXN0cnVjdCBXZWJQdXNoTWVzc2FnZSB7Ci0gICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYlB1c2hNZXNzYWdlPiBkZWNvZGUoRGVjb2RlciYp
OwotCi0gICAgVmVjdG9yPHVpbnQ4X3Q+IHB1c2hEYXRhOwotICAgIFVSTCByZWdpc3RyYXRpb25V
Ukw7Ci0KLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJQ
dXNoTWVzc2FnZT4gZnJvbURpY3Rpb25hcnkoTlNEaWN0aW9uYXJ5ICopOwotICAgIE5TRGljdGlv
bmFyeSAqdG9EaWN0aW9uYXJ5KCkgY29uc3Q7Ci0jZW5kaWYKLX07Ci0KLXRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+Ci12b2lkIFdlYlB1c2hNZXNzYWdlOjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKLXsKLSAgICBlbmNvZGVyIDw8IHB1c2hEYXRhIDw8IHJlZ2lzdHJhdGlvblVSTDsKLX0K
LQotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KLXN0ZDo6b3B0aW9uYWw8V2ViUHVzaE1lc3NhZ2U+
IFdlYlB1c2hNZXNzYWdlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBzdGQ6Om9w
dGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4gcHVzaERhdGE7Ci0gICAgZGVjb2RlciA+PiBwdXNoRGF0
YTsKLSAgICBpZiAoIXB1c2hEYXRhKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0g
ICAgc3RkOjpvcHRpb25hbDxVUkw+IHJlZ2lzdHJhdGlvblVSTDsKLSAgICBkZWNvZGVyID4+IHJl
Z2lzdHJhdGlvblVSTDsKLSAgICBpZiAoIXJlZ2lzdHJhdGlvblVSTCkKLSAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKLQotICAgIHJldHVybiB7IHsKLSAgICAgICAgV1RGTW92ZSgqcHVzaERh
dGEpLAotICAgICAgICBXVEZNb3ZlKCpyZWdpc3RyYXRpb25VUkwpCi0gICAgfSB9OwotfQotCi19
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IDYyOTY5MDc5ZDlkNTdhNzgz
MDc4ODIzNWRkOTE0ODdkM2RiNzIxNWUuLjdlZjA2OTUwYWIwN2QzZTFhNzYxNmNiY2I1OGJkMjU3
ODUzNTllYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtMzksNyArMzksNiBAQAogI2ltcG9ydCAiV0tX
ZWJWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgIldLV2Vic2l0ZURhdGFSZWNvcmRJbnRlcm5hbC5o
IgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCi0jaW1wb3J0ICJXZWJQdXNoTWVzc2FnZS5oIgog
I2ltcG9ydCAiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgiCiAjaW1wb3J0ICJXZWJz
aXRlRGF0YUZldGNoT3B0aW9uLmgiCiAjaW1wb3J0ICJfV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
VGhpcmRQYXJ0eUludGVybmFsLmgiCkBAIC03NjIsMjkgKzc2MSwxMyBAQCAtKGJvb2wpX2hhc1Nl
cnZpY2VXb3JrZXJCYWNrZ3JvdW5kQWN0aXZpdHlGb3JUZXN0aW5nCiAgICAgcmV0dXJuIF93ZWJz
aXRlRGF0YVN0b3JlLT5oYXNTZXJ2aWNlV29ya2VyQmFja2dyb3VuZEFjdGl2aXR5Rm9yVGVzdGlu
ZygpOwogfQogCi0tKHZvaWQpX2dldFBlbmRpbmdQdXNoTWVzc2FnZXM6KHZvaWQoXikoTlNBcnJh
eTxOU0RpY3Rpb25hcnkgKj4gKikpY29tcGxldGlvbkhhbmRsZXIKKy0odm9pZClfcHJvY2Vzc1B1
c2hNZXNzYWdlOihOU0RhdGEqKSBtZXNzYWdlIHJlZ2lzdHJhdGlvbjooTlNVUkwgKilyZWdpc3Ry
YXRpb24gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoYm9vbCB3YXNQcm9jZXNzZWQpKWNvbXBs
ZXRpb25IYW5kbGVyCiB7CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAgIF93ZWJzaXRl
RGF0YVN0b3JlLT5uZXR3b3JrUHJvY2VzcygpLmdldFBlbmRpbmdQdXNoTWVzc2FnZXMoX3dlYnNp
dGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQ
dHIoY29tcGxldGlvbkhhbmRsZXIpXSAoY29uc3QgVmVjdG9yPFdlYktpdDo6V2ViUHVzaE1lc3Nh
Z2U+JiBtZXNzYWdlcykgewotICAgICAgICBhdXRvIHJlc3VsdCA9IGFkb3B0TlMoW1tOU011dGFi
bGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTptZXNzYWdlcy5zaXplKCldKTsKLSAgICAg
ICAgZm9yIChhdXRvJiBtZXNzYWdlIDogbWVzc2FnZXMpCi0gICAgICAgICAgICBbcmVzdWx0IGFk
ZE9iamVjdDptZXNzYWdlLnRvRGljdGlvbmFyeSgpXTsKLQotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihyZXN1bHQuZ2V0KCkpOwotICAgIH0pOwotI2VuZGlmCi19Ci0KLS0odm9pZClfcHJvY2Vz
c1B1c2hNZXNzYWdlOihOU0RpY3Rpb25hcnkgKilwdXNoTWVzc2FnZURpY3Rpb25hcnkgY29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQoXikoYm9vbCB3YXNQcm9jZXNzZWQpKWNvbXBsZXRpb25IYW5kbGVy
Ci17Ci0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAgIGF1dG8gcHVzaE1lc3NhZ2UgPSBX
ZWJLaXQ6OldlYlB1c2hNZXNzYWdlOjpmcm9tRGljdGlvbmFyeShwdXNoTWVzc2FnZURpY3Rpb25h
cnkpOwotICAgIGlmICghcHVzaE1lc3NhZ2UpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
ZmFsc2UpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgX3dlYnNpdGVEYXRhU3RvcmUt
Pm5ldHdvcmtQcm9jZXNzKCkucHJvY2Vzc1B1c2hNZXNzYWdlKF93ZWJzaXRlRGF0YVN0b3JlLT5z
ZXNzaW9uSUQoKSwgKnB1c2hNZXNzYWdlLCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQ
dHIoY29tcGxldGlvbkhhbmRsZXIpXSAoYm9vbCB3YXNQcm9jZXNzZWQpIHsKKyAgICBzdGQ6Om9w
dGlvbmFsPFNwYW48Y29uc3QgdWludDhfdD4+IGRhdGE7CisgICAgaWYgKG1lc3NhZ2UpCisgICAg
ICAgIGRhdGEgPSBTcGFuPGNvbnN0IHVpbnQ4X3Q+IHsgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1
aW50OF90Kj4obWVzc2FnZS5ieXRlcyksIG1lc3NhZ2UubGVuZ3RoIH07CisgICAgX3dlYnNpdGVE
YXRhU3RvcmUtPm5ldHdvcmtQcm9jZXNzKCkucHJvY2Vzc1B1c2hNZXNzYWdlKF93ZWJzaXRlRGF0
YVN0b3JlLT5zZXNzaW9uSUQoKSwgZGF0YSwgcmVnaXN0cmF0aW9uLCBbY29tcGxldGlvbkhhbmRs
ZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSAoYm9vbCB3YXNQcm9jZXNzZWQp
IHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIod2FzUHJvY2Vzc2VkKTsKICAgICB9KTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKaW5kZXggMTFmMDZmMjQ0YzA4NjYyMDM3NTQ1
YjI3MzliNmEyMTg0ZDUzZDdjMi4uYTEyYzZlYzIwYTgzOWMzMDQwYWYyNDY5Y2Y2YzM2MmQxODcz
NDMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCkBAIC0xMDgsOCArMTA4LDcgQEAgdHlw
ZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVEYXRhU3RvcmVGZXRjaE9wdGlv
bnMpIHsKIC0gKHZvaWQpX2NvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzOih2b2lkKF4pKHNpemVf
dCkpY29tcGxldGlvbkhhbmRsZXI7CiAKIC0oYm9vbClfaGFzU2VydmljZVdvcmtlckJhY2tncm91
bmRBY3Rpdml0eUZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKLS0odm9pZClfZ2V0UGVuZGluZ1B1c2hNZXNzYWdlczoodm9pZChe
KShOU0FycmF5PE5TRGljdGlvbmFyeSAqPiAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSh2b2lkKV9wcm9j
ZXNzUHVzaE1lc3NhZ2U6KE5TRGljdGlvbmFyeSAqKXB1c2hNZXNzYWdlIGNvbXBsZXRpb25IYW5k
bGVyOih2b2lkKF4pKGJvb2wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistKHZvaWQpX3Byb2Nlc3NQdXNoTWVz
c2FnZTooTlNEYXRhKilkYXRhIHJlZ2lzdHJhdGlvbjooTlNVUkwgKilyZWdpc3RyYXRpb24gY29t
cGxldGlvbkhhbmRsZXI6KHZvaWQoXikoYm9vbCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0odm9pZClfZGVs
ZXRlUHVzaEFuZE5vdGlmaWNhdGlvblJlZ2lzdHJhdGlvbjooV0tTZWN1cml0eU9yaWdpbiAqKXNl
Y3VyaXR5T3JpZ2luIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKE5TRXJyb3IgKikpY29tcGxl
dGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKIC0odm9pZClfZ2V0T3JpZ2luc1dpdGhQdXNoQW5kTm90aWZpY2F0aW9uUGVybWlz
c2lvbnM6KHZvaWQoXikoTlNTZXQ8V0tTZWN1cml0eU9yaWdpbiAqPiAqKSljb21wbGV0aW9uSGFu
ZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggZjQwMDBhNmI3MTkxMzVjMzQzYjRjZDA5YzAyM2E2
OGYyYzVlNzg1ZS4uMzUzZTVmNDY2ZjZhY2JhNzZlYmZjZjM5ZDI3M2JhYTNjMTU2MmY5MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwCkBAIC0xNjkyLDE0ICsxNjkyLDEyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6ZGlkRXhjZWVkTWVtb3J5TGltaXQoKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklD
RV9XT1JLRVIpCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmdldFBlbmRpbmdQdXNoTWVzc2Fn
ZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0
IFZlY3RvcjxXZWJQdXNoTWVzc2FnZT4mKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6cHJvY2Vzc1B1c2hNZXNzYWdlKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgc3RkOjpvcHRpb25hbDxTcGFuPGNvbnN0IHVpbnQ4X3Q+PiBkYXRhLCBjb25zdCBVUkwm
IHJlZ2lzdHJhdGlvblVSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHdhc1Byb2Nlc3Nl
ZCk+JiYgY2FsbGJhY2spCiB7Ci0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzczo6R2V0UGVuZGluZ1B1c2hNZXNzYWdlcyB7IHNlc3Npb25JRCB9LCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cHJv
Y2Vzc1B1c2hNZXNzYWdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgV2ViUHVzaE1l
c3NhZ2UmIHB1c2hNZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgd2FzUHJvY2Vz
c2VkKT4mJiBjYWxsYmFjaykKLXsKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzOjpQcm9jZXNzUHVzaE1lc3NhZ2UgeyBzZXNzaW9uSUQsIHB1c2hNZXNzYWdl
IH0sIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBzdGQ6Om9wdGlvbmFsPElQQzo6RGF0YVJlZmVy
ZW5jZT4gaXBjRGF0YTsKKyAgICBpZiAoZGF0YSkKKyAgICAgICAgaXBjRGF0YSA9IElQQzo6RGF0
YVJlZmVyZW5jZSB7IGRhdGEtPmRhdGEoKSwgZGF0YS0+c2l6ZSgpIH07CisgICAgc2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UHJvY2Vzc1B1c2hNZXNzYWdlIHsg
c2Vzc2lvbklELCBpcGNEYXRhLCByZWdpc3RyYXRpb25VUkwgfSwgV1RGTW92ZShjYWxsYmFjaykp
OwogfQogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCA4
NmYxYjMwNDRmYzg3OWQwOTNmZWU5NmNlYTZlYjEwYTUzODc2NjM0Li5iOWU3MjJmMmRiM2NjOThl
NmMyZDBkODhmNjgxNzEwYTcwMDg0YTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtOTIsNyArOTIsNiBAQCBl
bnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZSA6IHVpbnQzMl90Owogc3RydWN0IEZyYW1lSW5mb0Rh
dGE7CiBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgUmVz
b3VyY2VMb2FkSW5mbzsKLXN0cnVjdCBXZWJQdXNoTWVzc2FnZTsKIHN0cnVjdCBXZWJzaXRlRGF0
YTsKIHN0cnVjdCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczsKIApAQCAtMjc0LDggKzI3Myw3
IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAgIHZv
aWQgZ2V0UGVuZGluZ1B1c2hNZXNzYWdlcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViUHVzaE1lc3NhZ2U+Jik+JiYpOwotICAgIHZvaWQgcHJv
Y2Vzc1B1c2hNZXNzYWdlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJQdXNoTWVzc2FnZSYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCB3YXNQcm9jZXNzZWQpPiYmKTsKKyAgICB2b2lkIHBy
b2Nlc3NQdXNoTWVzc2FnZShQQUw6OlNlc3Npb25JRCwgc3RkOjpvcHRpb25hbDxTcGFuPGNvbnN0
IHVpbnQ4X3Q+PiwgY29uc3QgVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHdhc1By
b2Nlc3NlZCk+JiYpOwogI2VuZGlmCiAKICAgICB2b2lkIGRlbGV0ZVB1c2hBbmROb3RpZmljYXRp
b25SZWdpc3RyYXRpb24oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJik+JiYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzJl
ZTRmOWZhOGNiYzVhZmM2YmIwMjQ2ODMyNGViZWQyY2ZhYWYyZS4uZmJmNDg3OWU4Y2MzNjNhY2U4
YWFkYjEzMTc1OGUxNzFiZjU0NGI3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDM0LDEyICsxMDM0LDYgQEAKIAkJNTE3QjVGODQy
NzVFOTdCNjAwMkRDMjJEIC8qIE1vY2tBcHBCdW5kbGVGb3JUZXN0aW5nLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGN0JCNzQyNzQ0OThCQTAwQzQ1
QTcyIC8qIE1vY2tBcHBCdW5kbGVGb3JUZXN0aW5nLm1tICovOyB9OwogCQk1MTdCNUY4NTI3NUU5
N0I2MDAyREMyMkQgLyogQXBwQnVuZGxlUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE2MEU5NTQyNzRCODg3MTAwNTY3Mzg4IC8qIEFwcEJ1
bmRsZVJlcXVlc3QuaCAqLzsgfTsKIAkJNTE3QjVGODYyNzVFOTdCNjAwMkRDMjJEIC8qIE1vY2tB
cHBCdW5kbGVSZWdpc3RyeS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxNjBFOTVGMjc0QzJBM0YwMDU2NzM4OCAvKiBNb2NrQXBwQnVuZGxlUmVnaXN0
cnkubW0gKi87IH07Ci0JCTUxN0I1Rjk1Mjc1RUJBNjMwMDJEQzIyRCAvKiBQdXNoTWVzc2FnZUZv
clRlc3RpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxN0I1Rjk0Mjc1RUJBNjIwMDJEQzIyRCAvKiBQdXNoTWVzc2FnZUZvclRlc3RpbmcuaCAqLzsg
fTsKLQkJNTE3QjVGOTcyNzVFQzVFNTAwMkRDMjJEIC8qIFdlYlB1c2hNZXNzYWdlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdCNUY5NjI3NUVDNUU1
MDAyREMyMkQgLyogV2ViUHVzaE1lc3NhZ2UuaCAqLzsgfTsKLQkJNTE3QjVGOTkyNzVFQzYwMTAw
MkRDMjJEIC8qIFdlYlB1c2hNZXNzYWdlQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdCNUY5ODI3NUVDNjAwMDAyREMyMkQgLyogV2ViUHVz
aE1lc3NhZ2VDb2NvYS5tbSAqLzsgfTsKLQkJNTE3QjVGOUEyNzVGM0E4NjAwMkRDMjJEIC8qIEFy
Z3VtZW50Q29kZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFBM0Q2MTA0MTNBN0YwM0EwMEY5NUQ0RSAvKiBBcmd1bWVudENvZGVycy5jcHAgKi87
IH07Ci0JCTUxN0I1RjlCMjc1RjNBOTgwMDJEQzIyRCAvKiBEYWVtb25VdGlsaXRpZXMubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzE1NzlGOTI3MTdB
RjUwMDBFRDUyODAgLyogRGFlbW9uVXRpbGl0aWVzLm1tICovOyB9OwotCQk1MTdCNUY5QzI3NUYz
QzM3MDAyREMyMkQgLyogRGFlbW9uRW5jb2Rlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzE1NzlFODI3MTcyQThBMDBFRDUyODAgLyogRGFlbW9u
RW5jb2Rlci5jcHAgKi87IH07CiAJCTUxN0NGMEUzMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBFIC8qIE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTUxN0NG
MEUzMTYzQTQ4NkMwMEMyOTUwRiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0
aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTE3Q0YwRTQxNjNBNDg2QzAwQzI5NTBF
IC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdDRjBFMjE2M0E0ODZDMDBDMjk1MEUgLyog
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLzsgfTsKQEAgLTQ0MTUsOSArNDQw
OSw2IEBACiAJCTUxN0I1RjZCMjc1QUU1MEIwMDJEQzIyRCAvKiB3ZWJwdXNodG9vbC5lbnRpdGxl
bWVudHMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LmVudGl0bGVtZW50czsgbmFtZSA9IHdlYnB1c2h0
b29sLmVudGl0bGVtZW50czsgcGF0aCA9IFJlc291cmNlcy93ZWJwdXNodG9vbC5lbnRpdGxlbWVu
dHM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxN0I1RjcyMjc1RTk2MDkwMDJEQzIy
RCAvKiBXZWJQdXNoRGFlbW9uTWFpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJQdXNoRGFlbW9uTWFpbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTdC
NUY3NzI3NUU5Nzk1MDAyREMyMkQgLyogd2VicHVzaGQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gd2VicHVzaGQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk1MTdCNUY5NDI3NUVCQTYyMDAyREMyMkQgLyogUHVzaE1lc3NhZ2VGb3JUZXN0aW5nLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFB1c2hNZXNzYWdlRm9yVGVzdGluZy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MTdCNUY5NjI3NUVDNUU1MDAyREMyMkQg
LyogV2ViUHVzaE1lc3NhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
UHVzaE1lc3NhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTE3QjVGOTgyNzVF
QzYwMDAwMkRDMjJEIC8qIFdlYlB1c2hNZXNzYWdlQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJQdXNoTWVzc2FnZUNvY29hLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5j
cHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
IAkJNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rp
b25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGgg
PSBEZXJpdmVkU291cmNlcy9XZWJLaXQvQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3Nh
Z2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUx
N0NGMEUyMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb25NZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CkBAIC02NDg0LDcgKzY0NzUsNiBAQAogCQkJaXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhh
c2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCi0JCQkJ
NTE3QjVGOUUyNzVGM0Y1NDAwMkRDMjJEIC8qIGxpYmljdWNvcmUudGJkIGluIEZyYW1ld29ya3Mg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CkBAIC03MTQ2LDcgKzcxMzYsNiBAQAogCQkJCUUxOEM5MkYzMTJEQjlFNzEwMENGMkFFQiAv
KiBQcmludEluZm8uY3BwICovLAogCQkJCUUxQ0MxQjhFMTJEN0VBREYwMDYyNTgzOCAvKiBQcmlu
dEluZm8uaCAqLywKIAkJCQk0NjNGRDQ4MTFFQjk0RUFEMDBBMjk4MkMgLyogUHJvY2Vzc1Rlcm1p
bmF0aW9uUmVhc29uLmggKi8sCi0JCQkJNTE3QjVGOTQyNzVFQkE2MjAwMkRDMjJEIC8qIFB1c2hN
ZXNzYWdlRm9yVGVzdGluZy5oICovLAogCQkJCTlCMTIyOUQwMjNGRjJBNUUwMDhDQTc1MSAvKiBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oICovLAogCQkJCTcyMDM0NDlCMjZBNkM0
NzYwMDBBNUY1NCAvKiBSZW5kZXJpbmdVcGRhdGVJRC5oICovLAogCQkJCTVDQjdBRkU2MjNDNjgx
QjAwMEU0OUNGMyAvKiBSZXNvdXJjZUxvYWRJbmZvLmggKi8sCkBAIC03MjUzLDcgKzcyNDIsNiBA
QAogCQkJCTQ2N0U0M0U3MjI0M0ZGNkQwMEIxMzkyNCAvKiBXZWJQcm9jZXNzRGF0YVN0b3JlUGFy
YW1ldGVycy5oICovLAogCQkJCTUxN0I1RjJEMjc1NzM4MkEwMDJEQzIyRCAvKiBXZWJQdXNoRGFl
bW9uQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb24uaCAqLywKIAkJCQk1MTJDRDY5OTI3MjFGMDQ5MDBG
N0Y4RUMgLyogV2ViUHVzaERhZW1vbkNvbnN0YW50cy5oICovLAotCQkJCTUxN0I1Rjk2Mjc1RUM1
RTUwMDJEQzIyRCAvKiBXZWJQdXNoTWVzc2FnZS5oICovLAogCQkJCTVDOEREMzdGMUZFNDUxOTIw
MEYyQTU1NiAvKiBXZWJzaXRlQXV0b3BsYXlQb2xpY3kuaCAqLywKIAkJCQk1QzhERDM4MTFGRTQ1
NUNBMDBGMkE1NTYgLyogV2Vic2l0ZUF1dG9wbGF5UXVpcmsuaCAqLywKIAkJCQk1MTFGN0QzRjFF
QjFCQ0VFMDBFNDdCODMgLyogV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuY3BwICovLApAQCAt
ODk1MCw3ICs4OTM4LDYgQEAKIAkJCQk3QUYyMzYyMjFFNzlBNDMxMDA0MzhBMDUgLyogV2ViRXJy
b3JzQ29jb2EubW0gKi8sCiAJCQkJNDY1MjUwRTUxRUNGNTJDRDAwMjAyNUNCIC8qIFdlYktpdDJJ
bml0aWFsaXplQ29jb2EubW0gKi8sCiAJCQkJMURFMDc2RDkyNDYwQ0NCRDAwQjIxMUU4IC8qIFdl
YlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlc0NvY29hLm1tICovLAotCQkJCTUxN0I1Rjk4Mjc1RUM2
MDAwMDJEQzIyRCAvKiBXZWJQdXNoTWVzc2FnZUNvY29hLm1tICovLAogCQkJCTM3QzRDMDkyMTgx
NEIzQUYwMDM2ODhCOSAvKiBXS05TQXJyYXkuaCAqLywKIAkJCQkzN0M0QzA5MTE4MTRCM0FGMDAz
Njg4QjkgLyogV0tOU0FycmF5Lm1tICovLAogCQkJCTM3M0NFQUQ0MTg1NDE3QUUwMDhDMzYzRCAv
KiBXS05TRGF0YS5oICovLApAQCAtOTcxMyw3ICs5NzAwLDYgQEAKIAkJNTc1MEYzMjkyMDMyRDRF
MzAwMzg5MzQ3IC8qIEZyYW1ld29ya3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAotCQkJCTUxN0I1RjlEMjc1RjNGNTQwMDJEQzIyRCAvKiBsaWJpY3Vjb3JlLnRi
ZCAqLywKIAkJCQk1N0E5RkYxNTI1MkM2QUVGMDA2QTIwNDAgLyogbGliV1RGLmEgKi8sCiAJCQkJ
NTc1MEYzMkEyMDMyRDRFNTAwMzg5MzQ3IC8qIExvY2FsQXV0aGVudGljYXRpb24uZnJhbWV3b3Jr
ICovLAogCQkJCTU3MERBQUIwMjMwMjczRDIwMEU4RkMwNCAvKiBOZWFyRmllbGQuZnJhbWV3b3Jr
ICovLApAQCAtMTMwMjcsNyArMTMwMTMsNiBAQAogCQkJCTUzMjE1OTU2MURCQUU3MkQwMDU0QUEz
QyAvKiBOZXR3b3JrRGF0YVRhc2tDb2NvYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM5OTAyMDMx
QkU5QTAyQjAwMEYzNjUzIC8qIE5ldHdvcmtMb2FkLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0Q0
NTRENzFCRTlEM0M0MDA2QzkzQkQgLyogTmV0d29ya0xvYWRDbGllbnQuaCBpbiBIZWFkZXJzICov
LAotCQkJCTUxN0I1Rjk3Mjc1RUM1RTUwMDJEQzIyRCAvKiBXZWJQdXNoTWVzc2FnZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODM5MTQ5NjUxQkVBODM4NTAwRDJEOTUzIC8qIE5ldHdvcmtMb2FkUGFy
YW1ldGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ3RkM4QTAyNUI4MzMxQzAwNTQ5NUZDIC8q
IE5ldHdvcmtMb2FkU2NoZWR1bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTQ1MjZFRDI3MUUx
NjQ3MDAwNDY3QjYgLyogTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICov
LApAQCAtMTM1MzUsNyArMTM1MjAsNiBAQAogCQkJCTkzNTZGMkRDMjE1MkI2QjUwMEU2RDVERiAv
KiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxN0E1MzEwMUY0
N0E4NjIwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDY2QkMwM0MxRkEyNjZEQTAwMkZBOUMxIC8qIFdlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTdCNUY5NTI3NUVCQTYzMDAyREMy
MkQgLyogUHVzaE1lc3NhZ2VGb3JUZXN0aW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjBGNDg5
MDFGOTk2RjcxMDBDRjRCODcgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzExQTlFQ0MyMTQwMzVGODAwQ0ZCMjBBIC8qIFdlYlN3
aXRjaGluZ0dQVUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1NkYyREUyMTUyQjcxMDAw
RTZENURGIC8qIFdlYlNXT3JpZ2luU3RvcmUuaCBpbiBIZWFkZXJzICovLApAQCAtMTUxMDEsMTAg
KzE1MDg1LDcgQEAKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rp
b25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAotCQkJCTUxN0I1RjlBMjc1RjNBODYw
MDJEQzIyRCAvKiBBcmd1bWVudENvZGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTdCNUY2
ODI3NUE5QTc4MDAyREMyMkQgLyogV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tIGluIFNvdXJjZXMg
Ki8sCi0JCQkJNTE3QjVGOUIyNzVGM0E5ODAwMkRDMjJEIC8qIERhZW1vblV0aWxpdGllcy5tbSBp
biBTb3VyY2VzICovLAotCQkJCTUxN0I1RjlDMjc1RjNDMzcwMDJEQzIyRCAvKiBEYWVtb25FbmNv
ZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxN0I1RjY1Mjc1QThEN0YwMDJEQzIyRCAvKiBX
ZWJQdXNoVG9vbE1haW4ubW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKQEAgLTE1MjAwLDcgKzE1MTgxLDYgQEAKIAkJCQlD
REE5M0RCMTIyRjhCQ0Y0MDA0OTBBNjkgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljUGFy
YW1ldGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDMUExNTJENzI0RTVBMjlBMDA5NzhDOEIg
LyogSGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdlcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTI3NDlG
NjQ0MjE0NjU2MUIwMDgzODBCRiAvKiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJNTE3QjVGOTkyNzVFQzYwMTAwMkRDMjJEIC8qIFdlYlB1c2hNZXNzYWdl
Q29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQkyNzQ5RjY0NTIxNDY1NjFFMDA4MzgwQkYgLyog
SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5QkY1RUM2
NDI1NDExNDU2MDA5ODRFNzcgLyogSlNJUENCaW5kaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUMxNEQzN0ZFMjRBQ0UwODYwMDdGRjAxNCAvKiBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdl
ci5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC9Q
dXNoQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9QdXNoQ2xpZW50
Q29ubmVjdGlvbi5oCmluZGV4IDdmYTQzZmQ5ZTA5ZjFiY2I1OWU0ZGE5MDY4NDg4NmMyNjFjNjc2
YmUuLjc2MDUzZWZjMmQ5MWE2NTA4NjA2ZDU0ZTI3ODhmMmRlZTYyZWQ4ODYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvUHVzaENsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hDbGllbnRDb25uZWN0aW9uLmgKQEAgLTU2LDcgKzU2LDYg
QEAgcHVibGljOgogCiAgICAgY29uc3QgU3RyaW5nJiBob3N0QXBwQ29kZVNpZ25pbmdJZGVudGlm
aWVyKCk7CiAgICAgYm9vbCBob3N0QXBwSGFzUHVzaEVudGl0bGVtZW50KCk7Ci0gICAgYm9vbCBo
b3N0QXBwSGFzUHVzaEluamVjdEVudGl0bGVtZW50KCk7CiAKICAgICBib29sIGRlYnVnTW9kZUlz
RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVidWdNb2RlRW5hYmxlZDsgfQogICAgIHZvaWQg
c2V0RGVidWdNb2RlSXNFbmFibGVkKGJvb2wpOwpAQCAtNzYsOCArNzUsNiBAQCBwcml2YXRlOgog
ICAgIHZvaWQgbWF5YmVTdGFydE5leHRBcHBCdW5kbGVSZXF1ZXN0KCk7CiAgICAgdm9pZCBzZXRI
b3N0QXBwQXVkaXRUb2tlbkRhdGEoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+Jik7CiAKLSAgICBib29s
IGhvc3RIYXNFbnRpdGxlbWVudChjb25zdCBjaGFyKik7Ci0KICAgICBPU09iamVjdFB0cjx4cGNf
Y29ubmVjdGlvbl90PiBtX3hwY0Nvbm5lY3Rpb247CiAKICAgICBzdGQ6Om9wdGlvbmFsPGF1ZGl0
X3Rva2VuX3Q+IG1faG9zdEFwcEF1ZGl0VG9rZW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dlYnB1c2hkL1B1c2hDbGllbnRDb25uZWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC93ZWJwdXNo
ZC9QdXNoQ2xpZW50Q29ubmVjdGlvbi5tbQppbmRleCBmODllZjI4MjNiYTM0Y2IyNjljNmU5OWEw
YzljN2IyOTI3YWI0ODc2Li40NWM0MWFmZTE5MDMwZmE5N2NhYjMwNDQxNzQ0NjdkM2YwYWJjODM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hDbGllbnRDb25uZWN0aW9u
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvUHVzaENsaWVudENvbm5lY3Rpb24ubW0K
QEAgLTg5LDI0ICs4OSwxNSBAQCBjb25zdCBTdHJpbmcmIENsaWVudENvbm5lY3Rpb246Omhvc3RB
cHBDb2RlU2lnbmluZ0lkZW50aWZpZXIoKQogCiBib29sIENsaWVudENvbm5lY3Rpb246Omhvc3RB
cHBIYXNQdXNoRW50aXRsZW1lbnQoKQogewotICAgIGlmICghbV9ob3N0QXBwSGFzUHVzaEVudGl0
bGVtZW50KQotICAgICAgICBtX2hvc3RBcHBIYXNQdXNoRW50aXRsZW1lbnQgPSBob3N0SGFzRW50
aXRsZW1lbnQoImNvbS5hcHBsZS5wcml2YXRlLndlYmtpdC53ZWJwdXNoIl9zKTsKKyAgICBpZiAo
IW1faG9zdEFwcEhhc1B1c2hFbnRpdGxlbWVudCkgeworICAgICAgICBpZiAoIW1faG9zdEFwcEF1
ZGl0VG9rZW4pCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG1faG9zdEFwcEhh
c1B1c2hFbnRpdGxlbWVudCA9IFdURjo6aGFzRW50aXRsZW1lbnQoKm1faG9zdEFwcEF1ZGl0VG9r
ZW4sICJjb20uYXBwbGUucHJpdmF0ZS53ZWJraXQud2VicHVzaCIpOworICAgIH0KIAogICAgIHJl
dHVybiAqbV9ob3N0QXBwSGFzUHVzaEVudGl0bGVtZW50OwogfQogCi1ib29sIENsaWVudENvbm5l
Y3Rpb246Omhvc3RBcHBIYXNQdXNoSW5qZWN0RW50aXRsZW1lbnQoKQotewotICAgIHJldHVybiBo
b3N0SGFzRW50aXRsZW1lbnQoImNvbS5hcHBsZS5wcml2YXRlLndlYmtpdC53ZWJwdXNoLmluamVj
dCJfcyk7Ci19Ci0KLWJvb2wgQ2xpZW50Q29ubmVjdGlvbjo6aG9zdEhhc0VudGl0bGVtZW50KGNv
bnN0IGNoYXIqIGVudGl0bGVtZW50KQotewotICAgIGlmICghbV9ob3N0QXBwQXVkaXRUb2tlbikK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBXVEY6Omhhc0VudGl0bGVtZW50KCpt
X2hvc3RBcHBBdWRpdFRva2VuLCBlbnRpdGxlbWVudCk7Ci19Ci0KIHZvaWQgQ2xpZW50Q29ubmVj
dGlvbjo6c2V0RGVidWdNb2RlSXNFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKICAgICBpZiAoZW5h
YmxlZCA9PSBtX2RlYnVnTW9kZUVuYWJsZWQpCkBAIC0xMjEsOSArMTEyLDkgQEAgdm9pZCBDbGll
bnRDb25uZWN0aW9uOjpicm9hZGNhc3REZWJ1Z01lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdl
KQogICAgIFN0cmluZyBtZXNzYWdlSWRlbnRpZmllcjsKICAgICBhdXRvIHNpZ25pbmdJZGVudGlm
ZXIgPSBob3N0QXBwQ29kZVNpZ25pbmdJZGVudGlmaWVyKCk7CiAgICAgaWYgKHNpZ25pbmdJZGVu
dGlmZXIuaXNFbXB0eSgpKQotICAgICAgICBtZXNzYWdlSWRlbnRpZmllciA9IG1ha2VTdHJpbmco
IlsoMHgiLCBoZXgocmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdD4obV94cGNDb25uZWN0aW9uLmdl
dCgpKSwgV1RGOjpIZXhDb252ZXJzaW9uTW9kZTo6TG93ZXJjYXNlKSwgIildICIpOworICAgICAg
ICBtZXNzYWdlSWRlbnRpZmllciA9IG1ha2VTdHJpbmcgKCJbKDB4IiwgaGV4KHJlaW50ZXJwcmV0
X2Nhc3Q8dWludDY0X3Q+KG1feHBjQ29ubmVjdGlvbi5nZXQoKSksIFdURjo6SGV4Q29udmVyc2lv
bk1vZGU6Okxvd2VyY2FzZSksICIpXSAiKTsKICAgICBlbHNlCi0gICAgICAgIG1lc3NhZ2VJZGVu
dGlmaWVyID0gbWFrZVN0cmluZygiWyIsIHNpZ25pbmdJZGVudGlmZXIsICIgKDB4IiwgaGV4KHJl
aW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KG1feHBjQ29ubmVjdGlvbi5nZXQoKSksIFdURjo6SGV4
Q29udmVyc2lvbk1vZGU6Okxvd2VyY2FzZSksICIpXSAiKTsKKyAgICAgICAgbWVzc2FnZUlkZW50
aWZpZXIgPSBtYWtlU3RyaW5nICgiWyIsIHNpZ25pbmdJZGVudGlmZXIsICIgKDB4IiwgaGV4KHJl
aW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KG1feHBjQ29ubmVjdGlvbi5nZXQoKSksIFdURjo6SGV4
Q29udmVyc2lvbk1vZGU6Okxvd2VyY2FzZSksICIpXSAiKTsKIAogICAgIERhZW1vbjo6c2luZ2xl
dG9uKCkuYnJvYWRjYXN0RGVidWdNZXNzYWdlKEpTQzo6TWVzc2FnZUxldmVsOjpJbmZvLCBtYWtl
U3RyaW5nKG1lc3NhZ2VJZGVudGlmaWVyLCBtZXNzYWdlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dlYnB1c2hkL1dlYlB1c2hEYWVtb24uaCBiL1NvdXJjZS9XZWJLaXQvd2VicHVz
aGQvV2ViUHVzaERhZW1vbi5oCmluZGV4IDMzY2NkNTM2NDYzMmY0YzkyOWQyYjE5MzkyYTE4MDY0
ZmVjZjliYWUuLjJhMTJjYTM0NDNlNGE1YjRhMjI1MDY3OWM1ZTg5YzJiY2Q3NDkwYjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5oCkBAIC0yNiwxMSArMjYsOCBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlICJQdXNoQ2xpZW50Q29ubmVjdGlvbi5oIgotI2luY2x1ZGUg
IlB1c2hNZXNzYWdlRm9yVGVzdGluZy5oIgogI2luY2x1ZGUgIldlYlB1c2hEYWVtb25Db25uZWN0
aW9uQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIldlYlB1c2hEYWVtb25Db25zdGFudHMuaCIK
LSNpbmNsdWRlICJXZWJQdXNoTWVzc2FnZS5oIgotI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgpAQCAtNDMsNyArNDAsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIGVudW0g
Y2xhc3MgTWVzc2FnZUxldmVsIDogdWludDhfdDsKIH0KIAotdXNpbmcgV2ViS2l0OjpXZWJQdXNo
RDo6UHVzaE1lc3NhZ2VGb3JUZXN0aW5nOwogdXNpbmcgV2ViS2l0OjpXZWJQdXNoRDo6V2ViUHVz
aERhZW1vbkNvbm5lY3Rpb25Db25maWd1cmF0aW9uOwogCiBuYW1lc3BhY2UgV2ViUHVzaEQgewpA
QCAtNjYsOCArNjIsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWxldGVQdXNoQW5kTm90aWZpY2F0
aW9uUmVnaXN0cmF0aW9uKENsaWVudENvbm5lY3Rpb24qLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0
cmluZywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBTdHJpbmcmKT4mJiByZXBseVNlbmRl
cik7CiAgICAgdm9pZCBzZXREZWJ1Z01vZGVJc0VuYWJsZWQoQ2xpZW50Q29ubmVjdGlvbiosIGJv
b2wpOwogICAgIHZvaWQgdXBkYXRlQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb24oQ2xpZW50Q29ubmVj
dGlvbiosIGNvbnN0IFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlvbiYpOwotICAg
IHZvaWQgaW5qZWN0UHVzaE1lc3NhZ2VGb3JUZXN0aW5nKENsaWVudENvbm5lY3Rpb24qLCBjb25z
dCBQdXNoTWVzc2FnZUZvclRlc3RpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKLSAgICB2b2lkIGdldFBlbmRpbmdQdXNoTWVzc2FnZXMoQ2xpZW50Q29ubmVjdGlvbiosIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYktpdDo6V2ViUHVzaE1lc3NhZ2U+
Jik+JiYgcmVwbHlTZW5kZXIpOwogCiAgICAgdm9pZCBicm9hZGNhc3REZWJ1Z01lc3NhZ2UoSlND
OjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYpOwogCkBAIC04MSw4ICs3NSw2IEBAIHByaXZh
dGU6CiAKICAgICBDbGllbnRDb25uZWN0aW9uKiB0b0NsaWVudENvbm5lY3Rpb24oeHBjX2Nvbm5l
Y3Rpb25fdCk7CiAgICAgSGFzaE1hcDx4cGNfY29ubmVjdGlvbl90LCBSZWY8Q2xpZW50Q29ubmVj
dGlvbj4+IG1fY29ubmVjdGlvbk1hcDsKLQotICAgIEhhc2hNYXA8U3RyaW5nLCBEZXF1ZTxQdXNo
TWVzc2FnZUZvclRlc3Rpbmc+PiBtX3Rlc3RpbmdQdXNoTWVzc2FnZXM7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJQdXNoRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC9XZWJQ
dXNoRGFlbW9uLm1tIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9XZWJQdXNoRGFlbW9uLm1tCmlu
ZGV4IDQyNDI2YmU0YjZhNWYwNDAzOTFkNjkwNTU5NTFkZWMwY2M1YTVhYzQuLmZkN2IyNTAwNTA5
Yjg2M2E0ZmI4YTM0MjJiYTZhZTM0NzcxMjcxMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
d2VicHVzaGQvV2ViUHVzaERhZW1vbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1dl
YlB1c2hEYWVtb24ubW0KQEAgLTcwLDExICs3MCw2IEBAIEFSR1VNRU5UUyhTdHJpbmcpCiBSRVBM
WShib29sKQogRU5ECiAKLUZVTkNUSU9OKGdldFBlbmRpbmdQdXNoTWVzc2FnZXMpCi1BUkdVTUVO
VFMoKQotUkVQTFkoY29uc3QgVmVjdG9yPFdlYktpdDo6V2ViUHVzaE1lc3NhZ2U+JikKLUVORAot
CiBGVU5DVElPTihzZXREZWJ1Z01vZGVJc0VuYWJsZWQpCiBBUkdVTUVOVFMoYm9vbCkKIEVORApA
QCAtODMsMTEgKzc4LDYgQEAgRlVOQ1RJT04odXBkYXRlQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb24p
CiBBUkdVTUVOVFMoV2ViUHVzaERhZW1vbkNvbm5lY3Rpb25Db25maWd1cmF0aW9uKQogRU5ECiAK
LUZVTkNUSU9OKGluamVjdFB1c2hNZXNzYWdlRm9yVGVzdGluZykKLUFSR1VNRU5UUyhQdXNoTWVz
c2FnZUZvclRlc3RpbmcpCi1SRVBMWShib29sKQotRU5ECi0KICN1bmRlZiBGVU5DVElPTgogI3Vu
ZGVmIEFSR1VNRU5UUwogI3VuZGVmIFJFUExZCkBAIC0xMjEsMjAgKzExMSw2IEBAIFdlYlB1c2hE
OjpFbmNvZGVkTWVzc2FnZSByZXF1ZXN0U3lzdGVtTm90aWZpY2F0aW9uUGVybWlzc2lvbjo6ZW5j
b2RlUmVwbHkoYm9vbCByCiAgICAgcmV0dXJuIGVuY29kZXIudGFrZUJ1ZmZlcigpOwogfQogCi1X
ZWJQdXNoRDo6RW5jb2RlZE1lc3NhZ2UgaW5qZWN0UHVzaE1lc3NhZ2VGb3JUZXN0aW5nOjplbmNv
ZGVSZXBseShib29sIHJlcGx5KQotewotICAgIFdlYktpdDo6RGFlbW9uOjpFbmNvZGVyIGVuY29k
ZXI7Ci0gICAgZW5jb2RlciA8PCByZXBseTsKLSAgICByZXR1cm4gZW5jb2Rlci50YWtlQnVmZmVy
KCk7Ci19Ci0KLVdlYlB1c2hEOjpFbmNvZGVkTWVzc2FnZSBnZXRQZW5kaW5nUHVzaE1lc3NhZ2Vz
OjplbmNvZGVSZXBseShjb25zdCBWZWN0b3I8V2ViS2l0OjpXZWJQdXNoTWVzc2FnZT4mIHJlcGx5
KQotewotICAgIFdlYktpdDo6RGFlbW9uOjpFbmNvZGVyIGVuY29kZXI7Ci0gICAgZW5jb2RlciA8
PCByZXBseTsKLSAgICByZXR1cm4gZW5jb2Rlci50YWtlQnVmZmVyKCk7Ci19Ci0KIH0gLy8gbmFt
ZXNwYWNlIE1lc3NhZ2VJbmZvCiAKIHRlbXBsYXRlPHR5cGVuYW1lIEluZm8+CkBAIC0yNTcsMTIg
KzIzMyw2IEBAIHZvaWQgRGFlbW9uOjpkZWNvZGVBbmRIYW5kbGVNZXNzYWdlKHhwY19jb25uZWN0
aW9uX3QgY29ubmVjdGlvbiwgTWVzc2FnZVR5cGUgbWVzCiAgICAgY2FzZSBNZXNzYWdlVHlwZTo6
VXBkYXRlQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb246CiAgICAgICAgIGhhbmRsZVdlYlB1c2hETWVz
c2FnZTxNZXNzYWdlSW5mbzo6dXBkYXRlQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb24+KGNsaWVudENv
bm5lY3Rpb24sIGVuY29kZWRNZXNzYWdlKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBNZXNz
YWdlVHlwZTo6SW5qZWN0UHVzaE1lc3NhZ2VGb3JUZXN0aW5nOgotICAgICAgICBoYW5kbGVXZWJQ
dXNoRE1lc3NhZ2VXaXRoUmVwbHk8TWVzc2FnZUluZm86OmluamVjdFB1c2hNZXNzYWdlRm9yVGVz
dGluZz4oY2xpZW50Q29ubmVjdGlvbiwgZW5jb2RlZE1lc3NhZ2UsIFdURk1vdmUocmVwbHlTZW5k
ZXIpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBNZXNzYWdlVHlwZTo6R2V0UGVuZGluZ1B1
c2hNZXNzYWdlczoKLSAgICAgICAgaGFuZGxlV2ViUHVzaERNZXNzYWdlV2l0aFJlcGx5PE1lc3Nh
Z2VJbmZvOjpnZXRQZW5kaW5nUHVzaE1lc3NhZ2VzPihjbGllbnRDb25uZWN0aW9uLCBlbmNvZGVk
TWVzc2FnZSwgV1RGTW92ZShyZXBseVNlbmRlcikpOwotICAgICAgICBicmVhazsKICAgICB9CiB9
CiAKQEAgLTMyNyw1NSArMjk3LDYgQEAgdm9pZCBEYWVtb246OnVwZGF0ZUNvbm5lY3Rpb25Db25m
aWd1cmF0aW9uKENsaWVudENvbm5lY3Rpb24qIGNsaWVudENvbm5lY3Rpb24sIGMKICAgICBjbGll
bnRDb25uZWN0aW9uLT51cGRhdGVDb25uZWN0aW9uQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9u
KTsKIH0KIAotdm9pZCBEYWVtb246OmluamVjdFB1c2hNZXNzYWdlRm9yVGVzdGluZyhDbGllbnRD
b25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBQdXNoTWVzc2FnZUZvclRlc3RpbmcmIG1lc3Nh
Z2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgcmVwbHlTZW5kZXIpCi17Ci0gICAg
aWYgKCFjb25uZWN0aW9uLT5ob3N0QXBwSGFzUHVzaEluamVjdEVudGl0bGVtZW50KCkpIHsKLSAg
ICAgICAgY29ubmVjdGlvbi0+YnJvYWRjYXN0RGVidWdNZXNzYWdlKCJBdHRlbXB0aW5nIHRvIGlu
amVjdCBhIHB1c2ggbWVzc2FnZSBmcm9tIGFuIHVuZW50aXRsZWQgcHJvY2VzcyIpOwotICAgICAg
ICByZXBseVNlbmRlcihmYWxzZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAo
bWVzc2FnZS50YXJnZXRBcHBDb2RlU2lnbmluZ0lkZW50aWZpZXIuaXNFbXB0eSgpIHx8ICFtZXNz
YWdlLnJlZ2lzdHJhdGlvblVSTC5pc1ZhbGlkKCkpIHsKLSAgICAgICAgY29ubmVjdGlvbi0+YnJv
YWRjYXN0RGVidWdNZXNzYWdlKCJBdHRlbXB0aW5nIHRvIGluamVjdCBhbiBpbnZhbGlkIHB1c2gg
bWVzc2FnZSIpOwotICAgICAgICByZXBseVNlbmRlcihmYWxzZSk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBjb25uZWN0aW9uLT5icm9hZGNhc3REZWJ1Z01lc3NhZ2UobWFrZVN0cmlu
ZygiSW5qZWN0ZWQgYSB0ZXN0IHB1c2ggbWVzc2FzZ2UgZm9yICIsIG1lc3NhZ2UudGFyZ2V0QXBw
Q29kZVNpZ25pbmdJZGVudGlmaWVyLCAiIGF0ICIsIG1lc3NhZ2UucmVnaXN0cmF0aW9uVVJMLnN0
cmluZygpKSk7Ci0gICAgY29ubmVjdGlvbi0+YnJvYWRjYXN0RGVidWdNZXNzYWdlKG1lc3NhZ2Uu
bWVzc2FnZSk7Ci0KLSAgICBhdXRvIGFkZFJlc3VsdCA9IG1fdGVzdGluZ1B1c2hNZXNzYWdlcy5l
bnN1cmUobWVzc2FnZS50YXJnZXRBcHBDb2RlU2lnbmluZ0lkZW50aWZpZXIsIFtdIHsKLSAgICAg
ICAgcmV0dXJuIERlcXVlPFB1c2hNZXNzYWdlRm9yVGVzdGluZz4geyB9OwotICAgIH0pOwotICAg
IGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUuYXBwZW5kKG1lc3NhZ2UpOwotCi0gICAgcmVwbHlT
ZW5kZXIodHJ1ZSk7Ci19Ci0KLXZvaWQgRGFlbW9uOjpnZXRQZW5kaW5nUHVzaE1lc3NhZ2VzKENs
aWVudENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3Qg
VmVjdG9yPFdlYktpdDo6V2ViUHVzaE1lc3NhZ2U+Jik+JiYgcmVwbHlTZW5kZXIpCi17Ci0gICAg
YXV0byBob3N0QXBwQ29kZVNpZ25pbmdJZGVudGlmaWVyID0gY29ubmVjdGlvbi0+aG9zdEFwcENv
ZGVTaWduaW5nSWRlbnRpZmllcigpOwotICAgIGlmIChob3N0QXBwQ29kZVNpZ25pbmdJZGVudGlm
aWVyLmlzRW1wdHkoKSkgewotICAgICAgICByZXBseVNlbmRlcih7IH0pOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgVmVjdG9yPFdlYktpdDo6V2ViUHVzaE1lc3NhZ2U+IHJlc3VsdE1l
c3NhZ2VzOwotCi0gICAgYXV0byBpdGVyYXRvciA9IG1fdGVzdGluZ1B1c2hNZXNzYWdlcy5maW5k
KGhvc3RBcHBDb2RlU2lnbmluZ0lkZW50aWZpZXIpOwotICAgIGlmIChpdGVyYXRvciAhPSBtX3Rl
c3RpbmdQdXNoTWVzc2FnZXMuZW5kKCkpIHsKLSAgICAgICAgZm9yIChhdXRvJiBtZXNzYWdlIDog
aXRlcmF0b3ItPnZhbHVlKSB7Ci0gICAgICAgICAgICBhdXRvIGRhdGEgPSBtZXNzYWdlLm1lc3Nh
Z2UudXRmOCgpOwotICAgICAgICAgICAgcmVzdWx0TWVzc2FnZXMuYXBwZW5kKFdlYktpdDo6V2Vi
UHVzaE1lc3NhZ2UgeyBWZWN0b3I8dWludDhfdD4geyByZWludGVycHJldF9jYXN0PGNvbnN0IHVp
bnQ4X3QqPihkYXRhLmRhdGEoKSksIGRhdGEubGVuZ3RoKCkgfSwgbWVzc2FnZS5yZWdpc3RyYXRp
b25VUkwgfSk7Ci0gICAgICAgIH0KLSAgICAgICAgbV90ZXN0aW5nUHVzaE1lc3NhZ2VzLnJlbW92
ZShpdGVyYXRvcik7Ci0gICAgfQotCi0gICAgY29ubmVjdGlvbi0+YnJvYWRjYXN0RGVidWdNZXNz
YWdlKG1ha2VTdHJpbmcoIkZldGNoaW5nICIsIFN0cmluZzo6bnVtYmVyKHJlc3VsdE1lc3NhZ2Vz
LnNpemUoKSksICIgcGVuZGluZyBwdXNoIG1lc3NhZ2VzIikpOwotCi0gICAgcmVwbHlTZW5kZXIo
V1RGTW92ZShyZXN1bHRNZXNzYWdlcykpOwotfQotCiBDbGllbnRDb25uZWN0aW9uKiBEYWVtb246
OnRvQ2xpZW50Q29ubmVjdGlvbih4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24pCiB7CiAgICAg
YXV0byBjbGllbnRDb25uZWN0aW9uID0gbV9jb25uZWN0aW9uTWFwLmdldChjb25uZWN0aW9uKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRv
b2xDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1
c2hUb29sQ29ubmVjdGlvbi5oCmluZGV4IGJlMmYxNzk5MWM0NzJjOWI4ODMwNzIyMDcwN2JhMWM5
ZWIzMzU1ZWYuLmZmNjIzNmI3YmVlNzA5NDI5MGNjMjljYjg2MDEwY2Q4OTVkYzQ0YzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xDb25u
ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNo
VG9vbENvbm5lY3Rpb24uaApAQCAtMjUsMTUgKzI1LDExIEBACiAKICNwcmFnbWEgb25jZQogCi0j
aW5jbHVkZSAiUHVzaE1lc3NhZ2VGb3JUZXN0aW5nLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2lu
Y2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KICNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9YUENTUEkuaD4KIAotdXNp
bmcgV2ViS2l0OjpXZWJQdXNoRDo6UHVzaE1lc3NhZ2VGb3JUZXN0aW5nOwotCiBuYW1lc3BhY2Ug
V2ViUHVzaFRvb2wgewogCiBlbnVtIGNsYXNzIEFjdGlvbiB7CkBAIC01OCwyNCArNTQsMTkgQEAg
cHVibGljOgogCiAgICAgdm9pZCBjb25uZWN0VG9TZXJ2aWNlKCk7CiAKLSAgICB2b2lkIHNldFB1
c2hNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxQdXNoTWVzc2FnZUZvclRlc3Rpbmc+JiYgbWVzc2Fn
ZSkgeyBtX3B1c2hNZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKTsgfQotCiBwcml2YXRlOgogICAg
IHZvaWQgbWVzc2FnZVJlY2VpdmVkKHhwY19vYmplY3RfdCk7CiAgICAgdm9pZCBjb25uZWN0aW9u
RHJvcHBlZCgpOwogCiAgICAgdm9pZCBzdGFydEFjdGlvbigpOwogICAgIHZvaWQgc3RhcnREZWJ1
Z1N0cmVhbUFjdGlvbigpOwotICAgIHZvaWQgc2VuZFB1c2hNZXNzYWdlKCk7CiAKICAgICB2b2lk
IHNlbmRBdWRpdFRva2VuKCk7Ci0KKyAgICAKICAgICBBY3Rpb24gbV9hY3Rpb247CiAgICAgYm9v
bCBtX3JlY29ubmVjdCB7IGZhbHNlIH07CiAgICAgUmV0YWluUHRyPHhwY19jb25uZWN0aW9uX3Q+
IG1fY29ubmVjdGlvbjsKICAgICBjb25zdCBjaGFyKiBtX3NlcnZpY2VOYW1lOwotCi0gICAgc3Rk
Ojp1bmlxdWVfcHRyPFB1c2hNZXNzYWdlRm9yVGVzdGluZz4gbV9wdXNoTWVzc2FnZTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYlB1c2hUb29sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dl
YnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5tbSBiL1NvdXJjZS9XZWJL
aXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tCmluZGV4IGE0
MzM0ZDY0NjM3NzE1OWRjMmU4ODVhM2FjN2EwODRlZDY4ZWFkNjUuLmJkZTRlNTRlMTFlMDY4MmZj
YjkwN2ZiOTU0NTgxMWFmODY0NWQwMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2VicHVz
aGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tCkBAIC0yNiw5
ICsyNiw2IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIldlYlB1c2hUb29sQ29ubmVj
dGlvbi5oIgogCi0jaW1wb3J0ICJEYWVtb25FbmNvZGVyLmgiCi0jaW1wb3J0ICJEYWVtb25VdGls
aXRpZXMuaCIKLSNpbXBvcnQgIldlYlB1c2hEYWVtb25Db25zdGFudHMuaCIKICNpbXBvcnQgPG1h
Y2gvbWFjaF9pbml0Lmg+CiAjaW1wb3J0IDxtYWNoL3Rhc2suaD4KICNpbXBvcnQgPHBhbC9zcGkv
Y29jb2EvU2VydmVyc1NQSS5oPgpAQCAtMTIxLDI2ICsxMTgsNiBAQCB2b2lkIENvbm5lY3Rpb246
OnN0YXJ0QWN0aW9uKCkKICAgICAgICAgc3RhcnREZWJ1Z1N0cmVhbUFjdGlvbigpOwogICAgICAg
ICBicmVhazsKICAgICB9OwotCi0gICAgaWYgKG1fcHVzaE1lc3NhZ2UpCi0gICAgICAgIHNlbmRQ
dXNoTWVzc2FnZSgpOwotfQotCi12b2lkIENvbm5lY3Rpb246OnNlbmRQdXNoTWVzc2FnZSgpCi17
Ci0gICAgQVNTRVJUKG1fcHVzaE1lc3NhZ2UpOwotCi0gICAgV2ViS2l0OjpEYWVtb246OkVuY29k
ZXIgZW5jb2RlcjsKLSAgICBlbmNvZGVyIDw8ICptX3B1c2hNZXNzYWdlOwotCi0gICAgYXV0byBk
aWN0aW9uYXJ5ID0gYWRvcHROUyh4cGNfZGljdGlvbmFyeV9jcmVhdGUobnVsbHB0ciwgbnVsbHB0
ciwgMCkpOwotICAgIHhwY19kaWN0aW9uYXJ5X3NldF91aW50NjQoZGljdGlvbmFyeS5nZXQoKSwg
V2ViS2l0OjpXZWJQdXNoRDo6cHJvdG9jb2xWZXJzaW9uS2V5LCBXZWJLaXQ6OldlYlB1c2hEOjpw
cm90b2NvbFZlcnNpb25WYWx1ZSk7Ci0gICAgeHBjX2RpY3Rpb25hcnlfc2V0X3ZhbHVlKGRpY3Rp
b25hcnkuZ2V0KCksIFdlYktpdDo6V2ViUHVzaEQ6OnByb3RvY29sRW5jb2RlZE1lc3NhZ2VLZXks
IFdlYktpdDo6dmVjdG9yVG9YUENEYXRhKGVuY29kZXIudGFrZUJ1ZmZlcigpKS5nZXQoKSk7Ci0g
ICAgeHBjX2RpY3Rpb25hcnlfc2V0X3VpbnQ2NChkaWN0aW9uYXJ5LmdldCgpLCBXZWJLaXQ6Oldl
YlB1c2hEOjpwcm90b2NvbE1lc3NhZ2VUeXBlS2V5LCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oV2Vi
S2l0OjpXZWJQdXNoRDo6TWVzc2FnZVR5cGU6OkluamVjdFB1c2hNZXNzYWdlRm9yVGVzdGluZykp
OwotCi0gICAgeHBjX2Nvbm5lY3Rpb25fc2VuZF9tZXNzYWdlX3dpdGhfcmVwbHkobV9jb25uZWN0
aW9uLmdldCgpLCBkaWN0aW9uYXJ5LmdldCgpLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBe
KHhwY19vYmplY3RfdCByZXN1bHRNZXNzYWdlKSB7Ci0gICAgICAgIC8vIFRoaXMgcmVwbHkgaGFu
ZGxlciBpbnRlbnRpb25hbGx5IGxlZnQgYmxhbmsKLSAgICB9KTsKIH0KIAogdm9pZCBDb25uZWN0
aW9uOjpzdGFydERlYnVnU3RyZWFtQWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xNYWluLm1tIGIvU291cmNlL1dlYktpdC93
ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbE1haW4ubW0KaW5kZXggYTU4Nzk1OThkYTRm
Y2JmZmU3OGFmMTlhOTdjYzcwODQ4ZTRmZGIwMC4uNjJmNjc4ZjlmZDY2NjE4MmVlMTVmMjdmZjk3
MDdhMjQxMDkzYWJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNo
dG9vbC9XZWJQdXNoVG9vbE1haW4ubW0KKysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJw
dXNodG9vbC9XZWJQdXNoVG9vbE1haW4ubW0KQEAgLTI0LDE0ICsyNCwxMSBAQAogICovCiAKICNp
bXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiUHVzaE1lc3NhZ2VGb3JUZXN0aW5nLmgiCiAjaW1w
b3J0ICJXZWJQdXNoVG9vbENvbm5lY3Rpb24uaCIKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRh
dGlvbi5oPgogI2ltcG9ydCA8b3B0aW9uYWw+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgog
Ci11c2luZyBXZWJLaXQ6OldlYlB1c2hEOjpQdXNoTWVzc2FnZUZvclRlc3Rpbmc7Ci0KIF9fYXR0
cmlidXRlX18oKF9fbm9yZXR1cm5fXykpCiBzdGF0aWMgdm9pZCBwcmludFVzYWdlQW5kVGVybWlu
YXRlKE5TU3RyaW5nICptZXNzYWdlKQogewpAQCAtMzksNDMgKzM2LDE1IEBAIHN0YXRpYyB2b2lk
IHByaW50VXNhZ2VBbmRUZXJtaW5hdGUoTlNTdHJpbmcgKm1lc3NhZ2UpCiAKICAgICBmcHJpbnRm
KHN0ZGVyciwgIlVzYWdlOiB3ZWJwdXNodG9vbCBbb3B0aW9uc11cbiIpOwogICAgIGZwcmludGYo
c3RkZXJyLCAiXG4iKTsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLS1kZXZlbG9wbWVudFxuIik7
Ci0gICAgZnByaW50ZihzdGRlcnIsICIgICAgQ29ubmVjdHMgdG8gbWFjaCBzZXJ2aWNlIFwib3Jn
LndlYmtpdC53ZWJwdXNodGVzdGRhZW1vbi5zZXJ2aWNlXCIgKERlZmF1bHQpXG4iKTsKLSAgICBm
cHJpbnRmKHN0ZGVyciwgIiAgLS1wcm9kdWN0aW9uXG4iKTsKLSAgICBmcHJpbnRmKHN0ZGVyciwg
IiAgICBDb25uZWN0cyB0byBtYWNoIHNlcnZpY2UgXCJjb20uYXBwbGUud2Via2l0LndlYnB1c2hk
LnNlcnZpY2VcIlxuIik7Ci0gICAgZnByaW50ZihzdGRlcnIsICIgIC0tc3RyZWFtRGVidWdNZXNz
YWdlc1xuIik7Ci0gICAgZnByaW50ZihzdGRlcnIsICIgICAgU3RyZWFtIGRlYnVnIG1lc3NhZ2Vz
IGZyb20gd2VicHVzaGRcbiIpOwotICAgIGZwcmludGYoc3RkZXJyLCAiICAtLXJlY29ubmVjdFxu
Iik7Ci0gICAgZnByaW50ZihzdGRlcnIsICIgICAgUmVjb25uZWN0IGFmdGVyIGNvbm5lY3Rpb24g
aXMgbG9zdFxuIik7Ci0gICAgZnByaW50ZihzdGRlcnIsICIgIC0tcHVzaCA8dGFyZ2V0IGFwcCBp
ZGVudGlmaWVyPiA8cmVnaXN0cmF0aW9uIFVSTD4gPG1lc3NhZ2U+XG4iKTsKLSAgICBmcHJpbnRm
KHN0ZGVyciwgIiAgICBJbmplY3QgYSB0ZXN0IHB1c2ggbWVzc2FzZ2UgdG8gdGhlIHRhcmdldCBh
cHAgYW5kIHJlZ2lzdHJhdGlvbiBVUkxcbiIpOworICAgIGZwcmludGYoc3RkZXJyLCAiICAtLWRl
dmVsb3BtZW50ICAgICAgICAgICAgICBDb25uZWN0cyB0byBtYWNoIHNlcnZpY2UgXCJvcmcud2Vi
a2l0LndlYnB1c2h0ZXN0ZGFlbW9uLnNlcnZpY2VcIiAoRGVmYXVsdClcbiIpOworICAgIGZwcmlu
dGYoc3RkZXJyLCAiICAtLXByb2R1Y3Rpb24gICAgICAgICAgICAgICBDb25uZWN0cyB0byBtYWNo
IHNlcnZpY2UgXCJjb20uYXBwbGUud2Via2l0LndlYnB1c2hkLnNlcnZpY2VcIlxuIik7CisgICAg
ZnByaW50ZihzdGRlcnIsICIgIC0tc3RyZWFtRGVidWdNZXNzYWdlcyAgICAgIFN0cmVhbSBkZWJ1
ZyBtZXNzYWdlcyBmcm9tIHdlYnB1c2hkXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLS1y
ZWNvbm5lY3QgICAgICAgICAgICAgICAgUmVjb25uZWN0IGFmdGVyIGNvbm5lY3Rpb24gaXMgbG9z
dFxuIik7CiAgICAgZnByaW50ZihzdGRlcnIsICJcbiIpOwogCiAgICAgZXhpdCgtMSk7CiB9CiAK
LXN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UHVzaE1lc3NhZ2VGb3JUZXN0aW5nPiBwdXNoTWVzc2Fn
ZUZyb21Bcmd1bWVudHMoTlNFbnVtZXJhdG9yPE5TU3RyaW5nICo+ICplbnVtZXJhdG9yKQotewot
ICAgIE5TU3RyaW5nICphcHBJZGVudGlmaWVyID0gW2VudW1lcmF0b3IgbmV4dE9iamVjdF07Ci0g
ICAgaWYgKCFhcHBJZGVudGlmaWVyKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIE5T
U3RyaW5nICpyZWdpc3RyYXRpb25TdHJpbmcgPSBbZW51bWVyYXRvciBuZXh0T2JqZWN0XTsKLSAg
ICBpZiAoIXJlZ2lzdHJhdGlvblN0cmluZykKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAg
ICBOU1VSTCAqcmVnaXN0cmF0aW9uVVJMID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6cmVnaXN0cmF0
aW9uU3RyaW5nXTsKLSAgICBpZiAoIXJlZ2lzdHJhdGlvblVSTCkKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0KLSAgICBOU1N0cmluZyAqbWVzc2FnZSA9IFtlbnVtZXJhdG9yIG5leHRPYmplY3Rd
OwotICAgIGlmICghbWVzc2FnZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBQdXNo
TWVzc2FnZUZvclRlc3RpbmcgcHVzaE1lc3NhZ2UgPSB7IGFwcElkZW50aWZpZXIsIHJlZ2lzdHJh
dGlvblVSTCwgbWVzc2FnZSB9OwotICAgIHJldHVybiBtYWtlVW5pcXVlV2l0aG91dEZhc3RNYWxs
b2NDaGVjazxQdXNoTWVzc2FnZUZvclRlc3Rpbmc+KFdURk1vdmUocHVzaE1lc3NhZ2UpKTsKLX0K
LQogaW50IG1haW4oaW50LCBjb25zdCBjaGFyICoqKQogewogICAgIFdURjo6aW5pdGlhbGl6ZU1h
aW5UaHJlYWQoKTsKQEAgLTgzLDE2ICs1MiwxMyBAQCBpbnQgbWFpbihpbnQsIGNvbnN0IGNoYXIg
KiopCiAgICAgYXV0byBwcmVmZXJUZXN0U2VydmljZSA9IFdlYlB1c2hUb29sOjpQcmVmZXJUZXN0
U2VydmljZTo6WWVzOwogICAgIGF1dG8gcmVjb25uZWN0ID0gV2ViUHVzaFRvb2w6OlJlY29ubmVj
dDo6Tm87CiAgICAgc3RkOjpvcHRpb25hbDxXZWJQdXNoVG9vbDo6QWN0aW9uPiBhY3Rpb247Ci0g
ICAgc3RkOjp1bmlxdWVfcHRyPFB1c2hNZXNzYWdlRm9yVGVzdGluZz4gcHVzaE1lc3NhZ2U7CiAK
ICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKICAgICAgICAgTlNBcnJheSAqYXJndW1lbnRzID0gW1tO
U1Byb2Nlc3NJbmZvIHByb2Nlc3NJbmZvXSBhcmd1bWVudHNdOwogICAgICAgICBpZiAoYXJndW1l
bnRzLmNvdW50ID09IDEpCiAgICAgICAgICAgICBwcmludFVzYWdlQW5kVGVybWluYXRlKEAiTm8g
YXJndW1lbnRzIHByb3ZpZGVkIik7CiAKLSAgICAgICAgTlNFbnVtZXJhdG9yPE5TU3RyaW5nICo+
ICplbnVtZXJhdG9yID0gW1thcmd1bWVudHMgc3ViYXJyYXlXaXRoUmFuZ2U6TlNNYWtlUmFuZ2Uo
MSwgYXJndW1lbnRzLmNvdW50IC0gMSldIG9iamVjdEVudW1lcmF0b3JdOwotICAgICAgICBOU1N0
cmluZyAqYXJndW1lbnQgPSBbZW51bWVyYXRvciBuZXh0T2JqZWN0XTsKLSAgICAgICAgd2hpbGUg
KGFyZ3VtZW50KSB7CisgICAgICAgIGZvciAoTlNTdHJpbmcgKmFyZ3VtZW50IGluIFthcmd1bWVu
dHMgc3ViYXJyYXlXaXRoUmFuZ2U6TlNNYWtlUmFuZ2UoMSwgYXJndW1lbnRzLmNvdW50IC0gMSld
KSB7CiAgICAgICAgICAgICBpZiAoW2FyZ3VtZW50IGlzRXF1YWxUb1N0cmluZzpAIi0tcHJvZHVj
dGlvbiJdKQogICAgICAgICAgICAgICAgIHByZWZlclRlc3RTZXJ2aWNlID0gV2ViUHVzaFRvb2w6
OlByZWZlclRlc3RTZXJ2aWNlOjpObzsKICAgICAgICAgICAgIGVsc2UgaWYgKFthcmd1bWVudCBp
c0VxdWFsVG9TdHJpbmc6QCItLWRldmVsb3BtZW50Il0pCkBAIC0xMDEsMjQgKzY3LDE1IEBAIGlu
dCBtYWluKGludCwgY29uc3QgY2hhciAqKikKICAgICAgICAgICAgICAgICBhY3Rpb24gPSBXZWJQ
dXNoVG9vbDo6QWN0aW9uOjpTdHJlYW1EZWJ1Z01lc3NhZ2VzOwogICAgICAgICAgICAgZWxzZSBp
ZiAoW2FyZ3VtZW50IGlzRXF1YWxUb1N0cmluZzpAIi0tcmVjb25uZWN0Il0pCiAgICAgICAgICAg
ICAgICAgcmVjb25uZWN0ID0gV2ViUHVzaFRvb2w6OlJlY29ubmVjdDo6WWVzOwotICAgICAgICAg
ICAgZWxzZSBpZiAoW2FyZ3VtZW50IGlzRXF1YWxUb1N0cmluZzpAIi0tcHVzaCJdKSB7Ci0gICAg
ICAgICAgICAgICAgcHVzaE1lc3NhZ2UgPSBwdXNoTWVzc2FnZUZyb21Bcmd1bWVudHMoZW51bWVy
YXRvcik7Ci0gICAgICAgICAgICAgICAgaWYgKCFwdXNoTWVzc2FnZSkKLSAgICAgICAgICAgICAg
ICAgICAgcHJpbnRVc2FnZUFuZFRlcm1pbmF0ZShbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpA
IkludmFsaWQgcHVzaCBhcmd1bWVudHMgc3BlY2lmaWVkIl0pOwotICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcHJpbnRVc2FnZUFuZFRlcm1pbmF0
ZShbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIkludmFsaWQgb3B0aW9uIHByb3ZpZGVkOiAl
QCIsIGFyZ3VtZW50XSk7Ci0KLSAgICAgICAgICAgIGFyZ3VtZW50ID0gW2VudW1lcmF0b3IgbmV4
dE9iamVjdF07CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIWFjdGlvbiAmJiAhcHVzaE1l
c3NhZ2UpCisgICAgaWYgKCFhY3Rpb24pCiAgICAgICAgIHByaW50VXNhZ2VBbmRUZXJtaW5hdGUo
QCJObyBhY3Rpb24gcHJvdmlkZWQiKTsKIAogICAgIGF1dG8gY29ubmVjdGlvbiA9IFdlYlB1c2hU
b29sOjpDb25uZWN0aW9uOjpjcmVhdGUoKmFjdGlvbiwgcHJlZmVyVGVzdFNlcnZpY2UsIHJlY29u
bmVjdCk7Ci0gICAgaWYgKHB1c2hNZXNzYWdlKQotICAgICAgICBjb25uZWN0aW9uLT5zZXRQdXNo
TWVzc2FnZShXVEZNb3ZlKHB1c2hNZXNzYWdlKSk7Ci0KICAgICBjb25uZWN0aW9uLT5jb25uZWN0
VG9TZXJ2aWNlKCk7CiAKICAgICBDRlJ1bkxvb3BSdW4oKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhOGU4NzFiMGFmMWEzNGIwNTcyMDAxYjNj
YTM3OWQ2MGI5MTA1ZTI5Li5mYTI4ZDJhN2RhNTQwOTllZDEzNzhiMTMzMjM2YmM3MWI5ZjUwYmQz
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMjEtMTItMDkgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJr
aXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjg2NzY0LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MDgxCisKKyAgICAg
ICAgYnJva2UgdGhlIGJ1aWxkCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAg
ICAgICJBZGQgYWJpbGl0eSB0byBpbmplY3QgbWVzc2FnZXMgaW50byB3ZWJwdXNoZCIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzk4OAorICAgICAg
ICBodHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy9yMjg2NzY0CisKIDIwMjEtMTItMDkgIE15bGVz
IEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4gYW5kIERvbiBPbG1zdGVhZCAgPGRv
bi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBNb3ZlIFRleHRDb2RlYyBmaWxlcyBmcm9t
IFdlYkNvcmUvcGxhdGZvcm0vdGV4dCB0byBXZWJDb3JlL1BBTC90ZXh0CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEktaU9TLmVudGl0
bGVtZW50cyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQ
SS1pT1MuZW50aXRsZW1lbnRzCmluZGV4IDFlNWU4N2EyOWEzNDkyMmVmYjQxY2ZhZTZlM2FkNTA4
Y2Q4NjhhNTEuLjJmZDBlYWYyNTFhZWEwOGJiNmE5ZTEyY2UyNTBkMjA3YjI5NGQ4MmIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS1p
T1MuZW50aXRsZW1lbnRzCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMv
VGVzdFdlYktpdEFQSS1pT1MuZW50aXRsZW1lbnRzCkBAIC0xMiw4ICsxMiw2IEBACiAJPHRydWUv
PgogCTxrZXk+Y29tLmFwcGxlLnByaXZhdGUud2Via2l0LndlYnB1c2g8L2tleT4KIAk8dHJ1ZS8+
Ci0JPGtleT5jb20uYXBwbGUucHJpdmF0ZS53ZWJraXQud2VicHVzaC5pbmplY3Q8L2tleT4KLQk8
dHJ1ZS8+CiAJPGtleT5jb20uYXBwbGUucHJpdmF0ZS54cGMubGF1bmNoZC5qb2ItbWFuYWdlcjwv
a2V5PgogCTxzdHJpbmc+VGVzdFdlYktpdEFQSTwvc3RyaW5nPgogPC9kaWN0PgpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLW1hY09T
LWludGVybmFsLmVudGl0bGVtZW50cyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlv
bnMvVGVzdFdlYktpdEFQSS1tYWNPUy1pbnRlcm5hbC5lbnRpdGxlbWVudHMKaW5kZXggNmZjMjRj
NGEwNDU2NTRhYmY4M2E1ZjlkNGI1NzY4MjExMTEwZGIzMC4uZjZmNTRlMTc0MjVmNThkYzRkOTMx
NmJiNjUzMWFjZWI3MjU3NTY3NSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25m
aWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLW1hY09TLWludGVybmFsLmVudGl0bGVtZW50cworKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEktbWFjT1Mt
aW50ZXJuYWwuZW50aXRsZW1lbnRzCkBAIC02LDggKzYsNiBAQAogCTxzdHJpbmc+VGVzdFdlYktp
dEFQSTwvc3RyaW5nPgogCTxrZXk+Y29tLmFwcGxlLnByaXZhdGUud2Via2l0LndlYnB1c2g8L2tl
eT4KIAk8dHJ1ZS8+Ci0JPGtleT5jb20uYXBwbGUucHJpdmF0ZS53ZWJraXQud2VicHVzaC5pbmpl
Y3Q8L2tleT4KLQk8dHJ1ZS8+CiAJPGtleT5jb20uYXBwbGUuaGlkLm1hbmFnZXIudXNlci1hY2Nl
c3MtZGV2aWNlPC9rZXk+CiAJPHRydWUvPgogCTxrZXk+Y29tLmFwcGxlLnByaXZhdGUuaGlkLmNs
aWVudC5ldmVudC1maWx0ZXI8L2tleT4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
Q29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS1tYWNPUy5lbnRpdGxlbWVudHMgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEktbWFjT1MuZW50aXRsZW1l
bnRzCmluZGV4IGNjOTYyMTA0YTM0OTc5ZTYyMDRkNDI1ZDRmYjIyZjQ3MGY5MzFkNGQuLjllNjEx
NzY0OWFjZDg5MWRlMzhjODE1ZTRhMmI3YjE4MmI1YzVjZDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS1tYWNPUy5lbnRpdGxlbWVu
dHMKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJ
LW1hY09TLmVudGl0bGVtZW50cwpAQCAtMTAsOCArMTAsNiBAQAogCTwvYXJyYXk+CiAJPGtleT5j
b20uYXBwbGUucHJpdmF0ZS53ZWJraXQud2VicHVzaDwva2V5PgogCTx0cnVlLz4KLQk8a2V5PmNv
bS5hcHBsZS5wcml2YXRlLndlYmtpdC53ZWJwdXNoLmluamVjdDwva2V5PgotCTx0cnVlLz4KIAk8
a2V5PmNvbS5hcHBsZS5zZWN1cml0eS50ZW1wb3JhcnktZXhjZXB0aW9uLnNicGw8L2tleT4KIAk8
YXJyYXk+CiAJCTxzdHJpbmc+KGFsbG93IG1hY2gtaXNzdWUtZXh0ZW5zaW9uIChyZXF1aXJlLWFs
bCAoZXh0ZW5zaW9uLWNsYXNzICZxdW90O2NvbS5hcHBsZS53ZWJraXQuZXh0ZW5zaW9uLm1hY2gm
cXVvdDspKSk8L3N0cmluZz4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvUHVzaEFQSS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvUHVzaEFQSS5tbQppbmRleCBiNjcyOTY3OGFmOTk4NTdkMmFmZjkwYzNjYWU0M2U2ZmIy
NDdjYWI0Li5jNGE3MzY0ZDc1NGM3NmMyMGFkNzllZjg3ODQ5YTRiZTgxNTJlMWVhIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1B1c2hBUEkubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QdXNoQVBJLm1tCkBAIC0z
NCwxNCArMzQsNiBAQAogI2ltcG9ydCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUu
aD4KICNpbXBvcnQgPFdlYktpdC9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oPgog
Ci1zdGF0aWMgTlNEaWN0aW9uYXJ5ICptZXNzYWdlRGljdGlvbmFyeShOU0RhdGEgKmRhdGEsIE5T
VVJMICpyZWdpc3RyYXRpb24pCi17Ci0gICAgcmV0dXJuIEB7Ci0gICAgICAgIEAiV2ViS2l0UHVz
aERhdGEiIDogZGF0YSwKLSAgICAgICAgQCJXZWJLaXRQdXNoUmVnaXN0cmF0aW9uVVJMIiA6IHJl
Z2lzdHJhdGlvbgotICAgIH07Ci19Ci0KIHN0YXRpYyBTdHJpbmcgZXhwZWN0ZWRNZXNzYWdlOwog
CiBAaW50ZXJmYWNlIFB1c2hBUElNZXNzYWdlSGFuZGxlcldpdGhFeHBlY3RlZE1lc3NhZ2UgOiBO
U09iamVjdCA8V0tTY3JpcHRNZXNzYWdlSGFuZGxlcj4KQEAgLTE1NCw4ICsxNDYsNyBAQCBURVNU
KFB1c2hBUEksIGZpcmVQdXNoRXZlbnQpCiAgICAgcHVzaE1lc3NhZ2VTdWNjZXNzZnVsID0gZmFs
c2U7CiAgICAgTlNTdHJpbmcgKm1lc3NhZ2UgPSBAIlN3ZWV0IFBvdGF0b2VzIjsKICAgICBleHBl
Y3RlZE1lc3NhZ2UgPSAiUmVjZWl2ZWQ6IFN3ZWV0IFBvdGF0b2VzIjsKLQotICAgIFtbY29uZmln
dXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSBfcHJvY2Vzc1B1c2hNZXNzYWdlOm1lc3NhZ2VEaWN0
aW9uYXJ5KFttZXNzYWdlIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXSwg
W3NlcnZlci5yZXF1ZXN0KCkgVVJMXSkgY29tcGxldGlvbkhhbmRsZXI6Xihib29sIHJlc3VsdCkg
eworICAgIFtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSBfcHJvY2Vzc1B1c2hNZXNz
YWdlOlttZXNzYWdlIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXSByZWdp
c3RyYXRpb246W3NlcnZlci5yZXF1ZXN0KCkgVVJMXSBjb21wbGV0aW9uSGFuZGxlcjpeKGJvb2wg
cmVzdWx0KSB7CiAgICAgICAgIHB1c2hNZXNzYWdlU3VjY2Vzc2Z1bCA9IHJlc3VsdDsKICAgICAg
ICAgcHVzaE1lc3NhZ2VQcm9jZXNzZWQgPSB0cnVlOwogICAgIH1dOwpAQCAtMTY5LDcgKzE2MCw3
IEBAIFRFU1QoUHVzaEFQSSwgZmlyZVB1c2hFdmVudCkKICAgICBwdXNoTWVzc2FnZVN1Y2Nlc3Nm
dWwgPSBmYWxzZTsKICAgICBtZXNzYWdlID0gQCJSb3R0ZW4gUG90YXRvZXMiOwogICAgIGV4cGVj
dGVkTWVzc2FnZSA9ICJSZWNlaXZlZDogUm90dGVuIFBvdGF0b2VzIjsKLSAgICBbW2NvbmZpZ3Vy
YXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gX3Byb2Nlc3NQdXNoTWVzc2FnZTptZXNzYWdlRGljdGlv
bmFyeShbbWVzc2FnZSBkYXRhVXNpbmdFbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10sIFtz
ZXJ2ZXIucmVxdWVzdCgpIFVSTF0pIGNvbXBsZXRpb25IYW5kbGVyOl4oYm9vbCByZXN1bHQpIHsK
KyAgICBbW2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gX3Byb2Nlc3NQdXNoTWVzc2Fn
ZTpbbWVzc2FnZSBkYXRhVXNpbmdFbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10gcmVnaXN0
cmF0aW9uOltzZXJ2ZXIucmVxdWVzdCgpIFVSTF0gY29tcGxldGlvbkhhbmRsZXI6Xihib29sIHJl
c3VsdCkgewogICAgICAgICBwdXNoTWVzc2FnZVN1Y2Nlc3NmdWwgPSByZXN1bHQ7CiAgICAgICAg
IHB1c2hNZXNzYWdlUHJvY2Vzc2VkID0gdHJ1ZTsKICAgICB9XTsKQEAgLTI0Myw3ICsyMzQsNyBA
QCBURVNUKFB1c2hBUEksIGZpcmVQdXNoRXZlbnRXaXRoTm9QYWdlc1N1Y2Nlc3NmdWwpCiAgICAg
cHVzaE1lc3NhZ2VQcm9jZXNzZWQgPSBmYWxzZTsKICAgICBwdXNoTWVzc2FnZVN1Y2Nlc3NmdWwg
PSBmYWxzZTsKICAgICBOU1N0cmluZyAqbWVzc2FnZSA9IEAiU3dlZXQgUG90YXRvZXMiOwotICAg
IFtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSBfcHJvY2Vzc1B1c2hNZXNzYWdlOm1l
c3NhZ2VEaWN0aW9uYXJ5KFttZXNzYWdlIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0Vu
Y29kaW5nXSwgW3NlcnZlci5yZXF1ZXN0KCkgVVJMXSkgY29tcGxldGlvbkhhbmRsZXI6Xihib29s
IHJlc3VsdCkgeworICAgIFtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSBfcHJvY2Vz
c1B1c2hNZXNzYWdlOlttZXNzYWdlIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29k
aW5nXSByZWdpc3RyYXRpb246W3NlcnZlci5yZXF1ZXN0KCkgVVJMXSBjb21wbGV0aW9uSGFuZGxl
cjpeKGJvb2wgcmVzdWx0KSB7CiAgICAgICAgIHB1c2hNZXNzYWdlU3VjY2Vzc2Z1bCA9IHJlc3Vs
dDsKICAgICAgICAgcHVzaE1lc3NhZ2VQcm9jZXNzZWQgPSB0cnVlOwogICAgIH1dOwpAQCAtMjg4
LDcgKzI3OSw3IEBAIFRFU1QoUHVzaEFQSSwgZmlyZVB1c2hFdmVudFdpdGhOb1BhZ2VzRmFpbCkK
ICAgICBwdXNoTWVzc2FnZVByb2Nlc3NlZCA9IGZhbHNlOwogICAgIHB1c2hNZXNzYWdlU3VjY2Vz
c2Z1bCA9IGZhbHNlOwogICAgIE5TU3RyaW5nICptZXNzYWdlID0gQCJSb3R0ZW4gUG90YXRvZXMi
OwotICAgIFtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSBfcHJvY2Vzc1B1c2hNZXNz
YWdlOm1lc3NhZ2VEaWN0aW9uYXJ5KFttZXNzYWdlIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0
cmluZ0VuY29kaW5nXSwgW3NlcnZlci5yZXF1ZXN0KCkgVVJMXSkgY29tcGxldGlvbkhhbmRsZXI6
Xihib29sIHJlc3VsdCkgeworICAgIFtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSBf
cHJvY2Vzc1B1c2hNZXNzYWdlOlttZXNzYWdlIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmlu
Z0VuY29kaW5nXSByZWdpc3RyYXRpb246W3NlcnZlci5yZXF1ZXN0KCkgVVJMXSBjb21wbGV0aW9u
SGFuZGxlcjpeKGJvb2wgcmVzdWx0KSB7CiAgICAgICAgIHB1c2hNZXNzYWdlU3VjY2Vzc2Z1bCA9
IHJlc3VsdDsKICAgICAgICAgcHVzaE1lc3NhZ2VQcm9jZXNzZWQgPSB0cnVlOwogICAgIH1dOwpA
QCAtMzQxLDcgKzMzMiw3IEBAIFRFU1QoUHVzaEFQSSwgZmlyZVB1c2hFdmVudFdpdGhOb1BhZ2Vz
VGltZW91dCkKICAgICBwdXNoTWVzc2FnZVByb2Nlc3NlZCA9IGZhbHNlOwogICAgIHB1c2hNZXNz
YWdlU3VjY2Vzc2Z1bCA9IGZhbHNlOwogICAgIE5TU3RyaW5nICptZXNzYWdlID0gQCJUaW1lbGVz
cyBQb3RhdG9lcyI7Ci0gICAgW1tjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIF9wcm9j
ZXNzUHVzaE1lc3NhZ2U6bWVzc2FnZURpY3Rpb25hcnkoW21lc3NhZ2UgZGF0YVVzaW5nRW5jb2Rp
bmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddLCBbc2VydmVyLnJlcXVlc3QoKSBVUkxdKSBjb21wbGV0
aW9uSGFuZGxlcjpeKGJvb2wgcmVzdWx0KSB7CisgICAgW1tjb25maWd1cmF0aW9uIHdlYnNpdGVE
YXRhU3RvcmVdIF9wcm9jZXNzUHVzaE1lc3NhZ2U6W21lc3NhZ2UgZGF0YVVzaW5nRW5jb2Rpbmc6
TlNVVEY4U3RyaW5nRW5jb2RpbmddIHJlZ2lzdHJhdGlvbjpbc2VydmVyLnJlcXVlc3QoKSBVUkxd
IGNvbXBsZXRpb25IYW5kbGVyOl4oYm9vbCByZXN1bHQpIHsKICAgICAgICAgcHVzaE1lc3NhZ2VT
dWNjZXNzZnVsID0gcmVzdWx0OwogICAgICAgICBwdXNoTWVzc2FnZVByb2Nlc3NlZCA9IHRydWU7
CiAgICAgfV07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dlYlB1c2hEYWVtb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dlYlB1c2hEYWVtb24ubW0KaW5kZXggZDY2ZTQ0MGI2M2Q2ZTExMGI5NDJhOTk4MWIxZTlj
YTM2OTJhNjU4ZC4uNzNmNGMyOGY4OTUwMDA0MzJhM2M0NzhmMDNhZGVmMzE4NzhkNmUwMyAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQdXNoRGFl
bW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHVz
aERhZW1vbi5tbQpAQCAtMjYsNyArMjYsNiBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAKICNpbXBv
cnQgIkRhZW1vblRlc3RVdGlsaXRpZXMuaCIKLSNpbXBvcnQgIkhUVFBTZXJ2ZXIuaCIKICNpbXBv
cnQgIlRlc3QuaCIKICNpbXBvcnQgIlRlc3RVUkxTY2hlbWVIYW5kbGVyLmgiCiAjaW1wb3J0ICJU
ZXN0V0tXZWJWaWV3LmgiCkBAIC0zNiw2ICszNSw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJz
aXRlRGF0YVN0b3JlUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L19XS0V4cGVyaW1lbnRhbEZl
YXR1cmUuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5oPgorI2ltcG9ydCA8YXJyYXk+CiAjaW1wb3J0IDxtYWNoL21hY2hfaW5pdC5oPgogI2ltcG9y
dCA8bWFjaC90YXNrLmg+CiAKQEAgLTE2Miw4NSArMTYyLDYgQEAgc3RhdGljIHZvaWQgY2xlYW5V
cFRlc3RXZWJQdXNoRChOU1VSTCAqdGVtcERpcikKICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CiB9
CiAKLXN0YXRpYyBSZXRhaW5QdHI8eHBjX29iamVjdF90PiBjcmVhdGVNZXNzYWdlRGljdGlvbmFy
eSh1aW50OF90IG1lc3NhZ2VUeXBlLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIG1lc3NhZ2UpCi17
Ci0gICAgYXV0byBkaWN0aW9uYXJ5ID0gYWRvcHROUyh4cGNfZGljdGlvbmFyeV9jcmVhdGUobnVs
bHB0ciwgbnVsbHB0ciwgMCkpOwotICAgIHhwY19kaWN0aW9uYXJ5X3NldF91aW50NjQoZGljdGlv
bmFyeS5nZXQoKSwgInByb3RvY29sIHZlcnNpb24iLCAxKTsKLSAgICB4cGNfZGljdGlvbmFyeV9z
ZXRfdWludDY0KGRpY3Rpb25hcnkuZ2V0KCksICJtZXNzYWdlIHR5cGUiLCBtZXNzYWdlVHlwZSk7
Ci0gICAgeHBjX2RpY3Rpb25hcnlfc2V0X2RhdGEoZGljdGlvbmFyeS5nZXQoKSwgImVuY29kZWQg
bWVzc2FnZSIsIG1lc3NhZ2UuZGF0YSgpLCBtZXNzYWdlLnNpemUoKSk7Ci0gICAgcmV0dXJuIFdU
Rk1vdmUoZGljdGlvbmFyeSk7Ci19Ci0KLS8vIFVzZXMgYW4gZXhpc3RpbmcgY29ubmVjdGlvbiB0
byB0aGUgZGFlbW9uIGZvciBhIG9uZS1vZmYgbWVzc2FnZQotdm9pZCBzZW5kTWVzc2FnZVRvRGFl
bW9uKHhwY19jb25uZWN0aW9uX3QgY29ubmVjdGlvbiwgdWludDhfdCBtZXNzYWdlVHlwZSwgY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiBtZXNzYWdlKQotewotICAgIGF1dG8gZGljdGlvbmFyeSA9IGNy
ZWF0ZU1lc3NhZ2VEaWN0aW9uYXJ5KG1lc3NhZ2VUeXBlLCBtZXNzYWdlKTsKLSAgICB4cGNfY29u
bmVjdGlvbl9zZW5kX21lc3NhZ2UoY29ubmVjdGlvbiwgZGljdGlvbmFyeS5nZXQoKSk7Ci19Ci0K
LS8vIFVzZXMgYW4gZXhpc3RpbmcgY29ubmVjdGlvbiB0byB0aGUgZGFlbW9uIGZvciBhIG9uZS1v
ZmYgbWVzc2FnZSwgd2FpdGluZyBmb3IgdGhlIHJlcGx5Ci12b2lkIHNlbmRNZXNzYWdlVG9EYWVt
b25XYWl0aW5nRm9yUmVwbHkoeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0aW9uLCB1aW50OF90IG1l
c3NhZ2VUeXBlLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIG1lc3NhZ2UpCi17Ci0gICAgYXV0byBk
aWN0aW9uYXJ5ID0gY3JlYXRlTWVzc2FnZURpY3Rpb25hcnkobWVzc2FnZVR5cGUsIG1lc3NhZ2Up
OwotCi0gICAgX19ibG9jayBib29sIGRvbmUgPSBmYWxzZTsKLSAgICB4cGNfY29ubmVjdGlvbl9z
ZW5kX21lc3NhZ2Vfd2l0aF9yZXBseShjb25uZWN0aW9uLCBkaWN0aW9uYXJ5LmdldCgpLCBkaXNw
YXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeKHhwY19vYmplY3RfdCByZXF1ZXN0KSB7Ci0gICAgICAg
IGRvbmUgPSB0cnVlOwotICAgIH0pOwotCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKLX0KLQotc3RhdGljIHZvaWQgc2VuZENvbmZpZ3VyYXRpb25XaXRoQXVkaXRUb2tlbih4
cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24pCi17Ci0gICAgYXVkaXRfdG9rZW5fdCB0b2tlbiA9
IHsgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCB9OwotICAgIG1hY2hfbXNnX3R5cGVfbnVtYmVyX3Qg
YXVkaXRUb2tlbkNvdW50ID0gVEFTS19BVURJVF9UT0tFTl9DT1VOVDsKLSAgICBrZXJuX3JldHVy
bl90IHJlc3VsdCA9IHRhc2tfaW5mbyhtYWNoX3Rhc2tfc2VsZigpLCBUQVNLX0FVRElUX1RPS0VO
LCAodGFza19pbmZvX3QpKCZ0b2tlbiksICZhdWRpdFRva2VuQ291bnQpOwotICAgIGlmIChyZXN1
bHQgIT0gS0VSTl9TVUNDRVNTKSB7Ci0gICAgICAgIEVYUEVDVF9UUlVFKGZhbHNlKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQotICAgIC8vIFNlbmQgY29uZmlndXJhdGlvbiB3aXRoIGF1ZGl0
IHRva2VuCi0gICAgewotICAgICAgICBWZWN0b3I8dWludDhfdD4gZW5jb2RlZE1lc3NhZ2UoNDIp
OwotICAgICAgICBlbmNvZGVkTWVzc2FnZS5maWxsKDApOwotICAgICAgICBlbmNvZGVkTWVzc2Fn
ZVsxXSA9IDE7Ci0gICAgICAgIGVuY29kZWRNZXNzYWdlWzJdID0gMzI7Ci0gICAgICAgIG1lbWNw
eSgmZW5jb2RlZE1lc3NhZ2VbMTBdLCAmdG9rZW4sIHNpemVvZih0b2tlbikpOwotICAgICAgICBz
ZW5kTWVzc2FnZVRvRGFlbW9uKGNvbm5lY3Rpb24sIDYsIGVuY29kZWRNZXNzYWdlKTsKLSAgICB9
Ci19Ci0KLVJldGFpblB0cjx4cGNfY29ubmVjdGlvbl90PiBjcmVhdGVBbmRDb25maWd1cmVDb25u
ZWN0aW9uVG9TZXJ2aWNlKGNvbnN0IGNoYXIqIHNlcnZpY2VOYW1lKQotewotICAgIGF1dG8gY29u
bmVjdGlvbiA9IGFkb3B0TlMoeHBjX2Nvbm5lY3Rpb25fY3JlYXRlX21hY2hfc2VydmljZShzZXJ2
aWNlTmFtZSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgMCkpOwotICAgIHhwY19jb25uZWN0
aW9uX3NldF9ldmVudF9oYW5kbGVyKGNvbm5lY3Rpb24uZ2V0KCksIF4oeHBjX29iamVjdF90KSB7
IH0pOwotICAgIHhwY19jb25uZWN0aW9uX2FjdGl2YXRlKGNvbm5lY3Rpb24uZ2V0KCkpOwotICAg
IHNlbmRDb25maWd1cmF0aW9uV2l0aEF1ZGl0VG9rZW4oY29ubmVjdGlvbi5nZXQoKSk7Ci0KLSAg
ICByZXR1cm4gV1RGTW92ZShjb25uZWN0aW9uKTsKLX0KLQotc3RhdGljIFZlY3Rvcjx1aW50OF90
PiBlbmNvZGVTdHJpbmcoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQotewotICAgIEFTU0VSVChtZXNz
YWdlLmlzOEJpdCgpKTsKLSAgICBhdXRvIHV0ZjggPSBtZXNzYWdlLnV0ZjgoKTsKLQotICAgIFZl
Y3Rvcjx1aW50OF90PiByZXN1bHQodXRmOC5sZW5ndGgoKSArIDUpOwotICAgIHJlc3VsdFswXSA9
IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHV0ZjgubGVuZ3RoKCkpOwotICAgIHJlc3VsdFsxXSA9IHN0
YXRpY19jYXN0PHVpbnQ4X3Q+KHV0ZjgubGVuZ3RoKCkgPj4gOCk7Ci0gICAgcmVzdWx0WzJdID0g
c3RhdGljX2Nhc3Q8dWludDhfdD4odXRmOC5sZW5ndGgoKSA+PiAxNik7Ci0gICAgcmVzdWx0WzNd
ID0gc3RhdGljX2Nhc3Q8dWludDhfdD4odXRmOC5sZW5ndGgoKSA+PiAyNCk7Ci0gICAgcmVzdWx0
WzRdID0gMHgwMTsKLQotICAgIGF1dG8gZGF0YSA9IHV0ZjguZGF0YSgpOwotICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgdXRmOC5sZW5ndGgoKTsgKytpKQotICAgICAgICByZXN1bHRbNSArIGld
ID0gZGF0YVtpXTsKLQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KIC8vIEZJWE1FOiBSZS1lbmFi
bGUgdGhpcyB0ZXN0IG9uIE1hYyBvbmNlIHdlYmtpdC5vcmcvMjMyODU3IGlzIHJlc29sdmVkLgog
I2lmIFBMQVRGT1JNKE1BQykKIFRFU1QoV2ViUHVzaEQsIERJU0FCTEVEX0Jhc2ljQ29tbXVuaWNh
dGlvbikKQEAgLTI3NSwyMCArMTk2LDQ0IEBAIFRFU1QoV2ViUHVzaEQsIEJhc2ljQ29tbXVuaWNh
dGlvbikKICAgICB9KTsKIAogICAgIHhwY19jb25uZWN0aW9uX2FjdGl2YXRlKGNvbm5lY3Rpb24u
Z2V0KCkpOwotICAgIHNlbmRDb25maWd1cmF0aW9uV2l0aEF1ZGl0VG9rZW4oY29ubmVjdGlvbi5n
ZXQoKSk7CisKKyAgICBhdWRpdF90b2tlbl90IHRva2VuID0geyAwLCAwLCAwLCAwLCAwLCAwLCAw
LCAwIH07CisgICAgbWFjaF9tc2dfdHlwZV9udW1iZXJfdCBhdWRpdFRva2VuQ291bnQgPSBUQVNL
X0FVRElUX1RPS0VOX0NPVU5UOworICAgIGtlcm5fcmV0dXJuX3QgcmVzdWx0ID0gdGFza19pbmZv
KG1hY2hfdGFza19zZWxmKCksIFRBU0tfQVVESVRfVE9LRU4sICh0YXNrX2luZm9fdCkoJnRva2Vu
KSwgJmF1ZGl0VG9rZW5Db3VudCk7CisgICAgaWYgKHJlc3VsdCAhPSBLRVJOX1NVQ0NFU1MpIHsK
KyAgICAgICAgRVhQRUNUX1RSVUUoZmFsc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgLy8gU2VuZCBjb25maWd1cmF0aW9uIHdpdGggYXVkaXQgdG9rZW4KKyAgICB7CisgICAgICAg
IHN0ZDo6YXJyYXk8dWludDhfdCwgNDI+IGVuY29kZWRNZXNzYWdlOworICAgICAgICBlbmNvZGVk
TWVzc2FnZS5maWxsKDApOworICAgICAgICBlbmNvZGVkTWVzc2FnZVsxXSA9IDE7CisgICAgICAg
IGVuY29kZWRNZXNzYWdlWzJdID0gMzI7CisgICAgICAgIG1lbWNweSgmZW5jb2RlZE1lc3NhZ2Vb
MTBdLCAmdG9rZW4sIHNpemVvZih0b2tlbikpOworICAgICAgICBhdXRvIGRpY3Rpb25hcnkgPSBh
ZG9wdE5TKHhwY19kaWN0aW9uYXJ5X2NyZWF0ZShudWxscHRyLCBudWxscHRyLCAwKSk7CisgICAg
ICAgIHhwY19kaWN0aW9uYXJ5X3NldF91aW50NjQoZGljdGlvbmFyeS5nZXQoKSwgInByb3RvY29s
IHZlcnNpb24iLCAxKTsKKyAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3VpbnQ2NChkaWN0aW9u
YXJ5LmdldCgpLCAibWVzc2FnZSB0eXBlIiwgNik7CisgICAgICAgIHhwY19kaWN0aW9uYXJ5X3Nl
dF9kYXRhKGRpY3Rpb25hcnkuZ2V0KCksICJlbmNvZGVkIG1lc3NhZ2UiLCBlbmNvZGVkTWVzc2Fn
ZS5kYXRhKCksIGVuY29kZWRNZXNzYWdlLnNpemUoKSk7CisgICAgICAgIHhwY19jb25uZWN0aW9u
X3NlbmRfbWVzc2FnZShjb25uZWN0aW9uLmdldCgpLCBkaWN0aW9uYXJ5LmdldCgpKTsKKyAgICB9
CiAKICAgICAvLyBFbmFibGUgZGVidWcgbWVzc2FnZXMsIGFuZCB3YWl0IGZvciB0aGUgcmVzdWx0
aW5nIGRlYnVnIG1lc3NhZ2UKICAgICB7CiAgICAgICAgIGF1dG8gZGljdGlvbmFyeSA9IGFkb3B0
TlMoeHBjX2RpY3Rpb25hcnlfY3JlYXRlKG51bGxwdHIsIG51bGxwdHIsIDApKTsKLSAgICAgICAg
VmVjdG9yPHVpbnQ4X3Q+IGVuY29kZWRNZXNzYWdlKDEpOwotICAgICAgICBlbmNvZGVkTWVzc2Fn
ZVswXSA9IDE7Ci0gICAgICAgIHNlbmRNZXNzYWdlVG9EYWVtb24oY29ubmVjdGlvbi5nZXQoKSwg
NSwgZW5jb2RlZE1lc3NhZ2UpOworICAgICAgICBzdGQ6OmFycmF5PHVpbnQ4X3QsIDE+IGVuY29k
ZWRNZXNzYWdlIHsgMSB9OworICAgICAgICB4cGNfZGljdGlvbmFyeV9zZXRfdWludDY0KGRpY3Rp
b25hcnkuZ2V0KCksICJwcm90b2NvbCB2ZXJzaW9uIiwgMSk7CisgICAgICAgIHhwY19kaWN0aW9u
YXJ5X3NldF91aW50NjQoZGljdGlvbmFyeS5nZXQoKSwgIm1lc3NhZ2UgdHlwZSIsIDUpOworICAg
ICAgICB4cGNfZGljdGlvbmFyeV9zZXRfZGF0YShkaWN0aW9uYXJ5LmdldCgpLCAiZW5jb2RlZCBt
ZXNzYWdlIiwgZW5jb2RlZE1lc3NhZ2UuZGF0YSgpLCBlbmNvZGVkTWVzc2FnZS5zaXplKCkpOwor
CisgICAgICAgIHhwY19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZShjb25uZWN0aW9uLmdldCgpLCBk
aWN0aW9uYXJ5LmdldCgpKTsKICAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKICAgICB9CiAKICAgICAvLyBFY2hvIGFuZCB3YWl0IGZvciBhIHJlcGx5CiAgICAgYXV0byBk
aWN0aW9uYXJ5ID0gYWRvcHROUyh4cGNfZGljdGlvbmFyeV9jcmVhdGUobnVsbHB0ciwgbnVsbHB0
ciwgMCkpOwotICAgIGF1dG8gZW5jb2RlZFN0cmluZyA9IGVuY29kZVN0cmluZygiaGVsbG8iKTsK
KyAgICBzdGQ6OmFycmF5PHVpbnQ4X3QsIDEwPiBlbmNvZGVkU3RyaW5nIHsgNSwgMCwgMCwgMCwg
MSwgJ2gnLCAnZScsICdsJywgJ2wnLCAnbycgfTsKICAgICB4cGNfZGljdGlvbmFyeV9zZXRfdWlu
dDY0KGRpY3Rpb25hcnkuZ2V0KCksICJwcm90b2NvbCB2ZXJzaW9uIiwgMSk7CiAgICAgeHBjX2Rp
Y3Rpb25hcnlfc2V0X3VpbnQ2NChkaWN0aW9uYXJ5LmdldCgpLCAibWVzc2FnZSB0eXBlIiwgMSk7
CiAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X2RhdGEoZGljdGlvbmFyeS5nZXQoKSwgImVuY29kZWQg
bWVzc2FnZSIsIGVuY29kZWRTdHJpbmcuZGF0YSgpLCBlbmNvZGVkU3RyaW5nLnNpemUoKSk7CkBA
IC0zOTYsMTQwICszNDEsNiBAQCBURVNUKFdlYlB1c2hELCBQZXJtaXNzaW9uTWFuYWdlbWVudCkK
ICAgICBjbGVhblVwVGVzdFdlYlB1c2hEKHRlbXBEaXJlY3RvcnkpOwogfQogCi1zdGF0aWMgY29u
c3QgY2hhciogbWFpblNXQnl0ZXMgPSBSIlNXUkVTT1VSQ0UoCi08c2NyaXB0PgotZnVuY3Rpb24g
bG9nKG1zZykKLXsKLSAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5zdy5wb3N0TWVz
c2FnZShtc2cpOwotfQotCi1jb25zdCBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7Ci1j
aGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IChldmVudCkgPT4gbG9nKGV2ZW50LmRhdGEpOwotCi1u
YXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcignL3N3LmpzJykudGhlbigocmVnaXN0cmF0
aW9uKSA9PiB7Ci0gICAgaWYgKHJlZ2lzdHJhdGlvbi5hY3RpdmUpIHsKLSAgICAgICAgcmVnaXN0
cmF0aW9uLmFjdGl2ZS5wb3N0TWVzc2FnZSh7cG9ydDogY2hhbm5lbC5wb3J0Mn0sIFtjaGFubmVs
LnBvcnQyXSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgd29ya2VyID0gcmVnaXN0cmF0
aW9uLmluc3RhbGxpbmc7Ci0gICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ3N0YXRlY2hhbmdl
JywgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGlmICh3b3JrZXIuc3RhdGUgPT0gJ2FjdGl2YXRlZCcp
Ci0gICAgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoe3BvcnQ6IGNoYW5uZWwucG9ydDJ9LCBb
Y2hhbm5lbC5wb3J0Ml0pOwotICAgIH0pOwotfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKLSAg
ICBsb2coIlJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0aDogIiArIGVycm9yKTsKLX0pOwotPC9zY3Jp
cHQ+Ci0pU1dSRVNPVVJDRSI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiBzY3JpcHRCeXRlcyA9IFIi
U1dSRVNPVVJDRSgKLWxldCBwb3J0Owotc2VsZi5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwg
KGV2ZW50KSA9PiB7Ci0gICAgcG9ydCA9IGV2ZW50LmRhdGEucG9ydDsKLSAgICBwb3J0LnBvc3RN
ZXNzYWdlKCJSZWFkeSIpOwotfSk7Ci1zZWxmLmFkZEV2ZW50TGlzdGVuZXIoInB1c2giLCAoZXZl
bnQpID0+IHsKLSAgICB0cnkgewotICAgICAgICBpZiAoIWV2ZW50LmRhdGEpIHsKLSAgICAgICAg
ICAgIHBvcnQucG9zdE1lc3NhZ2UoIlJlY2VpdmVkOiBudWxsIGRhdGEiKTsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LmRhdGEudGV4
dCgpOwotICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKCJSZWNlaXZlZDogIiArIHZhbHVlKTsKLSAg
ICAgICAgaWYgKHZhbHVlICE9ICdTd2VldCBQb3RhdG9lcycpCi0gICAgICAgICAgICBldmVudC53
YWl0VW50aWwoUHJvbWlzZS5yZWplY3QoJ0kgd2FudCBzd2VldCBwb3RhdG9lcycpKTsKLSAgICB9
IGNhdGNoIChlKSB7Ci0gICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoIkdvdCBleGNlcHRpb24gIiAr
IGUpOwotICAgIH0KLX0pOwotKVNXUkVTT1VSQ0UiOwotCi1zdGF0aWMgdm9pZCBjbGVhcldlYnNp
dGVEYXRhU3RvcmUoV0tXZWJzaXRlRGF0YVN0b3JlICpzdG9yZSkKLXsKLSAgICBfX2Jsb2NrIGJv
b2wgY2xlYXJlZFN0b3JlID0gZmFsc2U7Ci0gICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVs
dERhdGFTdG9yZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJz
aXRlRGF0YVR5cGVzXSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRp
b25IYW5kbGVyOl4oKSB7Ci0gICAgICAgIGNsZWFyZWRTdG9yZSA9IHRydWU7Ci0gICAgfV07Ci0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZjbGVhcmVkU3RvcmUpOwotfQotCi0vLyBGSVhN
RTogUmUtZW5hYmxlIHRoaXMgdGVzdCBvbiBNYWMgb25jZSB3ZWJraXQub3JnLzIzMjg1NyBpcyBy
ZXNvbHZlZC4KLSNpZiBQTEFURk9STShNQUMpCi1URVNUKFdlYlB1c2hELCBESVNBQkxFRF9IYW5k
bGVJbmplY3RlZFB1c2gpCi0jZWxzZQotVEVTVChXZWJQdXNoRCwgSGFuZGxlSW5qZWN0ZWRQdXNo
KQotI2VuZGlmCi17Ci0gICAgW1dLV2Vic2l0ZURhdGFTdG9yZSBfYWxsb3dXZWJzaXRlRGF0YVJl
Y29yZHNGb3JBbGxPcmlnaW5zXTsKLQotICAgIE5TVVJMICp0ZW1wRGlyZWN0b3J5ID0gc2V0VXBU
ZXN0V2ViUHVzaEQoKTsKLQotICAgIGF1dG8gZGF0YVN0b3JlQ29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIG5ld10pOwotICAgIGRhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24uZ2V0KCkud2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSA9IEAib3JnLndlYmtp
dC53ZWJwdXNodGVzdGRhZW1vbi5zZXJ2aWNlIjsKLSAgICBkYXRhU3RvcmVDb25maWd1cmF0aW9u
LmdldCgpLndlYlB1c2hEYWVtb25Vc2VzTW9ja0J1bmRsZXNGb3JUZXN0aW5nID0gWUVTOwotICAg
IGF1dG8gZGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2lu
aXRXaXRoQ29uZmlndXJhdGlvbjpkYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSk7Ci0KLSAg
ICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9
IGRhdGFTdG9yZS5nZXQoKTsKLSAgICBjbGVhcldlYnNpdGVEYXRhU3RvcmUoW2NvbmZpZ3VyYXRp
b24gd2Vic2l0ZURhdGFTdG9yZV0pOwotCi0gICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkucHJlZmVy
ZW5jZXMgX3NldE5vdGlmaWNhdGlvbnNFbmFibGVkOllFU107Ci0gICAgZm9yIChfV0tFeHBlcmlt
ZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIFtXS1ByZWZlcmVuY2VzIF9leHBlcmltZW50YWxGZWF0
dXJlc10pIHsKLSAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJCdWls
dEluTm90aWZpY2F0aW9uc0VuYWJsZWQiXSkKLSAgICAgICAgICAgIFtbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckZlYXR1cmU6ZmVhdHVyZV07Ci0gICAgfQot
Ci0gICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tUZXN0TWVzc2FnZUhhbmRsZXIg
YWxsb2NdIGluaXRdKTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVy
XSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAic3ci
XTsKLSAgICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZhbHNlOwotICAgIFttZXNzYWdlSGFuZGxlciBh
ZGRNZXNzYWdlOkAiUmVhZHkiIHdpdGhIYW5kbGVyOl57Ci0gICAgICAgIGRvbmUgPSB0cnVlOwot
ICAgIH1dOwotICAgIFttZXNzYWdlSGFuZGxlciBhZGRNZXNzYWdlOkAiUmVjZWl2ZWQ6IEhlbGxv
IFdvcmxkIiB3aXRoSGFuZGxlcjpeewotICAgICAgICBkb25lID0gdHJ1ZTsKLSAgICB9XTsKLQot
ICAgIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXIgc2VydmVyKHsKLSAgICAgICAgeyAiLyIsIHsg
bWFpblNXQnl0ZXMgfSB9LAotICAgICAgICB7ICIvc3cuanMiLCB7IHsgeyAiQ29udGVudC1UeXBl
IiwgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIH0gfSwgc2NyaXB0Qnl0ZXMgfSB9Ci0gICAgfSwg
VGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlcjo6UHJvdG9jb2w6Okh0dHApOwotCi0gICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsK
LSAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKLQotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Ci0gICAgZG9uZSA9IGZhbHNlOwotCi0gICAgLy8g
SW5qZWN0IHB1c2ggbWVzc2FnZQotICAgIGF1dG8gZW5jb2RlZE1lc3NhZ2UgPSBlbmNvZGVTdHJp
bmcoImNvbS5hcHBsZS5XZWJLaXQuVGVzdFdlYktpdEFQSSIpOwotICAgIGVuY29kZWRNZXNzYWdl
LmFwcGVuZFZlY3RvcihlbmNvZGVTdHJpbmcoc2VydmVyLnJlcXVlc3QoKS5VUkwuYWJzb2x1dGVT
dHJpbmcpKTsKLSAgICBlbmNvZGVkTWVzc2FnZS5hcHBlbmRWZWN0b3IoZW5jb2RlU3RyaW5nKCJI
ZWxsbyBXb3JsZCIpKTsKLQotICAgIGF1dG8gdXRpbGl0eUNvbm5lY3Rpb24gPSBjcmVhdGVBbmRD
b25maWd1cmVDb25uZWN0aW9uVG9TZXJ2aWNlKCJvcmcud2Via2l0LndlYnB1c2h0ZXN0ZGFlbW9u
LnNlcnZpY2UiKTsKLSAgICBzZW5kTWVzc2FnZVRvRGFlbW9uV2FpdGluZ0ZvclJlcGx5KHV0aWxp
dHlDb25uZWN0aW9uLmdldCgpLCA3LCBlbmNvZGVkTWVzc2FnZSk7Ci0KLSAgICAvLyBGZXRjaCBw
dXNoIG1lc3NhZ2VzCi0gICAgX19ibG9jayBSZXRhaW5QdHI8TlNBcnJheTxOU0RpY3Rpb25hcnkg
Kj4+IG1lc3NhZ2VzOwotICAgIFtkYXRhU3RvcmUgX2dldFBlbmRpbmdQdXNoTWVzc2FnZXM6XihO
U0FycmF5PE5TRGljdGlvbmFyeSAqPiAqcmF3TWVzc2FnZXMpIHsKLSAgICAgICAgbWVzc2FnZXMg
PSByYXdNZXNzYWdlczsKLSAgICAgICAgZG9uZSA9IHRydWU7Ci0gICAgfV07Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKLSAgICBkb25lID0gZmFsc2U7Ci0KLSAgICBFWFBF
Q1RfRVEoW21lc3NhZ2VzIGNvdW50XSwgMXUpOwotCi0gICAgLy8gSGFuZGxlIHB1c2ggbWVzc2Fn
ZQotICAgIF9fYmxvY2sgYm9vbCBwdXNoTWVzc2FnZVByb2Nlc3NlZCA9IGZhbHNlOwotICAgIFtk
YXRhU3RvcmUgX3Byb2Nlc3NQdXNoTWVzc2FnZTpbbWVzc2FnZXMgZmlyc3RPYmplY3RdIGNvbXBs
ZXRpb25IYW5kbGVyOl4oYm9vbCByZXN1bHQpIHsKLSAgICAgICAgcHVzaE1lc3NhZ2VQcm9jZXNz
ZWQgPSB0cnVlOwotICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZwdXNoTWVzc2FnZVByb2Nlc3NlZCk7Ci0K
LSAgICBjbGVhblVwVGVzdFdlYlB1c2hEKHRlbXBEaXJlY3RvcnkpOwotfQotCiB9IC8vIG5hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJCiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JN
KElPUykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmll
dy5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgKaW5kZXggMmNl
NmU3YzkwYTU4NGNiMmQ2NzkwOTA1YWM2Y2NiMDY0MDQ2OWZmMy4uYzJiNzExNmUzMGI2ODZlMzA4
OGE1YzY2MmU1MDY0YWJhZGVkMmY0YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9j
b2NvYS9UZXN0V0tXZWJWaWV3LmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0
V0tXZWJWaWV3LmgKQEAgLTc4LDcgKzc4LDYgQEAKIAogQGludGVyZmFjZSBUZXN0TWVzc2FnZUhh
bmRsZXIgOiBOU09iamVjdCA8V0tTY3JpcHRNZXNzYWdlSGFuZGxlcj4KIC0gKHZvaWQpYWRkTWVz
c2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIHdpdGhIYW5kbGVyOihkaXNwYXRjaF9ibG9ja190KWhh
bmRsZXI7Ci0tICh2b2lkKXNldFdpbGRjYXJkTWVzc2FnZUhhbmRsZXI6KHZvaWQgKF4pKE5TU3Ry
aW5nICopKWhhbmRsZXI7CiBAZW5kCiAKIEBpbnRlcmZhY2UgVGVzdFdLV2ViVmlldyA6IFdLV2Vi
Vmlldwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>