<?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>159097</bug_id>
          
          <creation_ts>2016-06-24 11:47:36 -0700</creation_ts>
          <short_desc>REGRESSION(r202413): Broke many JSC tests (Requested by ap on #webkit).</short_desc>
          <delta_ts>2016-06-24 16:06:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>154022</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>joepeck</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1205163</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-24 11:47:36 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/202413 broke the build:
Broke many JSC tests (Requested by ap on #webkit).

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>1205165</commentid>
    <comment_count>1</comment_count>
      <attachid>282004</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-24 11:48:24 -0700</bug_when>
    <thetext>Created attachment 282004
ROLLOUT of r202413

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 rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout 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>1205169</commentid>
    <comment_count>2</comment_count>
      <attachid>282004</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-24 11:51:22 -0700</bug_when>
    <thetext>Comment on attachment 282004
ROLLOUT of r202413

Clearing flags on attachment: 282004

Committed r202435: &lt;http://trac.webkit.org/changeset/202435&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1205170</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-24 11:51:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1205239</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-06-24 16:06:34 -0700</bug_when>
    <thetext>Oops, thanks.
I&apos;ll update the patch w/ 32bit fix and perf fix.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282004</attachid>
            <date>2016-06-24 11:48:24 -0700</date>
            <delta_ts>2016-06-24 11:51:22 -0700</delta_ts>
            <desc>ROLLOUT of r202413</desc>
            <filename>bug-159097-20160624114813.patch</filename>
            <type>text/plain</type>
            <size>116029</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyNDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
YmM0MjZjYTVhYjFiNGFjMmZhMjExMjBlM2I1YWJhODQ0MzFjZGJhLi5iNDVmN2EyZjM0MTIxN2Ux
ODJjY2FhZWVmNmNlOGZjYzdmNDlhMTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNi0wNi0yNCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIwMjQxMy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTA5NworCisgICAg
ICAgIEJyb2tlIG1hbnkgSlNDIHRlc3RzIChSZXF1ZXN0ZWQgYnkgYXAgb24gI3dlYmtpdCkuCisK
KyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJbSlNDXSBJbXBsZW1lbnQg
aXNGaW5pdGUgLyBpc05hTiBpbiBKUyBhbmQgbWFrZSBERkcgVG9OdW1iZXIKKyAgICAgICAgYWNj
ZXB0IG5vbiBudW1iZXIgdmFsdWVzIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU0MDIyCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hh
bmdlc2V0LzIwMjQxMworCiAyMDE2LTA2LTIzICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIE9PTSBBc3NlcnRpb24gZmFpbHVyZSBpbiBBcnJheS5wcm90
b3R5cGUudG9TdHJpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAwYWFj
MmYwOTJkY2UzNmYyNzUxZGVjYTNkZjE4ZWQ3Yjk2ODQyMTA1Li4yMDc1MWZkNjljMmU4ZGNmYjU0
YjY4YzY1Yjc1YWIyYmUyZGQ2YTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
CkBAIC0xMjE3LDEzICsxMjE3LDExIEBAIHNldChKYXZhU2NyaXB0Q29yZV9CVUlMVElOU19TT1VS
Q0VTCiAgICAgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2J1aWx0aW5zL0Z1bmN0aW9uUHJvdG90eXBl
LmpzCiAgICAgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2J1aWx0aW5zL0dlbmVyYXRvclByb3RvdHlw
ZS5qcwogICAgICR7SkFWQVNDUklQVENPUkVfRElSfS9idWlsdGlucy9HbG9iYWxPYmplY3QuanMK
LSAgICAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnVpbHRpbnMvR2xvYmFsT3BlcmF0aW9ucy5qcwog
ICAgICR7SkFWQVNDUklQVENPUkVfRElSfS9idWlsdGlucy9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25PYmplY3QuanMKICAgICAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnVpbHRpbnMvSW50ZXJuYWxQ
cm9taXNlQ29uc3RydWN0b3IuanMKICAgICAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnVpbHRpbnMv
SXRlcmF0b3JQcm90b3R5cGUuanMKICAgICAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnVpbHRpbnMv
TWFwUHJvdG90eXBlLmpzCiAgICAgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2J1aWx0aW5zL01vZHVs
ZUxvYWRlck9iamVjdC5qcwotICAgICR7SkFWQVNDUklQVENPUkVfRElSfS9idWlsdGlucy9OdW1i
ZXJDb25zdHJ1Y3Rvci5qcwogICAgICR7SkFWQVNDUklQVENPUkVfRElSfS9idWlsdGlucy9OdW1i
ZXJQcm90b3R5cGUuanMKICAgICAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnVpbHRpbnMvT2JqZWN0
Q29uc3RydWN0b3IuanMKICAgICAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnVpbHRpbnMvUHJvbWlz
ZUNvbnN0cnVjdG9yLmpzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CmluZGV4IGVjZGQ4N2ViZDRlMzI1OTRkNWU5YzczMDE2MzBhYTVhNmIwYjc2NTUuLjcyZTQxZjQ0
ZGYzOWNlM2ZmMTJlOWFkZTZmYjk0ZTE0YjEyOTYzNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC04OCwxMyArODgsMTEgQEAgSmF2YVNjcmlwdENvcmVf
QlVJTFRJTlNfU09VUkNFUyA9IFwKICAgICAkKEphdmFTY3JpcHRDb3JlKS9idWlsdGlucy9GdW5j
dGlvblByb3RvdHlwZS5qcyBcCiAgICAgJChKYXZhU2NyaXB0Q29yZSkvYnVpbHRpbnMvR2VuZXJh
dG9yUHJvdG90eXBlLmpzIFwKICAgICAkKEphdmFTY3JpcHRDb3JlKS9idWlsdGlucy9HbG9iYWxP
YmplY3QuanMgXAotICAgICQoSmF2YVNjcmlwdENvcmUpL2J1aWx0aW5zL0dsb2JhbE9wZXJhdGlv
bnMuanMgXAogICAgICQoSmF2YVNjcmlwdENvcmUpL2J1aWx0aW5zL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbk9iamVjdC5qcyBcCiAgICAgJChKYXZhU2NyaXB0Q29yZSkvYnVpbHRpbnMvSW50ZXJu
YWxQcm9taXNlQ29uc3RydWN0b3IuanMgXAogICAgICQoSmF2YVNjcmlwdENvcmUpL2J1aWx0aW5z
L0l0ZXJhdG9yUHJvdG90eXBlLmpzIFwKICAgICAkKEphdmFTY3JpcHRDb3JlKS9idWlsdGlucy9N
YXBQcm90b3R5cGUuanMgXAogICAgICQoSmF2YVNjcmlwdENvcmUpL2J1aWx0aW5zL01vZHVsZUxv
YWRlck9iamVjdC5qcyBcCi0gICAgJChKYXZhU2NyaXB0Q29yZSkvYnVpbHRpbnMvTnVtYmVyQ29u
c3RydWN0b3IuanMgXAogICAgICQoSmF2YVNjcmlwdENvcmUpL2J1aWx0aW5zL051bWJlclByb3Rv
dHlwZS5qcyBcCiAgICAgJChKYXZhU2NyaXB0Q29yZSkvYnVpbHRpbnMvT2JqZWN0Q29uc3RydWN0
b3IuanMgXAogICAgICQoSmF2YVNjcmlwdENvcmUpL2J1aWx0aW5zL1Byb21pc2VDb25zdHJ1Y3Rv
ci5qcyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJhMWU3YTEyOTgzZGY1YWJk
YTEzN2MzNDZhZTkyMTY3YTEyNWQzMzkuLmNlYjlmM2E3NmE0MjM2NzU3NjYyNjRlYmRhOTIxODE4
YjUyMDFjM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNzcyLDggKzM3NzIs
NiBAQAogCQlBNTEzRTVDOTE4NUY5NjI0MDA3RTk1QUQgLyogSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkU2NyaXB0TWFuYWdl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTE0QjJDMDE4NUE2ODQ0MDBGM0M3
Q0IgLyogSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEluamVjdGVkU2NyaXB0QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE1MTRCMkMxMTg1QTY4NDQwMEYzQzdDQiAvKiBJbmplY3RlZFNjcmlwdEJhc2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRTY3JpcHRCYXNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE1MjcwNDg1MUQwMjdDODgwMDM1NEMzNyAvKiBH
bG9iYWxPcGVyYXRpb25zLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRo
ID0gR2xvYmFsT3BlcmF0aW9ucy5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTUy
NzA0ODYxRDAyN0M4ODAwMzU0QzM3IC8qIE51bWJlckNvbnN0cnVjdG9yLmpzICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gTnVtYmVyQ29uc3RydWN0b3IuanM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1MzExQzM0MUM3N0NFQUMwMEU2QjFCNiAvKiBIZWFw
U25hcHNob3RCdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEhlYXBTbmFwc2hvdEJ1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
NTMxMUMzNTFDNzdDRUFDMDBFNkIxQjYgLyogSGVhcFNuYXBzaG90QnVpbGRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIZWFwU25hcHNob3RCdWlsZGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1MzI0MzgxMTg1NjgzMTcwMDJFRDY5MiAvKiBJbnNwZWN0
b3JCYWNrZW5kRGlzcGF0Y2hlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yQmFj
a2VuZERpc3BhdGNoZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY4ODUs
MTMgKzY4ODMsMTEgQEAKIAkJCQlBN0E5NzlDNDE4QkU4RDlFMDAyQzM3MzMgLyogRnVuY3Rpb25Q
cm90b3R5cGUuanMgKi8sCiAJCQkJNzBCNzkxOEYxQzAyNDRFQzAwMjQ4MUUyIC8qIEdlbmVyYXRv
clByb3RvdHlwZS5qcyAqLywKIAkJCQk3Q0Y5QkM1QTFCNjVEOUEzMDA5REIxRUYgLyogR2xvYmFs
T2JqZWN0LmpzICovLAotCQkJCUE1MjcwNDg1MUQwMjdDODgwMDM1NEMzNyAvKiBHbG9iYWxPcGVy
YXRpb25zLmpzICovLAogCQkJCUUzNUUwMzYxMUI3QUI0ODUwMDczQUQyQSAvKiBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25PYmplY3QuanMgKi8sCiAJCQkJRTMzRjUwODgxQjg0NEExQTAwNDEzODU2
IC8qIEludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yLmpzICovLAogCQkJCTdDRjlCQzVCMUI2NUQ5
QTMwMDlEQjFFRiAvKiBJdGVyYXRvclByb3RvdHlwZS5qcyAqLywKIAkJCQk3MDM1NTg3QzFDNDE4
NDE5MDA0QkQ3QkYgLyogTWFwUHJvdG90eXBlLmpzICovLAogCQkJCUUzMDY3Nzk3MUI4QkM2RjUw
MDNGODdGMCAvKiBNb2R1bGVMb2FkZXJPYmplY3QuanMgKi8sCi0JCQkJQTUyNzA0ODYxRDAyN0M4
ODAwMzU0QzM3IC8qIE51bWJlckNvbnN0cnVjdG9yLmpzICovLAogCQkJCUExNURFNUM1MUMwRkJG
OEQwMDg5MTMzRCAvKiBOdW1iZXJQcm90b3R5cGUuanMgKi8sCiAJCQkJN0NGOUJDNUMxQjY1RDlC
MTAwOURCMUVGIC8qIE9iamVjdENvbnN0cnVjdG9yLmpzICovLAogCQkJCTdDRjlCQzVEMUI2NUQ5
QjEwMDlEQjFFRiAvKiBQcm9taXNlT3BlcmF0aW9ucy5qcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaAppbmRleCAxZmE3OWZmZmE0MDNhOGVhY2Vi
ODdlOWFlMGJjNWUzNzRmOWFjMWYxLi5mMDg1MDA4MGMwYTM2N2MxMDlmZGMzYzViZmJiOTM1YTQ5
NmFkYjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRp
bk5hbWVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1l
cy5oCkBAIC02NCw2ICs2NCw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIG1hY3JvKGFicykgXAog
ICAgIG1hY3JvKGZsb29yKSBcCiAgICAgbWFjcm8odHJ1bmMpIFwKKyAgICBtYWNybyhpc0Zpbml0
ZSkgXAorICAgIG1hY3JvKGlzTmFOKSBcCiAgICAgbWFjcm8oY3JlYXRlKSBcCiAgICAgbWFjcm8o
ZGVmaW5lUHJvcGVydHkpIFwKICAgICBtYWNybyhnZXRQcm90b3R5cGVPZikgXApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dsb2JhbE9iamVjdC5qcyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9HbG9iYWxPYmplY3QuanMKaW5kZXggODA0OTMwYzg0
MWJiYWU4OWQ5ZjExNTNjY2Q0MjA0MTExNjAxMjI4Ny4uNTc3NmEyMjk2YmFhYzhjNTQxMmI0Y2Uz
NWRmNzA4OTgwMzkwYzY5MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL0dsb2JhbE9iamVjdC5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMv
R2xvYmFsT2JqZWN0LmpzCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE2IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgWXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPi4KICAqIENv
cHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CkBAIC0yNCwyMyArMjQsNjAgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorLy8g
QGludGVybmFsCisKIEBnbG9iYWxQcml2YXRlCi1mdW5jdGlvbiBpc0Zpbml0ZSh2YWx1ZSkKK2Z1
bmN0aW9uIHRvSW50ZWdlcih0YXJnZXQpCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCi0gICAgdmFy
IG51bWJlclZhbHVlID0gQHRvTnVtYmVyKHZhbHVlKTsKLSAgICAvLyBSZXR1cm4gZmFsc2UgaWYg
bnVtYmVyVmFsdWUgaXMgfE5hTnwuCisgICAgdmFyIG51bWJlclZhbHVlID0gQE51bWJlcih0YXJn
ZXQpOworCisgICAgLy8gaXNOYU4obnVtYmVyVmFsdWUpCiAgICAgaWYgKG51bWJlclZhbHVlICE9
PSBudW1iZXJWYWx1ZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBudW1iZXJW
YWx1ZSAhPT0gQEluZmluaXR5ICYmIG51bWJlclZhbHVlICE9PSAtQEluZmluaXR5OworICAgICAg
ICByZXR1cm4gMDsKKyAgICByZXR1cm4gQHRydW5jKG51bWJlclZhbHVlKTsKK30KKworQGdsb2Jh
bFByaXZhdGUKK2Z1bmN0aW9uIHRvTGVuZ3RoKHRhcmdldCkKK3sKKyAgICAidXNlIHN0cmljdCI7
CisKKyAgICB2YXIgbWF4U2FmZUludGVnZXIgPSAweDFGRkZGRkZGRkZGRkZGOworICAgIHZhciBs
ZW5ndGggPSBAdG9JbnRlZ2VyKHRhcmdldCk7CisgICAgLy8gb3JpZ2luYWxseSBNYXRoLm1pbihN
YXRoLm1heChsZW5ndGgsIDApLCBtYXhTYWZlSW50ZWdlcikpOworICAgIHJldHVybiBsZW5ndGgg
PiAwID8gKGxlbmd0aCA8IG1heFNhZmVJbnRlZ2VyID8gbGVuZ3RoIDogbWF4U2FmZUludGVnZXIp
IDogMDsKIH0KIAogQGdsb2JhbFByaXZhdGUKLWZ1bmN0aW9uIGlzTmFOKHZhbHVlKQorZnVuY3Rp
b24gaXNEaWN0aW9uYXJ5KG9iamVjdCkKIHsKICAgICAidXNlIHN0cmljdCI7CiAKLSAgICB2YXIg
bnVtYmVyVmFsdWUgPSBAdG9OdW1iZXIodmFsdWUpOwotICAgIHJldHVybiBudW1iZXJWYWx1ZSAh
PT0gbnVtYmVyVmFsdWU7CisgICAgcmV0dXJuIG9iamVjdCA9PT0gQHVuZGVmaW5lZCB8fCBvYmpl
Y3QgPT0gbnVsbCB8fCB0eXBlb2Ygb2JqZWN0ID09PSAib2JqZWN0IjsKK30KKworLy8gRklYTUU6
IHRoaXMgbmVlZHMgdG8gaGF2ZSBpdCdzIG5hbWUgY2hhbmdlZCB0byAiZ2V0IFtTeW1ib2wuc3Bl
Y2llc10iLgorLy8gc2VlOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTUxMzYzCitAZ2xvYmFsUHJpdmF0ZQorZnVuY3Rpb24gc3BlY2llc0dldHRlcigpCit7CisgICAg
cmV0dXJuIHRoaXM7Cit9CisKK0BnbG9iYWxQcml2YXRlCitmdW5jdGlvbiBzcGVjaWVzQ29uc3Ry
dWN0b3Iob2JqLCBkZWZhdWx0Q29uc3RydWN0b3IpCit7CisgICAgdmFyIGNvbnN0cnVjdG9yID0g
b2JqLmNvbnN0cnVjdG9yOworICAgIGlmIChjb25zdHJ1Y3RvciA9PT0gQHVuZGVmaW5lZCkKKyAg
ICAgICAgcmV0dXJuIGRlZmF1bHRDb25zdHJ1Y3RvcjsKKyAgICBpZiAoIUBpc09iamVjdChjb25z
dHJ1Y3RvcikpCisgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJ8dGhpc3wuY29uc3RydWN0
b3IgaXMgbm90IGFuIE9iamVjdCBvciB1bmRlZmluZWQiKTsKKyAgICBjb25zdHJ1Y3RvciA9IGNv
bnN0cnVjdG9yLkBzcGVjaWVzU3ltYm9sOworICAgIGlmIChjb25zdHJ1Y3RvciA9PSBudWxsKQor
ICAgICAgICByZXR1cm4gZGVmYXVsdENvbnN0cnVjdG9yOworICAgIGlmIChAaXNDb25zdHJ1Y3Rv
cihjb25zdHJ1Y3RvcikpCisgICAgICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKKyAgICB0aHJvdyBu
ZXcgQFR5cGVFcnJvcigifHRoaXN8LmNvbnN0cnVjdG9yW1N5bWJvbC5zcGVjaWVzXSBpcyBub3Qg
YSBjb25zdHJ1Y3RvciIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1
aWx0aW5zL0dsb2JhbE9wZXJhdGlvbnMuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvR2xvYmFsT3BlcmF0aW9ucy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzg1
OTE1YzdkNWNkZDE1ODEwMzgzODhkMmJlNmQ0NjExNGNlZjg1ZC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvR2xvYmFsT3BlcmF0aW9ucy5qcworKysgL2Rldi9udWxsCkBAIC0xLDgyICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgWXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwu
Y29tPi4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotLy8gQGlu
dGVybmFsCi0KLUBnbG9iYWxQcml2YXRlCi1mdW5jdGlvbiB0b0ludGVnZXIodGFyZ2V0KQotewot
ICAgICJ1c2Ugc3RyaWN0IjsKLQotICAgIHZhciBudW1iZXJWYWx1ZSA9IEBOdW1iZXIodGFyZ2V0
KTsKLQotICAgIC8vIGlzTmFOKG51bWJlclZhbHVlKQotICAgIGlmIChudW1iZXJWYWx1ZSAhPT0g
bnVtYmVyVmFsdWUpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBAdHJ1bmMobnVtYmVy
VmFsdWUpOwotfQotCi1AZ2xvYmFsUHJpdmF0ZQotZnVuY3Rpb24gdG9MZW5ndGgodGFyZ2V0KQot
ewotICAgICJ1c2Ugc3RyaWN0IjsKLQotICAgIHZhciBsZW5ndGggPSBAdG9JbnRlZ2VyKHRhcmdl
dCk7Ci0gICAgLy8gb3JpZ2luYWxseSBNYXRoLm1pbihNYXRoLm1heChsZW5ndGgsIDApLCBtYXhT
YWZlSW50ZWdlcikpOwotICAgIHJldHVybiBsZW5ndGggPiAwID8gKGxlbmd0aCA8IEBNQVhfU0FG
RV9JTlRFR0VSPyBsZW5ndGggOiBATUFYX1NBRkVfSU5URUdFUikgOiAwOwotCi19Ci0KLUBnbG9i
YWxQcml2YXRlCi1mdW5jdGlvbiBpc0RpY3Rpb25hcnkob2JqZWN0KQotewotICAgICJ1c2Ugc3Ry
aWN0IjsKLQotICAgIHJldHVybiBvYmplY3QgPT09IEB1bmRlZmluZWQgfHwgb2JqZWN0ID09IG51
bGwgfHwgdHlwZW9mIG9iamVjdCA9PT0gIm9iamVjdCI7Ci19Ci0KLS8vIEZJWE1FOiB0aGlzIG5l
ZWRzIHRvIGhhdmUgaXQncyBuYW1lIGNoYW5nZWQgdG8gImdldCBbU3ltYm9sLnNwZWNpZXNdIi4K
LS8vIHNlZTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTM2Mwot
QGdsb2JhbFByaXZhdGUKLWZ1bmN0aW9uIHNwZWNpZXNHZXR0ZXIoKQotewotICAgIHJldHVybiB0
aGlzOwotfQotCi1AZ2xvYmFsUHJpdmF0ZQotZnVuY3Rpb24gc3BlY2llc0NvbnN0cnVjdG9yKG9i
aiwgZGVmYXVsdENvbnN0cnVjdG9yKQotewotICAgIHZhciBjb25zdHJ1Y3RvciA9IG9iai5jb25z
dHJ1Y3RvcjsKLSAgICBpZiAoY29uc3RydWN0b3IgPT09IEB1bmRlZmluZWQpCi0gICAgICAgIHJl
dHVybiBkZWZhdWx0Q29uc3RydWN0b3I7Ci0gICAgaWYgKCFAaXNPYmplY3QoY29uc3RydWN0b3Ip
KQotICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigifHRoaXN8LmNvbnN0cnVjdG9yIGlzIG5v
dCBhbiBPYmplY3Qgb3IgdW5kZWZpbmVkIik7Ci0gICAgY29uc3RydWN0b3IgPSBjb25zdHJ1Y3Rv
ci5Ac3BlY2llc1N5bWJvbDsKLSAgICBpZiAoY29uc3RydWN0b3IgPT0gbnVsbCkKLSAgICAgICAg
cmV0dXJuIGRlZmF1bHRDb25zdHJ1Y3RvcjsKLSAgICBpZiAoQGlzQ29uc3RydWN0b3IoY29uc3Ry
dWN0b3IpKQotICAgICAgICByZXR1cm4gY29uc3RydWN0b3I7Ci0gICAgdGhyb3cgbmV3IEBUeXBl
RXJyb3IoInx0aGlzfC5jb25zdHJ1Y3RvcltTeW1ib2wuc3BlY2llc10gaXMgbm90IGEgY29uc3Ry
dWN0b3IiKTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9O
dW1iZXJDb25zdHJ1Y3Rvci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9OdW1i
ZXJDb25zdHJ1Y3Rvci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmMwZTRjODY4
MTZlYzNkYTk1NjRlOWY5ODYwYjIxNDI4MGMxMjBkYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvTnVt
YmVyQ29uc3RydWN0b3IuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE2IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4u
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLWZ1bmN0aW9uIGlz
RmluaXRlKHZhbHVlKQotewotICAgICJ1c2Ugc3RyaWN0IjsKLQotICAgIGlmICh0eXBlb2YgdmFs
dWUgIT09ICJudW1iZXIiKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAvLyBSZXR1cm4g
ZmFsc2UgaWYgdmFsdWUgaXMgfE5hTnwuCi0gICAgaWYgKHZhbHVlICE9PSB2YWx1ZSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIHZhbHVlICE9PSBASW5maW5pdHkgJiYgdmFs
dWUgIT09IC1ASW5maW5pdHk7Ci19Ci0KLWZ1bmN0aW9uIGlzTmFOKHZhbHVlKQotewotICAgICJ1
c2Ugc3RyaWN0IjsKLQotICAgIHJldHVybiB2YWx1ZSAhPT0gdmFsdWU7Ci19CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3Ry
eS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNS
ZWdpc3RyeS5jcHAKaW5kZXggMjc4MTU5MzVhMGJjM2U4YzFiYTMwZTg4YTZiMjZhMDQwZmUxOGYz
YS4uOGNmOTQ0Y2EzNTk5MWM4MTIzZDkzY2E1MmE5MzUyOWM3MWUwODE3YSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnku
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUludHJpbnNp
Y1JlZ2lzdHJ5LmNwcApAQCAtNTQsNyArNTQsNyBAQCBCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5
OjpCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5KFZNJiB2bSkKICAgICBtX2FycmF5SXRlcmF0aW9u
S2luZFZhbHVlLnNldChtX3ZtLCBqc051bWJlcihBcnJheUl0ZXJhdGVWYWx1ZSkpOwogICAgIG1f
YXJyYXlJdGVyYXRpb25LaW5kS2V5VmFsdWUuc2V0KG1fdm0sIGpzTnVtYmVyKEFycmF5SXRlcmF0
ZUtleVZhbHVlKSk7CiAgICAgbV9NQVhfU1RSSU5HX0xFTkdUSC5zZXQobV92bSwganNOdW1iZXIo
SlNTdHJpbmc6Ok1heExlbmd0aCkpOwotICAgIG1fTUFYX1NBRkVfSU5URUdFUi5zZXQobV92bSwg
anNEb3VibGVOdW1iZXIobWF4U2FmZUludGVnZXIoKSkpOworICAgIG1fTUFYX1NBRkVfSU5URUdF
Ui5zZXQobV92bSwganNEb3VibGVOdW1iZXIoOTAwNzE5OTI1NDc0MDk5MS4wKSk7IC8vIDIgXiA1
MyAtIDEKICAgICBtX01vZHVsZUZldGNoLnNldChtX3ZtLCBqc051bWJlcihzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oTW9kdWxlTG9hZGVyT2JqZWN0OjpTdGF0dXM6OkZldGNoKSkpOwogICAgIG1fTW9k
dWxlVHJhbnNsYXRlLnNldChtX3ZtLCBqc051bWJlcihzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTW9k
dWxlTG9hZGVyT2JqZWN0OjpTdGF0dXM6OlRyYW5zbGF0ZSkpKTsKICAgICBtX01vZHVsZUluc3Rh
bnRpYXRlLnNldChtX3ZtLCBqc051bWJlcihzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTW9kdWxlTG9h
ZGVyT2JqZWN0OjpTdGF0dXM6Okluc3RhbnRpYXRlKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmgKaW5k
ZXggMmZjNTBkYmM2YmE5MjEwMjMxOWIzMWExZDNhMDhmMzQ5YjM5MmM3ZS4uNmM5NWE2Yjg2ZGEy
NjdmNjU5M2RlNGI3OTA4ZDA5NzA4YTVjY2MwMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5oCkBAIC00
Nyw3ICs0Nyw2IEBAIGNsYXNzIElkZW50aWZpZXI7CiAgICAgbWFjcm8odGFpbENhbGxGb3J3YXJk
QXJndW1lbnRzKSBcCiAgICAgbWFjcm8odHJ5R2V0QnlJZCkgXAogICAgIG1hY3JvKHB1dEJ5VmFs
RGlyZWN0KSBcCi0gICAgbWFjcm8odG9OdW1iZXIpIFwKICAgICBtYWNybyh0b1N0cmluZykKIAog
I2RlZmluZSBKU0NfQ09NTU9OX0JZVEVDT0RFX0lOVFJJTlNJQ19DT05TVEFOVFNfRUFDSF9OQU1F
KG1hY3JvKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0
ZWNvZGVMaXN0Lmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVM
aXN0Lmpzb24KaW5kZXggODhhN2M1MjMyMDU1YzM5Yjc3ZTllMmY1YzY5YWNmMWI0Y2NmNjlhYi4u
MzQ1ODE5YmI3Y2UxMzk0YjI5NjY3YjY3NTIzNmJmMGVjNmNmYTc3ZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgpAQCAtMzEsNyArMzEs
NyBAQAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfZ3JlYXRlcmVxIiwgImxlbmd0aCIgOiA0
IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9pbmMiLCAibGVuZ3RoIiA6IDIgfSwKICAg
ICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2RlYyIsICJsZW5ndGgiIDogMiB9LAotICAgICAgICAg
ICAgeyAibmFtZSIgOiAib3BfdG9fbnVtYmVyIiwgImxlbmd0aCIgOiA0IH0sCisgICAgICAgICAg
ICB7ICJuYW1lIiA6ICJvcF90b19udW1iZXIiLCAibGVuZ3RoIiA6IDMgfSwKICAgICAgICAgICAg
IHsgIm5hbWUiIDogIm9wX3RvX3N0cmluZyIsICJsZW5ndGgiIDogMyB9LAogICAgICAgICAgICAg
eyAibmFtZSIgOiAib3BfbmVnYXRlIiwgImxlbmd0aCIgOiAzIH0sCiAgICAgICAgICAgICB7ICJu
YW1lIiA6ICJvcF9hZGQiLCAibGVuZ3RoIiA6IDUgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggZWI5M2I4M2QwYWNhMWE0YmVjMTcyMzgxODk0
OWQ1Yzc0YzBkMTQ3YS4uZDJmYTAxNzQ4MzgzYTQ2ZTVmNGE5ZDNlNGVlYjUxMDVjZGYyYTdlMCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTk5
Miw3ICs5OTIsNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKAogICAgICAgICB9CiAg
ICAgICAgIGNhc2Ugb3BfdG9fbnVtYmVyOiB7CiAgICAgICAgICAgICBwcmludFVuYXJ5T3Aob3V0
LCBleGVjLCBsb2NhdGlvbiwgaXQsICJ0b19udW1iZXIiKTsKLSAgICAgICAgICAgIGR1bXBWYWx1
ZVByb2ZpbGluZyhvdXQsIGl0LCBoYXNQcmludGVkUHJvZmlsaW5nKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfdG9fc3RyaW5nOiB7CkBAIC0yMDk0LDgg
KzIwOTMsNyBAQCB2b2lkIENvZGVCbG9jazo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBTY3JpcHRF
eGVjdXRhYmxlKiBvd25lckV4ZWN1dGFibGUsIFVubGluawogICAgICAgICB9CiAgICAgICAgIGNh
c2Ugb3BfZ2V0X2RpcmVjdF9wbmFtZToKICAgICAgICAgY2FzZSBvcF9nZXRfYnlfaWQ6Ci0gICAg
ICAgIGNhc2Ugb3BfZ2V0X2Zyb21fYXJndW1lbnRzOgotICAgICAgICBjYXNlIG9wX3RvX251bWJl
cjogeworICAgICAgICBjYXNlIG9wX2dldF9mcm9tX2FyZ3VtZW50czogewogICAgICAgICAgICAg
VmFsdWVQcm9maWxlKiBwcm9maWxlID0gJm1fdmFsdWVQcm9maWxlc1twY1tvcExlbmd0aCAtIDFd
LnUub3BlcmFuZF07CiAgICAgICAgICAgICBBU1NFUlQocHJvZmlsZS0+bV9ieXRlY29kZU9mZnNl
dCA9PSAtMSk7CiAgICAgICAgICAgICBwcm9maWxlLT5tX2J5dGVjb2RlT2Zmc2V0ID0gaTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5jcHAKaW5kZXggYjRhYzdmOGE2OTdiYjgwNWU5Y2NkNmUyNDhhODMxYTRjZTM2MDdh
Yy4uOTFmNWM3NzQ3YWQ2NTBiYTVmZDAzYzI0OWEzZTVkNTBhY2ExOWE0MiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRv
ci5jcHAKQEAgLTE1MjUsMjIgKzE1MjUsMTIgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0
b3I6OmVtaXRNb3ZlKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjKQogCiBSZWdpc3Rl
cklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFVuYXJ5T3AoT3Bjb2RlSUQgb3Bjb2RlSUQsIFJl
Z2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjKQogewotICAgIEFTU0VSVF9XSVRIX01FU1NB
R0Uob3BfdG9fbnVtYmVyICE9IG9wY29kZUlELCAib3BfdG9fbnVtYmVyIGlzIHByb2ZpbGVkLiIp
OwogICAgIGVtaXRPcGNvZGUob3Bjb2RlSUQpOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChk
c3QtPmluZGV4KCkpOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChzcmMtPmluZGV4KCkpOwog
ICAgIHJldHVybiBkc3Q7CiB9CiAKLVJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0
VW5hcnlPcFByb2ZpbGVkKE9wY29kZUlEIG9wY29kZUlELCBSZWdpc3RlcklEKiBkc3QsIFJlZ2lz
dGVySUQqIHNyYykKLXsKLSAgICBVbmxpbmtlZFZhbHVlUHJvZmlsZSBwcm9maWxlID0gZW1pdFBy
b2ZpbGVkT3Bjb2RlKG9wY29kZUlEKTsKLSAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoZHN0LT5p
bmRleCgpKTsKLSAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoc3JjLT5pbmRleCgpKTsKLSAgICBp
bnN0cnVjdGlvbnMoKS5hcHBlbmQocHJvZmlsZSk7Ci0gICAgcmV0dXJuIGRzdDsKLX0KLQogUmVn
aXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRJbmMoUmVnaXN0ZXJJRCogc3JjRHN0KQog
ewogICAgIGVtaXRPcGNvZGUob3BfaW5jKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAppbmRleCAzOWI3OTczYjlmNWQ0
OTlhMGQ1ZjEwMWIxMjEyY2E0MDNmNTNlYjgxLi44ZGNlMjk5MDg3YzdhM2E3MWI5YmMxYWQxMTZl
ZWVhMzZhMDNiYjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCkBAIC01MTAsNyArNTEwLDYgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRMb2FkR2xvYmFsT2JqZWN0KFJlZ2lzdGVy
SUQqIGRzdCk7CiAKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFVuYXJ5T3AoT3Bjb2RlSUQsIFJl
Z2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjKTsKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1p
dFVuYXJ5T3BQcm9maWxlZChPcGNvZGVJRCwgUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBz
cmMpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0QmluYXJ5T3AoT3Bjb2RlSUQsIFJlZ2lzdGVy
SUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjMSwgUmVnaXN0ZXJJRCogc3JjMiwgT3BlcmFuZFR5cGVz
KTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEVxdWFsaXR5T3AoT3Bjb2RlSUQsIFJlZ2lzdGVy
SUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjMSwgUmVnaXN0ZXJJRCogc3JjMik7CiAgICAgICAgIFJl
Z2lzdGVySUQqIGVtaXRVbmFyeU5vRHN0T3AoT3Bjb2RlSUQsIFJlZ2lzdGVySUQqIHNyYyk7CkBA
IC01MzcsNyArNTM2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRNb3ZlRW1wdHlWYWx1ZShSZWdpc3RlcklEKiBkc3QpOwogICAgICAgICBSZWdpc3RlcklEKiBl
bWl0TW92ZShSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHNyYyk7CiAKLSAgICAgICAgUmVn
aXN0ZXJJRCogZW1pdFRvTnVtYmVyKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjKSB7
IHJldHVybiBlbWl0VW5hcnlPcFByb2ZpbGVkKG9wX3RvX251bWJlciwgZHN0LCBzcmMpOyB9Cisg
ICAgICAgIFJlZ2lzdGVySUQqIGVtaXRUb051bWJlcihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVy
SUQqIHNyYykgeyByZXR1cm4gZW1pdFVuYXJ5T3Aob3BfdG9fbnVtYmVyLCBkc3QsIHNyYyk7IH0K
ICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFRvU3RyaW5nKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0
ZXJJRCogc3JjKSB7IHJldHVybiBlbWl0VW5hcnlPcChvcF90b19zdHJpbmcsIGRzdCwgc3JjKTsg
fQogICAgICAgICBSZWdpc3RlcklEKiBlbWl0SW5jKFJlZ2lzdGVySUQqIHNyY0RzdCk7CiAgICAg
ICAgIFJlZ2lzdGVySUQqIGVtaXREZWMoUmVnaXN0ZXJJRCogc3JjRHN0KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAppbmRleCA2
MWE1NGVjZmQ5YTIyZTkyYmZjNDVkODgzNjUxNzgxZGNhNmY1ZjkyLi5iNmQwYTM3MmJiOWI2Y2Jh
NWEyOGI2ZGIyZmFhZDY2NjI3MGE2YmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC05MTgsMTUgKzkxOCw2IEBAIFJl
Z2lzdGVySUQqIEJ5dGVjb2RlSW50cmluc2ljTm9kZTo6ZW1pdF9pbnRyaW5zaWNfdHJ5R2V0QnlJ
ZChCeXRlY29kZUdlbmVyYXRvciYKICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRUcnlHZXRCeUlk
KGZpbmFsRGVzdC5nZXQoKSwgYmFzZS5nZXQoKSwgaWRlbnQpOwogfQogCi1SZWdpc3RlcklEKiBC
eXRlY29kZUludHJpbnNpY05vZGU6OmVtaXRfaW50cmluc2ljX3RvTnVtYmVyKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKLXsKLSAgICBBcmd1bWVudExpc3RO
b2RlKiBub2RlID0gbV9hcmdzLT5tX2xpc3ROb2RlOwotICAgIFJlZlB0cjxSZWdpc3RlcklEPiBz
cmMgPSBnZW5lcmF0b3IuZW1pdE5vZGUobm9kZSk7Ci0gICAgQVNTRVJUKCFub2RlLT5tX25leHQp
OwotCi0gICAgcmV0dXJuIGdlbmVyYXRvci5tb3ZlVG9EZXN0aW5hdGlvbklmTmVlZGVkKGRzdCwg
Z2VuZXJhdG9yLmVtaXRUb051bWJlcihnZW5lcmF0b3IudGVtcERlc3RpbmF0aW9uKGRzdCksIHNy
Yy5nZXQoKSkpOwotfQotCiBSZWdpc3RlcklEKiBCeXRlY29kZUludHJpbnNpY05vZGU6OmVtaXRf
aW50cmluc2ljX3RvU3RyaW5nKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVy
SUQqIGRzdCkKIHsKICAgICBBcmd1bWVudExpc3ROb2RlKiBub2RlID0gbV9hcmdzLT5tX2xpc3RO
b2RlOwpAQCAtMTU1OCwxNiArMTU0OSw2IEBAIFJlZ2lzdGVySUQqIFVuYXJ5T3BOb2RlOjplbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCoKICAgICBy
ZXR1cm4gZ2VuZXJhdG9yLmVtaXRVbmFyeU9wKG9wY29kZUlEKCksIGdlbmVyYXRvci5maW5hbERl
c3RpbmF0aW9uKGRzdCksIHNyYy5nZXQoKSk7CiB9CiAKLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSBVbmFyeVBsdXNOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0KLVJlZ2lzdGVySUQqIFVuYXJ5UGx1c05vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdl
bmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCi17Ci0gICAgQVNTRVJUKG9wY29k
ZUlEKCkgPT0gb3BfdG9fbnVtYmVyKTsKLSAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gc3JjID0gZ2Vu
ZXJhdG9yLmVtaXROb2RlKGV4cHIoKSk7Ci0gICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5m
byhwb3NpdGlvbigpLCBwb3NpdGlvbigpLCBwb3NpdGlvbigpKTsKLSAgICByZXR1cm4gZ2VuZXJh
dG9yLmVtaXRUb051bWJlcihnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QpLCBzcmMuZ2V0
KCkpOwotfQotCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQml0d2lzZU5vdE5v
ZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAKIFJlZ2lzdGVySUQqIEJp
dHdpc2VOb3ROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwg
UmVnaXN0ZXJJRCogZHN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IGViZGM3OWM2MGY2ZjJmNmQ5
MDYzZWExNmM0YzI4NmM0NTUzYTEwMDMuLmFkODI3ZDVhYWRkODVhMGZmMWQ5MWM3Yjk5ZDgyM2U2
Y2RjMzdmZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJh
Y3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTE4MjcsNiArMTgyNywxMSBAQCBib29s
IEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1
bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICAKICAgICAgICAgQVNTRVJUKG5vZGUtPmNoaWxk
MSgpLnVzZUtpbmQoKSA9PSBVbnR5cGVkVXNlKTsKICAgICAgICAgCisgICAgICAgIGlmICghZm9y
Tm9kZShub2RlLT5jaGlsZDEoKSkubV90eXBlKSB7CisgICAgICAgICAgICBtX3N0YXRlLnNldElz
VmFsaWQoZmFsc2UpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgCiAg
ICAgICAgIGlmICghKGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLm1fdHlwZSAmIH4oU3BlY0Z1bGxO
dW1iZXIgfCBTcGVjQm9vbGVhbiB8IFNwZWNTdHJpbmcgfCBTcGVjU3ltYm9sKSkpIHsKICAgICAg
ICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7CiAgICAgICAgICAgICBmb3JO
b2RlKG5vZGUpID0gZm9yTm9kZShub2RlLT5jaGlsZDEoKSk7CkBAIC0xODM4LDI2ICsxODQzLDYg
QEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVm
ZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICAgICAgZm9yTm9kZShub2RlKS5zZXRUeXBl
KG1fZ3JhcGgsIFNwZWNIZWFwVG9wICYgflNwZWNPYmplY3QpOwogICAgICAgICBicmVhazsKICAg
ICB9Ci0KLSAgICBjYXNlIFRvTnVtYmVyOiB7Ci0gICAgICAgIEpTVmFsdWUgY2hpbGRDb25zdCA9
IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLnZhbHVlKCk7Ci0gICAgICAgIGlmIChjaGlsZENvbnN0
ICYmIGNoaWxkQ29uc3QuaXNOdW1iZXIoKSkgewotICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9k
ZSwgY2hpbGRDb25zdCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAg
IEFTU0VSVChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gVW50eXBlZFVzZSk7Ci0KLSAgICAg
ICAgaWYgKCEoZm9yTm9kZShub2RlLT5jaGlsZDEoKSkubV90eXBlICYgflNwZWNCeXRlY29kZU51
bWJlcikpIHsKLSAgICAgICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7Ci0g
ICAgICAgICAgICBmb3JOb2RlKG5vZGUpID0gZm9yTm9kZShub2RlLT5jaGlsZDEoKSk7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIGNsb2JiZXJXb3JsZChub2RlLT5v
cmlnaW4uc2VtYW50aWMsIGNsb2JiZXJMaW1pdCk7Ci0gICAgICAgIGZvck5vZGUobm9kZSkuc2V0
VHlwZShtX2dyYXBoLCBTcGVjQnl0ZWNvZGVOdW1iZXIpOwotICAgICAgICBicmVhazsKLSAgICB9
CiAgICAgICAgIAogICAgIGNhc2UgVG9TdHJpbmc6CiAgICAgY2FzZSBDYWxsU3RyaW5nQ29uc3Ry
dWN0b3I6IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNl
ci5jcHAKaW5kZXggODI1NTFmZTYyYmYzMzE3OGU4NDgyZDEzYWI2NDUzZWUxZmMzNTZhNi4uZGE3
NTQ0MzNmNWQ0NmU3MDhhMzVkN2ZhYmNkNjQxZjhjMjRhZTk0OSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTQyLDEwICs0Miw5IEBA
CiAjaW5jbHVkZSAiREZHSklUQ29kZS5oIgogI2luY2x1ZGUgIkdldEJ5SWRTdGF0dXMuaCIKICNp
bmNsdWRlICJIZWFwLmgiCi0jaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTTGV4
aWNhbEVudmlyb25tZW50LmgiCisjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpT
TW9kdWxlRW52aXJvbm1lbnQuaCIKLSNpbmNsdWRlICJOdW1iZXJDb25zdHJ1Y3Rvci5oIgogI2lu
Y2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiUHJlY2lzZUp1bXBUYXJnZXRz
LmgiCiAjaW5jbHVkZSAiUHV0QnlJZEZsYWdzLmgiCkBAIC0yMTYsNyArMjE1LDcgQEAgcHJpdmF0
ZToKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGVja3NGdW5jdG9yPgogICAgIGJvb2wgaGFuZGxl
VHlwZWRBcnJheUNvbnN0cnVjdG9yKGludCByZXN1bHRPcGVyYW5kLCBJbnRlcm5hbEZ1bmN0aW9u
KiwgaW50IHJlZ2lzdGVyT2Zmc2V0LCBpbnQgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIFR5
cGVkQXJyYXlUeXBlLCBjb25zdCBDaGVja3NGdW5jdG9yJiBpbnNlcnRDaGVja3MpOwogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIENoZWNrc0Z1bmN0b3I+Ci0gICAgYm9vbCBoYW5kbGVDb25zdGFudElu
dGVybmFsRnVuY3Rpb24oTm9kZSogY2FsbFRhcmdldE5vZGUsIGludCByZXN1bHRPcGVyYW5kLCBJ
bnRlcm5hbEZ1bmN0aW9uKiwgaW50IHJlZ2lzdGVyT2Zmc2V0LCBpbnQgYXJndW1lbnRDb3VudElu
Y2x1ZGluZ1RoaXMsIENvZGVTcGVjaWFsaXphdGlvbktpbmQsIFNwZWN1bGF0ZWRUeXBlLCBjb25z
dCBDaGVja3NGdW5jdG9yJiBpbnNlcnRDaGVja3MpOworICAgIGJvb2wgaGFuZGxlQ29uc3RhbnRJ
bnRlcm5hbEZ1bmN0aW9uKE5vZGUqIGNhbGxUYXJnZXROb2RlLCBpbnQgcmVzdWx0T3BlcmFuZCwg
SW50ZXJuYWxGdW5jdGlvbiosIGludCByZWdpc3Rlck9mZnNldCwgaW50IGFyZ3VtZW50Q291bnRJ
bmNsdWRpbmdUaGlzLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLCBjb25zdCBDaGVja3NGdW5jdG9y
JiBpbnNlcnRDaGVja3MpOwogICAgIE5vZGUqIGhhbmRsZVB1dEJ5T2Zmc2V0KE5vZGUqIGJhc2Us
IHVuc2lnbmVkIGlkZW50aWZpZXIsIFByb3BlcnR5T2Zmc2V0LCBjb25zdCBJbmZlcnJlZFR5cGU6
OkRlc2NyaXB0b3ImLCBOb2RlKiB2YWx1ZSk7CiAgICAgTm9kZSogaGFuZGxlR2V0QnlPZmZzZXQo
U3BlY3VsYXRlZFR5cGUsIE5vZGUqIGJhc2UsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIFBy
b3BlcnR5T2Zmc2V0LCBjb25zdCBJbmZlcnJlZFR5cGU6OkRlc2NyaXB0b3ImLCBOb2RlVHlwZSA9
IEdldEJ5T2Zmc2V0KTsKIApAQCAtMTY1Miw3ICsxNjUxLDcgQEAgYm9vbCBCeXRlQ29kZVBhcnNl
cjo6YXR0ZW1wdFRvSW5saW5lQ2FsbChOb2RlKiBjYWxsVGFyZ2V0Tm9kZSwgaW50IHJlc3VsdE9w
ZXJhbmQKICAgICAgICAgfTsKICAgICAKICAgICAgICAgaWYgKEludGVybmFsRnVuY3Rpb24qIGZ1
bmN0aW9uID0gY2FsbGVlLmludGVybmFsRnVuY3Rpb24oKSkgewotICAgICAgICAgICAgaWYgKGhh
bmRsZUNvbnN0YW50SW50ZXJuYWxGdW5jdGlvbihjYWxsVGFyZ2V0Tm9kZSwgcmVzdWx0T3BlcmFu
ZCwgZnVuY3Rpb24sIHJlZ2lzdGVyT2Zmc2V0LCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywg
c3BlY2lhbGl6YXRpb25LaW5kLCBwcmVkaWN0aW9uLCBpbnNlcnRDaGVja3NXaXRoQWNjb3VudGlu
ZykpIHsKKyAgICAgICAgICAgIGlmIChoYW5kbGVDb25zdGFudEludGVybmFsRnVuY3Rpb24oY2Fs
bFRhcmdldE5vZGUsIHJlc3VsdE9wZXJhbmQsIGZ1bmN0aW9uLCByZWdpc3Rlck9mZnNldCwgYXJn
dW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIHNwZWNpYWxpemF0aW9uS2luZCwgaW5zZXJ0Q2hlY2tz
V2l0aEFjY291bnRpbmcpKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoZGlkSW5z
ZXJ0Q2hlY2tzKTsKICAgICAgICAgICAgICAgICBhZGRUb0dyYXBoKFBoYW50b20sIGNhbGxUYXJn
ZXROb2RlKTsKICAgICAgICAgICAgICAgICBlbWl0QXJndW1lbnRQaGFudG9tcyhyZWdpc3Rlck9m
ZnNldCwgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpOwpAQCAtMjYzOCw3ICsyNjM3LDcgQEAg
Ym9vbCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlVHlwZWRBcnJheUNvbnN0cnVjdG9yKAogdGVtcGxh
dGU8dHlwZW5hbWUgQ2hlY2tzRnVuY3Rvcj4KIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUNv
bnN0YW50SW50ZXJuYWxGdW5jdGlvbigKICAgICBOb2RlKiBjYWxsVGFyZ2V0Tm9kZSwgaW50IHJl
c3VsdE9wZXJhbmQsIEludGVybmFsRnVuY3Rpb24qIGZ1bmN0aW9uLCBpbnQgcmVnaXN0ZXJPZmZz
ZXQsCi0gICAgaW50IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzLCBDb2RlU3BlY2lhbGl6YXRp
b25LaW5kIGtpbmQsIFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24sIGNvbnN0IENoZWNrc0Z1bmN0
b3ImIGluc2VydENoZWNrcykKKyAgICBpbnQgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIENv
ZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgY29uc3QgQ2hlY2tzRnVuY3RvciYgaW5zZXJ0Q2hl
Y2tzKQogewogICAgIGlmICh2ZXJib3NlKQogICAgICAgICBkYXRhTG9nKCIgICAgSGFuZGxpbmcg
Y29uc3RhbnQgaW50ZXJuYWwgZnVuY3Rpb24gIiwgSlNWYWx1ZShmdW5jdGlvbiksICJcbiIpOwpA
QCAtMjY2OSwxOSArMjY2OCw2IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUNvbnN0YW50
SW50ZXJuYWxGdW5jdGlvbigKICAgICAgICAgICAgIGFkZFRvR3JhcGgoTm9kZTo6VmFyQXJnLCBO
ZXdBcnJheSwgT3BJbmZvKEFycmF5V2l0aFVuZGVjaWRlZCksIE9wSW5mbygwKSkpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0KLSAgICBpZiAoZnVuY3Rpb24tPmNsYXNzSW5mbygpID09
IE51bWJlckNvbnN0cnVjdG9yOjppbmZvKCkpIHsKLSAgICAgICAgaWYgKGtpbmQgPT0gQ29kZUZv
ckNvbnN0cnVjdCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBpbnNlcnRD
aGVja3MoKTsKLSAgICAgICAgaWYgKGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzIDw9IDEpCi0g
ICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKHJlc3VsdE9wZXJhbmQpLCBqc0NvbnN0YW50
KGpzTnVtYmVyKDApKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHNldChWaXJ0dWFsUmVn
aXN0ZXIocmVzdWx0T3BlcmFuZCksIGFkZFRvR3JhcGgoVG9OdW1iZXIsIE9wSW5mbygwKSwgT3BJ
bmZvKHByZWRpY3Rpb24pLCBnZXQodmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoMSwgcmVnaXN0
ZXJPZmZzZXQpKSkpOwotCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KICAgICAKICAgICBp
ZiAoZnVuY3Rpb24tPmNsYXNzSW5mbygpID09IFN0cmluZ0NvbnN0cnVjdG9yOjppbmZvKCkpIHsK
ICAgICAgICAgaW5zZXJ0Q2hlY2tzKCk7CkBAIC01MDYwLDkgKzUwNDYsOSBAQCBib29sIEJ5dGVD
b2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICB9CiAKICAgICAg
ICAgY2FzZSBvcF90b19udW1iZXI6IHsKLSAgICAgICAgICAgIFNwZWN1bGF0ZWRUeXBlIHByZWRp
Y3Rpb24gPSBnZXRQcmVkaWN0aW9uKCk7Ci0gICAgICAgICAgICBOb2RlKiB2YWx1ZSA9IGdldChW
aXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpOwotICAgICAg
ICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5k
KSwgYWRkVG9HcmFwaChUb051bWJlciwgT3BJbmZvKDApLCBPcEluZm8ocHJlZGljdGlvbiksIHZh
bHVlKSk7CisgICAgICAgICAgICBOb2RlKiBub2RlID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJy
ZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CisgICAgICAgICAgICBhZGRUb0dyYXBoKFBo
YW50b20sIEVkZ2Uobm9kZSwgTnVtYmVyVXNlKSk7CisgICAgICAgICAgICBzZXQoVmlydHVhbFJl
Z2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCBub2RlKTsKICAgICAgICAg
ICAgIE5FWFRfT1BDT0RFKG9wX3RvX251bWJlcik7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRleCA2YWUyZGYyMWM2MjgwYTYyNWQ0Njli
YzU1YTEyMGIzYjE2NDM0ZDc3Li45N2E0MDRiNTczZmYyOTFlZjRkMDI2NTYyYWNjMjU4M2Q5Y2Yx
YTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaApAQCAtMTE3
MywxMiArMTE3Myw2IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUs
IGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIHJlYWQoV29y
bGQpOwogICAgICAgICB3cml0ZShIZWFwKTsKICAgICAgICAgcmV0dXJuOwotCi0gICAgY2FzZSBU
b051bWJlcjogewotICAgICAgICByZWFkKFdvcmxkKTsKLSAgICAgICAgd3JpdGUoSGVhcCk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9CiAgICAgICAgIAogICAgIGNhc2UgVG9TdHJpbmc6CiAgICAg
Y2FzZSBDYWxsU3RyaW5nQ29uc3RydWN0b3I6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCmluZGV4IGY1ZmFjZTllOGIyOGRh
YmYxODQzZTEwM2IyYTE3YjM5ZjUzZjEwZWMuLjliNDZiZTVhY2FlMzI5NGZiMmQ3NGZlNjZjNmFk
NzYwYmZlZGFjYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29u
c3RhbnRGb2xkaW5nUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCkBAIC01NjYsMTUgKzU2Niw2IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGNhc2Ug
VG9OdW1iZXI6IHsKLSAgICAgICAgICAgICAgICBpZiAobV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNo
aWxkMSgpKS5tX3R5cGUgJiB+U3BlY0J5dGVjb2RlTnVtYmVyKQotICAgICAgICAgICAgICAgICAg
ICBicmVhazsKLQotICAgICAgICAgICAgICAgIG5vZGUtPmNvbnZlcnRUb0lkZW50aXR5KCk7Ci0g
ICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICB9Ci0KICAgICAgICAgICAgIGNhc2UgQ2hlY2s6IHsKICAgICAgICAgICAgICAg
ICBhbHJlYWR5SGFuZGxlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgbV9pbnRlcnByZXRlci5l
eGVjdXRlKGluZGV4SW5CbG9jayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5j
cHAKaW5kZXggY2FmMzBlMzZhMjYwMDQ2MDZlNWUxZTE1YWNkZjIxODJjMTg4N2QzNi4uOGQ4Zjll
MjRlOThjZjllZGU3YmZkODc5YTY2MTMxM2Q0YmQ0MTRmYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtMTY5LDcgKzE2OSw2IEBAIGJvb2wgZG9lc0dDKEdyYXBo
JiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIFR5cGVPZjoKICAgICBjYXNlIExvZ2ljYWxO
b3Q6CiAgICAgY2FzZSBUb1ByaW1pdGl2ZToKLSAgICBjYXNlIFRvTnVtYmVyOgogICAgIGNhc2Ug
VG9TdHJpbmc6CiAgICAgY2FzZSBDYWxsU3RyaW5nQ29uc3RydWN0b3I6CiAgICAgY2FzZSBJbjoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IDk5N2Fj
Y2FiOGE0ZjRjODM1N2M5OTllNTU3YzE1MzlmOTJlOWE5NTYuLjQ4NjUzYjVkZDJmOTMxNDcyMWI3
YjA2Yjk3OTJkMjkwNWNhYjg0NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHRml4dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
aXh1cFBoYXNlLmNwcApAQCAtOTg5LDExICs5ODksNiBAQCBwcml2YXRlOgogICAgICAgICAgICAg
Zml4dXBUb1ByaW1pdGl2ZShub2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0K
LSAgICAgICAgY2FzZSBUb051bWJlcjogewotICAgICAgICAgICAgZml4dXBUb051bWJlcihub2Rl
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAg
Y2FzZSBUb1N0cmluZzoKICAgICAgICAgY2FzZSBDYWxsU3RyaW5nQ29uc3RydWN0b3I6IHsKQEAg
LTE4MDMsMzIgKzE3OTgsNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAgICAgfQotCi0gICAgdm9pZCBmaXh1cFRvTnVtYmVyKE5vZGUqIG5vZGUpCi0gICAgewot
ICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZUludDMyKCkpIHsKLSAg
ICAgICAgICAgIGZpeEVkZ2U8SW50MzJVc2U+KG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAg
IG5vZGUtPmNvbnZlcnRUb0lkZW50aXR5KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IH0KLQotICAgICAgICBpZiAoZW5hYmxlSW50NTIoKSAmJiBub2RlLT5jaGlsZDEoKS0+c2hvdWxk
U3BlY3VsYXRlQW55SW50KCkpIHsKLSAgICAgICAgICAgIGZpeEVkZ2U8SW50NTJSZXBVc2U+KG5v
ZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgIG5vZGUtPmNvbnZlcnRUb0lkZW50aXR5KCk7Ci0g
ICAgICAgICAgICBub2RlLT5zZXRSZXN1bHQoTm9kZVJlc3VsdEludDUyKTsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxk
U3BlY3VsYXRlTnVtYmVyKCkpIHsKLSAgICAgICAgICAgIGZpeEVkZ2U8RG91YmxlUmVwVXNlPihu
b2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBub2RlLT5jb252ZXJ0VG9JZGVudGl0eSgpOwot
ICAgICAgICAgICAgbm9kZS0+c2V0UmVzdWx0KE5vZGVSZXN1bHREb3VibGUpOwotICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgZml4RWRnZTxVbnR5cGVkVXNlPihub2Rl
LT5jaGlsZDEoKSk7Ci0gICAgICAgIG5vZGUtPnNldFJlc3VsdChOb2RlUmVzdWx0SlMpOwotICAg
IH0KICAgICAKICAgICB2b2lkIGZpeHVwVG9TdHJpbmdPckNhbGxTdHJpbmdDb25zdHJ1Y3RvcihO
b2RlKiBub2RlKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggM2Jm
M2IyYzcxYWE0ZTZiNTBmODUxMGQzODAyNjBjYjk5YWFhN2Q5ZC4uOTQ2YzBiZjAxODE4ZWUwMmZl
M2Q3MTA4ZGI1YmJlYTk1MjI0NzFiMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgK
QEAgLTE0MzksNyArMTQzOSw2IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgY2FzZSBHZXRHbG9i
YWxMZXhpY2FsVmFyaWFibGU6CiAgICAgICAgIGNhc2UgU3RyaW5nUmVwbGFjZToKICAgICAgICAg
Y2FzZSBTdHJpbmdSZXBsYWNlUmVnRXhwOgotICAgICAgICBjYXNlIFRvTnVtYmVyOgogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKaW5kZXggZjkzYjNi
ZjE0MjAwY2YwNDVlNjhhNjQxZTdkNmIwMDE3Yzc0ZjEzNy4uNTQyYjQ3ZmVlMTQ1N2E3ODA3ODBm
NDQ5YTgwY2MwZWFiZThjZDQyNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5
cGUuaApAQCAtMzIyLDcgKzMyMiw2IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsK
ICAgICBtYWNybyhMb2dpY2FsTm90LCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKFRv
UHJpbWl0aXZlLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8o
VG9TdHJpbmcsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKLSAgICBtYWNybyhU
b051bWJlciwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENh
bGxPYmplY3RDb25zdHJ1Y3RvciwgTm9kZVJlc3VsdEpTKSBcCiAgICAgbWFjcm8oQ2FsbFN0cmlu
Z0NvbnN0cnVjdG9yLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFj
cm8oTmV3U3RyaW5nT2JqZWN0LCBOb2RlUmVzdWx0SlMpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IGQxYjM4OGQzZmI4MjA3YWFiYmNkYjdjYTlj
MGQ1OTE5MGE1ZjAzNTEuLjBhNmFhYTBmYmJiMmUzNTg1ZWIwYTdlNmE2NThkZmVlMjc4NWUxMmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtNzMx
LDE0ICs3MzEsNiBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvUHJp
bWl0aXZlKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdQogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKS50b1ByaW1pdGl2ZShleGVjKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9OdW1iZXIoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBWTSogdm0gPSAmZXhlYy0+dm0o
KTsKLSAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKLQotICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKS50b051
bWJlcihleGVjKSkpOwotfQotCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkdldEJ5SWRXaXRoVGhpcyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRC
YXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVGhpcywgVW5pcXVlZFN0cmluZ0ltcGwqIGltcGwp
CiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPcGVyYXRpb25zLmgKaW5kZXggZmJjODYyZmUxZWE4NDZkMmY3YzNmYTI3Mjc2ZTgzZDA2MWI4
ZjIyYi4uZmU4NGVlM2JmY2U1MjM5MmIxYmRjZTRiZDM5Njg4ODE3MzExZWIyOCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKQEAgLTU4LDcgKzU4LDYgQEAgRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbENlbGwoRXhlY1N0YXRl
KiwgSlNDZWxsKiwgRW5jb2RlZEoKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uR2V0QnlWYWxBcnJheUludChFeGVjU3RhdGUqLCBKU0FycmF5KiwgaW50MzJfdCkgV1RGX0lO
VEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbFN0
cmluZ0ludChFeGVjU3RhdGUqLCBKU1N0cmluZyosIGludDMyX3QpIFdURl9JTlRFUk5BTDsKIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9QcmltaXRpdmUoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uVG9OdW1iZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9J
TlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZFdp
dGhUaGlzKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVl
ZFN0cmluZ0ltcGwqKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkdldEJ5VmFsV2l0aFRoaXMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogY2hhciogSklUX09Q
RVJBVElPTiBvcGVyYXRpb25OZXdBcnJheShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqLCB2b2lkKiwg
c2l6ZV90KSBXVEZfSU5URVJOQUw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IGEyZGJlNDQ0
YjZlZDM3MWIwMDU5YzM4MGE4N2RkYTljNjE2N2MzZTkuLjc5MmFhODUyNjU5MWIyY2M0MGI5Y2Y1
NzFjNTY1Njg5N2FjYjQ1MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC03MTIsOCArNzEy
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBHZXRHbG9iYWxWYXI6CiAgICAgICAgIGNhc2Ug
R2V0R2xvYmFsTGV4aWNhbFZhcmlhYmxlOgogICAgICAgICBjYXNlIEdldENsb3N1cmVWYXI6Ci0g
ICAgICAgIGNhc2UgR2V0RnJvbUFyZ3VtZW50czoKLSAgICAgICAgY2FzZSBUb051bWJlcjogewor
ICAgICAgICBjYXNlIEdldEZyb21Bcmd1bWVudHM6IHsKICAgICAgICAgICAgIHNldFByZWRpY3Rp
b24obV9jdXJyZW50Tm9kZS0+Z2V0SGVhcFByZWRpY3Rpb24oKSk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
YWZlVG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1
dGUuaAppbmRleCBjMWEzYmJlM2ZmZGE3OWJhMDY3YmQ3MDZkZTY0YWNhMjZmMDdhMTc4Li5mOGU2
NjEzNTZlOGI5ODhmYTAzZTc2YTQ1MTdhZjY3OTRiM2I0ZjQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaApAQCAtMjcyLDcgKzI3Miw2IEBAIGJvb2wg
c2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3RhdGUsIEdyYXBoJiBncmFwaCwgTm9k
ZSogbm9kZSkKICAgICBjYXNlIENhbGxPYmplY3RDb25zdHJ1Y3RvcjoKICAgICBjYXNlIFRvUHJp
bWl0aXZlOgogICAgIGNhc2UgVG9TdHJpbmc6Ci0gICAgY2FzZSBUb051bWJlcjoKICAgICBjYXNl
IFNldEZ1bmN0aW9uTmFtZToKICAgICBjYXNlIFN0ckNhdDoKICAgICBjYXNlIENhbGxTdHJpbmdD
b25zdHJ1Y3RvcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IDc0NmM0MDk2MDU5NGY4MTllZWRmNzQwOTFkM2M3YjM1
Nzg2OTNjZDEuLjViMTgyYjRkMDJlODhhMTM1NGVkZWJlZTEyMzY2NTY4ZDIyZDZmMzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcApAQCAtMzU2Nyw3MyArMzU2NywzMiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
KE5vZGUqIG5vZGUpCiAgICAgICAgIAogICAgIGNhc2UgVG9QcmltaXRpdmU6IHsKICAgICAgICAg
UkVMRUFTRV9BU1NFUlQobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IFVudHlwZWRVc2UpOwot
ICAgICAgICBKU1ZhbHVlT3BlcmFuZCBhcmd1bWVudCh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0g
ICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHRUYWcodGhpcywgUmV1c2UsIGFyZ3VtZW50LCBUYWdX
b3JkKTsKLSAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdFBheWxvYWQodGhpcywgUmV1c2UsIGFy
Z3VtZW50LCBQYXlsb2FkV29yZCk7CisgICAgICAgIEpTVmFsdWVPcGVyYW5kIG9wMSh0aGlzLCBu
b2RlLT5jaGlsZDEoKSk7CisgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHRUYWcodGhpcywgUmV1
c2UsIG9wMSwgVGFnV29yZCk7CisgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHRQYXlsb2FkKHRo
aXMsIFJldXNlLCBvcDEsIFBheWxvYWRXb3JkKTsKICAgICAgICAgCi0gICAgICAgIEdQUlJlZyBh
cmd1bWVudFRhZ0dQUiA9IGFyZ3VtZW50LnRhZ0dQUigpOwotICAgICAgICBHUFJSZWcgYXJndW1l
bnRQYXlsb2FkR1BSID0gYXJndW1lbnQucGF5bG9hZEdQUigpOworICAgICAgICBHUFJSZWcgb3Ax
VGFnR1BSID0gb3AxLnRhZ0dQUigpOworICAgICAgICBHUFJSZWcgb3AxUGF5bG9hZEdQUiA9IG9w
MS5wYXlsb2FkR1BSKCk7CiAgICAgICAgIEdQUlJlZyByZXN1bHRUYWdHUFIgPSByZXN1bHRUYWcu
Z3ByKCk7CiAgICAgICAgIEdQUlJlZyByZXN1bHRQYXlsb2FkR1BSID0gcmVzdWx0UGF5bG9hZC5n
cHIoKTsKICAgICAgICAgCi0gICAgICAgIGFyZ3VtZW50LnVzZSgpOworICAgICAgICBvcDEudXNl
KCk7CiAgICAgICAgIAotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBhbHJlYWR5UHJpbWl0
aXZlID0gbV9qaXQuYnJhbmNoSWZOb3RDZWxsKGFyZ3VtZW50LmpzVmFsdWVSZWdzKCkpOwotICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub3RQcmltaXRpdmUgPSBtX2ppdC5icmFuY2hJZk9i
amVjdChhcmd1bWVudFBheWxvYWRHUFIpOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBh
bHJlYWR5UHJpbWl0aXZlID0gbV9qaXQuYnJhbmNoSWZOb3RDZWxsKG9wMS5qc1ZhbHVlUmVncygp
KTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbm90UHJpbWl0aXZlID0gbV9qaXQuYnJh
bmNoSWZPYmplY3Qob3AxUGF5bG9hZEdQUik7CiAgICAgICAgIAogICAgICAgICBhbHJlYWR5UHJp
bWl0aXZlLmxpbmsoJm1faml0KTsKLSAgICAgICAgbV9qaXQubW92ZShhcmd1bWVudFRhZ0dQUiwg
cmVzdWx0VGFnR1BSKTsKLSAgICAgICAgbV9qaXQubW92ZShhcmd1bWVudFBheWxvYWRHUFIsIHJl
c3VsdFBheWxvYWRHUFIpOworICAgICAgICBtX2ppdC5tb3ZlKG9wMVRhZ0dQUiwgcmVzdWx0VGFn
R1BSKTsKKyAgICAgICAgbV9qaXQubW92ZShvcDFQYXlsb2FkR1BSLCByZXN1bHRQYXlsb2FkR1BS
KTsKICAgICAgICAgCiAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKAogICAgICAgICAgICAg
c2xvd1BhdGhDYWxsKAogICAgICAgICAgICAgICAgIG5vdFByaW1pdGl2ZSwgdGhpcywgb3BlcmF0
aW9uVG9QcmltaXRpdmUsCi0gICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3MocmVzdWx0VGFnR1BS
LCByZXN1bHRQYXlsb2FkR1BSKSwgYXJndW1lbnRUYWdHUFIsIGFyZ3VtZW50UGF5bG9hZEdQUikp
OworICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9h
ZEdQUiksIG9wMVRhZ0dQUiwgb3AxUGF5bG9hZEdQUikpOwogICAgICAgICAKICAgICAgICAganNW
YWx1ZVJlc3VsdChyZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIsIG5vZGUsIFVzZUNoaWxk
cmVuQ2FsbGVkRXhwbGljaXRseSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLQotICAgIGNhc2Ug
VG9OdW1iZXI6IHsKLSAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYXJndW1lbnQodGhpcywgbm9kZS0+
Y2hpbGQxKCkpOwotICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0VGFnKHRoaXMsIFJldXNlLCBh
cmd1bWVudCwgVGFnV29yZCk7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHRQYXlsb2FkKHRo
aXMsIFJldXNlLCBhcmd1bWVudCwgUGF5bG9hZFdvcmQpOwotCi0gICAgICAgIEdQUlJlZyBhcmd1
bWVudFBheWxvYWRHUFIgPSBhcmd1bWVudC5wYXlsb2FkR1BSKCk7Ci0gICAgICAgIEdQUlJlZyBh
cmd1bWVudFRhZ0dQUiA9IGFyZ3VtZW50LnRhZ0dQUigpOwotICAgICAgICBKU1ZhbHVlUmVncyBy
ZXN1bHRSZWdzKHJlc3VsdFRhZy5ncHIoKSwgcmVzdWx0UGF5bG9hZC5ncHIoKSk7Ci0KLSAgICAg
ICAgYXJndW1lbnQudXNlKCk7Ci0KLSAgICAgICAgLy8gV2UgaGF2ZSBzZXZlcmFsIGF0dGVtcHRz
IHRvIHJlbW92ZSBUb051bWJlci4gQnV0IFRvTnVtYmVyIHN0aWxsIGV4aXN0cy4KLSAgICAgICAg
Ly8gSXQgbWVhbnMgdGhhdCBjb252ZXJ0aW5nIG5vbi1udW1iZXJzIHRvIG51bWJlcnMgYnkgdGhp
cyBUb051bWJlciBpcyBub3QgcmFyZS4KLSAgICAgICAgLy8gSW5zdGVhZCBvZiB0aGUgc2xvdyBw
YXRoIGdlbmVyYXRvciwgd2UgZW1pdCBjYWxsT3BlcmF0aW9uIGhlcmUuCi0gICAgICAgIGlmICgh
KG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkubV90eXBlICYgU3BlY0J5dGVjb2RlTnVt
YmVyKSkgewotICAgICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKLSAgICAgICAgICAgIGNhbGxP
cGVyYXRpb24ob3BlcmF0aW9uVG9OdW1iZXIsIHJlc3VsdFJlZ3MsIGFyZ3VtZW50VGFnR1BSLCBh
cmd1bWVudFBheWxvYWRHUFIpOwotICAgICAgICAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsK
LSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG5vdE51
bWJlcjsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRj
aCh0aGlzKTsKLSAgICAgICAgICAgICAgICBub3ROdW1iZXIgPSBtX2ppdC5icmFuY2hJZk5vdE51
bWJlcihhcmd1bWVudC5qc1ZhbHVlUmVncygpLCBzY3JhdGNoLmdwcigpKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIG1faml0Lm1vdmUoYXJndW1lbnRUYWdHUFIsIHJlc3VsdFJlZ3MudGFn
R1BSKCkpOwotICAgICAgICAgICAgbV9qaXQubW92ZShhcmd1bWVudFBheWxvYWRHUFIsIHJlc3Vs
dFJlZ3MucGF5bG9hZEdQUigpKTsKLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGRv
bmUgPSBtX2ppdC5qdW1wKCk7Ci0KLSAgICAgICAgICAgIG5vdE51bWJlci5saW5rKCZtX2ppdCk7
Ci0gICAgICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhyZXN1bHRSZWdzKTsKLSAgICAg
ICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVG9OdW1iZXIsIHJlc3VsdFJlZ3MsIGFyZ3Vt
ZW50VGFnR1BSLCBhcmd1bWVudFBheWxvYWRHUFIpOwotICAgICAgICAgICAgc2lsZW50RmlsbEFs
bFJlZ2lzdGVycyhyZXN1bHRSZWdzKTsKLSAgICAgICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNr
KCk7Ci0KLSAgICAgICAgICAgIGRvbmUubGluaygmbV9qaXQpOwotICAgICAgICB9Ci0KLSAgICAg
ICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLnRhZ0dQUigpLCByZXN1bHRSZWdzLnBheWxvYWRH
UFIoKSwgbm9kZSwgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgfQogICAgICAgICAKICAgICBjYXNlIFRvU3RyaW5nOgogICAgIGNhc2UgQ2FsbFN0cmlu
Z0NvbnN0cnVjdG9yOiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcAppbmRleCAyNGQ2ZTMyNzgwYmQzMjQxYzNmZmJlNzVlOWRjZjRlYTdi
MjY1MTVhLi5iNjNiYTFhNzZhYTMxZmQwYWYzNGExZmM4NGJlMjY4NzhhOTUyOWJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAg
LTM1MjAsNjAgKzM1MjAsMjYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBu
b2RlKQogICAgICAgICAKICAgICBjYXNlIFRvUHJpbWl0aXZlOiB7CiAgICAgICAgIERGR19BU1NF
UlQobV9qaXQuZ3JhcGgoKSwgbm9kZSwgbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IFVudHlw
ZWRVc2UpOwotICAgICAgICBKU1ZhbHVlT3BlcmFuZCBhcmd1bWVudCh0aGlzLCBub2RlLT5jaGls
ZDEoKSk7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIGFyZ3VtZW50
KTsKKyAgICAgICAgSlNWYWx1ZU9wZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAg
ICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgb3AxKTsKICAgICAgICAgCi0g
ICAgICAgIEdQUlJlZyBhcmd1bWVudEdQUiA9IGFyZ3VtZW50LmdwcigpOworICAgICAgICBHUFJS
ZWcgb3AxR1BSID0gb3AxLmdwcigpOwogICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0
LmdwcigpOwogICAgICAgICAKLSAgICAgICAgYXJndW1lbnQudXNlKCk7CisgICAgICAgIG9wMS51
c2UoKTsKICAgICAgICAgCi0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGFscmVhZHlQcmlt
aXRpdmUgPSBtX2ppdC5icmFuY2hJZk5vdENlbGwoSlNWYWx1ZVJlZ3MoYXJndW1lbnRHUFIpKTsK
LSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbm90UHJpbWl0aXZlID0gbV9qaXQuYnJhbmNo
SWZPYmplY3QoYXJndW1lbnRHUFIpOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBhbHJl
YWR5UHJpbWl0aXZlID0gbV9qaXQuYnJhbmNoSWZOb3RDZWxsKEpTVmFsdWVSZWdzKG9wMUdQUikp
OworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub3RQcmltaXRpdmUgPSBtX2ppdC5icmFu
Y2hJZk9iamVjdChvcDFHUFIpOwogICAgICAgICAKICAgICAgICAgYWxyZWFkeVByaW1pdGl2ZS5s
aW5rKCZtX2ppdCk7Ci0gICAgICAgIG1faml0Lm1vdmUoYXJndW1lbnRHUFIsIHJlc3VsdEdQUik7
CisgICAgICAgIG1faml0Lm1vdmUob3AxR1BSLCByZXN1bHRHUFIpOwogICAgICAgICAKICAgICAg
ICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoCi0gICAgICAgICAgICBzbG93UGF0aENhbGwobm90UHJp
bWl0aXZlLCB0aGlzLCBvcGVyYXRpb25Ub1ByaW1pdGl2ZSwgcmVzdWx0R1BSLCBhcmd1bWVudEdQ
UikpOworICAgICAgICAgICAgc2xvd1BhdGhDYWxsKG5vdFByaW1pdGl2ZSwgdGhpcywgb3BlcmF0
aW9uVG9QcmltaXRpdmUsIHJlc3VsdEdQUiwgb3AxR1BSKSk7CiAgICAgICAgIAogICAgICAgICBq
c1ZhbHVlUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSwgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNpdGx5
KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotCi0gICAgY2FzZSBUb051bWJlcjogewotICAgICAg
ICBKU1ZhbHVlT3BlcmFuZCBhcmd1bWVudCh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAg
IEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIGFyZ3VtZW50KTsKLQotICAgICAgICBH
UFJSZWcgYXJndW1lbnRHUFIgPSBhcmd1bWVudC5ncHIoKTsKLSAgICAgICAgR1BSUmVnIHJlc3Vs
dEdQUiA9IHJlc3VsdC5ncHIoKTsKLQotICAgICAgICBhcmd1bWVudC51c2UoKTsKLQotICAgICAg
ICAvLyBXZSBoYXZlIHNldmVyYWwgYXR0ZW1wdHMgdG8gcmVtb3ZlIFRvTnVtYmVyLiBCdXQgVG9O
dW1iZXIgc3RpbGwgZXhpc3RzLgotICAgICAgICAvLyBJdCBtZWFucyB0aGF0IGNvbnZlcnRpbmcg
bm9uLW51bWJlcnMgdG8gbnVtYmVycyBieSB0aGlzIFRvTnVtYmVyIGlzIG5vdCByYXJlLgotICAg
ICAgICAvLyBJbnN0ZWFkIG9mIHRoZSBzbG93IHBhdGggZ2VuZXJhdG9yLCB3ZSBlbWl0IGNhbGxP
cGVyYXRpb24gaGVyZS4KLSAgICAgICAgaWYgKCEobV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxk
MSgpKS5tX3R5cGUgJiBTcGVjQnl0ZWNvZGVOdW1iZXIpKSB7Ci0gICAgICAgICAgICBmbHVzaFJl
Z2lzdGVycygpOwotICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Ub051bWJlciwg
cmVzdWx0R1BSLCBhcmd1bWVudEdQUik7Ci0gICAgICAgICAgICBtX2ppdC5leGNlcHRpb25DaGVj
aygpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
bm90TnVtYmVyID0gbV9qaXQuYnJhbmNoSWZOb3ROdW1iZXIoYXJndW1lbnRHUFIpOwotICAgICAg
ICAgICAgbV9qaXQubW92ZShhcmd1bWVudEdQUiwgcmVzdWx0R1BSKTsKLSAgICAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpKdW1wIGRvbmUgPSBtX2ppdC5qdW1wKCk7Ci0KLSAgICAgICAgICAgIG5v
dE51bWJlci5saW5rKCZtX2ppdCk7Ci0gICAgICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVy
cyhyZXN1bHRHUFIpOwotICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Ub051bWJl
ciwgcmVzdWx0R1BSLCBhcmd1bWVudEdQUik7Ci0gICAgICAgICAgICBzaWxlbnRGaWxsQWxsUmVn
aXN0ZXJzKHJlc3VsdEdQUik7Ci0gICAgICAgICAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOwot
Ci0gICAgICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKLSAgICAgICAgfQotCi0gICAgICAgIGpz
VmFsdWVSZXN1bHQocmVzdWx0R1BSLCBub2RlLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkp
OwotICAgICAgICBicmVhazsKLSAgICB9CiAgICAgICAgIAogICAgIGNhc2UgVG9TdHJpbmc6CiAg
ICAgY2FzZSBDYWxsU3RyaW5nQ29uc3RydWN0b3I6IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAppbmRleCBlZDc4NGJmMTBlNTg4NzY3MjQ1YmRiZGYz
YjUzMTM4MzA2NjA4NjUyLi45M2UxYzI2MzE3ODVlZTJjMDAyNDNmN2NjZWNjMDU2NjgyYTQyN2Ix
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBA
IC0xNjEsOSArMTYxLDggQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUq
IG5vZGUpCiAgICAgY2FzZSBHZXRTY29wZToKICAgICBjYXNlIEdldENhbGxlZToKICAgICBjYXNl
IEdldEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzOgotICAgIGNhc2UgVG9OdW1iZXI6Ci0gICAg
Y2FzZSBUb1N0cmluZzoKICAgICBjYXNlIENhbGxPYmplY3RDb25zdHJ1Y3RvcjoKKyAgICBjYXNl
IFRvU3RyaW5nOgogICAgIGNhc2UgQ2FsbFN0cmluZ0NvbnN0cnVjdG9yOgogICAgIGNhc2UgTWFr
ZVJvcGU6CiAgICAgY2FzZSBOZXdBcnJheVdpdGhTaXplOgpAQCAtNDA1LDggKzQwNCw2IEBAIGlu
bGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGlmIChub2RlLT5pc0JpbmFyeVVzZUtpbmQoQm9vbGVhblVzZSkpCiAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgaWYgKG5vZGUtPmlzQmluYXJ5VXNlS2luZChVbnR5
cGVkVXNlKSkKLSAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBpZiAobm9kZS0+aXNCaW5hcnlV
c2VLaW5kKFN5bWJvbFVzZSkpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgaWYgKG5vZGUt
PmlzQmluYXJ5VXNlS2luZChNaXNjVXNlLCBVbnR5cGVkVXNlKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCBkMGJlNzdiNjc2OTFlYTgzMDAw
ODkyMmZhNzM3ZGUwNWU4ODdlY2FhLi5hNjVkYTc5MTNhNWVmZmNjMzdiNjVjODk2MjE3YzI4YTZi
MTM4N2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMu
Y3BwCkBAIC03MjgsOSArNzI4LDYgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBSZWFsbG9jYXRl
UHJvcGVydHlTdG9yYWdlOgogICAgICAgICAgICAgY29tcGlsZVJlYWxsb2NhdGVQcm9wZXJ0eVN0
b3JhZ2UoKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFRvTnVtYmVyOgotICAg
ICAgICAgICAgY29tcGlsZVRvTnVtYmVyKCk7Ci0gICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBUb1N0cmluZzoKICAgICAgICAgY2FzZSBDYWxsU3RyaW5nQ29uc3RydWN0b3I6CiAgICAg
ICAgICAgICBjb21waWxlVG9TdHJpbmdPckNhbGxTdHJpbmdDb25zdHJ1Y3RvcigpOwpAQCAtNDEw
MiwzMyArNDA5OSw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZWFsbG9jYXRlUHJvcGVydHlT
dG9yYWdlKAogICAgICAgICAgICAgICAgIG9iamVjdCwgb2xkU3RvcmFnZSwgdHJhbnNpdGlvbi0+
cHJldmlvdXMsIHRyYW5zaXRpb24tPm5leHQpKTsKICAgICB9Ci0KLSAgICB2b2lkIGNvbXBpbGVU
b051bWJlcigpCi0gICAgewotICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dKU1ZhbHVlKG1fbm9k
ZS0+Y2hpbGQxKCkpOwotCi0gICAgICAgIGlmICghKGFic3RyYWN0VmFsdWUobV9ub2RlLT5jaGls
ZDEoKSkubV90eXBlICYgU3BlY0J5dGVjb2RlTnVtYmVyKSkKLSAgICAgICAgICAgIHNldEpTVmFs
dWUodm1DYWxsKG1fb3V0LmludDY0LCBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uVG9OdW1iZXIp
LCBtX2NhbGxGcmFtZSwgdmFsdWUpKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBMQmFz
aWNCbG9jayBub3ROdW1iZXIgPSBtX291dC5uZXdCbG9jaygpOwotICAgICAgICAgICAgTEJhc2lj
QmxvY2sgY29udGludWF0aW9uID0gbV9vdXQubmV3QmxvY2soKTsKLQotICAgICAgICAgICAgVmFs
dWVGcm9tQmxvY2sgZmFzdFJlc3VsdCA9IG1fb3V0LmFuY2hvcih2YWx1ZSk7Ci0gICAgICAgICAg
ICBtX291dC5icmFuY2goaXNOdW1iZXIodmFsdWUsIHByb3ZlblR5cGUobV9ub2RlLT5jaGlsZDEo
KSkpLCB1bnN1cmUoY29udGludWF0aW9uKSwgdW5zdXJlKG5vdE51bWJlcikpOwotCi0gICAgICAg
ICAgICAvLyBub3ROdW1iZXIgY2FzZS4KLSAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0
ID0gbV9vdXQuYXBwZW5kVG8obm90TnVtYmVyLCBjb250aW51YXRpb24pOwotICAgICAgICAgICAg
Ly8gV2UgaGF2ZSBzZXZlcmFsIGF0dGVtcHRzIHRvIHJlbW92ZSBUb051bWJlci4gQnV0IFRvTnVt
YmVyIHN0aWxsIGV4aXN0cy4KLSAgICAgICAgICAgIC8vIEl0IG1lYW5zIHRoYXQgY29udmVydGlu
ZyBub24tbnVtYmVycyB0byBudW1iZXJzIGJ5IHRoaXMgVG9OdW1iZXIgaXMgbm90IHJhcmUuCi0g
ICAgICAgICAgICAvLyBJbnN0ZWFkIG9mIHRoZSBsYXp5IHNsb3cgcGF0aCBnZW5lcmF0b3IsIHdl
IGNhbGwgdGhlIG9wZXJhdGlvbiBoZXJlLgotICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgc2xv
d1Jlc3VsdCA9IG1fb3V0LmFuY2hvcih2bUNhbGwobV9vdXQuaW50NjQsIG1fb3V0Lm9wZXJhdGlv
bihvcGVyYXRpb25Ub051bWJlciksIG1fY2FsbEZyYW1lLCB2YWx1ZSkpOwotICAgICAgICAgICAg
bV9vdXQuanVtcChjb250aW51YXRpb24pOwotCi0gICAgICAgICAgICAvLyBjb250aW51YXRpb24g
Y2FzZS4KLSAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQp
OwotICAgICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5waGkobV9vdXQuaW50NjQsIGZhc3RSZXN1
bHQsIHNsb3dSZXN1bHQpKTsKLSAgICAgICAgfQotICAgIH0KICAgICAKICAgICB2b2lkIGNvbXBp
bGVUb1N0cmluZ09yQ2FsbFN0cmluZ0NvbnN0cnVjdG9yKCkKICAgICB7CkBAIC00OTE5LDE1ICs0
ODg5LDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAg
ICAgIGlmIChtX25vZGUtPmlzQmluYXJ5VXNlS2luZChVbnR5cGVkVXNlKSkgewotICAgICAgICAg
ICAgbm9uU3BlY3VsYXRpdmVDb21wYXJlKAotICAgICAgICAgICAgICAgIFsmXSAoTFZhbHVlIGxl
ZnQsIExWYWx1ZSByaWdodCkgewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9vdXQuZXF1
YWwobGVmdCwgcmlnaHQpOwotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgb3Bl
cmF0aW9uQ29tcGFyZVN0cmljdEVxKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
CiAgICAgICAgIGlmIChtX25vZGUtPmlzQmluYXJ5VXNlS2luZChTeW1ib2xVc2UpKSB7CiAgICAg
ICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd1N5bWJvbChtX25vZGUtPmNoaWxkMSgpKTsKICAgICAg
ICAgICAgIExWYWx1ZSByaWdodCA9IGxvd1N5bWJvbChtX25vZGUtPmNoaWxkMigpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IDA1NTU2OTc0NDFj
MjYyNTZkZjFhYzA5OWU0ODFiYTlkOTljMjUyNTEuLmUxNDMwNmZlOTZiZmUzMzY2MjYzZDM2ZjY2
ODhlMmQwMGQ1ZTc5MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNz
ZW1ibHlIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhl
bHBlcnMuaApAQCAtNzU1LDI5ICs3NTUsMjQgQEAgcHVibGljOgogICAgIHsKICNpZiBVU0UoSlNW
QUxVRTY0KQogICAgICAgICBVTlVTRURfUEFSQU0odGVtcEdQUik7Ci0gICAgICAgIHJldHVybiBi
cmFuY2hJZk51bWJlcihyZWdzLmdwcigpLCBtb2RlKTsKKyAgICAgICAgaWYgKG1vZGUgPT0gSGF2
ZVRhZ1JlZ2lzdGVycykKKyAgICAgICAgICAgIHJldHVybiBicmFuY2hUZXN0NjQoTm9uWmVybywg
cmVncy5ncHIoKSwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKKyAgICAgICAgcmV0
dXJuIGJyYW5jaFRlc3Q2NChOb25aZXJvLCByZWdzLmdwcigpLCBUcnVzdGVkSW1tNjQoVGFnVHlw
ZU51bWJlcikpOwogI2Vsc2UKICAgICAgICAgVU5VU0VEX1BBUkFNKG1vZGUpOwogICAgICAgICBh
ZGQzMihUcnVzdGVkSW1tMzIoMSksIHJlZ3MudGFnR1BSKCksIHRlbXBHUFIpOwogICAgICAgICBy
ZXR1cm4gYnJhbmNoMzIoQmVsb3csIHRlbXBHUFIsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpMb3dl
c3RUYWcgKyAxKSk7CiAjZW5kaWYKICAgICB9Ci0KLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgIEp1
bXAgYnJhbmNoSWZOdW1iZXIoR1BSUmVnIHJlZywgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlID0gSGF2
ZVRhZ1JlZ2lzdGVycykKLSAgICB7Ci0gICAgICAgIGlmIChtb2RlID09IEhhdmVUYWdSZWdpc3Rl
cnMpCi0gICAgICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0KE5vblplcm8sIHJlZywgR1BSSW5m
bzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKLSAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChO
b25aZXJvLCByZWcsIFRydXN0ZWRJbW02NChUYWdUeXBlTnVtYmVyKSk7Ci0gICAgfQotI2VuZGlm
CiAgICAgCiAgICAgLy8gTm90ZSB0aGF0IHRoZSB0ZW1wR1BSIGlzIG5vdCB1c2VkIGluIDY0LWJp
dCBtb2RlLgogICAgIEp1bXAgYnJhbmNoSWZOb3ROdW1iZXIoSlNWYWx1ZVJlZ3MgcmVncywgR1BS
UmVnIHRlbXBHUFIsIFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpCiAg
ICAgewogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIFVOVVNFRF9QQVJBTSh0ZW1wR1BSKTsK
LSAgICAgICAgcmV0dXJuIGJyYW5jaElmTm90TnVtYmVyKHJlZ3MuZ3ByKCksIG1vZGUpOworICAg
ICAgICBpZiAobW9kZSA9PSBIYXZlVGFnUmVnaXN0ZXJzKQorICAgICAgICAgICAgcmV0dXJuIGJy
YW5jaFRlc3Q2NChaZXJvLCByZWdzLmdwcigpLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0
ZXIpOworICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0KFplcm8sIHJlZ3MuZ3ByKCksIFRydXN0
ZWRJbW02NChUYWdUeXBlTnVtYmVyKSk7CiAjZWxzZQogICAgICAgICBVTlVTRURfUEFSQU0obW9k
ZSk7CiAgICAgICAgIGFkZDMyKFRydXN0ZWRJbW0zMigxKSwgcmVncy50YWdHUFIoKSwgdGVtcEdQ
Uik7CkBAIC03ODUsMTUgKzc4MCw2IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIH0KIAotI2lmIFVT
RShKU1ZBTFVFNjQpCi0gICAgSnVtcCBicmFuY2hJZk5vdE51bWJlcihHUFJSZWcgcmVnLCBUYWdS
ZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQotICAgIHsKLSAgICAgICAgaWYg
KG1vZGUgPT0gSGF2ZVRhZ1JlZ2lzdGVycykKLSAgICAgICAgICAgIHJldHVybiBicmFuY2hUZXN0
NjQoWmVybywgcmVnLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOwotICAgICAgICBy
ZXR1cm4gYnJhbmNoVGVzdDY0KFplcm8sIHJlZywgVHJ1c3RlZEltbTY0KFRhZ1R5cGVOdW1iZXIp
KTsKLSAgICB9Ci0jZW5kaWYKLQogICAgIEp1bXAgYnJhbmNoSWZOb3REb3VibGVLbm93bk5vdElu
dDMyKEpTVmFsdWVSZWdzIHJlZ3MsIFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSA9IEhhdmVUYWdSZWdp
c3RlcnMpCiAgICAgewogI2lmIFVTRShKU1ZBTFVFNjQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzLmNwcAppbmRleCBjNDQzOTFjMDkzMGU1NTFlMTlmZDM0NTdmYTFhNzhhZjBk
OWUyYjVlLi44MWFlMGRmNDJkMjY5NWQ4YTQ1NjI3MDk3MjE5ZjZlNTgxMjVmMmRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKQEAgLTUxNiwxNSArNTE2LDEyIEBA
IHZvaWQgSklUOjplbWl0X29wX25zdHJpY3RlcShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogCiB2b2lkIEpJVDo6ZW1pdF9vcF90b19udW1iZXIoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKIHsKLSAgICBpbnQgZHN0VlJlZyA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51
Lm9wZXJhbmQ7CiAgICAgaW50IHNyY1ZSZWcgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVy
YW5kOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoc3JjVlJlZywgcmVnVDApOwogICAgIAog
ICAgIGFkZFNsb3dDYXNlKGVtaXRKdW1wSWZOb3ROdW1iZXIocmVnVDApKTsKIAotICAgIGVtaXRW
YWx1ZVByb2ZpbGluZ1NpdGUoKTsKLSAgICBpZiAoc3JjVlJlZyAhPSBkc3RWUmVnKQotICAgICAg
ICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdFZSZWcpOworICAgIGVtaXRQdXRWaXJ0dWFsUmVn
aXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCk7CiB9CiAKIHZvaWQgSklUOjpl
bWl0X29wX3RvX3N0cmluZyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCmluZGV4IDU1ZGI0MTY0
NmVhYWM0ODAyOWQyOTYzMzBmMDBlZGM1ZTI3ZmIxMGUuLjU3OTBjYmEzZDEyYWRhNGI2N2M3YzRi
OTRmMzE1ZDQ2OWIwNGJjNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3Bjb2RlczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
Y29kZXMzMl82NC5jcHAKQEAgLTgyOCw3ICs4MjgsNiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF90b19u
dW1iZXIoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBhZGRTbG93Q2FzZShi
cmFuY2gzMihBYm92ZU9yRXF1YWwsIHJlZ1QxLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6TG93ZXN0
VGFnKSkpOwogICAgIGlzSW50MzIubGluayh0aGlzKTsKIAotICAgIGVtaXRWYWx1ZVByb2ZpbGlu
Z1NpdGUoKTsKICAgICBpZiAoc3JjICE9IGRzdCkKICAgICAgICAgZW1pdFN0b3JlKGRzdCwgcmVn
VDEsIHJlZ1QwKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KaW5kZXggOTc4MTI4YTVkNmM0OGZhNmY0YWMx
MjUzMjI2YTg0YjFkM2NjZjE0Yi4uMDYyMmRjNjA1M2EzZDgyNGJiZmY2NTE4N2Y1YTM0ZTliZGIx
NGU3MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KQEAgLTk1NSw4ICs5NTUsNyBAQCBfbGxpbnRfb3BfdG9f
bnVtYmVyOgogLm9wVG9OdW1iZXJJc0ludDoKICAgICBzdG9yZWkgdDIsIFRhZ09mZnNldFtjZnIs
IHQxLCA4XQogICAgIHN0b3JlaSB0MywgUGF5bG9hZE9mZnNldFtjZnIsIHQxLCA4XQotICAgIHZh
bHVlUHJvZmlsZSh0MiwgdDMsIDEyLCB0MSkKLSAgICBkaXNwYXRjaCg0KQorICAgIGRpc3BhdGNo
KDMpCiAKIC5vcFRvTnVtYmVyU2xvdzoKICAgICBjYWxsT3Bjb2RlU2xvd1BhdGgoX3Nsb3dfcGF0
aF90b19udW1iZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlcjY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyNjQuYXNtCmluZGV4IGI5NDQ4ZjE1YjExMjk2NWJlMWQ3ZWUzZDk0Zjll
NGEwODEwOGRiN2MuLjA0OTVlMjdkNWIxMjliMWI4ZjljNzA1NzEzYzUzNTljYmJiNDViNzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVy
NjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJl
dGVyNjQuYXNtCkBAIC04MzQsMTIgKzgzNCwxMSBAQCBfbGxpbnRfb3BfdG9fbnVtYmVyOgogICAg
IGJ0cXogdDIsIHRhZ1R5cGVOdW1iZXIsIC5vcFRvTnVtYmVyU2xvdwogLm9wVG9OdW1iZXJJc0lt
bWVkaWF0ZToKICAgICBzdG9yZXEgdDIsIFtjZnIsIHQxLCA4XQotICAgIHZhbHVlUHJvZmlsZSh0
MiwgMywgdDApCi0gICAgZGlzcGF0Y2goNCkKKyAgICBkaXNwYXRjaCgzKQogCiAub3BUb051bWJl
clNsb3c6CiAgICAgY2FsbE9wY29kZVNsb3dQYXRoKF9zbG93X3BhdGhfdG9fbnVtYmVyKQotICAg
IGRpc3BhdGNoKDQpCisgICAgZGlzcGF0Y2goMykKIAogCiBfbGxpbnRfb3BfdG9fc3RyaW5nOgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmluZGV4IDFkYzc0ZTJjNWIyYTE3MjNmM2Y0
YzhiMTJjZjhhYjJkYTAwZmZjZjkuLmM4MTE2NDA4YjEwYjVmMGNlZjI1ZDU1YjkwMDhiZGQ3OTI5
MWQzMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKQEAgLTk2NywxMSArOTY3
LDEyIEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHByb3RlY3RlZDoKICAgICAgICAgRXhwcmVzc2lv
bk5vZGUqIGV4cHIoKSB7IHJldHVybiBtX2V4cHI7IH0KICAgICAgICAgY29uc3QgRXhwcmVzc2lv
bk5vZGUqIGV4cHIoKSBjb25zdCB7IHJldHVybiBtX2V4cHI7IH0KLSAgICAgICAgT3Bjb2RlSUQg
b3Bjb2RlSUQoKSBjb25zdCB7IHJldHVybiBtX29wY29kZUlEOyB9CiAKICAgICBwcml2YXRlOgog
ICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdp
c3RlcklEKiA9IDApIG92ZXJyaWRlOwogCisgICAgICAgIE9wY29kZUlEIG9wY29kZUlEKCkgY29u
c3QgeyByZXR1cm4gbV9vcGNvZGVJRDsgfQorCiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2V4
cHI7CiAgICAgICAgIE9wY29kZUlEIG1fb3Bjb2RlSUQ7CiAgICAgfTsKQEAgLTk4MSw4ICs5ODIs
NiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgVW5hcnlQbHVzTm9kZShjb25zdCBKU1Rva2Vu
TG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSopOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVn
aXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAw
KSBvdmVycmlkZTsKLQogICAgICAgICBFeHByZXNzaW9uTm9kZSogc3RyaXBVbmFyeVBsdXMoKSBv
dmVycmlkZSB7IHJldHVybiBleHByKCk7IH0KICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAppbmRleCBhMTU3ODkxN2VmYjYx
ZDQ1MTBiMjUxMGFjZjgyNTU0NzY1NjY4ZWFmLi5hNmVjZmQyODRiMTAxYzNhYzAwMWY2ODJmODg4
ZGVkMTk3Njc4NDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
b21tb25TbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bW1vblNsb3dQYXRocy5jcHAKQEAgLTM0Niw2ICszNDYsMTIgQEAgU0xPV19QQVRIX0RFQ0woc2xv
d19wYXRoX2RlYykKICAgICBSRVRVUk4oanNOdW1iZXIoT1AoMSkuanNWYWx1ZSgpLnRvTnVtYmVy
KGV4ZWMpIC0gMSkpOwogfQogCitTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfdG9fbnVtYmVyKQor
eworICAgIEJFR0lOKCk7CisgICAgUkVUVVJOKGpzTnVtYmVyKE9QX0MoMikuanNWYWx1ZSgpLnRv
TnVtYmVyKGV4ZWMpKSk7Cit9CisKIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF90b19zdHJpbmcp
CiB7CiAgICAgQkVHSU4oKTsKQEAgLTM5MiwxNCArMzk4LDYgQEAgc3RhdGljIHZvaWQgdXBkYXRl
UmVzdWx0UHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoRXhlY1N0YXRlKiBleGVjLCBJbnN0cnVjdGlv
biogcGMKIHN0YXRpYyB2b2lkIHVwZGF0ZVJlc3VsdFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKEV4
ZWNTdGF0ZSosIEluc3RydWN0aW9uKiwgSlNWYWx1ZSwgSlNWYWx1ZSwgSlNWYWx1ZSkgeyB9CiAj
ZW5kaWYKIAotU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3RvX251bWJlcikKLXsKLSAgICBCRUdJ
TigpOwotICAgIEpTVmFsdWUgYXJndW1lbnQgPSBPUF9DKDIpLmpzVmFsdWUoKTsKLSAgICBKU1Zh
bHVlIHJlc3VsdCA9IGpzTnVtYmVyKGFyZ3VtZW50LnRvTnVtYmVyKGV4ZWMpKTsKLSAgICBSRVRV
Uk5fUFJPRklMRUQob3BfdG9fbnVtYmVyLCByZXN1bHQpOwotfQotCiBTTE9XX1BBVEhfREVDTChz
bG93X3BhdGhfYWRkKQogewogICAgIEJFR0lOKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggNzA0NDAxZmY5N2VlN2JkNDJmMTM1
MTUwMDVkNzMxMTZlZjZjOTVjNi4uN2M5MzI3NDMxMDhlNjYyNDBhZThhZjhjMTY3NTQyOTBhZTE4
NjAxYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmNwcApAQCAtMjExLDggKzIxMSw4IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxl
IEpTR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0geyAmYWxsCiAvKiBT
b3VyY2UgZm9yIEpTR2xvYmFsT2JqZWN0Lmx1dC5oCiBAYmVnaW4gZ2xvYmFsT2JqZWN0VGFibGUK
ICAgcGFyc2VGbG9hdCAgICAgICAgICAgIGdsb2JhbEZ1bmNQYXJzZUZsb2F0ICAgICAgICAgICAg
ICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKLSAgaXNOYU4gICAgICAgICAgICAgICAg
IEpTQnVpbHRpbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1
bmN0aW9uIDEKLSAgaXNGaW5pdGUgICAgICAgICAgICAgIEpTQnVpbHRpbiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKKyAgaXNOYU4gICAgICAg
ICAgICAgICAgIGdsb2JhbEZ1bmNJc05hTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERv
bnRFbnVtfEZ1bmN0aW9uIDEKKyAgaXNGaW5pdGUgICAgICAgICAgICAgIGdsb2JhbEZ1bmNJc0Zp
bml0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKICAgZXNj
YXBlICAgICAgICAgICAgICAgIGdsb2JhbEZ1bmNFc2NhcGUgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKICAgdW5lc2NhcGUgICAgICAgICAgICAgIGdsb2Jh
bEZ1bmNVbmVzY2FwZSAgICAgICAgICAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9u
IDEKICAgZGVjb2RlVVJJICAgICAgICAgICAgIGdsb2JhbEZ1bmNEZWNvZGVVUkkgICAgICAgICAg
ICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKQEAgLTQwMiw3ICs0MDIsNyBAQCB2
b2lkIEpTR2xvYmFsT2JqZWN0Ojppbml0KFZNJiB2bSkKICAgICBtX29iamVjdFN0cnVjdHVyZUZv
ck9iamVjdENvbnN0cnVjdG9yLnNldCh2bSwgdGhpcywgdm0ucHJvdG90eXBlTWFwLmVtcHR5T2Jq
ZWN0U3RydWN0dXJlRm9yUHJvdG90eXBlKG1fb2JqZWN0UHJvdG90eXBlLmdldCgpLCBKU0ZpbmFs
T2JqZWN0OjpkZWZhdWx0SW5saW5lQ2FwYWNpdHkoKSkpOwogCiAgICAgbV9zcGVjaWVzR2V0dGVy
U2V0dGVyLnNldCh2bSwgdGhpcywgR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIHRoaXMpKTsKLSAg
ICBtX3NwZWNpZXNHZXR0ZXJTZXR0ZXItPnNldEdldHRlcih2bSwgdGhpcywgSlNGdW5jdGlvbjo6
Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBnbG9iYWxPcGVyYXRpb25zU3BlY2llc0dldHRlckNv
ZGVHZW5lcmF0b3Iodm0pLCB0aGlzLCAiZ2V0IFtTeW1ib2wuc3BlY2llc10iKSk7CisgICAgbV9z
cGVjaWVzR2V0dGVyU2V0dGVyLT5zZXRHZXR0ZXIodm0sIHRoaXMsIEpTRnVuY3Rpb246OmNyZWF0
ZUJ1aWx0aW5GdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0U3BlY2llc0dldHRlckNvZGVHZW5lcmF0
b3Iodm0pLCB0aGlzLCAiZ2V0IFtTeW1ib2wuc3BlY2llc10iKSk7CiAKICAgICBtX3R5cGVkQXJy
YXlQcm90by5pbml0TGF0ZXIoCiAgICAgICAgIFtdIChjb25zdCBJbml0aWFsaXplcjxKU1R5cGVk
QXJyYXlWaWV3UHJvdG90eXBlPiYgaW5pdCkgewpAQCAtNjQ3LDYgKzY0Nyw4IEBAIHB1dERpcmVj
dFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT4ganNOYW1lLCBsb3dlck5h
bWUgIyMgQ29uc3RydWN0CiAKICAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY0FicyA9IEpTRnVu
Y3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIG1hdGhQcm90b0Z1bmNBYnMsIEFi
c0ludHJpbnNpYyk7CiAgICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNGbG9vciA9IEpTRnVuY3Rp
b246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIG1hdGhQcm90b0Z1bmNGbG9vciwgRmxv
b3JJbnRyaW5zaWMpOworICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jSXNGaW5pdGUgPSBKU0Z1
bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCBnbG9iYWxGdW5jSXNGaW5pdGUp
OworICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jSXNOYU4gPSBKU0Z1bmN0aW9uOjpjcmVhdGUo
dm0sIHRoaXMsIDAsIFN0cmluZygpLCBnbG9iYWxGdW5jSXNOYU4pOwogICAgIEpTRnVuY3Rpb24q
IHByaXZhdGVGdW5jVHJ1bmMgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmlu
ZygpLCBtYXRoUHJvdG9GdW5jVHJ1bmMsIFRydW5jSW50cmluc2ljKTsKIAogICAgIEpTRnVuY3Rp
b24qIHByaXZhdGVGdW5jR2V0VGVtcGxhdGVPYmplY3QgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0s
IHRoaXMsIDAsIFN0cmluZygpLCBnZXRUZW1wbGF0ZU9iamVjdCk7CkBAIC03MTMsNiArNzE1LDgg
QEAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPiBqc05h
bWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmFic1ByaXZhdGVOYW1lKCksIHByaXZhdGVG
dW5jQWJzLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5mbG9vclByaXZh
dGVOYW1lKCksIHByaXZhdGVGdW5jRmxvb3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLnRydW5jUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNUcnVuYywgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNGaW5pdGVQcml2YXRlTmFtZSgpLCBwcml2
YXRlRnVuY0lzRmluaXRlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAg
ICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5p
c05hTlByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jSXNOYU4sIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLlByb21pc2VQcml2YXRlTmFtZSgpLCBwcm9taXNlQ29uc3RydWN0
b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLlJlZmxlY3RQcml2YXRl
TmFtZSgpLCByZWZsZWN0T2JqZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
CiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5JbnRlcm5hbFByb21pc2VQcml2YXRlTmFtZSgpLCBpbnRlcm5hbFByb21pc2VDb25zdHJ1
Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3Bw
CmluZGV4IGNmZDVmNjg2YWY5ZGMyNGQzZDc3YTk2ODliMmY1ZTk2ZmFmNWVhNTYuLjZiNjUzOTUw
YWY2ODBmZGMyOGFmNTE0ZGQ2YzY2Zjk3MWM3NTM2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKQEAg
LTcwNiw2ICs3MDYsMTcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5j
UGFyc2VGbG9hdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c051bWJlcihwYXJzZUZsb2F0KGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52aWV3
KGV4ZWMpLmdldCgpKSkpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2Jh
bEZ1bmNJc05hTihFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc0Jvb2xlYW4oc3RkOjppc25hbihleGVjLT5hcmd1bWVudCgwKS50b051bWJlcihleGVjKSkp
KTsKK30KKworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jSXNGaW5pdGUo
RXhlY1N0YXRlKiBleGVjKQoreworICAgIGRvdWJsZSBuID0gZXhlYy0+YXJndW1lbnQoMCkudG9O
dW1iZXIoZXhlYyk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oc3RkOjpp
c2Zpbml0ZShuKSkpOworfQorCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1
bmNEZWNvZGVVUkkoRXhlY1N0YXRlKiBleGVjKQogewogICAgIHN0YXRpYyBCaXRtYXA8MjU2PiBk
b05vdFVuZXNjYXBlV2hlbkRlY29kaW5nVVJJID0gbWFrZUNoYXJhY3RlckJpdG1hcCgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rp
b25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0
aW9ucy5oCmluZGV4IDRkZTRkZTZjNWNlZDg0MDAyZGIxZDdlYzc2N2ZmNTdjMjExMDc2ZjkuLmFk
Y2ZhZmY5NzhlYzQ0YWI0ZWYzODI3NTlkYmMwNmQ3ODM1ZjNjZjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaApA
QCAtNDAsNiArNDAsOCBAQCBjbGFzcyBKU09iamVjdDsKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZ2xvYmFsRnVuY0V2YWwoRXhlY1N0YXRlKik7CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGdsb2JhbEZ1bmNQYXJzZUludChFeGVjU3RhdGUqKTsKIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZ2xvYmFsRnVuY1BhcnNlRmxvYXQoRXhlY1N0YXRlKik7CitFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNJc05hTihFeGVjU3RhdGUqKTsKK0VuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0lzRmluaXRlKEV4ZWNTdGF0ZSopOwogRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRGVjb2RlVVJJKEV4ZWNTdGF0ZSop
OwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRGVjb2RlVVJJQ29tcG9u
ZW50KEV4ZWNTdGF0ZSopOwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5j
RW5jb2RlVVJJKEV4ZWNTdGF0ZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTWF0aENvbW1vbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0
aENvbW1vbi5oCmluZGV4IGJkMzAwYjZmMmM0NTBlNDVlNWE2ZWFhYThjZmZlYmE0MTlkY2Y4ZDku
LjgxYjk5MzZmZTkwODQ4YjQxOTM1ODE1ZjIxZGVjOTU2NDNmMzEwZmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhDb21tb24uaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9NYXRoQ29tbW9uLmgKQEAgLTM1LDE4ICszNSw2IEBAIGNvbnN0
IGludDMyX3QgbWF4RXhwb25lbnRGb3JJbnRlZ2VyTWF0aFBvdyA9IDEwMDA7CiBkb3VibGUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25NYXRoUG93KGRvdWJsZSB4LCBkb3VibGUgeSkgV1RGX0lOVEVS
TkFMOwogaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvSW50MzIoZG91YmxlKSBXVEZf
SU5URVJOQUw7CiAKLWlubGluZSBjb25zdGV4cHIgZG91YmxlIG1heFNhZmVJbnRlZ2VyKCkKLXsK
LSAgICAvLyAyIF4gNTMgLSAxCi0gICAgcmV0dXJuIDkwMDcxOTkyNTQ3NDA5OTEuMDsKLX0KLQot
aW5saW5lIGNvbnN0ZXhwciBkb3VibGUgbWluU2FmZUludGVnZXIoKQotewotICAgIC8vIC0oMiBe
IDUzIC0gMSkKLSAgICByZXR1cm4gLTkwMDcxOTkyNTQ3NDA5OTEuMDsKLX0KLQogaW5saW5lIGlu
dCBjbHozMih1aW50MzJfdCBudW1iZXIpCiB7CiAjaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3Iu
Y3BwCmluZGV4IDVhZjM1NmQ0Y2FmNjg1YjBmMGI3M2Q0NDQyMTkzZjNhYWQwMzYyMWIuLjAyMGVh
NjkwN2NhMzhjNjZiYTlhZDY0ZjRmMDliMzY5YTg1ZjhlZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKQEAgLTMxLDI4ICsz
MSwxOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgbnVtYmVyQ29uc3RydWN0b3JGdW5jSXNGaW5pdGUoRXhlY1N0YXRlKik7CiBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJDb25zdHJ1Y3RvckZ1bmNJc0lu
dGVnZXIoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBu
dW1iZXJDb25zdHJ1Y3RvckZ1bmNJc05hTihFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlckNvbnN0cnVjdG9yRnVuY0lzU2FmZUludGVnZXIoRXhl
Y1N0YXRlKik7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCi0jaW5jbHVkZSAiTnVtYmVyQ29uc3Ry
dWN0b3IubHV0LmgiCi0KIG5hbWVzcGFjZSBKU0MgewogCiBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJ
QUxMWV9ERVNUUlVDVElCTEUoTnVtYmVyQ29uc3RydWN0b3IpOwogCi1jb25zdCBDbGFzc0luZm8g
TnVtYmVyQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rp
b246OnNfaW5mbywgJm51bWJlckNvbnN0cnVjdG9yVGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUo
TnVtYmVyQ29uc3RydWN0b3IpIH07Ci0KLS8qIFNvdXJjZSBmb3IgTnVtYmVyQ29uc3RydWN0b3Iu
bHV0LmgKLUBiZWdpbiBudW1iZXJDb25zdHJ1Y3RvclRhYmxlCi0gIGlzRmluaXRlICAgICAgIEpT
QnVpbHRpbiAgICAgICAgICAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKLSAg
aXNJbnRlZ2VyICAgICAgbnVtYmVyQ29uc3RydWN0b3JGdW5jSXNJbnRlZ2VyICAgICAgRG9udEVu
dW18RnVuY3Rpb24gMQotICBpc05hTiAgICAgICAgICBKU0J1aWx0aW4gICAgICAgICAgICAgICAg
ICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAxCi0gIGlzU2FmZUludGVnZXIgIG51bWJlckNv
bnN0cnVjdG9yRnVuY0lzU2FmZUludGVnZXIgIERvbnRFbnVtfEZ1bmN0aW9uIDEKLSAgcGFyc2VG
bG9hdCAgICAgZ2xvYmFsRnVuY1BhcnNlRmxvYXQgICAgICAgICAgICAgICAgRG9udEVudW18RnVu
Y3Rpb24gMQotQGVuZAotKi8KK2NvbnN0IENsYXNzSW5mbyBOdW1iZXJDb25zdHJ1Y3Rvcjo6c19p
bmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvLCAwLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKE51bWJlckNvbnN0cnVjdG9yKSB9OwogCiBOdW1iZXJDb25zdHJ1Y3Rvcjo6
TnVtYmVyQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IElu
dGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSkKQEAgLTczLDEyICs2MywxNyBAQCB2b2lkIE51
bWJlckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIE51bWJlclByb3RvdHlwZSog
bnVtYmVyUHJvdG90eXBlKQogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgIkVQU0lMT04iKSwganNEb3VibGVOdW1iZXIoc3RkOjpu
dW1lcmljX2xpbWl0czxkb3VibGU+OjplcHNpbG9uKCkpLCBEb250RGVsZXRlIHwgRG9udEVudW0g
fCBSZWFkT25seSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoJnZtLCAiTUFYX1ZBTFVFIiksIGpzRG91YmxlTnVtYmVyKDEuNzk3Njkz
MTM0ODYyMzE1N0UrMzA4KSwgRG9udERlbGV0ZSB8IERvbnRFbnVtIHwgUmVhZE9ubHkpOwogICAg
IHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2
bSwgIk1JTl9WQUxVRSIpLCBqc0RvdWJsZU51bWJlcig1RS0zMjQpLCBEb250RGVsZXRlIHwgRG9u
dEVudW0gfCBSZWFkT25seSk7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiTUFYX1NBRkVfSU5URUdFUiIpLCBqc0RvdWJsZU51
bWJlcihtYXhTYWZlSW50ZWdlcigpKSwgRG9udERlbGV0ZSB8IERvbnRFbnVtIHwgUmVhZE9ubHkp
OwotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKCZ2bSwgIk1JTl9TQUZFX0lOVEVHRVIiKSwganNEb3VibGVOdW1iZXIobWluU2FmZUludGVn
ZXIoKSksIERvbnREZWxldGUgfCBEb250RW51bSB8IFJlYWRPbmx5KTsKKyAgICBwdXREaXJlY3RX
aXRob3V0VHJhbnNpdGlvbih2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJNQVhfU0FG
RV9JTlRFR0VSIiksIGpzRG91YmxlTnVtYmVyKDkwMDcxOTkyNTQ3NDA5OTEuMCksIERvbnREZWxl
dGUgfCBEb250RW51bSB8IFJlYWRPbmx5KTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlv
bih2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJNSU5fU0FGRV9JTlRFR0VSIiksIGpz
RG91YmxlTnVtYmVyKC05MDA3MTk5MjU0NzQwOTkxLjApLCBEb250RGVsZXRlIHwgRG9udEVudW0g
fCBSZWFkT25seSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoJnZtLCAiTkVHQVRJVkVfSU5GSU5JVFkiKSwganNEb3VibGVOdW1iZXIo
LXN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSksIERvbnREZWxldGUgfCBE
b250RW51bSB8IFJlYWRPbmx5KTsKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJQT1NJVElWRV9JTkZJTklUWSIpLCBqc0RvdWJs
ZU51bWJlcihzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCkpLCBEb250RGVs
ZXRlIHwgRG9udEVudW0gfCBSZWFkT25seSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRp
b24odm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiTmFOIiksIGpzTmFOKCksIERvbnRE
ZWxldGUgfCBEb250RW51bSB8IFJlYWRPbmx5KTsKIAorICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0
aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIG51bWJlclByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCks
IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiaXNGaW5pdGUiKSwgMSwgbnVtYmVyQ29uc3Ry
dWN0b3JGdW5jSXNGaW5pdGUsIE5vSW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0
TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgbnVtYmVyUHJvdG90eXBlLT5nbG9i
YWxPYmplY3QoKSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJpc0ludGVnZXIiKSwgMSwg
bnVtYmVyQ29uc3RydWN0b3JGdW5jSXNJbnRlZ2VyLCBOb0ludHJpbnNpYywgRG9udEVudW0pOwor
ICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIG51bWJlclBy
b3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCksIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiaXNO
YU4iKSwgMSwgbnVtYmVyQ29uc3RydWN0b3JGdW5jSXNOYU4sIE5vSW50cmluc2ljLCBEb250RW51
bSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgbnVt
YmVyUHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0s
ICJpc1NhZmVJbnRlZ2VyIiksIDEsIG51bWJlckNvbnN0cnVjdG9yRnVuY0lzU2FmZUludGVnZXIs
IE5vSW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRo
b3V0VHJhbnNpdGlvbih2bSwgbnVtYmVyUHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSwgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZygmdm0sICJwYXJzZUZsb2F0IiksIDEsIGdsb2JhbEZ1bmNQYXJzZUZs
b2F0LCBOb0ludHJpbnNpYywgRG9udEVudW0pOwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0
aW9uKHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgInBhcnNlSW50IiksIG51bWJlclBy
b3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCktPnBhcnNlSW50RnVuY3Rpb24oKSwgRG9udEVudW0pOwog
fQogCkBAIC0xMTMsNiArMTA4LDEzIEBAIENhbGxUeXBlIE51bWJlckNvbnN0cnVjdG9yOjpnZXRD
YWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCiAgICAgcmV0dXJuIENhbGxUeXBl
OjpIb3N0OwogfQogCisvLyBFQ01BLTI2MiAyMC4xLjIuMgorc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgbnVtYmVyQ29uc3RydWN0b3JGdW5jSXNGaW5pdGUoRXhlY1N0YXRlKiBl
eGVjKQoreworICAgIEpTVmFsdWUgYXJndW1lbnQgPSBleGVjLT5hcmd1bWVudCgwKTsKKyAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihhcmd1bWVudC5pc051bWJlcigpICYmIChh
cmd1bWVudC5pc0ludDMyKCkgfHwgc3RkOjppc2Zpbml0ZShhcmd1bWVudC5hc0RvdWJsZSgpKSkp
KTsKK30KKwogLy8gRUNNQS0yNjIgMjAuMS4yLjMKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG51bWJlckNvbnN0cnVjdG9yRnVuY0lzSW50ZWdlcihFeGVjU3RhdGUqIGV4ZWMp
CiB7CkBAIC0xMjksNiArMTMxLDEzIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG51bWJlckNvbnN0cnVjdG9yRnVuY0lzSW50ZWdlcihFeGVjU3RhdGUqIGV4CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oaXNJbnRlZ2VyKSk7CiB9CiAKKy8vIEVDTUEt
MjYyIDIwLjEuMi40CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJD
b25zdHJ1Y3RvckZ1bmNJc05hTihFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgSlNWYWx1ZSBhcmd1
bWVudCA9IGV4ZWMtPmFyZ3VtZW50KDApOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNC
b29sZWFuKGFyZ3VtZW50LmlzRG91YmxlKCkgJiYgc3RkOjppc25hbihhcmd1bWVudC5hc0RvdWJs
ZSgpKSkpOworfQorCiAvLyBFQ01BLTI2MiAyMC4xLjIuNQogc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgbnVtYmVyQ29uc3RydWN0b3JGdW5jSXNTYWZlSW50ZWdlcihFeGVjU3Rh
dGUqIGV4ZWMpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9O
dW1iZXJDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
Q29uc3RydWN0b3IuaAppbmRleCAyY2JlNzU3ZWE0ZThmM2Y1NDkwZGEyMzQ1ZjQ3YjJmNjRhZWNk
MGFjLi45ZjQ0NGViMGZkZjBlYWM4NzE1M2MwMWNkNzZlNjFhYTc1MzQ1OGY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgKQEAgLTMx
LDcgKzMxLDcgQEAgY2xhc3MgR2V0dGVyU2V0dGVyOwogY2xhc3MgTnVtYmVyQ29uc3RydWN0b3Ig
OiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBJbnRlcm5h
bEZ1bmN0aW9uIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBIYXNTdGF0
aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwg
SW1wbGVtZW50c0hhc0luc3RhbmNlIHwgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZTsKIAog
ICAgIHN0YXRpYyBOdW1iZXJDb25zdHJ1Y3RvciogY3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIE51bWJlclByb3RvdHlwZSogbnVtYmVyUHJvdG90eXBlLCBHZXR0ZXJTZXR0ZXIq
KQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
TnVtYmVyLWlzTmFOLWJhc2ljcy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvTnVtYmVyLWlzTmFOLWJhc2ljcy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NzdhYmUyMDFmY2YzNmFjYmMxZWQyODAyOTk1MzdkY2NjYTA0MWNiYi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL051bWJlci1pc05hTi1iYXNpY3MuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyMjEg
KzAsMCBAQAotZnVuY3Rpb24gbnVtYmVySXNOYU5PbkludGVnZXIodmFsdWUpCi17Ci0gICAgcmV0
dXJuIE51bWJlci5pc05hTih2YWx1ZSk7Ci19Ci1ub0lubGluZShudW1iZXJJc05hTk9uSW50ZWdl
cik7Ci0KLS8vICoqKiBUZXN0IHNpbXBsZSBjYXNlcyBvbiBpbnRlZ2Vycy4gKioqCi1mdW5jdGlv
biB0ZXN0TnVtYmVySXNOYU5PbkludGVnZXJzKCkKLXsKLSAgICAvLyBCb3VuZHMuCi0gICAgdmFy
IHZhbHVlID0gbnVtYmVySXNOYU5PbkludGVnZXIoMCk7Ci0gICAgaWYgKHZhbHVlKQotICAgICAg
ICB0aHJvdyAibnVtYmVySXNOYU5PbkludGVnZXIoMCkgPSAiICsgdmFsdWU7Ci0KLSAgICB2YXIg
dmFsdWUgPSBudW1iZXJJc05hTk9uSW50ZWdlcigtMjE0NzQ4MzY0OCk7Ci0gICAgaWYgKHZhbHVl
KQotICAgICAgICB0aHJvdyAibnVtYmVySXNOYU5PbkludGVnZXIoLTIxNDc0ODM2NDgpID0gIiAr
IHZhbHVlOwotCi0gICAgdmFyIHZhbHVlID0gbnVtYmVySXNOYU5PbkludGVnZXIoMjE0NzQ4MzY0
Nyk7Ci0gICAgaWYgKHZhbHVlKQotICAgICAgICB0aHJvdyAibnVtYmVySXNOYU5PbkludGVnZXIo
MjE0NzQ4MzY0NykgPSAiICsgdmFsdWU7Ci0KLSAgICAvLyBTaW1wbGUgdmFsdWVzLgotICAgIHZh
ciB2YWx1ZSA9IG51bWJlcklzTmFOT25JbnRlZ2VyKC0xKTsKLSAgICBpZiAodmFsdWUpCi0gICAg
ICAgIHRocm93ICJudW1iZXJJc05hTk9uSW50ZWdlcigtMSkgPSAiICsgdmFsdWU7Ci0KLSAgICB2
YXIgdmFsdWUgPSBudW1iZXJJc05hTk9uSW50ZWdlcig0Mik7Ci0gICAgaWYgKHZhbHVlKQotICAg
ICAgICB0aHJvdyAibnVtYmVySXNOYU5PbkludGVnZXIoNDIpID0gIiArIHZhbHVlOwotCi0gICAg
dmFyIHZhbHVlID0gbnVtYmVySXNOYU5PbkludGVnZXIoLTQyKTsKLSAgICBpZiAodmFsdWUpCi0g
ICAgICAgIHRocm93ICJudW1iZXJJc05hTk9uSW50ZWdlcigtNDIpID0gIiArIHZhbHVlOwotfQot
bm9JbmxpbmUodGVzdE51bWJlcklzTmFOT25JbnRlZ2Vycyk7Ci0KLWZvciAodmFyIGkgPSAwOyBp
IDwgMWU0OyArK2kpIHsKLSAgICB0ZXN0TnVtYmVySXNOYU5PbkludGVnZXJzKCk7Ci19Ci0KLS8v
IE1ha2Ugc3VyZSB3ZSBkb24ndCBkbyBhbnl0aGluZyBzdHVwaWQgd2hlbiB0aGUgdHlwZSBpcyB1
bmV4cGVjdGVkLgotZnVuY3Rpb24gdmVyaWZ5TnVtYmVySXNOYU5PbkludGVnZXJXaXRoT3RoZXJU
eXBlcygpCi17Ci0gICAgdmFyIHZhbHVlID0gbnVtYmVySXNOYU5PbkludGVnZXIoTWF0aC5QSSk7
Ci0gICAgaWYgKHZhbHVlKQotICAgICAgICB0aHJvdyAibnVtYmVySXNOYU5PbkludGVnZXIoTWF0
aC5QSSkgPSAiICsgdmFsdWU7Ci0KLSAgICB2YXIgdmFsdWUgPSBudW1iZXJJc05hTk9uSW50ZWdl
cigiNDIiKTsKLSAgICBpZiAodmFsdWUpCi0gICAgICAgIHRocm93ICJudW1iZXJJc05hTk9uSW50
ZWdlcihcIjQyXCIpID0gIiArIHZhbHVlOwotCi0gICAgdmFyIHZhbHVlID0gbnVtYmVySXNOYU5P
bkludGVnZXIoIldlYktpdCIpOwotICAgIGlmICh2YWx1ZSkKLSAgICAgICAgdGhyb3cgIm51bWJl
cklzTmFOT25JbnRlZ2VyKFwiV2ViS2l0XCIpID0gIiArIHZhbHVlOwotCi0gICAgdmFyIHZhbHVl
ID0gbnVtYmVySXNOYU5PbkludGVnZXIoLTApOwotICAgIGlmICh2YWx1ZSkKLSAgICAgICAgdGhy
b3cgIm51bWJlcklzTmFOT25JbnRlZ2VyKC0wKSA9ICIgKyB2YWx1ZTsKLX0KLW5vSW5saW5lKHZl
cmlmeU51bWJlcklzTmFOT25JbnRlZ2VyV2l0aE90aGVyVHlwZXMpOwotCi1mb3IgKHZhciBpID0g
MDsgaSA8IDFlNDsgKytpKSB7Ci0gICAgdmVyaWZ5TnVtYmVySXNOYU5PbkludGVnZXJXaXRoT3Ro
ZXJUeXBlcygpOwotfQotCi0KLS8vICoqKiBUZXN0IHNpbXBsZSBjYXNlcyBvbiBkb3VibGVzLiAq
KioKLWZ1bmN0aW9uIG51bWJlcklzTmFOT25Eb3VibGUodmFsdWUpCi17Ci0gICAgcmV0dXJuIE51
bWJlci5pc05hTih2YWx1ZSk7Ci19Ci1ub0lubGluZShudW1iZXJJc05hTk9uRG91YmxlKTsKLQot
Ly8gVGVzdCBzaW1wbGUgY2FzZXMgb24gZG91Ymxlcy4KLWZ1bmN0aW9uIHRlc3ROdW1iZXJJc05h
Tk9uRG91YmxlcygpCi17Ci0gICAgdmFyIHZhbHVlID0gbnVtYmVySXNOYU5PbkRvdWJsZShNYXRo
LlBJKTsKLSAgICBpZiAodmFsdWUpCi0gICAgICAgIHRocm93ICJudW1iZXJJc05hTk9uRG91Ymxl
KE1hdGguUEkpID0gIiArIHZhbHVlOwotCi0gICAgdmFyIHZhbHVlID0gbnVtYmVySXNOYU5PbkRv
dWJsZShNYXRoLkUpOwotICAgIGlmICh2YWx1ZSkKLSAgICAgICAgdGhyb3cgIm51bWJlcklzTmFO
T25Eb3VibGUoTWF0aC5FKSA9ICIgKyB2YWx1ZTsKLQotICAgIHZhciB2YWx1ZSA9IG51bWJlcklz
TmFOT25Eb3VibGUoTWF0aC5MTjIpOwotICAgIGlmICh2YWx1ZSkKLSAgICAgICAgdGhyb3cgIm51
bWJlcklzTmFOT25Eb3VibGUoTWF0aC5MTjIpID0gIiArIHZhbHVlOwotCi0gICAgdmFyIHZhbHVl
ID0gbnVtYmVySXNOYU5PbkRvdWJsZSgtMCk7Ci0gICAgaWYgKHZhbHVlKQotICAgICAgICB0aHJv
dyAibnVtYmVySXNOYU5PbkRvdWJsZSgtMCkgPSAiICsgdmFsdWU7Ci0KLSAgICB2YXIgdmFsdWUg
PSBudW1iZXJJc05hTk9uRG91YmxlKE5hTik7Ci0gICAgaWYgKCF2YWx1ZSkKLSAgICAgICAgdGhy
b3cgIm51bWJlcklzTmFOT25Eb3VibGUoTmFOKSA9ICIgKyB2YWx1ZTsKLQotICAgIHZhciB2YWx1
ZSA9IG51bWJlcklzTmFOT25Eb3VibGUoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTsKLSAgICBp
ZiAodmFsdWUpCi0gICAgICAgIHRocm93ICJudW1iZXJJc05hTk9uRG91YmxlKE51bWJlci5QT1NJ
VElWRV9JTkZJTklUWSkgPSAiICsgdmFsdWU7Ci0KLSAgICB2YXIgdmFsdWUgPSBudW1iZXJJc05h
Tk9uRG91YmxlKE51bWJlci5ORUdBVElWRV9JTkZJTklUWSk7Ci0gICAgaWYgKHZhbHVlKQotICAg
ICAgICB0aHJvdyAibnVtYmVySXNOYU5PbkRvdWJsZShOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkp
ID0gIiArIHZhbHVlOwotfQotbm9JbmxpbmUodGVzdE51bWJlcklzTmFOT25Eb3VibGVzKTsKLQot
Zm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgewotICAgIHRlc3ROdW1iZXJJc05hTk9uRG91
YmxlcygpOwotfQotCi0vLyBNYWtlIHN1cmUgd2UgZG9uJ3QgZG8gYW55dGhpbmcgc3R1cGlkIHdo
ZW4gdGhlIHR5cGUgaXMgdW5leHBlY3RlZC4KLWZ1bmN0aW9uIHZlcmlmeU51bWJlcklzTmFOT25E
b3VibGVzV2l0aE90aGVyVHlwZXMoKQotewotICAgIHZhciB2YWx1ZSA9IG51bWJlcklzTmFOT25E
b3VibGUoMSk7Ci0gICAgaWYgKHZhbHVlKQotICAgICAgICB0aHJvdyAibnVtYmVySXNOYU5PbkRv
dWJsZSgxKSA9ICIgKyB2YWx1ZTsKLQotICAgIHZhciB2YWx1ZSA9IG51bWJlcklzTmFOT25Eb3Vi
bGUoIjQyIik7Ci0gICAgaWYgKHZhbHVlKQotICAgICAgICB0aHJvdyAibnVtYmVySXNOYU5PbkRv
dWJsZShcIjQyXCIpID0gIiArIHZhbHVlOwotCi0gICAgdmFyIHZhbHVlID0gbnVtYmVySXNOYU5P
bkRvdWJsZSgiV2ViS2l0Iik7Ci0gICAgaWYgKHZhbHVlKQotICAgICAgICB0aHJvdyAibnVtYmVy
SXNOYU5PbkRvdWJsZShcIldlYktpdFwiKSA9ICIgKyB2YWx1ZTsKLQotICAgIHZhciB2YWx1ZSA9
IG51bWJlcklzTmFOT25Eb3VibGUoe30pOwotICAgIGlmICh2YWx1ZSkKLSAgICAgICAgdGhyb3cg
Im51bWJlcklzTmFOT25Eb3VibGUoe30pID0gIiArIHZhbHVlOwotfQotbm9JbmxpbmUodmVyaWZ5
TnVtYmVySXNOYU5PbkRvdWJsZXNXaXRoT3RoZXJUeXBlcyk7Ci0KLWZvciAodmFyIGkgPSAwOyBp
IDwgMWU0OyArK2kpIHsKLSAgICB2ZXJpZnlOdW1iZXJJc05hTk9uRG91Ymxlc1dpdGhPdGhlclR5
cGVzKCk7Ci19Ci0KLQotLy8gKioqIFVudXN1YWwgYXJndW1lbnRzLiAqKioKLWZ1bmN0aW9uIG51
bWJlcklzTmFOTm9Bcmd1bWVudHMoKQotewotICAgIHJldHVybiBOdW1iZXIuaXNOYU4oKTsKLX0K
LW5vSW5saW5lKG51bWJlcklzTmFOTm9Bcmd1bWVudHMpOwotCi1mdW5jdGlvbiBudW1iZXJJc05h
TlRvb01hbnlBcmd1bWVudHMoYSwgYiwgYykKLXsKLSAgICByZXR1cm4gTnVtYmVyLmlzTmFOKGEs
IGIsIGMpOwotfQotbm9JbmxpbmUobnVtYmVySXNOYU5Ub29NYW55QXJndW1lbnRzKTsKLQotCi1m
b3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7Ci0gICAgdmFyIHZhbHVlID0gbnVtYmVySXNO
YU5Ob0FyZ3VtZW50cygpOwotICAgIGlmICh2YWx1ZSkKLSAgICAgICAgdGhyb3cgIm51bWJlcklz
TmFOTm9Bcmd1bWVudHMoKSA9ICIgKyB2YWx1ZTsKLQotICAgIHZhbHVlID0gbnVtYmVySXNOYU5U
b29NYW55QXJndW1lbnRzKDIsIDMsIDUpOwotICAgIGlmICh2YWx1ZSkKLSAgICAgICAgdGhyb3cg
Im51bWJlcklzTmFOVG9vTWFueUFyZ3VtZW50cygpID0gIiArIHZhbHVlOwotfQotCi0KLS8vICoq
KiBDb25zdGFudCBhcyBhcmd1bWVudHMuICoqKgotZnVuY3Rpb24gdGVzdE51bWJlcklzTmFOT25D
b25zdGFudHMoKQotewotICAgIHZhciB2YWx1ZSA9IE51bWJlci5pc05hTigwKTsKLSAgICBpZiAo
dmFsdWUpCi0gICAgICAgIHRocm93ICJOdW1iZXIuaXNOYU4oMCkgPSAiICsgdmFsdWU7Ci0gICAg
dmFyIHZhbHVlID0gTnVtYmVyLmlzTmFOKC0wKTsKLSAgICBpZiAodmFsdWUpCi0gICAgICAgIHRo
cm93ICJOdW1iZXIuaXNOYU4oLTApID0gIiArIHZhbHVlOwotICAgIHZhciB2YWx1ZSA9IE51bWJl
ci5pc05hTigxKTsKLSAgICBpZiAodmFsdWUpCi0gICAgICAgIHRocm93ICJOdW1iZXIuaXNOYU4o
MSkgPSAiICsgdmFsdWU7Ci0gICAgdmFyIHZhbHVlID0gTnVtYmVyLmlzTmFOKC0xKTsKLSAgICBp
ZiAodmFsdWUpCi0gICAgICAgIHRocm93ICJOdW1iZXIuaXNOYU4oLTEpID0gIiArIHZhbHVlOwot
ICAgIHZhciB2YWx1ZSA9IE51bWJlci5pc05hTig0Mik7Ci0gICAgaWYgKHZhbHVlKQotICAgICAg
ICB0aHJvdyAiTnVtYmVyLmlzTmFOKDQyKSA9ICIgKyB2YWx1ZTsKLSAgICB2YXIgdmFsdWUgPSBO
dW1iZXIuaXNOYU4oLTQyKTsKLSAgICBpZiAodmFsdWUpCi0gICAgICAgIHRocm93ICJOdW1iZXIu
aXNOYU4oLTQyKSA9ICIgKyB2YWx1ZTsKLSAgICB2YXIgdmFsdWUgPSBOdW1iZXIuaXNOYU4oTnVt
YmVyLlBPU0lUSVZFX0lORklOSVRZKTsKLSAgICBpZiAodmFsdWUpCi0gICAgICAgIHRocm93ICJO
dW1iZXIuaXNOYU4oTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSA9ICIgKyB2YWx1ZTsKLSAgICB2
YXIgdmFsdWUgPSBOdW1iZXIuaXNOYU4oTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZKTsKLSAgICBp
ZiAodmFsdWUpCi0gICAgICAgIHRocm93ICJOdW1iZXIuaXNOYU4oTnVtYmVyLk5FR0FUSVZFX0lO
RklOSVRZKSA9ICIgKyB2YWx1ZTsKLSAgICB2YXIgdmFsdWUgPSBOdW1iZXIuaXNOYU4oTWF0aC5F
KTsKLSAgICBpZiAodmFsdWUpCi0gICAgICAgIHRocm93ICJOdW1iZXIuaXNOYU4oTWF0aC5FKSA9
ICIgKyB2YWx1ZTsKLSAgICB2YXIgdmFsdWUgPSBOdW1iZXIuaXNOYU4oTmFOKTsKLSAgICBpZiAo
IXZhbHVlKQotICAgICAgICB0aHJvdyAiTnVtYmVyLmlzTmFOKE5hTikgPSAiICsgdmFsdWU7Ci19
Ci1ub0lubGluZSh0ZXN0TnVtYmVySXNOYU5PbkNvbnN0YW50cyk7Ci0KLWZvciAodmFyIGkgPSAw
OyBpIDwgMWU0OyArK2kpIHsKLSAgICB0ZXN0TnVtYmVySXNOYU5PbkNvbnN0YW50cygpOwotfQot
Ci0KLS8vICoqKiBTdHJ1Y3QgdHJhbnNpdGlvbi4gKioqCi1mdW5jdGlvbiBudW1iZXJJc05hTlN0
cnVjdFRyYW5zaXRpb24odmFsdWUpCi17Ci0gICAgcmV0dXJuIE51bWJlci5pc05hTih2YWx1ZSk7
Ci19Ci1ub0lubGluZShudW1iZXJJc05hTlN0cnVjdFRyYW5zaXRpb24pOwotCi1mb3IgKHZhciBp
ID0gMDsgaSA8IDFlNDsgKytpKSB7Ci0gICAgdmFyIHZhbHVlID0gbnVtYmVySXNOYU5TdHJ1Y3RU
cmFuc2l0aW9uKDQyKTsKLSAgICBpZiAodmFsdWUpCi0gICAgICAgIHRocm93ICJudW1iZXJJc05h
TlN0cnVjdFRyYW5zaXRpb24oNDIpID0gIiArIHZhbHVlOwotfQotCi1OdW1iZXIuaXNOYU4gPSBm
dW5jdGlvbigpIHsgcmV0dXJuIDEyMzsgfQotCi12YXIgdmFsdWUgPSBudW1iZXJJc05hTlN0cnVj
dFRyYW5zaXRpb24oNDIpOwotaWYgKHZhbHVlICE9PSAxMjMpCi0gICAgdGhyb3cgIm51bWJlcklz
TmFOU3RydWN0VHJhbnNpdGlvbig0MikgYWZ0ZXIgdHJhbnNpdGlvbiA9ICIgKyB2YWx1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2xvYmFsLWlzLWZp
bml0ZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2xvYmFsLWlzLWZp
bml0ZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmM3ZjJmNzk5NWJlYmFmNTQ4
ZTQ3OTliN2I2MDJiOWIxZjEzYjNiNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dsb2JhbC1p
cy1maW5pdGUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1mdW5jdGlvbiBzaG91
bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7Ci0gICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCi0g
ICAgICAgIHRocm93IG5ldyBFcnJvcihgYmFkIHZhbHVlOiAke2FjdHVhbH1gKTsKLX0KLWZvciAo
dmFyIGkgPSAtMWU0OyBpIDwgMWU0OyArK2kpCi0gICAgc2hvdWxkQmUoaXNGaW5pdGUoaSksIHRy
dWUpOwotCi0vLyBFbWl0IERvdWJsZVJlcC4KLWZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kp
IHsKLSAgICBzaG91bGRCZShpc0Zpbml0ZShJbmZpbml0eSksIGZhbHNlKTsKLSAgICBzaG91bGRC
ZShpc0Zpbml0ZSgtSW5maW5pdHkpLCBmYWxzZSk7Ci0gICAgc2hvdWxkQmUoaXNGaW5pdGUoTmFO
KSwgZmFsc2UpOwotfQotCi0vLyBFbWl0IFRvTnVtYmVyLgotZm9yICh2YXIgaSA9IDA7IGkgPCAx
ZTQ7ICsraSkKLSAgICBzaG91bGRCZShpc0Zpbml0ZSgiMCIpLCB0cnVlKTsKLXNob3VsZEJlKGlz
RmluaXRlKCJIZWxsbyIpLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2dsb2JhbC1pcy1uYW4uanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL2dsb2JhbC1pcy1uYW4uanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGM4NDA4YjExZWExOGUzMjRmYWVkYTVkYTJiZjc2YTY3M2RlMmQyN2QuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9nbG9iYWwtaXMtbmFuLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAs
MCBAQAotZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgewotICAgIGlmIChhY3R1
YWwgIT09IGV4cGVjdGVkKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGJhZCB2YWx1ZTogJHth
Y3R1YWx9YCk7Ci19Ci1mb3IgKHZhciBpID0gLTFlNDsgaSA8IDFlNDsgKytpKQotICAgIHNob3Vs
ZEJlKGlzTmFOKGkpLCBmYWxzZSk7Ci0KLS8vIEVtaXQgRG91YmxlUmVwLgotZm9yICh2YXIgaSA9
IDA7IGkgPCAxZTQ7ICsraSkgewotICAgIHNob3VsZEJlKGlzTmFOKEluZmluaXR5KSwgZmFsc2Up
OwotICAgIHNob3VsZEJlKGlzTmFOKC1JbmZpbml0eSksIGZhbHNlKTsKLSAgICBzaG91bGRCZShp
c05hTihOYU4pLCB0cnVlKTsKLX0KLQotLy8gRW1pdCBUb051bWJlci4KLWZvciAodmFyIGkgPSAw
OyBpIDwgMWU0OyArK2kpCi0gICAgc2hvdWxkQmUoaXNOYU4oIjAiKSwgZmFsc2UpOwotc2hvdWxk
QmUoaXNOYU4oIkhlbGxvIiksIHRydWUpOwotc2hvdWxkQmUoaXNOYU4oIk5hTiIpLCB0cnVlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2xvYmFsLWlz
TmFOLWJhc2ljcy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2xvYmFs
LWlzTmFOLWJhc2ljcy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODdkZjFjZWIz
MDE2MDRjMzMzOTc5N2NjZDU4YTdlZjcwZmYxODBjOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2dsb2JhbC1pc05hTi1iYXNpY3MuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyNjAgKzAsMCBAQAot
ZnVuY3Rpb24gaXNOYU5PbkludGVnZXIodmFsdWUpCi17Ci0gICAgcmV0dXJuIGlzTmFOKHZhbHVl
KTsKLX0KLW5vSW5saW5lKGlzTmFOT25JbnRlZ2VyKTsKLQotLy8gKioqIFRlc3Qgc2ltcGxlIGNh
c2VzIG9uIGludGVnZXJzLiAqKioKLWZ1bmN0aW9uIHRlc3RJc05hTk9uSW50ZWdlcnMoKQotewot
ICAgIC8vIEJvdW5kcy4KLSAgICB2YXIgdmFsdWUgPSBpc05hTk9uSW50ZWdlcigwKTsKLSAgICBp
ZiAodmFsdWUpCi0gICAgICAgIHRocm93ICJpc05hTk9uSW50ZWdlcigwKSA9ICIgKyB2YWx1ZTsK
LQotICAgIHZhciB2YWx1ZSA9IGlzTmFOT25JbnRlZ2VyKC0yMTQ3NDgzNjQ4KTsKLSAgICBpZiAo
dmFsdWUpCi0gICAgICAgIHRocm93ICJpc05hTk9uSW50ZWdlcigtMjE0NzQ4MzY0OCkgPSAiICsg
dmFsdWU7Ci0KLSAgICB2YXIgdmFsdWUgPSBpc05hTk9uSW50ZWdlcigyMTQ3NDgzNjQ3KTsKLSAg
ICBpZiAodmFsdWUpCi0gICAgICAgIHRocm93ICJpc05hTk9uSW50ZWdlcigyMTQ3NDgzNjQ3KSA9
ICIgKyB2YWx1ZTsKLQotICAgIC8vIFNpbXBsZSB2YWx1ZXMuCi0gICAgdmFyIHZhbHVlID0gaXNO
YU5PbkludGVnZXIoLTEpOwotICAgIGlmICh2YWx1ZSkKLSAgICAgICAgdGhyb3cgImlzTmFOT25J
bnRlZ2VyKC0xKSA9ICIgKyB2YWx1ZTsKLQotICAgIHZhciB2YWx1ZSA9IGlzTmFOT25JbnRlZ2Vy
KDQyKTsKLSAgICBpZiAodmFsdWUpCi0gICAgICAgIHRocm93ICJpc05hTk9uSW50ZWdlcig0Mikg
PSAiICsgdmFsdWU7Ci0KLSAgICB2YXIgdmFsdWUgPSBpc05hTk9uSW50ZWdlcigtNDIpOwotICAg
IGlmICh2YWx1ZSkKLSAgICAgICAgdGhyb3cgImlzTmFOT25JbnRlZ2VyKC00MikgPSAiICsgdmFs
dWU7Ci19Ci1ub0lubGluZSh0ZXN0SXNOYU5PbkludGVnZXJzKTsKLQotZm9yICh2YXIgaSA9IDA7
IGkgPCAxZTQ7ICsraSkgewotICAgIHRlc3RJc05hTk9uSW50ZWdlcnMoKTsKLX0KLQotLy8gTWFr
ZSBzdXJlIHdlIGRvbid0IGRvIGFueXRoaW5nIHN0dXBpZCB3aGVuIHRoZSB0eXBlIGlzIHVuZXhw
ZWN0ZWQuCi1mdW5jdGlvbiB2ZXJpZnlJc05hTk9uSW50ZWdlcldpdGhPdGhlclR5cGVzKCkKLXsK
LSAgICB2YXIgdmFsdWUgPSBpc05hTk9uSW50ZWdlcihNYXRoLlBJKTsKLSAgICBpZiAodmFsdWUp
Ci0gICAgICAgIHRocm93ICJpc05hTk9uSW50ZWdlcihNYXRoLlBJKSA9ICIgKyB2YWx1ZTsKLQot
ICAgIHZhciB2YWx1ZSA9IGlzTmFOT25JbnRlZ2VyKCI0MiIpOwotICAgIGlmICh2YWx1ZSkKLSAg
ICAgICAgdGhyb3cgImlzTmFOT25JbnRlZ2VyKFwiNDJcIikgPSAiICsgdmFsdWU7Ci0KLSAgICB2
YXIgdmFsdWUgPSBpc05hTk9uSW50ZWdlcigiV2ViS2l0Iik7Ci0gICAgaWYgKCF2YWx1ZSkKLSAg
ICAgICAgdGhyb3cgImlzTmFOT25JbnRlZ2VyKFwiV2ViS2l0XCIpID0gIiArIHZhbHVlOwotCi0g
ICAgdmFyIHZhbHVlID0gaXNOYU5PbkludGVnZXIoLTApOwotICAgIGlmICh2YWx1ZSkKLSAgICAg
ICAgdGhyb3cgImlzTmFOT25JbnRlZ2VyKC0wKSA9ICIgKyB2YWx1ZTsKLX0KLW5vSW5saW5lKHZl
cmlmeUlzTmFOT25JbnRlZ2VyV2l0aE90aGVyVHlwZXMpOwotCi1mb3IgKHZhciBpID0gMDsgaSA8
IDFlNDsgKytpKSB7Ci0gICAgdmVyaWZ5SXNOYU5PbkludGVnZXJXaXRoT3RoZXJUeXBlcygpOwot
fQotCi0vLyAqKiogVGVzdCBzaW1wbGUgY2FzZXMgb24gZG91Ymxlcy4gKioqCi1mdW5jdGlvbiBp
c05hTk9uRG91YmxlKHZhbHVlKQotewotICAgIHJldHVybiBpc05hTih2YWx1ZSk7Ci19Ci1ub0lu
bGluZShpc05hTk9uRG91YmxlKTsKLQotLy8gVGVzdCBzaW1wbGUgY2FzZXMgb24gZG91Ymxlcy4K
LWZ1bmN0aW9uIHRlc3RJc05hTk9uRG91YmxlcygpCi17Ci0gICAgdmFyIHZhbHVlID0gaXNOYU5P
bkRvdWJsZShNYXRoLlBJKTsKLSAgICBpZiAodmFsdWUpCi0gICAgICAgIHRocm93ICJpc05hTk9u
RG91YmxlKE1hdGguUEkpID0gIiArIHZhbHVlOwotCi0gICAgdmFyIHZhbHVlID0gaXNOYU5PbkRv
dWJsZShNYXRoLkUpOwotICAgIGlmICh2YWx1ZSkKLSAgICAgICAgdGhyb3cgImlzTmFOT25Eb3Vi
bGUoTWF0aC5FKSA9ICIgKyB2YWx1ZTsKLQotICAgIHZhciB2YWx1ZSA9IGlzTmFOT25Eb3VibGUo
TWF0aC5MTjIpOwotICAgIGlmICh2YWx1ZSkKLSAgICAgICAgdGhyb3cgImlzTmFOT25Eb3VibGUo
TWF0aC5MTjIpID0gIiArIHZhbHVlOwotCi0gICAgdmFyIHZhbHVlID0gaXNOYU5PbkRvdWJsZSgt
MCk7Ci0gICAgaWYgKHZhbHVlKQotICAgICAgICB0aHJvdyAiaXNOYU5PbkRvdWJsZSgtMCkgPSAi
ICsgdmFsdWU7Ci0KLSAgICB2YXIgdmFsdWUgPSBpc05hTk9uRG91YmxlKE5hTik7Ci0gICAgaWYg
KCF2YWx1ZSkKLSAgICAgICAgdGhyb3cgImlzTmFOT25Eb3VibGUoTmFOKSA9ICIgKyB2YWx1ZTsK
LQotICAgIHZhciB2YWx1ZSA9IGlzTmFOT25Eb3VibGUoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZ
KTsKLSAgICBpZiAodmFsdWUpCi0gICAgICAgIHRocm93ICJpc05hTk9uRG91YmxlKE51bWJlci5Q
T1NJVElWRV9JTkZJTklUWSkgPSAiICsgdmFsdWU7Ci0KLSAgICB2YXIgdmFsdWUgPSBpc05hTk9u
RG91YmxlKE51bWJlci5ORUdBVElWRV9JTkZJTklUWSk7Ci0gICAgaWYgKHZhbHVlKQotICAgICAg
ICB0aHJvdyAiaXNOYU5PbkRvdWJsZShOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkpID0gIiArIHZh
bHVlOwotfQotbm9JbmxpbmUodGVzdElzTmFOT25Eb3VibGVzKTsKLQotZm9yICh2YXIgaSA9IDA7
IGkgPCAxZTY7ICsraSkgewotICAgIHRlc3RJc05hTk9uRG91YmxlcygpOwotfQotCi0vLyBNYWtl
IHN1cmUgd2UgZG9uJ3QgZG8gYW55dGhpbmcgc3R1cGlkIHdoZW4gdGhlIHR5cGUgaXMgdW5leHBl
Y3RlZC4KLWZ1bmN0aW9uIHZlcmlmeUlzTmFOT25Eb3VibGVzV2l0aE90aGVyVHlwZXMoKQotewot
ICAgIHZhciB2YWx1ZSA9IGlzTmFOT25Eb3VibGUoMSk7Ci0gICAgaWYgKHZhbHVlKQotICAgICAg
ICB0aHJvdyAiaXNOYU5PbkRvdWJsZSgxKSA9ICIgKyB2YWx1ZTsKLQotICAgIHZhciB2YWx1ZSA9
IGlzTmFOT25Eb3VibGUoIjQyIik7Ci0gICAgaWYgKHZhbHVlKQotICAgICAgICB0aHJvdyAiaXNO
YU5PbkRvdWJsZShcIjQyXCIpID0gIiArIHZhbHVlOwotCi0gICAgdmFyIHZhbHVlID0gaXNOYU5P
bkRvdWJsZSgiV2ViS2l0Iik7Ci0gICAgaWYgKCF2YWx1ZSkKLSAgICAgICAgdGhyb3cgImlzTmFO
T25Eb3VibGUoXCJXZWJLaXRcIikgPSAiICsgdmFsdWU7Ci0KLSAgICB2YXIgdmFsdWUgPSBpc05h
Tk9uRG91YmxlKHt9KTsKLSAgICBpZiAoIXZhbHVlKQotICAgICAgICB0aHJvdyAiaXNOYU5PbkRv
dWJsZSh7fSkgPSAiICsgdmFsdWU7Ci19Ci1ub0lubGluZSh2ZXJpZnlJc05hTk9uRG91Ymxlc1dp
dGhPdGhlclR5cGVzKTsKLQotZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgewotICAgIHZl
cmlmeUlzTmFOT25Eb3VibGVzV2l0aE90aGVyVHlwZXMoKTsKLX0KLQotLy8gTWFrZSBzdXJlIHdl
IHN0aWxsIHJldHVybiBOYU4gZm9yIHR5cGUgY29lcmNlZCB2YWx1ZXMgZm9yIGdsb2JhbCBpc05h
Ti4KLWZ1bmN0aW9uIHZlcmlmeUlzTmFOT25Db2VyY2VkVHlwZXMoKQotewotICAgIHZhciB2YWx1
ZSA9IGlzTmFOT25JbnRlZ2VyKCJOYU4iKTsKLSAgICBpZiAoIXZhbHVlKQotICAgICAgICB0aHJv
dyAiaXNOYU5PbkludGVnZXIoXCJOYU5cIikgPSAiICsgdmFsdWU7Ci0KLSAgICB2YXIgdmFsdWUg
PSBpc05hTk9uSW50ZWdlcih7IHZhbHVlT2YoKSB7IHJldHVybiBOYU47IH0gfSk7Ci0gICAgaWYg
KCF2YWx1ZSkKLSAgICAgICAgdGhyb3cgImlzTmFOT25JbnRlZ2VyKHsgdmFsdWVPZigpIHsgcmV0
dXJuIE5hTjsgfSB9KSA9ICIgKyB2YWx1ZTsKLX0KLW5vSW5saW5lKHZlcmlmeUlzTmFOT25Db2Vy
Y2VkVHlwZXMpOwotCi1mb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7Ci0gICAgdmVyaWZ5
SXNOYU5PbkNvZXJjZWRUeXBlcygpOwotfQotCi0KLS8vICoqKiBVbnVzdWFsIGFyZ3VtZW50cy4g
KioqCi1mdW5jdGlvbiBpc05hTk5vQXJndW1lbnRzKCkKLXsKLSAgICByZXR1cm4gaXNOYU4oKTsK
LX0KLW5vSW5saW5lKGlzTmFOTm9Bcmd1bWVudHMpOwotCi1mdW5jdGlvbiBpc05hTlRvb01hbnlB
cmd1bWVudHMoYSwgYiwgYykKLXsKLSAgICByZXR1cm4gaXNOYU4oYSwgYiwgYyk7Ci19Ci1ub0lu
bGluZShpc05hTlRvb01hbnlBcmd1bWVudHMpOwotCi0KLWZvciAodmFyIGkgPSAwOyBpIDwgMWU0
OyArK2kpIHsKLSAgICB2YXIgdmFsdWUgPSBpc05hTk5vQXJndW1lbnRzKCk7Ci0gICAgaWYgKCF2
YWx1ZSkKLSAgICAgICAgdGhyb3cgImlzTmFOTm9Bcmd1bWVudHMoKSA9ICIgKyB2YWx1ZTsKLQot
ICAgIHZhbHVlID0gaXNOYU5Ub29NYW55QXJndW1lbnRzKDIsIDMsIDUpOwotICAgIGlmICh2YWx1
ZSkKLSAgICAgICAgdGhyb3cgImlzTmFOVG9vTWFueUFyZ3VtZW50cygpID0gIiArIHZhbHVlOwot
fQotCi0KLS8vICoqKiBDb25zdGFudCBhcyBhcmd1bWVudHMuICoqKgotZnVuY3Rpb24gdGVzdElz
TmFOT25Db25zdGFudHMoKQotewotICAgIHZhciB2YWx1ZSA9IGlzTmFOKDApOwotICAgIGlmICh2
YWx1ZSkKLSAgICAgICAgdGhyb3cgImlzTmFOKDApID0gIiArIHZhbHVlOwotICAgIHZhciB2YWx1
ZSA9IGlzTmFOKC0wKTsKLSAgICBpZiAodmFsdWUpCi0gICAgICAgIHRocm93ICJpc05hTigtMCkg
PSAiICsgdmFsdWU7Ci0gICAgdmFyIHZhbHVlID0gaXNOYU4oMSk7Ci0gICAgaWYgKHZhbHVlKQot
ICAgICAgICB0aHJvdyAiaXNOYU4oMSkgPSAiICsgdmFsdWU7Ci0gICAgdmFyIHZhbHVlID0gaXNO
YU4oLTEpOwotICAgIGlmICh2YWx1ZSkKLSAgICAgICAgdGhyb3cgImlzTmFOKC0xKSA9ICIgKyB2
YWx1ZTsKLSAgICB2YXIgdmFsdWUgPSBpc05hTig0Mik7Ci0gICAgaWYgKHZhbHVlKQotICAgICAg
ICB0aHJvdyAiaXNOYU4oNDIpID0gIiArIHZhbHVlOwotICAgIHZhciB2YWx1ZSA9IGlzTmFOKC00
Mik7Ci0gICAgaWYgKHZhbHVlKQotICAgICAgICB0aHJvdyAiaXNOYU4oLTQyKSA9ICIgKyB2YWx1
ZTsKLSAgICB2YXIgdmFsdWUgPSBpc05hTihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpOwotICAg
IGlmICh2YWx1ZSkKLSAgICAgICAgdGhyb3cgImlzTmFOKE51bWJlci5QT1NJVElWRV9JTkZJTklU
WSkgPSAiICsgdmFsdWU7Ci0gICAgdmFyIHZhbHVlID0gaXNOYU4oTnVtYmVyLk5FR0FUSVZFX0lO
RklOSVRZKTsKLSAgICBpZiAodmFsdWUpCi0gICAgICAgIHRocm93ICJpc05hTihOdW1iZXIuTkVH
QVRJVkVfSU5GSU5JVFkpID0gIiArIHZhbHVlOwotICAgIHZhciB2YWx1ZSA9IGlzTmFOKE1hdGgu
RSk7Ci0gICAgaWYgKHZhbHVlKQotICAgICAgICB0aHJvdyAiaXNOYU4oTWF0aC5FKSA9ICIgKyB2
YWx1ZTsKLSAgICB2YXIgdmFsdWUgPSBpc05hTihOYU4pOwotICAgIGlmICghdmFsdWUpCi0gICAg
ICAgIHRocm93ICJpc05hTihOYU4pID0gIiArIHZhbHVlOwotfQotbm9JbmxpbmUodGVzdElzTmFO
T25Db25zdGFudHMpOwotCi1mb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7Ci0gICAgdGVz
dElzTmFOT25Db25zdGFudHMoKTsKLX0KLQotCi0vLyAqKiogVHlwZSBDb2VyY2lvbiBTaWRlIGVm
ZmVjdHMuICoqKgotZnVuY3Rpb24gaXNOYU5UeXBlQ29lcmNpb25TaWRlRWZmZWN0cyh2YWx1ZSkK
LXsKLSAgICByZXR1cm4gaXNOYU4odmFsdWUpOwotfQotbm9JbmxpbmUoaXNOYU5UeXBlQ29lcmNp
b25TaWRlRWZmZWN0cyk7Ci0KLWZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKLSAgICB2
YXIgdmFsdWUgPSBpc05hTlR5cGVDb2VyY2lvblNpZGVFZmZlY3RzKDQyKTsKLSAgICBpZiAodmFs
dWUpCi0gICAgICAgIHRocm93ICJpc05hTlR5cGVDb2VyY2lvblNpZGVFZmZlY3RzKDQyKSA9ICIg
KyB2YWx1ZTsKLX0KLQotdmFyIGdsb2JhbENvdW50ZXIgPSAwOwotZm9yICh2YXIgaSA9IDA7IGkg
PCAxZTQ7ICsraSkgewotICAgIHZhciB2YWx1ZSA9IGlzTmFOVHlwZUNvZXJjaW9uU2lkZUVmZmVj
dHMoeyB2YWx1ZU9mKCkgeyByZXR1cm4gZ2xvYmFsQ291bnRlcisrOyB9IH0pOwotICAgIGlmICh2
YWx1ZSkKLSAgICAgICAgdGhyb3cgImlzTmFOVHlwZUNvZXJjaW9uU2lkZUVmZmVjdHMoeyB2YWx1
ZU9mKCkgeyByZXR1cm4gZ2xvYmFsQ291bnRlcisrOyB9IH0pID0gIiArIHZhbHVlOwotfQotaWYg
KGdsb2JhbENvdW50ZXIgIT09IDFlNCkKLSAgICB0aHJvdyAiZ2xvYmFsQ291bnRlciA9IiArIGds
b2JhbENvdW50ZXI7Ci0KLQotLy8gKioqIFN0cnVjdCB0cmFuc2l0aW9uLiAqKioKLWZ1bmN0aW9u
IGlzTmFOU3RydWN0VHJhbnNpdGlvbih2YWx1ZSkKLXsKLSAgICByZXR1cm4gaXNOYU4odmFsdWUp
OwotfQotbm9JbmxpbmUoaXNOYU5TdHJ1Y3RUcmFuc2l0aW9uKTsKLQotZm9yICh2YXIgaSA9IDA7
IGkgPCAxZTQ7ICsraSkgewotICAgIHZhciB2YWx1ZSA9IGlzTmFOU3RydWN0VHJhbnNpdGlvbig0
Mik7Ci0gICAgaWYgKHZhbHVlKQotICAgICAgICB0aHJvdyAiaXNOYU5TdHJ1Y3RUcmFuc2l0aW9u
KDQyKSA9ICIgKyB2YWx1ZTsKLX0KLQotaXNOYU4gPSBmdW5jdGlvbigpIHsgcmV0dXJuIDEyMzsg
fQotCi12YXIgdmFsdWUgPSBpc05hTlN0cnVjdFRyYW5zaXRpb24oNDIpOwotaWYgKHZhbHVlICE9
PSAxMjMpCi0gICAgdGhyb3cgImlzTmFOU3RydWN0VHJhbnNpdGlvbig0MikgYWZ0ZXIgdHJhbnNp
dGlvbiA9ICIgKyB2YWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvbnVtYmVyLWlzLWZpbml0ZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvbnVtYmVyLWlzLWZpbml0ZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggODg3ZWZiOTdhMWYyZDQ2NDQ3MzZkYTJmZDcyZGMwNWRmNGNiNmQzZi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL251bWJlci1pcy1maW5pdGUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzNyAr
MCwwIEBACi1mdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7Ci0gICAgaWYgKGFj
dHVhbCAhPT0gZXhwZWN0ZWQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcihgYmFkIHZhbHVlOiAk
e2FjdHVhbH1gKTsKLX0KLQotZnVuY3Rpb24gdGVzdDEoaSkKLXsKLSAgICBzaG91bGRCZShOdW1i
ZXIuaXNGaW5pdGUoaSksIHRydWUpOwotfQotbm9JbmxpbmUodGVzdDEpOwotCi1mb3IgKHZhciBp
ID0gLTFlNDsgaSA8IDFlNDsgKytpKQotICAgIHRlc3QxKGkpOwotCi1mdW5jdGlvbiB0ZXN0Mihp
KQotewotICAgIHNob3VsZEJlKE51bWJlci5pc0Zpbml0ZShJbmZpbml0eSksIGZhbHNlKTsKLSAg
ICBzaG91bGRCZShOdW1iZXIuaXNGaW5pdGUoLUluZmluaXR5KSwgZmFsc2UpOwotICAgIHNob3Vs
ZEJlKE51bWJlci5pc0Zpbml0ZShOYU4pLCBmYWxzZSk7Ci19Ci1ub0lubGluZSh0ZXN0Mik7Ci0K
LS8vIEVtaXQgRG91YmxlUmVwLgotZm9yICh2YXIgaSA9IDA7IGkgPCAxMDA7ICsraSkKLSAgICB0
ZXN0MihpKTsKLQotCi1mdW5jdGlvbiB0ZXN0MyhpKQotewotICAgIHNob3VsZEJlKE51bWJlci5p
c0Zpbml0ZSgiMCIpLCBmYWxzZSk7Ci0gICAgc2hvdWxkQmUoTnVtYmVyLmlzRmluaXRlKCJIZWxs
byIpLCBmYWxzZSk7Ci19Ci1ub0lubGluZSh0ZXN0Myk7Ci0KLS8vIEVtaXQgSXNOdW1iZXIuCi1m
b3IgKHZhciBpID0gMDsgaSA8IDEwMDsgKytpKQotICAgIHRlc3QzKGkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9udW1iZXItaXMtbmFuLmpzIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9udW1iZXItaXMtbmFuLmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZTQ4MTJlZjY5YmIxMmE4OGEwODg3NjQ0OTI2YzFlNGNj
ZjBmMGMyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbnVtYmVyLWlzLW5hbi5qcworKysgL2Rl
di9udWxsCkBAIC0xLDM4ICswLDAgQEAKLWZ1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0
ZWQpIHsKLSAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKLSAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKGBiYWQgdmFsdWU6ICR7YWN0dWFsfWApOwotfQotCi1mdW5jdGlvbiB0ZXN0MShpKQotewot
ICAgIHNob3VsZEJlKE51bWJlci5pc05hTihpKSwgZmFsc2UpOwotfQotbm9JbmxpbmUodGVzdDEp
OwotCi1mb3IgKHZhciBpID0gLTFlNDsgaSA8IDFlNDsgKytpKQotICAgIHRlc3QxKGkpOwotCi1m
dW5jdGlvbiB0ZXN0MihpKQotewotICAgIHNob3VsZEJlKE51bWJlci5pc05hTihJbmZpbml0eSks
IGZhbHNlKTsKLSAgICBzaG91bGRCZShOdW1iZXIuaXNOYU4oLUluZmluaXR5KSwgZmFsc2UpOwot
ICAgIHNob3VsZEJlKE51bWJlci5pc05hTihOYU4pLCB0cnVlKTsKLX0KLW5vSW5saW5lKHRlc3Qy
KTsKLQotLy8gRW1pdCBEb3VibGVSZXAuCi1mb3IgKHZhciBpID0gMDsgaSA8IDEwMDsgKytpKQot
ICAgIHRlc3QyKGkpOwotCi0KLWZ1bmN0aW9uIHRlc3QzKGkpCi17Ci0gICAgc2hvdWxkQmUoTnVt
YmVyLmlzTmFOKCIwIiksIGZhbHNlKTsKLSAgICBzaG91bGRCZShOdW1iZXIuaXNOYU4oIkhlbGxv
IiksIGZhbHNlKTsKLSAgICBzaG91bGRCZShOdW1iZXIuaXNOYU4oIk5hTiIpLCBmYWxzZSk7Ci19
Ci1ub0lubGluZSh0ZXN0Myk7Ci0KLS8vIEVtaXQgSXNOdW1iZXIuCi1mb3IgKHZhciBpID0gMDsg
aSA8IDEwMDsgKytpKQotICAgIHRlc3QzKGkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy90by1udW1iZXItYmFzaWNzLmpzIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy90by1udW1iZXItYmFzaWNzLmpzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0MzhiMjE2NjBkYTAyMDFiZGI3YWY1ZjExMzEyMzFmYjRmNGI1NTUzLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tbnVtYmVyLWJhc2ljcy5qcworKysgL2Rldi9udWxs
CkBAIC0xLDIyICswLDAgQEAKLWZ1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsK
LSAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBi
YWQgdmFsdWU6ICR7U3RyaW5nKGFjdHVhbCl9YCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QxKHZhbHVl
KQotewotICAgIHJldHVybiBOdW1iZXIodmFsdWUpIDw9IDQyOwotfQotbm9JbmxpbmUodGVzdDEp
OwotCi0vLyBJbnQzMi4KLWZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpCi0gICAgc2hvdWxk
QmUodGVzdDEoNDIpLCB0cnVlKTsKLQotLy8gRG91Ymxlcy4KLWZvciAodmFyIGkgPSAwOyBpIDwg
MWU0OyArK2kpCi0gICAgc2hvdWxkQmUodGVzdDEoNDIuMTk1KSwgZmFsc2UpOwotCi0vLyBOb24g
bnVtYmVycy4KLWZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpCi0gICAgc2hvdWxkQmUodGVz
dDEoIkhlbGxvIiksIGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvdG8tbnVtYmVyLWNvbnZlcnQtaWRlbnRpdHktd2l0aG91dC1leGVjdXRpb24u
anMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLW51bWJlci1jb252ZXJ0
LWlkZW50aXR5LXdpdGhvdXQtZXhlY3V0aW9uLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAxMzc4ZTQ3MGQyZWVlOWNhZmUwYjE4YTMwZGI4M2U5ODdlMjYxOWZhLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvdG8tbnVtYmVyLWNvbnZlcnQtaWRlbnRpdHktd2l0aG91dC1leGVjdXRp
b24uanMKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi1mdW5jdGlvbiBzaG91bGRCZShh
Y3R1YWwsIGV4cGVjdGVkKSB7Ci0gICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCi0gICAgICAg
IHRocm93IG5ldyBFcnJvcihgYmFkIHZhbHVlOiAke1N0cmluZyhhY3R1YWwpfWApOwotfQotCi1m
dW5jdGlvbiB0ZXN0KHgsIHkpCi17Ci0gICAgaWYgKHgpCi0gICAgICAgIHJldHVybiBOdW1iZXIo
eSk7Ci0gICAgcmV0dXJuIHk7Ci19Ci1ub0lubGluZSh0ZXN0KTsKLQotLy8gQ29udmVydGVkIHRv
IElkZW50aXR5LCBidXQgc2luY2UgTnVtYmVyIGlzIGhhbmRsZWQgYnkgaW5saW5pbmcsIGl0IGVt
aXRzIEZvcmNlT1NSRXhpdC4KLS8vIFNvIGNvbnZlcnRlZCBJZGVudGl0eSBpcyBuZXZlciBleGVj
dXRlZC4KLWZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpCi0gICAgc2hvdWxkQmUodGVzdChm
YWxzZSwgNDEpLCA0MSk7Ci0KLQotZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkKLSAgICBz
aG91bGRCZSh0ZXN0KHRydWUsIDQxKSwgNDEpOwotdmFyIG9iamVjdCA9IHsgdmFsdWVPZigpIHsg
cmV0dXJuIDQxOyB9IH07Ci1mb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKQotICAgIHNob3Vs
ZEJlKHRlc3QodHJ1ZSwgb2JqZWN0KSwgNDEpOwotZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsr
aSkKLSAgICBzaG91bGRCZSh0ZXN0KHRydWUsIHsgdmFsdWVPZigpIHsgcmV0dXJuIDQyLjE5NTsg
fSB9KSwgNDIuMTk1KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvdG8tbnVtYmVyLWludDUyLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy90by1udW1iZXItaW50NTIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI1
OGFjOTJiOGYzMGJkNDRmYTY1YjRhZjEzODExOTYxN2JmZWZmMzYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy90by1udW1iZXItaW50NTIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBA
Ci1mdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7Ci0gICAgaWYgKGFjdHVhbCAh
PT0gZXhwZWN0ZWQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcihgYmFkIHZhbHVlOiAke1N0cmlu
ZyhhY3R1YWwpfWApOwotfQotCi1mdW5jdGlvbiB0ZXN0KHgpIHsKLSAgICB2YXIgeSA9IHg7Ci0g
ICAgdmFyIHogPSB5ICogMjsKLSAgICBpZiAoeikgewotICAgICAgICB6ICs9IHk7Ci0gICAgICAg
IHogKz0geTsKLSAgICAgICAgeiArPSB5OwotICAgIH0KLSAgICByZXR1cm4gTnVtYmVyKHopIDwg
NDI7Ci19Ci1ub0lubGluZSh0ZXN0KTsKLQotZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkK
LSAgICBzaG91bGRCZSh0ZXN0KDEwMDAwMDAwMDApLCBmYWxzZSk7Ci0KLS8vIEV4dGVuZCB0byBE
b3VibGVzLgotZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkKLSAgICBzaG91bGRCZSh0ZXN0
KDQyLjE5NSksIGZhbHNlKTsKLQotLy8gTGVhdmUgVG9OdW1iZXIgZm9yIG9iamVjdHMuCi0vLyBB
bmQgdGhpcyBzaG91bGQgdXBkYXRlIHRoZSB2YWx1ZSBwcm9maWxpbmcgdG8gYWNjZXB0IGRvdWJs
ZXMgaW4gVG9OdW1iZXIgY2FsbHMuCi12YXIgb2JqZWN0ID0geyB2YWx1ZU9mKCkgeyByZXR1cm4g
NDIuMTk1OyB9IH07Ci1mb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKQotICAgIHNob3VsZEJl
KHRlc3Qob2JqZWN0KSwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy90by1udW1iZXItaW50cmluc2ljLWNvbnZlcnQtdG8taWRlbnRpdHktd2l0
aG91dC1leGVjdXRpb24uanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Rv
LW51bWJlci1pbnRyaW5zaWMtY29udmVydC10by1pZGVudGl0eS13aXRob3V0LWV4ZWN1dGlvbi5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWQ2MDA3YmJjMDEzNjdhOGEzYjRiNzUy
MjdmZmIyMWFmNGU5NWRmZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLW51bWJlci1pbnRy
aW5zaWMtY29udmVydC10by1pZGVudGl0eS13aXRob3V0LWV4ZWN1dGlvbi5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDIyICswLDAgQEAKLWZ1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQp
IHsKLSAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9y
KGBiYWQgdmFsdWU6ICR7U3RyaW5nKGFjdHVhbCl9YCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoeCwg
eSkKLXsKLSAgICBpZiAoeCkKLSAgICAgICAgcmV0dXJuICt5OwotICAgIHJldHVybiB5OwotfQot
bm9JbmxpbmUodGVzdCk7Ci0KLWZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpCi0gICAgc2hv
dWxkQmUodGVzdChmYWxzZSwgNDEpLCA0MSk7Ci1mb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytp
KQotICAgIHNob3VsZEJlKHRlc3QodHJ1ZSwgNDEpLCA0MSk7Ci12YXIgb2JqZWN0ID0geyB2YWx1
ZU9mKCkgeyByZXR1cm4gNDE7IH0gfTsKLWZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpCi0g
ICAgc2hvdWxkQmUodGVzdCh0cnVlLCBvYmplY3QpLCA0MSk7Ci1mb3IgKHZhciBpID0gMDsgaSA8
IDFlNDsgKytpKQotICAgIHNob3VsZEJlKHRlc3QodHJ1ZSwgeyB2YWx1ZU9mKCkgeyByZXR1cm4g
NDIuMTk1OyB9IH0pLCA0Mi4xOTUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy90by1udW1iZXItaW50cmluc2ljLWludDUyLmpzIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1udW1iZXItaW50cmluc2ljLWludDUyLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZGNiZjgzZmQ4YmM0MDIyMDdkYTVmNzJlOTA1YzY0
NjMwYmFiZmY1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tbnVtYmVyLWludHJpbnNpYy1p
bnQ1Mi5qcworKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLWZ1bmN0aW9uIHNob3VsZEJl
KGFjdHVhbCwgZXhwZWN0ZWQpIHsKLSAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKLSAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKGBiYWQgdmFsdWU6ICR7U3RyaW5nKGFjdHVhbCl9YCk7Ci19Ci0K
LWZ1bmN0aW9uIHRlc3QoeCkgewotICAgIHZhciB5ID0geDsKLSAgICB2YXIgeiA9IHkgKiAyOwot
ICAgIGlmICh6KSB7Ci0gICAgICAgIHogKz0geTsKLSAgICAgICAgeiArPSB5OwotICAgICAgICB6
ICs9IHk7Ci0gICAgfQotICAgIHJldHVybiBpc0Zpbml0ZSh6KTsKLX0KLW5vSW5saW5lKHRlc3Qp
OwotCi1mb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKQotICAgIHNob3VsZEJlKHRlc3QoMTAw
MDAwMDAwMCksIHRydWUpOwotCi0vLyBFeHRlbmQgdG8gRG91Ymxlcy4KLWZvciAodmFyIGkgPSAw
OyBpIDwgMWU0OyArK2kpCi0gICAgc2hvdWxkQmUodGVzdCg0Mi4xOTUpLCB0cnVlKTsKLQotLy8g
TGVhdmUgVG9OdW1iZXIgZm9yIG9iamVjdHMuCi0vLyBBbmQgdGhpcyBzaG91bGQgdXBkYXRlIHRo
ZSB2YWx1ZSBwcm9maWxpbmcgdG8gYWNjZXB0IGRvdWJsZXMgaW4gVG9OdW1iZXIgY2FsbHMuCi12
YXIgb2JqZWN0ID0geyB2YWx1ZU9mKCkgeyByZXR1cm4gNDIuMTk1OyB9IH07Ci1mb3IgKHZhciBp
ID0gMDsgaSA8IDFlNDsgKytpKQotICAgIHNob3VsZEJlKHRlc3Qob2JqZWN0KSwgdHJ1ZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLW51bWJlci1p
bnRyaW5zaWMtb2JqZWN0LXdpdGhvdXQtZXhlY3V0aW9uLmpzIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy90by1udW1iZXItaW50cmluc2ljLW9iamVjdC13aXRob3V0LWV4ZWN1
dGlvbi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzQ4MmJiZGM1YzJkYmMzNjMw
NDlkNGU0NWNhZTQ1ZTU1ZjgxN2JlNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLW51bWJl
ci1pbnRyaW5zaWMtb2JqZWN0LXdpdGhvdXQtZXhlY3V0aW9uLmpzCisrKyAvZGV2L251bGwKQEAg
LTEsMTggKzAsMCBAQAotZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgewotICAg
IGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGJhZCB2
YWx1ZTogJHtTdHJpbmcoYWN0dWFsKX1gKTsKLX0KLQotZnVuY3Rpb24gdGVzdCh4LCB5KQotewot
ICAgIGlmICh4KQotICAgICAgICByZXR1cm4gK3k7Ci0gICAgcmV0dXJuIHk7Ci19Ci1ub0lubGlu
ZSh0ZXN0KTsKLQotdmFyIG9iamVjdCA9IHsgdmFsdWVPZigpIHsgcmV0dXJuIDQxOyB9IH07Ci1m
b3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKQotICAgIHNob3VsZEJlKHRlc3QoZmFsc2UsIG9i
amVjdCksIG9iamVjdCk7Ci1mb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKQotICAgIHNob3Vs
ZEJlKHRlc3QodHJ1ZSwgb2JqZWN0KSwgNDEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy90by1udW1iZXItaW50cmluc2ljLXZhbHVlLXByb2ZpbGluZy5q
cyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tbnVtYmVyLWludHJpbnNp
Yy12YWx1ZS1wcm9maWxpbmcuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlmNmNj
MDRjZWE3MjEwZmFkZTk1OGFmOWIyMjQ2OTdmODRkOTU5OTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy90by1udW1iZXItaW50cmluc2ljLXZhbHVlLXByb2ZpbGluZy5qcworKysgL2Rldi9udWxs
CkBAIC0xLDE4ICswLDAgQEAKLWZ1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsK
LSAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBi
YWQgdmFsdWU6ICR7U3RyaW5nKGFjdHVhbCl9YCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoeCkgewot
ICAgIHJldHVybiBpc0Zpbml0ZSh4KTsKLX0KLW5vSW5saW5lKHRlc3QpOwotCi12YXIgb2JqZWN0
ID0geyB2YWx1ZU9mKCkgeyByZXR1cm4gNDI7IH0gfTsKLWZvciAodmFyIGkgPSAwOyBpIDwgMWU0
OyArK2kpCi0gICAgc2hvdWxkQmUodGVzdChvYmplY3QpLCB0cnVlKTsKLQotLy8gVGhpcyBzaG91
bGQgdXBkYXRlIHRoZSB2YWx1ZSBwcm9maWxpbmcgdG8gYWNjZXB0IGRvdWJsZXMgaW4gVG9OdW1i
ZXIgY2FsbHMuCi12YXIgb2JqZWN0ID0geyB2YWx1ZU9mKCkgeyByZXR1cm4gNDIuMTk1OyB9IH07
Ci1mb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKQotICAgIHNob3VsZEJlKHRlc3Qob2JqZWN0
KSwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L3RvLW51bWJlci1vYmplY3Qtd2l0aG91dC1leGVjdXRpb24uanMgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL3RvLW51bWJlci1vYmplY3Qtd2l0aG91dC1leGVjdXRpb24uanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg1NmUwZGE4Mjk4ZDRkZDVlMzQxNTg2NmNm
ZGM4YmU4MWRmODRlNjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1udW1iZXItb2JqZWN0
LXdpdGhvdXQtZXhlY3V0aW9uLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotZnVu
Y3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgewotICAgIGlmIChhY3R1YWwgIT09IGV4
cGVjdGVkKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGJhZCB2YWx1ZTogJHtTdHJpbmcoYWN0
dWFsKX1gKTsKLX0KLQotZnVuY3Rpb24gdGVzdCh4LCB5KQotewotICAgIGlmICh4KQotICAgICAg
ICByZXR1cm4gTnVtYmVyKHkpOwotICAgIHJldHVybiB5OwotfQotbm9JbmxpbmUodGVzdCk7Ci0K
LXZhciBvYmplY3QgPSB7IHZhbHVlT2YoKSB7IHJldHVybiA0MTsgfSB9OwotLy8gU2luY2UgTnVt
YmVyIGlzIGhhbmRsZWQgYnkgaW5saW5pbmcsIGl0IGVtaXRzIEZvcmNlT1NSRXhpdC4KLWZvciAo
dmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpCi0gICAgc2hvdWxkQmUodGVzdChmYWxzZSwgb2JqZWN0
KSwgb2JqZWN0KTsKLQotZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkKLSAgICBzaG91bGRC
ZSh0ZXN0KHRydWUsIG9iamVjdCksIDQxKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvdG8tbnVtYmVyLW9iamVjdC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvdG8tbnVtYmVyLW9iamVjdC5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNjg5MjQ5YTRkZjUxNWNjMDU3NjI1MzAwMzQ0MTNiYzc2Zjg5YTY5Mi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLW51bWJlci1vYmplY3QuanMKKysrIC9kZXYvbnVsbApA
QCAtMSw3MCArMCwwIEBACi1mdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7Ci0g
ICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcihgYmFk
IHZhbHVlOiAke1N0cmluZyhhY3R1YWwpfWApOwotfQotCi1mdW5jdGlvbiB0ZXN0MShvYmplY3Qp
Ci17Ci0gICAgLy8gVGhlIHByZWRpY3Rpb24gc2hvdWxkIGJlIEludDMyLgotICAgIHJldHVybiBO
dW1iZXIob2JqZWN0KTsKLX0KLW5vSW5saW5lKHRlc3QxKTsKLQotZnVuY3Rpb24gdGVzdDEyKG9i
amVjdCkKLXsKLSAgICAvLyBTaG91bGQgYmUgSW50MzIgY29tcGFyaXNvbi4KLSAgICByZXR1cm4g
TnVtYmVyKG9iamVjdCkgPD0gNDI7Ci19Ci1ub0lubGluZSh0ZXN0MTIpOwotCi12YXIgb2JqZWN0
MSA9IHsgdmFsdWVPZigpIHsgcmV0dXJuIDQyOyB9IH07Ci1mb3IgKHZhciBpID0gMDsgaSA8IDFl
NDsgKytpKSB7Ci0gICAgc2hvdWxkQmUodGVzdDEob2JqZWN0MSksIDQyKTsKLSAgICBzaG91bGRC
ZSh0ZXN0MTIob2JqZWN0MSksIHRydWUpOwotfQotCi1mdW5jdGlvbiB0ZXN0MihvYmplY3QpCi17
Ci0gICAgLy8gVGhlIHByZWRpY3Rpb24gc2hvdWxkIGJlIERvdWJsZXMuCi0gICAgcmV0dXJuIE51
bWJlcihvYmplY3QpOwotfQotbm9JbmxpbmUodGVzdDIpOwotCi1mdW5jdGlvbiB0ZXN0MjIob2Jq
ZWN0KQotewotICAgIC8vIFNob3VsZCBiZSBEb3VibGUgY29tcGFyaXNvbi4KLSAgICByZXR1cm4g
TnVtYmVyKG9iamVjdCkgPD0gNDI7Ci19Ci1ub0lubGluZSh0ZXN0MjIpOwotCi12YXIgb2JqZWN0
MiA9IHsgdmFsdWVPZigpIHsgcmV0dXJuIDQyLjE5NTsgfSB9OwotZm9yICh2YXIgaSA9IDA7IGkg
PCAxZTQ7ICsraSkgewotICAgIHNob3VsZEJlKHRlc3QyKG9iamVjdDIpLCA0Mi4xOTUpOwotICAg
IHNob3VsZEJlKHRlc3QyMihvYmplY3QyKSwgZmFsc2UpOwotfQotCi1mdW5jdGlvbiB0ZXN0Myhv
YmplY3QpCi17Ci0gICAgLy8gVGhlIHByZWRpY3Rpb24gc2hvdWxkIGJlIEludDMyLCBhbmQgbGF0
ZXIgaXQgc2hvdWxkIGJlIERvdWJsZXMuCi0gICAgcmV0dXJuIE51bWJlcihvYmplY3QpOwotfQot
bm9JbmxpbmUodGVzdDMpOwotCi1mdW5jdGlvbiB0ZXN0MzIob2JqZWN0KQotewotICAgIC8vIFNo
b3VsZCBiZSBJbnQzMiBjb21wYXJpc29uLiBBbmQgbGF0ZXIsIE9TUiBleGl0IG9jY3VycyB3aXRo
IDQyLjE5NS4gQW5kIGl0IHNob3VsZCBiZSByZWNvbXBpbGVkIGFzIERvdWJsZSBjb21wYXJpc29u
LgotICAgIHJldHVybiBOdW1iZXIob2JqZWN0KSA8PSA0MjsKLX0KLW5vSW5saW5lKHRlc3QzMik7
Ci0KLXZhciB2YWx1ZSA9IDQyOwotdmFyIG9iamVjdDMgPSB7IHZhbHVlT2YoKSB7IHJldHVybiB2
YWx1ZTsgfSB9OwotZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgewotICAgIHNob3VsZEJl
KHRlc3QzKG9iamVjdDMpLCB2YWx1ZSk7Ci0gICAgc2hvdWxkQmUodGVzdDMyKG9iamVjdDMpLCB0
cnVlKTsKLX0KLXZhbHVlID0gNDIuMTk1OwotZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkg
ewotICAgIHNob3VsZEJlKHRlc3QzKG9iamVjdDMpLCB2YWx1ZSk7Ci0gICAgc2hvdWxkQmUodGVz
dDMyKG9iamVjdDMpLCBmYWxzZSk7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL3RvLW51bWJlci12YWx1ZS1wcm9maWxpbmcuanMgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLW51bWJlci12YWx1ZS1wcm9maWxpbmcuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhNjlmZTVjZjMzM2M2ZWZiNTFkMmQ1Y2I5MmUx
YWI3NDQ1MzU2ZWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1udW1iZXItdmFsdWUtcHJv
ZmlsaW5nLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotZnVuY3Rpb24gc2hvdWxk
QmUoYWN0dWFsLCBleHBlY3RlZCkgewotICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQotICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoYGJhZCB2YWx1ZTogJHtTdHJpbmcoYWN0dWFsKX1gKTsKLX0K
LQotZnVuY3Rpb24gdGVzdCh4KSB7Ci0gICAgcmV0dXJuIE51bWJlcih4KSA8IDQyOwotfQotbm9J
bmxpbmUodGVzdCk7Ci0KLXZhciBvYmplY3QgPSB7IHZhbHVlT2YoKSB7IHJldHVybiA0MjsgfSB9
OwotZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkKLSAgICBzaG91bGRCZSh0ZXN0KG9iamVj
dCksIGZhbHNlKTsKLQotLy8gTGVhdmUgVG9OdW1iZXIgZm9yIG9iamVjdHMuCi0vLyBBbmQgdGhp
cyBzaG91bGQgdXBkYXRlIHRoZSB2YWx1ZSBwcm9maWxpbmcgdG8gYWNjZXB0IGRvdWJsZXMgaW4g
VG9OdW1iZXIgY2FsbHMuCi12YXIgb2JqZWN0ID0geyB2YWx1ZU9mKCkgeyByZXR1cm4gNDIuMTk1
OyB9IH07Ci1mb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKQotICAgIHNob3VsZEJlKHRlc3Qo
b2JqZWN0KSwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDVhM2U1M2I1MDA2YTA5OTE1MGRhOWU4MmJmMjNmNThk
NzQ2YmM2YWYuLmFmYWZiYjVjYjdkMmQ0OTJiY2M2ZDJjNzliOWQxMTJkYzRiMThjZjAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAxNi0wNi0yNCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVl
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIwMjQxMy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTA5Nwor
CisgICAgICAgIEJyb2tlIG1hbnkgSlNDIHRlc3RzIChSZXF1ZXN0ZWQgYnkgYXAgb24gI3dlYmtp
dCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJbSlNDXSBJbXBs
ZW1lbnQgaXNGaW5pdGUgLyBpc05hTiBpbiBKUyBhbmQgbWFrZSBERkcgVG9OdW1iZXIKKyAgICAg
ICAgYWNjZXB0IG5vbiBudW1iZXIgdmFsdWVzIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0MDIyCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5v
cmcvY2hhbmdlc2V0LzIwMjQxMworCiAyMDE2LTA2LTI0ICBKb2huIFdpbGFuZGVyICA8d2lsYW5k
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ugd2luZG93Lm9wZW4gbGF5b3V0IHRlc3RzIGZv
ciBhYm91dDogVVJMcyB3b3JrIG9uIGlPUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9OdW1iZXItaXNOYU4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9O
dW1iZXItaXNOYU4tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBl
YzZiOTM4MjNhMzMzODBmNjUzZjhjMGJmMDJhMWQ3NzU2MzA4YjMxLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvTnVt
YmVyLWlzTmFOLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLUpT
UmVncmVzcy9OdW1iZXItaXNOYU4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBB
U1Mgbm8gZXhjZXB0aW9uIHRocm93bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
Ci1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvTnVt
YmVyLWlzTmFOLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL051bWJlci1pc05hTi5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMmZhNGM5ZGU1YTRjNzk3MTZhY2IyODRk
ODFiMWE1MTFkYjFjMjA1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvTnVtYmVyLWlzTmFOLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
InNjcmlwdC10ZXN0cy9OdW1iZXItaXNOYU4uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nbG9iYWwtaXNOYU4tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nbG9iYWwtaXNOYU4tZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZTNhZTI4MjE1ZDI4NjUxYTVlMDQwOTE2
YmMyYzBjZmM3ZTBiMWViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2xvYmFsLWlzTmFOLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLUpTUmVncmVzcy9nbG9iYWwtaXNOYU4KLQot
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgot
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2xvYmFsLWlzTmFOLmh0bWwgYi9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2dsb2JhbC1pc05hTi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiOTQzZjliOWMyYjM5YzI4MjZlNjc1MjFlMjQ2NzdhYWFlZmYwZTRjLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZ2xvYmFsLWlzTmFOLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVz
cy1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nbG9iYWwtaXNO
YU4uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBv
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvTnVtYmVyLWlzTmFOLmpzIGIvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvTnVtYmVyLWlzTmFOLmpzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkMGZmNTRiMjg2ZmRiM2NhYzAxN2IzOWI4MjZiNjk1YTdjYWQ0YmJkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL051bWJlci1pc05hTi5qcworKysgL2Rldi9udWxsCkBA
IC0xLDEyICswLDAgQEAKLShmdW5jdGlvbigpIHsKLSAgICB2YXIgcmVzdWx0ID0gMDsKLSAgICB2
YXIgdmFsdWVzID0gWzAsIC0xLCAxMjMuNDUsIEluZmluaXR5LCBOYU5dOwotICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDAwMDsgKytpKSB7Ci0gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwg
dmFsdWVzLmxlbmd0aDsgKytqKSB7Ci0gICAgICAgICAgICBpZiAoTnVtYmVyLmlzTmFOKHZhbHVl
c1tqXSkpCi0gICAgICAgICAgICAgICAgcmVzdWx0Kys7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAg
aWYgKHJlc3VsdCAhPT0gMTAwMDAwMCkKLSAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0
OiAiICsgcmVzdWx0OwotfSkoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL2dsb2JhbC1pc05hTi5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2Ny
aXB0LXRlc3RzL2dsb2JhbC1pc05hTi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MzcyZWYxNGY3ZTY2YmQ5OWUwNzQ5OTNmNWZmN2ZjNzJiNzY3NWJhNC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9nbG9iYWwtaXNOYU4uanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBA
Ci0oZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHJlc3VsdCA9IDA7Ci0gICAgdmFyIHZhbHVlcyA9IFsw
LCAtMSwgMTIzLjQ1LCBJbmZpbml0eSwgTmFOXTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwMDA7ICsraSkgewotICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHZhbHVlcy5sZW5ndGg7
ICsraikgewotICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlc1tqXSkpCi0gICAgICAgICAgICAg
ICAgcmVzdWx0Kys7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKHJlc3VsdCAhPT0gMTAwMDAw
MCkKLSAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwotfSkoKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL21hbnktZm9y
ZWFjaC1jYWxscy5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL21hbnkt
Zm9yZWFjaC1jYWxscy5qcwppbmRleCBjZWMwZmFlN2U0Y2Q4OGRmMzQ2MDRmNGRhZGIxNzQwYjI0
MWFlYTNkLi5kMmIzODI1ODc5MWY0MTEyYTIyOTlhNWI1MmQwMDE5YmZhMWQyNzZjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9tYW55LWZvcmVhY2gtY2Fs
bHMuanMKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvbWFueS1mb3Jl
YWNoLWNhbGxzLmpzCkBAIC0xLDYgKzEsNyBAQAotZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsr
aSkgewotICAgIHZhciBzdW0gPSAwOwotICAgIFsxLCAyLCAzLCA0XS5mb3JFYWNoKGZ1bmN0aW9u
ICh2YWx1ZSkgewordmFyIHN1bSA9IDA7Cit2YXIgYXJyYXkgPSBbMSwgMiwgM107Citmb3IgKHZh
ciBpID0gMDsgaSA8IDFlNTsgKytpKSB7CisgICAgYXJyYXkuZm9yRWFjaChmdW5jdGlvbiAodmFs
dWUpIHsKICAgICAgICAgc3VtICs9IHZhbHVlOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvdG8tbnVtYmVyLWNvbnN0cnVjdG9yLW51
bWJlci1zdHJpbmctbnVtYmVyLXN0cmluZy5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2Ny
aXB0LXRlc3RzL3RvLW51bWJlci1jb25zdHJ1Y3Rvci1udW1iZXItc3RyaW5nLW51bWJlci1zdHJp
bmcuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZjYWUwYjQwODExN2NhMjUwNjZj
NDZlNTRjNzA2NmYxY2M3MjIxMjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvdG8tbnVtYmVy
LWNvbnN0cnVjdG9yLW51bWJlci1zdHJpbmctbnVtYmVyLXN0cmluZy5qcworKysgL2Rldi9udWxs
CkBAIC0xLDIwICswLDAgQEAKLWZ1bmN0aW9uIHRlc3QodmFsdWUpCi17Ci0gICAgcmV0dXJuIE51
bWJlcih2YWx1ZSk7Ci19Ci0KLXZhciByZXN1bHQgPSAwOwotZm9yICh2YXIgaSA9IDA7IGkgPCAx
ZTQ7ICsraSkKLSAgICByZXN1bHQgPSB0ZXN0KGkpOwotCi12YXIgcmVzdWx0ID0gMDsKLWZvciAo
dmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpCi0gICAgcmVzdWx0ID0gdGVzdChpLnRvU3RyaW5nKCkp
OwotCi12YXIgcmVzdWx0ID0gMDsKLWZvciAodmFyIGkgPSAwOyBpIDwgNGU0OyArK2kpCi0gICAg
cmVzdWx0ID0gdGVzdChpKTsKLQotdmFyIHJlc3VsdCA9IDA7Ci1mb3IgKHZhciBpID0gMDsgaSA8
IDFlNDsgKytpKQotICAgIHJlc3VsdCA9IHRlc3QoaS50b1N0cmluZygpKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3RvLW51bWJlci1jb25zdHJ1Y3Rv
ci1vbmx5LW51bWJlci5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3Rv
LW51bWJlci1jb25zdHJ1Y3Rvci1vbmx5LW51bWJlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDRhOTQ1YmI5ZjU0ZTViNzcyM2Y0NDE0MDEzMmRjYTNiOGZiMTA4Mi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy90by1udW1iZXItY29uc3RydWN0b3Itb25seS1udW1iZXIuanMK
KysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1mdW5jdGlvbiB0ZXN0KHZhbHVlKQotewot
ICAgIHJldHVybiBOdW1iZXIodmFsdWUpOwotfQotCi12YXIgcmVzdWx0ID0gMDsKLWZvciAodmFy
IGkgPSAwOyBpIDwgMWU0OyArK2kpCi0gICAgcmVzdWx0ID0gdGVzdChpKTsKLWlmIChyZXN1bHQg
IT09IDk5OTkpCi0gICAgdGhyb3cgbmV3IEVycm9yKGBiYWQgcmVzdWx0ICR7cmVzdWx0fWApOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvdG8tbnVtYmVy
LWNvbnN0cnVjdG9yLW9ubHktc3RyaW5nLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3Jp
cHQtdGVzdHMvdG8tbnVtYmVyLWNvbnN0cnVjdG9yLW9ubHktc3RyaW5nLmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAxNGFkNjUwNTMzYzdlNTEyNzZkNWQyMTkxZGZmNzUyOTcxMzBh
NzE5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3RvLW51bWJlci1jb25zdHJ1Y3Rvci1vbmx5
LXN0cmluZy5qcworKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLWZ1bmN0aW9uIHRlc3Qo
dmFsdWUpCi17Ci0gICAgcmV0dXJuIE51bWJlcih2YWx1ZSk7Ci19Ci0KLXZhciByZXN1bHQgPSAw
OwotZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkKLSAgICByZXN1bHQgPSB0ZXN0KGkudG9T
dHJpbmcoKSk7Ci1pZiAocmVzdWx0ICE9PSA5OTk5KQotICAgIHRocm93IG5ldyBFcnJvcihgYmFk
IHJlc3VsdCAke3Jlc3VsdH1gKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL3RvLW51bWJlci1jb25zdHJ1Y3Rvci1zdHJpbmctbnVtYmVyLXN0cmluZy1u
dW1iZXIuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy90by1udW1iZXIt
Y29uc3RydWN0b3Itc3RyaW5nLW51bWJlci1zdHJpbmctbnVtYmVyLmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2Yjc4OTJkMGRlNTY1YTlkN2EwZDM0NDZjMWFiMjliYzQzMDhhZWE0
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3RvLW51bWJlci1jb25zdHJ1Y3Rvci1zdHJpbmct
bnVtYmVyLXN0cmluZy1udW1iZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1m
dW5jdGlvbiB0ZXN0KHZhbHVlKQotewotICAgIHJldHVybiBOdW1iZXIodmFsdWUpOwotfQotCi12
YXIgcmVzdWx0ID0gMDsKLWZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpCi0gICAgcmVzdWx0
ID0gdGVzdChpLnRvU3RyaW5nKCkpOwotCi12YXIgcmVzdWx0ID0gMDsKLWZvciAodmFyIGkgPSAw
OyBpIDwgMWU0OyArK2kpCi0gICAgcmVzdWx0ID0gdGVzdChpKTsKLQotdmFyIHJlc3VsdCA9IDA7
Ci1mb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKQotICAgIHJlc3VsdCA9IHRlc3QoaS50b1N0
cmluZygpKTsKLQotdmFyIHJlc3VsdCA9IDA7Ci1mb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytp
KQotICAgIHJlc3VsdCA9IHRlc3QoaSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy90by1udW1iZXItbnVtYmVyLXN0cmluZy1udW1iZXItc3RyaW5nLmpz
IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvdG8tbnVtYmVyLW51bWJlci1z
dHJpbmctbnVtYmVyLXN0cmluZy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGY5
Nzc5NWIzNzI1OTBmYTU2ODk5OTgyZGMwZWEyOWU2MmE4NGU4YS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy90by1udW1iZXItbnVtYmVyLXN0cmluZy1udW1iZXItc3RyaW5nLmpzCisrKyAvZGV2
L251bGwKQEAgLTEsMjAgKzAsMCBAQAotZnVuY3Rpb24gdGVzdCh2YWx1ZSkKLXsKLSAgICByZXR1
cm4gK3ZhbHVlOwotfQotCi12YXIgcmVzdWx0ID0gMDsKLWZvciAodmFyIGkgPSAwOyBpIDwgMWU0
OyArK2kpCi0gICAgcmVzdWx0ID0gdGVzdChpKTsKLQotdmFyIHJlc3VsdCA9IDA7Ci1mb3IgKHZh
ciBpID0gMDsgaSA8IDFlNDsgKytpKQotICAgIHJlc3VsdCA9IHRlc3QoaS50b1N0cmluZygpKTsK
LQotdmFyIHJlc3VsdCA9IDA7Ci1mb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKQotICAgIHJl
c3VsdCA9IHRlc3QoaSk7Ci0KLXZhciByZXN1bHQgPSAwOwotZm9yICh2YXIgaSA9IDA7IGkgPCAx
ZTQ7ICsraSkKLSAgICByZXN1bHQgPSB0ZXN0KGkudG9TdHJpbmcoKSk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy90by1udW1iZXItb25seS1udW1iZXIu
anMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy90by1udW1iZXItb25seS1u
dW1iZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2NTg2MWZlZDA3MzVmM2Ex
NTQ0MDBjOTE1MWQ5NmM2NTg4ZDllZDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvdG8tbnVt
YmVyLW9ubHktbnVtYmVyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotZnVuY3Rp
b24gdGVzdCh2YWx1ZSkKLXsKLSAgICByZXR1cm4gK3ZhbHVlOwotfQotCi12YXIgcmVzdWx0ID0g
MDsKLWZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpCi0gICAgcmVzdWx0ID0gdGVzdChpKTsK
LWlmIChyZXN1bHQgIT09IDk5OTkpCi0gICAgdGhyb3cgbmV3IEVycm9yKGBiYWQgcmVzdWx0ICR7
cmVzdWx0fWApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvdG8tbnVtYmVyLW9ubHktc3RyaW5nLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3Jp
cHQtdGVzdHMvdG8tbnVtYmVyLW9ubHktc3RyaW5nLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxMDVhZDNjOGQzYTJlNDk1NWJlZmM2NWM5NWQwMGM3M2UzNjk3MDlmLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3Mvc2NyaXB0LXRlc3RzL3RvLW51bWJlci1vbmx5LXN0cmluZy5qcworKysgL2Rldi9udWxs
CkBAIC0xLDEwICswLDAgQEAKLWZ1bmN0aW9uIHRlc3QodmFsdWUpCi17Ci0gICAgcmV0dXJuICt2
YWx1ZTsKLX0KLQotdmFyIHJlc3VsdCA9IDA7Ci1mb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytp
KQotICAgIHJlc3VsdCA9IHRlc3QoaS50b1N0cmluZygpKTsKLWlmIChyZXN1bHQgIT09IDk5OTkp
Ci0gICAgdGhyb3cgbmV3IEVycm9yKGBiYWQgcmVzdWx0ICR7cmVzdWx0fWApOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvdG8tbnVtYmVyLXN0cmluZy1u
dW1iZXItc3RyaW5nLW51bWJlci5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRl
c3RzL3RvLW51bWJlci1zdHJpbmctbnVtYmVyLXN0cmluZy1udW1iZXIuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGRlMzk0MWQ0NmQ3NWM3M2NjYmJjNGRjYzllNGJlOTBjNTM2NjM0
MTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvdG8tbnVtYmVyLXN0cmluZy1udW1iZXItc3Ry
aW5nLW51bWJlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLWZ1bmN0aW9uIHRl
c3QodmFsdWUpCi17Ci0gICAgcmV0dXJuICt2YWx1ZTsKLX0KLQotdmFyIHJlc3VsdCA9IDA7Ci1m
b3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKQotICAgIHJlc3VsdCA9IHRlc3QoaS50b1N0cmlu
ZygpKTsKLQotdmFyIHJlc3VsdCA9IDA7Ci1mb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKQot
ICAgIHJlc3VsdCA9IHRlc3QoaSk7Ci0KLXZhciByZXN1bHQgPSAwOwotZm9yICh2YXIgaSA9IDA7
IGkgPCAxZTQ7ICsraSkKLSAgICByZXN1bHQgPSB0ZXN0KGkudG9TdHJpbmcoKSk7Ci0KLXZhciBy
ZXN1bHQgPSAwOwotZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkKLSAgICByZXN1bHQgPSB0
ZXN0KGkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy90by1udW1iZXItY29u
c3RydWN0b3ItbnVtYmVyLXN0cmluZy1udW1iZXItc3RyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvdG8tbnVtYmVyLWNvbnN0cnVjdG9yLW51bWJlci1zdHJpbmctbnVt
YmVyLXN0cmluZy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE3
ZTFmNjc4ZDBmNzNjYjc4ODcwOTk3NTNjZDExN2I3OTFkNzhjN2IuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy90by1u
dW1iZXItY29uc3RydWN0b3ItbnVtYmVyLXN0cmluZy1udW1iZXItc3RyaW5nLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLUpTUmVncmVzcy90by1udW1iZXItY29u
c3RydWN0b3ItbnVtYmVyLXN0cmluZy1udW1iZXItc3RyaW5nCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL3RvLW51bWJlci1jb25zdHJ1Y3Rvci1udW1iZXItc3RyaW5nLW51bWJlci1z
dHJpbmcuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvdG8tbnVtYmVyLWNvbnN0cnVjdG9y
LW51bWJlci1zdHJpbmctbnVtYmVyLXN0cmluZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyNTY0NDA1MGRhY2M4ODVjZjVkMDJmN2M1YWMwZDA5NWNkOWUyODg0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvdG8tbnVtYmVyLWNvbnN0cnVjdG9yLW51bWJlci1zdHJpbmctbnVtYmVyLXN0cmluZy5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvdG8tbnVtYmVyLWNvbnN0cnVjdG9yLW51bWJlci1z
dHJpbmctbnVtYmVyLXN0cmluZy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3RvLW51bWJlci1jb25zdHJ1Y3Rvci1vbmx5
LW51bWJlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3RvLW51bWJlci1j
b25zdHJ1Y3Rvci1vbmx5LW51bWJlci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGZhMjc4NjJiOTlmMWIzN2RkMTZhNDg4ZjRjNmZkYjBjNDY1YjFkMTAuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy90by1udW1iZXItY29uc3RydWN0b3Itb25seS1udW1iZXItZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdyZXNzL3RvLW51bWJlci1jb25zdHJ1
Y3Rvci1vbmx5LW51bWJlcgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBu
byBleGNlcHRpb24gdGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy90by1udW1i
ZXItY29uc3RydWN0b3Itb25seS1udW1iZXIuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
dG8tbnVtYmVyLWNvbnN0cnVjdG9yLW9ubHktbnVtYmVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGExY2M0ZjY1YTJiNDQyNmExNzFhZWZkN2IyOTFmMmVjNWFmMDcxZjMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy90by1udW1iZXItY29uc3RydWN0b3Itb25seS1udW1iZXIuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDEyICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0ic2NyaXB0LXRlc3RzL3RvLW51bWJlci1jb25zdHJ1Y3Rvci1vbmx5LW51bWJlci5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3RvLW51bWJlci1jb25zdHJ1Y3Rvci1vbmx5LXN0cmluZy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3RvLW51bWJlci1jb25zdHJ1Y3Rvci1vbmx5LXN0cmluZy1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM2MDFhMjRmYmViZDI2ZTJl
ZWRjNDBhZGU4MGNhNWI2YWE3Y2U0OGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy90by1udW1iZXItY29uc3RydWN0
b3Itb25seS1zdHJpbmctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBA
QAotSlNSZWdyZXNzL3RvLW51bWJlci1jb25zdHJ1Y3Rvci1vbmx5LXN0cmluZwotCi1PbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBubyBleGNlcHRpb24gdGhyb3duCi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy90by1udW1iZXItY29uc3RydWN0b3Itb25seS1zdHJpbmcu
aHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvdG8tbnVtYmVyLWNvbnN0cnVjdG9yLW9ubHkt
c3RyaW5nLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0ZjU1OGExNzc0YTc3
YmFkODY2YzMyZDUyZjQ5YjZmZmQ4OTI5NzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy90by1udW1iZXItY29uc3Ry
dWN0b3Itb25seS1zdHJpbmcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLTwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhl
YWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNz
LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3RvLW51bWJlci1j
b25zdHJ1Y3Rvci1vbmx5LXN0cmluZy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3RvLW51bWJlci1jb25zdHJ1Y3Rvci1z
dHJpbmctbnVtYmVyLXN0cmluZy1udW1iZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy90by1udW1iZXItY29uc3RydWN0b3Itc3RyaW5nLW51bWJlci1zdHJpbmctbnVtYmVy
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTNiYWQ2YzAxNDk5
MTc3NDIzZmFmMDMzNGU4ZjA2OTJmNDY0YzI1Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3RvLW51bWJlci1jb25z
dHJ1Y3Rvci1zdHJpbmctbnVtYmVyLXN0cmluZy1udW1iZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdyZXNzL3RvLW51bWJlci1jb25zdHJ1Y3Rvci1z
dHJpbmctbnVtYmVyLXN0cmluZy1udW1iZXIKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgot
Ci0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvdG8tbnVtYmVyLWNvbnN0cnVjdG9yLXN0cmluZy1udW1iZXItc3RyaW5nLW51bWJlci5odG1s
IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy90by1udW1iZXItY29uc3RydWN0b3Itc3RyaW5nLW51
bWJlci1zdHJpbmctbnVtYmVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIw
YmFiNGQyZGI2YWQ3MDQzMTdiZTNiZjQwZWY1YTdlOWQyN2UyM2YuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy90by1u
dW1iZXItY29uc3RydWN0b3Itc3RyaW5nLW51bWJlci1zdHJpbmctbnVtYmVyLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy90by1udW1iZXItY29uc3RydWN0b3Itc3RyaW5nLW51bWJlci1zdHJp
bmctbnVtYmVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVn
cmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvdG8tbnVtYmVyLW51bWJlci1zdHJpbmctbnVtYmVyLXN0cmlu
Zy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3RvLW51bWJlci1udW1iZXIt
c3RyaW5nLW51bWJlci1zdHJpbmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyZTNlNTBhMDNlMDM1YTczNDk3MWI5NDUwMWZjOGVlOWQ3YjlhYmM0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvdG8tbnVtYmVyLW51bWJlci1zdHJpbmctbnVtYmVyLXN0cmluZy1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1KU1JlZ3Jlc3MvdG8tbnVtYmVyLW51bWJl
ci1zdHJpbmctbnVtYmVyLXN0cmluZwotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQot
UEFTUyBubyBleGNlcHRpb24gdGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
Ci0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy90
by1udW1iZXItbnVtYmVyLXN0cmluZy1udW1iZXItc3RyaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3RvLW51bWJlci1udW1iZXItc3RyaW5nLW51bWJlci1zdHJpbmcuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTM2ODMyNjM5NjJjNTlmMTk1NTY5NDA1ODI4MDUy
OTNjZTk0MTgyYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3RvLW51bWJlci1udW1iZXItc3RyaW5nLW51bWJlci1z
dHJpbmcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLTwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3RvLW51bWJlci1udW1iZXItc3RyaW5n
LW51bWJlci1zdHJpbmcuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy90by1udW1iZXItb25seS1udW1iZXItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy90by1udW1iZXItb25seS1udW1iZXItZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwN2ZhMWQxY2RjMDg3MzM0ZGQ2
ZmI4YjI4NTk3YzliZWMyMzg3M2RjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvdG8tbnVtYmVyLW9ubHktbnVtYmVy
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLUpTUmVncmVzcy90
by1udW1iZXItb25seS1udW1iZXIKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBB
U1Mgbm8gZXhjZXB0aW9uIHRocm93bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
Ci1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvdG8t
bnVtYmVyLW9ubHktbnVtYmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3RvLW51bWJl
ci1vbmx5LW51bWJlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYzY1ZTIy
ZmNlYmEwNjJiYjIwOWYwYzVjYmVjYjE3ODliNGZlZjlhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvdG8tbnVtYmVy
LW9ubHktbnVtYmVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy90by1udW1iZXItb25seS1u
dW1iZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNz
LXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy90by1udW1iZXItb25seS1zdHJpbmctZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy90by1udW1iZXItb25seS1zdHJpbmctZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjEyNjk4ZTg4NjFlNzYwNDBlMzRlMWNjNjVj
NTk1NGI4NGEyY2RkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvdG8tbnVtYmVyLW9ubHktc3RyaW5nLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLUpTUmVncmVzcy90by1udW1iZXIt
b25seS1zdHJpbmcKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgbm8gZXhj
ZXB0aW9uIHRocm93bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENP
TVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvdG8tbnVtYmVyLW9u
bHktc3RyaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3RvLW51bWJlci1vbmx5LXN0
cmluZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NWMwODI2YWY3ZDk5ZmU0
NmJjNmQyZTE4NTQ0NmIxNmFlZWQ1NjAxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvdG8tbnVtYmVyLW9ubHktc3Ry
aW5nLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy90by1udW1iZXItb25seS1zdHJpbmcuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy90by1udW1iZXItc3RyaW5nLW51bWJlci1zdHJpbmctbnVtYmVyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvdG8tbnVtYmVyLXN0cmluZy1udW1iZXItc3RyaW5n
LW51bWJlci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJhZmQ3
OTAxYTNiNTAyNjg3MDUyYzk3MTVmNTU4NTk2NWY2Njg0MTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy90by1udW1i
ZXItc3RyaW5nLW51bWJlci1zdHJpbmctbnVtYmVyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDEwICswLDAgQEAKLUpTUmVncmVzcy90by1udW1iZXItc3RyaW5nLW51bWJlci1zdHJp
bmctbnVtYmVyCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2Vw
dGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01Q
TEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3RvLW51bWJlci1zdHJp
bmctbnVtYmVyLXN0cmluZy1udW1iZXIuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvdG8t
bnVtYmVyLXN0cmluZy1udW1iZXItc3RyaW5nLW51bWJlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwNGVmNTMwNDkyMDgwNjUwZDQ3OTM5NWM0YzllNDAwNDRjOTkzNzUzLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvdG8tbnVtYmVyLXN0cmluZy1udW1iZXItc3RyaW5nLW51bWJlci5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvdG8tbnVtYmVyLXN0cmluZy1udW1iZXItc3RyaW5nLW51bWJl
ci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9z
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>