<?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>217071</bug_id>
          
          <creation_ts>2020-09-28 17:25:03 -0700</creation_ts>
          <short_desc>Use JSC_DECLARE_JIT_OPERATION / JSC_DECLARE_CUSTOM_GETTER / JSC_DECLARE_CUSTOM_SETTER</short_desc>
          <delta_ts>2020-10-11 13:50:14 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=217585</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jsbell</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1692727</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-28 17:25:03 -0700</bug_when>
    <thetext>Use JSC_DECLARE_JIT_OPERATION / JSC_DECLARE_CUSTOM_GETTER / JSC_DECLARE_CUSTOM_SETTER</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692728</commentid>
    <comment_count>1</comment_count>
      <attachid>409931</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-28 17:32:44 -0700</bug_when>
    <thetext>Created attachment 409931
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692729</commentid>
    <comment_count>2</comment_count>
      <attachid>409931</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-09-28 17:34:57 -0700</bug_when>
    <thetext>Comment on attachment 409931
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692730</commentid>
    <comment_count>3</comment_count>
      <attachid>409931</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-09-28 17:35:05 -0700</bug_when>
    <thetext>Comment on attachment 409931
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692808</commentid>
    <comment_count>4</comment_count>
      <attachid>409957</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-28 19:56:00 -0700</bug_when>
    <thetext>Created attachment 409957
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692830</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-28 22:08:39 -0700</bug_when>
    <thetext>jsc tests are run locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692836</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-28 22:51:20 -0700</bug_when>
    <thetext>Committed r267727: &lt;https://trac.webkit.org/changeset/267727&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692837</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-28 22:52:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/69733531&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692862</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-29 01:50:53 -0700</bug_when>
    <thetext>Committed r267731: &lt;https://trac.webkit.org/changeset/267731&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692863</commentid>
    <comment_count>9</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-29 02:04:21 -0700</bug_when>
    <thetext>Committed r267732: &lt;https://trac.webkit.org/changeset/267732&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409931</attachid>
            <date>2020-09-28 17:32:44 -0700</date>
            <delta_ts>2020-09-28 17:34:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217071-20200928173242.patch</filename>
            <type>text/plain</type>
            <size>1147265</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
MDc4ZWRmNzEyZmRkMzdjZmVlM2JmODE4OTZmNTExZmY1N2I1MjYyLi4wYjgzZGRhNWQ4ZmJiODRh
MjNhMzQwZmYxYWUyZGJmMWY4YTVmZTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMC0wOS0yOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFVzZSBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OIC8gSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUiAvIEpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzA3MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyBob3cg
dG8gZGVmaW5lIEpJVF9PUEVSQVRJT05zIGluY2x1ZGluZyBjdXN0b20gZ2V0dGVycyBhbmQgc2V0
dGVycy4KKyAgICAgICAgV2UgaW50cm9kdWNlIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04gZXRj
LiB0byBkZWNsYXJlIGFuZCBkZWZpbmUgdGhlbS4gVGhpcyBpcyB1c2VmdWwKKyAgICAgICAgdG8g
cGVyZm9ybSBzb21lIGFkZGl0aW9uYWwgdGhpbmdzIChsaWtlLCBKSVQtY2FnaW5nIHJlZ2lzdGVy
aW5nKSBmb3IgZWFjaCBmdW5jdGlvbi4KKwogMjAyMC0wOS0yNiAgWXVzdWtlIFN1enVraSAgPHlz
dXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZvbGxvdy11cCBhZnRlciBy
MjY3MzczIHRvIHJlc29sdmUgcG9zdC1jb21taXQgcmV2aWV3IGNvbW1lbnRzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGYyNjAx
MmZhZmUwNGM2YzM5ZDVjMjljOWY4MWZmNDNiZTNhMDdhM2IuLjljNWUwMjAwNjJiYzMxZGU2OGRi
ZWY0YmRlMTJlMjgzMTAwYjJjNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjAtMDktMjggIFl1
c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTiAvIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIgLyBKU0NfREVDTEFS
RV9DVVNUT01fU0VUVEVSCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTcwNzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgdGhlIGZvbGxvd2luZyBtYWNyb3MuCisKKyAgICAgICAgICAgIDEuIEpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04KKyAgICAgICAgICAgIDIuIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTgorICAgICAgICAgICAgMy4gSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUgorICAgICAgICAg
ICAgNC4gSlNDX0RFRklORV9DVVNUT01fR0VUVEVSCisgICAgICAgICAgICA1LiBKU0NfREVDTEFS
RV9DVVNUT01fU0VUVEVSCisgICAgICAgICAgICA2LiBKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIK
KworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUNhbGxpbmdDb252ZW50aW9ucy5oOgorCiAyMDIwLTA5
LTI4ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBbUHJlZmVyZW5j
ZXNdIE1vdmUgR2VuZXJhdGVQcmVmZXJlbmNlcy5yYiBhbmQgeWFtbCBjb25maWd1cmF0aW9uIGZp
bGVzIHRvIFdURiB0byBiZSBzaGFyZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmZmNjNDIyYmM5N2JlMDEwMDQx
NGUzYjgzZGViZWRkMGIxNTYwY2YzLi5mZmM2ZjNiYWU2MjY3MzNmMWMwZGQ4MDI1MjcxODM2Zjk4
YWFmMjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDktMjggIFl1c3VrZSBT
dXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTiAvIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIgLyBKU0NfREVDTEFSRV9DVVNU
T01fU0VUVEVSCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTcwNzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBObyBiZWhhdmlvciBjaGFuZ2UuCisKIDIwMjAtMDktMjggIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIE91dC1vZi1iYW5kIFRleHRUcmFj
a3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwCmluZGV4IGIzYmUyZGMx
Y2Q1NzUyZTJiYmYyYjE1NjRiYjc4YmU5MjE5ODliNjkuLmQzNjk0ZDdkMWNlMjc3NTQ4NDllMTY5
YzdjM2Q1YTgwMzE2NTU4YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT1NSRXhpdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0
LmNwcApAQCAtMTQwLDcgKzE0MCw3IEBAIHZvaWQgT1NSRXhpdDo6ZW1pdFJlc3RvcmVBcmd1bWVu
dHMoQ0NhbGxIZWxwZXJzJiBqaXQsIFZNJiB2bSwgY29uc3QgT3BlcmFuZHM8VmFsCiAgICAgfQog
fQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGlsZU9TUkV4aXQoQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGlsZU9T
UkV4aXQsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gY2Fs
bEZyYW1lLT5kZXByZWNhdGVkVk0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC04NzgsNyArODc4LDcgQEAgdm9pZCBPU1JFeGl0Ojpjb21waWxlRXhpdChD
Q2FsbEhlbHBlcnMmIGppdCwgVk0mIHZtLCBjb25zdCBPU1JFeGl0JiBleGl0LCBjb25zdAogICAg
IGFkanVzdEFuZEp1bXBUb1RhcmdldCh2bSwgaml0LCBleGl0KTsKIH0KIAotdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkRlYnVnUHJpbnRTcGVjdWxhdGlvbkZhaWx1cmUoQ2FsbEZyYW1lKiBj
YWxsRnJhbWUsIHZvaWQqIGRlYnVnSW5mb1Jhdywgdm9pZCogc2NyYXRjaCkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25EZWJ1Z1ByaW50U3BlY3VsYXRpb25GYWlsdXJlLCB2b2lk
LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIHZvaWQqIGRlYnVnSW5mb1Jhdywgdm9pZCogc2NyYXRj
aCkpCiB7CiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKTsKICAgICBOYXRp
dmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09TUkV4aXQuaAppbmRleCA5ZTliY2VhNDgxYzFkNjg3Nzk3MmYyNTlkNjJjMWEy
MzAwYjJiMTYxLi5lNzE0MGEwN2NjZjk4ZDk3MGU1Y2ZmZGE1ZWZiNTE0MThhZDYwZmQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuaApAQCAtMTM4LDggKzEzOCw4IEBAIHN0
cnVjdCBPU1JFeGl0U3RhdGUgOiBSZWZDb3VudGVkPE9TUkV4aXRTdGF0ZT4gewogICAgIFByb2Zp
bGVyOjpPU1JFeGl0KiBwcm9maWxlckV4aXQgeyBudWxscHRyIH07CiB9OwogCi12b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uQ29tcGlsZU9TUkV4aXQoQ2FsbEZyYW1lKikgV1RGX0lOVEVSTkFM
Owotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlYnVnUHJpbnRTcGVjdWxhdGlvbkZhaWx1
cmUoQ2FsbEZyYW1lKiwgdm9pZCosIHZvaWQqKSBXVEZfSU5URVJOQUw7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBpbGVPU1JFeGl0LCB2b2lkLCAoQ2FsbEZyYW1lKikp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWJ1Z1ByaW50U3BlY3VsYXRp
b25GYWlsdXJlLCB2b2lkLCAoQ2FsbEZyYW1lKiwgdm9pZCosIHZvaWQqKSk7CiAKIC8vID09PSBP
U1JFeGl0ID09PQogLy8KQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uRGVidWdQcmludFNwZWN1bGF0aW9uRmFpbHVyZShDYWxsRnJhbWUqLCB2b2lkKiwgdm9p
ZAogc3RydWN0IE9TUkV4aXQgOiBwdWJsaWMgT1NSRXhpdEJhc2UgewogICAgIE9TUkV4aXQoRXhp
dEtpbmQsIEpTVmFsdWVTb3VyY2UsIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUsIFNwZWN1
bGF0aXZlSklUKiwgdW5zaWduZWQgc3RyZWFtSW5kZXgsIHVuc2lnbmVkIHJlY292ZXJ5SW5kZXgg
PSBVSU5UX01BWCk7CiAKLSAgICBmcmllbmQgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNv
bXBpbGVPU1JFeGl0KENhbGxGcmFtZSopOworICAgIGZyaWVuZCB2b2lkIEpJVF9PUEVSQVRJT05f
QVRUUklCVVRFIG9wZXJhdGlvbkNvbXBpbGVPU1JFeGl0KENhbGxGcmFtZSopOwogCiAgICAgQ29k
ZUxvY2F0aW9uTGFiZWw8SlNJbnRlcm5hbFB0clRhZz4gbV9wYXRjaGFibGVKdW1wTG9jYXRpb247
CiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPE9TUkV4aXRQdHJUYWc+IG1fY29kZTsKQEAgLTE3
MSw3ICsxNzEsNyBAQCBzdHJ1Y3QgT1NSRXhpdCA6IHB1YmxpYyBPU1JFeGl0QmFzZSB7CiBwcml2
YXRlOgogICAgIHN0YXRpYyB2b2lkIGNvbXBpbGVFeGl0KENDYWxsSGVscGVycyYsIFZNJiwgY29u
c3QgT1NSRXhpdCYsIGNvbnN0IE9wZXJhbmRzPFZhbHVlUmVjb3Zlcnk+JiwgU3BlY3VsYXRpb25S
ZWNvdmVyeSopOwogICAgIHN0YXRpYyB2b2lkIGVtaXRSZXN0b3JlQXJndW1lbnRzKENDYWxsSGVs
cGVycyYsIFZNJiwgY29uc3QgT3BlcmFuZHM8VmFsdWVSZWNvdmVyeT4mKTsKLSAgICBmcmllbmQg
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlYnVnUHJpbnRTcGVjdWxhdGlvbkZhaWx1cmUo
Q2FsbEZyYW1lKiwgdm9pZCosIHZvaWQqKTsKKyAgICBmcmllbmQgdm9pZCBKSVRfT1BFUkFUSU9O
X0FUVFJJQlVURSBvcGVyYXRpb25EZWJ1Z1ByaW50U3BlY3VsYXRpb25GYWlsdXJlKENhbGxGcmFt
ZSosIHZvaWQqLCB2b2lkKik7CiB9OwogCiBzdHJ1Y3QgU3BlY3VsYXRpb25GYWlsdXJlRGVidWdJ
bmZvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9u
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4
IDAxYzc2ODBmNTlhN2YyZmMyYTc0MjE3N2I4ZTZhZTkzODNkNDRkODYuLmM0YzRkYzRmMGM5NDRh
NzExMTM1NTA5ODgyNGViZjUxYzljNGRhNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPcGVyYXRpb25zLmNwcApAQCAtMjE5LDcgKzIxOSw3IEBAIEFMV0FZU19JTkxJTkUgc3Rh
dGljIEpTVmFsdWUgZ2V0QnlWYWxPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Vk0mIHZtCiAKIGV4dGVybiAiQyIgewogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblRvVGhpcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3ApCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9UaGlzLCBF
bmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIyOCw3
ICsyMjgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvVGhpcyhK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZAogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcCkudG9UaGlzKGdsb2JhbE9iamVjdCwgRUNN
QU1vZGU6OnNsb3BweSgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVG9UaGlzU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub1Ro
aXNTdHJpY3QsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtMjM3LDcgKzIzNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVG9UaGlzU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wKS50b1RoaXMoZ2xvYmFs
T2JqZWN0LCBFQ01BTW9kZTo6c3RyaWN0KCkpKTsKIH0KIAotSlNBcnJheSogSklUX09QRVJBVElP
TiBvcGVyYXRpb25PYmplY3RLZXlzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPYmplY3QpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uT2JqZWN0S2V5cywgSlNBcnJheSosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT2JqZWN0KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwpAQCAtMjUwLDcgKzI1MCw3IEBAIEpTQXJyYXkqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
T2JqZWN0S2V5cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkCiAgICAgcmV0
dXJuIG93blByb3BlcnR5S2V5cyhnbG9iYWxPYmplY3QsIG9iamVjdCwgUHJvcGVydHlOYW1lTW9k
ZTo6U3RyaW5ncywgRG9udEVudW1Qcm9wZXJ0aWVzTW9kZTo6RXhjbHVkZSwgQ2FjaGVkUHJvcGVy
dHlOYW1lc0tpbmQ6OktleXMpOwogfQogCi1KU0FycmF5KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bk9iamVjdEtleXNPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3Qq
IG9iamVjdCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RLZXlzT2Jq
ZWN0LCBKU0FycmF5KiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBv
YmplY3QpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNTgsNyArMjU4LDcg
QEAgSlNBcnJheSogSklUX09QRVJBVElPTiBvcGVyYXRpb25PYmplY3RLZXlzT2JqZWN0KEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEoKICAgICByZXR1cm4gb3duUHJvcGVydHlLZXlzKGds
b2JhbE9iamVjdCwgb2JqZWN0LCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBEb250RW51bVBy
b3BlcnRpZXNNb2RlOjpFeGNsdWRlLCBDYWNoZWRQcm9wZXJ0eU5hbWVzS2luZDo6S2V5cyk7CiB9
CiAKLUpTQXJyYXkqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT2JqZWN0R2V0T3duUHJvcGVydHlO
YW1lcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T2JqZWN0KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9iamVjdEdldE93blBy
b3BlcnR5TmFtZXMsIEpTQXJyYXkqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9iamVjdCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKQEAgLTI3MSw3ICsyNzEsNyBAQCBKU0FycmF5KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9i
amVjdEdldE93blByb3BlcnR5TmFtZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAgIHJldHVy
biBvd25Qcm9wZXJ0eUtleXMoZ2xvYmFsT2JqZWN0LCBvYmplY3QsIFByb3BlcnR5TmFtZU1vZGU6
OlN0cmluZ3MsIERvbnRFbnVtUHJvcGVydGllc01vZGU6OkluY2x1ZGUsIENhY2hlZFByb3BlcnR5
TmFtZXNLaW5kOjpHZXRPd25Qcm9wZXJ0eU5hbWVzKTsKIH0KIAotSlNBcnJheSogSklUX09QRVJB
VElPTiBvcGVyYXRpb25PYmplY3RHZXRPd25Qcm9wZXJ0eU5hbWVzT2JqZWN0KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uT2JqZWN0R2V0T3duUHJvcGVydHlOYW1lc09iamVjdCwgSlNBcnJheSos
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0KSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjc5LDcgKzI3OSw3IEBAIEpTQXJyYXkqIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uT2JqZWN0R2V0T3duUHJvcGVydHlOYW1lc09iamVjdChKU0ds
b2JhbE9iamVjdCoKICAgICByZXR1cm4gb3duUHJvcGVydHlLZXlzKGdsb2JhbE9iamVjdCwgb2Jq
ZWN0LCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBEb250RW51bVByb3BlcnRpZXNNb2RlOjpJ
bmNsdWRlLCBDYWNoZWRQcm9wZXJ0eU5hbWVzS2luZDo6R2V0T3duUHJvcGVydHlOYW1lcyk7CiB9
CiAKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25PYmplY3RDcmVhdGUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3RvdHlwZSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RDcmVhdGUsIEpTQ2VsbCosIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvdG90
eXBlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjk4LDcgKzI5OCw3IEBA
IEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25PYmplY3RDcmVhdGUoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBj
b25zdHJ1Y3RFbXB0eU9iamVjdCh2bSwgZ2xvYmFsT2JqZWN0LT5udWxsUHJvdG90eXBlT2JqZWN0
U3RydWN0dXJlKCkpKTsKIH0KIAotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9iamVj
dENyZWF0ZU9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogcHJv
dG90eXBlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9iamVjdENyZWF0ZU9i
amVjdCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBw
cm90b3R5cGUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMDYsNyArMzA2
LDcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9iamVjdENyZWF0ZU9iamVjdChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIHJldHVybiBjb25zdHJ1Y3RFbXB0eU9i
amVjdChnbG9iYWxPYmplY3QsIHByb3RvdHlwZSk7CiB9CiAKLUpTQ2VsbCogSklUX09QRVJBVElP
TiBvcGVyYXRpb25DcmVhdGVUaGlzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2Jq
ZWN0KiBjb25zdHJ1Y3RvciwgdWludDMyX3QgaW5saW5lQ2FwYWNpdHkpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlVGhpcywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBjb25zdHJ1Y3RvciwgdWludDMyX3QgaW5saW5lQ2Fw
YWNpdHkpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMzUsNyArMzM1LDcg
QEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNyZWF0ZVRoaXMoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QKICAgICByZXR1cm4gY29uc3RydWN0RW1wdHlPYmpl
Y3QoZ2xvYmFsT2JqZWN0KTsKIH0KIAotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNy
ZWF0ZVByb21pc2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGNvbnN0
cnVjdG9yKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVByb21pc2Us
IEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogY29uc3Ry
dWN0b3IpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zNDgsNyArMzQ4LDcg
QEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNyZWF0ZVByb21pc2UoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUs
IEpTUHJvbWlzZTo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUpKTsKIH0KIAotSlNDZWxsKiBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkNyZWF0ZUludGVybmFsUHJvbWlzZShKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU09iamVjdCogY29uc3RydWN0b3IpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ3JlYXRlSW50ZXJuYWxQcm9taXNlLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGNvbnN0cnVjdG9yKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwpAQCAtMzYxLDcgKzM2MSw3IEBAIEpTQ2VsbCogSklUX09QRVJBVElP
TiBvcGVyYXRpb25DcmVhdGVJbnRlcm5hbFByb21pc2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU0ludGVybmFsUHJvbWlzZTo6Y3Jl
YXRlKHZtLCBzdHJ1Y3R1cmUpKTsKIH0KIAotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkNyZWF0ZUdlbmVyYXRvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCog
Y29uc3RydWN0b3IpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlR2Vu
ZXJhdG9yLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3Qq
IGNvbnN0cnVjdG9yKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzcyLDcg
KzM3Miw3IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25DcmVhdGVHZW5lcmF0b3Io
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHNjb3BlLCBKU0dlbmVyYXRvcjo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUpKTsKIH0KIAotSlNDZWxs
KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNyZWF0ZUFzeW5jR2VuZXJhdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBjb25zdHJ1Y3RvcikKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVBc3luY0dlbmVyYXRvciwgSlNDZWxsKiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBjb25zdHJ1Y3RvcikpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTM4Myw3ICszODMsNyBAQCBKU0NlbGwqIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uQ3JlYXRlQXN5bmNHZW5lcmF0b3IoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNBc3luY0dlbmVyYXRv
cjo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUpKTsKIH0KIAotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkNhbGxPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVGFyZ2V0KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNhbGxPYmplY3RDb25zdHJ1Y3RvciwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRUYXJnZXQpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zOTcsNyArMzk3LDcgQEAgSlNDZWxsKiBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkNhbGxPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWMKICAgICByZXR1cm4gdmFsdWUudG9PYmplY3QoZ2xvYmFsT2JqZWN0KTsKIH0KIAot
SlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRUYXJnZXQsIFVuaXF1ZWRTdHJpbmdJ
bXBsKiBlcnJvck1lc3NhZ2UpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9P
YmplY3QsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVGFyZ2V0LCBVbmlxdWVkU3RyaW5nSW1wbCogZXJyb3JNZXNzYWdlKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtNDE3LDcgKzQxNyw3IEBAIEpTQ2VsbCog
SklUX09QRVJBVElPTiBvcGVyYXRpb25Ub09iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCB2YWx1ZS50b09i
amVjdChnbG9iYWxPYmplY3QpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25WYWx1ZU1vZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlTW9kLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC00
MjYsNyArNDI2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1
ZU1vZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmMKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzUmVtYWluZGVyKGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRPcDEpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMikpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25JbmMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkluYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3ApKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC00MzUsNyArNDM1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25JbmMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEoKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzSW5jKGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRPcCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25E
ZWMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlYywgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ap
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC00NDQsNyArNDQ0LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWMoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRW5jb2RlZEoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRGVjKGds
b2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcCkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUJpdE5vdChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3ApCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uVmFsdWVCaXROb3QsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtNDUzLDcgKzQ1Myw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVCaXROb3QoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQml0d2lzZU5vdChnbG9iYWxP
YmplY3QsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3ApKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVCaXRBbmQoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZUJpdEFuZCwgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwpAQCAtNDYyLDcgKzQ2Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uVmFsdWVCaXRBbmQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQml0d2lzZUFuZChnbG9iYWxPYmplY3Qs
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVCaXRP
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblZhbHVlQml0T3IsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTQ3MSw3ICs0NzEsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQml0T3IoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNC
aXR3aXNlT3IoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSksIEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkT3AyKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblZhbHVlQml0WG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVCaXRYb3IsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKQEAgLTQ4MCw3ICs0ODAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblZhbHVlQml0WG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc0JpdHdpc2VYb3IoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZE9wMSksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQml0TFNoaWZ0KEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
VmFsdWVCaXRMU2hpZnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTQ4OSw3ICs0ODksNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQml0TFNoaWZ0KEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNMU2hp
ZnQoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSksIEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkT3AyKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblZhbHVlQml0UlNoaWZ0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVCaXRSU2hpZnQsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKQEAgLTQ5OCw3ICs0OTgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblZhbHVlQml0UlNoaWZ0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNSU2hpZnQoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZE9wMSksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQml0VVJTaGlmdChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZh
bHVlQml0VVJTaGlmdCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ay
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtNTA3LDcgKzUwNyw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVCaXRVUlNoaWZ0KEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VSU2hp
ZnQoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSksIEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkT3AyKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblZhbHVlQWRkTm90TnVtYmVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVBZGROb3ROdW1iZXIsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTUxOSw3ICs1MTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblZhbHVlQWRkTm90TnVtYmVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNBZGROb25OdW1iZXIoZ2xvYmFsT2JqZWN0LCBv
cDEsIG9wMikpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZh
bHVlRGl2KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uVmFsdWVEaXYsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTUyOCw3ICs1Mjgs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlRGl2KEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNEaXYoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSksIEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkT3AyKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblZhbHVlUG93KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVQb3csIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTUzNyw3ICs1MzcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZh
bHVlUG93KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuYwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNQb3coZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9w
MSksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKSkpOwogfQogCi1kb3VibGUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25Bcml0aEFicyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AxKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkFyaXRoQWJzLCBkb3VibGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AxKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAt
NTUwLDcgKzU1MCw3IEBAIGRvdWJsZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFyaXRoQWJzKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhCiAgICAgcmV0dXJuIGZhYnMo
YSk7CiB9CiAKLVVDUFVTdHJpY3RJbnQzMiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFyaXRoQ2x6
MzIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Bcml0aENsejMyLCBVQ1BVU3Ry
aWN0SW50MzIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AxKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtNTYzLDcgKzU2
Myw3IEBAIFVDUFVTdHJpY3RJbnQzMiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFyaXRoQ2x6MzIo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50
MzIoY2x6KHZhbHVlKSk7CiB9CiAKLWRvdWJsZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFyaXRo
RlJvdW5kKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDEpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJpdGhGUm91bmQsIGRv
dWJsZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDEpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC01NzcsNyArNTc3LDcg
QEAgZG91YmxlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJpdGhGUm91bmQoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEoKIH0KIAogI2RlZmluZSBERkdfQVJJVEhfVU5BUlko
Y2FwaXRhbGl6ZWROYW1lLCBsb3dlck5hbWUpIFwKLWRvdWJsZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkFyaXRoIyNjYXBpdGFsaXplZE5hbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSkgXAorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkFyaXRoIyNjYXBpdGFsaXplZE5hbWUsIGRvdWJsZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEpKSBcCiB7IFwKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7IFwKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7IFwKQEAgLTU5MSw3ICs1OTEsNyBAQCBkb3VibGUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25Bcml0aCMjY2FwaXRhbGl6ZWROYW1lKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplYwogICAgIEZPUl9FQUNIX0RGR19BUklUSF9VTkFSWV9PUChERkdfQVJJVEhfVU5B
UlkpCiAjdW5kZWYgREZHX0FSSVRIX1VOQVJZCiAKLWRvdWJsZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkFyaXRoU3FydChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AxKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFyaXRoU3Fy
dCwgZG91YmxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTYwNCw3ICs2
MDQsNyBAQCBkb3VibGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Bcml0aFNxcnQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVgogICAgIHJldHVybiBzcXJ0KGEpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFyaXRoUm91bmQoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50KQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFyaXRoUm91bmQsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEFyZ3VtZW50KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtNjE3LDcgKzYx
Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJpdGhSb3VuZChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc051bWJlcihqc1JvdW5kKHZhbHVlT2ZBcmd1bWVudCkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Bcml0aEZsb29yKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudCkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25Bcml0aEZsb29yLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudCkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTYzMCw3ICs2MzAsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFyaXRoRmxvb3IoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZmxv
b3IodmFsdWVPZkFyZ3VtZW50KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkFyaXRoQ2VpbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQXJndW1lbnQpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQXJpdGhDZWlsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudCkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTY0Myw3ICs2NDMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkFyaXRoQ2VpbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbgog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoY2VpbCh2YWx1ZU9mQXJndW1lbnQp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJpdGhUcnVu
YyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJn
dW1lbnQpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJpdGhUcnVuYywgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkQXJndW1lbnQpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC02
NTYsNyArNjU2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Bcml0
aFRydW5jKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEUKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVtYmVyKHRydW5jYXRlZFZhbHVlT2ZBcmd1bWVudCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsQ2VsbChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQ
cm9wZXJ0eSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbENlbGws
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBi
YXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHkpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC02OTYsNyArNjk2LDcgQEAgQUxXQVlTX0lOTElORSBFbmNvZGVkSlNW
YWx1ZSBnZXRCeVZhbENlbGxJbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHYK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoYmFzZSkuZ2V0KGdsb2JhbE9iamVj
dCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGluZGV4KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsT2JqZWN0SW50KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBpbnQzMl90IGluZGV4KQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsT2JqZWN0SW50LCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBpbnQzMl90IGlu
ZGV4KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtNzA1LDcgKzcwNSw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxPYmplY3RJbnQo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgcmV0dXJuIGdldEJ5VmFsQ2VsbEludChnbG9i
YWxPYmplY3QsIHZtLCBiYXNlLCBpbmRleCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uR2V0QnlWYWxTdHJpbmdJbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNTdHJpbmcqIGJhc2UsIGludDMyX3QgaW5kZXgpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uR2V0QnlWYWxTdHJpbmdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIGJhc2UsIGludDMyX3QgaW5kZXgpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC03MTQsNyArNzE0LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbFN0cmluZ0ludChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2IKICAgICByZXR1cm4gZ2V0QnlWYWxDZWxsSW50KGdsb2JhbE9iamVj
dCwgdm0sIGJhc2UsIGluZGV4KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25HZXRCeVZhbE9iamVjdFN0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0NlbGwqIGJhc2UsIEpTQ2VsbCogc3RyaW5nKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkdldEJ5VmFsT2JqZWN0U3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogYmFzZSwgSlNDZWxsKiBzdHJpbmcpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC03MjgsNyArNzI4LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbE9iamVjdFN0cmluZyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVu
Y29kZShnZXRCeVZhbE9iamVjdChnbG9iYWxPYmplY3QsIHZtLCBhc09iamVjdChiYXNlKSwgcHJv
cGVydHlOYW1lKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkdldEJ5VmFsT2JqZWN0U3ltYm9sKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2Vs
bCogYmFzZSwgSlNDZWxsKiBzeW1ib2wpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uR2V0QnlWYWxPYmplY3RTeW1ib2wsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlLCBKU0NlbGwqIHN5bWJvbCkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTczOCw3ICs3MzgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsT2JqZWN0U3ltYm9sKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2V0QnlWYWxPYmplY3QoZ2xvYmFs
T2JqZWN0LCB2bSwgYXNPYmplY3QoYmFzZSksIHByb3BlcnR5TmFtZSkpOwogfQogCi12b2lkIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxTdHJpY3QoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtNzQ3LDcgKzc0Nyw3IEBAIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25QdXRCeVZhbFN0cmljdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkCiAgICAgcHV0QnlWYWxJbnRlcm5hbDx0cnVlLCBmYWxzZT4oZ2xvYmFsT2JqZWN0
LCB2bSwgZW5jb2RlZEJhc2UsIGVuY29kZWRQcm9wZXJ0eSwgZW5jb2RlZFZhbHVlKTsKIH0KIAot
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsTm9uU3RyaWN0KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbE5vblN0cmljdCwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTc1Niw3ICs3NTYsNyBAQCB2
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxOb25TdHJpY3QoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jbwogICAgIHB1dEJ5VmFsSW50ZXJuYWw8ZmFsc2UsIGZhbHNl
PihnbG9iYWxPYmplY3QsIHZtLCBlbmNvZGVkQmFzZSwgZW5jb2RlZFByb3BlcnR5LCBlbmNvZGVk
VmFsdWUpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxDZWxsU3Ry
aWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxsU3RyaWN0LCB2b2lkLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTc2NSw3ICs3NjUsNyBAQCB2b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uUHV0QnlWYWxDZWxsU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQwogICAgIHB1dEJ5VmFsSW50ZXJuYWw8dHJ1ZSwgZmFsc2U+KGdsb2JhbE9iamVj
dCwgdm0sIEpTVmFsdWU6OmVuY29kZShjZWxsKSwgZW5jb2RlZFByb3BlcnR5LCBlbmNvZGVkVmFs
dWUpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxDZWxsTm9uU3Ry
aWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxsTm9uU3RyaWN0LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTc3NCw3ICs3NzQsNyBAQCB2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxDZWxsTm9uU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsCiAgICAgcHV0QnlWYWxJbnRlcm5hbDxmYWxzZSwgZmFsc2U+KGdsb2JhbE9i
amVjdCwgdm0sIEpTVmFsdWU6OmVuY29kZShjZWxsKSwgZW5jb2RlZFByb3BlcnR5LCBlbmNvZGVk
VmFsdWUpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxDZWxsU3Ry
aW5nU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCwgSlND
ZWxsKiBzdHJpbmcsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxTdHJpbmdTdHJpY3QsIHZvaWQsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIEpTQ2VsbCogc3RyaW5nLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC03ODMsNyArNzgzLDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5
VmFsQ2VsbFN0cmluZ1N0cmljdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICBwdXRC
eVZhbENlbGxTdHJpbmdJbnRlcm5hbDx0cnVlLCBmYWxzZT4oZ2xvYmFsT2JqZWN0LCB2bSwgY2Vs
bCwgYXNTdHJpbmcoc3RyaW5nKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwogfQog
Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxDZWxsU3RyaW5nTm9uU3RyaWN0
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCwgSlNDZWxsKiBzdHJp
bmcsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QdXRCeVZhbENlbGxTdHJpbmdOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIEpTQ2VsbCogc3RyaW5nLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBA
IC03OTIsNyArNzkyLDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsQ2Vs
bFN0cmluZ05vblN0cmljdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICBwdXRCeVZhbENl
bGxTdHJpbmdJbnRlcm5hbDxmYWxzZSwgZmFsc2U+KGdsb2JhbE9iamVjdCwgdm0sIGNlbGwsIGFz
U3RyaW5nKHN0cmluZyksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN5bWJvbFN0cmljdChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIEpTQ2VsbCogc3ltYm9sLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUHV0QnlWYWxDZWxsU3ltYm9sU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDZWxsKiBjZWxsLCBKU0NlbGwqIHN5bWJvbCwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtODAyLDcgKzgw
Miw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbENlbGxTeW1ib2xTdHJp
Y3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgcHV0QnlWYWxDZWxsSW50ZXJuYWw8
dHJ1ZSwgZmFsc2U+KGdsb2JhbE9iamVjdCwgdm0sIGNlbGwsIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUHV0QnlWYWxDZWxsU3ltYm9sTm9uU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQ2VsbCogY2VsbCwgSlNDZWxsKiBzeW1ib2wsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxTeW1i
b2xOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwq
IGNlbGwsIEpTQ2VsbCogc3ltYm9sLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC04MTIsNyArODEyLDcgQEAgdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN5bWJvbE5vblN0cmljdChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2IKICAgICBwdXRCeVZhbENlbGxJbnRlcm5hbDxmYWxzZSwgZmFsc2U+KGds
b2JhbE9iamVjdCwgdm0sIGNlbGwsIHByb3BlcnR5TmFtZSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRWYWx1ZSkpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxCZXlv
bmRBcnJheUJvdW5kc1N0cmljdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVj
dCogb2JqZWN0LCBpbnQzMl90IGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5k
c1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBv
YmplY3QsIGludDMyX3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTgyOCw3ICs4MjgsNyBAQCB2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc1N0cmljdChKU0dsb2Jh
bE9iamVjdCogZ2xvYgogICAgICAgICBvYmplY3QsIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6
ZnJvbSh2bSwgaW5kZXgpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgc2xvdCk7CiB9
CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRz
Tm9uU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3Qs
IGludDMyX3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwg
aW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwpAQCAtODQ0LDcgKzg0NCw3IEBAIHZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0KEpTR2xvYmFsT2Jq
ZWN0KiBnCiAgICAgICAgIG9iamVjdCwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tKHZt
LCBpbmRleCksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpLCBzbG90KTsKIH0KIAotdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsQmV5b25kQXJyYXlCb3VuZHNT
dHJpY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwgaW50
MzJfdCBpbmRleCwgZG91YmxlIHZhbHVlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dERvdWJsZUJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0LCBpbnQzMl90IGluZGV4LCBk
b3VibGUgdmFsdWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC04NjIsNyAr
ODYyLDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsQmV5b25k
QXJyYXlCb3VuZHNTdHJpY3QoSlNHbG9iYWxPYmplY3QKICAgICAgICAgb2JqZWN0LCBnbG9iYWxP
YmplY3QsIElkZW50aWZpZXI6OmZyb20odm0sIGluZGV4KSwganNWYWx1ZSwgc2xvdCk7CiB9CiAK
LXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91
bmRzTm9uU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmpl
Y3QsIGludDMyX3QgaW5kZXgsIGRvdWJsZSB2YWx1ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwgaW50MzJf
dCBpbmRleCwgZG91YmxlIHZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpA
QCAtODgwLDcgKzg4MCw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXREb3VibGVC
eVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0KEpTR2xvYmFsT2JqCiAgICAgICAgIG9iamVj
dCwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tKHZtLCBpbmRleCksIGpzVmFsdWUsIHNs
b3QpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0RG91YmxlQnlWYWxEaXJl
Y3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U09iamVjdCogb2JqZWN0LCBpbnQzMl90IGluZGV4LCBkb3VibGUgdmFsdWUpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RG91YmxlQnlWYWxEaXJlY3RCZXlvbmRBcnJheUJv
dW5kc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0
KiBvYmplY3QsIGludDMyX3QgaW5kZXgsIGRvdWJsZSB2YWx1ZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTg5Nyw3ICs4OTcsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHV0RG91YmxlQnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdChKU0dsb2Jh
bAogICAgIENvbW1vblNsb3dQYXRoczo6cHV0RGlyZWN0V2l0aFJlaWZ5KHZtLCBnbG9iYWxPYmpl
Y3QsIG9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbSh2bSwgaW5kZXgpLCBqc1ZhbHVlLCBzbG90KTsK
IH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsRGlyZWN0QmV5
b25kQXJyYXlCb3VuZHNOb25TdHJpY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNP
YmplY3QqIG9iamVjdCwgaW50MzJfdCBpbmRleCwgZG91YmxlIHZhbHVlKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3Vu
ZHNOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVj
dCogb2JqZWN0LCBpbnQzMl90IGluZGV4LCBkb3VibGUgdmFsdWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CkBAIC05MTQsNyArOTE0LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblB1dERvdWJsZUJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QoSlNH
bG8KICAgICBDb21tb25TbG93UGF0aHM6OnB1dERpcmVjdFdpdGhSZWlmeSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBvYmplY3QsIElkZW50aWZpZXI6OmZyb20odm0sIGluZGV4KSwganNWYWx1ZSwgc2xvdCk7
CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbERpcmVjdFN0cmljdChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RTdHJp
Y3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC05MjMs
NyArOTIzLDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0U3Ry
aWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEUKICAgICBwdXRCeVZhbEludGVybmFs
PHRydWUsIHRydWU+KGdsb2JhbE9iamVjdCwgdm0sIGVuY29kZWRCYXNlLCBlbmNvZGVkUHJvcGVy
dHksIGVuY29kZWRWYWx1ZSk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRC
eVZhbERpcmVjdE5vblN0cmljdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUHV0QnlWYWxEaXJlY3ROb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CkBAIC05MzIsNyArOTMyLDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblB1dEJ5VmFsRGlyZWN0Tm9uU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QKICAgICBwdXRCeVZhbEludGVybmFsPGZhbHNlLCB0cnVlPihnbG9iYWxPYmplY3QsIHZtLCBl
bmNvZGVkQmFzZSwgZW5jb2RlZFByb3BlcnR5LCBlbmNvZGVkVmFsdWUpOwogfQogCi12b2lkIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3RyaWN0KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFBy
b3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
UHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTk0MSw3ICs5NDEsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
YwogICAgIHB1dEJ5VmFsSW50ZXJuYWw8dHJ1ZSwgdHJ1ZT4oZ2xvYmFsT2JqZWN0LCB2bSwgSlNW
YWx1ZTo6ZW5jb2RlKGNlbGwpLCBlbmNvZGVkUHJvcGVydHksIGVuY29kZWRWYWx1ZSk7CiB9CiAK
LXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxOb25TdHJpY3Qo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxOb25TdHJpY3QsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtOTUwLDcgKzk1MCw3IEBAIHZvaWQgSklU
X09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxOb25TdHJpY3QoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iCiAgICAgcHV0QnlWYWxJbnRlcm5hbDxmYWxzZSwgdHJ1ZT4oZ2xvYmFs
T2JqZWN0LCB2bSwgSlNWYWx1ZTo6ZW5jb2RlKGNlbGwpLCBlbmNvZGVkUHJvcGVydHksIGVuY29k
ZWRWYWx1ZSk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbERpcmVj
dENlbGxTdHJpbmdTdHJpY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBj
ZWxsLCBKU0NlbGwqIHN0cmluZywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmluZ1N0cmlj
dCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCwgSlND
ZWxsKiBzdHJpbmcsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTk1OSw3ICs5NTksNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3RyaW5nU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYQogICAgIHB1dEJ5VmFsQ2VsbFN0cmluZ0ludGVybmFsPHRydWUsIHRydWU+KGdsb2JhbE9i
amVjdCwgdm0sIGNlbGwsIGFzU3RyaW5nKHN0cmluZyksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
VmFsdWUpKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0
Q2VsbFN0cmluZ05vblN0cmljdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwq
IGNlbGwsIEpTQ2VsbCogc3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3RyaW5nTm9u
U3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxs
LCBKU0NlbGwqIHN0cmluZywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtOTY4LDcgKzk2OCw3IEBAIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxTdHJpbmdOb25TdHJpY3QoSlNHbG9iYWxP
YmplY3QqIGdsCiAgICAgcHV0QnlWYWxDZWxsU3RyaW5nSW50ZXJuYWw8ZmFsc2UsIHRydWU+KGds
b2JhbE9iamVjdCwgdm0sIGNlbGwsIGFzU3RyaW5nKHN0cmluZyksIEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkVmFsdWUpKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFs
RGlyZWN0Q2VsbFN5bWJvbFN0cmljdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0Nl
bGwqIGNlbGwsIEpTQ2VsbCogc3ltYm9sLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3ltYm9s
U3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxs
LCBKU0NlbGwqIHN5bWJvbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtOTc4LDcgKzk3OCw3IEBAIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxTeW1ib2xTdHJpY3QoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhCiAgICAgcHV0QnlWYWxDZWxsSW50ZXJuYWw8dHJ1ZSwgdHJ1ZT4oZ2xvYmFsT2Jq
ZWN0LCB2bSwgY2VsbCwgcHJvcGVydHlOYW1lLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVl
KSk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxT
eW1ib2xOb25TdHJpY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxs
LCBKU0NlbGwqIHN5bWJvbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN5bWJvbE5vblN0cmlj
dCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCwgSlND
ZWxsKiBzeW1ib2wsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTk4OCw3ICs5ODgsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3ltYm9sTm9uU3RyaWN0KEpTR2xvYmFsT2JqZWN0
KiBnbAogICAgIHB1dEJ5VmFsQ2VsbEludGVybmFsPGZhbHNlLCB0cnVlPihnbG9iYWxPYmplY3Qs
IHZtLCBjZWxsLCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsK
IH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJy
YXlCb3VuZHNTdHJpY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9i
amVjdCwgaW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3Vu
ZHNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCog
b2JqZWN0LCBpbnQzMl90IGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xMDAyLDcgKzEwMDIsNyBAQCB2b2lkIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmlj
dChKU0dsb2JhbE9iamVjdAogICAgIENvbW1vblNsb3dQYXRoczo6cHV0RGlyZWN0V2l0aFJlaWZ5
KHZtLCBnbG9iYWxPYmplY3QsIG9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbSh2bSwgaW5kZXgpLCBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgc2xvdCk7CiB9CiAKLXZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIGludDMyX3QgaW5k
ZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwgaW50MzJf
dCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwpAQCAtMTAxNyw3ICsxMDE3LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QoSlNHbG9iYWxP
YmoKICAgICBDb21tb25TbG93UGF0aHM6OnB1dERpcmVjdFdpdGhSZWlmeSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBvYmplY3QsIElkZW50aWZpZXI6OmZyb20odm0sIGluZGV4KSwgSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRWYWx1ZSksIHNsb3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkFycmF5UHVzaChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEpTQXJyYXkqIGFycmF5KQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEpTQXJyYXkqIGFy
cmF5KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTAyNyw3ICsxMDI3LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25BcnJheVB1c2goSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW4KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVtYmVyKGFycmF5LT5sZW5ndGgoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkFycmF5UHVzaERvdWJsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBkb3VibGUgdmFsdWUsIEpTQXJyYXkqIGFycmF5KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkFycmF5UHVzaERvdWJsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBkb3VibGUgdmFsdWUsIEpTQXJyYXkqIGFycmF5KSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTAzNyw3ICsxMDM3LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25BcnJheVB1c2hEb3VibGUoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGFycmF5LT5s
ZW5ndGgoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFy
cmF5UHVzaE11bHRpcGxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQXJyYXkqIGFy
cmF5LCB2b2lkKiBidWZmZXIsIGludDMyX3QgZWxlbWVudENvdW50KQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaE11bHRpcGxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQXJyYXkqIGFycmF5LCB2b2lkKiBidWZmZXIs
IGludDMyX3QgZWxlbWVudENvdW50KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpA
QCAtMTA2Miw3ICsxMDYyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25BcnJheVB1c2hNdWx0aXBsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGFycmF5LT5sZW5ndGgoKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFycmF5UHVzaERvdWJsZU11bHRpcGxlKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQXJyYXkqIGFycmF5LCB2b2lkKiBidWZmZXIs
IGludDMyX3QgZWxlbWVudENvdW50KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkFycmF5UHVzaERvdWJsZU11bHRpcGxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTQXJyYXkqIGFycmF5LCB2b2lkKiBidWZmZXIsIGludDMyX3QgZWxl
bWVudENvdW50KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTA4Myw3ICsx
MDgzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25BcnJheVB1c2hE
b3VibGVNdWx0aXBsZShKU0dsb2JhbE9iamVjdCogZ2wKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzTnVtYmVyKGFycmF5LT5sZW5ndGgoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkFycmF5UG9wKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQXJyYXkqIGFycmF5KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5
UG9wLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQXJy
YXkqIGFycmF5KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTA5Miw3ICsx
MDkyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25BcnJheVBvcChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0EKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGFycmF5LT5wb3AoZ2xvYmFsT2JqZWN0KSk7CiB9CiAgICAgICAgIAotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25BcnJheVBvcEFuZFJlY292ZXJMZW5ndGgoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNBcnJheSogYXJyYXkpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQXJyYXlQb3BBbmRSZWNvdmVyTGVuZ3RoLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQXJyYXkqIGFycmF5KSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTEwMyw3ICsxMTAzLDcgQEAgRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25BcnJheVBvcEFuZFJlY292ZXJMZW5ndGgoSlNH
bG9iYWxPYmplY3QqIGcKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFycmF5LT5wb3AoZ2xv
YmFsT2JqZWN0KSk7CiB9CiAgICAgICAgIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25SZWdFeHBFeGVjU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJl
Z0V4cE9iamVjdCogcmVnRXhwT2JqZWN0LCBKU1N0cmluZyogYXJndW1lbnQpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwRXhlY1N0cmluZywgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWdFeHBPYmplY3QqIHJlZ0V4cE9iamVj
dCwgSlNTdHJpbmcqIGFyZ3VtZW50KSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNh
bXBsZXJTY29wZShmYWxzZSk7CiAgICAgCkBAIC0xMTE0LDcgKzExMTQsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cEV4ZWNTdHJpbmcoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iagogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVnRXhwT2JqZWN0LT5l
eGVjSW5saW5lKGdsb2JhbE9iamVjdCwgYXJndW1lbnQpKTsKIH0KICAgICAgICAgCi1FbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cEV4ZWMoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgUmVnRXhwT2JqZWN0KiByZWdFeHBPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRBcmd1bWVudCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdF
eHBFeGVjLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJl
Z0V4cE9iamVjdCogcmVnRXhwT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnQp
KQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAg
ICAKQEAgLTExMzIsNyArMTEzMiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUmVnRXhwRXhlYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUocmVnRXhwT2JqZWN0LT5leGVj
SW5saW5lKGdsb2JhbE9iamVjdCwgaW5wdXQpKSk7CiB9CiAgICAgICAgIAotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBFeGVjR2VuZXJpYyhKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEFyZ3VtZW50KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJl
Z0V4cEV4ZWNHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QXJndW1lbnQpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZh
bHNlKTsKICAgICAKQEAgLTExNTUsNyArMTE1NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uUmVnRXhwRXhlY0dlbmVyaWMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUocmVnZXhwLT5l
eGVjKGdsb2JhbE9iamVjdCwgaW5wdXQpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uUmVnRXhwRXhlY05vbkdsb2JhbE9yU3RpY2t5KEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFJlZ0V4cCogcmVnRXhwLCBKU1N0cmluZyogc3RyaW5nKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cEV4ZWNOb25HbG9iYWxPclN0aWNreSwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWdFeHAqIHJl
Z0V4cCwgSlNTdHJpbmcqIHN0cmluZykpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJT
YW1wbGVyU2NvcGUoZmFsc2UpOwogCkBAIC0xMTc5LDcgKzExNzksNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cEV4ZWNOb25HbG9iYWxPclN0aWNreShKU0ds
b2JhbE9iamVjdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXJyYXkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cE1hdGNoRmFzdFN0cmluZyhK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWdFeHBPYmplY3QqIHJlZ0V4cE9iamVjdCwg
SlNTdHJpbmcqIGFyZ3VtZW50KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJl
Z0V4cE1hdGNoRmFzdFN0cmluZywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBSZWdFeHBPYmplY3QqIHJlZ0V4cE9iamVjdCwgSlNTdHJpbmcqIGFyZ3VtZW50
KSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAK
QEAgLTExOTIsNyArMTE5Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUmVnRXhwTWF0Y2hGYXN0U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShyZWdFeHBPYmplY3QtPm1hdGNoR2xvYmFsKGdsb2JhbE9iamVjdCwg
YXJndW1lbnQpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25S
ZWdFeHBNYXRjaEZhc3RHbG9iYWxTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
UmVnRXhwKiByZWdFeHAsIEpTU3RyaW5nKiBzdHJpbmcpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uUmVnRXhwTWF0Y2hGYXN0R2xvYmFsU3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZ0V4cCogcmVnRXhwLCBKU1N0cmluZyog
c3RyaW5nKSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxz
ZSk7CiAKQEAgLTEyMjMsNyArMTIyMyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUmVnRXhwTWF0Y2hGYXN0R2xvYmFsU3RyaW5nKEpTR2xvYmFsT2JqZWN0CiAgICAg
ICAgIH0pKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUGFy
c2VJbnROb1JhZGl4R2VuZXJpYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB2YWx1ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QYXJzZUlu
dE5vUmFkaXhHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwpAQCAtMTIzNSw3ICsxMjM1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25QYXJzZUludE5vUmFkaXhHZW5lcmljKEpTR2xvYmFsT2JqZWN0KiBnbG8KICAgICB9
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25QYXJzZUludFN0
cmluZ05vUmFkaXgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIHN0cmlu
ZykKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QYXJzZUludFN0cmluZ05vUmFk
aXgsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJp
bmcqIHN0cmluZykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTEyNDksNyAr
MTI0OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUGFyc2VJbnRT
dHJpbmdOb1JhZGl4KEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAgICAgcmV0dXJuIHBhcnNlSW50UmVz
dWx0KHBhcnNlSW50KHZpZXdXaXRoU3RyaW5nLnZpZXcsIDApKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25QYXJzZUludFN0cmluZyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1N0cmluZyogc3RyaW5nLCBpbnQzMl90IHJhZGl4KQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNlSW50U3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBzdHJpbmcsIGludDMyX3Qg
cmFkaXgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xMjYyLDcgKzEyNjIs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblBhcnNlSW50U3RyaW5n
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIHJldHVybiBwYXJzZUludFJlc3VsdChw
YXJzZUludCh2aWV3V2l0aFN0cmluZy52aWV3LCByYWRpeCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblBhcnNlSW50R2VuZXJpYyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgaW50MzJfdCByYWRpeCkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QYXJzZUludEdlbmVyaWMsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdmFsdWUs
IGludDMyX3QgcmFkaXgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xMjcz
LDcgKzEyNzMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblBhcnNl
SW50R2VuZXJpYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogICAgIH0pOwogfQogICAgICAg
ICAKLXNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cFRlc3RTdHJpbmcoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVnRXhwT2JqZWN0KiByZWdFeHBPYmplY3QsIEpTU3Ry
aW5nKiBpbnB1dCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdFeHBUZXN0
U3RyaW5nLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWdFeHBPYmpl
Y3QqIHJlZ0V4cE9iamVjdCwgSlNTdHJpbmcqIGlucHV0KSkKIHsKICAgICBTdXBlclNhbXBsZXJT
Y29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgCkBAIC0xMjg0LDcgKzEyODQsNyBA
QCBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBUZXN0U3RyaW5nKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZwogICAgIHJldHVybiByZWdFeHBPYmplY3QtPnRlc3RJ
bmxpbmUoZ2xvYmFsT2JqZWN0LCBpbnB1dCk7CiB9CiAKLXNpemVfdCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblJlZ0V4cFRlc3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVnRXhwT2Jq
ZWN0KiByZWdFeHBPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudCkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdFeHBUZXN0LCBzaXplX3QsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWdFeHBPYmplY3QqIHJlZ0V4cE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50KSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBl
clNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgCkBAIC0xMzAwLDcgKzEzMDAsNyBAQCBzaXplX3Qg
SklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBUZXN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFJlZ0V4cE9iagogICAgIHJldHVybiByZWdFeHBPYmplY3QtPnRlc3RJbmxpbmUoZ2xv
YmFsT2JqZWN0LCBpbnB1dCk7CiB9CiAKLXNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJl
Z0V4cFRlc3RHZW5lcmljKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnQpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwVGVzdEdlbmVyaWMsIHNpemVfdCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnQpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3Bl
IHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAKQEAgLTEzMjUsNyArMTMyNSw3IEBAIHNp
emVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cFRlc3RHZW5lcmljKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVuCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCByZWdl
eHAtPnRlc3QoZ2xvYmFsT2JqZWN0LCBpbnB1dCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblN1YkhlYXBCaWdJbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblN1YkhlYXBCaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwpAQCAtMTMzNyw3ICsxMzM3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25TdWJIZWFwQmlnSW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQmlnSW50OjpzdWIoZ2xvYmFsT2Jq
ZWN0LCBsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5kKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uQml0Tm90SGVhcEJpZ0ludChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU0NlbGwqIG9wMSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25CaXROb3RIZWFwQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQ2VsbCogb3AxKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpA
QCAtMTM0OCw3ICsxMzQ4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25CaXROb3RIZWFwQmlnSW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKEpTQmlnSW50OjpiaXR3aXNlTm90KGdsb2JhbE9iamVjdCwgb3BlcmFu
ZCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk11bEhlYXBC
aWdJbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvcDEsIEpTQ2VsbCog
b3AyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk11bEhlYXBCaWdJbnQsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvcDEs
IEpTQ2VsbCogb3AyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTM2MCw3
ICsxMzYwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25NdWxIZWFw
QmlnSW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEpTQmlnSW50OjptdWx0aXBseShnbG9iYWxPYmplY3QsIGxlZnRPcGVyYW5kLCByaWdo
dE9wZXJhbmQpKTsKIH0KICAgICAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uTW9kSGVhcEJpZ0ludChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9w
MSwgSlNDZWxsKiBvcDIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTW9kSGVh
cEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
CkBAIC0xMzcyLDcgKzEzNzIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbk1vZEhlYXBCaWdJbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdAogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNCaWdJbnQ6OnJlbWFpbmRlcihnbG9iYWxPYmplY3QsIGxlZnRP
cGVyYW5kLCByaWdodE9wZXJhbmQpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25EaXZIZWFwQmlnSW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Q2VsbCogb3AxLCBKU0NlbGwqIG9wMikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25EaXZIZWFwQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTEzODQsNyArMTM4NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uRGl2SGVhcEJpZ0ludChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0JpZ0ludDo6ZGl2aWRlKGdsb2JhbE9iamVjdCwg
bGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblBvd0hlYXBCaWdJbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblBvd0hlYXBCaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwpAQCAtMTM5Niw3ICsxMzk2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25Qb3dIZWFwQmlnSW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQmlnSW50OjpleHBvbmVudGlhdGUoZ2xv
YmFsT2JqZWN0LCBsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5kKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQml0QW5kSGVhcEJpZ0ludChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQml0QW5kSGVhcEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNDA4LDcgKzE0MDgsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkJpdEFuZEhlYXBCaWdJbnQoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iagogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNCaWdJbnQ6
OmJpdHdpc2VBbmQoZ2xvYmFsT2JqZWN0LCBsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5kKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQml0TFNoaWZ0SGVhcEJp
Z0ludChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBv
cDIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQml0TFNoaWZ0SGVhcEJpZ0lu
dCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwq
IG9wMSwgSlNDZWxsKiBvcDIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0x
NDIwLDcgKzE0MjAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkJp
dExTaGlmdEhlYXBCaWdJbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoSlNCaWdJbnQ6OmxlZnRTaGlmdChnbG9iYWxPYmplY3QsIGxlZnRPcGVyYW5k
LCByaWdodE9wZXJhbmQpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25BZGRIZWFwQmlnSW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCog
b3AxLCBKU0NlbGwqIG9wMikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BZGRI
ZWFwQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKQEAgLTE0MzIsNyArMTQzMiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uQWRkSGVhcEJpZ0ludChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShKU0JpZ0ludDo6YWRkKGdsb2JhbE9iamVjdCwgbGVmdE9wZXJh
bmQsIHJpZ2h0T3BlcmFuZCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkJpdFJTaGlmdEhlYXBCaWdJbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkJpdFJTaGlmdEhlYXBCaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwpAQCAtMTQ0NCw3ICsxNDQ0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25CaXRSU2hpZnRIZWFwQmlnSW50KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQmlnSW50OjpzaWduZWRSaWdodFNo
aWZ0KGdsb2JhbE9iamVjdCwgbGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkJpdE9ySGVhcEJpZ0ludChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQml0T3JIZWFwQmlnSW50LCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9w
MikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE0NTYsNyArMTQ1Niw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQml0T3JIZWFwQmlnSW50KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0Jp
Z0ludDo6Yml0d2lzZU9yKGdsb2JhbE9iamVjdCwgbGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkJpdFhvckhlYXBC
aWdJbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvcDEsIEpTQ2VsbCog
b3AyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkJpdFhvckhlYXBCaWdJbnQs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBv
cDEsIEpTQ2VsbCogb3AyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTQ2
OCw3ICsxNDY4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25CaXRY
b3JIZWFwQmlnSW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKEpTQmlnSW50OjpiaXR3aXNlWG9yKGdsb2JhbE9iamVjdCwgbGVmdE9wZXJhbmQs
IHJpZ2h0T3BlcmFuZCkpOwogfQogCi1zaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21w
YXJlU3RyaWN0RXFDZWxsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb3Ax
LCBKU0NlbGwqIG9wMikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJl
U3RyaWN0RXFDZWxsLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0Nl
bGwqIG9wMSwgSlNDZWxsKiBvcDIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBA
IC0xNDc3LDcgKzE0NzcsNyBAQCBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJl
U3RyaWN0RXFDZWxsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIEpT
VmFsdWU6OnN0cmljdEVxdWFsRm9yQ2VsbHMoZ2xvYmFsT2JqZWN0LCBvcDEsIG9wMik7CiB9CiAK
LXNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNhbWVWYWx1ZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBhcmcxLCBFbmNvZGVkSlNWYWx1ZSBhcmcyKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNhbWVWYWx1ZSwgc2l6ZV90LCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYXJnMSwgRW5jb2RlZEpT
VmFsdWUgYXJnMikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE0ODYsNyAr
MTQ4Niw3IEBAIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNhbWVWYWx1ZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWCiAgICAgcmV0dXJuIHNhbWVWYWx1ZShn
bG9iYWxPYmplY3QsIEpTVmFsdWU6OmRlY29kZShhcmcxKSwgSlNWYWx1ZTo6ZGVjb2RlKGFyZzIp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Ub1ByaW1pdGl2
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub1ByaW1pdGl2ZSwgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE0OTUsNyArMTQ5NSw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9QcmltaXRpdmUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWU6
OmRlY29kZSh2YWx1ZSkudG9QcmltaXRpdmUoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9Qcm9wZXJ0eUtleShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Ub1Byb3BlcnR5S2V5LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTUwNCw3ICsxNTA0LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25Ub1Byb3BlcnR5S2V5KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWU6OmRlY29kZSh2YWx1
ZSkudG9Qcm9wZXJ0eUtleVZhbHVlKGdsb2JhbE9iamVjdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvTnVtYmVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblRvTnVtYmVyLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwpAQCAtMTUxMyw3ICsxNTEzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25Ub051bWJlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmMKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkudG9O
dW1iZXIoZ2xvYmFsT2JqZWN0KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblRvTnVtZXJpYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB2YWx1ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub051bWVy
aWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdmFsdWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNTIy
LDcgKzE1MjIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvTnVt
ZXJpYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbgogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKS50b051bWVyaWMoZ2xvYmFsT2JqZWN0KSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbE51bWJlckNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DYWxsTnVtYmVy
Q29uc3RydWN0b3IsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwpAQCAtMTUzOCw3ICsxNTM4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25DYWxsTnVtYmVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQmlnSW50Ojp0b051bWJlcihudW1lcmljKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxXaXRoVGhp
cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFz
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFRoaXMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJz
Y3JpcHQpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlWYWxXaXRoVGhp
cywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFRoaXMsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
CkBAIC0xNTc4LDcgKzE1NzgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkdldEJ5VmFsV2l0aFRoaXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGJhc2VWYWx1ZS5nZXQoZ2xvYmFs
T2JqZWN0LCBwcm9wZXJ0eSwgc2xvdCkpKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblB1dEJ5SWRXaXRoVGhpc1N0cmljdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFRoaXMsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZp
ZXIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFdpdGhUaGlzU3Ry
aWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRUaGlzLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTU5MCw3ICsxNTkwLDcgQEAgdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblB1dEJ5SWRXaXRoVGhpc1N0cmljdChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LAogICAgIHB1dFdpdGhUaGlzPHRydWU+KGdsb2JhbE9iamVjdCwgZW5jb2RlZEJh
c2UsIGVuY29kZWRUaGlzLCBlbmNvZGVkVmFsdWUsIGlkZW50KTsKIH0KIAotdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblB1dEJ5SWRXaXRoVGhpcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFRo
aXMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlk
ZW50aWZpZXIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFdpdGhU
aGlzLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRUaGlzLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTYwMiw3ICsxNjAyLDcgQEAgdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblB1dEJ5SWRXaXRoVGhpcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGUKICAgICBwdXRXaXRoVGhpczxmYWxzZT4oZ2xvYmFsT2JqZWN0LCBlbmNvZGVk
QmFzZSwgZW5jb2RlZFRoaXMsIGVuY29kZWRWYWx1ZSwgaWRlbnQpOwogfQogCi12b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxXaXRoVGhpc1N0cmljdChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFRoaXMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRC
eVZhbFdpdGhUaGlzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRUaGlzLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNjE1LDcgKzE2MTUsNyBA
QCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxXaXRoVGhpc1N0cmljdChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIHB1dFdpdGhUaGlzPHRydWU+KGdsb2JhbE9i
amVjdCwgZW5jb2RlZEJhc2UsIGVuY29kZWRUaGlzLCBlbmNvZGVkVmFsdWUsIHByb3BlcnR5KTsK
IH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsV2l0aFRoaXMoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRUaGlzLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHV0QnlWYWxXaXRoVGhpcywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVGhp
cywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTYzOCw3ICsxNjM4
LDcgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCBkZWZpbmVEYXRhUHJvcGVydHkoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHYKICAgICAgICAgYmFzZS0+bWV0aG9kVGFibGUo
dm0pLT5kZWZpbmVPd25Qcm9wZXJ0eShiYXNlLCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwg
ZGVzY3JpcHRvciwgdHJ1ZSk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWZp
bmVEYXRhUHJvcGVydHkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJh
c2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZXMpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNPYmplY3QqIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZXMpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNjUxLDcgKzE2NTEsNyBAQCB2b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTTwogICAgIGRlZmluZURhdGFQcm9wZXJ0eShnbG9iYWxPYmplY3QsIHZtLCBiYXNl
LCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpLCBhdHRyaWJ1dGVz
KTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eVN0
cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwgSlNTdHJp
bmcqIHByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIGludDMyX3QgYXR0cmli
dXRlcykKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVy
dHlTdHJpbmcsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCog
YmFzZSwgSlNTdHJpbmcqIHByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIGlu
dDMyX3QgYXR0cmlidXRlcykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE2
NjQsNyArMTY2NCw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWZpbmVEYXRhUHJv
cGVydHlTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgZGVmaW5lRGF0YVBy
b3BlcnR5KGdsb2JhbE9iamVjdCwgdm0sIGJhc2UsIHByb3BlcnR5TmFtZSwgSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRWYWx1ZSksIGF0dHJpYnV0ZXMpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5U3RyaW5nSWRlbnQoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIFVuaXF1ZWRTdHJpbmdJbXBsKiBwcm9wZXJ0eSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZXMpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5U3RyaW5nSWRlbnQs
IHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwgVW5p
cXVlZFN0cmluZ0ltcGwqIHByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIGlu
dDMyX3QgYXR0cmlidXRlcykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE2
NzIsNyArMTY3Miw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWZpbmVEYXRhUHJv
cGVydHlTdHJpbmdJZGVudChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgZGVmaW5lRGF0YVBy
b3BlcnR5KGdsb2JhbE9iamVjdCwgdm0sIGJhc2UsIElkZW50aWZpZXI6OmZyb21VaWQodm0sIHBy
b3BlcnR5KSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSksIGF0dHJpYnV0ZXMpOwogfQog
Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5U3ltYm9sKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBTeW1ib2wqIHByb3Bl
cnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIGludDMyX3QgYXR0cmlidXRlcykKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHlTeW1ib2ws
IHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwgU3lt
Ym9sKiBwcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBpbnQzMl90IGF0dHJp
YnV0ZXMpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNjkwLDcgKzE2OTAs
NyBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyB2b2lkIGRlZmluZUFjY2Vzc29yUHJvcGVydHkoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVgogICAgICAgICBiYXNlLT5tZXRob2RUYWJsZSh2
bSktPmRlZmluZU93blByb3BlcnR5KGJhc2UsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBk
ZXNjcmlwdG9yLCB0cnVlKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlZmlu
ZUFjY2Vzc29yUHJvcGVydHkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3Qq
IGJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgSlNPYmplY3QqIGdldHRlciwg
SlNPYmplY3QqIHNldHRlciwgaW50MzJfdCBhdHRyaWJ1dGVzKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHksIHZvaWQsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFByb3BlcnR5LCBKU09iamVjdCogZ2V0dGVyLCBKU09iamVjdCogc2V0dGVyLCBpbnQzMl90IGF0
dHJpYnV0ZXMpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNzAyLDcgKzE3
MDIsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0
eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIGRlZmluZUFjY2Vzc29yUHJvcGVy
dHkoZ2xvYmFsT2JqZWN0LCB2bSwgYmFzZSwgcHJvcGVydHlOYW1lLCBnZXR0ZXIsIHNldHRlciwg
YXR0cmlidXRlcyk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWZpbmVBY2Nl
c3NvclByb3BlcnR5U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0
KiBiYXNlLCBKU1N0cmluZyogcHJvcGVydHksIEpTT2JqZWN0KiBnZXR0ZXIsIEpTT2JqZWN0KiBz
ZXR0ZXIsIGludDMyX3QgYXR0cmlidXRlcykKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5U3RyaW5nLCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIEpTU3RyaW5nKiBwcm9wZXJ0eSwgSlNPYmpl
Y3QqIGdldHRlciwgSlNPYmplY3QqIHNldHRlciwgaW50MzJfdCBhdHRyaWJ1dGVzKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTcxNCw3ICsxNzE0LDcgQEAgdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHlTdHJpbmcoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE8KICAgICBkZWZpbmVBY2Nlc3NvclByb3BlcnR5KGdsb2JhbE9iamVjdCwg
dm0sIGJhc2UsIHByb3BlcnR5TmFtZSwgZ2V0dGVyLCBzZXR0ZXIsIGF0dHJpYnV0ZXMpOwogfQog
Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN0cmlu
Z0lkZW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBVbmlx
dWVkU3RyaW5nSW1wbCogcHJvcGVydHksIEpTT2JqZWN0KiBnZXR0ZXIsIEpTT2JqZWN0KiBzZXR0
ZXIsIGludDMyX3QgYXR0cmlidXRlcykKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25EZWZpbmVBY2Nlc3NvclByb3BlcnR5U3RyaW5nSWRlbnQsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwgVW5pcXVlZFN0cmluZ0ltcGwqIHByb3Bl
cnR5LCBKU09iamVjdCogZ2V0dGVyLCBKU09iamVjdCogc2V0dGVyLCBpbnQzMl90IGF0dHJpYnV0
ZXMpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNzIyLDcgKzE3MjIsNyBA
QCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN0cmlu
Z0lkZW50KEpTR2xvYmFsT2JqZWN0KiBnbAogICAgIGRlZmluZUFjY2Vzc29yUHJvcGVydHkoZ2xv
YmFsT2JqZWN0LCB2bSwgYmFzZSwgSWRlbnRpZmllcjo6ZnJvbVVpZCh2bSwgcHJvcGVydHkpLCBn
ZXR0ZXIsIHNldHRlciwgYXR0cmlidXRlcyk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5U3ltYm9sKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTT2JqZWN0KiBiYXNlLCBTeW1ib2wqIHByb3BlcnR5LCBKU09iamVjdCogZ2V0dGVy
LCBKU09iamVjdCogc2V0dGVyLCBpbnQzMl90IGF0dHJpYnV0ZXMpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN5bWJvbCwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBTeW1ib2wqIHByb3Bl
cnR5LCBKU09iamVjdCogZ2V0dGVyLCBKU09iamVjdCogc2V0dGVyLCBpbnQzMl90IGF0dHJpYnV0
ZXMpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNzMwLDcgKzE3MzAsNyBA
QCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN5bWJv
bChKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIGRlZmluZUFjY2Vzc29yUHJvcGVydHkoZ2xv
YmFsT2JqZWN0LCB2bSwgYmFzZSwgSWRlbnRpZmllcjo6ZnJvbVVpZChwcm9wZXJ0eS0+cHJpdmF0
ZU5hbWUoKSksIGdldHRlciwgc2V0dGVyLCBhdHRyaWJ1dGVzKTsKIH0KIAotY2hhciogSklUX09Q
RVJBVElPTiBvcGVyYXRpb25OZXdBcnJheShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmUqIGFycmF5U3RydWN0dXJlLCB2b2lkKiBidWZmZXIsIHNpemVfdCBzaXplKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5LCBjaGFyKiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogYXJyYXlTdHJ1Y3R1cmUsIHZvaWQqIGJ1
ZmZlciwgc2l6ZV90IHNpemUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0x
NzM5LDcgKzE3MzksNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0FycmF5KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogYQogICAgIHJldHVybiBiaXR3
aXNlX2Nhc3Q8Y2hhcio+KGNvbnN0cnVjdEFycmF5KGdsb2JhbE9iamVjdCwgYXJyYXlTdHJ1Y3R1
cmUsIHN0YXRpY19jYXN0PEpTVmFsdWUqPihidWZmZXIpLCBzaXplKSk7CiB9CiAKLWNoYXIqIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3RW1wdHlBcnJheShWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1
cmUqIGFycmF5U3RydWN0dXJlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5l
d0VtcHR5QXJyYXksIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBhcnJheVN0cnVj
dHVyZSkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNzQ4LDcgKzE3NDgsNyBAQCBjaGFy
KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0VtcHR5QXJyYXkoVk0qIHZtUG9pbnRlciwgU3Ry
dWN0dXJlKiBhcnJheVN0cnVjdAogICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8Y2hhcio+KEpTQXJy
YXk6OmNyZWF0ZSh2bSwgYXJyYXlTdHJ1Y3R1cmUpKTsKIH0KIAotY2hhciogSklUX09QRVJBVElP
TiBvcGVyYXRpb25OZXdBcnJheVdpdGhTaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZSogYXJyYXlTdHJ1Y3R1cmUsIGludDMyX3Qgc2l6ZSwgQnV0dGVyZmx5KiBidXR0
ZXJmbHkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6
ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIGFycmF5
U3RydWN0dXJlLCBpbnQzMl90IHNpemUsIEJ1dHRlcmZseSogYnV0dGVyZmx5KSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTc2Niw3ICsxNzY2LDcgQEAgY2hhciogSklUX09Q
RVJBVElPTiBvcGVyYXRpb25OZXdBcnJheVdpdGhTaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnUKICAgICByZXR1cm4gYml0d2lzZV9jYXN0PGNoYXIqPihyZXN1bHQpOwogfQog
Ci1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0FycmF5V2l0aFNpemVBbmRIaW50KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogYXJyYXlTdHJ1Y3R1cmUsIGlu
dDMyX3Qgc2l6ZSwgaW50MzJfdCB2ZWN0b3JMZW5ndGhIaW50LCBCdXR0ZXJmbHkqIGJ1dHRlcmZs
eSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheVdpdGhTaXplQW5k
SGludCwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIGFy
cmF5U3RydWN0dXJlLCBpbnQzMl90IHNpemUsIGludDMyX3QgdmVjdG9yTGVuZ3RoSGludCwgQnV0
dGVyZmx5KiBidXR0ZXJmbHkpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0x
Nzg2LDcgKzE3ODYsNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0FycmF5V2l0
aFNpemVBbmRIaW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIHJldHVybiBiaXR3
aXNlX2Nhc3Q8Y2hhcio+KHJlc3VsdCk7CiB9CiAKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVy
YXRpb25OZXdBcnJheUJ1ZmZlcihWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUqIGFycmF5U3RydWN0
dXJlLCBKU0NlbGwqIGltbXV0YWJsZUJ1dHRlcmZseUNlbGwpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTmV3QXJyYXlCdWZmZXIsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyLCBT
dHJ1Y3R1cmUqIGFycmF5U3RydWN0dXJlLCBKU0NlbGwqIGltbXV0YWJsZUJ1dHRlcmZseUNlbGwp
KQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTgwMCw4ICsxODAwLDcgQEAgSlNDZWxsKiBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0FycmF5QnVmZmVyKFZNKiB2bVBvaW50ZXIsIFN0cnVj
dHVyZSogYXJyYXlTdHIKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1jaGFyKiBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbk5ld0ludDhBcnJheVdpdGhTaXplKAotICAgIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnQzMl90IGxlbmd0aCwgY2hhciog
dmVjdG9yKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0ludDhBcnJheVdp
dGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSog
c3RydWN0dXJlLCBpbnQzMl90IGxlbmd0aCwgY2hhciogdmVjdG9yKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwpAQCAtMTgwOSw4ICsxODA4LDcgQEAgY2hhciogSklUX09QRVJBVElP
TiBvcGVyYXRpb25OZXdJbnQ4QXJyYXlXaXRoU2l6ZSgKICAgICByZXR1cm4gbmV3VHlwZWRBcnJh
eVdpdGhTaXplPEpTSW50OEFycmF5PihnbG9iYWxPYmplY3QsIHZtLCBzdHJ1Y3R1cmUsIGxlbmd0
aCwgdmVjdG9yKTsKIH0KIAotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdJbnQ4QXJy
YXlXaXRoT25lQXJndW1lbnQoCi0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJbnQ4QXJyYXlXaXRoT25lQXJndW1lbnQsIGNo
YXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKQEAgLTE4MTgsOCArMTgxNiw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
TmV3SW50OEFycmF5V2l0aE9uZUFyZ3VtZW50KAogICAgIHJldHVybiByZWludGVycHJldF9jYXN0
PGNoYXIqPihjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzPEpTSW50
OEFycmF5PihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgZW5jb2RlZFZhbHVlLCAwLCBXVEY6Om51
bGxvcHQpKTsKIH0KIAotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdJbnQxNkFycmF5
V2l0aFNpemUoCi0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIGludDMyX3QgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTmV3SW50MTZBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnQzMl90IGxlbmd0
aCwgY2hhciogdmVjdG9yKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTgy
Nyw4ICsxODI0LDcgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdJbnQxNkFycmF5
V2l0aFNpemUoCiAgICAgcmV0dXJuIG5ld1R5cGVkQXJyYXlXaXRoU2l6ZTxKU0ludDE2QXJyYXk+
KGdsb2JhbE9iamVjdCwgdm0sIHN0cnVjdHVyZSwgbGVuZ3RoLCB2ZWN0b3IpOwogfQogCi1jaGFy
KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0ludDE2QXJyYXlXaXRoT25lQXJndW1lbnQoCi0g
ICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25OZXdJbnQxNkFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xODM2LDggKzE4
MzIsNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0ludDE2QXJyYXlXaXRoT25l
QXJndW1lbnQoCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNvbnN0cnVjdEdl
bmVyaWNUeXBlZEFycmF5Vmlld1dpdGhBcmd1bWVudHM8SlNJbnQxNkFycmF5PihnbG9iYWxPYmpl
Y3QsIHN0cnVjdHVyZSwgZW5jb2RlZFZhbHVlLCAwLCBXVEY6Om51bGxvcHQpKTsKIH0KIAotY2hh
ciogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdJbnQzMkFycmF5V2l0aFNpemUoCi0gICAgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludDMyX3Qg
bGVuZ3RoLCBjaGFyKiB2ZWN0b3IpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TmV3SW50MzJBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnQzMl90IGxlbmd0aCwgY2hhciogdmVjdG9yKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTg0NSw4ICsxODQwLDcgQEAgY2hh
ciogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdJbnQzMkFycmF5V2l0aFNpemUoCiAgICAgcmV0
dXJuIG5ld1R5cGVkQXJyYXlXaXRoU2l6ZTxKU0ludDMyQXJyYXk+KGdsb2JhbE9iamVjdCwgdm0s
IHN0cnVjdHVyZSwgbGVuZ3RoLCB2ZWN0b3IpOwogfQogCi1jaGFyKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbk5ld0ludDMyQXJyYXlXaXRoT25lQXJndW1lbnQoCi0gICAgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJbnQzMkFycmF5
V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xODU0LDggKzE4NDgsNyBAQCBjaGFyKiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbk5ld0ludDMyQXJyYXlXaXRoT25lQXJndW1lbnQoCiAgICAgcmV0
dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmll
d1dpdGhBcmd1bWVudHM8SlNJbnQzMkFycmF5PihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgZW5j
b2RlZFZhbHVlLCAwLCBXVEY6Om51bGxvcHQpKTsKIH0KIAotY2hhciogSklUX09QRVJBVElPTiBv
cGVyYXRpb25OZXdVaW50OEFycmF5V2l0aFNpemUoCi0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludDMyX3QgbGVuZ3RoLCBjaGFyKiB2ZWN0
b3IpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDhBcnJheVdpdGhT
aXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBpbnQzMl90IGxlbmd0aCwgY2hhciogdmVjdG9yKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwpAQCAtMTg2Myw4ICsxODU2LDcgQEAgY2hhciogSklUX09QRVJBVElPTiBv
cGVyYXRpb25OZXdVaW50OEFycmF5V2l0aFNpemUoCiAgICAgcmV0dXJuIG5ld1R5cGVkQXJyYXlX
aXRoU2l6ZTxKU1VpbnQ4QXJyYXk+KGdsb2JhbE9iamVjdCwgdm0sIHN0cnVjdHVyZSwgbGVuZ3Ro
LCB2ZWN0b3IpOwogfQogCi1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld1VpbnQ4QXJy
YXlXaXRoT25lQXJndW1lbnQoCi0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50OEFycmF5V2l0aE9uZUFyZ3VtZW50LCBj
aGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CkBAIC0xODcyLDggKzE4NjQsNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bk5ld1VpbnQ4QXJyYXlXaXRoT25lQXJndW1lbnQoCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dpdGhBcmd1bWVudHM8SlNV
aW50OEFycmF5PihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgZW5jb2RlZFZhbHVlLCAwLCBXVEY6
Om51bGxvcHQpKTsKIH0KIAotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdVaW50OENs
YW1wZWRBcnJheVdpdGhTaXplKAotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBpbnQzMl90IGxlbmd0aCwgY2hhciogdmVjdG9yKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQ4Q2xhbXBlZEFycmF5V2l0aFNpemUs
IGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIGludDMyX3QgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CkBAIC0xODgxLDggKzE4NzIsNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbk5ld1VpbnQ4Q2xhbXBlZEFycmF5V2l0aFNpemUoCiAgICAgcmV0dXJuIG5ld1R5cGVkQXJy
YXlXaXRoU2l6ZTxKU1VpbnQ4Q2xhbXBlZEFycmF5PihnbG9iYWxPYmplY3QsIHZtLCBzdHJ1Y3R1
cmUsIGxlbmd0aCwgdmVjdG9yKTsKIH0KIAotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25O
ZXdVaW50OENsYW1wZWRBcnJheVdpdGhPbmVBcmd1bWVudCgKLSAgICBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQ4Q2xhbXBl
ZEFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xODkwLDggKzE4ODAsNyBAQCBjaGFy
KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld1VpbnQ4Q2xhbXBlZEFycmF5V2l0aE9uZUFyZ3Vt
ZW50KAogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihjb25zdHJ1Y3RHZW5lcmlj
VHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzPEpTVWludDhDbGFtcGVkQXJyYXk+KGdsb2JhbE9i
amVjdCwgc3RydWN0dXJlLCBlbmNvZGVkVmFsdWUsIDAsIFdURjo6bnVsbG9wdCkpOwogfQogCi1j
aGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld1VpbnQxNkFycmF5V2l0aFNpemUoCi0gICAg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludDMy
X3QgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uTmV3VWludDE2QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50MzJfdCBsZW5ndGgsIGNoYXIqIHZlY3Rv
cikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE4OTksOCArMTg4OCw3IEBA
IGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3VWludDE2QXJyYXlXaXRoU2l6ZSgKICAg
ICByZXR1cm4gbmV3VHlwZWRBcnJheVdpdGhTaXplPEpTVWludDE2QXJyYXk+KGdsb2JhbE9iamVj
dCwgdm0sIHN0cnVjdHVyZSwgbGVuZ3RoLCB2ZWN0b3IpOwogfQogCi1jaGFyKiBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbk5ld1VpbnQxNkFycmF5V2l0aE9uZUFyZ3VtZW50KAotICAgIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWlu
dDE2QXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE5MDgsOCArMTg5Niw3IEBAIGNo
YXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3VWludDE2QXJyYXlXaXRoT25lQXJndW1lbnQo
CiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNvbnN0cnVjdEdlbmVyaWNUeXBl
ZEFycmF5Vmlld1dpdGhBcmd1bWVudHM8SlNVaW50MTZBcnJheT4oZ2xvYmFsT2JqZWN0LCBzdHJ1
Y3R1cmUsIGVuY29kZWRWYWx1ZSwgMCwgV1RGOjpudWxsb3B0KSk7CiB9CiAKLWNoYXIqIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uTmV3VWludDMyQXJyYXlXaXRoU2l6ZSgKLSAgICBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50MzJfdCBsZW5ndGgs
IGNoYXIqIHZlY3RvcikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50
MzJBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBpbnQzMl90IGxlbmd0aCwgY2hhciogdmVjdG9yKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTkxNyw4ICsxOTA0LDcgQEAgY2hhciogSklU
X09QRVJBVElPTiBvcGVyYXRpb25OZXdVaW50MzJBcnJheVdpdGhTaXplKAogICAgIHJldHVybiBu
ZXdUeXBlZEFycmF5V2l0aFNpemU8SlNVaW50MzJBcnJheT4oZ2xvYmFsT2JqZWN0LCB2bSwgc3Ry
dWN0dXJlLCBsZW5ndGgsIHZlY3Rvcik7CiB9CiAKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uTmV3VWludDMyQXJyYXlXaXRoT25lQXJndW1lbnQoCi0gICAgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50MzJBcnJheVdp
dGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTkyNiw4ICsxOTEyLDcgQEAgY2hhciogSklUX09Q
RVJBVElPTiBvcGVyYXRpb25OZXdVaW50MzJBcnJheVdpdGhPbmVBcmd1bWVudCgKICAgICByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3
V2l0aEFyZ3VtZW50czxKU1VpbnQzMkFycmF5PihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgZW5j
b2RlZFZhbHVlLCAwLCBXVEY6Om51bGxvcHQpKTsKIH0KIAotY2hhciogSklUX09QRVJBVElPTiBv
cGVyYXRpb25OZXdGbG9hdDMyQXJyYXlXaXRoU2l6ZSgKLSAgICBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50MzJfdCBsZW5ndGgsIGNoYXIqIHZl
Y3RvcikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdGbG9hdDMyQXJyYXlX
aXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgaW50MzJfdCBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE5MzUsOCArMTkyMCw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uTmV3RmxvYXQzMkFycmF5V2l0aFNpemUoCiAgICAgcmV0dXJuIG5ld1R5cGVk
QXJyYXlXaXRoU2l6ZTxKU0Zsb2F0MzJBcnJheT4oZ2xvYmFsT2JqZWN0LCB2bSwgc3RydWN0dXJl
LCBsZW5ndGgsIHZlY3Rvcik7CiB9CiAKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3
RmxvYXQzMkFycmF5V2l0aE9uZUFyZ3VtZW50KAotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3RmxvYXQzMkFycmF5V2l0aE9u
ZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xOTQ0LDggKzE5MjgsNyBAQCBjaGFyKiBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbk5ld0Zsb2F0MzJBcnJheVdpdGhPbmVBcmd1bWVudCgKICAgICByZXR1cm4g
cmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3V2l0
aEFyZ3VtZW50czxKU0Zsb2F0MzJBcnJheT4oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGVuY29k
ZWRWYWx1ZSwgMCwgV1RGOjpudWxsb3B0KSk7CiB9CiAKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uTmV3RmxvYXQ2NEFycmF5V2l0aFNpemUoCi0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludDMyX3QgbGVuZ3RoLCBjaGFyKiB2ZWN0
b3IpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3RmxvYXQ2NEFycmF5V2l0
aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIGludDMyX3QgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CkBAIC0xOTUzLDggKzE5MzYsNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbk5ld0Zsb2F0NjRBcnJheVdpdGhTaXplKAogICAgIHJldHVybiBuZXdUeXBlZEFy
cmF5V2l0aFNpemU8SlNGbG9hdDY0QXJyYXk+KGdsb2JhbE9iamVjdCwgdm0sIHN0cnVjdHVyZSwg
bGVuZ3RoLCB2ZWN0b3IpOwogfQogCi1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0Zs
b2F0NjRBcnJheVdpdGhPbmVBcmd1bWVudCgKLSAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0Zsb2F0NjRBcnJheVdpdGhPbmVB
cmd1bWVudCwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwpAQCAtMTk2Miw3ICsxOTQ0LDcgQEAgY2hhciogSklUX09QRVJBVElP
TiBvcGVyYXRpb25OZXdGbG9hdDY0QXJyYXlXaXRoT25lQXJndW1lbnQoCiAgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dpdGhB
cmd1bWVudHM8SlNGbG9hdDY0QXJyYXk+KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBlbmNvZGVk
VmFsdWUsIDAsIFdURjo6bnVsbG9wdCkpOwogfQogCi1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uTmV3QXJyYXlJdGVyYXRvcihWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheUl0ZXJhdG9yLCBK
U0NlbGwqLCAoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpKQogewogICAgIFZN
JiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwpAQCAtMTk3MSw3ICsxOTUzLDcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbk5ld0FycmF5SXRlcmF0b3IoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1
Y3QKICAgICByZXR1cm4gSlNBcnJheUl0ZXJhdG9yOjpjcmVhdGVXaXRoSW5pdGlhbFZhbHVlcyh2
bSwgc3RydWN0dXJlKTsKIH0KIAotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld01h
cEl0ZXJhdG9yKFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVyZSogc3RydWN0dXJlKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld01hcEl0ZXJhdG9yLCBKU0NlbGwqLCAoVk0qIHZt
UG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50
ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpA
QCAtMTk4MCw3ICsxOTYyLDcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld01h
cEl0ZXJhdG9yKFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVyZSogc3RydWN0dXIKICAgICByZXR1cm4g
SlNNYXBJdGVyYXRvcjo6Y3JlYXRlV2l0aEluaXRpYWxWYWx1ZXModm0sIHN0cnVjdHVyZSk7CiB9
CiAKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdTZXRJdGVyYXRvcihWTSogdm1Q
b2ludGVyLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25OZXdTZXRJdGVyYXRvciwgSlNDZWxsKiwgKFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVy
ZSogc3RydWN0dXJlKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE5ODksNyArMTk3MSw3
IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdTZXRJdGVyYXRvcihWTSogdm1Q
b2ludGVyLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyCiAgICAgcmV0dXJuIEpTU2V0SXRlcmF0b3I6OmNy
ZWF0ZVdpdGhJbml0aWFsVmFsdWVzKHZtLCBzdHJ1Y3R1cmUpOwogfQogCi1KU0NlbGwqIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uQ3JlYXRlQWN0aXZhdGlvbkRpcmVjdChWTSogdm1Qb2ludGVyLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNTY29wZSogc2NvcGUsIFN5bWJvbFRhYmxlKiB0YWJsZSwg
RW5jb2RlZEpTVmFsdWUgaW5pdGlhbFZhbHVlRW5jb2RlZCkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25DcmVhdGVBY3RpdmF0aW9uRGlyZWN0LCBKU0NlbGwqLCAoVk0qIHZtUG9p
bnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTU2NvcGUqIHNjb3BlLCBTeW1ib2xUYWJsZSog
dGFibGUsIEVuY29kZWRKU1ZhbHVlIGluaXRpYWxWYWx1ZUVuY29kZWQpKQogewogICAgIFZNJiB2
bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwpAQCAtMTk5OSw3ICsxOTgxLDcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkNyZWF0ZUFjdGl2YXRpb25EaXJlY3QoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKgog
ICAgIHJldHVybiBKU0xleGljYWxFbnZpcm9ubWVudDo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUsIHNj
b3BlLCB0YWJsZSwgaW5pdGlhbFZhbHVlKTsKIH0KIAotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkNyZWF0ZURpcmVjdEFyZ3VtZW50cyhWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgdWludDMyX3QgbGVuZ3RoLCB1aW50MzJfdCBtaW5DYXBhY2l0eSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVEaXJlY3RBcmd1bWVudHMsIEpTQ2VsbCos
IChWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgdWludDMyX3QgbGVuZ3RoLCB1
aW50MzJfdCBtaW5DYXBhY2l0eSkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMDEzLDcg
KzE5OTUsNyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ3JlYXRlRGlyZWN0QXJn
dW1lbnRzKFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVyZSogcwogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25DcmVhdGVTY29wZWRBcmd1bWVudHMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZ2lz
dGVyKiBhcmd1bWVudFN0YXJ0LCB1aW50MzJfdCBsZW5ndGgsIEpTRnVuY3Rpb24qIGNhbGxlZSwg
SlNMZXhpY2FsRW52aXJvbm1lbnQqIHNjb3BlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNyZWF0ZVNjb3BlZEFyZ3VtZW50cywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWdpc3RlciogYXJndW1lbnRTdGFy
dCwgdWludDMyX3QgbGVuZ3RoLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIEpTTGV4aWNhbEVudmlyb25t
ZW50KiBzY29wZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIwMjcsNyAr
MjAwOSw3IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25DcmVhdGVTY29wZWRBcmd1
bWVudHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgICAgIHZtLCBzdHJ1Y3R1cmUs
IGFyZ3VtZW50U3RhcnQsIGxlbmd0aCwgY2FsbGVlLCB0YWJsZSwgc2NvcGUpOwogfQogCi1KU0Nl
bGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWdpc3RlciogYXJn
dW1lbnRTdGFydCwgdWludDMyX3QgbGVuZ3RoLCBKU0Z1bmN0aW9uKiBjYWxsZWUpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzLCBKU0NlbGwq
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJl
Z2lzdGVyKiBhcmd1bWVudFN0YXJ0LCB1aW50MzJfdCBsZW5ndGgsIEpTRnVuY3Rpb24qIGNhbGxl
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIwMzYsNyArMjAxOCw3IEBA
IEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25DcmVhdGVDbG9uZWRBcmd1bWVudHMoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgICAgIGdsb2JhbE9iamVjdCwgc3RydWN0dXJl
LCBhcmd1bWVudFN0YXJ0LCBsZW5ndGgsIGNhbGxlZSk7CiB9CiAKLUpTQ2VsbCogSklUX09QRVJB
VElPTiBvcGVyYXRpb25DcmVhdGVBcmd1bWVudHNCdXR0ZXJmbHkoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgUmVnaXN0ZXIqIGFyZ3VtZW50U3RhcnQsIHVpbnQzMl90IGFyZ3VtZW50Q291
bnQpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQXJndW1lbnRzQnV0
dGVyZmx5LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVnaXN0ZXIq
IGFyZ3VtZW50U3RhcnQsIHVpbnQzMl90IGFyZ3VtZW50Q291bnQpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CkBAIC0yMDUzLDcgKzIwMzUsNyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uQ3JlYXRlQXJndW1lbnRzQnV0dGVyZmx5KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYgogICAgIHJldHVybiBidXR0ZXJmbHk7CiB9CiAKLUpTQ2VsbCogSklUX09QRVJBVElPTiBv
cGVyYXRpb25DcmVhdGVEaXJlY3RBcmd1bWVudHNEdXJpbmdFeGl0KFZNKiB2bVBvaW50ZXIsIElu
bGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZyYW1lLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIHVpbnQz
Ml90IGFyZ3VtZW50Q291bnQpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3Jl
YXRlRGlyZWN0QXJndW1lbnRzRHVyaW5nRXhpdCwgSlNDZWxsKiwgKFZNKiB2bVBvaW50ZXIsIElu
bGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZyYW1lLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIHVpbnQz
Ml90IGFyZ3VtZW50Q291bnQpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjA4Myw3ICsy
MDY1LDcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNyZWF0ZURpcmVjdEFyZ3Vt
ZW50c0R1cmluZ0V4aXQoVk0qIHZtUG9pbnRlciwgSW4KICAgICByZXR1cm4gcmVzdWx0OwogfQog
Ci1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzRHVy
aW5nRXhpdChWTSogdm1Qb2ludGVyLCBJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSwg
SlNGdW5jdGlvbiogY2FsbGVlLCB1aW50MzJfdCBhcmd1bWVudENvdW50KQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUNsb25lZEFyZ3VtZW50c0R1cmluZ0V4aXQsIEpT
Q2VsbCosIChWTSogdm1Qb2ludGVyLCBJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSwg
SlNGdW5jdGlvbiogY2FsbGVlLCB1aW50MzJfdCBhcmd1bWVudENvdW50KSkKIHsKICAgICBWTSYg
dm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTIxMTIsNyArMjA5NCw3IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBv
cGVyYXRpb25DcmVhdGVDbG9uZWRBcmd1bWVudHNEdXJpbmdFeGl0KFZNKiB2bVBvaW50ZXIsIElu
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkNyZWF0ZVJlc3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVnaXN0ZXIqIGFyZ3Vt
ZW50U3RhcnQsIHVuc2lnbmVkIG51bWJlck9mUGFyYW1zVG9Ta2lwLCB1bnNpZ25lZCBhcnJheVNp
emUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlUmVzdCwgSlNDZWxs
KiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZ2lzdGVyKiBhcmd1bWVudFN0YXJ0
LCB1bnNpZ25lZCBudW1iZXJPZlBhcmFtc1RvU2tpcCwgdW5zaWduZWQgYXJyYXlTaXplKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjEyNCw3ICsyMTA2LDcgQEAgSlNDZWxs
KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNyZWF0ZVJlc3QoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgUmVnaXN0ZXIKICAgICByZXR1cm4gY29uc3RydWN0QXJyYXkoZ2xvYmFsT2JqZWN0
LCBzdHJ1Y3R1cmUsIGFyZ3VtZW50c1RvQ29weVJlZ2lvbiwgYXJyYXlTaXplKTsKIH0KIAotc2l6
ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVHlwZU9mSXNPYmplY3QoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3QpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uVHlwZU9mSXNPYmplY3QsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQ2VsbCogb2JqZWN0KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpA
QCAtMjEzNSw3ICsyMTE3LDcgQEAgc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVHlwZU9m
SXNPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWwKICAgICByZXR1cm4g
anNUeXBlb2ZJc09iamVjdChnbG9iYWxPYmplY3QsIG9iamVjdCk7CiB9CiAKLXNpemVfdCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblR5cGVPZklzRnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDZWxsKiBvYmplY3QpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uVHlwZU9mSXNGdW5jdGlvbiwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNDZWxsKiBvYmplY3QpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0y
MTQ2LDcgKzIxMjgsNyBAQCBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25UeXBlT2ZJc0Z1
bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQwogICAgIHJldHVybiBqc1R5
cGVvZklzRnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBvYmplY3QpOwogfQogCi1zaXplX3QgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25PYmplY3RJc0NhbGxhYmxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQ2VsbCogb2JqZWN0KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bk9iamVjdElzQ2FsbGFibGUsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQ2VsbCogb2JqZWN0KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjE1
Nyw3ICsyMTM5LDcgQEAgc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT2JqZWN0SXNDYWxs
YWJsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0MKICAgICByZXR1cm4gb2JqZWN0
LT5pc0NhbGxhYmxlKHZtKTsKIH0KIAotc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSXND
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2
YWx1ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Jc0NvbnN0cnVjdG9yLCBz
aXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIxNjYsNyArMjE0OCw3IEBA
IHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbklzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh2YWx1
ZSkuaXNDb25zdHJ1Y3Rvcih2bSk7CiB9CiAKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRp
b25UeXBlT2ZPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmpl
Y3QpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHlwZU9mT2JqZWN0LCBKU0Nl
bGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3QpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMTgxLDcgKzIxNjMsNyBAQCBKU0NlbGwq
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVHlwZU9mT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQ2VsbAogICAgIHJldHVybiB2bS5zbWFsbFN0cmluZ3Mub2JqZWN0U3RyaW5n
KCk7CiB9CiAKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQWxsb2NhdGVTaW1wbGVQcm9w
ZXJ0eVN0b3JhZ2VXaXRoSW5pdGlhbENhcGFjaXR5KFZNKiB2bVBvaW50ZXIpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVTaW1wbGVQcm9wZXJ0eVN0b3JhZ2VXaXRo
SW5pdGlhbENhcGFjaXR5LCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIpKQogewogICAgIFZNJiB2bSA9
ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwpAQCAtMjE5MSw3ICsyMTczLDcgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRp
b25BbGxvY2F0ZVNpbXBsZVByb3BlcnR5U3RvcmFnZVdpdGhJbml0aWFsQ2FwYWNpdHkoVk0KICAg
ICAgICAgQnV0dGVyZmx5OjpjcmVhdGVVbmluaXRpYWxpemVkKHZtLCBudWxscHRyLCAwLCBpbml0
aWFsT3V0T2ZMaW5lQ2FwYWNpdHksIGZhbHNlLCAwKSk7CiB9CiAKLWNoYXIqIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uQWxsb2NhdGVTaW1wbGVQcm9wZXJ0eVN0b3JhZ2UoVk0qIHZtUG9pbnRlciwg
c2l6ZV90IG5ld1NpemUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2Nh
dGVTaW1wbGVQcm9wZXJ0eVN0b3JhZ2UsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgc2l6ZV90IG5l
d1NpemUpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjIwMSw3ICsyMTgzLDcgQEAgY2hh
ciogSklUX09QRVJBVElPTiBvcGVyYXRpb25BbGxvY2F0ZVNpbXBsZVByb3BlcnR5U3RvcmFnZShW
TSogdm1Qb2ludGVyLCBzaXplX3QKICAgICAgICAgQnV0dGVyZmx5OjpjcmVhdGVVbmluaXRpYWxp
emVkKHZtLCBudWxscHRyLCAwLCBuZXdTaXplLCBmYWxzZSwgMCkpOwogfQogCi1jaGFyKiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkFsbG9jYXRlQ29tcGxleFByb3BlcnR5U3RvcmFnZVdpdGhJbml0
aWFsQ2FwYWNpdHkoVk0qIHZtUG9pbnRlciwgSlNPYmplY3QqIG9iamVjdCkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZUNvbXBsZXhQcm9wZXJ0eVN0b3JhZ2VXaXRo
SW5pdGlhbENhcGFjaXR5LCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEpTT2JqZWN0KiBvYmplY3Qp
KQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjIxMiw3ICsyMTk0LDcgQEAgY2hhciogSklU
X09QRVJBVElPTiBvcGVyYXRpb25BbGxvY2F0ZUNvbXBsZXhQcm9wZXJ0eVN0b3JhZ2VXaXRoSW5p
dGlhbENhcGFjaXR5KFYKICAgICAgICAgb2JqZWN0LT5hbGxvY2F0ZU1vcmVPdXRPZkxpbmVTdG9y
YWdlKHZtLCAwLCBpbml0aWFsT3V0T2ZMaW5lQ2FwYWNpdHkpKTsKIH0KIAotY2hhciogSklUX09Q
RVJBVElPTiBvcGVyYXRpb25BbGxvY2F0ZUNvbXBsZXhQcm9wZXJ0eVN0b3JhZ2UoVk0qIHZtUG9p
bnRlciwgSlNPYmplY3QqIG9iamVjdCwgc2l6ZV90IG5ld1NpemUpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVDb21wbGV4UHJvcGVydHlTdG9yYWdlLCBjaGFyKiwg
KFZNKiB2bVBvaW50ZXIsIEpTT2JqZWN0KiBvYmplY3QsIHNpemVfdCBuZXdTaXplKSkKIHsKICAg
ICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIyMjIsNyArMjIwNCw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uQWxsb2NhdGVDb21wbGV4UHJvcGVydHlTdG9yYWdlKFZNKiB2bVBvaW50ZXIs
IEpTT2JqCiAgICAgICAgIG9iamVjdC0+YWxsb2NhdGVNb3JlT3V0T2ZMaW5lU3RvcmFnZSh2bSwg
b2JqZWN0LT5zdHJ1Y3R1cmUodm0pLT5vdXRPZkxpbmVDYXBhY2l0eSgpLCBuZXdTaXplKSk7CiB9
CiAKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRW5zdXJlSW50MzIoVk0qIHZtUG9pbnRl
ciwgSlNDZWxsKiBjZWxsKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVuc3Vy
ZUludDMyLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEpTQ2VsbCogY2VsbCkpCiB7CiAgICAgVk0m
IHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0yMjM2LDcgKzIyMTgsNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkVuc3VyZUludDMyKFZNKiB2bVBvaW50ZXIsIEpTQ2VsbCogY2VsbCkKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCi1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkVuc3VyZURvdWJs
ZShWTSogdm1Qb2ludGVyLCBKU0NlbGwqIGNlbGwpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uRW5zdXJlRG91YmxlLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEpTQ2VsbCogY2Vs
bCkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMjUwLDcgKzIyMzIsNyBAQCBjaGFyKiBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkVuc3VyZURvdWJsZShWTSogdm1Qb2ludGVyLCBKU0NlbGwq
IGNlbGwpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotY2hhciogSklUX09QRVJBVElPTiBvcGVy
YXRpb25FbnN1cmVDb250aWd1b3VzKFZNKiB2bVBvaW50ZXIsIEpTQ2VsbCogY2VsbCkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnN1cmVDb250aWd1b3VzLCBjaGFyKiwgKFZN
KiB2bVBvaW50ZXIsIEpTQ2VsbCogY2VsbCkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0y
MjY0LDcgKzIyNDYsNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkVuc3VyZUNvbnRp
Z3VvdXMoVk0qIHZtUG9pbnRlciwgSlNDZWxsKiBjZWxsKQogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRW5zdXJlQXJyYXlTdG9yYWdlKFZNKiB2
bVBvaW50ZXIsIEpTQ2VsbCogY2VsbCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25FbnN1cmVBcnJheVN0b3JhZ2UsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgSlNDZWxsKiBjZWxs
KSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIyNzgsNyArMjI2MCw3IEBAIGNoYXIqIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uRW5zdXJlQXJyYXlTdG9yYWdlKFZNKiB2bVBvaW50ZXIsIEpT
Q2VsbCogY2VsbCkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkhhc0dlbmVyaWNQcm9wZXJ0eShKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBKU0NlbGwqIHByb3Bl
cnR5KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc0dlbmVyaWNQcm9wZXJ0
eSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBKU0NlbGwqIHByb3BlcnR5KSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjI5OCw3ICsyMjgwLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNHZW5lcmljUHJvcGVydHkoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShq
c0Jvb2xlYW4oYmFzZS0+aGFzUHJvcGVydHlHZW5lcmljKGdsb2JhbE9iamVjdCwgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0T3duUHJvcGVydHkpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluU3RydWN0dXJl
UHJvcGVydHkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlLCBKU1N0
cmluZyogcHJvcGVydHkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5TdHJ1
Y3R1cmVQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0NlbGwqIGJhc2UsIEpTU3RyaW5nKiBwcm9wZXJ0eSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTIzMDcsNyArMjI4OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uSW5TdHJ1Y3R1cmVQcm9wZXJ0eShKU0dsb2JhbE9iamVjdCogZ2xv
YmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oQ29tbW9uU2xvd1BhdGhz
OjpvcEluQnlWYWwoZ2xvYmFsT2JqZWN0LCBiYXNlLCBwcm9wZXJ0eSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNPd25TdHJ1Y3R1cmVQcm9wZXJ0eShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGJhc2UsIEpTU3RyaW5nKiBwcm9w
ZXJ0eSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNPd25TdHJ1Y3R1cmVQ
cm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U0NlbGwqIGJhc2UsIEpTU3RyaW5nKiBwcm9wZXJ0eSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTIzMjAsNyArMjMwMiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uSGFzT3duU3RydWN0dXJlUHJvcGVydHkoSlNHbG9iYWxPYmplY3QqIGdsCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ob2JqZWN0UHJvdG90eXBlSGFzT3du
UHJvcGVydHkoZ2xvYmFsT2JqZWN0LCBiYXNlLCBwcm9wZXJ0eU5hbWUpKSk7CiB9CiAKLXNpemVf
dCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eUJ5SW50KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogYmFzZUNlbGwsIGludDMyX3Qgc3Vic2NyaXB0
LCBpbnQzMl90IGludGVybmFsTWV0aG9kVHlwZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlCeUludCwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlQ2VsbCwgaW50MzJfdCBzdWJzY3JpcHQsIGludDMy
X3QgaW50ZXJuYWxNZXRob2RUeXBlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpA
QCAtMjMzMyw3ICsyMzE1LDcgQEAgc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFzSW5k
ZXhlZFByb3BlcnR5QnlJbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICByZXR1cm4g
b2JqZWN0LT5oYXNQcm9wZXJ0eUdlbmVyaWMoZ2xvYmFsT2JqZWN0LCBzdWJzY3JpcHQsIHN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlPihpbnRlcm5hbE1ldGhvZFR5
cGUpKTsKIH0KIAotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldFByb3BlcnR5RW51
bWVyYXRvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQmFzZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcm9wZXJ0eUVu
dW1lcmF0b3IsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQmFzZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTIzNTAsNyArMjMzMiw3IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRQcm9w
ZXJ0eUVudW1lcmF0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHNjb3BlLCBwcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKGdsb2JhbE9iamVjdCwgYmFz
ZU9iamVjdCkpOwogfQogCi1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0UHJvcGVy
dHlFbnVtZXJhdG9yQ2VsbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNl
bGwpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJvcGVydHlFbnVtZXJh
dG9yQ2VsbCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCog
Y2VsbCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIzNjMsNyArMjM0NSw3
IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRQcm9wZXJ0eUVudW1lcmF0b3JD
ZWxsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3Bl
LCBwcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKGdsb2JhbE9iamVjdCwgYmFzZSkpOwogfQogCi1KU0Nl
bGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9JbmRleFN0cmluZyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBpbnQzMl90IGluZGV4KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblRvSW5kZXhTdHJpbmcsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBpbnQzMl90IGluZGV4KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAt
MjM3MSw3ICsyMzUzLDcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvSW5kZXhT
dHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgaW50MzIKICAgICByZXR1cm4ganNT
dHJpbmcodm0sIElkZW50aWZpZXI6OmZyb20odm0sIGluZGV4KS5zdHJpbmcoKSk7CiB9CiAKLUpT
Q2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdSZWdleHBXaXRoTGFzdEluZGV4KEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogcmVnZXhwUHRyLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkTGFzdEluZGV4KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5l
d1JlZ2V4cFdpdGhMYXN0SW5kZXgsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0NlbGwqIHJlZ2V4cFB0ciwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZExhc3RJbmRleCkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIzODIsNyArMjM2NCw3IEBAIEpT
Q2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdSZWdleHBXaXRoTGFzdEluZGV4KEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0dXJuIFJlZ0V4cE9iamVjdDo6Y3JlYXRlKHZt
LCBnbG9iYWxPYmplY3QtPnJlZ0V4cFN0cnVjdHVyZSgpLCByZWdleHAsIEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkTGFzdEluZGV4KSk7CiB9CiAKLVN0cmluZ0ltcGwqIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUmVzb2x2ZVJvcGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcq
IHN0cmluZykKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZXNvbHZlUm9wZSwg
U3RyaW5nSW1wbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogc3Ry
aW5nKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjM5MSw3ICsyMzczLDcg
QEAgU3RyaW5nSW1wbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25SZXNvbHZlUm9wZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1MKICAgICByZXR1cm4gc3RyaW5nLT52YWx1ZShnbG9i
YWxPYmplY3QpLmltcGwoKTsKIH0KIAotSlNTdHJpbmcqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
U3RyaW5nVmFsdWVPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkQXJndW1lbnQpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3Ry
aW5nVmFsdWVPZiwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwpAQCAtMjQxMCw3ICsyMzkyLDcgQEAgSlNTdHJpbmcqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uU3RyaW5nVmFsdWVPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmMKICAgICBy
ZXR1cm4gbnVsbHB0cjsKIH0KIAotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN0cmlu
Z1N1YnN0cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIGludDMy
X3QgZnJvbSwgaW50MzJfdCBzcGFuKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blN0cmluZ1N1YnN0ciwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Q2VsbCogY2VsbCwgaW50MzJfdCBmcm9tLCBpbnQzMl90IHNwYW4pKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CkBAIC0yNDE5LDcgKzI0MDEsNyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uU3RyaW5nU3Vic3RyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Q2VsbAogICAgIHJldHVybiBqc1N1YnN0cmluZyh2bSwgZ2xvYmFsT2JqZWN0LCBqc0Nhc3Q8SlNT
dHJpbmcqPihjZWxsKSwgZnJvbSwgc3Bhbik7CiB9CiAKLUpTQ2VsbCogSklUX09QRVJBVElPTiBv
cGVyYXRpb25TdHJpbmdTbGljZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwq
IGNlbGwsIGludDMyX3Qgc3RhcnQsIGludDMyX3QgZW5kKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblN0cmluZ1NsaWNlLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDZWxsKiBjZWxsLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGVuZCkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI0MzAsNyArMjQxMiw3IEBAIEpTQ2VsbCog
SklUX09QRVJBVElPTiBvcGVyYXRpb25TdHJpbmdTbGljZShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0NlbGwqCiAgICAgcmV0dXJuIHN0cmluZ1NsaWNlKGdsb2JhbE9iamVjdCwgdm0s
IHN0cmluZywgc3RyaW5nLT5sZW5ndGgoKSwgc3RhcnQsIGVuZCk7CiB9CiAKLUpTU3RyaW5nKiBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvTG93ZXJDYXNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTU3RyaW5nKiBzdHJpbmcsIHVpbnQzMl90IGZhaWxpbmdJbmRleCkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub0xvd2VyQ2FzZSwgSlNTdHJpbmcqLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIHN0cmluZywgdWludDMyX3QgZmFpbGlu
Z0luZGV4KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjQ0OSw3ICsyNDMx
LDcgQEAgSlNTdHJpbmcqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9Mb3dlckNhc2UoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHIKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2Nv
cGUsIGpzU3RyaW5nKHZtLCBsb3dlcmNhc2VkU3RyaW5nKSk7CiB9CiAKLWNoYXIqIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uSW50MzJUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBpbnQzMl90IHZhbHVlLCBpbnQzMl90IHJhZGl4KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkludDMyVG9TdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgaW50MzJfdCB2YWx1ZSwgaW50MzJfdCByYWRpeCkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTI0NjUsNyArMjQ0Nyw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uSW50MzJUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBpbnQzMl90
CiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGludDMyVG9TdHJpbmcodm0sIHZh
bHVlLCByYWRpeCkpOwogfQogCi1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkludDUyVG9T
dHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgaW50NjRfdCB2YWx1ZSwgaW50MzJf
dCByYWRpeCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnQ1MlRvU3RyaW5n
LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGludDY0X3QgdmFsdWUsIGlu
dDMyX3QgcmFkaXgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNDgxLDcg
KzI0NjMsNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkludDUyVG9TdHJpbmcoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgaW50NjRfdAogICAgIHJldHVybiByZWludGVycHJl
dF9jYXN0PGNoYXIqPihpbnQ1MlRvU3RyaW5nKHZtLCB2YWx1ZSwgcmFkaXgpKTsKIH0KIAotY2hh
ciogSklUX09QRVJBVElPTiBvcGVyYXRpb25Eb3VibGVUb1N0cmluZyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBkb3VibGUgdmFsdWUsIGludDMyX3QgcmFkaXgpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uRG91YmxlVG9TdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgZG91YmxlIHZhbHVlLCBpbnQzMl90IHJhZGl4KSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjQ5Nyw3ICsyNDc5LDcgQEAgY2hhciogSklUX09Q
RVJBVElPTiBvcGVyYXRpb25Eb3VibGVUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBkb3VibGUKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obnVtYmVyVG9T
dHJpbmcodm0sIHZhbHVlLCByYWRpeCkpOwogfQogCi1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkludDMyVG9TdHJpbmdXaXRoVmFsaWRSYWRpeChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBpbnQzMl90IHZhbHVlLCBpbnQzMl90IHJhZGl4KQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkludDMyVG9TdHJpbmdXaXRoVmFsaWRSYWRpeCwgY2hhciosIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBpbnQzMl90IHZhbHVlLCBpbnQzMl90IHJhZGl4KSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjUwNiw3ICsyNDg4LDcgQEAgY2hhciog
SklUX09QRVJBVElPTiBvcGVyYXRpb25JbnQzMlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE8KICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oaW50
MzJUb1N0cmluZyh2bSwgdmFsdWUsIHJhZGl4KSk7CiB9CiAKLWNoYXIqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uSW50NTJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIGludDY0X3QgdmFsdWUsIGludDMyX3QgcmFkaXgpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uSW50NTJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4LCBjaGFyKiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGludDY0X3QgdmFsdWUsIGludDMyX3QgcmFkaXgp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNTE1LDcgKzI0OTcsNyBAQCBj
aGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkludDUyVG9TdHJpbmdXaXRoVmFsaWRSYWRpeChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIq
PihpbnQ1MlRvU3RyaW5nKHZtLCB2YWx1ZSwgcmFkaXgpKTsKIH0KIAotY2hhciogSklUX09QRVJB
VElPTiBvcGVyYXRpb25Eb3VibGVUb1N0cmluZ1dpdGhWYWxpZFJhZGl4KEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIGRvdWJsZSB2YWx1ZSwgaW50MzJfdCByYWRpeCkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25Eb3VibGVUb1N0cmluZ1dpdGhWYWxpZFJhZGl4LCBjaGFy
KiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGRvdWJsZSB2YWx1ZSwgaW50MzJfdCBy
YWRpeCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI1MjQsNyArMjUwNiw3
IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRG91YmxlVG9TdHJpbmdXaXRoVmFsaWRS
YWRpeChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
Y2hhcio+KG51bWJlclRvU3RyaW5nKHZtLCB2YWx1ZSwgcmFkaXgpKTsKIH0KIAotSlNTdHJpbmcq
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU2luZ2xlQ2hhcmFjdGVyU3RyaW5nKFZNKiB2bVBvaW50
ZXIsIGludDMyX3QgY2hhcmFjdGVyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blNpbmdsZUNoYXJhY3RlclN0cmluZywgSlNTdHJpbmcqLCAoVk0qIHZtUG9pbnRlciwgaW50MzJf
dCBjaGFyYWN0ZXIpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjUzMyw3ICsyNTE1LDcg
QEAgSlNTdHJpbmcqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU2luZ2xlQ2hhcmFjdGVyU3RyaW5n
KFZNKiB2bVBvaW50ZXIsIGludDMyX3QgY2gKICAgICByZXR1cm4ganNTaW5nbGVDaGFyYWN0ZXJT
dHJpbmcodm0sIHN0YXRpY19jYXN0PFVDaGFyPihjaGFyYWN0ZXIpKTsKIH0KIAotU3ltYm9sKiBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld1N5bWJvbChWTSogdm1Qb2ludGVyKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1N5bWJvbCwgU3ltYm9sKiwgKFZNKiB2bVBvaW50
ZXIpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjU0Miw3ICsyNTI0LDcgQEAgU3ltYm9s
KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld1N5bWJvbChWTSogdm1Qb2ludGVyKQogICAgIHJl
dHVybiBTeW1ib2w6OmNyZWF0ZSh2bSk7CiB9CiAKLVN5bWJvbCogSklUX09QRVJBVElPTiBvcGVy
YXRpb25OZXdTeW1ib2xXaXRoRGVzY3JpcHRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNTdHJpbmcqIGRlc2NyaXB0aW9uKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk5ld1N5bWJvbFdpdGhEZXNjcmlwdGlvbiwgU3ltYm9sKiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTU3RyaW5nKiBkZXNjcmlwdGlvbikpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTI1NTUsNyArMjUzNyw3IEBAIFN5bWJvbCogSklUX09QRVJBVElPTiBv
cGVyYXRpb25OZXdTeW1ib2xXaXRoRGVzY3JpcHRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
CiAgICAgcmV0dXJuIFN5bWJvbDo6Y3JlYXRlV2l0aERlc2NyaXB0aW9uKHZtLCBzdHJpbmcpOwog
fQogCi1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3U3RyaW5nT2JqZWN0KFZNKiB2
bVBvaW50ZXIsIEpTU3RyaW5nKiBzdHJpbmcsIFN0cnVjdHVyZSogc3RydWN0dXJlKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1N0cmluZ09iamVjdCwgSlNDZWxsKiwgKFZN
KiB2bVBvaW50ZXIsIEpTU3RyaW5nKiBzdHJpbmcsIFN0cnVjdHVyZSogc3RydWN0dXJlKSkKIHsK
ICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI1NjQsNyArMjU0Niw3IEBAIEpTQ2VsbCogSklUX09Q
RVJBVElPTiBvcGVyYXRpb25OZXdTdHJpbmdPYmplY3QoVk0qIHZtUG9pbnRlciwgSlNTdHJpbmcq
IHN0cmluZywKICAgICByZXR1cm4gU3RyaW5nT2JqZWN0OjpjcmVhdGUodm0sIHN0cnVjdHVyZSwg
c3RyaW5nKTsKIH0KIAotSlNTdHJpbmcqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9TdHJpbmdP
bkNlbGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvU3RyaW5nT25DZWxsLCBKU1N0cmluZyosIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNTczLDcgKzI1NTUsNyBAQCBKU1N0cmluZyogSklUX09Q
RVJBVElPTiBvcGVyYXRpb25Ub1N0cmluZ09uQ2VsbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKUwogICAgIHJldHVybiBKU1ZhbHVlKGNlbGwpLnRvU3RyaW5nKGdsb2JhbE9iamVjdCk7
CiB9CiAKLUpTU3RyaW5nKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvU3RyaW5nKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvU3RyaW5nLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTI1ODIsNyArMjU2NCw3IEBAIEpTU3RyaW5nKiBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblRvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKCiAgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkudG9TdHJpbmcoZ2xvYmFsT2Jq
ZWN0KTsKIH0KIAotSlNTdHJpbmcqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbFN0cmluZ0Nv
bnN0cnVjdG9yT25DZWxsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2Vs
bCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DYWxsU3RyaW5nQ29uc3RydWN0
b3JPbkNlbGwsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2Vs
bCogY2VsbCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI1OTEsNyArMjU3
Myw3IEBAIEpTU3RyaW5nKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxTdHJpbmdDb25zdHJ1
Y3Rvck9uQ2VsbChKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgcmV0dXJuIHN0cmluZ0NvbnN0cnVj
dG9yKGdsb2JhbE9iamVjdCwgY2VsbCk7CiB9CiAKLUpTU3RyaW5nKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkNhbGxTdHJpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25DYWxsU3RyaW5nQ29uc3RydWN0b3IsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwpAQCAtMjYwMCw3ICsyNTgyLDcgQEAgSlNTdHJpbmcqIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uQ2FsbFN0cmluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAg
ICByZXR1cm4gc3RyaW5nQ29uc3RydWN0b3IoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUo
dmFsdWUpKTsKIH0KIAotSlNTdHJpbmcqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTWFrZVJvcGUy
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBsZWZ0LCBKU1N0cmluZyog
cmlnaHQpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWFrZVJvcGUyLCBKU1N0
cmluZyosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogbGVmdCwgSlNT
dHJpbmcqIHJpZ2h0KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjYwOSw3
ICsyNTkxLDcgQEAgSlNTdHJpbmcqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTWFrZVJvcGUyKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW4KICAgICByZXR1cm4ganNTdHJpbmco
Z2xvYmFsT2JqZWN0LCBsZWZ0LCByaWdodCk7CiB9CiAKLUpTU3RyaW5nKiBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbk1ha2VSb3BlMyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmlu
ZyogYSwgSlNTdHJpbmcqIGIsIEpTU3RyaW5nKiBjKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbk1ha2VSb3BlMywgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNTdHJpbmcqIGEsIEpTU3RyaW5nKiBiLCBKU1N0cmluZyogYykpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI2MTgsNyArMjYwMCw3IEBAIEpTU3RyaW5nKiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbk1ha2VSb3BlMyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1N0cmluCiAgICAgcmV0dXJuIGpzU3RyaW5nKGdsb2JhbE9iamVjdCwgYSwgYiwgYyk7CiB9
CiAKLUpTU3RyaW5nKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN0ckNhdDIoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYSwgRW5jb2RlZEpTVmFsdWUgYikKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJDYXQyLCBKU1N0cmluZyosIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBhLCBFbmNvZGVkSlNWYWx1
ZSBiKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjYzNSw3ICsyNjE3LDcg
QEAgSlNTdHJpbmcqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3RyQ2F0MihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUs
IGpzU3RyaW5nKGdsb2JhbE9iamVjdCwgc3RyMSwgc3RyMikpOwogfQogICAgIAotSlNTdHJpbmcq
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3RyQ2F0MyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSBhLCBFbmNvZGVkSlNWYWx1ZSBiLCBFbmNvZGVkSlNWYWx1ZSBj
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0ckNhdDMsIEpTU3RyaW5nKiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGEsIEVuY29kZWRK
U1ZhbHVlIGIsIEVuY29kZWRKU1ZhbHVlIGMpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC0yNjU1LDcgKzI2MzcsNyBAQCBKU1N0cmluZyogSklUX09QRVJBVElPTiBvcGVyYXRp
b25TdHJDYXQzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKUwogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTihzY29wZSwganNTdHJpbmcoZ2xvYmFsT2JqZWN0LCBzdHIxLCBzdHIy
LCBzdHIzKSk7CiB9CiAKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRmluZFN3aXRjaElt
bVRhcmdldEZvckRvdWJsZShWTSogdm1Qb2ludGVyLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUsIHNpemVfdCB0YWJsZUluZGV4KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkZpbmRTd2l0Y2hJbW1UYXJnZXRGb3JEb3VibGUsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBzaXplX3QgdGFibGVJbmRleCkpCiB7CiAgICAgVk0m
IHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0yNjcxLDcgKzI2NTMsNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkZpbmRTd2l0Y2hJbW1UYXJnZXRGb3JEb3VibGUoVk0qIHZtUG9pbnRlciwgRW5jb2Rl
ZAogICAgIHJldHVybiB0YWJsZS5jdGlEZWZhdWx0LmV4ZWN1dGFibGVBZGRyZXNzPGNoYXIqPigp
OwogfQogCi1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN3aXRjaFN0cmluZyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBzaXplX3QgdGFibGVJbmRleCwgSlNTdHJpbmcqIHN0cmlu
ZykKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hTdHJpbmcsIGNoYXIq
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgc2l6ZV90IHRhYmxlSW5kZXgsIEpTU3Ry
aW5nKiBzdHJpbmcpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNjg1LDI3
ICsyNjY3LDI3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3dpdGNoU3RyaW5nKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHNpemVfdCB0CiAgICAgcmV0dXJuIGNhbGxGcmFt
ZS0+Y29kZUJsb2NrKCktPnN0cmluZ1N3aXRjaEp1bXBUYWJsZSh0YWJsZUluZGV4KS5jdGlGb3JW
YWx1ZShzdHJJbXBsKS5leGVjdXRhYmxlQWRkcmVzczxjaGFyKj4oKTsKIH0KIAotdWludHB0cl90
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxMZXNzKFN0cmluZ0ltcGwq
IGEsIFN0cmluZ0ltcGwqIGIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29t
cGFyZVN0cmluZ0ltcGxMZXNzLCB1aW50cHRyX3QsIChTdHJpbmdJbXBsKiBhLCBTdHJpbmdJbXBs
KiBiKSkKIHsKICAgICByZXR1cm4gY29kZVBvaW50Q29tcGFyZShhLCBiKSA8IDA7CiB9CiAKLXVp
bnRwdHJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsTGVzc0VxKFN0
cmluZ0ltcGwqIGEsIFN0cmluZ0ltcGwqIGIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxMZXNzRXEsIHVpbnRwdHJfdCwgKFN0cmluZ0ltcGwqIGEs
IFN0cmluZ0ltcGwqIGIpKQogewogICAgIHJldHVybiBjb2RlUG9pbnRDb21wYXJlKGEsIGIpIDw9
IDA7CiB9CiAKLXVpbnRwdHJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJ
bXBsR3JlYXRlcihTdHJpbmdJbXBsKiBhLCBTdHJpbmdJbXBsKiBiKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsR3JlYXRlciwgdWludHB0cl90LCAo
U3RyaW5nSW1wbCogYSwgU3RyaW5nSW1wbCogYikpCiB7CiAgICAgcmV0dXJuIGNvZGVQb2ludENv
bXBhcmUoYSwgYikgPiAwOwogfQogCi11aW50cHRyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25D
b21wYXJlU3RyaW5nSW1wbEdyZWF0ZXJFcShTdHJpbmdJbXBsKiBhLCBTdHJpbmdJbXBsKiBiKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsR3JlYXRl
ckVxLCB1aW50cHRyX3QsIChTdHJpbmdJbXBsKiBhLCBTdHJpbmdJbXBsKiBiKSkKIHsKICAgICBy
ZXR1cm4gY29kZVBvaW50Q29tcGFyZShhLCBiKSA+PSAwOwogfQogCi11aW50cHRyX3QgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25Db21wYXJlU3RyaW5nTGVzcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1N0cmluZyogYSwgSlNTdHJpbmcqIGIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0xlc3MsIHVpbnRwdHJfdCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBhLCBKU1N0cmluZyogYikpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI3MTQsNyArMjY5Niw3IEBAIHVpbnRwdHJfdCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdMZXNzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsCiAgICAgcmV0dXJuIGNvZGVQb2ludENvbXBhcmVMZXNzVGhhbihhc1N0cmluZyhhKS0+
dmFsdWUoZ2xvYmFsT2JqZWN0KSwgYXNTdHJpbmcoYiktPnZhbHVlKGdsb2JhbE9iamVjdCkpOwog
fQogCi11aW50cHRyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlU3RyaW5nTGVzc0Vx
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBhLCBKU1N0cmluZyogYikK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nTGVzc0VxLCB1
aW50cHRyX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogYSwgSlNT
dHJpbmcqIGIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNzIzLDcgKzI3
MDUsNyBAQCB1aW50cHRyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlU3RyaW5nTGVz
c0VxKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIHJldHVybiAhY29kZVBvaW50Q29t
cGFyZUxlc3NUaGFuKGFzU3RyaW5nKGIpLT52YWx1ZShnbG9iYWxPYmplY3QpLCBhc1N0cmluZyhh
KS0+dmFsdWUoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLXVpbnRwdHJfdCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkNvbXBhcmVTdHJpbmdHcmVhdGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTU3RyaW5nKiBhLCBKU1N0cmluZyogYikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Db21wYXJlU3RyaW5nR3JlYXRlciwgdWludHB0cl90LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNTdHJpbmcqIGEsIEpTU3RyaW5nKiBiKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwpAQCAtMjczMiw3ICsyNzE0LDcgQEAgdWludHB0cl90IEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uQ29tcGFyZVN0cmluZ0dyZWF0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amUKICAgICByZXR1cm4gY29kZVBvaW50Q29tcGFyZUxlc3NUaGFuKGFzU3RyaW5nKGIpLT52YWx1
ZShnbG9iYWxPYmplY3QpLCBhc1N0cmluZyhhKS0+dmFsdWUoZ2xvYmFsT2JqZWN0KSk7CiB9CiAK
LXVpbnRwdHJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdHcmVhdGVyRXEo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIGEsIEpTU3RyaW5nKiBiKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdHcmVhdGVyRXEs
IHVpbnRwdHJfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBhLCBK
U1N0cmluZyogYikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI3NDEsNyAr
MjcyMyw3IEBAIHVpbnRwdHJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdH
cmVhdGVyRXEoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgcmV0dXJuICFjb2RlUG9pbnRD
b21wYXJlTGVzc1RoYW4oYXNTdHJpbmcoYSktPnZhbHVlKGdsb2JhbE9iamVjdCksIGFzU3RyaW5n
KGIpLT52YWx1ZShnbG9iYWxPYmplY3QpKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbk5vdGlmeVdyaXRlKFZNKiB2bVBvaW50ZXIsIFdhdGNocG9pbnRTZXQqIHNldCkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ob3RpZnlXcml0ZSwgdm9pZCwgKFZNKiB2bVBv
aW50ZXIsIFdhdGNocG9pbnRTZXQqIHNldCkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0y
NzUwLDcgKzI3MzIsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTm90aWZ5V3JpdGUo
Vk0qIHZtUG9pbnRlciwgV2F0Y2hwb2ludFNldCogc2V0KQogICAgIHNldC0+dG91Y2godm0sICJF
eGVjdXRlZCBOb3RpZnlXcml0ZSIpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
VGhyb3dTdGFja092ZXJmbG93Rm9yVmFyYXJncyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0Zv
clZhcmFyZ3MsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjc1OSw3ICsyNzQxLDcgQEAgdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0ZvclZhcmFyZ3MoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE8KICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlKTsKIH0KIAotVUNQVVN0cmljdEludDMyIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU2l6ZU9m
VmFyYXJncyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQXJndW1lbnRzLCB1aW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25TaXplT2ZWYXJhcmdzLCBVQ1BVU3RyaWN0SW50MzIsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnRz
LCB1aW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKQEAgLTI3NjksNyArMjc1MSw3IEBAIFVDUFVTdHJpY3RJbnQzMiBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblNpemVPZlZhcmFyZ3MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAg
cmV0dXJuIHRvVUNQVVN0cmljdEludDMyKHNpemVPZlZhcmFyZ3MoZ2xvYmFsT2JqZWN0LCBhcmd1
bWVudHMsIGZpcnN0VmFyQXJnT2Zmc2V0KSk7CiB9CiAKLXNpemVfdCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkhhc093blByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2Jq
ZWN0KiB0aGlzT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkS2V5KQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc093blByb3BlcnR5LCBzaXplX3QsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogdGhpc09iamVjdCwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEtleSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI3OTAsNyAr
Mjc3Miw3IEBAIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc093blByb3BlcnR5KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IAotc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTnVtYmVySXNJbnRlZ2VyKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbk51bWJlcklzSW50ZWdlciwgc2l6ZV90LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdmFsdWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNzk4LDcgKzI3ODAsNyBAQCBzaXplX3QgSklUX09QRVJB
VElPTiBvcGVyYXRpb25OdW1iZXJJc0ludGVnZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jbwogICAgIHJldHVybiBOdW1iZXJDb25zdHJ1Y3Rvcjo6aXNJbnRlZ2VySW1wbChKU1Zh
bHVlOjpkZWNvZGUodmFsdWUpKTsKIH0KIAotVUNQVVN0cmljdEludDMyIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uQXJyYXlJbmRleE9mU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEJ1dHRlcmZseSogYnV0dGVyZmx5LCBKU1N0cmluZyogc2VhcmNoRWxlbWVudCwgaW50MzJfdCBp
bmRleCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4T2ZTdHJp
bmcsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEJ1dHRl
cmZseSogYnV0dGVyZmx5LCBKU1N0cmluZyogc2VhcmNoRWxlbWVudCwgaW50MzJfdCBpbmRleCkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI4MjMsNyArMjgwNSw3IEBAIFVD
UFVTdHJpY3RJbnQzMiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFycmF5SW5kZXhPZlN0cmluZyhK
U0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIHRvVUNQVVN0cmljdEludDMyKC0xKTsK
IH0KIAotVUNQVVN0cmljdEludDMyIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJyYXlJbmRleE9m
VmFsdWVJbnQzMk9yQ29udGlndW91cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBCdXR0
ZXJmbHkqIGJ1dHRlcmZseSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBpbnQzMl90IGlu
ZGV4KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5SW5kZXhPZlZhbHVl
SW50MzJPckNvbnRpZ3VvdXMsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEJ1dHRlcmZseSogYnV0dGVyZmx5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUsIGludDMyX3QgaW5kZXgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0y
ODQ2LDcgKzI4MjgsNyBAQCBVQ1BVU3RyaWN0SW50MzIgSklUX09QRVJBVElPTiBvcGVyYXRpb25B
cnJheUluZGV4T2ZWYWx1ZUludDMyT3JDb250aWd1b3VzKEpTR2xvYgogICAgIHJldHVybiB0b1VD
UFVTdHJpY3RJbnQzMigtMSk7CiB9CiAKLVVDUFVTdHJpY3RJbnQzMiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkFycmF5SW5kZXhPZlZhbHVlRG91YmxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEJ1dHRlcmZseSogYnV0dGVyZmx5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIGlu
dDMyX3QgaW5kZXgpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlJbmRl
eE9mVmFsdWVEb3VibGUsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEJ1dHRlcmZseSogYnV0dGVyZmx5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IGludDMyX3QgaW5kZXgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yODY4
LDcgKzI4NTAsNyBAQCBVQ1BVU3RyaWN0SW50MzIgSklUX09QRVJBVElPTiBvcGVyYXRpb25BcnJh
eUluZGV4T2ZWYWx1ZURvdWJsZShKU0dsb2JhbE9iamVjdCogZwogICAgIHJldHVybiB0b1VDUFVT
dHJpY3RJbnQzMigtMSk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Mb2FkVmFy
YXJncyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBpbnQzMl90IGZpcnN0RWxlbWVudERl
c3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudHMsIHVpbnQzMl90IG9mZnNldCwgdWlu
dDMyX3QgbGVuZ3RoSW5jbHVkaW5nVGhpcywgdWludDMyX3QgbWFuZGF0b3J5TWluaW11bSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Mb2FkVmFyYXJncywgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGludDMyX3QgZmlyc3RFbGVtZW50RGVzdCwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50cywgdWludDMyX3Qgb2Zmc2V0LCB1aW50MzJfdCBsZW5n
dGhJbmNsdWRpbmdUaGlzLCB1aW50MzJfdCBtYW5kYXRvcnlNaW5pbXVtKSkKIHsKICAgICBWaXJ0
dWFsUmVnaXN0ZXIgZmlyc3RFbGVtZW50IHsgZmlyc3RFbGVtZW50RGVzdCB9OwogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI4ODIsMTkgKzI4NjQsMTkgQEAgdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkxvYWRWYXJhcmdzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIGludDMyX3QgZmkKICAgICAgICAgY2FsbEZyYW1lLT5yKGZpcnN0RWxlbWVudCArIGkpID0g
anNVbmRlZmluZWQoKTsKIH0KIAotZG91YmxlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRk1vZE9u
SW50cyhpbnQzMl90IGEsIGludDMyX3QgYikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25GTW9kT25JbnRzLCBkb3VibGUsIChpbnQzMl90IGEsIGludDMyX3QgYikpCiB7CiAgICAg
cmV0dXJuIGZtb2QoYSwgYik7CiB9CiAKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQotZG91YmxlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uUmFuZG9tKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmFuZG9tLCBkb3VibGUsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSkKIHsKICAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT53
ZWFrUmFuZG9tTnVtYmVyKCk7CiB9CiAjZW5kaWYKIAotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblN0cmluZ0Zyb21DaGFyQ29kZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBp
bnQzMl90IG9wMSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdGcm9t
Q2hhckNvZGUsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBpbnQzMl90
IG9wMSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI5MDIsNyArMjg4NCw3
IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25TdHJpbmdGcm9tQ2hhckNvZGUoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gSlNDOjpzdHJpbmdGcm9tQ2hh
ckNvZGUoZ2xvYmFsT2JqZWN0LCBvcDEpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblN0cmluZ0Zyb21DaGFyQ29kZVVudHlwZWQoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ0Zyb21DaGFyQ29kZVVudHlwZWQsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjkxMiw3ICsyODk0
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25TdHJpbmdGcm9tQ2hh
ckNvZGVVbnR5cGVkKEpTR2xvYmFsT2JqZWN0KgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
SlNDOjpzdHJpbmdGcm9tQ2hhckNvZGUoZ2xvYmFsT2JqZWN0LCBjaEludCkpOwogfQogCi1pbnQ2
NF90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29udmVydEJveGVkRG91YmxlVG9JbnQ1MihFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ29udmVydEJveGVkRG91YmxlVG9JbnQ1MiwgaW50NjRfdCwgKEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkVmFsdWUpOwogICAgIGlmICghdmFsdWUuaXNEb3VibGUoKSkKQEAgLTI5MjAsMTIgKzI5MDIs
MTIgQEAgaW50NjRfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbnZlcnRCb3hlZERvdWJsZVRv
SW50NTIoRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFYKICAgICByZXR1cm4gdHJ5Q29udmVydFRvSW50
NTIodmFsdWUuYXNEb3VibGUoKSk7CiB9CiAKLWludDY0X3QgSklUX09QRVJBVElPTiBvcGVyYXRp
b25Db252ZXJ0RG91YmxlVG9JbnQ1Mihkb3VibGUgdmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQ29udmVydERvdWJsZVRvSW50NTIsIGludDY0X3QsIChkb3VibGUgdmFs
dWUpKQogewogICAgIHJldHVybiB0cnlDb252ZXJ0VG9JbnQ1Mih2YWx1ZSk7CiB9CiAKLWNoYXIq
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3UmF3T2JqZWN0KFZNKiB2bVBvaW50ZXIsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBpbnQzMl90IGxlbmd0aCwgQnV0dGVyZmx5KiBidXR0ZXJmbHkpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3UmF3T2JqZWN0LCBjaGFyKiwgKFZN
KiB2bVBvaW50ZXIsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnQzMl90IGxlbmd0aCwgQnV0dGVy
Zmx5KiBidXR0ZXJmbHkpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjk0OCw3ICsyOTMw
LDcgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdSYXdPYmplY3QoVk0qIHZtUG9p
bnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGkKICAgICByZXR1cm4gYml0d2lzZV9jYXN0PGNo
YXIqPihKU0ZpbmFsT2JqZWN0OjpjcmVhdGVXaXRoQnV0dGVyZmx5KHZtLCBzdHJ1Y3R1cmUsIGJ1
dHRlcmZseSkpOwogfQogCi1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3T2JqZWN0
V2l0aEJ1dHRlcmZseShWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQnV0dGVy
Zmx5KiBidXR0ZXJmbHkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3T2Jq
ZWN0V2l0aEJ1dHRlcmZseSwgSlNDZWxsKiwgKFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRl
cjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBA
IC0yOTY0LDcgKzI5NDYsNyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3T2Jq
ZWN0V2l0aEJ1dHRlcmZseShWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUqCiAgICAgcmV0dXJuIEpT
RmluYWxPYmplY3Q6OmNyZWF0ZVdpdGhCdXR0ZXJmbHkodm0sIHN0cnVjdHVyZSwgYnV0dGVyZmx5
KTsKIH0KIAotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld09iamVjdFdpdGhCdXR0
ZXJmbHlXaXRoSW5kZXhpbmdIZWFkZXJBbmRWZWN0b3JMZW5ndGgoVk0qIHZtUG9pbnRlciwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIHVuc2lnbmVkIGxlbmd0aCwgQnV0dGVyZmx5KiBidXR0ZXJmbHkp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3T2JqZWN0V2l0aEJ1dHRlcmZs
eVdpdGhJbmRleGluZ0hlYWRlckFuZFZlY3Rvckxlbmd0aCwgSlNDZWxsKiwgKFZNKiB2bVBvaW50
ZXIsIFN0cnVjdHVyZSogc3RydWN0dXJlLCB1bnNpZ25lZCBsZW5ndGgsIEJ1dHRlcmZseSogYnV0
dGVyZmx5KSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI5ODYsNyArMjk2OCw3IEBAIEpT
Q2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdPYmplY3RXaXRoQnV0dGVyZmx5V2l0aElu
ZGV4aW5nSGVhZGVyQW5kVmVjdG9yCiAgICAgcmV0dXJuIEpTRmluYWxPYmplY3Q6OmNyZWF0ZVdp
dGhCdXR0ZXJmbHkodm0sIHN0cnVjdHVyZSwgYnV0dGVyZmx5KTsKIH0KIAotSlNDZWxsKiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbk5ld0FycmF5V2l0aFNwcmVhZFNsb3coSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgdm9pZCogYnVmZmVyLCB1aW50MzJfdCBudW1JdGVtcykKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheVdpdGhTcHJlYWRTbG93LCBKU0NlbGwq
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgdm9pZCogYnVmZmVyLCB1aW50MzJfdCBu
dW1JdGVtcykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTMwNTgsNyArMzA0
MCw3IEBAIEpTQ2VsbCogb3BlcmF0aW9uQ3JlYXRlSW1tdXRhYmxlQnV0dGVyZmx5KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIHVuc2lnbmVkCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAK
LUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25TcHJlYWRHZW5lcmljKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogaXRlcmFibGUpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uU3ByZWFkR2VuZXJpYywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQ2VsbCogaXRlcmFibGUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CkBAIC0zMDkyLDcgKzMwNzQsNyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uU3ByZWFkR2VuZXJpYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbAogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU0ltbXV0YWJsZUJ1dHRlcmZseTo6Y3Jl
YXRlRnJvbUFycmF5KGdsb2JhbE9iamVjdCwgdm0sIGFycmF5KSk7CiB9CiAKLUpTQ2VsbCogSklU
X09QRVJBVElPTiBvcGVyYXRpb25TcHJlYWRGYXN0QXJyYXkoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDZWxsKiBjZWxsKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blNwcmVhZEZhc3RBcnJheSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQ2VsbCogY2VsbCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTMxMDUs
NyArMzA4Nyw3IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25TcHJlYWRGYXN0QXJy
YXkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDCiAgICAgcmV0dXJuIEpTSW1tdXRh
YmxlQnV0dGVyZmx5OjpjcmVhdGVGcm9tQXJyYXkoZ2xvYmFsT2JqZWN0LCB2bSwgYXJyYXkpOwog
fQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvY2Vzc1R5cGVQcm9maWxlckxvZ0RG
RyhWTSogdm1Qb2ludGVyKSAKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Qcm9j
ZXNzVHlwZVByb2ZpbGVyTG9nREZHLCB2b2lkLCAoVk0qIHZtUG9pbnRlcikpCiB7CiAgICAgVk0m
IHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0zMTE0LDcgKzMwOTYsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHJvY2Vzc1R5cGVQcm9maWxlckxvZ0RGRyhWTSogdm1Qb2ludGVyKQogICAgIHZtLnR5
cGVQcm9maWxlckxvZygpLT5wcm9jZXNzTG9nRW50cmllcyh2bSwgIkxvZyBGdWxsLCBjYWxsZWQg
ZnJvbSBpbnNpZGUgREZHLiJfcyk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUmVzb2x2ZVNjb3BlRm9ySG9pc3RpbmdGdW5jRGVjbEluRXZhbChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU1Njb3BlKiBzY29wZSwgVW5pcXVlZFN0cmluZ0ltcGwqIGlt
cGwpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVzb2x2ZVNjb3BlRm9ySG9p
c3RpbmdGdW5jRGVjbEluRXZhbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1Njb3BlKiBzY29wZSwgVW5pcXVlZFN0cmluZ0ltcGwqIGltcGwpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMTI0LDcgKzMxMDYsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlc29sdmVTY29wZUZvckhvaXN0aW5nRnVu
Y0RlY2xJbkV2YWwoSlNHbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzb2x2ZWRTY29w
ZSk7CiB9CiAgICAgCi1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVzb2x2ZVNjb3Bl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU2NvcGUqIHNjb3BlLCBVbmlxdWVkU3Ry
aW5nSW1wbCogaW1wbCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZXNvbHZl
U2NvcGUsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Njb3BlKiBz
Y29wZSwgVW5pcXVlZFN0cmluZ0ltcGwqIGltcGwpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CkBAIC0zMTM0LDcgKzMxMTYsNyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUmVzb2x2ZVNjb3BlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU2NvcAogICAg
IHJldHVybiByZXNvbHZlZFNjb3BlOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkdldER5bmFtaWNWYXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNP
YmplY3QqIHNjb3BlLCBVbmlxdWVkU3RyaW5nSW1wbCogaW1wbCwgdW5zaWduZWQgZ2V0UHV0SW5m
b0JpdHMpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0RHluYW1pY1Zhciwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCog
c2NvcGUsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpbXBsLCB1bnNpZ25lZCBnZXRQdXRJbmZvQml0cykp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTMxOTQsNyArMzE3Niw3IEBAIEFM
V0FZU19JTkxJTkUgc3RhdGljIHZvaWQgcHV0RHluYW1pY1ZhcihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBWTSYgdm0sIEpTCiAgICAgc2NvcGUtPm1ldGhvZFRhYmxlKHZtKS0+cHV0KHNj
b3BlLCBnbG9iYWxPYmplY3QsIGlkZW50LCBKU1ZhbHVlOjpkZWNvZGUodmFsdWUpLCBzbG90KTsK
IH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dER5bmFtaWNWYXJTdHJpY3QoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHNjb3BlLCBFbmNvZGVkSlNWYWx1
ZSB2YWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqIGltcGwsIHVuc2lnbmVkIGdldFB1dEluZm9CaXRz
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dER5bmFtaWNWYXJTdHJpY3Qs
IHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogc2NvcGUsIEVu
Y29kZWRKU1ZhbHVlIHZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCogaW1wbCwgdW5zaWduZWQgZ2V0
UHV0SW5mb0JpdHMpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMjAzLDcg
KzMxODUsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0RHluYW1pY1ZhclN0cmlj
dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKUwogICAgIHJldHVybiBwdXREeW5hbWlj
VmFyKGdsb2JhbE9iamVjdCwgdm0sIHNjb3BlLCB2YWx1ZSwgaW1wbCwgZ2V0UHV0SW5mb0JpdHMs
IGlzU3RyaWN0TW9kZSk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXREeW5h
bWljVmFyTm9uU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBz
Y29wZSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpbXBsLCB1bnNp
Z25lZCBnZXRQdXRJbmZvQml0cykKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXREeW5hbWljVmFyTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNPYmplY3QqIHNjb3BlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgVW5pcXVlZFN0cmluZ0lt
cGwqIGltcGwsIHVuc2lnbmVkIGdldFB1dEluZm9CaXRzKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwpAQCAtMzIxMiw3ICszMTk0LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblB1dER5bmFtaWNWYXJOb25TdHJpY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwK
ICAgICByZXR1cm4gcHV0RHluYW1pY1ZhcihnbG9iYWxPYmplY3QsIHZtLCBzY29wZSwgdmFsdWUs
IGltcGwsIGdldFB1dEluZm9CaXRzLCBpc1N0cmljdE1vZGUpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5vcm1hbGl6ZU1hcEtleUhlYXBCaWdJbnQoVk0qIHZt
UG9pbnRlciwgSlNCaWdJbnQqIGlucHV0KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk5vcm1hbGl6ZU1hcEtleUhlYXBCaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoVk0qIHZtUG9p
bnRlciwgSlNCaWdJbnQqIGlucHV0KSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTMyMjAs
NyArMzIwMiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTm9ybWFs
aXplTWFwS2V5SGVhcEJpZ0ludChWTSogdm1Qb2ludGVyLCBKCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShub3JtYWxpemVNYXBLZXkoaW5wdXQpKTsKIH0KIAotVUNQVVN0cmljdEludDMyIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uTWFwSGFzaChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSBpbnB1dCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25NYXBIYXNoLCBVQ1BVU3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSBpbnB1dCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
QEAgLTMyMjksNyArMzIxMSw3IEBAIFVDUFVTdHJpY3RJbnQzMiBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbk1hcEhhc2goSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jCiAgICAgcmV0dXJu
IHRvVUNQVVN0cmljdEludDMyKGpzTWFwSGFzaChnbG9iYWxPYmplY3QsIHZtLCBKU1ZhbHVlOjpk
ZWNvZGUoaW5wdXQpKSk7CiB9CiAKLVVDUFVTdHJpY3RJbnQzMiBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbk1hcEhhc2hIZWFwQmlnSW50KFZNKiB2bVBvaW50ZXIsIEpTQmlnSW50KiBpbnB1dCkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXBIYXNoSGVhcEJpZ0ludCwgVUNQVVN0
cmljdEludDMyLCAoVk0qIHZtUG9pbnRlciwgSlNCaWdJbnQqIGlucHV0KSkKIHsKICAgICBWTSYg
dm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTMyMzgsNyArMzIyMCw3IEBAIFVDUFVTdHJpY3RJbnQzMiBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbk1hcEhhc2hIZWFwQmlnSW50KFZNKiB2bVBvaW50ZXIsIEpTQmlnSW50
CiAgICAgcmV0dXJuIHRvVUNQVVN0cmljdEludDMyKGpzTWFwSGFzaChpbnB1dCkpOwogfQogCi1K
U0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSlNNYXBGaW5kQnVja2V0KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogbWFwLCBFbmNvZGVkSlNWYWx1ZSBrZXksIGludDMy
X3QgaGFzaCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25KU01hcEZpbmRCdWNr
ZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG1hcCwg
RW5jb2RlZEpTVmFsdWUga2V5LCBpbnQzMl90IGhhc2gpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CkBAIC0zMjQ5LDcgKzMyMzEsNyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uSlNNYXBGaW5kQnVja2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQwog
ICAgIHJldHVybiAqYnVja2V0OwogfQogCi1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
SlNTZXRGaW5kQnVja2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogbWFw
LCBFbmNvZGVkSlNWYWx1ZSBrZXksIGludDMyX3QgaGFzaCkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25KU1NldEZpbmRCdWNrZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU0NlbGwqIG1hcCwgRW5jb2RlZEpTVmFsdWUga2V5LCBpbnQzMl90IGhh
c2gpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMjYwLDcgKzMyNDIsNyBA
QCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSlNTZXRGaW5kQnVja2V0KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQwogICAgIHJldHVybiAqYnVja2V0OwogfQogCi1KU0Nl
bGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU2V0QWRkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQ2VsbCogc2V0LCBFbmNvZGVkSlNWYWx1ZSBrZXksIGludDMyX3QgaGFzaCkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXRBZGQsIEpTQ2VsbCosIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIHNldCwgRW5jb2RlZEpTVmFsdWUga2V5LCBp
bnQzMl90IGhhc2gpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMjcxLDcg
KzMyNTMsNyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU2V0QWRkKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogc2V0LAogICAgIHJldHVybiBidWNrZXQ7CiB9
CiAKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25NYXBTZXQoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDZWxsKiBtYXAsIEVuY29kZWRKU1ZhbHVlIGtleSwgRW5jb2RlZEpT
VmFsdWUgdmFsdWUsIGludDMyX3QgaGFzaCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25NYXBTZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0Nl
bGwqIG1hcCwgRW5jb2RlZEpTVmFsdWUga2V5LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgaW50MzJf
dCBoYXNoKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzI4Miw3ICszMjY0
LDcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk1hcFNldChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG1hcCwKICAgICByZXR1cm4gYnVja2V0OwogfQogCi12
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uV2Vha1NldEFkZChWTSogdm1Qb2ludGVyLCBKU0Nl
bGwqIHNldCwgSlNDZWxsKiBrZXksIGludDMyX3QgaGFzaCkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25XZWFrU2V0QWRkLCB2b2lkLCAoVk0qIHZtUG9pbnRlciwgSlNDZWxsKiBz
ZXQsIEpTQ2VsbCoga2V5LCBpbnQzMl90IGhhc2gpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50
ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpA
QCAtMzI5MCw3ICszMjcyLDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbldlYWtTZXRB
ZGQoVk0qIHZtUG9pbnRlciwgSlNDZWxsKiBzZXQsIEpTQ2VsbCoga2V5LAogICAgIGpzQ2FzdDxK
U1dlYWtTZXQqPihzZXQpLT5hZGQodm0sIGFzT2JqZWN0KGtleSksIEpTVmFsdWUoKSwgaGFzaCk7
CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25XZWFrTWFwU2V0KFZNKiB2bVBvaW50
ZXIsIEpTQ2VsbCogbWFwLCBKU0NlbGwqIGtleSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUsIGludDMy
X3QgaGFzaCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XZWFrTWFwU2V0LCB2
b2lkLCAoVk0qIHZtUG9pbnRlciwgSlNDZWxsKiBtYXAsIEpTQ2VsbCoga2V5LCBFbmNvZGVkSlNW
YWx1ZSB2YWx1ZSwgaW50MzJfdCBoYXNoKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTMy
OTgsNyArMzI4MCw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25XZWFrTWFwU2V0KFZN
KiB2bVBvaW50ZXIsIEpTQ2VsbCogbWFwLCBKU0NlbGwqIGtleSwKICAgICBqc0Nhc3Q8SlNXZWFr
TWFwKj4obWFwKS0+YWRkKHZtLCBhc09iamVjdChrZXkpLCBKU1ZhbHVlOjpkZWNvZGUodmFsdWUp
LCBoYXNoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRQ
cm90b3R5cGVPZk9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCog
dGhpc09iamVjdCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcm90b3R5
cGVPZk9iamVjdCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU09iamVjdCogdGhpc09iamVjdCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
QEAgLTMzMDYsNyArMzI4OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uR2V0UHJvdG90eXBlT2ZPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZSh0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGUodm0sIGdsb2JhbE9iamVj
dCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldFByb3Rv
dHlwZU9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcm90b3R5cGVP
ZiwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBA
IC0zMzE1LDcgKzMyOTcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkdldFByb3RvdHlwZU9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUodmFsdWUuZ2V0UHJvdG90eXBlKGdsb2JhbE9iamVjdCkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRGdWxsWWVhcihWTSog
dm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uRGF0ZUdldEZ1bGxZZWFyLCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiB2bVBvaW50ZXIs
IERhdGVJbnN0YW5jZSogZGF0ZSkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMzI3LDcg
KzMzMDksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRG
dWxsWWVhcihWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuYwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPnllYXIoKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENGdWxsWWVhcihWTSogdm1Q
b2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uRGF0ZUdldFVUQ0Z1bGxZZWFyLCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiB2bVBvaW50ZXIs
IERhdGVJbnN0YW5jZSogZGF0ZSkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMzM5LDcg
KzMzMjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRV
VENGdWxsWWVhcihWTSogdm1Qb2ludGVyLCBEYXRlSW5zdAogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPnllYXIoKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRNb250aChWTSogdm1Qb2ludGVy
LCBEYXRlSW5zdGFuY2UqIGRhdGUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
RGF0ZUdldE1vbnRoLCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5j
ZSogZGF0ZSkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMzUxLDcgKzMzMzMsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRNb250aChWTSogdm1Q
b2ludGVyLCBEYXRlSW5zdGFuY2UqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJl
cihncmVnb3JpYW5EYXRlVGltZS0+bW9udGgoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENNb250aChWTSogdm1Qb2ludGVyLCBEYXRlSW5z
dGFuY2UqIGRhdGUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGF0ZUdldFVU
Q01vbnRoLCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0
ZSkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMzYzLDcgKzMzNDUsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENNb250aChWTSogdm1Qb2lu
dGVyLCBEYXRlSW5zdGFuYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3Jl
Z29yaWFuRGF0ZVRpbWUtPm1vbnRoKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25EYXRlR2V0RGF0ZShWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRh
dGUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGF0ZUdldERhdGUsIEVuY29k
ZWRKU1ZhbHVlLCAoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKSkKIHsKICAgICBW
TSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTMzNzUsNyArMzM1Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldERhdGUoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNl
KiBkCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGlt
ZS0+bW9udGhEYXkoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkRhdGVHZXRVVENEYXRlKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EYXRlR2V0VVRDRGF0ZSwgRW5jb2RlZEpT
VmFsdWUsIChWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpKQogewogICAgIFZNJiB2
bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwpAQCAtMzM4Nyw3ICszMzY5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25EYXRlR2V0VVRDRGF0ZShWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5t
b250aERheSgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
RGF0ZUdldERheShWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGF0ZUdldERheSwgRW5jb2RlZEpTVmFsdWUsIChWTSog
dm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50
ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpA
QCAtMzM5OSw3ICszMzgxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25EYXRlR2V0RGF5KFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGEKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT53ZWVrRGF5KCkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRDRGF5
KFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25EYXRlR2V0VVRDRGF5LCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiB2bVBvaW50
ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zNDEx
LDcgKzMzOTMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVH
ZXRVVENEYXkoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKgogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPndlZWtEYXkoKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRIb3VycyhWTSogdm1Q
b2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uRGF0ZUdldEhvdXJzLCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiB2bVBvaW50ZXIsIERhdGVJ
bnN0YW5jZSogZGF0ZSkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zNDIzLDcgKzM0MDUs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRIb3VycyhW
TSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+aG91cigpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFVUQ0hvdXJzKFZNKiB2bVBvaW50ZXIsIERh
dGVJbnN0YW5jZSogZGF0ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EYXRl
R2V0VVRDSG91cnMsIEVuY29kZWRKU1ZhbHVlLCAoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNl
KiBkYXRlKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTM0MzUsNyArMzQxNyw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFVUQ0hvdXJzKFZNKiB2
bVBvaW50ZXIsIERhdGVJbnN0YW5jCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJl
cihncmVnb3JpYW5EYXRlVGltZS0+aG91cigpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldE1pbnV0ZXMoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3Rh
bmNlKiBkYXRlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRhdGVHZXRNaW51
dGVzLCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkp
CiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zNDQ3LDcgKzM0MjksNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRNaW51dGVzKFZNKiB2bVBvaW50ZXIs
IERhdGVJbnN0YW5jZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29y
aWFuRGF0ZVRpbWUtPm1pbnV0ZSgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uRGF0ZUdldFVUQ01pbnV0ZXMoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNl
KiBkYXRlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRhdGVHZXRVVENNaW51
dGVzLCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkp
CiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zNDU5LDcgKzM0NDEsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENNaW51dGVzKFZNKiB2bVBvaW50
ZXIsIERhdGVJbnN0YQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29y
aWFuRGF0ZVRpbWUtPm1pbnV0ZSgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uRGF0ZUdldFNlY29uZHMoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBk
YXRlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRhdGVHZXRTZWNvbmRzLCBF
bmNvZGVkSlNWYWx1ZSwgKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkpCiB7CiAg
ICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zNDcxLDcgKzM0NTMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRTZWNvbmRzKFZNKiB2bVBvaW50ZXIsIERhdGVJ
bnN0YW5jZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0
ZVRpbWUtPnNlY29uZCgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uRGF0ZUdldFVUQ1NlY29uZHMoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRl
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRhdGVHZXRVVENTZWNvbmRzLCBF
bmNvZGVkSlNWYWx1ZSwgKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkpCiB7CiAg
ICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zNDgzLDcgKzM0NjUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENTZWNvbmRzKFZNKiB2bVBvaW50ZXIsIERh
dGVJbnN0YQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0
ZVRpbWUtPnNlY29uZCgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uRGF0ZUdldFRpbWV6b25lT2Zmc2V0KFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSog
ZGF0ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EYXRlR2V0VGltZXpvbmVP
ZmZzZXQsIEVuY29kZWRKU1ZhbHVlLCAoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRl
KSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTM0OTUsNyArMzQ3Nyw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFRpbWV6b25lT2Zmc2V0KFZNKiB2
bVBvaW50ZXIsIERhdGVJCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigtZ3Jl
Z29yaWFuRGF0ZVRpbWUtPnV0Y09mZnNldEluTWludXRlKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0WWVhcihWTSogdm1Qb2ludGVyLCBEYXRl
SW5zdGFuY2UqIGRhdGUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGF0ZUdl
dFllYXIsIEVuY29kZWRKU1ZhbHVlLCAoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRl
KSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTM1MDcsNyArMzQ4OSw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFllYXIoVk0qIHZtUG9pbnRlciwg
RGF0ZUluc3RhbmNlKiBkCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVn
b3JpYW5EYXRlVGltZS0+eWVhcigpIC0gMTkwMCkpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVGhyb3dERkcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdmFsdWVUb1Rocm93KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRo
cm93REZHLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdmFsdWVUb1Rocm93KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzUx
Niw3ICszNDk4LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRocm93REZHKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHUKICAgICBzY29wZS50aHJvd0V4
Y2VwdGlvbihnbG9iYWxPYmplY3QsIEpTVmFsdWU6OmRlY29kZSh2YWx1ZVRvVGhyb3cpKTsKIH0K
IAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRocm93U3RhdGljRXJyb3IoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIG1lc3NhZ2UsIHVpbnQzMl90IGVycm9yVHlw
ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UaHJvd1N0YXRpY0Vycm9yLCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIG1lc3NhZ2UsIHVp
bnQzMl90IGVycm9yVHlwZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTM1
MjYsNyArMzUwOCw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UaHJvd1N0YXRpY0Vy
cm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyCiAgICAgc2NvcGUudGhyb3dF
eGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBjcmVhdGVFcnJvcihnbG9iYWxPYmplY3QsIHN0YXRpY19j
YXN0PEVycm9yVHlwZVdpdGhFeHRlbnNpb24+KGVycm9yVHlwZSksIGVycm9yTWVzc2FnZSkpOwog
fQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0RpcmVjdENhbGwoQ2FsbExpbmtJ
bmZvKiBjYWxsTGlua0luZm8sIEpTRnVuY3Rpb24qIGNhbGxlZSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25MaW5rRGlyZWN0Q2FsbCwgdm9pZCwgKENhbGxMaW5rSW5mbyogY2Fs
bExpbmtJbmZvLCBKU0Z1bmN0aW9uKiBjYWxsZWUpKQogewogICAgIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QgPSBjYWxsZWUtPmdsb2JhbE9iamVjdCgpOwogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKQEAgLTM1NzgsNyArMzU2MCw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25MaW5rRGlyZWN0Q2FsbChDYWxsTGlua0luZm8qIGNhbGxMaW5rSW5mbywgSlNGdW5j
dGlvCiAgICAgbGlua0RpcmVjdEZvcihjYWxsRnJhbWUsICpjYWxsTGlua0luZm8sIGNvZGVCbG9j
aywgY29kZVB0cik7CiB9CiAKLXZvaWQgdHJpZ2dlclJlb3B0aW1pemF0aW9uTm93KENvZGVCbG9j
ayogY29kZUJsb2NrLCBDb2RlQmxvY2sqIG9wdGltaXplZENvZGVCbG9jaywgT1NSRXhpdEJhc2Uq
IGV4aXQpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJpZ2dlclJlb3B0aW1p
emF0aW9uTm93LCB2b2lkLCAoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVCbG9jayogb3B0aW1p
emVkQ29kZUJsb2NrLCBPU1JFeGl0QmFzZSogZXhpdCkpCiB7CiAgICAgLy8gSXQncyBzb3J0IG9m
IHByZWZlcmFibGUgdGhhdCB3ZSBkb24ndCBHQyB3aGlsZSBpbiBoZXJlLiBBbnl3YXlzLCBkb2lu
ZyBzbyB3b3VsZG4ndAogICAgIC8vIHJlYWxseSBiZSBwcm9maXRhYmxlLgpAQCAtMzYzMSwxMSAr
MzYxMyw2IEBAIHZvaWQgdHJpZ2dlclJlb3B0aW1pemF0aW9uTm93KENvZGVCbG9jayogY29kZUJs
b2NrLCBDb2RlQmxvY2sqIG9wdGltaXplZENvZGVCbG9jCiAgICAgb3B0aW1pemVkQ29kZUJsb2Nr
LT5qZXR0aXNvbihQcm9maWxlcjo6SmV0dGlzb25EdWVUb09TUkV4aXQsIENvdW50UmVvcHRpbWl6
YXRpb24pOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVHJpZ2dlclJlb3B0aW1p
emF0aW9uTm93KENvZGVCbG9jayogY29kZUJsb2NrLCBDb2RlQmxvY2sqIG9wdGltaXplZENvZGVC
bG9jaywgT1NSRXhpdEJhc2UqIGV4aXQpCi17Ci0gICAgdHJpZ2dlclJlb3B0aW1pemF0aW9uTm93
KGNvZGVCbG9jaywgb3B0aW1pemVkQ29kZUJsb2NrLCBleGl0KTsKLX0KLQogI2lmIEVOQUJMRShG
VExfSklUKQogc3RhdGljIGJvb2wgc2hvdWxkVHJpZ2dlckZUTENvbXBpbGUoQ29kZUJsb2NrKiBj
b2RlQmxvY2ssIEpJVENvZGUqIGppdENvZGUpCiB7CkBAIC0zNzA2LDcgKzM2ODMsNyBAQCBzdGF0
aWMgdm9pZCB0cmlnZ2VyRlRMUmVwbGFjZW1lbnRDb21waWxlKFZNJiB2bSwgQ29kZUJsb2NrKiBj
b2RlQmxvY2ssIEpJVENvZGUqCiAgICAgICAgIGNvZGVCbG9jaywgQ29tcGlsYXRpb25EZWZlcnJl
ZCk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UcmlnZ2VyVGllclVwTm93KFZN
KiB2bVBvaW50ZXIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJpZ2dlclRp
ZXJVcE5vdywgdm9pZCwgKFZNKiB2bVBvaW50ZXIpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50
ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpA
QCAtMzk2Miw3ICszOTM5LDcgQEAgc3RhdGljIGNoYXIqIHRpZXJVcENvbW1vbihWTSYgdm0sIENh
bGxGcmFtZSogY2FsbEZyYW1lLCBCeXRlY29kZUluZGV4IG9yaWdpbkJ5dGUKICAgICByZXR1cm4g
cmV0YWdDb2RlUHRyPGNoYXIqPihhZGRyZXNzLCBKU0VudHJ5UHRyVGFnLCBiaXR3aXNlX2Nhc3Q8
UHRyVGFnPihjYWxsRnJhbWUpKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRy
aWdnZXJUaWVyVXBOb3dJbkxvb3AoVk0qIHZtUG9pbnRlciwgdW5zaWduZWQgYnl0ZWNvZGVJbmRl
eEJpdHMpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJpZ2dlclRpZXJVcE5v
d0luTG9vcCwgdm9pZCwgKFZNKiB2bVBvaW50ZXIsIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXhCaXRz
KSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTM5OTQsNyArMzk3MSw3IEBAIHZvaWQgSklU
X09QRVJBVElPTiBvcGVyYXRpb25UcmlnZ2VyVGllclVwTm93SW5Mb29wKFZNKiB2bVBvaW50ZXIs
IHVuc2lnbmVkIGJ5dGVjCiAgICAgfQogfQogCi1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blRyaWdnZXJPU1JFbnRyeU5vdyhWTSogdm1Qb2ludGVyLCB1bnNpZ25lZCBieXRlY29kZUluZGV4
Qml0cykKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcmlnZ2VyT1NSRW50cnlO
b3csIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleEJpdHMpKQog
ewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJh
dGlvbnMuaAppbmRleCA5NmUwMjIyMzRhZDkzYWE3NWJmNWY3YTZiNjYzMGU0NmY1ZGYwYjZlLi5j
MWNiNmViYThlOGM2ZGY5NzZmN2VlY2I5YWJkNjIwOTE4YzI3MTQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaApAQCAtNDIsMzA1ICs0MiwzMDQgQEAgc3RydWN0
IE9TUkV4aXRCYXNlOwogCiBleHRlcm4gIkMiIHsKIAotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblN0cmluZ0Zyb21DaGFyQ29kZShKU0dsb2JhbE9iamVjdCosIGludDMyX3QpICBXVEZf
SU5URVJOQUw7IAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25TdHJpbmdG
cm9tQ2hhckNvZGVVbnR5cGVkKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpICBXVEZf
SU5URVJOQUw7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ0Zyb21D
aGFyQ29kZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgaW50MzJfdCkpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdGcm9tQ2hhckNvZGVVbnR5cGVkLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKIAogLy8gVGhl
c2Ugcm91dGluZXMgcHJvdmlkZSBjYWxsYmFja3Mgb3V0IHRvIEMrKyBpbXBsZW1lbnRhdGlvbnMg
b2Ygb3BlcmF0aW9ucyB0b28gY29tcGxleCB0byBKSVQuCi1KU0NlbGwqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uQ2FsbE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFRhcmdldCkgV1RGX0lOVEVSTkFMOwotSlNDZWxsKiBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblRvT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFRhcmdldCwgVW5pcXVlZFN0cmluZ0ltcGwqKSBXVEZfSU5URVJOQUw7Ci1KU0FycmF5KiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbk9iamVjdEtleXMoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNW
YWx1ZSkgV1RGX0lOVEVSTkFMOwotSlNBcnJheSogSklUX09QRVJBVElPTiBvcGVyYXRpb25PYmpl
Y3RLZXlzT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqKSBXVEZfSU5URVJOQUw7Ci1K
U0FycmF5KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9iamVjdEdldE93blByb3BlcnR5TmFtZXMo
SlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotSlNBcnJheSog
SklUX09QRVJBVElPTiBvcGVyYXRpb25PYmplY3RHZXRPd25Qcm9wZXJ0eU5hbWVzT2JqZWN0KEpT
R2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqKSBXVEZfSU5URVJOQUw7Ci1KU0NlbGwqIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uT2JqZWN0Q3JlYXRlKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUpIFdURl9JTlRFUk5BTDsKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25PYmplY3RD
cmVhdGVPYmplY3QoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCopIFdURl9JTlRFUk5BTDsKLUpT
Q2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25DcmVhdGVUaGlzKEpTR2xvYmFsT2JqZWN0Kiwg
SlNPYmplY3QqIGNvbnN0cnVjdG9yLCB1aW50MzJfdCBpbmxpbmVDYXBhY2l0eSkgV1RGX0lOVEVS
TkFMOwotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNyZWF0ZVByb21pc2UoSlNHbG9i
YWxPYmplY3QqLCBKU09iamVjdCogY29uc3RydWN0b3IpIFdURl9JTlRFUk5BTDsKLUpTQ2VsbCog
SklUX09QRVJBVElPTiBvcGVyYXRpb25DcmVhdGVJbnRlcm5hbFByb21pc2UoSlNHbG9iYWxPYmpl
Y3QqLCBKU09iamVjdCogY29uc3RydWN0b3IpIFdURl9JTlRFUk5BTDsKLUpTQ2VsbCogSklUX09Q
RVJBVElPTiBvcGVyYXRpb25DcmVhdGVHZW5lcmF0b3IoSlNHbG9iYWxPYmplY3QqLCBKU09iamVj
dCogY29uc3RydWN0b3IpIFdURl9JTlRFUk5BTDsKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVy
YXRpb25DcmVhdGVBc3luY0dlbmVyYXRvcihKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBjb25z
dHJ1Y3RvcikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25Ub1RoaXMoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxKSBX
VEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvVGhp
c1N0cmljdChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEpIFdURl9J
TlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNb2Qo
SlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblZhbHVlQml0Tm90KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMSkgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25WYWx1ZUJpdEFuZChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVCaXRPcihKU0dsb2JhbE9iamVjdCosIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdURl9J
TlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVCaXRY
b3IoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblZhbHVlQml0TFNoaWZ0KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwot
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUJpdFJTaGlmdChKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDIpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVmFsdWVCaXRVUlNoaWZ0KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZE5vdE51bWJlcihKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDIpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVmFsdWVEaXYoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlUG93KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFM
OwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25JbmMoSlNHbG9iYWxPYmpl
Y3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlYyhKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDEpIFdURl9JTlRFUk5BTDsKLWRvdWJsZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkFyaXRoQWJzKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MSkgV1RGX0lOVEVSTkFMOwotVUNQVVN0cmljdEludDMyIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
QXJpdGhDbHozMihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEpIFdU
Rl9JTlRFUk5BTDsKLWRvdWJsZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFyaXRoRlJvdW5kKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSkgV1RGX0lOVEVSTkFMOwot
ZG91YmxlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJpdGhTcXJ0KEpTR2xvYmFsT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSkgV1RGX0lOVEVSTkFMOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25DYWxsT2JqZWN0Q29uc3RydWN0b3IsIEpTQ2VsbCosIChKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRUYXJnZXQpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9PYmplY3QsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRUYXJnZXQsIFVuaXF1ZWRTdHJpbmdJbXBsKikpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RLZXlzLCBKU0FycmF5Kiwg
KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uT2JqZWN0S2V5c09iamVjdCwgSlNBcnJheSosIChKU0dsb2JhbE9iamVj
dCosIEpTT2JqZWN0KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PYmpl
Y3RHZXRPd25Qcm9wZXJ0eU5hbWVzLCBKU0FycmF5KiwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT2JqZWN0R2V0
T3duUHJvcGVydHlOYW1lc09iamVjdCwgSlNBcnJheSosIChKU0dsb2JhbE9iamVjdCosIEpTT2Jq
ZWN0KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RDcmVhdGUs
IEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9iamVjdENyZWF0ZU9iamVjdCwgSlNDZWxsKiwgKEpT
R2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNyZWF0ZVRoaXMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBj
b25zdHJ1Y3RvciwgdWludDMyX3QgaW5saW5lQ2FwYWNpdHkpKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlUHJvbWlzZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0
KiwgSlNPYmplY3QqIGNvbnN0cnVjdG9yKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNyZWF0ZUludGVybmFsUHJvbWlzZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0Kiwg
SlNPYmplY3QqIGNvbnN0cnVjdG9yKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNyZWF0ZUdlbmVyYXRvciwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3Qq
IGNvbnN0cnVjdG9yKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0
ZUFzeW5jR2VuZXJhdG9yLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogY29u
c3RydWN0b3IpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9UaGlzLCBF
bmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub1RoaXNTdHJpY3QsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlTW9kLCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25WYWx1ZUJpdE5vdCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDEpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uVmFsdWVCaXRBbmQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSk7CitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlQml0T3IsIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVl
Qml0WG9yLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25WYWx1ZUJpdExTaGlmdCwgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVCaXRS
U2hpZnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlQml0VVJTaGlmdCwgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVBZGRO
b3ROdW1iZXIsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlRGl2LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZVBvdywgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uSW5jLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25E
ZWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFyaXRoQWJzLCBk
b3VibGUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJpdGhDbHozMiwgVUNQVVN0cmljdElu
dDMyLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxKSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFyaXRoRlJvdW5kLCBkb3VibGUsIChKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQXJpdGhTcXJ0LCBkb3VibGUsIChKU0dsb2JhbE9iamVjdCos
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEpKTsKIAogI2RlZmluZSBERkdfQVJJVEhfVU5BUlko
Y2FwaXRhbGl6ZWROYW1lLCBsb3dlck5hbWUpIFwKLWRvdWJsZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkFyaXRoIyNjYXBpdGFsaXplZE5hbWUoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AxKSBXVEZfSU5URVJOQUw7Ci0gICAgRk9SX0VBQ0hfREZHX0FSSVRIX1VOQVJZ
X09QKERGR19BUklUSF9VTkFSWSkKKyAgICBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkFyaXRoIyNjYXBpdGFsaXplZE5hbWUsIGRvdWJsZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMSkpOworRk9SX0VBQ0hfREZHX0FSSVRIX1VOQVJZX09QKERG
R19BUklUSF9VTkFSWSkKICN1bmRlZiBERkdfQVJJVEhfVU5BUlkKIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25Bcml0aFJvdW5kKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uQXJpdGhGbG9vcihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5U
RVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFyaXRoQ2VpbChK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFyaXRoVHJ1bmMoSlNHbG9iYWxPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25HZXRCeVZhbENlbGwoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkUHJvcGVydHkpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxPYmplY3RJbnQoSlNHbG9iYWxPYmplY3QqLCBK
U09iamVjdCosIGludDMyX3QpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uR2V0QnlWYWxTdHJpbmdJbnQoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmlu
ZyosIGludDMyX3QpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uR2V0QnlWYWxPYmplY3RTdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBK
U0NlbGwqIHN0cmluZykgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25HZXRCeVZhbE9iamVjdFN5bWJvbChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCos
IEpTQ2VsbCogc3ltYm9sKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblRvUHJpbWl0aXZlKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUp
IFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9Q
cm9wZXJ0eUtleShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvTnVtYmVyKEpTR2xvYmFs
T2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uVG9OdW1lcmljKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uQ2FsbE51bWJlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUp
OwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbFdpdGhUaGlz
KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25HZXRQcm90b3R5cGVPZihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSBXVEZf
SU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldFByb3Rv
dHlwZU9mT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqKSBXVEZfSU5URVJOQUw7Ci1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc0dlbmVyaWNQcm9wZXJ0eShK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBKU0NlbGwqKTsKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFzT3duU3RydWN0dXJlUHJvcGVydHkoSlNHbG9iYWxP
YmplY3QqLCBKU0NlbGwqLCBKU1N0cmluZyopOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25JblN0cnVjdHVyZVByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwg
SlNTdHJpbmcqKTsKLXNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9w
ZXJ0eUJ5SW50KEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgaW50MzJfdCwgaW50MzJfdCk7Ci1K
U0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0UHJvcGVydHlFbnVtZXJhdG9yKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpOwotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkdldFByb3BlcnR5RW51bWVyYXRvckNlbGwoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKTsK
LUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25Ub0luZGV4U3RyaW5nKEpTR2xvYmFsT2Jq
ZWN0KiwgaW50MzJfdCk7Ci1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3UmVnZXhw
V2l0aExhc3RJbmRleChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlKSBX
VEZfSU5URVJOQUw7Ci1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0FycmF5KEpTR2xv
YmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgdm9pZCosIHNpemVfdCkgV1RGX0lOVEVSTkFMOwotY2hh
ciogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdFbXB0eUFycmF5KFZNKiwgU3RydWN0dXJlKikg
V1RGX0lOVEVSTkFMOwotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdBcnJheVdpdGhT
aXplKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgaW50MzJfdCwgQnV0dGVyZmx5KikgV1RG
X0lOVEVSTkFMOwotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdBcnJheVdpdGhTaXpl
QW5kSGludChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGludDMyX3QsIGludDMyX3QsIEJ1
dHRlcmZseSopIFdURl9JTlRFUk5BTDsKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3
SW50OEFycmF5V2l0aFNpemUoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnQzMl90LCBj
aGFyKikgV1RGX0lOVEVSTkFMOwotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdJbnQ4
QXJyYXlXaXRoT25lQXJndW1lbnQoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBFbmNvZGVk
SlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdJ
bnQxNkFycmF5V2l0aFNpemUoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnQzMl90LCBj
aGFyKikgV1RGX0lOVEVSTkFMOwotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdJbnQx
NkFycmF5V2l0aE9uZUFyZ3VtZW50KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgRW5jb2Rl
ZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3
SW50MzJBcnJheVdpdGhTaXplKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgaW50MzJfdCwg
Y2hhciopIFdURl9JTlRFUk5BTDsKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3SW50
MzJBcnJheVdpdGhPbmVBcmd1bWVudChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEVuY29k
ZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5l
d1VpbnQ4QXJyYXlXaXRoU2l6ZShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGludDMyX3Qs
IGNoYXIqKSBXVEZfSU5URVJOQUw7Ci1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld1Vp
bnQ4QXJyYXlXaXRoT25lQXJndW1lbnQoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBFbmNv
ZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25O
ZXdVaW50OENsYW1wZWRBcnJheVdpdGhTaXplKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwg
aW50MzJfdCwgY2hhciopIFdURl9JTlRFUk5BTDsKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uTmV3VWludDhDbGFtcGVkQXJyYXlXaXRoT25lQXJndW1lbnQoSlNHbG9iYWxPYmplY3QqLCBT
dHJ1Y3R1cmUqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotY2hhciogSklUX09QRVJB
VElPTiBvcGVyYXRpb25OZXdVaW50MTZBcnJheVdpdGhTaXplKEpTR2xvYmFsT2JqZWN0KiwgU3Ry
dWN0dXJlKiwgaW50MzJfdCwgY2hhciopIFdURl9JTlRFUk5BTDsKLWNoYXIqIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uTmV3VWludDE2QXJyYXlXaXRoT25lQXJndW1lbnQoSlNHbG9iYWxPYmplY3Qq
LCBTdHJ1Y3R1cmUqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotY2hhciogSklUX09Q
RVJBVElPTiBvcGVyYXRpb25OZXdVaW50MzJBcnJheVdpdGhTaXplKEpTR2xvYmFsT2JqZWN0Kiwg
U3RydWN0dXJlKiwgaW50MzJfdCwgY2hhciopIFdURl9JTlRFUk5BTDsKLWNoYXIqIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uTmV3VWludDMyQXJyYXlXaXRoT25lQXJndW1lbnQoSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmUqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotY2hhciogSklU
X09QRVJBVElPTiBvcGVyYXRpb25OZXdGbG9hdDMyQXJyYXlXaXRoU2l6ZShKU0dsb2JhbE9iamVj
dCosIFN0cnVjdHVyZSosIGludDMyX3QsIGNoYXIqKSBXVEZfSU5URVJOQUw7Ci1jaGFyKiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbk5ld0Zsb2F0MzJBcnJheVdpdGhPbmVBcmd1bWVudChKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZSosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci1jaGFy
KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0Zsb2F0NjRBcnJheVdpdGhTaXplKEpTR2xvYmFs
T2JqZWN0KiwgU3RydWN0dXJlKiwgaW50MzJfdCwgY2hhciopIFdURl9JTlRFUk5BTDsKLWNoYXIq
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3RmxvYXQ2NEFycmF5V2l0aE9uZUFyZ3VtZW50KEpT
R2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsK
LUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdBcnJheUl0ZXJhdG9yKFZNKiwgU3Ry
dWN0dXJlKikgV1RGX0lOVEVSTkFMOwotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5l
d01hcEl0ZXJhdG9yKFZNKiwgU3RydWN0dXJlKikgV1RGX0lOVEVSTkFMOwotSlNDZWxsKiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbk5ld1NldEl0ZXJhdG9yKFZNKiwgU3RydWN0dXJlKikgV1RGX0lO
VEVSTkFMOwotCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxTdHJpY3QoSlNH
bG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpIFdURl9JTlRFUk5B
TDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbE5vblN0cmljdChKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkgV1RGX0lOVEVSTkFMOwot
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN0cmljdChKU0dsb2JhbE9i
amVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHV0QnlWYWxDZWxsTm9uU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
IFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbENlbGxT
dHJpbmdTdHJpY3QoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU0NlbGwqIHN0cmluZywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0QnlWYWxDZWxsU3RyaW5nTm9uU3RyaWN0KEpTR2xvYmFsT2JqZWN0Kiwg
SlNDZWxsKiwgSlNDZWxsKiBzdHJpbmcsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkgV1RG
X0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN5bWJv
bFN0cmljdChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEpTQ2VsbCogc3ltYm9sLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25QdXRCeVZhbENlbGxTeW1ib2xOb25TdHJpY3QoSlNHbG9iYWxPYmplY3QqLCBKU0Nl
bGwqLCBKU0NlbGwqIHN5bWJvbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSBXVEZfSU5U
RVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJv
dW5kc1N0cmljdChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgaW50MzJfdCBpbmRleCwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdChKU0dsb2JhbE9i
amVjdCosIEpTT2JqZWN0KiwgaW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxE
aXJlY3RCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0
KiwgaW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSBXVEZfSU5URVJO
QUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RTdHJpY3QoSlNH
bG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpIFdURl9JTlRFUk5B
TDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbERpcmVjdE5vblN0cmljdChK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkgV1RGX0lOVEVS
TkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmlj
dChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0
eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsTm9uU3RyaWN0KEpTR2xvYmFsT2Jq
ZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25QdXRCeVZhbERpcmVjdENlbGxTdHJpbmdTdHJpY3QoSlNHbG9iYWxPYmplY3QqLCBKU0Nl
bGwqLCBKU0NlbGwqIHN0cmluZywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSBXVEZfSU5U
RVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3Ry
aW5nTm9uU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiBzdHJpbmcsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN5bWJvbFN0cmljdChKU0dsb2JhbE9iamVj
dCosIEpTQ2VsbCosIEpTQ2VsbCogc3ltYm9sLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
IFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbERpcmVj
dENlbGxTeW1ib2xOb25TdHJpY3QoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU0NlbGwqIHN5
bWJvbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmlj
dChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgaW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdChKU0dsb2JhbE9iamVj
dCosIEpTT2JqZWN0KiwgaW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0RG91YmxlQnlW
YWxCZXlvbmRBcnJheUJvdW5kc1N0cmljdChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgaW50
MzJfdCBpbmRleCwgZG91YmxlIHZhbHVlKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0RG91YmxlQnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdChKU0ds
b2JhbE9iamVjdCosIEpTT2JqZWN0KiwgaW50MzJfdCBpbmRleCwgZG91YmxlIHZhbHVlKSBXVEZf
SU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0RG91YmxlQnlWYWxEaXJl
Y3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgaW50
MzJfdCBpbmRleCwgZG91YmxlIHZhbHVlKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0RG91YmxlQnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc05vblN0cmlj
dChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgaW50MzJfdCBpbmRleCwgZG91YmxlIHZhbHVl
KSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZFdpdGhU
aGlzKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSwgdWludHB0cl90KSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUHV0QnlJZFdpdGhUaGlzU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSBXVEZfSU5U
RVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxXaXRoVGhpcyhKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHV0QnlWYWxXaXRoVGhpc1N0cmljdChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZf
SU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5
KEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUsIGludDMyX3QpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25E
ZWZpbmVEYXRhUHJvcGVydHlTdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIEpTU3Ry
aW5nKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHlTdHJpbmdJZGVudChKU0dsb2JhbE9i
amVjdCosIEpTT2JqZWN0KiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBFbmNvZGVkSlNWYWx1ZSwgaW50
MzJfdCkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlZmluZURh
dGFQcm9wZXJ0eVN5bWJvbChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgU3ltYm9sKiwgRW5j
b2RlZEpTVmFsdWUsIGludDMyX3QpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSwgSlNPYmplY3QqLCBKU09iamVjdCosIGludDMyX3QpIFdURl9JTlRF
Uk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5
U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBKU1N0cmluZyosIEpTT2JqZWN0Kiwg
SlNPYmplY3QqLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN0cmluZ0lkZW50KEpTR2xvYmFsT2JqZWN0Kiwg
SlNPYmplY3QqLCBVbmlxdWVkU3RyaW5nSW1wbCosIEpTT2JqZWN0KiwgSlNPYmplY3QqLCBpbnQz
Ml90KSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVmaW5lQWNj
ZXNzb3JQcm9wZXJ0eVN5bWJvbChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgU3ltYm9sKiwg
SlNPYmplY3QqLCBKU09iamVjdCosIGludDMyX3QpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJyYXlQdXNoKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBKU0FycmF5KikgV1RGX0lOVEVSTkFMOwotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25BcnJheVB1c2hNdWx0aXBsZShKU0dsb2Jh
bE9iamVjdCosIEpTQXJyYXkqLCB2b2lkKiBidWZmZXIsIGludDMyX3QgZWxlbWVudENvdW50KSBX
VEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFycmF5
UHVzaERvdWJsZShKU0dsb2JhbE9iamVjdCosIGRvdWJsZSB2YWx1ZSwgSlNBcnJheSopIFdURl9J
TlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJyYXlQdXNo
RG91YmxlTXVsdGlwbGUoSlNHbG9iYWxPYmplY3QqLCBKU0FycmF5Kiwgdm9pZCogYnVmZmVyLCBp
bnQzMl90IGVsZW1lbnRDb3VudCkgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25BcnJheVBvcChKU0dsb2JhbE9iamVjdCosIEpTQXJyYXkqKSBXVEZf
SU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFycmF5UG9w
QW5kUmVjb3Zlckxlbmd0aChKU0dsb2JhbE9iamVjdCosIEpTQXJyYXkqKSBXVEZfSU5URVJOQUw7
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cEV4ZWNTdHJpbmco
SlNHbG9iYWxPYmplY3QqLCBSZWdFeHBPYmplY3QqLCBKU1N0cmluZyopIFdURl9JTlRFUk5BTDsK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVnRXhwRXhlYyhKU0dsb2Jh
bE9iamVjdCosIFJlZ0V4cE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cEV4ZWNHZW5lcmljKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJO
QUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cEV4ZWNOb25H
bG9iYWxPclN0aWNreShKU0dsb2JhbE9iamVjdCosIFJlZ0V4cCosIEpTU3RyaW5nKikgV1RGX0lO
VEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBNYXRj
aEZhc3RHbG9iYWxTdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBSZWdFeHAqLCBKU1N0cmluZyopIFdU
Rl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVnRXhw
TWF0Y2hGYXN0U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgUmVnRXhwT2JqZWN0KiwgSlNTdHJpbmcq
KSBXVEZfSU5URVJOQUw7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFyaXRo
Um91bmQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Bcml0aEZsb29yLCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJpdGhDZWlsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQXJpdGhUcnVuYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVu
Y29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5
VmFsQ2VsbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25HZXRCeVZhbE9iamVjdEludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCosIEpTT2JqZWN0KiwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25HZXRCeVZhbFN0cmluZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCos
IEpTU3RyaW5nKiwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25HZXRCeVZhbE9iamVjdFN0cmluZywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCos
IEpTQ2VsbCosIEpTQ2VsbCogc3RyaW5nKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkdldEJ5VmFsT2JqZWN0U3ltYm9sLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiBzeW1ib2wpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uVG9QcmltaXRpdmUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25U
b1Byb3BlcnR5S2V5LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9OdW1iZXIsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub051bWVyaWMsIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25DYWxsTnVtYmVyQ29uc3RydWN0b3IsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25HZXRCeVZhbFdpdGhUaGlzLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcm90b3R5cGVPZiwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByb3RvdHlwZU9mT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkhhc0dlbmVyaWNQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBKU0NlbGwqKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkhhc093blN0cnVjdHVyZVByb3BlcnR5LCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgSlNTdHJpbmcqKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluU3RydWN0dXJlUHJvcGVydHksIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU1N0cmluZyopKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5QnlJbnQsIHNpemVfdCwgKEpT
R2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgaW50MzJfdCwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcm9wZXJ0eUVudW1lcmF0b3IsIEpTQ2VsbCosIChK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkdldFByb3BlcnR5RW51bWVyYXRvckNlbGwsIEpTQ2VsbCosIChKU0dsb2Jh
bE9iamVjdCosIEpTQ2VsbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
VG9JbmRleFN0cmluZywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgaW50MzJfdCkpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdSZWdleHBXaXRoTGFzdEluZGV4LCBK
U0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheSwgY2hhciosIChKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZSosIHZvaWQqLCBzaXplX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTmV3RW1wdHlBcnJheSwgY2hhciosIChWTSosIFN0cnVjdHVyZSop
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZSwg
Y2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGludDMyX3QsIEJ1dHRlcmZseSop
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZUFu
ZEhpbnQsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnQzMl90LCBpbnQz
Ml90LCBCdXR0ZXJmbHkqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5l
d0ludDhBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwg
aW50MzJfdCwgY2hhciopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3
SW50OEFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlKiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uTmV3SW50MTZBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlKiwgaW50MzJfdCwgY2hhciopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uTmV3SW50MTZBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsb2JhbE9iamVjdCos
IFN0cnVjdHVyZSosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbk5ld0ludDMyQXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCos
IFN0cnVjdHVyZSosIGludDMyX3QsIGNoYXIqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbk5ld0ludDMyQXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmUqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25OZXdVaW50OEFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnQzMl90LCBjaGFyKikpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25OZXdVaW50OEFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpT
R2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDhDbGFtcGVkQXJyYXlXaXRoU2l6ZSwgY2hh
ciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGludDMyX3QsIGNoYXIqKSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQ4Q2xhbXBlZEFycmF5V2l0aE9u
ZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgRW5jb2RlZEpT
VmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDE2QXJy
YXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGludDMyX3Qs
IGNoYXIqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQxNkFy
cmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwg
RW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3
VWludDMyQXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSos
IGludDMyX3QsIGNoYXIqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5l
d1VpbnQzMkFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3Ry
dWN0dXJlKiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uTmV3RmxvYXQzMkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBT
dHJ1Y3R1cmUqLCBpbnQzMl90LCBjaGFyKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25OZXdGbG9hdDMyQXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmUqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25OZXdGbG9hdDY0QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZSosIGludDMyX3QsIGNoYXIqKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk5ld0Zsb2F0NjRBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhcios
IChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5SXRlcmF0b3IsIEpTQ2VsbCosIChW
TSosIFN0cnVjdHVyZSopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3
TWFwSXRlcmF0b3IsIEpTQ2VsbCosIChWTSosIFN0cnVjdHVyZSopKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3U2V0SXRlcmF0b3IsIEpTQ2VsbCosIChWTSosIFN0cnVj
dHVyZSopKTsKKworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbFN0
cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsTm9uU3Ry
aWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxsU3Ry
aWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxOb25TdHJpY3QsIHZvaWQsIChKU0ds
b2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblB1dEJ5VmFsQ2VsbFN0cmluZ1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0Kiwg
SlNDZWxsKiwgSlNDZWxsKiBzdHJpbmcsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxTdHJpbmdOb25T
dHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEpTQ2VsbCogc3RyaW5nLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0QnlWYWxDZWxsU3ltYm9sU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU0NlbGwqLCBKU0NlbGwqIHN5bWJvbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN5bWJvbE5v
blN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiBzeW1ib2ws
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqLCBKU09iamVjdCosIGludDMyX3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbEJl
eW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVj
dCosIGludDMyX3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91
bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIGludDMyX3Qg
aW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQ
cm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3RyaWN0LCB2b2lkLCAo
SlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHks
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmluZ1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0Kiwg
SlNDZWxsKiwgSlNDZWxsKiBzdHJpbmcsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxTdHJp
bmdOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEpTQ2VsbCogc3Ry
aW5nLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3ltYm9sU3RyaWN0LCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU0NlbGwqIHN5bWJvbCwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFs
RGlyZWN0Q2VsbFN5bWJvbE5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxs
KiwgSlNDZWxsKiBzeW1ib2wsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91
bmRzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIGludDMyX3QgaW5k
ZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIGludDMyX3QgaW5kZXgsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxP
YmplY3QqLCBKU09iamVjdCosIGludDMyX3QgaW5kZXgsIGRvdWJsZSB2YWx1ZSkpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91
bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIGludDMyX3Qg
aW5kZXgsIGRvdWJsZSB2YWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXREb3VibGVCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqLCBKU09iamVjdCosIGludDMyX3QgaW5kZXgsIGRvdWJsZSB2YWx1ZSkpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbERpcmVjdEJl
eW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVj
dCosIGludDMyX3QgaW5kZXgsIGRvdWJsZSB2YWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QdXRCeUlkV2l0aFRoaXMsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEVu
Y29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkV2l0aFRoaXNTdHJp
Y3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QdXRCeVZhbFdpdGhUaGlzLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNv
ZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbFdpdGhUaGlz
U3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHksIHZvaWQsIChKU0dsb2JhbE9i
amVjdCosIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0
eVN0cmluZywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBKU1N0cmluZyosIEVu
Y29kZWRKU1ZhbHVlLCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkRlZmluZURhdGFQcm9wZXJ0eVN0cmluZ0lkZW50LCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU09iamVjdCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3Qp
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5
U3ltYm9sLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIFN5bWJvbCosIEVuY29k
ZWRKU1ZhbHVlLCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkRlZmluZUFjY2Vzc29yUHJvcGVydHksIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0
KiwgRW5jb2RlZEpTVmFsdWUsIEpTT2JqZWN0KiwgSlNPYmplY3QqLCBpbnQzMl90KSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHlTdHJp
bmcsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgSlNTdHJpbmcqLCBKU09iamVj
dCosIEpTT2JqZWN0KiwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5U3RyaW5nSWRlbnQsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCosIEpTT2JqZWN0KiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBKU09iamVjdCosIEpTT2JqZWN0
KiwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVB
Y2Nlc3NvclByb3BlcnR5U3ltYm9sLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCos
IFN5bWJvbCosIEpTT2JqZWN0KiwgSlNPYmplY3QqLCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgSlNBcnJheSopKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlQdXNoTXVsdGlwbGUsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0FycmF5Kiwgdm9pZCogYnVmZmVyLCBpbnQzMl90
IGVsZW1lbnRDb3VudCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJh
eVB1c2hEb3VibGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBkb3VibGUgdmFs
dWUsIEpTQXJyYXkqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5
UHVzaERvdWJsZU11bHRpcGxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNB
cnJheSosIHZvaWQqIGJ1ZmZlciwgaW50MzJfdCBlbGVtZW50Q291bnQpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlQb3AsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqLCBKU0FycmF5KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25BcnJheVBvcEFuZFJlY292ZXJMZW5ndGgsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqLCBKU0FycmF5KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdF
eHBFeGVjU3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgUmVnRXhwT2Jq
ZWN0KiwgSlNTdHJpbmcqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJl
Z0V4cEV4ZWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBSZWdFeHBPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25S
ZWdFeHBFeGVjR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29k
ZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25SZWdFeHBFeGVjTm9uR2xvYmFsT3JTdGlja3ksIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqLCBSZWdFeHAqLCBKU1N0cmluZyopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUmVnRXhwTWF0Y2hGYXN0R2xvYmFsU3RyaW5nLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiwgUmVnRXhwKiwgSlNTdHJpbmcqKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cE1hdGNoRmFzdFN0cmluZywgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCosIFJlZ0V4cE9iamVjdCosIEpTU3RyaW5nKikpOwogLy8gVGhl
c2UgY29tcGFyaXNvbnMgcmV0dXJuIGEgYm9vbGVhbiB3aXRoaW4gYSBzaXplX3Qgc3VjaCB0aGF0
IHRoZSB2YWx1ZSBpcyB6ZXJvIGV4dGVuZGVkIHRvIGZpbGwgdGhlIHJlZ2lzdGVyLgotc2l6ZV90
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVnRXhwVGVzdFN0cmluZyhKU0dsb2JhbE9iamVjdCos
IFJlZ0V4cE9iamVjdCosIEpTU3RyaW5nKikgV1RGX0lOVEVSTkFMOwotc2l6ZV90IEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uUmVnRXhwVGVzdChKU0dsb2JhbE9iamVjdCosIFJlZ0V4cE9iamVjdCos
IEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci1zaXplX3QgSklUX09QRVJBVElPTiBvcGVy
YXRpb25SZWdFeHBUZXN0R2VuZXJpYyhKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uQ29tcGFyZVN0cmljdEVxQ2VsbChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogb3AxLCBKU0Nl
bGwqIG9wMikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25TdWJIZWFwQmlnSW50KEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBvcDEsIEpTQ2VsbCog
b3AyKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bk11bEhlYXBCaWdJbnQoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIp
IFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTW9k
SGVhcEJpZ0ludChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikgV1RG
X0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXZIZWFw
QmlnSW50KEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSBXVEZfSU5U
RVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblBvd0hlYXBCaWdJ
bnQoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIpIFdURl9JTlRFUk5B
TDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQml0QW5kSGVhcEJpZ0lu
dChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikgV1RGX0lOVEVSTkFM
OwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25CaXROb3RIZWFwQmlnSW50
KEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBvcDEpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQml0T3JIZWFwQmlnSW50KEpTR2xvYmFsT2JqZWN0
KiwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkJpdExTaGlmdEhlYXBCaWdJbnQoSlNHbG9iYWxPYmpl
Y3QqLCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQWRkSGVhcEJpZ0ludChKU0dsb2JhbE9iamVjdCos
IEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25CaXRSU2hpZnRIZWFwQmlnSW50KEpTR2xvYmFsT2JqZWN0
KiwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkJpdFhvckhlYXBCaWdJbnQoSlNHbG9iYWxPYmplY3Qq
LCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIpIFdURl9JTlRFUk5BTDsKLXNpemVfdCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblNhbWVWYWx1ZShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkNyZWF0ZUFjdGl2YXRpb25EaXJlY3QoVk0qLCBTdHJ1Y3R1cmUqLCBKU1Njb3BlKiwg
U3ltYm9sVGFibGUqLCBFbmNvZGVkSlNWYWx1ZSk7Ci1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uQ3JlYXRlRGlyZWN0QXJndW1lbnRzKFZNKiwgU3RydWN0dXJlKiwgdWludDMyX3QgbGVu
Z3RoLCB1aW50MzJfdCBtaW5DYXBhY2l0eSk7Ci1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uQ3JlYXRlRGlyZWN0QXJndW1lbnRzRHVyaW5nRXhpdChWTSosIElubGluZUNhbGxGcmFtZSos
IEpTRnVuY3Rpb24qLCB1aW50MzJfdCBhcmd1bWVudENvdW50KTsKLUpTQ2VsbCogSklUX09QRVJB
VElPTiBvcGVyYXRpb25DcmVhdGVTY29wZWRBcmd1bWVudHMoSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmUqLCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwgdWludDMyX3QgbGVuZ3RoLCBKU0Z1bmN0
aW9uKiBjYWxsZWUsIEpTTGV4aWNhbEVudmlyb25tZW50Kik7Ci1KU0NlbGwqIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzRHVyaW5nRXhpdChWTSosIElubGluZUNh
bGxGcmFtZSosIEpTRnVuY3Rpb24qLCB1aW50MzJfdCBhcmd1bWVudENvdW50KTsKLUpTQ2VsbCog
SklUX09QRVJBVElPTiBvcGVyYXRpb25DcmVhdGVDbG9uZWRBcmd1bWVudHMoSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmUqLCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwgdWludDMyX3QgbGVuZ3Ro
LCBKU0Z1bmN0aW9uKiBjYWxsZWUpOwotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNy
ZWF0ZUFyZ3VtZW50c0J1dHRlcmZseShKU0dsb2JhbE9iamVjdCosIFJlZ2lzdGVyKiBhcmd1bWVu
dFN0YXJ0LCB1aW50MzJfdCBhcmd1bWVudENvdW50KTsKLUpTQ2VsbCogSklUX09QRVJBVElPTiBv
cGVyYXRpb25DcmVhdGVSZXN0KEpTR2xvYmFsT2JqZWN0KiwgUmVnaXN0ZXIqIGFyZ3VtZW50U3Rh
cnQsIHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRzVG9Ta2lwLCB1bnNpZ25lZCBhcnJheVNpemUp
OwotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0FycmF5QnVmZmVyKFZNKiwgU3Ry
dWN0dXJlKiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblNldEFkZChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlLCBp
bnQzMl90KSBXVEZfSU5URVJOQUw7Ci1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTWFw
U2V0KEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
V2Vha1NldEFkZChWTSosIEpTQ2VsbCosIEpTQ2VsbCosIGludDMyX3QpIFdURl9JTlRFUk5BTDsK
LXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25XZWFrTWFwU2V0KFZNKiwgSlNDZWxsKiwgSlND
ZWxsKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpIFdURl9JTlRFUk5BTDsKLWRvdWJsZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkZNb2RPbkludHMoaW50MzJfdCwgaW50MzJfdCkgV1RGX0lOVEVS
TkFMOwotc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVHlwZU9mSXNPYmplY3QoSlNHbG9i
YWxPYmplY3QqLCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7Ci1zaXplX3QgSklUX09QRVJBVElPTiBv
cGVyYXRpb25UeXBlT2ZJc0Z1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKikgV1RGX0lO
VEVSTkFMOwotc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT2JqZWN0SXNDYWxsYWJsZShK
U0dsb2JhbE9iamVjdCosIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKLXNpemVfdCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbklzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSkgV1RGX0lOVEVSTkFMOwotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblR5cGVPZk9i
amVjdChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKLWNoYXIqIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uQWxsb2NhdGVTaW1wbGVQcm9wZXJ0eVN0b3JhZ2VXaXRoSW5pdGlh
bENhcGFjaXR5KFZNKikgV1RGX0lOVEVSTkFMOwotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRp
b25BbGxvY2F0ZVNpbXBsZVByb3BlcnR5U3RvcmFnZShWTSosIHNpemVfdCBuZXdTaXplKSBXVEZf
SU5URVJOQUw7Ci1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFsbG9jYXRlQ29tcGxleFBy
b3BlcnR5U3RvcmFnZVdpdGhJbml0aWFsQ2FwYWNpdHkoVk0qLCBKU09iamVjdCopIFdURl9JTlRF
Uk5BTDsKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQWxsb2NhdGVDb21wbGV4UHJvcGVy
dHlTdG9yYWdlKFZNKiwgSlNPYmplY3QqLCBzaXplX3QgbmV3U2l6ZSkgV1RGX0lOVEVSTkFMOwot
Y2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25FbnN1cmVJbnQzMihWTSosIEpTQ2VsbCopOwot
Y2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25FbnN1cmVEb3VibGUoVk0qLCBKU0NlbGwqKTsK
LWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRW5zdXJlQ29udGlndW91cyhWTSosIEpTQ2Vs
bCopOwotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25FbnN1cmVBcnJheVN0b3JhZ2UoVk0q
LCBKU0NlbGwqKTsKLVN0cmluZ0ltcGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVzb2x2ZVJv
cGUoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyopOwotSlNTdHJpbmcqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uU2luZ2xlQ2hhcmFjdGVyU3RyaW5nKFZNKiwgaW50MzJfdCk7Ci0KLUpTQ2VsbCog
SklUX09QRVJBVElPTiBvcGVyYXRpb25TdHJpbmdTdWJzdHIoSlNHbG9iYWxPYmplY3QqLCBKU0Nl
bGwqLCBpbnQzMl90LCBpbnQzMl90KTsKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25T
dHJpbmdTbGljZShKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIGludDMyX3QsIGludDMyX3QpOwot
SlNTdHJpbmcqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3RyaW5nVmFsdWVPZihKU0dsb2JhbE9i
amVjdCosIEVuY29kZWRKU1ZhbHVlKTsKLUpTU3RyaW5nKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blRvTG93ZXJDYXNlKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCB1aW50MzJfdCk7Ci0KLWNo
YXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW50MzJUb1N0cmluZyhKU0dsb2JhbE9iamVjdCos
IGludDMyX3QsIGludDMyX3QpOwotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25JbnQ1MlRv
U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgaW50NjRfdCwgaW50MzJfdCk7Ci1jaGFyKiBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkRvdWJsZVRvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgZG91YmxlLCBp
bnQzMl90KTsKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW50MzJUb1N0cmluZ1dpdGhW
YWxpZFJhZGl4KEpTR2xvYmFsT2JqZWN0KiwgaW50MzJfdCwgaW50MzJfdCk7Ci1jaGFyKiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkludDUyVG9TdHJpbmdXaXRoVmFsaWRSYWRpeChKU0dsb2JhbE9i
amVjdCosIGludDY0X3QsIGludDMyX3QpOwotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25E
b3VibGVUb1N0cmluZ1dpdGhWYWxpZFJhZGl4KEpTR2xvYmFsT2JqZWN0KiwgZG91YmxlLCBpbnQz
Ml90KTsKLQotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Ob3JtYWxpemVN
YXBLZXlIZWFwQmlnSW50KFZNKiwgSlNCaWdJbnQqKSBXVEZfSU5URVJOQUw7Ci1VQ1BVU3RyaWN0
SW50MzIgSklUX09QRVJBVElPTiBvcGVyYXRpb25NYXBIYXNoKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUgaW5wdXQpOwotVUNQVVN0cmljdEludDMyIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uTWFwSGFzaEhlYXBCaWdJbnQoVk0qLCBKU0JpZ0ludCopOwotSlNDZWxsKiBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkpTTWFwRmluZEJ1Y2tldChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVu
Y29kZWRKU1ZhbHVlLCBpbnQzMl90KTsKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25K
U1NldEZpbmRCdWNrZXQoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwg
aW50MzJfdCk7Ci0KLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUGFyc2VJ
bnROb1JhZGl4R2VuZXJpYyhKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKTsKLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUGFyc2VJbnRTdHJpbmdOb1JhZGl4KEpT
R2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqKTsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUGFyc2VJbnRTdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyosIGludDMy
X3QpOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25QYXJzZUludEdlbmVy
aWMoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCk7Ci0KLVN5bWJvbCog
SklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdTeW1ib2woVk0qKTsKLVN5bWJvbCogSklUX09QRVJB
VElPTiBvcGVyYXRpb25OZXdTeW1ib2xXaXRoRGVzY3JpcHRpb24oSlNHbG9iYWxPYmplY3QqLCBK
U1N0cmluZyopOwotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld1N0cmluZ09iamVj
dChWTSosIEpTU3RyaW5nKiwgU3RydWN0dXJlKik7Ci1KU1N0cmluZyogSklUX09QRVJBVElPTiBv
cGVyYXRpb25Ub1N0cmluZ09uQ2VsbChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopOwotSlNTdHJp
bmcqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU1N0cmluZyogSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsU3RyaW5n
Q29uc3RydWN0b3JPbkNlbGwoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKTsKLUpTU3RyaW5nKiBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxTdHJpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlKTsKLUpTU3RyaW5nKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk1h
a2VSb3BlMihKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwgSlNTdHJpbmcqKTsKLUpTU3RyaW5n
KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk1ha2VSb3BlMyhKU0dsb2JhbE9iamVjdCosIEpTU3Ry
aW5nKiwgSlNTdHJpbmcqLCBKU1N0cmluZyopOwotSlNTdHJpbmcqIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uU3RyQ2F0MihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSk7Ci1KU1N0cmluZyogSklUX09QRVJBVElPTiBvcGVyYXRpb25TdHJDYXQzKEpTR2xvYmFs
T2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7
Ci1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkZpbmRTd2l0Y2hJbW1UYXJnZXRGb3JEb3Vi
bGUoVk0qLCBFbmNvZGVkSlNWYWx1ZSwgc2l6ZV90IHRhYmxlSW5kZXgpOwotY2hhciogSklUX09Q
RVJBVElPTiBvcGVyYXRpb25Td2l0Y2hTdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBzaXplX3QgdGFi
bGVJbmRleCwgSlNTdHJpbmcqKTsKLXVpbnRwdHJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNv
bXBhcmVTdHJpbmdJbXBsTGVzcyhTdHJpbmdJbXBsKiwgU3RyaW5nSW1wbCopOwotdWludHB0cl90
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxMZXNzRXEoU3RyaW5nSW1w
bCosIFN0cmluZ0ltcGwqKTsKLXVpbnRwdHJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBh
cmVTdHJpbmdJbXBsR3JlYXRlcihTdHJpbmdJbXBsKiwgU3RyaW5nSW1wbCopOwotdWludHB0cl90
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxHcmVhdGVyRXEoU3RyaW5n
SW1wbCosIFN0cmluZ0ltcGwqKTsKLXVpbnRwdHJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNv
bXBhcmVTdHJpbmdMZXNzKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBKU1N0cmluZyopOwot
dWludHB0cl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZVN0cmluZ0xlc3NFcShKU0ds
b2JhbE9iamVjdCosIEpTU3RyaW5nKiwgSlNTdHJpbmcqKTsKLXVpbnRwdHJfdCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdHcmVhdGVyKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJp
bmcqLCBKU1N0cmluZyopOwotdWludHB0cl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFy
ZVN0cmluZ0dyZWF0ZXJFcShKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwgSlNTdHJpbmcqKTsK
LXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Ob3RpZnlXcml0ZShWTSosIFdhdGNocG9pbnRT
ZXQqKTsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dGb3JW
YXJhcmdzKEpTR2xvYmFsT2JqZWN0KikgV1RGX0lOVEVSTkFMOwotVUNQVVN0cmljdEludDMyIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uU2l6ZU9mVmFyYXJncyhKU0dsb2JhbE9iamVjdCosIEVuY29k
ZWRKU1ZhbHVlIGFyZ3VtZW50cywgdWludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQpOwotdm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxvYWRWYXJhcmdzKEpTR2xvYmFsT2JqZWN0KiwgaW50MzJf
dCBmaXJzdEVsZW1lbnREZXN0LCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMsIHVpbnQzMl90IG9m
ZnNldCwgdWludDMyX3QgbGVuZ3RoLCB1aW50MzJfdCBtYW5kYXRvcnlNaW5pbXVtKTsKLXZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25UaHJvd0RGRyhKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlKTsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UaHJvd1N0YXRpY0Vycm9yKEpT
R2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCB1aW50MzJfdCk7Ci0KLXNpemVfdCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkhhc093blByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSk7Ci0KLVVDUFVTdHJpY3RJbnQzMiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkFycmF5SW5kZXhPZlN0cmluZyhKU0dsb2JhbE9iamVjdCosIEJ1dHRlcmZseSosIEpTU3RyaW5n
KiwgaW50MzJfdCk7Ci1VQ1BVU3RyaWN0SW50MzIgSklUX09QRVJBVElPTiBvcGVyYXRpb25BcnJh
eUluZGV4T2ZWYWx1ZURvdWJsZShKU0dsb2JhbE9iamVjdCosIEJ1dHRlcmZseSosIEVuY29kZWRK
U1ZhbHVlLCBpbnQzMl90KTsKLVVDUFVTdHJpY3RJbnQzMiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkFycmF5SW5kZXhPZlZhbHVlSW50MzJPckNvbnRpZ3VvdXMoSlNHbG9iYWxPYmplY3QqLCBCdXR0
ZXJmbHkqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCk7Ci0KLUpTQ2VsbCogSklUX09QRVJBVElP
TiBvcGVyYXRpb25TcHJlYWRGYXN0QXJyYXkoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKTsKLUpT
Q2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25TcHJlYWRHZW5lcmljKEpTR2xvYmFsT2JqZWN0
KiwgSlNDZWxsKik7Ci1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3QXJyYXlXaXRo
U3ByZWFkU2xvdyhKU0dsb2JhbE9iamVjdCosIHZvaWQqLCB1aW50MzJfdCk7Ci1KU0NlbGwqIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uQ3JlYXRlSW1tdXRhYmxlQnV0dGVyZmx5KEpTR2xvYmFsT2Jq
ZWN0KiwgdW5zaWduZWQgbGVuZ3RoKTsKLQotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blJlc29sdmVTY29wZShKU0dsb2JhbE9iamVjdCosIEpTU2NvcGUqLCBVbmlxdWVkU3RyaW5nSW1w
bCopOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZXNvbHZlU2NvcGVG
b3JIb2lzdGluZ0Z1bmNEZWNsSW5FdmFsKEpTR2xvYmFsT2JqZWN0KiwgSlNTY29wZSosIFVuaXF1
ZWRTdHJpbmdJbXBsKik7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdl
dER5bmFtaWNWYXIoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogc2NvcGUsIFVuaXF1ZWRTdHJp
bmdJbXBsKiwgdW5zaWduZWQpOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dER5bmFt
aWNWYXJTdHJpY3QoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogc2NvcGUsIEVuY29kZWRKU1Zh
bHVlLCBVbmlxdWVkU3RyaW5nSW1wbCosIHVuc2lnbmVkKTsKLXZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25QdXREeW5hbWljVmFyTm9uU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3Qq
IHNjb3BlLCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqLCB1bnNpZ25lZCk7Ci0K
LWludDY0X3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db252ZXJ0Qm94ZWREb3VibGVUb0ludDUy
KEVuY29kZWRKU1ZhbHVlKTsKLWludDY0X3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db252ZXJ0
RG91YmxlVG9JbnQ1Mihkb3VibGUpOwotCi1zaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25O
dW1iZXJJc0ludGVnZXIoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSk7Ci0KLWNoYXIq
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3UmF3T2JqZWN0KFZNKiwgU3RydWN0dXJlKiwgaW50
MzJfdCwgQnV0dGVyZmx5KikgV1RGX0lOVEVSTkFMOwotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbk5ld09iamVjdFdpdGhCdXR0ZXJmbHkoVk0qLCBTdHJ1Y3R1cmUqLCBCdXR0ZXJmbHkq
KSBXVEZfSU5URVJOQUw7Ci1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3T2JqZWN0
V2l0aEJ1dHRlcmZseVdpdGhJbmRleGluZ0hlYWRlckFuZFZlY3Rvckxlbmd0aChWTSosIFN0cnVj
dHVyZSosIHVuc2lnbmVkIGxlbmd0aCwgQnV0dGVyZmx5KikgV1RGX0lOVEVSTkFMOwotCi12b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0RpcmVjdENhbGwoQ2FsbExpbmtJbmZvKiwgSlNG
dW5jdGlvbiopIFdURl9JTlRFUk5BTDsKLQotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25EYXRlR2V0RnVsbFllYXIoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENGdWxsWWVh
cihWTSosIERhdGVJbnN0YW5jZSopIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldE1vbnRoKFZNKiwgRGF0ZUluc3RhbmNlKikgV1RGX0lO
VEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRD
TW9udGgoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXREYXRlKFZNKiwgRGF0ZUluc3RhbmNlKikgV1RG
X0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0
VVRDRGF0ZShWTSosIERhdGVJbnN0YW5jZSopIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldERheShWTSosIERhdGVJbnN0YW5jZSopIFdU
Rl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdl
dFVUQ0RheShWTSosIERhdGVJbnN0YW5jZSopIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldEhvdXJzKFZNKiwgRGF0ZUluc3RhbmNlKikg
V1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRl
R2V0VVRDSG91cnMoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRNaW51dGVzKFZNKiwgRGF0ZUluc3Rh
bmNlKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25EYXRlR2V0VVRDTWludXRlcyhWTSosIERhdGVJbnN0YW5jZSopIFdURl9JTlRFUk5BTDsKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFNlY29uZHMoVk0qLCBE
YXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkRhdGVHZXRVVENTZWNvbmRzKFZNKiwgRGF0ZUluc3RhbmNlKikgV1RGX0lOVEVS
TkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VGltZXpv
bmVPZmZzZXQoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRZZWFyKFZNKiwgRGF0ZUluc3RhbmNlKikg
V1RGX0lOVEVSTkFMOwotCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvY2Vzc1R5cGVQ
cm9maWxlckxvZ0RGRyhWTSopIFdURl9JTlRFUk5BTDsKLQotdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblRyaWdnZXJSZW9wdGltaXphdGlvbk5vdyhDb2RlQmxvY2sqIGJhc2VsaW5lQ29kZUJs
b2NrLCBDb2RlQmxvY2sqIG9wdGlpbXplZENvZGVCbG9jaywgT1NSRXhpdEJhc2UqKSBXVEZfSU5U
RVJOQUw7Ci12b2lkIHRyaWdnZXJSZW9wdGltaXphdGlvbk5vdyhDb2RlQmxvY2sqIGJhc2VsaW5l
Q29kZUJsb2NrLCBDb2RlQmxvY2sqIG9wdGlpbXplZENvZGVCbG9jaywgT1NSRXhpdEJhc2UqKTsg
Ly8gVGhpcyBpcyBub3QgSklUX09QRVJBVElPTi4KK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUmVnRXhwVGVzdFN0cmluZywgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBSZWdF
eHBPYmplY3QqLCBKU1N0cmluZyopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUmVnRXhwVGVzdCwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBSZWdFeHBPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdF
eHBUZXN0R2VuZXJpYywgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29t
cGFyZVN0cmljdEVxQ2VsbCwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSwg
SlNDZWxsKiBvcDIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3ViSGVh
cEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogb3AxLCBK
U0NlbGwqIG9wMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NdWxIZWFw
QmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBvcDEsIEpT
Q2VsbCogb3AyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1vZEhlYXBC
aWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSwgSlND
ZWxsKiBvcDIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGl2SGVhcEJp
Z0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogb3AxLCBKU0Nl
bGwqIG9wMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Qb3dIZWFwQmln
SW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBvcDEsIEpTQ2Vs
bCogb3AyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkJpdEFuZEhlYXBC
aWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSwgSlND
ZWxsKiBvcDIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQml0Tm90SGVh
cEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogb3AxKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkJpdE9ySGVhcEJpZ0ludCwgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25CaXRMU2hpZnRIZWFwQmlnSW50
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBvcDEsIEpTQ2VsbCog
b3AyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFkZEhlYXBCaWdJbnQs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBv
cDIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQml0UlNoaWZ0SGVhcEJp
Z0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogb3AxLCBKU0Nl
bGwqIG9wMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25CaXRYb3JIZWFw
QmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBvcDEsIEpT
Q2VsbCogb3AyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNhbWVWYWx1
ZSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQWN0aXZhdGlv
bkRpcmVjdCwgSlNDZWxsKiwgKFZNKiwgU3RydWN0dXJlKiwgSlNTY29wZSosIFN5bWJvbFRhYmxl
KiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q3JlYXRlRGlyZWN0QXJndW1lbnRzLCBKU0NlbGwqLCAoVk0qLCBTdHJ1Y3R1cmUqLCB1aW50MzJf
dCBsZW5ndGgsIHVpbnQzMl90IG1pbkNhcGFjaXR5KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNyZWF0ZURpcmVjdEFyZ3VtZW50c0R1cmluZ0V4aXQsIEpTQ2VsbCosIChW
TSosIElubGluZUNhbGxGcmFtZSosIEpTRnVuY3Rpb24qLCB1aW50MzJfdCBhcmd1bWVudENvdW50
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVNjb3BlZEFyZ3Vt
ZW50cywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgUmVnaXN0ZXIqIGFy
Z3VtZW50U3RhcnQsIHVpbnQzMl90IGxlbmd0aCwgSlNGdW5jdGlvbiogY2FsbGVlLCBKU0xleGlj
YWxFbnZpcm9ubWVudCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3Jl
YXRlQ2xvbmVkQXJndW1lbnRzRHVyaW5nRXhpdCwgSlNDZWxsKiwgKFZNKiwgSW5saW5lQ2FsbEZy
YW1lKiwgSlNGdW5jdGlvbiosIHVpbnQzMl90IGFyZ3VtZW50Q291bnQpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzLCBKU0NlbGwqLCAo
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwgdWlu
dDMyX3QgbGVuZ3RoLCBKU0Z1bmN0aW9uKiBjYWxsZWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQ3JlYXRlQXJndW1lbnRzQnV0dGVyZmx5LCBKU0NlbGwqLCAoSlNHbG9i
YWxPYmplY3QqLCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwgdWludDMyX3QgYXJndW1lbnRDb3Vu
dCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVSZXN0LCBKU0Nl
bGwqLCAoSlNHbG9iYWxPYmplY3QqLCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwgdW5zaWduZWQg
bnVtYmVyT2ZBcmd1bWVudHNUb1NraXAsIHVuc2lnbmVkIGFycmF5U2l6ZSkpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheUJ1ZmZlciwgSlNDZWxsKiwgKFZNKiwg
U3RydWN0dXJlKiwgSlNDZWxsKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25TZXRBZGQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1Zh
bHVlLCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hcFNl
dCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlLCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbldlYWtTZXRBZGQsIHZvaWQsIChWTSosIEpTQ2VsbCosIEpTQ2VsbCosIGludDMyX3QpKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Vha01hcFNldCwgdm9pZCwgKFZN
KiwgSlNDZWxsKiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRk1vZE9uSW50cywgZG91YmxlLCAoaW50MzJfdCwg
aW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UeXBlT2ZJc09i
amVjdCwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblR5cGVPZklzRnVuY3Rpb24sIHNpemVfdCwgKEpTR2xvYmFs
T2JqZWN0KiwgSlNDZWxsKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25P
YmplY3RJc0NhbGxhYmxlLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXNDb25zdHJ1Y3Rvciwgc2l6ZV90LCAo
SlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25UeXBlT2ZPYmplY3QsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpT
Q2VsbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVTaW1w
bGVQcm9wZXJ0eVN0b3JhZ2VXaXRoSW5pdGlhbENhcGFjaXR5LCBjaGFyKiwgKFZNKikpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZVNpbXBsZVByb3BlcnR5U3Rv
cmFnZSwgY2hhciosIChWTSosIHNpemVfdCBuZXdTaXplKSk7CitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlQ29tcGxleFByb3BlcnR5U3RvcmFnZVdpdGhJbml0aWFs
Q2FwYWNpdHksIGNoYXIqLCAoVk0qLCBKU09iamVjdCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQWxsb2NhdGVDb21wbGV4UHJvcGVydHlTdG9yYWdlLCBjaGFyKiwgKFZN
KiwgSlNPYmplY3QqLCBzaXplX3QgbmV3U2l6ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25FbnN1cmVJbnQzMiwgY2hhciosIChWTSosIEpTQ2VsbCopKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW5zdXJlRG91YmxlLCBjaGFyKiwgKFZNKiwgSlND
ZWxsKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnN1cmVDb250aWd1
b3VzLCBjaGFyKiwgKFZNKiwgSlNDZWxsKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25FbnN1cmVBcnJheVN0b3JhZ2UsIGNoYXIqLCAoVk0qLCBKU0NlbGwqKSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlc29sdmVSb3BlLCBTdHJpbmdJbXBsKiwg
KEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblNpbmdsZUNoYXJhY3RlclN0cmluZywgSlNTdHJpbmcqLCAoVk0qLCBpbnQzMl90
KSk7CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nU3Vic3RyLCBK
U0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBpbnQzMl90LCBpbnQzMl90KSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ1NsaWNlLCBKU0NlbGwqLCAo
SlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBpbnQzMl90LCBpbnQzMl90KSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ1ZhbHVlT2YsIEpTU3RyaW5nKiwgKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uVG9Mb3dlckNhc2UsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJp
bmcqLCB1aW50MzJfdCkpOworCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbklu
dDMyVG9TdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBpbnQzMl90LCBpbnQzMl90KSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDUyVG9TdHJpbmcsIGNoYXIq
LCAoSlNHbG9iYWxPYmplY3QqLCBpbnQ2NF90LCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkRvdWJsZVRvU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0
KiwgZG91YmxlLCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkludDMyVG9TdHJpbmdXaXRoVmFsaWRSYWRpeCwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIGlu
dDMyX3QsIGludDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW50
NTJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgaW50NjRf
dCwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Eb3VibGVU
b1N0cmluZ1dpdGhWYWxpZFJhZGl4LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgZG91YmxlLCBp
bnQzMl90KSk7CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTm9ybWFsaXpl
TWFwS2V5SGVhcEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChWTSosIEpTQmlnSW50KikpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXBIYXNoLCBVQ1BVU3RyaWN0SW50MzIs
IChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGlucHV0KSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hcEhhc2hIZWFwQmlnSW50LCBVQ1BVU3RyaWN0SW50MzIs
IChWTSosIEpTQmlnSW50KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25K
U01hcEZpbmRCdWNrZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29k
ZWRKU1ZhbHVlLCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkpTU2V0RmluZEJ1Y2tldCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5j
b2RlZEpTVmFsdWUsIGludDMyX3QpKTsKKworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25QYXJzZUludE5vUmFkaXhHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUGFyc2VJbnRTdHJpbmdOb1JhZGl4LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiwgSlNTdHJpbmcqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNl
SW50U3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBp
bnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNlSW50R2Vu
ZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBp
bnQzMl90KSk7CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3U3ltYm9s
LCBTeW1ib2wqLCAoVk0qKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5l
d1N5bWJvbFdpdGhEZXNjcmlwdGlvbiwgU3ltYm9sKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJp
bmcqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1N0cmluZ09iamVj
dCwgSlNDZWxsKiwgKFZNKiwgSlNTdHJpbmcqLCBTdHJ1Y3R1cmUqKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvU3RyaW5nT25DZWxsLCBKU1N0cmluZyosIChKU0dsb2Jh
bE9iamVjdCosIEpTQ2VsbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
VG9TdHJpbmcsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ2FsbFN0cmluZ0NvbnN0cnVjdG9y
T25DZWxsLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ2FsbFN0cmluZ0NvbnN0cnVjdG9yLCBKU1N0cmlu
ZyosIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk1ha2VSb3BlMiwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU1N0cmluZyosIEpTU3RyaW5nKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25NYWtlUm9wZTMsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBK
U1N0cmluZyosIEpTU3RyaW5nKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25TdHJDYXQyLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJD
YXQzLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uRmluZFN3aXRjaEltbVRhcmdldEZvckRvdWJsZSwgY2hhciosIChWTSosIEVuY29kZWRK
U1ZhbHVlLCBzaXplX3QgdGFibGVJbmRleCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Td2l0Y2hTdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBzaXplX3QgdGFi
bGVJbmRleCwgSlNTdHJpbmcqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbXBhcmVTdHJpbmdJbXBsTGVzcywgdWludHB0cl90LCAoU3RyaW5nSW1wbCosIFN0cmluZ0lt
cGwqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJ
bXBsTGVzc0VxLCB1aW50cHRyX3QsIChTdHJpbmdJbXBsKiwgU3RyaW5nSW1wbCopKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxHcmVhdGVyLCB1
aW50cHRyX3QsIChTdHJpbmdJbXBsKiwgU3RyaW5nSW1wbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxHcmVhdGVyRXEsIHVpbnRwdHJfdCwg
KFN0cmluZ0ltcGwqLCBTdHJpbmdJbXBsKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Db21wYXJlU3RyaW5nTGVzcywgdWludHB0cl90LCAoSlNHbG9iYWxPYmplY3QqLCBK
U1N0cmluZyosIEpTU3RyaW5nKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Db21wYXJlU3RyaW5nTGVzc0VxLCB1aW50cHRyX3QsIChKU0dsb2JhbE9iamVjdCosIEpTU3Ry
aW5nKiwgSlNTdHJpbmcqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNv
bXBhcmVTdHJpbmdHcmVhdGVyLCB1aW50cHRyX3QsIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5n
KiwgSlNTdHJpbmcqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBh
cmVTdHJpbmdHcmVhdGVyRXEsIHVpbnRwdHJfdCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcq
LCBKU1N0cmluZyopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTm90aWZ5
V3JpdGUsIHZvaWQsIChWTSosIFdhdGNocG9pbnRTZXQqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0ZvclZhcmFyZ3MsIHZvaWQsIChKU0ds
b2JhbE9iamVjdCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6ZU9m
VmFyYXJncywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSBhcmd1bWVudHMsIHVpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0KSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkxvYWRWYXJhcmdzLCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
LCBpbnQzMl90IGZpcnN0RWxlbWVudERlc3QsIEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50cywgdWlu
dDMyX3Qgb2Zmc2V0LCB1aW50MzJfdCBsZW5ndGgsIHVpbnQzMl90IG1hbmRhdG9yeU1pbmltdW0p
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3dERkcsIHZvaWQsIChK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblRocm93U3RhdGljRXJyb3IsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpT
U3RyaW5nKiwgdWludDMyX3QpKTsKKworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25IYXNPd25Qcm9wZXJ0eSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIEVu
Y29kZWRKU1ZhbHVlKSk7CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJy
YXlJbmRleE9mU3RyaW5nLCBVQ1BVU3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVjdCosIEJ1dHRl
cmZseSosIEpTU3RyaW5nKiwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25BcnJheUluZGV4T2ZWYWx1ZURvdWJsZSwgVUNQVVN0cmljdEludDMyLCAoSlNHbG9i
YWxPYmplY3QqLCBCdXR0ZXJmbHkqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCkpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4T2ZWYWx1ZUludDMyT3JDb250
aWd1b3VzLCBVQ1BVU3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVjdCosIEJ1dHRlcmZseSosIEVu
Y29kZWRKU1ZhbHVlLCBpbnQzMl90KSk7CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uU3ByZWFkRmFzdEFycmF5LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwq
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNwcmVhZEdlbmVyaWMsIEpT
Q2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU3ByZWFkU2xvdywgSlNDZWxsKiwgKEpTR2xvYmFs
T2JqZWN0Kiwgdm9pZCosIHVpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNyZWF0ZUltbXV0YWJsZUJ1dHRlcmZseSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0
KiwgdW5zaWduZWQgbGVuZ3RoKSk7CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUmVzb2x2ZVNjb3BlLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU1Njb3BlKiwgVW5p
cXVlZFN0cmluZ0ltcGwqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJl
c29sdmVTY29wZUZvckhvaXN0aW5nRnVuY0RlY2xJbkV2YWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqLCBKU1Njb3BlKiwgVW5pcXVlZFN0cmluZ0ltcGwqKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldER5bmFtaWNWYXIsIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogc2NvcGUsIFVuaXF1ZWRTdHJpbmdJbXBsKiwgdW5z
aWduZWQpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RHluYW1pY1Zh
clN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIHNjb3BlLCBFbmNvZGVk
SlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqLCB1bnNpZ25lZCkpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXREeW5hbWljVmFyTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqLCBKU09iamVjdCogc2NvcGUsIEVuY29kZWRKU1ZhbHVlLCBVbmlxdWVkU3RyaW5n
SW1wbCosIHVuc2lnbmVkKSk7CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q29udmVydEJveGVkRG91YmxlVG9JbnQ1MiwgaW50NjRfdCwgKEVuY29kZWRKU1ZhbHVlKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnREb3VibGVUb0ludDUyLCBp
bnQ2NF90LCAoZG91YmxlKSk7CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TnVtYmVySXNJbnRlZ2VyLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVl
KSk7CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3UmF3T2JqZWN0LCBj
aGFyKiwgKFZNKiwgU3RydWN0dXJlKiwgaW50MzJfdCwgQnV0dGVyZmx5KikpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdPYmplY3RXaXRoQnV0dGVyZmx5LCBKU0NlbGwq
LCAoVk0qLCBTdHJ1Y3R1cmUqLCBCdXR0ZXJmbHkqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbk5ld09iamVjdFdpdGhCdXR0ZXJmbHlXaXRoSW5kZXhpbmdIZWFkZXJBbmRW
ZWN0b3JMZW5ndGgsIEpTQ2VsbCosIChWTSosIFN0cnVjdHVyZSosIHVuc2lnbmVkIGxlbmd0aCwg
QnV0dGVyZmx5KikpOworCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkxpbmtE
aXJlY3RDYWxsLCB2b2lkLCAoQ2FsbExpbmtJbmZvKiwgSlNGdW5jdGlvbiopKTsKKworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EYXRlR2V0RnVsbFllYXIsIEVuY29kZWRKU1Zh
bHVlLCAoVk0qLCBEYXRlSW5zdGFuY2UqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkRhdGVHZXRVVENGdWxsWWVhciwgRW5jb2RlZEpTVmFsdWUsIChWTSosIERhdGVJbnN0
YW5jZSopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGF0ZUdldE1vbnRo
LCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiwgRGF0ZUluc3RhbmNlKikpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25EYXRlR2V0VVRDTW9udGgsIEVuY29kZWRKU1ZhbHVlLCAoVk0q
LCBEYXRlSW5zdGFuY2UqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRh
dGVHZXREYXRlLCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiwgRGF0ZUluc3RhbmNlKikpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EYXRlR2V0VVRDRGF0ZSwgRW5jb2RlZEpTVmFs
dWUsIChWTSosIERhdGVJbnN0YW5jZSopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uRGF0ZUdldERheSwgRW5jb2RlZEpTVmFsdWUsIChWTSosIERhdGVJbnN0YW5jZSopKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGF0ZUdldFVUQ0RheSwgRW5jb2Rl
ZEpTVmFsdWUsIChWTSosIERhdGVJbnN0YW5jZSopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uRGF0ZUdldEhvdXJzLCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiwgRGF0ZUluc3Rh
bmNlKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EYXRlR2V0VVRDSG91
cnMsIEVuY29kZWRKU1ZhbHVlLCAoVk0qLCBEYXRlSW5zdGFuY2UqKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRhdGVHZXRNaW51dGVzLCBFbmNvZGVkSlNWYWx1ZSwgKFZN
KiwgRGF0ZUluc3RhbmNlKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25E
YXRlR2V0VVRDTWludXRlcywgRW5jb2RlZEpTVmFsdWUsIChWTSosIERhdGVJbnN0YW5jZSopKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGF0ZUdldFNlY29uZHMsIEVuY29k
ZWRKU1ZhbHVlLCAoVk0qLCBEYXRlSW5zdGFuY2UqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkRhdGVHZXRVVENTZWNvbmRzLCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiwgRGF0
ZUluc3RhbmNlKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EYXRlR2V0
VGltZXpvbmVPZmZzZXQsIEVuY29kZWRKU1ZhbHVlLCAoVk0qLCBEYXRlSW5zdGFuY2UqKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRhdGVHZXRZZWFyLCBFbmNvZGVkSlNW
YWx1ZSwgKFZNKiwgRGF0ZUluc3RhbmNlKikpOworCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblByb2Nlc3NUeXBlUHJvZmlsZXJMb2dERkcsIHZvaWQsIChWTSopKTsKKworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcmlnZ2VyUmVvcHRpbWl6YXRpb25Ob3cs
IHZvaWQsIChDb2RlQmxvY2sqIGJhc2VsaW5lQ29kZUJsb2NrLCBDb2RlQmxvY2sqIG9wdGlpbXpl
ZENvZGVCbG9jaywgT1NSRXhpdEJhc2UqKSk7CiAKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQotZG91
YmxlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmFuZG9tKEpTR2xvYmFsT2JqZWN0Kik7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJhbmRvbSwgZG91YmxlLCAoSlNHbG9iYWxP
YmplY3QqKSk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShGVExfSklUKQotdm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblRyaWdnZXJUaWVyVXBOb3coVk0qKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uVHJpZ2dlclRpZXJVcE5vd0luTG9vcChWTSosIHVuc2lnbmVk
IGJ5dGVjb2RlSW5kZXhCaXRzKSBXVEZfSU5URVJOQUw7Ci1jaGFyKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblRyaWdnZXJPU1JFbnRyeU5vdyhWTSosIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXhCaXRz
KSBXVEZfSU5URVJOQUw7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyaWdn
ZXJUaWVyVXBOb3csIHZvaWQsIChWTSopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uVHJpZ2dlclRpZXJVcE5vd0luTG9vcCwgdm9pZCwgKFZNKiwgdW5zaWduZWQgYnl0ZWNv
ZGVJbmRleEJpdHMpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJpZ2dl
ck9TUkVudHJ5Tm93LCBjaGFyKiwgKFZNKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleEJpdHMpKTsK
ICNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKIAogfSAvLyBleHRlcm4gIkMiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAKaW5kZXggNGJjYThj
ZDVhZTQwODllNTEwY2RjMzFmODM1NDIwMDBmMGU5Y2QyZC4uZTViN2M0ZTMzNjIyZTdkODEwNmU2
ZTU5ZTAxNWJjNWYyZjRmZDNmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMT1NSRXhpdENvbXBpbGVyLmNwcApAQCAtNTQ5LDcgKzU0OSw5IEBAIHN0YXRpYyB2b2lkIGNv
bXBpbGVTdHViKFZNJiB2bSwgdW5zaWduZWQgZXhpdElELCBKSVRDb2RlKiBqaXRDb2RlLCBPU1JF
eGl0JiBleGl0CiAgICAgICAgICk7CiB9CiAKLWV4dGVybiAiQyIgSklUX09QRVJBVElPTiB2b2lk
KiBvcGVyYXRpb25Db21waWxlRlRMT1NSRXhpdChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdW5zaWdu
ZWQgZXhpdElEKQorZXh0ZXJuICJDIiB7CisKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Db21waWxlRlRMT1NSRXhpdCwgdm9pZCosIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdW5z
aWduZWQgZXhpdElEKSkKIHsKICAgICBpZiAoc2hvdWxkRHVtcERpc2Fzc2VtYmx5KCkgfHwgT3B0
aW9uczo6dmVyYm9zZU9TUigpIHx8IE9wdGlvbnM6OnZlcmJvc2VGVExPU1JFeGl0KCkpCiAgICAg
ICAgIGRhdGFMb2coIkNvbXBpbGluZyBPU1IgZXhpdCB3aXRoIGV4aXRJRCA9ICIsIGV4aXRJRCwg
IlxuIik7CkBAIC02MDIsNiArNjA0LDggQEAgZXh0ZXJuICJDIiBKSVRfT1BFUkFUSU9OIHZvaWQq
IG9wZXJhdGlvbkNvbXBpbGVGVExPU1JFeGl0KENhbGxGcmFtZSogY2FsbEZyYW1lLAogICAgIHJl
dHVybiBleGl0Lm1fY29kZS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKIH0KIAorfSAvLyBl
eHRlcm4gIkMiCisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKIAogI2VuZGlmIC8vIEVOQUJM
RShGVExfSklUKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JF
eGl0Q29tcGlsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBp
bGVyLmgKaW5kZXggYmU3MmY0NTM5OTU1OWM0NmMzYTJhYmEwOTA1YTgxZmUyODNlNDI0NC4uYmRj
ZTY5ODE3MTM0YTBhMGM3ZDllMGU1OTM5ZDBhNGQ2NWMzOWY3ZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5oCkBAIC0zNCw3ICszNCw3IEBAIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKIC8vIFRha2VzIHRoZSBjYWxsIGZyYW1lIGFu
ZCB0aGUgaW5kZXggb2YgdGhlIGV4aXQsIGFuZCByZXR1cm5zIHRoZSBhZGRyZXNzIHRvCiAvLyBq
dW1wIHRvLgogZXh0ZXJuICJDIiB7Ci12b2lkKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBp
bGVGVExPU1JFeGl0KENhbGxGcmFtZSosIHVuc2lnbmVkIGV4aXRJRCkgV1RGX0lOVEVSTkFMOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21waWxlRlRMT1NSRXhpdCwgdm9p
ZCosIChDYWxsRnJhbWUqLCB1bnNpZ25lZCBleGl0SUQpKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFj
ZSBKU0M6OkZUTApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPcGVy
YXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3BlcmF0aW9ucy5jcHAK
aW5kZXggZmQ2OWRhZTM2M2U4YjVhZjM4YWM5MTFiNjlhODJmYmVmNGU4YTg4Ny4uMzYxNjFmOWQ5
ZjQ1MjczM2Q1NzViMDhkNmNmY2IxYzAxOTM5NTk4NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTE9wZXJhdGlvbnMuY3BwCkBAIC01Miw3ICs1Miw5IEBAIElHTk9SRV9XQVJOSU5H
U19CRUdJTigiZnJhbWUtYWRkcmVzcyIpCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRM
IHsKIAotZXh0ZXJuICJDIiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUG9wdWxhdGVPYmpl
Y3RJbk9TUihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFeGl0VGltZU9iamVjdE1hdGVy
aWFsaXphdGlvbiogbWF0ZXJpYWxpemF0aW9uLCBFbmNvZGVkSlNWYWx1ZSogZW5jb2RlZFZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSogdmFsdWVzKQorZXh0ZXJuICJDIiB7CisKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25Qb3B1bGF0ZU9iamVjdEluT1NSLCB2b2lkLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRXhpdFRpbWVPYmplY3RNYXRlcmlhbGl6YXRpb24qIG1hdGVy
aWFsaXphdGlvbiwgRW5jb2RlZEpTVmFsdWUqIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUq
IHZhbHVlcykpCiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIERGRzsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CkBAIC0xODAsNyArMTgyLDggQEAgZXh0ZXJuICJDIiB2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uUG9wdWxhdGVPYmplY3RJbk9TUihKU0dsb2JhbE9iamVjdCogZ2xv
YmEKICAgICB9CiB9CiAKLWV4dGVybiAiQyIgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bk1hdGVyaWFsaXplT2JqZWN0SW5PU1IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXhp
dFRpbWVPYmplY3RNYXRlcmlhbGl6YXRpb24qIG1hdGVyaWFsaXphdGlvbiwgRW5jb2RlZEpTVmFs
dWUqIHZhbHVlcykKKworSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hdGVyaWFs
aXplT2JqZWN0SW5PU1IsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
eGl0VGltZU9iamVjdE1hdGVyaWFsaXphdGlvbiogbWF0ZXJpYWxpemF0aW9uLCBFbmNvZGVkSlNW
YWx1ZSogdmFsdWVzKSkKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgREZHOwogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTY5Niw3ICs2OTksNyBAQCBleHRlcm4gIkMiIEpTQ2Vs
bCogSklUX09QRVJBVElPTiBvcGVyYXRpb25NYXRlcmlhbGl6ZU9iamVjdEluT1NSKEpTR2xvYmFs
T2JqZWN0KgogICAgIH0KIH0KIAotZXh0ZXJuICJDIiBpbnQzMl90IEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uU3dpdGNoU3RyaW5nQW5kR2V0QnJhbmNoT2Zmc2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIHNpemVfdCB0YWJsZUluZGV4LCBKU1N0cmluZyogc3RyaW5nKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaFN0cmluZ0FuZEdldEJyYW5jaE9mZnNldCwg
aW50MzJfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHNpemVfdCB0YWJsZUluZGV4
LCBKU1N0cmluZyogc3RyaW5nKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAt
NzEwLDcgKzcxMyw3IEBAIGV4dGVybiAiQyIgaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blN3aXRjaFN0cmluZ0FuZEdldEJyYW5jaE9mZnNldChKU0dsb2JhCiAgICAgcmV0dXJuIGNhbGxG
cmFtZS0+Y29kZUJsb2NrKCktPnN0cmluZ1N3aXRjaEp1bXBUYWJsZSh0YWJsZUluZGV4KS5vZmZz
ZXRGb3JWYWx1ZShzdHJJbXBsLCBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptaW4oKSk7
CiB9CiAKLWV4dGVybiAiQyIgaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblR5cGVPZk9i
amVjdEFzVHlwZW9mVHlwZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9i
amVjdCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UeXBlT2ZPYmplY3RBc1R5
cGVvZlR5cGUsIGludDMyX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwq
IG9iamVjdCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTcyNSw3ICs3Mjgs
NyBAQCBleHRlcm4gIkMiIGludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25UeXBlT2ZPYmpl
Y3RBc1R5cGVvZlR5cGUoSlNHbG9iYWxPYmplYwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQz
Ml90PihUeXBlb2ZUeXBlOjpPYmplY3QpOwogfQogCi1leHRlcm4gIkMiIHZvaWQqIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uQ29tcGlsZUZUTExhenlTbG93UGF0aChDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgdW5zaWduZWQgaW5kZXgpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29t
cGlsZUZUTExhenlTbG93UGF0aCwgdm9pZCosIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdW5zaWdu
ZWQgaW5kZXgpKQogewogICAgIFZNJiB2bSA9IGNhbGxGcmFtZS0+ZGVwcmVjYXRlZFZNKCk7CiAK
QEAgLTc0MSw2ICs3NDQsOCBAQCBleHRlcm4gIkMiIHZvaWQqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uQ29tcGlsZUZUTExhenlTbG93UGF0aChDYWxsRnJhbWUqIGNhbGxGcgogICAgIHJldHVybiBs
YXp5U2xvd1BhdGguc3R1YigpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpOwogfQogCit9IC8v
IGV4dGVybiAiQyIKKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAogCiBJR05PUkVfV0FSTklO
R1NfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlv
bnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3BlcmF0aW9ucy5oCmluZGV4IDQ3
NTM1N2ExMWI4OWJlMGQzMzU3NmZkYzlhNWNlNjIzNjhjMzAxYWQuLjRhMGQxODJkMzEyM2ZlNmNl
NTE1YzVlNjkzZWY0NzMzZjE0NDFlOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
T3BlcmF0aW9ucy5oCkBAIC0zNiwxNCArMzYsMTQgQEAgY2xhc3MgTGF6eVNsb3dQYXRoOwogCiBl
eHRlcm4gIkMiIHsKIAotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk1hdGVyaWFsaXpl
T2JqZWN0SW5PU1IoSlNHbG9iYWxPYmplY3QqLCBFeGl0VGltZU9iamVjdE1hdGVyaWFsaXphdGlv
biosIEVuY29kZWRKU1ZhbHVlKikgV1RGX0lOVEVSTkFMOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25NYXRlcmlhbGl6ZU9iamVjdEluT1NSLCBKU0NlbGwqLCAoSlNHbG9iYWxP
YmplY3QqLCBFeGl0VGltZU9iamVjdE1hdGVyaWFsaXphdGlvbiosIEVuY29kZWRKU1ZhbHVlKikp
OwogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUG9wdWxhdGVPYmplY3RJbk9TUihKU0ds
b2JhbE9iamVjdCosIEV4aXRUaW1lT2JqZWN0TWF0ZXJpYWxpemF0aW9uKiwgRW5jb2RlZEpTVmFs
dWUqLCBFbmNvZGVkSlNWYWx1ZSopIFdURl9JTlRFUk5BTDsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUG9wdWxhdGVPYmplY3RJbk9TUiwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiwgRXhpdFRpbWVPYmplY3RNYXRlcmlhbGl6YXRpb24qLCBFbmNvZGVkSlNWYWx1ZSosIEVuY29k
ZWRKU1ZhbHVlKikpOwogCi12b2lkKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBpbGVGVExM
YXp5U2xvd1BhdGgoQ2FsbEZyYW1lKiwgdW5zaWduZWQpIFdURl9JTlRFUk5BTDsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGlsZUZUTExhenlTbG93UGF0aCwgdm9pZCos
IChDYWxsRnJhbWUqLCB1bnNpZ25lZCkpOwogCi1pbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uU3dpdGNoU3RyaW5nQW5kR2V0QnJhbmNoT2Zmc2V0KEpTR2xvYmFsT2JqZWN0Kiwgc2l6ZV90
IHRhYmxlSW5kZXgsIEpTU3RyaW5nKikgV1RGX0lOVEVSTkFMOwotaW50MzJfdCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblR5cGVPZk9iamVjdEFzVHlwZW9mVHlwZShKU0dsb2JhbE9iamVjdCosIEpT
Q2VsbCopIFdURl9JTlRFUk5BTDsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
U3dpdGNoU3RyaW5nQW5kR2V0QnJhbmNoT2Zmc2V0LCBpbnQzMl90LCAoSlNHbG9iYWxPYmplY3Qq
LCBzaXplX3QgdGFibGVJbmRleCwgSlNTdHJpbmcqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblR5cGVPZk9iamVjdEFzVHlwZW9mVHlwZSwgaW50MzJfdCwgKEpTR2xvYmFs
T2JqZWN0KiwgSlNDZWxsKikpOwogCiB9IC8vIGV4dGVybiAiQyIKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklULmgKaW5kZXggYjQ1YmUzYWQ1MDI3OTE1MGI3OTI0M2EwNGZmYmVjMTFmOTMxZjk4NS4uZjgz
ZjZmMTg1NmM4NmQwZjlhNTQ4MmFkZWVkM2JjYTcyNzQ5MmJjMiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVC5oCkBAIC01MDQsOSArNTA0LDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBPcD4KICAgICAgICAgdm9pZCBlbWl0X2NvbXBhcmVVbnNpZ25lZEFuZEp1
bXAoY29uc3QgSW5zdHJ1Y3Rpb24qLCBSZWxhdGlvbmFsQ29uZGl0aW9uKTsKICAgICAgICAgdm9p
ZCBlbWl0X2NvbXBhcmVVbnNpZ25lZEFuZEp1bXBJbXBsKFZpcnR1YWxSZWdpc3RlciBvcDEsIFZp
cnR1YWxSZWdpc3RlciBvcDIsIHVuc2lnbmVkIHRhcmdldCwgUmVsYXRpb25hbENvbmRpdGlvbik7
Ci0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIE9wPgotICAgICAgICB2b2lkIGVtaXRfY29tcGFy
ZUFuZEp1bXBTbG93KGNvbnN0IEluc3RydWN0aW9uKiwgRG91YmxlQ29uZGl0aW9uLCBzaXplX3Qg
KEpJVF9PUEVSQVRJT04gKm9wZXJhdGlvbikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUpLCBib29sIGludmVydCwgVmVjdG9yPFNsb3dDYXNlRW50cnk+Ojpp
dGVyYXRvciYpOwotICAgICAgICB2b2lkIGVtaXRfY29tcGFyZUFuZEp1bXBTbG93SW1wbChWaXJ0
dWFsUmVnaXN0ZXIgb3AxLCBWaXJ0dWFsUmVnaXN0ZXIgb3AyLCB1bnNpZ25lZCB0YXJnZXQsIHNp
emVfdCBpbnN0cnVjdGlvblNpemUsIERvdWJsZUNvbmRpdGlvbiwgc2l6ZV90IChKSVRfT1BFUkFU
SU9OICpvcGVyYXRpb24pKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlKSwgYm9vbCBpbnZlcnQsIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsK
KyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3AsIHR5cGVuYW1lIFNsb3dPcGVyYXRpb24+Cisg
ICAgICAgIHZvaWQgZW1pdF9jb21wYXJlQW5kSnVtcFNsb3coY29uc3QgSW5zdHJ1Y3Rpb24qLCBE
b3VibGVDb25kaXRpb24sIFNsb3dPcGVyYXRpb24sIGJvb2wgaW52ZXJ0LCBWZWN0b3I8U2xvd0Nh
c2VFbnRyeT46Oml0ZXJhdG9yJik7CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFNsb3dPcGVy
YXRpb24+CisgICAgICAgIHZvaWQgZW1pdF9jb21wYXJlQW5kSnVtcFNsb3dJbXBsKFZpcnR1YWxS
ZWdpc3RlciBvcDEsIFZpcnR1YWxSZWdpc3RlciBvcDIsIHVuc2lnbmVkIHRhcmdldCwgc2l6ZV90
IGluc3RydWN0aW9uU2l6ZSwgRG91YmxlQ29uZGl0aW9uLCBTbG93T3BlcmF0aW9uLCBib29sIGlu
dmVydCwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICAKICAgICAg
ICAgdm9pZCBhc3NlcnRTdGFja1BvaW50ZXJPZmZzZXQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAKaW5kZXggYjdlYjg0NWVmNWZlYmNjMTNhNzI1YzYz
YzcwOWNkYjdiZGMzZmUyMC4uZTJlZDk1MWRmZjAzNDE4MjA4NTFmNDI3NTBiMWI4ZTE4MzQ0ZWJm
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCkBAIC0y
NzEsOCArMjcxLDggQEAgdm9pZCBKSVQ6OmVtaXRfY29tcGFyZVVuc2lnbmVkSW1wbChWaXJ0dWFs
UmVnaXN0ZXIgZHN0LCBWaXJ0dWFsUmVnaXN0ZXIgb3AxLCBWaXIKICAgICBlbWl0UHV0VmlydHVh
bFJlZ2lzdGVyKGRzdCk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIE9wPgotdm9pZCBKSVQ6OmVt
aXRfY29tcGFyZUFuZEp1bXBTbG93KGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiwgRG91
YmxlQ29uZGl0aW9uIGNvbmRpdGlvbiwgc2l6ZV90IChKSVRfT1BFUkFUSU9OICpvcGVyYXRpb24p
KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSwgYm9vbCBp
bnZlcnQsIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCit0ZW1wbGF0ZTx0
eXBlbmFtZSBPcCwgdHlwZW5hbWUgU2xvd09wZXJhdGlvbj4KK3ZvaWQgSklUOjplbWl0X2NvbXBh
cmVBbmRKdW1wU2xvdyhjb25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIERvdWJsZUNvbmRp
dGlvbiBjb25kaXRpb24sIFNsb3dPcGVyYXRpb24gb3BlcmF0aW9uLCBib29sIGludmVydCwgVmVj
dG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKIHsKICAgICBhdXRvIGJ5dGVjb2Rl
ID0gaW5zdHJ1Y3Rpb24tPmFzPE9wPigpOwogICAgIFZpcnR1YWxSZWdpc3RlciBvcDEgPSBieXRl
Y29kZS5tX2xoczsKQEAgLTI4MSw3ICsyODEsOCBAQCB2b2lkIEpJVDo6ZW1pdF9jb21wYXJlQW5k
SnVtcFNsb3coY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCBEb3VibGVDb25kaXRpbwog
ICAgIGVtaXRfY29tcGFyZUFuZEp1bXBTbG93SW1wbChvcDEsIG9wMiwgdGFyZ2V0LCBpbnN0cnVj
dGlvbi0+c2l6ZSgpLCBjb25kaXRpb24sIG9wZXJhdGlvbiwgaW52ZXJ0LCBpdGVyKTsKIH0KIAot
dm9pZCBKSVQ6OmVtaXRfY29tcGFyZUFuZEp1bXBTbG93SW1wbChWaXJ0dWFsUmVnaXN0ZXIgb3Ax
LCBWaXJ0dWFsUmVnaXN0ZXIgb3AyLCB1bnNpZ25lZCB0YXJnZXQsIHNpemVfdCBpbnN0cnVjdGlv
blNpemUsIERvdWJsZUNvbmRpdGlvbiBjb25kaXRpb24sIHNpemVfdCAoSklUX09QRVJBVElPTiAq
b3BlcmF0aW9uKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSksIGJvb2wgaW52ZXJ0LCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQor
dGVtcGxhdGU8dHlwZW5hbWUgU2xvd09wZXJhdGlvbj4KK3ZvaWQgSklUOjplbWl0X2NvbXBhcmVB
bmRKdW1wU2xvd0ltcGwoVmlydHVhbFJlZ2lzdGVyIG9wMSwgVmlydHVhbFJlZ2lzdGVyIG9wMiwg
dW5zaWduZWQgdGFyZ2V0LCBzaXplX3QgaW5zdHJ1Y3Rpb25TaXplLCBEb3VibGVDb25kaXRpb24g
Y29uZGl0aW9uLCBTbG93T3BlcmF0aW9uIG9wZXJhdGlvbiwgYm9vbCBpbnZlcnQsIFZlY3RvcjxT
bG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCiB7CiAKICAgICAvLyBXZSBnZW5lcmF0ZSBp
bmxpbmUgY29kZSBmb3IgdGhlIGZvbGxvd2luZyBjYXNlcyBpbiB0aGUgc2xvdyBwYXRoOgpAQCAt
NTYwLDggKzU2MSw4IEBAIHZvaWQgSklUOjplbWl0X2NvbXBhcmVVbnNpZ25lZChjb25zdCBJbnN0
cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIFJlbGF0aW9uYWxDb25kaXRpCiAgICAgZW1pdFN0b3JlQm9v
bChkc3QsIHJlZ1QwKTsKIH0KIAotdGVtcGxhdGUgPHR5cGVuYW1lIE9wPgotdm9pZCBKSVQ6OmVt
aXRfY29tcGFyZUFuZEp1bXBTbG93KGNvbnN0IEluc3RydWN0aW9uICppbnN0cnVjdGlvbiwgRG91
YmxlQ29uZGl0aW9uLCBzaXplX3QgKEpJVF9PUEVSQVRJT04gKm9wZXJhdGlvbikoSlNHbG9iYWxP
YmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpLCBib29sIGludmVydCwgVmVj
dG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKK3RlbXBsYXRlIDx0eXBlbmFtZSBP
cCwgdHlwZW5hbWUgU2xvd09wZXJhdGlvbj4KK3ZvaWQgSklUOjplbWl0X2NvbXBhcmVBbmRKdW1w
U2xvdyhjb25zdCBJbnN0cnVjdGlvbiAqaW5zdHJ1Y3Rpb24sIERvdWJsZUNvbmRpdGlvbiwgU2xv
d09wZXJhdGlvbiBvcGVyYXRpb24sIGJvb2wgaW52ZXJ0LCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46
Oml0ZXJhdG9yJiBpdGVyKQogewogICAgIGF1dG8gYnl0ZWNvZGUgPSBpbnN0cnVjdGlvbi0+YXM8
T3A+KCk7CiAgICAgVmlydHVhbFJlZ2lzdGVyIG9wMSA9IGJ5dGVjb2RlLm1fbGhzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggZjBlMzFhYzBmOGM4
OWUzYzg0MjdjYWRiN2JiODY1MjNkYmIyMjQ5NS4uODIwNzU1OGUyYzYwNWIyYWUxNTc5OTMzYzA1
ZmUxZTk1NWU5NjY3OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuY3BwCkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgKiBfUmV0dXJuQWRkcmVzcyh2b2lkKTsKICNl
bmRpZgogCiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dF
cnJvcihDb2RlQmxvY2sqIGNvZGVCbG9jaykKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dFcnJvciwgdm9pZCwgKENvZGVCbG9jayogY29kZUJsb2Nr
KSkKIHsKICAgICAvLyBXZSBwYXNzIGluIG91ciBvd24gY29kZSBibG9jaywgYmVjYXVzZSB0aGUg
Y2FsbGZyYW1lIGhhc24ndCBiZWVuIHBvcHVsYXRlZC4KICAgICBWTSYgdm0gPSBjb2RlQmxvY2st
PnZtKCk7CkBAIC0xMDksNyArMTA5LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRo
cm93U3RhY2tPdmVyZmxvd0Vycm9yKENvZGVCbG9jayogY29kZUJsb2NrKQogICAgIHRocm93U3Rh
Y2tPdmVyZmxvd0Vycm9yKGNvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCksIHNjb3BlKTsKIH0KIAot
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0Vycm9yRnJvbVRo
dW5rKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uVGhyb3dTdGFja092ZXJmbG93RXJyb3JGcm9tVGh1bmssIHZvaWQsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtMTIwLDcgKzEyMCw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UaHJvd1N0
YWNrT3ZlcmZsb3dFcnJvckZyb21UaHVuayhKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgQVNTRVJU
KHZtLnRhcmdldE1hY2hpbmVQQ0ZvclRocm93KTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblRocm93SXRlcmF0b3JSZXN1bHRJc05vdE9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93SXRlcmF0
b3JSZXN1bHRJc05vdE9iamVjdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xMzAsNyArMTMwLDcgQEAgdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRocm93SXRlcmF0b3JSZXN1bHRJc05vdE9iamVjdChK
U0dsb2JhbE9iamVjdCogZ2xvYmEKICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlLCAiSXRlcmF0b3IgcmVzdWx0IGludGVyZmFjZSBpcyBub3QgYW4gb2JqZWN0LiJfcyk7CiB9
CiAKLWludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsQXJpdHlDaGVjayhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNhbGxBcml0eUNoZWNrLCBpbnQzMl90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE0Nyw3ICsxNDcsNyBAQCBpbnQz
Ml90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEFyaXR5Q2hlY2soSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKICAgICByZXR1cm4gbWlzc2luZ0FyZ0NvdW50OwogfQogCi1pbnQzMl90
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29uc3RydWN0QXJpdHlDaGVjayhKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnN0
cnVjdEFyaXR5Q2hlY2ssIGludDMyX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTY0LDcgKzE2NCw3IEBAIGludDMy
X3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db25zdHJ1Y3RBcml0eUNoZWNrKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgcmV0dXJuIG1pc3NpbmdBcmdDb3VudDsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25UcnlHZXRCeUlkKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpT
VmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5R2V0QnlJZCwgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVu
Y29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTgxLDcgKzE4MSw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVHJ5R2V0QnlJZChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBTCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25UcnlHZXRCeUlkR2VuZXJpYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlHZXRCeUlkR2VuZXJpYywgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNl
LCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTE5Niw3ICsxOTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblRyeUdldEJ5SWRHZW5lcmljKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoc2xvdC5nZXRQdXJlUmVzdWx0KCkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRyeUdldEJ5SWRPcHRpbWl6ZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8s
IEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeUdldEJ5SWRPcHRpbWl6ZSwgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHVi
SW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFi
bGVJZGVudGlmaWVyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjE4LDcg
KzIxOCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVHJ5R2V0QnlJ
ZE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShzbG90LmdldFB1cmVSZXN1bHQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uR2V0QnlJZERpcmVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRw
dHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkdldEJ5SWREaXJlY3QsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBi
YXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTIzNyw3ICsyMzcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkdldEJ5SWREaXJlY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGZvdW5kID8g
c2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIGlkZW50KSA6IGpzVW5kZWZpbmVkKCkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlkRGlyZWN0R2Vu
ZXJpYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1
aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25HZXRCeUlkRGlyZWN0R2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3
Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTI1NSw3ICsyNTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdl
dEJ5SWREaXJlY3RHZW5lcmljKEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGZvdW5kID8gc2xvdC5nZXRWYWx1ZShnbG9i
YWxPYmplY3QsIGlkZW50KSA6IGpzVW5kZWZpbmVkKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlkRGlyZWN0T3B0aW1pemUoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNW
YWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkRGlyZWN0T3B0aW1pemUsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0
dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRp
ZmllcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI3Nyw3ICsyNzcsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5SWREaXJlY3RPcHRp
bWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKGZvdW5kID8gc2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIGlkZW50
KSA6IGpzVW5kZWZpbmVkKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25HZXRCeUlkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0
dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hl
YWJsZUlkZW50aWZpZXIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJ
ZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1
cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdD
YWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBs
ZXJTY29wZShmYWxzZSk7CiAgICAgCkBAIC0yOTgsNyArMjk4LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFN0cnUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZEdlbmVyaWMoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0Nh
Y2hlYWJsZUlkZW50aWZpZXIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0
QnlJZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIp
KQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAg
ICAKQEAgLTMxNyw3ICszMTcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkdldEJ5SWRHZW5lcmljKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50
cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1
ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJT
YW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIApAQCAtMzQwLDcgKzM0
MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZE9wdGlt
aXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgfSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpcyhKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1Zh
bHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNFbmNvZGVkLCB1aW50cHRyX3QgcmF3Q2FjaGVh
YmxlSWRlbnRpZmllcikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlk
V2l0aFRoaXMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzRW5jb2RlZCwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQog
ewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKIApAQCAt
MzU5LDcgKzM1OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0
QnlJZFdpdGhUaGlzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShiYXNlVmFsdWUuZ2V0KGdsb2JhbE9iamVjdCwgaWRlbnQsIHNsb3QpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlkV2l0aFRoaXNH
ZW5lcmljKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2Us
IEVuY29kZWRKU1ZhbHVlIHRoaXNFbmNvZGVkLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRp
ZmllcikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkV2l0aFRoaXNH
ZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNFbmNvZGVkLCB1aW50cHRyX3Qg
cmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJT
YW1wbGVyU2NvcGUoZmFsc2UpOwogCkBAIC0zNzYsNyArMzc2LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlkV2l0aFRoaXNHZW5lcmljKEpTR2xvYmFsT2Jq
ZWN0KiBnbG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGJhc2VWYWx1ZS5nZXQoZ2xvYmFs
T2JqZWN0LCBpZGVudCwgc2xvdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpc09wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc0VuY29kZWQsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlm
aWVyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpc09w
dGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0
cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc0VuY29kZWQsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsK
ICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgCkBA
IC00MDAsNyArNDAwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25H
ZXRCeUlkV2l0aFRoaXNPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2wKICAgICB9KSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW5CeUlkKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpT
VmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5CeUlkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2Rl
ZEpTVmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAg
IFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKIApAQCAtNDI4LDcg
KzQyOCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW5CeUlkKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc0Jvb2xlYW4oYmFzZU9iamVjdC0+Z2V0UHJvcGVydHlTbG90KGdsb2JhbE9iamVjdCwg
aWRlbnQsIHNsb3QpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uSW5CeUlkR2VuZXJpYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25JbkJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJf
dCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBl
clNhbXBsZXJTY29wZShmYWxzZSk7CiAKQEAgLTQ1NCw3ICs0NTQsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluQnlJZEdlbmVyaWMoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGJhc2VPYmpl
Y3QtPmdldFByb3BlcnR5U2xvdChnbG9iYWxPYmplY3QsIGlkZW50LCBzbG90KSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluQnlJZE9wdGltaXplKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5j
b2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5CeUlkT3B0aW1pemUsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0
dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRp
ZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2Up
OwogCkBAIC00ODQsNyArNDg0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25JbkJ5SWRPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihmb3VuZCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluQnlWYWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBrZXkpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uSW5CeVZhbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGtleSkpCiB7CiAg
ICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIApAQCAt
NDk1LDcgKzQ5NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW5C
eVZhbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc0Jvb2xlYW4oQ29tbW9uU2xvd1BhdGhzOjpvcEluQnlWYWwoZ2xvYmFsT2Jq
ZWN0LCBiYXNlLCBKU1ZhbHVlOjpkZWNvZGUoa2V5KSkpKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblB1dEJ5SWRTdHJpY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRp
ZmllcikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU3RyaWN0LCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0
dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJT
YW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIApAQCAtNTE0LDcgKzUx
NCw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkU3RyaWN0KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyCiAgICAgTE9HX0lDKChJQ0V2ZW50OjpPcGVy
YXRpb25QdXRCeUlkU3RyaWN0LCBiYXNlVmFsdWUuY2xhc3NJbmZvT3JOdWxsKHZtKSwgaWRlbnQs
IHNsb3QuYmFzZSgpID09IGJhc2VWYWx1ZSkpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHV0QnlJZE5vblN0cmljdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVy
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3QsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1
YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBTdXBlclNh
bXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgCkBAIC01MzMsNyArNTMz
LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3QoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWMKICAgICBMT0dfSUMoKElDRXZlbnQ6Ok9wZXJh
dGlvblB1dEJ5SWROb25TdHJpY3QsIGJhc2VWYWx1ZS5jbGFzc0luZm9Pck51bGwodm0pLCBpZGVu
dCwgc2xvdC5iYXNlKCkgPT0gYmFzZVZhbHVlKSk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25QdXRCeUlkRGlyZWN0U3RyaWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50
aWZpZXIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0
cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJ
bmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAg
IFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAKQEAgLTU1
Miw3ICs1NTIsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0
cmljdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdAogICAgIExPR19JQygoSUNFdmVu
dDo6T3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdCwgYmFzZVZhbHVlLmNsYXNzSW5mb09yTnVs
bCh2bSksIGlkZW50LCBzbG90LmJhc2UoKSA9PSBiYXNlVmFsdWUpKTsKIH0KIAotdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWREaXJlY3ROb25TdHJpY3QoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3
Q2FjaGVhYmxlSWRlbnRpZmllcikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeUlkRGlyZWN0Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRl
bnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFs
c2UpOwogICAgIApAQCAtNTcxLDcgKzU3MSw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAg
ICAgTE9HX0lDKChJQ0V2ZW50OjpPcGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0LCBiYXNl
VmFsdWUuY2xhc3NJbmZvT3JOdWxsKHZtKSwgaWRlbnQsIHNsb3QuYmFzZSgpID09IGJhc2VWYWx1
ZSkpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZFN0cmljdE9wdGlt
aXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHVi
SW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRy
X3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3Vw
ZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIApAQCAtNjAzLDcgKzYwMyw3IEBAIHZvaWQgSklU
X09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkU3RyaWN0T3B0aW1pemUoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwKICAgICAgICAgcmVwYXRjaFB1dEJ5SUQoZ2xvYmFsT2JqZWN0LCBjb2Rl
QmxvY2ssIGJhc2VWYWx1ZSwgc3RydWN0dXJlLCBpZGVudGlmaWVyLCBzbG90LCAqc3R1YkluZm8s
IFB1dEtpbmQ6Ok5vdERpcmVjdCk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Q
dXRCeUlkTm9uU3RyaWN0T3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmll
cikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0T3B0
aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHVi
SW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAg
ICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgCkBAIC02
MzUsNyArNjM1LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWROb25TdHJp
Y3RPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICAgICAgcmVwYXRjaFB1
dEJ5SUQoZ2xvYmFsT2JqZWN0LCBjb2RlQmxvY2ssIGJhc2VWYWx1ZSwgc3RydWN0dXJlLCBpZGVu
dGlmaWVyLCBzbG90LCAqc3R1YkluZm8sIFB1dEtpbmQ6Ok5vdERpcmVjdCk7CiB9CiAKLXZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkRGlyZWN0U3RyaWN0T3B0aW1pemUoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50
cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QdXRCeUlkRGlyZWN0U3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCBy
YXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNh
bXBsZXJTY29wZShmYWxzZSk7CiAgICAgCkBAIC02NjYsNyArNjY2LDcgQEAgdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblB1dEJ5SWREaXJlY3RTdHJpY3RPcHRpbWl6ZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2IKICAgICAgICAgcmVwYXRjaFB1dEJ5SUQoZ2xvYmFsT2JqZWN0LCBjb2RlQmxv
Y2ssIGJhc2VPYmplY3QsIHN0cnVjdHVyZSwgaWRlbnRpZmllciwgc2xvdCwgKnN0dWJJbmZvLCBQ
dXRLaW5kOjpEaXJlY3QpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJ
ZERpcmVjdE5vblN0cmljdE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0
cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZp
ZXIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdE5vblN0
cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikp
CiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAg
IApAQCAtNzQwLDcgKzc0MCw3IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQgZGVmaW5lUHJp
dmF0ZUZpZWxkKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAKIGV4dGVybiAi
QyIgewogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZERlZmluZVByaXZhdGVG
aWVsZFN0cmljdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5m
byosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJh
c2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREZWZpbmVQcml2YXRlRmllbGRTdHJpY3QsIHZvaWQsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJf
dCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtNzUyLDcgKzc1Miw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlk
RGVmaW5lUHJpdmF0ZUZpZWxkU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAgICAgZGVmaW5l
UHJpdmF0ZUZpZWxkKHZtLCBnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgYmFzZVZhbHVlLCBpZGVu
dGlmaWVyLCB2YWx1ZSk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlk
RGVmaW5lUHJpdmF0ZUZpZWxkU3RyaWN0T3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxl
SWRlbnRpZmllcikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGVm
aW5lUHJpdmF0ZUZpZWxkU3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNo
ZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJT
Y29wZShmYWxzZSk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtNzc0LDcg
Kzc3NCw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkRGVmaW5lUHJpdmF0
ZUZpZWxkU3RyaWN0T3B0aW1pemUoSlNHbG9iYWxPYmplCiAgICAgfSk7CiB9CiAKLXZvaWQgSklU
X09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkU2V0UHJpdmF0ZUZpZWxkU3RyaWN0KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0Nh
Y2hlYWJsZUlkZW50aWZpZXIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlJZFNldFByaXZhdGVGaWVsZFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZp
ZXIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC03ODYsNyArNzg2LDcgQEAg
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWRTZXRQcml2YXRlRmllbGRTdHJpY3Qo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICBzZXRQcml2YXRlRmllbGQodm0sIGdsb2JhbE9i
amVjdCwgY2FsbEZyYW1lLCBiYXNlVmFsdWUsIGlkZW50aWZpZXIsIHZhbHVlKTsKIH0KIAotdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWRTZXRQcml2YXRlRmllbGRTdHJpY3RPcHRp
bWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1
YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRTZXRQcml2YXRlRmllbGRTdHJpY3RPcHRpbWl6ZSwg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBz
dHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVy
U2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CkBAIC05NzgsNyArOTc4LDcgQEAgc3RhdGljIE9wdGltaXphdGlvblJl
c3VsdCB0cnlQdXRCeVZhbE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGwKICAgICByZXR1cm4gb3B0aW1pemF0aW9uUmVzdWx0OwogfQogCi12b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0QnlWYWxPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
U3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEJ5VmFsSW5mbyogYnlWYWxJ
bmZvLCBFQ01BTW9kZSBlY21hTW9kZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRCeVZhbE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1
YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5m
bywgRUNNQU1vZGUgZWNtYU1vZGUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBA
IC0xMDY4LDcgKzEwNjgsNyBAQCBzdGF0aWMgT3B0aW1pemF0aW9uUmVzdWx0IHRyeURpcmVjdFB1
dEJ5VmFsT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdAogICAgIHJldHVybiBv
cHRpbWl6YXRpb25SZXN1bHQ7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJl
Y3RQdXRCeVZhbE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQnlWYWxJbmZvKiBieVZhbEluZm8sIEVDTUFN
b2RlIGVjbWFNb2RlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRpcmVjdFB1
dEJ5VmFsT3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2Ny
aXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBF
Q01BTW9kZSBlY21hTW9kZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTEw
OTIsNyArMTA5Miw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZh
bE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHNjb3BlLCBkaXJlY3RQdXRCeVZhbChnbG9iYWxPYmplY3QsIG9iamVjdCwgc3Vic2Ny
aXB0LCB2YWx1ZSwgYnlWYWxJbmZvLCBlY21hTW9kZSkpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0QnlWYWxHZW5lcmljKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRT
dWJzY3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQnlWYWxJbmZvKiBieVZhbElu
Zm8sIEVDTUFNb2RlIGVjbWFNb2RlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dEJ5VmFsR2VuZXJpYywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJz
Y3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQnlWYWxJbmZvKiBieVZhbEluZm8s
IEVDTUFNb2RlIGVjbWFNb2RlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAt
MTEwNiw3ICsxMTA2LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsR2Vu
ZXJpYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGUKIH0KIAogCi12b2lkIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxHZW5lcmljKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQnlW
YWxJbmZvKiBieVZhbEluZm8sIEVDTUFNb2RlIGVjbWFNb2RlKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsR2VuZXJpYywgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwg
QnlWYWxJbmZvKiBieVZhbEluZm8sIEVDTUFNb2RlIGVjbWFNb2RlKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwpAQCAtMTExOSw3ICsxMTE5LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsR2VuZXJpYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LAogICAgIGRpcmVjdFB1dEJ5VmFsKGdsb2JhbE9iamVjdCwgYXNPYmplY3QoYmFzZVZhbHVl
KSwgc3Vic2NyaXB0LCB2YWx1ZSwgYnlWYWxJbmZvLCBlY21hTW9kZSk7CiB9CiAKLXZvaWQgSklU
X09QRVJBVElPTiBvcGVyYXRpb25QdXRQcml2YXRlTmFtZU9wdGltaXplKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQnlW
YWxJbmZvKiBieVZhbEluZm8sIFByaXZhdGVGaWVsZFB1dEtpbmQgcHV0S2luZCkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRQcml2YXRlTmFtZU9wdGltaXplLCB2b2lkLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5mbywgUHJpdmF0ZUZpZWxkUHV0S2luZCBwdXRL
aW5kKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTE4OSw3ICsxMTg5LDcg
QEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFByaXZhdGVOYW1lT3B0aW1pemUoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKIH0KIAogLy8gV2UgbmVlZCB0byBtYXRjaCB0aGUg
c2lnbmF0dXJlIG9mIG9wZXJhdGlvblB1dFByaXZhdGVOYW1lT3B0aW1pemUKLXZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25QdXRQcml2YXRlTmFtZUdlbmVyaWMoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBCeVZhbElu
Zm8qIGJ5VmFsSW5mbywgUHJpdmF0ZUZpZWxkUHV0S2luZCBwcml2YXRlRmllbGRQdXRLaW5kKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dFByaXZhdGVOYW1lR2VuZXJpYywg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRCYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSwgQnlWYWxJbmZvKiBieVZhbEluZm8sIFByaXZhdGVGaWVsZFB1dEtp
bmQgcHJpdmF0ZUZpZWxkUHV0S2luZCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
QEAgLTEyMjAsNyArMTIyMCw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRQcml2
YXRlTmFtZUdlbmVyaWMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICAgICAgYnlW
YWxJbmZvLT50b29rU2xvd1BhdGggPSB0cnVlOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkNhbGxFdmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbGVlRnJhbWUsIEVDTUFNb2RlIGVjbWFNb2RlKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNhbGxFdmFsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbGVlRnJhbWUsIEVDTUFNb2RlIGVjbWFN
b2RlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTI5NCw3ICsxMjk0LDcgQEAgc3RhdGlj
IFNsb3dQYXRoUmV0dXJuVHlwZSBoYW5kbGVIb3N0Q2FsbChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUKICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oS2VlcFRo
ZUZyYW1lKSk7CiB9CiAKLVNsb3dQYXRoUmV0dXJuVHlwZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkxpbmtDYWxsKENhbGxGcmFtZSogY2FsbGVlRnJhbWUsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxMaW5rSW5mbyogY2FsbExpbmtJbmZvKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkxpbmtDYWxsLCBTbG93UGF0aFJldHVyblR5cGUsIChDYWxsRnJhbWUqIGNh
bGxlZUZyYW1lLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsTGlua0luZm8qIGNh
bGxMaW5rSW5mbykpCiB7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBjYWxsZWVGcmFtZS0+
Y2FsbGVyRnJhbWUoKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0xNDE1
LDcgKzE0MTUsNyBAQCBpbmxpbmUgU2xvd1BhdGhSZXR1cm5UeXBlIHZpcnR1YWxGb3JXaXRoRnVu
Y3Rpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQwogICAgICAgICByZWludGVycHJl
dF9jYXN0PHZvaWQqPihjYWxsTGlua0luZm8tPmNhbGxNb2RlKCkgPT0gQ2FsbE1vZGU6OlRhaWwg
PyBSZXVzZVRoZUZyYW1lIDogS2VlcFRoZUZyYW1lKSk7CiB9CiAKLVNsb3dQYXRoUmV0dXJuVHlw
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtQb2x5bW9ycGhpY0NhbGwoQ2FsbEZyYW1lKiBj
YWxsZWVGcmFtZSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbExpbmtJbmZvKiBj
YWxsTGlua0luZm8pCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTGlua1BvbHlt
b3JwaGljQ2FsbCwgU2xvd1BhdGhSZXR1cm5UeXBlLCAoQ2FsbEZyYW1lKiBjYWxsZWVGcmFtZSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbExpbmtJbmZvKiBjYWxsTGlua0luZm8p
KQogewogICAgIEFTU0VSVChjYWxsTGlua0luZm8tPnNwZWNpYWxpemF0aW9uS2luZCgpID09IENv
ZGVGb3JDYWxsKTsKICAgICBKU0NlbGwqIGNhbGxlZUFzRnVuY3Rpb25DZWxsOwpAQCAtMTQyNiwx
MyArMTQyNiwxMyBAQCBTbG93UGF0aFJldHVyblR5cGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25M
aW5rUG9seW1vcnBoaWNDYWxsKENhbGxGcmFtZSogY2FsbGVlRgogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKLVNsb3dQYXRoUmV0dXJuVHlwZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZpcnR1YWxD
YWxsKENhbGxGcmFtZSogY2FsbGVlRnJhbWUsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxMaW5rSW5mbyogY2FsbExpbmtJbmZvKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblZpcnR1YWxDYWxsLCBTbG93UGF0aFJldHVyblR5cGUsIChDYWxsRnJhbWUqIGNhbGxl
ZUZyYW1lLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsTGlua0luZm8qIGNhbGxM
aW5rSW5mbykpCiB7CiAgICAgSlNDZWxsKiBjYWxsZWVBc0Z1bmN0aW9uQ2VsbElnbm9yZWQ7CiAg
ICAgcmV0dXJuIHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBjYWxsZWVGcmFt
ZSwgY2FsbExpbmtJbmZvLCBjYWxsZWVBc0Z1bmN0aW9uQ2VsbElnbm9yZWQpOwogfQogCi1zaXpl
X3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlTGVzcyhKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVMZXNzLCBz
aXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwpAQCAtMTQ0MSw3ICsxNDQxLDcgQEAgc2l6ZV90IEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uQ29tcGFyZUxlc3MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEoK
ICAgICByZXR1cm4ganNMZXNzPHRydWU+KGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRPcDEpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMikpOwogfQogCi1zaXplX3QgSklU
X09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlTGVzc0VxKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUxlc3NFcSwgc2l6
ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTE0NTAsNyArMTQ1MCw3IEBAIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkNvbXBhcmVMZXNzRXEoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlCiAg
ICAgcmV0dXJuIGpzTGVzc0VxPHRydWU+KGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRPcDEpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMikpOwogfQogCi1zaXplX3QgSklU
X09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlR3JlYXRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVHcmVhdGVyLCBz
aXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwpAQCAtMTQ1OSw3ICsxNDU5LDcgQEAgc2l6ZV90IEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uQ29tcGFyZUdyZWF0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2QK
ICAgICByZXR1cm4ganNMZXNzPGZhbHNlPihnbG9iYWxPYmplY3QsIEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkT3AyKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpKTsKIH0KIAotc2l6ZV90IEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXJFcShKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVHcmVhdGVy
RXEsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CkBAIC0xNDY4LDcgKzE0NjgsNyBAQCBzaXplX3QgSklUX09QRVJBVElP
TiBvcGVyYXRpb25Db21wYXJlR3JlYXRlckVxKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVuYwogICAgIHJldHVybiBqc0xlc3NFcTxmYWxzZT4oZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZE9wMiksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKSk7CiB9CiAKLXNp
emVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVFcShKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVFcSwgc2l6
ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTE0NzgsOSArMTQ3OCw5IEBAIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkNvbXBhcmVFcShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWCiB9
CiAKICNpZiBVU0UoSlNWQUxVRTY0KQotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25Db21wYXJlU3RyaW5nRXEoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxs
KiBsZWZ0LCBKU0NlbGwqIHJpZ2h0KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbXBhcmVTdHJpbmdFcSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0NlbGwqIGxlZnQsIEpTQ2VsbCogcmlnaHQpKQogI2Vsc2UKLXNpemVfdCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdFcShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0NlbGwqIGxlZnQsIEpTQ2VsbCogcmlnaHQpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0VxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU0NlbGwqIGxlZnQsIEpTQ2VsbCogcmlnaHQpKQogI2VuZGlmCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMTQ5NSw3ICsxNDk1LDcgQEAgc2l6
ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZVN0cmluZ0VxKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTQ2UKICNlbmRpZgogfQogCi1zaXplX3QgSklUX09QRVJBVElPTiBv
cGVyYXRpb25Db21wYXJlU3RyaWN0RXEoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaWN0RXEsIHNpemVfdCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
CkBAIC0xNTA4LDcgKzE1MDgsNyBAQCBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21w
YXJlU3RyaWN0RXEoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jbwogfQogCiAjaWYg
VVNFKEJJR0lOVDMyKQotc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZUVxSGVh
cEJpZ0ludFRvSW50MzIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBoZWFw
QmlnSW50LCBpbnQzMl90IHNtYWxsSW50KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNvbXBhcmVFcUhlYXBCaWdJbnRUb0ludDMyLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU0NlbGwqIGhlYXBCaWdJbnQsIGludDMyX3Qgc21hbGxJbnQpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNTIwLDcgKzE1MjAsNyBAQCBzaXplX3Qg
SklUX09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlRXFIZWFwQmlnSW50VG9JbnQzMihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsTwogfQogI2VuZGlmCiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uTmV3QXJyYXlXaXRoUHJvZmlsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBBcnJheUFsbG9jYXRpb25Qcm9maWxlKiBwcm9maWxlLCBjb25zdCBKU1ZhbHVlKiB2YWx1
ZXMsIGludCBzaXplKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5
V2l0aFByb2ZpbGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSogcHJvZmlsZSwgY29uc3QgSlNWYWx1ZSogdmFsdWVz
LCBpbnQgc2l6ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE1MjgsNyAr
MTUyOCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3QXJyYXlX
aXRoUHJvZmlsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShjb25zdHJ1Y3RBcnJheU5lZ2F0aXZlSW5kZXhlZChnbG9iYWxPYmplY3QsIHByb2ZpbGUs
IHZhbHVlcywgc2l6ZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbk5ld0FycmF5V2l0aFNpemVBbmRQcm9maWxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEFycmF5QWxsb2NhdGlvblByb2ZpbGUqIHByb2ZpbGUsIEVuY29kZWRKU1ZhbHVlIHNpemUp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZUFuZFBy
b2ZpbGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQXJy
YXlBbGxvY2F0aW9uUHJvZmlsZSogcHJvZmlsZSwgRW5jb2RlZEpTVmFsdWUgc2l6ZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE1NTAsNyArMTU1MCw3IEBAIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBuZXdGdW5jdGlvbkNvbW1vbihWTSYgdm0sIEpTU2NvcGUqIHNjb3BlLCBK
U0NlbGwqIGZ1bmN0aW9uCiAKIGV4dGVybiAiQyIgewogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbk5ld0Z1bmN0aW9uKFZNKiB2bVBvaW50ZXIsIEpTU2NvcGUqIHNjb3Bl
LCBKU0NlbGwqIGZ1bmN0aW9uRXhlY3V0YWJsZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25OZXdGdW5jdGlvbiwgRW5jb2RlZEpTVmFsdWUsIChWTSogdm1Qb2ludGVyLCBKU1Nj
b3BlKiBzY29wZSwgSlNDZWxsKiBmdW5jdGlvbkV4ZWN1dGFibGUpKQogewogICAgIFZNJiB2bSA9
ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwpAQCAtMTU1OCw3ICsxNTU4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25OZXdGdW5jdGlvbihWTSogdm1Qb2ludGVyLCBKU1Njb3BlKiBzY29wZSwKICAg
ICByZXR1cm4gbmV3RnVuY3Rpb25Db21tb248SlNGdW5jdGlvbj4odm0sIHNjb3BlLCBmdW5jdGlv
bkV4ZWN1dGFibGUsIGZhbHNlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25OZXdGdW5jdGlvbldpdGhJbnZhbGlkYXRlZFJlYWxsb2NhdGlvbldhdGNocG9pbnQo
Vk0qIHZtUG9pbnRlciwgSlNTY29wZSogc2NvcGUsIEpTQ2VsbCogZnVuY3Rpb25FeGVjdXRhYmxl
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0Z1bmN0aW9uV2l0aEludmFs
aWRhdGVkUmVhbGxvY2F0aW9uV2F0Y2hwb2ludCwgRW5jb2RlZEpTVmFsdWUsIChWTSogdm1Qb2lu
dGVyLCBKU1Njb3BlKiBzY29wZSwgSlNDZWxsKiBmdW5jdGlvbkV4ZWN1dGFibGUpKQogewogICAg
IFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwpAQCAtMTU2Niw3ICsxNTY2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25OZXdGdW5jdGlvbldpdGhJbnZhbGlkYXRlZFJlYWxsb2NhdGlv
bldhdGMKICAgICByZXR1cm4gbmV3RnVuY3Rpb25Db21tb248SlNGdW5jdGlvbj4odm0sIHNjb3Bl
LCBmdW5jdGlvbkV4ZWN1dGFibGUsIHRydWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbk5ld0dlbmVyYXRvckZ1bmN0aW9uKFZNKiB2bVBvaW50ZXIsIEpTU2Nv
cGUqIHNjb3BlLCBKU0NlbGwqIGZ1bmN0aW9uRXhlY3V0YWJsZSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25OZXdHZW5lcmF0b3JGdW5jdGlvbiwgRW5jb2RlZEpTVmFsdWUsIChW
TSogdm1Qb2ludGVyLCBKU1Njb3BlKiBzY29wZSwgSlNDZWxsKiBmdW5jdGlvbkV4ZWN1dGFibGUp
KQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTU3NCw3ICsxNTc0LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdHZW5lcmF0b3JGdW5jdGlvbihWTSogdm1Q
b2ludGVyLCBKU1Njb3AKICAgICByZXR1cm4gbmV3RnVuY3Rpb25Db21tb248SlNHZW5lcmF0b3JG
dW5jdGlvbj4odm0sIHNjb3BlLCBmdW5jdGlvbkV4ZWN1dGFibGUsIGZhbHNlKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdHZW5lcmF0b3JGdW5jdGlvbldp
dGhJbnZhbGlkYXRlZFJlYWxsb2NhdGlvbldhdGNocG9pbnQoVk0qIHZtUG9pbnRlciwgSlNTY29w
ZSogc2NvcGUsIEpTQ2VsbCogZnVuY3Rpb25FeGVjdXRhYmxlKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbk5ld0dlbmVyYXRvckZ1bmN0aW9uV2l0aEludmFsaWRhdGVkUmVhbGxv
Y2F0aW9uV2F0Y2hwb2ludCwgRW5jb2RlZEpTVmFsdWUsIChWTSogdm1Qb2ludGVyLCBKU1Njb3Bl
KiBzY29wZSwgSlNDZWxsKiBmdW5jdGlvbkV4ZWN1dGFibGUpKQogewogICAgIFZNJiB2bSA9ICp2
bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwpAQCAtMTU4Miw3ICsxNTgyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25OZXdHZW5lcmF0b3JGdW5jdGlvbldpdGhJbnZhbGlkYXRlZFJlYWxsb2MKICAgICBy
ZXR1cm4gbmV3RnVuY3Rpb25Db21tb248SlNHZW5lcmF0b3JGdW5jdGlvbj4odm0sIHNjb3BlLCBm
dW5jdGlvbkV4ZWN1dGFibGUsIHRydWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbk5ld0FzeW5jRnVuY3Rpb24oVk0qIHZtUG9pbnRlciwgSlNTY29wZSogc2Nv
cGUsIEpTQ2VsbCogZnVuY3Rpb25FeGVjdXRhYmxlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbk5ld0FzeW5jRnVuY3Rpb24sIEVuY29kZWRKU1ZhbHVlLCAoVk0qIHZtUG9pbnRl
ciwgSlNTY29wZSogc2NvcGUsIEpTQ2VsbCogZnVuY3Rpb25FeGVjdXRhYmxlKSkKIHsKICAgICBW
TSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTE1OTAsNyArMTU5MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uTmV3QXN5bmNGdW5jdGlvbihWTSogdm1Qb2ludGVyLCBKU1Njb3Bl
KiBzCiAgICAgcmV0dXJuIG5ld0Z1bmN0aW9uQ29tbW9uPEpTQXN5bmNGdW5jdGlvbj4odm0sIHNj
b3BlLCBmdW5jdGlvbkV4ZWN1dGFibGUsIGZhbHNlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25OZXdBc3luY0Z1bmN0aW9uV2l0aEludmFsaWRhdGVkUmVhbGxv
Y2F0aW9uV2F0Y2hwb2ludChWTSogdm1Qb2ludGVyLCBKU1Njb3BlKiBzY29wZSwgSlNDZWxsKiBm
dW5jdGlvbkV4ZWN1dGFibGUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3
QXN5bmNGdW5jdGlvbldpdGhJbnZhbGlkYXRlZFJlYWxsb2NhdGlvbldhdGNocG9pbnQsIEVuY29k
ZWRKU1ZhbHVlLCAoVk0qIHZtUG9pbnRlciwgSlNTY29wZSogc2NvcGUsIEpTQ2VsbCogZnVuY3Rp
b25FeGVjdXRhYmxlKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE1OTgsNyArMTU5OCw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3QXN5bmNGdW5jdGlv
bldpdGhJbnZhbGlkYXRlZFJlYWxsb2NhdGlvCiAgICAgcmV0dXJuIG5ld0Z1bmN0aW9uQ29tbW9u
PEpTQXN5bmNGdW5jdGlvbj4odm0sIHNjb3BlLCBmdW5jdGlvbkV4ZWN1dGFibGUsIHRydWUpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0FzeW5jR2VuZXJh
dG9yRnVuY3Rpb24oVk0qIHZtUG9pbnRlciwgSlNTY29wZSogc2NvcGUsIEpTQ2VsbCogZnVuY3Rp
b25FeGVjdXRhYmxlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FzeW5j
R2VuZXJhdG9yRnVuY3Rpb24sIEVuY29kZWRKU1ZhbHVlLCAoVk0qIHZtUG9pbnRlciwgSlNTY29w
ZSogc2NvcGUsIEpTQ2VsbCogZnVuY3Rpb25FeGVjdXRhYmxlKSkKIHsKICAgICBWTSYgdm0gPSAq
dm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKQEAgLTE2MDYsNyArMTYwNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uTmV3QXN5bmNHZW5lcmF0b3JGdW5jdGlvbihWTSogdm1Qb2ludGVyLCBKCiAgICAg
cmV0dXJuIG5ld0Z1bmN0aW9uQ29tbW9uPEpTQXN5bmNHZW5lcmF0b3JGdW5jdGlvbj4odm0sIHNj
b3BlLCBmdW5jdGlvbkV4ZWN1dGFibGUsIGZhbHNlKTsKIH0KICAgICAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3QXN5bmNHZW5lcmF0b3JGdW5jdGlvbldpdGhJbnZh
bGlkYXRlZFJlYWxsb2NhdGlvbldhdGNocG9pbnQoVk0qIHZtUG9pbnRlciwgSlNTY29wZSogc2Nv
cGUsIEpTQ2VsbCogZnVuY3Rpb25FeGVjdXRhYmxlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbk5ld0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25XaXRoSW52YWxpZGF0ZWRSZWFsbG9j
YXRpb25XYXRjaHBvaW50LCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiB2bVBvaW50ZXIsIEpTU2NvcGUq
IHNjb3BlLCBKU0NlbGwqIGZ1bmN0aW9uRXhlY3V0YWJsZSkpCiB7CiAgICAgVk0mIHZtID0gKnZt
UG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC0xNjE0LDcgKzE2MTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbk5ld0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25XaXRoSW52YWxpZGF0ZWRSZQogICAgIHJl
dHVybiBuZXdGdW5jdGlvbkNvbW1vbjxKU0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24+KHZtLCBzY29w
ZSwgZnVuY3Rpb25FeGVjdXRhYmxlLCB0cnVlKTsKIH0KICAgICAKLXZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25TZXRGdW5jdGlvbk5hbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNDZWxsKiBmdW5jQ2VsbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE5hbWUpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0RnVuY3Rpb25OYW1lLCB2b2lkLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBmdW5jQ2VsbCwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE5hbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNjI1LDcgKzE2
MjUsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU2V0RnVuY3Rpb25OYW1lKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbAogICAgIGZ1bmMtPnNldEZ1bmN0aW9uTmFt
ZShnbG9iYWxPYmplY3QsIG5hbWUpOwogfQogCi1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uTmV3T2JqZWN0KFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVyZSogc3RydWN0dXJlKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld09iamVjdCwgSlNDZWxsKiwgKFZNKiB2bVBv
aW50ZXIsIFN0cnVjdHVyZSogc3RydWN0dXJlKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVy
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTE2MzQsNyArMTYzNCw3IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdPYmpl
Y3QoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgcmV0dXJuIGNvbnN0
cnVjdEVtcHR5T2JqZWN0KHZtLCBzdHJ1Y3R1cmUpOwogfQogCi1KU0NlbGwqIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uTmV3UHJvbWlzZShWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdQcm9taXNlLCBKU0NlbGwq
LCAoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpKQogewogICAgIFZNJiB2bSA9
ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwpAQCAtMTY0Myw3ICsxNjQzLDcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbk5ld1Byb21pc2UoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAg
cmV0dXJuIEpTUHJvbWlzZTo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUpOwogfQogCi1KU0NlbGwqIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3SW50ZXJuYWxQcm9taXNlKFZNKiB2bVBvaW50ZXIsIFN0
cnVjdHVyZSogc3RydWN0dXJlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5l
d0ludGVybmFsUHJvbWlzZSwgSlNDZWxsKiwgKFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE2NTIsNyArMTY1Miw3IEBAIEpT
Q2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdJbnRlcm5hbFByb21pc2UoVk0qIHZtUG9p
bnRlciwgU3RydWN0dXJlKiBzdHJ1CiAgICAgcmV0dXJuIEpTSW50ZXJuYWxQcm9taXNlOjpjcmVh
dGUodm0sIHN0cnVjdHVyZSk7CiB9CiAKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25O
ZXdHZW5lcmF0b3IoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3R2VuZXJhdG9yLCBKU0NlbGwqLCAoVk0qIHZt
UG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50
ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpA
QCAtMTY2MSw3ICsxNjYxLDcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0dl
bmVyYXRvcihWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICByZXR1cm4g
SlNHZW5lcmF0b3I6OmNyZWF0ZSh2bSwgc3RydWN0dXJlKTsKIH0KIAotSlNDZWxsKiBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbk5ld0FzeW5jR2VuZXJhdG9yKFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVy
ZSogc3RydWN0dXJlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FzeW5j
R2VuZXJhdG9yLCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
KQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTY3MCw3ICsxNjcwLDcgQEAgSlNDZWxsKiBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0FzeW5jR2VuZXJhdG9yKFZNKiB2bVBvaW50ZXIsIFN0
cnVjdHVyZSogc3RydWMKICAgICByZXR1cm4gSlNBc3luY0dlbmVyYXRvcjo6Y3JlYXRlKHZtLCBz
dHJ1Y3R1cmUpOwogfQogCi1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3UmVnZXhw
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogcmVnZXhwUHRyKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1JlZ2V4cCwgSlNDZWxsKiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogcmVnZXhwUHRyKSkKIHsKICAgICBTdXBlclNh
bXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwpAQCAtMTY4Niw3ICsxNjg2LDcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbk5ld1JlZ2V4cChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwq
IHIKIC8vIGV4aXN0aW5nIERGRyBzbG93IHBhdGggZ2VuZXJhdG9yIG1hY2hpbmVyeSB3aGVuIGNy
ZWF0aW5nIHRoZSBzbG93IHBhdGggZm9yIENoZWNrVHJhcHMKIC8vIGluIHRoZSBERkcuIElmIGEg
REZHIHNsb3cgcGF0aCBnZW5lcmF0b3IgdGhhdCBzdXBwb3J0cyBhIHZvaWQgcmV0dXJuIHR5cGUg
aXMgYWRkZWQgaW4gdGhlCiAvLyBmdXR1cmUsIHdlIGNhbiBzd2l0Y2ggdG8gdXNpbmcgdGhhdCB0
aGVuLgotVW51c2VkUHRyIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFuZGxlVHJhcHMoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25IYW5kbGVUcmFwcywgVW51c2VkUHRyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE2OTYsNyArMTY5Niw3IEBAIFVu
dXNlZFB0ciBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhbmRsZVRyYXBzKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLXZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25EZWJ1ZyhWTSogdm1Qb2ludGVyLCBpbnQzMl90IGRlYnVnSG9va1R5cGUp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVidWcsIHZvaWQsIChWTSogdm1Q
b2ludGVyLCBpbnQzMl90IGRlYnVnSG9va1R5cGUpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50
ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpA
QCAtMTcxMiw3ICsxNzEyLDcgQEAgc3RhdGljIHZvaWQgdXBkYXRlQWxsUHJlZGljdGlvbnNBbmRP
cHRpbWl6ZUFmdGVyV2FybVVwKENvZGVCbG9jayogY29kZUJsb2NrKQogICAgIGNvZGVCbG9jay0+
b3B0aW1pemVBZnRlcldhcm1VcCgpOwogfQogCi1TbG93UGF0aFJldHVyblR5cGUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25PcHRpbWl6ZShWTSogdm1Qb2ludGVyLCB1aW50MzJfdCBieXRlY29kZUlu
ZGV4Qml0cykKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PcHRpbWl6ZSwgU2xv
d1BhdGhSZXR1cm5UeXBlLCAoVk0qIHZtUG9pbnRlciwgdWludDMyX3QgYnl0ZWNvZGVJbmRleEJp
dHMpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTk0Myw3ICsxOTQzLDcgQEAgU2xvd1Bh
dGhSZXR1cm5UeXBlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoVk0qIHZtUG9pbnRl
ciwgdWludDMyX3QgYnl0ZWMKICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KG51bGxwdHIsIG51bGxw
dHIpOwogfQogCi1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRyeU9TUkVudGVyQXRDYXRj
aChWTSogdm1Qb2ludGVyLCB1aW50MzJfdCBieXRlY29kZUluZGV4Qml0cykKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25UcnlPU1JFbnRlckF0Q2F0Y2gsIGNoYXIqLCAoVk0qIHZt
UG9pbnRlciwgdWludDMyX3QgYnl0ZWNvZGVJbmRleEJpdHMpKQogewogICAgIFZNJiB2bSA9ICp2
bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwpAQCAtMTk2Nyw3ICsxOTY3LDcgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25U
cnlPU1JFbnRlckF0Q2F0Y2goVk0qIHZtUG9pbnRlciwgdWludDMyX3QgYnl0ZWNvZGUKICAgICBy
ZXR1cm4gbnVsbHB0cjsKIH0KIAotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25UcnlPU1JF
bnRlckF0Q2F0Y2hBbmRWYWx1ZVByb2ZpbGUoVk0qIHZtUG9pbnRlciwgdWludDMyX3QgYnl0ZWNv
ZGVJbmRleEJpdHMpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5T1NSRW50
ZXJBdENhdGNoQW5kVmFsdWVQcm9maWxlLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIHVpbnQzMl90
IGJ5dGVjb2RlSW5kZXhCaXRzKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIwMDEsNyAr
MjAwMSw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVHJ5T1NSRW50ZXJBdENhdGNo
QW5kVmFsdWVQcm9maWxlKFZNKiB2bVBvaW50ZXIsIHVpCiAKICNlbmRpZgogCi12b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJbmRleChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJyYXlWYWx1ZSwgaW50MzJfdCBpbmRleCwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dEJ5SW5kZXgsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQXJyYXlWYWx1ZSwgaW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjAzMSw3
ICsyMDMxLDcgQEAgc3RhdGljIHZvaWQgcHV0QWNjZXNzb3JCeVZhbChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwgSlNWYWwKICAgICAgICAgYmFzZS0+cHV0U2V0
dGVyKGdsb2JhbE9iamVjdCwgcHJvcGVydHlLZXksIGFjY2Vzc29yLCBhdHRyaWJ1dGUpOwogfQog
Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyQnlJZChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwg
aW50MzJfdCBvcHRpb25zLCBKU0NlbGwqIGdldHRlcikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QdXRHZXR0ZXJCeUlkLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIGludDMyX3Qgb3B0
aW9ucywgSlNDZWxsKiBnZXR0ZXIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBA
IC0yMDQ0LDcgKzIwNDQsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVy
QnlJZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqCiAgICAgYmFzZU9iai0+
cHV0R2V0dGVyKGdsb2JhbE9iamVjdCwgdWlkLCBnZXR0ZXIsIG9wdGlvbnMpOwogfQogCi12b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0U2V0dGVyQnlJZChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwgaW50MzJf
dCBvcHRpb25zLCBKU0NlbGwqIHNldHRlcikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25QdXRTZXR0ZXJCeUlkLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIGludDMyX3Qgb3B0aW9ucywg
SlNDZWxsKiBzZXR0ZXIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMDU3
LDcgKzIwNTcsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0U2V0dGVyQnlJZChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqCiAgICAgYmFzZU9iai0+cHV0U2V0
dGVyKGdsb2JhbE9iamVjdCwgdWlkLCBzZXR0ZXIsIG9wdGlvbnMpOwogfQogCi12b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyQnlWYWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBpbnQz
Ml90IGF0dHJpYnV0ZSwgSlNDZWxsKiBnZXR0ZXIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0R2V0dGVyQnlWYWwsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0NlbGwqIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIGludDMy
X3QgYXR0cmlidXRlLCBKU0NlbGwqIGdldHRlcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKQEAgLTIwNjYsNyArMjA2Niw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Q
dXRHZXR0ZXJCeVZhbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqCiAgICAg
cHV0QWNjZXNzb3JCeVZhbChnbG9iYWxPYmplY3QsIGFzT2JqZWN0KGJhc2UpLCBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCksIGF0dHJpYnV0ZSwgYXNPYmplY3QoZ2V0dGVyKSwgQWNj
ZXNzb3JUeXBlOjpHZXR0ZXIpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0
U2V0dGVyQnlWYWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxs
KiBzZXR0ZXIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0U2V0dGVyQnlW
YWwsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGJhc2UsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIGludDMyX3QgYXR0cmlidXRlLCBKU0NlbGwq
IHNldHRlcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIwNzYsNyArMjA3
Niw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeVZhbChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqCiB9CiAKICNpZiBVU0UoSlNWQUxVRTY0KQot
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNldHRlcihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwg
aW50MzJfdCBhdHRyaWJ1dGUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRHZXR0ZXJWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFNldHRlclZhbHVlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQ2VsbCogb2JqZWN0LCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLCBpbnQzMl90IGF0
dHJpYnV0ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEdldHRlclZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkU2V0dGVyVmFsdWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBA
IC0yMDkzLDcgKzIwOTMsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVy
U2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbAogfQogCiAjZWxzZQot
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNldHRlcihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwg
aW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCogZ2V0dGVyQ2VsbCwgSlNDZWxsKiBzZXR0ZXJDZWxs
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0LCBVbmlxdWVk
U3RyaW5nSW1wbCogdWlkLCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKiBnZXR0ZXJDZWxsLCBK
U0NlbGwqIHNldHRlckNlbGwpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0y
MTEwLDcgKzIxMTAsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyU2V0
dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbAogfQogI2VuZGlmCiAKLXNp
emVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluc3RhbmNlT2ZDdXN0b20oSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBKU09iamVjdCog
Y29uc3RydWN0b3IsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRIYXNJbnN0YW5jZSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnN0YW5jZU9mQ3VzdG9tLCBzaXplX3QsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEpT
T2JqZWN0KiBjb25zdHJ1Y3RvciwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEhhc0luc3RhbmNlKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjE5Miw3ICsyMTkyLDcgQEAgQUxX
QVlTX0lOTElORSBzdGF0aWMgSlNWYWx1ZSBnZXRCeVZhbChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGMKIAogZXh0ZXJuICJDIiB7CiAKLUVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgQXJyYXlQcm9maWxlKiBwcm9m
aWxlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1
YnNjcmlwdCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbEdlbmVy
aWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBBcnJheVByb2ZpbGUqIHByb2ZpbGUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0KSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjIwNSw3ICsyMjA1LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGdldEJ5VmFsKGdsb2Jh
bE9iamVjdCwgY2FsbEZyYW1lLCBwcm9maWxlLCBiYXNlVmFsdWUsIHN1YnNjcmlwdCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZv
LCBBcnJheVByb2ZpbGUqIHByb2ZpbGUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBBcnJheVByb2ZpbGUq
IHByb2ZpbGUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkU3Vic2NyaXB0KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjI0Nyw3
ICsyMjQ3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZh
bE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShnZXRCeVZhbChnbG9iYWxPYmplY3QsIGNhbGxGcmFt
ZSwgcHJvZmlsZSwgYmFzZVZhbHVlLCBzdWJzY3JpcHQpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQ
cm9wZXJ0eSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbCwgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5KSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjMwNiw3ICsyMzA2LDcgQEAgQUxXQVlTX0lOTElO
RSBzdGF0aWMgSlNWYWx1ZSBnZXRQcml2YXRlTmFtZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnIKIAogZXh0ZXJuICJDIiB7CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWVPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkRmllbGROYW1lKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVOYW1lT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJ
bmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEZp
ZWxkTmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIzNDIsNyArMjM0
Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0UHJpdmF0ZU5h
bWVPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCBKU1ZhbHVlOjplbmNvZGUoZ2V0UHJpdmF0ZU5hbWUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUsIGJhc2VWYWx1ZSwgZmllbGROYW1lVmFsdWUpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWUoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEZpZWxkTmFtZSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25HZXRQcml2YXRlTmFtZSwgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkRmllbGROYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjM1Niw3ICsyMzU2LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRQcml2YXRlTmFtZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGdldFBy
aXZhdGVOYW1lKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBiYXNlVmFsdWUsIGZpZWxkTmFtZVZh
bHVlKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFzSW5k
ZXhlZFByb3BlcnR5RGVmYXVsdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlW
YWxJbmZvKiBieVZhbEluZm8pCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSGFz
SW5kZXhlZFByb3BlcnR5RGVmYXVsdCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKiBieVZhbEluZm8pKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CkBAIC0yNDA0LDcgKzI0MDQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQoSlNHbG9iYWxPYmpl
Y3QqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ob2JqZWN0LT5oYXNQcm9w
ZXJ0eUdlbmVyaWMoZ2xvYmFsT2JqZWN0LCBpbmRleCwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1l
dGhvZFR5cGU6OkdldE93blByb3BlcnR5KSkpOwogfQogICAgIAotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlHZW5lcmljKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlHZW5lcmljLCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qIGJ5
VmFsSW5mbykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI0NDAsNyArMjQ0
MCw3IEBAIHN0YXRpYyBib29sIGRlbGV0ZUJ5SWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgVk0mIHZtLCBEZWxldGVQcm9wZXJ0eVNsb3QmCiAgICAgcmV0dXJuIGNvdWxkRGVsZXRlOwog
fQogCi1zaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWxldGVCeUlkT3B0aW1pemUoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZp
ZXIsIEVDTUFNb2RlIGVjbWFNb2RlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkRlbGV0ZUJ5SWRPcHRpbWl6ZSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFz
ZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIsIEVDTUFNb2RlIGVjbWFNb2RlKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjQ2OCw3ICsyNDY4LDcgQEAgc2l6
ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVsZXRlQnlJZE9wdGltaXplKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFMKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zaXplX3QgSklU
X09QRVJBVElPTiBvcGVyYXRpb25EZWxldGVCeUlkR2VuZXJpYyhKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNl
LCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllciwgRUNNQU1vZGUgZWNtYU1vZGUpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVsZXRlQnlJZEdlbmVyaWMsIHNpemVf
dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVy
LCBFQ01BTW9kZSBlY21hTW9kZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTI1MDMsNyArMjUwMyw3IEBAIHN0YXRpYyBib29sIGRlbGV0ZUJ5VmFsKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFZNJiB2bSwgRGVsZXRlUHJvcGVydHlTbG90CiAgICAgcmV0dXJuIGNv
dWxkRGVsZXRlOwogfQogCi1zaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWxldGVCeVZh
bE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZv
KiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRTdWJzY3JpcHQsIEVDTUFNb2RlIGVjbWFNb2RlKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkRlbGV0ZUJ5VmFsT3B0aW1pemUsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVDTUFNb2Rl
IGVjbWFNb2RlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjUzMyw3ICsy
NTMzLDcgQEAgc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVsZXRlQnlWYWxPcHRpbWl6
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
LXNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlbGV0ZUJ5VmFsR2VuZXJpYyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFQ01BTW9kZSBl
Y21hTW9kZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeVZhbEdl
bmVyaWMsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0
dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRTdWJzY3JpcHQsIEVDTUFNb2RlIGVjbWFNb2RlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwpAQCAtMjU0Miw3ICsyNTQyLDcgQEAgc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uRGVsZXRlQnlWYWxHZW5lcmljKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFMKICAg
ICByZXR1cm4gZGVsZXRlQnlWYWwoZ2xvYmFsT2JqZWN0LCB2bSwgc2xvdCwgSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRCYXNlKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpLCBlY21h
TW9kZSk7CiB9CiAKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXNoV2l0aFNjb3Bl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY3VycmVudFNjb3BlQ2VsbCwg
RW5jb2RlZEpTVmFsdWUgb2JqZWN0VmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHVzaFdpdGhTY29wZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQ2VsbCogY3VycmVudFNjb3BlQ2VsbCwgRW5jb2RlZEpTVmFsdWUgb2JqZWN0VmFsdWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNTU3LDcgKzI1NTcsNyBAQCBK
U0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHVzaFdpdGhTY29wZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0NlbAogICAgIHJldHVybiBKU1dpdGhTY29wZTo6Y3JlYXRlKHZt
LCBnbG9iYWxPYmplY3QsIGN1cnJlbnRTY29wZSwgb2JqZWN0KTsKIH0KIAotSlNDZWxsKiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblB1c2hXaXRoU2NvcGVPYmplY3QoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNDZWxsKiBjdXJyZW50U2NvcGVDZWxsLCBKU09iamVjdCogb2JqZWN0KQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1c2hXaXRoU2NvcGVPYmplY3QsIEpT
Q2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGN1cnJlbnRTY29w
ZUNlbGwsIEpTT2JqZWN0KiBvYmplY3QpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
CkBAIC0yNTY2LDcgKzI1NjYsNyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHVz
aFdpdGhTY29wZU9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIHJldHVy
biBKU1dpdGhTY29wZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIGN1cnJlbnRTY29wZSwgb2Jq
ZWN0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25JbnN0YW5j
ZU9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3RvKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkluc3RhbmNlT2YsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkUHJvdG8pKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNTc4
LDcgKzI1NzgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluc3Rh
bmNlT2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRQogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNCb29sZWFuKHJlc3VsdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkluc3RhbmNlT2ZHZW5lcmljKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvdG8pCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uSW5zdGFuY2VPZkdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm90bykpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI1OTIsNyArMjU5Miw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW5zdGFuY2VPZkdlbmVyaWMoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4o
cmVzdWx0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW5z
dGFuY2VPZk9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0
dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkUHJvdG8pCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5z
dGFuY2VPZk9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvdG8pKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0yNjExLDcgKzI2MTEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkluc3RhbmNlT2ZPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
TwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHJlc3VsdCkpOwogfQogCi1p
bnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU2l6ZUZyYW1lRm9yRm9yd2FyZEFyZ3VtZW50
cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCBu
dW1Vc2VkU3RhY2tTbG90cywgaW50MzJfdCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25TaXplRnJhbWVGb3JGb3J3YXJkQXJndW1lbnRzLCBpbnQzMl90LCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QgbnVtVXNlZFN0YWNrU2xv
dHMsIGludDMyX3QpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNjE5LDcg
KzI2MTksNyBAQCBpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU2l6ZUZyYW1lRm9yRm9y
d2FyZEFyZ3VtZW50cyhKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIHJldHVybiBzaXplRnJhbWVG
b3JGb3J3YXJkQXJndW1lbnRzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCB2bSwgbnVtVXNlZFN0
YWNrU2xvdHMpOwogfQogCi1pbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU2l6ZUZyYW1l
Rm9yVmFyYXJncyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkQXJndW1lbnRzLCBpbnQzMl90IG51bVVzZWRTdGFja1Nsb3RzLCBpbnQzMl90IGZpcnN0
VmFyQXJnT2Zmc2V0KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNpemVGcmFt
ZUZvclZhcmFyZ3MsIGludDMyX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnRzLCBpbnQzMl90IG51bVVzZWRTdGFja1Nsb3RzLCBp
bnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtMjYyOCw3ICsyNjI4LDcgQEAgaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNp
emVGcmFtZUZvclZhcmFyZ3MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1
cm4gc2l6ZUZyYW1lRm9yVmFyYXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgdm0sIGFyZ3Vt
ZW50cywgbnVtVXNlZFN0YWNrU2xvdHMsIGZpcnN0VmFyQXJnT2Zmc2V0KTsKIH0KIAotQ2FsbEZy
YW1lKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNldHVwRm9yd2FyZEFyZ3VtZW50c0ZyYW1lKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lLCBFbmNv
ZGVkSlNWYWx1ZSwgaW50MzJfdCwgaW50MzJfdCBsZW5ndGgpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uU2V0dXBGb3J3YXJkQXJndW1lbnRzRnJhbWUsIENhbGxGcmFtZSosIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSwgRW5j
b2RlZEpTVmFsdWUsIGludDMyX3QsIGludDMyX3QgbGVuZ3RoKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwpAQCAtMjYzNyw3ICsyNjM3LDcgQEAgQ2FsbEZyYW1lKiBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblNldHVwRm9yd2FyZEFyZ3VtZW50c0ZyYW1lKEpTR2xvYmFsT2JqZWN0KiBn
bG8KICAgICByZXR1cm4gbmV3Q2FsbEZyYW1lOwogfQogCi1DYWxsRnJhbWUqIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uU2V0dXBWYXJhcmdzRnJhbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVu
dHMsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIGludDMyX3QgbGVuZ3RoKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldHVwVmFyYXJnc0ZyYW1lLCBDYWxsRnJhbWUqLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudHMsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQs
IGludDMyX3QgbGVuZ3RoKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjY0
Nyw3ICsyNjQ3LDcgQEAgQ2FsbEZyYW1lKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNldHVwVmFy
YXJnc0ZyYW1lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QKICAgICByZXR1cm4gbmV3Q2Fs
bEZyYW1lOwogfQogCi1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN3aXRjaENoYXJXaXRo
VW5rbm93bktleVR5cGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEtleSwgc2l6ZV90IHRhYmxlSW5kZXgpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uU3dpdGNoQ2hhcldpdGhVbmtub3duS2V5VHlwZSwgY2hhciosIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkS2V5LCBzaXplX3Qg
dGFibGVJbmRleCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI2NzMsNyAr
MjY3Myw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3dpdGNoQ2hhcldpdGhVbmtu
b3duS2V5VHlwZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8Y2hhcio+KHJlc3VsdCk7CiB9CiAKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
U3dpdGNoSW1tV2l0aFVua25vd25LZXlUeXBlKFZNKiB2bVBvaW50ZXIsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRLZXksIHNpemVfdCB0YWJsZUluZGV4KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblN3aXRjaEltbVdpdGhVbmtub3duS2V5VHlwZSwgY2hhciosIChWTSogdm1Qb2lu
dGVyLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkS2V5LCBzaXplX3QgdGFibGVJbmRleCkpCiB7CiAg
ICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNjkzLDcgKzI2OTMsNyBAQCBjaGFyKiBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblN3aXRjaEltbVdpdGhVbmtub3duS2V5VHlwZShWTSogdm1Qb2ludGVyLCBF
bmNvZGVkSgogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihyZXN1bHQpOwogfQog
Ci1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN3aXRjaFN0cmluZ1dpdGhVbmtub3duS2V5
VHlwZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
S2V5LCBzaXplX3QgdGFibGVJbmRleCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Td2l0Y2hTdHJpbmdXaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEtleSwgc2l6ZV90IHRhYmxlSW5k
ZXgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNzE4LDcgKzI3MTgsNyBA
QCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN3aXRjaFN0cmluZ1dpdGhVbmtub3duS2V5
VHlwZShKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNo
YXIqPihyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkdldEZyb21TY29wZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJbnN0cnVj
dGlvbiogcGMpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0RnJvbVNjb3Bl
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IElu
c3RydWN0aW9uKiBwYykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI3NjAs
NyArMjc2MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0RnJv
bVNjb3BlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgfSkpKTsKIH0KIAotdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFRvU2NvcGUoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgY29uc3QgSW5zdHJ1Y3Rpb24qIHBjKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dFRvU2NvcGUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBjb25zdCBJbnN0cnVjdGlvbiogcGMpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
CkBAIC0yODE0LDcgKzI4MTQsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0VG9T
Y29wZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJbnN0cgogICAgIENvbW1v
blNsb3dQYXRoczo6dHJ5Q2FjaGVQdXRUb1Njb3BlR2xvYmFsKGdsb2JhbE9iamVjdCwgY29kZUJs
b2NrLCBieXRlY29kZSwgc2NvcGUsIHNsb3QsIGlkZW50KTsKIH0KIAotdm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblRocm93KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRFeGNlcHRpb25WYWx1ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25UaHJvdywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRFeGNlcHRpb25WYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTI4MjgsNyArMjgyOCw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25UaHJvdyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlCiAg
ICAgZ2VuZXJpY1Vud2luZCh2bSwgY2FsbEZyYW1lKTsKIH0KIAotY2hhciogSklUX09QRVJBVElP
TiBvcGVyYXRpb25SZWFsbG9jYXRlQnV0dGVyZmx5VG9IYXZlUHJvcGVydHlTdG9yYWdlV2l0aElu
aXRpYWxDYXBhY2l0eShWTSogdm1Qb2ludGVyLCBKU09iamVjdCogb2JqZWN0KQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlYWxsb2NhdGVCdXR0ZXJmbHlUb0hhdmVQcm9wZXJ0
eVN0b3JhZ2VXaXRoSW5pdGlhbENhcGFjaXR5LCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEpTT2Jq
ZWN0KiBvYmplY3QpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjg0MCw3ICsyODQwLDcg
QEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWFsbG9jYXRlQnV0dGVyZmx5VG9IYXZl
UHJvcGVydHlTdG9yYWdlV2l0aEluaXRpYWwKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxj
aGFyKj4ocmVzdWx0KTsKIH0KIAotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWFsbG9j
YXRlQnV0dGVyZmx5VG9Hcm93UHJvcGVydHlTdG9yYWdlKFZNKiB2bVBvaW50ZXIsIEpTT2JqZWN0
KiBvYmplY3QsIHNpemVfdCBuZXdTaXplKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblJlYWxsb2NhdGVCdXR0ZXJmbHlUb0dyb3dQcm9wZXJ0eVN0b3JhZ2UsIGNoYXIqLCAoVk0q
IHZtUG9pbnRlciwgSlNPYmplY3QqIG9iamVjdCwgc2l6ZV90IG5ld1NpemUpKQogewogICAgIFZN
JiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwpAQCAtMjg1MSw3ICsyODUxLDcgQEAgY2hhciogSklUX09QRVJBVElPTiBv
cGVyYXRpb25SZWFsbG9jYXRlQnV0dGVyZmx5VG9Hcm93UHJvcGVydHlTdG9yYWdlKFZNKiB2bVBv
aW4KICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4ocmVzdWx0KTsKIH0KIAotdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9TUldyaXRlQmFycmllcihWTSogdm1Qb2ludGVyLCBK
U0NlbGwqIGNlbGwpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT1NSV3JpdGVC
YXJyaWVyLCB2b2lkLCAoVk0qIHZtUG9pbnRlciwgSlNDZWxsKiBjZWxsKSkKIHsKICAgICBWTSYg
dm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTI4NTksNyArMjg1OSw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25PU1JXcml0ZUJhcnJpZXIoVk0qIHZtUG9pbnRlciwgSlNDZWxsKiBjZWxsKQogICAgIHZt
LmhlYXAud3JpdGVCYXJyaWVyKGNlbGwpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uV3JpdGVCYXJyaWVyU2xvd1BhdGgoVk0qIHZtUG9pbnRlciwgSlNDZWxsKiBjZWxsKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldyaXRlQmFycmllclNsb3dQYXRoLCB2b2lk
LCAoVk0qIHZtUG9pbnRlciwgSlNDZWxsKiBjZWxsKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2lu
dGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
QEAgLTI4NjcsNyArMjg2Nyw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Xcml0ZUJh
cnJpZXJTbG93UGF0aChWTSogdm1Qb2ludGVyLCBKU0NlbGwqIGNlbGwpCiAgICAgdm0uaGVhcC53
cml0ZUJhcnJpZXJTbG93UGF0aChjZWxsKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIoVk0qIHZtUG9pbnRlcikKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25Mb29rdXBFeGNlcHRpb25IYW5kbGVyLCB2b2lkLCAoVk0qIHZt
UG9pbnRlcikpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yODc2LDcgKzI4NzYsNyBAQCB2
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTG9va3VwRXhjZXB0aW9uSGFuZGxlcihWTSogdm1Q
b2ludGVyKQogICAgIEFTU0VSVCh2bS50YXJnZXRNYWNoaW5lUENGb3JUaHJvdyk7CiB9CiAKLXZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Mb29rdXBFeGNlcHRpb25IYW5kbGVyRnJvbUNhbGxl
ckZyYW1lKFZNKiB2bVBvaW50ZXIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TG9va3VwRXhjZXB0aW9uSGFuZGxlckZyb21DYWxsZXJGcmFtZSwgdm9pZCwgKFZNKiB2bVBvaW50
ZXIpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjg4Nyw3ICsyODg3LDcgQEAgdm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxvb2t1cEV4Y2VwdGlvbkhhbmRsZXJGcm9tQ2FsbGVyRnJh
bWUoVk0qIHZtUG9pbnRlcikKICAgICBBU1NFUlQodm0udGFyZ2V0TWFjaGluZVBDRm9yVGhyb3cp
OwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVk1IYW5kbGVFeGNlcHRpb24oVk0q
IHZtUG9pbnRlcikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WTUhhbmRsZUV4
Y2VwdGlvbiwgdm9pZCwgKFZNKiB2bVBvaW50ZXIpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50
ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpA
QCAtMjkwMCw3ICsyOTAwLDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZNSGFuZGxl
RXhjZXB0aW9uKFZNKiB2bVBvaW50ZXIpCiAvLyBvdXJzZWx2ZXMgdG8gcGxheSBzb21lIGduYXJs
eSBBQkkgdHJpY2tzIGp1c3QgdG8gc2ltcGxpZnkgdGhlIGNhbGxpbmcgY29udmVudGlvbi4gVGhp
cyBpcwogLy8gcGFydGljdWxhcmx5IHNhZmUgaGVyZSBzaW5jZSB0aGlzIGlzIG5ldmVyIGNhbGxl
ZCBvbiB0aGUgY3JpdGljYWwgcGF0aCAtIGl0J3Mgb25seSBmb3IKIC8vIHRlc3RpbmcuCi12b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRXhjZXB0aW9uRnV6eihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkV4Y2VwdGlvbkZ1
enosIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwpAQCAtMjkxMyw3ICsyOTEzLDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkV4Y2VwdGlvbkZ1enooSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICNl
bmRpZiAvLyBDT01QSUxFUihHQ0NfQ09NUEFUSUJMRSkKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkV4Y2VwdGlvbkZ1enpXaXRoQ2FsbEZyYW1lKFZNKiB2bVBvaW50ZXIpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRXhjZXB0aW9uRnV6eldpdGhDYWxsRnJhbWUs
IHZvaWQsIChWTSogdm1Qb2ludGVyKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI5MjYs
NyArMjkyNiw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25FeGNlcHRpb25GdXp6V2l0
aENhbGxGcmFtZShWTSogdm1Qb2ludGVyKQogI2VuZGlmIC8vIENPTVBJTEVSKEdDQ19DT01QQVRJ
QkxFKQogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRk
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uVmFsdWVBZGQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI5MzQsNyArMjkzNCw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRW5jCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Fk
ZChnbG9iYWxPYmplY3QsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKSwgSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRPcDIpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVmFsdWVBZGRQcm9maWxlZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBCaW5hcnlB
cml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25WYWx1ZUFkZFByb2ZpbGVkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDIsIEJpbmFyeUFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlKSkKIHsKICAgICBBU1NF
UlQoYXJpdGhQcm9maWxlKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0y
OTQzLDcgKzI5NDMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZh
bHVlQWRkUHJvZmlsZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUocHJvZmlsZWRBZGQoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZE9wMSksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKSwgKmFyaXRoUHJvZmlsZSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkUHJvZmls
ZWRPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRBZGRJQyogYWRkSUMpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZE9wdGltaXpl
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVEFkZElDKiBh
ZGRJQykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI5NjgsNyArMjk2OCw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxl
ZE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShy
ZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVl
QWRkUHJvZmlsZWROb09wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVEFkZElD
KiBhZGRJQykKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZUFkZFByb2Zp
bGVkTm9PcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ay
LCBKSVRBZGRJQyogYWRkSUMpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0y
OTc5LDcgKzI5NzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZh
bHVlQWRkUHJvZmlsZWROb09wdGltaXplKEpTR2xvYmFsT2JqZWN0KgogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUocHJvZmlsZWRBZGQoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZE9wMSksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKSwgKmFyaXRoUHJvZmlsZSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkT3B0aW1p
emUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUQWRkSUMqIGFkZElDKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlQWRkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUQWRkSUMqIGFkZElDKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzAwMCw3ICszMDAwLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZE9wdGltaXplKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQWRkKGdsb2JhbE9iamVj
dCwgb3AxLCBvcDIpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25WYWx1ZUFkZE5vT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUQWRkSUMq
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlQWRkTm9PcHRpbWl6ZSwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRBZGRJQyopKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMDM4LDcgKzMwMzgsNyBAQCBBTFdB
WVNfSU5MSU5FIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBwcm9maWxlZE11bChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBFbgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blZhbHVlTXVsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMDQ3LDcgKzMwNDcsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuYwogICAgIHJldHVybiB1bnByb2ZpbGVkTXVsKGdsb2JhbE9iamVj
dCwgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uVmFsdWVNdWxOb09wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDIsIEpJVE11bElDKikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZU11
bE5vT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwg
SklUTXVsSUMqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzA1Niw3ICsz
MDU2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bE5v
T3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICByZXR1cm4gdW5wcm9maWxlZE11
bChnbG9iYWxPYmplY3QsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsT3B0aW1pemUoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMiwgSklUTXVsSUMqIG11bElDKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblZhbHVlTXVsT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMiwgSklUTXVsSUMqIG11bElDKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwpAQCAtMzA3NCw3ICszMDc0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25WYWx1ZU11bE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAg
ICByZXR1cm4gdW5wcm9maWxlZE11bChnbG9iYWxPYmplY3QsIGVuY29kZWRPcDEsIGVuY29kZWRP
cDIpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVs
UHJvZmlsZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQmluYXJ5QXJpdGhQcm9maWxlKiBh
cml0aFByb2ZpbGUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVNdWxQ
cm9maWxlZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBCaW5h
cnlBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKQEAgLTMwODQsNyArMzA4NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAg
cmV0dXJuIHByb2ZpbGVkTXVsKGdsb2JhbE9iamVjdCwgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwg
KmFyaXRoUHJvZmlsZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVmFsdWVNdWxQcm9maWxlZE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJ
VE11bElDKiBtdWxJQykKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZU11
bFByb2ZpbGVkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMiwgSklUTXVsSUMqIG11bElDKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpA
QCAtMzEwMyw3ICszMTAzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25WYWx1ZU11bFByb2ZpbGVkT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGcKICAgICByZXR1cm4g
cHJvZmlsZWRNdWwoZ2xvYmFsT2JqZWN0LCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyLCAqYXJpdGhQ
cm9maWxlLCBmYWxzZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVmFsdWVNdWxQcm9maWxlZE5vT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwg
SklUTXVsSUMqIG11bElDKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVl
TXVsUHJvZmlsZWROb09wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDIsIEpJVE11bElDKiBtdWxJQykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKQEAgLTMxMTUsNyArMzExNSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVmFsdWVNdWxQcm9maWxlZE5vT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqCiB9CiAKIC8v
IEZJWE1FOiBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gY2FsbCB0aG9zZSBvcGVyYXRpb25WYWx1ZU5l
Z2F0ZSwgc2luY2UgdGhlIG9wZXJhbmQgY2FuIGJlIGEgQmlnSW50Ci1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFyaXRoTmVnYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcGVyYW5kKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkFyaXRoTmVnYXRlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcGVyYW5kKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMzE0MSw3ICszMTQxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25Bcml0aE5lZ2F0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LAogfQogCiAvLyBGSVhNRTogaXQgd291bGQgYmUgYmV0dGVyIHRvIGNhbGwgdGhvc2Ugb3Bl
cmF0aW9uVmFsdWVOZWdhdGUsIHNpbmNlIHRoZSBvcGVyYW5kIGNhbiBiZSBhIEJpZ0ludAotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Bcml0aE5lZ2F0ZVByb2ZpbGVkKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcGVyYW5k
LCBVbmFyeUFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkFyaXRoTmVnYXRlUHJvZmlsZWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wZXJhbmQsIFVu
YXJ5QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUpKQogewogICAgIEFTU0VSVChhcml0aFByb2Zp
bGUpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTMxNzgsNyArMzE3OCw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJpdGhOZWdhdGVQcm9m
aWxlZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiB9CiAKIC8vIEZJWE1FOiBpdCB3b3VsZCBiZSBi
ZXR0ZXIgdG8gY2FsbCB0aG9zZSBvcGVyYXRpb25WYWx1ZU5lZ2F0ZSwgc2luY2UgdGhlIG9wZXJh
bmQgY2FuIGJlIGEgQmlnSW50Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkFyaXRoTmVnYXRlUHJvZmlsZWRPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3BlcmFuZCwgSklUTmVnSUMqIG5lZ0lDKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFyaXRoTmVnYXRlUHJvZmlsZWRPcHRpbWl6ZSwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3BlcmFuZCwgSklUTmVnSUMqIG5lZ0lDKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMzIyMiw3ICszMjIyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25Bcml0aE5lZ2F0ZVByb2ZpbGVkT3B0aW1pemUoSlNHbG9iYWxPYmplY3QKIH0KIAog
Ly8gRklYTUU6IGl0IHdvdWxkIGJlIGJldHRlciB0byBjYWxsIHRob3NlIG9wZXJhdGlvblZhbHVl
TmVnYXRlLCBzaW5jZSB0aGUgb3BlcmFuZCBjYW4gYmUgYSBCaWdJbnQKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJpdGhOZWdhdGVPcHRpbWl6ZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3BlcmFuZCwgSklUTmVnSUMq
IG5lZ0lDKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFyaXRoTmVnYXRlT3B0
aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wZXJhbmQsIEpJVE5lZ0lDKiBuZWdJQykpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTMyNzksNyArMzI3OSw3IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIHByb2ZpbGVkU3ViKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlU3ViKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVTdWIsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTMyODcsNyArMzI4Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uVmFsdWVTdWIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5j
CiAgICAgcmV0dXJuIHVucHJvZmlsZWRTdWIoZ2xvYmFsT2JqZWN0LCBlbmNvZGVkT3AxLCBlbmNv
ZGVkT3AyKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1
ZVN1YlByb2ZpbGVkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEJpbmFyeUFyaXRoUHJvZmls
ZSogYXJpdGhQcm9maWxlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVl
U3ViUHJvZmlsZWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwg
QmluYXJ5QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUpKQogewogICAgIEFTU0VSVChhcml0aFBy
b2ZpbGUpOwogCkBAIC0zMjk4LDcgKzMyOTgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblZhbHVlU3ViUHJvZmlsZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagog
ICAgIHJldHVybiBwcm9maWxlZFN1Yih2bSwgZ2xvYmFsT2JqZWN0LCBlbmNvZGVkT3AxLCBlbmNv
ZGVkT3AyLCAqYXJpdGhQcm9maWxlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25WYWx1ZVN1Yk9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJ
VFN1YklDKiBzdWJJQykKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZVN1
Yk9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJ
VFN1YklDKiBzdWJJQykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTMzMTYs
NyArMzMxNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVT
dWJPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAgcmV0dXJuIHVucHJvZmls
ZWRTdWIoZ2xvYmFsT2JqZWN0LCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1Yk5vT3B0aW1pemUoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUU3ViSUMqKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblZhbHVlU3ViTm9PcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AyLCBKSVRTdWJJQyopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC0zMzI1LDcgKzMzMjUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblZhbHVlU3ViTm9PcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIHJl
dHVybiB1bnByb2ZpbGVkU3ViKGdsb2JhbE9iamVjdCwgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVTdWJQcm9m
aWxlZE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVFN1YklDKiBzdWJJQykK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZVN1YlByb2ZpbGVkT3B0aW1p
emUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUU3ViSUMq
IHN1YklDKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzM0NCw3ICszMzQ0
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1YlByb2Zp
bGVkT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGcKICAgICByZXR1cm4gcHJvZmlsZWRTdWIodm0s
IGdsb2JhbE9iamVjdCwgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFyaXRoUHJvZmlsZSwgZmFs
c2UpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlU3Vi
UHJvZmlsZWROb09wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVFN1YklDKiBz
dWJJQykKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZVN1YlByb2ZpbGVk
Tm9PcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBK
SVRTdWJJQyogc3ViSUMpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMzU1
LDcgKzMzNTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVl
U3ViUHJvZmlsZWROb09wdGltaXplKEpTR2xvYmFsT2JqZWN0KgogICAgIHJldHVybiBwcm9maWxl
ZFN1Yih2bSwgZ2xvYmFsT2JqZWN0LCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyLCAqYXJpdGhQcm9m
aWxlKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2Nlc3NUeXBlUHJvZmls
ZXJMb2coVk0qIHZtUG9pbnRlcikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
cm9jZXNzVHlwZVByb2ZpbGVyTG9nLCB2b2lkLCAoVk0qIHZtUG9pbnRlcikpCiB7CiAgICAgVk0m
IHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0zMzYzLDcgKzMzNjMsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHJvY2Vzc1R5cGVQcm9maWxlckxvZyhWTSogdm1Qb2ludGVyKQogICAgIHZtLnR5cGVQ
cm9maWxlckxvZygpLT5wcm9jZXNzTG9nRW50cmllcyh2bSwgIkxvZyBGdWxsLCBjYWxsZWQgZnJv
bSBpbnNpZGUgYmFzZWxpbmUgSklUIl9zKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblByb2Nlc3NTaGFkb3dDaGlja2VuTG9nKFZNKiB2bVBvaW50ZXIpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUHJvY2Vzc1NoYWRvd0NoaWNrZW5Mb2csIHZvaWQsIChWTSog
dm1Qb2ludGVyKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTMzNzIsNyArMzM3Miw3IEBA
IHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9jZXNzU2hhZG93Q2hpY2tlbkxvZyhWTSog
dm1Qb2ludGVyKQogICAgIHZtLnNoYWRvd0NoaWNrZW4oKS0+dXBkYXRlKHZtLCBjYWxsRnJhbWUp
OwogfQogCi1pbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2hlY2tJZkV4Y2VwdGlvbklz
VW5jYXRjaGFibGVBbmROb3RpZnlQcm9maWxlcihWTSogdm1Qb2ludGVyKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNoZWNrSWZFeGNlcHRpb25Jc1VuY2F0Y2hhYmxlQW5kTm90
aWZ5UHJvZmlsZXIsIGludDMyX3QsIChWTSogdm1Qb2ludGVyKSkKIHsKICAgICBWTSYgdm0gPSAq
dm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKaW5kZXggMWFh
MzA3MDczMGJjNGZjMWExZTI0MWJhMTkzZjAzNzJhNDI0MzRlYy4uZThlNmM4OTJhYzcxYzM0ODI5
MmM5OGQxOTM2NDMzNjYyMmQ0YTNlZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmgKQEAgLTEyMCwyMDggKzEyMCwyMDggQEAgdHlwZWRlZiBjaGFyKiBVbnVzZWRQ
dHI7CiAgICAgVWk6IHVpbnQzMl90CiAqLwogCi11c2luZyBKX0pJVE9wZXJhdGlvbl9HSk1pYyA9
IEVuY29kZWRKU1ZhbHVlKEpJVF9PUEVSQVRJT04gKikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVk
SlNWYWx1ZSwgdm9pZCopOwotdXNpbmcgSl9KSVRPcGVyYXRpb25fR1AgPSBFbmNvZGVkSlNWYWx1
ZShKSVRfT1BFUkFUSU9OICopKEpTR2xvYmFsT2JqZWN0Kiwgdm9pZCopOwotdXNpbmcgSl9KSVRP
cGVyYXRpb25fR1BQID0gRW5jb2RlZEpTVmFsdWUoSklUX09QRVJBVElPTiAqKShKU0dsb2JhbE9i
amVjdCosIHZvaWQqLCB2b2lkKik7Ci11c2luZyBKX0pJVE9wZXJhdGlvbl9HUFBQID0gRW5jb2Rl
ZEpTVmFsdWUoSklUX09QRVJBVElPTiAqKShKU0dsb2JhbE9iamVjdCosIHZvaWQqLCB2b2lkKiwg
dm9pZCopOwotdXNpbmcgSl9KSVRPcGVyYXRpb25fR0pKID0gRW5jb2RlZEpTVmFsdWUoSklUX09Q
RVJBVElPTiAqKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSk7Ci11c2luZyBKX0pJVE9wZXJhdGlvbl9HSkpNaWMgPSBFbmNvZGVkSlNWYWx1ZShKSVRfT1BF
UkFUSU9OICopKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
LCB2b2lkKik7Ci11c2luZyBaX0pJVE9wZXJhdGlvbl9HSlpaID0gaW50MzJfdChKSVRfT1BFUkFU
SU9OICopKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIGludDMyX3Qp
OwotdXNpbmcgRl9KSVRPcGVyYXRpb25fR0ZKWlogPSBDYWxsRnJhbWUqKEpJVF9PUEVSQVRJT04g
KikoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwg
aW50MzJfdCk7Ci11c2luZyBTcHJ0X0pJVE9wZXJhdGlvbl9FR0NsaSA9IFNsb3dQYXRoUmV0dXJu
VHlwZShKSVRfT1BFUkFUSU9OICopKENhbGxGcmFtZSosIEpTR2xvYmFsT2JqZWN0KiwgQ2FsbExp
bmtJbmZvKik7Ci11c2luZyBWX0pJVE9wZXJhdGlvbl9DYiA9IHZvaWQoSklUX09QRVJBVElPTiAq
KShDb2RlQmxvY2sqKTsKLXVzaW5nIFpfSklUT3BlcmF0aW9uX0cgPSBpbnQzMl90IChKSVRfT1BF
UkFUSU9OICopKEpTR2xvYmFsT2JqZWN0Kik7Ci11c2luZyBQX0pJVE9wZXJhdGlvbl9WbVN0WkIg
PSBjaGFyKihKSVRfT1BFUkFUSU9OICopKFZNKiwgU3RydWN0dXJlKiwgaW50MzJfdCwgQnV0dGVy
Zmx5Kik7Ci11c2luZyBQX0pJVE9wZXJhdGlvbl9HU3RaQiA9IGNoYXIqKEpJVF9PUEVSQVRJT04g
KikoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnQzMl90LCBCdXR0ZXJmbHkqKTsKLXVz
aW5nIEpfSklUT3BlcmF0aW9uX0dKID0gRW5jb2RlZEpTVmFsdWUoSklUX09QRVJBVElPTiAqKShK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKTsKLXVzaW5nIEpfSklUT3BlcmF0aW9uX0dK
SSA9IEVuY29kZWRKU1ZhbHVlKEpJVF9PUEVSQVRJT04gKikoSlNHbG9iYWxPYmplY3QqLCBFbmNv
ZGVkSlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqKTsKLXVzaW5nIFZfSklUT3BlcmF0aW9uX0dT
c2lKSkMgPSB2b2lkKEpJVF9PUEVSQVRJT04gKikoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVT
dHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KTsKLXVz
aW5nIENfSklUT3BlcmF0aW9uX1RUID0gdWludHB0cl90KEpJVF9PUEVSQVRJT04gKikoU3RyaW5n
SW1wbCosIFN0cmluZ0ltcGwqKTsKLXVzaW5nIENfSklUT3BlcmF0aW9uX0JfR0pzc0pzcyA9IHVp
bnRwdHJfdChKSVRfT1BFUkFUSU9OICopKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBKU1N0
cmluZyopOwotdXNpbmcgU19KSVRPcGVyYXRpb25fR0MgPSBzaXplX3QoSklUX09QRVJBVElPTiAq
KShKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopOwotdXNpbmcgU19KSVRPcGVyYXRpb25fR0pKID0g
c2l6ZV90KEpJVF9PUEVSQVRJT04gKikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUpOwotdXNpbmcgVl9KSVRPcGVyYXRpb25fR0pKSiA9IHZvaWQoSklUX09Q
RVJBVElPTiAqKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUpOwotdXNpbmcgSl9KSVRPcGVyYXRpb25fR1NzaUpKID0gRW5jb2Rl
ZEpTVmFsdWUoSklUX09QRVJBVElPTiAqKShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJ
bmZvKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKLXVzaW5nIEpfSklUT3BlcmF0
aW9uX0dTc2lKSkkgPSBFbmNvZGVkSlNWYWx1ZShKSVRfT1BFUkFUSU9OICopKEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUs
IFVuaXF1ZWRTdHJpbmdJbXBsKik7Ci11c2luZyBWX0pJVE9wZXJhdGlvbl9HQ0NKID0gdm9pZChK
SVRfT1BFUkFUSU9OICopKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiwgRW5jb2Rl
ZEpTVmFsdWUpOwotdXNpbmcgSl9KSVRPcGVyYXRpb25fR1NzaUpJID0gRW5jb2RlZEpTVmFsdWUo
SklUX09QRVJBVElPTiAqKShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5j
b2RlZEpTVmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKik7Ci11c2luZyBaX0pJVE9wZXJhdGlvbl9H
SlpaID0gaW50MzJfdChKSVRfT1BFUkFUSU9OICopKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUsIGludDMyX3QsIGludDMyX3QpOwotdXNpbmcgRl9KSVRPcGVyYXRpb25fR0ZKWlogPSBD
YWxsRnJhbWUqKEpJVF9PUEVSQVRJT04gKikoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqLCBF
bmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwgaW50MzJfdCk7Ci11c2luZyBEX0pJVE9wZXJhdGlvbl9E
RCA9IGRvdWJsZShKSVRfT1BFUkFUSU9OICopKGRvdWJsZSwgZG91YmxlKTsKLXVzaW5nIERfSklU
T3BlcmF0aW9uX0QgPSBkb3VibGUoSklUX09QRVJBVElPTiAqKShkb3VibGUpOwordXNpbmcgSl9K
SVRPcGVyYXRpb25fR0pNaWMgPSBFbmNvZGVkSlNWYWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVU
RSAqKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCB2b2lkKik7Cit1c2luZyBKX0pJ
VE9wZXJhdGlvbl9HUCA9IEVuY29kZWRKU1ZhbHVlKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFICop
KEpTR2xvYmFsT2JqZWN0Kiwgdm9pZCopOwordXNpbmcgSl9KSVRPcGVyYXRpb25fR1BQID0gRW5j
b2RlZEpTVmFsdWUoSklUX09QRVJBVElPTl9BVFRSSUJVVEUgKikoSlNHbG9iYWxPYmplY3QqLCB2
b2lkKiwgdm9pZCopOwordXNpbmcgSl9KSVRPcGVyYXRpb25fR1BQUCA9IEVuY29kZWRKU1ZhbHVl
KEpJVF9PUEVSQVRJT05fQVRUUklCVVRFICopKEpTR2xvYmFsT2JqZWN0Kiwgdm9pZCosIHZvaWQq
LCB2b2lkKik7Cit1c2luZyBKX0pJVE9wZXJhdGlvbl9HSkogPSBFbmNvZGVkSlNWYWx1ZShKSVRf
T1BFUkFUSU9OX0FUVFJJQlVURSAqKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSk7Cit1c2luZyBKX0pJVE9wZXJhdGlvbl9HSkpNaWMgPSBFbmNvZGVkSlNW
YWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURSAqKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgdm9pZCopOwordXNpbmcgWl9KSVRPcGVyYXRpb25fR0pa
WiA9IGludDMyX3QoSklUX09QRVJBVElPTl9BVFRSSUJVVEUgKikoSlNHbG9iYWxPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwgaW50MzJfdCk7Cit1c2luZyBGX0pJVE9wZXJhdGlvbl9H
RkpaWiA9IENhbGxGcmFtZSooSklUX09QRVJBVElPTl9BVFRSSUJVVEUgKikoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwgaW50MzJfdCk7Cit1c2lu
ZyBTcHJ0X0pJVE9wZXJhdGlvbl9FR0NsaSA9IFNsb3dQYXRoUmV0dXJuVHlwZShKSVRfT1BFUkFU
SU9OX0FUVFJJQlVURSAqKShDYWxsRnJhbWUqLCBKU0dsb2JhbE9iamVjdCosIENhbGxMaW5rSW5m
byopOwordXNpbmcgVl9KSVRPcGVyYXRpb25fQ2IgPSB2b2lkKEpJVF9PUEVSQVRJT05fQVRUUklC
VVRFICopKENvZGVCbG9jayopOwordXNpbmcgWl9KSVRPcGVyYXRpb25fRyA9IGludDMyX3QgKEpJ
VF9PUEVSQVRJT05fQVRUUklCVVRFICopKEpTR2xvYmFsT2JqZWN0Kik7Cit1c2luZyBQX0pJVE9w
ZXJhdGlvbl9WbVN0WkIgPSBjaGFyKihKSVRfT1BFUkFUSU9OX0FUVFJJQlVURSAqKShWTSosIFN0
cnVjdHVyZSosIGludDMyX3QsIEJ1dHRlcmZseSopOwordXNpbmcgUF9KSVRPcGVyYXRpb25fR1N0
WkIgPSBjaGFyKihKSVRfT1BFUkFUSU9OX0FUVFJJQlVURSAqKShKU0dsb2JhbE9iamVjdCosIFN0
cnVjdHVyZSosIGludDMyX3QsIEJ1dHRlcmZseSopOwordXNpbmcgSl9KSVRPcGVyYXRpb25fR0og
PSBFbmNvZGVkSlNWYWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURSAqKShKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlKTsKK3VzaW5nIEpfSklUT3BlcmF0aW9uX0dKSSA9IEVuY29kZWRK
U1ZhbHVlKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFICopKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKik7Cit1c2luZyBWX0pJVE9wZXJhdGlvbl9HU3Np
SkpDID0gdm9pZChKSVRfT1BFUkFUSU9OX0FUVFJJQlVURSAqKShKU0dsb2JhbE9iamVjdCosIFN0
cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRy
X3QpOwordXNpbmcgQ19KSVRPcGVyYXRpb25fVFQgPSB1aW50cHRyX3QoSklUX09QRVJBVElPTl9B
VFRSSUJVVEUgKikoU3RyaW5nSW1wbCosIFN0cmluZ0ltcGwqKTsKK3VzaW5nIENfSklUT3BlcmF0
aW9uX0JfR0pzc0pzcyA9IHVpbnRwdHJfdChKSVRfT1BFUkFUSU9OX0FUVFJJQlVURSAqKShKU0ds
b2JhbE9iamVjdCosIEpTU3RyaW5nKiwgSlNTdHJpbmcqKTsKK3VzaW5nIFNfSklUT3BlcmF0aW9u
X0dDID0gc2l6ZV90KEpJVF9PUEVSQVRJT05fQVRUUklCVVRFICopKEpTR2xvYmFsT2JqZWN0Kiwg
SlNDZWxsKik7Cit1c2luZyBTX0pJVE9wZXJhdGlvbl9HSkogPSBzaXplX3QoSklUX09QRVJBVElP
Tl9BVFRSSUJVVEUgKikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUpOwordXNpbmcgVl9KSVRPcGVyYXRpb25fR0pKSiA9IHZvaWQoSklUX09QRVJBVElPTl9B
VFRSSUJVVEUgKikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlKTsKK3VzaW5nIEpfSklUT3BlcmF0aW9uX0dTc2lKSiA9IEVuY29k
ZWRKU1ZhbHVlKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFICopKEpTR2xvYmFsT2JqZWN0KiwgU3Ry
dWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwordXNpbmcg
Sl9KSVRPcGVyYXRpb25fR1NzaUpKSSA9IEVuY29kZWRKU1ZhbHVlKEpJVF9PUEVSQVRJT05fQVRU
UklCVVRFICopKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKik7Cit1c2luZyBWX0pJVE9w
ZXJhdGlvbl9HQ0NKID0gdm9pZChKSVRfT1BFUkFUSU9OX0FUVFJJQlVURSAqKShKU0dsb2JhbE9i
amVjdCosIEpTQ2VsbCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlKTsKK3VzaW5nIEpfSklUT3Bl
cmF0aW9uX0dTc2lKSSA9IEVuY29kZWRKU1ZhbHVlKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFICop
KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgVW5p
cXVlZFN0cmluZ0ltcGwqKTsKK3VzaW5nIFpfSklUT3BlcmF0aW9uX0dKWlogPSBpbnQzMl90KEpJ
VF9PUEVSQVRJT05fQVRUUklCVVRFICopKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUs
IGludDMyX3QsIGludDMyX3QpOwordXNpbmcgRl9KSVRPcGVyYXRpb25fR0ZKWlogPSBDYWxsRnJh
bWUqKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFICopKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
KiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIGludDMyX3QpOwordXNpbmcgRF9KSVRPcGVyYXRp
b25fREQgPSBkb3VibGUoSklUX09QRVJBVElPTl9BVFRSSUJVVEUgKikoZG91YmxlLCBkb3VibGUp
OwordXNpbmcgRF9KSVRPcGVyYXRpb25fRCA9IGRvdWJsZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVU
RSAqKShkb3VibGUpOwogCiAvLyBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIGxvb2t1cCBhbiBleGNl
cHRpb24gaGFuZGVyLCBrZXllZCBieSBmYXVsdExvY2F0aW9uLCB3aGljaCBpcwogLy8gdGhlIHJl
dHVybiBsb2NhdGlvbiBmcm9tIG9uZSBvZiB0aGUgY2FsbHMgb3V0IHRvIG9uZSBvZiB0aGUgaGVs
cGVyIG9wZXJhdGlvbnMgYWJvdmUuCiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Mb29r
dXBFeGNlcHRpb25IYW5kbGVyKFZNKikgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkxvb2t1cEV4Y2VwdGlvbkhhbmRsZXJGcm9tQ2FsbGVyRnJhbWUoVk0qKSBXVEZf
SU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVk1IYW5kbGVFeGNlcHRpb24o
Vk0qKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3dTdGFj
a092ZXJmbG93RXJyb3JGcm9tVGh1bmsoSlNHbG9iYWxPYmplY3QqKSBXVEZfSU5URVJOQUw7Ci12
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3dJdGVyYXRvclJlc3VsdElzTm90T2JqZWN0
KEpTR2xvYmFsT2JqZWN0KikgV1RGX0lOVEVSTkFMOwotCi12b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVGhyb3dTdGFja092ZXJmbG93RXJyb3IoQ29kZUJsb2NrKikgV1RGX0lOVEVSTkFMOwot
aW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxBcml0eUNoZWNrKEpTR2xvYmFsT2Jq
ZWN0KikgV1RGX0lOVEVSTkFMOwotaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbnN0
cnVjdEFyaXR5Q2hlY2soSlNHbG9iYWxPYmplY3QqKSBXVEZfSU5URVJOQUw7Ci0KLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVHJ5R2V0QnlJZChKU0dsb2JhbE9iamVjdCos
IFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkgV1RGX0lOVEVS
TkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25UcnlHZXRCeUlkR2Vu
ZXJpYyhKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpIFdURl9JTlRF
Uk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVHJ5R2V0QnlJZE9w
dGltaXplKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1
ZSwgdWludHB0cl90KSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkdldEJ5SWQoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVu
Y29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZEdlbmVyaWMoSlNHbG9iYWxPYmplY3QqLCBFbmNv
ZGVkSlNWYWx1ZSwgdWludHB0cl90KSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCosIFN0cnVj
dHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkgV1RGX0lOVEVSTkFMOwot
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlkV2l0aFRoaXMoSlNH
bG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSwgdWludHB0cl90KSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpc0dlbmVyaWMoSlNHbG9iYWxPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkgV1RGX0lOVEVSTkFMOwot
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlkV2l0aFRoaXNPcHRp
bWl6ZShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZERpcmVjdChKU0dsb2JhbE9iamVjdCosIFN0
cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkgV1RGX0lOVEVSTkFM
OwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlkRGlyZWN0R2Vu
ZXJpYyhKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpIFdURl9JTlRF
Uk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZERpcmVj
dE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNW
YWx1ZSwgdWludHB0cl90KSBXVEZfSU5URVJOQUw7Ci0KLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uSW5CeUlkKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8q
LCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluQnlJZEdlbmVyaWMoSlNHbG9iYWxPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluQnlJZE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiwgU3Ry
dWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSBXVEZfSU5URVJOQUw7
Ci0KLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW5CeVZhbChKU0dsb2Jh
bE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci0KLXZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiwgU3Ry
dWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJl
U3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRCYXNlLCB1aW50cHRyX3QpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25QdXRCeUlkRGlyZWN0U3RyaWN0KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1
YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRCYXNlLCB1aW50cHRyX3QpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1
YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRCYXNlLCB1aW50cHRyX3QpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25QdXRCeUlkU3RyaWN0T3B0aW1pemUoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHVi
SW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2UsIHVpbnRwdHJfdCkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblB1dEJ5SWROb25TdHJpY3RPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0
dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQmFzZSwgdWludHB0cl90KSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRCYXNlLCB1aW50cHRyX3QpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0T3B0aW1pemUoSlNHbG9iYWxPYmplY3Qq
LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWREZWZpbmVQcml2YXRlRmllbGRTdHJpY3QoSlNHbG9i
YWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkgV1RGX0lOVEVSTkFMOwot
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWREZWZpbmVQcml2YXRlRmllbGRTdHJp
Y3RPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90
KSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZFNldFBy
aXZhdGVGaWVsZFN0cmljdChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWlu
dHB0cl90KSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJ
ZFNldFByaXZhdGVGaWVsZFN0cmljdE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJl
U3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRCYXNlLCB1aW50cHRyX3QpIFdURl9JTlRFUk5BTDsKLQotdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblB1dFByaXZhdGVOYW1lT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVk
SlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qLCBQcml2
YXRlRmllbGRQdXRLaW5kKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUHV0UHJpdmF0ZU5hbWVHZW5lcmljKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKiwgUHJpdmF0ZUZpZWxk
UHV0S2luZCkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5
VmFsT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qLCBFQ01BTW9kZSkgV1RGX0lOVEVSTkFMOwot
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsT3B0aW1pemUoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
LCBCeVZhbEluZm8qLCBFQ01BTW9kZSkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblB1dEJ5VmFsR2VuZXJpYyhKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyosIEVDTUFNb2RlKSBX
VEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxH
ZW5lcmljKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKiwgRUNNQU1vZGUpIFdURl9JTlRFUk5BTDsKLQotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsRXZhbChKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSosIEVDTUFNb2RlKSBXVEZfSU5URVJOQUw7Ci1TbG93UGF0aFJldHVyblR5
cGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ2FsbChDYWxsRnJhbWUqLCBKU0dsb2JhbE9i
amVjdCosIENhbGxMaW5rSW5mbyopIFdURl9JTlRFUk5BTDsKLVNsb3dQYXRoUmV0dXJuVHlwZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtQb2x5bW9ycGhpY0NhbGwoQ2FsbEZyYW1lKiwgSlNH
bG9iYWxPYmplY3QqLCBDYWxsTGlua0luZm8qKSBXVEZfSU5URVJOQUw7Ci1TbG93UGF0aFJldHVy
blR5cGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WaXJ0dWFsQ2FsbChDYWxsRnJhbWUqLCBKU0ds
b2JhbE9iamVjdCosIENhbGxMaW5rSW5mbyopIFdURl9JTlRFUk5BTDsKLQotc2l6ZV90IEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZUxlc3MoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLXNpemVfdCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkNvbXBhcmVMZXNzRXEoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLXNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkNvbXBhcmVHcmVhdGVyKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci1zaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25D
b21wYXJlR3JlYXRlckVxKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci1zaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21w
YXJlRXEoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdU
Rl9JTlRFUk5BTDsKLXNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVTdHJpY3RF
cShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lO
VEVSTkFMOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Mb29rdXBFeGNlcHRp
b25IYW5kbGVyLCB2b2lkLCAoVk0qKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkxvb2t1cEV4Y2VwdGlvbkhhbmRsZXJGcm9tQ2FsbGVyRnJhbWUsIHZvaWQsIChWTSopKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVk1IYW5kbGVFeGNlcHRpb24sIHZv
aWQsIChWTSopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3dTdGFj
a092ZXJmbG93RXJyb3JGcm9tVGh1bmssIHZvaWQsIChKU0dsb2JhbE9iamVjdCopKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3dJdGVyYXRvclJlc3VsdElzTm90T2Jq
ZWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqKSk7CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uVGhyb3dTdGFja092ZXJmbG93RXJyb3IsIHZvaWQsIChDb2RlQmxvY2sqKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNhbGxBcml0eUNoZWNrLCBpbnQz
Ml90LCAoSlNHbG9iYWxPYmplY3QqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNvbnN0cnVjdEFyaXR5Q2hlY2ssIGludDMyX3QsIChKU0dsb2JhbE9iamVjdCopKTsKKwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlHZXRCeUlkLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1
ZSwgdWludHB0cl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeUdl
dEJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUsIHVpbnRwdHJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25U
cnlHZXRCeUlkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkR2VuZXJpYywgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3Qp
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZE9wdGltaXplLCBF
bmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNv
ZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkdldEJ5SWRXaXRoVGhpcywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0
cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRy
X3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlz
R2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpc09wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUsIHVpbnRwdHJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25H
ZXRCeUlkRGlyZWN0LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJl
U3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWREaXJlY3RHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkRGlyZWN0T3B0aW1pemUsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1Zh
bHVlLCB1aW50cHRyX3QpKTsKKworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25J
bkJ5SWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5m
byosIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uSW5CeUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uSW5CeUlkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKKwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbkJ5VmFsLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUpKTsKKworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU3RyaWN0LCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0U3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0ds
b2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90KSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3RPcHRpbWl6ZSwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QpKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdE9wdGltaXpl
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3Ry
aWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwg
dWludHB0cl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRE
ZWZpbmVQcml2YXRlRmllbGRTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkQmFzZSwgdWludHB0cl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5SWREZWZpbmVQcml2YXRlRmllbGRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFNldFByaXZhdGVGaWVsZFN0cmljdCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFNldFByaXZhdGVGaWVsZFN0
cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyos
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IHVpbnRwdHJfdCkpOworCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dFBy
aXZhdGVOYW1lT3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyosIFByaXZhdGVGaWVs
ZFB1dEtpbmQpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0UHJpdmF0
ZU5hbWVHZW5lcmljLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qLCBQcml2YXRlRmllbGRQdXRL
aW5kKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsT3B0aW1p
emUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyosIEVDTUFNb2RlKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsT3B0aW1pemUsIHZvaWQsIChKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUsIEJ5VmFsSW5mbyosIEVDTUFNb2RlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblB1dEJ5VmFsR2VuZXJpYywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKiwgRUNNQU1v
ZGUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxH
ZW5lcmljLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qLCBFQ01BTW9kZSkpOworCitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNhbGxFdmFsLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiwgRUNNQU1vZGUpKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTGlua0NhbGwsIFNsb3dQYXRoUmV0dXJuVHlwZSwgKENhbGxGcmFt
ZSosIEpTR2xvYmFsT2JqZWN0KiwgQ2FsbExpbmtJbmZvKikpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25MaW5rUG9seW1vcnBoaWNDYWxsLCBTbG93UGF0aFJldHVyblR5cGUs
IChDYWxsRnJhbWUqLCBKU0dsb2JhbE9iamVjdCosIENhbGxMaW5rSW5mbyopKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmlydHVhbENhbGwsIFNsb3dQYXRoUmV0dXJuVHlw
ZSwgKENhbGxGcmFtZSosIEpTR2xvYmFsT2JqZWN0KiwgQ2FsbExpbmtJbmZvKikpOworCitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVMZXNzLCBzaXplX3QsIChKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlTGVzc0VxLCBzaXplX3QsIChKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlR3JlYXRlciwgc2l6ZV90LCAoSlNHbG9iYWxP
YmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXJFcSwgc2l6ZV90LCAoSlNHbG9iYWxP
YmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUVxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCos
IEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Db21wYXJlU3RyaWN0RXEsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZVN0cmluZ0VxKEpTR2xv
YmFsT2JqZWN0KiwgSlNDZWxsKiBsZWZ0LCBKU0NlbGwqIHJpZ2h0KSBXVEZfSU5URVJOQUw7Ci1z
aXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlRXFIZWFwQmlnSW50VG9JbnQzMihK
U0dsb2JhbE9iamVjdCosIEpTQ2VsbCogaGVhcEJpZ0ludCwgaW50MzJfdCBzbWFsbEludCkgV1RG
X0lOVEVSTkFMOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3Ry
aW5nRXEsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIGxlZnQsIEpT
Q2VsbCogcmlnaHQpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFy
ZUVxSGVhcEJpZ0ludFRvSW50MzIsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBo
ZWFwQmlnSW50LCBpbnQzMl90IHNtYWxsSW50KSk7CiAjZWxzZQotc2l6ZV90IEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uQ29tcGFyZVN0cmluZ0VxKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBsZWZ0
LCBKU0NlbGwqIHJpZ2h0KSBXVEZfSU5URVJOQUw7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdFcSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBKU0Nl
bGwqIGxlZnQsIEpTQ2VsbCogcmlnaHQpKTsKICNlbmRpZgotRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25OZXdBcnJheVdpdGhQcm9maWxlKEpTR2xvYmFsT2JqZWN0KiwgQXJy
YXlBbGxvY2F0aW9uUHJvZmlsZSosIGNvbnN0IEpTVmFsdWUqIHZhbHVlcywgaW50MzJfdCBzaXpl
KSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5l
d0FycmF5V2l0aFNpemVBbmRQcm9maWxlKEpTR2xvYmFsT2JqZWN0KiwgQXJyYXlBbGxvY2F0aW9u
UHJvZmlsZSosIEVuY29kZWRKU1ZhbHVlIHNpemUpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3RnVuY3Rpb24oVk0qLCBKU1Njb3BlKiwgSlND
ZWxsKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25OZXdGdW5jdGlvbldpdGhJbnZhbGlkYXRlZFJlYWxsb2NhdGlvbldhdGNocG9pbnQoVk0qLCBK
U1Njb3BlKiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25OZXdHZW5lcmF0b3JGdW5jdGlvbihWTSosIEpTU2NvcGUqLCBKU0NlbGwq
KSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5l
d0dlbmVyYXRvckZ1bmN0aW9uV2l0aEludmFsaWRhdGVkUmVhbGxvY2F0aW9uV2F0Y2hwb2ludChW
TSosIEpTU2NvcGUqLCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbk5ld0FzeW5jRnVuY3Rpb24oVk0qLCBKU1Njb3BlKiwgSlNDZWxs
KikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25O
ZXdBc3luY0Z1bmN0aW9uV2l0aEludmFsaWRhdGVkUmVhbGxvY2F0aW9uV2F0Y2hwb2ludChWTSos
IEpTU2NvcGUqLCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbk5ld0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24oVk0qLCBKU1Njb3BlKiwg
SlNDZWxsKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25OZXdBc3luY0dlbmVyYXRvckZ1bmN0aW9uV2l0aEludmFsaWRhdGVkUmVhbGxvY2F0aW9u
V2F0Y2hwb2ludChWTSosIEpTU2NvcGUqLCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uU2V0RnVuY3Rpb25OYW1lKEpTR2xvYmFsT2JqZWN0KiwgSlND
ZWxsKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLUpTQ2VsbCogSklUX09QRVJBVElP
TiBvcGVyYXRpb25OZXdPYmplY3QoVk0qLCBTdHJ1Y3R1cmUqKSBXVEZfSU5URVJOQUw7Ci1KU0Nl
bGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3UHJvbWlzZShWTSosIFN0cnVjdHVyZSopIFdU
Rl9JTlRFUk5BTDsKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdJbnRlcm5hbFBy
b21pc2UoVk0qLCBTdHJ1Y3R1cmUqKSBXVEZfSU5URVJOQUw7Ci1KU0NlbGwqIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uTmV3R2VuZXJhdG9yKFZNKiwgU3RydWN0dXJlKikgV1RGX0lOVEVSTkFMOwot
SlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0FzeW5jR2VuZXJhdG9yKFZNKiwgU3Ry
dWN0dXJlKikgV1RGX0lOVEVSTkFMOwotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5l
d1JlZ2V4cChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKLVVudXNlZFB0
ciBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhbmRsZVRyYXBzKEpTR2xvYmFsT2JqZWN0KikgV1RG
X0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRocm93KEpTR2xvYmFsT2Jq
ZWN0KiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25EZWJ1ZyhWTSosIGludDMyX3QpIFdURl9JTlRFUk5BTDsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoUHJvZmlsZSwgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iamVjdCosIEFycmF5QWxsb2NhdGlvblByb2ZpbGUqLCBjb25zdCBKU1ZhbHVl
KiB2YWx1ZXMsIGludDMyX3Qgc2l6ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25OZXdBcnJheVdpdGhTaXplQW5kUHJvZmlsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE9iamVjdCosIEFycmF5QWxsb2NhdGlvblByb2ZpbGUqLCBFbmNvZGVkSlNWYWx1ZSBzaXplKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0Z1bmN0aW9uLCBFbmNvZGVk
SlNWYWx1ZSwgKFZNKiwgSlNTY29wZSosIEpTQ2VsbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTmV3RnVuY3Rpb25XaXRoSW52YWxpZGF0ZWRSZWFsbG9jYXRpb25XYXRj
aHBvaW50LCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiwgSlNTY29wZSosIEpTQ2VsbCopKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3R2VuZXJhdG9yRnVuY3Rpb24sIEVuY29k
ZWRKU1ZhbHVlLCAoVk0qLCBKU1Njb3BlKiwgSlNDZWxsKikpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25OZXdHZW5lcmF0b3JGdW5jdGlvbldpdGhJbnZhbGlkYXRlZFJlYWxs
b2NhdGlvbldhdGNocG9pbnQsIEVuY29kZWRKU1ZhbHVlLCAoVk0qLCBKU1Njb3BlKiwgSlNDZWxs
KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBc3luY0Z1bmN0aW9u
LCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiwgSlNTY29wZSosIEpTQ2VsbCopKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXN5bmNGdW5jdGlvbldpdGhJbnZhbGlkYXRlZFJl
YWxsb2NhdGlvbldhdGNocG9pbnQsIEVuY29kZWRKU1ZhbHVlLCAoVk0qLCBKU1Njb3BlKiwgSlND
ZWxsKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBc3luY0dlbmVy
YXRvckZ1bmN0aW9uLCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiwgSlNTY29wZSosIEpTQ2VsbCopKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXN5bmNHZW5lcmF0b3JGdW5j
dGlvbldpdGhJbnZhbGlkYXRlZFJlYWxsb2NhdGlvbldhdGNocG9pbnQsIEVuY29kZWRKU1ZhbHVl
LCAoVk0qLCBKU1Njb3BlKiwgSlNDZWxsKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25TZXRGdW5jdGlvbk5hbWUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCos
IEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5l
d09iamVjdCwgSlNDZWxsKiwgKFZNKiwgU3RydWN0dXJlKikpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25OZXdQcm9taXNlLCBKU0NlbGwqLCAoVk0qLCBTdHJ1Y3R1cmUqKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0ludGVybmFsUHJvbWlzZSwg
SlNDZWxsKiwgKFZNKiwgU3RydWN0dXJlKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25OZXdHZW5lcmF0b3IsIEpTQ2VsbCosIChWTSosIFN0cnVjdHVyZSopKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXN5bmNHZW5lcmF0b3IsIEpTQ2VsbCos
IChWTSosIFN0cnVjdHVyZSopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TmV3UmVnZXhwLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKSk7CitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhbmRsZVRyYXBzLCBVbnVzZWRQdHIsIChKU0ds
b2JhbE9iamVjdCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3cs
IHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlYnVnLCB2b2lkLCAoVk0qLCBpbnQzMl90KSk7CiAjaWYg
RU5BQkxFKERGR19KSVQpCi1TbG93UGF0aFJldHVyblR5cGUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25PcHRpbWl6ZShWTSosIHVpbnQzMl90KSBXVEZfSU5URVJOQUw7Ci1jaGFyKiBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblRyeU9TUkVudGVyQXRDYXRjaChWTSosIHVpbnQzMl90KSBXVEZfSU5URVJO
QUw7Ci1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRyeU9TUkVudGVyQXRDYXRjaEFuZFZh
bHVlUHJvZmlsZShWTSosIHVpbnQzMl90KSBXVEZfSU5URVJOQUw7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk9wdGltaXplLCBTbG93UGF0aFJldHVyblR5cGUsIChWTSosIHVp
bnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeU9TUkVudGVy
QXRDYXRjaCwgY2hhciosIChWTSosIHVpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblRyeU9TUkVudGVyQXRDYXRjaEFuZFZhbHVlUHJvZmlsZSwgY2hhciosIChW
TSosIHVpbnQzMl90KSk7CiAjZW5kaWYKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRC
eUluZGV4KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIEVuY29kZWRK
U1ZhbHVlKTsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeUlkKEpTR2xv
YmFsT2JqZWN0KiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90IG9wdGlvbnMs
IEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRT
ZXR0ZXJCeUlkKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBp
bnQzMl90IG9wdGlvbnMsIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25QdXRHZXR0ZXJCeVZhbChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29k
ZWRKU1ZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwotdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5VmFsKEpTR2xvYmFsT2JqZWN0Kiwg
SlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QgYXR0cmlidXRlLCBKU0NlbGwqKSBXVEZf
SU5URVJOQUw7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SW5kZXgs
IHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBFbmNvZGVk
SlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRHZXR0ZXJC
eUlkLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1wbCos
IGludDMyX3Qgb3B0aW9ucywgSlNDZWxsKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QdXRTZXR0ZXJCeUlkLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBV
bmlxdWVkU3RyaW5nSW1wbCosIGludDMyX3Qgb3B0aW9ucywgSlNDZWxsKikpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRHZXR0ZXJCeVZhbCwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QgYXR0cmlidXRlLCBKU0Nl
bGwqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dFNldHRlckJ5VmFs
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJf
dCBhdHRyaWJ1dGUsIEpTQ2VsbCopKTsKICNpZiBVU0UoSlNWQUxVRTY0KQotdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNldHRlcihKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCos
IFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCBhdHRyaWJ1dGUsIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCos
IFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCBhdHRyaWJ1dGUsIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSkpOwogI2Vsc2UKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRH
ZXR0ZXJTZXR0ZXIoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1wbCos
IGludDMyX3QgYXR0cmlidXRlLCBKU0NlbGwqLCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90IGF0dHJp
YnV0ZSwgSlNDZWxsKiwgSlNDZWxsKikpOwogI2VuZGlmCi12b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHVzaEZ1bmN0aW9uTmFtZVNjb3BlKEpTR2xvYmFsT2JqZWN0KiwgaW50MzJfdCwgU3lt
Ym9sVGFibGUqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUoSlNHbG9iYWxPYmplY3Qq
LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEFycmF5UHJvZmlsZSosIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0KSBXVEZfSU5URVJOQUw7Ci1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJpYyhKU0ds
b2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgQXJyYXlQcm9maWxlKiwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQpIFdURl9J
TlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWwo
SlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFByb3BlcnR5KSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQoSlNHbG9iYWxPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNj
cmlwdCwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlHZW5lcmljKEpTR2xvYmFsT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3Jp
cHQsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKLXNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkRlbGV0ZUJ5SWRPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZv
KiwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90LCBFQ01BTW9kZSkgV1RGX0lOVEVSTkFM
Owotc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVsZXRlQnlJZEdlbmVyaWMoSlNHbG9i
YWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRw
dHJfdCwgRUNNQU1vZGUpIFdURl9JTlRFUk5BTDsKLXNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkRlbGV0ZUJ5VmFsT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5m
byosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIHRhcmdldCwgRUNNQU1vZGUp
IFdURl9JTlRFUk5BTDsKLXNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlbGV0ZUJ5VmFs
R2VuZXJpYyhKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFs
dWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgdGFyZ2V0LCBFQ01BTW9kZSkgV1RGX0lOVEVSTkFMOwot
SlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1c2hXaXRoU2NvcGUoSlNHbG9iYWxPYmpl
Y3QqLCBKU0NlbGwqIGN1cnJlbnRTY29wZUNlbGwsIEVuY29kZWRKU1ZhbHVlIG9iamVjdCkgV1RG
X0lOVEVSTkFMOwotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1c2hXaXRoU2NvcGVP
YmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjdXJyZW50U2NvcGVD
ZWxsLCBKU09iamVjdCogb2JqZWN0KSBXVEZfSU5URVJOQUw7Ci1KU0NlbGwqIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uR2V0UE5hbWVzKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqKSBXVEZfSU5U
RVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluc3RhbmNlT2Yo
SlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgRW5jb2RlZEpTVmFsdWUgcHJv
dG8pIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
SW5zdGFuY2VPZkdlbmVyaWMoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVu
Y29kZWRKU1ZhbHVlIHZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBwcm90bykgV1RGX0lOVEVSTkFMOwot
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25JbnN0YW5jZU9mT3B0aW1pemUo
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIHZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBwcm90bykgV1RGX0lOVEVSTkFMOwotaW50MzJfdCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblNpemVGcmFtZUZvckZvcndhcmRBcmd1bWVudHMoSlNHbG9iYWxPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMsIGludDMyX3QgbnVtVXNlZFN0YWNrU2xvdHMsIGlu
dDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQpIFdURl9JTlRFUk5BTDsKLWludDMyX3QgSklUX09QRVJB
VElPTiBvcGVyYXRpb25TaXplRnJhbWVGb3JWYXJhcmdzKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUgYXJndW1lbnRzLCBpbnQzMl90IG51bVVzZWRTdGFja1Nsb3RzLCBpbnQzMl90IGZp
cnN0VmFyQXJnT2Zmc2V0KSBXVEZfSU5URVJOQUw7Ci1DYWxsRnJhbWUqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uU2V0dXBGb3J3YXJkQXJndW1lbnRzRnJhbWUoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwgaW50MzJfdCBsZW5ndGgpIFdURl9JTlRF
Uk5BTDsKLUNhbGxGcmFtZSogSklUX09QRVJBVElPTiBvcGVyYXRpb25TZXR1cFZhcmFyZ3NGcmFt
ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSosIEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50cywg
aW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgaW50MzJfdCBsZW5ndGgpIFdURl9JTlRFUk5BTDsK
LQotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRQcml2YXRlTmFtZShK
U0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRGaWVsZE5hbWUpIFdURl9JTlRFUk5BTDsKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWVPcHRpbWl6
ZShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRGaWVsZE5hbWUpIFdURl9JTlRFUk5BTDsK
LQotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25Td2l0Y2hDaGFyV2l0aFVua25vd25LZXlU
eXBlKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUga2V5LCBzaXplX3QgdGFibGVJbmRl
eCkgV1RGX0lOVEVSTkFMOwotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25Td2l0Y2hJbW1X
aXRoVW5rbm93bktleVR5cGUoVk0qLCBFbmNvZGVkSlNWYWx1ZSBrZXksIHNpemVfdCB0YWJsZUlu
ZGV4KSBXVEZfSU5URVJOQUw7Ci1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN3aXRjaFN0
cmluZ1dpdGhVbmtub3duS2V5VHlwZShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGtl
eSwgc2l6ZV90IHRhYmxlSW5kZXgpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uR2V0RnJvbVNjb3BlKEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgSW5z
dHJ1Y3Rpb24qIGJ5dGVjb2RlUEMpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25QdXRUb1Njb3BlKEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgSW5zdHJ1Y3Rpb24qIGJ5
dGVjb2RlUEMpIFdURl9JTlRFUk5BTDsKLQotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25S
ZWFsbG9jYXRlQnV0dGVyZmx5VG9IYXZlUHJvcGVydHlTdG9yYWdlV2l0aEluaXRpYWxDYXBhY2l0
eShWTSosIEpTT2JqZWN0KikgV1RGX0lOVEVSTkFMOwotY2hhciogSklUX09QRVJBVElPTiBvcGVy
YXRpb25SZWFsbG9jYXRlQnV0dGVyZmx5VG9Hcm93UHJvcGVydHlTdG9yYWdlKFZNKiwgSlNPYmpl
Y3QqLCBzaXplX3QgbmV3U2l6ZSkgV1RGX0lOVEVSTkFMOwotCi12b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uV3JpdGVCYXJyaWVyU2xvd1BhdGgoVk0qLCBKU0NlbGwqKTsKLXZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25PU1JXcml0ZUJhcnJpZXIoVk0qLCBKU0NlbGwqKTsKLQotdm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkV4Y2VwdGlvbkZ1enooSlNHbG9iYWxPYmplY3QqKTsKLXZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25FeGNlcHRpb25GdXp6V2l0aENhbGxGcmFtZShWTSop
OwotCi1pbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2hlY2tJZkV4Y2VwdGlvbklzVW5j
YXRjaGFibGVBbmROb3RpZnlQcm9maWxlcihWTSopOwotc2l6ZV90IEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uSW5zdGFuY2VPZkN1c3RvbShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSwgSlNPYmplY3QqIGNvbnN0cnVjdG9yLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
SGFzSW5zdGFuY2UpIFdURl9JTlRFUk5BTDsKLQotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25WYWx1ZUFkZChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZChKU0dsb2JhbE9i
amVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDIsIEJpbmFyeUFyaXRoUHJvZmlsZSopIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZE9wdGltaXplKEpTR2xvYmFsT2Jq
ZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MiwgSklUQWRkSUMqKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWROb09wdGltaXplKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUQWRk
SUMqKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blZhbHVlQWRkT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRBZGRJQyopIFdURl9JTlRFUk5BTDsK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGROb09wdGltaXpl
KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMiwgSklUQWRkSUMqKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFM
OwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bE9wdGltaXpl
KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMiwgSklUTXVsSUMqKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsTm9PcHRpbWl6ZShKU0dsb2JhbE9iamVjdCos
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJ
VE11bElDKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25WYWx1ZU11bFByb2ZpbGVkT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRNdWxJQyopIFdU
Rl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVN
dWxQcm9maWxlZE5vT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRNdWxJQyopIFdURl9JTlRFUk5B
TDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQcm9maWxl
ZChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDIsIEJpbmFyeUFyaXRoUHJvZmlsZSopIFdURl9JTlRFUk5BTDsKLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJpdGhOZWdhdGUoSlNHbG9iYWxPYmpl
Y3QqLCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kKTsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uQXJpdGhOZWdhdGVQcm9maWxlZChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlIG9wZXJhbmQsIFVuYXJ5QXJpdGhQcm9maWxlKik7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkFyaXRoTmVnYXRlUHJvZmlsZWRPcHRpbWl6ZShKU0dsb2JhbE9i
amVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcGVyYW5kLCBKSVROZWdJQyopOwotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Bcml0aE5lZ2F0ZU9wdGltaXplKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wZXJhbmQsIEpJVE5lZ0lDKik7Ci1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlU3ViKEpTR2xvYmFsT2Jq
ZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25W
YWx1ZVN1YlByb2ZpbGVkKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQmluYXJ5QXJpdGhQcm9maWxlKikgV1RGX0lO
VEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1Yk9w
dGltaXplKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUU3ViSUMqKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlU3ViTm9PcHRpbWl6ZShKU0dsb2JhbE9i
amVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDIsIEpJVFN1YklDKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25WYWx1ZVN1YlByb2ZpbGVkT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRTdWJJ
QyopIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
VmFsdWVTdWJQcm9maWxlZE5vT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRTdWJJQyopIFdURl9J
TlRFUk5BTDsKLQotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2Nlc3NUeXBlUHJvZmls
ZXJMb2coVk0qKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJv
Y2Vzc1NoYWRvd0NoaWNrZW5Mb2coVk0qKSBXVEZfSU5URVJOQUw7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1c2hGdW5jdGlvbk5hbWVTY29wZSwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiwgaW50MzJfdCwgU3ltYm9sVGFibGUqLCBFbmNvZGVkSlNWYWx1ZSkpOworCitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEFycmF5UHJvZmls
ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vi
c2NyaXB0KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsR2Vu
ZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZv
KiwgQXJyYXlQcm9maWxlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRTdWJzY3JpcHQpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uR2V0QnlWYWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5KSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlHZW5lcmlj
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyopKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVsZXRlQnlJZE9wdGltaXplLCBzaXpl
X3QsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUg
YmFzZSwgdWludHB0cl90LCBFQ01BTW9kZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25EZWxldGVCeUlkR2VuZXJpYywgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCwgRUNNQU1vZGUp
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVsZXRlQnlWYWxPcHRpbWl6
ZSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRK
U1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIHRhcmdldCwgRUNNQU1vZGUpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVsZXRlQnlWYWxHZW5lcmljLCBzaXplX3QsIChK
U0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgYmFzZSwg
RW5jb2RlZEpTVmFsdWUgdGFyZ2V0LCBFQ01BTW9kZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QdXNoV2l0aFNjb3BlLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBK
U0NlbGwqIGN1cnJlbnRTY29wZUNlbGwsIEVuY29kZWRKU1ZhbHVlIG9iamVjdCkpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXNoV2l0aFNjb3BlT2JqZWN0LCBKU0NlbGwq
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjdXJyZW50U2NvcGVDZWxs
LCBKU09iamVjdCogb2JqZWN0KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkdldFBOYW1lcywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqKSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluc3RhbmNlT2YsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgRW5jb2RlZEpTVmFsdWUg
cHJvdG8pKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5zdGFuY2VPZkdl
bmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5m
byosIEVuY29kZWRKU1ZhbHVlIHZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBwcm90bykpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnN0YW5jZU9mT3B0aW1pemUsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1Zh
bHVlIHZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBwcm90bykpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25TaXplRnJhbWVGb3JGb3J3YXJkQXJndW1lbnRzLCBpbnQzMl90LCAoSlNH
bG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMsIGludDMyX3QgbnVtVXNlZFN0
YWNrU2xvdHMsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQpKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uU2l6ZUZyYW1lRm9yVmFyYXJncywgaW50MzJfdCwgKEpTR2xvYmFs
T2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgYXJndW1lbnRzLCBpbnQzMl90IG51bVVzZWRTdGFja1Ns
b3RzLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblNldHVwRm9yd2FyZEFyZ3VtZW50c0ZyYW1lLCBDYWxsRnJhbWUqLCAoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwgaW50MzJf
dCBsZW5ndGgpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0dXBWYXJh
cmdzRnJhbWUsIENhbGxGcmFtZSosIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSosIEVuY29k
ZWRKU1ZhbHVlIGFyZ3VtZW50cywgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgaW50MzJfdCBs
ZW5ndGgpKTsKKworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcml2YXRl
TmFtZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZv
KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRGaWVs
ZE5hbWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0ZU5h
bWVPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0
dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRGaWVsZE5hbWUpKTsKKworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0
Y2hDaGFyV2l0aFVua25vd25LZXlUeXBlLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUga2V5LCBzaXplX3QgdGFibGVJbmRleCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Td2l0Y2hJbW1XaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoVk0qLCBF
bmNvZGVkSlNWYWx1ZSBrZXksIHNpemVfdCB0YWJsZUluZGV4KSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaFN0cmluZ1dpdGhVbmtub3duS2V5VHlwZSwgY2hhcios
IChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGtleSwgc2l6ZV90IHRhYmxlSW5kZXgp
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0RnJvbVNjb3BlLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgSW5zdHJ1Y3Rpb24qIGJ5dGVjb2Rl
UEMpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0VG9TY29wZSwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgSW5zdHJ1Y3Rpb24qIGJ5dGVjb2RlUEMpKTsKKwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWFsbG9jYXRlQnV0dGVyZmx5VG9I
YXZlUHJvcGVydHlTdG9yYWdlV2l0aEluaXRpYWxDYXBhY2l0eSwgY2hhciosIChWTSosIEpTT2Jq
ZWN0KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWFsbG9jYXRlQnV0
dGVyZmx5VG9Hcm93UHJvcGVydHlTdG9yYWdlLCBjaGFyKiwgKFZNKiwgSlNPYmplY3QqLCBzaXpl
X3QgbmV3U2l6ZSkpOworCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldyaXRl
QmFycmllclNsb3dQYXRoLCB2b2lkLCAoVk0qLCBKU0NlbGwqKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk9TUldyaXRlQmFycmllciwgdm9pZCwgKFZNKiwgSlNDZWxsKikp
OworCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkV4Y2VwdGlvbkZ1enosIHZv
aWQsIChKU0dsb2JhbE9iamVjdCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uRXhjZXB0aW9uRnV6eldpdGhDYWxsRnJhbWUsIHZvaWQsIChWTSopKTsKKworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DaGVja0lmRXhjZXB0aW9uSXNVbmNhdGNoYWJsZUFu
ZE5vdGlmeVByb2ZpbGVyLCBpbnQzMl90LCAoVk0qKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkluc3RhbmNlT2ZDdXN0b20sIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBKU09iamVjdCogY29uc3RydWN0b3IsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRIYXNJbnN0YW5jZSkpOworCitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblZhbHVlQWRkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQmluYXJ5QXJpdGhQcm9maWxlKikpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkT3B0aW1pemUsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRBZGRJQyopKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZE5vT3B0aW1pemUsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRBZGRJQyopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uVmFsdWVBZGRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDIsIEpJVEFkZElDKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25W
YWx1ZUFkZE5vT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRBZGRJ
QyopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVNdWwsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblZhbHVlTXVsT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBK
SVRNdWxJQyopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVNdWxO
b09wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUTXVsSUMqKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWRPcHRpbWl6
ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVE11bElDKikpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkTm9PcHRpbWl6ZSwgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVE11bElDKikpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMiwgQmluYXJ5QXJpdGhQcm9maWxlKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Bcml0aE5lZ2F0ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlIG9wZXJhbmQpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQXJpdGhOZWdhdGVQcm9maWxlZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCosIEVuY29kZWRKU1ZhbHVlIG9wZXJhbmQsIFVuYXJ5QXJpdGhQcm9maWxlKikpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Bcml0aE5lZ2F0ZVByb2ZpbGVkT3B0aW1p
emUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3BlcmFuZCwgSklUTmVnSUMqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkFyaXRoTmVnYXRlT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3BlcmFuZCwgSklUTmVnSUMqKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlU3ViLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZVN1YlBy
b2ZpbGVkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQmluYXJ5QXJpdGhQcm9maWxl
KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZVN1Yk9wdGltaXpl
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUU3ViSUMqKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlU3ViTm9PcHRpbWl6ZSwgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDIsIEpJVFN1YklDKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25WYWx1ZVN1YlByb2ZpbGVkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AyLCBKSVRTdWJJQyopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uVmFsdWVTdWJQcm9maWxlZE5vT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
YmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AyLCBKSVRTdWJJQyopKTsKKworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
cm9jZXNzVHlwZVByb2ZpbGVyTG9nLCB2b2lkLCAoVk0qKSk7CitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblByb2Nlc3NTaGFkb3dDaGlja2VuTG9nLCB2b2lkLCAoVk0qKSk7CiAK
IH0gLy8gZXh0ZXJuICJDIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNj
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IGQwYTQ4ZjMzOGVmOWRh
MzQ1YWI2OGM1MmRhYTFhNjBkZjc4ZDYyYzUuLmQ1ODk2Yjk1MjI4NWI3NWVhN2EyYmVhMWU3ZGMx
N2YxODBkNDEwMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC00NTUsMTIgKzQ1NSwxNyBAQCBz
dGF0aWMgaW5saW5lIFN0cmluZyBzdHJpbmdGcm9tVVRGKGNvbnN0IFZlY3RvciYgdXRmOCkKICAg
ICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOFdpdGhMYXRpbjFGYWxsYmFjayh1dGY4LmRhdGEoKSwg
dXRmOC5zaXplKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBh
Y2Nlc3Nvck1ha2VNYXNxdWVyYWRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoYWNjZXNzb3JNYWtlTWFzcXVlcmFkZXIpOworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9T
RVRURVIodGVzdEN1c3RvbUFjY2Vzc29yU2V0dGVyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNU
T01fU0VUVEVSKHRlc3RDdXN0b21WYWx1ZVNldHRlcik7CisKK0pTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihhY2Nlc3Nvck1ha2VNYXNxdWVyYWRlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEludGVybmFsRnVuY3Rp
b246OmNyZWF0ZUZ1bmN0aW9uVGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQodm0sIGdsb2JhbE9i
amVjdCwgMCwgIklzSFRNTEREQSJfcywgZnVuY3Rpb25DYWxsTWFzcXVlcmFkZXIpKTsKIH0KIAor
CiBjbGFzcyBHbG9iYWxPYmplY3QgZmluYWwgOiBwdWJsaWMgSlNHbG9iYWxPYmplY3QgewogcHVi
bGljOgogICAgIHVzaW5nIEJhc2UgPSBKU0dsb2JhbE9iamVjdDsKQEAgLTY1OCw2ICs2NjMsNyBA
QCBjbGFzcyBHbG9iYWxPYmplY3QgZmluYWwgOiBwdWJsaWMgSlNHbG9iYWxPYmplY3QgewogICAg
ICAgICB9CiAgICAgfQogCitwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgdGVzdEN1c3RvbVNldHRl
ckltcGwoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEdsb2JhbE9iamVjdCog
dGhpc09iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBjb25zdCBjaGFyKiBwcm9w
ZXJ0eU5hbWUpCiAgICAgewogICAgICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52
bSgpOwpAQCAtNjY4LDI3ICs2NzQsNyBAQCBjbGFzcyBHbG9iYWxPYmplY3QgZmluYWwgOiBwdWJs
aWMgSlNHbG9iYWxPYmplY3QgewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBz
dGF0aWMgYm9vbCBKSVRfT1BFUkFUSU9OIHRlc3RDdXN0b21BY2Nlc3NvclNldHRlcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCi0gICAgewotICAgICAgICBWTSYgdm0gPSBsZXhp
Y2FsR2xvYmFsT2JqZWN0LT52bSgpOwotICAgICAgICBSRUxFQVNFX0FTU0VSVChKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKS5pc0NlbGwoKSk7Ci0gICAgICAgIEpTQ2VsbCogdGhpc0NlbGwgPSBK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKS5hc0NlbGwoKTsKLSAgICAgICAgUkVMRUFTRV9BU1NF
UlQodGhpc0NlbGwtPnR5cGUoKSA9PSBQdXJlRm9yd2FyZGluZ1Byb3h5VHlwZSk7Ci0gICAgICAg
IEdsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8R2xvYmFsT2JqZWN0Kj4o
dm0sIGpzQ2FzdDxKU1Byb3h5Kj4odGhpc0NlbGwpLT50YXJnZXQoKSk7Ci0gICAgICAgIFJFTEVB
U0VfQVNTRVJUKHRoaXNPYmplY3QpOwotICAgICAgICByZXR1cm4gdGVzdEN1c3RvbVNldHRlcklt
cGwobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdCwgZW5jb2RlZFZhbHVlLCAiX3Rlc3RD
dXN0b21BY2Nlc3NvclNldHRlciIpOwotICAgIH0KLQotICAgIHN0YXRpYyBib29sIEpJVF9PUEVS
QVRJT04gdGVzdEN1c3RvbVZhbHVlU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKLSAgICB7Ci0gICAgICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7
Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpLmlzQ2Vs
bCgpKTsKLSAgICAgICAgSlNDZWxsKiB0aGlzQ2VsbCA9IEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpLmFzQ2VsbCgpOwotICAgICAgICBHbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBqc0R5bmFt
aWNDYXN0PEdsb2JhbE9iamVjdCo+KHZtLCB0aGlzQ2VsbCk7Ci0gICAgICAgIFJFTEVBU0VfQVNT
RVJUKHRoaXNPYmplY3QpOwotICAgICAgICByZXR1cm4gdGVzdEN1c3RvbVNldHRlckltcGwobGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdCwgZW5jb2RlZFZhbHVlLCAiX3Rlc3RDdXN0b21W
YWx1ZVNldHRlciIpOwotICAgIH0KLSAgICAKK3ByaXZhdGU6CiAgICAgdm9pZCBhZGRGdW5jdGlv
bihWTSYgdm0sIEpTT2JqZWN0KiBvYmplY3QsIGNvbnN0IGNoYXIqIG5hbWUsIE5hdGl2ZUZ1bmN0
aW9uIGZ1bmN0aW9uLCB1bnNpZ25lZCBhcmd1bWVudHMpCiAgICAgewogICAgICAgICBJZGVudGlm
aWVyIGlkZW50aWZpZXIgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCBuYW1lKTsKQEAgLTcz
OSw2ICs3MjUsMjcgQEAgR2xvYmFsT2JqZWN0OjpHbG9iYWxPYmplY3QoVk0mIHZtLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSkKIHsKIH0KIAorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHRlc3RDdXN0
b21BY2Nlc3NvclNldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCit7
CisgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBSRUxFQVNFX0FT
U0VSVChKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKS5pc0NlbGwoKSk7CisgICAgSlNDZWxsKiB0
aGlzQ2VsbCA9IEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpLmFzQ2VsbCgpOworICAgIFJFTEVB
U0VfQVNTRVJUKHRoaXNDZWxsLT50eXBlKCkgPT0gUHVyZUZvcndhcmRpbmdQcm94eVR5cGUpOwor
ICAgIEdsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8R2xvYmFsT2JqZWN0
Kj4odm0sIGpzQ2FzdDxKU1Byb3h5Kj4odGhpc0NlbGwpLT50YXJnZXQoKSk7CisgICAgUkVMRUFT
RV9BU1NFUlQodGhpc09iamVjdCk7CisgICAgcmV0dXJuIEdsb2JhbE9iamVjdDo6dGVzdEN1c3Rv
bVNldHRlckltcGwobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdCwgZW5jb2RlZFZhbHVl
LCAiX3Rlc3RDdXN0b21BY2Nlc3NvclNldHRlciIpOworfQorCitKU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIodGVzdEN1c3RvbVZhbHVlU2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKK3sKKyAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOworICAg
IFJFTEVBU0VfQVNTRVJUKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpLmlzQ2VsbCgpKTsKKyAg
ICBKU0NlbGwqIHRoaXNDZWxsID0gSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkuYXNDZWxsKCk7
CisgICAgR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxHbG9iYWxPYmpl
Y3QqPih2bSwgdGhpc0NlbGwpOworICAgIFJFTEVBU0VfQVNTRVJUKHRoaXNPYmplY3QpOworICAg
IHJldHVybiBHbG9iYWxPYmplY3Q6OnRlc3RDdXN0b21TZXR0ZXJJbXBsKGxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNPYmplY3QsIGVuY29kZWRWYWx1ZSwgIl90ZXN0Q3VzdG9tVmFsdWVTZXR0ZXIi
KTsKK30KKwogc3RhdGljIFVDaGFyIHBhdGhTZXBhcmF0b3IoKQogewogI2lmIE9TKFdJTkRPV1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BdG9taWNzT2JqZWN0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0F0b21pY3NPYmplY3QuY3BwCmlu
ZGV4IGRmNjNjYTRjZThkNDVmNGZkOGZhMDU2ZWJkNGQzY2NkMWM0Zjg4NDEuLjlmZjMzYTRiMWE3
N2JjYjkyMjg4N2JkMDg5MmZlODk3YWJmNzAxYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0F0b21pY3NPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0F0b21pY3NPYmplY3QuY3BwCkBAIC00NjYsNyArNDY2LDcgQEAgSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jWG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW0KIAogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJmcmFtZS1hZGRyZXNz
IikKIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25BdG9taWNzQWRkKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRK
U1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkF0b21pY3NBZGQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgaW5k
ZXgsIEVuY29kZWRKU1ZhbHVlIG9wZXJhbmQpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC00NzUsNyArNDc1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25BdG9taWNzQWRkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEUKICAgICByZXR1
cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3Modm0sIGdsb2JhbE9iamVjdCwgYXJncywgQWRkRnVu
YygpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25BdG9taWNz
QW5kKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVu
Y29kZWRKU1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NBbmQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFs
dWUgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIG9wZXJhbmQpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CkBAIC00ODQsNyArNDg0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25BdG9taWNzQW5kKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEUKICAg
ICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3Modm0sIGdsb2JhbE9iamVjdCwgYXJncywg
QW5kRnVuYygpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25B
dG9taWNzQ29tcGFyZUV4Y2hhbmdlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBleHBl
Y3RlZCwgRW5jb2RlZEpTVmFsdWUgbmV3VmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQXRvbWljc0NvbXBhcmVFeGNoYW5nZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1
ZSBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZXhwZWN0ZWQsIEVuY29kZWRKU1ZhbHVlIG5ld1ZhbHVl
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtNDkzLDcgKzQ5Myw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXRvbWljc0NvbXBhcmVFeGNoYW5n
ZShKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdz
KHZtLCBnbG9iYWxPYmplY3QsIGFyZ3MsIENvbXBhcmVFeGNoYW5nZUZ1bmMoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXRvbWljc0V4Y2hhbmdlKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1Zh
bHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkF0b21pY3NFeGNoYW5nZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBp
bmRleCwgRW5jb2RlZEpTVmFsdWUgb3BlcmFuZCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKQEAgLTUwMiw3ICs1MDIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkF0b21pY3NFeGNoYW5nZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogICAgIHJl
dHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyh2bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBFeGNo
YW5nZUZ1bmMoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
QXRvbWljc0lzTG9ja0ZyZWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgc2l6ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzSXNM
b2NrRnJlZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSBzaXplKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAt
NTEwLDcgKzUxMCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXRv
bWljc0lzTG9ja0ZyZWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgcmV0dXJuIGlzTG9j
a0ZyZWUoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoc2l6ZSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkF0b21pY3NMb2FkKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGluZGV4
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NMb2FkLCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJh
c2UsIEVuY29kZWRKU1ZhbHVlIGluZGV4KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtNTE5LDcgKzUxOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uQXRvbWljc0xvYWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4g
YXRvbWljT3BlcmF0aW9uV2l0aEFyZ3Modm0sIGdsb2JhbE9iamVjdCwgYXJncywgTG9hZEZ1bmMo
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXRvbWljc09y
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29k
ZWRKU1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NPciwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBp
bmRleCwgRW5jb2RlZEpTVmFsdWUgb3BlcmFuZCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKQEAgLTUyOCw3ICs1MjgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkF0b21pY3NPcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbgogICAgIHJl
dHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyh2bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBPckZ1
bmMoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXRvbWlj
c1N0b3JlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2Us
IEVuY29kZWRKU1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NTdG9yZSwgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVk
SlNWYWx1ZSBpbmRleCwgRW5jb2RlZEpTVmFsdWUgb3BlcmFuZCkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTUzNyw3ICs1MzcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkF0b21pY3NTdG9yZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LAogICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyh2bSwgZ2xvYmFsT2JqZWN0LCBh
cmdzLCBTdG9yZUZ1bmMoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uQXRvbWljc1N1YihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBpbmRleCwgRW5jb2RlZEpTVmFsdWUgb3BlcmFuZCkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzU3ViLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2Us
IEVuY29kZWRKU1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtNTQ2LDcgKzU0Niw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXRvbWljc1N1YihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFCiAgICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzKHZtLCBnbG9iYWxP
YmplY3QsIGFyZ3MsIFN1YkZ1bmMoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uQXRvbWljc1hvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBpbmRleCwgRW5jb2RlZEpTVmFsdWUgb3Bl
cmFuZCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzWG9yLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IGJhc2UsIEVuY29kZWRKU1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXRvbWljc09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXRvbWljc09iamVjdC5oCmluZGV4IDA4NmY1ZWRmMzYxOTFjMzU2MTgwNjU2MGQzMWJi
YTIyNmQ0MDc3NDYuLjVhOGJlZjk0ZjYxMDE5ZTU2NmE4ZjA1ZjRjMzQ3OGQyZGI5ZWJlMWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0F0b21pY3NPYmplY3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BdG9taWNzT2JqZWN0LmgKQEAgLTUx
LDE2ICs1MSwxNiBAQCBjbGFzcyBBdG9taWNzT2JqZWN0IGZpbmFsIDogcHVibGljIEpTTm9uRmlu
YWxPYmplY3QgewogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCop
OwogfTsKIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25BdG9taWNzQWRk
KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgaW5k
ZXgsIEVuY29kZWRKU1ZhbHVlIG9wZXJhbmQpOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25BdG9taWNzQW5kKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgYmFz
ZSwgRW5jb2RlZEpTVmFsdWUgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIG9wZXJhbmQpOwotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25BdG9taWNzQ29tcGFyZUV4Y2hhbmdlKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgaW5kZXgs
IEVuY29kZWRKU1ZhbHVlIGV4cGVjdGVkLCBFbmNvZGVkSlNWYWx1ZSBuZXdWYWx1ZSk7Ci1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkF0b21pY3NFeGNoYW5nZShKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGluZGV4LCBFbmNv
ZGVkSlNWYWx1ZSBvcGVyYW5kKTsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uQXRvbWljc0lzTG9ja0ZyZWUoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBzaXpl
KTsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXRvbWljc0xvYWQoSlNH
bG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBpbmRleCk7
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkF0b21pY3NPcihKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGluZGV4LCBFbmNv
ZGVkSlNWYWx1ZSBvcGVyYW5kKTsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uQXRvbWljc1N0b3JlKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5j
b2RlZEpTVmFsdWUgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIG9wZXJhbmQpOwotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25BdG9taWNzU3ViKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIG9w
ZXJhbmQpOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25BdG9taWNzWG9y
KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgaW5k
ZXgsIEVuY29kZWRKU1ZhbHVlIG9wZXJhbmQpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25BdG9taWNzQWRkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIG9w
ZXJhbmQpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWljc0FuZCwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVu
Y29kZWRKU1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NDb21wYXJlRXhjaGFuZ2UsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNW
YWx1ZSBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZXhwZWN0ZWQsIEVuY29kZWRKU1ZhbHVlIG5ld1Zh
bHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NFeGNoYW5n
ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGJhc2Us
IEVuY29kZWRKU1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kKSk7CitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NJc0xvY2tGcmVlLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgc2l6ZSkpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzTG9hZCwgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGluZGV4
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NPciwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRK
U1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NTdG9yZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGluZGV4LCBFbmNv
ZGVkSlNWYWx1ZSBvcGVyYW5kKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkF0b21pY3NTdWIsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNW
YWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBpbmRleCwgRW5jb2RlZEpTVmFsdWUgb3BlcmFuZCkp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzWG9yLCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpT
VmFsdWUgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIG9wZXJhbmQpKTsKIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rp
b24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5k
ZXggMmEwMDg4NTU5NjA2ZjgxNDNlYmZiZGFjNGM4MzViMTc4ZjU0Nzk4YS4uMzFkZDg3MzJlOWUy
ZTlkY2E0MTdlZmE5ZjlhNDA4YjAwNzAzOTZiYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKQEAgLTUyLDYgKzUyLDkgQEAgSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGNhbGxIb3N0RnVuY3Rpb25Bc0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE8KICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNy
ZWF0ZU5vdEFDb25zdHJ1Y3RvckVycm9yKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT5qc0NhbGxl
ZSgpKSk7CiB9CiAKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGFyZ3VtZW50c0dl
dHRlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihjYWxsZXJHZXR0ZXIpOwor
CiBjb25zdCBDbGFzc0luZm8gSlNGdW5jdGlvbjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFz
ZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTRnVuY3Rp
b24pIH07CiBjb25zdCBDbGFzc0luZm8gSlNTdHJpY3RGdW5jdGlvbjo6c19pbmZvID0geyAiRnVu
Y3Rpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RB
QkxFKEpTU3RyaWN0RnVuY3Rpb24pIH07CiBjb25zdCBDbGFzc0luZm8gSlNTbG9wcHlGdW5jdGlv
bjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTU2xvcHB5RnVuY3Rpb24pIH07CkBAIC0zMTQsNyArMzE3
LDcgQEAgc3RhdGljIEpTVmFsdWUgcmV0cmlldmVBcmd1bWVudHMoVk0mIHZtLCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgSlNGdW5jdGlvbiogZnVuY3QKICAgICByZXR1cm4gZnVuY3Rvci5yZXN1bHQo
KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gYXJndW1lbnRzR2V0
dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGFyZ3VtZW50c0dldHRl
ciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgSlNGdW5jdGlvbiogdGhpc09iaiA9IGpzQ2FzdDxKU0Z1bmN0aW9uKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwpAQCAtMzc0LDcgKzM3Nyw3IEBAIHN0YXRpYyBKU1ZhbHVlIHJldHJp
ZXZlQ2FsbGVyRnVuY3Rpb24oVk0mIHZtLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNGdW5jdGlv
bioKICAgICByZXR1cm4gZnVuY3Rvci5yZXN1bHQoKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gY2FsbGVyR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGNhbGxlckdldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aENv
bW1vbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoQ29tbW9uLmNwcApp
bmRleCA5YmI1ZDBlYzE2MDM0N2E0YTkxN2U5MDVhN2VlNGNiNWJlN2M4NzkxLi5lYTQ2MDQxOTcz
NzA2YmM2ZjE0YWNlZTM0MTFkM2E4ZDBjODM5OGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9NYXRoQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9NYXRoQ29tbW9uLmNwcApAQCAtNDEwLDcgKzQxMCw3IEBAIEFMV0FZU19JTkxJ
TkUgZG91YmxlIG1hdGhQb3dJbnRlcm5hbChkb3VibGUgeCwgZG91YmxlIHkpCiAKICNlbmRpZgog
Ci1kb3VibGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25NYXRoUG93KGRvdWJsZSB4LCBkb3VibGUg
eSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXRoUG93LCBkb3VibGUsIChk
b3VibGUgeCwgZG91YmxlIHkpKQogewogICAgIGlmIChzdGQ6OmlzbmFuKHkpKQogICAgICAgICBy
ZXR1cm4gUE5hTjsKQEAgLTQ1MCwxMiArNDUwLDEyIEBAIGRvdWJsZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbk1hdGhQb3coZG91YmxlIHgsIGRvdWJsZSB5KQogICAgIHJldHVybiBtYXRoUG93SW50
ZXJuYWwoeCwgeSk7CiB9CiAKLVVDUFVTdHJpY3RJbnQzMiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blRvSW50MzIoZG91YmxlIHZhbHVlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blRvSW50MzIsIFVDUFVTdHJpY3RJbnQzMiwgKGRvdWJsZSB2YWx1ZSkpCiB7CiAgICAgcmV0dXJu
IHRvVUNQVVN0cmljdEludDMyKEpTQzo6dG9JbnQzMih2YWx1ZSkpOwogfQogCi1VQ1BVU3RyaWN0
SW50MzIgSklUX09QRVJBVElPTiBvcGVyYXRpb25Ub0ludDMyU2Vuc2libGVTbG93KGRvdWJsZSBu
dW1iZXIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9JbnQzMlNlbnNpYmxl
U2xvdywgVUNQVVN0cmljdEludDMyLCAoZG91YmxlIG51bWJlcikpCiB7CiAgICAgcmV0dXJuIHRv
VUNQVVN0cmljdEludDMyKHRvSW50MzJJbnRlcm5hbDxUb0ludDMyTW9kZTo6QWZ0ZXJTZW5zaWJs
ZUNvbnZlcnNpb25BdHRlbXB0PihudW1iZXIpKTsKIH0KQEAgLTUxMSw3ICs1MTEsNyBAQCBkb3Vi
bGUganNNb2QoZG91YmxlIHgsIGRvdWJsZSB5KQogCiBuYW1lc3BhY2UgTWF0aCB7CiAKLWRvdWJs
ZSBKSVRfT1BFUkFUSU9OIGxvZzFwKGRvdWJsZSB2YWx1ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihsb2cxcCwgZG91YmxlLCAoZG91YmxlIHZhbHVlKSkKIHsKICAgICBpZiAodmFsdWUgPT0g
MC4wKQogICAgICAgICByZXR1cm4gdmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9NYXRoQ29tbW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9NYXRoQ29tbW9uLmgKaW5kZXggZDUxNmNjZTE5NjA5NTk1M2I1ZjVmM2QyN2RiOTBhNjFlMmQ3
M2U0ZS4uNTA0YTk0MWRmMzEzYTUzMmI0YjM5YmIyZjUwYTI0NDQyMTI3MDQ0YiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aENvbW1vbi5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhDb21tb24uaApAQCAtMzIsOSArMzIsOSBAQAog
bmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IGludDMyX3QgbWF4RXhwb25lbnRGb3JJbnRlZ2VyTWF0
aFBvdyA9IDEwMDA7Ci1kb3VibGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25NYXRoUG93KGRvdWJs
ZSB4LCBkb3VibGUgeSkgV1RGX0lOVEVSTkFMOwotVUNQVVN0cmljdEludDMyIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVG9JbnQzMihkb3VibGUpIFdURl9JTlRFUk5BTDsKLVVDUFVTdHJpY3RJbnQz
MiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvSW50MzJTZW5zaWJsZVNsb3coZG91YmxlKSBXVEZf
SU5URVJOQUw7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hdGhQb3csIGRv
dWJsZSwgKGRvdWJsZSB4LCBkb3VibGUgeSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Ub0ludDMyLCBVQ1BVU3RyaWN0SW50MzIsIChkb3VibGUpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9JbnQzMlNlbnNpYmxlU2xvdywgVUNQVVN0cmljdElu
dDMyLCAoZG91YmxlKSk7CiAKIGNvbnN0ZXhwciBkb3VibGUgbWF4U2FmZUludGVnZXIoKQogewpA
QCAtMjIwLDEyICsyMjAsMTIgQEAgQUxXQVlTX0lOTElORSBib29sIGNhbkJlSW50MzIoZG91Ymxl
IHZhbHVlKQogfQogCiBleHRlcm4gIkMiIHsKLWRvdWJsZSBKSVRfT1BFUkFUSU9OIGpzUm91bmQo
ZG91YmxlIHZhbHVlKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04oanNSb3VuZCwgZG91YmxlLCAoZG91YmxlKSk7CiAKIC8vIE9uIFdp
bmRvd3Mgd2UgbmVlZCB0byB3cmFwIGZtb2Q7IG9uIG90aGVyIHBsYXRmb3JtcyB3ZSBjYW4gY2Fs
bCBpdCBkaXJlY3RseS4KIC8vIE9uIEFSTXY3IHdlIGFzc2VydCB0aGF0IGFsbCBmdW5jdGlvbiBw
b2ludGVycyBoYXZlIHRvIGxvdyBiaXQgc2V0IChwb2ludCB0byB0aHVtYiBjb2RlKS4KICNpZiBD
QUxMSU5HX0NPTlZFTlRJT05fSVNfU1REQ0FMTCB8fCBDUFUoQVJNX1RIVU1CMikKLWRvdWJsZSBK
SVRfT1BFUkFUSU9OIGpzTW9kKGRvdWJsZSB4LCBkb3VibGUgeSkgUkVGRVJFTkNFRF9GUk9NX0FT
TSBXVEZfSU5URVJOQUw7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKGpzTW9kLCBkb3VibGUs
IChkb3VibGUsIGRvdWJsZSkpOwogI2Vsc2UKICNkZWZpbmUganNNb2QgZm1vZAogI2VuZGlmCkBA
IC0yNTIsNyArMjUyLDcgQEAgdXNpbmcgc3RkOjpjYnJ0OwogdXNpbmcgc3RkOjpleHA7CiB1c2lu
ZyBzdGQ6OmV4cG0xOwogCi1kb3VibGUgSklUX09QRVJBVElPTiBsb2cxcChkb3VibGUpIFdURl9J
TlRFUk5BTDsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04obG9nMXAsIGRvdWJsZSwgKGRvdWJs
ZSkpOwogCiB9IC8vIG5hbWVzcGFjZSBNYXRoCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAppbmRl
eCA2NGIyMTNiN2Q5MTFjOTUxYTkxMDQwMjVkYjY5M2QzY2EyNTFlOTA3Li40YTMwOGJkOWRhZTQ1
YmM4NjY0YzljZmU4NGFhOWQ2Nzk1ZGYxOWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0yOSwyMyArMjksMjMgQEAK
IAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IHJlZ0V4cENvbnN0cnVjdG9ySW5wdXQoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwg
UHJvcGVydHlOYW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIHJlZ0V4
cENvbnN0cnVjdG9yTXVsdGlsaW5lKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFBy
b3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiByZWdFeHBD
b25zdHJ1Y3Rvckxhc3RNYXRjaChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gcmVnRXhwQ29u
c3RydWN0b3JMYXN0UGFyZW4oSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVy
dHlOYW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIHJlZ0V4cENvbnN0
cnVjdG9yTGVmdENvbnRleHQoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVy
dHlOYW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIHJlZ0V4cENvbnN0
cnVjdG9yUmlnaHRDb250ZXh0KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3Bl
cnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiByZWdFeHBDb25z
dHJ1Y3RvckRvbGxhcjEoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlO
YW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIHJlZ0V4cENvbnN0cnVj
dG9yRG9sbGFyMihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
Owotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gcmVnRXhwQ29uc3RydWN0b3JE
b2xsYXIzKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiByZWdFeHBDb25zdHJ1Y3RvckRvbGxh
cjQoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNShK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI2KEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjcoSlNHbG9iYWxP
YmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOChKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI5KEpTR2xvYmFsT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgYm9vbCBKSVRfT1BFUkFUSU9O
IHNldFJlZ0V4cENvbnN0cnVjdG9ySW5wdXQoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUpOwotc3RhdGljIGJvb2wgSklUX09QRVJBVElPTiBzZXRSZWdFeHBD
b25zdHJ1Y3Rvck11bHRpbGluZShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25z
dHJ1Y3RvcklucHV0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4cENv
bnN0cnVjdG9yTXVsdGlsaW5lKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJl
Z0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKHJlZ0V4cENvbnN0cnVjdG9yTGFzdFBhcmVuKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQpOworc3RhdGljIEpTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXIxKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMik7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxh
cjMpOworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JE
b2xsYXI0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVj
dG9yRG9sbGFyNSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25z
dHJ1Y3RvckRvbGxhcjYpOworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIocmVnRXhw
Q29uc3RydWN0b3JEb2xsYXI3KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJl
Z0V4cENvbnN0cnVjdG9yRG9sbGFyOCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
UihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjkpOworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9T
RVRURVIoc2V0UmVnRXhwQ29uc3RydWN0b3JJbnB1dCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VT
VE9NX1NFVFRFUihzZXRSZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZSk7CiAKIH0gLy8gbmFtZXNw
YWNlIEpTQwogCkBAIC0xMDcsODAgKzEwNyw4MCBAQCBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgcmVn
RXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdQog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRh
KCkuZ2V0QmFja3JlZihnbG9iYWxPYmplY3QsIE4pKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlO
YW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVj
dG9yRG9sbGFySW1wbDwxPihnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgcHJvcGVydHlOYW1lKTsK
IH0KLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIy
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdF
eHBDb25zdHJ1Y3RvckRvbGxhcjIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQogewogICAg
IHJldHVybiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGw8Mj4oZ2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIHByb3BlcnR5TmFtZSk7CiB9Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIHJl
Z0V4cENvbnN0cnVjdG9yRG9sbGFyMyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXIzLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBs
PDM+KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOwogfQotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjQoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9y
RG9sbGFyNCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIHJlZ0V4
cENvbnN0cnVjdG9yRG9sbGFySW1wbDw0PihnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgcHJvcGVy
dHlOYW1lKTsKIH0KLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gcmVnRXhwQ29uc3RydWN0
b3JEb2xsYXI1KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUp
KQogewogICAgIHJldHVybiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGw8NT4oZ2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIHByb3BlcnR5TmFtZSk7CiB9Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUp
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXI2LCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JE
b2xsYXJJbXBsPDY+KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOwogfQot
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjcoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENv
bnN0cnVjdG9yRG9sbGFyNywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0
dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDw3PihnbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgcHJvcGVydHlOYW1lKTsKIH0KLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gcmVnRXhw
Q29uc3RydWN0b3JEb2xsYXI4KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjgsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUpKQogewogICAgIHJldHVybiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGw8OD4o
Z2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIHByb3BlcnR5TmFtZSk7CiB9Ci1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xs
YXI5LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gcmVnRXhwQ29u
c3RydWN0b3JEb2xsYXJJbXBsPDk+KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9wZXJ0eU5h
bWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIHJlZ0V4cENvbnN0cnVjdG9y
SW5wdXQoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvcklucHV0LCAo
SlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkp
CiB7CiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGpzQ2FzdDxSZWdFeHBDb25z
dHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+Z2xvYmFsT2JqZWN0KCk7CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEo
KS5pbnB1dCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiByZWdFeHBDb25z
dHJ1Y3Rvck11bHRpbGluZShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVj
dG9yTXVsdGlsaW5lLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCiB7CiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGpz
Q2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+Z2xv
YmFsT2JqZWN0KCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZ2xvYmFs
T2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCkubXVsdGlsaW5lKCkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaChKU0dsb2JhbE9i
amVjdCosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoLCAoSlNHbG9iYWxPYmpl
Y3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGpzQ2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+Z2xvYmFsT2JqZWN0KCk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRCYWNrcmVm
KGdsb2JhbE9iamVjdCwgMCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIHJl
Z0V4cENvbnN0cnVjdG9yTGFzdFBhcmVuKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhw
Q29uc3RydWN0b3JMYXN0UGFyZW4sIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0ID0ganNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpLT5nbG9iYWxPYmplY3QoKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbE9i
amVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLmdldExhc3RQYXJlbihnbG9iYWxPYmplY3QpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250
ZXh0KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4
dCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpKQogewogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0Nhc3Q8UmVnRXhw
Q29uc3RydWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdsb2JhbE9iamVjdCgp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxE
YXRhKCkuZ2V0TGVmdENvbnRleHQoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gcmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQoSlNHbG9iYWxPYmpl
Y3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4dCwgKEpTR2xvYmFsT2Jq
ZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0Nhc3Q8UmVnRXhwQ29uc3RydWN0b3IqPihK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdsb2JhbE9iamVjdCgpOwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCkuZ2V0UmlnaHRD
b250ZXh0KGdsb2JhbE9iamVjdCkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0UmVnRXhw
Q29uc3RydWN0b3JJbnB1dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKQorSlNDX0RFRklORV9DVVNUT01f
U0VUVEVSKHNldFJlZ0V4cENvbnN0cnVjdG9ySW5wdXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk1LDcgKzE5NSw3IEBAIGJvb2wgSklUX09QRVJB
VElPTiBzZXRSZWdFeHBDb25zdHJ1Y3RvcklucHV0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEVuY29kCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0
UmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX1NFVFRFUihzZXRSZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgdmFsdWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAppbmRleCBlOWVjNjUxNTk0YzY4
Yzg3NzU3NDJjMjU2NGQ4NTA0NzIzNDkxMjhlLi5mNzk0YzY4M2FjOWIzZWQwYTQ4MWY0MzM2OGE3
OWQyOGYwZDhiY2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ1Byb3RvdHlwZS5jcHAKQEAgLTY5NCw3ICs2OTQsNyBAQCBzdGF0aWMgQUxXQVlTX0lOTElO
RSBKU1N0cmluZyogcmVwbGFjZVVzaW5nUmVnRXhwU2VhcmNoKAogCiBJR05PUkVfV0FSTklOR1Nf
QkVHSU4oImZyYW1lLWFkZHJlc3MiKQogCi1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
U3RyaW5nUHJvdG9GdW5jUmVwbGFjZVJlZ0V4cEVtcHR5U3RyKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTU3RyaW5nKiB0aGlzVmFsdWUsIFJlZ0V4cE9iamVjdCogc2VhcmNoVmFsdWUp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nUHJvdG9GdW5jUmVwbGFj
ZVJlZ0V4cEVtcHR5U3RyLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNTdHJpbmcqIHRoaXNWYWx1ZSwgUmVnRXhwT2JqZWN0KiBzZWFyY2hWYWx1ZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTcxNyw3ICs3MTcsNyBAQCBKU0NlbGwqIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uU3RyaW5nUHJvdG9GdW5jUmVwbGFjZVJlZ0V4cEVtcHR5U3RyKEpT
R2xvYmFsT2JqZQogICAgICAgICB2bSwgZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIHRoaXNWYWx1
ZSwgc2VhcmNoVmFsdWUsIGNhbGxEYXRhLCByZXBsYWNlbWVudFN0cmluZywgSlNWYWx1ZSgpKSk7
CiB9CiAKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25TdHJpbmdQcm90b0Z1bmNSZXBs
YWNlUmVnRXhwU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiB0
aGlzVmFsdWUsIFJlZ0V4cE9iamVjdCogc2VhcmNoVmFsdWUsIEpTU3RyaW5nKiByZXBsYWNlU3Ry
aW5nKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ1Byb3RvRnVuY1Jl
cGxhY2VSZWdFeHBTdHJpbmcsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1N0cmluZyogdGhpc1ZhbHVlLCBSZWdFeHBPYmplY3QqIHNlYXJjaFZhbHVlLCBKU1N0cmlu
ZyogcmVwbGFjZVN0cmluZykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTkz
Nyw3ICs5MzcsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jUmVw
bGFjZUFsbFVzaW5nU3RyaW5nU2VhcmNoLCAoSlNHbG9iYWxPYgogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHJlcGxhY2VVc2luZ1N0cmluZ1NlYXJjaCh2bSwg
Z2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIHN0cmluZywgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSwg
Y2FsbEZyYW1lLT5hcmd1bWVudCgxKSwgUmVwbGFjZU1vZGU6Okdsb2JhbCkpKTsKIH0KIAotSlND
ZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN0cmluZ1Byb3RvRnVuY1JlcGxhY2VHZW5lcmlj
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgc2VhcmNoVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHJlcGxhY2VWYWx1ZSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdQcm90b0Z1bmNSZXBsYWNl
R2VuZXJpYywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgc2VhcmNoVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIHJlcGxhY2VWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKaW5kZXggNzg3
MTM3MDA2YWEzMzIxZTYyZGQyNWJkNGI3M2IwOTgyMjEwNzNkNi4uNGNlMzI2OTM4N2ZkMzJmNTc3
ZjM1YzA2M2I4Y2JlNmMwYjk0MDgyNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKQEAgLTQ5LDkgKzQ5LDkgQEAgY2xhc3MgU3RyaW5nUHJv
dG90eXBlIGZpbmFsIDogcHVibGljIFN0cmluZ09iamVjdCB7CiB9OwogU1RBVElDX0FTU0VSVF9J
U09fU1VCU1BBQ0VfU0hBUkFCTEUoU3RyaW5nUHJvdG90eXBlLCBTdHJpbmdPYmplY3QpOwogCi1K
U0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3RyaW5nUHJvdG9GdW5jUmVwbGFjZUdlbmVy
aWMoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIHNlYXJjaFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSByZXBsYWNlVmFsdWUpOwotSlNDZWxsKiBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblN0cmluZ1Byb3RvRnVuY1JlcGxhY2VSZWdFeHBFbXB0eVN0
cihKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiB0aGlzVmFsdWUsIFJlZ0V4cE9iamVjdCogc2Vh
cmNoVmFsdWUpOwotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN0cmluZ1Byb3RvRnVu
Y1JlcGxhY2VSZWdFeHBTdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyogdGhpc1ZhbHVl
LCBSZWdFeHBPYmplY3QqIHNlYXJjaFZhbHVlLCBKU1N0cmluZyogcmVwbGFjZVZhbHVlKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nUHJvdG9GdW5jUmVwbGFjZUdl
bmVyaWMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgc2VhcmNoVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHJlcGxhY2VWYWx1
ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdQcm90b0Z1bmNS
ZXBsYWNlUmVnRXhwRW1wdHlTdHIsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5n
KiB0aGlzVmFsdWUsIFJlZ0V4cE9iamVjdCogc2VhcmNoVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nUHJvdG9GdW5jUmVwbGFjZVJlZ0V4cFN0cmluZywg
SlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqIHRoaXNWYWx1ZSwgUmVnRXhwT2Jq
ZWN0KiBzZWFyY2hWYWx1ZSwgSlNTdHJpbmcqIHJlcGxhY2VWYWx1ZSkpOwogCiB2b2lkIHN1YnN0
aXR1dGVCYWNrcmVmZXJlbmNlcyhTdHJpbmdCdWlsZGVyJiByZXN1bHQsIGNvbnN0IFN0cmluZyYg
cmVwbGFjZW1lbnQsIFN0cmluZ1ZpZXcgc291cmNlLCBjb25zdCBpbnQqIG92ZWN0b3IsIFJlZ0V4
cCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJW
TS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKaW5kZXgg
ZmI0YjIwZjUxMTA5OTFhNjY5NTU3ZGUwYTE5YTBjNTJiZWJmNGIyMC4uOWQ0YzQ1OTVkNGEzNTRj
ZTZhYmIxZDEwZTViN2NkM2M0NTZlZDA3NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29s
cy9KU0RvbGxhclZNLmNwcApAQCAtNDUyLDYgKzQ1Miw5IEBAIGNsYXNzIEltcHVyZUdldHRlciA6
IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICBXcml0ZUJhcnJpZXI8SlNPYmplY3Q+IG1f
ZGVsZWdhdGU7CiB9OwogCitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihjdXN0b21H
ZXR0ZXJWYWx1ZUdldHRlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihjdXN0
b21HZXR0ZXJBY2Vzc29yR2V0dGVyKTsKKwogY2xhc3MgQ3VzdG9tR2V0dGVyIDogcHVibGljIEpT
Tm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIEN1c3RvbUdldHRlcihWTSYgdm0sIFN0cnVj
dHVyZSogc3RydWN0dXJlKQpAQCAtNDkwLDUxICs0OTMsNTIgQEAgY2xhc3MgQ3VzdG9tR2V0dGVy
IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgICAgIEN1c3RvbUdldHRlciogdGhpc09iamVjdCA9IGpzQ2FzdDxDdXN0
b21HZXR0ZXIqPihvYmplY3QpOwogICAgICAgICBpZiAocHJvcGVydHlOYW1lID09IFByb3BlcnR5
TmFtZShJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiY3VzdG9tR2V0dGVyIikpKSB7Ci0gICAg
ICAgICAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzT2JqZWN0LCBQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSwgY3VzdG9tR2V0dGVyKTsKKyAgICAgICAgICAgIHNsb3Quc2V0
Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmplY3QsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRl
IHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtLCBjdXN0b21HZXR0ZXJWYWx1ZUdldHRlcik7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBQcm9wZXJ0
eU5hbWUoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImN1c3RvbUdldHRlckFjY2Vzc29yIikp
KSB7Ci0gICAgICAgICAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzT2JqZWN0LCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8
IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21B
Y2Nlc3NvciwgY3VzdG9tR2V0dGVyQWNlc3Nvcik7CisgICAgICAgICAgICBzbG90LnNldENhY2hl
YWJsZUN1c3RvbSh0aGlzT2JqZWN0LCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8
IFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciwgY3VzdG9tR2V0dGVyQWNlc3Nvckdl
dHRlcik7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICAKICAg
ICAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZ2xv
YmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogICAgIH0KK307CiAKLXByaXZhdGU6Ci0g
ICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gY3VzdG9tR2V0dGVyKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQotICAgIHsKLSAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsK
LSAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoY3Vz
dG9tR2V0dGVyVmFsdWVHZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCit7CisgICAgRG9sbGFyVk1Bc3Nl
cnRTY29wZSBhc3NlcnRTY29wZTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Cisg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgICAgIEN1c3Rv
bUdldHRlciogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8Q3VzdG9tR2V0dGVyKj4odm0sIEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKLSAgICAgICAgaWYgKCF0aGlzT2JqZWN0KQotICAg
ICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7Ci0g
ICAgICAgIGJvb2wgc2hvdWxkVGhyb3cgPSB0aGlzT2JqZWN0LT5nZXQoZ2xvYmFsT2JqZWN0LCBQ
cm9wZXJ0eU5hbWUoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInNob3VsZFRocm93IikpKS50
b0Jvb2xlYW4oZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgICAgIGlmIChzaG91bGRUaHJvdykKLSAgICAgICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwotICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKDEwMCkpOwotICAgIH0KLSAgICAKLSAg
ICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBjdXN0b21HZXR0ZXJBY2Vzc29y
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQotICAgIHsKLSAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRT
Y29wZTsKLSAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgICAgIAotICAgICAgICBKU09i
amVjdCogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNPYmplY3QqPih2bSwgSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwotICAgICAgICBpZiAoIXRoaXNPYmplY3QpCi0gICAgICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKLSAgICAgICAg
Ym9vbCBzaG91bGRUaHJvdyA9IHRoaXNPYmplY3QtPmdldChnbG9iYWxPYmplY3QsIFByb3BlcnR5
TmFtZShJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAic2hvdWxkVGhyb3ciKSkpLnRvQm9vbGVh
bihnbG9iYWxPYmplY3QpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNv
ZGVkSlNWYWx1ZSgpKTsKLSAgICAgICAgaWYgKHNob3VsZFRocm93KQotICAgICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7Ci0gICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoMTAwKSk7Ci0gICAgfQotfTsKKyAgICBDdXN0b21H
ZXR0ZXIqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PEN1c3RvbUdldHRlcio+KHZtLCBKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgaWYgKCF0aGlzT2JqZWN0KQorICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKKyAgICBib29sIHNo
b3VsZFRocm93ID0gdGhpc09iamVjdC0+Z2V0KGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lKElk
ZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJzaG91bGRUaHJvdyIpKSkudG9Cb29sZWFuKGdsb2Jh
bE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUo
KSk7CisgICAgaWYgKHNob3VsZFRocm93KQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVt
YmVyKDEwMCkpOworfQorCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0dGVyQWNl
c3NvckdldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK3sKKyAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFz
c2VydFNjb3BlOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBKU09iamVjdCogdGhpc09iamVj
dCA9IGpzRHluYW1pY0Nhc3Q8SlNPYmplY3QqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOworICAgIGlmICghdGhpc09iamVjdCkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CisgICAgYm9vbCBzaG91bGRUaHJvdyA9IHRoaXNPYmpl
Y3QtPmdldChnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZShJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCAic2hvdWxkVGhyb3ciKSkpLnRvQm9vbGVhbihnbG9iYWxPYmplY3QpOworICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgIGlmIChzaG91bGRU
aHJvdykKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29w
ZSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigxMDApKTsKK30KKworc3Rh
dGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIocnVudGltZUFycmF5TGVuZ3RoR2V0dGVyKTsK
IAogY2xhc3MgUnVudGltZUFycmF5IDogcHVibGljIEpTQXJyYXkgewogcHVibGljOgpAQCAtNTc2
LDcgKzU4MCw3IEBAIElHTk9SRV9XQVJOSU5HU19FTkQKICAgICAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgICAgICBSdW50aW1lQXJyYXkqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8
UnVudGltZUFycmF5Kj4ob2JqZWN0KTsKICAgICAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSB2bS5w
cm9wZXJ0eU5hbWVzLT5sZW5ndGgpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3Vz
dG9tKHRoaXNPYmplY3QsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlB
dHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtLCBsZW5ndGhH
ZXR0ZXIpOworICAgICAgICAgICAgc2xvdC5zZXRDYWNoZWFibGVDdXN0b20odGhpc09iamVjdCwg
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9u
bHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0sIHJ1bnRpbWVBcnJheUxlbmd0aEdldHRl
cik7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCkBAIC02NDYsMjcgKzY1
MCwyOSBAQCBJR05PUkVfV0FSTklOR1NfRU5ECiAgICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUg
YXNzZXJ0U2NvcGU7CiAgICAgfQogCi0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gbGVuZ3RoR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQotICAgIHsKLSAgICAgICAgRG9sbGFyVk1B
c3NlcnRTY29wZSBhc3NlcnRTY29wZTsKLSAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwotICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAg
ICAgICAgUnVudGltZUFycmF5KiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxSdW50aW1lQXJy
YXkqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwotICAgICAgICBpZiAoIXRoaXNP
YmplY3QpCi0gICAgICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3Qs
IHNjb3BlKTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih0aGlzT2Jq
ZWN0LT5nZXRMZW5ndGgoKSkpOwotICAgIH0KLQogICAgIFZlY3RvcjxpbnQ+IG1fdmVjdG9yOwog
fTsKIAorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJ1bnRpbWVBcnJheUxlbmd0aEdldHRlciwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKK3sKKyAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwor
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBSdW50aW1lQXJyYXkqIHRoaXNPYmplY3QgPSBqc0R5
bmFtaWNDYXN0PFJ1bnRpbWVBcnJheSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CisgICAgaWYgKCF0aGlzT2JqZWN0KQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihn
bG9iYWxPYmplY3QsIHNjb3BlKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVy
KHRoaXNPYmplY3QtPmdldExlbmd0aCgpKSk7Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29t
cGFjdEhhc2hJbmRleCBzdGF0aWNDdXN0b21BY2Nlc3NvclRhYmxlSW5kZXhbMl0gPSB7CiAgICAg
eyAwLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiB9OwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiB0ZXN0U3RhdGljQWNjZXNzb3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitzdGF0
aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUih0ZXN0U3RhdGljQWNjZXNzb3JHZXR0ZXIpOwor
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIodGVzdFN0YXRpY0FjY2Vzc29yR2V0dGVyLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtOTAzLDYgKzkwOSwxMCBAQCBjbGFzcyBE
T01KSVROb2RlIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIGludDMyX3QgbV92YWx1
ZSB7IDQyIH07CiB9OwogCisKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGRvbUpJ
VEdldHRlckN1c3RvbUdldHRlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihk
b21KSVRHZXR0ZXJTbG93Q2FsbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIHZv
aWQqKSk7CisKIGNsYXNzIERPTUpJVEdldHRlciA6IHB1YmxpYyBET01KSVROb2RlIHsKIHB1Ymxp
YzoKICAgICBET01KSVRHZXR0ZXIoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKQEAgLTkz
Myw3ICs5NDMsNyBAQCBjbGFzcyBET01KSVRHZXR0ZXIgOiBwdWJsaWMgRE9NSklUTm9kZSB7CiAg
ICAgcHVibGljOgogICAgICAgICBBTFdBWVNfSU5MSU5FIGNvbnN0ZXhwciBET01KSVRBdHRyaWJ1
dGUoKQogICAgICAgICAgICAgOiBET01KSVQ6OkdldHRlclNldHRlcigKLSAgICAgICAgICAgICAg
ICBET01KSVRHZXR0ZXI6OmN1c3RvbUdldHRlciwKKyAgICAgICAgICAgICAgICBkb21KSVRHZXR0
ZXJDdXN0b21HZXR0ZXIsCiAjaWYgRU5BQkxFKEpJVCkKICAgICAgICAgICAgICAgICAmY2FsbERP
TUdldHRlciwKICNlbHNlCkBAIC05NDQsMTUgKzk1NCw2IEBAIGNsYXNzIERPTUpJVEdldHRlciA6
IHB1YmxpYyBET01KSVROb2RlIHsKICAgICAgICAgfQogCiAjaWYgRU5BQkxFKEpJVCkKLSAgICAg
ICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gc2xvd0NhbGwoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgdm9pZCogcG9pbnRlcikKLSAgICAgICAgewotICAgICAgICAg
ICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKLSAgICAgICAgICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICAgICAgICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKLSAgICAgICAgICAgIEpJVE9wZXJhdGlvblByb2xvZ3Vl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoc3RhdGljX2Nhc3Q8RE9NSklUR2V0dGVyKj4ocG9p
bnRlciktPnZhbHVlKCkpKTsKLSAgICAgICAgfQotCiAgICAgICAgIHN0YXRpYyBSZWY8RE9NSklU
OjpDYWxsRE9NR2V0dGVyU25pcHBldD4gY2FsbERPTUdldHRlcigpCiAgICAgICAgIHsKICAgICAg
ICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CkBAIC05NjMsNyArOTY0LDcg
QEAgY2xhc3MgRE9NSklUR2V0dGVyIDogcHVibGljIERPTUpJVE5vZGUgewogICAgICAgICAgICAg
ICAgIEpTVmFsdWVSZWdzIHJlc3VsdHMgPSBwYXJhbXNbMF0uanNWYWx1ZVJlZ3MoKTsKICAgICAg
ICAgICAgICAgICBHUFJSZWcgZG9tR1BSID0gcGFyYW1zWzFdLmdwcigpOwogICAgICAgICAgICAg
ICAgIEdQUlJlZyBnbG9iYWxPYmplY3RHUFIgPSBwYXJhbXNbMl0uZ3ByKCk7Ci0gICAgICAgICAg
ICAgICAgcGFyYW1zLmFkZFNsb3dQYXRoQ2FsbChqaXQuanVtcCgpLCBqaXQsIHNsb3dDYWxsLCBy
ZXN1bHRzLCBnbG9iYWxPYmplY3RHUFIsIGRvbUdQUik7CisgICAgICAgICAgICAgICAgcGFyYW1z
LmFkZFNsb3dQYXRoQ2FsbChqaXQuanVtcCgpLCBqaXQsIGRvbUpJVEdldHRlclNsb3dDYWxsLCBy
ZXN1bHRzLCBnbG9iYWxPYmplY3RHUFIsIGRvbUdQUik7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IENDYWxsSGVscGVyczo6SnVtcExpc3QoKTsKIAogICAgICAgICAgICAgfSk7CkBAIC05NzQsMTUg
Kzk3NSw2IEBAIGNsYXNzIERPTUpJVEdldHRlciA6IHB1YmxpYyBET01KSVROb2RlIHsKIAogcHJp
dmF0ZToKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJik7Ci0KLSAgICBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBjdXN0b21HZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCi0gICAgewot
ICAgICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwotICAgICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgICAgIERPTUpJVE5vZGUqIHRoaXNPYmplY3QgPSBq
c0R5bmFtaWNDYXN0PERPTUpJVE5vZGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OwotICAgICAgICBBU1NFUlQodGhpc09iamVjdCk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNOdW1iZXIodGhpc09iamVjdC0+dmFsdWUoKSkpOwotICAgIH0KIH07CiAKIHN0YXRp
YyBjb25zdCBET01KSVRHZXR0ZXI6OkRPTUpJVEF0dHJpYnV0ZSBET01KSVRHZXR0ZXJET01KSVQ7
CkBAIC05OTYsNiArOTg4LDI4IEBAIHZvaWQgRE9NSklUR2V0dGVyOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0pCiAgICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sICJjdXN0b21HZXR0ZXIiKSwgY3VzdG9tR2V0dGVyU2V0dGVyLCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IpOwog
fQogCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoZG9tSklUR2V0dGVyQ3VzdG9tR2V0dGVyLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQoreworICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7Cisg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIERPTUpJVE5vZGUqIHRoaXNPYmpl
Y3QgPSBqc0R5bmFtaWNDYXN0PERPTUpJVE5vZGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOworICAgIEFTU0VSVCh0aGlzT2JqZWN0KTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzTnVtYmVyKHRoaXNPYmplY3QtPnZhbHVlKCkpKTsKK30KKworSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKGRvbUpJVEdldHRlclNsb3dDYWxsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIHZvaWQqIHBvaW50ZXIpKQoreworICAgIERvbGxhclZNQXNz
ZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwor
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBK
SVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7
CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihzdGF0aWNfY2FzdDxET01KSVRH
ZXR0ZXIqPihwb2ludGVyKS0+dmFsdWUoKSkpOworfQorCisKK3N0YXRpYyBKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGRvbUpJVEdldHRlck5vRWZmZWN0Q3VzdG9tR2V0dGVyKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKGRvbUpJVEdldHRlck5vRWZmZWN0U2xvd0NhbGwsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCB2b2lkKikpOworCiBjbGFzcyBET01KSVRH
ZXR0ZXJOb0VmZmVjdHMgOiBwdWJsaWMgRE9NSklUTm9kZSB7CiBwdWJsaWM6CiAgICAgRE9NSklU
R2V0dGVyTm9FZmZlY3RzKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCkBAIC0xMDI2LDcg
KzEwNDAsNyBAQCBjbGFzcyBET01KSVRHZXR0ZXJOb0VmZmVjdHMgOiBwdWJsaWMgRE9NSklUTm9k
ZSB7CiAgICAgcHVibGljOgogICAgICAgICBBTFdBWVNfSU5MSU5FIGNvbnN0ZXhwciBET01KSVRB
dHRyaWJ1dGUoKQogICAgICAgICAgICAgOiBET01KSVQ6OkdldHRlclNldHRlcigKLSAgICAgICAg
ICAgICAgICBET01KSVRHZXR0ZXJOb0VmZmVjdHM6OmN1c3RvbUdldHRlciwKKyAgICAgICAgICAg
ICAgICBkb21KSVRHZXR0ZXJOb0VmZmVjdEN1c3RvbUdldHRlciwKICNpZiBFTkFCTEUoSklUKQog
ICAgICAgICAgICAgICAgICZjYWxsRE9NR2V0dGVyLAogI2Vsc2UKQEAgLTEwMzcsMTUgKzEwNTEs
NiBAQCBjbGFzcyBET01KSVRHZXR0ZXJOb0VmZmVjdHMgOiBwdWJsaWMgRE9NSklUTm9kZSB7CiAg
ICAgICAgIH0KIAogI2lmIEVOQUJMRShKSVQpCi0gICAgICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIHNsb3dDYWxsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHZv
aWQqIHBvaW50ZXIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUg
YXNzZXJ0U2NvcGU7Ci0gICAgICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0g
ICAgICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
Ci0gICAgICAgICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
dm0sIGNhbGxGcmFtZSk7Ci0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVt
YmVyKHN0YXRpY19jYXN0PERPTUpJVEdldHRlck5vRWZmZWN0cyo+KHBvaW50ZXIpLT52YWx1ZSgp
KSk7Ci0gICAgICAgIH0KLQogICAgICAgICBzdGF0aWMgUmVmPERPTUpJVDo6Q2FsbERPTUdldHRl
clNuaXBwZXQ+IGNhbGxET01HZXR0ZXIoKQogICAgICAgICB7CiAgICAgICAgICAgICBEb2xsYXJW
TUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwpAQCAtMTA1Nyw3ICsxMDYyLDcgQEAgY2xhc3MgRE9N
SklUR2V0dGVyTm9FZmZlY3RzIDogcHVibGljIERPTUpJVE5vZGUgewogICAgICAgICAgICAgICAg
IEpTVmFsdWVSZWdzIHJlc3VsdHMgPSBwYXJhbXNbMF0uanNWYWx1ZVJlZ3MoKTsKICAgICAgICAg
ICAgICAgICBHUFJSZWcgZG9tR1BSID0gcGFyYW1zWzFdLmdwcigpOwogICAgICAgICAgICAgICAg
IEdQUlJlZyBnbG9iYWxPYmplY3RHUFIgPSBwYXJhbXNbMl0uZ3ByKCk7Ci0gICAgICAgICAgICAg
ICAgcGFyYW1zLmFkZFNsb3dQYXRoQ2FsbChqaXQuanVtcCgpLCBqaXQsIHNsb3dDYWxsLCByZXN1
bHRzLCBnbG9iYWxPYmplY3RHUFIsIGRvbUdQUik7CisgICAgICAgICAgICAgICAgcGFyYW1zLmFk
ZFNsb3dQYXRoQ2FsbChqaXQuanVtcCgpLCBqaXQsIGRvbUpJVEdldHRlck5vRWZmZWN0U2xvd0Nh
bGwsIHJlc3VsdHMsIGdsb2JhbE9iamVjdEdQUiwgZG9tR1BSKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCgpOwogCiAgICAgICAgICAgICB9KTsKQEAgLTEw
NjgsMTUgKzEwNzMsNiBAQCBjbGFzcyBET01KSVRHZXR0ZXJOb0VmZmVjdHMgOiBwdWJsaWMgRE9N
SklUTm9kZSB7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYpOwotCi0g
ICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gY3VzdG9tR2V0dGVyKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQotICAgIHsKLSAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsK
LSAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgICAgICBET01KSVROb2Rl
KiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxET01KSVROb2RlKj4odm0sIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKLSAgICAgICAgQVNTRVJUKHRoaXNPYmplY3QpOwotICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNPYmplY3QtPnZhbHVlKCkpKTsKLSAg
ICB9CiB9OwogCiBzdGF0aWMgY29uc3QgRE9NSklUR2V0dGVyTm9FZmZlY3RzOjpET01KSVRBdHRy
aWJ1dGUgRE9NSklUR2V0dGVyTm9FZmZlY3RzRE9NSklUOwpAQCAtMTA5MCw2ICsxMDg2LDI3IEBA
IHZvaWQgRE9NSklUR2V0dGVyTm9FZmZlY3RzOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAgICAg
cHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJj
dXN0b21HZXR0ZXIiKSwgY3VzdG9tR2V0dGVyU2V0dGVyLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVh
ZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IpOwogfQogCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoZG9tSklUR2V0dGVyTm9FZmZlY3RDdXN0b21HZXR0ZXIsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkpCit7CisgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKKyAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgRE9NSklUTm9kZSogdGhpc09iamVjdCA9
IGpzRHluYW1pY0Nhc3Q8RE9NSklUTm9kZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CisgICAgQVNTRVJUKHRoaXNPYmplY3QpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdW1iZXIodGhpc09iamVjdC0+dmFsdWUoKSkpOworfQorCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04oZG9tSklUR2V0dGVyTm9FZmZlY3RTbG93Q2FsbCwgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB2b2lkKiBwb2ludGVyKSkKK3sKKyAgICBEb2xsYXJW
TUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7Cisg
ICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJh
bWUpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoc3RhdGljX2Nhc3Q8RE9N
SklUR2V0dGVyTm9FZmZlY3RzKj4ocG9pbnRlciktPnZhbHVlKCkpKTsKK30KKworc3RhdGljIEpT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoZG9tSklUR2V0dGVyQ29tcGxleEN1c3RvbUdldHRlcik7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihkb21KSVRHZXR0ZXJDb21wbGV4U2xv
d0NhbGwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCB2b2lkKikpOworCiBjbGFz
cyBET01KSVRHZXR0ZXJDb21wbGV4IDogcHVibGljIERPTUpJVE5vZGUgewogcHVibGljOgogICAg
IERPTUpJVEdldHRlckNvbXBsZXgoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKQEAgLTEx
MjAsNyArMTEzNyw3IEBAIGNsYXNzIERPTUpJVEdldHRlckNvbXBsZXggOiBwdWJsaWMgRE9NSklU
Tm9kZSB7CiAgICAgcHVibGljOgogICAgICAgICBBTFdBWVNfSU5MSU5FIGNvbnN0ZXhwciBET01K
SVRBdHRyaWJ1dGUoKQogICAgICAgICAgICAgOiBET01KSVQ6OkdldHRlclNldHRlcigKLSAgICAg
ICAgICAgICAgICBET01KSVRHZXR0ZXJDb21wbGV4OjpjdXN0b21HZXR0ZXIsCisgICAgICAgICAg
ICAgICAgZG9tSklUR2V0dGVyQ29tcGxleEN1c3RvbUdldHRlciwKICNpZiBFTkFCTEUoSklUKQog
ICAgICAgICAgICAgICAgICZjYWxsRE9NR2V0dGVyLAogI2Vsc2UKQEAgLTExMzEsMjIgKzExNDgs
NiBAQCBjbGFzcyBET01KSVRHZXR0ZXJDb21wbGV4IDogcHVibGljIERPTUpJVE5vZGUgewogICAg
ICAgICB9CiAKICNpZiBFTkFCTEUoSklUKQotICAgICAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBzbG93Q2FsbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB2b2lk
KiBwb2ludGVyKQotICAgICAgICB7Ci0gICAgICAgICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFz
c2VydFNjb3BlOwotICAgICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAg
ICAgICAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwot
ICAgICAgICAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZt
LCBjYWxsRnJhbWUpOwotICAgICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwotICAgICAgICAgICAgYXV0byogb2JqZWN0ID0gc3RhdGljX2Nhc3Q8RE9NSklUTm9k
ZSo+KHBvaW50ZXIpOwotICAgICAgICAgICAgYXV0byogZG9taml0R2V0dGVyQ29tcGxleCA9IGpz
RHluYW1pY0Nhc3Q8RE9NSklUR2V0dGVyQ29tcGxleCo+KHZtLCBvYmplY3QpOwotICAgICAgICAg
ICAgaWYgKGRvbWppdEdldHRlckNvbXBsZXgpIHsKLSAgICAgICAgICAgICAgICBpZiAoZG9taml0
R2V0dGVyQ29tcGxleC0+bV9lbmFibGVFeGNlcHRpb24pCi0gICAgICAgICAgICAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwg
Y3JlYXRlRXJyb3IoZ2xvYmFsT2JqZWN0LCAiRE9NSklUR2V0dGVyQ29tcGxleCBzbG93IGNhbGwg
ZXhjZXB0aW9uIl9zKSkpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcihvYmplY3QtPnZhbHVlKCkpKTsKLSAgICAgICAgfQotCiAgICAg
ICAgIHN0YXRpYyBSZWY8RE9NSklUOjpDYWxsRE9NR2V0dGVyU25pcHBldD4gY2FsbERPTUdldHRl
cigpCiAgICAgICAgIHsKICAgICAgICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2Nv
cGU7CkBAIC0xMTY0LDcgKzExNjUsNyBAQCBjbGFzcyBET01KSVRHZXR0ZXJDb21wbGV4IDogcHVi
bGljIERPTUpJVE5vZGUgewogICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBudW1HUFNjcmF0Y2hSZWdpc3RlcnM7ICsraSkKICAgICAgICAgICAgICAgICAgICAgaml0Lm1v
dmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoNDIpLCBwYXJhbXMuZ3BTY3JhdGNoKGkpKTsK
IAotICAgICAgICAgICAgICAgIHBhcmFtcy5hZGRTbG93UGF0aENhbGwoaml0Lmp1bXAoKSwgaml0
LCBzbG93Q2FsbCwgcmVzdWx0cywgZ2xvYmFsT2JqZWN0R1BSLCBkb21HUFIpOworICAgICAgICAg
ICAgICAgIHBhcmFtcy5hZGRTbG93UGF0aENhbGwoaml0Lmp1bXAoKSwgaml0LCBkb21KSVRHZXR0
ZXJDb21wbGV4U2xvd0NhbGwsIHJlc3VsdHMsIGdsb2JhbE9iamVjdEdQUiwgZG9tR1BSKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCgpOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgICAgICByZXR1cm4gc25pcHBldDsKQEAgLTExNzQsMTkgKzExNzUsNiBA
QCBjbGFzcyBET01KSVRHZXR0ZXJDb21wbGV4IDogcHVibGljIERPTUpJVE5vZGUgewogCiAgICAg
dm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kik7CiAKLSAgICBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBjdXN0b21HZXR0ZXIoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCi0g
ICAgewotICAgICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwotICAgICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKLQotICAgICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNEeW5hbWlj
Q2FzdDxET01KSVRHZXR0ZXJDb21wbGV4Kj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKLSAgICAgICAgQVNTRVJUKHRoaXNPYmplY3QpOwotICAgICAgICBpZiAodGhpc09iamVjdC0+
bV9lbmFibGVFeGNlcHRpb24pCi0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRo
cm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUVycm9yKGdsb2JhbE9iamVj
dCwgIkRPTUpJVEdldHRlckNvbXBsZXggc2xvdyBjYWxsIGV4Y2VwdGlvbiJfcykpKTsKLSAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih0aGlzT2JqZWN0LT52YWx1ZSgpKSk7
Ci0gICAgfQotCiAgICAgYm9vbCBtX2VuYWJsZUV4Y2VwdGlvbiB7IGZhbHNlIH07CiB9OwogCkBA
IC0xMjAwLDYgKzExODgsMzUgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRE9N
SklUR2V0dGVyQ29tcGxleEVuYWJsZUV4Y2VwdGlvbiwgKEpTR2xvYmFsT2IKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCitKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoZG9tSklUR2V0dGVyQ29tcGxleEN1c3RvbUdldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK3sK
KyAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOworICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CisKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxET01KSVRHZXR0ZXJDb21w
bGV4Kj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBBU1NFUlQodGhpc09i
amVjdCk7CisgICAgaWYgKHRoaXNPYmplY3QtPm1fZW5hYmxlRXhjZXB0aW9uKQorICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUs
IGNyZWF0ZUVycm9yKGdsb2JhbE9iamVjdCwgIkRPTUpJVEdldHRlckNvbXBsZXggc2xvdyBjYWxs
IGV4Y2VwdGlvbiJfcykpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRo
aXNPYmplY3QtPnZhbHVlKCkpKTsKK30KKworSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKGRvbUpJ
VEdldHRlckNvbXBsZXhTbG93Q2FsbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCB2b2lkKiBwb2ludGVyKSkKK3sKKyAgICBEb2xsYXJWTUFzc2VydFNjb3Bl
IGFzc2VydFNjb3BlOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0
aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBhdXRvKiBvYmplY3QgPSBz
dGF0aWNfY2FzdDxET01KSVROb2RlKj4ocG9pbnRlcik7CisgICAgYXV0byogZG9taml0R2V0dGVy
Q29tcGxleCA9IGpzRHluYW1pY0Nhc3Q8RE9NSklUR2V0dGVyQ29tcGxleCo+KHZtLCBvYmplY3Qp
OworICAgIGlmIChkb21qaXRHZXR0ZXJDb21wbGV4KSB7CisgICAgICAgIGlmIChkb21qaXRHZXR0
ZXJDb21wbGV4LT5tX2VuYWJsZUV4Y2VwdGlvbikKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUodGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJyb3Io
Z2xvYmFsT2JqZWN0LCAiRE9NSklUR2V0dGVyQ29tcGxleCBzbG93IGNhbGwgZXhjZXB0aW9uIl9z
KSkpOworICAgIH0KKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKG9iamVjdC0+
dmFsdWUoKSkpOworfQorCiBzdGF0aWMgY29uc3QgRE9NSklUR2V0dGVyQ29tcGxleDo6RE9NSklU
QXR0cmlidXRlIERPTUpJVEdldHRlckNvbXBsZXhET01KSVQ7CiAKIHZvaWQgRE9NSklUR2V0dGVy
Q29tcGxleDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQpAQCAtMTIxMiw2ICsxMjI5LDggQEAgdm9pZCBET01KSVRHZXR0ZXJDb21wbGV4OjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgcHV0
RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgImVuYWJsZUV4Y2VwdGlvbiIpLCAwLCBmdW5jdGlvbkRPTUpJVEdldHRlckNvbXBs
ZXhFbmFibGVFeGNlcHRpb24sIE5vSW50cmluc2ljLCAwKTsKIH0KIAorc3RhdGljIEpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04oZnVuY3Rpb25ET01KSVRGdW5jdGlvbk9iamVjdFdpdGhvdXRUeXBl
Q2hlY2ssIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRE9N
SklUTm9kZSopKTsKKwogY2xhc3MgRE9NSklURnVuY3Rpb25PYmplY3QgOiBwdWJsaWMgRE9NSklU
Tm9kZSB7CiBwdWJsaWM6CiAgICAgRE9NSklURnVuY3Rpb25PYmplY3QoVk0mIHZtLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSkKQEAgLTEyMzgsMTUgKzEyNTcsNiBAQCBjbGFzcyBET01KSVRGdW5jdGlv
bk9iamVjdCA6IHB1YmxpYyBET01KSVROb2RlIHsKICAgICAgICAgcmV0dXJuIG9iamVjdDsKICAg
ICB9CiAKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBmdW5jdGlvbldp
dGhvdXRUeXBlQ2hlY2soSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRE9NSklUTm9kZSog
bm9kZSkKLSAgICB7Ci0gICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7Ci0g
ICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwotICAgICAgICBKSVRPcGVyYXRpb25Q
cm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIobm9kZS0+dmFsdWUoKSkpOwotICAgIH0KLQog
I2lmIEVOQUJMRShKSVQpCiAgICAgc3RhdGljIFJlZjxTbmlwcGV0PiBjaGVja1N1YkNsYXNzU25p
cHBldCgpCiAgICAgewpAQCAtMTI4Miw3ICsxMjkyLDE2IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihmdW5jdGlvbkRPTUpJVEZ1bmN0aW9uT2JqZWN0V2l0aFR5cGVDaGVjaywgKEpTR2xvYmFs
T2JqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih0aGlzT2JqZWN0LT52YWx1
ZSgpKSk7CiB9CiAKLXN0YXRpYyBjb25zdCBET01KSVQ6OlNpZ25hdHVyZSBET01KSVRGdW5jdGlv
bk9iamVjdFNpZ25hdHVyZShET01KSVRGdW5jdGlvbk9iamVjdDo6ZnVuY3Rpb25XaXRob3V0VHlw
ZUNoZWNrLCBET01KSVRGdW5jdGlvbk9iamVjdDo6aW5mbygpLCBET01KSVQ6OkVmZmVjdDo6Zm9y
UmVhZChET01KSVQ6OkhlYXBSYW5nZShET01KSVQ6OkhlYXBSYW5nZTo6Q29uc3RFeHByLCAwLCAx
KSksIFNwZWNJbnQzMk9ubHkpOworSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKGZ1bmN0aW9uRE9N
SklURnVuY3Rpb25PYmplY3RXaXRob3V0VHlwZUNoZWNrLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERPTUpJVE5vZGUqIG5vZGUpKQoreworICAgIERvbGxh
clZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
KyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxG
cmFtZSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihub2RlLT52YWx1ZSgp
KSk7Cit9CisKK3N0YXRpYyBjb25zdCBET01KSVQ6OlNpZ25hdHVyZSBET01KSVRGdW5jdGlvbk9i
amVjdFNpZ25hdHVyZShmdW5jdGlvbkRPTUpJVEZ1bmN0aW9uT2JqZWN0V2l0aG91dFR5cGVDaGVj
aywgRE9NSklURnVuY3Rpb25PYmplY3Q6OmluZm8oKSwgRE9NSklUOjpFZmZlY3Q6OmZvclJlYWQo
RE9NSklUOjpIZWFwUmFuZ2UoRE9NSklUOjpIZWFwUmFuZ2U6OkNvbnN0RXhwciwgMCwgMSkpLCBT
cGVjSW50MzJPbmx5KTsKIAogdm9pZCBET01KSVRGdW5jdGlvbk9iamVjdDo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewpAQCAtMTI5MSw2ICsx
MzEwLDggQEAgdm9pZCBET01KSVRGdW5jdGlvbk9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0
aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJmdW5jIiks
IDAsIGZ1bmN0aW9uRE9NSklURnVuY3Rpb25PYmplY3RXaXRoVHlwZUNoZWNrLCBOb0ludHJpbnNp
YywgJkRPTUpJVEZ1bmN0aW9uT2JqZWN0U2lnbmF0dXJlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CiB9CiAKK3N0YXRpYyBKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKGZ1bmN0aW9uRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3RXaXRob3V0VHlwZUNo
ZWNrLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERPTUpJ
VE5vZGUqIG5vZGUpKTsKKwogY2xhc3MgRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QgOiBwdWJsaWMg
RE9NSklUTm9kZSB7CiBwdWJsaWM6CiAgICAgRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKQEAgLTEzMTcsMTUgKzEzMzgsNiBAQCBjbGFzcyBET01K
SVRDaGVja0pTQ2FzdE9iamVjdCA6IHB1YmxpYyBET01KSVROb2RlIHsKICAgICAgICAgcmV0dXJu
IG9iamVjdDsKICAgICB9CiAKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBmdW5jdGlvbldpdGhvdXRUeXBlQ2hlY2soSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RE9NSklUTm9kZSogbm9kZSkKLSAgICB7Ci0gICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNz
ZXJ0U2NvcGU7Ci0gICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwotICAgICAgICBK
SVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7
Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIobm9kZS0+dmFsdWUoKSkp
OwotICAgIH0KLQogcHJpdmF0ZToKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9i
YWxPYmplY3QqKTsKIH07CkBAIC0xMzQyLDcgKzEzNTQsMTYgQEAgSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGZ1bmN0aW9uRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3RXaXRoVHlwZUNoZWNrLCAoSlNH
bG9iYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNPYmplY3QtPnZh
bHVlKCkpKTsKIH0KIAotc3RhdGljIGNvbnN0IERPTUpJVDo6U2lnbmF0dXJlIERPTUpJVENoZWNr
SlNDYXN0T2JqZWN0U2lnbmF0dXJlKERPTUpJVENoZWNrSlNDYXN0T2JqZWN0OjpmdW5jdGlvbldp
dGhvdXRUeXBlQ2hlY2ssIERPTUpJVENoZWNrSlNDYXN0T2JqZWN0OjppbmZvKCksIERPTUpJVDo6
RWZmZWN0Ojpmb3JSZWFkKERPTUpJVDo6SGVhcFJhbmdlOjp0b3AoKSksIFNwZWNJbnQzMk9ubHkp
OworSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKGZ1bmN0aW9uRE9NSklUQ2hlY2tKU0Nhc3RPYmpl
Y3RXaXRob3V0VHlwZUNoZWNrLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIERPTUpJVE5vZGUqIG5vZGUpKQoreworICAgIERvbGxhclZNQXNzZXJ0U2NvcGUg
YXNzZXJ0U2NvcGU7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRp
b25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihub2RlLT52YWx1ZSgpKSk7Cit9CisKK3N0YXRp
YyBjb25zdCBET01KSVQ6OlNpZ25hdHVyZSBET01KSVRDaGVja0pTQ2FzdE9iamVjdFNpZ25hdHVy
ZShmdW5jdGlvbkRPTUpJVENoZWNrSlNDYXN0T2JqZWN0V2l0aG91dFR5cGVDaGVjaywgRE9NSklU
Q2hlY2tKU0Nhc3RPYmplY3Q6OmluZm8oKSwgRE9NSklUOjpFZmZlY3Q6OmZvclJlYWQoRE9NSklU
OjpIZWFwUmFuZ2U6OnRvcCgpKSwgU3BlY0ludDMyT25seSk7CiAKIHZvaWQgRE9NSklUQ2hlY2tK
U0Nhc3RPYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKIHsKQEAgLTEzNTEsNiArMTM3Miw5IEBAIHZvaWQgRE9NSklUQ2hlY2tKU0Nhc3RP
YmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
CiAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgImZ1bmMiKSwgMCwgZnVuY3Rpb25ET01KSVRDaGVja0pTQ2FzdE9i
amVjdFdpdGhUeXBlQ2hlY2ssIE5vSW50cmluc2ljLCAmRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3RT
aWduYXR1cmUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9u
bHkpKTsKIH0KIAorc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoZG9tSklUR2V0dGVy
QmFzZUpTT2JqZWN0Q3VzdG9tR2V0dGVyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKGRvbUpJVEdldHRlckJhc2VKU09iamVjdFNsb3dDYWxsLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0Kiwgdm9pZCopKTsKKwogY2xhc3MgRE9NSklUR2V0dGVyQmFzZUpTT2JqZWN0
IDogcHVibGljIERPTUpJVE5vZGUgewogcHVibGljOgogICAgIERPTUpJVEdldHRlckJhc2VKU09i
amVjdChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQpAQCAtMTM4MSw3ICsxNDA1LDcgQEAg
Y2xhc3MgRE9NSklUR2V0dGVyQmFzZUpTT2JqZWN0IDogcHVibGljIERPTUpJVE5vZGUgewogICAg
IHB1YmxpYzoKICAgICAgICAgQUxXQVlTX0lOTElORSBjb25zdGV4cHIgRE9NSklUQXR0cmlidXRl
KCkKICAgICAgICAgICAgIDogRE9NSklUOjpHZXR0ZXJTZXR0ZXIoCi0gICAgICAgICAgICAgICAg
RE9NSklUR2V0dGVyQmFzZUpTT2JqZWN0OjpjdXN0b21HZXR0ZXIsCisgICAgICAgICAgICAgICAg
ZG9tSklUR2V0dGVyQmFzZUpTT2JqZWN0Q3VzdG9tR2V0dGVyLAogI2lmIEVOQUJMRShKSVQpCiAg
ICAgICAgICAgICAgICAgJmNhbGxET01HZXR0ZXIsCiAjZWxzZQpAQCAtMTM5MiwxNiArMTQxNiw2
IEBAIGNsYXNzIERPTUpJVEdldHRlckJhc2VKU09iamVjdCA6IHB1YmxpYyBET01KSVROb2RlIHsK
ICAgICAgICAgfQogCiAjaWYgRU5BQkxFKEpJVCkKLSAgICAgICAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gc2xvd0NhbGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
dm9pZCogcG9pbnRlcikKLSAgICAgICAgewotICAgICAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29w
ZSBhc3NlcnRTY29wZTsKLSAgICAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
LSAgICAgICAgICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKLSAgICAgICAgICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cih2bSwgY2FsbEZyYW1lKTsKLSAgICAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBzdGF0aWNf
Y2FzdDxKU09iamVjdCo+KHBvaW50ZXIpOwotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShvYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCh2bSkpOwotICAgICAgICB9Ci0KICAgICAg
ICAgc3RhdGljIFJlZjxET01KSVQ6OkNhbGxET01HZXR0ZXJTbmlwcGV0PiBjYWxsRE9NR2V0dGVy
KCkKICAgICAgICAgewogICAgICAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29w
ZTsKQEAgLTE0MTIsNyArMTQyNiw3IEBAIGNsYXNzIERPTUpJVEdldHRlckJhc2VKU09iamVjdCA6
IHB1YmxpYyBET01KSVROb2RlIHsKICAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRz
ID0gcGFyYW1zWzBdLmpzVmFsdWVSZWdzKCk7CiAgICAgICAgICAgICAgICAgR1BSUmVnIGRvbUdQ
UiA9IHBhcmFtc1sxXS5ncHIoKTsKICAgICAgICAgICAgICAgICBHUFJSZWcgZ2xvYmFsT2JqZWN0
R1BSID0gcGFyYW1zWzJdLmdwcigpOwotICAgICAgICAgICAgICAgIHBhcmFtcy5hZGRTbG93UGF0
aENhbGwoaml0Lmp1bXAoKSwgaml0LCBzbG93Q2FsbCwgcmVzdWx0cywgZ2xvYmFsT2JqZWN0R1BS
LCBkb21HUFIpOworICAgICAgICAgICAgICAgIHBhcmFtcy5hZGRTbG93UGF0aENhbGwoaml0Lmp1
bXAoKSwgaml0LCBkb21KSVRHZXR0ZXJCYXNlSlNPYmplY3RTbG93Q2FsbCwgcmVzdWx0cywgZ2xv
YmFsT2JqZWN0R1BSLCBkb21HUFIpOwogICAgICAgICAgICAgICAgIHJldHVybiBDQ2FsbEhlbHBl
cnM6Okp1bXBMaXN0KCk7CiAKICAgICAgICAgICAgIH0pOwpAQCAtMTQyMywxNSArMTQzNyw2IEBA
IGNsYXNzIERPTUpJVEdldHRlckJhc2VKU09iamVjdCA6IHB1YmxpYyBET01KSVROb2RlIHsKIAog
cHJpdmF0ZToKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJik7Ci0KLSAgICBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBjdXN0b21HZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCi0gICAg
ewotICAgICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwotICAgICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0g
anNEeW5hbWljQ2FzdDxKU09iamVjdCo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKHRoaXNPYmplY3QpOwotICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCh2bSkpOwotICAgIH0K
IH07CiAKIHN0YXRpYyBjb25zdCBET01KSVRHZXR0ZXJCYXNlSlNPYmplY3Q6OkRPTUpJVEF0dHJp
YnV0ZSBET01KSVRHZXR0ZXJCYXNlSlNPYmplY3RET01KSVQ7CkBAIC0xNDQ1LDYgKzE0NTAsMjUg
QEAgdm9pZCBET01KSVRHZXR0ZXJCYXNlSlNPYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkK
ICAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgImN1c3RvbUdldHRlciIpLCBjdXN0b21HZXR0ZXJTZXR0ZXIsIFByb3BlcnR5QXR0cmlidXRl
OjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nvcik7CiB9CiAKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihkb21KSVRHZXR0ZXJCYXNlSlNPYmplY3RDdXN0b21HZXR0
ZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCit7CisgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29w
ZTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgSlNPYmplY3QqIHRoaXNP
YmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTT2JqZWN0Kj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKKyAgICBSRUxFQVNFX0FTU0VSVCh0aGlzT2JqZWN0KTsKKyAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCh2bSkpOworfQorCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04oZG9tSklUR2V0dGVyQmFzZUpTT2JqZWN0U2xvd0NhbGws
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgdm9pZCogcG9p
bnRlcikpCit7CisgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKKyAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOworICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJh
Y2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKKyAgICBKU09iamVjdCogb2JqZWN0ID0gc3RhdGlj
X2Nhc3Q8SlNPYmplY3QqPihwb2ludGVyKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG9i
amVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KHZtKSk7Cit9CisKIGNsYXNzIE1lc3NhZ2UgOiBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8TWVzc2FnZT4gewogcHVibGljOgogICAgIE1lc3NhZ2Uo
QXJyYXlCdWZmZXJDb250ZW50cyYmLCBpbnQzMl90KTsKQEAgLTE0OTUsMzAgKzE1MTksMzggQEAg
Y2xhc3MgSlNUZXN0Q3VzdG9tR2V0dGVyU2V0dGVyIDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qg
ewogfTsKIAogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBjdXN0b21HZXRB
Y2Nlc3NvcihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0QWNjZXNz
b3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0VmFsdWUpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0QWNjZXNzb3JHbG9iYWxP
YmplY3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0VmFsdWVH
bG9iYWxPYmplY3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoY3VzdG9tU2V0
QWNjZXNzb3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoY3VzdG9tU2V0VmFs
dWUpOworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoY3VzdG9tRnVuY3Rpb25TZXR0
ZXIpOworCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0QWNjZXNzb3IsIChKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
ICAgICAvLyBQYXNzZWQgfHRoaXN8CiAgICAgcmV0dXJuIHRoaXNWYWx1ZTsKIH0KIAotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gY3VzdG9tR2V0VmFsdWUoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgc2xvdFZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0VmFsdWUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBzbG90VmFsdWUsIFByb3BlcnR5TmFtZSkp
CiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKHNsb3RWYWx1ZSkuaW5oZXJp
dHM8SlNUZXN0Q3VzdG9tR2V0dGVyU2V0dGVyPihnbG9iYWxPYmplY3QtPnZtKCkpKTsKICAgICAv
LyBQYXNzZWQgcHJvcGVydHkgaG9sZGVyLgogICAgIHJldHVybiBzbG90VmFsdWU7CiB9CiAKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGN1c3RvbUdldEFjY2Vzc29yR2xvYmFs
T2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0QWNjZXNzb3JHbG9i
YWxPYmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbE9iamVj
dCk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGN1c3RvbUdldFZh
bHVlR2xvYmFsT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0VmFs
dWVHbG9iYWxPYmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGdsb2Jh
bE9iamVjdCk7CiB9CiAKLXN0YXRpYyBib29sIEpJVF9PUEVSQVRJT04gY3VzdG9tU2V0QWNjZXNz
b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc09iamVj
dCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVS
KGN1c3RvbVNldEFjY2Vzc29yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc09iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAg
ICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKQEAgLTE1MzIsNyArMTU2NCw3IEBAIHN0YXRpYyBib29sIEpJVF9PUEVSQVRJ
T04gY3VzdG9tU2V0QWNjZXNzb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBib29sIEpJVF9PUEVSQVRJT04gY3VzdG9t
U2V0VmFsdWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgc2xv
dFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoY3VzdG9tU2V0VmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSBzbG90VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAg
ICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CkBAIC0xNTQ4LDcgKzE1ODAsNyBAQCBzdGF0aWMgYm9vbCBKSVRfT1BFUkFU
SU9OIGN1c3RvbVNldFZhbHVlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRK
UwogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCBKSVRfT1BFUkFUSU9OIGN1c3Rv
bUZ1bmN0aW9uU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRU
RVIoY3VzdG9tRnVuY3Rpb25TZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBEb2xs
YXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRp
b25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcApp
bmRleCBhMmI2ZGZlMmNkYjE5MjNkNjllOGJhOTM1YzcyMThkYjhjYmE2MzU5Li43MDNiYmQxZjM0
ZmNiMTcyZjQ0YzE1YzZiMmUxYzdlYTg4ZDc4NTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwCkBAIC01NSw3ICs1NSw3IEBAIElHTk9SRV9XQVJO
SU5HU19CRUdJTigiZnJhbWUtYWRkcmVzcyIpCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
V2FzbSB7CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25XYXNtVGhyb3dCYWRJNjQoSlNX
ZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0YW5jZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25XYXNtVGhyb3dCYWRJNjQsIHZvaWQsIChKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGlu
c3RhbmNlKSkKIHsKICAgICBWTSYgdm0gPSBpbnN0YW5jZS0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMzksNyArMjM5LDcgQEAg
aW5saW5lIGJvb2wgc2hvdWxkSklUKHVuc2lnbmVkIGZ1bmN0aW9uSW5kZXgpCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25XYXNtVHJpZ2dlck9TUkVu
dHJ5Tm93KFByb2JlOjpDb250ZXh0JiBjb250ZXh0KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbldhc21UcmlnZ2VyT1NSRW50cnlOb3csIHZvaWQsIChQcm9iZTo6Q29udGV4dCYg
Y29udGV4dCkpCiB7CiAgICAgT1NSRW50cnlEYXRhJiBvc3JFbnRyeURhdGEgPSAqY29udGV4dC5h
cmc8T1NSRW50cnlEYXRhKj4oKTsKICAgICB1aW50MzJfdCBmdW5jdGlvbkluZGV4ID0gb3NyRW50
cnlEYXRhLmZ1bmN0aW9uSW5kZXgoKTsKQEAgLTQzNyw3ICs0MzcsNyBAQCB2b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uV2FzbVRyaWdnZXJPU1JFbnRyeU5vdyhQcm9iZTo6Q29udGV4dCYgY29u
dGV4dCkKICAgICByZXR1cm4gcmV0dXJuV2l0aG91dE9TUkVudHJ5KCk7CiB9CiAKLXZvaWQgSklU
X09QRVJBVElPTiBvcGVyYXRpb25XYXNtVHJpZ2dlclRpZXJVcE5vdyhJbnN0YW5jZSogaW5zdGFu
Y2UsIHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uV2FzbVRyaWdnZXJUaWVyVXBOb3csIHZvaWQsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVp
bnQzMl90IGZ1bmN0aW9uSW5kZXgpKQogewogICAgIFdhc206OkNvZGVCbG9jayYgY29kZUJsb2Nr
ID0gKmluc3RhbmNlLT5jb2RlQmxvY2soKTsKICAgICBBU1NFUlQoaW5zdGFuY2UtPm1lbW9yeSgp
LT5tb2RlKCkgPT0gY29kZUJsb2NrLm1vZGUoKSk7CkBAIC00NzYsNyArNDc2LDcgQEAgdm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbldhc21UcmlnZ2VyVGllclVwTm93KEluc3RhbmNlKiBpbnN0
YW5jZSwgdWludDMyX3QgZnUKICAgICB9CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25XYXNtVW53aW5kKENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbldhc21VbndpbmQsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBp
bnN0ZWFkLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDMyMDYKQEAgLTQ4Niw3ICs0ODYsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uV2Fz
bVVud2luZChDYWxsRnJhbWUqIGNhbGxGcmFtZSkKICAgICBBU1NFUlQoISF2bS5jYWxsRnJhbWVG
b3JDYXRjaCk7CiB9CiAKLWRvdWJsZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbnZlcnRUb0Y2
NChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2KQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNvbnZlcnRUb0Y2NCwgZG91YmxlLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUs
IEpTVmFsdWUgdikpCiB7CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJBc3Nl
bWJseUluc3RhbmNlKiBpbnN0ZWFkLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDMyMDYKQEAgLTQ5NSw3ICs0OTUsNyBAQCBkb3VibGUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25Db252ZXJ0VG9GNjQoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUg
dikKICAgICByZXR1cm4gdi50b051bWJlcihjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qo
dm0pKTsKIH0KIAotaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbnZlcnRUb0kzMihD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNvbnZlcnRUb0kzMiwgaW50MzJfdCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBK
U1ZhbHVlIHYpKQogewogICAgIC8vIEZJWE1FOiBDb25zaWRlciBwYXNzaW5nIEpTV2ViQXNzZW1i
bHlJbnN0YW5jZSogaW5zdGVhZC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAzMjA2CkBAIC01MDQsNyArNTA0LDcgQEAgaW50MzJfdCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkNvbnZlcnRUb0kzMihDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2
KQogICAgIHJldHVybiB2LnRvSW50MzIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZt
KSk7CiB9CiAKLWZsb2F0IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29udmVydFRvRjMyKENhbGxG
cmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHYpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ29udmVydFRvRjMyLCBmbG9hdCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVl
IHYpKQogewogICAgIC8vIEZJWE1FOiBDb25zaWRlciBwYXNzaW5nIEpTV2ViQXNzZW1ibHlJbnN0
YW5jZSogaW5zdGVhZC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAzMjA2CkBAIC01MTMsNyArNTEzLDcgQEAgZmxvYXQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25Db252ZXJ0VG9GMzIoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdikKICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHYudG9OdW1iZXIoY2FsbEZyYW1lLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KHZtKSkpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSXRlcmF0
ZVJlc3VsdHMoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0YW5jZSwgY29uc3Qg
U2lnbmF0dXJlKiBzaWduYXR1cmUsIEpTVmFsdWUgcmVzdWx0LCB1aW50NjRfdCogcmVnaXN0ZXJS
ZXN1bHRzLCB1aW50NjRfdCogY2FsbGVlRnJhbWVQb2ludGVyKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzLCB2b2lkLCAoQ2FsbEZyYW1lKiBjYWxsRnJh
bWUsIEluc3RhbmNlKiBpbnN0YW5jZSwgY29uc3QgU2lnbmF0dXJlKiBzaWduYXR1cmUsIEpTVmFs
dWUgcmVzdWx0LCB1aW50NjRfdCogcmVnaXN0ZXJSZXN1bHRzLCB1aW50NjRfdCogY2FsbGVlRnJh
bWVQb2ludGVyKSkKIHsKICAgICAvLyBGSVhNRTogQ29uc2lkZXIgcGFzc2luZyBKU1dlYkFzc2Vt
Ymx5SW5zdGFuY2UqIGluc3RlYWQuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMzIwNgpAQCAtNTcyLDcgKzU3Miw3IEBAIHZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25JdGVyYXRlUmVzdWx0cyhDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSW5zdGFuY2Uq
IGluc3RhCiAvLyBGSVhNRTogSXQgd291bGQgYmUgbXVjaCBlYXNpZXIgdG8gaW5saW5lIHRoaXMg
d2hlbiB3ZSBoYXZlIGEgZ2xvYmFsIEdDLCB3aGljaCBjb3VsZCBwcm9iYWJseSBtZWFuIHdlIGNv
dWxkIGF2b2lkCiAvLyBzcGlsbGluZyB0aGUgcmVzdWx0cyBvbnRvIHRoZSBzdGFjay4KIC8vIFNh
dmVkIHJlc3VsdCByZWdpc3RlcnMgc2hvdWxkIGJlIHBsYWNlZCBvbiB0aGUgc3RhY2sganVzdCBh
Ym92ZSB0aGUgbGFzdCBzdGFjayByZXN1bHQuCi1KU0FycmF5KiBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KENhbGxGcmFtZSogY2FsbEZyYW1lLCBXYXNtOjpJbnN0
YW5jZSogaW5zdGFuY2UsIGNvbnN0IFNpZ25hdHVyZSogc2lnbmF0dXJlLCBJbmRleGluZ1R5cGUg
aW5kZXhpbmdUeXBlLCBKU1ZhbHVlKiBzdGFja1BvaW50ZXJGcm9tQ2FsbGVlKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5LCBKU0FycmF5Kiwg
KENhbGxGcmFtZSogY2FsbEZyYW1lLCBXYXNtOjpJbnN0YW5jZSogaW5zdGFuY2UsIGNvbnN0IFNp
Z25hdHVyZSogc2lnbmF0dXJlLCBJbmRleGluZ1R5cGUgaW5kZXhpbmdUeXBlLCBKU1ZhbHVlKiBz
dGFja1BvaW50ZXJGcm9tQ2FsbGVlKSkKIHsKICAgICBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGpz
SW5zdGFuY2UgPSBpbnN0YW5jZS0+b3duZXI8SlNXZWJBc3NlbWJseUluc3RhbmNlPigpOwogICAg
IFZNJiB2bSA9IGpzSW5zdGFuY2UtPnZtKCk7CkBAIC02MDMsNyArNjAzLDcgQEAgSlNBcnJheSog
SklUX09QRVJBVElPTiBvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheShDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgV2FzbToKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi12b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uV2FzbVdyaXRlQmFycmllclNsb3dQYXRoKEpTQ2VsbCogY2VsbCwgVk0qIHZt
UG9pbnRlcikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtV3JpdGVCYXJy
aWVyU2xvd1BhdGgsIHZvaWQsIChKU0NlbGwqIGNlbGwsIFZNKiB2bVBvaW50ZXIpKQogewogICAg
IEFTU0VSVChjZWxsKTsKICAgICBBU1NFUlQodm1Qb2ludGVyKTsKQEAgLTYxMSwxNyArNjExLDE3
IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25XYXNtV3JpdGVCYXJyaWVyU2xvd1BhdGgo
SlNDZWxsKiBjZWxsLCBWTSogdm1Qb2ludGVyCiAgICAgdm0uaGVhcC53cml0ZUJhcnJpZXJTbG93
UGF0aChjZWxsKTsKIH0KIAotdWludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qb3Bjb3Vu
dDMyKGludDMyX3QgdmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUG9w
Y291bnQzMiwgdWludDMyX3QsIChpbnQzMl90IHZhbHVlKSkKIHsKICAgICByZXR1cm4gX19idWls
dGluX3BvcGNvdW50KHZhbHVlKTsKIH0KIAotdWludDY0X3QgSklUX09QRVJBVElPTiBvcGVyYXRp
b25Qb3Bjb3VudDY0KGludDY0X3QgdmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUG9wY291bnQ2NCwgdWludDY0X3QsIChpbnQ2NF90IHZhbHVlKSkKIHsKICAgICByZXR1
cm4gX19idWlsdGluX3BvcGNvdW50bGwodmFsdWUpOwogfQogCi1pbnQzMl90IEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uR3Jvd01lbW9yeSh2b2lkKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0YW5j
ZSwgaW50MzJfdCBkZWx0YSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Hcm93
TWVtb3J5LCBpbnQzMl90LCAodm9pZCogY2FsbEZyYW1lLCBJbnN0YW5jZSogaW5zdGFuY2UsIGlu
dDMyX3QgZGVsdGEpKQogewogICAgIGluc3RhbmNlLT5zdG9yZVRvcENhbGxGcmFtZShjYWxsRnJh
bWUpOwogCkBAIC02NDMsNyArNjQzLDcgQEAgaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkdyb3dNZW1vcnkodm9pZCogY2FsbEZyYW1lLCBJbnN0YW5jZSogaW5zdGFuY2UsIGkKICAgICBy
ZXR1cm4gZ3Jvd24udmFsdWUoKS5wYWdlQ291bnQoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25HZXRXYXNtVGFibGVFbGVtZW50KEluc3RhbmNlKiBpbnN0YW5j
ZSwgdW5zaWduZWQgdGFibGVJbmRleCwgaW50MzJfdCBzaWduZWRJbmRleCkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25HZXRXYXNtVGFibGVFbGVtZW50LCBFbmNvZGVkSlNWYWx1
ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgdGFibGVJbmRleCwgaW50MzJfdCBzaWdu
ZWRJbmRleCkpCiB7CiAgICAgQVNTRVJUKHRhYmxlSW5kZXggPCBpbnN0YW5jZS0+bW9kdWxlKCku
bW9kdWxlSW5mb3JtYXRpb24oKS50YWJsZUNvdW50KCkpOwogICAgIGlmIChzaWduZWRJbmRleCA8
IDApCkBAIC02ODksMTIgKzY4OSwxMiBAQCBzdGF0aWMgYm9vbCBzZXRXYXNtVGFibGVFbGVtZW50
KEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgdGFibGVJbmRleCwgaW50MzJfdAogICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU2V0V2FzbVRhYmxl
RWxlbWVudChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIHRhYmxlSW5kZXgsIGludDMyX3Qg
c2lnbmVkSW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY1ZhbHVlKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblNldFdhc21UYWJsZUVsZW1lbnQsIGJvb2wsIChJbnN0YW5jZSogaW5z
dGFuY2UsIHVuc2lnbmVkIHRhYmxlSW5kZXgsIGludDMyX3Qgc2lnbmVkSW5kZXgsIEVuY29kZWRK
U1ZhbHVlIGVuY1ZhbHVlKSkKIHsKICAgICByZXR1cm4gc2V0V2FzbVRhYmxlRWxlbWVudChpbnN0
YW5jZSwgdGFibGVJbmRleCwgc2lnbmVkSW5kZXgsIGVuY1ZhbHVlKTsKIH0KIAotaW50MzJfdCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbldhc21UYWJsZUdyb3coSW5zdGFuY2UqIGluc3RhbmNlLCB1
bnNpZ25lZCB0YWJsZUluZGV4LCBFbmNvZGVkSlNWYWx1ZSBmaWxsLCBpbnQzMl90IGRlbHRhKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUdyb3csIGludDMyX3Qs
IChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIHRhYmxlSW5kZXgsIEVuY29kZWRKU1ZhbHVl
IGZpbGwsIGludDMyX3QgZGVsdGEpKQogewogICAgIEFTU0VSVCh0YWJsZUluZGV4IDwgaW5zdGFu
Y2UtPm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0aW9uKCkudGFibGVDb3VudCgpKTsKICAgICBhdXRv
IG9sZFNpemUgPSBpbnN0YW5jZS0+dGFibGUodGFibGVJbmRleCktPmxlbmd0aCgpOwpAQCAtNzEw
LDcgKzcxMCw3IEBAIGludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25XYXNtVGFibGVHcm93
KEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgdGFibGVJCiAgICAgcmV0dXJuIG9sZFNpemU7
CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBvcGVyYXRpb25XYXNtVGFibGVGaWxsKEluc3RhbmNl
KiBpbnN0YW5jZSwgdW5zaWduZWQgdGFibGVJbmRleCwgaW50MzJfdCB1bnNhZmVPZmZzZXQsIEVu
Y29kZWRKU1ZhbHVlIGZpbGwsIGludDMyX3QgdW5zYWZlQ291bnQpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlRmlsbCwgYm9vbCwgKEluc3RhbmNlKiBpbnN0YW5j
ZSwgdW5zaWduZWQgdGFibGVJbmRleCwgaW50MzJfdCB1bnNhZmVPZmZzZXQsIEVuY29kZWRKU1Zh
bHVlIGZpbGwsIGludDMyX3QgdW5zYWZlQ291bnQpKQogewogICAgIEFTU0VSVCh0YWJsZUluZGV4
IDwgaW5zdGFuY2UtPm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0aW9uKCkudGFibGVDb3VudCgpKTsK
ICAgICBpZiAodW5zYWZlT2Zmc2V0IDwgMCB8fCB1bnNhZmVDb3VudCA8IDApCkBAIC03MjgsMTkg
KzcyOCwxOSBAQCBib29sIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uV2FzbVRhYmxlRmlsbChJbnN0
YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIHRhYmxlSW5kZQogICAgIHJldHVybiB0cnVlOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbldhc21SZWZGdW5jKEluc3Rh
bmNlKiBpbnN0YW5jZSwgdWludDMyX3QgaW5kZXgpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uV2FzbVJlZkZ1bmMsIEVuY29kZWRKU1ZhbHVlLCAoSW5zdGFuY2UqIGluc3RhbmNl
LCB1aW50MzJfdCBpbmRleCkpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IGluc3RhbmNlLT5nZXRG
dW5jdGlvbldyYXBwZXIoaW5kZXgpOwogICAgIEFTU0VSVCh2YWx1ZS5pc0NhbGxhYmxlKGluc3Rh
bmNlLT5vd25lcjxKU09iamVjdD4oKS0+dm0oKSkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUodmFsdWUpOwogfQogCi1pbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0V2FzbVRh
YmxlU2l6ZShJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIHRhYmxlSW5kZXgpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0V2FzbVRhYmxlU2l6ZSwgaW50MzJfdCwgKElu
c3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgdGFibGVJbmRleCkpCiB7CiAgICAgcmV0dXJuIGlu
c3RhbmNlLT50YWJsZSh0YWJsZUluZGV4KS0+bGVuZ3RoKCk7CiB9CiAKLXZvaWQqIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uV2FzbVRvSlNFeGNlcHRpb24oQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIFdh
c206OkV4Y2VwdGlvblR5cGUgdHlwZSwgSW5zdGFuY2UqIHdhc21JbnN0YW5jZSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVG9KU0V4Y2VwdGlvbiwgdm9pZCosIChDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgV2FzbTo6RXhjZXB0aW9uVHlwZSB0eXBlLCBJbnN0YW5jZSogd2Fz
bUluc3RhbmNlKSkKIHsKICAgICB3YXNtSW5zdGFuY2UtPnN0b3JlVG9wQ2FsbEZyYW1lKGNhbGxG
cmFtZSk7CiAgICAgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0YW5jZSA9IHdhc21JbnN0YW5j
ZS0+b3duZXI8SlNXZWJBc3NlbWJseUluc3RhbmNlPigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21PcGVyYXRpb25zLmgKaW5kZXggMWZlNWFjZTExN2FkYmJiYTJiYzQ1MWE3MzAx
ODY3NjNhNGZkNzg3Yy4uODE5MTdhMmViYWMzMGVkNzVhNDljNzM3NWQwMjQ2MmFmZTFjZDVmYyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oCkBAIC00NSwz
MSArNDUsMzEgQEAgbmFtZXNwYWNlIFdhc20gewogY2xhc3MgSW5zdGFuY2U7CiBjbGFzcyBTaWdu
YXR1cmU7CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25XYXNtVHJpZ2dlck9TUkVudHJ5
Tm93KFByb2JlOjpDb250ZXh0JikgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbldhc21UcmlnZ2VyVGllclVwTm93KEluc3RhbmNlKiwgdWludDMyX3QgZnVuY3Rpb25J
bmRleCkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbldhc21UaHJv
d0JhZEk2NChKU1dlYkFzc2VtYmx5SW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uV2FzbVVud2luZChDYWxsRnJhbWUqKSBXVEZfSU5URVJOQUw7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UcmlnZ2VyT1NSRW50cnlOb3cs
IHZvaWQsIChQcm9iZTo6Q29udGV4dCYpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uV2FzbVRyaWdnZXJUaWVyVXBOb3csIHZvaWQsIChJbnN0YW5jZSosIHVpbnQzMl90IGZ1
bmN0aW9uSW5kZXgpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRo
cm93QmFkSTY0LCB2b2lkLCAoSlNXZWJBc3NlbWJseUluc3RhbmNlKikpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVW53aW5kLCB2b2lkLCAoQ2FsbEZyYW1lKikpOwog
Ci1kb3VibGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db252ZXJ0VG9GNjQoQ2FsbEZyYW1lKiwg
SlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNv
bnZlcnRUb0kzMihDYWxsRnJhbWUqLCBKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci1mbG9hdCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkNvbnZlcnRUb0YzMihDYWxsRnJhbWUqLCBKU1ZhbHVlKSBXVEZf
SU5URVJOQUw7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0Y2
NCwgZG91YmxlLCAoQ2FsbEZyYW1lKiwgSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Db252ZXJ0VG9JMzIsIGludDMyX3QsIChDYWxsRnJhbWUqLCBKU1ZhbHVl
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0YzMiwgZmxv
YXQsIChDYWxsRnJhbWUqLCBKU1ZhbHVlKSk7CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25JdGVyYXRlUmVzdWx0cyhDYWxsRnJhbWUqLCBJbnN0YW5jZSosIGNvbnN0IFNpZ25hdHVyZSos
IEpTVmFsdWUsIHVpbnQ2NF90KiwgdWludDY0X3QqKSBXVEZfSU5URVJOQUw7Ci1KU0FycmF5KiBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KENhbGxGcmFtZSosIFdh
c206Okluc3RhbmNlKiwgY29uc3QgU2lnbmF0dXJlKiwgSW5kZXhpbmdUeXBlLCBKU1ZhbHVlKikg
V1RGX0lOVEVSTkFMOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRl
UmVzdWx0cywgdm9pZCwgKENhbGxGcmFtZSosIEluc3RhbmNlKiwgY29uc3QgU2lnbmF0dXJlKiwg
SlNWYWx1ZSwgdWludDY0X3QqLCB1aW50NjRfdCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXksIEpTQXJyYXkqLCAoQ2FsbEZyYW1lKiwg
V2FzbTo6SW5zdGFuY2UqLCBjb25zdCBTaWduYXR1cmUqLCBJbmRleGluZ1R5cGUsIEpTVmFsdWUq
KSk7CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25XYXNtV3JpdGVCYXJyaWVyU2xvd1Bh
dGgoSlNDZWxsKiwgVk0qKSBXVEZfSU5URVJOQUw7Ci11aW50MzJfdCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblBvcGNvdW50MzIoaW50MzJfdCkgV1RGX0lOVEVSTkFMOwotdWludDY0X3QgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25Qb3Bjb3VudDY0KGludDY0X3QpIFdURl9JTlRFUk5BTDsKLWludDMy
X3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Hcm93TWVtb3J5KHZvaWQqLCBJbnN0YW5jZSosIGlu
dDMyX3QpIFdURl9JTlRFUk5BTDsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
V2FzbVdyaXRlQmFycmllclNsb3dQYXRoLCB2b2lkLCAoSlNDZWxsKiwgVk0qKSk7CitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBvcGNvdW50MzIsIHVpbnQzMl90LCAoaW50MzJf
dCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Qb3Bjb3VudDY0LCB1aW50
NjRfdCwgKGludDY0X3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR3Jv
d01lbW9yeSwgaW50MzJfdCwgKHZvaWQqLCBJbnN0YW5jZSosIGludDMyX3QpKTsKIAotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRXYXNtVGFibGVFbGVtZW50KEluc3Rh
bmNlKiwgdW5zaWduZWQsIGludDMyX3QpIFdURl9JTlRFUk5BTDsKLWJvb2wgSklUX09QRVJBVElP
TiBvcGVyYXRpb25TZXRXYXNtVGFibGVFbGVtZW50KEluc3RhbmNlKiwgdW5zaWduZWQsIGludDMy
X3QsIEVuY29kZWRKU1ZhbHVlIGVuY1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbldhc21SZWZGdW5jKEluc3RhbmNlKiwgdWludDMyX3Qp
IFdURl9JTlRFUk5BTDsKLWludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25XYXNtVGFibGVH
cm93KEluc3RhbmNlKiwgdW5zaWduZWQsIEVuY29kZWRKU1ZhbHVlIGZpbGwsIGludDMyX3QgZGVs
dGEpIFdURl9JTlRFUk5BTDsKLWJvb2wgSklUX09QRVJBVElPTiBvcGVyYXRpb25XYXNtVGFibGVG
aWxsKEluc3RhbmNlKiwgdW5zaWduZWQsIGludDMyX3Qgb2Zmc2V0LCBFbmNvZGVkSlNWYWx1ZSBm
aWxsLCBpbnQzMl90IGNvdW50KSBXVEZfSU5URVJOQUw7Ci1pbnQzMl90IEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uR2V0V2FzbVRhYmxlU2l6ZShJbnN0YW5jZSosIHVuc2lnbmVkKSBXVEZfSU5URVJO
QUw7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFdhc21UYWJsZUVsZW1l
bnQsIEVuY29kZWRKU1ZhbHVlLCAoSW5zdGFuY2UqLCB1bnNpZ25lZCwgaW50MzJfdCkpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXRXYXNtVGFibGVFbGVtZW50LCBib29s
LCAoSW5zdGFuY2UqLCB1bnNpZ25lZCwgaW50MzJfdCwgRW5jb2RlZEpTVmFsdWUgZW5jVmFsdWUp
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVJlZkZ1bmMsIEVuY29k
ZWRKU1ZhbHVlLCAoSW5zdGFuY2UqLCB1aW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25XYXNtVGFibGVHcm93LCBpbnQzMl90LCAoSW5zdGFuY2UqLCB1bnNpZ25l
ZCwgRW5jb2RlZEpTVmFsdWUgZmlsbCwgaW50MzJfdCBkZWx0YSkpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVGaWxsLCBib29sLCAoSW5zdGFuY2UqLCB1bnNp
Z25lZCwgaW50MzJfdCBvZmZzZXQsIEVuY29kZWRKU1ZhbHVlIGZpbGwsIGludDMyX3QgY291bnQp
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0V2FzbVRhYmxlU2l6ZSwg
aW50MzJfdCwgKEluc3RhbmNlKiwgdW5zaWduZWQpKTsKIAotdm9pZCogSklUX09QRVJBVElPTiBv
cGVyYXRpb25XYXNtVG9KU0V4Y2VwdGlvbihDYWxsRnJhbWUqLCBXYXNtOjpFeGNlcHRpb25UeXBl
LCBJbnN0YW5jZSopIFdURl9JTlRFUk5BTDsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uV2FzbVRvSlNFeGNlcHRpb24sIHZvaWQqLCAoQ2FsbEZyYW1lKiwgV2FzbTo6RXhjZXB0
aW9uVHlwZSwgSW5zdGFuY2UqKSk7CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtQ2FsbGluZ0NvbnZlbnRpb25zLmggYi9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUNhbGxpbmdDb252ZW50aW9ucy5oCmluZGV4IGQ1OTBjNTQz
MWI5MDYwMjA1ZTRhOTVkMzE4MDdkZGIzYjI5ZDY0NDUuLjZhNGMyZDFjMmM1MDEzZjM1OWE3MDk2
ZjZkNDZkNDAzZTVlMmQzNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtQ2Fs
bGluZ0NvbnZlbnRpb25zLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1DYWxsaW5nQ29u
dmVudGlvbnMuaApAQCAtNzUsNyArNzUsMTkgQEAKICNlbmRpZgogCiAjaWYgRU5BQkxFKEpJVCkg
JiYgQ0FMTElOR19DT05WRU5USU9OX0lTX1NURENBTEwKLSNkZWZpbmUgSklUX09QRVJBVElPTiBD
REVDTAorI2RlZmluZSBKSVRfT1BFUkFUSU9OX0FUVFJJQlVURSBDREVDTAogI2Vsc2UKLSNkZWZp
bmUgSklUX09QRVJBVElPTgorI2RlZmluZSBKSVRfT1BFUkFUSU9OX0FUVFJJQlVURQogI2VuZGlm
CisKKworI2RlZmluZSBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04oZnVuY3Rpb25OYW1lLCByZXR1
cm5UeXBlLCBwYXJhbWV0ZXJzKSBcCisgICAgcmV0dXJuVHlwZSBKSVRfT1BFUkFUSU9OX0FUVFJJ
QlVURSBmdW5jdGlvbk5hbWUgcGFyYW1ldGVycworI2RlZmluZSBKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKGZ1bmN0aW9uTmFtZSwgcmV0dXJuVHlwZSwgcGFyYW1ldGVycykgXAorICAgIHJldHVy
blR5cGUgSklUX09QRVJBVElPTl9BVFRSSUJVVEUgZnVuY3Rpb25OYW1lIHBhcmFtZXRlcnMgUkVG
RVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUwKKyNkZWZpbmUgSlNDX0FOTk9UQVRFX0pJVF9P
UEVSQVRJT04oZnVuY3Rpb25JZCwgZnVuY3Rpb24pCisKKyNkZWZpbmUgSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihmdW5jdGlvbk5hbWUpIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04oZnVuY3Rp
b25OYW1lLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCAoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKSkKKyNkZWZpbmUgSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihmdW5jdGlvbk5hbWUpIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04oZnVu
Y3Rpb25OYW1lLCBib29sLCAoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpKQorI2RlZmluZSBKU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIoZnVuY3Rpb25OYW1lLCBwYXJhbWV0ZXJzKSBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04oZnVu
Y3Rpb25OYW1lLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBwYXJhbWV0ZXJzKQorI2RlZmluZSBKU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoZnVuY3Rpb25OYW1lLCBwYXJhbWV0ZXJzKSBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04oZnVuY3Rpb25OYW1lLCBib29sLCBwYXJhbWV0ZXJzKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCmluZGV4IGMwMjFh
NWNjYzA4YTY5ZjVjZjljYjFjMDRjMzg4NGNlYWFiYTNiMTcuLjRmNGU3Yjg1YzAxYzE0YWNkMmQ0
Njc3MDJkOTNhMDY3ZWVjNGY4ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTY1LDYgKzY1LDkgQEAgdXNpbmcgbmFtZXNwYWNl
IEpTQzsKIAogSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0RPTVdpbmRvd0luc3RhbmNlRnVu
Y3Rpb25TaG93TW9kYWxEaWFsb2cpOwogSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0RPTVdp
bmRvd0luc3RhbmNlRnVuY3Rpb25PcGVuRGF0YWJhc2UpOworI2lmIEVOQUJMRShVU0VSX01FU1NB
R0VfSEFORExFUlMpCitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc0RPTVdpbmRv
d1dlYktpdCk7CisjZW5kaWYKIAogdm9pZCBKU0RPTVdpbmRvdzo6dmlzaXRBZGRpdGlvbmFsQ2hp
bGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CkBAIC04MCw3ICs4Myw3IEBAIHZvaWQgSlNE
T01XaW5kb3c6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQog
fQogCiAjaWYgRU5BQkxFKFVTRVJfTUVTU0FHRV9IQU5ETEVSUykKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzRE9NV2luZG93V2ViS2l0KEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc0RPTVdpbmRvd1dlYktpdCwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBKU0RPTVdpbmRvdyogY2FzdGVkVGhpcyA9IHRvSlNET01XaW5kb3codm0sIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggZTc0MmNlYWYyZjhjYzM5ZTY4YjE4MjMzNTdiNWY1
YzNmODVlMjViOS4uMTg2ZDUwZmI0MzdhNWU3MDJjNWYyN2E2YTk2YTJmMTk3NGI4Y2M2OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KQEAgLTMyNzAsMTAgKzMyNzAsMTAgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgICAg
ICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRp
b25hbFN0cmluZygkYXR0cmlidXRlKTsKICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAg
ICAgICAgICAgIG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRpbnRlcmZhY2Us
ICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAke2dldHRlcn0oSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTtcbiIp
OworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoJHtnZXR0ZXJ9KTtcbiIpOwogICAgICAgICAgICAgaWYgKCFJc1JlYWRvbmx5KCRhdHRy
aWJ1dGUpKSB7CiAgICAgICAgICAgICAgICAgbXkgJHNldHRlciA9IEdldEF0dHJpYnV0ZVNldHRl
ck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAgICAgICAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgImJvb2wgSklUX09QRVJBVElPTiAke3NldHRlcn0oSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQ19ERUNM
QVJFX0NVU1RPTV9TRVRURVIoJHtzZXR0ZXJ9KTtcbiIpOwogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNlbmRpZlxuIikgaWYgJGNvbmRpdGlvbmFsU3Ry
aW5nOwogICAgICAgICB9CkBAIC00MjY2LDEzICs0MjY2LDEzIEBAIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiAgICAgICAgICAgICBpZiAoJG9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57RE9NSklUfSkgewogICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkRPTUpJVElETFR5
cGUuaCJ9ID0gMTsKICAgICAgICAgICAgICAgICBteSAkbmFtZU9mRnVuY3Rpb25XaXRob3V0VHlw
ZUNoZWNrID0gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGZ1bmN0aW9uTmFtZSkgLiAiV2l0
aG91dFR5cGVDaGVjayI7Ci0gICAgICAgICAgICAgICAgbXkgJGZ1bmN0aW9uU2lnbmF0dXJlID0g
IkpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAke25hbWVPZkZ1bmN0aW9uV2l0aG91
dFR5cGVDaGVja30oSlNDOjpKU0dsb2JhbE9iamVjdCosICRjbGFzc05hbWUqIjsKKyAgICAgICAg
ICAgICAgICBteSAkZnVuY3Rpb25TaWduYXR1cmUgPSAiSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
Tigke25hbWVPZkZ1bmN0aW9uV2l0aG91dFR5cGVDaGVja30sIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgJGNsYXNzTmFtZSoiOwogICAgICAgICAgICAgICAgIGZv
cmVhY2ggbXkgJGFyZ3VtZW50IChAeyRvcGVyYXRpb24tPmFyZ3VtZW50c30pIHsKICAgICAgICAg
ICAgICAgICAgICAgbXkgJHR5cGUgPSAkYXJndW1lbnQtPnR5cGU7CiAgICAgICAgICAgICAgICAg
ICAgIG15ICRhcmd1bWVudFR5cGUgPSBHZXRBcmd1bWVudFR5cGVGb3JGdW5jdGlvbldpdGhvdXRU
eXBlQ2hlY2soJGludGVyZmFjZSwgJHR5cGUpOwogICAgICAgICAgICAgICAgICAgICAkZnVuY3Rp
b25TaWduYXR1cmUgLj0gIiwgJHthcmd1bWVudFR5cGV9IjsKICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICRmdW5jdGlvblNpZ25hdHVyZSAuICIp
O1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICRmdW5jdGlvblNpZ25h
dHVyZSAuICIpKTtcbiIpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIjZW5kaWZcbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICAgICAgfQpAQCAt
NDI4NiwxMCArNDI4NiwxMCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgICAg
IGlmIChOZWVkc0NvbnN0cnVjdG9yUHJvcGVydHkoJGludGVyZmFjZSkpIHsKICAgICAgICAgICAg
IG15ICRjb25zdHJ1Y3RvckdldHRlciA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICJDb25zdHJ1
Y3RvciI7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiAke2NvbnN0cnVjdG9yR2V0dGVyfShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpO1xuIik7CisgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoJHtjb25z
dHJ1Y3RvckdldHRlcn0pO1xuIik7CiAKICAgICAgICAgICAgIG15ICRjb25zdHJ1Y3RvclNldHRl
ciA9ICJzZXRKUyIgLiAkaW50ZXJmYWNlTmFtZSAuICJDb25zdHJ1Y3RvciI7Ci0gICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgSklUX09QRVJBVElPTiAke2NvbnN0cnVjdG9yU2V0
dGVyfShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNDX0RF
Q0xBUkVfQ1VTVE9NX1NFVFRFUigke2NvbnN0cnVjdG9yU2V0dGVyfSk7XG4iKTsKICAgICAgICAg
fQogCiAgICAgICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskaW50ZXJmYWNlLT5hdHRyaWJ1
dGVzfSkgewpAQCAtNDI5OSw3ICs0Mjk5LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICAgICAgICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5l
cmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRhdHRyaWJ1dGUpOwogICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0
cmluZzsKICAgICAgICAgICAgIG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRp
bnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwotICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gJHtnZXR0ZXJ9KEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUigke2dldHRlcn0pO1xuIik7CiAgICAgICAgICAgICBpZiAoIUlzUmVhZG9ubHko
JGF0dHJpYnV0ZSkpIHsKICAgICAgICAgICAgICAgICBteSAkcmVhZFdyaXRlQ29uZGl0aW9uYWwg
PSAkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDb25kaXRpb25hbGx5UmVhZFdyaXRl
fTsKICAgICAgICAgICAgICAgICBpZiAoJHJlYWRXcml0ZUNvbmRpdGlvbmFsKSB7CkBAIC00MzA3
LDcgKzQzMDcsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNpZiAke3JlYWRXcml0ZUNvbmRpdGlvbmFsU3RyaW5n
fVxuIik7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIG15ICRzZXR0ZXIgPSBH
ZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUp
OwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCBKSVRfT1BFUkFUSU9O
ICR7c2V0dGVyfShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIkpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoJHtzZXR0ZXJ9KTtcbiIpOwogICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2VuZGlmXG4iKSBpZiAkcmVhZFdyaXRlQ29uZGl0
aW9uYWw7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNl
bmRpZlxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwpAQCAtNDg3MCw3ICs0ODcwLDcgQEAgc3Vi
IEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICBpZiAoTmVlZHNDb25zdHJ1Y3RvclByb3BlcnR5
KCRpbnRlcmZhY2UpKSB7CiAgICAgICAgIG15ICRjb25zdHJ1Y3RvckdldHRlciA9ICJqcyIgLiAk
aW50ZXJmYWNlTmFtZSAuICJDb25zdHJ1Y3RvciI7CiAKLSAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICR7Y29uc3RydWN0b3JHZXR0ZXJ9KEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSlcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUigke2NvbnN0cnVjdG9yR2V0dGVyfSwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTtcbiIpOwpAQCAtNDg5MCw3ICs0ODkwLDcg
QEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgICAgICBteSAkY29uc3RydWN0b3JT
ZXR0ZXIgPSAic2V0SlMiIC4gJGludGVyZmFjZU5hbWUgLiAiQ29uc3RydWN0b3IiOwogCi0gICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCBKSVRfT1BFUkFUSU9OICR7Y29uc3RydWN0b3JT
ZXR0ZXJ9KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSlcbiIpOworICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIkpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUigke2NvbnN0cnVjdG9y
U2V0dGVyfSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpXG4iKTsKICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTtcbiIpOwogICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTtcbiIpOwpAQCAtNTMzOCw3ICs1MzM4LDcgQEAgc3ViIEdlbmVyYXRlQXR0
cmlidXRlR2V0dGVyVHJhbXBvbGluZURlZmluaXRpb24KICAgICAgICAgcHVzaChAdGVtcGxhdGVQ
YXJhbWV0ZXJzLCAiQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydCIpOwogICAgIH0KICAg
ICAKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
ICR7YXR0cmlidXRlR2V0dGVyTmFtZX0oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKVxuIik7CisgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKCR7YXR0cmlidXRlR2V0
dGVyTmFtZX0sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAie1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8JHtjbGFzc05hbWV9Pjo6JHtjYWxsQXR0cmlidXRlR2V0dGVyTmFtZX08IiAuIGpvaW4o
IiwgIiwgQHRlbXBsYXRlUGFyYW1ldGVycykgLiAiPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBcIiIgLiAkYXR0cmlidXRlLT5uYW1lIC4gICJcIik7XG4iKTsKICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICJ9XG5cbiIpOwpAQCAtNTUyNyw3ICs1NTI3LDcgQEAgc3ViIEdlbmVyYXRl
QXR0cmlidXRlU2V0dGVyVHJhbXBvbGluZURlZmluaXRpb24KICAgICBwdXNoKEB0ZW1wbGF0ZVBh
cmFtZXRlcnMsICRhdHRyaWJ1dGVTZXR0ZXJCb2R5TmFtZSk7CiAgICAgcHVzaChAdGVtcGxhdGVQ
YXJhbWV0ZXJzLCAiQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OlJldHVybkVhcmx5IikgaWYgJGF0
dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57TGVnYWN5TGVuaWVudFRoaXN9OwogICAgIAot
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgImJvb2wgSklUX09QRVJBVElPTiAke2F0dHJpYnV0ZVNl
dHRlck5hbWV9KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSlcbiIpOworICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIkpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUigke2F0dHJpYnV0ZVNl
dHRlck5hbWV9LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSlcbiIpOwogICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICByZXR1cm4gSURMQXR0cmlidXRlPCR7Y2xhc3NOYW1lfT46OiR7Y2FsbEF0dHJpYnV0ZVNldHRl
ck5hbWV9PCIgLiBqb2luKCIsICIsIEB0ZW1wbGF0ZVBhcmFtZXRlcnMpIC4gIj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCBcIiIgLiAkYXR0cmlidXRlLT5u
YW1lIC4gIlwiKTtcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxuIik7CkBAIC01
NzM0LDcgKzU3MzQsNyBAQCBzdWIgR2VuZXJhdGVPcGVyYXRpb25EZWZpbml0aW9uCiAKICAgICAg
ICAgQWRkVG9JbXBsSW5jbHVkZXMoIjxKYXZhU2NyaXB0Q29yZS9GcmFtZVRyYWNlcnMuaD4iLCAk
Y29uZGl0aW9uYWwpOwogICAgICAgICBteSAkbmFtZU9mRnVuY3Rpb25XaXRob3V0VHlwZUNoZWNr
ID0gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGZ1bmN0aW9uTmFtZSkgLiAiV2l0aG91dFR5
cGVDaGVjayI7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIkpTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiAke25hbWVPZkZ1bmN0aW9uV2l0aG91dFR5cGVDaGVja30oSlNDOjpK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgJGNsYXNzTmFtZSogY2FzdGVkVGhp
cyIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04oJHtuYW1lT2ZGdW5jdGlvbldpdGhvdXRUeXBlQ2hlY2t9LCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCAoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgJGNsYXNzTmFtZSog
Y2FzdGVkVGhpcyIpOwogICAgICAgICBmb3JlYWNoIG15ICRhcmd1bWVudCAoQHskb3BlcmF0aW9u
LT5hcmd1bWVudHN9KSB7CiAgICAgICAgICAgICBteSAkdHlwZSA9ICRhcmd1bWVudC0+dHlwZTsK
ICAgICAgICAgICAgIG15ICRhcmd1bWVudFR5cGUgPSBHZXRBcmd1bWVudFR5cGVGb3JGdW5jdGlv
bldpdGhvdXRUeXBlQ2hlY2soJGludGVyZmFjZSwgJHR5cGUpOwpAQCAtNTc0Miw3ICs1NzQyLDcg
QEAgc3ViIEdlbmVyYXRlT3BlcmF0aW9uRGVmaW5pdGlvbgogICAgICAgICAgICAgbXkgJGVuY29k
ZWROYW1lID0gImVuY29kZWQiIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJG5hbWUpOwog
ICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiLCAke2FyZ3VtZW50VHlwZX0gJHtlbmNv
ZGVkTmFtZX0iKTsKICAgICAgICAgfQotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIpXG4i
KTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiKSlcbiIpOwogICAgICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICJ7XG4iKTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFVO
VVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTtcbiIpOwogICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTtc
biIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU0RPTVdpbmRvdy5jcHAKaW5kZXggYmVlMzY4NTgxMjljYmQyYzA0MDY3MGZlMGQ2ODYwZjdi
YzM2YzYyMi4uOTBhMmQ5NGRiMGFlYmNiZWZjMjA0Mjk1ZjJlNjBmZjUyYjhjMDU0YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRE9NV2luZG93
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNET01X
aW5kb3cuY3BwCkBAIC01MSwyMCArNTEsMjAgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8g
QXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNET01XaW5k
b3dDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTRE9NV2luZG93Q29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzRE9N
V2luZG93RXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU0RPTVdpbmRvd0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc0RPTVdpbmRv
d1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09Q
RVJBVElPTiBzZXRKU0RPTVdpbmRvd1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzRE9NV2luZG93
VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNET01XaW5kb3dUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlF
eHBvc2VkQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzRE9NV2luZG93VGVzdE5vZGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTRE9NV2luZG93VGVzdE5vZGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNET01XaW5kb3dUZXN0T2JqZWN0Q29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU0RPTVdpbmRvd1Rlc3RPYmplY3RDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNET01XaW5k
b3dUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09Q
RVJBVElPTiBzZXRKU0RPTVdpbmRvd1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzRE9NV2luZG93Q29uc3RydWN0
b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU0RPTVdpbmRvd0NvbnN0cnVjdG9y
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNET01XaW5kb3dFeHBvc2VkVG9Xb3JrZXJB
bmRXaW5kb3dDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTRE9N
V2luZG93RXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc0RPTVdpbmRvd1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3Ry
dWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU0RPTVdpbmRvd1Rlc3RDb25k
aXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3Rv
cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTRE9NV2luZG93VGVzdERlZmF1bHRU
b0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNET01XaW5kb3dUZXN0Tm9kZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9TRVRURVIoc2V0SlNET01XaW5kb3dUZXN0Tm9kZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIoanNET01XaW5kb3dUZXN0T2JqZWN0Q29uc3RydWN0b3IpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU0RPTVdpbmRvd1Rlc3RPYmplY3RDb25zdHJ1Y3Rvcik7
CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzRE9NV2luZG93VGVzdFByb21pc2VSZWplY3Rp
b25FdmVudENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNET01X
aW5kb3dUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IpOwogCiB1c2luZyBKU0RP
TVdpbmRvd0NvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNE
T01XaW5kb3c+OwogCkBAIC0xNjYsNyArMTY2LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNET01X
aW5kb3cqIElETEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OmNhc3QoSlNHbG9iYWxPYmplY3QmIGwK
ICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU0RPTVdpbmRvdyo+KEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNET01XaW5kb3dDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNET01XaW5kb3dDb25zdHJ1Y3Rv
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTE3Niw3ICsxNzYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzRE9NV2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYQogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNET01XaW5kb3c6OmdldENvbnN0cnVjdG9yKEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsK
IH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTRE9NV2luZG93Q29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNl
dEpTRE9NV2luZG93Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTUsNyAr
MTk1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzRE9NV2luZG93RXhwb3NlZFRvV29ya2Vy
QW5kV2luZG93Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG8KICAgICByZXR1cm4gSlNFeHBvc2VkVG9X
b3JrZXJBbmRXaW5kb3c6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCAmdGhpc09iamVjdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNET01XaW5kb3dFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNET01XaW5kb3dFeHBvc2VkVG9X
b3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OmdldDxqc0RPTVdpbmRvd0V4cG9zZWRU
b1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Iik7CiB9CkBAIC0yMDcsNyArMjA3
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTRE9NV2luZG93RXhwb3NlZFRvV29ya2VyQW5k
V2luZG93Q29uc3RydWN0b3JTZXR0ZXIoSlNHbG8KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXRE
aXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPigiRXhwb3NlZFRvV29ya2VyQW5kV2luZG93IiksIHN0cmxlbigiRXhwb3NlZFRv
V29ya2VyQW5kV2luZG93IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRK
U0RPTVdpbmRvd0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU0RP
TVdpbmRvd0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9N
V2luZG93Pjo6c2V0PHNldEpTRE9NV2luZG93RXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3Ry
dWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgIkV4cG9zZWRUb1dvcmtlckFuZFdpbmRvdyIpOwogfQpAQCAtMjE4LDcgKzIxOCw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc0RPTVdpbmRvd1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
Q29uc3RydWN0b3JHZXR0ZXIoSlNHCiAgICAgcmV0dXJuIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCAm
dGhpc09iamVjdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNET01XaW5k
b3dUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc0RPTVdpbmRvd1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNET01XaW5kb3c+OjpnZXQ8anNET01XaW5kb3dUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUiKTsKIH0KQEAgLTIzMCw3ICsyMzAs
NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNET01XaW5kb3dUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZUNvbnN0cnVjdG9yU2V0dGVyKEpTRwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERp
cmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBMQ2hhcio+KCJUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZSIpLCBzdHJsZW4oIlRlc3RDb25k
aXRpb25hbGx5UmVhZFdyaXRlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBz
ZXRKU0RPTVdpbmRvd1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNl
dEpTRE9NV2luZG93VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU0RPTVdpbmRvdz46OnNldDxzZXRKU0RPTVdpbmRvd1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgIlRlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlIik7CiB9CkBAIC0yNDEsNyAr
MjQxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzRE9NV2luZG93VGVzdERlZmF1bHRUb0pT
T05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yR2UKICAgICByZXR1cm4gSlNUZXN0RGVmYXVs
dFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSwgJnRoaXNPYmplY3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzRE9NV2luZG93VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU0RPTVdp
bmRvdz46OmdldDxqc0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRD
b25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RE
ZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQiKTsKIH0KQEAgLTI1Myw3ICsyNTMsNyBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNET01XaW5kb3dUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVk
QnlFeHBvc2VkQ29uc3RydWN0b3JTZQogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2
bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hh
cio+KCJUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkIiksIHN0cmxlbigiVGVzdERl
ZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZCIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNET01XaW5kb3dUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2Vk
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklO
RV9DVVNUT01fU0VUVEVSKHNldEpTRE9NV2luZG93VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5
RXhwb3NlZENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2luZG93Pjo6c2V0PHNldEpTRE9NV2lu
ZG93VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0RGVmYXVs
dFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkIik7CiB9CkBAIC0yNjQsNyArMjY0LDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzRE9NV2luZG93VGVzdE5vZGVDb25zdHJ1Y3RvckdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWMKICAgICByZXR1cm4gSlNUZXN0Tm9kZTo6Z2V0Q29uc3RydWN0b3Io
SlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksICZ0aGlzT2JqZWN0KTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc0RPTVdpbmRvd1Rlc3ROb2RlQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzRE9NV2luZG93
VGVzdE5vZGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OmdldDxqc0RPTVdpbmRvd1Rlc3ROb2RlQ29uc3Ry
dWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0Tm9kZSIp
OwogfQpAQCAtMjc2LDcgKzI3Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU0RPTVdpbmRv
d1Rlc3ROb2RlQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljCiAgICAgcmV0
dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCBy
ZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROb2RlIiksIHN0cmxlbigiVGVzdE5v
ZGUiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTRE9NV2luZG93VGVz
dE5vZGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNET01XaW5kb3dUZXN0Tm9kZUNvbnN0cnVjdG9yLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTRE9NV2luZG93Pjo6c2V0PHNldEpTRE9NV2luZG93VGVzdE5vZGVDb25zdHJ1Y3Rv
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
VGVzdE5vZGUiKTsKIH0KQEAgLTI4Nyw3ICsyODcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNET01XaW5kb3dUZXN0T2JqZWN0Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eAogICAgIHJldHVybiBKU1Rlc3RPYmo6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpLCAmdGhpc09iamVjdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNET01XaW5kb3dUZXN0T2JqZWN0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzRE9NV2luZG93VGVzdE9iamVjdENvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTRE9NV2luZG93Pjo6Z2V0PGpzRE9NV2luZG93VGVzdE9iamVjdENvbnN0cnVjdG9yR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE9iamVjdCIpOwogfQpAQCAt
Mjk5LDcgKzI5OSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU0RPTVdpbmRvd1Rlc3RPYmpl
Y3RDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4CiAgICAgcmV0dXJuIHRoaXNP
YmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RPYmplY3QiKSwgc3RybGVuKCJUZXN0T2JqZWN0Iikp
LCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU0RPTVdpbmRvd1Rlc3RPYmpl
Y3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVG
SU5FX0NVU1RPTV9TRVRURVIoc2V0SlNET01XaW5kb3dUZXN0T2JqZWN0Q29uc3RydWN0b3IsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNET01XaW5kb3c+OjpzZXQ8c2V0SlNET01XaW5kb3dUZXN0T2JqZWN0Q29uc3RydWN0
b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwg
IlRlc3RPYmplY3QiKTsKIH0KQEAgLTMxMCw3ICszMTAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNET01XaW5kb3dUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3JHZXR0ZXIo
SlNHbAogICAgIHJldHVybiBKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQ6OmdldENvbnN0cnVj
dG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCAmdGhpc09iamVjdCk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNET01XaW5kb3dUZXN0UHJvbWlzZVJlamVj
dGlvbkV2ZW50Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGpzRE9NV2luZG93VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9y
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9N
V2luZG93Pjo6Z2V0PGpzRE9NV2luZG93VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVj
dG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFByb21pc2VS
ZWplY3Rpb25FdmVudCIpOwogfQpAQCAtMzIyLDcgKzMyMiw3IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBzZXRKU0RPTVdpbmRvd1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvclNldHRl
cihKU0dsCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RQcm9taXNl
UmVqZWN0aW9uRXZlbnQiKSwgc3RybGVuKCJUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50IikpLCB2
YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU0RPTVdpbmRvd1Rlc3RQcm9taXNl
UmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNET01XaW5kb3dUZXN0UHJvbWlzZVJl
amVjdGlvbkV2ZW50Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNET01XaW5kb3c+OjpzZXQ8c2V0SlNE
T01XaW5kb3dUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RQcm9taXNlUmVq
ZWN0aW9uRXZlbnQiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0RlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlLmNwcAppbmRleCBmMjI0MDRmOTNkNjYzOTRkNmFiYjBjODVjZmJmZDY3N2E1ODMzMTUxLi45
YzBkODQ4NmU3NDU4NTc0NGViMDVmN2YxNjFkODNmOTczYjU1ZmUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNEZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC00NCw4ICs0NCw4IEBAIHVzaW5n
IG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzRGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNl
dEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik7CiAKIHVzaW5nIEpTRGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RD
b25zdHJ1Y3RhYmxlPEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU+OwogCkBAIC0xMDYsNyAr
MTA2LDcgQEAgSlNWYWx1ZSBKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1
Y3RvcihWTSYgdm0sIGNvbnN0IEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gZ2V0RE9NQ29uc3Ry
dWN0b3I8SlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yPih2bSwgKmpzQ2Fz
dDxjb25zdCBKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNEZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
IHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTE2LDcgKzExNiw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJv
b2wgSklUX09QRVJBVElPTiBzZXRKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01f
U0VUVEVSKHNldEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3cuY3Bw
CmluZGV4IDU4OWY2YzAwODcwZjJjNWNhMTVmOTMzMDBhODFiZWRmMGIxODljMjIuLjkyM2ZjNzI2
NzY3YWMwOWM2YzQ3NDA2N2Y1MjA4OTFjZThkZDhkZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvdy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRXhwb3Nl
ZFRvV29ya2VyQW5kV2luZG93LmNwcApAQCAtOTEsOCArOTEsOCBAQCBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzRXhwb3NlZFRvV29ya2VyQW5kV2luZG93UHJvdG90eXBlRnVuY3Rpb25Eb1Nv
bWV0aGluZwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzRXhwb3NlZFRvV29ya2VyQW5kV2luZG93
Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU0V4cG9zZWRUb1dv
cmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKTsKIAogY2xhc3MgSlNFeHBvc2VkVG9Xb3JrZXJBbmRX
aW5kb3dQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1
YmxpYzoKQEAgLTIxOSw3ICsyMTksNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU0V4cG9zZWRUb1dv
cmtlckFuZFdpbmRvdyogSURMT3BlcmF0aW9uPEpTRXhwb3NlZFRvV29ya2VyQW5kVwogICAgIHJl
dHVybiBqc0R5bmFtaWNDYXN0PEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Kj4oSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNF
eHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkp
CiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIyOSw3ICsyMjks
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzRXhwb3NlZFRvV29ya2VyQW5kV2lu
ZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
SlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3c6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZS5jcHAKaW5kZXgg
OThiNTM2NGZkMmJmYmU3MzQ1OWJmMmNiYmI1OTcwMmQ3NWQ5ZTAzOC4uZDhlZjljZGFjZjE1YzM3
ZmIyYjRjN2U4ODg3NThjYWVjMDgwODBmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1BhaW50V29ya2xldEds
b2JhbFNjb3BlLmNwcApAQCAtNDQsOCArNDQsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAv
LyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1BhaW50
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc1BhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3IpOwogCiB1c2luZyBKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3Ig
PSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1BhaW50V29ya2xldEdsb2JhbFNj
b3BlPjsKIApAQCAtMTA2LDcgKzEwNiw3IEBAIEpTVmFsdWUgSlNQYWludFdvcmtsZXRHbG9iYWxT
Y29wZTo6Z2V0Q29uc3RydWN0b3IoVk0mIHZtLCBjb25zdCBKU0dsb2JhbE9iamVjdCoKICAgICBy
ZXR1cm4gZ2V0RE9NQ29uc3RydWN0b3I8SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9yPih2bSwgKmpzQ2FzdDxjb25zdCBKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzUGFpbnRXb3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTE2
LDcgKzExNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNQYWludFdvcmtsZXRH
bG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1Y3RvcihKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9
CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNU
T01fU0VUVEVSKHNldEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3Bw
CmluZGV4IGJmNDIyMTZiNDFhZmI4ZGU4ZmUxNGNlYWI4ZjNkYWE4ZmQ5ODdkMjMuLmY0ZmM1NzI4
YWQxMTU2ZmFjNDU5YmNlN2RhMTg1MjJmYWIyMzFmNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtNDQsOCArNDQsOCBAQCB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1NlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZUNvbnN0cnVjdG9yKTsKIAogdXNpbmcgSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlPjsKIApAQCAtMTA2LDcgKzEwNiw3IEBAIEpTVmFsdWUgSlNTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGU6OmdldENvbnN0cnVjdG9yKFZNJiB2bSwgY29uc3QgSlNHbG9i
YWxPYmplY3QqCiAgICAgcmV0dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTU2VydmljZVdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3I+KHZtLCAqanNDYXN0PGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0
Kj4oZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNT
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTExNiw3ICsxMTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplYwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6Omdl
dENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+
Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewog
ICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnMuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25z
LmNwcAppbmRleCA2NTJmMWY1YTdkOTllNTI2MGFkN2E5NGExNmUwNWQyZTRjYWMzNjYyLi5mNTE5
MjNjMDNkZDE1OWE4Njg5Y2JlZDEyOGNkMmQ4YjAxZGQyNmU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0
aW9ucy5jcHAKQEAgLTU3LDIwICs1NywyMCBAQCBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdENFUmVhY3Rpb25zUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ0VSZWFjdGlvbgogCiAv
LyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RD
RVJlYWN0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
Q0VSZWFjdGlvbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJl
YWN0aW9ucyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVh
Y3Rpb25zKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RD
RVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRo
Q0VSZWFjdGlvbnNOb3ROZWVkZWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RD
RVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZChKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0
cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVl
ZGVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDRVJl
YWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVkKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZU5vdE5lZWRlZChK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdENFUmVhY3Rpb25zQ29uc3Ry
dWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDRVJlYWN0aW9uc0Nv
bnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q0VSZWFjdGlvbnNB
dHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyk7CitKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0
aW9ucyk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENFUmVhY3Rpb25zUmVm
bGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VS
ZWFjdGlvbnNOb3ROZWVkZWQpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RD
RVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZCk7CitKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJl
YWN0aW9uc05vdE5lZWRlZCk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENF
UmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZCk7CitKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1
dGVOb3ROZWVkZWQpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVkKTsKIAogY2xhc3MgSlNUZXN0Q0VSZWFj
dGlvbnNQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1
YmxpYzoKQEAgLTE5Miw3ICsxOTIsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RDRVJlYWN0
aW9ucyogSURMT3BlcmF0aW9uPEpTVGVzdENFUmVhY3Rpb25zPjo6Y2FzdChKU0dsbwogICAgIHJl
dHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdENFUmVhY3Rpb25zKj4oSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q0VSZWFjdGlvbnNDb25z
dHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTIwMiw3ICsyMDIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0Q0VSZWFjdGlvbnM6OmdldENvbnN0
cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFs
T2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENFUmVhY3Rpb25z
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklO
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3IsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0yMjMsNyArMjIzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zR2V0dGVyKEpTR2xvYmFsT2IK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHJpYnV0ZVdpdGhDRVJlYWN0
aW9ucygpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENFUmVh
Y3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0
aW9ucywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RDRVJlYWN0aW9ucz46OmdldDxqc1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJl
YWN0aW9uc0dldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyIpOwogfQpA
QCAtMjQyLDcgKzI0Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9u
c0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc1NldHRlcihKU0dsb2JhbE9iCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0
ZVdpdGhDRVJlYWN0aW9ucyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VS
ZWFjdGlvbnMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnM+OjpzZXQ8c2V0SlNUZXN0Q0VSZWFj
dGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyIpOwog
fQpAQCAtMjU1LDcgKzI1NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0
aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNHZXR0ZXIoSlNHCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9u
KFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGF0dHJpYnV0ZXdpdGhjZXJlYWN0aW9uc0F0dHIp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rpb25z
UmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0
aENFUmVhY3Rpb25zLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zPjo6Z2V0PGpzVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0
dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc0dldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlZmxlY3RBdHRyaWJ1dGVX
aXRoQ0VSZWFjdGlvbnMiKTsKIH0KQEAgLTI3NCw3ICsyNzQsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zU2V0
dGVyKEpTRwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0Q0VSZWFjdGlvbnM+OjpzZXQ8c2V0SlNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRl
V2l0aENFUmVhY3Rpb25zU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJyZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zIik7CiB9CkBAIC0y
ODcsNyArMjg3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zU3Ry
aW5naWZpZXJBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RDRVJlYWN0aW9uc1N0cmlu
Z2lmaWVyPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCks
IHRocm93U2NvcGUsIGltcGwuc3RyaW5naWZpZXJBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmli
dXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RD
RVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zPjo6Z2V0PGpzVGVzdENF
UmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdHJpbmdpZmll
ckF0dHJpYnV0ZSIpOwogfQpAQCAtMzEwLDcgKzMxMCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RD
RVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0
cmluZ2lmaWVyQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zPjo6c2V0PHNldEpT
VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN0cmluZ2lmaWVyQXR0cmlidXRlIik7
CiB9CkBAIC0zMjMsNyArMzIzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENFUmVh
Y3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkR2V0dGVyKEoKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5l
ZWRlZCgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENFUmVh
Y3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdp
dGhDRVJlYWN0aW9uc05vdE5lZWRlZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9ucz46OmdldDxqc1Rlc3RDRVJlYWN0aW9u
c0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZEdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImF0dHJp
YnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZCIpOwogfQpAQCAtMzQyLDcgKzM0Miw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0
aW9uc05vdE5lZWRlZFNldHRlcihKCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5l
ZWRlZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3RO
ZWVkZWQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnM+OjpzZXQ8c2V0SlNUZXN0Q0VSZWFjdGlv
bnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWRTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9u
c05vdE5lZWRlZCIpOwogfQpAQCAtMzU1LDcgKzM1NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVk
ZWRHCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmlu
Zz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1dGVXaXRob3V0
U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGF0dHJpYnV0ZXdpdGhj
ZXJlYWN0aW9uc25vdG5lZWRlZEF0dHIpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05v
dE5lZWRlZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNU
ZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENF
UmVhY3Rpb25zPjo6Z2V0PGpzVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJl
YWN0aW9uc05vdE5lZWRlZEdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VS
ZWFjdGlvbnNOb3ROZWVkZWQiKTsKIH0KQEAgLTM3NCw3ICszNzQsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25z
Tm90TmVlZGVkUwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVk
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNO
b3ROZWVkZWQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnM+OjpzZXQ8c2V0SlNUZXN0Q0VSZWFj
dGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJyZWZsZWN0QXR0cmli
dXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkIik7CiB9CkBAIC0zODcsNyArMzg3LDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVO
b3ROZWVkZWRHZXR0ZXIoSlNHbG8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMSW50ZXJmYWNlPFRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyPj4obGV4aWNhbEds
b2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwu
c3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVl
ZGVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RD
RVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVkLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zPjo6Z2V0
PGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWRHZXR0ZXIsIENh
c3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJzdHJpbmdpZmllckF0dHJpYnV0ZU5vdE5lZWRlZCIpOwogfQpAQCAtNDEwLDcgKzQx
MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVy
QXR0cmlidXRlTm90TmVlZGVkU2V0dGVyKEpTR2xvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRl
Tm90TmVlZGVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlTm90
TmVlZGVkLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zPjo6c2V0PHNldEpTVGVzdENFUmVhY3Rp
b25zU3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWRTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVl
ZGVkIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5jcHAK
aW5kZXggMzA1MWY2MWVkZGRiNWEyNDZkZDFhOWJlNjNhMzk3NjBiZjcwNTFjOS4uYzAzNmFjZTI3
NmE5MzU3YmUzZGY3Y2RmZDU0MjE5ODdjNjhkMTMzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
RVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNwcApAQCAtNTIsMTIgKzUyLDEyIEBAIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclByb3RvdHlwZUZ1bmN0
aW9uVG9TdHJpbmcpCiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q0VS
ZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWVXaXRob3V0
UmVhY3Rpb25zKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q0VSZWFjdGlvbnNT
dHJpbmdpZmllclZhbHVlV2l0aG91dFJlYWN0aW9ucyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3Rvcik7CitKU0Nf
REVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25z
dHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdENFUmVhY3Rpb25zU3Ry
aW5naWZpZXJWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENFUmVh
Y3Rpb25zU3RyaW5naWZpZXJWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVz
dENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZVdpdGhvdXRSZWFjdGlvbnMpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWVXaXRo
b3V0UmVhY3Rpb25zKTsKIAogY2xhc3MgSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclByb3Rv
dHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAt
MTc0LDcgKzE3NCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdENFUmVhY3Rpb25zU3RyaW5n
aWZpZXIqIElETE9wZXJhdGlvbjxKU1Rlc3RDRVJlYWN0aW9uc1N0CiAgICAgcmV0dXJuIGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcio+KEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q0VS
ZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
ICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTg0LDcgKzE4NCw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmll
ckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rl
c3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTIwNSw3ICsyMDUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZQog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudmFsdWUoKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFs
dWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdENF
UmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyPjo6Z2V0PGpz
VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInZhbHVlIik7
CiB9CkBAIC0yMjQsNyArMjI0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENFUmVh
Y3Rpb25zU3RyaW5naWZpZXJWYWx1ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGUKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENFUmVhY3Rpb25zU3Ry
aW5naWZpZXJWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVG
SU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXI+OjpzZXQ8c2V0SlNUZXN0Q0VSZWFj
dGlvbnNTdHJpbmdpZmllclZhbHVlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJ2YWx1ZSIpOwogfQpAQCAtMjM3LDcgKzIzNyw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWVXaXRob3V0
UmVhY3Rpb25zR2V0dGVyKEpTCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0
b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC52
YWx1ZVdpdGhvdXRSZWFjdGlvbnMoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWVXaXRob3V0UmVhY3Rpb25zKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyVmFsdWVXaXRob3V0UmVhY3Rpb25zLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZp
ZXI+OjpnZXQ8anNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlV2l0aG91dFJlYWN0aW9u
c0dldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgInZhbHVlV2l0aG91dFJlYWN0aW9ucyIpOwogfQpAQCAtMjU2LDcg
KzI1Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lm
aWVyVmFsdWVXaXRob3V0UmVhY3Rpb25zU2V0dGVyKEpTCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWVX
aXRob3V0UmVhY3Rpb25zKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWVX
aXRob3V0UmVhY3Rpb25zLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXI+Ojpz
ZXQ8c2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlV2l0aG91dFJlYWN0aW9uc1Nl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidmFs
dWVXaXRob3V0UmVhY3Rpb25zIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5jcHAKaW5kZXggNGI2
MTY5Mjg4Y2FmNmE4Yjg3MjAzMGY4ODQ5MGI5YjhjYWQwMWRjMy4uODgyMzNjYWY2YjY0ZmE2Mzhh
M2EwYmYyZWE4ZGExNjQ2MTI5ZjFhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmNwcApAQCAtNjcs
MTUgKzY3LDE1IEBAIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Q2FsbFRyYWNlclBy
b3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhEZWZhCiAKIC8vIEF0dHJpYnV0ZXMKIAot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENhbGxUcmFjZXJDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENhbGxUcmFjZXJDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q2Fs
bFRyYWNlclRlc3RBdHRyaWJ1dGVJbnRlcmZhY2UoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZUludGVyZmFjZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVT
cGVjaWZpZWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDYWxsVHJhY2VyVGVz
dEF0dHJpYnV0ZVNwZWNpZmllZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudChKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlV2l0aFZhcmlh
bnQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENhbGxU
cmFjZXJUZXN0UmVhZG9ubHlBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVJbnRlcmZhY2UpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZUludGVyZmFj
ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdENhbGxUcmFjZXJUZXN0QXR0cmli
dXRlU3BlY2lmaWVkKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q2FsbFRy
YWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50KTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudCk7
CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdENhbGxUcmFjZXJUZXN0UmVhZG9ubHlB
dHRyaWJ1dGUpOwogCiBjbGFzcyBKU1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlIGZpbmFsIDogcHVi
bGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yMTIsNyArMjEyLDcgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0Q2FsbFRyYWNlciogSURMT3BlcmF0aW9uPEpTVGVzdENh
bGxUcmFjZXI+OjpjYXN0KEpTR2xvYmEKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RD
YWxsVHJhY2VyKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50
aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q2Fs
bFRyYWNlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMjIsNyArMjIy
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDYWxsVHJhY2VyQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEpTVGVzdENhbGxUcmFjZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q2FsbFRy
YWNlckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsK
ICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjQ1LDcgKzI0NSw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZUludGVy
ZmFjZUdldHRlcihKU0dsb2JhbE9iamVjCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsICh0b0pTPElETEJvb2xlYW4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGlt
cGwudGVzdEF0dHJpYnV0ZUludGVyZmFjZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlSW50ZXJmYWNlKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDYWxsVHJhY2VyVGVz
dEF0dHJpYnV0ZUludGVyZmFjZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RDYWxsVHJhY2VyPjo6Z2V0PGpzVGVzdENhbGxUcmFjZXJUZXN0
QXR0cmlidXRlSW50ZXJmYWNlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidGVzdEF0dHJpYnV0ZUludGVyZmFj
ZSIpOwogfQpAQCAtMjY1LDcgKzI2NSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RD
YWxsVHJhY2VyVGVzdEF0dHJpYnV0ZUludGVyZmFjZVNldHRlcihKU0dsb2JhbE9iamVjCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDYWxsVHJhY2Vy
VGVzdEF0dHJpYnV0ZUludGVyZmFjZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1
dGVJbnRlcmZhY2UsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q2FsbFRyYWNlcj46OnNldDxzZXRKU1Rlc3RDYWxs
VHJhY2VyVGVzdEF0dHJpYnV0ZUludGVyZmFjZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidGVzdEF0dHJpYnV0ZUludGVyZmFjZSIpOwogfQpA
QCAtMjgwLDcgKzI4MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2Vy
VGVzdEF0dHJpYnV0ZVNwZWNpZmllZEdldHRlcihKU0dsb2JhbE9iamVjCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEJvb2xlYW4+KGxleGljYWxHbG9iYWxPYmpl
Y3QsIHRocm93U2NvcGUsIGltcGwudGVzdEF0dHJpYnV0ZVNwZWNpZmllZCgpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRl
U3BlY2lmaWVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVNwZWNpZmllZCwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDYWxsVHJhY2VyPjo6Z2V0PGpz
VGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlU3BlY2lmaWVkR2V0dGVyLCBDYXN0ZWRUaGlzRXJy
b3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidGVz
dEF0dHJpYnV0ZVNwZWNpZmllZCIpOwogfQpAQCAtMzAwLDcgKzMwMCw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVNwZWNpZmllZFNldHRlcihK
U0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVNwZWNpZmllZChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q2Fs
bFRyYWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q2FsbFRyYWNlcj46
OnNldDxzZXRKU1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVNwZWNpZmllZFNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidGVzdEF0dHJpYnV0
ZVNwZWNpZmllZCIpOwogfQpAQCAtMzE1LDcgKzMxNSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50R2V0dGVyKEpTR2xvYmFs
T2JqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFVuaW9uPElE
TEJvb2xlYW4sIElETEZsb2F0LCBJRExET01TdHJpbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC50ZXN0QXR0cmlidXRl
V2l0aFZhcmlhbnQoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50KEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVdp
dGhWYXJpYW50LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdENhbGxUcmFjZXI+OjpnZXQ8anNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVX
aXRoVmFyaWFudEdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudCIpOwog
fQpAQCAtMzM1LDcgKzMzNSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDYWxsVHJh
Y2VyVGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50U2V0dGVyKEpTR2xvYmFsT2JqCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDYWxsVHJhY2VyVGVzdEF0
dHJpYnV0ZVdpdGhWYXJpYW50KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVdp
dGhWYXJpYW50LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENhbGxUcmFjZXI+OjpzZXQ8c2V0SlNUZXN0Q2FsbFRy
YWNlclRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudFNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50Iik7CiB9
CkBAIC0zNDgsNyArMzQ4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENhbGxUcmFj
ZXJUZXN0UmVhZG9ubHlBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQm9vbGVhbj4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgaW1wbC50ZXN0UmVhZG9ubHlBdHRyaWJ1dGUoKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDYWxsVHJhY2VyVGVzdFJlYWRvbmx5
QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RDYWxsVHJhY2VyVGVzdFJlYWRvbmx5QXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENhbGxUcmFjZXI+OjpnZXQ8anNU
ZXN0Q2FsbFRyYWNlclRlc3RSZWFkb25seUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRlc3RS
ZWFkb25seUF0dHJpYnV0ZSIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dp
dGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAKaW5kZXggMzk0ZTlhNTVjZTdmOWZkZGI5MDMxMmEy
N2YyYTk0ODE4ODU1Y2MyMC4uNjRlODAyNjI0YmU1ZjgzOWY0NjIxZTRmOTUzMjE5YjgxZTcyZGRj
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3Ry
dWN0b3IuY3BwCkBAIC00NSw4ICs0NSw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0
dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENsYXNz
V2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q2xhc3NXaXRoSlNCdWlsdGlu
Q29uc3RydWN0b3JDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IpOwogCiBjbGFzcyBK
U1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZSBmaW5hbCA6IHB1Ymxp
YyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTU1LDcgKzE1NSw3IEBAIHZv
aWQgSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3I6OmRlc3Ryb3koSlNDOjpKU0Nl
bGwqIGNlbGwpCiAgICAgdGhpc09iamVjdC0+SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3Ry
dWN0b3I6On5KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvcigpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVj
dG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKGpzVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0xNjUsNyArMTY1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RD
bGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2wKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yOjpnZXRD
b25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmds
b2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDbGFzc1dp
dGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDbGFzc1dpdGhK
U0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENv
bmRpdGlvbmFsSW5jbHVkZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMuY3BwCmluZGV4IDliNDUxYjE2YWUzOWJm
ZDM2Zjk3YTQ3ZmYxNmE3NGIwY2NjNDUxN2YuLmVkMDczNmE0MmQwYTVmODNiNjFjODBmYTMzNjll
ZGFhYjZmMDhhMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcy5jcHAK
QEAgLTg2LDI2ICs4NiwyNiBAQCBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENvbmRp
dGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvblBhcnRpYWxNaXhpbgogCiAvLyBBdHRyaWJ1
dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25h
bEluY2x1ZGVzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RD
b25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNUZXN0QXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3Ry
dWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDb25kaXRpb25hbElu
Y2x1ZGVzQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25k
aXRpb25hbEluY2x1ZGVzVGVzdEF0dHIpOwogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5B
QkxFKENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpblJlYWRPbmx5QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpblJlYWRPbmx5
QXR0cmlidXRlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENv
bmRpdGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRp
dGlvbmFsSW5jbHVkZXNNaXhpbkF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkF0dHJpYnV0
ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXNNaXhpbkF0dHJpYnV0ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVO
QUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5DdXN0b21BdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5DdXN0b21BdHRyaWJ1
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25kaXRpb25hbElu
Y2x1ZGVzTWl4aW5DdXN0b21BdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5DdXN0b21BdHRyaWJ1dGUpOwogI2VuZGlm
CiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGlu
Tm9kZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlv
bmFsSW5jbHVkZXNNaXhpbk5vZGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5Ob2RlQXR0cmlidXRlKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGlu
Tm9kZUF0dHJpYnV0ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJM
RShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RD
b25kaXRpb25hbEluY2x1ZGVzUGFydGlhbE1peGluQXR0cmlidXRlRnJvbVBhcnRpYWwoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1BhcnRp
YWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFsKTsKICNlbmRpZgogCiBjbGFzcyBKU1Rlc3RDb25k
aXRpb25hbEluY2x1ZGVzUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9i
amVjdCB7CkBAIC00OTAsNyArNDkwLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0Q29uZGl0
aW9uYWxJbmNsdWRlcyogSURMT3BlcmF0aW9uPEpTVGVzdENvbmRpdGlvbmFsSW5jbHUKICAgICBy
ZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzKj4oSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQog
ewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01MDAsNyArNTAwLDcg
QEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVz
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpT
VGVzdENvbmRpdGlvbmFsSW5jbHVkZXM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtNTIxLDcgKzUyMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25k
aXRpb25hbEluY2x1ZGVzVGVzdEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxlCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERvdWJsZT4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC50ZXN0QXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNUZXN0QXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9u
YWxJbmNsdWRlc1Rlc3RBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM+OjpnZXQ8anNUZXN0Q29uZGl0
aW9uYWxJbmNsdWRlc1Rlc3RBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNz
ZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidGVzdEF0dHIiKTsKIH0KQEAg
LTUzNSw3ICs1MzUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxJ
bmNsdWRlc01peGluUmVhZE9ubHlBdHRyaWJ1dGVHZXR0ZXIoSlNHbAogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmpl
Y3QsIHRocm93U2NvcGUsIGltcGwubWl4aW5SZWFkT25seUF0dHJpYnV0ZSgpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhp
blJlYWRPbmx5QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5SZWFkT25seUF0dHJpYnV0ZSwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RD
b25kaXRpb25hbEluY2x1ZGVzPjo6Z2V0PGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpblJl
YWRPbmx5QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibWl4aW5SZWFkT25seUF0dHJpYnV0ZSIp
OwogfQpAQCAtNTUxLDcgKzU1MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25k
aXRpb25hbEluY2x1ZGVzTWl4aW5BdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5taXhpbkF0dHJpYnV0ZSgpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhp
bkF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXM+OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQXR0cmlidXRlR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAibWl4aW5BdHRyaWJ1dGUiKTsKIH0KQEAgLTU3Miw3ICs1NzIsNyBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQXR0cmlidXRlU2V0
dGVyKEpTR2xvYmFsT2JqZQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQXR0cmlidXRlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5BdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0
aW9uYWxJbmNsdWRlcz46OnNldDxzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5BdHRy
aWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgIm1peGluQXR0cmlidXRlIik7CiB9CkBAIC01ODYsNyArNTg2LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkN1c3RvbUF0dHJpYnV0ZUdl
dHRlcihKU0dsb2IKICAgICByZXR1cm4gdGhpc09iamVjdC5taXhpbkN1c3RvbUF0dHJpYnV0ZShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5DdXN0b21BdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXNNaXhpbkN1c3RvbUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6Z2V0PGpzVGVzdENv
bmRpdGlvbmFsSW5jbHVkZXNNaXhpbkN1c3RvbUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm1p
eGluQ3VzdG9tQXR0cmlidXRlIik7CiB9CkBAIC02MDEsNyArNjAxLDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkN1c3RvbUF0dHJpYnV0ZVNl
dHRlcihKU0dsb2IKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkN1c3RvbUF0dHJpYnV0ZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQ3VzdG9tQXR0cmlidXRlLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXM+OjpzZXQ8c2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01p
eGluQ3VzdG9tQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJtaXhpbkN1c3RvbUF0dHJpYnV0ZSIpOwogfQpAQCAtNjE3LDcgKzYx
Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4
aW5Ob2RlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxOb2RlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwg
KnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwubWl4aW5Ob2RlQXR0
cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlc01peGluTm9kZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluTm9k
ZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6Z2V0PGpzVGVzdENvbmRpdGlvbmFsSW5j
bHVkZXNNaXhpbk5vZGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpB
c3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJtaXhpbk5vZGVBdHRyaWJ1
dGUiKTsKIH0KQEAgLTYzOCw3ICs2MzgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlc01peGluTm9kZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbAogICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9u
YWxJbmNsdWRlc01peGluTm9kZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNs
dWRlc01peGluTm9kZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVz
Pjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbk5vZGVBdHRyaWJ1dGVTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm1peGlu
Tm9kZUF0dHJpYnV0ZSIpOwogfQpAQCAtNjU0LDcgKzY1NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUGFydGlhbE1peGluQXR0cmlidXRlRnJvbVBh
cnRpYWxHCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERvdWJs
ZT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5wYXJ0aWFsTWl4aW5BdHRy
aWJ1dGVGcm9tUGFydGlhbCgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlh
bChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlc1BhcnRpYWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFsLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlv
bmFsSW5jbHVkZXM+OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1BhcnRpYWxNaXhpbkF0
dHJpYnV0ZUZyb21QYXJ0aWFsR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicGFydGlhbE1peGluQXR0cmlidXRl
RnJvbVBhcnRpYWwiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlLmNwcAppbmRleCA5ZGEwY2MyNjQ4ZjhmNjMwMDYwNWUxOThmMjRkYjA3MmM5YzliZmE3Li5k
YTE3YmIwZGFhMDYyYzc3NGZiMjFjNGJlOGRiN2Y3Zjk5MmUxNWIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUuY3BwCkBAIC01NCwzNCArNTQsMzQgQEAgdXNp
bmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDb25k
aXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZSk7CiAjaWYgRU5BQkxFKENPTkRJVElPTikKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKTsKICNlbmRpZgogI2lmIEVO
QUJMRShDT05ESVRJT04yKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZSk7CiAjaWYgRU5BQkxFKENPTkRJVElPTikKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdy
aXRlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUF0dHJpYnV0ZSk7CiAjZW5kaWYKICNlbmRpZgotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3Jn
ZWFibGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVh
ZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3Jn
ZWFibGVQcml2YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3Jn
ZWFibGVQcml2YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGVQcm9taXNlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJv
bWlzZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVT
ZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5n
c0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZh
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQ
cm9taXNlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRp
dGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGVVbmZvcmdlYWJsZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZVVuZm9yZ2VhYmxlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5m
b3JnZWFibGVQcml2YXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRl
VW5mb3JnZWFibGVQcml2YXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRl
UHJvbWlzZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENvbmRpdGlvbmFs
bHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2Up
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
U2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0
aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpz
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGVVbmZvcmdlYWJsZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGVVbmZvcmdlYWJsZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVV
bmZvcmdlYWJsZVByaXZhdGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RD
b25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmli
dXRlVW5mb3JnZWFibGVQcml2YXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0
Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZVByb21pc2UpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDb25kaXRp
b25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJv
bWlzZSk7CiAKIGNsYXNzIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVQcm90b3R5cGUgZmlu
YWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTI3NCw3ICsy
NzQsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlKiBJ
RExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseQogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0
PEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjg0LDcgKzI4NCw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RD
b25kaXRpb25hbGx5UmVhZFdyaXRlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTMwNSw3ICszMDUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dAogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+
KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Nj
b3BlLCBpbXBsLmNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29u
ZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFs
bHlSZWFkV3JpdGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OmdldDxqc1Rlc3RD
b25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZUdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgImNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTMy
NCw3ICszMjQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dAogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpzZXQ8c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGUiKTsKIH0KQEAgLTM0MCw3ICszNDAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxseVJlYQog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8Tm9k
ZT4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJv
d1Njb3BlLCBpbXBsLmNvbmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0
ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OmdldDxqc1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlQ29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAiY29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmli
dXRlIik7CiB9CkBAIC0zNjIsNyArMzYyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWEKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZT46OnNldDxzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxB
bmRDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJjb25kaXRpb25hbEFuZENvbmRpdGlvbmFs
bHlSZWFkV3JpdGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTM3OSw3ICszNzksNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25h
bGx5UmVhZFdyaXRlQQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJ
RExJbnRlcmZhY2U8Tm9kZT4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2Jh
bE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRl
QXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmli
dXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RD
b25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1
dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OmdldDxqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSIpOwogfQpAQCAtMzk3LDcg
KzM5Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGlt
ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENvbmRpdGlvbmFs
bHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFs
bHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicnVudGltZUNv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTQxMCw3ICs0MTAsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVD
b25kaXRpb25hbGx5UmVhZFdyaXRlQQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCAodG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2Jq
ZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnJ1bnRpbWVDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlv
bmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRp
bWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZT46OmdldDxqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRp
dGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZUdldHRlciwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJ1
bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUiKTsKIH0KQEAg
LTQyOCw3ICs0MjgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQQogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNl
dEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGU+OjpzZXQ8c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25h
bGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdy
aXRlQXR0cmlidXRlVW5mb3JnZWFibGUiKTsKIH0KQEAgLTQ0MSw3ICs0NDEsNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRp
b25hbGx5UmVhZFdyaXRlQQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9K
UzxJRExJbnRlcmZhY2U8Tm9kZT4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmds
b2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdy
aXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRp
b25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZh
dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OmdldDxqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZh
dGVHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJydW50aW1lQ29uZGl0
aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSIpOwogfQpAQCAtNDU5
LDcgKzQ1OSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVh
ZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVu
dGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRX
cml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25h
bGx5UmVhZFdyaXRlPjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1l
Q29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZVNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicnVudGltZUNv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUiKTsKIH0KQEAg
LTQ3Miw3ICs0NzIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQQogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExQcm9taXNlPElETERvdWJsZT4+KGxleGljYWxH
bG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBs
LnJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSgpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZT46OmdldDxqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVu
dGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlR2V0dGVyLCBDYXN0ZWRU
aGlzRXJyb3JCZWhhdmlvcjo6UmVqZWN0UHJvbWlzZT4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgInJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSIp
OwogfQpAQCAtNDkwLDcgKzQ5MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25k
aXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGVQcm9taXNlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGU+OjpzZXQ8c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25h
bGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGVQcm9taXNlIik7CiB9CkBAIC01MDMsNyArNTAzLDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlS
ZWFkV3JpdGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50
ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmpl
Y3QoKSwgdGhyb3dTY29wZSwgaW1wbC5zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25k
aXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25k
aXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRl
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
InNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSIpOwogfQpAQCAtNTIxLDcg
KzUyMSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGlu
Z3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDb25kaXRpb25h
bGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpzZXQ8c2V0SlNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic2V0dGlu
Z3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlIik7CiB9CkBAIC01MzQsNyArNTM0LDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0
aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhp
c09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5zZXR0aW5nc0NvbmRpdGlv
bmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZSgpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0Nv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGU+OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRp
bmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlR2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAic2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUi
KTsKIH0KQEAgLTU1Miw3ICs1NTIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZQogICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2Vh
YmxlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25h
bGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZT46OnNldDxzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGlu
Z3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInNldHRpbmdzQ29uZGl0
aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlIik7CiB9CkBAIC01NjUsNyArNTY1
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVT
ZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5zZXR0aW5nc0NvbmRp
dGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUoKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
U2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25k
aXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRl
VW5mb3JnZWFibGVQcml2YXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpnZXQ8anNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0
ZVVuZm9yZ2VhYmxlUHJpdmF0ZUdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgInNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJp
dmF0ZSIpOwogfQpAQCAtNTgzLDcgKzU4Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRp
b25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5m
b3JnZWFibGVQcml2YXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGlu
Z3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpzZXQ8c2V0SlNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9y
Z2VhYmxlUHJpdmF0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5j
b2RlZFZhbHVlLCAic2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3Jn
ZWFibGVQcml2YXRlIik7CiB9CkBAIC01OTYsNyArNTk2LDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFk
V3JpdGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMUHJvbWlz
ZTxJRExEb3VibGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmpl
Y3QoKSwgdGhyb3dTY29wZSwgaW1wbC5zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGVQcm9taXNlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0
dHJpYnV0ZVByb21pc2UoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGVQcm9taXNlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpnZXQ8anNUZXN0
Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZVByb21pc2VHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpSZWplY3RQcm9taXNl
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2V0dGluZ3NDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSIpOwogfQpAQCAtNjE0LDcgKzYxNCw3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25k
aXRpb25hbGx5UmVhZFdyaXRlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OnNldDxzZXRKU1Rlc3RDb25kaXRpb25h
bGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlz
ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
c2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSIpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERP
TUpJVC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RE9NSklULmNwcAppbmRleCBkM2YxYjM1NmZmYWZiNzgxMDhlNDY2NmM3Mjc5OGZhMjJmMjRlMDI3
Li5mNzc1MzBiZGZlYmM0ZTQ2NTYwODVhNzJkMzA2ODMxOTE1ZjRlZGE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RE9NSklULmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RE9NSklU
LmNwcApAQCAtNjAsNTUgKzYwLDU1IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAvLyBGdW5jdGlv
bnMKIAogSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5j
dGlvbkdldEF0dHJpYnV0ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRBdHRyaWJ1dGVXaXRob3V0VHlwZUNoZWNrKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU1Rlc3RET01KSVQqLCBET01KSVQ6OklETEpTQXJndW1lbnRU
eXBlPElETERPTVN0cmluZz4pOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihqc1Rlc3RET01K
SVRQcm90b3R5cGVGdW5jdGlvbkdldEF0dHJpYnV0ZVdpdGhvdXRUeXBlQ2hlY2ssIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNUZXN0RE9NSklUKiwgRE9NSklU
OjpJRExKU0FyZ3VtZW50VHlwZTxJRExET01TdHJpbmc+KSk7CiBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSXRlbSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25JdGVtV2l0
aG91dFR5cGVDaGVjayhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNUZXN0RE9NSklUKiwgRE9NSklU
OjpJRExKU0FyZ3VtZW50VHlwZTxJRExVbnNpZ25lZFNob3J0PiwgRE9NSklUOjpJRExKU0FyZ3Vt
ZW50VHlwZTxJRExVbnNpZ25lZFNob3J0Pik7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKGpz
VGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSXRlbVdpdGhvdXRUeXBlQ2hlY2ssIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNUZXN0RE9NSklUKiwgRE9NSklU
OjpJRExKU0FyZ3VtZW50VHlwZTxJRExVbnNpZ25lZFNob3J0PiwgRE9NSklUOjpJRExKU0FyZ3Vt
ZW50VHlwZTxJRExVbnNpZ25lZFNob3J0PikpOwogSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkhhc0F0dHJpYnV0ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25IYXNBdHRy
aWJ1dGVXaXRob3V0VHlwZUNoZWNrKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU1Rlc3RET01KSVQq
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rp
b25IYXNBdHRyaWJ1dGVXaXRob3V0VHlwZUNoZWNrLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCAoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTVGVzdERPTUpJVCopKTsKIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50QnlJZCk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rp
b25HZXRFbGVtZW50QnlJZFdpdGhvdXRUeXBlQ2hlY2soSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
VGVzdERPTUpJVCosIERPTUpJVDo6SURMSlNBcmd1bWVudFR5cGU8SURMUmVxdWlyZXNFeGlzdGlu
Z0F0b21TdHJpbmdBZGFwdG9yPElETERPTVN0cmluZz4+KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50QnlJZFdpdGhvdXRU
eXBlQ2hlY2ssIEpTQzo6RW5jb2RlZEpTVmFsdWUsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNU
ZXN0RE9NSklUKiwgRE9NSklUOjpJRExKU0FyZ3VtZW50VHlwZTxJRExSZXF1aXJlc0V4aXN0aW5n
QXRvbVN0cmluZ0FkYXB0b3I8SURMRE9NU3RyaW5nPj4pKTsKIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50c0J5TmFtZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUUHJvdG90eXBlRnVu
Y3Rpb25HZXRFbGVtZW50c0J5TmFtZVdpdGhvdXRUeXBlQ2hlY2soSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTVGVzdERPTUpJVCosIERPTUpJVDo6SURMSlNBcmd1bWVudFR5cGU8SURMQXRvbVN0cmlu
Z0FkYXB0b3I8SURMRE9NU3RyaW5nPj4pOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihqc1Rl
c3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRzQnlOYW1lV2l0aG91dFR5cGVDaGVj
aywgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU1Rlc3RET01K
SVQqLCBET01KSVQ6OklETEpTQXJndW1lbnRUeXBlPElETEF0b21TdHJpbmdBZGFwdG9yPElETERP
TVN0cmluZz4+KSk7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdERPTUpJVENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0RE9NSklUQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVEFueUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRCb29sZWFuQXR0cihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVEJ5dGVBdHRyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUT2N0ZXRBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUU2hvcnRB
dHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklU
VW5zaWduZWRTaG9ydEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RET01KSVRMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRMb25nTG9uZ0F0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdMb25n
QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJ
VEZsb2F0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dERPTUpJVFVucmVzdHJpY3RlZEZsb2F0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVERvdWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWREb3VibGVBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklURG9tU3Ry
aW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERP
TUpJVEJ5dGVTdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0RE9NSklUVXN2U3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVE5vZGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUQm9vbGVhbk51bGxhYmxlQXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVEJ5dGVOdWxsYWJs
ZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01K
SVRPY3RldE51bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdERPTUpJVFNob3J0TnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUVW5zaWduZWRTaG9ydE51bGxhYmxlQXR0cihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVExvbmdO
dWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RET01KSVRVbnNpZ25lZExvbmdOdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRMb25nTG9uZ051bGxhYmxlQXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVuc2lnbmVkTG9u
Z0xvbmdOdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RET01KSVRGbG9hdE51bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZEZsb2F0TnVsbGFibGVBdHRy
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklURG91
YmxlTnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0RE9NSklUVW5yZXN0cmljdGVkRG91YmxlTnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklURG9tU3RyaW5nTnVsbGFibGVB
dHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklU
Qnl0ZVN0cmluZ051bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERPTUpJVFVzdlN0cmluZ051bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVE5vZGVOdWxsYWJsZUF0dHIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUQ29uc3RydWN0b3IpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RET01KSVRDb25zdHJ1Y3Rvcik7CitK
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVEFueUF0dHIpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRCb29sZWFuQXR0cik7CitKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVEJ5dGVBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0RE9NSklUT2N0ZXRBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0RE9NSklUU2hvcnRBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0
RE9NSklUVW5zaWduZWRTaG9ydEF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RET01KSVRMb25nQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJ
VFVuc2lnbmVkTG9uZ0F0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01K
SVRMb25nTG9uZ0F0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRV
bnNpZ25lZExvbmdMb25nQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERP
TUpJVEZsb2F0QXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVFVu
cmVzdHJpY3RlZEZsb2F0QXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERP
TUpJVERvdWJsZUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRV
bnJlc3RyaWN0ZWREb3VibGVBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0
RE9NSklURG9tU3RyaW5nQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERP
TUpJVEJ5dGVTdHJpbmdBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RE9N
SklUVXN2U3RyaW5nQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJ
VE5vZGVBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUQm9vbGVh
bk51bGxhYmxlQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVEJ5
dGVOdWxsYWJsZUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRP
Y3RldE51bGxhYmxlQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJ
VFNob3J0TnVsbGFibGVBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RE9N
SklUVW5zaWduZWRTaG9ydE51bGxhYmxlQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdERPTUpJVExvbmdOdWxsYWJsZUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdOdWxsYWJsZUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RET01KSVRMb25nTG9uZ051bGxhYmxlQXR0cik7CitKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0xvbmdOdWxsYWJsZUF0dHIp
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRGbG9hdE51bGxhYmxlQXR0
cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZEZs
b2F0TnVsbGFibGVBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklU
RG91YmxlTnVsbGFibGVBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RE9N
SklUVW5yZXN0cmljdGVkRG91YmxlTnVsbGFibGVBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0RE9NSklURG9tU3RyaW5nTnVsbGFibGVBdHRyKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0RE9NSklUQnl0ZVN0cmluZ051bGxhYmxlQXR0cik7CitKU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVFVzdlN0cmluZ051bGxhYmxlQXR0cik7CitK
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVE5vZGVOdWxsYWJsZUF0dHIpOwog
CiBzdGF0aWMgY29uc3QgSlNDOjpET01KSVQ6OlNpZ25hdHVyZSBET01KSVRTaWduYXR1cmVGb3JU
ZXN0RE9NSklUR2V0QXR0cmlidXRlKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0QXR0
cmlidXRlV2l0aG91dFR5cGVDaGVjaywgSlNUZXN0RE9NSklUOjppbmZvKCksIEpTQzo6RE9NSklU
OjpFZmZlY3Q6OmZvclJlYWQoRE9NSklUOjpBYnN0cmFjdEhlYXBSZXBvc2l0b3J5OjpET00pLCBE
T01KSVQ6OklETFJlc3VsdFR5cGVGaWx0ZXI8SURMTnVsbGFibGU8SURMRE9NU3RyaW5nPj46OnZh
bHVlLCBET01KSVQ6OklETEFyZ3VtZW50VHlwZUZpbHRlcjxJRExET01TdHJpbmc+Ojp2YWx1ZSk7
CiAKQEAgLTYxNSw3ICs2MTUsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RET01KSVQqIElE
TE9wZXJhdGlvbjxKU1Rlc3RET01KSVQ+OjpjYXN0KEpTR2xvYmFsT2JqZWN0JgogICAgIHJldHVy
biBqc0R5bmFtaWNDYXN0PEpTVGVzdERPTUpJVCo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdERPTUpJVENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRDb25zdHJ1Y3RvciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTYyNSw3ICs2MjUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJ
VENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYgogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoSlNUZXN0RE9NSklUOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RET01KSVRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RE9N
SklUQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewog
ICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC02NDYsNyArNjQ2LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVEFueUF0dHJHZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMQW55PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmFu
eUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01K
SVRBbnlBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RET01KSVRBbnlBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRBbnlBdHRyR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYW55QXR0ciIpOwogfQpAQCAtNjU5
LDcgKzY1OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRCb29sZWFuQXR0
ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETEJvb2xlYW4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIGltcGwuYm9vbGVhbkF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RET01KSVRCb29sZWFuQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUQm9vbGVhbkF0dHIsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6
Z2V0PGpzVGVzdERPTUpJVEJvb2xlYW5BdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiYm9vbGVhbkF0dHIiKTsKIH0KQEAgLTY3Miw3ICs2NzIsNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUQnl0ZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9K
UzxJRExCeXRlPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmJ5dGVBdHRy
KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUQnl0
ZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVz
dERPTUpJVEJ5dGVBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRCeXRlQXR0ckdldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImJ5dGVBdHRyIik7CiB9CkBAIC02ODUs
NyArNjg1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVE9jdGV0QXR0ckdl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE8KICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMT2N0ZXQ+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUsIGltcGwub2N0ZXRBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0RE9NSklUT2N0ZXRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRPY3RldEF0dHIsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVz
dERPTUpJVE9jdGV0QXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
Im9jdGV0QXR0ciIpOwogfQpAQCAtNjk4LDcgKzY5OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RET01KSVRTaG9ydEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFNob3J0Pihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnNob3J0QXR0cigpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFNob3J0QXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUU2hv
cnRBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRTaG9ydEF0dHJHZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzaG9ydEF0dHIiKTsKIH0KQEAgLTcxMSw3ICs3MTEs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUVW5zaWduZWRTaG9ydEF0dHJH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCAodG9KUzxJRExVbnNpZ25lZFNob3J0PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBpbXBsLnVuc2lnbmVkU2hvcnRBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUVW5zaWduZWRTaG9ydEF0dHIoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVFVuc2lnbmVkU2hv
cnRBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRVbnNpZ25lZFNob3J0QXR0ckdldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVuc2lnbmVkU2hvcnRBdHRyIik7CiB9
CkBAIC03MjQsNyArNzI0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVExv
bmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2IKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhyb3dTY29wZSwgaW1wbC5sb25nQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVExvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRMb25nQXR0ciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8
anNUZXN0RE9NSklUTG9uZ0F0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJsb25nQXR0ciIpOwogfQpAQCAtNzM3LDcgKzczNyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFVuc2ln
bmVkTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bnNpZ25lZExv
bmdBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9N
SklUVW5zaWduZWRMb25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoanNUZXN0RE9NSklUVW5zaWduZWRMb25nQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0
RE9NSklUVW5zaWduZWRMb25nQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgInVuc2lnbmVkTG9uZ0F0dHIiKTsKIH0KQEAgLTc1MCw3ICs3NTAsNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUTG9uZ0xvbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9K
UzxJRExMb25nTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5sb25n
TG9uZ0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RE
T01KSVRMb25nTG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdERPTUpJVExvbmdMb25nQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklU
TG9uZ0xvbmdBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibG9u
Z0xvbmdBdHRyIik7CiB9CkBAIC03NjMsNyArNzYzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0xvbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXgKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMVW5zaWduZWRM
b25nTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bnNpZ25lZExv
bmdMb25nQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dERPTUpJVFVuc2lnbmVkTG9uZ0xvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdMb25nQXR0ciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+
OjpnZXQ8anNUZXN0RE9NSklUVW5zaWduZWRMb25nTG9uZ0F0dHJHZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bnNpZ25lZExvbmdMb25nQXR0ciIpOwogfQpAQCAtNzc2
LDcgKzc3Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRGbG9hdEF0dHJH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETEZsb2F0PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBpbXBsLmZsb2F0QXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERPTUpJVEZsb2F0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklURmxvYXRBdHRyLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rl
c3RET01KSVRGbG9hdEF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJmbG9hdEF0dHIiKTsKIH0KQEAgLTc4OSw3ICs3ODksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0RE9NSklUVW5yZXN0cmljdGVkRmxvYXRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExVbnJlc3Ry
aWN0ZWRGbG9hdD4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bnJlc3Ry
aWN0ZWRGbG9hdEF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RET01KSVRVbnJlc3RyaWN0ZWRGbG9hdEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZEZsb2F0QXR0ciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RE
T01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUVW5yZXN0cmljdGVkRmxvYXRBdHRyR2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidW5yZXN0cmljdGVkRmxvYXRBdHRyIik7CiB9
CkBAIC04MDIsNyArODAyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVERv
dWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWwKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRG91YmxlPihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmRvdWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVREb3VibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVREb3VibGVBdHRyLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJ
VD46OmdldDxqc1Rlc3RET01KSVREb3VibGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAiZG91YmxlQXR0ciIpOwogfQpAQCAtODE1LDcgKzgxNSw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWREb3VibGVBdHRyR2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0
b0pTPElETFVucmVzdHJpY3RlZERvdWJsZT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29w
ZSwgaW1wbC51bnJlc3RyaWN0ZWREb3VibGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUVW5yZXN0cmljdGVkRG91YmxlQXR0cihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUVW5yZXN0
cmljdGVkRG91YmxlQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUVW5yZXN0cmljdGVkRG91
YmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVucmVzdHJp
Y3RlZERvdWJsZUF0dHIiKTsKIH0KQEAgLTgyOCw3ICs4MjgsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0RE9NSklURG9tU3RyaW5nQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsbwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01T
dHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZG9tU3RyaW5nQXR0
cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVERv
bVN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdERPTUpJVERvbVN0cmluZ0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVERvbVN0
cmluZ0F0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJkb21TdHJp
bmdBdHRyIik7CiB9CkBAIC04NDEsNyArODQxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdERPTUpJVEJ5dGVTdHJpbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2wK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQnl0ZVN0cmluZz4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5ieXRlU3RyaW5nQXR0cigpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVEJ5dGVTdHJp
bmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RET01KSVRCeXRlU3RyaW5nQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUQnl0ZVN0cmlu
Z0F0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJieXRlU3RyaW5n
QXR0ciIpOwogfQpAQCAtODU0LDcgKzg1NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RET01KSVRVc3ZTdHJpbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFVTVlN0cmluZz4obGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51c3ZTdHJpbmdBdHRyKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUVXN2U3RyaW5nQXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RE9N
SklUVXN2U3RyaW5nQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUVXN2U3RyaW5nQXR0ckdl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVzdlN0cmluZ0F0dHIiKTsK
IH0KQEAgLTg2Nyw3ICs4NjcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklU
Tm9kZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYgogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+KGxleGlj
YWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBp
bXBsLm5vZGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0RE9NSklUTm9kZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdERPTUpJVE5vZGVBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVROb2Rl
QXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm5vZGVBdHRyIik7
CiB9CkBAIC04ODAsNyArODgwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJ
VEJvb2xlYW5OdWxsYWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMQm9vbGVhbj4+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYm9vbGVhbk51bGxhYmxlQXR0
cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVEJv
b2xlYW5OdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdERPTUpJVEJvb2xlYW5OdWxsYWJsZUF0dHIsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVz
dERPTUpJVEJvb2xlYW5OdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJib29sZWFuTnVsbGFibGVBdHRyIik7CiB9CkBAIC04OTMsNyArODkzLDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVEJ5dGVOdWxsYWJsZUF0dHJHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMTnVsbGFibGU8SURMQnl0ZT4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUsIGltcGwuYnl0ZU51bGxhYmxlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVEJ5dGVOdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVEJ5dGVOdWxsYWJsZUF0
dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVEJ5dGVOdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJieXRlTnVsbGFibGVBdHRyIik7CiB9CkBAIC05
MDYsNyArOTA2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVE9jdGV0TnVs
bGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2EKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMT2N0ZXQ+PihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm9jdGV0TnVsbGFibGVBdHRyKCkpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUT2N0ZXROdWxsYWJsZUF0
dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERP
TUpJVE9jdGV0TnVsbGFibGVBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRPY3RldE51bGxh
YmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm9jdGV0TnVs
bGFibGVBdHRyIik7CiB9CkBAIC05MTksNyArOTE5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdERPTUpJVFNob3J0TnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2EKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8
SURMU2hvcnQ+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnNob3J0TnVs
bGFibGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
RE9NSklUU2hvcnROdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVFNob3J0TnVsbGFibGVBdHRyLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxq
c1Rlc3RET01KSVRTaG9ydE51bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgInNob3J0TnVsbGFibGVBdHRyIik7CiB9CkBAIC05MzIsNyArOTMyLDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFVuc2lnbmVkU2hvcnROdWxsYWJsZUF0
dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMTnVsbGFibGU8SURMVW5zaWduZWRTaG9ydD4+KGxleGljYWxHbG9iYWxPYmpl
Y3QsIHRocm93U2NvcGUsIGltcGwudW5zaWduZWRTaG9ydE51bGxhYmxlQXR0cigpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVuc2lnbmVkU2hvcnRO
dWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdERPTUpJVFVuc2lnbmVkU2hvcnROdWxsYWJsZUF0dHIsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVz
dERPTUpJVFVuc2lnbmVkU2hvcnROdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJ1bnNpZ25lZFNob3J0TnVsbGFibGVBdHRyIik7CiB9CkBAIC05NDUs
NyArOTQ1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVExvbmdOdWxsYWJs
ZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWwKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMTG9uZz4+KGxleGljYWxHbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIGltcGwubG9uZ051bGxhYmxlQXR0cigpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVExvbmdOdWxsYWJsZUF0dHIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVExv
bmdOdWxsYWJsZUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVExvbmdOdWxsYWJsZUF0dHJH
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJsb25nTnVsbGFibGVBdHRy
Iik7CiB9CkBAIC05NTgsNyArOTU4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERP
TUpJVFVuc2lnbmVkTG9uZ051bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMVW5zaWdu
ZWRMb25nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bnNpZ25lZExv
bmdOdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RET01KSVRVbnNpZ25lZExvbmdOdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ051bGxhYmxl
QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUVW5zaWduZWRMb25nTnVsbGFibGVBdHRyR2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidW5zaWduZWRMb25nTnVsbGFi
bGVBdHRyIik7CiB9CkBAIC05NzEsNyArOTcxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdERPTUpJVExvbmdMb25nTnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXgK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURM
TG9uZ0xvbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmxvbmdMb25n
TnVsbGFibGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0RE9NSklUTG9uZ0xvbmdOdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVExvbmdMb25nTnVsbGFibGVBdHRyLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJ
VD46OmdldDxqc1Rlc3RET01KSVRMb25nTG9uZ051bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImxvbmdMb25nTnVsbGFibGVBdHRyIik7CiB9CkBAIC05
ODQsNyArOTg0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFVuc2lnbmVk
TG9uZ0xvbmdOdWxsYWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmoKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMVW5zaWduZWRMb25nTG9uZz4+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudW5zaWduZWRMb25nTG9uZ051
bGxhYmxlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dERPTUpJVFVuc2lnbmVkTG9uZ0xvbmdOdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0xvbmdOdWxs
YWJsZUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0xvbmdOdWxsYWJs
ZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bnNpZ25lZExv
bmdMb25nTnVsbGFibGVBdHRyIik7CiB9CkBAIC05OTcsNyArOTk3LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdERPTUpJVEZsb2F0TnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2EKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
TnVsbGFibGU8SURMRmxvYXQ+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBs
LmZsb2F0TnVsbGFibGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0RE9NSklURmxvYXROdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVEZsb2F0TnVsbGFibGVBdHRyLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJ
VD46OmdldDxqc1Rlc3RET01KSVRGbG9hdE51bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgImZsb2F0TnVsbGFibGVBdHRyIik7CiB9CkBAIC0xMDEwLDcg
KzEwMTAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUVW5yZXN0cmljdGVk
RmxvYXROdWxsYWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYgogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExVbnJlc3RyaWN0ZWRGbG9hdD4+KGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudW5yZXN0cmljdGVkRmxvYXROdWxs
YWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RE
T01KSVRVbnJlc3RyaWN0ZWRGbG9hdE51bGxhYmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUVW5yZXN0cmljdGVkRmxvYXROdWxs
YWJsZUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZEZsb2F0TnVsbGFi
bGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidW5yZXN0cmlj
dGVkRmxvYXROdWxsYWJsZUF0dHIiKTsKIH0KQEAgLTEwMjMsNyArMTAyMyw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVREb3VibGVOdWxsYWJsZUF0dHJHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETE51bGxhYmxlPElETERvdWJsZT4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGltcGwuZG91YmxlTnVsbGFibGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0RE9NSklURG91YmxlTnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVREb3VibGVOdWxsYWJsZUF0
dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVERvdWJsZU51bGxhYmxlQXR0ckdldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImRvdWJsZU51bGxhYmxlQXR0ciIpOwogfQpA
QCAtMTAzNiw3ICsxMDM2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFVu
cmVzdHJpY3RlZERvdWJsZU51bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE8KICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMVW5yZXN0cmljdGVk
RG91YmxlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bnJlc3RyaWN0
ZWREb3VibGVOdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWREb3VibGVOdWxsYWJsZUF0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVFVucmVzdHJp
Y3RlZERvdWJsZU51bGxhYmxlQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUVW5yZXN0cmlj
dGVkRG91YmxlTnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAidW5yZXN0cmljdGVkRG91YmxlTnVsbGFibGVBdHRyIik7CiB9CkBAIC0xMDQ5LDcgKzEw
NDksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklURG9tU3RyaW5nTnVsbGFi
bGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExET01TdHJpbmc+PihsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmRvbVN0cmluZ051bGxhYmxlQXR0cigpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVERvbVN0cmluZ051bGxh
YmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNU
ZXN0RE9NSklURG9tU3RyaW5nTnVsbGFibGVBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRE
b21TdHJpbmdOdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJkb21TdHJpbmdOdWxsYWJsZUF0dHIiKTsKIH0KQEAgLTEwNjIsNyArMTA2Miw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRCeXRlU3RyaW5nTnVsbGFibGVBdHRyR2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETE51bGxhYmxlPElETEJ5dGVTdHJpbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBpbXBsLmJ5dGVTdHJpbmdOdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRCeXRlU3RyaW5nTnVsbGFibGVBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01K
SVRCeXRlU3RyaW5nTnVsbGFibGVBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRCeXRlU3Ry
aW5nTnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
Ynl0ZVN0cmluZ051bGxhYmxlQXR0ciIpOwogfQpAQCAtMTA3NSw3ICsxMDc1LDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFVzdlN0cmluZ051bGxhYmxlQXR0ckdldHRlcihK
U0dsb2JhbE9iamVjdCYgbGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMTnVsbGFibGU8SURMVVNWU3RyaW5nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dT
Y29wZSwgaW1wbC51c3ZTdHJpbmdOdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRVc3ZTdHJpbmdOdWxsYWJsZUF0dHIoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVFVzdlN0
cmluZ051bGxhYmxlQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUVXN2U3RyaW5nTnVsbGFi
bGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidXN2U3RyaW5n
TnVsbGFibGVBdHRyIik7CiB9CkBAIC0xMDg4LDcgKzEwODgsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0RE9NSklUTm9kZU51bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxs
YWJsZTxJRExJbnRlcmZhY2U8Tm9kZT4+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVj
dC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5ub2RlTnVsbGFibGVBdHRyKCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUTm9kZU51bGxh
YmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNU
ZXN0RE9NSklUTm9kZU51bGxhYmxlQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUTm9kZU51
bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm5vZGVO
dWxsYWJsZUF0dHIiKTsKIH0KQEAgLTExMTMsNyArMTExMyw3IEBAIEpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEF0dHJpYnV0ZSwgKEpTR2xv
YmFsT2JqCiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RET01KSVQ+OjpjYWxsPGpzVGVz
dERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0QXR0cmlidXRlQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJnZXRBdHRyaWJ1dGUiKTsKIH0KIAotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0QXR0cmli
dXRlV2l0aG91dFR5cGVDaGVjayhKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU1Rlc3RET01KSVQqIGNhc3RlZFRoaXMsIERPTUpJVDo6SURMSlNBcmd1bWVudFR5cGU8
SURMRE9NU3RyaW5nPiBlbmNvZGVkTmFtZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihqc1Rl
c3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEF0dHJpYnV0ZVdpdGhvdXRUeXBlQ2hlY2ssIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU1Rlc3RET01KSVQqIGNhc3RlZFRoaXMsIERPTUpJVDo6SURMSlNBcmd1bWVudFR5cGU8
SURMRE9NU3RyaW5nPiBlbmNvZGVkTmFtZSkpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCk7CkBAIC0xMTUyLDcgKzExNTIsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
RE9NSklUUHJvdG90eXBlRnVuY3Rpb25JdGVtLCAoSlNHbG9iYWxPYmplY3QqIGxleAogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0RE9NSklUPjo6Y2FsbDxqc1Rlc3RET01KSVRQcm90b3R5
cGVGdW5jdGlvbkl0ZW1Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIml0
ZW0iKTsKIH0KIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJ
VFByb3RvdHlwZUZ1bmN0aW9uSXRlbVdpdGhvdXRUeXBlQ2hlY2soSlNDOjpKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RE9NSklUKiBjYXN0ZWRUaGlzLCBET01KSVQ6
OklETEpTQXJndW1lbnRUeXBlPElETFVuc2lnbmVkU2hvcnQ+IGVuY29kZWRYLCBET01KSVQ6OklE
TEpTQXJndW1lbnRUeXBlPElETFVuc2lnbmVkU2hvcnQ+IGVuY29kZWRZKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSXRlbVdpdGhvdXRUeXBl
Q2hlY2ssIEpTQzo6RW5jb2RlZEpTVmFsdWUsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1Rlc3RET01KSVQqIGNhc3RlZFRoaXMsIERPTUpJVDo6SURMSlNBcmd1
bWVudFR5cGU8SURMVW5zaWduZWRTaG9ydD4gZW5jb2RlZFgsIERPTUpJVDo6SURMSlNBcmd1bWVu
dFR5cGU8SURMVW5zaWduZWRTaG9ydD4gZW5jb2RlZFkpKQogewogICAgIFVOVVNFRF9QQVJBTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpOwpAQCAtMTE4NSw3ICsxMTg1LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSGFzQXR0cmlidXRlLCAoSlNHbG9iYWxPYmoK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdERPTUpJVD46OmNhbGw8anNUZXN0RE9NSklU
UHJvdG90eXBlRnVuY3Rpb25IYXNBdHRyaWJ1dGVCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgImhhc0F0dHJpYnV0ZSIpOwogfQogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25IYXNBdHRyaWJ1dGVXaXRo
b3V0VHlwZUNoZWNrKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
VGVzdERPTUpJVCogY2FzdGVkVGhpcykKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihqc1Rlc3RE
T01KSVRQcm90b3R5cGVGdW5jdGlvbkhhc0F0dHJpYnV0ZVdpdGhvdXRUeXBlQ2hlY2ssIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1Rlc3RET01KSVQqIGNhc3RlZFRoaXMpKQogewogICAgIFVOVVNFRF9QQVJBTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpOwpAQCAtMTIxOSw3ICsxMjE5LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudEJ5SWQsIChKU0dsb2JhbE8KICAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdERPTUpJVD46OmNhbGw8anNUZXN0RE9NSklUUHJvdG90
eXBlRnVuY3Rpb25HZXRFbGVtZW50QnlJZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAiZ2V0RWxlbWVudEJ5SWQiKTsKIH0KIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudEJ5SWRXaXRo
b3V0VHlwZUNoZWNrKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
VGVzdERPTUpJVCogY2FzdGVkVGhpcywgRE9NSklUOjpJRExKU0FyZ3VtZW50VHlwZTxJRExSZXF1
aXJlc0V4aXN0aW5nQXRvbVN0cmluZ0FkYXB0b3I8SURMRE9NU3RyaW5nPj4gZW5jb2RlZEVsZW1l
bnRJZCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5j
dGlvbkdldEVsZW1lbnRCeUlkV2l0aG91dFR5cGVDaGVjaywgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERPTUpJVCog
Y2FzdGVkVGhpcywgRE9NSklUOjpJRExKU0FyZ3VtZW50VHlwZTxJRExSZXF1aXJlc0V4aXN0aW5n
QXRvbVN0cmluZ0FkYXB0b3I8SURMRE9NU3RyaW5nPj4gZW5jb2RlZEVsZW1lbnRJZCkpCiB7CiAg
ICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIFZNJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CkBAIC0xMjU1LDcgKzEyNTUsNyBAQCBKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50
c0J5TmFtZSwgKEpTR2xvYgogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0RE9NSklUPjo6
Y2FsbDxqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRzQnlOYW1lQm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJnZXRFbGVtZW50c0J5TmFtZSIpOwog
fQogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUUHJvdG90
eXBlRnVuY3Rpb25HZXRFbGVtZW50c0J5TmFtZVdpdGhvdXRUeXBlQ2hlY2soSlNDOjpKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RE9NSklUKiBjYXN0ZWRUaGlzLCBE
T01KSVQ6OklETEpTQXJndW1lbnRUeXBlPElETEF0b21TdHJpbmdBZGFwdG9yPElETERPTVN0cmlu
Zz4+IGVuY29kZWRFbGVtZW50TmFtZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihqc1Rlc3RE
T01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRzQnlOYW1lV2l0aG91dFR5cGVDaGVjaywg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTVGVzdERPTUpJVCogY2FzdGVkVGhpcywgRE9NSklUOjpJRExKU0FyZ3VtZW50VHlw
ZTxJRExBdG9tU3RyaW5nQWRhcHRvcjxJRExET01TdHJpbmc+PiBlbmNvZGVkRWxlbWVudE5hbWUp
KQogewogICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBWTSYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT04uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pT
T04uY3BwCmluZGV4IDQzNzQ2ODFhYjQ0NzRkZmU3MjAyMjIxZDViYzdmM2M0MThkNDZkZDEuLmRm
NmNkZDFjMDA1ZmY5MGRmOWMzNWMwNGI5NDYwOTIyM2ExMzk0ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVm
YXVsdFRvSlNPTi5jcHAKQEAgLTc0LDQxICs3NCw0MSBAQCBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdERlZmF1bHRUb0pTT05Qcm90b3R5cGVGdW5jdGlvblRvSlNPTik7CiAKIC8vIEF0
dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1
bHRUb0pTT05Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERl
ZmF1bHRUb0pTT05Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkxvbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORW5hYmxlZEJ5U2V0
dGluZ3NBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RGVm
YXVsdFRvSlNPTkNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0RGVmYXVsdFRvSlNPTkxvbmdBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3REZWZhdWx0VG9KU09ORW5hYmxlZEJ5U2V0dGluZ3NBdHRyaWJ1dGUpOwogI2lm
IEVOQUJMRShURVNUX0NPTkRJVElPTkFMKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdERlZmF1bHRUb0pTT05FbmFibGVkQnlDb25kaXRpb25hbEF0dHJpYnV0ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09ORW5hYmxlZEJ5
Q29uZGl0aW9uYWxBdHRyaWJ1dGUpOwogI2VuZGlmCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkV2ZW50SGFuZGxlckF0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05FdmVudEhhbmRsZXJBdHRy
aWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERl
ZmF1bHRUb0pTT05GaXJzdFN0cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdERlZmF1bHRUb0pTT05GaXJzdFN0cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTlNlY29uZExv
bmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9K
U09OU2Vjb25kTG9uZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTlRoaXJkVW5KU09OYWJsZUF0dHJpYnV0ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05UaGlyZFVuSlNPTmFi
bGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdERlZmF1bHRUb0pTT05Gb3VydGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORm91cnRoVW5yZXN0cmlj
dGVkRG91YmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05GaWZ0aExvbmdDbGFtcGVk
QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3REZWZhdWx0VG9KU09OU2l4dGhUeXBlZGVmQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlNpeHRoVHlwZWRlZkF0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTlNl
dmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2V2ZW50aERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVs
dFRvSlNPTkVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORWlnaHRoSW5kaXJlY3RseUF0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTk5p
bnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OTmludGhPcHRpb25hbERpcmVjdGx5VG9KU09O
YWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0RGVmYXVsdFRvSlNPTlRlbnRoRnJvemVuQXJyYXlBdHRyaWJ1dGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGVudGhGcm96ZW5BcnJheUF0dHJp
YnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVm
YXVsdFRvSlNPTkVsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNP
TlR3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05Ud2VsZnRoSW50ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1
bHRUb0pTT05UaGlydGVlbnRoUmVjb3JkQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09ORXZlbnRIYW5k
bGVyQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVs
dFRvSlNPTkV2ZW50SGFuZGxlckF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdERlZmF1bHRUb0pTT05GaXJzdFN0cmluZ0F0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05GaXJzdFN0cmluZ0F0dHJpYnV0ZSk7
CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05TZWNvbmRMb25n
QXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRv
SlNPTlNlY29uZExvbmdBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3REZWZhdWx0VG9KU09OVGhpcmRVbkpTT05hYmxlQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlRoaXJkVW5KU09OYWJsZUF0dHJpYnV0
ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05Gb3VydGhV
bnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3REZWZhdWx0VG9KU09ORm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmlidXRlKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTkZpZnRoTG9uZ0Ns
YW1wZWRBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZh
dWx0VG9KU09ORmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01f
R0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05TaXh0aFR5cGVkZWZBdHRyaWJ1dGUpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2l4dGhUeXBlZGVmQXR0
cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTlNl
dmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2V2ZW50aERpcmVjdGx5VG9KU09OYWJsZUF0dHJp
YnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05FaWdo
dGhJbmRpcmVjdGx5QXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0RGVmYXVsdFRvSlNPTkVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09OTmludGhPcHRpb25hbERpcmVjdGx5VG9K
U09OYWJsZUF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERl
ZmF1bHRUb0pTT05OaW50aE9wdGlvbmFsRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTlRlbnRoRnJvemVuQXJy
YXlBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0
VG9KU09OVGVudGhGcm96ZW5BcnJheUF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdERlZmF1bHRUb0pTT05FbGV2ZW50aFNlcXVlbmNlQXR0cmlidXRlKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkVsZXZlbnRoU2VxdWVu
Y2VBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9K
U09OVHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0
dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05U
aGlydGVlbnRoUmVjb3JkQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0RGVmYXVsdFRvSlNPTlRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGUpOwogCiBjbGFzcyBK
U1Rlc3REZWZhdWx0VG9KU09OUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5h
bE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yNjEsNyArMjYxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
SlNUZXN0RGVmYXVsdFRvSlNPTiogSURMT3BlcmF0aW9uPEpTVGVzdERlZmF1bHRUb0pTT04+Ojpj
YXN0KEoKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3REZWZhdWx0VG9KU09OKj4oSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAg
IFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNzEsNyArMjcxLDcgQEAgRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGkKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdERl
ZmF1bHRUb0pTT046OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRv
SlNPTkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsK
ICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjkyLDcgKzI5Miw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OTG9uZ0F0dHJpYnV0ZUdl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwu
bG9uZ0F0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdERlZmF1bHRUb0pTT05Mb25nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09OTG9uZ0F0dHJpYnV0ZSwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZh
dWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05Mb25nQXR0cmlidXRlR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAibG9uZ0F0dHJpYnV0ZSIpOwogfQpAQCAtMzA1LDcgKzMwNSw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORW5hYmxlZEJ5U2V0dGluZ3NBdHRyaWJ1
dGVHZXR0ZXIoSlNHbG9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETFVuc2lnbmVkU2hvcnQ+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwu
ZW5hYmxlZEJ5U2V0dGluZ3NBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORW5hYmxlZEJ5U2V0dGluZ3NBdHRyaWJ1dGUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1
bHRUb0pTT05FbmFibGVkQnlTZXR0aW5nc0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpz
VGVzdERlZmF1bHRUb0pTT05FbmFibGVkQnlTZXR0aW5nc0F0dHJpYnV0ZUdldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgImVuYWJsZWRCeVNldHRpbmdzQXR0cmlidXRlIik7CiB9CkBAIC0zMTksNyArMzE5LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05FbmFibGVkQnlDb25kaXRp
b25hbEF0dHJpYnV0ZUdldHRlcihKU0cKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMRW51bWVyYXRpb248VGVzdERlZmF1bHRUb0pTT05FbnVtPj4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5lbmFibGVkQnlDb25kaXRpb25hbEF0dHJpYnV0
ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRU
b0pTT05FbmFibGVkQnlDb25kaXRpb25hbEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTkVuYWJsZWRCeUNvbmRp
dGlvbmFsQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTkVu
YWJsZWRCeUNvbmRpdGlvbmFsQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZW5hYmxlZEJ5Q29u
ZGl0aW9uYWxBdHRyaWJ1dGUiKTsKIH0KQEAgLTMzMiw3ICszMzIsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkV2ZW50SGFuZGxlckF0dHJpYnV0ZUdldHRlcihK
U0dsb2JhbE9iagogICAgIHJldHVybiBldmVudEhhbmRsZXJBdHRyaWJ1dGUodGhpc09iamVjdC53
cmFwcGVkKCksIGV2ZW50TmFtZXMoKS5lbnRIYW5kbGVyQXR0cmlidXRlRXZlbnQsIHdvcmxkRm9y
RE9NT2JqZWN0KHRoaXNPYmplY3QpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3REZWZhdWx0VG9KU09ORXZlbnRIYW5kbGVyQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09ORXZlbnRI
YW5kbGVyQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTkV2
ZW50SGFuZGxlckF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2Vy
dD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImV2ZW50SGFuZGxlckF0dHJpYnV0
ZSIpOwogfQpAQCAtMzQ3LDcgKzM0Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RE
ZWZhdWx0VG9KU09ORXZlbnRIYW5kbGVyQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9K
U09ORXZlbnRIYW5kbGVyQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09ORXZlbnRI
YW5kbGVyQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpzZXQ8c2V0SlNU
ZXN0RGVmYXVsdFRvSlNPTkV2ZW50SGFuZGxlckF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZXZlbnRIYW5kbGVyQXR0cmlidXRl
Iik7CiB9CkBAIC0zNjAsNyArMzYwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERl
ZmF1bHRUb0pTT05GaXJzdFN0cmluZ0F0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamUKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmZpcnN0U3RyaW5nQXR0cmlidXRlKCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkZp
cnN0U3RyaW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09ORmlyc3RTdHJpbmdBdHRyaWJ1dGUsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRv
SlNPTj46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09ORmlyc3RTdHJpbmdBdHRyaWJ1dGVHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJmaXJzdFN0cmluZ0F0dHJpYnV0ZSIpOwogfQpAQCAtMzc4LDcgKzM3OCw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORmlyc3RTdHJpbmdBdHRy
aWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORmlyc3RTdHJpbmdBdHRyaWJ1dGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdERlZmF1bHRUb0pTT05GaXJzdFN0cmluZ0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3REZWZhdWx0VG9KU09OPjo6c2V0PHNldEpTVGVzdERlZmF1bHRUb0pTT05GaXJzdFN0cmluZ0F0
dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAiZmlyc3RTdHJpbmdBdHRyaWJ1dGUiKTsKIH0KQEAgLTM5MSw3ICszOTEsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlNlY29uZExvbmdBdHRyaWJ1dGVH
ZXR0ZXIoSlNHbG9iYWxPYmplYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnNlY29u
ZExvbmdBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3REZWZhdWx0VG9KU09OU2Vjb25kTG9uZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTlNlY29uZExvbmdB
dHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09OU2Vjb25kTG9u
Z0F0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNlY29uZExvbmdBdHRyaWJ1dGUiKTsKIH0KQEAg
LTQwOSw3ICs0MDksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNP
TlNlY29uZExvbmdBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplYwogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlNlY29uZExv
bmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklO
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05TZWNvbmRMb25nQXR0cmlidXRl
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNP
TlNlY29uZExvbmdBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgInNlY29uZExvbmdBdHRyaWJ1dGUiKTsKIH0KQEAgLTQyMiw3ICs0
MjIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlRoaXJkVW5K
U09OYWJsZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8VGVzdEV4Y2VwdGlvbj4+KGxleGljYWxHbG9i
YWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnRo
aXJkVW5KU09OYWJsZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05UaGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pT
T05UaGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OmdldDxqc1Rlc3REZWZh
dWx0VG9KU09OVGhpcmRVbkpTT05hYmxlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JC
ZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidGhpcmRV
bkpTT05hYmxlQXR0cmlidXRlIik7CiB9CkBAIC00NDAsNyArNDQwLDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05UaGlyZFVuSlNPTmFibGVBdHRyaWJ1dGVTZXR0
ZXIoSlNHbG9iYWwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdERlZmF1bHRUb0pTT05UaGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dERlZmF1bHRUb0pTT05UaGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVm
YXVsdFRvSlNPTj46OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGhpcmRVbkpTT05hYmxlQXR0
cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJ0aGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTQ1Myw3ICs0NTMsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkZvdXJ0aFVucmVzdHJpY3Rl
ZERvdWJsZUF0dHJpYnV0ZUdldHRlcgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCAodG9KUzxJRExVbnJlc3RyaWN0ZWREb3VibGU+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUsIGltcGwuZm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmlidXRlKCkpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkZvdXJ0aFVu
cmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTkZvdXJ0aFVucmVzdHJpY3RlZERvdWJs
ZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05Gb3VydGhV
bnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9y
OjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJmb3VydGhVbnJlc3Ry
aWN0ZWREb3VibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTQ3MSw3ICs0NzEsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZvdXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0
dHJpYnV0ZVNldHRlcgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZvdXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZvdXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0
ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6c2V0PHNldEpTVGVzdERlZmF1bHRUb0pT
T05Gb3VydGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImZvdXJ0aFVucmVzdHJpY3RlZERvdWJs
ZUF0dHJpYnV0ZSIpOwogfQpAQCAtNDg0LDcgKzQ4NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3REZWZhdWx0VG9KU09ORmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZUdldHRlcihKU0ds
b2JhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETENsYW1wQWRh
cHRvcjxJRExMb25nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5maWZ0
aExvbmdDbGFtcGVkQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pT
T05GaWZ0aExvbmdDbGFtcGVkQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVm
YXVsdFRvSlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJmaWZ0
aExvbmdDbGFtcGVkQXR0cmlidXRlIik7CiB9CkBAIC01MDIsNyArNTAyLDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05GaWZ0aExvbmdDbGFtcGVkQXR0cmlidXRl
U2V0dGVyKEpTR2xvYmEKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdERlZmF1bHRUb0pTT05GaWZ0aExvbmdDbGFtcGVkQXR0cmlidXRlKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3REZWZhdWx0VG9KU09ORmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3REZWZhdWx0VG9KU09OPjo6c2V0PHNldEpTVGVzdERlZmF1bHRUb0pTT05GaWZ0aExvbmdDbGFt
cGVkQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJmaWZ0aExvbmdDbGFtcGVkQXR0cmlidXRlIik7CiB9CkBAIC01MTUsNyArNTE1
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05TaXh0aFR5cGVk
ZWZBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMRG91YmxlPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBpbXBsLnNpeHRoVHlwZWRlZkF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05TaXh0aFR5cGVkZWZBdHRyaWJ1dGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRU
b0pTT05TaXh0aFR5cGVkZWZBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OmdldDxqc1Rlc3REZWZh
dWx0VG9KU09OU2l4dGhUeXBlZGVmQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhh
dmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2l4dGhUeXBl
ZGVmQXR0cmlidXRlIik7CiB9CkBAIC01MzMsNyArNTMzLDcgQEAgc3RhdGljIGlubGluZSBib29s
IHNldEpTVGVzdERlZmF1bHRUb0pTT05TaXh0aFR5cGVkZWZBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9i
YWxPYmoKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dERlZmF1bHRUb0pTT05TaXh0aFR5cGVkZWZBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERlZmF1bHRU
b0pTT05TaXh0aFR5cGVkZWZBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46
OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2l4dGhUeXBlZGVmQXR0cmlidXRlU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzaXh0aFR5cGVk
ZWZBdHRyaWJ1dGUiKTsKIH0KQEAgLTU0Niw3ICs1NDYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0RGVmYXVsdFRvSlNPTlNldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGVH
ZXR0ZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZh
Y2U8VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWw+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5zZXZlbnRoRGlyZWN0
bHlUb0pTT05hYmxlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTlNldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERl
ZmF1bHRUb0pTT05TZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pT
T04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTlNldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRy
aWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRl
Iik7CiB9CkBAIC01NjQsNyArNTY0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdERl
ZmF1bHRUb0pTT05TZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlU2V0dGUKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pT
T05TZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0
VG9KU09OU2V2ZW50aERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RE
ZWZhdWx0VG9KU09OPjo6c2V0PHNldEpTVGVzdERlZmF1bHRUb0pTT05TZXZlbnRoRGlyZWN0bHlU
b0pTT05hYmxlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJzZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlIik7CiB9
CkBAIC01NzcsNyArNTc3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRU
b0pTT05FaWdodGhJbmRpcmVjdGx5QXR0cmlidXRlR2V0dGVyKEpTR2xvYmEKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPFRlc3REZWZhdWx0VG9K
U09OSW5kaXJlY3RJbmhlcml0YW5jZT4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0
Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLmVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1
dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0
VG9KU09ORWlnaHRoSW5kaXJlY3RseUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTkVpZ2h0aEluZGlyZWN0bHlB
dHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09ORWlnaHRoSW5k
aXJlY3RseUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1
dGUiKTsKIH0KQEAgLTU5NSw3ICs1OTUsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
RGVmYXVsdFRvSlNPTkVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYQogICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRv
SlNPTkVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05F
aWdodGhJbmRpcmVjdGx5QXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+Ojpz
ZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1dGVTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImVpZ2h0aElu
ZGlyZWN0bHlBdHRyaWJ1dGUiKTsKIH0KQEAgLTYwOCw3ICs2MDgsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTk5pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFi
bGVBdHRyaWJ1dAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExO
dWxsYWJsZTxJRExJbnRlcmZhY2U8VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWw+Pj4obGV4
aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUs
IGltcGwubmludGhPcHRpb25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZSgpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05OaW50aE9w
dGlvbmFsRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09OTmludGhPcHRpb25hbERp
cmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1
bHRUb0pTT05OaW50aE9wdGlvbmFsRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAibmludGhPcHRpb25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZSIpOwogfQpA
QCAtNjI2LDcgKzYyNiw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9K
U09OTmludGhPcHRpb25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OTmludGhP
cHRpb25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRv
SlNPTk5pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0RGVmYXVsdFRvSlNPTj46OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9KU09OTmludGhPcHRpb25h
bERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibmludGhPcHRpb25hbERpcmVjdGx5VG9KU09OYWJs
ZUF0dHJpYnV0ZSIpOwogfQpAQCAtNjM5LDcgKzYzOSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3REZWZhdWx0VG9KU09OVGVudGhGcm96ZW5BcnJheUF0dHJpYnV0ZUdldHRlcihKU0ds
b2JhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEZyb3plbkFy
cmF5PElETEJvb2xlYW4+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxP
YmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC50ZW50aEZyb3plbkFycmF5QXR0cmlidXRlKCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTlRl
bnRoRnJvemVuQXJyYXlBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05UZW50aEZyb3plbkFycmF5QXR0cmlidXRl
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTlRlbnRoRnJvemVuQXJyYXlB
dHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0ZW50aEZyb3plbkFycmF5QXR0cmlidXRlIik7CiB9
CkBAIC02NTcsNyArNjU3LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdERlZmF1bHRU
b0pTT05UZW50aEZyb3plbkFycmF5QXR0cmlidXRlU2V0dGVyKEpTR2xvYmEKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05UZW50
aEZyb3plbkFycmF5QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGVudGhGcm96
ZW5BcnJheUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6c2V0PHNldEpT
VGVzdERlZmF1bHRUb0pTT05UZW50aEZyb3plbkFycmF5QXR0cmlidXRlU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ0ZW50aEZyb3plbkFycmF5
QXR0cmlidXRlIik7CiB9CkBAIC02NzAsNyArNjcwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdERlZmF1bHRUb0pTT05FbGV2ZW50aFNlcXVlbmNlQXR0cmlidXRlR2V0dGVyKEpTR2xv
YmEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMU2VxdWVuY2U8
SURMRE9NU3RyaW5nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2Jq
ZWN0KCksIHRocm93U2NvcGUsIGltcGwuZWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZSgpKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05FbGV2
ZW50aFNlcXVlbmNlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09ORWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZSwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RE
ZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05FbGV2ZW50aFNlcXVlbmNlQXR0
cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZSIpOwogfQpA
QCAtNjg4LDcgKzY4OCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9K
U09ORWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORWxldmVu
dGhTZXF1ZW5jZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitK
U0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkVsZXZlbnRoU2Vx
dWVuY2VBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OnNldDxzZXRKU1Rl
c3REZWZhdWx0VG9KU09ORWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZWxldmVudGhTZXF1ZW5jZUF0
dHJpYnV0ZSIpOwogfQpAQCAtNzAxLDcgKzcwMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3REZWZhdWx0VG9KU09OVHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlR2V0dGVy
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFNlcXVlbmNlPElE
TEludGVyZmFjZTxUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbD4+PihsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC50d2Vs
ZnRoSW50ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OVHdlbGZ0aEludGVyZmFjZVNlcXVlbmNl
QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3REZWZhdWx0VG9KU09OVHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1
bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5j
ZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInR3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0dHJp
YnV0ZSIpOwogfQpAQCAtNzE5LDcgKzcxOSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3REZWZhdWx0VG9KU09OVHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlU2V0dGVyCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0
VG9KU09OVHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZh
dWx0VG9KU09OVHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dERlZmF1bHRUb0pTT04+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZh
Y2VTZXF1ZW5jZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAidHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlIik7CiB9
CkBAIC03MzIsNyArNzMyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRU
b0pTT05UaGlydGVlbnRoUmVjb3JkQXR0cmlidXRlR2V0dGVyKEpTR2xvYmEKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMUmVjb3JkPElETERPTVN0cmluZywgSURM
VW5zaWduZWRTaG9ydD4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9i
amVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGUoKSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OVGhp
cnRlZW50aFJlY29yZEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTlRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGUs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
RGVmYXVsdFRvSlNPTj46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09OVGhpcnRlZW50aFJlY29yZEF0
dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGUiKTsKIH0K
QEAgLTc1MCw3ICs3NTAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRv
SlNPTlRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYQogICAgIHJldHVybiB0
cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlRoaXJ0
ZWVudGhSZWNvcmRBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
SlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05UaGlydGVlbnRo
UmVjb3JkQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpzZXQ8c2V0SlNU
ZXN0RGVmYXVsdFRvSlNPTlRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInRoaXJ0ZWVudGhSZWNvcmRB
dHRyaWJ1dGUiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05G
aWx0ZXJlZEJ5RXhwb3NlZC5jcHAKaW5kZXggNjI0M2FhZTY1ZmM1ODEzNzAyOTE0YzM3OGNmYWIw
YzczMGExMTkxMy4uNjU2MDQyYzBmYzgyZTBkMjZkZGQxZTg1NmMxNzUxMTJlZDViYTYzMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERl
ZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3Nl
ZC5jcHAKQEAgLTUzLDExICs1MywxMSBAQCBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZFByb3RvdHlwZUZ1bmN0aW9uVAogCiAvLyBB
dHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZh
dWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0
VG9KU09ORmlsdGVyZWRCeUV4cG9zZWROb3JtYWxBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9z
ZWRGaWx0ZXJlZEJ5RXhwb3NlZFdpbmRvd0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZEZp
bHRlcmVkQnlFeHBvc2VkV29ya2VyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0NfREVDTEFSRV9DVVNUT01f
R0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVk
QnlFeHBvc2VkQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RE
ZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWROb3JtYWxBdHRyaWJ1dGUpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRGaWx0
ZXJlZEJ5RXhwb3NlZFdpbmRvd0F0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZEZpbHRlcmVkQnlFeHBvc2VkV29y
a2VyQXR0cmlidXRlKTsKIAogY2xhc3MgSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBv
c2VkUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJs
aWM6CkBAIC0xOTIsNyArMTkyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0RGVmYXVsdFRv
SlNPTkZpbHRlcmVkQnlFeHBvc2VkKiBJRExPcGVyYXRpb248SlNUZXN0RGVmYXUKICAgICByZXR1
cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQqPihK
U0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORmls
dGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3Ry
dWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0yMDIsNyArMjAyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvcihKU0cK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5
RXhwb3NlZDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
cHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMjIzLDcgKzIyMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWROb3JtYWxBdHRyaWJ1dGVHZXR0ZXIoCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubm9ybWFsQXR0cmlidXRlKCkpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVk
QnlFeHBvc2VkTm9ybWFsQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWROb3JtYWxB
dHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkPjo6Z2V0PGpzVGVzdERlZmF1
bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZE5vcm1hbEF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
Im5vcm1hbEF0dHJpYnV0ZSIpOwogfQpAQCAtMjM2LDcgKzIzNiw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRGaWx0ZXJlZEJ5RXhw
b3NlZFdpbmRvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERv
dWJsZT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5maWx0ZXJlZEJ5RXhw
b3NlZFdpbmRvd0F0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZEZpbHRlcmVkQnlFeHBvc2Vk
V2luZG93QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRGaWx0ZXJlZEJ5RXhwb3Nl
ZFdpbmRvd0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQ+OjpnZXQ8anNU
ZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkRmlsdGVyZWRCeUV4cG9zZWRXaW5kb3dB
dHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJmaWx0ZXJlZEJ5RXhwb3NlZFdpbmRvd0F0dHJpYnV0
ZSIpOwogfQpAQCAtMjQ5LDcgKzI0OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RE
ZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRGaWx0ZXJlZEJ5RXhwb3NlZFdvcmtlCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5maWx0ZXJlZEJ5RXhwb3NlZFdvcmtlckF0
dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERl
ZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZEZpbHRlcmVkQnlFeHBvc2VkV29ya2VyQXR0cmli
dXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RE
ZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRGaWx0ZXJlZEJ5RXhwb3NlZFdvcmtlckF0dHJp
YnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQ+OjpnZXQ8anNUZXN0RGVmYXVsdFRv
SlNPTkZpbHRlcmVkQnlFeHBvc2VkRmlsdGVyZWRCeUV4cG9zZWRXb3JrZXJBdHRyaWJ1dGVHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJmaWx0ZXJlZEJ5RXhwb3NlZFdvcmtlckF0dHJpYnV0ZSIpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERl
ZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5j
ZS5jcHAKaW5kZXggZmRkNjUzNTFjNzIyNDU1NmRjZGM0MTFlMTJmNzNkZjI3MmJlMWViYy4uOGMy
MjEyNTNkMjYzNGExOGQ3NzIzMTNlZGNjNTIxYzM4OTc3YjE1NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05JbmRp
cmVjdEluaGVyaXRhbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2UuY3BwCkBAIC00
Myw4ICs0Myw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05JbmRpcmVj
dEluaGVyaXRhbmNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJp
dGFuY2VDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERl
ZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3IpOwogCiBjbGFzcyBKU1Rl
c3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZVByb3RvdHlwZSBmaW5hbCA6IHB1Ymxp
YyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTQxLDcgKzE0MSw3IEBAIEpT
VmFsdWUgSlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2U6OmdldENvbnN0cnVj
dG9yKFZNJiB2bSwgY29uc3QgSlNHCiAgICAgcmV0dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTVGVz
dERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3I+KHZtLCAqanNDYXN0
PGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFu
Y2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIoanNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3RvciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTE1MSw3ICsxNTEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3IoSgogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2U6
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlw
ZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERl
ZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERl
ZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0LmNwcAppbmRleCA5
ZmM4MDRiMTY4ZjM0NWIxYTY0MTM0MDJhNmQ4ODk5OGZmODMzNDRmLi5mNzExODQ0ZGMzMmM0YjE2
ODc1YTg1OGFjZjYxNmVmNmUxNjljZjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9K
U09OSW5oZXJpdC5jcHAKQEAgLTcwLDEwICs3MCwxMCBAQCBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0UHJvdG90eXBlRnVuY3Rpb25Ub0pTT04pOwog
CiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRJ
bmhlcml0TG9uZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERl
ZmF1bHRUb0pTT05Jbmhlcml0SW5oZXJpdExvbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRD
b25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pT
T05Jbmhlcml0SW5oZXJpdExvbmdBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEluaGVyaXRMb25nQXR0cmlidXRlKTsKIAog
Y2xhc3MgSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMg
SlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE4Miw3ICsxODIsNyBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdCogSURMT3BlcmF0aW9uPEpT
VGVzdERlZmF1bHRUb0pTT05JbgogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdERlZmF1
bHRUb0pTT05Jbmhlcml0Kj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxG
cmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1
Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTE5Miw3ICsxOTIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplYwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQ6Omdl
dENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+
Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1
bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewog
ICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMTMsNyArMjEzLDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0SW5oZXJpdExv
bmdBdHRyaWJ1dGVHZXR0ZXIoSlNHbG8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5p
bmhlcml0TG9uZ0F0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0SW5oZXJpdExvbmdBdHRyaWJ1dGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pT
T05Jbmhlcml0SW5oZXJpdExvbmdBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQ+OjpnZXQ8
anNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRJbmhlcml0TG9uZ0F0dHJpYnV0ZUdldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgImluaGVyaXRMb25nQXR0cmlidXRlIik7CiB9CkBAIC0yMzEsNyArMjMxLDcgQEAgc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0SW5oZXJpdExvbmdB
dHRyaWJ1dGVTZXR0ZXIoSlNHbG8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0SW5oZXJpdExvbmdBdHRyaWJ1dGUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0SW5oZXJpdExvbmdBdHRyaWJ1dGUsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQ+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRv
SlNPTkluaGVyaXRJbmhlcml0TG9uZ0F0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiaW5oZXJpdExvbmdBdHRyaWJ1dGUiKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsLmNwcAppbmRl
eCAxODFhNTIxMmI1NzExODNjYzU2OTUwN2E1Nzg2NzE0MmEyYjVjNDA2Li45NmE0ZTc4NmZhZDdk
MTQ2N2U1YTc5MTliNTdhNjgyZGFlMWU3OWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERl
ZmF1bHRUb0pTT05Jbmhlcml0RmluYWwuY3BwCkBAIC03MCwxMiArNzAsMTIgQEAgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsUHJvdG90eXBl
RnVuY3Rpb25Ub0pTT04KIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5h
bENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlRm9vKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZp
bmFsTG9uZ0F0dHJpYnV0ZUZvbyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUJh
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0
RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVCYXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3IpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29u
c3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09O
SW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlRm9vKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0
ZUZvbyk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVCYXIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlQmFy
KTsKIAogY2xhc3MgSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbFByb3RvdHlwZSBmaW5h
bCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTg1LDcgKzE4
NSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWwq
IElETE9wZXJhdGlvbjxKU1Rlc3REZWZhdWx0VG9KCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8
SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbCo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9i
YWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVs
dFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
ICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk1LDcgKzE5NSw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRG
aW5hbENvbnN0cnVjdG9yKEpTR2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rl
c3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNU
T01fU0VUVEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIxNiw3ICsyMTYsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUZv
b0dldHRlcgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25n
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmZpbmFsTG9uZ0F0dHJpYnV0
ZUZvbygpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1
bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVGb28oSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0
RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVGb28sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbD46Omdl
dDxqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlRm9vR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAiZmluYWxMb25nQXR0cmlidXRlRm9vIik7CiB9CkBAIC0yMzQsNyArMjM0
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Rmlu
YWxGaW5hbExvbmdBdHRyaWJ1dGVGb29TZXR0ZXIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExv
bmdBdHRyaWJ1dGVGb28oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RF
RklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5h
bExvbmdBdHRyaWJ1dGVGb28sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5h
bD46OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmli
dXRlRm9vU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJmaW5hbExvbmdBdHRyaWJ1dGVGb28iKTsKIH0KQEAgLTI0Nyw3ICsyNDcsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9u
Z0F0dHJpYnV0ZUJhckdldHRlcgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmZpbmFs
TG9uZ0F0dHJpYnV0ZUJhcigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVCYXIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRU
b0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVCYXIsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVy
aXRGaW5hbD46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0
cmlidXRlQmFyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZmluYWxMb25nQXR0cmlidXRlQmFyIik7CiB9CkBA
IC0yNjUsNyArMjY1LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdERlZmF1bHRUb0pT
T05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVCYXJTZXR0ZXIKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0
RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVCYXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVCYXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNP
TkluaGVyaXRGaW5hbD46OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmlu
YWxMb25nQXR0cmlidXRlQmFyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJmaW5hbExvbmdBdHRyaWJ1dGVCYXIiKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REb21haW5TZWN1
cml0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RG9tYWluU2VjdXJpdHkuY3BwCmluZGV4IDBlM2Q5MzkzYTQ5MWExZmMwNDc4YzhhOGIyZjI2ODBi
MTk3OWRhOGYuLjljYzUwY2VlZDI4OWM1MTI0NjUxNDY5YTJlZjRmMTFkNGEzODU4NzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REb21h
aW5TZWN1cml0eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdERvbWFpblNlY3VyaXR5LmNwcApAQCAtNTgsOSArNTgsOSBAQCBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBlRnVuY3Rpb25PdmVy
bG9hZGVkTWV0aG9kKQogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RG9tYWluU2VjdXJpdHlFeGNp
dGluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RG9tYWluU2Vj
dXJpdHlDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERv
bWFpblNlY3VyaXR5Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3REb21haW5TZWN1cml0eUV4Y2l0aW5nQXR0cik7CiAKIGNsYXNzIEpTVGVzdERvbWFpblNlY3Vy
aXR5UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJs
aWM6CkBAIC0xOTEsNyArMTkxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0RG9tYWluU2Vj
dXJpdHkqIElETE9wZXJhdGlvbjxKU1Rlc3REb21haW5TZWN1cml0eT46OmNhc3QKICAgICByZXR1
cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3REb21haW5TZWN1cml0eSo+KEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERvbWFpblNlY3Vy
aXR5Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMDEsNyArMjAxLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXgKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdERvbWFpblNlY3VyaXR5
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5
cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RE
b21haW5TZWN1cml0eUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REb21haW5TZWN1cml0eUNvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYg
dm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjI2LDcgKzIyNiw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3REb21haW5TZWN1cml0eUV4Y2l0aW5nQXR0ckdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZXhjaXRpbmdB
dHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RG9tYWlu
U2VjdXJpdHlFeGNpdGluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGpzVGVzdERvbWFpblNlY3VyaXR5RXhjaXRpbmdBdHRyLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERvbWFpblNlY3VyaXR5
Pjo6Z2V0PGpzVGVzdERvbWFpblNlY3VyaXR5RXhjaXRpbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlz
RXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
ZXhjaXRpbmdBdHRyIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5jcHAKaW5k
ZXggNzNjNTY5MDk5YmNjZjA2YzQ1YzFlMDQ0MjI2ZjgyNjc0YjAyY2UyZi4uODZjMmNmN2UxMjYz
OTI5NjRlM2YwMDk1ZGQ5MjMyZjNlNjc4ZGZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlT
ZXR0aW5nLmNwcApAQCAtNTcsMjAgKzU3LDIwIEBAIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEJ5U2V0dGluCiAK
IC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Rlc3RTdWJPYmpFbmFi
bGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RFbmFibGVkQnlTZXR0aW5nVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEVuYWJsZWRCeVNldHRpbmdD
b25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEVuYWJsZWRC
eVNldHRpbmdDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEVu
YWJsZWRCeVNldHRpbmdUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Rlc3RTdWJP
YmpFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IpOwogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUp
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RW5hYmxlZEJ5U2V0dGlu
Z0VuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlT
ZXR0aW5nQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RW5h
YmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGUpOwogI2VuZGlmCiAjaWYgRU5B
QkxFKFRFU1RfRkVBVFVSRSkKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0
dGluZ3NBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RF
bmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGUpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0
dGluZ3NBdHRyaWJ1dGUpOwogI2VuZGlmCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWxBdHRy
aWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RFbmFibGVkQnlT
ZXR0aW5nU3VwcGxlbWVudGFsQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0ZSk7CiAKIGNsYXNz
IEpTVGVzdEVuYWJsZWRCeVNldHRpbmdQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05v
bkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTI2Myw3ICsyNjMsNyBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nKiBJRExPcGVyYXRpb248SlNUZXN0RW5hYmxlZEJ5
U2V0dGluZz46OgogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdEVuYWJsZWRCeVNldHRp
bmcqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1
ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFbmFibGVkQnlT
ZXR0aW5nQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI3Myw3
ICsyNzMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEVuYWJsZWRCeVNl
dHRpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbAogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoSlNUZXN0RW5hYmxlZEJ5U2V0dGluZzo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1i
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0yOTIsNyArMjkyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEVuYWJs
ZWRCeVNldHRpbmdUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG8KICAgICByZXR1
cm4gSlNUZXN0U3ViT2JqOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Rlc3RTdWJPYmpFbmFibGVkQnlT
ZXR0aW5nQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdEVuYWJsZWRCeVNldHRpbmdUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0Nv
bnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEVuYWJsZWRCeVNldHRpbmc+OjpnZXQ8anNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Rl
c3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZyIpOwogfQpAQCAt
MzA0LDcgKzMwNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0
aW5nVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvCiAgICAgcmV0dXJuIHRoaXNP
YmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nIiksIHN0cmxl
bigiVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmciKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0
dGluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nVGVzdFN1Yk9iakVu
YWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RFbmFibGVkQnlTZXR0aW5n
Pjo6c2V0PHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGlu
Z0NvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZyIpOwogfQpAQCAtMzE4LDcgKzMx
OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxl
ZEJ5U2V0dGluZ0F0dHJpYnV0ZUdldHRlcihKU0dsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dT
Y29wZSwgaW1wbC5lbmFibGVkQnlTZXR0aW5nQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVNldHRp
bmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlTZXR0aW5nQXR0cmlidXRlLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEVuYWJsZWRC
eVNldHRpbmc+OjpnZXQ8anNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVNldHRpbmdBdHRy
aWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJlbmFibGVkQnlTZXR0aW5nQXR0cmlidXRlIik7CiB9CkBA
IC0zMzksNyArMzM5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEVuYWJsZWRCeVNl
dHRpbmdFbmFibGVkQnlTZXR0aW5nQXR0cmlidXRlU2V0dGVyKEpTR2wKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFi
bGVkQnlTZXR0aW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxl
ZEJ5U2V0dGluZ0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RFbmFibGVkQnlTZXR0aW5nPjo6c2V0
PHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlTZXR0aW5nQXR0cmlidXRlU2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJlbmFibGVk
QnlTZXR0aW5nQXR0cmlidXRlIik7CiB9CkBAIC0zNTUsNyArMzU1LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlUd29TZXR0aW5nc0F0dHJp
YnV0ZUdldHRlcigKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
RE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmVuYWJsZWRC
eVR3b1NldHRpbmdzQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RFbmFi
bGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RW5hYmxlZEJ5U2V0dGlu
Zz46OmdldDxqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1
dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJlbmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZSIpOwogfQpA
QCAtMzc2LDcgKzM3Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RFbmFibGVkQnlT
ZXR0aW5nRW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGVTZXR0ZXIoCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5h
YmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdF
bmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RFbmFibGVkQnlTZXR0
aW5nPjo6c2V0PHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlUd29TZXR0aW5nc0F0
dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAiZW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGUiKTsKIH0KQEAgLTM5MSw3ICszOTEs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1l
bnRhbEF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIFdlYkNvcmU6OlRlc3RFbmFibGVkQnlTZXR0aW5nU3VwcGxlbWVudGFsOjpzdXBwbGVtZW50
YWxBdHRyaWJ1dGUoaW1wbCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1
cHBsZW1lbnRhbEF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RFbmFibGVkQnlTZXR0aW5nPjo6Z2V0PGpzVGVzdEVuYWJsZWRC
eVNldHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdXBwbGVtZW50
YWxBdHRyaWJ1dGUiKTsKIH0KQEAgLTQwOSw3ICs0MDksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0ZVNldHRlcihKU0ds
b2JhbAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RW5hYmxl
ZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RFbmFibGVkQnlT
ZXR0aW5nPjo6c2V0PHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1
dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwg
InN1cHBsZW1lbnRhbEF0dHJpYnV0ZSIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRGb3JDb250ZXh0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkRm9yQ29u
dGV4dC5jcHAKaW5kZXggNzBjODEyNzIyODdlOWJjMTdkYjNlMjBhODQ5ODZjYmUzYTE4YzRmNi4u
M2NiNDE1Mjc4NTgxN2IyNzZmYjE5ODRmNDE0NTNjZDhlYzJjYTg3ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRGb3JDb250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RW5hYmxlZEZvckNvbnRleHQuY3BwCkBAIC00OCwxMCArNDgsMTAgQEAgdXNpbmcgbmFtZXNw
YWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0RW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEVuYWJsZWRGb3JDb250ZXh0
VGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RFbmFibGVkRm9yQ29udGV4dFRlc3RTdWJPYmpFbmFibGVkRm9yQ29u
dGV4dENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0
RW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RFbmFibGVkRm9yQ29udGV4dFRlc3RTdWJPYmpFbmFibGVkRm9yQ29u
dGV4dENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RW5h
YmxlZEZvckNvbnRleHRUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3Rvcik7CiAK
IGNsYXNzIEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpT
Qzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNjIsNyArMTYyLDcgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgSlNUZXN0RW5hYmxlZEZvckNvbnRleHQqIElETEF0dHJpYnV0ZTxKU1Rlc3RF
bmFibGVkRm9yQ29udGV4dD4KICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RFbmFibGVk
Rm9yQ29udGV4dCo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0RW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTE3Miw3ICsxNzIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RFbmFibGVkRm9yQ29udGV4dDo6Z2V0Q29uc3RydWN0
b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmpl
Y3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RW5hYmxlZEZvckNvbnRl
eHRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVG
SU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5MSw3ICsxOTEsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0RW5hYmxlZEZvckNvbnRleHRUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHRD
b25zdHJ1YwogICAgIHJldHVybiBKU1Rlc3RTdWJPYmo6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFbmFibGVkRm9yQ29udGV4dFRl
c3RTdWJPYmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RFbmFibGVkRm9yQ29udGV4dFRlc3RTdWJP
YmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0Pjo6Z2V0PGpz
VGVzdEVuYWJsZWRGb3JDb250ZXh0VGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0
b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0U3ViT2JqRW5h
YmxlZEZvckNvbnRleHQiKTsKIH0KQEAgLTIwMyw3ICsyMDMsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0RW5hYmxlZEZvckNvbnRleHRUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHRD
b25zdHJ1YwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0U3ViT2Jq
RW5hYmxlZEZvckNvbnRleHQiKSwgc3RybGVuKCJUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHQi
KSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEVuYWJsZWRGb3JD
b250ZXh0VGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dEVuYWJsZWRGb3JDb250ZXh0VGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3Is
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0RW5hYmxlZEZvckNvbnRleHQ+OjpzZXQ8c2V0SlNUZXN0RW5hYmxlZEZv
ckNvbnRleHRUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvclNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFN1Yk9iakVu
YWJsZWRGb3JDb250ZXh0Iik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAK
aW5kZXggOWM4Zjg1NTFhN2Y2ODY4YTI1MGY1ODE1ZGExYWU0NDY3NjQyN2YxNi4uYTFjZGRjYTFj
MmMyMjE1Y2U5YTU5YWI2MGVmOTY0M2ExNDFmZjEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENv
bnN0cnVjdG9yLmNwcApAQCAtMTIzLDEyICsxMjMsMTIgQEAgdGVtcGxhdGU8PiBUZXN0RXZlbnRD
b25zdHJ1Y3Rvcjo6SW5pdCBjb252ZXJ0RGljdGlvbmFyeTxUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6
SW4KIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjEoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFdmVudENvbnN0cnVj
dG9yQXR0cjIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RXZlbnRDb25z
dHJ1Y3RvckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIxKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIyKTsKICNpZiBFTkFCTEUoU1BFQ0lBTF9FVkVOVCkK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFdmVudENvbnN0cnVjdG9y
QXR0cjMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RXZlbnRDb25zdHJ1
Y3RvckF0dHIzKTsKICNlbmRpZgogCiBjbGFzcyBKU1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90
eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CkBAIC0yNjMsNyArMjYz
LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvciogSURMQXR0cmli
dXRlPEpTVGVzdEV2ZW50Q29uc3RydWN0b3I+OjoKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxK
U1Rlc3RFdmVudENvbnN0cnVjdG9yKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCks
IEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEV2ZW50Q29uc3RydWN0b3JDb25z
dHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTI3Myw3ICsyNzMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6Z2V0
Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5n
bG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RXZlbnRD
b25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3Ry
dWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2
bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yOTQsNyArMjk0LDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMUdldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEcKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8
SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHIx
KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RXZlbnRDb25z
dHJ1Y3RvckF0dHIxKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjEsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcj46OmdldDxqc1Rl
c3RFdmVudENvbnN0cnVjdG9yQXR0cjFHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpB
c3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJhdHRyMSIpOwogfQpAQCAt
MzA3LDcgKzMwNyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVj
dG9yQXR0cjJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyMigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIyLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEV2
ZW50Q29uc3RydWN0b3I+OjpnZXQ8anNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIyR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiYXR0cjIiKTsKIH0KQEAgLTMyMSw3ICszMjEsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIzR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsRwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01T
dHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYXR0cjMoKSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFdmVudENvbnN0cnVjdG9y
QXR0cjMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVz
dEV2ZW50Q29uc3RydWN0b3JBdHRyMywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RFdmVudENvbnN0cnVjdG9yPjo6Z2V0PGpzVGVzdEV2ZW50
Q29uc3RydWN0b3JBdHRyM0dldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImF0dHIzIik7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJn
ZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2
ZW50VGFyZ2V0LmNwcAppbmRleCAwMzIxNzI0NmRkZjY1NjE1YjRhODliZTc2MWUyZDlkOTMzMTEy
YzM2Li40MTNmYmYyY2Y2NDg4MmFlM2QwNjU3NTlkZTRjNGJkYjI3MzdjZjVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJn
ZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudFRhcmdldC5jcHAKQEAgLTU0LDggKzU0LDggQEAgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZUZ1bmN0aW9uSXRlbSk7CiAKIC8vIEF0dHJp
YnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEV2ZW50VGFy
Z2V0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RFdmVudFRh
cmdldENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0
RXZlbnRUYXJnZXRDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IpOwogCiBjbGFzcyBKU1Rlc3RFdmVudFRhcmdldFBy
b3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpA
QCAtMjI2LDcgKzIyNiw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEV2ZW50VGFyZ2V0KiBJ
RExPcGVyYXRpb248SlNUZXN0RXZlbnRUYXJnZXQ+OjpjYXN0KEpTR2xvCiAgICAgcmV0dXJuIGpz
RHluYW1pY0Nhc3Q8SlNUZXN0RXZlbnRUYXJnZXQqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9y
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMjM2LDcgKzIzNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RFdmVudFRhcmdldDo6Z2V0Q29uc3RydWN0b3Io
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3Qo
KSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RFeGNlcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKaW5kZXggYjYxMDAxOGMyOTRiOTEyNGY1NDhiYzYw
NGMxM2MwZjQyNjA2NGY0Ny4uOTA5NzY3ODMzNGVkOTk3YmIzYTc5N2Y4MzA2MjJjZTU1ZDU4ZWVk
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKQEAgLTQ2LDkgKzQ2LDkgQEAgdXNpbmcgbmFtZXNw
YWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RXhjZXB0aW9uTmFtZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIoanNUZXN0RXhjZXB0aW9uTmFtZSk7CiAKIGNsYXNzIEpTVGVzdEV4Y2Vw
dGlvblByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVi
bGljOgpAQCAtMTU4LDcgKzE1OCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEV4Y2VwdGlv
biogSURMQXR0cmlidXRlPEpTVGVzdEV4Y2VwdGlvbj46OmNhc3QoSlNHbG9iYWxPCiAgICAgcmV0
dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0RXhjZXB0aW9uKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RXhjZXB0aW9uQ29uc3Ry
dWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0xNjgsNyArMTY4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEcK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEV4Y2VwdGlvbjo6Z2V0Q29uc3RydWN0
b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmpl
Y3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RXhjZXB0aW9uQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNU
T01fU0VUVEVSKHNldEpTVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMTg5LDcgKzE4OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RFeGNl
cHRpb25OYW1lR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5uYW1lKCkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RXhjZXB0aW9uTmFtZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RXhjZXB0aW9uTmFtZSwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RFeGNlcHRpb24+
OjpnZXQ8anNUZXN0RXhjZXB0aW9uTmFtZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm5hbWUiKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RH
ZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAppbmRleCBkYjVmZGQ5ODk4Mzli
Mzk0M2QzN2JkZjUxNTcyNjkyY2E2NTA4MWFiLi4yMWE3OGQyMTI4M2VjMDRiZjYxYzgxMjhiYmMw
Y2Y3NWMwY2YwZWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3Bw
CkBAIC00Niw5ICs0Niw5IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMK
IAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdlbmVyYXRlSXNSZWFj
aGFibGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdlbmVy
YXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUFTZWNyZXRBdHRyaWJ1dGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNv
bnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2VuZXJhdGVJ
c1JlYWNoYWJsZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0
R2VuZXJhdGVJc1JlYWNoYWJsZUFTZWNyZXRBdHRyaWJ1dGUpOwogCiBjbGFzcyBKU1Rlc3RHZW5l
cmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9i
amVjdCB7CiBwdWJsaWM6CkBAIC0xNjgsNyArMTY4LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNU
ZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSogSURMQXR0cmlidXRlPEpTVGVzdEdlbmVyYXRlSXNSZWFj
aGEKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKj4o
SlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHZW5lcmF0ZUlz
UmVhY2hhYmxlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTE3OCw3ICsxNzgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdlbmVy
YXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdAogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZTo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkp
OwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTksNyArMTk5LDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVBU2VjcmV0QXR0cmlidXRlR2V0dGVyKEpTR2xv
YmFsT2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3Ry
aW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmFTZWNyZXRBdHRyaWJ1
dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHZW5lcmF0
ZUlzUmVhY2hhYmxlQVNlY3JldEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUFTZWNyZXRBdHRyaWJ1
dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0R2VuZXJhdGVJc1JlYWNoYWJsZT46OmdldDxqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQVNl
Y3JldEF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImFTZWNyZXRBdHRyaWJ1dGUiKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RH
bG9iYWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEdsb2JhbE9iamVjdC5jcHAKaW5kZXggYTE2NjQ3Mjc2YWIxZTU2MmM3MTM2ZmFmYTdj
ODdkMGU1ZDhlMzhlZS4uNGQ5ZWIwMWRjNjY1MGY3YmZiM2QwNjY2YjU1ODhmZmQ5NDU2ODkxMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAKQEAgLTE1OCwxNzIgKzE1OCwxNzIgQEAgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9u
VGVzdEZlYXR1cmVHZXRTZWNyZXQKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0UmVn
dWxhckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9i
amVjdFJlZ3VsYXJBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRl
QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFs
T2JqZWN0Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RH
bG9iYWxPYmplY3RDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVz
dEdsb2JhbE9iamVjdFJlZ3VsYXJBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RHbG9iYWxPYmplY3RSZWd1bGFyQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0ZSk7
CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFB1YmxpY0Fu
ZFByaXZhdGVBdHRyaWJ1dGUpOwogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0
ZUNvbmRpdGlvbmFsQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJp
dmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlKTsK
ICNlbmRpZgogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0RW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1
bnRpbWVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RH
bG9iYWxPYmplY3RFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0RW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSk7
CiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxP
YmplY3RET01XaW5kb3dDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEdsb2JhbE9iamVjdERPTVdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3REZWRpY2F0ZWRXb3JrZXJH
bG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
R2xvYmFsT2JqZWN0RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0UGFp
bnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEdsb2JhbE9iamVjdFBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9i
amVjdFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0U2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9i
amVjdFRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmll
ckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxUcmFjZXJDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdERP
TVdpbmRvd0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
R2xvYmFsT2JqZWN0RE9NV2luZG93Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RHbG9iYWxPYmplY3REZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0RGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01f
R0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0
b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RQYWlu
dFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0R2xvYmFsT2JqZWN0U2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Ip
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RTZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zQ29u
c3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJD
b25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVj
dFRlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKTsKICNpZiBFTkFC
TEUoVEVTVF9DT05ESVRJT05BTCkKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbGJhY2tJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsYmFja0ludGVy
ZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0
R2xvYmFsT2JqZWN0VGVzdENhbGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbGJhY2tJbnRlcmZh
Y2VDb25zdHJ1Y3Rvcik7CiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q29uZGl0
aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVz
dERPTUpJVENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdERPTUpJVENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkNvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dERlZmF1bHRUb0pTT05Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdElu
aGVyaXRhbmNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFs
T2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0
VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3REb21haW5TZWN1cml0eUNvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxlZEZvckNvbnRleHRDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRDb25zdHJ1Y3RvckNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50VGFyZ2V0Q29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEV4Y2VwdGlvbkNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEdlbmVyYXRlSXNSZWFj
aGFibGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEdsb2JhbE9iamVjdENv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRT
ZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25z
dHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXNDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RE9NSklUQ29uc3RydWN0b3IpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RE9NSklU
Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3Rvcik7CitK
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9K
U09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVy
aXRhbmNlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFS
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5o
ZXJpdENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFs
T2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3Rvcik7CitKU0NfREVD
TEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09O
SW5oZXJpdEZpbmFsQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFS
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REb21haW5TZWN1cml0eUNv
bnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0
VGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3Ip
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxl
ZEZvckNvbnRleHRDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50Q29uc3RydWN0
b3JDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3Rvcik7
CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVu
dFRhcmdldENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xv
YmFsT2JqZWN0VGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGVDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0R2xvYmFsT2JqZWN0Q29u
c3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVj
dG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb25Db25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik7
CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJD
b25zdHJ1Y3Rvcik7CiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24y
KQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rv
cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJ
bnRlcmZhY2VDb25zdHJ1Y3Rvcik7CiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SXRlcmFi
bGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5RmFjdG9y
eUZ1bmN0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdEF1ZGlv
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RBdWRpb0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdExl
Z2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBM
aWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
Tm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9u
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFt
ZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRl
cldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFs
T2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVy
V2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlck5v
SWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmll
ckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNl
dHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4
Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlm
aWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRH
ZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92
ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5z
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3Bl
cnRpZXNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGll
c0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50
ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29y
ZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SXRlcmFibGVDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rv
ckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9u
Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RBdWRpb0NvbnN0cnVjdG9yKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0QXVkaW9Db25zdHJ1Y3Rv
cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdh
Y3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVj
dG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdE1h
cExpa2VDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3RNYXBMaWtlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
c0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3Rvcik7CitK
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aWZpZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0
cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJ
bmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNU
T01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
RGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29u
c3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik7CitKU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRo
SWRlbnRpZmllckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3Ip
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRE
ZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdl
dHRlckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFs
T2JqZWN0VGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlckNhbGxXaXRo
Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlck5vSWRlbnRp
ZmllckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFs
T2JqZWN0VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVD
TEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlcldp
dGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik7CitK
U0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNl
dHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1
Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRp
ZmllckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik7CitKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldp
dGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0
cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3Rvcik7CitKU0Nf
REVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRl
cldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3Zl
cnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJ
bnNDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9i
amVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1
Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3Rvcik7
CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNl
dHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0
SW5zQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5k
TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKTsKICNpZiBFTkFCTEUoQ29uZGl0aW9u
RGVyaXZlZCkKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RPcGVyYXRpb25Db25kaXRpb25hbENv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFs
T2JqZWN0VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0T3BlcmF0aW9uQ29uZGl0aW9u
YWxDb25zdHJ1Y3Rvcik7CiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5j
ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0
VGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVz
dFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3Rvcik7CitKU0Nf
REVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3Ip
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UGx1
Z2luSW50ZXJmYWNlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlNYXBMaWtl
Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3Ip
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVwb3J0
RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3Ip
OwogI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IpOwogI2VuZGlmCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RTZXRMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5n
aWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlv
bkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmlu
Z2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0
aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0Nv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJp
bmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0
ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RT
dHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0VHlwZWRlZnND
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0V29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0R2xvYmFsT2JqZWN0V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RXb3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VXaXRo
T3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVy
QW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25D
b25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVj
dFRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJOYW1lZE9w
ZXJhdGlvbkNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xv
YmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9y
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0
cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9u
TmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0Nv
bnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0
VGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFS
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRP
bmx5QXR0cmlidXRlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3Rv
cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RT
dHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdFR5cGVkZWZzQ29uc3RydWN0b3IpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0VHlwZWRl
ZnNDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9i
amVjdFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0V29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RH
bG9iYWxPYmplY3RXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik7CiAKIHVzaW5nIEpTVGVz
dEdsb2JhbE9iamVjdENvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFi
bGU8SlNUZXN0R2xvYmFsT2JqZWN0PjsKIApAQCAtODI3LDcgKzgyNyw3IEBAIHRlbXBsYXRlPD4g
aW5saW5lIEpTVGVzdEdsb2JhbE9iamVjdCogSURMT3BlcmF0aW9uPEpTVGVzdEdsb2JhbE9iamVj
dD46OmNhc3QoSlNHCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0R2xvYmFsT2JqZWN0
Kj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUo
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
ICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODM3LDcgKzgzNyw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rl
c3RHbG9iYWxPYmplY3Q6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxP
YmplY3RDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7
CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg1OCw3ICs4NTgsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0UmVndWxhckF0dHJpYnV0
ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGltcGwucmVndWxhckF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFJlZ3VsYXJBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFJlZ3VsYXJB
dHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFJlZ3VsYXJBdHRy
aWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWd1bGFyQXR0cmlidXRlIik7CiB9CkBAIC04NzYsNyAr
ODc2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFJlZ3VsYXJB
dHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFJlZ3VsYXJBdHRyaWJ1dGUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFJlZ3VsYXJBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFJlZ3VsYXJBdHRyaWJ1dGVT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJl
Z3VsYXJBdHRyaWJ1dGUiKTsKIH0KQEAgLTg4OSw3ICs4ODksNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0ZUdldHRlcihK
U0dsb2JhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01T
dHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwucHVibGljQW5kUHJp
dmF0ZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFB1YmxpY0Fu
ZFByaXZhdGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFB1
YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGVHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJwdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlIik7CiB9CkBAIC05MDcsNyArOTA3LDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZh
dGVBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGUsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFB1Ymxp
Y0FuZFByaXZhdGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgInB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTky
MSw3ICs5MjEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0UHVi
bGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlR2V0dAogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3Qs
IHRocm93U2NvcGUsIGltcGwucHVibGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0
UHVibGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2
YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9i
amVjdFB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZUdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJp
YnV0ZSIpOwogfQpAQCAtOTQyLDcgKzk0Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGVTZXR0CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RQdWJsaWNBbmRQcml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEds
b2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZSwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJp
dmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJwdWJsaWNBbmRQcml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1
dGUiKTsKIH0KQEAgLTk1OCw3ICs5NTgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
R2xvYmFsT2JqZWN0RW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbAogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGlj
YWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0
ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9i
amVjdEVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1bnRpbWVBdHRy
aWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1bnRp
bWVBdHRyaWJ1dGVHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJlbmFi
bGVkQXRSdW50aW1lQXR0cmlidXRlIik7CiB9CkBAIC05NzksNyArOTc5LDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVT
ZXR0ZXIoSlNHbG9iYWwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1bnRpbWVB
dHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgImVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUiKTsKIH0KQEAgLTk5Miw3ICs5OTIsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0RE9NV2luZG93Q29uc3Ry
dWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplYwogICAgIHJldHVybiBKU0RPTVdpbmRvdzo6Z2V0Q29u
c3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xv
YmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEds
b2JhbE9iamVjdERPTVdpbmRvd0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RET01XaW5kb3dDb25zdHJ1Y3Rv
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0RE9NV2luZG93Q29uc3RydWN0
b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJET01XaW5kb3ciKTsK
IH0KQEAgLTEwMDQsNyArMTAwNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RET01XaW5kb3dDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjCiAgICAgcmV0
dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCBy
ZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIkRPTVdpbmRvdyIpLCBzdHJsZW4oIkRPTVdp
bmRvdyIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFs
T2JqZWN0RE9NV2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdERPTVdp
bmRvd0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rl
c3RHbG9iYWxPYmplY3RET01XaW5kb3dDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiRE9NV2luZG93Iik7CiB9CkBAIC0xMDE1
LDcgKzEwMTUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0RGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvckdldAogICAgIHJldHVybiBKU0RlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0RGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25z
dHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0RGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgIkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIik7CiB9CkBAIC0xMDI3LDcgKzEw
MjcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0RGVkaWNhdGVk
V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvclNldAogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1
dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KCJEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSIpLCBzdHJsZW4oIkRlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RHbG9iYWxPYmplY3REZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3REZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9i
YWxPYmplY3REZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZSIpOwogfQpAQCAtMTAzOCw3ICsxMDM4LDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0
b3JHZXR0ZXIKICAgICByZXR1cm4gSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZTo6Z2V0Q29uc3Ry
dWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFs
T2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2Jh
bE9iamVjdFBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFBhaW50V29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2Jh
bE9iamVjdFBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJQYWludFdvcmtsZXRHbG9iYWxTY29wZSIpOwogfQpA
QCAtMTA1MCw3ICsxMDUwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9i
amVjdFBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JTZXR0ZXIKICAgICByZXR1cm4g
dGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUiKSwgc3Ry
bGVuKCJQYWludFdvcmtsZXRHbG9iYWxTY29wZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVD
b25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xv
YmFsT2JqZWN0UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvclNldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiUGFpbnRXb3JrbGV0R2xv
YmFsU2NvcGUiKTsKIH0KQEAgLTEwNjEsNyArMTA2MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rvckdl
dHRlCiAgICAgcmV0dXJuIEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1Y3Rv
cihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmpl
Y3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2Jq
ZWN0U2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxP
YmplY3RTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSIpOwogfQpA
QCAtMTA3Myw3ICsxMDczLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9i
amVjdFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yU2V0dGUKICAgICByZXR1cm4g
dGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIiksIHN0
cmxlbigiU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5F
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0U2VydmljZVdvcmtlckdsb2JhbFNj
b3BlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVz
dEdsb2JhbE9iamVjdFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJTZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUiKTsKIH0KQEAgLTEwODQsNyArMTA4NCw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3RvckdldHRl
cihKU0dsb2JhCiAgICAgcmV0dXJuIEpTVGVzdENFUmVhY3Rpb25zOjpnZXRDb25zdHJ1Y3RvcihK
U0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3Qo
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0
VGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc0NvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnND
b25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RD
RVJlYWN0aW9ucyIpOwogfQpAQCAtMTA5Niw3ICsxMDk2LDcgQEAgc3RhdGljIGlubGluZSBib29s
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yU2V0dGVyKEpT
R2xvYmEKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdENFUmVhY3Rp
b25zIiksIHN0cmxlbigiVGVzdENFUmVhY3Rpb25zIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3IsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RD
RVJlYWN0aW9uc0NvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0Q0VSZWFjdGlvbnMiKTsKIH0KQEAgLTExMDcsNyArMTEw
Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFj
dGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yR2V0CiAgICAgcmV0dXJuIEpTVGVzdENFUmVhY3Rp
b25zU3RyaW5naWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmll
ckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9y
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNTdHJp
bmdpZmllckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAiVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIiKTsKIH0KQEAgLTExMTksNyArMTExOSw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNT
dHJpbmdpZmllckNvbnN0cnVjdG9yU2V0CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExD
aGFyKj4oIlRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyIiksIHN0cmxlbigiVGVzdENFUmVhY3Rp
b25zU3RyaW5naWZpZXIiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0
b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RDRVJlYWN0aW9uc1N0cmlu
Z2lmaWVyIik7CiB9CkBAIC0xMTMwLDcgKzExMzAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvckdldHRlcihKU0dsb2Jh
bAogICAgIHJldHVybiBKU1Rlc3RDYWxsVHJhY2VyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxU
cmFjZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxUcmFjZXJDb25zdHJ1Y3Rvckdl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RDYWxsVHJhY2VyIik7
CiB9CkBAIC0xMTQyLDcgKzExNDIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbAogICAgIHJl
dHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0Q2FsbFRyYWNlciIpLCBzdHJsZW4o
IlRlc3RDYWxsVHJhY2VyIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2Jh
bE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbFRyYWNlckNvbnN0cnVj
dG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJUZXN0Q2FsbFRyYWNlciIpOwogfQpAQCAtMTE1NCw3ICsxMTU0LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsYmFja0ludGVyZmFjZUNvbnN0cnVj
dG9yR2V0dGVyKEoKICAgICByZXR1cm4gSlNUZXN0Q2FsbGJhY2tJbnRlcmZhY2U6OmdldENvbnN0
cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2Jh
bE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0Q2FsbGJhY2tJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxi
YWNrSW50ZXJmYWNlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9i
amVjdFRlc3RDYWxsYmFja0ludGVyZmFjZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdENhbGxiYWNrSW50ZXJmYWNlIik7CiB9CkBAIC0xMTY5
LDcgKzExNjksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dENhbGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0b3JTZXR0ZXIoSgogICAgIHJldHVybiB0aGlzT2Jq
ZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0Q2FsbGJhY2tJbnRlcmZhY2UiKSwgc3RybGVuKCJUZXN0
Q2FsbGJhY2tJbnRlcmZhY2UiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsYmFja0ludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbGJhY2tJbnRlcmZhY2VDb25zdHJ1Y3RvciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENh
bGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RDYWxsYmFja0ludGVyZmFjZSIpOwogfQpAQCAt
MTE4Miw3ICsxMTgyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnUKICAgICByZXR1cm4gSlNU
ZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2xh
c3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdENsYXNzV2l0
aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9y
R2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdENsYXNzV2l0aEpT
QnVpbHRpbkNvbnN0cnVjdG9yIik7CiB9CkBAIC0xMTk0LDcgKzExOTQsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0
cnVjdG9yQ29uc3RydQogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0
Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IiKSwgc3RybGVuKCJUZXN0Q2xhc3NXaXRoSlNC
dWlsdGluQ29uc3RydWN0b3IiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29u
c3RydWN0b3JDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3Ry
dWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgIlRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvciIpOwogfQpAQCAtMTIwNSw3ICsx
MjA1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDb25k
aXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3JHZXR0ZXIKICAgICByZXR1cm4gSlNUZXN0Q29uZGl0
aW9uYWxJbmNsdWRlczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9i
amVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFs
T2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29u
c3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlcyIpOwogfQpAQCAtMTIxNyw3ICsxMjE3LDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3Ry
dWN0b3JTZXR0ZXIKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdENv
bmRpdGlvbmFsSW5jbHVkZXMiKSwgc3RybGVuKCJUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcyIpKSwg
dmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENvbmRpdGlvbmFsSW5jbHVkZXND
b25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAiVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMiKTsKIH0KQEAgLTEyMjgsNyArMTIyOCw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RE9NSklUQ29u
c3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVGVzdERPTUpJVDo6Z2V0
Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3Qu
Z2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RET01KSVRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdERPTUpJVENvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RE9NSklUQ29u
c3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0RE9N
SklUIik7CiB9CkBAIC0xMjQwLDcgKzEyNDAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdERPTUpJVENvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZQog
ICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0RE9NSklUIiksIHN0cmxl
bigiVGVzdERPTUpJVCIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdERPTUpJVENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0RE9NSklUQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RET01KSVRDb25zdHJ1Y3RvclNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdERPTUpJVCIp
OwogfQpAQCAtMTI1MSw3ICsxMjUxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEds
b2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG8KICAgICBy
ZXR1cm4gSlNUZXN0RGVmYXVsdFRvSlNPTjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4
aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9K
U09OQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFs
T2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0
b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0RGVmYXVsdFRv
SlNPTiIpOwogfQpAQCAtMTI2Myw3ICsxMjYzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG8K
ICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdERlZmF1bHRUb0pTT04i
KSwgc3RybGVuKCJUZXN0RGVmYXVsdFRvSlNPTiIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dERlZmF1bHRUb0pTT05Db25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdERlZmF1bHRUb0pTT04iKTsKIH0KQEAgLTEyNzQs
NyArMTI3NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zCiAgICAgcmV0dXJuIEpTVGVzdERl
ZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1
bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0
VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25z
dHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3REZWZh
dWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZSIpOwogfQpAQCAtMTI4Niw3ICsxMjg2LDcgQEAg
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09O
SW5kaXJlY3RJbmhlcml0YW5jZUNvbnMKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qo
dm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENo
YXIqPigiVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlIiksIHN0cmxlbigiVGVz
dERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluZGly
ZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERl
ZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09O
SW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5o
ZXJpdGFuY2UiKTsKIH0KQEAgLTEyOTcsNyArMTI5Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3Rvckdl
dHRlCiAgICAgcmV0dXJuIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0OjpnZXRDb25zdHJ1Y3Rv
cihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmpl
Y3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0
VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3REZWZhdWx0VG9KU09OSW5oZXJpdCIpOwogfQpA
QCAtMTMwOSw3ICsxMzA5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yU2V0dGUKICAgICByZXR1cm4g
dGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0IiksIHN0
cmxlbigiVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5F
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0RGVmYXVs
dFRvSlNPTkluaGVyaXQiKTsKIH0KQEAgLTEzMjAsNyArMTMyMCw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENv
bnN0cnVjdG9yCiAgICAgcmV0dXJuIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWw6Omdl
dENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0
Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVj
dD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENv
bnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdERl
ZmF1bHRUb0pTT05Jbmhlcml0RmluYWwiKTsKIH0KQEAgLTEzMzIsNyArMTMzMiw3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVy
aXRGaW5hbENvbnN0cnVjdG9yCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4o
IlRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsIiksIHN0cmxlbigiVGVzdERlZmF1bHRUb0pT
T05Jbmhlcml0RmluYWwiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3JTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3REZWZhdWx0
VG9KU09OSW5oZXJpdEZpbmFsIik7CiB9CkBAIC0xMzQzLDcgKzEzNDMsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0
b3JHZXR0ZXIoSlNHbAogICAgIHJldHVybiBKU1Rlc3REb21haW5TZWN1cml0eTo6Z2V0Q29uc3Ry
dWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFs
T2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RG9tYWluU2Vj
dXJpdHlDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVz
dERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJUZXN0RG9tYWluU2VjdXJpdHkiKTsKIH0KQEAgLTEzNTUsNyArMTM1NSw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RG9tYWluU2VjdXJp
dHlDb25zdHJ1Y3RvclNldHRlcihKU0dsCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExD
aGFyKj4oIlRlc3REb21haW5TZWN1cml0eSIpLCBzdHJsZW4oIlRlc3REb21haW5TZWN1cml0eSIp
KSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46
OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3RvclNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVz
dERvbWFpblNlY3VyaXR5Iik7CiB9CkBAIC0xMzY2LDcgKzEzNjYsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3Rv
ckdldHRlcihKUwogICAgIHJldHVybiBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nOjpnZXRDb25zdHJ1
Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxP
YmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFs
T2JqZWN0VGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRC
eVNldHRpbmdDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0
VGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgIlRlc3RFbmFibGVkQnlTZXR0aW5nIik7CiB9CkBAIC0xMzc4LDcgKzEz
NzgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJs
ZWRCeVNldHRpbmdDb25zdHJ1Y3RvclNldHRlcihKUwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1
dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KCJUZXN0RW5hYmxlZEJ5U2V0dGluZyIpLCBzdHJsZW4oIlRlc3RFbmFibGVk
QnlTZXR0aW5nIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxlZEJ5U2V0
dGluZ0NvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJUZXN0RW5hYmxlZEJ5U2V0dGluZyIpOwogfQpAQCAtMTM4OSw3ICsxMzg5
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVk
Rm9yQ29udGV4dENvbnN0cnVjdG9yR2V0dGVyKEoKICAgICByZXR1cm4gSlNUZXN0RW5hYmxlZEZv
ckNvbnRleHQ6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
LCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xv
YmFsT2JqZWN0VGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yR2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdEVuYWJsZWRGb3JDb250
ZXh0Iik7CiB9CkBAIC0xNDAxLDcgKzE0MDEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3JTZXR0ZXIoSgog
ICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0RW5hYmxlZEZvckNvbnRl
eHQiKSwgc3RybGVuKCJUZXN0RW5hYmxlZEZvckNvbnRleHQiKSksIHZhbHVlKTsKIH0KIAotYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVkRm9yQ29udGV4
dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxlZEZvckNvbnRl
eHRDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RFbmFibGVkRm9y
Q29udGV4dCIpOwogfQpAQCAtMTQxMiw3ICsxNDEyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3JHZXR0ZXIo
SlMKICAgICByZXR1cm4gSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudENvbnN0cnVjdG9y
Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVu
dENvbnN0cnVjdG9yQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJUZXN0RXZlbnRDb25zdHJ1Y3RvciIpOwogfQpAQCAtMTQyNCw3ICsxNDI0LDcgQEAg
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudENvbnN0cnVj
dG9yQ29uc3RydWN0b3JTZXR0ZXIoSlMKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qo
dm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENo
YXIqPigiVGVzdEV2ZW50Q29uc3RydWN0b3IiKSwgc3RybGVuKCJUZXN0RXZlbnRDb25zdHJ1Y3Rv
ciIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50Q29uc3RydWN0b3JDb25z
dHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAiVGVzdEV2ZW50Q29uc3RydWN0b3IiKTsKIH0KQEAgLTE0MzUsNyArMTQzNSw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRUYXJnZXRDb25z
dHJ1Y3RvckdldHRlcihKU0dsb2JhCiAgICAgcmV0dXJuIEpTVGVzdEV2ZW50VGFyZ2V0OjpnZXRD
b25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5n
bG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
R2xvYmFsT2JqZWN0VGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudFRh
cmdldENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
RXZlbnRUYXJnZXRDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgIlRlc3RFdmVudFRhcmdldCIpOwogfQpAQCAtMTQ0Nyw3ICsxNDQ3LDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudFRhcmdldENvbnN0cnVj
dG9yU2V0dGVyKEpTR2xvYmEKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigi
VGVzdEV2ZW50VGFyZ2V0IiksIHN0cmxlbigiVGVzdEV2ZW50VGFyZ2V0IikpLCB2YWx1ZSk7CiB9
CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRUYXJn
ZXRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVG
SU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50VGFyZ2V0Q29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0RXZlbnRUYXJnZXQiKTsKIH0KQEAg
LTE0NTgsNyArMTQ1OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPCiAgICAgcmV0dXJuIEpT
VGVzdEV4Y2VwdGlvbjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9i
amVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFs
T2JqZWN0VGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0RXhjZXB0aW9uIik7CiB9CkBAIC0xNDcwLDcgKzE0NzAs
NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEV4Y2VwdGlv
bkNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsTwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERp
cmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBMQ2hhcio+KCJUZXN0RXhjZXB0aW9uIiksIHN0cmxlbigiVGVzdEV4Y2VwdGlvbiIpKSwgdmFs
dWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEV4
Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RXhjZXB0aW9u
Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3RFeGNlcHRpb25Db25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEV4Y2VwdGlvbiIpOwogfQpAQCAt
MTQ4MSw3ICsxNDgxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3JHZXR0ZXIKICAgICByZXR1cm4gSlNU
ZXN0R2VuZXJhdGVJc1JlYWNoYWJsZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0
b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSIpOwogfQpAQCAtMTQ5Myw3ICsxNDkzLDcgQEAgc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlQ29uc3RydWN0b3JTZXR0ZXIKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0s
IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIq
PigiVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUiKSwgc3RybGVuKCJUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGVDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUiKTsKIH0KQEAgLTE1MDQs
NyArMTUwNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
R2xvYmFsT2JqZWN0Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iCiAgICAgcmV0dXJuIEpTVGVzdEds
b2JhbE9iamVjdDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFs
T2JqZWN0VGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0R2xvYmFsT2JqZWN0Iik7CiB9CkBAIC0xNTE2
LDcgKzE1MTYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dEdsb2JhbE9iamVjdENvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYgogICAgIHJldHVybiB0aGlzT2Jq
ZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0R2xvYmFsT2JqZWN0IiksIHN0cmxlbigiVGVzdEdsb2Jh
bE9iamVjdCIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2Jq
ZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3Rv
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
VGVzdEdsb2JhbE9iamVjdCIpOwogfQpAQCAtMTUyNyw3ICsxNTI3LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVy
Q29uc3RydWN0b3IKICAgICByZXR1cm4gSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllcjo6
Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmpl
Y3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2Jq
ZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVy
Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0
SW5kZXhlZFNldHRlck5vSWRlbnRpZmllciIpOwogfQpAQCAtMTUzOSw3ICsxNTM5LDcgQEAgc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyQ29uc3RydWN0b3IKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0s
IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIq
PigiVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIiKSwgc3RybGVuKCJUZXN0SW5kZXhlZFNl
dHRlck5vSWRlbnRpZmllciIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJD
b25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvclNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXIiKTsKIH0KQEAgLTE1NTAsNyArMTU1MCw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlclRocm93aW5n
RXhjZXB0aW9uQ29uc3RyCiAgICAgcmV0dXJuIEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4
Y2VwdGlvbjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCks
IHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNv
bnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhl
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uIik7
CiB9CkBAIC0xNTYyLDcgKzE1NjIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cgogICAgIHJl
dHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0SW5kZXhlZFNldHRlclRocm93aW5n
RXhjZXB0aW9uIiksIHN0cmxlbigiVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIp
KSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0
b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvclNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEluZGV4ZWRT
ZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIpOwogfQpAQCAtMTU3Myw3ICsxNTczLDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyV2l0aElk
ZW50aWZpZXJDb25zdHJ1Y3QKICAgICByZXR1cm4gSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVu
dGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0
b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVy
V2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgIlRlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIiKTsKIH0KQEAgLTE1ODUs
NyArMTU4NSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0CiAgICAgcmV0dXJuIHRoaXNPYmpl
Y3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9j
YXN0PGNvbnN0IExDaGFyKj4oIlRlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIiKSwgc3Ry
bGVuKCJUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyIikpLCB2YWx1ZSk7CiB9CiAKLWJv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRl
eGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyIik7CiB9CkBA
IC0xNTk3LDcgKzE1OTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsTwogICAgIHJldHVybiBK
U1Rlc3RJbnRlcmZhY2U6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0
R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdEludGVyZmFjZSIpOwogfQpAQCAtMTYxMiw3ICsxNjEy
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZh
Y2VDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE8KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXRE
aXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPigiVGVzdEludGVyZmFjZSIpLCBzdHJsZW4oIlRlc3RJbnRlcmZhY2UiKSksIHZh
bHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJ
bnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitK
U0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEludGVyZmFj
ZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RJbnRlcmZhY2UiKTsKIH0KQEAg
LTE2MjUsNyArMTYyNSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3RvCiAgICAgcmV0dXJuIEpT
VGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEludGVy
ZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VMZWFk
aW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3RvckdldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJz
Y29yZSIpOwogfQpAQCAtMTYzNyw3ICsxNjM3LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG8K
ICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdEludGVyZmFjZUxlYWRp
bmdVbmRlcnNjb3JlIiksIHN0cmxlbigiVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlIikp
LCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRl
cmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVy
c2NvcmUiKTsKIH0KQEAgLTE2NDgsNyArMTY0OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0SXRlcmFibGVDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9i
CiAgICAgcmV0dXJuIEpTVGVzdEl0ZXJhYmxlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEl0ZXJhYmxl
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJdGVyYWJsZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46
OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SXRlcmFibGVDb25zdHJ1Y3RvckdldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RJdGVyYWJsZSIpOwogfQpAQCAtMTY2
MCw3ICsxNjYwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RJdGVyYWJsZUNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2IKICAgICByZXR1cm4gdGhpc09i
amVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdEl0ZXJhYmxlIiksIHN0cmxlbigiVGVzdEl0ZXJhYmxl
IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0SXRlcmFibGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEl0
ZXJhYmxlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RJdGVyYWJsZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0SXRlcmFibGUiKTsKIH0K
QEAgLTE2NzEsNyArMTY3MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvckdldHRlCiAgICAgcmV0dXJu
IEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEpTQnVpbHRp
bkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNv
bnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SlNCdWls
dGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgIlRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvciIpOwogfQpAQCAtMTY4Myw3ICsxNjgz
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RKU0J1aWx0
aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yU2V0dGUKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXRE
aXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPigiVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yIiksIHN0cmxlbigiVGVzdEpTQnVp
bHRpbkNvbnN0cnVjdG9yIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3Is
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0SlNCdWlsdGluQ29uc3RydWN0b3Ii
KTsKIH0KQEAgLTE2OTQsNyArMTY5NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3JHZXR0CiAgICAg
cmV0dXJuIEpTVGVzdDo6Z2V0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uKEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5RmFjdG9y
eUZ1bmN0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25z
dHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeUZh
Y3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbiIpOwogfQpAQCAtMTcwNiw3ICsxNzA2
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lG
YWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3RvclNldHQKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXRE
aXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPigiVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbiIpLCBzdHJsZW4oIlRlc3RMZWdh
Y3lGYWN0b3J5RnVuY3Rpb24iKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RMZWdhY3lGYWN0b3J5RnVu
Y3Rpb24iKTsKIH0KQEAgLTE3MTcsNyArMTcxNyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RHbG9iYWxPYmplY3RBdWRpb0NvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
CiAgICAgcmV0dXJuIEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbjo6Z2V0TGVnYWN5RmFjdG9y
eUZ1bmN0aW9uKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmds
b2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RH
bG9iYWxPYmplY3RBdWRpb0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RBdWRpb0NvbnN0cnVjdG9yLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2Jh
bE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RBdWRpb0NvbnN0cnVjdG9yR2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiQXVkaW8iKTsKIH0KQEAgLTE3MjksNyAr
MTcyOSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RBdWRpb0Nv
bnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsCiAgICAgcmV0dXJuIHRoaXNPYmplY3Qu
cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0
PGNvbnN0IExDaGFyKj4oIkF1ZGlvIiksIHN0cmxlbigiQXVkaW8iKSksIHZhbHVlKTsKIH0KIAot
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdEF1ZGlvQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdEF1ZGlvQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdEF1ZGlvQ29uc3RydWN0b3JT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIkF1
ZGlvIik7CiB9CkBAIC0xNzQwLDcgKzE3NDAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvckdldAog
ICAgIHJldHVybiBKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zOjpnZXRDb25zdHJ1Y3RvcihK
U0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3Qo
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0
VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeU92
ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFs
T2JqZWN0VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvckdldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIik7
CiB9CkBAIC0xNzUyLDcgKzE3NTIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvclNldAogICAgIHJl
dHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdElu
cyIpLCBzdHJsZW4oIlRlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIikpLCB2YWx1ZSk7CiB9CiAK
LWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5T3ZlcnJp
ZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5
T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46
OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0
cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdElucyIpOwogfQpAQCAtMTc2Myw3ICsxNzYzLDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29u
c3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmoKICAgICByZXR1cm4gSlNUZXN0TWFwTGlrZTo6Z2V0
Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3Qu
Z2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtl
Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0
TWFwTGlrZSIpOwogfQpAQCAtMTc3NSw3ICsxNzc1LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxP
YmoKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE1hcExpa2UiKSwg
c3RybGVuKCJUZXN0TWFwTGlrZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VDb25zdHJ1Y3RvclNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVz
dE1hcExpa2UiKTsKIH0KQEAgLTE3ODYsNyArMTc4Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0Nv
bnN0CiAgICAgcmV0dXJuIEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM6Omdl
dENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0
Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9y
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMiKTsKIH0KQEAg
LTE3OTgsNyArMTc5OCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0CiAgICAgcmV0dXJuIHRo
aXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zIiksIHN0cmxlbigiVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMiKSksIHZh
bHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RN
YXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3Is
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RNYXBMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zIik7CiB9CkBAIC0xODA5LDcgKzE4MDksNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
ck5vSWRlbnRpZmllckNvbgogICAgIHJldHVybiBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJO
b0lkZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yR2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
ck5vSWRlbnRpZmllciIpOwogfQpAQCAtMTgyMSw3ICsxODIxLDcgQEAgc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50
aWZpZXJDb24KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllciIpLCBzdHJsZW4oIlRlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXIiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZp
ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVG
SU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVj
dD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIi
KTsKIH0KQEAgLTE4MzIsNyArMTgzMiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpCiAgICAg
cmV0dXJuIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpnZXRD
b25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5n
bG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpz
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvckdldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbiIpOwogfQpAQCAtMTg0NCw3ICsxODQ0LDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGkKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uIiksIHN0cmxlbigiVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RO
YW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24iKTsKIH0KQEAgLTE4NTUsNyArMTg1NSw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJ
bmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDCiAgICAgcmV0dXJuIEpTVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlcldpdGhJZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJD
b25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RO
YW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllciIpOwogfQpAQCAtMTg2Nyw3ICsxODY3
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckMKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXRE
aXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPigiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyIiksIHN0
cmxlbigiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyIikpLCB2YWx1ZSk7
CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0
b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yU2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIiKTsKIH0KQEAgLTE4NzgsNyArMTg3OCw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxl
dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JHCiAgICAgcmV0dXJuIEpTVGVzdE5hbWVkRGVsZXRl
ck5vSWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9i
amVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZp
ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVy
Tm9JZGVudGlmaWVyQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyIik7CiB9CkBAIC0xODkwLDcgKzE4
OTAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
RGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yUwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1
dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KCJUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyIiksIHN0cmxlbigiVGVz
dE5hbWVkRGVsZXRlck5vSWRlbnRpZmllciIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyTm9JZGVu
dGlmaWVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvclNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVz
dE5hbWVkRGVsZXRlck5vSWRlbnRpZmllciIpOwogfQpAQCAtMTkwMSw3ICsxOTAxLDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJUaHJv
d2luZ0V4Y2VwdGlvbkNvbnN0cnUKICAgICByZXR1cm4gSlNUZXN0TmFtZWREZWxldGVyVGhyb3dp
bmdFeGNlcHRpb246OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNl
cHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9u
Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1l
ZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uIik7
CiB9CkBAIC0xOTEzLDcgKzE5MTMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydQogICAgIHJl
dHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdF
eGNlcHRpb24iKSwgc3RybGVuKCJUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24iKSks
IHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZERlbGV0ZXJU
aHJvd2luZ0V4Y2VwdGlvbiIpOwogfQpAQCAtMTkyNCw3ICsxOTI0LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmll
ckNvbnN0cnVjdG8KICAgICByZXR1cm4gSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXI6
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2Jq
ZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFs
T2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRp
ZmllckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyIik7CiB9CkBAIC0xOTM2LDcgKzE5MzYsNyBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRl
cldpdGhJZGVudGlmaWVyQ29uc3RydWN0bwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVj
dCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBM
Q2hhcio+KCJUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIiKSwgc3RybGVuKCJUZXN0TmFt
ZWREZWxldGVyV2l0aElkZW50aWZpZXIiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aElk
ZW50aWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0
b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwg
IlRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllciIpOwogfQpAQCAtMTk0Nyw3ICsxOTQ3LDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0
ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnUKICAgICByZXR1cm4gSlNUZXN0TmFtZWREZWxldGVy
V2l0aEluZGV4ZWRHZXR0ZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9i
YWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aElu
ZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVk
R2V0dGVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0
dGVyIik7CiB9CkBAIC0xOTU5LDcgKzE5NTksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydQog
ICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TmFtZWREZWxldGVyV2l0
aEluZGV4ZWRHZXR0ZXIiKSwgc3RybGVuKCJUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0
ZXIiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1
Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3JTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZERl
bGV0ZXJXaXRoSW5kZXhlZEdldHRlciIpOwogfQpAQCAtMTk3MCw3ICsxOTcwLDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlckNhbGxXaXRo
Q29uc3RydWN0b3JHZXR0ZXIKICAgICByZXR1cm4gSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aDo6
Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmpl
Y3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpz
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3JHZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0
aCIpOwogfQpAQCAtMTk4Miw3ICsxOTgyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3JTZXR0ZXIKICAg
ICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkR2V0dGVyQ2FsbFdp
dGgiKSwgc3RybGVuKCJUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aCIpKSwgdmFsdWUpOwogfQogCi1i
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyQ2Fs
bFdpdGhDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVy
Q2FsbFdpdGhDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3RvclNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE5h
bWVkR2V0dGVyQ2FsbFdpdGgiKTsKIH0KQEAgLTE5OTMsNyArMTk5Myw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJD
b25zdHJ1Y3RvckdlCiAgICAgcmV0dXJuIEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyOjpn
ZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVj
dC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9i
amVjdFRlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46
OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1
Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZEdl
dHRlck5vSWRlbnRpZmllciIpOwogfQpAQCAtMjAwNSw3ICsyMDA1LDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNv
bnN0cnVjdG9yU2UKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5h
bWVkR2V0dGVyTm9JZGVudGlmaWVyIiksIHN0cmxlbigiVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlm
aWVyIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1l
ZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIi
KTsKIH0KQEAgLTIwMTYsNyArMjAxNiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yCiAgICAg
cmV0dXJuIEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKEpT
Qzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRH
ZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkR2V0dGVyV2l0aElk
ZW50aWZpZXIiKTsKIH0KQEAgLTIwMjgsNyArMjAyOCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVj
dG9yCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROYW1lZEdldHRl
cldpdGhJZGVudGlmaWVyIiksIHN0cmxlbigiVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIi
KSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1l
ZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZEdldHRlcldpdGhJZGVudGlm
aWVyIik7CiB9CkBAIC0yMDM5LDcgKzIwMzksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JHZQog
ICAgIHJldHVybiBKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3Io
SlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRT
ZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JHZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZp
ZXIiKTsKIH0KQEAgLTIwNTEsNyArMjA1MSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvclNlCiAg
ICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROYW1lZFNldHRlck5vSWRl
bnRpZmllciIpLCBzdHJsZW4oIlRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllciIpKSwgdmFsdWUp
OwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
U2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2Jh
bE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJOb0lkZW50
aWZpZXJDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAiVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyIik7CiB9CkBAIC0yMDYy
LDcgKzIwNjIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1YwogICAgIHJldHVybiBKU1Rlc3RO
YW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0
dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFs
T2JqZWN0VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvckdldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZFNldHRlclRocm93aW5n
RXhjZXB0aW9uIik7CiB9CkBAIC0yMDc0LDcgKzIwNzQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25z
dHJ1YwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TmFtZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvbiIpLCBzdHJsZW4oIlRlc3ROYW1lZFNldHRlclRocm93aW5nRXhj
ZXB0aW9uIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWRT
ZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIpOwogfQpAQCAtMjA4NSw3ICsyMDg1LDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVu
dGlmaWVyQ29uc3RydWN0b3IKICAgICByZXR1cm4gSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRp
Zmllcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRo
aXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVz
dEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xv
YmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVu
dGlmaWVyQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllciIpOwogfQpAQCAtMjA5Nyw3ICsyMDk3LDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRl
cldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJl
Y3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
TENoYXIqPigiVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIiKSwgc3RybGVuKCJUZXN0TmFt
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllciIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50
aWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvclNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVz
dE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIiKTsKIH0KQEAgLTIxMDgsNyArMjEwOCw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRo
SW5kZXhlZEdldHRlckNvbnN0cnVjCiAgICAgcmV0dXJuIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElu
ZGV4ZWRHZXR0ZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdl
dHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNv
bnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRT
ZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIiKTsKIH0K
QEAgLTIxMjAsNyArMjEyMCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjCiAgICAgcmV0dXJu
IHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWlu
dGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0
dGVyIiksIHN0cmxlbigiVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIiKSksIHZhbHVl
KTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1l
ZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVk
R2V0dGVyIik7CiB9CkBAIC0yMTMxLDcgKzIxMzEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0
ZQogICAgIHJldHVybiBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVy
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09i
amVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0
ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRT
ZXR0ZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvckdldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZFNldHRlcldpdGhJbmRl
eGVkR2V0dGVyQW5kU2V0dGVyIik7CiB9CkBAIC0yMTQzLDcgKzIxNDMsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRH
ZXR0ZXJBbmRTZXR0ZQogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0
TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlciIpLCBzdHJsZW4oIlRlc3ROYW1l
ZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5k
ZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9yLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlciIpOwogfQpAQCAtMjE1NCw3ICsyMTU0LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldp
dGhMZWdhY3lPdmVycmlkZUJ1aWx0SW4KICAgICByZXR1cm4gSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5T3ZlcnJpZGVCdWlsdEluczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldp
dGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRl
cldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0
PGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0
SW5zQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucyIpOwogfQpAQCAtMjE2Niw3
ICsyMTY2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW4KICAgICByZXR1cm4gdGhpc09iamVj
dC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJ
bnMiKSwgc3RybGVuKCJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucyIp
KSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVp
bHRJbnNDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnND
b25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiKTsKIH0K
QEAgLTIxNzcsNyArMjE3Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wCiAgICAgcmV0dXJu
IEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllczo6Z2V0Q29u
c3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xv
YmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXND
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJv
cGVydGllc0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3JH
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFtZWRTZXR0ZXJX
aXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzIik7CiB9CkBAIC0yMTg5LDcgKzIxODksNyBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVy
V2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcAogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVj
dCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBM
Q2hhcio+KCJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzIiks
IHN0cmxlbigiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllcyIp
KSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3Jn
ZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdl
YWJsZVByb3BlcnRpZXNDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2Vh
YmxlUHJvcGVydGllcyIpOwogfQpAQCAtMjIwMCw3ICsyMjAwLDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdl
YWJsZVByb3AKICAgICByZXR1cm4gSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluczo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVy
cmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lV
bmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3Is
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhM
ZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3Ry
dWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFtZWRT
ZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWls
dElucyIpOwogfQpAQCAtMjIxMiw3ICsyMjEyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3AK
ICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkU2V0dGVyV2l0
aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiKSwg
c3RybGVuKCJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5k
TGVnYWN5T3ZlcnJpZGVCdWlsdElucyIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2Vh
YmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJv
cGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVy
V2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnND
b25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0Fu
ZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiKTsKIH0KQEAgLTIyMjQsNyArMjIyNCw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0T3BlcmF0aW9uQ29uZGl0aW9u
YWxDb25zdHJ1Y3RvckdldHRlCiAgICAgcmV0dXJuIEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFs
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09i
amVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0R2xvYmFsT2JqZWN0VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9i
amVjdFRlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46Omdl
dDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3Rvckdl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RPcGVyYXRpb25Db25k
aXRpb25hbCIpOwogfQpAQCAtMjIzOSw3ICsyMjM5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yU2V0
dGUKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE9wZXJhdGlvbkNv
bmRpdGlvbmFsIiksIHN0cmxlbigiVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsIikpLCB2YWx1ZSk7
CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0T3BlcmF0
aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE9w
ZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0
Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0
cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWwiKTsKIH0KQEAgLTIyNTIsNyArMjI1Miw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvCiAgICAgcmV0dXJuIEpTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnNXaXRoU2VxdWVuY2U6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVj
dG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UiKTsKIH0KQEAgLTIyNjQsNyArMjI2NCw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9yc1dpdGhTZXF1ZW5jZUNvCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZt
LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFy
Kj4oIlRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlIiksIHN0cmxlbigiVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UiKSksIHZhbHVlKTsKIH0KIAotYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RPdmVybG9h
ZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzV2l0aFNlcXVlbmNlIik7CiB9CkBAIC0yMjc1LDcgKzIyNzUsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVj
dG9yR2V0dGVyKEpTRwogICAgIHJldHVybiBKU1Rlc3RQbHVnaW5JbnRlcmZhY2U6OmdldENvbnN0
cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2Jh
bE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RQbHVnaW5J
bnRlcmZhY2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0
VGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAiVGVzdFBsdWdpbkludGVyZmFjZSIpOwogfQpAQCAtMjI4Nyw3ICsyMjg3
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RQbHVnaW5J
bnRlcmZhY2VDb25zdHJ1Y3RvclNldHRlcihKU0cKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXRE
aXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPigiVGVzdFBsdWdpbkludGVyZmFjZSIpLCBzdHJsZW4oIlRlc3RQbHVnaW5JbnRl
cmZhY2UiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2Jh
bE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UGx1Z2luSW50ZXJmYWNlQ29u
c3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgIlRlc3RQbHVnaW5JbnRlcmZhY2UiKTsKIH0KQEAgLTIyOTgsNyArMjI5OCw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlNYXBMaWtl
Q29uc3RydWN0b3JHZXR0ZXIoSlNHCiAgICAgcmV0dXJuIEpTVGVzdFJlYWRPbmx5TWFwTGlrZTo6
Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmpl
Y3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVz
dFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0UmVhZE9ubHlNYXBMaWtlIik7CiB9CkBAIC0yMzEw
LDcgKzIzMTAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yU2V0dGVyKEpTRwogICAgIHJldHVybiB0aGlzT2Jq
ZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0UmVhZE9ubHlNYXBMaWtlIiksIHN0cmxlbigiVGVzdFJl
YWRPbmx5TWFwTGlrZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seU1h
cExpa2VDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAiVGVzdFJlYWRPbmx5TWFwTGlrZSIpOwogfQpAQCAtMjMyMSw3ICsyMzIx
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25s
eVNldExpa2VDb25zdHJ1Y3RvckdldHRlcihKU0cKICAgICByZXR1cm4gSlNUZXN0UmVhZE9ubHlT
ZXRMaWtlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvckdldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RSZWFkT25seVNldExpa2UiKTsKIH0K
QEAgLTIzMzMsNyArMjMzMyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3JTZXR0ZXIoSlNHCiAgICAgcmV0dXJu
IHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWlu
dGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RSZWFkT25seVNldExpa2UiKSwgc3RybGVu
KCJUZXN0UmVhZE9ubHlTZXRMaWtlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJl
YWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0UmVhZE9ubHlTZXRMaWtlIik7CiB9CkBAIC0yMzQ0
LDcgKzIzNDQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVz
dFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yR2V0dAogICAgIHJldHVybiBKU1Rlc3RS
ZXBvcnRFeHRyYU1lbW9yeUNvc3Q6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVwb3J0RXh0cmFNZW1v
cnlDb3N0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1
Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlcG9ydEV4dHJh
TWVtb3J5Q29zdENvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdCIpOwogfQpAQCAtMjM1Niw3ICsyMzU2LDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RSZXBvcnRFeHRy
YU1lbW9yeUNvc3RDb25zdHJ1Y3RvclNldHQKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJl
Y3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
TENoYXIqPigiVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdCIpLCBzdHJsZW4oIlRlc3RSZXBvcnRF
eHRyYU1lbW9yeUNvc3QiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9y
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RSZXBvcnRFeHRyYU1lbW9yeUNv
c3QiKTsKIH0KQEAgLTIzNjgsNyArMjM2OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RyCiAg
ICAgcmV0dXJuIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6Z2V0Q29uc3Ry
dWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFs
T2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9i
amVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlIik7CiB9CkBAIC0yMzgzLDcgKzIz
ODMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1
dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KCJUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlIiksIHN0cmxl
bigiVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSIpKSwgdmFsdWUpOwogfQogCi1i
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZSIpOwogfQpAQCAtMjM5Niw3ICsyMzk2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmoK
ICAgICByZXR1cm4gSlNUZXN0U2V0TGlrZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4
aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0
PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0U2V0TGlrZSIpOwogfQpAQCAtMjQwOCw3ICsy
NDA4LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRM
aWtlQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmoKICAgICByZXR1cm4gdGhpc09iamVjdC5w
dXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgTENoYXIqPigiVGVzdFNldExpa2UiKSwgc3RybGVuKCJUZXN0U2V0TGlrZSIpKSwgdmFs
dWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFNl
dExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VDb25z
dHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdFNldExpa2VDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFNldExpa2UiKTsKIH0KQEAgLTI0MTksNyAr
MjQxOSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0CiAgICAgcmV0dXJuIEpTVGVzdFNldExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxl
eGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9y
R2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFNldExpa2VXaXRo
T3ZlcnJpZGRlbk9wZXJhdGlvbnMiKTsKIH0KQEAgLTI0MzEsNyArMjQzMSw3IEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc0NvbnN0CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRl
c3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zIiksIHN0cmxlbigiVGVzdFNldExpa2VX
aXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RF
RklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0
Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgIlRlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zIik7CiB9
CkBAIC0yNDQyLDcgKzI0NDIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFs
T2JqZWN0VGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYQogICAgIHJldHVy
biBKU1Rlc3RTdHJpbmdpZmllcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+Ojpn
ZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3JHZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0U3RyaW5naWZpZXIiKTsKIH0KQEAg
LTI0NTQsNyArMjQ1NCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhCiAgICAgcmV0dXJuIHRo
aXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RTdHJpbmdpZmllciIpLCBzdHJsZW4oIlRlc3RT
dHJpbmdpZmllciIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9i
amVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3Rv
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
VGVzdFN0cmluZ2lmaWVyIik7CiB9CkBAIC0yNDY1LDcgKzI0NjUsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0
aW9uQ29uc3RydQogICAgIHJldHVybiBKU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlv
bjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNP
YmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3Rv
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQW5v
bnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24iKTsKIH0KQEAgLTI0
NzcsNyArMjQ3Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1CiAgICAgcmV0dXJuIHRoaXNP
YmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbiIp
LCBzdHJsZW4oIlRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbiIpKSwgdmFsdWUpOwog
fQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lm
aWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZp
ZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3Bl
cmF0aW9uIik7CiB9CkBAIC0yNDg4LDcgKzI0ODgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3Rv
cgogICAgIHJldHVybiBKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uOjpnZXRDb25zdHJ1
Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxP
YmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFs
T2JqZWN0VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVz
dFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8
anNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3Rv
ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RTdHJpbmdpZmll
ck5hbWVkT3BlcmF0aW9uIik7CiB9CkBAIC0yNTAwLDcgKzI1MDAsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25D
b25zdHJ1Y3RvcgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0U3Ry
aW5naWZpZXJOYW1lZE9wZXJhdGlvbiIpLCBzdHJsZW4oIlRlc3RTdHJpbmdpZmllck5hbWVkT3Bl
cmF0aW9uIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9y
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0U3RyaW5naWZpZXJOYW1l
ZE9wZXJhdGlvbiIpOwogfQpAQCAtMjUxMSw3ICsyNTExLDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVk
QXNDb24KICAgICByZXR1cm4gSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFz
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09i
amVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0Nv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdp
Zmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVk
QXMiKTsKIH0KQEAgLTI1MjMsNyArMjUyMyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uCiAg
ICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RTdHJpbmdpZmllck9wZXJh
dGlvbkltcGxlbWVudGVkQXMiKSwgc3RybGVuKCJUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBs
ZW1lbnRlZEFzIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxl
bWVudGVkQXNDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0Nv
bnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzIik7CiB9CkBAIC0y
NTM0LDcgKzI1MzQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbgogICAgIHJldHVybiBKU1Rl
c3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmc6OmdldENvbnN0cnVjdG9yKEpTQzo6
Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RT
dHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+
OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0
cmluZ0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZyIpOwogfQpAQCAtMjU0Niw3ICsy
NTQ2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJp
bmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb24KICAgICByZXR1cm4gdGhpc09iamVjdC5w
dXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgTENoYXIqPigiVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZyIpLCBz
dHJsZW4oIlRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmciKSksIHZhbHVlKTsK
IH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdp
Zmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RTdHJpbmdpZmll
ck9wZXJhdGlvbk5hbWVkVG9TdHJpbmciKTsKIH0KQEAgLTI1NTcsNyArMjU1Nyw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkT25s
eUF0dHJpYnV0ZUNvbnN0cnVjCiAgICAgcmV0dXJuIEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlB
dHRyaWJ1dGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
LCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0
ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZp
ZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAiVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUiKTsKIH0KQEAg
LTI1NjksNyArMjU2OSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjCiAgICAgcmV0dXJuIHRo
aXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRl
IiksIHN0cmxlbigiVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUiKSksIHZhbHVlKTsK
IH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdp
ZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmll
clJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmli
dXRlIik7CiB9CkBAIC0yNTgwLDcgKzI1ODAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydQog
ICAgIHJldHVybiBKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZTo6Z2V0Q29uc3Ry
dWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFs
T2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmpl
Y3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmli
dXRlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJU
ZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTI1OTIsNyArMjU5Miw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZp
ZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGly
ZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0
IExDaGFyKj4oIlRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZSIpLCBzdHJsZW4oIlRl
c3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRl
QXR0cmlidXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
SlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdp
ZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9i
amVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVB
dHRyaWJ1dGVDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlIik7CiB9
CkBAIC0yNjAzLDcgKzI2MDMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFs
T2JqZWN0VGVzdFR5cGVkZWZzQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYgogICAgIHJldHVy
biBKU1Rlc3RUeXBlZGVmczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RUeXBlZGVmc0NvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0
R2xvYmFsT2JqZWN0VGVzdFR5cGVkZWZzQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0VHlwZWRlZnMiKTsKIH0KQEAgLTI2MTUsNyArMjYxNSw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0VHlwZWRlZnND
b25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGly
ZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0
IExDaGFyKj4oIlRlc3RUeXBlZGVmcyIpLCBzdHJsZW4oIlRlc3RUeXBlZGVmcyIpKSwgdmFsdWUp
OwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFR5cGVk
ZWZzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RF
RklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RUeXBlZGVmc0NvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFR5cGVkZWZzIik7CiB9CkBAIC0yNjI2LDcg
KzI2MjYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0V29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvckdldHRlcihKU0dsbwogICAgIHJldHVybiBKU1dvcmtlckds
b2JhbFNjb3BlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFs
T2JqZWN0V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNU
ZXN0R2xvYmFsT2JqZWN0V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIldvcmtlckdsb2JhbFNjb3BlIik7CiB9CkBAIC0y
NjM4LDcgKzI2MzgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0
V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvclNldHRlcihKU0dsbwogICAgIHJldHVybiB0aGlz
T2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJXb3JrZXJHbG9iYWxTY29wZSIpLCBzdHJsZW4oIldvcmtl
ckdsb2JhbFNjb3BlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RH
bG9iYWxPYmplY3RXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEds
b2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJXb3JrZXJHbG9iYWxTY29wZSIpOwogfQpAQCAtMjY0OSw3ICsyNjQ5LDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFdvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9yR2V0dGVyKEpTR2wKICAgICByZXR1cm4gSlNXb3JrbGV0R2xvYmFsU2NvcGU6Omdl
dENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0
Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RHbG9iYWxPYmplY3RXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0V29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9i
amVjdFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAiV29ya2xldEdsb2JhbFNjb3BlIik7CiB9CkBAIC0yNjYxLDcgKzI2
NjEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0V29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3JTZXR0ZXIoSlNHbAogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1
dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KCJXb3JrbGV0R2xvYmFsU2NvcGUiKSwgc3RybGVuKCJXb3JrbGV0R2xvYmFs
U2NvcGUiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxP
YmplY3RXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0V29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCmluZGV4IDA1Y2FhMzE2YmVlODMxYWY1NzEwYTEzZjI0
NzU2MjQ1NmRiOWU0ZGUuLjNkZjc5NzNlMDY1MjYyMTE4YTI3MmY3Nzk4YWQ1ZTM2MGZhM2ZiNWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAK
QEAgLTQ2LDggKzQ2LDggQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwog
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW5kZXhlZFNldHRlck5v
SWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIoanNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9y
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0SW5kZXhlZFNldHRlck5vSWRl
bnRpZmllckNvbnN0cnVjdG9yKTsKIAogY2xhc3MgSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRp
ZmllclByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVi
bGljOgpAQCAtMjQxLDcgKzI0MSw3IEBAIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRp
Zmllcjo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgSlNHbG9iCiAgICAgcmV0
dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGxleGljYWxHbG9iYWxPYmpl
Y3QsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW5kZXhlZFNldHRlck5vSWRl
bnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0yNTEsNyArMjUxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJ
bmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWwKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmdldENvbnN0
cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFs
T2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEluZGV4ZWRTZXR0
ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0SW5kZXhlZFNldHRlck5vSWRl
bnRpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkK
IHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAppbmRleCAyYTMy
MzM3Y2NiMmQyZmZiNzNjNjQ2ZTlkZDI3YzFjNjI3ZTY1N2ZlLi42ZGZhNzE1MDU3OWQ5NWFiNzM5
NjVkNzY1NDhjZjU3YmUyMDcxYWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcApAQCAtNDYsOCArNDYsOCBAQCB1c2luZyBu
YW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b25Db25zdHJ1Y3Rvcik7CiAKIGNsYXNzIEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2Vw
dGlvblByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVi
bGljOgpAQCAtMjQxLDcgKzI0MSw3IEBAIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5n
RXhjZXB0aW9uOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBKCiAgICAgcmV0
dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGxleGljYWxHbG9iYWxPYmpl
Y3QsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW5kZXhlZFNldHRlclRocm93
aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGpzVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMjUxLDcgKzI1MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb246OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHBy
b3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRp
Zmllci5jcHAKaW5kZXggNjM3ODBmYmE5M2MzNzZjOTdhNmZkZmQ2YTI0NWZlNzgyNmZhYTk2Ni4u
NWU3N2U2ZTA5MDNlYmQwN2MwNzg1ZGE1MjdlNzU4MDE5ZjYxNzRlYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKQEAgLTUyLDggKzUy
LDggQEAgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbmRleGVkU2V0dGVyV2l0aElk
ZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbkluZGUKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVu
dGlmaWVyQ29uc3RydWN0b3IpOwogCiBjbGFzcyBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50
aWZpZXJQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1
YmxpYzoKQEAgLTI1Myw3ICsyNTMsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXIqIElETE9wZXJhdGlvbjxKU1Rlc3RJbmRleGVkUwogICAgIHJl
dHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcio+KEpT
Qzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEluZGV4ZWRTZXR0ZXJXaXRo
SWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTI2Myw3ICsyNjMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYgogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyOjpn
ZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUt
Pmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbmRl
eGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0SW5kZXhlZFNl
dHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50
ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RJbnRlcmZhY2UuY3BwCmluZGV4IDM1NzFhMjI5OGQ5MTIxOTM2NjM4ZGE1MmE2NjFlN2M0ODNi
NGYzMWYuLjYzOWRiMDEzYjAwNDM0MGZkM2Q4NTVjOTdlZDZiODQzZTc1ZjYyY2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZh
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RJbnRlcmZhY2UuY3BwCkBAIC0xMTUsNTEgKzExNSw1MSBAQCBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk7CiAKIC8vIEF0
dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVy
ZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW50ZXJm
YWNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RJ
bnRlcmZhY2VDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dEludGVyZmFjZUNvbnN0cnVjdG9yKTsKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJM
RShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJ
bnRlcmZhY2VNaXhpblJlYWRPbmx5QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0NfREVDTEFSRV9DVVNUT01f
R0VUVEVSKGpzVGVzdEludGVyZmFjZU1peGluUmVhZE9ubHlBdHRyaWJ1dGUpOwogI2VuZGlmCiAj
aWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlTWl4aW5BdHRyaWJ1dGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbkF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFjZU1peGluQXR0
cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0SW50ZXJmYWNlTWl4
aW5BdHRyaWJ1dGUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50
ZXJmYWNlTWl4aW5DdXN0b21BdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RJbnRlcmZhY2VNaXhpbkN1c3RvbUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFjZU1peGluQ3VzdG9tQXR0cmlidXRlKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5DdXN0b21BdHRyaWJ1
dGUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9u
MjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlTWl4
aW5Ob2RlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW50ZXJm
YWNlTWl4aW5Ob2RlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0SW50ZXJmYWNlTWl4aW5Ob2RlQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5Ob2RlQXR0cmlidXRlKTsKICNlbmRpZgogI2lm
IEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZVBhcnRpYWxNaXhpbkF0dHJpYnV0
ZUZyb21QYXJ0aWFsKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEludGVy
ZmFjZVBhcnRpYWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFsKTsKICNlbmRpZgogI2lmIEVOQUJM
RShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3Rh
dGljUmVhZE9ubHlBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdElu
dGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljUmVhZE9ubHlBdHRyKTsKICNlbmRp
ZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3Vw
cGxlbWVudGFsU3RhdGljQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdElu
dGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljQXR0cihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFs
U3RhdGljQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEludGVyZmFj
ZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljQXR0cik7CiAjZW5kaWYKICNpZiBFTkFCTEUo
Q29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIxKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjEpOwog
I2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVu
dGFsU3RyMihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEludGVyZmFjZVN1cHBs
ZW1lbnRhbFN0cjIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RJbnRl
cmZhY2VTdXBwbGVtZW50YWxTdHIyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMik7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0
aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyhKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxT
dHIzKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlv
bjEyKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZVN1
cHBsZW1lbnRhbE5vZGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbnRlcmZh
Y2VTdXBwbGVtZW50YWxOb2RlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUpOwogI2VuZGlmCiAjaWYgRU5BQkxF
KENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlUmVmbGVjdEF0dHJpYnV0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEludGVyZmFjZVJlZmxlY3RBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RJbnRlcmZhY2VSZWZsZWN0QXR0cmli
dXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0SW50ZXJmYWNlUmVmbGVj
dEF0dHJpYnV0ZSk7CiAjZW5kaWYKIAogY2xhc3MgSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlIGZp
bmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CkBAIC01MTcsNyArNTE3LDcgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0SW50ZXJmYWNlKiBJRExPcGVyYXRpb248SlNUZXN0SW50
ZXJmYWNlPjo6Y2FzdChKU0dsb2JhbE8KICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RJ
bnRlcmZhY2UqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRo
aXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRl
cmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQog
ewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01MjcsNyArNTI3LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEcKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpT
VGVzdEludGVyZmFjZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEludGVyZmFjZUNv
bnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBW
TSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTQ5LDcgKzU0OSw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VNaXhpblJlYWRPbmx5QXR0cmlidXRlR2V0
dGVyKEpTR2xvYmFsT2JqZWN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0
b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5t
aXhpblJlYWRPbmx5QXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0SW50ZXJmYWNlTWl4aW5SZWFkT25seUF0dHJpYnV0ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0SW50ZXJmYWNlTWl4aW5SZWFk
T25seUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpnZXQ8anNUZXN0SW50ZXJmYWNlTWl4aW5SZWFkT25s
eUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm1peGluUmVhZE9ubHlBdHRyaWJ1dGUiKTsKIH0K
QEAgLTU2NSw3ICs1NjUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0SW50ZXJmYWNl
TWl4aW5BdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYQogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIGltcGwubWl4aW5BdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VNaXhpbkF0dHJpYnV0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0SW50ZXJmYWNl
TWl4aW5BdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6Z2V0PGpzVGVzdEludGVyZmFjZU1peGluQXR0cmli
dXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAibWl4aW5BdHRyaWJ1dGUiKTsKIH0KQEAgLTU4Niw3ICs1ODYs
NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5BdHRyaWJ1dGVT
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5BdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdEludGVyZmFjZU1peGluQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OnNl
dDxzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbkF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibWl4aW5BdHRyaWJ1dGUiKTsKIH0KQEAg
LTYwMCw3ICs2MDAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0SW50ZXJmYWNlTWl4
aW5DdXN0b21BdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmCiAgICAgcmV0dXJuIHRoaXNP
YmplY3QubWl4aW5DdXN0b21BdHRyaWJ1dGUobGV4aWNhbEdsb2JhbE9iamVjdCk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlTWl4aW5DdXN0b21BdHRy
aWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVz
dEludGVyZmFjZU1peGluQ3VzdG9tQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OmdldDxqc1Rlc3RJbnRl
cmZhY2VNaXhpbkN1c3RvbUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm1peGluQ3VzdG9tQXR0
cmlidXRlIik7CiB9CkBAIC02MTUsNyArNjE1LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdEludGVyZmFjZU1peGluQ3VzdG9tQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0Jgog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW50ZXJm
YWNlTWl4aW5DdXN0b21BdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEludGVyZmFjZU1peGluQ3VzdG9t
QXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OnNldDxzZXRKU1Rlc3RJbnRlcmZh
Y2VNaXhpbkN1c3RvbUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAibWl4aW5DdXN0b21BdHRyaWJ1dGUiKTsKIH0KQEAgLTYzMSw3
ICs2MzEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0SW50ZXJmYWNlTWl4aW5Ob2Rl
QXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZQogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+KGxleGljYWxHbG9iYWxPYmpl
Y3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLm1peGluTm9k
ZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dEludGVyZmFjZU1peGluTm9kZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0SW50ZXJmYWNlTWl4aW5Ob2RlQXR0cmlidXRlLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVy
ZmFjZT46OmdldDxqc1Rlc3RJbnRlcmZhY2VNaXhpbk5vZGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3Rl
ZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJtaXhpbk5vZGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTY1Miw3ICs2NTIsNyBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5Ob2RlQXR0cmlidXRlU2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5Ob2RlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RJbnRl
cmZhY2VNaXhpbk5vZGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6c2V0PHNl
dEpTVGVzdEludGVyZmFjZU1peGluTm9kZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibWl4aW5Ob2RlQXR0cmlidXRlIik7CiB9
CkBAIC02NjgsNyArNjY4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEludGVyZmFj
ZVBhcnRpYWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFsR2V0dGVyKEpTR2wKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRG91YmxlPihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnBhcnRpYWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFsKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlUGFy
dGlhbE1peGluQXR0cmlidXRlRnJvbVBhcnRpYWwoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFjZVBhcnRpYWxNaXhpbkF0dHJpYnV0ZUZy
b21QYXJ0aWFsLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEludGVyZmFjZT46OmdldDxqc1Rlc3RJbnRlcmZhY2VQYXJ0aWFsTWl4aW5BdHRy
aWJ1dGVGcm9tUGFydGlhbEdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInBhcnRpYWxNaXhpbkF0dHJpYnV0ZUZy
b21QYXJ0aWFsIik7CiB9CkBAIC02ODMsNyArNjgzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljUmVhZE9ubHlBdHRy
R2UKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6
c3VwcGxlbWVudGFsU3RhdGljUmVhZE9ubHlBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0
aWNSZWFkT25seUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljUmVhZE9ubHlB
dHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdEludGVyZmFjZT46OmdldFN0YXRpYzxqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBs
ZW1lbnRhbFN0YXRpY1JlYWRPbmx5QXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgInN1cHBsZW1lbnRhbFN0YXRpY1JlYWRPbmx5QXR0ciIpOwogfQpAQCAtNjk4LDcg
KzY5OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rv
clN1cHBsZW1lbnRhbFN0YXRpY0F0dHJHZXR0ZXIoSlNHCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3RhdGljQXR0
cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFj
ZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVt
ZW50YWxTdGF0aWNBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OmdldFN0YXRpYzxqc1Rlc3RJbnRlcmZhY2VDb25z
dHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY0F0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJzdXBwbGVtZW50YWxTdGF0aWNBdHRyIik7CiB9CkBAIC03MTgsNyArNzE4
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3Vw
cGxlbWVudGFsU3RhdGljQXR0clNldHRlcihKU0cKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFs
U3RhdGljQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5F
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxT
dGF0aWNBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OnNldFN0YXRpYzxzZXRKU1Rlc3RJ
bnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY0F0dHJTZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN1cHBsZW1lbnRhbFN0YXRp
Y0F0dHIiKTsKIH0KQEAgLTczNCw3ICs3MzQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aQog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6
OnN1cHBsZW1lbnRhbFN0cjEoaW1wbCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3Ry
MSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RJbnRlcmZhY2U+OjpnZXQ8anNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMUdldHRlciwg
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgInN1cHBsZW1lbnRhbFN0cjEiKTsKIH0KQEAgLTc1MCw3ICs3NTAsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMkdldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFdlYkNv
cmU6OlRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbFN0cjIoaW1wbCkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3Ry
MihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0SW50
ZXJmYWNlU3VwcGxlbWVudGFsU3RyMiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpnZXQ8anNUZXN0SW50ZXJmYWNlU3Vw
cGxlbWVudGFsU3RyMkdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN1cHBsZW1lbnRhbFN0cjIiKTsKIH0KQEAg
LTc3MSw3ICs3NzEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlU3Vw
cGxlbWVudGFsU3RyMlNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aQogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFs
U3RyMihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMiwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RJbnRlcmZhY2U+OjpzZXQ8c2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMlNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic3VwcGxl
bWVudGFsU3RyMiIpOwogfQpAQCAtNzg1LDcgKzc4NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpCiAgICAgcmV0dXJuIHRoaXNPYmplY3Quc3VwcGxlbWVudGFsU3RyMyhsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZh
Y2VTdXBwbGVtZW50YWxTdHIzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OmdldDxq
c1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhh
dmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3VwcGxlbWVu
dGFsU3RyMyIpOwogfQpAQCAtODAwLDcgKzgwMCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRK
U1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbnRl
cmZhY2VTdXBwbGVtZW50YWxTdHIzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxT
dHIzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OnNldDxzZXRKU1Rlc3RJbnRlcmZhY2VTdXBw
bGVtZW50YWxTdHIzU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJzdXBwbGVtZW50YWxTdHIzIik7CiB9CkBAIC04MTYsNyArODE2LDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGVHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVj
dC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6
c3VwcGxlbWVudGFsTm9kZShpbXBsKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2Rl
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dEludGVyZmFjZT46OmdldDxqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAic3VwcGxlbWVudGFsTm9kZSIpOwogfQpAQCAtODM3LDcgKzgzNyw3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlU2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RJbnRl
cmZhY2VTdXBwbGVtZW50YWxOb2RlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OnNldDxzZXRK
U1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdXBwbGVtZW50YWxOb2RlIik7CiB9CkBAIC04
NTMsNyArODUzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVJlZmxl
Y3RBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29y
ZTo6SFRNTE5hbWVzOjpyZWZsZWN0YXR0cmlidXRlQXR0cikpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlUmVmbGVjdEF0dHJpYnV0ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0SW50ZXJmYWNlUmVm
bGVjdEF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpnZXQ8anNUZXN0SW50ZXJmYWNlUmVmbGVjdEF0dHJp
YnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlZmxlY3RBdHRyaWJ1dGUiKTsKIH0KQEAgLTg3NCw3ICs4
NzQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlUmVmbGVjdEF0dHJp
YnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aQogICAgIHJldHVybiB0cnVlOwogfQogCi1i
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW50ZXJmYWNlUmVmbGVjdEF0dHJpYnV0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0SW50ZXJmYWNlUmVmbGVjdEF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZh
Y2U+OjpzZXQ8c2V0SlNUZXN0SW50ZXJmYWNlUmVmbGVjdEF0dHJpYnV0ZVNldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdEF0dHJpYnV0
ZSIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29y
ZS5jcHAKaW5kZXggMGE2OWRmYjdlYmMwMGZjMWQ1MzFiMzIzMWVhNTJmODRhYzQwN2FkOC4uMzAx
MmZlNDUwYmU1N2IzMDUwN2ViMmNiMWJkOGFiZGJlZDM2MjA0YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZUxlYWRpbmdV
bmRlcnNjb3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuY3BwCkBAIC00Niw5ICs0Niw5IEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbnRlcmZhY2VMZWFkaW5n
VW5kZXJzY29yZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZVJlYWRvbmx5KEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitK
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3Jl
Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RJbnRlcmZh
Y2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVSZWFkb25seSk7CiAKIGNsYXNzIEpT
VGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpT
Qzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNTgsNyArMTU4LDcgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUqIElETEF0dHJpYnV0
ZTxKU1Rlc3RJbnRlcmZhY2UKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZh
Y2VMZWFkaW5nVW5kZXJzY29yZSo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0SW50ZXJmYWNlTGVh
ZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE2OCw3ICsxNjgsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3Jl
Q29uc3RydWN0b3IoSlNHbG9iYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0SW50
ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0b3IsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0xODksNyArMTg5LDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlUmVhZG9ubHlHZXR0ZXIoSlNHbG9i
YWxPYmoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3Ry
aW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnJlYWRvbmx5KCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlTGVhZGlu
Z1VuZGVyc2NvcmVSZWFkb25seShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoanNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVSZWFkb25seSwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZh
Y2VMZWFkaW5nVW5kZXJzY29yZT46OmdldDxqc1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29y
ZVJlYWRvbmx5R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVhZG9ubHkiKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJdGVyYWJsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUu
Y3BwCmluZGV4IDdiNDVjNjY3MWEwMDAwZjI4N2YwYmY1MzMyOWI3Y2RmMDU3MWE2ZDIuLjI0YjIz
ODBhMjlmMmEzYjE5YmQ1OGVkYzQ2MzA3ZTNlMTFjZDkzN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJdGVyYWJsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmNw
cApAQCAtNTcsOCArNTcsOCBAQCBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEl0ZXJh
YmxlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SXRlcmFibGVDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0SXRlcmFibGVDb25zdHJ1Y3Rvcik7
CiAKIGNsYXNzIEpTVGVzdEl0ZXJhYmxlUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNO
b25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNzIsNyArMTcyLDcgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgSlNUZXN0SXRlcmFibGUqIElETE9wZXJhdGlvbjxKU1Rlc3RJdGVyYWJsZT46OmNhc3Qo
SlNHbG9iYWxPYmoKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RJdGVyYWJsZSo+KEpT
Qzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEl0ZXJhYmxlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEl0
ZXJhYmxlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9
IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xODIsNyArMTgyLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2wKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEl0ZXJhYmxlOjpn
ZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUt
Pmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJdGVy
YWJsZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RJdGVyYWJsZUNvbnN0cnVjdG9yLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAK
aW5kZXggMmE3YTY2ZjRhZGM4MTJjYTAyNjFlZGY2OTYyNGMwOTQ1NzRiYjFkYi4uYzhkMjZmNDkw
NDFiYzVkZjk4ZGNlMDBjMTY0MDgzODQ2ODczMmZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SlNC
dWlsdGluQ29uc3RydWN0b3IuY3BwCkBAIC00NywxMSArNDcsMTEgQEAgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZUZ1bmN0aW9uVGVz
dEN1c3RvbUYKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEpTQnVpbHRpbkNv
bnN0cnVjdG9yVGVzdEF0dHJpYnV0ZUN1c3RvbShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZVJXQ3Vz
dG9tKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0
b3JUZXN0QXR0cmlidXRlUldDdXN0b20oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcik7CitK
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0
dHJpYnV0ZUN1c3RvbSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEpTQnVpbHRp
bkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZVJXQ3VzdG9tKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b20p
OwogCiBjbGFzcyBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZSBmaW5hbCA6IHB1
YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTcxLDcgKzE3MSw3IEBA
IHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yKiBJRExPcGVyYXRp
b248SlNUZXN0SlNCdWlsdGluQ29uc3RyCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0
SlNCdWlsdGluQ29uc3RydWN0b3IqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
Y2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNv
bnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMTgxLDcgKzE4MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rv
cjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90
eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0SlNCdWlsdGluQ29u
c3RydWN0b3JDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIwMCw3ICsyMDAs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0
QXR0cmlidXRlQ3VzdG9tR2V0dGVyKEpTR2xvYgogICAgIHJldHVybiB0aGlzT2JqZWN0LnRlc3RB
dHRyaWJ1dGVDdXN0b20obGV4aWNhbEdsb2JhbE9iamVjdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlQ3Vz
dG9tKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RK
U0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVDdXN0b20sIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0
b3I+OjpnZXQ8anNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlQ3VzdG9tR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAidGVzdEF0dHJpYnV0ZUN1c3RvbSIpOwogfQpAQCAtMjExLDcgKzIxMSw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RB
dHRyaWJ1dGVSV0N1c3RvbUdldHRlcihKU0dsCiAgICAgcmV0dXJuIHRoaXNPYmplY3QudGVzdEF0
dHJpYnV0ZVJXQ3VzdG9tKGxleGljYWxHbG9iYWxPYmplY3QpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZVJX
Q3VzdG9tKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVSV0N1c3RvbSwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RKU0J1aWx0aW5Db25z
dHJ1Y3Rvcj46OmdldDxqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVSV0N1
c3RvbUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgInRlc3RBdHRyaWJ1dGVSV0N1c3RvbSIpOwogfQpAQCAtMjIz
LDcgKzIyMyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1
Y3RvclRlc3RBdHRyaWJ1dGVSV0N1c3RvbVNldHRlcihKU0dsCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RB
dHRyaWJ1dGVSV0N1c3RvbShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0
cmlidXRlUldDdXN0b20sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3I+OjpzZXQ8
c2V0SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b21TZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInRlc3RBdHRy
aWJ1dGVSV0N1c3RvbSIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0
aW9uLmNwcAppbmRleCBhZGU3YTQ2OGJjZWY5NzI3NzVkNmM0YjM1OTU4ODRhYWFlNjI4NjIwLi41
MjkxZTQyMmZiMzMxYzhhNDVkMDM4MDU3MDA1NTA5MTMzMjYyZjdhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5RmFjdG9yeUZ1
bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uLmNwcApAQCAtNDgsOCArNDgsOCBAQCB1c2luZyBu
YW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0TGVnYWN5RmFjdG9y
eUZ1bmN0aW9uQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3Rvcik7CiAKIGNsYXNzIEpTVGVzdExlZ2Fj
eUZhY3RvcnlGdW5jdGlvblByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxP
YmplY3QgewogcHVibGljOgpAQCAtMjA3LDcgKzIwNyw3IEBAIHZvaWQgSlNUZXN0TGVnYWN5RmFj
dG9yeUZ1bmN0aW9uOjpkZXN0cm95KEpTQzo6SlNDZWxsKiBjZWxsKQogICAgIHRoaXNPYmplY3Qt
PkpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbjo6fkpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlv
bigpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdExlZ2FjeUZhY3Rv
cnlGdW5jdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3RvciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTIxNyw3ICsyMTcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdExl
Z2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZQogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uOjpnZXRDb25zdHJ1Y3Rv
cihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVj
dCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RMZWdhY3lGYWN0b3J5RnVu
Y3Rpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3Ry
dWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2
bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeU5v
SW50ZXJmYWNlT2JqZWN0LmNwcAppbmRleCA4Y2NhMTRlNDJkNTFhZThiY2UzN2Y2OWU4NjRiOWE4
NTIyMDZmZGU5Li41MmRiMDZiMWQxMDlmMDdiNWQ0YWQwYzJiMTE1YzA1YjZlNWY3ZDAyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdC5jcHAKQEAgLTU5LDE1
ICs1OSwxNSBAQCBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdExlZ2FjeU5vSW50ZXJm
YWNlT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvblN0YXRpYwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9i
amVjdFJlYWRvbmx5U3RyaW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkV3JpdGVTdHJpbmdB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RMZWdhY3lOb0ludGVy
ZmFjZU9iamVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21H
ZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJp
YnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0cmlidXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdENvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRp
Y1N0cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVz
dExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZG9ubHlTdHJpbmdBdHRyaWJ1dGUpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRXcml0
ZVN0cmluZ0F0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21HZXR0
ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJp
YnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNl
T2JqZWN0Tm9kZUF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Tm9kZUF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JTdGF0aWNT
dHJpbmdBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cmlidXRlKTsKIAog
Y2xhc3MgSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGUgZmluYWwgOiBwdWJs
aWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE3NSw3ICsxNzUsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkb25s
eVN0cmluZ0F0dHJpYnV0ZUdldHRlcgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGlt
cGwucmVhZG9ubHlTdHJpbmdBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRvbmx5U3RyaW5nQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRvbmx5U3RyaW5nQXR0cmlidXRlLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdExlZ2FjeU5v
SW50ZXJmYWNlT2JqZWN0Pjo6Z2V0PGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZG9u
bHlTdHJpbmdBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWFkb25seVN0cmluZ0F0dHJpYnV0
ZSIpOwogfQpAQCAtMTg4LDcgKzE4OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RM
ZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZUdldHRlCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5yZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUo
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RMZWdhY3lOb0lu
dGVyZmFjZU9iamVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RS
ZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+OjpnZXQ8anNU
ZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGVHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJyZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUiKTsKIH0KQEAgLTIwNiw3ICsyMDYs
NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RS
ZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGVTZXR0ZQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkV3JpdGVT
dHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RF
RklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZFdy
aXRlU3RyaW5nQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
Pjo6c2V0PHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZFdyaXRlU3RyaW5nQXR0
cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJyZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUiKTsKIH0KQEAgLTIxNyw3ICsyMTcsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21H
ZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaQogICAgIHJldHVybiB0aGlzT2JqZWN0LmN1c3RvbUdldHRl
clNldHRlclN0cmluZ0F0dHJpYnV0ZShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3Rv
bUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21HZXR0
ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+OjpnZXQ8anNU
ZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1
dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJjdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUiKTsK
IH0KQEAgLTIyOSw3ICsyMjksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0TGVnYWN5
Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaQogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3RDdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0Q3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0cmlidXRlLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Pjo6c2V0PHNldEpTVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0Q3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0cmlidXRlU2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJjdXN0b21H
ZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUiKTsKIH0KQEAgLTI0Miw3ICsyNDIsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0cmli
dXRlR2V0dGVyKEpTR2xvYmFsTwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0
Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLm5vZGVBdHRyaWJ1dGUoKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9i
amVjdE5vZGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Tm9kZUF0dHJpYnV0ZSwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RMZWdhY3lO
b0ludGVyZmFjZU9iamVjdD46OmdldDxqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdE5vZGVB
dHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJub2RlQXR0cmlidXRlIik7CiB9CkBAIC0yNjAsNyAr
MjYwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0Tm9kZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Tm9kZUF0
dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0cmlidXRl
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Pjo6c2V0PHNldEpTVGVzdExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0Tm9kZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibm9kZUF0dHJpYnV0ZSIpOwogfQpAQCAt
MjcyLDcgKzI3Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0ludGVy
ZmFjZU9iamVjdENvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cmliCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhyb3dTY29wZSwgVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0OjpzdGF0aWNTdHJpbmdB
dHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RM
ZWdhY3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cmlidXRlKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RMZWdhY3lO
b0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cmlidXRlLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdExlZ2FjeU5v
SW50ZXJmYWNlT2JqZWN0Pjo6Z2V0U3RhdGljPGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyaWJ1dGVHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJzdGF0aWNTdHJpbmdBdHRyaWJ1dGUiKTsKIH0KQEAgLTI4OSw3ICsy
ODksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmpl
Y3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJpYgogICAgIHJldHVybiB0cnVlOwogfQogCi1i
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1
Y3RvclN0YXRpY1N0cmluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdD46OnNldFN0YXRpYzxzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdENvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdGF0aWNTdHJpbmdBdHRyaWJ1
dGUiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcApp
bmRleCBjM2Y0ZDRkOTE0NWU0YTdiODlhYTU4ZDM5MWVlMWNiMjdjM2FiMTJkLi43ZjNlOTgyYzNm
YjgyM2E0MTUwYjRiNzQ4Yzg5NDVmYTI5NWZmMGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdElucy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExl
Z2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwCkBAIC01NCw4ICs1NCw4IEBAIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc1Byb3RvdHlwZUZ1bmN0aW9u
TmFtZWRJdGVtCiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnNDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3Rvcik7CiAKIGNsYXNzIEpTVGVzdExlZ2Fj
eU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFs
T2JqZWN0IHsKIHB1YmxpYzoKQEAgLTIxNSw3ICsyMTUsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBK
U1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zKiBJRExPcGVyYXRpb248SlNUZXN0TGVnYWN5T3Zl
cnJpZAogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJ
bnMqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1
ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RMZWdhY3lPdmVy
cmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGpzVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTIyNSw3ICsyMjUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iagogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluczo6Z2V0Q29uc3Ry
dWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxP
YmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TGVnYWN5T3ZlcnJp
ZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5z
Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAg
IFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWFwTGlrZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWFwTGlrZS5jcHAKaW5kZXgg
NzNkNDMzZTUxOTk4YjMyNWI5NmUxN2ExNTA2NWQ3YWZiOWFkYTlmNi4uOTg2NzYzMzcwYjRjMzEx
MTY5YzU2NDk0NzQ5YWU5NTViMDZjNDFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1hcExpa2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBMaWtlLmNwcApAQCAtNjIsOSAr
NjIsOSBAQCBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VQcm90b3R5cGVG
dW5jdGlvbkRlbGV0ZSk7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdE1hcExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdE1hcExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TWFwTGlrZVNpemUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIoanNUZXN0TWFwTGlrZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0TWFwTGlrZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0TWFwTGlrZVNpemUpOwogCiBjbGFzcyBKU1Rlc3RNYXBMaWtlUHJv
dG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBA
IC0xODksNyArMTg5LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0TWFwTGlrZSogSURMT3Bl
cmF0aW9uPEpTVGVzdE1hcExpa2U+OjpjYXN0KEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4ganNE
eW5hbWljQ2FzdDxKU1Rlc3RNYXBMaWtlKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0TWFwTGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RNYXBMaWtlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0x
OTksNyArMTk5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RNYXBMaWtl
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG8KICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKEpTVGVzdE1hcExpa2U6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdE1hcExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0TWFw
TGlrZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsK
ICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjE5LDcgKzIxOSw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlU2l6ZUdldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsICh0b0pTPElETEFueT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgZm9yd2Fy
ZFNpemVUb01hcExpa2UobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdCkpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TWFwTGlrZVNpemUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE1hcExpa2VTaXplLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE1h
cExpa2U+OjpnZXQ8anNUZXN0TWFwTGlrZVNpemVHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJzaXplIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWFw
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucy5jcHAKaW5kZXggYjlmYmVhN2NmN2U1OWIyY2Yy
NzEyNThkMTQxMTFiNjQwNDA4OWVhNy4uMjUxMWZlY2I0NjU1MWZlYTI3OGRlMTczZjZhNDdjNzA0
YzE4YTZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zLmNwcApAQCAtNjIsMTEgKzYyLDExIEBAIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1
bmN0aW9uCiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NldChKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTZXQo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE1hcExpa2VX
aXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTaXplKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3Rvcik7CitK
U0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE1h
cExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTZXQpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2V0KTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
c1NpemUpOwogCiBjbGFzcyBKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJv
dG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBA
IC0xOTEsNyArMTkxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0TWFwTGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9ucyogSURMT3BlcmF0aW9uPEpTVGVzdE1hcEwKICAgICByZXR1cm4ganNE
eW5hbWljQ2FzdDxKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zKj4oSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0
b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0yMDEsNyArMjAxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlMKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHBy
b3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMjIyLDcgKzIyMiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2V0R2V0dGVyKEpTR2xvYmFsT2JqCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuc2V0KCkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Nl
dChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0TWFw
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NldCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zPjo6Z2V0PGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTZXRHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJzZXQiKTsKIH0KQEAgLTI0MCw3ICsyNDAsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NldFNldHRlcihK
U0dsb2JhbE9iagogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NldChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0TWFw
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NldCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RNYXBMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6c2V0PHNldEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRl
bk9wZXJhdGlvbnNTZXRTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgInNldCIpOwogfQpAQCAtMjUyLDcgKzI1Miw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2l6ZUdldHRlcihK
U0dsb2JhbE9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEFu
eT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgZm9yd2FyZFNpemVUb01hcExpa2Uo
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NpemUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE1hcExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTaXplLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnM+OjpnZXQ8anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NpemVHZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzaXplIik7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIu
Y3BwCmluZGV4IGY5ODBjOTcxMTM2YzIyYzIwNzk0ZTg4YTVkODBhMjY1MGI2MWI3NjQuLmQ5ZTNj
ZGYyY2RkYmQ1NzA3MjZjMGVlZDgyMTE1ZmQxNGU2OTgxZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJOb0lkZW50aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCkBAIC00
Nyw4ICs0Nyw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
ck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aWZpZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKTsKIAogY2xhc3Mg
SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyUHJvdG90eXBlIGZpbmFsIDog
cHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0zMTUsNyArMzE1LDcg
QEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmRlZmluZU93
blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QKICAgICByZXR1cm4gSlNPYmplY3Q6OmRlZmluZU93
blByb3BlcnR5KG9iamVjdCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBuZXdQ
cm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0z
MjUsNyArMzI1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcigKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllcjo6Z2V0Q29u
c3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9i
YWxPYmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRBbmRJ
bmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKaW5kZXggZDYxMTMwYmY0Y2VhMzQwMGI3NzcwZjIxYTM5
YTc3OTJiZWEwMjQ4Ny4uNjUxODMxNWJhZDY2MmEyMjY5Njk5Zjg2NDcxYzBlNTNiNmJjZTZkYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCkBAIC00Nyw4ICs0Nyw4IEBAIHVzaW5nIG5hbWVzcGFj
ZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25z
dHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOwogCiBjbGFzcyBKU1Rlc3RO
YW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvblByb3RvdHlwZSBmaW5hbCA6IHB1
YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMzE1LDcgKzMxNSw3IEBA
IGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OmRlZmlu
ZU93blByb3BlcnR5KEpTT2JqZWN0KiBvCiAgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Q
cm9wZXJ0eShvYmplY3QsIGxleGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgbmV3UHJv
cGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTMyNSw3ICszMjUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydQogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb246OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHBy
b3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0
b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9
IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50
aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAppbmRleCAyMGUwMjMzZWNm
OTc0ZmM4NmNhODVhMjJmZjkxMTQ3MjBkYWQzMzg3Li5mNDM0ZTQ3ODRjNWRhMzU1NGE2NGJlYjkw
MDZiYzAwMjA4MzRhZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKQEAgLTU0LDggKzU0LDggQEAgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllclByb3RvdHlwZUZ1bmMKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZp
ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmll
ckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik7CiAKIGNsYXNzIEpTVGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlIGZpbmFsIDogcHVi
bGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0zMjksNyArMzI5LDcgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZp
ZXIqIElETE9wZXJhdGlvbjxKU1Rlc3QKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RO
YW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcio+KEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVy
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0zMzksNyArMzM5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG8KICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90
b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyTm9JZGVu
dGlmaWVyLmNwcAppbmRleCAxZDUyYTY0NjRhMWRhNTk3YTk1YWE0ZDkzYmI1NDhhZmQzMWQ4MDdh
Li5hZDRmMWEwODk0NzQ2M2UzN2E0MTU3NTkzNDU0ZWUzNWI5ZjM3MzVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVy
Tm9JZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyLmNwcApAQCAtNDYsOCArNDYsOCBA
QCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkRGVsZXRlck5vSWRl
bnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik7
CiAKIGNsYXNzIEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllclByb3RvdHlwZSBmaW5hbCA6
IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMjI3LDcgKzIyNyw3
IEBAIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyOjpkZWxldGVQcm9wZXJ0eUJ5
SW5kZXgoSlNDZWxsKiBjZWxsLCBKU0dsb2JhCiAgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWxldGVQ
cm9wZXJ0eUJ5SW5kZXgoY2VsbCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgaW5kZXgpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmll
ckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIz
Nyw3ICsyMzcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkRGVs
ZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgp
KSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50
aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZN
JiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNl
cHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcAppbmRleCBiMjkwNDRlYTAwZmRiYjVm
YzAzNjczZThkNDdiNTUxYzNiZjIyNjQ0Li5lM2FmNDE5NmQ4MDBiY2U2ZTYwYmEzOTIxZTlhNmU0
ZmQyODUxZDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJv
d2luZ0V4Y2VwdGlvbi5jcHAKQEAgLTQ2LDggKzQ2LDggQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsK
IAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3ROYW1lZERlbGV0
ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik7CiAK
IGNsYXNzIEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90eXBlIGZpbmFs
IDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yMjcsNyArMjI3
LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6ZGVsZXRlUHJv
cGVydHlCeUluZGV4KEpTQ2VsbCogY2VsbCwgSlMKICAgICByZXR1cm4gSlNPYmplY3Q6OmRlbGV0
ZVByb3BlcnR5QnlJbmRleChjZWxsLCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbmRleCk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdF
eGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoanNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTIzNyw3ICsyMzcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbAogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb246
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlw
ZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5h
bWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE5hbWVk
RGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNwcApp
bmRleCAyNzQ3MWVkZTllZWY0NzJkMmJiMWQ4MTkwZjc4M2YxMDMxYmFjNGEzLi5iZWRhMWI2OTg4
OTdlZDAxMjk4ZmVjMTU0ZTQ1OTJmMmQzYzUyYzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZp
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5jcHAKQEAgLTUxLDggKzUxLDggQEAgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllclByb3Rv
dHlwZUZ1bmN0aW9uTmFtZWQKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVu
dGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rv
cik7CiAKIGNsYXNzIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlIGZp
bmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yMzQsNyAr
MjM0LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZp
ZXIqIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZERlbGUKICAgICByZXR1cm4ganNEeW5hbWljQ2Fz
dDxKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcio+KEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE5h
bWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNDQsNyArMjQ0
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZERlbGV0ZXJXaXRo
SWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9
CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmll
ckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYg
dm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0
dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAKaW5kZXggMDBjOTYzNGE0NGRjODAyZTI1
ZGRhZTQxZjFkNzBjNDUyODdhZGM1Yi4uMmM4M2RlNDM5MWU4NTg5OWM2ZDEyMjMxMmFjN2JjNjc2
NDFjZWVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElu
ZGV4ZWRHZXR0ZXIuY3BwCkBAIC00Nyw4ICs0Nyw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAK
IC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0TmFtZWREZWxldGVy
V2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IpOwogCiBj
bGFzcyBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZSBmaW5hbCA6
IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMjQxLDcgKzI0MSw3
IEBAIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXI6OmRlbGV0ZVByb3Bl
cnR5QnlJbmRleChKU0NlbGwqIGNlbGwsIEpTCiAgICAgcmV0dXJuICFpbXBsLmlzU3VwcG9ydGVk
UHJvcGVydHlJbmRleChpbmRleCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0TmFtZWREZWxldGVyV2l0
aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI1MSw3ICsyNTEsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0
dGVyQ29uc3RydWN0b3IoSlNHbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFt
ZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3Ry
dWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2
bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJD
YWxsV2l0aC5jcHAKaW5kZXggZTRiOTVhNDYyNDM2ZjY5NzE0OGRkNTg5NTg1MGVlNWU0ZjczYTA5
ZC4uYzhmMDc4OTZlZGIxOTk5YzAyYTk5MTJmYjA5YjEyZjQ5NGJiYTE1ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVy
Q2FsbFdpdGguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoLmNwcApAQCAtNDYsOCArNDYsOCBAQCB1c2luZyBu
YW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3ROYW1lZEdldHRlckNhbGxX
aXRoQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3ROYW1l
ZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IpOwogCiBjbGFzcyBKU1Rlc3ROYW1lZEdldHRlckNh
bGxXaXRoUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBw
dWJsaWM6CkBAIC0yMDEsNyArMjAxLDcgQEAgdm9pZCBKU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRo
OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2IKICAgICBK
U09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIGxleGljYWxHbG9iYWxPYmplY3Qs
IHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMjExLDcgKzIxMSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoOjpn
ZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUt
Pmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1l
ZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdp
dGhDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAg
ICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRp
Zmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIuY3BwCmluZGV4IGVlYTc0ZWNkNjU0ODdjZDUyNWM3NWVm
MmEzODYwMDgzMjg2OGQyMGMuLjJlMDZhZDkxMjFmMWRkMWI1OWIyYjI2YjhkNGY1M2ViOWVmMGFk
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyLmNwcApA
QCAtNDYsOCArNDYsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZEdldHRlck5vSWRl
bnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFt
ZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNv
bnN0cnVjdG9yKTsKIAogY2xhc3MgSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJQcm90b3R5
cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTIw
MSw3ICsyMDEsNyBAQCB2b2lkIEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyOjpnZXRPd25Q
cm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYgogICAgIEpTT2JqZWN0OjpnZXRP
d25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1l
cywgbW9kZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRH
ZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rv
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTIxMSw3ICsyMTEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYgogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXI6Omdl
dENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+
Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVk
R2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE5hbWVkR2V0dGVyTm9J
ZGVudGlmaWVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
KQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJX
aXRoSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKaW5kZXggNjZlYTcyYzgzMjUy
MWExNmFiNzFkNjA3Yzc2OGM1ZWRlM2NmYzU0ZS4uYmE5ZDA2YTA4YTJiYmFhZjc1NjI1MTYxYjdi
NDlmZWYzMWVkYzM5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlcldpdGhJ
ZGVudGlmaWVyLmNwcApAQCAtNTEsOCArNTEsOCBAQCBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbkdldHRlcgog
CiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3ROYW1lZEdldHRlcldpdGhJZGVu
dGlmaWVyQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RO
YW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOwogCiBjbGFzcyBKU1Rlc3ROYW1l
ZEdldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25G
aW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yMTIsNyArMjEyLDcgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllciogSURMT3BlcmF0aW9uPEpTVGVzdE5h
bWVkR2V0dGUKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZEdldHRlcldpdGhJ
ZGVudGlmaWVyKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50
aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFt
ZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0yMjIsNyArMjIyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9i
YWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50
aWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHBy
b3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0TmFt
ZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5jcHAKaW5kZXggYmU4
NmVmNzA3ODcxYmY1NDk0MTJmNTMwYjBhYWRjNmU2NmU3ZmNlNC4uZWI3ODI4MWM1NjU1YWE4ZTdk
OWI0OTY3NWViYzU1YzlhZDk3MzAzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0
ZXJOb0lkZW50aWZpZXIuY3BwCkBAIC00Niw4ICs0Niw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7
CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZp
ZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE5hbWVk
U2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOwogCiBjbGFzcyBKU1Rlc3ROYW1lZFNldHRl
ck5vSWRlbnRpZmllclByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmpl
Y3QgewogcHVibGljOgpAQCAtMjcwLDcgKzI3MCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJO
b0lkZW50aWZpZXI6OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFs
CiAgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGxleGljYWxH
bG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRU
aHJvdyk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0
ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTI4MCw3ICsyODAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYgogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmdldENv
bnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xv
YmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkU2V0
dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVu
dGlmaWVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQog
ewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKaW5kZXggMjlmNjVhNmM4
NGVlMTQ0ZjQwNjAxOGY0NjU1NmZiOGZiZGJlOTNiZi4uMmZjODgzOGY2MjY2NjViZWRjNWIwZjcz
ODE3NjhkZmFkZjA3ZTZiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRl
clRocm93aW5nRXhjZXB0aW9uLmNwcApAQCAtNDYsOCArNDYsOCBAQCB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3ROYW1lZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOwog
CiBjbGFzcyBKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90eXBlIGZpbmFs
IDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yNzAsNyArMjcw
LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpkZWZpbmVPd25Q
cm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBKU0cKICAgICByZXR1cm4gSlNPYmplY3Q6OmRlZmlu
ZU93blByb3BlcnR5KG9iamVjdCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBu
ZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE5h
bWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI4MCw3ICsy
ODAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsbwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkp
OwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4
Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0
aW9uQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewog
ICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRl
bnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKaW5kZXggZmJjOWE5ZDA5MTU1MDFhZDQy
NDBhOThlYjE3OTUzMTU4OGE4NWVkNi4uMjgyZjI2ZDNmZjFlZWVhN2U4ZjA4ODdmODI5NmIxZDJh
YjBhNjhjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlm
aWVyLmNwcApAQCAtNTEsOCArNTEsOCBAQCBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkUwogCiAvLyBB
dHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1l
ZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVy
Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3ROYW1lZFNl
dHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOwogCiBjbGFzcyBKU1Rlc3ROYW1lZFNldHRl
cldpdGhJZGVudGlmaWVyUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9i
amVjdCB7CiBwdWJsaWM6CkBAIC0yODEsNyArMjgxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllciogSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkU2V0
dGUKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlm
aWVyKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFs
dWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0
ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0
b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0yOTEsNyArMjkxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWwKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI6
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlw
ZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5h
bWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCmluZGV4
IDMwMzYxMDVjMGQ3OWYwNGVmMzU4YTMwNDZjOWY5OTk5MmU1NTc1YWQuLjkxNDAzNzZmODdkOTZj
MmI3N2FjM2QxYmQ3MjcwY2E2OGJlZDM5ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAKQEAgLTU0LDggKzU0LDggQEAgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyUHJv
dG90eXBlRnVuY3Rpb25JbmQKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5k
ZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNv
bnN0cnVjdG9yKTsKIAogY2xhc3MgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlclBy
b3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpA
QCAtMzA2LDcgKzMwNiw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5hbWVkU2V0dGVyV2l0
aEluZGV4ZWRHZXR0ZXIqIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZFNlCiAgICAgcmV0dXJuIGpz
RHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlcio+KEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRH
ZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtMzE2LDcgKzMxNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTR2xvCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyOjpnZXRD
b25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmds
b2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE5hbWVkU2V0dGVy
V2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVy
QW5kU2V0dGVyLmNwcAppbmRleCBmMjBmNWY3ZWFkMTg2ZDEzNTU0YWU2MDkzMzBhNjViMmU2OTQw
YzI0Li4zMTcwNzkzOWUxMjdmNTc4NjM4MWFmNTc0M2RiN2RhNTZmNjQ0NDE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJB
bmRTZXR0ZXIuY3BwCkBAIC01NCw4ICs1NCw4IEBAIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlclByb3RvdHlwZUZ1CiAK
IC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJB
bmRTZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpz
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3Rvcik7CitK
U0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRH
ZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3Rvcik7CiAKIGNsYXNzIEpTVGVzdE5hbWVkU2V0dGVyV2l0
aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05v
bkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTMyOSw3ICszMjksNyBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyKiBJRExPcGVy
YXRpb248SlNUZQogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0
aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE5h
bWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTMzOSw3ICszMzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1YwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlcjo6
Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBl
LT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAKaW5kZXggMjBmYjI0NGRmZTIyYTAx
MzhlMjQzMjM1NDY0MzE5OWYyY2Y1YTQ1ZC4uNmU5ZGNhNjNjZTdjOTNhY2VhYzQ0OTUyNjM0MmZm
MjcyZDNmMjg2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNl
dHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcApAQCAtNDYsOCArNDYsOCBAQCB1c2lu
ZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5z
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZFNldHRl
cldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0
SW5zQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3ROYW1l
ZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOwogCiBjbGFzcyBK
U1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zUHJvdG90eXBlIGZpbmFs
IDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yNTEsNyArMjUx
LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zOjpk
ZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2IKICAgICByZXR1cm4gSlNPYmplY3Q6OmRlZmlu
ZU93blByb3BlcnR5KG9iamVjdCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBu
ZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5z
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTI2MSw3ICsyNjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1YwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVC
dWlsdEluczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
cHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0
b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9
IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXMuY3BwCmlu
ZGV4IGUzMzc2MzNjZDcyNmYyMWM1ZDQ3ODhhNzIzMTcwYzcwZjg0ZWI4YmMuLmJmYWMwMjk1MGY3
MmMzZDFmYWRhZGI2NDIyNGM1YTNiYzM5M2Y0NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRp
ZXMuY3BwCkBAIC01Miw5ICs1Miw5IEBAIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzSW5zdGFuCiAKIC8vIEF0
dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVk
U2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGll
c1VuZm9yZ2VhYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpz
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9y
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNV
bmZvcmdlYWJsZUF0dHJpYnV0ZSk7CiAKIGNsYXNzIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2Fj
eVVuZm9yZ2VhYmxlUHJvcGVydGllc1Byb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9u
RmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMzExLDcgKzMxMSw3IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllcyogSURM
T3BlcmF0aW9uCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9i
amVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVz
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMzIxLDcgKzMyMSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGll
c0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJs
ZVByb3BlcnRpZXNDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTM0Miw3ICsz
NDIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5
VW5mb3JnZWFibGVQcm9wZXJ0aWVzVW5mb3JnZWFibAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUsIGltcGwudW5mb3JnZWFibGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVBy
b3BlcnRpZXNVbmZvcmdlYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQ
cm9wZXJ0aWVzVW5mb3JnZWFibGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3Jn
ZWFibGVQcm9wZXJ0aWVzPjo6Z2V0PGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2Vh
YmxlUHJvcGVydGllc1VuZm9yZ2VhYmxlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JC
ZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidW5mb3Jn
ZWFibGVBdHRyaWJ1dGUiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVBy
b3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdl
YWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcAppbmRleCA1ZTdjMWQ5
ZGUxNTkzOGU4M2YzY2M0YjA4ZjBjMTJlY2UxNDI2ZjUxLi5lNDU3OGEyOWI2YTZmMzZlMzRkZTY5
OThlZjQ3NDc3MzMzNGI0MDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9w
ZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9y
Z2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwCkBAIC01Miw5ICs1
Miw5IEBAIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnCiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVu
Zm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVu
Zm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElu
c1VuZm9yZ2VhYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpz
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92
ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNl
dEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2Fj
eU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2Fj
eU92ZXJyaWRlQnVpbHRJbnNVbmZvcmdlYWJsZUF0dHJpYnV0ZSk7CiAKIGNsYXNzIEpTVGVzdE5h
bWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnNQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsK
IHB1YmxpYzoKQEAgLTI5Miw3ICsyOTIsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3ROYW1l
ZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycgogICAg
IHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2Vh
YmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMqPihKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJs
ZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE5hbWVkU2V0dGVyV2l0
aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25z
dHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTMwMiw3ICszMDIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0Fu
ZAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5
VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluczo6Z2V0Q29uc3Ry
dWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxP
YmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRTZXR0ZXJX
aXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0Nv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVBy
b3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0zMjMsNyArMzIzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU8KICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVuZm9yZ2VhYmxlQXR0cmlidXRlKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJX
aXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc1Vu
Zm9yZ2VhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNB
bmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zVW5mb3JnZWFibGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0TmFtZWRTZXR0ZXJX
aXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucz46
OmdldDxqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRM
ZWdhY3lPdmVycmlkZUJ1aWx0SW5zVW5mb3JnZWFibGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJ1bmZvcmdlYWJsZUF0dHJpYnV0ZSIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCmluZGV4IDk4OGJiNWM0YWZm
MDdkNmViMzg2NWQ1YmVmNjM3YzViYzM1Nzg5ZGYuLjk0ZTEzMTAwY2FjZGEzOGZlNDU2NmM2MGM0
NTUxYmMxZTVlYTk0NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKQEAgLTY5LDEwICs2OSwxMCBAQCBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpOwog
CiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3ROb2RlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROb2Rl
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE5vZGVOYW1lKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Tm9kZU5hbWUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3ROb2RlQ29uc3RydWN0b3Ip
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3ROb2RlQ29uc3RydWN0b3IpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3ROb2RlTmFtZSk7CitKU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdE5vZGVOYW1lKTsKIAogY2xhc3MgSlNUZXN0Tm9kZVByb3Rv
dHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAt
MjY1LDcgKzI2NSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5vZGUqIElETE9wZXJhdGlv
bjxKU1Rlc3ROb2RlPjo6Y2FzdChKU0dsb2JhbE9iamVjdCYgbGV4CiAgICAgcmV0dXJuIGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0Tm9kZSo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBj
YWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdE5vZGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIoanNUZXN0Tm9kZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
IHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjc1LDcgKzI3NSw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Tm9kZUNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U1Rlc3ROb2RlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
LCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3ROb2RlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE5vZGVDb25zdHJ1Y3RvciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI5Niw3ICsyOTYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0Tm9kZU5hbWVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmlu
Zz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5uYW1lKCkpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Tm9kZU5hbWUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE5vZGVOYW1lLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE5vZGU+Ojpn
ZXQ8anNUZXN0Tm9kZU5hbWVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJuYW1lIik7CiB9CkBAIC0zMTQsNyAr
MzE0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE5vZGVOYW1lU2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LAogICAgIHJldHVybiB0cnVlOwogfQogCi1i
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Tm9kZU5hbWUoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE5vZGVOYW1l
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE5vZGU+OjpzZXQ8c2V0SlNUZXN0Tm9kZU5hbWVTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm5hbWUiKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
YmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5jcHAKaW5kZXggY2I4NTVlNzhmZmU0Zjg1MTE0MjcyNDk3ZWRmMzg5NThiNGUzNTRlMC4uNzkx
ZmQwZDIyMTllNzljNmFmMWUzMDZjODBiNTVjYzhiMGYzZWQ4NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTE1
OTYsMjAxICsxNTk2LDIwMSBAQCBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWFkT25seUxvbmdBdHRyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVhZE9ubHlTdHJpbmdB
dHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVh
ZE9ubHlUZXN0T2JqQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljUmVhZE9ubHlMb25nQXR0cihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljU3Ry
aW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNvbnN0cnVjdG9y
U3RhdGljU3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0T2JqQ29uc3RydWN0b3JUZXN0U3ViT2JqKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29uc3RydWN0b3JUZXN0U3RhdGljUmVhZG9ubHlP
YmooSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpFbnVt
QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakVudW1BdHRyKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpCeXRlQXR0cihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakJ5dGVBdHRyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpPY3RldEF0dHIoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpPY3RldEF0dHIoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialNob3J0QXR0cihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialNob3J0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ2xhbXBlZFNob3J0QXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNsYW1wZWRTaG9ydEF0dHIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakVuZm9yY2VSYW5nZVNo
b3J0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakVuZm9yY2VSYW5n
ZVNob3J0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RPYmpVbnNpZ25lZFNob3J0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0T2JqTG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RPYmpMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0T2JqTG9uZ0xvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0T2JqTG9uZ0xvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpTdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqU3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVXN2c3RyaW5nQXR0cihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialVzdnN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialRlc3RPYmpBdHRyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqVGVzdE9iakF0dHIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialRlc3ROdWxsYWJsZU9iakF0dHIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpUZXN0TnVsbGFibGVPYmpBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpMZW5pZW50
VGVzdE9iakF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpMZW5pZW50
VGVzdE9iakF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE9ialVuZm9yZ2VhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE9ialN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFz
RW1wdHlTdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE9ialVzdnN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqVXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1w
dHlTdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE9iakJ5dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakJ5dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0
eVN0cmluZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
T2JqU3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RPYmpTdHJpbmdMb25nUmVjb3JkQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVXN2c3RyaW5nTG9u
Z1JlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpVc3ZzdHJp
bmdMb25nUmVjb3JkQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0T2JqU3RyaW5nT2JqUmVjb3JkQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdE9ialN0cmluZ09ialJlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialN0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0cihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialN0cmluZ051bGxhYmxlT2JqUmVj
b3JkQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
T2JqU3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdE9ialN0cmluZ1ZvaWRDYWxsYmFja1JlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakRpY3Rpb25hcnlBdHRyKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqRGljdGlvbmFyeUF0dHIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak51bGxhYmxlRGljdGlv
bmFyeUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpOdWxsYWJsZURp
Y3Rpb25hcnlBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5VbmlvbkF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5VbmlvbkF0dHIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakFubm90YXRlZFR5cGVJblNlcXVlbmNl
QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakFubm90YXRlZFR5cGVJ
blNlcXVlbmNlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0T2JqSW1wbGVtZW50YXRpb25FbnVtQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdE9iakltcGxlbWVudGF0aW9uRW51bUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak1lZGlhRGV2aWNlcyhKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialhNTE9iakF0dHIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpYTUxPYmpBdHRyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDcmVhdGUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDcmVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRVU1ZTdHJp
bmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVNW
U3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0cihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50
ZWdyYWxBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVmbGVjdGVkVVNWVVJMQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialJlZmxlY3RlZFVTVlVSTEF0dHIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlZmxlY3Rl
ZFN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0
ZWRTdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJv
b2xlYW5BdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVk
Q3VzdG9tQm9vbGVhbkF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01f
R0VUVEVSKGpzVGVzdE9ialJlYWRPbmx5TG9uZ0F0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RPYmpSZWFkT25seVN0cmluZ0F0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RPYmpSZWFkT25seVRlc3RPYmpBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNSZWFkT25seUxvbmdBdHRyKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRy
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQ29uc3RydWN0b3JTdGF0
aWNTdHJpbmdBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQ29uc3Ry
dWN0b3JUZXN0U3ViT2JqKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQ29u
c3RydWN0b3JUZXN0U3RhdGljUmVhZG9ubHlPYmopOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RPYmpFbnVtQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dE9iakVudW1BdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQnl0ZUF0
dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpCeXRlQXR0cik7CitK
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iak9jdGV0QXR0cik7CitKU0NfREVDTEFS
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iak9jdGV0QXR0cik7CitKU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdE9ialNob3J0QXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdE9ialNob3J0QXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVz
dE9iakNsYW1wZWRTaG9ydEF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RPYmpDbGFtcGVkU2hvcnRBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0
T2JqRW5mb3JjZVJhbmdlU2hvcnRBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0T2JqRW5mb3JjZVJhbmdlU2hvcnRBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdE9iakxvbmdBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0T2JqTG9uZ0F0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpMb25n
TG9uZ0F0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpMb25nTG9u
Z0F0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpVbnNpZ25lZExvbmdM
b25nQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialVuc2lnbmVk
TG9uZ0xvbmdBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqU3RyaW5n
QXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialN0cmluZ0F0dHIp
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpVc3ZzdHJpbmdBdHRyKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqVXN2c3RyaW5nQXR0cik7CitKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialRlc3RPYmpBdHRyKTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqVGVzdE9iakF0dHIpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RPYmpUZXN0TnVsbGFibGVPYmpBdHRyKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqVGVzdE51bGxhYmxlT2JqQXR0cik7CitKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakxlbmllbnRUZXN0T2JqQXR0cik7CitKU0NfREVDTEFS
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iakxlbmllbnRUZXN0T2JqQXR0cik7CitKU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialVuZm9yZ2VhYmxlQXR0cik7CitKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3Ry
aW5nKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqU3RyaW5nQXR0clRy
ZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyk7CitKU0NfREVDTEFS
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialVzdnN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0Vt
cHR5U3RyaW5nKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQnl0ZVN0cmlu
Z0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0T2JqQnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqU3RyaW5nTG9uZ1JlY29yZEF0dHIp
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpTdHJpbmdMb25nUmVjb3Jk
QXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialVzdnN0cmluZ0xvbmdS
ZWNvcmRBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqVXN2c3Ry
aW5nTG9uZ1JlY29yZEF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpV
c3ZzdHJpbmdMb25nUmVjb3JkQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0T2JqU3RyaW5nT2JqUmVjb3JkQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdE9ialN0cmluZ09ialJlY29yZEF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RPYmpTdHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHIpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpTdHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHIp
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpTdHJpbmdWb2lkQ2FsbGJhY2tS
ZWNvcmRBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqU3RyaW5n
Vm9pZENhbGxiYWNrUmVjb3JkQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVz
dE9iakRpY3Rpb25hcnlBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
T2JqRGljdGlvbmFyeUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpO
dWxsYWJsZURpY3Rpb25hcnlBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0T2JqTnVsbGFibGVEaWN0aW9uYXJ5QXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdE9iakFubm90YXRlZFR5cGVJblVuaW9uQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdE9iakFubm90YXRlZFR5cGVJblVuaW9uQXR0cik7CitKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakFubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0cik7CitK
U0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iakFubm90YXRlZFR5cGVJblNlcXVl
bmNlQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakltcGxlbWVudGF0
aW9uRW51bUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpJbXBs
ZW1lbnRhdGlvbkVudW1BdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2Jq
TWVkaWFEZXZpY2VzKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqWE1MT2Jq
QXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialhNTE9iakF0dHIp
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpDcmVhdGUpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDcmVhdGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cik7CitKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdE9ialJlZmxlY3RlZFVTVlN0cmluZ0F0dHIpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxB
dHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqUmVmbGVjdGVkVW5zaWdu
ZWRJbnRlZ3JhbEF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpS
ZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01f
R0VUVEVSKGpzVGVzdE9ialJlZmxlY3RlZFVTVlVSTEF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVU1ZVUkxBdHRyKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cik7CitKU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRl
Z3JhbEF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpSZWZsZWN0ZWRD
dXN0b21Cb29sZWFuQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9i
alJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHIpOwogI2lmIEVOQUJMRShURVNU
X0ZFQVRVUkUpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqRW5h
YmxlZEF0UnVudGltZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dE9iakVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RPYmpFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSk7CiAj
ZW5kaWYKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE9iakNvbnN0cnVjdG9yRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0
YXRpYyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNvbnN0cnVjdG9yRW5h
YmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpYyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01f
R0VUVEVSKGpzVGVzdE9iakNvbnN0cnVjdG9yRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRp
Yyk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iakNvbnN0cnVjdG9yRW5h
YmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpYyk7CiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpUeXBlZEFycmF5QXR0cihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdE9ialR5cGVkQXJyYXlBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDdXN0b21BdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ3VzdG9tQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqT25mb28oSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RPYmpPbmZvbyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0T2JqT253ZWJraXRmb28oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RPYmpPbndlYmtpdGZvbyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0T2JqV2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdE9ialdpdGhFeGVjU3RhdGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialdpdGhDYWxsV2l0aEFuZFNl
dHRlckNhbGxXaXRoQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
T2JqV2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25D
b250ZXh0QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqV2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5k
RXhlY1N0YXRlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2Jq
V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhl
Y1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdE9ialR5cGVkQXJyYXlBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0T2JqVHlwZWRBcnJheUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RPYmpDdXN0b21BdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
T2JqQ3VzdG9tQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iak9uZm9v
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqT25mb28pOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpPbndlYmtpdGZvbyk7CitKU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdE9iak9ud2Via2l0Zm9vKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNUZXN0T2JqV2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialdpdGhFeGVjU3RhdGVBdHRyaWJ1dGUpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0
aEF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialdpdGhD
YWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialdpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRF
eGVjU3RhdGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpX
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUp
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUpOwogI2lmIEVOQUJMRShD
b25kaXRpb24xKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNv
bmRpdGlvbmFsQXR0cjEoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25k
aXRpb25hbEF0dHIxKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2Jq
Q29uZGl0aW9uYWxBdHRyMSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9i
akNvbmRpdGlvbmFsQXR0cjEpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpICYmIEVO
QUJMRShDb25kaXRpb24yKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE9iakNvbmRpdGlvbmFsQXR0cjIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RP
YmpDb25kaXRpb25hbEF0dHIyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0T2JqQ29uZGl0aW9uYWxBdHRyMik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdE9iakNvbmRpdGlvbmFsQXR0cjIpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEp
IHx8IEVOQUJMRShDb25kaXRpb24yKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMyk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRp
dGlvbjEpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29uZGl0
aW9uYWxBdHRyNENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0cnVjdG9yKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0cnVjdG9y
KTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xKSAmJiBFTkFCTEUoQ29uZGl0aW9uMikK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25kaXRpb25hbEF0
dHI1Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25k
aXRpb25hbEF0dHI1Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3IpOwogI2Vu
ZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNvbmRpdGlvbmFs
QXR0cjZDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVz
dE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3Rvcik7CiAjZW5kaWYKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUx
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ2FjaGVk
QXR0cmlidXRlMihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpDYWNo
ZWRBdHRyaWJ1dGUxKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQ2FjaGVk
QXR0cmlidXRlMik7CiAjaWYgRU5BQkxFKENPTkRJVElPTikKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUzKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTMpOwogI2VuZGlmCi1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQW55QXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQW55QXR0cmlidXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpPYmplY3RBdHRyaWJ1dGUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpPYmplY3RBdHRyaWJ1dGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbnRlbnRE
b2N1bWVudChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9i
ak11dGFibGVQb2ludChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iak11dGFi
bGVQb2ludChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
T2JqU3RyYXdiZXJyeShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialN0cmF3
YmVycnkoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9i
akRlc2NyaXB0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqSWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpJZChKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqSGFzaChKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlcGxhY2VhYmxlQXR0
cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVwbGFjZWFibGVB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE9iak51bGxhYmxlRG91YmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0T2JqTnVsbGFibGVMb25nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTnVsbGFibGVCb29sZWFuQXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTnVs
bGFibGVTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iak51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpOdWxsYWJs
ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0T2JqTnVsbGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJs
ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iak51bGxhYmxl
VVNWU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdE9iak51bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5n
U2V0dGFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE9iakF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialRlc3RS
ZWFkT25seVZvaWRQcm9taXNlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0T2JqVGVzdFJlYWRPbmx5UHJvbWlzZUF0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialB1dEZvcndhcmRzQXR0
cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE9ialB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpTdHJpbmdpZmllckF0dHJpYnV0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialN0cmluZ2lmaWVyQXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpD
b25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29uZGl0
aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbmRpdGlvbmFs
bHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0
cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQW55QXR0
cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQW55QXR0cmli
dXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqT2JqZWN0QXR0cmlidXRl
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqT2JqZWN0QXR0cmlidXRl
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQ29udGVudERvY3VtZW50KTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqTXV0YWJsZVBvaW50KTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqTXV0YWJsZVBvaW50KTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqU3RyYXdiZXJyeSk7CitKU0NfREVDTEFSRV9DVVNU
T01fU0VUVEVSKHNldEpTVGVzdE9ialN0cmF3YmVycnkpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RPYmpEZXNjcmlwdGlvbik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpz
VGVzdE9iaklkKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqSWQpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpIYXNoKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZSk7CitKU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iak51bGxhYmxlRG91YmxlQXR0cmlidXRlKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqTnVsbGFibGVMb25nQXR0cmlidXRlKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqTnVsbGFibGVCb29sZWFuQXR0cmli
dXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqTnVsbGFibGVTdHJpbmdB
dHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpOdWxsYWJsZUxv
bmdTZXR0YWJsZUF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dE9iak51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0T2JqTnVsbGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSk7CitKU0NfREVD
TEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iak51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRy
aWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpOdWxsYWJsZVVTVlN0
cmluZ1NldHRhYmxlQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0T2JqTnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdE9iak51bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRl
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqTnVsbGFibGVCeXRlU3Ry
aW5nU2V0dGFibGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RP
YmpBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpBdHRyaWJ1
dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNUZXN0T2JqVGVzdFJlYWRPbmx5Vm9pZFByb21pc2VBdHRyaWJ1dGUpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpUZXN0UmVhZE9ubHlQcm9taXNlQXR0cmli
dXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqUHV0Rm9yd2FyZHNBdHRy
aWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpQdXRGb3J3YXJk
c0F0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialB1dEZvcndh
cmRzTnVsbGFibGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RPYmpQdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0T2JqU3RyaW5naWZpZXJBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RPYmpTdHJpbmdpZmllckF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1
dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5
RXhwb3NlZFRvV2luZG93QXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZSk7CitKU0NfREVDTEFS
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJB
dHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpDb25kaXRpb25h
bGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtl
ckF0dHJpYnV0ZSk7CiAKIGNsYXNzIEpTVGVzdE9ialByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBK
U0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMjU4Myw3ICsyNTgzLDcgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgSlNUZXN0T2JqKiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FzdChK
U0dsb2JhbE9iamVjdCYgbGV4aWMKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoq
PihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2Jq
Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNTkzLDcgKzI1OTMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0T2JqOjpnZXRDb25zdHJ1
Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9i
amVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0T2JqQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0y
NjE0LDcgKzI2MTQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlM
b25nQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsbwogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBpbXBsLnJlYWRPbmx5TG9uZ0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWFkT25seUxvbmdBdHRyKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpSZWFkT25seUxvbmdBdHRy
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dE9iaj46OmdldDxqc1Rlc3RPYmpSZWFkT25seUxvbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJy
b3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVh
ZE9ubHlMb25nQXR0ciIpOwogfQpAQCAtMjYyNyw3ICsyNjI3LDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdE9ialJlYWRPbmx5U3RyaW5nQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEcKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9N
U3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnJlYWRPbmx5U3Ry
aW5nQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9i
alJlYWRPbmx5U3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoanNUZXN0T2JqUmVhZE9ubHlTdHJpbmdBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpS
ZWFkT25seVN0cmluZ0F0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWFkT25seVN0cmluZ0F0dHIiKTsK
IH0KQEAgLTI2NDAsNyArMjY0MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpS
ZWFkT25seVRlc3RPYmpBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2Nv
cGUsIGltcGwucmVhZE9ubHlUZXN0T2JqQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlYWRPbmx5VGVzdE9iakF0dHIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialJlYWRPbmx5VGVzdE9iakF0
dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialJlYWRPbmx5VGVzdE9iakF0dHJHZXR0ZXIsIENhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJyZWFkT25seVRlc3RPYmpBdHRyIik7CiB9CkBAIC0yNjUyLDcgKzI2NTIsNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNSZWFkT25seUxvbmdBdHRy
R2V0dGVyKEpTR2xvYmFsTwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9K
UzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBUZXN0T2JqOjpzdGF0
aWNSZWFkT25seUxvbmdBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNSZWFkT25seUxvbmdBdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0
YXRpY1JlYWRPbmx5TG9uZ0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0U3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9y
U3RhdGljUmVhZE9ubHlMb25nQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgInN0YXRpY1JlYWRPbmx5TG9uZ0F0dHIiKTsKIH0KQEAgLTI2NjQsNyArMjY2NCw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0
dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwg
VGVzdE9iajo6c3RhdGljU3RyaW5nQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQ29uc3RydWN0b3JT
dGF0aWNTdHJpbmdBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OmdldFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRp
Y1N0cmluZ0F0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdGF0
aWNTdHJpbmdBdHRyIik7CiB9CkBAIC0yNjgxLDcgKzI2ODEsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyU2V0dGVyKEpTR2xvYmFs
T2JqZWN0JgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDb25zdHJ1
Y3RvclN0YXRpY1N0cmluZ0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0U3RhdGljPHNldEpT
VGVzdE9iakNvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic3RhdGljU3RyaW5nQXR0ciIpOwogfQpA
QCAtMjY5Miw3ICsyNjkyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNvbnN0
cnVjdG9yVGVzdFN1Yk9iakdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWMKICAgICByZXR1cm4g
SlNUZXN0U3ViT2JqOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0T2JqQ29uc3RydWN0b3JUZXN0U3ViT2JqKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpDb25zdHJ1Y3RvclRlc3RT
dWJPYmosIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6Z2V0U3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9yVGVzdFN1Yk9iakdldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RTdWJPYmoiKTsKIH0KQEAg
LTI3MDksNyArMjcwOSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1
Y3RvclRlc3RTdGF0aWNSZWFkb25seU9iakdldHRlcihKU0dsb2JhbE9iCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4obGV4aWNh
bEdsb2JhbE9iamVjdCwgKmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KCZsZXhpY2FsR2xvYmFs
T2JqZWN0KSwgdGhyb3dTY29wZSwgVGVzdE9iajo6dGVzdFN0YXRpY1JlYWRvbmx5T2JqKGRvY3Vt
ZW50KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25z
dHJ1Y3RvclRlc3RTdGF0aWNSZWFkb25seU9iaihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQ29uc3RydWN0b3JUZXN0U3RhdGljUmVhZG9ubHlP
YmosIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0T2JqPjo6Z2V0U3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9yVGVzdFN0YXRpY1JlYWRvbmx5
T2JqR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidGVzdFN0YXRpY1Jl
YWRvbmx5T2JqIik7CiB9CkBAIC0yNzIyLDcgKzI3MjIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0T2JqRW51bUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExFbnVtZXJh
dGlvbjxUZXN0T2JqOjpFbnVtVHlwZT4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGltcGwuZW51bUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpFbnVtQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNUZXN0T2JqRW51bUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakVudW1BdHRyR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiZW51bUF0dHIiKTsKIH0KQEAgLTI3NDMsNyArMjc0Myw3IEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpFbnVtQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RPYmpFbnVtQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqRW51bUF0dHIsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakVudW1BdHRyU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJlbnVtQXR0ciIpOwogfQpAQCAtMjc1
Niw3ICsyNzU2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakJ5dGVBdHRyR2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWMKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQnl0ZT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgaW1wbC5ieXRlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE9iakJ5dGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpCeXRlQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQnl0ZUF0
dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJieXRlQXR0ciIpOwogfQpAQCAtMjc3NCw3ICsyNzc0LDcgQEAg
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakJ5dGVBdHRyU2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdE9iakJ5dGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpCeXRlQXR0ciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqQnl0ZUF0dHJTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImJ5dGVBdHRyIik7CiB9
CkBAIC0yNzg3LDcgKzI3ODcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqT2N0
ZXRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZQogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExPY3RldD4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgaW1wbC5vY3RldEF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpPY3RldEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iak9jdGV0QXR0ciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNU
ZXN0T2JqT2N0ZXRBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAib2N0ZXRBdHRyIik7CiB9CkBAIC0yODA1
LDcgKzI4MDUsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqT2N0ZXRBdHRyU2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZQogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqT2N0ZXRBdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RPYmpPY3RldEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iak9jdGV0
QXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVl
LCAib2N0ZXRBdHRyIik7CiB9CkBAIC0yODE4LDcgKzI4MTgsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0T2JqU2hvcnRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExTaG9y
dD4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5zaG9ydEF0dHIoKSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpTaG9ydEF0dHIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialNob3J0
QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqU2hvcnRBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JC
ZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2hvcnRB
dHRyIik7CiB9CkBAIC0yODM2LDcgKzI4MzYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0T2JqU2hvcnRBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZQog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqU2hv
cnRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpTaG9ydEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0
PHNldEpTVGVzdE9ialNob3J0QXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAic2hvcnRBdHRyIik7CiB9CkBAIC0yODQ5LDcgKzI4NDksNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ2xhbXBlZFNob3J0QXR0ckdldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsbwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExDbGFtcEFkYXB0b3I8SURMU2hvcnQ+PihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBpbXBsLmNsYW1wZWRTaG9ydEF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDbGFtcGVkU2hvcnRBdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpDbGFtcGVkU2hvcnRB
dHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdE9iaj46OmdldDxqc1Rlc3RPYmpDbGFtcGVkU2hvcnRBdHRyR2V0dGVyLCBDYXN0ZWRUaGlz
RXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
Y2xhbXBlZFNob3J0QXR0ciIpOwogfQpAQCAtMjg2Nyw3ICsyODY3LDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdE9iakNsYW1wZWRTaG9ydEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdE9iakNsYW1wZWRTaG9ydEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iakNsYW1wZWRTaG9ydEF0
dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakNsYW1wZWRTaG9ydEF0dHJT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImNs
YW1wZWRTaG9ydEF0dHIiKTsKIH0KQEAgLTI4ODAsNyArMjg4MCw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RPYmpFbmZvcmNlUmFuZ2VTaG9ydEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEVu
Zm9yY2VSYW5nZUFkYXB0b3I8SURMU2hvcnQ+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Nj
b3BlLCBpbXBsLmVuZm9yY2VSYW5nZVNob3J0QXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakVuZm9yY2VSYW5nZVNob3J0QXR0cihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqRW5mb3JjZVJhbmdl
U2hvcnRBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpFbmZvcmNlUmFuZ2VTaG9ydEF0dHJHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJlbmZvcmNlUmFuZ2VTaG9ydEF0dHIiKTsKIH0KQEAgLTI4OTgsNyArMjg5OCw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpFbmZvcmNlUmFuZ2VTaG9ydEF0dHJT
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpFbmZvcmNlUmFuZ2VTaG9ydEF0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdE9iakVuZm9yY2VSYW5nZVNob3J0QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0
SlNUZXN0T2JqRW5mb3JjZVJhbmdlU2hvcnRBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJlbmZvcmNlUmFuZ2VTaG9ydEF0dHIiKTsKIH0K
QEAgLTI5MTEsNyArMjkxMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpVbnNp
Z25lZFNob3J0QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFVuc2lnbmVkU2hvcnQ+KGxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudW5zaWduZWRTaG9ydEF0dHIoKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2Jq
VW5zaWduZWRTaG9ydEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAidW5zaWduZWRTaG9ydEF0dHIiKTsKIH0KQEAgLTI5MjksNyArMjkyOSw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0clNldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
T2JqVW5zaWduZWRTaG9ydEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9i
alVuc2lnbmVkU2hvcnRBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJ1bnNpZ25lZFNob3J0QXR0ciIpOwogfQpAQCAtMjk0Miw3ICsyOTQy
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakxvbmdBdHRyR2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwg
aW1wbC5sb25nQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE9iakxvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RPYmpMb25nQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqTG9uZ0F0dHJHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJsb25nQXR0ciIpOwogfQpAQCAtMjk2MCw3ICsyOTYwLDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdE9iakxvbmdBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdE9iakxvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpMb25nQXR0ciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqTG9uZ0F0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImxvbmdBdHRyIik7CiB9CkBAIC0yOTcz
LDcgKzI5NzMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTG9uZ0xvbmdBdHRy
R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsTwogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSwgaW1wbC5sb25nTG9uZ0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RPYmpMb25nTG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakxvbmdMb25nQXR0ciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8
anNUZXN0T2JqTG9uZ0xvbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNz
ZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibG9uZ0xvbmdBdHRyIik7CiB9
CkBAIC0yOTkxLDcgKzI5OTEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqTG9u
Z0xvbmdBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsTwogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqTG9uZ0xvbmdBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RPYmpMb25nTG9uZ0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNl
dEpTVGVzdE9iakxvbmdMb25nQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAibG9uZ0xvbmdBdHRyIik7CiB9CkBAIC0zMDA0LDcgKzMwMDQs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHJH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCAodG9KUzxJRExVbnNpZ25lZExvbmdMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBpbXBsLnVuc2lnbmVkTG9uZ0xvbmdBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialVuc2lnbmVk
TG9uZ0xvbmdBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0ckdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgInVuc2lnbmVkTG9uZ0xvbmdBdHRyIik7CiB9CkBAIC0zMDIyLDcgKzMwMjIs
NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHJT
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRK
U1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidW5zaWduZWRMb25nTG9uZ0F0dHIiKTsKIH0KQEAg
LTMwMzUsNyArMzAzNSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdB
dHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgaW1wbC5zdHJpbmdBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqU3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqU3RyaW5nQXR0ciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8
anNUZXN0T2JqU3RyaW5nQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2Vy
dD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN0cmluZ0F0dHIiKTsKIH0KQEAg
LTMwNTMsNyArMzA1Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpTdHJpbmdB
dHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RPYmpTdHJpbmdBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RP
YmpTdHJpbmdBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJzdHJpbmdBdHRyIik7CiB9CkBAIC0zMDY2LDcgKzMwNjYsNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0T2JqVXN2c3RyaW5nQXR0ckdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9K
UzxJRExVU1ZTdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudXN2
c3RyaW5nQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE9ialVzdnN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdE9ialVzdnN0cmluZ0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialVzdnN0cmlu
Z0F0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1c3ZzdHJpbmdBdHRyIik7CiB9CkBAIC0zMDg0LDcgKzMw
ODQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqVXN2c3RyaW5nQXR0clNldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbAogICAgIHJldHVybiB0cnVlOwogfQogCi1i
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqVXN2c3RyaW5nQXR0cihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
T2JqVXN2c3RyaW5nQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqVXN2
c3RyaW5nQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAidXN2c3RyaW5nQXR0ciIpOwogfQpAQCAtMzA5Nyw3ICszMDk3LDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialRlc3RPYmpBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVj
dC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC50ZXN0T2JqQXR0cigpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialRlc3RPYmpBdHRyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpUZXN0T2Jq
QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqVGVzdE9iakF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0ZXN0
T2JqQXR0ciIpOwogfQpAQCAtMzExNSw3ICszMTE1LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdE9ialRlc3RPYmpBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2IKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9i
alRlc3RPYmpBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpUZXN0T2JqQXR0ciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RP
Ymo+OjpzZXQ8c2V0SlNUZXN0T2JqVGVzdE9iakF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInRlc3RPYmpBdHRyIik7CiB9CkBAIC0zMTI4
LDcgKzMxMjgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqVGVzdE51bGxhYmxl
T2JqQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbAogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExJbnRlcmZhY2U8VGVzdE9iaj4+
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dT
Y29wZSwgaW1wbC50ZXN0TnVsbGFibGVPYmpBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVGVzdE51bGxhYmxlT2JqQXR0cihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqVGVzdE51bGxhYmxlT2Jq
QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqVGVzdE51bGxhYmxlT2JqQXR0ckdldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgInRlc3ROdWxsYWJsZU9iakF0dHIiKTsKIH0KQEAgLTMxNDYsNyArMzE0Niw3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpUZXN0TnVsbGFibGVPYmpBdHRyU2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RPYmpUZXN0TnVsbGFibGVPYmpBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpUZXN0
TnVsbGFibGVPYmpBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpUZXN0
TnVsbGFibGVPYmpBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJ0ZXN0TnVsbGFibGVPYmpBdHRyIik7CiB9CkBAIC0zMTU5LDcgKzMxNTks
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRyR2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsRwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8VGVzdE9iaj4+KGxleGljYWxHbG9iYWxPYmplY3Qs
ICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLmxlbmllbnRUZXN0
T2JqQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9i
akxlbmllbnRUZXN0T2JqQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoanNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpM
ZW5pZW50VGVzdE9iakF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpSZXR1cm5F
YXJseT4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImxlbmllbnRUZXN0T2JqQXR0
ciIpOwogfQpAQCAtMzE3Nyw3ICszMTc3LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dE9iakxlbmllbnRUZXN0T2JqQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEcKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakxlbmll
bnRUZXN0T2JqQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVG
SU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRyLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpMZW5pZW50VGVzdE9iakF0dHJTZXR0ZXIsIENh
c3RlZFRoaXNFcnJvckJlaGF2aW9yOjpSZXR1cm5FYXJseT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibGVuaWVudFRlc3RPYmpBdHRyIik7CiB9CkBAIC0z
MTkwLDcgKzMxOTAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqVW5mb3JnZWFi
bGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYgogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmpl
Y3QsIHRocm93U2NvcGUsIGltcGwudW5mb3JnZWFibGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVW5mb3JnZWFibGVBdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpVbmZvcmdlYWJsZUF0
dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialVuZm9yZ2VhYmxlQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVu
Zm9yZ2VhYmxlQXR0ciIpOwogfQpAQCAtMzIwMyw3ICszMjAzLDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdE9ialN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nR2V0dGVy
KEpTR2xvYmEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTGVn
YWN5TnVsbFRvRW1wdHlTdHJpbmdBZGFwdG9yPElETERPTVN0cmluZz4+KGxleGljYWxHbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIGltcGwuc3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJp
bmcoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpTdHJp
bmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1w
dHlTdHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5
U3RyaW5nR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJp
bmciKTsKIH0KQEAgLTMyMjEsNyArMzIyMSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RPYmpTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ1NldHRlcihKU0dsb2JhCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpTdHJp
bmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqU3RyaW5nQXR0
clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpT
VGVzdE9ialN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdHJpbmdBdHRyVHJlYXRp
bmdOdWxsQXNFbXB0eVN0cmluZyIpOwogfQpAQCAtMzIzNCw3ICszMjM0LDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdE9ialVzdnN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3Ry
aW5nR2V0dGVyKEpTR2wKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8
SURMTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdBZGFwdG9yPElETFVTVlN0cmluZz4+KGxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFz
RW1wdHlTdHJpbmcoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqVXN2c3RyaW5nQXR0clRy
ZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialVzdnN0cmluZ0F0dHJU
cmVhdGluZ051bGxBc0VtcHR5U3RyaW5nR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidXN2c3RyaW5nQXR0clRy
ZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmciKTsKIH0KQEAgLTMyNTIsNyArMzI1Miw3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0
eVN0cmluZ1NldHRlcihKU0dsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0T2JqVXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialVzdnN0cmluZ0F0dHJUcmVhdGluZ051
bGxBc0VtcHR5U3RyaW5nU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJ1c3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyIpOwog
fQpAQCAtMzI2NSw3ICszMjY1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakJ5
dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ0dldHRlcihKU0cKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmdBZGFwdG9yPElETEJ5dGVTdHJpbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBpbXBsLmJ5dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZygpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakJ5dGVTdHJpbmdBdHRyVHJl
YXRpbmdOdWxsQXNFbXB0eVN0cmluZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIoanNUZXN0T2JqQnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3Ry
aW5nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdE9iaj46OmdldDxqc1Rlc3RPYmpCeXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlT
dHJpbmdHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJieXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlT
dHJpbmciKTsKIH0KQEAgLTMyODMsNyArMzI4Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRK
U1Rlc3RPYmpCeXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmdTZXR0ZXIoSlNH
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpC
eXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iakJ5
dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpzZXQ8c2V0SlNUZXN0T2JqQnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5n
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJi
eXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmciKTsKIH0KQEAgLTMyOTYsNyAr
MzI5Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdMb25nUmVjb3Jk
QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETFJlY29yZDxJRExET01TdHJpbmcsIElETExvbmc+PihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwg
aW1wbC5zdHJpbmdMb25nUmVjb3JkQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE9ialN0cmluZ0xvbmdSZWNvcmRBdHRyKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpTdHJpbmdMb25nUmVjb3JkQXR0
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RPYmo+OjpnZXQ8anNUZXN0T2JqU3RyaW5nTG9uZ1JlY29yZEF0dHJHZXR0ZXIsIENhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJzdHJpbmdMb25nUmVjb3JkQXR0ciIpOwogfQpAQCAtMzMxNCw3ICszMzE0LDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdE9ialN0cmluZ0xvbmdSZWNvcmRBdHRyU2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2EKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdE9ialN0cmluZ0xvbmdSZWNvcmRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpTdHJp
bmdMb25nUmVjb3JkQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqU3Ry
aW5nTG9uZ1JlY29yZEF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgInN0cmluZ0xvbmdSZWNvcmRBdHRyIik7CiB9CkBAIC0zMzI3LDcgKzMz
MjcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29y
ZEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExSZWNvcmQ8SURMVVNWU3RyaW5nLCBJRExMb25nPj4obGV4aWNh
bEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGlt
cGwudXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0cihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqVXN2c3RyaW5nTG9uZ1Jl
Y29yZEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAidXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIiKTsKIH0KQEAgLTMzNDUsNyArMzM0
NSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3Jk
QXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6
c2V0PHNldEpTVGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ1c3ZzdHJpbmdMb25nUmVjb3Jk
QXR0ciIpOwogfQpAQCAtMzM1OCw3ICszMzU4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXgK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMUmVjb3JkPElETEJ5
dGVTdHJpbmcsIElETExvbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9i
YWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC51c3ZzdHJpbmdMb25nUmVjb3JkQXR0cigpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialVzdnN0cmluZ0xv
bmdSZWNvcmRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqVXN2
c3RyaW5nTG9uZ1JlY29yZEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3Nl
cnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1c3ZzdHJpbmdMb25nUmVjb3Jk
QXR0ciIpOwogfQpAQCAtMzM3Niw3ICszMzc2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXgK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialVz
dnN0cmluZ0xvbmdSZWNvcmRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3Jk
QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqVXN2c3RyaW5nTG9uZ1Jl
Y29yZEF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgInVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyIik7CiB9CkBAIC0zMzg5LDcgKzMzODksNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqU3RyaW5nT2JqUmVjb3JkQXR0ckdldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExSZWNvcmQ8SURMRE9NU3RyaW5nLCBJRExJbnRlcmZhY2U8VGVzdE9iaj4+
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dT
Y29wZSwgaW1wbC5zdHJpbmdPYmpSZWNvcmRBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0T2JqU3RyaW5nT2JqUmVjb3JkQXR0cihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqU3RyaW5nT2JqUmVjb3Jk
QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqU3RyaW5nT2JqUmVjb3JkQXR0ckdldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgInN0cmluZ09ialJlY29yZEF0dHIiKTsKIH0KQEAgLTM0MDcsNyArMzQwNyw3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpTdHJpbmdPYmpSZWNvcmRBdHRyU2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RPYmpTdHJpbmdPYmpSZWNvcmRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpTdHJp
bmdPYmpSZWNvcmRBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpTdHJp
bmdPYmpSZWNvcmRBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJzdHJpbmdPYmpSZWNvcmRBdHRyIik7CiB9CkBAIC0zNDIwLDcgKzM0MjAs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqU3RyaW5nTnVsbGFibGVPYmpSZWNv
cmRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCAodG9KUzxJRExSZWNvcmQ8SURMRE9NU3RyaW5nLCBJRExOdWxsYWJsZTxJRExJbnRl
cmZhY2U8VGVzdE9iaj4+Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFs
T2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuc3RyaW5nTnVsbGFibGVPYmpSZWNvcmRBdHRyKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqU3RyaW5nTnVs
bGFibGVPYmpSZWNvcmRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RPYmpTdHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHIsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpz
VGVzdE9ialN0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN0cmlu
Z051bGxhYmxlT2JqUmVjb3JkQXR0ciIpOwogfQpAQCAtMzQzOCw3ICszNDM4LDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdE9ialN0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0clNldHRl
cihKU0dsb2JhbE9iamVjdCYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdE9ialN0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0cihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
T2JqU3RyaW5nTnVsbGFibGVPYmpSZWNvcmRBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxz
ZXRKU1Rlc3RPYmpTdHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN0cmluZ051bGxhYmxlT2JqUmVj
b3JkQXR0ciIpOwogfQpAQCAtMzQ1MSw3ICszNDUxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdE9ialN0cmluZ1ZvaWRDYWxsYmFja1JlY29yZEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMUmVjb3JkPElE
TERPTVN0cmluZywgSURMQ2FsbGJhY2tGdW5jdGlvbjxKU1ZvaWRDYWxsYmFjaz4+PihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1w
bC5zdHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0T2JqU3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqU3RyaW5n
Vm9pZENhbGxiYWNrUmVjb3JkQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqU3RyaW5nVm9pZENhbGxi
YWNrUmVjb3JkQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN0cmluZ1ZvaWRDYWxsYmFja1JlY29yZEF0
dHIiKTsKIH0KQEAgLTM0NjksNyArMzQ2OSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RPYmpTdHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpTdHJp
bmdWb2lkQ2FsbGJhY2tSZWNvcmRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpTdHJpbmdWb2lkQ2FsbGJh
Y2tSZWNvcmRBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpTdHJpbmdW
b2lkQ2FsbGJhY2tSZWNvcmRBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJzdHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRBdHRyIik7CiB9CkBA
IC0zNDgyLDcgKzM0ODIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqRGljdGlv
bmFyeUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYQogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExEaWN0aW9uYXJ5PFRlc3RPYmo6OkRpY3Rp
b25hcnk+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwg
dGhyb3dTY29wZSwgaW1wbC5kaWN0aW9uYXJ5QXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakRpY3Rpb25hcnlBdHRyKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpEaWN0aW9uYXJ5QXR0ciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpnZXQ8anNUZXN0T2JqRGljdGlvbmFyeUF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJkaWN0aW9uYXJ5
QXR0ciIpOwogfQpAQCAtMzUwMCw3ICszNTAwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdE9iakRpY3Rpb25hcnlBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmEK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakRp
Y3Rpb25hcnlBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpEaWN0aW9uYXJ5QXR0ciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqRGljdGlvbmFyeUF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImRpY3Rpb25hcnlBdHRyIik7CiB9
CkBAIC0zNTEzLDcgKzM1MTMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTnVs
bGFibGVEaWN0aW9uYXJ5QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aQogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExEaWN0aW9uYXJ5
PFRlc3RPYmo6OkRpY3Rpb25hcnk+Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3Qu
Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwubnVsbGFibGVEaWN0aW9uYXJ5QXR0cigp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak51bGxhYmxl
RGljdGlvbmFyeUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKGpzVGVzdE9iak51bGxhYmxlRGljdGlvbmFyeUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iak51
bGxhYmxlRGljdGlvbmFyeUF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3Nl
cnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJudWxsYWJsZURpY3Rpb25hcnlB
dHRyIik7CiB9CkBAIC0zNTMxLDcgKzM1MzEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0T2JqTnVsbGFibGVEaWN0aW9uYXJ5QXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aQog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqTnVs
bGFibGVEaWN0aW9uYXJ5QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitK
U0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqTnVsbGFibGVEaWN0aW9uYXJ5QXR0
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqTnVsbGFibGVEaWN0aW9uYXJ5
QXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVl
LCAibnVsbGFibGVEaWN0aW9uYXJ5QXR0ciIpOwogfQpAQCAtMzU0NCw3ICszNTQ0LDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakFubm90YXRlZFR5cGVJblVuaW9uQXR0ckdldHRl
cihKU0dsb2JhbE9iamVjdCYgbGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMVW5pb248SURMRE9NU3RyaW5nLCBJRExDbGFtcEFkYXB0b3I8SURMTG9uZz4+Pihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29w
ZSwgaW1wbC5hbm5vdGF0ZWRUeXBlSW5VbmlvbkF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5VbmlvbkF0dHIoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakFubm90YXRl
ZFR5cGVJblVuaW9uQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQW5ub3RhdGVkVHlwZUluVW5pb25B
dHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiYW5ub3RhdGVkVHlwZUluVW5pb25BdHRyIik7CiB9CkBAIC0z
NTYyLDcgKzM1NjIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQW5ub3RhdGVk
VHlwZUluVW5pb25BdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZQogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQW5ub3RhdGVkVHlwZUluVW5p
b25BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5VbmlvbkF0dHIsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakFubm90YXRlZFR5cGVJblVuaW9uQXR0clNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiYW5ub3Rh
dGVkVHlwZUluVW5pb25BdHRyIik7CiB9CkBAIC0zNTc1LDcgKzM1NzUsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0T2JqQW5ub3RhdGVkVHlwZUluU2VxdWVuY2VBdHRyR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJ
RExTZXF1ZW5jZTxJRExDbGFtcEFkYXB0b3I8SURMTG9uZz4+PihsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5hbm5vdGF0ZWRU
eXBlSW5TZXF1ZW5jZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5TZXF1ZW5jZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakFubm90YXRlZFR5cGVJblNlcXVl
bmNlQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQW5ub3RhdGVkVHlwZUluU2VxdWVuY2VBdHRyR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAiYW5ub3RhdGVkVHlwZUluU2VxdWVuY2VBdHRyIik7CiB9CkBAIC0zNTkz
LDcgKzM1OTMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQW5ub3RhdGVkVHlw
ZUluU2VxdWVuY2VBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JgogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQW5ub3RhdGVkVHlwZUluU2VxdWVu
Y2VBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5TZXF1ZW5jZUF0dHIsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakFubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
YW5ub3RhdGVkVHlwZUluU2VxdWVuY2VBdHRyIik7CiB9CkBAIC0zNjA2LDcgKzM2MDYsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqSW1wbGVtZW50YXRpb25FbnVtQXR0ckdldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCAodG9KUzxJRExFbnVtZXJhdGlvbjxBbHRlcm5hdGVFbnVtTmFtZT4+KGxleGljYWxHbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIGltcGwuaW1wbGVtZW50YXRpb25FbnVtQXR0cigpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakltcGxlbWVudGF0aW9uRW51
bUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVz
dE9iakltcGxlbWVudGF0aW9uRW51bUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakltcGxlbWVudGF0
aW9uRW51bUF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJpbXBsZW1lbnRhdGlvbkVudW1BdHRyIik7CiB9
CkBAIC0zNjI3LDcgKzM2MjcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqSW1w
bGVtZW50YXRpb25FbnVtQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aQogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqSW1wbGVtZW50YXRp
b25FbnVtQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5F
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqSW1wbGVtZW50YXRpb25FbnVtQXR0ciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqSW1wbGVtZW50YXRpb25FbnVtQXR0clNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiaW1wbGVt
ZW50YXRpb25FbnVtQXR0ciIpOwogfQpAQCAtMzY0MCw3ICszNjQwLDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdE9iak1lZGlhRGV2aWNlc0dldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
SW50ZXJmYWNlPE1lZGlhRGV2aWNlcz4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0
Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLm1lZGlhRGV2aWNlcygpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak1lZGlhRGV2aWNlcyhKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqTWVkaWFE
ZXZpY2VzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpNZWRpYURldmljZXNHZXR0ZXIsIENhc3RlZFRoaXNF
cnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJt
ZWRpYURldmljZXMiKTsKIH0KQEAgLTM2NTMsNyArMzY1Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RPYmpYTUxPYmpBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVy
ZmFjZTxUZXN0T2JqPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2Jq
ZWN0KCksIHRocm93U2NvcGUsIGltcGwueG1sT2JqQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialhNTE9iakF0dHIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialhNTE9iakF0dHIsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0
PGpzVGVzdE9ialhNTE9iakF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3Nl
cnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJYTUxPYmpBdHRyIik7CiB9CkBA
IC0zNjcxLDcgKzM2NzEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqWE1MT2Jq
QXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iagogICAgIHJldHVybiB0
cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqWE1MT2JqQXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0T2JqWE1MT2JqQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0
T2JqWE1MT2JqQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5j
b2RlZFZhbHVlLCAiWE1MT2JqQXR0ciIpOwogfQpAQCAtMzY4NCw3ICszNjg0LDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNyZWF0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMQm9vbGVhbj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5pc0Ny
ZWF0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNy
ZWF0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0
T2JqQ3JlYXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpDcmVhdGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjcmVh
dGUiKTsKIH0KQEAgLTM3MDIsNyArMzcwMiw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RPYmpDcmVhdGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDcmVh
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdE9iakNyZWF0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNU
ZXN0T2JqQ3JlYXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJjcmVhdGUiKTsKIH0KQEAgLTM3MTUsNyArMzcxNSw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElE
TERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkc3Ry
aW5nYXR0ckF0dHIpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVz
dE9ialJlZmxlY3RlZFN0cmluZ0F0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpB
c3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0ZWRTdHJpbmdB
dHRyIik7CiB9CkBAIC0zNzMzLDcgKzM3MzMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbAog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVm
bGVjdGVkU3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0ciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0clNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVj
dGVkU3RyaW5nQXR0ciIpOwogfQpAQCAtMzc0Niw3ICszNzQ2LDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVTVlN0cmluZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMVVNW
U3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHJpYnV0ZVdp
dGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWR1c3ZzdHJp
bmdhdHRyQXR0cikpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
T2JqUmVmbGVjdGVkVVNWU3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0T2JqUmVmbGVjdGVkVVNWU3RyaW5nQXR0ciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8
anNUZXN0T2JqUmVmbGVjdGVkVVNWU3RyaW5nQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlZmxlY3Rl
ZFVTVlN0cmluZ0F0dHIiKTsKIH0KQEAgLTM3NjQsNyArMzc2NCw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyU2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RPYmpSZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRV
U1ZTdHJpbmdBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpSZWZsZWN0
ZWRVU1ZTdHJpbmdBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJyZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyIik7CiB9CkBAIC0zNzc3LDcgKzM3
NzcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxB
dHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBpbXBsLmdldEludGVncmFsQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVk
aW50ZWdyYWxhdHRyQXR0cikpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6
Z2V0PGpzVGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlZmxl
Y3RlZEludGVncmFsQXR0ciIpOwogfQpAQCAtMzc5NSw3ICszNzk1LDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0clNldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqUmVmbGVjdGVk
SW50ZWdyYWxBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpSZWZsZWN0
ZWRJbnRlZ3JhbEF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgInJlZmxlY3RlZEludGVncmFsQXR0ciIpOwogfQpAQCAtMzgwOCw3ICszODA4
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50
ZWdyYWxBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMVW5zaWduZWRMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBzdGQ6Om1heCgwLCBpbXBsLmdldEludGVncmFsQXR0cmlidXRlKFdlYkNvcmU6OkhU
TUxOYW1lczo6cmVmbGVjdGVkdW5zaWduZWRpbnRlZ3JhbGF0dHJBdHRyKSkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRl
Z3JhbEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpz
VGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpS
ZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZp
b3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlZmxlY3RlZFVu
c2lnbmVkSW50ZWdyYWxBdHRyIik7CiB9CkBAIC0zODI2LDcgKzM4MjYsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHJTZXR0ZXIo
SlNHbG9iYWxPYmplYwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9i
alJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxz
ZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0clNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdGVkVW5zaWduZWRJ
bnRlZ3JhbEF0dHIiKTsKIH0KQEAgLTM4MzksNyArMzgzOSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEJvb2xl
YW4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuaGFzQXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZGJvb2xlYW5h
dHRyQXR0cikpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2Jq
UmVmbGVjdGVkQm9vbGVhbkF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGpzVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RP
YmpSZWZsZWN0ZWRCb29sZWFuQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlZmxlY3RlZEJvb2xlYW5B
dHRyIik7CiB9CkBAIC0zODU3LDcgKzM4NTcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYQog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVm
bGVjdGVkQm9vbGVhbkF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlND
X0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0clNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVm
bGVjdGVkQm9vbGVhbkF0dHIiKTsKIH0KQEAgLTM4NzAsNyArMzg3MCw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElE
TERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5nZXRVUkxB
dHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWR1cmxhdHRyQXR0cikpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2Jq
UmVmbGVjdGVkVVJMQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0ckdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgInJlZmxlY3RlZFVSTEF0dHIiKTsKIH0KQEAgLTM4ODgsNyArMzg4OCw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyU2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpS
ZWZsZWN0ZWRVUkxBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpSZWZs
ZWN0ZWRVUkxBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJyZWZsZWN0ZWRVUkxBdHRyIik7CiB9CkBAIC0zOTAxLDcgKzM5MDEsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkVVNWVVJMQXR0ckdldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCAodG9KUzxJRExVU1ZTdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGlt
cGwuZ2V0VVJMQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkdXN2dXJsYXR0
ckF0dHIpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJl
ZmxlY3RlZFVTVlVSTEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdE9ialJlZmxlY3RlZFVTVlVSTEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialJl
ZmxlY3RlZFVTVlVSTEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0ZWRVU1ZVUkxBdHRyIik7
CiB9CkBAIC0zOTE5LDcgKzM5MTksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2Jq
UmVmbGVjdGVkVVNWVVJMQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbAogICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVk
VVNWVVJMQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5F
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVNWVVJMQXR0ciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqUmVmbGVjdGVkVVNWVVJMQXR0clNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdGVkVVNW
VVJMQXR0ciIpOwogfQpAQCAtMzkzMiw3ICszOTMyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5n
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHJpYnV0ZVdpdGhvdXRT
eW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50U3RyaW5nQXR0
ckF0dHIpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJl
ZmxlY3RlZFN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialJl
ZmxlY3RlZFN0cmluZ0F0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0ZWRTdHJpbmdBdHRyIik7
CiB9CkBAIC0zOTUwLDcgKzM5NTAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2Jq
UmVmbGVjdGVkU3RyaW5nQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbAogICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVk
U3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5F
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0ciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0clNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdGVkU3Ry
aW5nQXR0ciIpOwogfQpAQCAtMzk2Myw3ICszOTYzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ckdldHRlcihKU0dsb2JhbE9iamVj
dCYKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5nZXRJbnRlZ3JhbEF0dHJpYnV0ZShX
ZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRJbnRlZ3JhbEF0dHJBdHRyKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21J
bnRlZ3JhbEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2Jq
UmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVjdGVkQ3Vz
dG9tSW50ZWdyYWxBdHRyIik7CiB9CkBAIC0zOTgxLDcgKzM5ODEsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyU2V0dGVyKEpTR2xv
YmFsT2JqZWN0JgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpSZWZs
ZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVz
dE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRy
Iik7CiB9CkBAIC0zOTk0LDcgKzM5OTQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEJvb2xlYW4+KGxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuaGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9u
aXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRCb29sZWFuQXR0ckF0dHIp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlZmxlY3Rl
ZEN1c3RvbUJvb2xlYW5BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0ciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNU
ZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJl
aGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0
ZWRDdXN0b21Cb29sZWFuQXR0ciIpOwogfQpAQCAtNDAxMiw3ICs0MDEyLDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyU2V0dGVyKEpT
R2xvYmFsT2JqZWN0JgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialJl
ZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rl
c3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIi
KTsKIH0KQEAgLTQwMjUsNyArNDAyNSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RP
YmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5nZXRVUkxBdHRyaWJ1dGUoV2ViQ29yZTo6
SFRNTE5hbWVzOjpjdXN0b21Db250ZW50VVJMQXR0ckF0dHIpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHIoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialJlZmxlY3Rl
ZEN1c3RvbVVSTEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHJH
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0ZWRDdXN0b21VUkxBdHRyIik7CiB9CkBAIC00MDQzLDcg
KzQwNDMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9t
VVJMQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aQogICAgIHJldHVybiB0cnVlOwogfQog
Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpzZXQ8c2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0clNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdGVkQ3VzdG9tVVJM
QXR0ciIpOwogfQpAQCAtNDA1Nyw3ICs0MDU3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdE9iakVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGwK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmVuYWJsZWRBdFJ1bnRpbWVBdHRy
aWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpF
bmFibGVkQXRSdW50aW1lQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46Omdl
dDxqc1Rlc3RPYmpFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJy
b3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZW5h
YmxlZEF0UnVudGltZUF0dHJpYnV0ZSIpOwogfQpAQCAtNDA3OCw3ICs0MDc4LDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdE9iakVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdE9iakVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9i
akVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpT
VGVzdE9iakVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUi
KTsKIH0KQEAgLTQwOTMsNyArNDA5Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RP
YmpDb25zdHJ1Y3RvckVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWNHZXR0ZXIoCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgVGVzdE9iajo6ZW5hYmxlZEF0UnVudGltZUF0dHJp
YnV0ZVN0YXRpYygpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE9iakNvbnN0cnVjdG9yRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpYyhKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQ29uc3RydWN0b3JF
bmFibGVkQXRSdW50aW1lQXR0cmlidXRlU3RhdGljLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldFN0YXRpYzxqc1Rlc3RPYmpD
b25zdHJ1Y3RvckVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWNHZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJlbmFibGVkQXRSdW50aW1lQXR0cmlidXRlU3RhdGlj
Iik7CiB9CkBAIC00MTEzLDcgKzQxMTMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
T2JqQ29uc3RydWN0b3JFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlU3RhdGljU2V0dGVyKAogICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ29uc3Ry
dWN0b3JFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlU3RhdGljKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDb25z
dHJ1Y3RvckVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2Jq
Pjo6c2V0U3RhdGljPHNldEpTVGVzdE9iakNvbnN0cnVjdG9yRW5hYmxlZEF0UnVudGltZUF0dHJp
YnV0ZVN0YXRpY1NldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAiZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpYyIpOwogfQpAQCAtNDEyOCw3
ICs0MTI4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialR5cGVkQXJyYXlBdHRy
R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmEKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMRmxvYXQzMkFycmF5PihsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC50eXBlZEFycmF5
QXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialR5
cGVkQXJyYXlBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RPYmpUeXBlZEFycmF5QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqVHlwZWRBcnJheUF0
dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJ0eXBlZEFycmF5QXR0ciIpOwogfQpAQCAtNDE0Niw3ICs0MTQ2
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialR5cGVkQXJyYXlBdHRyU2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmEKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialR5cGVkQXJyYXlBdHRyKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RP
YmpUeXBlZEFycmF5QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqVHlw
ZWRBcnJheUF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgInR5cGVkQXJyYXlBdHRyIik7CiB9CkBAIC00MTU3LDcgKzQxNTcsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ3VzdG9tQXR0ckdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iagogICAgIHJldHVybiB0aGlzT2JqZWN0LmN1c3RvbUF0dHIobGV4
aWNhbEdsb2JhbE9iamVjdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqQ3VzdG9tQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNUZXN0T2JqQ3VzdG9tQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQ3VzdG9tQXR0ckdl
dHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgImN1c3RvbUF0dHIiKTsKIH0KQEAgLTQxNjksNyArNDE2OSw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpDdXN0b21BdHRyU2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RPYmpDdXN0b21BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDdXN0b21BdHRy
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpDdXN0b21BdHRyU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJjdXN0b21BdHRy
Iik7CiB9CkBAIC00MTgwLDcgKzQxODAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
T2JqT25mb29HZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsCiAgICAg
cmV0dXJuIGV2ZW50SGFuZGxlckF0dHJpYnV0ZSh0aGlzT2JqZWN0LndyYXBwZWQoKSwgZXZlbnRO
YW1lcygpLmZvb0V2ZW50LCB3b3JsZEZvckRPTU9iamVjdCh0aGlzT2JqZWN0KSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqT25mb28oSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iak9uZm9vLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxq
c1Rlc3RPYmpPbmZvb0dldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm9uZm9vIik7CiB9CkBAIC00MTk1LDcgKzQx
OTUsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqT25mb29TZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpPbmZvbyhKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqT25mb28s
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iak9uZm9vU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJvbmZvbyIpOwogfQpAQCAt
NDIwNiw3ICs0MjA2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iak9ud2Via2l0
Zm9vR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2IKICAgICByZXR1cm4gZXZl
bnRIYW5kbGVyQXR0cmlidXRlKHRoaXNPYmplY3Qud3JhcHBlZCgpLCBldmVudE5hbWVzKCkuZm9v
RXZlbnQsIHdvcmxkRm9yRE9NT2JqZWN0KHRoaXNPYmplY3QpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpPbndlYmtpdGZvbyhKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqT253ZWJraXRmb28sIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0
PGpzVGVzdE9iak9ud2Via2l0Zm9vR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNz
ZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAib253ZWJraXRmb28iKTsKIH0K
QEAgLTQyMjEsNyArNDIyMSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpPbndl
YmtpdGZvb1NldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpPbndlYmtpdGZvbyhK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0T2JqT253ZWJraXRmb28sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpT
VGVzdE9iak9ud2Via2l0Zm9vU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJvbndlYmtpdGZvbyIpOwogfQpAQCAtNDIzNCw3ICs0MjM0LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialdpdGhFeGVjU3RhdGVBdHRyaWJ1dGVHZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC53
aXRoRXhlY1N0YXRlQXR0cmlidXRlKCpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPigmbGV4aWNh
bEdsb2JhbE9iamVjdCkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE9ialdpdGhFeGVjU3RhdGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialdpdGhFeGVjU3RhdGVBdHRyaWJ1dGUsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6
Z2V0PGpzVGVzdE9ialdpdGhFeGVjU3RhdGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ3aXRo
RXhlY1N0YXRlQXR0cmlidXRlIik7CiB9CkBAIC00MjUyLDcgKzQyNTIsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0T2JqV2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZVNldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0T2JqV2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqV2l0aEV4
ZWNTdGF0ZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqV2l0
aEV4ZWNTdGF0ZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAid2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZSIpOwogfQpAQCAtNDI2NSw3
ICs0MjY1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialdpdGhDYWxsV2l0aEFu
ZFNldHRlckNhbGxXaXRoQXR0cmlidXRlR2V0dGVyKEpTR2wKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dT
Y29wZSwgaW1wbC53aXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZSgqanNDYXN0
PEpTRE9NR2xvYmFsT2JqZWN0Kj4oJmxleGljYWxHbG9iYWxPYmplY3QpKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJD
YWxsV2l0aEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNUZXN0T2JqV2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2Jq
Pjo6Z2V0PGpzVGVzdE9ialdpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRlR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAid2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUiKTsK
IH0KQEAgLTQyODMsNyArNDI4Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpX
aXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZVNldHRlcihKU0dsCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpXaXRoQ2FsbFdp
dGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqV2l0aENhbGxXaXRo
QW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpT
VGVzdE9ialdpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRlU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ3aXRoQ2FsbFdpdGhB
bmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZSIpOwogfQpAQCAtNDI5OSw3ICs0Mjk5LDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0
cmlidXRlR2V0dGVyKEpTR2xvYmEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09i
amVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC53aXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEF0dHJpYnV0ZSgqY29udGV4dCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialdpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpXaXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZp
b3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIndpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QXR0cmlidXRlIik7CiB9CkBAIC00MzIwLDcgKzQzMjAsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRy
aWJ1dGVTZXR0ZXIoSlNHbG9iYQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0
dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUiKTsKIH0KQEAgLTQzMzYs
NyArNDMzNiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZUdlCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwud2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGUoKmpzQ2FzdDxKU0RP
TUdsb2JhbE9iamVjdCo+KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgKmNhbGxGcmFtZSwgKmNvbnRl
eHQpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialdpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqV2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZSIpOwogfQpA
QCAtNDM1Nyw3ICs0MzU3LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialdpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlQXR0cmlidXRlU2UKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QW5kRXhlY1N0YXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpXaXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RP
Ymo+OjpzZXQ8c2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3Rh
dGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlQXR0cmlidXRl
Iik7CiB9CkBAIC00MzczLDcgKzQzNzMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQQogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8VGVzdE9i
aj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJv
d1Njb3BlLCBpbXBsLndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNw
YWNlc0F0dHJpYnV0ZSgqanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oJmxleGljYWxHbG9iYWxP
YmplY3QpLCAqY2FsbEZyYW1lLCAqY29udGV4dCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3Rh
dGVXaXRoU3BhY2VzQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0
ZVdpdGhTcGFjZXNBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
IndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0
ZSIpOwogfQpAQCAtNDM5NCw3ICs0Mzk0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0EKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialdpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3Bh
Y2VzQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpXaXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGVTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIndpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZSIpOwogfQpA
QCAtNDQwOCw3ICs0NDA4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNvbmRp
dGlvbmFsQXR0cjFHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG8KICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhyb3dTY29wZSwgaW1wbC5jb25kaXRpb25hbEF0dHIxKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQ29uZGl0aW9uYWxB
dHRyMSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMUdldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ImNvbmRpdGlvbmFsQXR0cjEiKTsKIH0KQEAgLTQ0MjksNyArNDQyOSw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxU2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0
dHIxLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIx
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJj
b25kaXRpb25hbEF0dHIxIik7CiB9CkBAIC00NDQ1LDcgKzQ0NDUsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMkdldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsbwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExM
b25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmNvbmRpdGlvbmFsQXR0
cjIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25k
aXRpb25hbEF0dHIyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpDb25kaXRpb25h
bEF0dHIyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY29uZGl0aW9uYWxBdHRyMiIpOwogfQpAQCAtNDQ2Niw3
ICs0NDY2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0
cjJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG8KICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjIoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNl
dEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpT
VGVzdE9iakNvbmRpdGlvbmFsQXR0cjJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgImNvbmRpdGlvbmFsQXR0cjIiKTsKIH0KQEAgLTQ0ODIsNyAr
NDQ4Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIz
R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIGltcGwuY29uZGl0aW9uYWxBdHRyMygpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6
Z2V0PGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjNHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjb25kaXRpb25h
bEF0dHIzIik7CiB9CkBAIC00NTAzLDcgKzQ1MDMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyM1NldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
bwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2Jq
Q29uZGl0aW9uYWxBdHRyMyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMywgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyM1NldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiY29uZGl0aW9uYWxB
dHRyMyIpOwogfQpAQCAtNDUxNyw3ICs0NTE3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYK
ICAgICByZXR1cm4gSlNUZXN0T2JqZWN0QTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4
aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0
T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpDb25kaXRp
b25hbEF0dHI0Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJjb25kaXRpb25hbEF0dHI0Iik7CiB9CkBAIC00NTMyLDcgKzQ1MzIsNyBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0cnVjdG9yU2V0dGVy
KEpTR2xvYmFsT2JqZWN0JgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJj
b25kaXRpb25hbEF0dHI0IiksIHN0cmxlbigiY29uZGl0aW9uYWxBdHRyNCIpKSwgdmFsdWUpOwog
fQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3Rv
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
Y29uZGl0aW9uYWxBdHRyNCIpOwogfQpAQCAtNDU0Niw3ICs0NTQ2LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3RvckdldHRlcihKU0ds
b2JhbE9iamVjdCYKICAgICByZXR1cm4gSlNUZXN0T2JqZWN0Qjo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbmRpdGlvbmFs
QXR0cjVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rl
c3RPYmpDb25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJjb25kaXRpb25hbEF0dHI1Iik7CiB9CkBAIC00NTYxLDcgKzQ1NjEs
NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNUNvbnN0
cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERp
cmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBMQ2hhcio+KCJjb25kaXRpb25hbEF0dHI1IiksIHN0cmxlbigiY29uZGl0aW9uYWxBdHRyNSIp
KSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ29uZGl0aW9u
YWxBdHRyNUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1Q29uc3Ry
dWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0
cjVDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5j
b2RlZFZhbHVlLCAiY29uZGl0aW9uYWxBdHRyNSIpOwogfQpAQCAtNDU3NSw3ICs0NTc1LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3Rv
ckdldHRlcihKU0dsb2JhbE9iamVjdCYKICAgICByZXR1cm4gSlNUZXN0T2JqZWN0Qzo6Z2V0Q29u
c3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xv
YmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9i
akNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9i
aj46OmdldDxqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjb25kaXRpb25hbEF0dHI2Iik7CiB9CkBAIC00
NTkwLDcgKzQ1OTAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9u
YWxBdHRyNkNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JgogICAgIHJldHVybiB0aGlz
T2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJjb25kaXRpb25hbEF0dHI2IiksIHN0cmxlbigiY29uZGl0
aW9uYWxBdHRyNiIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDb25kaXRpb25h
bEF0dHI2Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakNv
bmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiY29uZGl0aW9uYWxBdHRyNiIpOwogfQpAQCAtNDYxMCw3
ICs0NjEwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0
ZTFHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG8KICAgICByZXR1cm4gcmVzdWx0Owog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0
ZTEoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9i
akNhY2hlZEF0dHJpYnV0ZTEsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTFHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJjYWNoZWRBdHRyaWJ1dGUxIik7CiB9CkBAIC00NjI4LDcgKzQ2MjgsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMkdldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsbwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQ2FjaGVkQXR0
cmlidXRlMiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMkdldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgImNhY2hlZEF0dHJpYnV0ZTIiKTsKIH0KQEAgLTQ2NDcsNyArNDY0Nyw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUzR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUzKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUzLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9i
aj46OmdldDxqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUzR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JC
ZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY2FjaGVk
QXR0cmlidXRlMyIpOwogfQpAQCAtNDY2Miw3ICs0NjYyLDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdE9iakFueUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQW55Pihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmFueUF0dHJpYnV0ZSgpKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakFueUF0dHJpYnV0ZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQW55
QXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpBbnlBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJhbnlBdHRyaWJ1dGUiKTsKIH0KQEAgLTQ2ODAsNyArNDY4MCw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RPYmpBbnlBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RPYmpBbnlBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
SlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iakFueUF0dHJpYnV0ZSwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqQW55QXR0cmlidXRlU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJhbnlBdHRyaWJ1dGUiKTsK
IH0KQEAgLTQ2OTMsNyArNDY5Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpP
YmplY3RBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE9iamVjdD4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5vYmplY3RBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpPYmplY3RBdHRyaWJ1dGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iak9iamVjdEF0
dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqT2JqZWN0QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRU
aGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAib2JqZWN0QXR0cmlidXRlIik7CiB9CkBAIC00NzExLDcgKzQ3MTEsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0T2JqT2JqZWN0QXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0T2JqT2JqZWN0QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpPYmplY3RBdHRyaWJ1
dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iak9iamVjdEF0dHJpYnV0ZVNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAib2Jq
ZWN0QXR0cmlidXRlIik7CiB9CkBAIC00NzI0LDcgKzQ3MjQsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0T2JqQ29udGVudERvY3VtZW50R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRl
cmZhY2U8RG9jdW1lbnQ+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxP
YmplY3QoKSwgdGhyb3dTY29wZSwgQmluZGluZ1NlY3VyaXR5OjpjaGVja1NlY3VyaXR5Rm9yTm9k
ZShsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLmNvbnRlbnREb2N1bWVudCgpKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb250ZW50RG9jdW1lbnQoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNvbnRl
bnREb2N1bWVudCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQ29udGVudERvY3VtZW50R2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiY29udGVudERvY3VtZW50Iik7CiB9CkBAIC00NzM3LDcgKzQ3MzcsNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0T2JqTXV0YWJsZVBvaW50R2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsTwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9K
UzxJRExJbnRlcmZhY2U8U1ZHUG9pbnQ+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVj
dC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5tdXRhYmxlUG9pbnQoKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpNdXRhYmxlUG9pbnQoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iak11dGFi
bGVQb2ludCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqTXV0YWJsZVBvaW50R2V0dGVyLCBDYXN0ZWRUaGlz
RXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
bXV0YWJsZVBvaW50Iik7CiB9CkBAIC00NzU1LDcgKzQ3NTUsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0T2JqTXV0YWJsZVBvaW50U2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsTwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0T2JqTXV0YWJsZVBvaW50KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpNdXRhYmxlUG9pbnQsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iak11dGFibGVQb2ludFNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibXV0YWJsZVBvaW50Iik7CiB9
CkBAIC00NzY4LDcgKzQ3NjgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqU3Ry
YXdiZXJyeUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iagogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmJsdWViZXJyeSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialN0cmF3YmVycnkoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialN0cmF3YmVycnksIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpz
VGVzdE9ialN0cmF3YmVycnlHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdHJhd2JlcnJ5Iik7CiB9CkBAIC00
Nzg2LDcgKzQ3ODYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqU3RyYXdiZXJy
eVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iagogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqU3RyYXdiZXJyeShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0T2JqU3RyYXdiZXJyeSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2Jq
U3RyYXdiZXJyeVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAic3RyYXdiZXJyeSIpOwogfQpAQCAtNDc5OSw3ICs0Nzk5LDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdE9iakRlc2NyaXB0aW9uR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8
SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5kZXNjcmlwdGlv
bigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakRlc2Ny
aXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RPYmpEZXNjcmlwdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqRGVzY3JpcHRpb25HZXR0ZXIsIENh
c3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJkZXNjcmlwdGlvbiIpOwogfQpAQCAtNDgxMiw3ICs0ODEyLDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdE9iaklkR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU1QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8
SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5pZCgpKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iaklkKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpJZCwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8
anNUZXN0T2JqSWRHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJpZCIpOwogfQpAQCAtNDgzMCw3ICs0ODMwLDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iaklkU2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iaklkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpJZCwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqSWRTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImlkIik7CiB9CkBAIC00ODQzLDcgKzQ4NDMsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqSGFzaEdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGltcGwuaGFzaCgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE9iakhhc2goSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpz
VGVzdE9iakhhc2gsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakhhc2hHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJoYXNo
Iik7CiB9CkBAIC00ODU2LDcgKzQ4NTYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYQogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnJlcGxhY2VhYmxlQXR0cmlidXRlKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVwbGFjZWFibGVBdHRy
aWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVz
dE9ialJlcGxhY2VhYmxlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpSZXBsYWNlYWJsZUF0
dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlcGxhY2VhYmxlQXR0cmlidXRlIik7CiB9CkBAIC00
ODY4LDcgKzQ4NjgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqUmVwbGFjZWFi
bGVBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYQogICAgIHJldHVybiB0aGlz
T2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJyZXBsYWNlYWJsZUF0dHJpYnV0ZSIpLCBzdHJsZW4oInJl
cGxhY2VhYmxlQXR0cmlidXRlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqUmVwbGFjZWFi
bGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialJlcGxhY2Vh
YmxlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJyZXBsYWNlYWJsZUF0dHJpYnV0ZSIpOwogfQpAQCAtNDg4MSw3ICs0ODgxLDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlRG91YmxlQXR0cmlidXRl
R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXgKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMVW5yZXN0cmljdGVkRG91YmxlPj4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5udWxsYWJsZURvdWJsZUF0dHJpYnV0ZSgpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak51bGxhYmxlRG91
YmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RPYmpOdWxsYWJsZURvdWJsZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqTnVs
bGFibGVEb3VibGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3Nl
cnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJudWxsYWJsZURvdWJsZUF0dHJp
YnV0ZSIpOwogfQpAQCAtNDg5NCw3ICs0ODk0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdE9iak51bGxhYmxlTG9uZ0F0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWMK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURM
TG9uZz4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubnVsbGFibGVMb25n
QXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
T2JqTnVsbGFibGVMb25nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpOdWxsYWJsZUxvbmdBdHRyaWJ1dGUsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpz
VGVzdE9iak51bGxhYmxlTG9uZ0F0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZp
b3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm51bGxhYmxlTG9u
Z0F0dHJpYnV0ZSIpOwogfQpAQCAtNDkwNyw3ICs0OTA3LDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdE9iak51bGxhYmxlQm9vbGVhbkF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFi
bGU8SURMQm9vbGVhbj4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubnVs
bGFibGVCb29sZWFuQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0T2JqTnVsbGFibGVCb29sZWFuQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpOdWxsYWJsZUJvb2xlYW5BdHRy
aWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iak51bGxhYmxlQm9vbGVhbkF0dHJpYnV0ZUdldHRlciwg
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgIm51bGxhYmxlQm9vbGVhbkF0dHJpYnV0ZSIpOwogfQpAQCAtNDkyMCw3ICs0OTIw
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlU3RyaW5nQXR0cmli
dXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXgKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMRE9NU3RyaW5nPj4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgaW1wbC5udWxsYWJsZVN0cmluZ0F0dHJpYnV0ZSgpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak51bGxhYmxlU3RyaW5nQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RPYmpOdWxsYWJsZVN0cmluZ0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqTnVsbGFibGVT
dHJpbmdBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJudWxsYWJsZVN0cmluZ0F0dHJpYnV0ZSIp
OwogfQpAQCAtNDkzMyw3ICs0OTMzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9i
ak51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWMKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMTG9uZz4+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubnVsbGFibGVMb25nU2V0dGFi
bGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqTnVsbGFibGVMb25nU2V0dGFibGVBdHRy
aWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iak51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAibnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTQ5
NTEsNyArNDk1MSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpOdWxsYWJsZUxv
bmdTZXR0YWJsZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJs
ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5F
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqTnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iak51bGxhYmxlTG9uZ1NldHRhYmxl
QXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJudWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZSIpOwogfQpAQCAtNDk2NCw3ICs0
OTY0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlU3RyaW5nU2V0
dGFibGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMRE9NU3RyaW5nPj4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5udWxsYWJsZVN0cmluZ1NldHRhYmxlQXR0cmlidXRl
KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTnVsbGFi
bGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0T2JqTnVsbGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RP
Ymo+OjpnZXQ8anNUZXN0T2JqTnVsbGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZUdldHRlciwg
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgIm51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTQ5ODIs
NyArNDk4Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpOdWxsYWJsZVN0cmlu
Z1NldHRhYmxlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpOdWxsYWJsZVN0cmluZ1NldHRhYmxl
QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpOdWxsYWJsZVN0cmluZ1NldHRhYmxlQXR0cmlidXRl
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpOdWxsYWJsZVN0cmluZ1NldHRh
YmxlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJudWxsYWJsZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlIik7CiB9CkBAIC00OTk1
LDcgKzQ5OTUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVVU1ZT
dHJpbmdTZXR0YWJsZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbAogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExVU1ZTdHJpbmc+PihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm51bGxhYmxlVVNWU3RyaW5nU2V0dGFibGVB
dHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RP
YmpOdWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpOdWxsYWJsZVVTVlN0cmluZ1NldHRh
YmxlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpOdWxsYWJsZVVTVlN0cmluZ1NldHRhYmxl
QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJp
YnV0ZSIpOwogfQpAQCAtNTAxMyw3ICs1MDEzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdE9iak51bGxhYmxlVVNWU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWwK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iak51
bGxhYmxlVVNWU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iak51bGxhYmxl
VVNWU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpT
VGVzdE9iak51bGxhYmxlVVNWU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm51bGxhYmxlVVNWU3RyaW5n
U2V0dGFibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTUwMjYsNyArNTAyNiw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUJ5dGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZUdl
dHRlcihKU0dsb2JhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElE
TE51bGxhYmxlPElETEJ5dGVTdHJpbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBpbXBsLm51bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5nU2V0
dGFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKGpzVGVzdE9iak51bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46Omdl
dDxqc1Rlc3RPYmpOdWxsYWJsZUJ5dGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZUdldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgIm51bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlIik7CiB9CkBAIC01MDQ0
LDcgKzUwNDQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqTnVsbGFibGVCeXRl
U3RyaW5nU2V0dGFibGVBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYQogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5nU2V0
dGFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RF
RklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iak51bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxl
QXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpOdWxsYWJsZUJ5
dGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibnVsbGFibGVCeXRlU3RyaW5nU2V0dGFibGVBdHRyaWJ1
dGUiKTsKIH0KQEAgLTUwNTcsNyArNTA1Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RPYmpBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1dGUoKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakF0dHJpYnV0ZSwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RP
Ymo+OjpnZXQ8anNUZXN0T2JqQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYXR0cmlidXRlIik7
CiB9CkBAIC01MDcwLDcgKzUwNzAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2Jq
QXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGVHZXR0ZXIoSlNHbG9iYWxPYmplYwogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExFbnVtZXJhdGlvbjxUZXN0T2Jq
OjpPcHRpb25hbD4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYXR0cmli
dXRlV2l0aFJlc2VydmVkRW51bVR5cGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQXR0cmlidXRlV2l0
aFJlc2VydmVkRW51bVR5cGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZl
ZEVudW1UeXBlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUi
KTsKIH0KQEAgLTUwOTEsNyArNTA5MSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RP
YmpBdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZVNldHRlcihKU0dsb2JhbE9iamVjCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpBdHRyaWJ1
dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQXR0cmlidXRlV2l0aFJlc2Vy
dmVkRW51bVR5cGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakF0dHJpYnV0
ZVdpdGhSZXNlcnZlZEVudW1UeXBlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJhdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZSIpOwogfQpA
QCAtNTEwNCw3ICs1MTA0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialRlc3RS
ZWFkT25seVZvaWRQcm9taXNlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2IKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMUHJvbWlzZTxJRExVbmRlZmluZWQ+Pihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29w
ZSwgaW1wbC50ZXN0UmVhZE9ubHlWb2lkUHJvbWlzZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialRlc3RSZWFkT25seVZvaWRQcm9taXNl
QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RPYmpUZXN0UmVhZE9ubHlWb2lkUHJvbWlzZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0
T2JqVGVzdFJlYWRPbmx5Vm9pZFByb21pc2VBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpSZWplY3RQcm9taXNlPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAidGVzdFJlYWRPbmx5Vm9pZFByb21pc2VBdHRyaWJ1dGUiKTsKIH0KQEAgLTUxMTcsNyArNTEx
Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpUZXN0UmVhZE9ubHlQcm9taXNl
QXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETFByb21pc2U8SURMSW50ZXJmYWNlPFRlc3ROb2RlPj4+KGxleGlj
YWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBp
bXBsLnRlc3RSZWFkT25seVByb21pc2VBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpUZXN0UmVhZE9ubHlQcm9taXNlQXR0cmlidXRlKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpUZXN0
UmVhZE9ubHlQcm9taXNlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpUZXN0UmVhZE9ubHlQ
cm9taXNlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6UmVqZWN0UHJv
bWlzZT4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRlc3RSZWFkT25seVByb21p
c2VBdHRyaWJ1dGUiKTsKIH0KQEAgLTUxMzAsNyArNTEzMCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVy
ZmFjZTxUZXN0Tm9kZT4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9i
amVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnB1dEZvcndhcmRzQXR0cmlidXRlKCkpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUHV0Rm9yd2FyZHNBdHRyaWJ1
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9i
alB1dEZvcndhcmRzQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJp
YnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgInB1dEZvcndhcmRzQXR0cmlidXRlIik7CiB9CkBAIC01MTUz
LDcgKzUxNTMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNB
dHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYQogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNBdHRyaWJ1dGUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdE9ialB1dEZvcndhcmRzQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46
OnNldDxzZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicHV0Rm9yd2FyZHNBdHRyaWJ1dGUi
KTsKIH0KQEAgLTUxNjYsNyArNTE2Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RP
YmpQdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0CiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETEludGVy
ZmFjZTxUZXN0Tm9kZT4+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxP
YmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5wdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUHV0Rm9yd2Fy
ZHNOdWxsYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoanNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZSwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8
anNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInB1
dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTUxODksNyArNTE4OSw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRl
U2V0dGVyKEpTR2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RPYmpQdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46
OnNldDxzZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJwdXRGb3J3YXJkc051
bGxhYmxlQXR0cmlidXRlIik7CiB9CkBAIC01MjAyLDcgKzUyMDIsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0T2JqU3RyaW5naWZpZXJBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExV
U1ZTdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuc3RyaW5naWZp
ZXJBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPYmpTdHJpbmdpZmllckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0T2JqU3RyaW5naWZpZXJBdHRyaWJ1dGUsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpz
VGVzdE9ialN0cmluZ2lmaWVyQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3RyaW5naWZpZXJB
dHRyaWJ1dGUiKTsKIH0KQEAgLTUyMjAsNyArNTIyMCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1Rlc3RPYmpTdHJpbmdpZmllckF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RP
YmpTdHJpbmdpZmllckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqU3RyaW5naWZpZXJBdHRyaWJ1
dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialN0cmluZ2lmaWVyQXR0cmli
dXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJzdHJpbmdpZmllckF0dHJpYnV0ZSIpOwogfQpAQCAtNTIzMyw3ICs1MjMzLDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRy
aWJ1dGVHZXR0ZXIoSlNHbG8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5jb25kaXRp
b25hbGx5RXhwb3NlZFRvV2luZG93QXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJp
YnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0
T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0
T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ImNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGUiKTsKIH0KQEAgLTUyNTEsNyAr
NTI1MSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhw
b3NlZFRvV2luZG93QXR0cmlidXRlU2V0dGVyKEpTR2xvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2lu
ZG93QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93
QXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpDb25kaXRpb25h
bGx5RXhwb3NlZFRvV2luZG93QXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJjb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QXR0
cmlidXRlIik7CiB9CkBAIC01MjY0LDcgKzUyNjQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZUdldHRlcihKU0ds
bwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmNvbmRpdGlvbmFsbHlFeHBvc2VkVG9X
b3JrZXJBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpDb25kaXRpb25hbGx5
RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpDb25kaXRpb25hbGx5
RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY29uZGl0aW9uYWxseUV4
cG9zZWRUb1dvcmtlckF0dHJpYnV0ZSIpOwogfQpAQCAtNTI4Miw3ICs1MjgyLDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJBdHRy
aWJ1dGVTZXR0ZXIoSlNHbG8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJBdHRyaWJ1dGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJBdHRyaWJ1dGUsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3Jr
ZXJBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgImNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJBdHRyaWJ1dGUiKTsKIH0KQEAg
LTUyOTUsNyArNTI5NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRp
b25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlR2V0CiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3Qs
IHRocm93U2NvcGUsIGltcGwuY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0
dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9i
akNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNvbmRpdGlvbmFs
bHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakNv
bmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGVHZXR0ZXIsIENhc3Rl
ZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJjb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlIik7CiB9
CkBAIC01MzEzLDcgKzUzMTMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQ29u
ZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZVNldAogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxs
eUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQ29uZGl0
aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RP
Ymo+OjpzZXQ8c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtl
ckF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZSIp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbC5jcHAKaW5kZXggZDkx
MTQ4OWRkNzllOTUyZTI1ZjVlMTNhZWI1YjIzYTUyZmZkM2ZjYS4uOGRhYThmYWY0MjI0NWViY2Ix
NGYwYzRmOThkZTlkNTg5ZWVkZmMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3BlcmF0aW9uQ29u
ZGl0aW9uYWwuY3BwCkBAIC01Nyw4ICs1Nyw4IEBAIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsCiAK
IC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3Rv
cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlv
bmFsQ29uc3RydWN0b3IpOwogCiBjbGFzcyBKU1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbFByb3Rv
dHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAt
MTc3LDcgKzE3Nyw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlv
bmFsKiBJRExPcGVyYXRpb248SlNUZXN0T3BlcmF0aW9uQ29uZGl0CiAgICAgcmV0dXJuIGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWwqPihKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPcGVyYXRp
b25Db25kaXRpb25hbENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTg3LDcgKzE4Nyw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RPcGVy
YXRpb25Db25kaXRpb25hbDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAppbmRleCBiODY5
YTM1Zjg3MzA0NGNkMWIzMDkzMjU4ZjUyYTdhMjNjOWJkZTEyLi5jN2ZkM2FmYjE0MDQ3MTE3NzVm
ZjhkNWE0MjNiMDk4NThiYjg1OWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnMuY3BwCkBAIC01MCw4ICs1MCw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAK
IC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25z
dHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcik7CiAKIGNsYXNzIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnNQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1
YmxpYzoKQEAgLTI3NCw3ICsyNzQsNyBAQCB2b2lkIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnM6OmRlc3Ryb3koSlNDOjpKU0NlbGwqIGNlbGwpCiAgICAgdGhpc09iamVjdC0+SlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9yczo6fkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMoKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKGpzVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI4
NCw3ICsyODQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iagogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkp
OwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
c0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0
b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9
IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1
ZW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHAKaW5kZXggOTA3YjAxMDYwNzYz
Y2U4ODg3NmQxN2JlZjUyMTE0YzIwYTUyZWQ0NC4uYmExN2RhOTgzYjQ0OTM3ZmFiNWRkNjE0ZDEz
NTRlNWUxN2ZlMzhjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9h
ZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcApAQCAtNDksOCArNDksOCBAQCB1c2luZyBu
YW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0
b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IpOwogCiBjbGFzcyBKU1Rlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzV2l0aFNlcXVlbmNlUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNO
b25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yMTMsNyArMjEzLDcgQEAgdm9pZCBKU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlOjpkZXN0cm95KEpTQzo6SlNDZWxsKiBj
ZWxsKQogICAgIHRoaXNPYmplY3QtPkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2Vx
dWVuY2U6On5KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlKCk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
c1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0yMjMsNyArMjIzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0
b3IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnNXaXRoU2VxdWVuY2U6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UGx1Z2luSW50ZXJmYWNlLmNw
cAppbmRleCBiMTEzYjBhMjg4OTFkM2Q2Mjc3NjczNmI4ODQ2NTZlYWU1Njg2NWY3Li4zNTc2ZjE5
MzM1ZGM5NDRlMTEyNTc0NGY5MDlmNTk3MzczMzFjZmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UGx1Z2luSW50ZXJmYWNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UGx1Z2lu
SW50ZXJmYWNlLmNwcApAQCAtNDUsOCArNDUsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAv
LyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RQ
bHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3Rvcik7CiAKIGNs
YXNzIEpTVGVzdFBsdWdpbkludGVyZmFjZVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpT
Tm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMjExLDcgKzIxMSw3IEBAIENhbGxEYXRhIEpT
VGVzdFBsdWdpbkludGVyZmFjZTo6Z2V0Q2FsbERhdGEoSlNDZWxsKiBjZWxsKQogICAgIHJldHVy
biBwbHVnaW5FbGVtZW50Q3VzdG9tR2V0Q2FsbERhdGEodGhpc09iamVjdCk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdFBsdWdp
bkludGVyZmFjZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjIxLDcgKzIyMSw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RQbHVnaW5J
bnRlcmZhY2U6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCks
IHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RQbHVnaW5JbnRl
cmZhY2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7
CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9u
RXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAKaW5kZXggOGU1YzZiYTIzOTE0ZjcwNzliNzZlNDli
ZmFjMjQ5OTk1M2U5ZjViYi4uYjYwM2Y4ODBlZjBhNjQ2OWNiYjRjOGU3Mzk5YjVkM2ZhZmZjZTQ1
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAKQEAgLTEy
NywxMCArMTI3LDEwIEBAIHRlbXBsYXRlPD4gVGVzdFByb21pc2VSZWplY3Rpb25FdmVudDo6SW5p
dCBjb252ZXJ0RGljdGlvbmFyeTxUZXN0UHJvbWlzZVJlamVjdGlvCiAKIC8vIEF0dHJpYnV0ZXMK
IAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFByb21pc2VSZWplY3Rp
b25FdmVudENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0UHJv
bWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFByb21pc2VSZWplY3Rpb25FdmVudFByb21pc2UoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RQcm9taXNlUmVqZWN0aW9u
RXZlbnRSZWFzb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0UHJvbWlz
ZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdFByb21pc2VSZWplY3Rpb25FdmVudFByb21pc2UpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRSZWFzb24pOwog
CiBjbGFzcyBKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRQcm90b3R5cGUgZmluYWwgOiBwdWJs
aWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTI1OSw3ICsyNTksNyBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQqIElETEF0dHJpYnV0
ZTxKU1Rlc3RQcm9taXNlUmVqZWN0aQogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdFBy
b21pc2VSZWplY3Rpb25FdmVudCo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdFByb21pc2VSZWplY3Rpb25F
dmVudENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjY5LDcgKzI2OSw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNH
bG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RQcm9taXNlUmVqZWN0
aW9uRXZlbnQ6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCks
IHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RQcm9t
aXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI5
MCw3ICsyOTAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0UHJvbWlzZVJlamVjdGlv
bkV2ZW50UHJvbWlzZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbAogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExQcm9taXNlPElETEFueT4+KGxleGljYWxHbG9iYWxP
YmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnByb21p
c2UoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RQcm9taXNl
UmVqZWN0aW9uRXZlbnRQcm9taXNlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRQcm9taXNlLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFByb21pc2VSZWpl
Y3Rpb25FdmVudD46OmdldDxqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRQcm9taXNlR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6UmVqZWN0UHJvbWlzZT4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgInByb21pc2UiKTsKIH0KQEAgLTMwMyw3ICszMDMsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50UmVhc29uR2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExBbnk+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwucmVhc29u
KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0UHJvbWlzZVJl
amVjdGlvbkV2ZW50UmVhc29uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRSZWFzb24sIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0UHJvbWlzZVJlamVjdGlv
bkV2ZW50Pjo6Z2V0PGpzVGVzdFByb21pc2VSZWplY3Rpb25FdmVudFJlYXNvbkdldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgInJlYXNvbiIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRPbmx5TWFwTGlrZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UmVhZE9ubHlNYXBMaWtlLmNwcAppbmRl
eCA5MjA1NzZhNDEzNjFlNjRlN2QwNzQxMzAwMTNjMzMyMTZlYzZiYzBlLi5jZThjMDk5NDYwOGM5
MTkxODRmM2EyNjk5NTZkNGM3MjU5YzdjNTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UmVhZE9ubHlNYXBMaWtlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UmVhZE9ubHlNYXBM
aWtlLmNwcApAQCAtNTksOSArNTksOSBAQCBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk7CiAKIC8vIEF0dHJpYnV0
ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFJlYWRPbmx5TWFw
TGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0UmVhZE9u
bHlNYXBMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdFJlYWRPbmx5TWFwTGlrZVNpemUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3Rvcik7CitKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdFJlYWRPbmx5TWFwTGlrZVNpemUpOwogCiBjbGFz
cyBKU1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05v
bkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE4Myw3ICsxODMsNyBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBKU1Rlc3RSZWFkT25seU1hcExpa2UqIElETE9wZXJhdGlvbjxKU1Rlc3RSZWFkT25seU1h
cExpa2U+OjpjYQogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdFJlYWRPbmx5TWFwTGlr
ZSo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVl
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFJlYWRPbmx5TWFw
TGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5Myw3ICsx
OTMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFJlYWRPbmx5TWFwTGlr
ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoSlNUZXN0UmVhZE9ubHlNYXBMaWtlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0yMTMsNyArMjEzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFJlYWRPbmx5TWFw
TGlrZVNpemVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG8KICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQW55PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBmb3J3YXJkU2l6ZVRvTWFwTGlrZShsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
T2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RSZWFk
T25seU1hcExpa2VTaXplKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RSZWFkT25seU1hcExpa2VTaXplLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFJlYWRPbmx5TWFwTGlrZT46OmdldDxqc1Rl
c3RSZWFkT25seU1hcExpa2VTaXplR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAic2l6ZSIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRPbmx5U2V0TGlrZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UmVhZE9ubHlTZXRMaWtlLmNwcAppbmRleCBj
MzJkNzc0ZWQ1MDYzZjlmZmZjNzU1MzAzZjhkYTUwOGQzZjBmZWI0Li4yMDA0MzVmZGQwN2I4ZGYy
MmViOTJmNWM0MmMxNWZjODkzMzQzYmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UmVhZE9ubHlTZXRMaWtlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UmVhZE9ubHlTZXRMaWtl
LmNwcApAQCAtNTgsOSArNTgsOSBAQCBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFJl
YWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk7CiAKIC8vIEF0dHJpYnV0ZXMK
IAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFJlYWRPbmx5U2V0TGlr
ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0UmVhZE9ubHlT
ZXRMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdFJlYWRPbmx5U2V0TGlrZVNpemUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3Rvcik7CitKU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdFJlYWRPbmx5U2V0TGlrZVNpemUpOwogCiBjbGFzcyBK
U1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZp
bmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE4MSw3ICsxODEsNyBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBKU1Rlc3RSZWFkT25seVNldExpa2UqIElETE9wZXJhdGlvbjxKU1Rlc3RSZWFkT25seVNldExp
a2U+OjpjYQogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdFJlYWRPbmx5U2V0TGlrZSo+
KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFJlYWRPbmx5U2V0TGlr
ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkp
CiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5MSw3ICsxOTEs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFJlYWRPbmx5U2V0TGlrZUNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
SlNUZXN0UmVhZE9ubHlTZXRMaWtlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0y
MTEsNyArMjExLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFJlYWRPbmx5U2V0TGlr
ZVNpemVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG8KICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQW55PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBmb3J3YXJkU2l6ZVRvU2V0TGlrZShsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzT2Jq
ZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RSZWFkT25s
eVNldExpa2VTaXplKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RSZWFkT25seVNldExpa2VTaXplLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFJlYWRPbmx5U2V0TGlrZT46OmdldDxqc1Rlc3RS
ZWFkT25seVNldExpa2VTaXplR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAic2l6ZSIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0LmNw
cAppbmRleCAzZWRkMDFmY2FiMjQ5ZWY1ZWY4OWI5NzViZjU4ZmYzZTE1NTc4YTNlLi45ZDZiNGE0
OGQ4NTUxOWU1MWVjYjk0MzgxZDQyNDA1ZTZiOTE2NjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
UmVwb3J0RXh0cmFNZW1vcnlDb3N0LmNwcApAQCAtNDQsOCArNDQsOCBAQCB1c2luZyBuYW1lc3Bh
Y2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0UmVwb3J0RXh0cmFNZW1vcnlD
b3N0Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RSZXBv
cnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3Rvcik7CiAKIGNsYXNzIEpTVGVzdFJlcG9ydEV4dHJh
TWVtb3J5Q29zdFByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3Qg
ewogcHVibGljOgpAQCAtMTUwLDcgKzE1MCw3IEBAIHZvaWQgSlNUZXN0UmVwb3J0RXh0cmFNZW1v
cnlDb3N0OjpkZXN0cm95KEpTQzo6SlNDZWxsKiBjZWxsKQogICAgIHRoaXNPYmplY3QtPkpTVGVz
dFJlcG9ydEV4dHJhTWVtb3J5Q29zdDo6fkpTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdCgpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFJlcG9ydEV4dHJhTWVtb3J5
Q29zdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE2
MCw3ICsxNjAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFJlcG9ydEV4
dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZQogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoSlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0OjpnZXRDb25zdHJ1Y3RvcihKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7
CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5F
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3Is
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4IGYwYWRjODNmMDQ2YzcyYzFkNjYyOGU5
ZjEzNDk0ZjE0Y2QzMTdhMmQuLjUyZmJjY2ExY2U4MWNjN2Q5M2JkN2RmNzYzYzdmNDY1ODg0OTNi
YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UuY3BwCkBAIC02MSwxNSArNjEsMTUgQEAgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkYK
IAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWYWx1ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlUmVhZG9ubHlWYWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZh
bHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVBvcnRzKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlQ2FjaGVkUmVhZG9ubHlWYWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rv
cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWYWx1ZSk7
CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZVJlYWRvbmx5VmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZSk7CitKU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hl
ZFZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlUG9ydHMpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRSZWFkb25seVZhbHVlKTsKIAogY2xh
c3MgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlIGZpbmFsIDog
cHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xOTAsNyArMTkwLDcg
QEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
KiBJRExPcGVyYXRpb248SlNUZXN0U2VyaWEKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xv
YmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMDAs
NyArMjAwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0cKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6Z2V0Q29uc3RydWN0
b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmpl
Y3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjIxLDcg
KzIyMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VWYWx1ZUdldHRlcihKU0dsb2JhbE9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3Qo
KSwgdGhyb3dTY29wZSwgaW1wbC52YWx1ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVZhbHVlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2VWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+
OjpnZXQ8anNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWVHZXR0ZXIsIENh
c3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJ2YWx1ZSIpOwogfQpAQCAtMjM5LDcgKzIzOSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWYWx1ZVNldHRlcihKU0ds
b2JhbE9iCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlPjo6c2V0PHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZVZhbHVlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJ2YWx1ZSIpOwogfQpAQCAtMjUyLDcgKzI1Miw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VSZWFkb25seVZhbHVl
R2V0dGVyKEpTCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZTxTZXJpYWxpemVkU2NyaXB0VmFsdWU+PihsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5yZWFk
b25seVZhbHVlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUmVhZG9ubHlWYWx1ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlUmVhZG9ubHlWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+
OjpnZXQ8anNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUmVhZG9ubHlWYWx1ZUdl
dHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgInJlYWRvbmx5VmFsdWUiKTsKIH0KQEAgLTI3MCw3ICsyNzAsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
Q2FjaGVkVmFsdWVHZXR0ZXIoSlNHbAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
Q2FjaGVkVmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZT46OmdldDxqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VDYWNoZWRWYWx1ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2Vy
dD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImNhY2hlZFZhbHVlIik7CiB9CkBA
IC0yODgsNyArMjg4LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlU2V0dGVyKEpTR2wKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZUNhY2hlZFZhbHVlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VDYWNoZWRWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2U+OjpzZXQ8c2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2Fj
aGVkVmFsdWVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgImNhY2hlZFZhbHVlIik7CiB9CkBAIC0zMDEsNyArMzAxLDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVBvcnRzR2V0dGVy
KEpTR2xvYmFsT2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
U2VxdWVuY2U8SURMSW50ZXJmYWNlPE1lc3NhZ2VQb3J0Pj4+KGxleGljYWxHbG9iYWxPYmplY3Qs
ICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnBvcnRzKCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlUG9ydHMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVBvcnRzLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZT46OmdldDxqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VQb3J0c0dldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInBvcnRzIik7CiB9CkBAIC0zMTksNyAr
MzE5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZUNhY2hlZFJlYWRvbmx5VmFsdWVHZXQKICAgICByZXR1cm4gcmVzdWx0OwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZUNhY2hlZFJlYWRvbmx5VmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNh
Y2hlZFJlYWRvbmx5VmFsdWUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPjo6Z2V0PGpz
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFJlYWRvbmx5VmFsdWVHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJjYWNoZWRSZWFkb25seVZhbHVlIik7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2V0TGlrZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2V0TGlrZS5jcHAK
aW5kZXggYmY0Mjk5MWE1NjQ3MGU4NWQxOWNmYTIxOTFiNzViNzljZGE3NjhiNi4uZTI1OTdlMTlj
MzBlOWEwMzYwNjc2OTY3MWJjMmRkZTdmNjEzMzIwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNldExpa2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXRMaWtlLmNwcApAQCAt
NjEsOSArNjEsOSBAQCBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VQcm90
b3R5cGVGdW5jdGlvbkRlbGV0ZSk7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNldExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdFNldExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2V0TGlrZVNpemUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0U2V0TGlrZVNpemUpOwogCiBjbGFzcyBKU1Rlc3RTZXRM
aWtlUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJs
aWM6CkBAIC0xODcsNyArMTg3LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0U2V0TGlrZSog
SURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2U+OjpjYXN0KEpTR2xvYmFsT2JqZWMKICAgICByZXR1
cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RTZXRMaWtlKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RTZXRMaWtlQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0xOTcsNyArMTk3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RT
ZXRMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG8KICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFNldExpa2U6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAot
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFNldExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0U2V0TGlrZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjE3LDcgKzIx
Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlU2l6ZUdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETEFueT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwg
Zm9yd2FyZFNpemVUb1NldExpa2UobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2V0TGlrZVNpemUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdFNldExpa2VT
aXplLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdFNldExpa2U+OjpnZXQ8anNUZXN0U2V0TGlrZVNpemVHZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJzaXplIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucy5jcHAKaW5kZXggMTczYTk2NzIzNzNm
NWQxMjU5MzE4Y2U0MzY5NjFkYWY1M2JkNmYxMi4uMWZiMTliZGE5OGZjZGQwODk2OTdhNjQ4Nzdj
ODA1OGJlNzk3ZTJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXRMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zLmNwcApAQCAtNjEsMTEgKzYxLDExIEBAIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3Rv
dHlwZUZ1bmN0aW9uCiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRl
bk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0FkZChKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNBZGQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNl
dExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTaXplKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3Rv
cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdFNldExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpz
VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNBZGQpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQWRkKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9uc1NpemUpOwogCiBjbGFzcyBKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJs
aWM6CkBAIC0xODksNyArMTg5LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0U2V0TGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9ucyogSURMT3BlcmF0aW9uPEpTVGVzdFNldEwKICAgICByZXR1
cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zKj4o
SlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2V0TGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0xOTksNyArMTk5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3Io
SlMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRl
bk9wZXJhdGlvbnM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMjIwLDcgKzIyMCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQWRkR2V0dGVyKEpTR2xvYmFs
T2JqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYWRkKCkpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9uc0FkZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNU
ZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0FkZCwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zPjo6Z2V0PGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNB
ZGRHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJhZGQiKTsKIH0KQEAgLTIzOCw3ICsyMzgsNyBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgc2V0SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0FkZFNl
dHRlcihKU0dsb2JhbE9iagogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0FkZChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0FkZCwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXRM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6c2V0PHNldEpTVGVzdFNldExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnNBZGRTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgImFkZCIpOwogfQpAQCAtMjUwLDcgKzI1MCw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2l6ZUdl
dHRlcihKU0dsb2JhbE9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETEFueT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgZm9yd2FyZFNpemVUb1Nl
dExpa2UobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
c1NpemUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVz
dFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTaXplLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRl
bk9wZXJhdGlvbnM+OjpnZXQ8anNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Np
emVHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzaXplIik7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U3RyaW5naWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFN0cmluZ2lmaWVyLmNwcAppbmRleCA2ZGExZjA4ZGE2YmVhM2VkZWZlOGNiNGI4YTY5
ZmJlOWI2NzBkZDMzLi44NTgwZTU5OGNmNGI2MjlkNzQ5MWIwODEwM2ExZWY2NjI2ZGRiYzUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U3RyaW5naWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTdHJpbmdpZmllci5jcHAKQEAgLTUwLDggKzUwLDggQEAgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RTdHJpbmdpZmllclByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcp
OwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01f
R0VUVEVSKGpzVGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKTsKIAogY2xhc3MgSlNUZXN0
U3RyaW5naWZpZXJQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0
IHsKIHB1YmxpYzoKQEAgLTE2MSw3ICsxNjEsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RT
dHJpbmdpZmllciogSURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyPjo6Y2FzdChKU0dsbwog
ICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdFN0cmluZ2lmaWVyKj4oSlNDOjpnZXRWTSgm
bGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0U3RyaW5naWZp
ZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE3MSw3ICsxNzEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0U3RyaW5naWZpZXI6Omdl
dENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+
Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFN0cmlu
Z2lmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlND
X0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3IsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVy
QW5vbnltb3VzT3BlcmF0aW9uLmNwcAppbmRleCBlYWUwNDk3M2UxMDkyNzZkNjBiMGZjM2Q0OWZi
NTU3ZTA5NmU1MDU5Li5iMGRjZDg0NjA1NThhNGM3M2YxZWIxZDlkMDRkMjk3ZTRiNTA4ZDZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlv
bi5jcHAKQEAgLTUwLDggKzUwLDggQEAgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RT
dHJpbmdpZmllckFub255bW91c09wZXJhdGlvblByb3RvdHlwZUZ1bmN0aW9uVG8KIAogLy8gQXR0
cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U3RyaW5n
aWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RTdHJpbmdpZmllckFub255bW91
c09wZXJhdGlvbkNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3Rvcik7CiAKIGNsYXNzIEpT
VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uUHJvdG90eXBlIGZpbmFsIDogcHVibGlj
IEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNjEsNyArMTYxLDcgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24qIElETE9w
ZXJhdGlvbjxKU1Rlc3RTdHJpbmcKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RTdHJp
bmdpZmllckFub255bW91c09wZXJhdGlvbio+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdFN0cmluZ2lm
aWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQog
ewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNzEsNyArMTcxLDcg
QEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTdHJpbmdpZmllckFub255bW91
c09wZXJhdGlvbkNvbnN0cnVjdG9yKEpTR2wKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpT
VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uOjpnZXRDb25zdHJ1Y3RvcihKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9
CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJh
dGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlv
bkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAg
ICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVy
YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24uY3BwCmluZGV4IDNkNDBjZGIyMTc2YWQyZjY1Mzc0
NWRiNjAwMTNhNWQ4OWU1ZWFjOTQuLmQ2NTUyYjUyOGMzOGE2N2ZjOGI5N2ZkYzU0MDE4YTA2ZGM5
MTBiYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlv
bi5jcHAKQEAgLTUxLDggKzUxLDggQEAgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RT
dHJpbmdpZmllck5hbWVkT3BlcmF0aW9uUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmkKIAogLy8gQXR0
cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U3RyaW5n
aWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNv
bnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0U3RyaW5naWZp
ZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKTsKIAogY2xhc3MgSlNUZXN0U3RyaW5naWZpZXJO
YW1lZE9wZXJhdGlvblByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmpl
Y3QgewogcHVibGljOgpAQCAtMTYzLDcgKzE2Myw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVz
dFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24qIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmll
CiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlv
bio+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVl
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVy
TmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9y
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMTczLDcgKzE3Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uOjpn
ZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUt
Pmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RTdHJp
bmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdFN0cmluZ2lmaWVy
TmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdp
Zmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcy5j
cHAKaW5kZXggN2RiNWZmN2RjMzQ5M2RjZmIxMjkyYzZlYjlhMjE0Yjc0M2FjMTVkOC4uOWMzMGVm
MjliOWRkNjM3ODU5MTNjMGVkNDBkZmZiMWE2ZmI0OGZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9u
SW1wbGVtZW50ZWRBcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcy5jcHAKQEAgLTUx
LDggKzUxLDggQEAgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTdHJpbmdpZmllck9w
ZXJhdGlvbkltcGxlbWVudGVkQXNQcm90b3R5cGVGdW5jdGkKIAogLy8gQXR0cmlidXRlcwogCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U3RyaW5naWZpZXJPcGVyYXRp
b25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1w
bGVtZW50ZWRBc0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IpOwogCiBjbGFz
cyBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQcm90b3R5cGUgZmluYWwg
OiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE2Myw3ICsxNjMs
NyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVu
dGVkQXMqIElETE9wZXJhdGlvbjxKU1Rlc3RTdAogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpT
VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcyo+KEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRB
c0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNDb25zdHJ1Y3RvciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTE3Myw3ICsxNzMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKAogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFz
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5
cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RT
dHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJh
dGlvbk5hbWVkVG9TdHJpbmcuY3BwCmluZGV4IGNlYWY2NGFiNWJlMjU4NGFhYjQxYmEwZGFiZTU3
Y2NlMzI3NzRiY2UuLmU4NzlmN2ZlNzYxOTE5MWUwYTliZDk2NjhjOWFkM2RlMjM2Y2Q0MTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RT
dHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVk
VG9TdHJpbmcuY3BwCkBAIC01MCw4ICs1MCw4IEBAIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nUHJvdG90eXBlRnVuY3RpCiAK
IC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5n
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RTdHJp
bmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0Nv
bnN0cnVjdG9yKTsKIAogY2xhc3MgSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3Ry
aW5nUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJs
aWM6CkBAIC0xNjEsNyArMTYxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0U3RyaW5naWZp
ZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nKiBJRExPcGVyYXRpb248SlNUZXN0U3QKICAgICByZXR1
cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcq
PihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTdHJpbmdpZmllck9w
ZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3Ry
aW5nQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNzEsNyArMTcxLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25z
dHJ1Y3RvcigKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFN0cmluZ2lmaWVyT3Bl
cmF0aW9uTmFtZWRUb1N0cmluZzo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNU
T01fU0VUVEVSKHNldEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYg
dm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1
dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0
cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUuY3BwCmluZGV4IDllZjgxYjE2OTQ5NjJmNGRhMWVm
OThmNzdkOWNmNzgyYTM5YjE4OWQuLjFmNWM2NDI3YjJhOTA4OTQ0NTRlMDQyYjI4NzMyOTEyOWQ5
N2U5ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0
dHJpYnV0ZS5jcHAKQEAgLTUxLDkgKzUxLDkgQEAgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlUHJvdG90eXBlRnVuY3Rpb25Ub1MKIAog
Ly8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTdHJpbmdp
ZmllclJlYWRPbmx5QXR0cmlidXRlSWRlbnRpZmllcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3IpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0
cmlidXRlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RTdHJp
bmdpZmllclJlYWRPbmx5QXR0cmlidXRlSWRlbnRpZmllcik7CiAKIGNsYXNzIEpTVGVzdFN0cmlu
Z2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05v
bkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE2OSw3ICsxNjksNyBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlKiBJRExPcGVyYXRpb248SlNU
ZXN0U3RyaW5naQogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdFN0cmluZ2lmaWVyUmVh
ZE9ubHlBdHRyaWJ1dGUqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZy
YW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlB
dHRyaWJ1dGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE3OSw3ICsxNzksNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25z
dHJ1Y3RvcihKU0dsbwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0U3RyaW5naWZp
ZXJSZWFkT25seUF0dHJpYnV0ZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3IsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMDAsNyArMjAwLDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVJZGVudGlmaWVyR2V0dGVyKEpT
R2xvYmEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3Ry
aW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmlkZW50aWZpZXIoKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTdHJpbmdpZmllclJl
YWRPbmx5QXR0cmlidXRlSWRlbnRpZmllcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUlkZW50aWZp
ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZT46OmdldDxqc1Rlc3RTdHJpbmdpZmllclJl
YWRPbmx5QXR0cmlidXRlSWRlbnRpZmllckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImlkZW50aWZpZXIiKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1
dGUuY3BwCmluZGV4IDdjM2Q0Y2I2MDc5ZGVmMWIzMjhhZmU2ZWUxOTY0NmI4NjM2ZDMzNTEuLjYw
MmMwOGNlOGNmNjU1NTFkNTQ0NTZjMDJhZTRkMjJhODcxMGE4MGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRX
cml0ZUF0dHJpYnV0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlLmNwcApAQCAtNTEsMTAg
KzUxLDEwIEBAIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U3RyaW5naWZpZXJSZWFk
V3JpdGVBdHRyaWJ1dGVQcm90b3R5cGVGdW5jdGlvblRvCiAKIC8vIEF0dHJpYnV0ZXMKIAotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRl
QXR0cmlidXRlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RT
dHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJp
YnV0ZUlkZW50aWZpZXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RTdHJpbmdp
ZmllclJlYWRXcml0ZUF0dHJpYnV0ZUlkZW50aWZpZXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9y
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0U3RyaW5naWZpZXJSZWFkV3Jp
dGVBdHRyaWJ1dGVDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVz
dFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlSWRlbnRpZmllcik7CitKU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlSWRlbnRp
Zmllcik7CiAKIGNsYXNzIEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlUHJvdG90
eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0x
NzAsNyArMTcwLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0U3RyaW5naWZpZXJSZWFkV3Jp
dGVBdHRyaWJ1dGUqIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmcKICAgICByZXR1cm4ganNEeW5h
bWljQ2FzdDxKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZSo+KEpTQzo6Z2V0Vk0o
JmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmli
dXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKGpzVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0xODAsNyArMTgwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RT
dHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTR2wKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlOjpnZXRD
b25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmds
b2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RTdHJpbmdp
ZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RTdHJpbmdpZmll
clJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MjAxLDcgKzIwMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllclJl
YWRXcml0ZUF0dHJpYnV0ZUlkZW50aWZpZXJHZXR0ZXIoSlNHbG9iCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhyb3dTY29wZSwgaW1wbC5pZGVudGlmaWVyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVJZGVudGlm
aWVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RT
dHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUlkZW50aWZpZXIsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U3RyaW5naWZpZXJSZWFkV3Jp
dGVBdHRyaWJ1dGU+OjpnZXQ8anNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVJZGVu
dGlmaWVyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiaWRlbnRpZmllciIpOwogfQpAQCAtMjE5LDcgKzIxOSw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJp
YnV0ZUlkZW50aWZpZXJTZXR0ZXIoSlNHbG9iCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUlkZW50
aWZpZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNU
T01fU0VUVEVSKHNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlSWRlbnRpZmll
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZT46OnNldDxzZXRK
U1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUlkZW50aWZpZXJTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImlkZW50aWZpZXIiKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RUeXBlZGVmcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0VHlwZWRlZnMuY3BwCmluZGV4IDkwY2Q3MDZjMmUzMzljMmNkOTEyZGY0MDc2MjQy
Y2NjNmE3YzBjOWYuLjIzODNlMzg1ODJiZWY3ZjcyMWU0NDAxYWI4MzdlZjAwNjcwMWExNWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RU
eXBlZGVmcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFR5cGVkZWZzLmNwcApAQCAtODMsMjEgKzgzLDIxIEBAIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRp
b24pOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0cihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFR5cGVkZWZzU2Vy
aWFsaXplZFNjcmlwdFZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0VHlw
ZWRlZnNTZXJpYWxpemVkU2NyaXB0VmFsdWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3JUZXN0U3ViT2JqKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVX
aXRoQ2xhbXAoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RUeXBlZGVmc0F0dHJp
YnV0ZVdpdGhDbGFtcChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcEluVHlwZWRlZihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0VHlwZWRlZnNC
dWZmZXJTb3VyY2VBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0VHlwZWRl
ZnNCdWZmZXJTb3VyY2VBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RUeXBlZGVmc0RvbVRpbWVTdGFtcEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RUeXBlZGVmc0RvbVRpbWVTdGFtcEF0dHIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0VHlwZWRlZnNDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdB
dHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0VHlwZWRlZnNTZXJpYWxpemVk
U2NyaXB0VmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RUeXBlZGVm
c1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVz
dFR5cGVkZWZzQ29uc3RydWN0b3JUZXN0U3ViT2JqKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXApOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcCk7CitKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVm
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVX
aXRoQ2xhbXBJblR5cGVkZWYpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RUeXBl
ZGVmc0J1ZmZlclNvdXJjZUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RUeXBlZGVmc0J1ZmZlclNvdXJjZUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RUeXBlZGVmc0RvbVRpbWVTdGFtcEF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RUeXBlZGVmc0RvbVRpbWVTdGFtcEF0dHIpOwogCiBjbGFzcyBKU1Rlc3RUeXBl
ZGVmc1Byb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVi
bGljOgpAQCAtMjgyLDcgKzI4Miw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdFR5cGVkZWZz
KiBJRExPcGVyYXRpb248SlNUZXN0VHlwZWRlZnM+OjpjYXN0KEpTR2xvYmFsT2JqCiAgICAgcmV0
dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xv
YmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMjkyLDcgKzI5Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0VHlwZWRlZnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RUeXBlZGVmczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwog
fQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMx
Myw3ICszMTMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0VHlwZWRlZnNVbnNpZ25l
ZExvbmdMb25nQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbAogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExVbnNpZ25lZExvbmdMb25nPihsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVuc2lnbmVkTG9uZ0xvbmdBdHRyKCkpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdM
b25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNU
ZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RUeXBlZGVmcz46OmdldDxqc1Rlc3RUeXBl
ZGVmc1Vuc2lnbmVkTG9uZ0xvbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidW5zaWduZWRMb25nTG9u
Z0F0dHIiKTsKIH0KQEAgLTMzMSw3ICszMzEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbAog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0VHlwZWRl
ZnNVbnNpZ25lZExvbmdMb25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdM
b25nQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RUeXBlZGVmcz46OnNldDxzZXRKU1Rlc3RUeXBlZGVmc1Vu
c2lnbmVkTG9uZ0xvbmdBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJ1bnNpZ25lZExvbmdMb25nQXR0ciIpOwogfQpAQCAtMzQ0LDcgKzM0
NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUdldHRlcihKU0dsb2JhbE9iamVjdCYKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMU2VyaWFsaXplZFNjcmlwdFZhbHVlPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0
aHJvd1Njb3BlLCBpbXBsLnNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFR5cGVkZWZzU2VyaWFsaXplZFNjcmlwdFZhbHVl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RUeXBl
ZGVmc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RUeXBlZGVmcz46OmdldDxqc1Rlc3RUeXBlZGVmc1Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2Vy
dD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSIpOwogfQpAQCAtMzYyLDcgKzM2Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RU
eXBlZGVmc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZVNldHRlcihKU0dsb2JhbE9iamVjdCYKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFR5cGVkZWZzU2Vy
aWFsaXplZFNjcmlwdFZhbHVlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RUeXBlZGVmc1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RUeXBlZGVmcz46OnNldDxzZXRKU1Rlc3RUeXBlZGVmc1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAic2VyaWFsaXplZFNjcmlwdFZhbHVlIik7CiB9CkBAIC0zNzMsNyArMzcz
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3JUZXN0
U3ViT2JqR2V0dGVyKEpTR2xvYmFsT2JqZWN0JgogICAgIHJldHVybiBKU1Rlc3RTdWJPYmo6Omdl
dENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0
Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RUeXBlZGVmc0NvbnN0cnVjdG9yVGVzdFN1Yk9iaihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclRlc3RTdWJPYmos
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
VHlwZWRlZnM+OjpnZXRTdGF0aWM8anNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclRlc3RTdWJPYmpH
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0U3ViT2JqIik7CiB9
CkBAIC0zODYsNyArMzg2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFR5cGVkZWZz
QXR0cmlidXRlV2l0aENsYW1wR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXgKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQ2xhbXBBZGFwdG9yPElETFVuc2lnbmVk
TG9uZ0xvbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHJpYnV0
ZVdpdGhDbGFtcCgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcCwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RUeXBlZGVm
cz46OmdldDxqc1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcEdldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ImF0dHJpYnV0ZVdpdGhDbGFtcCIpOwogfQpAQCAtNDA0LDcgKzQwNCw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcFNldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0VHlwZWRlZnNB
dHRyaWJ1dGVXaXRoQ2xhbXAsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+OjpzZXQ8c2V0SlNUZXN0
VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImF0dHJpYnV0ZVdpdGhDbGFtcCIpOwogfQpAQCAtNDE3
LDcgKzQxNyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0F0dHJpYnV0
ZVdpdGhDbGFtcEluVHlwZWRlZkdldHRlcihKU0dsb2JhbE9iCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETENsYW1wQWRhcHRvcjxJRExMb25nPj4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYo
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RUeXBlZGVmc0F0
dHJpYnV0ZVdpdGhDbGFtcEluVHlwZWRlZihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
VHlwZWRlZnM+OjpnZXQ8anNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWZH
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJhdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYiKTsKIH0KQEAgLTQz
NSw3ICs0MzUsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1
dGVXaXRoQ2xhbXBJblR5cGVkZWZTZXR0ZXIoSlNHbG9iYWxPYgogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xh
bXBJblR5cGVkZWYoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklO
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wSW5UeXBl
ZGVmLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdFR5cGVkZWZzPjo6c2V0PHNldEpTVGVzdFR5cGVkZWZzQXR0cmli
dXRlV2l0aENsYW1wSW5UeXBlZGVmU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJhdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYiKTsKIH0KQEAg
LTQ0OCw3ICs0NDgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0VHlwZWRlZnNCdWZm
ZXJTb3VyY2VBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpYwogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExVbmlvbjxJRExBcnJheUJ1ZmZlclZpZXcsIElE
TEFycmF5QnVmZmVyPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2Jq
ZWN0KCksIHRocm93U2NvcGUsIGltcGwuYnVmZmVyU291cmNlQXR0cigpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFR5cGVkZWZzQnVmZmVyU291cmNlQXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0VHlwZWRl
ZnNCdWZmZXJTb3VyY2VBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdFR5cGVkZWZzPjo6Z2V0PGpzVGVzdFR5cGVkZWZzQnVmZmVyU291
cmNlQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImJ1ZmZlclNvdXJjZUF0dHIiKTsKIH0KQEAgLTQ2Niw3
ICs0NjYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0VHlwZWRlZnNCdWZmZXJTb3Vy
Y2VBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpYwogICAgIHJldHVybiB0cnVlOwogfQog
Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0VHlwZWRlZnNCdWZmZXJTb3VyY2VBdHRyKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RUeXBlZGVmc0J1ZmZlclNvdXJjZUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRl
ZnM+OjpzZXQ8c2V0SlNUZXN0VHlwZWRlZnNCdWZmZXJTb3VyY2VBdHRyU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJidWZmZXJTb3VyY2VBdHRy
Iik7CiB9CkBAIC00NzksNyArNDc5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFR5
cGVkZWZzRG9tVGltZVN0YW1wQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWMKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMVW5zaWduZWRMb25nTG9uZz4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5kb21UaW1lU3RhbXBBdHRyKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0VHlwZWRlZnNEb21U
aW1lU3RhbXBBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RUeXBlZGVmc0RvbVRpbWVTdGFtcEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+OjpnZXQ8anNUZXN0VHlw
ZWRlZnNEb21UaW1lU3RhbXBBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNz
ZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZG9tVGltZVN0YW1wQXR0ciIp
OwogfQpAQCAtNDk3LDcgKzQ5Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RUeXBl
ZGVmc0RvbVRpbWVTdGFtcEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RUeXBlZGVmc0RvbVRp
bWVTdGFtcEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklO
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdFR5cGVkZWZzRG9tVGltZVN0YW1wQXR0ciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RUeXBlZGVmcz46OnNldDxzZXRKU1Rlc3RUeXBlZGVmc0RvbVRpbWVTdGFtcEF0dHJT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImRv
bVRpbWVTdGFtcEF0dHIiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCBl
YmQ0ZmNkNmNiYzAwODBkOWU4YjE5OTdiMjQzNjFmODZkMDI4NWI1Li5mZjA1Y2I2OTgzMjc4NTRi
ODNkOGQwZjNjNjY4OWM3OTFhNmU3MGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNXb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTV29ya2VyR2xvYmFsU2NvcGUuY3Bw
CkBAIC01MCwxOCArNTAsMTggQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRl
cwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNXb3JrZXJHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNXb3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1dvcmtlckdsb2JhbFNjb3BlRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1dvcmtlckdsb2JhbFNjb3BlRXhwb3NlZFRv
V29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVk
QnlFeHBvc2VkQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1dvcmtl
ckdsb2JhbFNjb3BlVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1dvcmtlckdsb2Jh
bFNjb3BlVGVzdE5vZGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
V29ya2VyR2xvYmFsU2NvcGVUZXN0Tm9kZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1dvcmtlckdsb2JhbFNjb3BlVGVzdE9iamVjdENvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNXb3JrZXJHbG9iYWxTY29wZVRl
c3RPYmplY3RDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNXb3JrZXJHbG9iYWxTY29wZVRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0
UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc1dvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1dvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihqc1dvcmtlckdsb2JhbFNjb3BlRXhwb3NlZFRvV29ya2VyQW5k
V2luZG93Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1dvcmtl
ckdsb2JhbFNjb3BlRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihqc1dvcmtlckdsb2JhbFNjb3BlVGVzdERlZmF1bHRUb0pTT05G
aWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIo
c2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRD
b25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzV29ya2VyR2xvYmFsU2Nv
cGVUZXN0Tm9kZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNX
b3JrZXJHbG9iYWxTY29wZVRlc3ROb2RlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1dvcmtlckdsb2JhbFNjb3BlVGVzdE9iamVjdENvbnN0cnVjdG9yKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3RPYmplY3RDb25z
dHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzV29ya2VyR2xvYmFsU2NvcGVU
ZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENv
bnN0cnVjdG9yKTsKIAogdXNpbmcgSlNXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yID0gSlNE
T01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNXb3JrZXJHbG9iYWxTY29wZT47CiAKQEAg
LTE3MSw3ICsxNzEsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1dvcmtlckdsb2JhbFNjb3BlKiBJ
RExBdHRyaWJ1dGU8SlNXb3JrZXJHbG9iYWxTY29wZT46OmNhc3QoSgogICAgIHJldHVybiBqc0R5
bmFtaWNDYXN0PEpTV29ya2VyR2xvYmFsU2NvcGUqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMTgxLDcgKzE4MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1dvcmtlckdsb2JhbFNjb3BlOjpnZXRD
b25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmds
b2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1dvcmtlckdsb2Jh
bFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlND
X0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIwMCw3ICsyMDAsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNXb3JrZXJHbG9iYWxTY29wZUV4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVj
dG9yR2V0dAogICAgIHJldHVybiBKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvdzo6Z2V0Q29uc3Ry
dWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFs
T2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzV29ya2VyR2xv
YmFsU2NvcGVFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNXb3JrZXJHbG9iYWxTY29wZUV4cG9z
ZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTV29ya2VyR2xvYmFsU2NvcGU+OjpnZXQ8anNXb3Jr
ZXJHbG9iYWxTY29wZUV4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yR2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiRXhwb3NlZFRvV29ya2VyQW5kV2luZG93
Iik7CiB9CkBAIC0yMTIsNyArMjEyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTV29ya2Vy
R2xvYmFsU2NvcGVFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvclNldHQKICAgICBy
ZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiRXhwb3NlZFRvV29ya2VyQW5kV2luZG93
IiksIHN0cmxlbigiRXhwb3NlZFRvV29ya2VyQW5kV2luZG93IikpLCB2YWx1ZSk7CiB9CiAKLWJv
b2wgSklUX09QRVJBVElPTiBzZXRKU1dvcmtlckdsb2JhbFNjb3BlRXhwb3NlZFRvV29ya2VyQW5k
V2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlND
X0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTV29ya2VyR2xvYmFsU2NvcGVFeHBvc2VkVG9Xb3Jr
ZXJBbmRXaW5kb3dDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1dvcmtlckdsb2JhbFNjb3BlPjo6c2V0
PHNldEpTV29ya2VyR2xvYmFsU2NvcGVFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3Rv
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
RXhwb3NlZFRvV29ya2VyQW5kV2luZG93Iik7CiB9CkBAIC0yMjMsNyArMjIzLDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0RGVmYXVsdFRvSlNPTkZpbHRl
cmVkQnlFeHBvc2VkQ29uc3QKICAgICByZXR1cm4gSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVk
QnlFeHBvc2VkOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNXb3JrZXJHbG9iYWxTY29wZVRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4
cG9zZWRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNXb3JrZXJHbG9iYWxTY29wZVRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9z
ZWRDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1dvcmtlckdsb2JhbFNjb3BlPjo6Z2V0PGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0
RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBv
c2VkIik7CiB9CkBAIC0yMzUsNyArMjM1LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTV29y
a2VyR2xvYmFsU2NvcGVUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3QKICAg
ICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdERlZmF1bHRUb0pTT05GaWx0
ZXJlZEJ5RXhwb3NlZCIpLCBzdHJsZW4oIlRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9z
ZWQiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTV29ya2VyR2xvYmFs
U2NvcGVUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNl
dEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNXb3JrZXJHbG9iYWxTY29wZT46OnNldDxzZXRKU1dvcmtlckds
b2JhbFNjb3BlVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0
RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkIik7CiB9CkBAIC0yNDYsNyArMjQ2LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0Tm9kZUNvbnN0cnVj
dG9yR2V0dGVyKEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNUZXN0Tm9kZTo6Z2V0Q29uc3Ry
dWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFs
T2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzV29ya2VyR2xv
YmFsU2NvcGVUZXN0Tm9kZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1dvcmtlckdsb2JhbFNjb3BlVGVzdE5vZGVDb25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1dvcmtl
ckdsb2JhbFNjb3BlPjo6Z2V0PGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0Tm9kZUNvbnN0cnVjdG9y
R2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5vZGUiKTsKIH0K
QEAgLTI1OCw3ICsyNTgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNXb3JrZXJHbG9iYWxT
Y29wZVRlc3ROb2RlQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplYwogICAgIHJldHVybiB0
aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0Tm9kZSIpLCBzdHJsZW4oIlRlc3ROb2RlIikp
LCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1dvcmtlckdsb2JhbFNjb3Bl
VGVzdE5vZGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitK
U0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3ROb2RlQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNXb3JrZXJHbG9iYWxTY29wZT46OnNldDxzZXRKU1dvcmtlckds
b2JhbFNjb3BlVGVzdE5vZGVDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE5vZGUiKTsKIH0KQEAgLTI2OSw3ICsyNjks
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNXb3JrZXJHbG9iYWxTY29wZVRlc3RPYmplY3RD
b25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iagogICAgIHJldHVybiBKU1Rlc3RPYmo6OmdldENv
bnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmds
b2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1dvcmtl
ckdsb2JhbFNjb3BlVGVzdE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1dvcmtlckdsb2JhbFNjb3BlVGVzdE9iamVjdENvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTV29ya2VyR2xvYmFsU2NvcGU+OjpnZXQ8anNXb3JrZXJHbG9iYWxTY29wZVRlc3RPYmplY3RD
b25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RP
YmplY3QiKTsKIH0KQEAgLTI4MSw3ICsyODEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNX
b3JrZXJHbG9iYWxTY29wZVRlc3RPYmplY3RDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iagog
ICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0T2JqZWN0IiksIHN0cmxl
bigiVGVzdE9iamVjdCIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNX
b3JrZXJHbG9iYWxTY29wZVRlc3RPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNXb3JrZXJHbG9i
YWxTY29wZVRlc3RPYmplY3RDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1dvcmtlckdsb2JhbFNjb3Bl
Pjo6c2V0PHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0T2JqZWN0Q29uc3RydWN0b3JTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RPYmpl
Y3QiKTsKIH0KQEAgLTI5Miw3ICsyOTIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNXb3Jr
ZXJHbG9iYWxTY29wZVRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvckdldAogICAg
IHJldHVybiBKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQ6OmdldENvbnN0cnVjdG9yKEpTQzo6
Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1dvcmtlckdsb2JhbFNjb3BlVGVz
dFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1dvcmtlckdsb2JhbFNjb3BlVGVzdFByb21pc2VSZWpl
Y3Rpb25FdmVudENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTV29ya2VyR2xvYmFsU2NvcGU+OjpnZXQ8anNXb3JrZXJHbG9iYWxT
Y29wZVRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQiKTsKIH0K
QEAgLTMwNCw3ICszMDQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNXb3JrZXJHbG9iYWxT
Y29wZVRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvclNldAogICAgIHJldHVybiB0
aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50IiksIHN0
cmxlbigiVGVzdFByb21pc2VSZWplY3Rpb25FdmVudCIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3RQcm9taXNlUmVqZWN0aW9uRXZl
bnRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVG
SU5FX0NVU1RPTV9TRVRURVIoc2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3RQcm9taXNlUmVqZWN0
aW9uRXZlbnRDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1dvcmtlckdsb2JhbFNjb3BlPjo6c2V0PHNl
dEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3JT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRl
c3RQcm9taXNlUmVqZWN0aW9uRXZlbnQiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtsZXRHbG9iYWxTY29wZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNXb3JrbGV0R2xvYmFsU2NvcGUu
Y3BwCmluZGV4IGVmM2NiYjBjYjVmOTJjOTQ2NDVhOTliNjhjMjRlNTQ2YzhhZTY0NTEuLjMxODc2
MTgzZGE3ZmE5N2YyOGY1MDlmZjQxNzFmNDY5NzJlYzZjYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtsZXRHbG9iYWxTY29wZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTV29ya2xldEds
b2JhbFNjb3BlLmNwcApAQCAtNDQsOCArNDQsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAv
LyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1dvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNX
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01f
R0VUVEVSKGpzV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKTsKIAogdXNpbmcg
SlNXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25z
dHJ1Y3RhYmxlPEpTV29ya2xldEdsb2JhbFNjb3BlPjsKIApAQCAtMTE2LDcgKzExNiw3IEBAIEpT
VmFsdWUgSlNXb3JrbGV0R2xvYmFsU2NvcGU6OmdldENvbnN0cnVjdG9yKFZNJiB2bSwgY29uc3Qg
SlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgcmV0dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTV29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3I+KHZtLCAqanNDYXN0PGNvbnN0IEpTRE9NR2xvYmFs
T2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTEyNiw3ICsxMjYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleAogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoSlNXb3JrbGV0R2xvYmFsU2NvcGU6OmdldENvbnN0cnVjdG9y
KEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0
KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTV29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9D
VVNUT01fU0VUVEVSKHNldEpTV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9h
cnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKaW5kZXgg
YmM2OGQ1MDYyODBlMTRmMzU0OTEyZDU5MmViZTVjNTkxY2E2ZTRhYS4uODAyZGNhMGIxMjNiN2My
N2RiZGJiM2U4YjEwODAyMjM2ZDAwZGE1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfYXJyYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X2FycmF5LmNwcApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xh
c3NJbmZvIFJ1bnRpbWVBcnJheTo6c19pbmZvID0geyAiUnVudGltZUFycmF5IiwgJkJhc2U6OnNf
aW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShSdW50aW1lQXJyYXkp
IH07CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGFycmF5TGVuZ3RoR2V0
dGVyKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihhcnJheUxlbmd0aEdldHRlcik7CiAKIFJ1bnRp
bWVBcnJheTo6UnVudGltZUFycmF5KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAg
OiBKU0FycmF5KHZtLCBzdHJ1Y3R1cmUsIG51bGxwdHIpCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQg
UnVudGltZUFycmF5OjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKICAgICBzdGF0aWNfY2FzdDxSdW50
aW1lQXJyYXkqPihjZWxsKS0+UnVudGltZUFycmF5Ojp+UnVudGltZUFycmF5KCk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gYXJyYXlMZW5ndGhHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGFycmF5TGVuZ3RoR2V0dGVyLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCmluZGV4IDJlOTg1NDcwZDA0YmMzNDM4ZTdi
YmZkYmVmODAxMGU1YzQ5MzFjYzIuLjZmNWIwOTA0YmE4ZDI0OTQ2OTBiMmNkMzliMDdiMGU5MGNj
ZTU5ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcApAQCAtNDQs
NyArNDQsNyBAQCB1c2luZyBuYW1lc3BhY2UgQmluZGluZ3M7CiBXRUJDT1JFX0VYUE9SVCBjb25z
dCBDbGFzc0luZm8gUnVudGltZU1ldGhvZDo6c19pbmZvID0geyAiUnVudGltZU1ldGhvZCIsICZJ
bnRlcm5hbEZ1bmN0aW9uOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoUnVudGltZU1ldGhvZCkgfTsKIAogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oY2FsbFJ1bnRpbWVNZXRob2QpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gbWV0aG9kTGVuZ3RoR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFBy
b3BlcnR5TmFtZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihtZXRob2RMZW5n
dGhHZXR0ZXIpOwogCiBSdW50aW1lTWV0aG9kOjpSdW50aW1lTWV0aG9kKFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIE1ldGhvZCogbWV0aG9kKQogICAgIC8vIENhbGxlcnMgd2lsbCBuZWVk
IHRvIHBhc3MgaW4gdGhlIHJpZ2h0IGdsb2JhbCBvYmplY3QgY29ycmVzcG9uZGluZyB0byB0aGlz
IG5hdGl2ZSBvYmplY3QgIm1ldGhvZCIuCkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgUnVudGltZU1l
dGhvZDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBjb25zdCBTdHJpbmcmIGlkZW50KQogICAgIEFT
U0VSVChpbmhlcml0cyh2bSwgaW5mbygpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gbWV0aG9kTGVuZ3RoR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUiht
ZXRob2RMZW5ndGhHZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogZXhlYywgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX29iamVjdC5jcHAKaW5kZXggODhiMmRlODc1ZGYxZmFhYzBkYTA4MWVjYmQx
YTg1OTVjOWU5ZDg4MC4uZTc1OWU0ZDBjN2U3OTFlZWEyMDVhNmU1ZWNlOTMwYTE0NmE3M2M2NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCkBAIC00MSw5ICs0MSw5
IEBAIFdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBSdW50aW1lT2JqZWN0OjpzX2luZm8g
PSB7ICJSdW50aW1lT2JqZWN0IiwgJkJhc2U6CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihjYWxsUnVudGltZU9iamVjdCk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihjYWxsUnVudGltZUNvbnN0cnVjdG9yKTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gZmFsbGJhY2tPYmplY3RHZXR0ZXIoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNW
YWx1ZSwgUHJvcGVydHlOYW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGZpZWxkR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFt
ZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBtZXRob2RHZXR0ZXIoSlNH
bG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGZhbGxiYWNrT2JqZWN0R2V0dGVyKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGZpZWxkR2V0dGVyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKG1ldGhvZEdldHRlcik7CiAKIFJ1bnRpbWVPYmplY3Q6OlJ1bnRpbWVPYmpl
Y3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmUHRyPEluc3RhbmNlPiYmIGluc3Rh
bmNlKQogICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQpAQCAtNzAsNyArNzAsNyBAQCB2b2lkIFJ1
bnRpbWVPYmplY3Q6OmludmFsaWRhdGUoKQogICAgIG1faW5zdGFuY2UgPSBudWxscHRyOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGZhbGxiYWNrT2JqZWN0R2V0dGVyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoZmFs
bGJhY2tPYmplY3RHZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKIHsK
ICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTkxLDcgKzkxLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBmYWxsYmFja09iamVjdEdldHRlcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gZmllbGRHZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihmaWVsZEdldHRlciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQogeyAgICAKICAgICBWTSYgdm0gPSBsZXhp
Y2FsR2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTExMyw3ICsxMTMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGZpZWxkR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbgogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBtZXRob2RHZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihtZXRob2RHZXR0ZXIsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUgcHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbWppdC9ET01KSVRIZWxwZXJzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb21qaXQvRE9NSklUSGVscGVycy5oCmluZGV4IGFjODgzNTBhNjViYjEwMzI2MzA0MGU2MGM3
MTMyZGY0OGY5ZjViOTguLjVkYTNiNGNhOWUxNTNlMDBkZDYzMTY1YTkzMmNjMWVjN2UwYzI5NWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbWppdC9ET01KSVRIZWxwZXJzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9taml0L0RPTUpJVEhlbHBlcnMuaApAQCAtNTUsMTMgKzU1LDggQEAg
aW5saW5lIENDYWxsSGVscGVyczo6SnVtcCBicmFuY2hJZk5vdFdlYWtJc0xpdmUoQ0NhbGxIZWxw
ZXJzJiBqaXQsIEdQUlJlZyB3ZWFrSW0KIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgV3JhcHBlZE5v
ZGU+Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gdG9XcmFwcGVyU2xvdyhKU0M6
OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHZvaWQqIHJlc3VsdCkKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgdG9XcmFwcGVyU2xvd0ltcGwoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCB2b2lkKiByZXN1bHQpCiB7Ci0gICAgQVNTRVJUKHJlc3VsdCk7Ci0gICAgQVNTRVJUKGds
b2JhbE9iamVjdCk7Ci0gICAgSlNDOjpWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAg
SlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7Ci0gICAg
SlNDOjpKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxG
cmFtZSk7CiAgICAgcmV0dXJuIEpTQzo6SlNWYWx1ZTo6ZW5jb2RlKHRvSlMoZ2xvYmFsT2JqZWN0
LCBzdGF0aWNfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCksICpzdGF0aWNf
Y2FzdDxXcmFwcGVkTm9kZSo+KHJlc3VsdCkpKTsKIH0KIApAQCAtMTk4LDYgKzE5MywxNiBAQCBp
bmxpbmUgQ0NhbGxIZWxwZXJzOjpKdW1wIGJyYW5jaFRlc3RJc0hUTUxGbGFnT25Ob2RlKE1hY3Jv
QXNzZW1ibGVyJiBqaXQsIENDYWxsSAogICAgIHJldHVybiBqaXQuYnJhbmNoVGVzdDMyKGNvbmRp
dGlvbiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKG5vZGVBZGRyZXNzLCBOb2RlOjpub2RlRmxhZ3NN
ZW1vcnlPZmZzZXQoKSksIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKE5vZGU6OmZsYWdJc0hU
TUwoKSkpOwogfQogCitleHRlcm4gIkMiIHsKKworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Ub0pTTm9kZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCB2b2lkKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub0pTQ29u
dGFpbmVyTm9kZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgKEpTQzo6SlNHbG9iYWxPYmplY3QqLCB2
b2lkKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub0pTRWxlbWVudCwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgKEpTQzo6SlNHbG9iYWxPYmplY3QqLCB2b2lkKikpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub0pTSFRNTEVsZW1lbnQsIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIChKU0M6OkpTR2xvYmFsT2JqZWN0Kiwgdm9pZCopKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9KU0RvY3VtZW50LCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCAoSlNDOjpKU0dsb2JhbE9iamVjdCosIHZvaWQqKSk7CisKK30KKwogfSB9CiAKIElHTk9SRV9X
QVJOSU5HU19FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbWppdC9KU0RvY3VtZW50
RE9NSklULmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbWppdC9KU0RvY3VtZW50RE9NSklULmNwcApp
bmRleCAxNmU1ODhmN2E3YzQ0MmQyNDI1MDA0NDY1MzI0MzQ3NmZmZGNlMTA2Li5mOGU4NTRmYTE2
Njc1ZGQ1ODM5YjMyNWNmZTI4YWNlMmYyYTUzNjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb21qaXQvSlNEb2N1bWVudERPTUpJVC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9taml0
L0pTRG9jdW1lbnRET01KSVQuY3BwCkBAIC02MCw3ICs2MCw3IEBAIFJlZjxKU0M6OkRPTUpJVDo6
Q2FsbERPTUdldHRlclNuaXBwZXQ+IGNvbXBpbGVEb2N1bWVudERvY3VtZW50RWxlbWVudEF0dHJp
YnV0ZSgpCiAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhkb2N1bWVu
dCwgSlNEb2N1bWVudDo6b2Zmc2V0T2ZXcmFwcGVkKCkpLCBzY3JhdGNoKTsKICAgICAgICAgRE9N
SklUOjpsb2FkRG9jdW1lbnRFbGVtZW50KGppdCwgc2NyYXRjaCwgc2NyYXRjaCk7CiAgICAgICAg
IGF1dG8gbnVsbENhc2UgPSBqaXQuYnJhbmNoVGVzdFB0cihDQ2FsbEhlbHBlcnM6Olplcm8sIHNj
cmF0Y2gpOwotICAgICAgICBET01KSVQ6OnRvV3JhcHBlcjxFbGVtZW50PihqaXQsIHBhcmFtcywg
c2NyYXRjaCwgZ2xvYmFsT2JqZWN0LCByZXN1bHQsIERPTUpJVDo6dG9XcmFwcGVyU2xvdzxFbGVt
ZW50PiwgZ2xvYmFsT2JqZWN0VmFsdWUpOworICAgICAgICBET01KSVQ6OnRvV3JhcHBlcjxFbGVt
ZW50PihqaXQsIHBhcmFtcywgc2NyYXRjaCwgZ2xvYmFsT2JqZWN0LCByZXN1bHQsIERPTUpJVDo6
b3BlcmF0aW9uVG9KU0VsZW1lbnQsIGdsb2JhbE9iamVjdFZhbHVlKTsKICAgICAgICAgYXV0byBk
b25lID0gaml0Lmp1bXAoKTsKIAogICAgICAgICBudWxsQ2FzZS5saW5rKCZqaXQpOwpAQCAtMTI3
LDcgKzEyNyw3IEBAIFJlZjxKU0M6OkRPTUpJVDo6Q2FsbERPTUdldHRlclNuaXBwZXQ+IGNvbXBp
bGVEb2N1bWVudEJvZHlBdHRyaWJ1dGUoKQogICAgICAgICBqaXQuanVtcCgpLmxpbmtUbyhsb29w
U3RhcnQsICZqaXQpOwogCiAgICAgICAgIHN1Y2Nlc3NDYXNlcy5saW5rKCZqaXQpOwotICAgICAg
ICBET01KSVQ6OnRvV3JhcHBlcjxIVE1MRWxlbWVudD4oaml0LCBwYXJhbXMsIHNjcmF0Y2gxLCBn
bG9iYWxPYmplY3QsIHJlc3VsdCwgRE9NSklUOjp0b1dyYXBwZXJTbG93PEhUTUxFbGVtZW50Piwg
Z2xvYmFsT2JqZWN0VmFsdWUpOworICAgICAgICBET01KSVQ6OnRvV3JhcHBlcjxIVE1MRWxlbWVu
dD4oaml0LCBwYXJhbXMsIHNjcmF0Y2gxLCBnbG9iYWxPYmplY3QsIHJlc3VsdCwgRE9NSklUOjpv
cGVyYXRpb25Ub0pTSFRNTEVsZW1lbnQsIGdsb2JhbE9iamVjdFZhbHVlKTsKICAgICAgICAgYXV0
byBkb25lID0gaml0Lmp1bXAoKTsKIAogICAgICAgICBudWxsQ2FzZXMubGluaygmaml0KTsKQEAg
LTE0MCw2ICsxNDAsNjAgQEAgUmVmPEpTQzo6RE9NSklUOjpDYWxsRE9NR2V0dGVyU25pcHBldD4g
Y29tcGlsZURvY3VtZW50Qm9keUF0dHJpYnV0ZSgpCiAgICAgcmV0dXJuIHNuaXBwZXQ7CiB9CiAK
K2V4dGVybiAiQyIgeworCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9KU0Vs
ZW1lbnQsIEpTQzo6RW5jb2RlZEpTVmFsdWUsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIHZvaWQqIHJlc3VsdCkpCit7CisgICAgQVNTRVJUKHJlc3VsdCk7CisgICAgQVNTRVJU
KGdsb2JhbE9iamVjdCk7CisgICAgSlNDOjpWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Cisg
ICAgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7Cisg
ICAgSlNDOjpKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNh
bGxGcmFtZSk7CisgICAgcmV0dXJuIERPTUpJVDo6dG9XcmFwcGVyU2xvd0ltcGw8RWxlbWVudD4o
Z2xvYmFsT2JqZWN0LCByZXN1bHQpOworfQorCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uVG9KU0hUTUxFbGVtZW50LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCAoSlNDOjpKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCB2b2lkKiByZXN1bHQpKQoreworICAgIEFTU0VSVChyZXN1
bHQpOworICAgIEFTU0VSVChnbG9iYWxPYmplY3QpOworICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOworICAgIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOworICAgIEpTQzo6SklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworICAgIHJldHVybiBET01KSVQ6OnRvV3JhcHBlclNs
b3dJbXBsPEhUTUxFbGVtZW50PihnbG9iYWxPYmplY3QsIHJlc3VsdCk7Cit9CisKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub0pTRG9jdW1lbnQsIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHZvaWQqIHJlc3VsdCkpCit7
CisgICAgQVNTRVJUKHJlc3VsdCk7CisgICAgQVNTRVJUKGdsb2JhbE9iamVjdCk7CisgICAgSlND
OjpWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgSlNDOjpDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSlNDOjpKSVRPcGVyYXRpb25Qcm9s
b2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisgICAgcmV0dXJuIERP
TUpJVDo6dG9XcmFwcGVyU2xvd0ltcGw8RG9jdW1lbnQ+KGdsb2JhbE9iamVjdCwgcmVzdWx0KTsK
K30KKworSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvSlNOb2RlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB2b2lkKiBy
ZXN1bHQpKQoreworICAgIEFTU0VSVChyZXN1bHQpOworICAgIEFTU0VSVChnbG9iYWxPYmplY3Qp
OworICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIEpTQzo6Q2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOworICAgIEpTQzo6SklUT3Bl
cmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworICAg
IHJldHVybiBET01KSVQ6OnRvV3JhcHBlclNsb3dJbXBsPE5vZGU+KGdsb2JhbE9iamVjdCwgcmVz
dWx0KTsKK30KKworSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvSlNDb250YWlu
ZXJOb2RlLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCB2b2lkKiByZXN1bHQpKQoreworICAgIEFTU0VSVChyZXN1bHQpOworICAgIEFTU0VS
VChnbG9iYWxPYmplY3QpOworICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwor
ICAgIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwor
ICAgIEpTQzo6SklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBj
YWxsRnJhbWUpOworICAgIHJldHVybiBET01KSVQ6OnRvV3JhcHBlclNsb3dJbXBsPENvbnRhaW5l
ck5vZGU+KGdsb2JhbE9iamVjdCwgcmVzdWx0KTsKK30KKworfQorCiB9CiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9taml0L0pTTm9kZURPTUpJVC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb21qaXQvSlNOb2RlRE9NSklULmNwcAppbmRleCAxNDljMDY0MzViOTNhZGI0NDM5
OGFkZmZhZTQ5ODdkNmNjM2YzOThiLi5iMWE0ODc0OWIyMzc3ODQ1MWIzZjY2ZDRhNzQ3ZjI5MmU3
MWI3ZTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb21qaXQvSlNOb2RlRE9NSklULmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb21qaXQvSlNOb2RlRE9NSklULmNwcApAQCAtNDcsOCAr
NDcsOCBAQCBSZWY8SlNDOjpTbmlwcGV0PiBjaGVja1N1YkNsYXNzU25pcHBldEZvckpTTm9kZSgp
CiAKIGVudW0gY2xhc3MgSXNDb250YWluZXJHdWFyZFJlcXVpcmVtZW50IHsgUmVxdWlyZWQsIE5v
dFJlcXVpcmVkIH07CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFdyYXBwZWROb2RlPgotc3RhdGljIFJl
ZjxKU0M6OkRPTUpJVDo6Q2FsbERPTUdldHRlclNuaXBwZXQ+IGNyZWF0ZUNhbGxET01HZXR0ZXJG
b3JPZmZzZXRBY2Nlc3MocHRyZGlmZl90IG9mZnNldCwgSXNDb250YWluZXJHdWFyZFJlcXVpcmVt
ZW50IGlzQ29udGFpbmVyR3VhcmRSZXF1aXJlbWVudCkKK3RlbXBsYXRlPHR5cGVuYW1lIFdyYXBw
ZWROb2RlLCB0eXBlbmFtZSBUb1dyYXBwZXJPcGVyYXRpb24+CitzdGF0aWMgUmVmPEpTQzo6RE9N
SklUOjpDYWxsRE9NR2V0dGVyU25pcHBldD4gY3JlYXRlQ2FsbERPTUdldHRlckZvck9mZnNldEFj
Y2VzcyhwdHJkaWZmX3Qgb2Zmc2V0LCBUb1dyYXBwZXJPcGVyYXRpb24gb3BlcmF0aW9uLCBJc0Nv
bnRhaW5lckd1YXJkUmVxdWlyZW1lbnQgaXNDb250YWluZXJHdWFyZFJlcXVpcmVtZW50KQogewog
ICAgIFJlZjxKU0M6OkRPTUpJVDo6Q2FsbERPTUdldHRlclNuaXBwZXQ+IHNuaXBwZXQgPSBKU0M6
OkRPTUpJVDo6Q2FsbERPTUdldHRlclNuaXBwZXQ6OmNyZWF0ZSgpOwogICAgIHNuaXBwZXQtPm51
bUdQU2NyYXRjaFJlZ2lzdGVycyA9IDE7CkBAIC02OSw3ICs2OSw3IEBAIHN0YXRpYyBSZWY8SlND
OjpET01KSVQ6OkNhbGxET01HZXR0ZXJTbmlwcGV0PiBjcmVhdGVDYWxsRE9NR2V0dGVyRm9yT2Zm
c2V0QWNjZXNzCiAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3Jh
dGNoLCBvZmZzZXQpLCBzY3JhdGNoKTsKICAgICAgICAgbnVsbENhc2VzLmFwcGVuZChqaXQuYnJh
bmNoVGVzdFB0cihDQ2FsbEhlbHBlcnM6Olplcm8sIHNjcmF0Y2gpKTsKIAotICAgICAgICBET01K
SVQ6OnRvV3JhcHBlcjxXcmFwcGVkTm9kZT4oaml0LCBwYXJhbXMsIHNjcmF0Y2gsIGdsb2JhbE9i
amVjdCwgcmVzdWx0LCBET01KSVQ6OnRvV3JhcHBlclNsb3c8V3JhcHBlZE5vZGU+LCBnbG9iYWxP
YmplY3RWYWx1ZSk7CisgICAgICAgIERPTUpJVDo6dG9XcmFwcGVyPFdyYXBwZWROb2RlPihqaXQs
IHBhcmFtcywgc2NyYXRjaCwgZ2xvYmFsT2JqZWN0LCByZXN1bHQsIG9wZXJhdGlvbiwgZ2xvYmFs
T2JqZWN0VmFsdWUpOwogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZG9uZSA9IGppdC5qdW1w
KCk7CiAKICAgICAgICAgbnVsbENhc2VzLmxpbmsoJmppdCk7CkBAIC04MiwzNSArODIsMzUgQEAg
c3RhdGljIFJlZjxKU0M6OkRPTUpJVDo6Q2FsbERPTUdldHRlclNuaXBwZXQ+IGNyZWF0ZUNhbGxE
T01HZXR0ZXJGb3JPZmZzZXRBY2Nlc3MKIAogUmVmPEpTQzo6RE9NSklUOjpDYWxsRE9NR2V0dGVy
U25pcHBldD4gY29tcGlsZU5vZGVGaXJzdENoaWxkQXR0cmlidXRlKCkKIHsKLSAgICBhdXRvIHNu
aXBwZXQgPSBjcmVhdGVDYWxsRE9NR2V0dGVyRm9yT2Zmc2V0QWNjZXNzPE5vZGU+KENBU1RfT0ZG
U0VUKE5vZGUqLCBDb250YWluZXJOb2RlKikgKyBDb250YWluZXJOb2RlOjpmaXJzdENoaWxkTWVt
b3J5T2Zmc2V0KCksIElzQ29udGFpbmVyR3VhcmRSZXF1aXJlbWVudDo6UmVxdWlyZWQpOworICAg
IGF1dG8gc25pcHBldCA9IGNyZWF0ZUNhbGxET01HZXR0ZXJGb3JPZmZzZXRBY2Nlc3M8Tm9kZT4o
Q0FTVF9PRkZTRVQoTm9kZSosIENvbnRhaW5lck5vZGUqKSArIENvbnRhaW5lck5vZGU6OmZpcnN0
Q2hpbGRNZW1vcnlPZmZzZXQoKSwgRE9NSklUOjpvcGVyYXRpb25Ub0pTTm9kZSwgSXNDb250YWlu
ZXJHdWFyZFJlcXVpcmVtZW50OjpSZXF1aXJlZCk7CiAgICAgc25pcHBldC0+ZWZmZWN0ID0gSlND
OjpET01KSVQ6OkVmZmVjdDo6Zm9yRGVmKERPTUpJVDo6QWJzdHJhY3RIZWFwUmVwb3NpdG9yeTo6
Tm9kZV9maXJzdENoaWxkKTsKICAgICByZXR1cm4gc25pcHBldDsKIH0KIAogUmVmPEpTQzo6RE9N
SklUOjpDYWxsRE9NR2V0dGVyU25pcHBldD4gY29tcGlsZU5vZGVMYXN0Q2hpbGRBdHRyaWJ1dGUo
KQogewotICAgIGF1dG8gc25pcHBldCA9IGNyZWF0ZUNhbGxET01HZXR0ZXJGb3JPZmZzZXRBY2Nl
c3M8Tm9kZT4oQ0FTVF9PRkZTRVQoTm9kZSosIENvbnRhaW5lck5vZGUqKSArIENvbnRhaW5lck5v
ZGU6Omxhc3RDaGlsZE1lbW9yeU9mZnNldCgpLCBJc0NvbnRhaW5lckd1YXJkUmVxdWlyZW1lbnQ6
OlJlcXVpcmVkKTsKKyAgICBhdXRvIHNuaXBwZXQgPSBjcmVhdGVDYWxsRE9NR2V0dGVyRm9yT2Zm
c2V0QWNjZXNzPE5vZGU+KENBU1RfT0ZGU0VUKE5vZGUqLCBDb250YWluZXJOb2RlKikgKyBDb250
YWluZXJOb2RlOjpsYXN0Q2hpbGRNZW1vcnlPZmZzZXQoKSwgRE9NSklUOjpvcGVyYXRpb25Ub0pT
Tm9kZSwgSXNDb250YWluZXJHdWFyZFJlcXVpcmVtZW50OjpSZXF1aXJlZCk7CiAgICAgc25pcHBl
dC0+ZWZmZWN0ID0gSlNDOjpET01KSVQ6OkVmZmVjdDo6Zm9yRGVmKERPTUpJVDo6QWJzdHJhY3RI
ZWFwUmVwb3NpdG9yeTo6Tm9kZV9sYXN0Q2hpbGQpOwogICAgIHJldHVybiBzbmlwcGV0OwogfQog
CiBSZWY8SlNDOjpET01KSVQ6OkNhbGxET01HZXR0ZXJTbmlwcGV0PiBjb21waWxlTm9kZU5leHRT
aWJsaW5nQXR0cmlidXRlKCkKIHsKLSAgICBhdXRvIHNuaXBwZXQgPSBjcmVhdGVDYWxsRE9NR2V0
dGVyRm9yT2Zmc2V0QWNjZXNzPE5vZGU+KE5vZGU6Om5leHRTaWJsaW5nTWVtb3J5T2Zmc2V0KCks
IElzQ29udGFpbmVyR3VhcmRSZXF1aXJlbWVudDo6Tm90UmVxdWlyZWQpOworICAgIGF1dG8gc25p
cHBldCA9IGNyZWF0ZUNhbGxET01HZXR0ZXJGb3JPZmZzZXRBY2Nlc3M8Tm9kZT4oTm9kZTo6bmV4
dFNpYmxpbmdNZW1vcnlPZmZzZXQoKSwgRE9NSklUOjpvcGVyYXRpb25Ub0pTTm9kZSwgSXNDb250
YWluZXJHdWFyZFJlcXVpcmVtZW50OjpOb3RSZXF1aXJlZCk7CiAgICAgc25pcHBldC0+ZWZmZWN0
ID0gSlNDOjpET01KSVQ6OkVmZmVjdDo6Zm9yRGVmKERPTUpJVDo6QWJzdHJhY3RIZWFwUmVwb3Np
dG9yeTo6Tm9kZV9uZXh0U2libGluZyk7CiAgICAgcmV0dXJuIHNuaXBwZXQ7CiB9CiAKIFJlZjxK
U0M6OkRPTUpJVDo6Q2FsbERPTUdldHRlclNuaXBwZXQ+IGNvbXBpbGVOb2RlUHJldmlvdXNTaWJs
aW5nQXR0cmlidXRlKCkKIHsKLSAgICBhdXRvIHNuaXBwZXQgPSBjcmVhdGVDYWxsRE9NR2V0dGVy
Rm9yT2Zmc2V0QWNjZXNzPE5vZGU+KE5vZGU6OnByZXZpb3VzU2libGluZ01lbW9yeU9mZnNldCgp
LCBJc0NvbnRhaW5lckd1YXJkUmVxdWlyZW1lbnQ6Ok5vdFJlcXVpcmVkKTsKKyAgICBhdXRvIHNu
aXBwZXQgPSBjcmVhdGVDYWxsRE9NR2V0dGVyRm9yT2Zmc2V0QWNjZXNzPE5vZGU+KE5vZGU6OnBy
ZXZpb3VzU2libGluZ01lbW9yeU9mZnNldCgpLCBET01KSVQ6Om9wZXJhdGlvblRvSlNOb2RlLCBJ
c0NvbnRhaW5lckd1YXJkUmVxdWlyZW1lbnQ6Ok5vdFJlcXVpcmVkKTsKICAgICBzbmlwcGV0LT5l
ZmZlY3QgPSBKU0M6OkRPTUpJVDo6RWZmZWN0Ojpmb3JEZWYoRE9NSklUOjpBYnN0cmFjdEhlYXBS
ZXBvc2l0b3J5OjpOb2RlX3ByZXZpb3VzU2libGluZyk7CiAgICAgcmV0dXJuIHNuaXBwZXQ7CiB9
CiAKIFJlZjxKU0M6OkRPTUpJVDo6Q2FsbERPTUdldHRlclNuaXBwZXQ+IGNvbXBpbGVOb2RlUGFy
ZW50Tm9kZUF0dHJpYnV0ZSgpCiB7Ci0gICAgYXV0byBzbmlwcGV0ID0gY3JlYXRlQ2FsbERPTUdl
dHRlckZvck9mZnNldEFjY2VzczxDb250YWluZXJOb2RlPihOb2RlOjpwYXJlbnROb2RlTWVtb3J5
T2Zmc2V0KCksIElzQ29udGFpbmVyR3VhcmRSZXF1aXJlbWVudDo6Tm90UmVxdWlyZWQpOworICAg
IGF1dG8gc25pcHBldCA9IGNyZWF0ZUNhbGxET01HZXR0ZXJGb3JPZmZzZXRBY2Nlc3M8Q29udGFp
bmVyTm9kZT4oTm9kZTo6cGFyZW50Tm9kZU1lbW9yeU9mZnNldCgpLCBET01KSVQ6Om9wZXJhdGlv
blRvSlNDb250YWluZXJOb2RlLCBJc0NvbnRhaW5lckd1YXJkUmVxdWlyZW1lbnQ6Ok5vdFJlcXVp
cmVkKTsKICAgICBzbmlwcGV0LT5lZmZlY3QgPSBKU0M6OkRPTUpJVDo6RWZmZWN0Ojpmb3JEZWYo
RE9NSklUOjpBYnN0cmFjdEhlYXBSZXBvc2l0b3J5OjpOb2RlX3BhcmVudE5vZGUpOwogICAgIHJl
dHVybiBzbmlwcGV0OwogfQpAQCAtMTUxLDcgKzE1MSw3IEBAIFJlZjxKU0M6OkRPTUpJVDo6Q2Fs
bERPTUdldHRlclNuaXBwZXQ+IGNvbXBpbGVOb2RlT3duZXJEb2N1bWVudEF0dHJpYnV0ZSgpCiAg
ICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgbnVsbENhc2VzOwogICAgICAgICAvLyBJZiB0
aGUgfHRoaXN8IGlzIHRoZSBkb2N1bWVudCBpdHNlbGYsIG93bmVyRG9jdW1lbnQgd2lsbCByZXR1
cm4gbnVsbC4KICAgICAgICAgbnVsbENhc2VzLmFwcGVuZChqaXQuYnJhbmNoUHRyKENDYWxsSGVs
cGVyczo6RXF1YWwsIHdyYXBwZWQsIGRvY3VtZW50KSk7Ci0gICAgICAgIERPTUpJVDo6dG9XcmFw
cGVyPERvY3VtZW50PihqaXQsIHBhcmFtcywgZG9jdW1lbnQsIGdsb2JhbE9iamVjdCwgcmVzdWx0
LCBET01KSVQ6OnRvV3JhcHBlclNsb3c8RG9jdW1lbnQ+LCBnbG9iYWxPYmplY3RWYWx1ZSk7Cisg
ICAgICAgIERPTUpJVDo6dG9XcmFwcGVyPERvY3VtZW50PihqaXQsIHBhcmFtcywgZG9jdW1lbnQs
IGdsb2JhbE9iamVjdCwgcmVzdWx0LCBET01KSVQ6Om9wZXJhdGlvblRvSlNEb2N1bWVudCwgZ2xv
YmFsT2JqZWN0VmFsdWUpOwogICAgICAgICBhdXRvIGRvbmUgPSBqaXQuanVtcCgpOwogCiAgICAg
ICAgIG51bGxDYXNlcy5saW5rKCZqaXQpOwo=
</data>
<flag name="review"
          id="425760"
          type_id="1"
          status="+"
          setter="keith_miller"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409957</attachid>
            <date>2020-09-28 19:56:00 -0700</date>
            <delta_ts>2020-09-28 19:56:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217071-20200928195559.patch</filename>
            <type>text/plain</type>
            <size>1186844</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
MDc4ZWRmNzEyZmRkMzdjZmVlM2JmODE4OTZmNTExZmY1N2I1MjYyLi4wYjgzZGRhNWQ4ZmJiODRh
MjNhMzQwZmYxYWUyZGJmMWY4YTVmZTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMC0wOS0yOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFVzZSBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OIC8gSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUiAvIEpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzA3MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyBob3cg
dG8gZGVmaW5lIEpJVF9PUEVSQVRJT05zIGluY2x1ZGluZyBjdXN0b20gZ2V0dGVycyBhbmQgc2V0
dGVycy4KKyAgICAgICAgV2UgaW50cm9kdWNlIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04gZXRj
LiB0byBkZWNsYXJlIGFuZCBkZWZpbmUgdGhlbS4gVGhpcyBpcyB1c2VmdWwKKyAgICAgICAgdG8g
cGVyZm9ybSBzb21lIGFkZGl0aW9uYWwgdGhpbmdzIChsaWtlLCBKSVQtY2FnaW5nIHJlZ2lzdGVy
aW5nKSBmb3IgZWFjaCBmdW5jdGlvbi4KKwogMjAyMC0wOS0yNiAgWXVzdWtlIFN1enVraSAgPHlz
dXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZvbGxvdy11cCBhZnRlciBy
MjY3MzczIHRvIHJlc29sdmUgcG9zdC1jb21taXQgcmV2aWV3IGNvbW1lbnRzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGYyNjAx
MmZhZmUwNGM2YzM5ZDVjMjljOWY4MWZmNDNiZTNhMDdhM2IuLjljNWUwMjAwNjJiYzMxZGU2OGRi
ZWY0YmRlMTJlMjgzMTAwYjJjNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjAtMDktMjggIFl1
c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTiAvIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIgLyBKU0NfREVDTEFS
RV9DVVNUT01fU0VUVEVSCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTcwNzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgdGhlIGZvbGxvd2luZyBtYWNyb3MuCisKKyAgICAgICAgICAgIDEuIEpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04KKyAgICAgICAgICAgIDIuIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTgorICAgICAgICAgICAgMy4gSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUgorICAgICAgICAg
ICAgNC4gSlNDX0RFRklORV9DVVNUT01fR0VUVEVSCisgICAgICAgICAgICA1LiBKU0NfREVDTEFS
RV9DVVNUT01fU0VUVEVSCisgICAgICAgICAgICA2LiBKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIK
KworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUNhbGxpbmdDb252ZW50aW9ucy5oOgorCiAyMDIwLTA5
LTI4ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBbUHJlZmVyZW5j
ZXNdIE1vdmUgR2VuZXJhdGVQcmVmZXJlbmNlcy5yYiBhbmQgeWFtbCBjb25maWd1cmF0aW9uIGZp
bGVzIHRvIFdURiB0byBiZSBzaGFyZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmZmNjNDIyYmM5N2JlMDEwMDQx
NGUzYjgzZGViZWRkMGIxNTYwY2YzLi5mZmM2ZjNiYWU2MjY3MzNmMWMwZGQ4MDI1MjcxODM2Zjk4
YWFmMjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDktMjggIFl1c3VrZSBT
dXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTiAvIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIgLyBKU0NfREVDTEFSRV9DVVNU
T01fU0VUVEVSCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTcwNzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBObyBiZWhhdmlvciBjaGFuZ2UuCisKIDIwMjAtMDktMjggIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIE91dC1vZi1iYW5kIFRleHRUcmFj
a3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElXcmFwcGVyT2Jq
ZWN0Lm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmplY3QubW0K
aW5kZXggMzg4MWVmNmQ0ZTdlMWRkYWQwYWY5ZWFjYWYwNzAxMTYxMjA2NTQ0NS4uZmRlODFlYzll
ZmU1ZGQyY2M0MWUwYmE4ZjBiMGUyYjA5NmExMzJhZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmplY3QubW0KKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmplY3QubW0KQEAgLTcwLDYgKzcwLDggQEAgbmFtZXNw
YWNlIEpTQyB7CiAKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxKU0FQSVdy
YXBwZXJPYmplY3RDYWxsYmFja09iamVjdCk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihjb25zdHJ1Y3RKU0FQSVdyYXBwZXJPYmplY3RDYWxsYmFja09iamVjdCk7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihjYWxsYmFja0dldHRlckpTQVBJV3JhcHBlck9iamVj
dENhbGxiYWNrT2JqZWN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHN0YXRp
Y0Z1bmN0aW9uR2V0dGVySlNBUElXcmFwcGVyT2JqZWN0Q2FsbGJhY2tPYmplY3QpOwogCiB0ZW1w
bGF0ZSA8PiBjb25zdCBDbGFzc0luZm8gSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmpl
Y3Q+OjpzX2luZm8gPSB7ICJKU0FQSVdyYXBwZXJPYmplY3QiLCAmQmFzZTo6c19pbmZvLCBudWxs
cHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTQ2FsbGJhY2tPYmplY3QpIH07CiB0
ZW1wbGF0ZSA8PiBjb25zdCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0
Pjo6bmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CkBAIC04Niw2ICs4OCwxOCBAQCBSYXdOYXRpdmVG
dW5jdGlvbiBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OmdldENvbnN0cnVj
dEZ1bmN0aW9uKCkKICAgICByZXR1cm4gY29uc3RydWN0SlNBUElXcmFwcGVyT2JqZWN0Q2FsbGJh
Y2tPYmplY3Q7CiB9CiAKK3RlbXBsYXRlIDw+CitQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyBK
U0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OmdldENhbGxiYWNrR2V0dGVyKCkK
K3sKKyAgICByZXR1cm4gY2FsbGJhY2tHZXR0ZXJKU0FQSVdyYXBwZXJPYmplY3RDYWxsYmFja09i
amVjdDsKK30KKwordGVtcGxhdGUgPD4KK1Byb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jIEpTQ2Fs
bGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pjo6Z2V0U3RhdGljRnVuY3Rpb25HZXR0ZXIo
KQoreworICAgIHJldHVybiBzdGF0aWNGdW5jdGlvbkdldHRlckpTQVBJV3JhcHBlck9iamVjdENh
bGxiYWNrT2JqZWN0OworfQorCiB0ZW1wbGF0ZSA8PgogU3RydWN0dXJlKiBKU0NhbGxiYWNrT2Jq
ZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG8pCiB7CkBAIC0xNDIsNiArMTU2LDE2
IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU0FQSVdyYXBwZXJPYmplY3RD
YWxsYmFja09iamVjdCwgKEpTR2xvYmFsT2JqCiAgICAgcmV0dXJuIEpTQ2FsbGJhY2tPYmplY3Q8
SlNBUElXcmFwcGVyT2JqZWN0Pjo6Y29uc3RydWN0SW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFt
ZSk7CiB9CiAKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihjYWxsYmFja0dldHRlckpTQVBJV3Jh
cHBlck9iamVjdENhbGxiYWNrT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKK3sK
KyAgICByZXR1cm4gSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+OjpjYWxsYmFj
a0dldHRlckltcGwoZ2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIHByb3BlcnR5TmFtZSk7Cit9CisK
K0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihzdGF0aWNGdW5jdGlvbkdldHRlckpTQVBJV3JhcHBl
ck9iamVjdENhbGxiYWNrT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKK3sKKyAg
ICByZXR1cm4gSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+OjpzdGF0aWNGdW5j
dGlvbkdldHRlckltcGwoZ2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIHByb3BlcnR5TmFtZSk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gSlNDX09CSkNfQVBJX0VOQUJMRUQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuY3BwCmluZGV4
IGZiNDZhNTU5YjMwOTMxMTAyYzRiYjgwYmYxYWFhYmI1YzFjNDI5Y2QuLjI2NjVkMTE1NjQ2ZmMz
YjYwNTRlMDVkNmZmNWQ5NTMwZTI4MWRjYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0NhbGxiYWNrT2JqZWN0LmNwcApAQCAtMzYsNiArMzYsMTEgQEAgc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNOb25GaW5hbE9iamVjdENhbGxiYWNrT2Jq
ZWN0KTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxKU0dsb2JhbE9iamVj
dENhbGxiYWNrT2JqZWN0KTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0
cnVjdEpTR2xvYmFsT2JqZWN0Q2FsbGJhY2tPYmplY3QpOwogCitzdGF0aWMgSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihjYWxsYmFja0dldHRlckpTTm9uRmluYWxPYmplY3RDYWxsYmFja09iamVj
dCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihzdGF0aWNGdW5jdGlvbkdldHRl
ckpTTm9uRmluYWxPYmplY3RDYWxsYmFja09iamVjdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihjYWxsYmFja0dldHRlckpTR2xvYmFsT2JqZWN0Q2FsbGJhY2tPYmplY3QpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoc3RhdGljRnVuY3Rpb25HZXR0ZXJKU0ds
b2JhbE9iamVjdENhbGxiYWNrT2JqZWN0KTsKKwogLy8gRGVmaW5lIHRoZSB0d28gdHlwZXMgb2Yg
SlNDYWxsYmFja09iamVjdHMgd2Ugc3VwcG9ydC4KIHRlbXBsYXRlIDw+IGNvbnN0IENsYXNzSW5m
byBKU0NhbGxiYWNrT2JqZWN0PEpTTm9uRmluYWxPYmplY3Q+OjpzX2luZm8gPSB7ICJDYWxsYmFj
a09iamVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoSlNDYWxsYmFja09iamVjdCkgfTsKIHRlbXBsYXRlIDw+IGNvbnN0IENsYXNzSW5mbyBK
U0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6c19pbmZvID0geyAiQ2FsbGJhY2tHbG9i
YWxPYmplY3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEpTQ2FsbGJhY2tPYmplY3QpIH07CkBAIC01NCw2ICs1OSwxOSBAQCBSYXdOYXRpdmVG
dW5jdGlvbiBKU0NhbGxiYWNrT2JqZWN0PEpTTm9uRmluYWxPYmplY3Q+OjpnZXRDb25zdHJ1Y3RG
dW5jdGlvbigpCiAgICAgcmV0dXJuIGNvbnN0cnVjdEpTTm9uRmluYWxPYmplY3RDYWxsYmFja09i
amVjdDsKIH0KIAordGVtcGxhdGUgPD4KK1Byb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jIEpTQ2Fs
bGJhY2tPYmplY3Q8SlNOb25GaW5hbE9iamVjdD46OmdldENhbGxiYWNrR2V0dGVyKCkKK3sKKyAg
ICByZXR1cm4gY2FsbGJhY2tHZXR0ZXJKU05vbkZpbmFsT2JqZWN0Q2FsbGJhY2tPYmplY3Q7Cit9
CisKK3RlbXBsYXRlIDw+CitQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyBKU0NhbGxiYWNrT2Jq
ZWN0PEpTTm9uRmluYWxPYmplY3Q+OjpnZXRTdGF0aWNGdW5jdGlvbkdldHRlcigpCit7CisgICAg
cmV0dXJuIHN0YXRpY0Z1bmN0aW9uR2V0dGVySlNOb25GaW5hbE9iamVjdENhbGxiYWNrT2JqZWN0
OworfQorCisKIHRlbXBsYXRlPD4KIFJhd05hdGl2ZUZ1bmN0aW9uIEpTQ2FsbGJhY2tPYmplY3Q8
SlNHbG9iYWxPYmplY3Q+OjpnZXRDYWxsRnVuY3Rpb24oKQogewpAQCAtNjYsNiArODQsMTggQEAg
UmF3TmF0aXZlRnVuY3Rpb24gSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD46OmdldENv
bnN0cnVjdEZ1bmN0aW9uKCkKICAgICByZXR1cm4gY29uc3RydWN0SlNHbG9iYWxPYmplY3RDYWxs
YmFja09iamVjdDsKIH0KIAordGVtcGxhdGUgPD4KK1Byb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
IEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+OjpnZXRDYWxsYmFja0dldHRlcigpCit7
CisgICAgcmV0dXJuIGNhbGxiYWNrR2V0dGVySlNHbG9iYWxPYmplY3RDYWxsYmFja09iamVjdDsK
K30KKwordGVtcGxhdGUgPD4KK1Byb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jIEpTQ2FsbGJhY2tP
YmplY3Q8SlNHbG9iYWxPYmplY3Q+OjpnZXRTdGF0aWNGdW5jdGlvbkdldHRlcigpCit7CisgICAg
cmV0dXJuIHN0YXRpY0Z1bmN0aW9uR2V0dGVySlNHbG9iYWxPYmplY3RDYWxsYmFja09iamVjdDsK
K30KKwogdGVtcGxhdGU8PgogSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD4qIEpTQ2Fs
bGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+OjpjcmVhdGUoVk0mIHZtLCBKU0NsYXNzUmVmIGNs
YXNzUmVmLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsKQEAgLTEzMiw0ICsxNjIsMjQgQEAgSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTR2xvYmFsT2JqZWN0Q2FsbGJhY2tPYmpl
Y3QsIChKU0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gSlNDYWxsYmFja09iamVjdDxKU0dsb2Jh
bE9iamVjdD46OmNvbnN0cnVjdEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQogCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoY2FsbGJhY2tHZXR0ZXJKU05vbkZpbmFsT2JqZWN0Q2Fs
bGJhY2tPYmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQoreworICAgIHJldHVybiBK
U0NhbGxiYWNrT2JqZWN0PEpTTm9uRmluYWxPYmplY3Q+OjpjYWxsYmFja0dldHRlckltcGwoZ2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIHByb3BlcnR5TmFtZSk7Cit9CisKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihzdGF0aWNGdW5jdGlvbkdldHRlckpTTm9uRmluYWxPYmplY3RDYWxsYmFja09i
amVjdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkpCit7CisgICAgcmV0dXJuIEpTQ2FsbGJh
Y2tPYmplY3Q8SlNOb25GaW5hbE9iamVjdD46OnN0YXRpY0Z1bmN0aW9uR2V0dGVySW1wbChnbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgcHJvcGVydHlOYW1lKTsKK30KKworSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGNhbGxiYWNrR2V0dGVySlNHbG9iYWxPYmplY3RDYWxsYmFja09iamVjdCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lIHByb3BlcnR5TmFtZSkpCit7CisgICAgcmV0dXJuIEpTQ2FsbGJhY2tPYmplY3Q8
SlNHbG9iYWxPYmplY3Q+OjpjYWxsYmFja0dldHRlckltcGwoZ2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIHByb3BlcnR5TmFtZSk7Cit9CisKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihzdGF0aWNG
dW5jdGlvbkdldHRlckpTR2xvYmFsT2JqZWN0Q2FsbGJhY2tPYmplY3QsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBw
cm9wZXJ0eU5hbWUpKQoreworICAgIHJldHVybiBKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2Jq
ZWN0Pjo6c3RhdGljRnVuY3Rpb25HZXR0ZXJJbXBsKGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBw
cm9wZXJ0eU5hbWUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggNzc5NzNkYTQ0OTMzODE3N2NiMDYx
MjAxZmZjNmUyOWU0NDQyY2NiZi4uNjc5NjNjZjExZDUwOGUyMWJhYzYzOWE1MjIwNWM5NjZmOTQx
MGYwYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2Jq
ZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgK
QEAgLTE4NCw2ICsxODQsOCBAQCBjbGFzcyBKU0NhbGxiYWNrT2JqZWN0IGZpbmFsIDogcHVibGlj
IFBhcmVudCB7CiAKICAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY2FsbEltcGwoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKICAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY29uc3RydWN0
SW1wbChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworICAgIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBzdGF0aWNGdW5jdGlvbkdldHRlckltcGwoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNW
YWx1ZSwgUHJvcGVydHlOYW1lKTsKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY2FsbGJhY2tH
ZXR0ZXJJbXBsKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7
CiAgICAKIHByaXZhdGU6CiAgICAgSlNDYWxsYmFja09iamVjdChKU0dsb2JhbE9iamVjdCosIFN0
cnVjdHVyZSosIEpTQ2xhc3NSZWYsIHZvaWQqIGRhdGEpOwpAQCAtMjMxLDEwICsyMzMsMTMgQEAg
Y2xhc3MgSlNDYWxsYmFja09iamVjdCBmaW5hbCA6IHB1YmxpYyBQYXJlbnQgewogCiAgICAgc3Rh
dGljIFJhd05hdGl2ZUZ1bmN0aW9uIGdldENhbGxGdW5jdGlvbigpOwogICAgIHN0YXRpYyBSYXdO
YXRpdmVGdW5jdGlvbiBnZXRDb25zdHJ1Y3RGdW5jdGlvbigpOworCisgICAgdXNpbmcgR2V0VmFs
dWVGdW5jID0gRW5jb2RlZEpTVmFsdWUoSklUX09QRVJBVElPTl9BVFRSSUJVVEUqKShKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworCisgICAgc3RhdGljIEdl
dFZhbHVlRnVuYyBnZXRTdGF0aWNGdW5jdGlvbkdldHRlcigpOworICAgIHN0YXRpYyBHZXRWYWx1
ZUZ1bmMgZ2V0Q2FsbGJhY2tHZXR0ZXIoKTsKICAKICAgICBKU1ZhbHVlIGdldFN0YXRpY1ZhbHVl
KEpTR2xvYmFsT2JqZWN0KiwgUHJvcGVydHlOYW1lKTsKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgc3RhdGljRnVuY3Rpb25HZXR0ZXIoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwg
UHJvcGVydHlOYW1lKTsKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY2FsbGJhY2tHZXR0ZXIo
SlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxKU0NhbGxiYWNrT2JqZWN0RGF0YT4gbV9jYWxsYmFja09iamVjdERhdGE7
CiAgICAgY29uc3QgQ2xhc3NJbmZvKiBtX2NsYXNzSW5mbyB7IG51bGxwdHIgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgK
aW5kZXggMmUzNGRmODIxMzFhYWM1ZmE4YTMwMGI2MjZkYzA0M2JhM2U2YmRlMC4uZTRiMTMwNGQw
YmJlZDY0MzY5ZTczYTk4MDczYzQwMDBiNTc0MjQyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKQEAgLTE2OSw3ICsx
NjksNyBAQCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvcGVydHlTbG90
KEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2JqZQogICAgICAgICAgICAgICAgICAgICBwcm9w
ZXJ0eU5hbWVSZWYgPSBPcGFxdWVKU1N0cmluZzo6dHJ5Q3JlYXRlKG5hbWUpOwogICAgICAgICAg
ICAgICAgIEpTTG9jazo6RHJvcEFsbExvY2tzIGRyb3BBbGxMb2NrcyhnbG9iYWxPYmplY3QpOwog
ICAgICAgICAgICAgICAgIGlmIChoYXNQcm9wZXJ0eShjdHgsIHRoaXNSZWYsIHByb3BlcnR5TmFt
ZVJlZi5nZXQoKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09i
amVjdCwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtLCBjYWxsYmFja0dldHRlcik7CisgICAgICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3Vz
dG9tKHRoaXNPYmplY3QsIFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSwgZ2V0Q2FsbGJhY2tHZXR0ZXIoKSk7CiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSBp
ZiAoSlNPYmplY3RHZXRQcm9wZXJ0eUNhbGxiYWNrIGdldFByb3BlcnR5ID0ganNDbGFzcy0+Z2V0
UHJvcGVydHkpIHsKQEAgLTIwNSw3ICsyMDUsNyBAQCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFy
ZW50Pjo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2JqZQog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoT3BhcXVlSlNDbGFzc1N0YXRpY0Z1bmN0aW9u
c1RhYmxlKiBzdGF0aWNGdW5jdGlvbnMgPSBqc0NsYXNzLT5zdGF0aWNGdW5jdGlvbnMoZ2xvYmFs
T2JqZWN0KSkgewogICAgICAgICAgICAgICAgIGlmIChzdGF0aWNGdW5jdGlvbnMtPmNvbnRhaW5z
KG5hbWUpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3Qs
IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSwgc3RhdGljRnVuY3Rpb25HZXR0ZXIpOworICAgICAgICAgICAgICAgICAgICBzbG90LnNldEN1
c3RvbSh0aGlzT2JqZWN0LCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0sIGdldFN0YXRpY0Z1bmN0aW9uR2V0dGVyKCkpOwogICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9
CkBAIC02NjQsNyArNjY0LDcgQEAgSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46Omdl
dFN0YXRpY1ZhbHVlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFAKIH0KIAogdGVtcGxh
dGUgPGNsYXNzIFBhcmVudD4KLUVuY29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50
Pjo6c3RhdGljRnVuY3Rpb25HZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpzdGF0aWNGdW5jdGlvbkdldHRlcklt
cGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IGdldFZNKGdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
Njk3LDcgKzY5Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6
c3RhdGljRnVuY3Rpb25HZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsCiB9CiAKIHRlbXBsYXRlIDxj
bGFzcyBQYXJlbnQ+Ci1FbmNvZGVkSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OmNh
bGxiYWNrR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpT
Q2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Y2FsbGJhY2tHZXR0ZXJJbXBsKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHBy
b3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBnZXRWTShnbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0FQSVdyYXBwZXJHbG9iYWxPYmplY3QuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQVBJV3JhcHBlckdsb2JhbE9iamVjdC5jcHAK
aW5kZXggODI5MDBmNDMxZTRjMzAyMWY2NmJlMThmOWQ2YzM4MjNhZjMxNDRlYy4uZTdmNGU0NTM4
M2E2MDQ2YzZjYzE0YTJlZTEwYmE4YmJmMjU2NjM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9nbGliL0pTQVBJV3JhcHBlckdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQVBJV3JhcHBlckdsb2JhbE9iamVjdC5jcHAK
QEAgLTU2LDYgKzU2LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAKIHN0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGNhbGxKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3RDYWxsYmFja09iamVjdCk7
CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU0FQSVdyYXBwZXJH
bG9iYWxPYmplY3RDYWxsYmFja09iamVjdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihjYWxsYmFja0dldHRlckpTQVBJV3JhcHBlckdsb2JhbE9iamVjdENhbGxiYWNrT2JqZWN0
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHN0YXRpY0Z1bmN0aW9uR2V0dGVy
SlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0Q2FsbGJhY2tPYmplY3QpOwogCiB0ZW1wbGF0ZSA8PiBj
b25zdCBDbGFzc0luZm8gSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3Q+
OjpzX2luZm8gPSB7ICJKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3QiLCAmQmFzZTo6c19pbmZvLCBu
dWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTQ2FsbGJhY2tPYmplY3QpIH07
CiB0ZW1wbGF0ZTw+IGNvbnN0IGJvb2wgSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJHbG9i
YWxPYmplY3Q+OjpuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKQEAgLTcyLDYgKzc0LDE4IEBAIFJh
d05hdGl2ZUZ1bmN0aW9uIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0
Pjo6Z2V0Q29uc3RydWN0RnVuY3RpCiAgICAgcmV0dXJuIGNvbnN0cnVjdEpTQVBJV3JhcHBlckds
b2JhbE9iamVjdENhbGxiYWNrT2JqZWN0OwogfQogCit0ZW1wbGF0ZSA8PgorUHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmMgSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3Q+
OjpnZXRDYWxsYmFja0dldHRlcigpCit7CisgICAgcmV0dXJuIGNhbGxiYWNrR2V0dGVySlNBUElX
cmFwcGVyR2xvYmFsT2JqZWN0Q2FsbGJhY2tPYmplY3Q7Cit9CisKK3RlbXBsYXRlIDw+CitQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlckdsb2Jh
bE9iamVjdD46OmdldFN0YXRpY0Z1bmN0aW9uR2V0dGVyKCkKK3sKKyAgICByZXR1cm4gc3RhdGlj
RnVuY3Rpb25HZXR0ZXJKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3RDYWxsYmFja09iamVjdDsKK30K
KwogdGVtcGxhdGUgPD4KIElzb1N1YnNwYWNlKiBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBl
ckdsb2JhbE9iamVjdD46OnN1YnNwYWNlRm9ySW1wbChWTSYgdm0sIFN1YnNwYWNlQWNjZXNzIG1v
ZGUpCiB7CkBAIC0xMDksNiArMTIzLDE2IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25z
dHJ1Y3RKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3RDYWxsYmFja09iamVjdCwgKEpTR2xvCiAgICAg
cmV0dXJuIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0Pjo6Y29uc3Ry
dWN0SW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7CiB9CiAKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihjYWxsYmFja0dldHRlckpTQVBJV3JhcHBlckdsb2JhbE9iamVjdENhbGxiYWNrT2Jq
ZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKK3sKKyAgICByZXR1cm4gSlNDYWxsYmFj
a09iamVjdDxKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3Q+OjpjYWxsYmFja0dldHRlckltcGwoZ2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIHByb3BlcnR5TmFtZSk7Cit9CisKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihzdGF0aWNGdW5jdGlvbkdldHRlckpTQVBJV3JhcHBlckdsb2JhbE9iamVjdENh
bGxiYWNrT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKK3sKKyAgICByZXR1cm4g
SlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3Q+OjpzdGF0aWNGdW5jdGlv
bkdldHRlckltcGwoZ2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIHByb3BlcnR5TmFtZSk7Cit9CisK
IEpTQVBJV3JhcHBlckdsb2JhbE9iamVjdDo6SlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0KFZNJiB2
bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNBUElXcmFwcGVyT2Jq
ZWN0R0xpYi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNBUElXcmFwcGVy
T2JqZWN0R0xpYi5jcHAKaW5kZXggNTJlNjA2MDgxYmY3YTg5NTZhMTc5M2Y0ZDZlNmM1OGMzZmJh
OWY1OC4uNmM0NjZkNTNjMDJiODhiZDRiODEyNDgxODlmZGVjMTkwNzNjNGY3NyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQVBJV3JhcHBlck9iamVjdEdMaWIu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0FQSVdyYXBwZXJPYmpl
Y3RHTGliLmNwcApAQCAtNjksNiArNjksOCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEpTQVBJV3JhcHBlck9iamVjdENhbGxiYWNrT2Jq
ZWN0KTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTQVBJV3Jh
cHBlck9iamVjdENhbGxiYWNrT2JqZWN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGNhbGxiYWNrR2V0dGVySlNBUElXcmFwcGVyT2JqZWN0Q2FsbGJhY2tPYmplY3QpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoc3RhdGljRnVuY3Rpb25HZXR0ZXJKU0FQSVdy
YXBwZXJPYmplY3RDYWxsYmFja09iamVjdCk7CiAKIHRlbXBsYXRlIDw+IGNvbnN0IENsYXNzSW5m
byBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OnNfaW5mbyA9IHsgIkpTQVBJ
V3JhcHBlck9iamVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9N
RVRIT0RfVEFCTEUoSlNDYWxsYmFja09iamVjdCkgfTsKIHRlbXBsYXRlPD4gY29uc3QgYm9vbCBK
U0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46Om5lZWRzRGVzdHJ1Y3Rpb24gPSB0
cnVlOwpAQCAtODUsNiArODcsMTggQEAgUmF3TmF0aXZlRnVuY3Rpb24gSlNDYWxsYmFja09iamVj
dDxKU0FQSVdyYXBwZXJPYmplY3Q+OjpnZXRDb25zdHJ1Y3RGdW5jdGlvbigpCiAgICAgcmV0dXJu
IGNvbnN0cnVjdEpTQVBJV3JhcHBlck9iamVjdENhbGxiYWNrT2JqZWN0OwogfQogCit0ZW1wbGF0
ZSA8PgorUHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmMgSlNDYWxsYmFja09iamVjdDxKU0FQSVdy
YXBwZXJPYmplY3Q+OjpnZXRDYWxsYmFja0dldHRlcigpCit7CisgICAgcmV0dXJuIGNhbGxiYWNr
R2V0dGVySlNBUElXcmFwcGVyT2JqZWN0Q2FsbGJhY2tPYmplY3Q7Cit9CisKK3RlbXBsYXRlIDw+
CitQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBl
ck9iamVjdD46OmdldFN0YXRpY0Z1bmN0aW9uR2V0dGVyKCkKK3sKKyAgICByZXR1cm4gc3RhdGlj
RnVuY3Rpb25HZXR0ZXJKU0FQSVdyYXBwZXJPYmplY3RDYWxsYmFja09iamVjdDsKK30KKwogdGVt
cGxhdGUgPD4KIElzb1N1YnNwYWNlKiBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVj
dD46OnN1YnNwYWNlRm9ySW1wbChWTSYgdm0sIFN1YnNwYWNlQWNjZXNzIG1vZGUpCiB7CkBAIC0x
MTQsNiArMTI4LDE2IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU0FQSVdy
YXBwZXJPYmplY3RDYWxsYmFja09iamVjdCwgKEpTR2xvYmFsT2JqCiAgICAgcmV0dXJuIEpTQ2Fs
bGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pjo6Y29uc3RydWN0SW1wbChnbG9iYWxPYmpl
Y3QsIGNhbGxGcmFtZSk7CiB9CiAKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihjYWxsYmFja0dl
dHRlckpTQVBJV3JhcHBlck9iamVjdENhbGxiYWNrT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVy
dHlOYW1lKSkKK3sKKyAgICByZXR1cm4gSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmpl
Y3Q+OjpjYWxsYmFja0dldHRlckltcGwoZ2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIHByb3BlcnR5
TmFtZSk7Cit9CisKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihzdGF0aWNGdW5jdGlvbkdldHRl
ckpTQVBJV3JhcHBlck9iamVjdENhbGxiYWNrT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlO
YW1lKSkKK3sKKyAgICByZXR1cm4gSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+
OjpzdGF0aWNGdW5jdGlvbkdldHRlckltcGwoZ2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIHByb3Bl
cnR5TmFtZSk7Cit9CisKIEpTQVBJV3JhcHBlck9iamVjdDo6SlNBUElXcmFwcGVyT2JqZWN0KFZN
JiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcAppbmRleCBiM2JlMmRjMWNk
NTc1MmUyYmJmMmIxNTY0YmI3OGJlOTIxOTg5YjY5Li5kMzY5NGQ3ZDFjZTI3NzU0ODQ5ZTE2OWM3
YzNkNWE4MDMxNjU1OGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09TUkV4aXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5j
cHAKQEAgLTE0MCw3ICsxNDAsNyBAQCB2b2lkIE9TUkV4aXQ6OmVtaXRSZXN0b3JlQXJndW1lbnRz
KENDYWxsSGVscGVycyYgaml0LCBWTSYgdm0sIGNvbnN0IE9wZXJhbmRzPFZhbAogICAgIH0KIH0K
IAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBpbGVPU1JFeGl0KENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBpbGVPU1JF
eGl0LCB2b2lkLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGNhbGxG
cmFtZS0+ZGVwcmVjYXRlZFZNKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtODc4LDcgKzg3OCw3IEBAIHZvaWQgT1NSRXhpdDo6Y29tcGlsZUV4aXQoQ0Nh
bGxIZWxwZXJzJiBqaXQsIFZNJiB2bSwgY29uc3QgT1NSRXhpdCYgZXhpdCwgY29uc3QKICAgICBh
ZGp1c3RBbmRKdW1wVG9UYXJnZXQodm0sIGppdCwgZXhpdCk7CiB9CiAKLXZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25EZWJ1Z1ByaW50U3BlY3VsYXRpb25GYWlsdXJlKENhbGxGcmFtZSogY2Fs
bEZyYW1lLCB2b2lkKiBkZWJ1Z0luZm9SYXcsIHZvaWQqIHNjcmF0Y2gpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uRGVidWdQcmludFNwZWN1bGF0aW9uRmFpbHVyZSwgdm9pZCwg
KENhbGxGcmFtZSogY2FsbEZyYW1lLCB2b2lkKiBkZWJ1Z0luZm9SYXcsIHZvaWQqIHNjcmF0Y2gp
KQogewogICAgIFZNJiB2bSA9IGNhbGxGcmFtZS0+ZGVwcmVjYXRlZFZNKCk7CiAgICAgTmF0aXZl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPU1JFeGl0LmgKaW5kZXggOWU5YmNlYTQ4MWMxZDY4Nzc5NzJmMjU5ZDYyYzFhMjMw
MGIyYjE2MS4uZTcxNDBhMDdjY2Y5OGQ5NzBlNWNmZmRhNWVmYjUxNDE4YWQ2MGZkMyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmgKQEAgLTEzOCw4ICsxMzgsOCBAQCBzdHJ1
Y3QgT1NSRXhpdFN0YXRlIDogUmVmQ291bnRlZDxPU1JFeGl0U3RhdGU+IHsKICAgICBQcm9maWxl
cjo6T1NSRXhpdCogcHJvZmlsZXJFeGl0IHsgbnVsbHB0ciB9OwogfTsKIAotdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkNvbXBpbGVPU1JFeGl0KENhbGxGcmFtZSopIFdURl9JTlRFUk5BTDsK
LXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWJ1Z1ByaW50U3BlY3VsYXRpb25GYWlsdXJl
KENhbGxGcmFtZSosIHZvaWQqLCB2b2lkKikgV1RGX0lOVEVSTkFMOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25Db21waWxlT1NSRXhpdCwgdm9pZCwgKENhbGxGcmFtZSopKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVidWdQcmludFNwZWN1bGF0aW9u
RmFpbHVyZSwgdm9pZCwgKENhbGxGcmFtZSosIHZvaWQqLCB2b2lkKikpOwogCiAvLyA9PT0gT1NS
RXhpdCA9PT0KIC8vCkBAIC0xNDgsNyArMTQ4LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkRlYnVnUHJpbnRTcGVjdWxhdGlvbkZhaWx1cmUoQ2FsbEZyYW1lKiwgdm9pZCosIHZvaWQK
IHN0cnVjdCBPU1JFeGl0IDogcHVibGljIE9TUkV4aXRCYXNlIHsKICAgICBPU1JFeGl0KEV4aXRL
aW5kLCBKU1ZhbHVlU291cmNlLCBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlLCBTcGVjdWxh
dGl2ZUpJVCosIHVuc2lnbmVkIHN0cmVhbUluZGV4LCB1bnNpZ25lZCByZWNvdmVyeUluZGV4ID0g
VUlOVF9NQVgpOwogCi0gICAgZnJpZW5kIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21w
aWxlT1NSRXhpdChDYWxsRnJhbWUqKTsKKyAgICBmcmllbmQgdm9pZCBKSVRfT1BFUkFUSU9OX0FU
VFJJQlVURSBvcGVyYXRpb25Db21waWxlT1NSRXhpdChDYWxsRnJhbWUqKTsKIAogICAgIENvZGVM
b2NhdGlvbkxhYmVsPEpTSW50ZXJuYWxQdHJUYWc+IG1fcGF0Y2hhYmxlSnVtcExvY2F0aW9uOwog
ICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxPU1JFeGl0UHRyVGFnPiBtX2NvZGU7CkBAIC0xNzEs
NyArMTcxLDcgQEAgc3RydWN0IE9TUkV4aXQgOiBwdWJsaWMgT1NSRXhpdEJhc2UgewogcHJpdmF0
ZToKICAgICBzdGF0aWMgdm9pZCBjb21waWxlRXhpdChDQ2FsbEhlbHBlcnMmLCBWTSYsIGNvbnN0
IE9TUkV4aXQmLCBjb25zdCBPcGVyYW5kczxWYWx1ZVJlY292ZXJ5PiYsIFNwZWN1bGF0aW9uUmVj
b3ZlcnkqKTsKICAgICBzdGF0aWMgdm9pZCBlbWl0UmVzdG9yZUFyZ3VtZW50cyhDQ2FsbEhlbHBl
cnMmLCBWTSYsIGNvbnN0IE9wZXJhbmRzPFZhbHVlUmVjb3Zlcnk+Jik7Ci0gICAgZnJpZW5kIHZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWJ1Z1ByaW50U3BlY3VsYXRpb25GYWlsdXJlKENh
bGxGcmFtZSosIHZvaWQqLCB2b2lkKik7CisgICAgZnJpZW5kIHZvaWQgSklUX09QRVJBVElPTl9B
VFRSSUJVVEUgb3BlcmF0aW9uRGVidWdQcmludFNwZWN1bGF0aW9uRmFpbHVyZShDYWxsRnJhbWUq
LCB2b2lkKiwgdm9pZCopOwogfTsKIAogc3RydWN0IFNwZWN1bGF0aW9uRmFpbHVyZURlYnVnSW5m
byB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRleCAw
MWM3NjgwZjU5YTdmMmZjMmE3NDIxNzdiOGU2YWU5MzgzZDQ0ZDg2Li5jNGM0ZGM0ZjBjOTQ0YTcx
MTEzNTUwOTg4MjRlYmY1MWM5YzRkYTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT3BlcmF0aW9ucy5jcHAKQEAgLTIxOSw3ICsyMTksNyBAQCBBTFdBWVNfSU5MSU5FIHN0YXRp
YyBKU1ZhbHVlIGdldEJ5VmFsT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZN
JiB2bQogCiBleHRlcm4gIkMiIHsKIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25Ub1RoaXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvVGhpcywgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3ApKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMjgsNyAr
MjI4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Ub1RoaXMoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3ApLnRvVGhpcyhnbG9iYWxPYmplY3QsIEVDTUFN
b2RlOjpzbG9wcHkoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblRvVGhpc1N0cmljdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3ApCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9UaGlz
U3RyaWN0LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
QEAgLTIzNyw3ICsyMzcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blRvVGhpc1N0cmljdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcCkudG9UaGlzKGdsb2JhbE9i
amVjdCwgRUNNQU1vZGU6OnN0cmljdCgpKSk7CiB9CiAKLUpTQXJyYXkqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uT2JqZWN0S2V5cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT2JqZWN0KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bk9iamVjdEtleXMsIEpTQXJyYXkqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9iamVjdCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKQEAgLTI1MCw3ICsyNTAsNyBAQCBKU0FycmF5KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9i
amVjdEtleXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZAogICAgIHJldHVy
biBvd25Qcm9wZXJ0eUtleXMoZ2xvYmFsT2JqZWN0LCBvYmplY3QsIFByb3BlcnR5TmFtZU1vZGU6
OlN0cmluZ3MsIERvbnRFbnVtUHJvcGVydGllc01vZGU6OkV4Y2x1ZGUsIENhY2hlZFByb3BlcnR5
TmFtZXNLaW5kOjpLZXlzKTsKIH0KIAotSlNBcnJheSogSklUX09QRVJBVElPTiBvcGVyYXRpb25P
YmplY3RLZXlzT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBv
YmplY3QpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT2JqZWN0S2V5c09iamVj
dCwgSlNBcnJheSosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2Jq
ZWN0KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjU4LDcgKzI1OCw3IEBA
IEpTQXJyYXkqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT2JqZWN0S2V5c09iamVjdChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKCiAgICAgcmV0dXJuIG93blByb3BlcnR5S2V5cyhnbG9i
YWxPYmplY3QsIG9iamVjdCwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncywgRG9udEVudW1Qcm9w
ZXJ0aWVzTW9kZTo6RXhjbHVkZSwgQ2FjaGVkUHJvcGVydHlOYW1lc0tpbmQ6OktleXMpOwogfQog
Ci1KU0FycmF5KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9iamVjdEdldE93blByb3BlcnR5TmFt
ZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9i
amVjdCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RHZXRPd25Qcm9w
ZXJ0eU5hbWVzLCBKU0FycmF5KiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPYmplY3QpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
CkBAIC0yNzEsNyArMjcxLDcgQEAgSlNBcnJheSogSklUX09QRVJBVElPTiBvcGVyYXRpb25PYmpl
Y3RHZXRPd25Qcm9wZXJ0eU5hbWVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICByZXR1cm4g
b3duUHJvcGVydHlLZXlzKGdsb2JhbE9iamVjdCwgb2JqZWN0LCBQcm9wZXJ0eU5hbWVNb2RlOjpT
dHJpbmdzLCBEb250RW51bVByb3BlcnRpZXNNb2RlOjpJbmNsdWRlLCBDYWNoZWRQcm9wZXJ0eU5h
bWVzS2luZDo6R2V0T3duUHJvcGVydHlOYW1lcyk7CiB9CiAKLUpTQXJyYXkqIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uT2JqZWN0R2V0T3duUHJvcGVydHlOYW1lc09iamVjdChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0KQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbk9iamVjdEdldE93blByb3BlcnR5TmFtZXNPYmplY3QsIEpTQXJyYXkqLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI3OSw3ICsyNzksNyBAQCBKU0FycmF5KiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbk9iamVjdEdldE93blByb3BlcnR5TmFtZXNPYmplY3QoSlNHbG9i
YWxPYmplY3QqCiAgICAgcmV0dXJuIG93blByb3BlcnR5S2V5cyhnbG9iYWxPYmplY3QsIG9iamVj
dCwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncywgRG9udEVudW1Qcm9wZXJ0aWVzTW9kZTo6SW5j
bHVkZSwgQ2FjaGVkUHJvcGVydHlOYW1lc0tpbmQ6OkdldE93blByb3BlcnR5TmFtZXMpOwogfQog
Ci1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT2JqZWN0Q3JlYXRlKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm90b3R5cGUpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT2JqZWN0Q3JlYXRlLCBKU0NlbGwqLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3RvdHlw
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI5OCw3ICsyOTgsNyBAQCBK
U0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT2JqZWN0Q3JlYXRlKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgY29u
c3RydWN0RW1wdHlPYmplY3Qodm0sIGdsb2JhbE9iamVjdC0+bnVsbFByb3RvdHlwZU9iamVjdFN0
cnVjdHVyZSgpKSk7CiB9CiAKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25PYmplY3RD
cmVhdGVPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHByb3Rv
dHlwZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RDcmVhdGVPYmpl
Y3QsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogcHJv
dG90eXBlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzA2LDcgKzMwNiw3
IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25PYmplY3RDcmVhdGVPYmplY3QoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gY29uc3RydWN0RW1wdHlPYmpl
Y3QoZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUpOwogfQogCi1KU0NlbGwqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uQ3JlYXRlVGhpcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVj
dCogY29uc3RydWN0b3IsIHVpbnQzMl90IGlubGluZUNhcGFjaXR5KQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVRoaXMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU09iamVjdCogY29uc3RydWN0b3IsIHVpbnQzMl90IGlubGluZUNhcGFj
aXR5KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzM1LDcgKzMzNSw3IEBA
IEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25DcmVhdGVUaGlzKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0CiAgICAgcmV0dXJuIGNvbnN0cnVjdEVtcHR5T2JqZWN0
KGdsb2JhbE9iamVjdCk7CiB9CiAKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25DcmVh
dGVQcm9taXNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBjb25zdHJ1
Y3RvcikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVQcm9taXNlLCBK
U0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGNvbnN0cnVj
dG9yKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzQ4LDcgKzM0OCw3IEBA
IEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25DcmVhdGVQcm9taXNlKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBK
U1Byb21pc2U6OmNyZWF0ZSh2bSwgc3RydWN0dXJlKSk7CiB9CiAKLUpTQ2VsbCogSklUX09QRVJB
VElPTiBvcGVyYXRpb25DcmVhdGVJbnRlcm5hbFByb21pc2UoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNPYmplY3QqIGNvbnN0cnVjdG9yKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNyZWF0ZUludGVybmFsUHJvbWlzZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBjb25zdHJ1Y3RvcikpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTM2MSw3ICszNjEsNyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uQ3JlYXRlSW50ZXJuYWxQcm9taXNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
YwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNJbnRlcm5hbFByb21pc2U6OmNyZWF0
ZSh2bSwgc3RydWN0dXJlKSk7CiB9CiAKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25D
cmVhdGVHZW5lcmF0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGNv
bnN0cnVjdG9yKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUdlbmVy
YXRvciwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBj
b25zdHJ1Y3RvcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTM3Miw3ICsz
NzIsNyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ3JlYXRlR2VuZXJhdG9yKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTTwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihz
Y29wZSwgSlNHZW5lcmF0b3I6OmNyZWF0ZSh2bSwgc3RydWN0dXJlKSk7CiB9CiAKLUpTQ2VsbCog
SklUX09QRVJBVElPTiBvcGVyYXRpb25DcmVhdGVBc3luY0dlbmVyYXRvcihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogY29uc3RydWN0b3IpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQXN5bmNHZW5lcmF0b3IsIEpTQ2VsbCosIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogY29uc3RydWN0b3IpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zODMsNyArMzgzLDcgQEAgSlNDZWxsKiBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkNyZWF0ZUFzeW5jR2VuZXJhdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTQXN5bmNHZW5lcmF0b3I6
OmNyZWF0ZSh2bSwgc3RydWN0dXJlKSk7CiB9CiAKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVy
YXRpb25DYWxsT2JqZWN0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFRhcmdldCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25DYWxsT2JqZWN0Q29uc3RydWN0b3IsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVGFyZ2V0KSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzk3LDcgKzM5Nyw3IEBAIEpTQ2VsbCogSklUX09QRVJB
VElPTiBvcGVyYXRpb25DYWxsT2JqZWN0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjCiAgICAgcmV0dXJuIHZhbHVlLnRvT2JqZWN0KGdsb2JhbE9iamVjdCk7CiB9CiAKLUpT
Q2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25Ub09iamVjdChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVGFyZ2V0LCBVbmlxdWVkU3RyaW5nSW1w
bCogZXJyb3JNZXNzYWdlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvT2Jq
ZWN0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFRhcmdldCwgVW5pcXVlZFN0cmluZ0ltcGwqIGVycm9yTWVzc2FnZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTQxNyw3ICs0MTcsNyBAQCBKU0NlbGwqIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uVG9PYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgdmFsdWUudG9PYmpl
Y3QoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVmFsdWVNb2QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25WYWx1ZU1vZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtNDI2
LDcgKzQyNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVN
b2QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1JlbWFpbmRlcihnbG9iYWxPYmplY3QsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
T3AxKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW5jKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25JbmMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtNDM1LDcgKzQzNSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uSW5jKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc0luYyhnbG9iYWxPYmplY3QsIEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkT3ApKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVj
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcCkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWMsIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtNDQ0LDcgKzQ0NCw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVjKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEVuY29kZWRKCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0RlYyhnbG9i
YWxPYmplY3QsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3ApKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVCaXROb3QoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblZhbHVlQml0Tm90LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcCkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTQ1Myw3ICs0NTMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQml0Tm90KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0JpdHdpc2VOb3QoZ2xvYmFsT2Jq
ZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQml0QW5kKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVCaXRBbmQsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTQ2Miw3ICs0NjIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblZhbHVlQml0QW5kKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0JpdHdpc2VBbmQoZ2xvYmFsT2JqZWN0LCBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQml0T3Io
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25WYWx1ZUJpdE9yLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC00NzEsNyArNDcxLDcgQEAg
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUJpdE9yKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQml0
d2lzZU9yKGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpLCBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZE9wMikpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25WYWx1ZUJpdFhvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlQml0WG9yLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC00ODAsNyArNDgwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25WYWx1ZUJpdFhvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNCaXR3aXNlWG9yKGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRPcDEpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMikpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUJpdExTaGlmdChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZh
bHVlQml0TFNoaWZ0LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC00ODksNyArNDg5LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUJpdExTaGlmdChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTFNoaWZ0
KGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpLCBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZE9wMikpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25WYWx1ZUJpdFJTaGlmdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlQml0UlNoaWZ0LCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC00OTgsNyArNDk4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25WYWx1ZUJpdFJTaGlmdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzUlNoaWZ0KGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRPcDEpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMikpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUJpdFVSU2hpZnQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1
ZUJpdFVSU2hpZnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTUwNyw3ICs1MDcsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQml0VVJTaGlmdChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVUlNoaWZ0
KGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpLCBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZE9wMikpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25WYWx1ZUFkZE5vdE51bWJlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlQWRkTm90TnVtYmVyLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CkBAIC01MTksNyArNTE5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25WYWx1ZUFkZE5vdE51bWJlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQWRkTm9uTnVtYmVyKGdsb2JhbE9iamVjdCwgb3Ax
LCBvcDIpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1
ZURpdihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblZhbHVlRGl2LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC01MjgsNyArNTI4LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZURpdihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
RGl2KGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpLCBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZE9wMikpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25WYWx1ZVBvdyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlUG93LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC01
MzcsNyArNTM3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1
ZVBvdyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmMKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzUG93KGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEp
LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMikpKTsKIH0KIAotZG91YmxlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uQXJpdGhBYnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25B
cml0aEFicywgZG91YmxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTU1
MCw3ICs1NTAsNyBAQCBkb3VibGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Bcml0aEFicyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYQogICAgIHJldHVybiBmYWJzKGEp
OwogfQogCi1VQ1BVU3RyaWN0SW50MzIgSklUX09QRVJBVElPTiBvcGVyYXRpb25Bcml0aENsejMy
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJpdGhDbHozMiwgVUNQVVN0cmlj
dEludDMyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTU2Myw3ICs1NjMs
NyBAQCBVQ1BVU3RyaWN0SW50MzIgSklUX09QRVJBVElPTiBvcGVyYXRpb25Bcml0aENsejMyKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIHRvVUNQVVN0cmljdEludDMy
KGNseih2YWx1ZSkpOwogfQogCi1kb3VibGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Bcml0aEZS
b3VuZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AxKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFyaXRoRlJvdW5kLCBkb3Vi
bGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AxKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtNTc3LDcgKzU3Nyw3IEBA
IGRvdWJsZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFyaXRoRlJvdW5kKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKCiB9CiAKICNkZWZpbmUgREZHX0FSSVRIX1VOQVJZKGNh
cGl0YWxpemVkTmFtZSwgbG93ZXJOYW1lKSBcCi1kb3VibGUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25Bcml0aCMjY2FwaXRhbGl6ZWROYW1lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcDEpIFwKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Bcml0aCMjY2FwaXRhbGl6ZWROYW1lLCBkb3VibGUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxKSkgXAogeyBcCiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOyBcCiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOyBcCkBAIC01OTEsNyArNTkxLDcgQEAgZG91YmxlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uQXJpdGgjI2NhcGl0YWxpemVkTmFtZShKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWMKICAgICBGT1JfRUFDSF9ERkdfQVJJVEhfVU5BUllfT1AoREZHX0FSSVRIX1VOQVJZ
KQogI3VuZGVmIERGR19BUklUSF9VTkFSWQogCi1kb3VibGUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25Bcml0aFNxcnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Bcml0aFNxcnQs
IGRvdWJsZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDEpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC02MDQsNyArNjA0
LDcgQEAgZG91YmxlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJpdGhTcXJ0KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1YKICAgICByZXR1cm4gc3FydChhKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Bcml0aFJvdW5kKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudCkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Bcml0aFJvdW5kLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRB
cmd1bWVudCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTYxNyw3ICs2MTcs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFyaXRoUm91bmQoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdW1iZXIoanNSb3VuZCh2YWx1ZU9mQXJndW1lbnQpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJpdGhGbG9vcihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnQpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQXJpdGhGbG9vciwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnQpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC02MzAsNyArNjMwLDcgQEAgRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Bcml0aEZsb29yKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGZsb29y
KHZhbHVlT2ZBcmd1bWVudCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25Bcml0aENlaWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEFyZ3VtZW50KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkFyaXRoQ2VpbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnQpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CkBAIC02NDMsNyArNjQzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25Bcml0aENlaWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW4KICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGNlaWwodmFsdWVPZkFyZ3VtZW50KSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFyaXRoVHJ1bmMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3Vt
ZW50KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFyaXRoVHJ1bmMsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEFyZ3VtZW50KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtNjU2
LDcgKzY1Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJpdGhU
cnVuYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc051bWJlcih0cnVuY2F0ZWRWYWx1ZU9mQXJndW1lbnQpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbENlbGwoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJv
cGVydHkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlWYWxDZWxsLCBF
bmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogYmFz
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5KSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwpAQCAtNjk2LDcgKzY5Niw3IEBAIEFMV0FZU19JTkxJTkUgRW5jb2RlZEpTVmFs
dWUgZ2V0QnlWYWxDZWxsSW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKGJhc2UpLmdldChnbG9iYWxPYmplY3Qs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihpbmRleCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbE9iamVjdEludChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwgaW50MzJfdCBpbmRleCkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbE9iamVjdEludCwgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwgaW50MzJfdCBpbmRl
eCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTcwNSw3ICs3MDUsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsT2JqZWN0SW50KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiBnZXRCeVZhbENlbGxJbnQoZ2xvYmFs
T2JqZWN0LCB2bSwgYmFzZSwgaW5kZXgpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkdldEJ5VmFsU3RyaW5nSW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTU3RyaW5nKiBiYXNlLCBpbnQzMl90IGluZGV4KQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkdldEJ5VmFsU3RyaW5nSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBiYXNlLCBpbnQzMl90IGluZGV4KSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtNzE0LDcgKzcxNCw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxTdHJpbmdJbnQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iCiAgICAgcmV0dXJuIGdldEJ5VmFsQ2VsbEludChnbG9iYWxPYmplY3Qs
IHZtLCBiYXNlLCBpbmRleCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uR2V0QnlWYWxPYmplY3RTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNDZWxsKiBiYXNlLCBKU0NlbGwqIHN0cmluZykKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25HZXRCeVZhbE9iamVjdFN0cmluZywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGJhc2UsIEpTQ2VsbCogc3RyaW5nKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtNzI4LDcgKzcyOCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxPYmplY3RTdHJpbmcoSlNHbG9iYWxP
YmplY3QqIGdsb2JhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNv
ZGUoZ2V0QnlWYWxPYmplY3QoZ2xvYmFsT2JqZWN0LCB2bSwgYXNPYmplY3QoYmFzZSksIHByb3Bl
cnR5TmFtZSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25H
ZXRCeVZhbE9iamVjdFN5bWJvbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwq
IGJhc2UsIEpTQ2VsbCogc3ltYm9sKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkdldEJ5VmFsT2JqZWN0U3ltYm9sLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQ2VsbCogYmFzZSwgSlNDZWxsKiBzeW1ib2wpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC03MzgsNyArNzM4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbE9iamVjdFN5bWJvbChKU0dsb2JhbE9iamVjdCog
Z2xvYmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGdldEJ5VmFsT2JqZWN0KGdsb2JhbE9i
amVjdCwgdm0sIGFzT2JqZWN0KGJhc2UpLCBwcm9wZXJ0eU5hbWUpKTsKIH0KIAotdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
UHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXRCeVZhbFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTc0Nyw3ICs3NDcsNyBAQCB2b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0QnlWYWxTdHJpY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZAogICAgIHB1dEJ5VmFsSW50ZXJuYWw8dHJ1ZSwgZmFsc2U+KGdsb2JhbE9iamVjdCwg
dm0sIGVuY29kZWRCYXNlLCBlbmNvZGVkUHJvcGVydHksIGVuY29kZWRWYWx1ZSk7CiB9CiAKLXZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbE5vblN0cmljdChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxOb25TdHJpY3QsIHZvaWQsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC03NTYsNyArNzU2LDcgQEAgdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsTm9uU3RyaWN0KEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY28KICAgICBwdXRCeVZhbEludGVybmFsPGZhbHNlLCBmYWxzZT4o
Z2xvYmFsT2JqZWN0LCB2bSwgZW5jb2RlZEJhc2UsIGVuY29kZWRQcm9wZXJ0eSwgZW5jb2RlZFZh
bHVlKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN0cmlj
dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN0cmljdCwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC03NjUsNyArNzY1LDcgQEAgdm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN0cmljdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0MKICAgICBwdXRCeVZhbEludGVybmFsPHRydWUsIGZhbHNlPihnbG9iYWxPYmplY3Qs
IHZtLCBKU1ZhbHVlOjplbmNvZGUoY2VsbCksIGVuY29kZWRQcm9wZXJ0eSwgZW5jb2RlZFZhbHVl
KTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsQ2VsbE5vblN0cmlj
dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsQ2VsbE5vblN0cmljdCwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC03NzQsNyArNzc0LDcgQEAgdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsQ2VsbE5vblN0cmljdChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LAogICAgIHB1dEJ5VmFsSW50ZXJuYWw8ZmFsc2UsIGZhbHNlPihnbG9iYWxPYmpl
Y3QsIHZtLCBKU1ZhbHVlOjplbmNvZGUoY2VsbCksIGVuY29kZWRQcm9wZXJ0eSwgZW5jb2RlZFZh
bHVlKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN0cmlu
Z1N0cmljdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIEpTQ2Vs
bCogc3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxsU3RyaW5nU3RyaWN0LCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBKU0NlbGwqIHN0cmluZywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtNzgzLDcgKzc4Myw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZh
bENlbGxTdHJpbmdTdHJpY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgcHV0QnlW
YWxDZWxsU3RyaW5nSW50ZXJuYWw8dHJ1ZSwgZmFsc2U+KGdsb2JhbE9iamVjdCwgdm0sIGNlbGws
IGFzU3RyaW5nKHN0cmluZyksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAot
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN0cmluZ05vblN0cmljdChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIEpTQ2VsbCogc3RyaW5n
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0QnlWYWxDZWxsU3RyaW5nTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBKU0NlbGwqIHN0cmluZywgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAt
NzkyLDcgKzc5Miw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbENlbGxT
dHJpbmdOb25TdHJpY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgcHV0QnlWYWxDZWxs
U3RyaW5nSW50ZXJuYWw8ZmFsc2UsIGZhbHNlPihnbG9iYWxPYmplY3QsIHZtLCBjZWxsLCBhc1N0
cmluZyhzdHJpbmcpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CiB9CiAKLXZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbENlbGxTeW1ib2xTdHJpY3QoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBKU0NlbGwqIHN5bWJvbCwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dEJ5VmFsQ2VsbFN5bWJvbFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQ2VsbCogY2VsbCwgSlNDZWxsKiBzeW1ib2wsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTgwMiw3ICs4MDIs
NyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxDZWxsU3ltYm9sU3RyaWN0
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIHB1dEJ5VmFsQ2VsbEludGVybmFsPHRy
dWUsIGZhbHNlPihnbG9iYWxPYmplY3QsIHZtLCBjZWxsLCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blB1dEJ5VmFsQ2VsbFN5bWJvbE5vblN0cmljdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0NlbGwqIGNlbGwsIEpTQ2VsbCogc3ltYm9sLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxsU3ltYm9s
Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBj
ZWxsLCBKU0NlbGwqIHN5bWJvbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtODEyLDcgKzgxMiw3IEBAIHZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbENlbGxTeW1ib2xOb25TdHJpY3QoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iCiAgICAgcHV0QnlWYWxDZWxsSW50ZXJuYWw8ZmFsc2UsIGZhbHNlPihnbG9i
YWxPYmplY3QsIHZtLCBjZWxsLCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
VmFsdWUpKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsQmV5b25k
QXJyYXlCb3VuZHNTdHJpY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3Qq
IG9iamVjdCwgaW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNT
dHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2Jq
ZWN0LCBpbnQzMl90IGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC04MjgsNyArODI4LDcgQEAgdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QoSlNHbG9iYWxP
YmplY3QqIGdsb2IKICAgICAgICAgb2JqZWN0LCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZy
b20odm0sIGluZGV4KSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSksIHNsb3QpOwogfQog
Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc05v
blN0cmljdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0LCBp
bnQzMl90IGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIGlu
dDMyX3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTg0NCw3ICs4NDQsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdChKU0dsb2JhbE9iamVj
dCogZwogICAgICAgICBvYmplY3QsIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbSh2bSwg
aW5kZXgpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgc2xvdCk7CiB9CiAKLXZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRzU3Ry
aWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIGludDMy
X3QgaW5kZXgsIGRvdWJsZSB2YWx1ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwgaW50MzJfdCBpbmRleCwgZG91
YmxlIHZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtODYyLDcgKzg2
Miw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFy
cmF5Qm91bmRzU3RyaWN0KEpTR2xvYmFsT2JqZWN0CiAgICAgICAgIG9iamVjdCwgZ2xvYmFsT2Jq
ZWN0LCBJZGVudGlmaWVyOjpmcm9tKHZtLCBpbmRleCksIGpzVmFsdWUsIHNsb3QpOwogfQogCi12
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0RG91YmxlQnlWYWxCZXlvbmRBcnJheUJvdW5k
c05vblN0cmljdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0
LCBpbnQzMl90IGluZGV4LCBkb3VibGUgdmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0RG91YmxlQnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIGludDMyX3Qg
aW5kZXgsIGRvdWJsZSB2YWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTg4MCw3ICs4ODAsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0RG91YmxlQnlW
YWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdChKU0dsb2JhbE9iagogICAgICAgICBvYmplY3Qs
IGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbSh2bSwgaW5kZXgpLCBqc1ZhbHVlLCBzbG90
KTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsRGlyZWN0
QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNP
YmplY3QqIG9iamVjdCwgaW50MzJfdCBpbmRleCwgZG91YmxlIHZhbHVlKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3Vu
ZHNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCog
b2JqZWN0LCBpbnQzMl90IGluZGV4LCBkb3VibGUgdmFsdWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC04OTcsNyArODk3LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblB1dERvdWJsZUJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QoSlNHbG9iYWwK
ICAgICBDb21tb25TbG93UGF0aHM6OnB1dERpcmVjdFdpdGhSZWlmeSh2bSwgZ2xvYmFsT2JqZWN0
LCBvYmplY3QsIElkZW50aWZpZXI6OmZyb20odm0sIGluZGV4KSwganNWYWx1ZSwgc2xvdCk7CiB9
CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXREb3VibGVCeVZhbERpcmVjdEJleW9u
ZEFycmF5Qm91bmRzTm9uU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2Jq
ZWN0KiBvYmplY3QsIGludDMyX3QgaW5kZXgsIGRvdWJsZSB2YWx1ZSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRz
Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3Qq
IG9iamVjdCwgaW50MzJfdCBpbmRleCwgZG91YmxlIHZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwpAQCAtOTE0LDcgKzkxNCw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25QdXREb3VibGVCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0KEpTR2xv
CiAgICAgQ29tbW9uU2xvd1BhdGhzOjpwdXREaXJlY3RXaXRoUmVpZnkodm0sIGdsb2JhbE9iamVj
dCwgb2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tKHZtLCBpbmRleCksIGpzVmFsdWUsIHNsb3QpOwog
fQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RTdHJpY3QoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0U3RyaWN0
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtOTIzLDcg
KzkyMyw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbERpcmVjdFN0cmlj
dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFCiAgICAgcHV0QnlWYWxJbnRlcm5hbDx0
cnVlLCB0cnVlPihnbG9iYWxPYmplY3QsIHZtLCBlbmNvZGVkQmFzZSwgZW5jb2RlZFByb3BlcnR5
LCBlbmNvZGVkVmFsdWUpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlW
YWxEaXJlY3ROb25TdHJpY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dEJ5VmFsRGlyZWN0Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQ
cm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwpAQCAtOTMyLDcgKzkzMiw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25QdXRCeVZhbERpcmVjdE5vblN0cmljdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
CiAgICAgcHV0QnlWYWxJbnRlcm5hbDxmYWxzZSwgdHJ1ZT4oZ2xvYmFsT2JqZWN0LCB2bSwgZW5j
b2RlZEJhc2UsIGVuY29kZWRQcm9wZXJ0eSwgZW5jb2RlZFZhbHVlKTsKIH0KIAotdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmljdChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9w
ZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFBy
b3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC05NDEsNyArOTQxLDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmljdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMK
ICAgICBwdXRCeVZhbEludGVybmFsPHRydWUsIHRydWU+KGdsb2JhbE9iamVjdCwgdm0sIEpTVmFs
dWU6OmVuY29kZShjZWxsKSwgZW5jb2RlZFByb3BlcnR5LCBlbmNvZGVkVmFsdWUpOwogfQogCi12
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsTm9uU3RyaWN0KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsTm9uU3RyaWN0LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTk1MCw3ICs5NTAsNyBAQCB2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsTm9uU3RyaWN0KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYgogICAgIHB1dEJ5VmFsSW50ZXJuYWw8ZmFsc2UsIHRydWU+KGdsb2JhbE9i
amVjdCwgdm0sIEpTVmFsdWU6OmVuY29kZShjZWxsKSwgZW5jb2RlZFByb3BlcnR5LCBlbmNvZGVk
VmFsdWUpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RD
ZWxsU3RyaW5nU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2Vs
bCwgSlNDZWxsKiBzdHJpbmcsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxTdHJpbmdTdHJpY3Qs
IHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIEpTQ2Vs
bCogc3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CkBAIC05NTksNyArOTU5LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmluZ1N0cmljdChKU0dsb2JhbE9iamVjdCogZ2xv
YmEKICAgICBwdXRCeVZhbENlbGxTdHJpbmdJbnRlcm5hbDx0cnVlLCB0cnVlPihnbG9iYWxPYmpl
Y3QsIHZtLCBjZWxsLCBhc1N0cmluZyhzdHJpbmcpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZh
bHVlKSk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbERpcmVjdENl
bGxTdHJpbmdOb25TdHJpY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBj
ZWxsLCBKU0NlbGwqIHN0cmluZywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmluZ05vblN0
cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCwg
SlNDZWxsKiBzdHJpbmcsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTk2OCw3ICs5NjgsNyBAQCB2b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3RyaW5nTm9uU3RyaWN0KEpTR2xvYmFsT2Jq
ZWN0KiBnbAogICAgIHB1dEJ5VmFsQ2VsbFN0cmluZ0ludGVybmFsPGZhbHNlLCB0cnVlPihnbG9i
YWxPYmplY3QsIHZtLCBjZWxsLCBhc1N0cmluZyhzdHJpbmcpLCBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZFZhbHVlKSk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbERp
cmVjdENlbGxTeW1ib2xTdHJpY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxs
KiBjZWxsLCBKU0NlbGwqIHN5bWJvbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN5bWJvbFN0
cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCwg
SlNDZWxsKiBzeW1ib2wsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTk3OCw3ICs5NzgsNyBAQCB2b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3ltYm9sU3RyaWN0KEpTR2xvYmFsT2JqZWN0
KiBnbG9iYQogICAgIHB1dEJ5VmFsQ2VsbEludGVybmFsPHRydWUsIHRydWU+KGdsb2JhbE9iamVj
dCwgdm0sIGNlbGwsIHByb3BlcnR5TmFtZSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkp
OwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3lt
Ym9sTm9uU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCwg
SlNDZWxsKiBzeW1ib2wsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxTeW1ib2xOb25TdHJpY3Qs
IHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIEpTQ2Vs
bCogc3ltYm9sLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CkBAIC05ODgsNyArOTg4LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN5bWJvbE5vblN0cmljdChKU0dsb2JhbE9iamVjdCog
Z2wKICAgICBwdXRCeVZhbENlbGxJbnRlcm5hbDxmYWxzZSwgdHJ1ZT4oZ2xvYmFsT2JqZWN0LCB2
bSwgY2VsbCwgcHJvcGVydHlOYW1lLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CiB9
CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5
Qm91bmRzU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmpl
Y3QsIGludDMyX3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRz
U3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9i
amVjdCwgaW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTAwMiw3ICsxMDAyLDcgQEAgdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJpY3Qo
SlNHbG9iYWxPYmplY3QKICAgICBDb21tb25TbG93UGF0aHM6OnB1dERpcmVjdFdpdGhSZWlmeSh2
bSwgZ2xvYmFsT2JqZWN0LCBvYmplY3QsIElkZW50aWZpZXI6OmZyb20odm0sIGluZGV4KSwgSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSksIHNsb3QpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0LCBpbnQzMl90IGluZGV4
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIGludDMyX3Qg
aW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTEwMTcsNyArMTAxNyw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0KEpTR2xvYmFsT2Jq
CiAgICAgQ29tbW9uU2xvd1BhdGhzOjpwdXREaXJlY3RXaXRoUmVpZnkodm0sIGdsb2JhbE9iamVj
dCwgb2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tKHZtLCBpbmRleCksIEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkVmFsdWUpLCBzbG90KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25BcnJheVB1c2goSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlLCBKU0FycmF5KiBhcnJheSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25BcnJheVB1c2gsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBKU0FycmF5KiBhcnJh
eSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTEwMjcsNyArMTAyNyw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJyYXlQdXNoKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051
bWJlcihhcnJheS0+bGVuZ3RoKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25BcnJheVB1c2hEb3VibGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
ZG91YmxlIHZhbHVlLCBKU0FycmF5KiBhcnJheSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25BcnJheVB1c2hEb3VibGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgZG91YmxlIHZhbHVlLCBKU0FycmF5KiBhcnJheSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTEwMzcsNyArMTAzNyw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJyYXlQdXNoRG91YmxlKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihhcnJheS0+bGVu
Z3RoKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25BcnJh
eVB1c2hNdWx0aXBsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0FycmF5KiBhcnJh
eSwgdm9pZCogYnVmZmVyLCBpbnQzMl90IGVsZW1lbnRDb3VudCkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25BcnJheVB1c2hNdWx0aXBsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0FycmF5KiBhcnJheSwgdm9pZCogYnVmZmVyLCBp
bnQzMl90IGVsZW1lbnRDb3VudCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTEwNjIsNyArMTA2Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
QXJyYXlQdXNoTXVsdGlwbGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc051bWJlcihhcnJheS0+bGVuZ3RoKCkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25BcnJheVB1c2hEb3VibGVNdWx0aXBsZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0FycmF5KiBhcnJheSwgdm9pZCogYnVmZmVyLCBp
bnQzMl90IGVsZW1lbnRDb3VudCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25B
cnJheVB1c2hEb3VibGVNdWx0aXBsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU0FycmF5KiBhcnJheSwgdm9pZCogYnVmZmVyLCBpbnQzMl90IGVsZW1l
bnRDb3VudCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTEwODMsNyArMTA4
Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJyYXlQdXNoRG91
YmxlTXVsdGlwbGUoSlNHbG9iYWxPYmplY3QqIGdsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc051bWJlcihhcnJheS0+bGVuZ3RoKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25BcnJheVBvcChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U0FycmF5KiBhcnJheSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheVBv
cCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0FycmF5
KiBhcnJheSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTEwOTIsNyArMTA5
Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJyYXlQb3AoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNBCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShhcnJheS0+cG9wKGdsb2JhbE9iamVjdCkpOwogfQogICAgICAgICAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJyYXlQb3BBbmRSZWNvdmVyTGVuZ3RoKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQXJyYXkqIGFycmF5KQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkFycmF5UG9wQW5kUmVjb3Zlckxlbmd0aCwgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0FycmF5KiBhcnJheSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTExMDMsNyArMTEwMyw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJyYXlQb3BBbmRSZWNvdmVyTGVuZ3RoKEpTR2xv
YmFsT2JqZWN0KiBnCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhcnJheS0+cG9wKGdsb2Jh
bE9iamVjdCkpOwogfQogICAgICAgICAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUmVnRXhwRXhlY1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWdF
eHBPYmplY3QqIHJlZ0V4cE9iamVjdCwgSlNTdHJpbmcqIGFyZ3VtZW50KQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cEV4ZWNTdHJpbmcsIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVnRXhwT2JqZWN0KiByZWdFeHBPYmplY3Qs
IEpTU3RyaW5nKiBhcmd1bWVudCkpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1w
bGVyU2NvcGUoZmFsc2UpOwogICAgIApAQCAtMTExNCw3ICsxMTE0LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBFeGVjU3RyaW5nKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlZ0V4cE9iamVjdC0+ZXhl
Y0lubGluZShnbG9iYWxPYmplY3QsIGFyZ3VtZW50KSk7CiB9CiAgICAgICAgIAotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBFeGVjKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFJlZ0V4cE9iamVjdCogcmVnRXhwT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkQXJndW1lbnQpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhw
RXhlYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWdF
eHBPYmplY3QqIHJlZ0V4cE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50KSkK
IHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAg
CkBAIC0xMTMyLDcgKzExMzIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblJlZ0V4cEV4ZWMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUgogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHJlZ0V4cE9iamVjdC0+ZXhlY0lu
bGluZShnbG9iYWxPYmplY3QsIGlucHV0KSkpOwogfQogICAgICAgICAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVnRXhwRXhlY0dlbmVyaWMoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRBcmd1bWVudCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdF
eHBFeGVjR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFy
Z3VtZW50KSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxz
ZSk7CiAgICAgCkBAIC0xMTU1LDcgKzExNTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblJlZ0V4cEV4ZWNHZW5lcmljKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHJlZ2V4cC0+ZXhl
YyhnbG9iYWxPYmplY3QsIGlucHV0KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblJlZ0V4cEV4ZWNOb25HbG9iYWxPclN0aWNreShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBSZWdFeHAqIHJlZ0V4cCwgSlNTdHJpbmcqIHN0cmluZykKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdFeHBFeGVjTm9uR2xvYmFsT3JTdGlja3ksIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVnRXhwKiByZWdF
eHAsIEpTU3RyaW5nKiBzdHJpbmcpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2Ft
cGxlclNjb3BlKGZhbHNlKTsKIApAQCAtMTE3OSw3ICsxMTc5LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBFeGVjTm9uR2xvYmFsT3JTdGlja3koSlNHbG9i
YWxPYmplY3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFycmF5KTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBNYXRjaEZhc3RTdHJpbmcoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVnRXhwT2JqZWN0KiByZWdFeHBPYmplY3QsIEpT
U3RyaW5nKiBhcmd1bWVudCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdF
eHBNYXRjaEZhc3RTdHJpbmcsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgUmVnRXhwT2JqZWN0KiByZWdFeHBPYmplY3QsIEpTU3RyaW5nKiBhcmd1bWVudCkp
CiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogCkBA
IC0xMTkyLDcgKzExOTIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blJlZ0V4cE1hdGNoRmFzdFN0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUocmVnRXhwT2JqZWN0LT5tYXRjaEdsb2JhbChnbG9iYWxPYmplY3QsIGFy
Z3VtZW50KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVn
RXhwTWF0Y2hGYXN0R2xvYmFsU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJl
Z0V4cCogcmVnRXhwLCBKU1N0cmluZyogc3RyaW5nKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblJlZ0V4cE1hdGNoRmFzdEdsb2JhbFN0cmluZywgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWdFeHAqIHJlZ0V4cCwgSlNTdHJpbmcqIHN0
cmluZykpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2Up
OwogCkBAIC0xMjIzLDcgKzEyMjMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblJlZ0V4cE1hdGNoRmFzdEdsb2JhbFN0cmluZyhKU0dsb2JhbE9iamVjdAogICAgICAg
ICB9KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblBhcnNl
SW50Tm9SYWRpeEdlbmVyaWMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUGFyc2VJbnRO
b1JhZGl4R2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKQEAgLTEyMzUsNyArMTIzNSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUGFyc2VJbnROb1JhZGl4R2VuZXJpYyhKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgfSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUGFyc2VJbnRTdHJp
bmdOb1JhZGl4KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBzdHJpbmcp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUGFyc2VJbnRTdHJpbmdOb1JhZGl4
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5n
KiBzdHJpbmcpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xMjQ5LDcgKzEy
NDksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblBhcnNlSW50U3Ry
aW5nTm9SYWRpeChKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIHJldHVybiBwYXJzZUludFJlc3Vs
dChwYXJzZUludCh2aWV3V2l0aFN0cmluZy52aWV3LCAwKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUGFyc2VJbnRTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNTdHJpbmcqIHN0cmluZywgaW50MzJfdCByYWRpeCkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25QYXJzZUludFN0cmluZywgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogc3RyaW5nLCBpbnQzMl90IHJh
ZGl4KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTI2Miw3ICsxMjYyLDcg
QEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25QYXJzZUludFN0cmluZyhK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICByZXR1cm4gcGFyc2VJbnRSZXN1bHQocGFy
c2VJbnQodmlld1dpdGhTdHJpbmcudmlldywgcmFkaXgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25QYXJzZUludEdlbmVyaWMoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdmFsdWUsIGludDMyX3QgcmFkaXgpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUGFyc2VJbnRHZW5lcmljLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHZhbHVlLCBp
bnQzMl90IHJhZGl4KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTI3Myw3
ICsxMjczLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25QYXJzZUlu
dEdlbmVyaWMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICB9KTsKIH0KICAgICAgICAg
Ci1zaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBUZXN0U3RyaW5nKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZ0V4cE9iamVjdCogcmVnRXhwT2JqZWN0LCBKU1N0cmlu
ZyogaW5wdXQpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwVGVzdFN0
cmluZywgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVnRXhwT2JqZWN0
KiByZWdFeHBPYmplY3QsIEpTU3RyaW5nKiBpbnB1dCkpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2Nv
cGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIApAQCAtMTI4NCw3ICsxMjg0LDcgQEAg
c2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVnRXhwVGVzdFN0cmluZyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBSZWcKICAgICByZXR1cm4gcmVnRXhwT2JqZWN0LT50ZXN0SW5s
aW5lKGdsb2JhbE9iamVjdCwgaW5wdXQpOwogfQogCi1zaXplX3QgSklUX09QRVJBVElPTiBvcGVy
YXRpb25SZWdFeHBUZXN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZ0V4cE9iamVj
dCogcmVnRXhwT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnQpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwVGVzdCwgc2l6ZV90LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgUmVnRXhwT2JqZWN0KiByZWdFeHBPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRBcmd1bWVudCkpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJT
YW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIApAQCAtMTMwMCw3ICsxMzAwLDcgQEAgc2l6ZV90IEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uUmVnRXhwVGVzdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBSZWdFeHBPYmoKICAgICByZXR1cm4gcmVnRXhwT2JqZWN0LT50ZXN0SW5saW5lKGdsb2Jh
bE9iamVjdCwgaW5wdXQpOwogfQogCi1zaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdF
eHBUZXN0R2VuZXJpYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50KQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cFRlc3RHZW5lcmljLCBzaXplX3QsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50KSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBz
dXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgCkBAIC0xMzI1LDcgKzEzMjUsNyBAQCBzaXpl
X3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBUZXN0R2VuZXJpYyhKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBFbgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgcmVnZXhw
LT50ZXN0KGdsb2JhbE9iamVjdCwgaW5wdXQpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25TdWJIZWFwQmlnSW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25TdWJIZWFwQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTEzMzcsNyArMTMzNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uU3ViSGVhcEJpZ0ludChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0JpZ0ludDo6c3ViKGdsb2JhbE9iamVj
dCwgbGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkJpdE5vdEhlYXBCaWdJbnQoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDZWxsKiBvcDEpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Qml0Tm90SGVhcEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0NlbGwqIG9wMSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTEzNDgsNyArMTM0OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
Qml0Tm90SGVhcEJpZ0ludChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU0JpZ0ludDo6Yml0d2lzZU5vdChnbG9iYWxPYmplY3QsIG9wZXJhbmQp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25NdWxIZWFwQmln
SW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9w
MikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NdWxIZWFwQmlnSW50LCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb3AxLCBK
U0NlbGwqIG9wMikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTEzNjAsNyAr
MTM2MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTXVsSGVhcEJp
Z0ludChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKU0JpZ0ludDo6bXVsdGlwbHkoZ2xvYmFsT2JqZWN0LCBsZWZ0T3BlcmFuZCwgcmlnaHRP
cGVyYW5kKSk7CiB9CiAgICAgCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bk1vZEhlYXBCaWdJbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvcDEs
IEpTQ2VsbCogb3AyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1vZEhlYXBC
aWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlND
ZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpA
QCAtMTM3Miw3ICsxMzcyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25Nb2RIZWFwQmlnSW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKEpTQmlnSW50OjpyZW1haW5kZXIoZ2xvYmFsT2JqZWN0LCBsZWZ0T3Bl
cmFuZCwgcmlnaHRPcGVyYW5kKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uRGl2SGVhcEJpZ0ludChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0Nl
bGwqIG9wMSwgSlNDZWxsKiBvcDIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
RGl2SGVhcEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CkBAIC0xMzg0LDcgKzEzODQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkRpdkhlYXBCaWdJbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdAogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNCaWdJbnQ6OmRpdmlkZShnbG9iYWxPYmplY3QsIGxl
ZnRPcGVyYW5kLCByaWdodE9wZXJhbmQpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25Qb3dIZWFwQmlnSW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Qb3dIZWFwQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTEzOTYsNyArMTM5Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uUG93SGVhcEJpZ0ludChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0JpZ0ludDo6ZXhwb25lbnRpYXRlKGdsb2Jh
bE9iamVjdCwgbGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkJpdEFuZEhlYXBCaWdJbnQoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkJpdEFuZEhlYXBCaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTQwOCw3ICsxNDA4LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25CaXRBbmRIZWFwQmlnSW50KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQmlnSW50Ojpi
aXR3aXNlQW5kKGdsb2JhbE9iamVjdCwgbGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkJpdExTaGlmdEhlYXBCaWdJ
bnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3Ay
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkJpdExTaGlmdEhlYXBCaWdJbnQs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBv
cDEsIEpTQ2VsbCogb3AyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTQy
MCw3ICsxNDIwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25CaXRM
U2hpZnRIZWFwQmlnSW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKEpTQmlnSW50OjpsZWZ0U2hpZnQoZ2xvYmFsT2JqZWN0LCBsZWZ0T3BlcmFuZCwg
cmlnaHRPcGVyYW5kKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uQWRkSGVhcEJpZ0ludChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9w
MSwgSlNDZWxsKiBvcDIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWRkSGVh
cEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
CkBAIC0xNDMyLDcgKzE0MzIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkFkZEhlYXBCaWdJbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdAogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNCaWdJbnQ6OmFkZChnbG9iYWxPYmplY3QsIGxlZnRPcGVyYW5k
LCByaWdodE9wZXJhbmQpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25CaXRSU2hpZnRIZWFwQmlnSW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Q2VsbCogb3AxLCBKU0NlbGwqIG9wMikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25CaXRSU2hpZnRIZWFwQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTE0NDQsNyArMTQ0NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uQml0UlNoaWZ0SGVhcEJpZ0ludChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0JpZ0ludDo6c2lnbmVkUmlnaHRTaGlm
dChnbG9iYWxPYmplY3QsIGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25CaXRPckhlYXBCaWdJbnQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkJpdE9ySGVhcEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNDU2LDcgKzE0NTYsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkJpdE9ySGVhcEJpZ0ludChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNCaWdJ
bnQ6OmJpdHdpc2VPcihnbG9iYWxPYmplY3QsIGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25CaXRYb3JIZWFwQmln
SW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9w
MikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25CaXRYb3JIZWFwQmlnSW50LCBF
bmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb3Ax
LCBKU0NlbGwqIG9wMikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE0Njgs
NyArMTQ2OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQml0WG9y
SGVhcEJpZ0ludChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShKU0JpZ0ludDo6Yml0d2lzZVhvcihnbG9iYWxPYmplY3QsIGxlZnRPcGVyYW5kLCBy
aWdodE9wZXJhbmQpKTsKIH0KIAotc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFy
ZVN0cmljdEVxQ2VsbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9wMSwg
SlNDZWxsKiBvcDIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0
cmljdEVxQ2VsbCwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxs
KiBvcDEsIEpTQ2VsbCogb3AyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAt
MTQ3Nyw3ICsxNDc3LDcgQEAgc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZVN0
cmljdEVxQ2VsbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIHJldHVybiBKU1Zh
bHVlOjpzdHJpY3RFcXVhbEZvckNlbGxzKGdsb2JhbE9iamVjdCwgb3AxLCBvcDIpOwogfQogCi1z
aXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25TYW1lVmFsdWUoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYXJnMSwgRW5jb2RlZEpTVmFsdWUgYXJnMikKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TYW1lVmFsdWUsIHNpemVfdCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGFyZzEsIEVuY29kZWRKU1Zh
bHVlIGFyZzIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNDg2LDcgKzE0
ODYsNyBAQCBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25TYW1lVmFsdWUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVgogICAgIHJldHVybiBzYW1lVmFsdWUoZ2xv
YmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoYXJnMSksIEpTVmFsdWU6OmRlY29kZShhcmcyKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9QcmltaXRpdmUo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdmFsdWUpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9QcmltaXRpdmUsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdmFsdWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNDk1LDcgKzE0OTUsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvUHJpbWl0aXZlKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlOjpk
ZWNvZGUodmFsdWUpLnRvUHJpbWl0aXZlKGdsb2JhbE9iamVjdCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvUHJvcGVydHlLZXkoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uVG9Qcm9wZXJ0eUtleSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE1MDQsNyArMTUwNCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uVG9Qcm9wZXJ0eUtleShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlOjpkZWNvZGUodmFsdWUp
LnRvUHJvcGVydHlLZXlWYWx1ZShnbG9iYWxPYmplY3QpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25Ub051bWJlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Ub051bWJlciwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKQEAgLTE1MTMsNyArMTUxMyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVG9OdW1iZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihKU1ZhbHVlOjpkZWNvZGUodmFsdWUpLnRvTnVt
YmVyKGdsb2JhbE9iamVjdCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25Ub051bWVyaWMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9OdW1lcmlj
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTUyMiw3
ICsxNTIyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Ub051bWVy
aWMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW4KICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkudG9OdW1lcmljKGdsb2JhbE9iamVjdCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxOdW1iZXJDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ2FsbE51bWJlckNv
bnN0cnVjdG9yLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKQEAgLTE1MzgsNyArMTUzOCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uQ2FsbE51bWJlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0JpZ0ludDo6dG9OdW1iZXIobnVtZXJpYykpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsV2l0aFRoaXMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRUaGlzLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2Ny
aXB0KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsV2l0aFRoaXMs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRUaGlzLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkU3Vic2NyaXB0KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpA
QCAtMTU3OCw3ICsxNTc4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25HZXRCeVZhbFdpdGhUaGlzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShiYXNlVmFsdWUuZ2V0KGdsb2JhbE9i
amVjdCwgcHJvcGVydHksIHNsb3QpKSk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25QdXRCeUlkV2l0aFRoaXNTdHJpY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRUaGlzLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVy
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRXaXRoVGhpc1N0cmlj
dCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVGhpcywgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE1OTAsNyArMTU5MCw3IEBAIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25QdXRCeUlkV2l0aFRoaXNTdHJpY3QoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwKICAgICBwdXRXaXRoVGhpczx0cnVlPihnbG9iYWxPYmplY3QsIGVuY29kZWRCYXNl
LCBlbmNvZGVkVGhpcywgZW5jb2RlZFZhbHVlLCBpZGVudCk7CiB9CiAKLXZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25QdXRCeUlkV2l0aFRoaXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRUaGlz
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVu
dGlmaWVyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRXaXRoVGhp
cywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVGhpcywgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE2MDIsNyArMTYwMiw3IEBAIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25QdXRCeUlkV2l0aFRoaXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jb2RlCiAgICAgcHV0V2l0aFRoaXM8ZmFsc2U+KGdsb2JhbE9iamVjdCwgZW5jb2RlZEJh
c2UsIGVuY29kZWRUaGlzLCBlbmNvZGVkVmFsdWUsIGlkZW50KTsKIH0KIAotdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsV2l0aFRoaXNTdHJpY3QoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRUaGlzLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlW
YWxXaXRoVGhpc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVGhpcywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTYxNSw3ICsxNjE1LDcgQEAg
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsV2l0aFRoaXNTdHJpY3QoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBwdXRXaXRoVGhpczx0cnVlPihnbG9iYWxPYmpl
Y3QsIGVuY29kZWRCYXNlLCBlbmNvZGVkVGhpcywgZW5jb2RlZFZhbHVlLCBwcm9wZXJ0eSk7CiB9
CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbFdpdGhUaGlzKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVGhpcywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5VmFsV2l0aFRoaXMsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFRoaXMs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE2MzgsNyArMTYzOCw3
IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQgZGVmaW5lRGF0YVByb3BlcnR5KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2CiAgICAgICAgIGJhc2UtPm1ldGhvZFRhYmxlKHZt
KS0+ZGVmaW5lT3duUHJvcGVydHkoYmFzZSwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRl
c2NyaXB0b3IsIHRydWUpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVmaW5l
RGF0YVByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSwgaW50MzJfdCBhdHRyaWJ1dGVzKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkRlZmluZURhdGFQcm9wZXJ0eSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTT2JqZWN0KiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgaW50MzJfdCBhdHRyaWJ1dGVzKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTY1MSw3ICsxNjUxLDcgQEAgdm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU08KICAgICBkZWZpbmVEYXRhUHJvcGVydHkoZ2xvYmFsT2JqZWN0LCB2bSwgYmFzZSwg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgYXR0cmlidXRlcyk7
CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHlTdHJp
bmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIEpTU3RyaW5n
KiBwcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBpbnQzMl90IGF0dHJpYnV0
ZXMpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5
U3RyaW5nLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJh
c2UsIEpTU3RyaW5nKiBwcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBpbnQz
Ml90IGF0dHJpYnV0ZXMpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNjY0
LDcgKzE2NjQsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVmaW5lRGF0YVByb3Bl
cnR5U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIGRlZmluZURhdGFQcm9w
ZXJ0eShnbG9iYWxPYmplY3QsIHZtLCBiYXNlLCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkVmFsdWUpLCBhdHRyaWJ1dGVzKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eVN0cmluZ0lkZW50KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBVbmlxdWVkU3RyaW5nSW1wbCogcHJvcGVydHksIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgaW50MzJfdCBhdHRyaWJ1dGVzKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eVN0cmluZ0lkZW50LCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIFVuaXF1
ZWRTdHJpbmdJbXBsKiBwcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBpbnQz
Ml90IGF0dHJpYnV0ZXMpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNjcy
LDcgKzE2NzIsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVmaW5lRGF0YVByb3Bl
cnR5U3RyaW5nSWRlbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAgIGRlZmluZURhdGFQcm9w
ZXJ0eShnbG9iYWxPYmplY3QsIHZtLCBiYXNlLCBJZGVudGlmaWVyOjpmcm9tVWlkKHZtLCBwcm9w
ZXJ0eSksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpLCBhdHRyaWJ1dGVzKTsKIH0KIAot
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eVN5bWJvbChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwgU3ltYm9sKiBwcm9wZXJ0
eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZXMpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5U3ltYm9sLCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIFN5bWJv
bCogcHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgaW50MzJfdCBhdHRyaWJ1
dGVzKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTY5MCw3ICsxNjkwLDcg
QEAgQUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCBkZWZpbmVBY2Nlc3NvclByb3BlcnR5KEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFYKICAgICAgICAgYmFzZS0+bWV0aG9kVGFibGUodm0p
LT5kZWZpbmVPd25Qcm9wZXJ0eShiYXNlLCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgZGVz
Y3JpcHRvciwgdHJ1ZSk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWZpbmVB
Y2Nlc3NvclByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBi
YXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEpTT2JqZWN0KiBnZXR0ZXIsIEpT
T2JqZWN0KiBzZXR0ZXIsIGludDMyX3QgYXR0cmlidXRlcykKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5LCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQ
cm9wZXJ0eSwgSlNPYmplY3QqIGdldHRlciwgSlNPYmplY3QqIHNldHRlciwgaW50MzJfdCBhdHRy
aWJ1dGVzKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTcwMiw3ICsxNzAy
LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHko
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBkZWZpbmVBY2Nlc3NvclByb3BlcnR5
KGdsb2JhbE9iamVjdCwgdm0sIGJhc2UsIHByb3BlcnR5TmFtZSwgZ2V0dGVyLCBzZXR0ZXIsIGF0
dHJpYnV0ZXMpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVmaW5lQWNjZXNz
b3JQcm9wZXJ0eVN0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCog
YmFzZSwgSlNTdHJpbmcqIHByb3BlcnR5LCBKU09iamVjdCogZ2V0dGVyLCBKU09iamVjdCogc2V0
dGVyLCBpbnQzMl90IGF0dHJpYnV0ZXMpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN0cmluZywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBKU1N0cmluZyogcHJvcGVydHksIEpTT2JqZWN0
KiBnZXR0ZXIsIEpTT2JqZWN0KiBzZXR0ZXIsIGludDMyX3QgYXR0cmlidXRlcykpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE3MTQsNyArMTcxNCw3IEBAIHZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5U3RyaW5nKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPCiAgICAgZGVmaW5lQWNjZXNzb3JQcm9wZXJ0eShnbG9iYWxPYmplY3QsIHZt
LCBiYXNlLCBwcm9wZXJ0eU5hbWUsIGdldHRlciwgc2V0dGVyLCBhdHRyaWJ1dGVzKTsKIH0KIAot
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHlTdHJpbmdJ
ZGVudChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwgVW5pcXVl
ZFN0cmluZ0ltcGwqIHByb3BlcnR5LCBKU09iamVjdCogZ2V0dGVyLCBKU09iamVjdCogc2V0dGVy
LCBpbnQzMl90IGF0dHJpYnV0ZXMpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
RGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN0cmluZ0lkZW50LCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIFVuaXF1ZWRTdHJpbmdJbXBsKiBwcm9wZXJ0
eSwgSlNPYmplY3QqIGdldHRlciwgSlNPYmplY3QqIHNldHRlciwgaW50MzJfdCBhdHRyaWJ1dGVz
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTcyMiw3ICsxNzIyLDcgQEAg
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHlTdHJpbmdJ
ZGVudChKU0dsb2JhbE9iamVjdCogZ2wKICAgICBkZWZpbmVBY2Nlc3NvclByb3BlcnR5KGdsb2Jh
bE9iamVjdCwgdm0sIGJhc2UsIElkZW50aWZpZXI6OmZyb21VaWQodm0sIHByb3BlcnR5KSwgZ2V0
dGVyLCBzZXR0ZXIsIGF0dHJpYnV0ZXMpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN5bWJvbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU09iamVjdCogYmFzZSwgU3ltYm9sKiBwcm9wZXJ0eSwgSlNPYmplY3QqIGdldHRlciwg
SlNPYmplY3QqIHNldHRlciwgaW50MzJfdCBhdHRyaWJ1dGVzKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHlTeW1ib2wsIHZvaWQsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwgU3ltYm9sKiBwcm9wZXJ0
eSwgSlNPYmplY3QqIGdldHRlciwgSlNPYmplY3QqIHNldHRlciwgaW50MzJfdCBhdHRyaWJ1dGVz
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTczMCw3ICsxNzMwLDcgQEAg
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHlTeW1ib2wo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICBkZWZpbmVBY2Nlc3NvclByb3BlcnR5KGdsb2Jh
bE9iamVjdCwgdm0sIGJhc2UsIElkZW50aWZpZXI6OmZyb21VaWQocHJvcGVydHktPnByaXZhdGVO
YW1lKCkpLCBnZXR0ZXIsIHNldHRlciwgYXR0cmlidXRlcyk7CiB9CiAKLWNoYXIqIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uTmV3QXJyYXkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlKiBhcnJheVN0cnVjdHVyZSwgdm9pZCogYnVmZmVyLCBzaXplX3Qgc2l6ZSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheSwgY2hhciosIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIGFycmF5U3RydWN0dXJlLCB2b2lkKiBidWZm
ZXIsIHNpemVfdCBzaXplKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTcz
OSw3ICsxNzM5LDcgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdBcnJheShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIGEKICAgICByZXR1cm4gYml0d2lz
ZV9jYXN0PGNoYXIqPihjb25zdHJ1Y3RBcnJheShnbG9iYWxPYmplY3QsIGFycmF5U3RydWN0dXJl
LCBzdGF0aWNfY2FzdDxKU1ZhbHVlKj4oYnVmZmVyKSwgc2l6ZSkpOwogfQogCi1jaGFyKiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbk5ld0VtcHR5QXJyYXkoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJl
KiBhcnJheVN0cnVjdHVyZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdF
bXB0eUFycmF5LCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVyZSogYXJyYXlTdHJ1Y3R1
cmUpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTc0OCw3ICsxNzQ4LDcgQEAgY2hhciog
SklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdFbXB0eUFycmF5KFZNKiB2bVBvaW50ZXIsIFN0cnVj
dHVyZSogYXJyYXlTdHJ1Y3QKICAgICByZXR1cm4gYml0d2lzZV9jYXN0PGNoYXIqPihKU0FycmF5
OjpjcmVhdGUodm0sIGFycmF5U3RydWN0dXJlKSk7CiB9CiAKLWNoYXIqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmUqIGFycmF5U3RydWN0dXJlLCBpbnQzMl90IHNpemUsIEJ1dHRlcmZseSogYnV0dGVy
Zmx5KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNpemUs
IGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBhcnJheVN0
cnVjdHVyZSwgaW50MzJfdCBzaXplLCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE3NjYsNyArMTc2Niw3IEBAIGNoYXIqIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1CiAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxjaGFyKj4ocmVzdWx0KTsKIH0KIAot
Y2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdBcnJheVdpdGhTaXplQW5kSGludChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIGFycmF5U3RydWN0dXJlLCBpbnQz
Ml90IHNpemUsIGludDMyX3QgdmVjdG9yTGVuZ3RoSGludCwgQnV0dGVyZmx5KiBidXR0ZXJmbHkp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZUFuZEhp
bnQsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBhcnJh
eVN0cnVjdHVyZSwgaW50MzJfdCBzaXplLCBpbnQzMl90IHZlY3Rvckxlbmd0aEhpbnQsIEJ1dHRl
cmZseSogYnV0dGVyZmx5KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTc4
Niw3ICsxNzg2LDcgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdBcnJheVdpdGhT
aXplQW5kSGludChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICByZXR1cm4gYml0d2lz
ZV9jYXN0PGNoYXIqPihyZXN1bHQpOwogfQogCi1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uTmV3QXJyYXlCdWZmZXIoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBhcnJheVN0cnVjdHVy
ZSwgSlNDZWxsKiBpbW11dGFibGVCdXR0ZXJmbHlDZWxsKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbk5ld0FycmF5QnVmZmVyLCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlciwgU3Ry
dWN0dXJlKiBhcnJheVN0cnVjdHVyZSwgSlNDZWxsKiBpbW11dGFibGVCdXR0ZXJmbHlDZWxsKSkK
IHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE4MDAsOCArMTgwMCw3IEBAIEpTQ2VsbCogSklU
X09QRVJBVElPTiBvcGVyYXRpb25OZXdBcnJheUJ1ZmZlcihWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1
cmUqIGFycmF5U3RyCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotY2hhciogSklUX09QRVJBVElP
TiBvcGVyYXRpb25OZXdJbnQ4QXJyYXlXaXRoU2l6ZSgKLSAgICBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50MzJfdCBsZW5ndGgsIGNoYXIqIHZl
Y3RvcikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJbnQ4QXJyYXlXaXRo
U2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgaW50MzJfdCBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTE4MDksOCArMTgwOCw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uTmV3SW50OEFycmF5V2l0aFNpemUoCiAgICAgcmV0dXJuIG5ld1R5cGVkQXJyYXlX
aXRoU2l6ZTxKU0ludDhBcnJheT4oZ2xvYmFsT2JqZWN0LCB2bSwgc3RydWN0dXJlLCBsZW5ndGgs
IHZlY3Rvcik7CiB9CiAKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3SW50OEFycmF5
V2l0aE9uZUFyZ3VtZW50KAotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3SW50OEFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFy
KiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC0xODE4LDggKzE4MTYsNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5l
d0ludDhBcnJheVdpdGhPbmVBcmd1bWVudCgKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxj
aGFyKj4oY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3V2l0aEFyZ3VtZW50czxKU0ludDhB
cnJheT4oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGVuY29kZWRWYWx1ZSwgMCwgV1RGOjpudWxs
b3B0KSk7CiB9CiAKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3SW50MTZBcnJheVdp
dGhTaXplKAotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBpbnQzMl90IGxlbmd0aCwgY2hhciogdmVjdG9yKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbk5ld0ludDE2QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50MzJfdCBsZW5ndGgs
IGNoYXIqIHZlY3RvcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE4Mjcs
OCArMTgyNCw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3SW50MTZBcnJheVdp
dGhTaXplKAogICAgIHJldHVybiBuZXdUeXBlZEFycmF5V2l0aFNpemU8SlNJbnQxNkFycmF5Pihn
bG9iYWxPYmplY3QsIHZtLCBzdHJ1Y3R1cmUsIGxlbmd0aCwgdmVjdG9yKTsKIH0KIAotY2hhciog
SklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdJbnQxNkFycmF5V2l0aE9uZUFyZ3VtZW50KAotICAg
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uTmV3SW50MTZBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTgzNiw4ICsxODMy
LDcgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdJbnQxNkFycmF5V2l0aE9uZUFy
Z3VtZW50KAogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihjb25zdHJ1Y3RHZW5l
cmljVHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzPEpTSW50MTZBcnJheT4oZ2xvYmFsT2JqZWN0
LCBzdHJ1Y3R1cmUsIGVuY29kZWRWYWx1ZSwgMCwgV1RGOjpudWxsb3B0KSk7CiB9CiAKLWNoYXIq
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3SW50MzJBcnJheVdpdGhTaXplKAotICAgIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnQzMl90IGxl
bmd0aCwgY2hhciogdmVjdG9yKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5l
d0ludDMyQXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50MzJfdCBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE4NDUsOCArMTg0MCw3IEBAIGNoYXIq
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3SW50MzJBcnJheVdpdGhTaXplKAogICAgIHJldHVy
biBuZXdUeXBlZEFycmF5V2l0aFNpemU8SlNJbnQzMkFycmF5PihnbG9iYWxPYmplY3QsIHZtLCBz
dHJ1Y3R1cmUsIGxlbmd0aCwgdmVjdG9yKTsKIH0KIAotY2hhciogSklUX09QRVJBVElPTiBvcGVy
YXRpb25OZXdJbnQzMkFycmF5V2l0aE9uZUFyZ3VtZW50KAotICAgIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3SW50MzJBcnJheVdp
dGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTg1NCw4ICsxODQ4LDcgQEAgY2hhciogSklUX09Q
RVJBVElPTiBvcGVyYXRpb25OZXdJbnQzMkFycmF5V2l0aE9uZUFyZ3VtZW50KAogICAgIHJldHVy
biByZWludGVycHJldF9jYXN0PGNoYXIqPihjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdX
aXRoQXJndW1lbnRzPEpTSW50MzJBcnJheT4oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGVuY29k
ZWRWYWx1ZSwgMCwgV1RGOjpudWxsb3B0KSk7CiB9CiAKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uTmV3VWludDhBcnJheVdpdGhTaXplKAotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnQzMl90IGxlbmd0aCwgY2hhciogdmVjdG9y
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQ4QXJyYXlXaXRoU2l6
ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgaW50MzJfdCBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTE4NjMsOCArMTg1Niw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uTmV3VWludDhBcnJheVdpdGhTaXplKAogICAgIHJldHVybiBuZXdUeXBlZEFycmF5V2l0
aFNpemU8SlNVaW50OEFycmF5PihnbG9iYWxPYmplY3QsIHZtLCBzdHJ1Y3R1cmUsIGxlbmd0aCwg
dmVjdG9yKTsKIH0KIAotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdVaW50OEFycmF5
V2l0aE9uZUFyZ3VtZW50KAotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDhBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hh
ciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwpAQCAtMTg3Miw4ICsxODY0LDcgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25O
ZXdVaW50OEFycmF5V2l0aE9uZUFyZ3VtZW50KAogICAgIHJldHVybiByZWludGVycHJldF9jYXN0
PGNoYXIqPihjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzPEpTVWlu
dDhBcnJheT4oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGVuY29kZWRWYWx1ZSwgMCwgV1RGOjpu
dWxsb3B0KSk7CiB9CiAKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3VWludDhDbGFt
cGVkQXJyYXlXaXRoU2l6ZSgKLSAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgaW50MzJfdCBsZW5ndGgsIGNoYXIqIHZlY3RvcikKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50OENsYW1wZWRBcnJheVdpdGhTaXplLCBj
aGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBpbnQzMl90IGxlbmd0aCwgY2hhciogdmVjdG9yKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwpAQCAtMTg4MSw4ICsxODcyLDcgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRp
b25OZXdVaW50OENsYW1wZWRBcnJheVdpdGhTaXplKAogICAgIHJldHVybiBuZXdUeXBlZEFycmF5
V2l0aFNpemU8SlNVaW50OENsYW1wZWRBcnJheT4oZ2xvYmFsT2JqZWN0LCB2bSwgc3RydWN0dXJl
LCBsZW5ndGgsIHZlY3Rvcik7CiB9CiAKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3
VWludDhDbGFtcGVkQXJyYXlXaXRoT25lQXJndW1lbnQoCi0gICAgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50OENsYW1wZWRB
cnJheVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTg5MCw4ICsxODgwLDcgQEAgY2hhciog
SklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdVaW50OENsYW1wZWRBcnJheVdpdGhPbmVBcmd1bWVu
dCgKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oY29uc3RydWN0R2VuZXJpY1R5
cGVkQXJyYXlWaWV3V2l0aEFyZ3VtZW50czxKU1VpbnQ4Q2xhbXBlZEFycmF5PihnbG9iYWxPYmpl
Y3QsIHN0cnVjdHVyZSwgZW5jb2RlZFZhbHVlLCAwLCBXVEY6Om51bGxvcHQpKTsKIH0KIAotY2hh
ciogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdVaW50MTZBcnJheVdpdGhTaXplKAotICAgIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnQzMl90
IGxlbmd0aCwgY2hhciogdmVjdG9yKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bk5ld1VpbnQxNkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludDMyX3QgbGVuZ3RoLCBjaGFyKiB2ZWN0b3Ip
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xODk5LDggKzE4ODgsNyBAQCBj
aGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld1VpbnQxNkFycmF5V2l0aFNpemUoCiAgICAg
cmV0dXJuIG5ld1R5cGVkQXJyYXlXaXRoU2l6ZTxKU1VpbnQxNkFycmF5PihnbG9iYWxPYmplY3Qs
IHZtLCBzdHJ1Y3R1cmUsIGxlbmd0aCwgdmVjdG9yKTsKIH0KIAotY2hhciogSklUX09QRVJBVElP
TiBvcGVyYXRpb25OZXdVaW50MTZBcnJheVdpdGhPbmVBcmd1bWVudCgKLSAgICBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQx
NkFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xOTA4LDggKzE4OTYsNyBAQCBjaGFy
KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld1VpbnQxNkFycmF5V2l0aE9uZUFyZ3VtZW50KAog
ICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihjb25zdHJ1Y3RHZW5lcmljVHlwZWRB
cnJheVZpZXdXaXRoQXJndW1lbnRzPEpTVWludDE2QXJyYXk+KGdsb2JhbE9iamVjdCwgc3RydWN0
dXJlLCBlbmNvZGVkVmFsdWUsIDAsIFdURjo6bnVsbG9wdCkpOwogfQogCi1jaGFyKiBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbk5ld1VpbnQzMkFycmF5V2l0aFNpemUoCi0gICAgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludDMyX3QgbGVuZ3RoLCBj
aGFyKiB2ZWN0b3IpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDMy
QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgaW50MzJfdCBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE5MTcsOCArMTkwNCw3IEBAIGNoYXIqIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uTmV3VWludDMyQXJyYXlXaXRoU2l6ZSgKICAgICByZXR1cm4gbmV3
VHlwZWRBcnJheVdpdGhTaXplPEpTVWludDMyQXJyYXk+KGdsb2JhbE9iamVjdCwgdm0sIHN0cnVj
dHVyZSwgbGVuZ3RoLCB2ZWN0b3IpOwogfQogCi1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bk5ld1VpbnQzMkFycmF5V2l0aE9uZUFyZ3VtZW50KAotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDMyQXJyYXlXaXRo
T25lQXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE5MjYsOCArMTkxMiw3IEBAIGNoYXIqIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uTmV3VWludDMyQXJyYXlXaXRoT25lQXJndW1lbnQoCiAgICAgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dp
dGhBcmd1bWVudHM8SlNVaW50MzJBcnJheT4oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGVuY29k
ZWRWYWx1ZSwgMCwgV1RGOjpudWxsb3B0KSk7CiB9CiAKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uTmV3RmxvYXQzMkFycmF5V2l0aFNpemUoCi0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludDMyX3QgbGVuZ3RoLCBjaGFyKiB2ZWN0
b3IpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3RmxvYXQzMkFycmF5V2l0
aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIGludDMyX3QgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CkBAIC0xOTM1LDggKzE5MjAsNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbk5ld0Zsb2F0MzJBcnJheVdpdGhTaXplKAogICAgIHJldHVybiBuZXdUeXBlZEFy
cmF5V2l0aFNpemU8SlNGbG9hdDMyQXJyYXk+KGdsb2JhbE9iamVjdCwgdm0sIHN0cnVjdHVyZSwg
bGVuZ3RoLCB2ZWN0b3IpOwogfQogCi1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0Zs
b2F0MzJBcnJheVdpdGhPbmVBcmd1bWVudCgKLSAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0Zsb2F0MzJBcnJheVdpdGhPbmVB
cmd1bWVudCwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwpAQCAtMTk0NCw4ICsxOTI4LDcgQEAgY2hhciogSklUX09QRVJBVElP
TiBvcGVyYXRpb25OZXdGbG9hdDMyQXJyYXlXaXRoT25lQXJndW1lbnQoCiAgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dpdGhB
cmd1bWVudHM8SlNGbG9hdDMyQXJyYXk+KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBlbmNvZGVk
VmFsdWUsIDAsIFdURjo6bnVsbG9wdCkpOwogfQogCi1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbk5ld0Zsb2F0NjRBcnJheVdpdGhTaXplKAotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnQzMl90IGxlbmd0aCwgY2hhciogdmVjdG9y
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0Zsb2F0NjRBcnJheVdpdGhT
aXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBpbnQzMl90IGxlbmd0aCwgY2hhciogdmVjdG9yKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwpAQCAtMTk1Myw4ICsxOTM2LDcgQEAgY2hhciogSklUX09QRVJBVElPTiBv
cGVyYXRpb25OZXdGbG9hdDY0QXJyYXlXaXRoU2l6ZSgKICAgICByZXR1cm4gbmV3VHlwZWRBcnJh
eVdpdGhTaXplPEpTRmxvYXQ2NEFycmF5PihnbG9iYWxPYmplY3QsIHZtLCBzdHJ1Y3R1cmUsIGxl
bmd0aCwgdmVjdG9yKTsKIH0KIAotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdGbG9h
dDY0QXJyYXlXaXRoT25lQXJndW1lbnQoCi0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdGbG9hdDY0QXJyYXlXaXRoT25lQXJn
dW1lbnQsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTE5NjIsNyArMTk0NCw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uTmV3RmxvYXQ2NEFycmF5V2l0aE9uZUFyZ3VtZW50KAogICAgIHJldHVybiByZWlu
dGVycHJldF9jYXN0PGNoYXIqPihjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdXaXRoQXJn
dW1lbnRzPEpTRmxvYXQ2NEFycmF5PihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgZW5jb2RlZFZh
bHVlLCAwLCBXVEY6Om51bGxvcHQpKTsKIH0KIAotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbk5ld0FycmF5SXRlcmF0b3IoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlJdGVyYXRvciwgSlND
ZWxsKiwgKFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVyZSogc3RydWN0dXJlKSkKIHsKICAgICBWTSYg
dm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTE5NzEsNyArMTk1Myw3IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBv
cGVyYXRpb25OZXdBcnJheUl0ZXJhdG9yKFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVyZSogc3RydWN0
CiAgICAgcmV0dXJuIEpTQXJyYXlJdGVyYXRvcjo6Y3JlYXRlV2l0aEluaXRpYWxWYWx1ZXModm0s
IHN0cnVjdHVyZSk7CiB9CiAKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdNYXBJ
dGVyYXRvcihWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25OZXdNYXBJdGVyYXRvciwgSlNDZWxsKiwgKFZNKiB2bVBv
aW50ZXIsIFN0cnVjdHVyZSogc3RydWN0dXJlKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVy
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTE5ODAsNyArMTk2Miw3IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdNYXBJ
dGVyYXRvcihWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyCiAgICAgcmV0dXJuIEpT
TWFwSXRlcmF0b3I6OmNyZWF0ZVdpdGhJbml0aWFsVmFsdWVzKHZtLCBzdHJ1Y3R1cmUpOwogfQog
Ci1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3U2V0SXRlcmF0b3IoVk0qIHZtUG9p
bnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uTmV3U2V0SXRlcmF0b3IsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xOTg5LDcgKzE5NzEsNyBA
QCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3U2V0SXRlcmF0b3IoVk0qIHZtUG9p
bnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cgogICAgIHJldHVybiBKU1NldEl0ZXJhdG9yOjpjcmVh
dGVXaXRoSW5pdGlhbFZhbHVlcyh2bSwgc3RydWN0dXJlKTsKIH0KIAotSlNDZWxsKiBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkNyZWF0ZUFjdGl2YXRpb25EaXJlY3QoVk0qIHZtUG9pbnRlciwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIEpTU2NvcGUqIHNjb3BlLCBTeW1ib2xUYWJsZSogdGFibGUsIEVu
Y29kZWRKU1ZhbHVlIGluaXRpYWxWYWx1ZUVuY29kZWQpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ3JlYXRlQWN0aXZhdGlvbkRpcmVjdCwgSlNDZWxsKiwgKFZNKiB2bVBvaW50
ZXIsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1Njb3BlKiBzY29wZSwgU3ltYm9sVGFibGUqIHRh
YmxlLCBFbmNvZGVkSlNWYWx1ZSBpbml0aWFsVmFsdWVFbmNvZGVkKSkKIHsKICAgICBWTSYgdm0g
PSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTE5OTksNyArMTk4MSw3IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVy
YXRpb25DcmVhdGVBY3RpdmF0aW9uRGlyZWN0KFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVyZSoKICAg
ICByZXR1cm4gSlNMZXhpY2FsRW52aXJvbm1lbnQ6OmNyZWF0ZSh2bSwgc3RydWN0dXJlLCBzY29w
ZSwgdGFibGUsIGluaXRpYWxWYWx1ZSk7CiB9CiAKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVy
YXRpb25DcmVhdGVEaXJlY3RBcmd1bWVudHMoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIHVpbnQzMl90IGxlbmd0aCwgdWludDMyX3QgbWluQ2FwYWNpdHkpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlRGlyZWN0QXJndW1lbnRzLCBKU0NlbGwqLCAo
Vk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIHVpbnQzMl90IGxlbmd0aCwgdWlu
dDMyX3QgbWluQ2FwYWNpdHkpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjAxMyw3ICsx
OTk1LDcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNyZWF0ZURpcmVjdEFyZ3Vt
ZW50cyhWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUqIHMKICAgICByZXR1cm4gcmVzdWx0OwogfQog
Ci1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ3JlYXRlU2NvcGVkQXJndW1lbnRzKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWdpc3Rl
ciogYXJndW1lbnRTdGFydCwgdWludDMyX3QgbGVuZ3RoLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIEpT
TGV4aWNhbEVudmlyb25tZW50KiBzY29wZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25DcmVhdGVTY29wZWRBcmd1bWVudHMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVnaXN0ZXIqIGFyZ3VtZW50U3RhcnQs
IHVpbnQzMl90IGxlbmd0aCwgSlNGdW5jdGlvbiogY2FsbGVlLCBKU0xleGljYWxFbnZpcm9ubWVu
dCogc2NvcGUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMDI3LDcgKzIw
MDksNyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ3JlYXRlU2NvcGVkQXJndW1l
bnRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgICAgICB2bSwgc3RydWN0dXJlLCBh
cmd1bWVudFN0YXJ0LCBsZW5ndGgsIGNhbGxlZSwgdGFibGUsIHNjb3BlKTsKIH0KIAotSlNDZWxs
KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNyZWF0ZUNsb25lZEFyZ3VtZW50cyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVnaXN0ZXIqIGFyZ3Vt
ZW50U3RhcnQsIHVpbnQzMl90IGxlbmd0aCwgSlNGdW5jdGlvbiogY2FsbGVlKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUNsb25lZEFyZ3VtZW50cywgSlNDZWxsKiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWdp
c3RlciogYXJndW1lbnRTdGFydCwgdWludDMyX3QgbGVuZ3RoLCBKU0Z1bmN0aW9uKiBjYWxsZWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMDM2LDcgKzIwMTgsNyBAQCBK
U0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgICAgICBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwg
YXJndW1lbnRTdGFydCwgbGVuZ3RoLCBjYWxsZWUpOwogfQogCi1KU0NlbGwqIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uQ3JlYXRlQXJndW1lbnRzQnV0dGVyZmx5KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFJlZ2lzdGVyKiBhcmd1bWVudFN0YXJ0LCB1aW50MzJfdCBhcmd1bWVudENvdW50
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUFyZ3VtZW50c0J1dHRl
cmZseSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZ2lzdGVyKiBh
cmd1bWVudFN0YXJ0LCB1aW50MzJfdCBhcmd1bWVudENvdW50KSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwpAQCAtMjA1Myw3ICsyMDM1LDcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkNyZWF0ZUFyZ3VtZW50c0J1dHRlcmZseShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2IKICAgICByZXR1cm4gYnV0dGVyZmx5OwogfQogCi1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uQ3JlYXRlRGlyZWN0QXJndW1lbnRzRHVyaW5nRXhpdChWTSogdm1Qb2ludGVyLCBJbmxp
bmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSwgSlNGdW5jdGlvbiogY2FsbGVlLCB1aW50MzJf
dCBhcmd1bWVudENvdW50KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0
ZURpcmVjdEFyZ3VtZW50c0R1cmluZ0V4aXQsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyLCBJbmxp
bmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSwgSlNGdW5jdGlvbiogY2FsbGVlLCB1aW50MzJf
dCBhcmd1bWVudENvdW50KSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIwODMsNyArMjA2
NSw3IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25DcmVhdGVEaXJlY3RBcmd1bWVu
dHNEdXJpbmdFeGl0KFZNKiB2bVBvaW50ZXIsIEluCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAot
SlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNyZWF0ZUNsb25lZEFyZ3VtZW50c0R1cmlu
Z0V4aXQoVk0qIHZtUG9pbnRlciwgSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWUsIEpT
RnVuY3Rpb24qIGNhbGxlZSwgdWludDMyX3QgYXJndW1lbnRDb3VudCkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVDbG9uZWRBcmd1bWVudHNEdXJpbmdFeGl0LCBKU0Nl
bGwqLCAoVk0qIHZtUG9pbnRlciwgSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWUsIEpT
RnVuY3Rpb24qIGNhbGxlZSwgdWludDMyX3QgYXJndW1lbnRDb3VudCkpCiB7CiAgICAgVk0mIHZt
ID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CkBAIC0yMTEyLDcgKzIwOTQsNyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzRHVyaW5nRXhpdChWTSogdm1Qb2ludGVyLCBJbgog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25D
cmVhdGVSZXN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZ2lzdGVyKiBhcmd1bWVu
dFN0YXJ0LCB1bnNpZ25lZCBudW1iZXJPZlBhcmFtc1RvU2tpcCwgdW5zaWduZWQgYXJyYXlTaXpl
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVJlc3QsIEpTQ2VsbCos
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwg
dW5zaWduZWQgbnVtYmVyT2ZQYXJhbXNUb1NraXAsIHVuc2lnbmVkIGFycmF5U2l6ZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIxMjQsNyArMjEwNiw3IEBAIEpTQ2VsbCog
SklUX09QRVJBVElPTiBvcGVyYXRpb25DcmVhdGVSZXN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFJlZ2lzdGVyCiAgICAgcmV0dXJuIGNvbnN0cnVjdEFycmF5KGdsb2JhbE9iamVjdCwg
c3RydWN0dXJlLCBhcmd1bWVudHNUb0NvcHlSZWdpb24sIGFycmF5U2l6ZSk7CiB9CiAKLXNpemVf
dCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblR5cGVPZklzT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblR5cGVPZklzT2JqZWN0LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0NlbGwqIG9iamVjdCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTIxMzUsNyArMjExNyw3IEBAIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblR5cGVPZklz
T2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsCiAgICAgcmV0dXJuIGpz
VHlwZW9mSXNPYmplY3QoZ2xvYmFsT2JqZWN0LCBvYmplY3QpOwogfQogCi1zaXplX3QgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25UeXBlT2ZJc0Z1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQ2VsbCogb2JqZWN0KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blR5cGVPZklzRnVuY3Rpb24sIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQ2VsbCogb2JqZWN0KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjE0
Niw3ICsyMTI4LDcgQEAgc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVHlwZU9mSXNGdW5j
dGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0MKICAgICByZXR1cm4ganNUeXBl
b2ZJc0Z1bmN0aW9uKGdsb2JhbE9iamVjdCwgb2JqZWN0KTsKIH0KIAotc2l6ZV90IEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uT2JqZWN0SXNDYWxsYWJsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0NlbGwqIG9iamVjdCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25P
YmplY3RJc0NhbGxhYmxlLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U0NlbGwqIG9iamVjdCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIxNTcs
NyArMjEzOSw3IEBAIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9iamVjdElzQ2FsbGFi
bGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDCiAgICAgcmV0dXJuIG9iamVjdC0+
aXNDYWxsYWJsZSh2bSk7CiB9CiAKLXNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbklzQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdmFs
dWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXNDb25zdHJ1Y3Rvciwgc2l6
ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdmFsdWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMTY2LDcgKzIxNDgsNyBAQCBz
aXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Jc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZQogICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUodmFsdWUp
LmlzQ29uc3RydWN0b3Iodm0pOwogfQogCi1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
VHlwZU9mT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblR5cGVPZk9iamVjdCwgSlNDZWxs
KiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0KSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjE4MSw3ICsyMTYzLDcgQEAgSlNDZWxsKiBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblR5cGVPZk9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0NlbGwKICAgICByZXR1cm4gdm0uc21hbGxTdHJpbmdzLm9iamVjdFN0cmluZygp
OwogfQogCi1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFsbG9jYXRlU2ltcGxlUHJvcGVy
dHlTdG9yYWdlV2l0aEluaXRpYWxDYXBhY2l0eShWTSogdm1Qb2ludGVyKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlU2ltcGxlUHJvcGVydHlTdG9yYWdlV2l0aElu
aXRpYWxDYXBhY2l0eSwgY2hhciosIChWTSogdm1Qb2ludGVyKSkKIHsKICAgICBWTSYgdm0gPSAq
dm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKQEAgLTIxOTEsNyArMjE3Myw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
QWxsb2NhdGVTaW1wbGVQcm9wZXJ0eVN0b3JhZ2VXaXRoSW5pdGlhbENhcGFjaXR5KFZNCiAgICAg
ICAgIEJ1dHRlcmZseTo6Y3JlYXRlVW5pbml0aWFsaXplZCh2bSwgbnVsbHB0ciwgMCwgaW5pdGlh
bE91dE9mTGluZUNhcGFjaXR5LCBmYWxzZSwgMCkpOwogfQogCi1jaGFyKiBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkFsbG9jYXRlU2ltcGxlUHJvcGVydHlTdG9yYWdlKFZNKiB2bVBvaW50ZXIsIHNp
emVfdCBuZXdTaXplKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRl
U2ltcGxlUHJvcGVydHlTdG9yYWdlLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIHNpemVfdCBuZXdT
aXplKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIyMDEsNyArMjE4Myw3IEBAIGNoYXIq
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQWxsb2NhdGVTaW1wbGVQcm9wZXJ0eVN0b3JhZ2UoVk0q
IHZtUG9pbnRlciwgc2l6ZV90CiAgICAgICAgIEJ1dHRlcmZseTo6Y3JlYXRlVW5pbml0aWFsaXpl
ZCh2bSwgbnVsbHB0ciwgMCwgbmV3U2l6ZSwgZmFsc2UsIDApKTsKIH0KIAotY2hhciogSklUX09Q
RVJBVElPTiBvcGVyYXRpb25BbGxvY2F0ZUNvbXBsZXhQcm9wZXJ0eVN0b3JhZ2VXaXRoSW5pdGlh
bENhcGFjaXR5KFZNKiB2bVBvaW50ZXIsIEpTT2JqZWN0KiBvYmplY3QpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVDb21wbGV4UHJvcGVydHlTdG9yYWdlV2l0aElu
aXRpYWxDYXBhY2l0eSwgY2hhciosIChWTSogdm1Qb2ludGVyLCBKU09iamVjdCogb2JqZWN0KSkK
IHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIyMTIsNyArMjE5NCw3IEBAIGNoYXIqIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uQWxsb2NhdGVDb21wbGV4UHJvcGVydHlTdG9yYWdlV2l0aEluaXRp
YWxDYXBhY2l0eShWCiAgICAgICAgIG9iamVjdC0+YWxsb2NhdGVNb3JlT3V0T2ZMaW5lU3RvcmFn
ZSh2bSwgMCwgaW5pdGlhbE91dE9mTGluZUNhcGFjaXR5KSk7CiB9CiAKLWNoYXIqIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uQWxsb2NhdGVDb21wbGV4UHJvcGVydHlTdG9yYWdlKFZNKiB2bVBvaW50
ZXIsIEpTT2JqZWN0KiBvYmplY3QsIHNpemVfdCBuZXdTaXplKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlQ29tcGxleFByb3BlcnR5U3RvcmFnZSwgY2hhciosIChW
TSogdm1Qb2ludGVyLCBKU09iamVjdCogb2JqZWN0LCBzaXplX3QgbmV3U2l6ZSkpCiB7CiAgICAg
Vk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CkBAIC0yMjIyLDcgKzIyMDQsNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkFsbG9jYXRlQ29tcGxleFByb3BlcnR5U3RvcmFnZShWTSogdm1Qb2ludGVyLCBK
U09iagogICAgICAgICBvYmplY3QtPmFsbG9jYXRlTW9yZU91dE9mTGluZVN0b3JhZ2Uodm0sIG9i
amVjdC0+c3RydWN0dXJlKHZtKS0+b3V0T2ZMaW5lQ2FwYWNpdHkoKSwgbmV3U2l6ZSkpOwogfQog
Ci1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkVuc3VyZUludDMyKFZNKiB2bVBvaW50ZXIs
IEpTQ2VsbCogY2VsbCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnN1cmVJ
bnQzMiwgY2hhciosIChWTSogdm1Qb2ludGVyLCBKU0NlbGwqIGNlbGwpKQogewogICAgIFZNJiB2
bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwpAQCAtMjIzNiw3ICsyMjE4LDcgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVy
YXRpb25FbnN1cmVJbnQzMihWTSogdm1Qb2ludGVyLCBKU0NlbGwqIGNlbGwpCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25FbnN1cmVEb3VibGUo
Vk0qIHZtUG9pbnRlciwgSlNDZWxsKiBjZWxsKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkVuc3VyZURvdWJsZSwgY2hhciosIChWTSogdm1Qb2ludGVyLCBKU0NlbGwqIGNlbGwp
KQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjI1MCw3ICsyMjMyLDcgQEAgY2hhciogSklU
X09QRVJBVElPTiBvcGVyYXRpb25FbnN1cmVEb3VibGUoVk0qIHZtUG9pbnRlciwgSlNDZWxsKiBj
ZWxsKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uRW5zdXJlQ29udGlndW91cyhWTSogdm1Qb2ludGVyLCBKU0NlbGwqIGNlbGwpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW5zdXJlQ29udGlndW91cywgY2hhciosIChWTSog
dm1Qb2ludGVyLCBKU0NlbGwqIGNlbGwpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjI2
NCw3ICsyMjQ2LDcgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25FbnN1cmVDb250aWd1
b3VzKFZNKiB2bVBvaW50ZXIsIEpTQ2VsbCogY2VsbCkKICAgICByZXR1cm4gcmVzdWx0OwogfQog
Ci1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkVuc3VyZUFycmF5U3RvcmFnZShWTSogdm1Q
b2ludGVyLCBKU0NlbGwqIGNlbGwpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
RW5zdXJlQXJyYXlTdG9yYWdlLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEpTQ2VsbCogY2VsbCkp
CiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMjc4LDcgKzIyNjAsNyBAQCBjaGFyKiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkVuc3VyZUFycmF5U3RvcmFnZShWTSogdm1Qb2ludGVyLCBKU0Nl
bGwqIGNlbGwpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25IYXNHZW5lcmljUHJvcGVydHkoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgSlNDZWxsKiBwcm9wZXJ0
eSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNHZW5lcmljUHJvcGVydHks
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgSlNDZWxsKiBwcm9wZXJ0eSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIyOTgsNyArMjI4MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uSGFzR2VuZXJpY1Byb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNC
b29sZWFuKGJhc2UtPmhhc1Byb3BlcnR5R2VuZXJpYyhnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OkdldE93blByb3BlcnR5KSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25JblN0cnVjdHVyZVBy
b3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogYmFzZSwgSlNTdHJp
bmcqIHByb3BlcnR5KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluU3RydWN0
dXJlUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNDZWxsKiBiYXNlLCBKU1N0cmluZyogcHJvcGVydHkpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0yMzA3LDcgKzIyODksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkluU3RydWN0dXJlUHJvcGVydHkoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKENvbW1vblNsb3dQYXRoczo6
b3BJbkJ5VmFsKGdsb2JhbE9iamVjdCwgYmFzZSwgcHJvcGVydHkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFzT3duU3RydWN0dXJlUHJvcGVydHkoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlLCBKU1N0cmluZyogcHJvcGVy
dHkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzT3duU3RydWN0dXJlUHJv
cGVydHksIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlND
ZWxsKiBiYXNlLCBKU1N0cmluZyogcHJvcGVydHkpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CkBAIC0yMzIwLDcgKzIzMDIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkhhc093blN0cnVjdHVyZVByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnbAogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKG9iamVjdFByb3RvdHlwZUhhc093blBy
b3BlcnR5KGdsb2JhbE9iamVjdCwgYmFzZSwgcHJvcGVydHlOYW1lKSkpOwogfQogCi1zaXplX3Qg
SklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlCeUludChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGJhc2VDZWxsLCBpbnQzMl90IHN1YnNjcmlwdCwg
aW50MzJfdCBpbnRlcm5hbE1ldGhvZFR5cGUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5QnlJbnQsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQ2VsbCogYmFzZUNlbGwsIGludDMyX3Qgc3Vic2NyaXB0LCBpbnQzMl90
IGludGVybmFsTWV0aG9kVHlwZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTIzMzMsNyArMjMxNSw3IEBAIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4
ZWRQcm9wZXJ0eUJ5SW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0dXJuIG9i
amVjdC0+aGFzUHJvcGVydHlHZW5lcmljKGdsb2JhbE9iamVjdCwgc3Vic2NyaXB0LCBzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZT4oaW50ZXJuYWxNZXRob2RUeXBl
KSk7CiB9CiAKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRQcm9wZXJ0eUVudW1l
cmF0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2UpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJvcGVydHlFbnVt
ZXJhdG9yLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2UpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0y
MzUwLDcgKzIzMzIsNyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0UHJvcGVy
dHlFbnVtZXJhdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTihzY29wZSwgcHJvcGVydHlOYW1lRW51bWVyYXRvcihnbG9iYWxPYmplY3QsIGJhc2VP
YmplY3QpKTsKIH0KIAotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldFByb3BlcnR5
RW51bWVyYXRvckNlbGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxs
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByb3BlcnR5RW51bWVyYXRv
ckNlbGwsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNl
bGwpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMzYzLDcgKzIzNDUsNyBA
QCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0UHJvcGVydHlFbnVtZXJhdG9yQ2Vs
bChKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwg
cHJvcGVydHlOYW1lRW51bWVyYXRvcihnbG9iYWxPYmplY3QsIGJhc2UpKTsKIH0KIAotSlNDZWxs
KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvSW5kZXhTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgaW50MzJfdCBpbmRleCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Ub0luZGV4U3RyaW5nLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgaW50MzJfdCBpbmRleCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIz
NzEsNyArMjM1Myw3IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25Ub0luZGV4U3Ry
aW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGludDMyCiAgICAgcmV0dXJuIGpzU3Ry
aW5nKHZtLCBJZGVudGlmaWVyOjpmcm9tKHZtLCBpbmRleCkuc3RyaW5nKCkpOwogfQogCi1KU0Nl
bGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3UmVnZXhwV2l0aExhc3RJbmRleChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIHJlZ2V4cFB0ciwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZExhc3RJbmRleCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdS
ZWdleHBXaXRoTGFzdEluZGV4LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNDZWxsKiByZWdleHBQdHIsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRMYXN0SW5kZXgpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMzgyLDcgKzIzNjQsNyBAQCBKU0Nl
bGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3UmVnZXhwV2l0aExhc3RJbmRleChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZQogICAgIHJldHVybiBSZWdFeHBPYmplY3Q6OmNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0LT5yZWdFeHBTdHJ1Y3R1cmUoKSwgcmVnZXhwLCBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZExhc3RJbmRleCkpOwogfQogCi1TdHJpbmdJbXBsKiBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblJlc29sdmVSb3BlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBz
dHJpbmcpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVzb2x2ZVJvcGUsIFN0
cmluZ0ltcGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIHN0cmlu
ZykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIzOTEsNyArMjM3Myw3IEBA
IFN0cmluZ0ltcGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVzb2x2ZVJvcGUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNTCiAgICAgcmV0dXJuIHN0cmluZy0+dmFsdWUoZ2xvYmFs
T2JqZWN0KS5pbXBsKCk7CiB9CiAKLUpTU3RyaW5nKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN0
cmluZ1ZhbHVlT2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEFyZ3VtZW50KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmlu
Z1ZhbHVlT2YsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKQEAgLTI0MTAsNyArMjM5Miw3IEBAIEpTU3RyaW5nKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blN0cmluZ1ZhbHVlT2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jCiAgICAgcmV0
dXJuIG51bGxwdHI7CiB9CiAKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25TdHJpbmdT
dWJzdHIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBpbnQzMl90
IGZyb20sIGludDMyX3Qgc3BhbikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25T
dHJpbmdTdWJzdHIsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0Nl
bGwqIGNlbGwsIGludDMyX3QgZnJvbSwgaW50MzJfdCBzcGFuKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwpAQCAtMjQxOSw3ICsyNDAxLDcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblN0cmluZ1N1YnN0cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0Nl
bGwKICAgICByZXR1cm4ganNTdWJzdHJpbmcodm0sIGdsb2JhbE9iamVjdCwganNDYXN0PEpTU3Ry
aW5nKj4oY2VsbCksIGZyb20sIHNwYW4pOwogfQogCi1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uU3RyaW5nU2xpY2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBj
ZWxsLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGVuZCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25TdHJpbmdTbGljZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQ2VsbCogY2VsbCwgaW50MzJfdCBzdGFydCwgaW50MzJfdCBlbmQpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNDMwLDcgKzI0MTIsNyBAQCBKU0NlbGwqIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uU3RyaW5nU2xpY2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDZWxsKgogICAgIHJldHVybiBzdHJpbmdTbGljZShnbG9iYWxPYmplY3QsIHZtLCBz
dHJpbmcsIHN0cmluZy0+bGVuZ3RoKCksIHN0YXJ0LCBlbmQpOwogfQogCi1KU1N0cmluZyogSklU
X09QRVJBVElPTiBvcGVyYXRpb25Ub0xvd2VyQ2FzZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU1N0cmluZyogc3RyaW5nLCB1aW50MzJfdCBmYWlsaW5nSW5kZXgpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9Mb3dlckNhc2UsIEpTU3RyaW5nKiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBzdHJpbmcsIHVpbnQzMl90IGZhaWxpbmdJ
bmRleCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI0NDksNyArMjQzMSw3
IEBAIEpTU3RyaW5nKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvTG93ZXJDYXNlKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3Bl
LCBqc1N0cmluZyh2bSwgbG93ZXJjYXNlZFN0cmluZykpOwogfQogCi1jaGFyKiBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkludDMyVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
aW50MzJfdCB2YWx1ZSwgaW50MzJfdCByYWRpeCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25JbnQzMlRvU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIGludDMyX3QgdmFsdWUsIGludDMyX3QgcmFkaXgpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CkBAIC0yNDY1LDcgKzI0NDcsNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkludDMyVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgaW50MzJfdAog
ICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihpbnQzMlRvU3RyaW5nKHZtLCB2YWx1
ZSwgcmFkaXgpKTsKIH0KIAotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25JbnQ1MlRvU3Ry
aW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGludDY0X3QgdmFsdWUsIGludDMyX3Qg
cmFkaXgpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW50NTJUb1N0cmluZywg
Y2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBpbnQ2NF90IHZhbHVlLCBpbnQz
Ml90IHJhZGl4KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjQ4MSw3ICsy
NDYzLDcgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25JbnQ1MlRvU3RyaW5nKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGludDY0X3QKICAgICByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxjaGFyKj4oaW50NTJUb1N0cmluZyh2bSwgdmFsdWUsIHJhZGl4KSk7CiB9CiAKLWNoYXIq
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRG91YmxlVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgZG91YmxlIHZhbHVlLCBpbnQzMl90IHJhZGl4KQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkRvdWJsZVRvU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIGRvdWJsZSB2YWx1ZSwgaW50MzJfdCByYWRpeCkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI0OTcsNyArMjQ3OSw3IEBAIGNoYXIqIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uRG91YmxlVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgZG91YmxlCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG51bWJlclRvU3Ry
aW5nKHZtLCB2YWx1ZSwgcmFkaXgpKTsKIH0KIAotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRp
b25JbnQzMlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgaW50MzJfdCB2YWx1ZSwgaW50MzJfdCByYWRpeCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25JbnQzMlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgsIGNoYXIqLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgaW50MzJfdCB2YWx1ZSwgaW50MzJfdCByYWRpeCkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI1MDYsNyArMjQ4OCw3IEBAIGNoYXIqIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uSW50MzJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGludDMy
VG9TdHJpbmcodm0sIHZhbHVlLCByYWRpeCkpOwogfQogCi1jaGFyKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkludDUyVG9TdHJpbmdXaXRoVmFsaWRSYWRpeChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBpbnQ2NF90IHZhbHVlLCBpbnQzMl90IHJhZGl4KQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkludDUyVG9TdHJpbmdXaXRoVmFsaWRSYWRpeCwgY2hhciosIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBpbnQ2NF90IHZhbHVlLCBpbnQzMl90IHJhZGl4KSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjUxNSw3ICsyNDk3LDcgQEAgY2hh
ciogSklUX09QRVJBVElPTiBvcGVyYXRpb25JbnQ1MlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4o
aW50NTJUb1N0cmluZyh2bSwgdmFsdWUsIHJhZGl4KSk7CiB9CiAKLWNoYXIqIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uRG91YmxlVG9TdHJpbmdXaXRoVmFsaWRSYWRpeChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBkb3VibGUgdmFsdWUsIGludDMyX3QgcmFkaXgpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uRG91YmxlVG9TdHJpbmdXaXRoVmFsaWRSYWRpeCwgY2hhcios
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBkb3VibGUgdmFsdWUsIGludDMyX3QgcmFk
aXgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNTI0LDcgKzI1MDYsNyBA
QCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRvdWJsZVRvU3RyaW5nV2l0aFZhbGlkUmFk
aXgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNo
YXIqPihudW1iZXJUb1N0cmluZyh2bSwgdmFsdWUsIHJhZGl4KSk7CiB9CiAKLUpTU3RyaW5nKiBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblNpbmdsZUNoYXJhY3RlclN0cmluZyhWTSogdm1Qb2ludGVy
LCBpbnQzMl90IGNoYXJhY3RlcikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25T
aW5nbGVDaGFyYWN0ZXJTdHJpbmcsIEpTU3RyaW5nKiwgKFZNKiB2bVBvaW50ZXIsIGludDMyX3Qg
Y2hhcmFjdGVyKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI1MzMsNyArMjUxNSw3IEBA
IEpTU3RyaW5nKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNpbmdsZUNoYXJhY3RlclN0cmluZyhW
TSogdm1Qb2ludGVyLCBpbnQzMl90IGNoCiAgICAgcmV0dXJuIGpzU2luZ2xlQ2hhcmFjdGVyU3Ry
aW5nKHZtLCBzdGF0aWNfY2FzdDxVQ2hhcj4oY2hhcmFjdGVyKSk7CiB9CiAKLVN5bWJvbCogSklU
X09QRVJBVElPTiBvcGVyYXRpb25OZXdTeW1ib2woVk0qIHZtUG9pbnRlcikKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25OZXdTeW1ib2wsIFN5bWJvbCosIChWTSogdm1Qb2ludGVy
KSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI1NDIsNyArMjUyNCw3IEBAIFN5bWJvbCog
SklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdTeW1ib2woVk0qIHZtUG9pbnRlcikKICAgICByZXR1
cm4gU3ltYm9sOjpjcmVhdGUodm0pOwogfQogCi1TeW1ib2wqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uTmV3U3ltYm9sV2l0aERlc2NyaXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTU3RyaW5nKiBkZXNjcmlwdGlvbikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25OZXdTeW1ib2xXaXRoRGVzY3JpcHRpb24sIFN5bWJvbCosIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1N0cmluZyogZGVzY3JpcHRpb24pKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CkBAIC0yNTU1LDcgKzI1MzcsNyBAQCBTeW1ib2wqIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uTmV3U3ltYm9sV2l0aERlc2NyaXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgog
ICAgIHJldHVybiBTeW1ib2w6OmNyZWF0ZVdpdGhEZXNjcmlwdGlvbih2bSwgc3RyaW5nKTsKIH0K
IAotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld1N0cmluZ09iamVjdChWTSogdm1Q
b2ludGVyLCBKU1N0cmluZyogc3RyaW5nLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdTdHJpbmdPYmplY3QsIEpTQ2VsbCosIChWTSog
dm1Qb2ludGVyLCBKU1N0cmluZyogc3RyaW5nLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkpCiB7CiAg
ICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNTY0LDcgKzI1NDYsNyBAQCBKU0NlbGwqIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uTmV3U3RyaW5nT2JqZWN0KFZNKiB2bVBvaW50ZXIsIEpTU3RyaW5nKiBz
dHJpbmcsCiAgICAgcmV0dXJuIFN0cmluZ09iamVjdDo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUsIHN0
cmluZyk7CiB9CiAKLUpTU3RyaW5nKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvU3RyaW5nT25D
ZWxsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub1N0cmluZ09uQ2VsbCwgSlNTdHJpbmcqLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwpAQCAtMjU3Myw3ICsyNTU1LDcgQEAgSlNTdHJpbmcqIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uVG9TdHJpbmdPbkNlbGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlMKICAgICByZXR1cm4gSlNWYWx1ZShjZWxsKS50b1N0cmluZyhnbG9iYWxPYmplY3QpOwog
fQogCi1KU1N0cmluZyogSklUX09QRVJBVElPTiBvcGVyYXRpb25Ub1N0cmluZyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25Ub1N0cmluZywgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdmFsdWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0yNTgyLDcgKzI1NjQsNyBAQCBKU1N0cmluZyogSklUX09QRVJBVElP
TiBvcGVyYXRpb25Ub1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SgogICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUodmFsdWUpLnRvU3RyaW5nKGdsb2JhbE9iamVj
dCk7CiB9CiAKLUpTU3RyaW5nKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxTdHJpbmdDb25z
dHJ1Y3Rvck9uQ2VsbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ2FsbFN0cmluZ0NvbnN0cnVjdG9y
T25DZWxsLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwq
IGNlbGwpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNTkxLDcgKzI1NzMs
NyBAQCBKU1N0cmluZyogSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsU3RyaW5nQ29uc3RydWN0
b3JPbkNlbGwoSlNHbG9iYWxPYmplY3QqIGdsbwogICAgIHJldHVybiBzdHJpbmdDb25zdHJ1Y3Rv
cihnbG9iYWxPYmplY3QsIGNlbGwpOwogfQogCi1KU1N0cmluZyogSklUX09QRVJBVElPTiBvcGVy
YXRpb25DYWxsU3RyaW5nQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q2FsbFN0cmluZ0NvbnN0cnVjdG9yLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKQEAgLTI2MDAsNyArMjU4Miw3IEBAIEpTU3RyaW5nKiBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkNhbGxTdHJpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAg
cmV0dXJuIHN0cmluZ0NvbnN0cnVjdG9yKGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKHZh
bHVlKSk7CiB9CiAKLUpTU3RyaW5nKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk1ha2VSb3BlMihK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogbGVmdCwgSlNTdHJpbmcqIHJp
Z2h0KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1ha2VSb3BlMiwgSlNTdHJp
bmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIGxlZnQsIEpTU3Ry
aW5nKiByaWdodCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI2MDksNyAr
MjU5MSw3IEBAIEpTU3RyaW5nKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk1ha2VSb3BlMihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluCiAgICAgcmV0dXJuIGpzU3RyaW5nKGds
b2JhbE9iamVjdCwgbGVmdCwgcmlnaHQpOwogfQogCi1KU1N0cmluZyogSklUX09QRVJBVElPTiBv
cGVyYXRpb25NYWtlUm9wZTMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcq
IGEsIEpTU3RyaW5nKiBiLCBKU1N0cmluZyogYykKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25NYWtlUm9wZTMsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTU3RyaW5nKiBhLCBKU1N0cmluZyogYiwgSlNTdHJpbmcqIGMpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNjE4LDcgKzI2MDAsNyBAQCBKU1N0cmluZyogSklUX09Q
RVJBVElPTiBvcGVyYXRpb25NYWtlUm9wZTMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNTdHJpbgogICAgIHJldHVybiBqc1N0cmluZyhnbG9iYWxPYmplY3QsIGEsIGIsIGMpOwogfQog
Ci1KU1N0cmluZyogSklUX09QRVJBVElPTiBvcGVyYXRpb25TdHJDYXQyKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGEsIEVuY29kZWRKU1ZhbHVlIGIpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyQ2F0MiwgSlNTdHJpbmcqLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYSwgRW5jb2RlZEpTVmFsdWUg
YikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI2MzUsNyArMjYxNyw3IEBA
IEpTU3RyaW5nKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN0ckNhdDIoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBq
c1N0cmluZyhnbG9iYWxPYmplY3QsIHN0cjEsIHN0cjIpKTsKIH0KICAgICAKLUpTU3RyaW5nKiBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblN0ckNhdDMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgYSwgRW5jb2RlZEpTVmFsdWUgYiwgRW5jb2RlZEpTVmFsdWUgYykK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJDYXQzLCBKU1N0cmluZyosIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBhLCBFbmNvZGVkSlNW
YWx1ZSBiLCBFbmNvZGVkSlNWYWx1ZSBjKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtMjY1NSw3ICsyNjM3LDcgQEAgSlNTdHJpbmcqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
U3RyQ2F0MyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlMKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4oc2NvcGUsIGpzU3RyaW5nKGdsb2JhbE9iamVjdCwgc3RyMSwgc3RyMiwg
c3RyMykpOwogfQogCi1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkZpbmRTd2l0Y2hJbW1U
YXJnZXRGb3JEb3VibGUoVk0qIHZtUG9pbnRlciwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
LCBzaXplX3QgdGFibGVJbmRleCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25G
aW5kU3dpdGNoSW1tVGFyZ2V0Rm9yRG91YmxlLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgc2l6ZV90IHRhYmxlSW5kZXgpKQogewogICAgIFZNJiB2
bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwpAQCAtMjY3MSw3ICsyNjUzLDcgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVy
YXRpb25GaW5kU3dpdGNoSW1tVGFyZ2V0Rm9yRG91YmxlKFZNKiB2bVBvaW50ZXIsIEVuY29kZWQK
ICAgICByZXR1cm4gdGFibGUuY3RpRGVmYXVsdC5leGVjdXRhYmxlQWRkcmVzczxjaGFyKj4oKTsK
IH0KIAotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25Td2l0Y2hTdHJpbmcoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgc2l6ZV90IHRhYmxlSW5kZXgsIEpTU3RyaW5nKiBzdHJpbmcp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoU3RyaW5nLCBjaGFyKiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHNpemVfdCB0YWJsZUluZGV4LCBKU1N0cmlu
Zyogc3RyaW5nKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjY4NSwyNyAr
MjY2NywyNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN3aXRjaFN0cmluZyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBzaXplX3QgdAogICAgIHJldHVybiBjYWxsRnJhbWUt
PmNvZGVCbG9jaygpLT5zdHJpbmdTd2l0Y2hKdW1wVGFibGUodGFibGVJbmRleCkuY3RpRm9yVmFs
dWUoc3RySW1wbCkuZXhlY3V0YWJsZUFkZHJlc3M8Y2hhcio+KCk7CiB9CiAKLXVpbnRwdHJfdCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsTGVzcyhTdHJpbmdJbXBsKiBh
LCBTdHJpbmdJbXBsKiBiKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBh
cmVTdHJpbmdJbXBsTGVzcywgdWludHB0cl90LCAoU3RyaW5nSW1wbCogYSwgU3RyaW5nSW1wbCog
YikpCiB7CiAgICAgcmV0dXJuIGNvZGVQb2ludENvbXBhcmUoYSwgYikgPCAwOwogfQogCi11aW50
cHRyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlU3RyaW5nSW1wbExlc3NFcShTdHJp
bmdJbXBsKiBhLCBTdHJpbmdJbXBsKiBiKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNvbXBhcmVTdHJpbmdJbXBsTGVzc0VxLCB1aW50cHRyX3QsIChTdHJpbmdJbXBsKiBhLCBT
dHJpbmdJbXBsKiBiKSkKIHsKICAgICByZXR1cm4gY29kZVBvaW50Q29tcGFyZShhLCBiKSA8PSAw
OwogfQogCi11aW50cHRyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlU3RyaW5nSW1w
bEdyZWF0ZXIoU3RyaW5nSW1wbCogYSwgU3RyaW5nSW1wbCogYikKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nSW1wbEdyZWF0ZXIsIHVpbnRwdHJfdCwgKFN0
cmluZ0ltcGwqIGEsIFN0cmluZ0ltcGwqIGIpKQogewogICAgIHJldHVybiBjb2RlUG9pbnRDb21w
YXJlKGEsIGIpID4gMDsKIH0KIAotdWludHB0cl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29t
cGFyZVN0cmluZ0ltcGxHcmVhdGVyRXEoU3RyaW5nSW1wbCogYSwgU3RyaW5nSW1wbCogYikKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nSW1wbEdyZWF0ZXJF
cSwgdWludHB0cl90LCAoU3RyaW5nSW1wbCogYSwgU3RyaW5nSW1wbCogYikpCiB7CiAgICAgcmV0
dXJuIGNvZGVQb2ludENvbXBhcmUoYSwgYikgPj0gMDsKIH0KIAotdWludHB0cl90IEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uQ29tcGFyZVN0cmluZ0xlc3MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNTdHJpbmcqIGEsIEpTU3RyaW5nKiBiKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdMZXNzLCB1aW50cHRyX3QsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1N0cmluZyogYSwgSlNTdHJpbmcqIGIpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CkBAIC0yNzE0LDcgKzI2OTYsNyBAQCB1aW50cHRyX3QgSklUX09QRVJB
VElPTiBvcGVyYXRpb25Db21wYXJlU3RyaW5nTGVzcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LAogICAgIHJldHVybiBjb2RlUG9pbnRDb21wYXJlTGVzc1RoYW4oYXNTdHJpbmcoYSktPnZh
bHVlKGdsb2JhbE9iamVjdCksIGFzU3RyaW5nKGIpLT52YWx1ZShnbG9iYWxPYmplY3QpKTsKIH0K
IAotdWludHB0cl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZVN0cmluZ0xlc3NFcShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogYSwgSlNTdHJpbmcqIGIpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0xlc3NFcSwgdWlu
dHB0cl90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIGEsIEpTU3Ry
aW5nKiBiKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjcyMyw3ICsyNzA1
LDcgQEAgdWludHB0cl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZVN0cmluZ0xlc3NF
cShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICByZXR1cm4gIWNvZGVQb2ludENvbXBh
cmVMZXNzVGhhbihhc1N0cmluZyhiKS0+dmFsdWUoZ2xvYmFsT2JqZWN0KSwgYXNTdHJpbmcoYSkt
PnZhbHVlKGdsb2JhbE9iamVjdCkpOwogfQogCi11aW50cHRyX3QgSklUX09QRVJBVElPTiBvcGVy
YXRpb25Db21wYXJlU3RyaW5nR3JlYXRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U1N0cmluZyogYSwgSlNTdHJpbmcqIGIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ29tcGFyZVN0cmluZ0dyZWF0ZXIsIHVpbnRwdHJfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTU3RyaW5nKiBhLCBKU1N0cmluZyogYikpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTI3MzIsNyArMjcxNCw3IEBAIHVpbnRwdHJfdCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdHcmVhdGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
CiAgICAgcmV0dXJuIGNvZGVQb2ludENvbXBhcmVMZXNzVGhhbihhc1N0cmluZyhiKS0+dmFsdWUo
Z2xvYmFsT2JqZWN0KSwgYXNTdHJpbmcoYSktPnZhbHVlKGdsb2JhbE9iamVjdCkpOwogfQogCi11
aW50cHRyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlU3RyaW5nR3JlYXRlckVxKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBhLCBKU1N0cmluZyogYikKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nR3JlYXRlckVxLCB1
aW50cHRyX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogYSwgSlNT
dHJpbmcqIGIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNzQxLDcgKzI3
MjMsNyBAQCB1aW50cHRyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlU3RyaW5nR3Jl
YXRlckVxKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiAhY29kZVBvaW50Q29t
cGFyZUxlc3NUaGFuKGFzU3RyaW5nKGEpLT52YWx1ZShnbG9iYWxPYmplY3QpLCBhc1N0cmluZyhi
KS0+dmFsdWUoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25Ob3RpZnlXcml0ZShWTSogdm1Qb2ludGVyLCBXYXRjaHBvaW50U2V0KiBzZXQpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTm90aWZ5V3JpdGUsIHZvaWQsIChWTSogdm1Qb2lu
dGVyLCBXYXRjaHBvaW50U2V0KiBzZXQpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjc1
MCw3ICsyNzMyLDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5vdGlmeVdyaXRlKFZN
KiB2bVBvaW50ZXIsIFdhdGNocG9pbnRTZXQqIHNldCkKICAgICBzZXQtPnRvdWNoKHZtLCAiRXhl
Y3V0ZWQgTm90aWZ5V3JpdGUiKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRo
cm93U3RhY2tPdmVyZmxvd0ZvclZhcmFyZ3MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dGb3JW
YXJhcmdzLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI3NTksNyArMjc0MSw3IEBAIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dGb3JWYXJhcmdzKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPCiAgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29w
ZSk7CiB9CiAKLVVDUFVTdHJpY3RJbnQzMiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNpemVPZlZh
cmFyZ3MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEFyZ3VtZW50cywgdWludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uU2l6ZU9mVmFyYXJncywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50cywg
dWludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC0yNzY5LDcgKzI3NTEsNyBAQCBVQ1BVU3RyaWN0SW50MzIgSklUX09QRVJBVElPTiBv
cGVyYXRpb25TaXplT2ZWYXJhcmdzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIHJl
dHVybiB0b1VDUFVTdHJpY3RJbnQzMihzaXplT2ZWYXJhcmdzKGdsb2JhbE9iamVjdCwgYXJndW1l
bnRzLCBmaXJzdFZhckFyZ09mZnNldCkpOwogfQogCi1zaXplX3QgSklUX09QRVJBVElPTiBvcGVy
YXRpb25IYXNPd25Qcm9wZXJ0eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVj
dCogdGhpc09iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEtleSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25IYXNPd25Qcm9wZXJ0eSwgc2l6ZV90LCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHRoaXNPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRLZXkpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNzkwLDcgKzI3
NzIsNyBAQCBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNPd25Qcm9wZXJ0eShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iagogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
LXNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk51bWJlcklzSW50ZWdlcihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25OdW1iZXJJc0ludGVnZXIsIHNpemVfdCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwpAQCAtMjc5OCw3ICsyNzgwLDcgQEAgc2l6ZV90IEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uTnVtYmVySXNJbnRlZ2VyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVuY28KICAgICByZXR1cm4gTnVtYmVyQ29uc3RydWN0b3I6OmlzSW50ZWdlckltcGwoSlNWYWx1
ZTo6ZGVjb2RlKHZhbHVlKSk7CiB9CiAKLVVDUFVTdHJpY3RJbnQzMiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkFycmF5SW5kZXhPZlN0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBC
dXR0ZXJmbHkqIGJ1dHRlcmZseSwgSlNTdHJpbmcqIHNlYXJjaEVsZW1lbnQsIGludDMyX3QgaW5k
ZXgpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlJbmRleE9mU3RyaW5n
LCBVQ1BVU3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBCdXR0ZXJm
bHkqIGJ1dHRlcmZseSwgSlNTdHJpbmcqIHNlYXJjaEVsZW1lbnQsIGludDMyX3QgaW5kZXgpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yODIzLDcgKzI4MDUsNyBAQCBVQ1BV
U3RyaWN0SW50MzIgSklUX09QRVJBVElPTiBvcGVyYXRpb25BcnJheUluZGV4T2ZTdHJpbmcoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbAogICAgIHJldHVybiB0b1VDUFVTdHJpY3RJbnQzMigtMSk7CiB9
CiAKLVVDUFVTdHJpY3RJbnQzMiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFycmF5SW5kZXhPZlZh
bHVlSW50MzJPckNvbnRpZ3VvdXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQnV0dGVy
Zmx5KiBidXR0ZXJmbHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgaW50MzJfdCBpbmRl
eCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4T2ZWYWx1ZUlu
dDMyT3JDb250aWd1b3VzLCBVQ1BVU3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
LCBpbnQzMl90IGluZGV4KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjg0
Niw3ICsyODI4LDcgQEAgVUNQVVN0cmljdEludDMyIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJy
YXlJbmRleE9mVmFsdWVJbnQzMk9yQ29udGlndW91cyhKU0dsb2IKICAgICByZXR1cm4gdG9VQ1BV
U3RyaWN0SW50MzIoLTEpOwogfQogCi1VQ1BVU3RyaWN0SW50MzIgSklUX09QRVJBVElPTiBvcGVy
YXRpb25BcnJheUluZGV4T2ZWYWx1ZURvdWJsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBpbnQz
Ml90IGluZGV4KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5SW5kZXhP
ZlZhbHVlRG91YmxlLCBVQ1BVU3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBp
bnQzMl90IGluZGV4KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjg2OCw3
ICsyODUwLDcgQEAgVUNQVVN0cmljdEludDMyIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJyYXlJ
bmRleE9mVmFsdWVEb3VibGUoSlNHbG9iYWxPYmplY3QqIGcKICAgICByZXR1cm4gdG9VQ1BVU3Ry
aWN0SW50MzIoLTEpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTG9hZFZhcmFy
Z3MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgaW50MzJfdCBmaXJzdEVsZW1lbnREZXN0
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnRzLCB1aW50MzJfdCBvZmZzZXQsIHVpbnQz
Ml90IGxlbmd0aEluY2x1ZGluZ1RoaXMsIHVpbnQzMl90IG1hbmRhdG9yeU1pbmltdW0pCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTG9hZFZhcmFyZ3MsIHZvaWQsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBpbnQzMl90IGZpcnN0RWxlbWVudERlc3QsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRBcmd1bWVudHMsIHVpbnQzMl90IG9mZnNldCwgdWludDMyX3QgbGVuZ3Ro
SW5jbHVkaW5nVGhpcywgdWludDMyX3QgbWFuZGF0b3J5TWluaW11bSkpCiB7CiAgICAgVmlydHVh
bFJlZ2lzdGVyIGZpcnN0RWxlbWVudCB7IGZpcnN0RWxlbWVudERlc3QgfTsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0yODgyLDE5ICsyODY0LDE5IEBAIHZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25Mb2FkVmFyYXJncyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBpbnQzMl90IGZpCiAgICAgICAgIGNhbGxGcmFtZS0+cihmaXJzdEVsZW1lbnQgKyBpKSA9IGpz
VW5kZWZpbmVkKCk7CiB9CiAKLWRvdWJsZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkZNb2RPbklu
dHMoaW50MzJfdCBhLCBpbnQzMl90IGIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uRk1vZE9uSW50cywgZG91YmxlLCAoaW50MzJfdCBhLCBpbnQzMl90IGIpKQogewogICAgIHJl
dHVybiBmbW9kKGEsIGIpOwogfQogCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKLWRvdWJsZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblJhbmRvbShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJhbmRvbSwgZG91YmxlLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkpCiB7CiAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+d2Vh
a1JhbmRvbU51bWJlcigpOwogfQogI2VuZGlmCiAKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVy
YXRpb25TdHJpbmdGcm9tQ2hhckNvZGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgaW50
MzJfdCBvcDEpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nRnJvbUNo
YXJDb2RlLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgaW50MzJfdCBv
cDEpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yOTAyLDcgKzI4ODQsNyBA
QCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3RyaW5nRnJvbUNoYXJDb2RlKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIEpTQzo6c3RyaW5nRnJvbUNoYXJD
b2RlKGdsb2JhbE9iamVjdCwgb3AxKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25TdHJpbmdGcm9tQ2hhckNvZGVVbnR5cGVkKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25TdHJpbmdGcm9tQ2hhckNvZGVVbnR5cGVkLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI5MTIsNyArMjg5NCw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3RyaW5nRnJvbUNoYXJD
b2RlVW50eXBlZChKU0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpT
Qzo6c3RyaW5nRnJvbUNoYXJDb2RlKGdsb2JhbE9iamVjdCwgY2hJbnQpKTsKIH0KIAotaW50NjRf
dCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbnZlcnRCb3hlZERvdWJsZVRvSW50NTIoRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbnZlcnRCb3hlZERvdWJsZVRvSW50NTIsIGludDY0X3QsIChFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2Rl
ZFZhbHVlKTsKICAgICBpZiAoIXZhbHVlLmlzRG91YmxlKCkpCkBAIC0yOTIwLDEyICsyOTAyLDEy
IEBAIGludDY0X3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db252ZXJ0Qm94ZWREb3VibGVUb0lu
dDUyKEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWCiAgICAgcmV0dXJuIHRyeUNvbnZlcnRUb0ludDUy
KHZhbHVlLmFzRG91YmxlKCkpOwogfQogCi1pbnQ2NF90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
Q29udmVydERvdWJsZVRvSW50NTIoZG91YmxlIHZhbHVlKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNvbnZlcnREb3VibGVUb0ludDUyLCBpbnQ2NF90LCAoZG91YmxlIHZhbHVl
KSkKIHsKICAgICByZXR1cm4gdHJ5Q29udmVydFRvSW50NTIodmFsdWUpOwogfQogCi1jaGFyKiBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld1Jhd09iamVjdChWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgaW50MzJfdCBsZW5ndGgsIEJ1dHRlcmZseSogYnV0dGVyZmx5KQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1Jhd09iamVjdCwgY2hhciosIChWTSog
dm1Qb2ludGVyLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50MzJfdCBsZW5ndGgsIEJ1dHRlcmZs
eSogYnV0dGVyZmx5KSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI5NDgsNyArMjkzMCw3
IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3UmF3T2JqZWN0KFZNKiB2bVBvaW50
ZXIsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpCiAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxjaGFy
Kj4oSlNGaW5hbE9iamVjdDo6Y3JlYXRlV2l0aEJ1dHRlcmZseSh2bSwgc3RydWN0dXJlLCBidXR0
ZXJmbHkpKTsKIH0KIAotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld09iamVjdFdp
dGhCdXR0ZXJmbHkoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEJ1dHRlcmZs
eSogYnV0dGVyZmx5KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld09iamVj
dFdpdGhCdXR0ZXJmbHksIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgQnV0dGVyZmx5KiBidXR0ZXJmbHkpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAt
Mjk2NCw3ICsyOTQ2LDcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld09iamVj
dFdpdGhCdXR0ZXJmbHkoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKgogICAgIHJldHVybiBKU0Zp
bmFsT2JqZWN0OjpjcmVhdGVXaXRoQnV0dGVyZmx5KHZtLCBzdHJ1Y3R1cmUsIGJ1dHRlcmZseSk7
CiB9CiAKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdPYmplY3RXaXRoQnV0dGVy
Zmx5V2l0aEluZGV4aW5nSGVhZGVyQW5kVmVjdG9yTGVuZ3RoKFZNKiB2bVBvaW50ZXIsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCB1bnNpZ25lZCBsZW5ndGgsIEJ1dHRlcmZseSogYnV0dGVyZmx5KQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld09iamVjdFdpdGhCdXR0ZXJmbHlX
aXRoSW5kZXhpbmdIZWFkZXJBbmRWZWN0b3JMZW5ndGgsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVy
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgdW5zaWduZWQgbGVuZ3RoLCBCdXR0ZXJmbHkqIGJ1dHRl
cmZseSkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yOTg2LDcgKzI5NjgsNyBAQCBKU0Nl
bGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3T2JqZWN0V2l0aEJ1dHRlcmZseVdpdGhJbmRl
eGluZ0hlYWRlckFuZFZlY3RvcgogICAgIHJldHVybiBKU0ZpbmFsT2JqZWN0OjpjcmVhdGVXaXRo
QnV0dGVyZmx5KHZtLCBzdHJ1Y3R1cmUsIGJ1dHRlcmZseSk7CiB9CiAKLUpTQ2VsbCogSklUX09Q
RVJBVElPTiBvcGVyYXRpb25OZXdBcnJheVdpdGhTcHJlYWRTbG93KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIHZvaWQqIGJ1ZmZlciwgdWludDMyX3QgbnVtSXRlbXMpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU3ByZWFkU2xvdywgSlNDZWxsKiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHZvaWQqIGJ1ZmZlciwgdWludDMyX3QgbnVt
SXRlbXMpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMDU4LDcgKzMwNDAs
NyBAQCBKU0NlbGwqIG9wZXJhdGlvbkNyZWF0ZUltbXV0YWJsZUJ1dHRlcmZseShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCB1bnNpZ25lZAogICAgIHJldHVybiBudWxscHRyOwogfQogCi1K
U0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3ByZWFkR2VuZXJpYyhKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGl0ZXJhYmxlKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblNwcmVhZEdlbmVyaWMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU0NlbGwqIGl0ZXJhYmxlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwpAQCAtMzA5Miw3ICszMDc0LDcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blNwcmVhZEdlbmVyaWMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWwKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNJbW11dGFibGVCdXR0ZXJmbHk6OmNyZWF0
ZUZyb21BcnJheShnbG9iYWxPYmplY3QsIHZtLCBhcnJheSkpOwogfQogCi1KU0NlbGwqIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uU3ByZWFkRmFzdEFycmF5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQ2VsbCogY2VsbCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25T
cHJlYWRGYXN0QXJyYXksIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U0NlbGwqIGNlbGwpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMTA1LDcg
KzMwODcsNyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3ByZWFkRmFzdEFycmF5
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQwogICAgIHJldHVybiBKU0ltbXV0YWJs
ZUJ1dHRlcmZseTo6Y3JlYXRlRnJvbUFycmF5KGdsb2JhbE9iamVjdCwgdm0sIGFycmF5KTsKIH0K
IAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2Nlc3NUeXBlUHJvZmlsZXJMb2dERkco
Vk0qIHZtUG9pbnRlcikgCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHJvY2Vz
c1R5cGVQcm9maWxlckxvZ0RGRywgdm9pZCwgKFZNKiB2bVBvaW50ZXIpKQogewogICAgIFZNJiB2
bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwpAQCAtMzExNCw3ICszMDk2LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblByb2Nlc3NUeXBlUHJvZmlsZXJMb2dERkcoVk0qIHZtUG9pbnRlcikKICAgICB2bS50eXBl
UHJvZmlsZXJMb2coKS0+cHJvY2Vzc0xvZ0VudHJpZXModm0sICJMb2cgRnVsbCwgY2FsbGVkIGZy
b20gaW5zaWRlIERGRy4iX3MpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblJlc29sdmVTY29wZUZvckhvaXN0aW5nRnVuY0RlY2xJbkV2YWwoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNTY29wZSogc2NvcGUsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpbXBs
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlc29sdmVTY29wZUZvckhvaXN0
aW5nRnVuY0RlY2xJbkV2YWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNTY29wZSogc2NvcGUsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpbXBsKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzEyNCw3ICszMTA2LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZXNvbHZlU2NvcGVGb3JIb2lzdGluZ0Z1bmNE
ZWNsSW5FdmFsKEpTR2wKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc29sdmVkU2NvcGUp
OwogfQogICAgIAotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlc29sdmVTY29wZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Njb3BlKiBzY29wZSwgVW5pcXVlZFN0cmlu
Z0ltcGwqIGltcGwpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVzb2x2ZVNj
b3BlLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTY29wZSogc2Nv
cGUsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpbXBsKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwpAQCAtMzEzNCw3ICszMTE2LDcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blJlc29sdmVTY29wZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Njb3AKICAgICBy
ZXR1cm4gcmVzb2x2ZWRTY29wZTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25HZXREeW5hbWljVmFyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2Jq
ZWN0KiBzY29wZSwgVW5pcXVlZFN0cmluZ0ltcGwqIGltcGwsIHVuc2lnbmVkIGdldFB1dEluZm9C
aXRzKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldER5bmFtaWNWYXIsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHNj
b3BlLCBVbmlxdWVkU3RyaW5nSW1wbCogaW1wbCwgdW5zaWduZWQgZ2V0UHV0SW5mb0JpdHMpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMTk0LDcgKzMxNzYsNyBAQCBBTFdB
WVNfSU5MSU5FIHN0YXRpYyB2b2lkIHB1dER5bmFtaWNWYXIoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgVk0mIHZtLCBKUwogICAgIHNjb3BlLT5tZXRob2RUYWJsZSh2bSktPnB1dChzY29w
ZSwgZ2xvYmFsT2JqZWN0LCBpZGVudCwgSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKSwgc2xvdCk7CiB9
CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXREeW5hbWljVmFyU3RyaWN0KEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBzY29wZSwgRW5jb2RlZEpTVmFsdWUg
dmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpbXBsLCB1bnNpZ25lZCBnZXRQdXRJbmZvQml0cykK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREeW5hbWljVmFyU3RyaWN0LCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHNjb3BlLCBFbmNv
ZGVkSlNWYWx1ZSB2YWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqIGltcGwsIHVuc2lnbmVkIGdldFB1
dEluZm9CaXRzKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzIwMyw3ICsz
MTg1LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dER5bmFtaWNWYXJTdHJpY3Qo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlMKICAgICByZXR1cm4gcHV0RHluYW1pY1Zh
cihnbG9iYWxPYmplY3QsIHZtLCBzY29wZSwgdmFsdWUsIGltcGwsIGdldFB1dEluZm9CaXRzLCBp
c1N0cmljdE1vZGUpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0RHluYW1p
Y1Zhck5vblN0cmljdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogc2Nv
cGUsIEVuY29kZWRKU1ZhbHVlIHZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCogaW1wbCwgdW5zaWdu
ZWQgZ2V0UHV0SW5mb0JpdHMpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
RHluYW1pY1Zhck5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTT2JqZWN0KiBzY29wZSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBs
KiBpbXBsLCB1bnNpZ25lZCBnZXRQdXRJbmZvQml0cykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTMyMTIsNyArMzE5NCw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25QdXREeW5hbWljVmFyTm9uU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAg
ICAgcmV0dXJuIHB1dER5bmFtaWNWYXIoZ2xvYmFsT2JqZWN0LCB2bSwgc2NvcGUsIHZhbHVlLCBp
bXBsLCBnZXRQdXRJbmZvQml0cywgaXNTdHJpY3RNb2RlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25Ob3JtYWxpemVNYXBLZXlIZWFwQmlnSW50KFZNKiB2bVBv
aW50ZXIsIEpTQmlnSW50KiBpbnB1dCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Ob3JtYWxpemVNYXBLZXlIZWFwQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiB2bVBvaW50
ZXIsIEpTQmlnSW50KiBpbnB1dCkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMjIwLDcg
KzMyMDIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5vcm1hbGl6
ZU1hcEtleUhlYXBCaWdJbnQoVk0qIHZtUG9pbnRlciwgSgogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUobm9ybWFsaXplTWFwS2V5KGlucHV0KSk7CiB9CiAKLVVDUFVTdHJpY3RJbnQzMiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbk1hcEhhc2goSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgaW5wdXQpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TWFwSGFzaCwgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgaW5wdXQpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBA
IC0zMjI5LDcgKzMyMTEsNyBAQCBVQ1BVU3RyaWN0SW50MzIgSklUX09QRVJBVElPTiBvcGVyYXRp
b25NYXBIYXNoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuYwogICAgIHJldHVybiB0
b1VDUFVTdHJpY3RJbnQzMihqc01hcEhhc2goZ2xvYmFsT2JqZWN0LCB2bSwgSlNWYWx1ZTo6ZGVj
b2RlKGlucHV0KSkpOwogfQogCi1VQ1BVU3RyaWN0SW50MzIgSklUX09QRVJBVElPTiBvcGVyYXRp
b25NYXBIYXNoSGVhcEJpZ0ludChWTSogdm1Qb2ludGVyLCBKU0JpZ0ludCogaW5wdXQpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWFwSGFzaEhlYXBCaWdJbnQsIFVDUFVTdHJp
Y3RJbnQzMiwgKFZNKiB2bVBvaW50ZXIsIEpTQmlnSW50KiBpbnB1dCkpCiB7CiAgICAgVk0mIHZt
ID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CkBAIC0zMjM4LDcgKzMyMjAsNyBAQCBVQ1BVU3RyaWN0SW50MzIgSklUX09QRVJB
VElPTiBvcGVyYXRpb25NYXBIYXNoSGVhcEJpZ0ludChWTSogdm1Qb2ludGVyLCBKU0JpZ0ludAog
ICAgIHJldHVybiB0b1VDUFVTdHJpY3RJbnQzMihqc01hcEhhc2goaW5wdXQpKTsKIH0KIAotSlND
ZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkpTTWFwRmluZEJ1Y2tldChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG1hcCwgRW5jb2RlZEpTVmFsdWUga2V5LCBpbnQzMl90
IGhhc2gpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSlNNYXBGaW5kQnVja2V0
LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBtYXAsIEVu
Y29kZWRKU1ZhbHVlIGtleSwgaW50MzJfdCBoYXNoKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwpAQCAtMzI0OSw3ICszMjMxLDcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkpTTWFwRmluZEJ1Y2tldChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0MKICAg
ICByZXR1cm4gKmJ1Y2tldDsKIH0KIAotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkpT
U2V0RmluZEJ1Y2tldChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG1hcCwg
RW5jb2RlZEpTVmFsdWUga2V5LCBpbnQzMl90IGhhc2gpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uSlNTZXRGaW5kQnVja2V0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNDZWxsKiBtYXAsIEVuY29kZWRKU1ZhbHVlIGtleSwgaW50MzJfdCBoYXNo
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzI2MCw3ICszMjQyLDcgQEAg
SlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkpTU2V0RmluZEJ1Y2tldChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0MKICAgICByZXR1cm4gKmJ1Y2tldDsKIH0KIAotSlNDZWxs
KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNldEFkZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0NlbGwqIHNldCwgRW5jb2RlZEpTVmFsdWUga2V5LCBpbnQzMl90IGhhc2gpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0QWRkLCBKU0NlbGwqLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBzZXQsIEVuY29kZWRKU1ZhbHVlIGtleSwgaW50
MzJfdCBoYXNoKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzI3MSw3ICsz
MjUzLDcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNldEFkZChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIHNldCwKICAgICByZXR1cm4gYnVja2V0OwogfQog
Ci1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTWFwU2V0KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQ2VsbCogbWFwLCBFbmNvZGVkSlNWYWx1ZSBrZXksIEVuY29kZWRKU1Zh
bHVlIHZhbHVlLCBpbnQzMl90IGhhc2gpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uTWFwU2V0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxs
KiBtYXAsIEVuY29kZWRKU1ZhbHVlIGtleSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUsIGludDMyX3Qg
aGFzaCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTMyODIsNyArMzI2NCw3
IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25NYXBTZXQoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDZWxsKiBtYXAsCiAgICAgcmV0dXJuIGJ1Y2tldDsKIH0KIAotdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbldlYWtTZXRBZGQoVk0qIHZtUG9pbnRlciwgSlNDZWxs
KiBzZXQsIEpTQ2VsbCoga2V5LCBpbnQzMl90IGhhc2gpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uV2Vha1NldEFkZCwgdm9pZCwgKFZNKiB2bVBvaW50ZXIsIEpTQ2VsbCogc2V0
LCBKU0NlbGwqIGtleSwgaW50MzJfdCBoYXNoKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVy
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTMyOTAsNyArMzI3Miw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25XZWFrU2V0QWRk
KFZNKiB2bVBvaW50ZXIsIEpTQ2VsbCogc2V0LCBKU0NlbGwqIGtleSwKICAgICBqc0Nhc3Q8SlNX
ZWFrU2V0Kj4oc2V0KS0+YWRkKHZtLCBhc09iamVjdChrZXkpLCBKU1ZhbHVlKCksIGhhc2gpOwog
fQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uV2Vha01hcFNldChWTSogdm1Qb2ludGVy
LCBKU0NlbGwqIG1hcCwgSlNDZWxsKiBrZXksIEVuY29kZWRKU1ZhbHVlIHZhbHVlLCBpbnQzMl90
IGhhc2gpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Vha01hcFNldCwgdm9p
ZCwgKFZNKiB2bVBvaW50ZXIsIEpTQ2VsbCogbWFwLCBKU0NlbGwqIGtleSwgRW5jb2RlZEpTVmFs
dWUgdmFsdWUsIGludDMyX3QgaGFzaCkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMjk4
LDcgKzMyODAsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uV2Vha01hcFNldChWTSog
dm1Qb2ludGVyLCBKU0NlbGwqIG1hcCwgSlNDZWxsKiBrZXksCiAgICAganNDYXN0PEpTV2Vha01h
cCo+KG1hcCktPmFkZCh2bSwgYXNPYmplY3Qoa2V5KSwgSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKSwg
aGFzaCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0UHJv
dG90eXBlT2ZPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHRo
aXNPYmplY3QpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJvdG90eXBl
T2ZPYmplY3QsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNPYmplY3QqIHRoaXNPYmplY3QpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBA
IC0zMzA2LDcgKzMyODgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkdldFByb3RvdHlwZU9mT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUodGhpc09iamVjdC0+Z2V0UHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3Qp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRQcm90b3R5
cGVPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJvdG90eXBlT2Ys
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAt
MzMxNSw3ICszMjk3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25H
ZXRQcm90b3R5cGVPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHZhbHVlLmdldFByb3RvdHlwZShnbG9iYWxPYmplY3QpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0RnVsbFllYXIoVk0qIHZt
UG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkRhdGVHZXRGdWxsWWVhciwgRW5jb2RlZEpTVmFsdWUsIChWTSogdm1Qb2ludGVyLCBE
YXRlSW5zdGFuY2UqIGRhdGUpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzMyNyw3ICsz
MzA5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0RnVs
bFllYXIoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT55ZWFyKCkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRDRnVsbFllYXIoVk0qIHZtUG9p
bnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkRhdGVHZXRVVENGdWxsWWVhciwgRW5jb2RlZEpTVmFsdWUsIChWTSogdm1Qb2ludGVyLCBE
YXRlSW5zdGFuY2UqIGRhdGUpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzMzOSw3ICsz
MzIxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRD
RnVsbFllYXIoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT55ZWFyKCkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0TW9udGgoVk0qIHZtUG9pbnRlciwg
RGF0ZUluc3RhbmNlKiBkYXRlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRh
dGVHZXRNb250aCwgRW5jb2RlZEpTVmFsdWUsIChWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2Uq
IGRhdGUpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzM1MSw3ICszMzMzLDcgQEAgRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0TW9udGgoVk0qIHZtUG9p
bnRlciwgRGF0ZUluc3RhbmNlKgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIo
Z3JlZ29yaWFuRGF0ZVRpbWUtPm1vbnRoKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRDTW9udGgoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3Rh
bmNlKiBkYXRlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRhdGVHZXRVVENN
b250aCwgRW5jb2RlZEpTVmFsdWUsIChWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUp
KQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzM2Myw3ICszMzQ1LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRDTW9udGgoVk0qIHZtUG9pbnRl
ciwgRGF0ZUluc3RhbmMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdv
cmlhbkRhdGVUaW1lLT5tb250aCgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uRGF0ZUdldERhdGUoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRl
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRhdGVHZXREYXRlLCBFbmNvZGVk
SlNWYWx1ZSwgKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkpCiB7CiAgICAgVk0m
IHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0zMzc1LDcgKzMzNTcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkRhdGVHZXREYXRlKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSog
ZAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUt
Pm1vbnRoRGF5KCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25EYXRlR2V0VVRDRGF0ZShWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGF0ZUdldFVUQ0RhdGUsIEVuY29kZWRKU1Zh
bHVlLCAoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKSkKIHsKICAgICBWTSYgdm0g
PSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTMzODcsNyArMzM2OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uRGF0ZUdldFVUQ0RhdGUoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bW9u
dGhEYXkoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRh
dGVHZXREYXkoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRhdGVHZXREYXksIEVuY29kZWRKU1ZhbHVlLCAoVk0qIHZt
UG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVy
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTMzOTksNyArMzM4MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
RGF0ZUdldERheShWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+d2Vla0RheSgpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFVUQ0RheShW
TSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uRGF0ZUdldFVUQ0RheSwgRW5jb2RlZEpTVmFsdWUsIChWTSogdm1Qb2ludGVy
LCBEYXRlSW5zdGFuY2UqIGRhdGUpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzQxMSw3
ICszMzkzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0
VVRDRGF5KFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSoKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT53ZWVrRGF5KCkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0SG91cnMoVk0qIHZtUG9p
bnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkRhdGVHZXRIb3VycywgRW5jb2RlZEpTVmFsdWUsIChWTSogdm1Qb2ludGVyLCBEYXRlSW5z
dGFuY2UqIGRhdGUpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzQyMyw3ICszNDA1LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0SG91cnMoVk0q
IHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNO
dW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPmhvdXIoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENIb3VycyhWTSogdm1Qb2ludGVyLCBEYXRl
SW5zdGFuY2UqIGRhdGUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGF0ZUdl
dFVUQ0hvdXJzLCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSog
ZGF0ZSkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zNDM1LDcgKzM0MTcsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENIb3VycyhWTSogdm1Q
b2ludGVyLCBEYXRlSW5zdGFuYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIo
Z3JlZ29yaWFuRGF0ZVRpbWUtPmhvdXIoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRNaW51dGVzKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5j
ZSogZGF0ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EYXRlR2V0TWludXRl
cywgRW5jb2RlZEpTVmFsdWUsIChWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpKQog
ewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzQ0Nyw3ICszNDI5LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0TWludXRlcyhWTSogdm1Qb2ludGVyLCBE
YXRlSW5zdGFuY2UKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlh
bkRhdGVUaW1lLT5taW51dGUoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkRhdGVHZXRVVENNaW51dGVzKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSog
ZGF0ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EYXRlR2V0VVRDTWludXRl
cywgRW5jb2RlZEpTVmFsdWUsIChWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpKQog
ewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzQ1OSw3ICszNDQxLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRDTWludXRlcyhWTSogdm1Qb2ludGVy
LCBEYXRlSW5zdGEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlh
bkRhdGVUaW1lLT5taW51dGUoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkRhdGVHZXRTZWNvbmRzKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0
ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EYXRlR2V0U2Vjb25kcywgRW5j
b2RlZEpTVmFsdWUsIChWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpKQogewogICAg
IFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwpAQCAtMzQ3MSw3ICszNDUzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0U2Vjb25kcyhWTSogdm1Qb2ludGVyLCBEYXRlSW5z
dGFuY2UKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVU
aW1lLT5zZWNvbmQoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkRhdGVHZXRVVENTZWNvbmRzKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EYXRlR2V0VVRDU2Vjb25kcywgRW5j
b2RlZEpTVmFsdWUsIChWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpKQogewogICAg
IFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwpAQCAtMzQ4Myw3ICszNDY1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRDU2Vjb25kcyhWTSogdm1Qb2ludGVyLCBEYXRl
SW5zdGEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVU
aW1lLT5zZWNvbmQoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkRhdGVHZXRUaW1lem9uZU9mZnNldChWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRh
dGUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGF0ZUdldFRpbWV6b25lT2Zm
c2V0LCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkp
CiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zNDk1LDcgKzM0NzcsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRUaW1lem9uZU9mZnNldChWTSogdm1Q
b2ludGVyLCBEYXRlSQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoLWdyZWdv
cmlhbkRhdGVUaW1lLT51dGNPZmZzZXRJbk1pbnV0ZSgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFllYXIoVk0qIHZtUG9pbnRlciwgRGF0ZUlu
c3RhbmNlKiBkYXRlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRhdGVHZXRZ
ZWFyLCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkp
CiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zNTA3LDcgKzM0ODksNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRZZWFyKFZNKiB2bVBvaW50ZXIsIERh
dGVJbnN0YW5jZSogZAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29y
aWFuRGF0ZVRpbWUtPnllYXIoKSAtIDE5MDApKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblRocm93REZHKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHZhbHVlVG9UaHJvdykKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UaHJv
d0RGRywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHZhbHVlVG9UaHJvdykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTM1MTYs
NyArMzQ5OCw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UaHJvd0RGRyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1CiAgICAgc2NvcGUudGhyb3dFeGNl
cHRpb24oZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUodmFsdWVUb1Rocm93KSk7CiB9CiAK
LXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UaHJvd1N0YXRpY0Vycm9yKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBtZXNzYWdlLCB1aW50MzJfdCBlcnJvclR5cGUp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3dTdGF0aWNFcnJvciwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBtZXNzYWdlLCB1aW50
MzJfdCBlcnJvclR5cGUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zNTI2
LDcgKzM1MDgsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3dTdGF0aWNFcnJv
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cgogICAgIHNjb3BlLnRocm93RXhj
ZXB0aW9uKGdsb2JhbE9iamVjdCwgY3JlYXRlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2Fz
dDxFcnJvclR5cGVXaXRoRXh0ZW5zaW9uPihlcnJvclR5cGUpLCBlcnJvck1lc3NhZ2UpKTsKIH0K
IAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtEaXJlY3RDYWxsKENhbGxMaW5rSW5m
byogY2FsbExpbmtJbmZvLCBKU0Z1bmN0aW9uKiBjYWxsZWUpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTGlua0RpcmVjdENhbGwsIHZvaWQsIChDYWxsTGlua0luZm8qIGNhbGxM
aW5rSW5mbywgSlNGdW5jdGlvbiogY2FsbGVlKSkKIHsKICAgICBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0ID0gY2FsbGVlLT5nbG9iYWxPYmplY3QoKTsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CkBAIC0zNTc4LDcgKzM1NjAsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uTGlua0RpcmVjdENhbGwoQ2FsbExpbmtJbmZvKiBjYWxsTGlua0luZm8sIEpTRnVuY3Rp
bwogICAgIGxpbmtEaXJlY3RGb3IoY2FsbEZyYW1lLCAqY2FsbExpbmtJbmZvLCBjb2RlQmxvY2ss
IGNvZGVQdHIpOwogfQogCi12b2lkIHRyaWdnZXJSZW9wdGltaXphdGlvbk5vdyhDb2RlQmxvY2sq
IGNvZGVCbG9jaywgQ29kZUJsb2NrKiBvcHRpbWl6ZWRDb2RlQmxvY2ssIE9TUkV4aXRCYXNlKiBl
eGl0KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyaWdnZXJSZW9wdGltaXph
dGlvbk5vdywgdm9pZCwgKENvZGVCbG9jayogY29kZUJsb2NrLCBDb2RlQmxvY2sqIG9wdGltaXpl
ZENvZGVCbG9jaywgT1NSRXhpdEJhc2UqIGV4aXQpKQogewogICAgIC8vIEl0J3Mgc29ydCBvZiBw
cmVmZXJhYmxlIHRoYXQgd2UgZG9uJ3QgR0Mgd2hpbGUgaW4gaGVyZS4gQW55d2F5cywgZG9pbmcg
c28gd291bGRuJ3QKICAgICAvLyByZWFsbHkgYmUgcHJvZml0YWJsZS4KQEAgLTM2MzEsMTEgKzM2
MTMsNiBAQCB2b2lkIHRyaWdnZXJSZW9wdGltaXphdGlvbk5vdyhDb2RlQmxvY2sqIGNvZGVCbG9j
aywgQ29kZUJsb2NrKiBvcHRpbWl6ZWRDb2RlQmxvYwogICAgIG9wdGltaXplZENvZGVCbG9jay0+
amV0dGlzb24oUHJvZmlsZXI6OkpldHRpc29uRHVlVG9PU1JFeGl0LCBDb3VudFJlb3B0aW1pemF0
aW9uKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRyaWdnZXJSZW9wdGltaXph
dGlvbk5vdyhDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZUJsb2NrKiBvcHRpbWl6ZWRDb2RlQmxv
Y2ssIE9TUkV4aXRCYXNlKiBleGl0KQotewotICAgIHRyaWdnZXJSZW9wdGltaXphdGlvbk5vdyhj
b2RlQmxvY2ssIG9wdGltaXplZENvZGVCbG9jaywgZXhpdCk7Ci19Ci0KICNpZiBFTkFCTEUoRlRM
X0pJVCkKIHN0YXRpYyBib29sIHNob3VsZFRyaWdnZXJGVExDb21waWxlKENvZGVCbG9jayogY29k
ZUJsb2NrLCBKSVRDb2RlKiBqaXRDb2RlKQogewpAQCAtMzcwNiw3ICszNjgzLDcgQEAgc3RhdGlj
IHZvaWQgdHJpZ2dlckZUTFJlcGxhY2VtZW50Q29tcGlsZShWTSYgdm0sIENvZGVCbG9jayogY29k
ZUJsb2NrLCBKSVRDb2RlKgogICAgICAgICBjb2RlQmxvY2ssIENvbXBpbGF0aW9uRGVmZXJyZWQp
OwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVHJpZ2dlclRpZXJVcE5vdyhWTSog
dm1Qb2ludGVyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyaWdnZXJUaWVy
VXBOb3csIHZvaWQsIChWTSogdm1Qb2ludGVyKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVy
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTM5NjIsNyArMzkzOSw3IEBAIHN0YXRpYyBjaGFyKiB0aWVyVXBDb21tb24oVk0mIHZtLCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgQnl0ZWNvZGVJbmRleCBvcmlnaW5CeXRlCiAgICAgcmV0dXJuIHJl
dGFnQ29kZVB0cjxjaGFyKj4oYWRkcmVzcywgSlNFbnRyeVB0clRhZywgYml0d2lzZV9jYXN0PFB0
clRhZz4oY2FsbEZyYW1lKSk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Ucmln
Z2VyVGllclVwTm93SW5Mb29wKFZNKiB2bVBvaW50ZXIsIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXhC
aXRzKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyaWdnZXJUaWVyVXBOb3dJ
bkxvb3AsIHZvaWQsIChWTSogdm1Qb2ludGVyLCB1bnNpZ25lZCBieXRlY29kZUluZGV4Qml0cykp
CiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zOTk0LDcgKzM5NzEsNyBAQCB2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uVHJpZ2dlclRpZXJVcE5vd0luTG9vcChWTSogdm1Qb2ludGVyLCB1
bnNpZ25lZCBieXRlYwogICAgIH0KIH0KIAotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25U
cmlnZ2VyT1NSRW50cnlOb3coVk0qIHZtUG9pbnRlciwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleEJp
dHMpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJpZ2dlck9TUkVudHJ5Tm93
LCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXhCaXRzKSkKIHsK
ICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmgKaW5kZXggOTZlMDIyMjM0YWQ5M2FhNzViZjVmN2E2YjY2MzBlNDZmNWRmMGI2ZS4uYzFj
YjZlYmE4ZThjNmRmOTc2ZjdlZWNiOWFiZDYyMDkxOGMyNzE0NiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKQEAgLTQyLDMwNSArNDIsMzA0IEBAIHN0cnVjdCBP
U1JFeGl0QmFzZTsKIAogZXh0ZXJuICJDIiB7CiAKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVy
YXRpb25TdHJpbmdGcm9tQ2hhckNvZGUoSlNHbG9iYWxPYmplY3QqLCBpbnQzMl90KSAgV1RGX0lO
VEVSTkFMOyAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3RyaW5nRnJv
bUNoYXJDb2RlVW50eXBlZChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSAgV1RGX0lO
VEVSTkFMOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdGcm9tQ2hh
ckNvZGUsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIGludDMyX3QpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nRnJvbUNoYXJDb2RlVW50eXBlZCwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CiAKIC8vIFRoZXNl
IHJvdXRpbmVzIHByb3ZpZGUgY2FsbGJhY2tzIG91dCB0byBDKysgaW1wbGVtZW50YXRpb25zIG9m
IG9wZXJhdGlvbnMgdG9vIGNvbXBsZXggdG8gSklULgotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkNhbGxPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRUYXJnZXQpIFdURl9JTlRFUk5BTDsKLUpTQ2VsbCogSklUX09QRVJBVElPTiBv
cGVyYXRpb25Ub09iamVjdChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRU
YXJnZXQsIFVuaXF1ZWRTdHJpbmdJbXBsKikgV1RGX0lOVEVSTkFMOwotSlNBcnJheSogSklUX09Q
RVJBVElPTiBvcGVyYXRpb25PYmplY3RLZXlzKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUpIFdURl9JTlRFUk5BTDsKLUpTQXJyYXkqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT2JqZWN0
S2V5c09iamVjdChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KikgV1RGX0lOVEVSTkFMOwotSlNB
cnJheSogSklUX09QRVJBVElPTiBvcGVyYXRpb25PYmplY3RHZXRPd25Qcm9wZXJ0eU5hbWVzKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLUpTQXJyYXkqIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uT2JqZWN0R2V0T3duUHJvcGVydHlOYW1lc09iamVjdChKU0ds
b2JhbE9iamVjdCosIEpTT2JqZWN0KikgV1RGX0lOVEVSTkFMOwotSlNDZWxsKiBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbk9iamVjdENyZWF0ZShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVl
KSBXVEZfSU5URVJOQUw7Ci1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT2JqZWN0Q3Jl
YXRlT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqKSBXVEZfSU5URVJOQUw7Ci1KU0Nl
bGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ3JlYXRlVGhpcyhKU0dsb2JhbE9iamVjdCosIEpT
T2JqZWN0KiBjb25zdHJ1Y3RvciwgdWludDMyX3QgaW5saW5lQ2FwYWNpdHkpIFdURl9JTlRFUk5B
TDsKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25DcmVhdGVQcm9taXNlKEpTR2xvYmFs
T2JqZWN0KiwgSlNPYmplY3QqIGNvbnN0cnVjdG9yKSBXVEZfSU5URVJOQUw7Ci1KU0NlbGwqIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uQ3JlYXRlSW50ZXJuYWxQcm9taXNlKEpTR2xvYmFsT2JqZWN0
KiwgSlNPYmplY3QqIGNvbnN0cnVjdG9yKSBXVEZfSU5URVJOQUw7Ci1KU0NlbGwqIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uQ3JlYXRlR2VuZXJhdG9yKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3Qq
IGNvbnN0cnVjdG9yKSBXVEZfSU5URVJOQUw7Ci1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uQ3JlYXRlQXN5bmNHZW5lcmF0b3IoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogY29uc3Ry
dWN0b3IpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVG9UaGlzKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSkgV1RG
X0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Ub1RoaXNT
dHJpY3QoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxKSBXVEZfSU5U
RVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTW9kKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25WYWx1ZUJpdE5vdChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDEpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVmFsdWVCaXRBbmQoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQml0T3IoSlNHbG9iYWxPYmplY3QqLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5U
RVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQml0WG9y
KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25WYWx1ZUJpdExTaGlmdChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdURl9JTlRFUk5BTDsKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVCaXRSU2hpZnQoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AyKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblZhbHVlQml0VVJTaGlmdChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGROb3ROdW1iZXIoSlNHbG9iYWxP
YmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AyKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blZhbHVlRGl2KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVBvdyhKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdURl9JTlRFUk5BTDsK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW5jKEpTR2xvYmFsT2JqZWN0
KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSkgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWMoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AxKSBXVEZfSU5URVJOQUw7Ci1kb3VibGUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25Bcml0aEFicyhKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEp
IFdURl9JTlRFUk5BTDsKLVVDUFVTdHJpY3RJbnQzMiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFy
aXRoQ2x6MzIoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxKSBXVEZf
SU5URVJOQUw7Ci1kb3VibGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Bcml0aEZSb3VuZChKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEpIFdURl9JTlRFUk5BTDsKLWRv
dWJsZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFyaXRoU3FydChKU0dsb2JhbE9iamVjdCosIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcDEpIFdURl9JTlRFUk5BTDsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ2FsbE9iamVjdENvbnN0cnVjdG9yLCBKU0NlbGwqLCAoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVGFyZ2V0KSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvT2JqZWN0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVGFyZ2V0LCBVbmlxdWVkU3RyaW5nSW1wbCopKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT2JqZWN0S2V5cywgSlNBcnJheSosIChK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbk9iamVjdEtleXNPYmplY3QsIEpTQXJyYXkqLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU09iamVjdCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT2JqZWN0
R2V0T3duUHJvcGVydHlOYW1lcywgSlNBcnJheSosIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9iamVjdEdldE93
blByb3BlcnR5TmFtZXNPYmplY3QsIEpTQXJyYXkqLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVj
dCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT2JqZWN0Q3JlYXRlLCBK
U0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RDcmVhdGVPYmplY3QsIEpTQ2VsbCosIChKU0ds
b2JhbE9iamVjdCosIEpTT2JqZWN0KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25DcmVhdGVUaGlzLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogY29u
c3RydWN0b3IsIHVpbnQzMl90IGlubGluZUNhcGFjaXR5KSk7CitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVByb21pc2UsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCos
IEpTT2JqZWN0KiBjb25zdHJ1Y3RvcikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25DcmVhdGVJbnRlcm5hbFByb21pc2UsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpT
T2JqZWN0KiBjb25zdHJ1Y3RvcikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25DcmVhdGVHZW5lcmF0b3IsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBj
b25zdHJ1Y3RvcikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVB
c3luY0dlbmVyYXRvciwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIGNvbnN0
cnVjdG9yKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvVGhpcywgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEp
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9UaGlzU3RyaWN0LCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSkp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZU1vZCwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uVmFsdWVCaXROb3QsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AxKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blZhbHVlQml0QW5kLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZUJpdE9yLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZUJp
dFhvciwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uVmFsdWVCaXRMU2hpZnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlQml0UlNo
aWZ0LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25WYWx1ZUJpdFVSU2hpZnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlQWRkTm90
TnVtYmVyLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25WYWx1ZURpdiwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVQb3csIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkluYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDEpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVj
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Bcml0aEFicywgZG91
YmxlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxKSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFyaXRoQ2x6MzIsIFVDUFVTdHJpY3RJbnQz
MiwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSkpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Bcml0aEZSb3VuZCwgZG91YmxlLCAoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkFyaXRoU3FydCwgZG91YmxlLCAoSlNHbG9iYWxPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxKSk7CiAKICNkZWZpbmUgREZHX0FSSVRIX1VOQVJZKGNh
cGl0YWxpemVkTmFtZSwgbG93ZXJOYW1lKSBcCi1kb3VibGUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25Bcml0aCMjY2FwaXRhbGl6ZWROYW1lKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMSkgV1RGX0lOVEVSTkFMOwotICAgIEZPUl9FQUNIX0RGR19BUklUSF9VTkFSWV9P
UChERkdfQVJJVEhfVU5BUlkpCisgICAgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Bcml0aCMjY2FwaXRhbGl6ZWROYW1lLCBkb3VibGUsIChKU0dsb2JhbE9iamVjdCosIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDEpKTsKK0ZPUl9FQUNIX0RGR19BUklUSF9VTkFSWV9PUChERkdf
QVJJVEhfVU5BUlkpCiAjdW5kZWYgREZHX0FSSVRIX1VOQVJZCiAKLUVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uQXJpdGhSb3VuZChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkFyaXRoRmxvb3IoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVS
TkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Bcml0aENlaWwoSlNH
bG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Bcml0aFRydW5jKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uR2V0QnlWYWxDZWxsKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFByb3BlcnR5KSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsT2JqZWN0SW50KEpTR2xvYmFsT2JqZWN0KiwgSlNP
YmplY3QqLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkdldEJ5VmFsU3RyaW5nSW50KEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcq
LCBpbnQzMl90KSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkdldEJ5VmFsT2JqZWN0U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgSlND
ZWxsKiBzdHJpbmcpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uR2V0QnlWYWxPYmplY3RTeW1ib2woSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBK
U0NlbGwqIHN5bWJvbCkgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25Ub1ByaW1pdGl2ZShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSBX
VEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvUHJv
cGVydHlLZXkoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwot
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Ub051bWJlcihKU0dsb2JhbE9i
amVjdCosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblRvTnVtZXJpYyhKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1Zh
bHVlKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkNhbGxOdW1iZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKTsK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxXaXRoVGhpcyhK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uR2V0UHJvdG90eXBlT2YoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lO
VEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRQcm90b3R5
cGVPZk9iamVjdChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KikgV1RGX0lOVEVSTkFMOwotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNHZW5lcmljUHJvcGVydHkoSlNH
bG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgSlNDZWxsKik7Ci1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc093blN0cnVjdHVyZVByb3BlcnR5KEpTR2xvYmFsT2Jq
ZWN0KiwgSlNDZWxsKiwgSlNTdHJpbmcqKTsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uSW5TdHJ1Y3R1cmVQcm9wZXJ0eShKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEpT
U3RyaW5nKik7Ci1zaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVy
dHlCeUludChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIGludDMyX3QsIGludDMyX3QpOwotSlND
ZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldFByb3BlcnR5RW51bWVyYXRvcihKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKTsKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRp
b25HZXRQcm9wZXJ0eUVudW1lcmF0b3JDZWxsKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKik7Ci1K
U0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9JbmRleFN0cmluZyhKU0dsb2JhbE9iamVj
dCosIGludDMyX3QpOwotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld1JlZ2V4cFdp
dGhMYXN0SW5kZXgoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSkgV1RG
X0lOVEVSTkFMOwotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdBcnJheShKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZSosIHZvaWQqLCBzaXplX3QpIFdURl9JTlRFUk5BTDsKLWNoYXIq
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3RW1wdHlBcnJheShWTSosIFN0cnVjdHVyZSopIFdU
Rl9JTlRFUk5BTDsKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6
ZShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGludDMyX3QsIEJ1dHRlcmZseSopIFdURl9J
TlRFUk5BTDsKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZUFu
ZEhpbnQoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnQzMl90LCBpbnQzMl90LCBCdXR0
ZXJmbHkqKSBXVEZfSU5URVJOQUw7Ci1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0lu
dDhBcnJheVdpdGhTaXplKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgaW50MzJfdCwgY2hh
ciopIFdURl9JTlRFUk5BTDsKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3SW50OEFy
cmF5V2l0aE9uZUFyZ3VtZW50KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgRW5jb2RlZEpT
VmFsdWUpIFdURl9JTlRFUk5BTDsKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3SW50
MTZBcnJheVdpdGhTaXplKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgaW50MzJfdCwgY2hh
ciopIFdURl9JTlRFUk5BTDsKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3SW50MTZB
cnJheVdpdGhPbmVBcmd1bWVudChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEVuY29kZWRK
U1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0lu
dDMyQXJyYXlXaXRoU2l6ZShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGludDMyX3QsIGNo
YXIqKSBXVEZfSU5URVJOQUw7Ci1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0ludDMy
QXJyYXlXaXRoT25lQXJndW1lbnQoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBFbmNvZGVk
SlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdV
aW50OEFycmF5V2l0aFNpemUoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnQzMl90LCBj
aGFyKikgV1RGX0lOVEVSTkFMOwotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdVaW50
OEFycmF5V2l0aE9uZUFyZ3VtZW50KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgRW5jb2Rl
ZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3
VWludDhDbGFtcGVkQXJyYXlXaXRoU2l6ZShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGlu
dDMyX3QsIGNoYXIqKSBXVEZfSU5URVJOQUw7Ci1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bk5ld1VpbnQ4Q2xhbXBlZEFycmF5V2l0aE9uZUFyZ3VtZW50KEpTR2xvYmFsT2JqZWN0KiwgU3Ry
dWN0dXJlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLWNoYXIqIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uTmV3VWludDE2QXJyYXlXaXRoU2l6ZShKU0dsb2JhbE9iamVjdCosIFN0cnVj
dHVyZSosIGludDMyX3QsIGNoYXIqKSBXVEZfSU5URVJOQUw7Ci1jaGFyKiBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbk5ld1VpbnQxNkFycmF5V2l0aE9uZUFyZ3VtZW50KEpTR2xvYmFsT2JqZWN0Kiwg
U3RydWN0dXJlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLWNoYXIqIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uTmV3VWludDMyQXJyYXlXaXRoU2l6ZShKU0dsb2JhbE9iamVjdCosIFN0
cnVjdHVyZSosIGludDMyX3QsIGNoYXIqKSBXVEZfSU5URVJOQUw7Ci1jaGFyKiBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbk5ld1VpbnQzMkFycmF5V2l0aE9uZUFyZ3VtZW50KEpTR2xvYmFsT2JqZWN0
KiwgU3RydWN0dXJlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLWNoYXIqIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uTmV3RmxvYXQzMkFycmF5V2l0aFNpemUoSlNHbG9iYWxPYmplY3Qq
LCBTdHJ1Y3R1cmUqLCBpbnQzMl90LCBjaGFyKikgV1RGX0lOVEVSTkFMOwotY2hhciogSklUX09Q
RVJBVElPTiBvcGVyYXRpb25OZXdGbG9hdDMyQXJyYXlXaXRoT25lQXJndW1lbnQoSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmUqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotY2hhciog
SklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdGbG9hdDY0QXJyYXlXaXRoU2l6ZShKU0dsb2JhbE9i
amVjdCosIFN0cnVjdHVyZSosIGludDMyX3QsIGNoYXIqKSBXVEZfSU5URVJOQUw7Ci1jaGFyKiBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0Zsb2F0NjRBcnJheVdpdGhPbmVBcmd1bWVudChKU0ds
b2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci1K
U0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3QXJyYXlJdGVyYXRvcihWTSosIFN0cnVj
dHVyZSopIFdURl9JTlRFUk5BTDsKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdN
YXBJdGVyYXRvcihWTSosIFN0cnVjdHVyZSopIFdURl9JTlRFUk5BTDsKLUpTQ2VsbCogSklUX09Q
RVJBVElPTiBvcGVyYXRpb25OZXdTZXRJdGVyYXRvcihWTSosIFN0cnVjdHVyZSopIFdURl9JTlRF
Uk5BTDsKLQotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsU3RyaWN0KEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSBXVEZfSU5URVJOQUw7
Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxOb25TdHJpY3QoSlNHbG9iYWxP
YmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpIFdURl9JTlRFUk5BTDsKLXZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbENlbGxTdHJpY3QoSlNHbG9iYWxPYmpl
Y3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblB1dEJ5VmFsQ2VsbE5vblN0cmljdChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSBX
VEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxDZWxsU3Ry
aW5nU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiBzdHJpbmcsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN0cmluZ05vblN0cmljdChKU0dsb2JhbE9iamVjdCosIEpT
Q2VsbCosIEpTQ2VsbCogc3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpIFdURl9J
TlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbENlbGxTeW1ib2xT
dHJpY3QoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU0NlbGwqIHN5bWJvbCwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHV0QnlWYWxDZWxsU3ltYm9sTm9uU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxs
KiwgSlNDZWxsKiBzeW1ib2wsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkgV1RGX0lOVEVS
TkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3Vu
ZHNTdHJpY3QoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIGludDMyX3QgaW5kZXgsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QoSlNHbG9iYWxPYmpl
Y3QqLCBKU09iamVjdCosIGludDMyX3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsRGly
ZWN0QmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCos
IGludDMyX3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkgV1RGX0lOVEVSTkFM
Owotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0U3RyaWN0KEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSBXVEZfSU5URVJOQUw7
Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3ROb25TdHJpY3QoSlNH
bG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpIFdURl9JTlRFUk5B
TDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxTdHJpY3Qo
SlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHks
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbE5vblN0cmljdChKU0dsb2JhbE9iamVj
dCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3RyaW5nU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxs
KiwgSlNDZWxsKiBzdHJpbmcsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkgV1RGX0lOVEVS
TkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmlu
Z05vblN0cmljdChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEpTQ2VsbCogc3RyaW5nLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxTeW1ib2xTdHJpY3QoSlNHbG9iYWxPYmplY3Qq
LCBKU0NlbGwqLCBKU0NlbGwqIHN5bWJvbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSBX
VEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RD
ZWxsU3ltYm9sTm9uU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiBzeW1i
b2wsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJpY3Qo
SlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIGludDMyX3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QoSlNHbG9iYWxPYmplY3Qq
LCBKU09iamVjdCosIGludDMyX3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkg
V1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dERvdWJsZUJ5VmFs
QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIGludDMy
X3QgaW5kZXgsIGRvdWJsZSB2YWx1ZSkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsQmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QoSlNHbG9i
YWxPYmplY3QqLCBKU09iamVjdCosIGludDMyX3QgaW5kZXgsIGRvdWJsZSB2YWx1ZSkgV1RGX0lO
VEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsRGlyZWN0
QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIGludDMy
X3QgaW5kZXgsIGRvdWJsZSB2YWx1ZSkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3Qo
SlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIGludDMyX3QgaW5kZXgsIGRvdWJsZSB2YWx1ZSkg
V1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWRXaXRoVGhp
cyhKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUsIHVpbnRwdHJfdCkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblB1dEJ5SWRXaXRoVGhpc1N0cmljdChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkgV1RGX0lOVEVS
TkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsV2l0aFRoaXMoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblB1dEJ5VmFsV2l0aFRoaXNTdHJpY3QoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lO
VEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eShK
U0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
LCBpbnQzMl90KSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVm
aW5lRGF0YVByb3BlcnR5U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBKU1N0cmlu
ZyosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5U3RyaW5nSWRlbnQoSlNHbG9iYWxPYmpl
Y3QqLCBKU09iamVjdCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgRW5jb2RlZEpTVmFsdWUsIGludDMy
X3QpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWZpbmVEYXRh
UHJvcGVydHlTeW1ib2woSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIFN5bWJvbCosIEVuY29k
ZWRKU1ZhbHVlLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eShKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUsIEpTT2JqZWN0KiwgSlNPYmplY3QqLCBpbnQzMl90KSBXVEZfSU5URVJO
QUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN0
cmluZyhKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgSlNTdHJpbmcqLCBKU09iamVjdCosIEpT
T2JqZWN0KiwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHlTdHJpbmdJZGVudChKU0dsb2JhbE9iamVjdCosIEpT
T2JqZWN0KiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBKU09iamVjdCosIEpTT2JqZWN0KiwgaW50MzJf
dCkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlZmluZUFjY2Vz
c29yUHJvcGVydHlTeW1ib2woSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIFN5bWJvbCosIEpT
T2JqZWN0KiwgSlNPYmplY3QqLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFycmF5UHVzaChKU0dsb2JhbE9iamVjdCosIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgSlNBcnJheSopIFdURl9JTlRFUk5BTDsKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJyYXlQdXNoTXVsdGlwbGUoSlNHbG9iYWxP
YmplY3QqLCBKU0FycmF5Kiwgdm9pZCogYnVmZmVyLCBpbnQzMl90IGVsZW1lbnRDb3VudCkgV1RG
X0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25BcnJheVB1
c2hEb3VibGUoSlNHbG9iYWxPYmplY3QqLCBkb3VibGUgdmFsdWUsIEpTQXJyYXkqKSBXVEZfSU5U
RVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFycmF5UHVzaERv
dWJsZU11bHRpcGxlKEpTR2xvYmFsT2JqZWN0KiwgSlNBcnJheSosIHZvaWQqIGJ1ZmZlciwgaW50
MzJfdCBlbGVtZW50Q291bnQpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uQXJyYXlQb3AoSlNHbG9iYWxPYmplY3QqLCBKU0FycmF5KikgV1RGX0lO
VEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25BcnJheVBvcEFu
ZFJlY292ZXJMZW5ndGgoSlNHbG9iYWxPYmplY3QqLCBKU0FycmF5KikgV1RGX0lOVEVSTkFMOwot
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBFeGVjU3RyaW5nKEpT
R2xvYmFsT2JqZWN0KiwgUmVnRXhwT2JqZWN0KiwgSlNTdHJpbmcqKSBXVEZfSU5URVJOQUw7Ci1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cEV4ZWMoSlNHbG9iYWxP
YmplY3QqLCBSZWdFeHBPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBFeGVjR2VuZXJpYyhKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFM
OwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBFeGVjTm9uR2xv
YmFsT3JTdGlja3koSlNHbG9iYWxPYmplY3QqLCBSZWdFeHAqLCBKU1N0cmluZyopIFdURl9JTlRF
Uk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVnRXhwTWF0Y2hG
YXN0R2xvYmFsU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgUmVnRXhwKiwgSlNTdHJpbmcqKSBXVEZf
SU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cE1h
dGNoRmFzdFN0cmluZyhKU0dsb2JhbE9iamVjdCosIFJlZ0V4cE9iamVjdCosIEpTU3RyaW5nKikg
V1RGX0lOVEVSTkFMOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Bcml0aFJv
dW5kLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJpdGhGbG9vciwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFyaXRoQ2VpbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkFyaXRoVHJ1bmMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNv
ZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZh
bENlbGwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkUHJvcGVydHkpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uR2V0QnlWYWxPYmplY3RJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU09iamVjdCosIGludDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uR2V0QnlWYWxTdHJpbmdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBK
U1N0cmluZyosIGludDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
R2V0QnlWYWxPYmplY3RTdHJpbmcsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBK
U0NlbGwqLCBKU0NlbGwqIHN0cmluZykpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25HZXRCeVZhbE9iamVjdFN5bWJvbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCosIEpTQ2VsbCosIEpTQ2VsbCogc3ltYm9sKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblRvUHJpbWl0aXZlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9Q
cm9wZXJ0eUtleSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1Zh
bHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvTnVtYmVyLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9OdW1lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ2FsbE51bWJlckNvbnN0cnVjdG9yLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uR2V0QnlWYWxXaXRoVGhpcywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJvdG90eXBlT2YsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcm90b3R5cGVPZk9iamVjdCwgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25IYXNHZW5lcmljUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgSlNDZWxsKikpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25IYXNPd25TdHJ1Y3R1cmVQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEpTU3RyaW5nKikpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25JblN0cnVjdHVyZVByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgSlNTdHJpbmcqKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eUJ5SW50LCBzaXplX3QsIChKU0ds
b2JhbE9iamVjdCosIEpTQ2VsbCosIGludDMyX3QsIGludDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJvcGVydHlFbnVtZXJhdG9yLCBKU0NlbGwqLCAoSlNH
bG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25HZXRQcm9wZXJ0eUVudW1lcmF0b3JDZWxsLCBKU0NlbGwqLCAoSlNHbG9iYWxP
YmplY3QqLCBKU0NlbGwqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRv
SW5kZXhTdHJpbmcsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIGludDMyX3QpKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3UmVnZXhwV2l0aExhc3RJbmRleCwgSlND
ZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXksIGNoYXIqLCAoSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmUqLCB2b2lkKiwgc2l6ZV90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbk5ld0VtcHR5QXJyYXksIGNoYXIqLCAoVk0qLCBTdHJ1Y3R1cmUqKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNpemUsIGNo
YXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnQzMl90LCBCdXR0ZXJmbHkqKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNpemVBbmRI
aW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgaW50MzJfdCwgaW50MzJf
dCwgQnV0dGVyZmx5KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJ
bnQ4QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGlu
dDMyX3QsIGNoYXIqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0lu
dDhBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZSosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bk5ld0ludDE2QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZSosIGludDMyX3QsIGNoYXIqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bk5ld0ludDE2QXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBT
dHJ1Y3R1cmUqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25OZXdJbnQzMkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBT
dHJ1Y3R1cmUqLCBpbnQzMl90LCBjaGFyKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25OZXdJbnQzMkFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlKiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTmV3VWludDhBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlKiwgaW50MzJfdCwgY2hhciopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTmV3VWludDhBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChKU0ds
b2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQ4Q2xhbXBlZEFycmF5V2l0aFNpemUsIGNoYXIq
LCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnQzMl90LCBjaGFyKikpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50OENsYW1wZWRBcnJheVdpdGhPbmVB
cmd1bWVudCwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEVuY29kZWRKU1Zh
bHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQxNkFycmF5
V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnQzMl90LCBj
aGFyKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50MTZBcnJh
eVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEVu
Y29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1Vp
bnQzMkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBp
bnQzMl90LCBjaGFyKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdV
aW50MzJBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVj
dHVyZSosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk5ld0Zsb2F0MzJBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3Ry
dWN0dXJlKiwgaW50MzJfdCwgY2hhciopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uTmV3RmxvYXQzMkFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlKiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTmV3RmxvYXQ2NEFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnQzMl90LCBjaGFyKikpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25OZXdGbG9hdDY0QXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAo
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheUl0ZXJhdG9yLCBKU0NlbGwqLCAoVk0q
LCBTdHJ1Y3R1cmUqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld01h
cEl0ZXJhdG9yLCBKU0NlbGwqLCAoVk0qLCBTdHJ1Y3R1cmUqKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk5ld1NldEl0ZXJhdG9yLCBKU0NlbGwqLCAoVk0qLCBTdHJ1Y3R1
cmUqKSk7CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxTdHJp
Y3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbE5vblN0cmlj
dCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN0cmlj
dCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxsTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25QdXRCeVZhbENlbGxTdHJpbmdTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpT
Q2VsbCosIEpTQ2VsbCogc3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxsU3RyaW5nTm9uU3Ry
aWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU0NlbGwqIHN0cmluZywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblB1dEJ5VmFsQ2VsbFN5bWJvbFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0Kiwg
SlNDZWxsKiwgSlNDZWxsKiBzeW1ib2wsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxTeW1ib2xOb25T
dHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEpTQ2VsbCogc3ltYm9sLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiwgSlNPYmplY3QqLCBpbnQzMl90IGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxCZXlv
bmRBcnJheUJvdW5kc05vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3Qq
LCBpbnQzMl90IGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5k
c05vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBpbnQzMl90IGlu
ZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJv
cGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdE5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmljdCwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeVZhbERpcmVjdENlbGxTdHJpbmdTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpT
Q2VsbCosIEpTQ2VsbCogc3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3RyaW5n
Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU0NlbGwqIHN0cmlu
ZywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN5bWJvbFN0cmljdCwgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiBzeW1ib2wsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERp
cmVjdENlbGxTeW1ib2xOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCos
IEpTQ2VsbCogc3ltYm9sLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5k
c1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBpbnQzMl90IGluZGV4
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBpbnQzMl90IGluZGV4LCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UHV0RG91YmxlQnlWYWxCZXlvbmRBcnJheUJvdW5kc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNPYmplY3QqLCBpbnQzMl90IGluZGV4LCBkb3VibGUgdmFsdWUpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RG91YmxlQnlWYWxCZXlvbmRBcnJheUJvdW5k
c05vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBpbnQzMl90IGlu
ZGV4LCBkb3VibGUgdmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UHV0RG91YmxlQnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdCwgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiwgSlNPYmplY3QqLCBpbnQzMl90IGluZGV4LCBkb3VibGUgdmFsdWUpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RG91YmxlQnlWYWxEaXJlY3RCZXlv
bmRBcnJheUJvdW5kc05vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3Qq
LCBpbnQzMl90IGluZGV4LCBkb3VibGUgdmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uUHV0QnlJZFdpdGhUaGlzLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNv
ZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFdpdGhUaGlzU3RyaWN0
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0QnlWYWxXaXRoVGhpcywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUp
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxXaXRoVGhpc1N0
cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5LCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCkp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHlT
dHJpbmcsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgSlNTdHJpbmcqLCBFbmNv
ZGVkSlNWYWx1ZSwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25EZWZpbmVEYXRhUHJvcGVydHlTdHJpbmdJZGVudCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0Kiwg
SlNPYmplY3QqLCBVbmlxdWVkU3RyaW5nSW1wbCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90KSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eVN5
bWJvbCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBTeW1ib2wqLCBFbmNvZGVk
SlNWYWx1ZSwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25E
ZWZpbmVBY2Nlc3NvclByb3BlcnR5LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCos
IEVuY29kZWRKU1ZhbHVlLCBKU09iamVjdCosIEpTT2JqZWN0KiwgaW50MzJfdCkpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5U3RyaW5n
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIEpTU3RyaW5nKiwgSlNPYmplY3Qq
LCBKU09iamVjdCosIGludDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN0cmluZ0lkZW50LCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqLCBKU09iamVjdCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgSlNPYmplY3QqLCBKU09iamVjdCos
IGludDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNj
ZXNzb3JQcm9wZXJ0eVN5bWJvbCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBT
eW1ib2wqLCBKU09iamVjdCosIEpTT2JqZWN0KiwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25BcnJheVB1c2gsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
YmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEpTQXJyYXkqKSk7CitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaE11bHRpcGxlLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNBcnJheSosIHZvaWQqIGJ1ZmZlciwgaW50MzJfdCBl
bGVtZW50Q291bnQpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlQ
dXNoRG91YmxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgZG91YmxlIHZhbHVl
LCBKU0FycmF5KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheVB1
c2hEb3VibGVNdWx0aXBsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQXJy
YXkqLCB2b2lkKiBidWZmZXIsIGludDMyX3QgZWxlbWVudENvdW50KSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UG9wLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiwgSlNBcnJheSopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
QXJyYXlQb3BBbmRSZWNvdmVyTGVuZ3RoLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiwgSlNBcnJheSopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhw
RXhlY1N0cmluZywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFJlZ0V4cE9iamVj
dCosIEpTU3RyaW5nKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdF
eHBFeGVjLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgUmVnRXhwT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVn
RXhwRXhlY0dlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVk
SlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUmVnRXhwRXhlY05vbkdsb2JhbE9yU3RpY2t5LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiwgUmVnRXhwKiwgSlNTdHJpbmcqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblJlZ0V4cE1hdGNoRmFzdEdsb2JhbFN0cmluZywgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iamVjdCosIFJlZ0V4cCosIEpTU3RyaW5nKikpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25SZWdFeHBNYXRjaEZhc3RTdHJpbmcsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqLCBSZWdFeHBPYmplY3QqLCBKU1N0cmluZyopKTsKIC8vIFRoZXNl
IGNvbXBhcmlzb25zIHJldHVybiBhIGJvb2xlYW4gd2l0aGluIGEgc2l6ZV90IHN1Y2ggdGhhdCB0
aGUgdmFsdWUgaXMgemVybyBleHRlbmRlZCB0byBmaWxsIHRoZSByZWdpc3Rlci4KLXNpemVfdCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cFRlc3RTdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBS
ZWdFeHBPYmplY3QqLCBKU1N0cmluZyopIFdURl9JTlRFUk5BTDsKLXNpemVfdCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblJlZ0V4cFRlc3QoSlNHbG9iYWxPYmplY3QqLCBSZWdFeHBPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUmVnRXhwVGVzdEdlbmVyaWMoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLXNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkNvbXBhcmVTdHJpY3RFcUNlbGwoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSwgSlNDZWxs
KiBvcDIpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uU3ViSGVhcEJpZ0ludChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9w
MikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25N
dWxIZWFwQmlnSW50KEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSBX
VEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk1vZEhl
YXBCaWdJbnQoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIpIFdURl9J
TlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGl2SGVhcEJp
Z0ludChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikgV1RGX0lOVEVS
TkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qb3dIZWFwQmlnSW50
KEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSBXVEZfSU5URVJOQUw7
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkJpdEFuZEhlYXBCaWdJbnQo
SlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIpIFdURl9JTlRFUk5BTDsK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQml0Tm90SGVhcEJpZ0ludChK
U0dsb2JhbE9iamVjdCosIEpTQ2VsbCogb3AxKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkJpdE9ySGVhcEJpZ0ludChKU0dsb2JhbE9iamVjdCos
IEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25CaXRMU2hpZnRIZWFwQmlnSW50KEpTR2xvYmFsT2JqZWN0
KiwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFkZEhlYXBCaWdJbnQoSlNHbG9iYWxPYmplY3QqLCBK
U0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uQml0UlNoaWZ0SGVhcEJpZ0ludChKU0dsb2JhbE9iamVjdCos
IEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25CaXRYb3JIZWFwQmlnSW50KEpTR2xvYmFsT2JqZWN0Kiwg
SlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSBXVEZfSU5URVJOQUw7Ci1zaXplX3QgSklUX09QRVJB
VElPTiBvcGVyYXRpb25TYW1lVmFsdWUoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVy
YXRpb25DcmVhdGVBY3RpdmF0aW9uRGlyZWN0KFZNKiwgU3RydWN0dXJlKiwgSlNTY29wZSosIFN5
bWJvbFRhYmxlKiwgRW5jb2RlZEpTVmFsdWUpOwotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkNyZWF0ZURpcmVjdEFyZ3VtZW50cyhWTSosIFN0cnVjdHVyZSosIHVpbnQzMl90IGxlbmd0
aCwgdWludDMyX3QgbWluQ2FwYWNpdHkpOwotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkNyZWF0ZURpcmVjdEFyZ3VtZW50c0R1cmluZ0V4aXQoVk0qLCBJbmxpbmVDYWxsRnJhbWUqLCBK
U0Z1bmN0aW9uKiwgdWludDMyX3QgYXJndW1lbnRDb3VudCk7Ci1KU0NlbGwqIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uQ3JlYXRlU2NvcGVkQXJndW1lbnRzKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlKiwgUmVnaXN0ZXIqIGFyZ3VtZW50U3RhcnQsIHVpbnQzMl90IGxlbmd0aCwgSlNGdW5jdGlv
biogY2FsbGVlLCBKU0xleGljYWxFbnZpcm9ubWVudCopOwotSlNDZWxsKiBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkNyZWF0ZUNsb25lZEFyZ3VtZW50c0R1cmluZ0V4aXQoVk0qLCBJbmxpbmVDYWxs
RnJhbWUqLCBKU0Z1bmN0aW9uKiwgdWludDMyX3QgYXJndW1lbnRDb3VudCk7Ci1KU0NlbGwqIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzKEpTR2xvYmFsT2JqZWN0
KiwgU3RydWN0dXJlKiwgUmVnaXN0ZXIqIGFyZ3VtZW50U3RhcnQsIHVpbnQzMl90IGxlbmd0aCwg
SlNGdW5jdGlvbiogY2FsbGVlKTsKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25DcmVh
dGVBcmd1bWVudHNCdXR0ZXJmbHkoSlNHbG9iYWxPYmplY3QqLCBSZWdpc3RlciogYXJndW1lbnRT
dGFydCwgdWludDMyX3QgYXJndW1lbnRDb3VudCk7Ci1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uQ3JlYXRlUmVzdChKU0dsb2JhbE9iamVjdCosIFJlZ2lzdGVyKiBhcmd1bWVudFN0YXJ0
LCB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50c1RvU2tpcCwgdW5zaWduZWQgYXJyYXlTaXplKTsK
LUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdBcnJheUJ1ZmZlcihWTSosIFN0cnVj
dHVyZSosIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVy
YXRpb25TZXRBZGQoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgaW50
MzJfdCkgV1RGX0lOVEVSTkFMOwotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk1hcFNl
dChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbldl
YWtTZXRBZGQoVk0qLCBKU0NlbGwqLCBKU0NlbGwqLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7Ci12
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uV2Vha01hcFNldChWTSosIEpTQ2VsbCosIEpTQ2Vs
bCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7Ci1kb3VibGUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25GTW9kT25JbnRzKGludDMyX3QsIGludDMyX3QpIFdURl9JTlRFUk5B
TDsKLXNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblR5cGVPZklzT2JqZWN0KEpTR2xvYmFs
T2JqZWN0KiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwotc2l6ZV90IEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVHlwZU9mSXNGdW5jdGlvbihKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopIFdURl9JTlRF
Uk5BTDsKLXNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9iamVjdElzQ2FsbGFibGUoSlNH
bG9iYWxPYmplY3QqLCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7Ci1zaXplX3QgSklUX09QRVJBVElP
TiBvcGVyYXRpb25Jc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUp
IFdURl9JTlRFUk5BTDsKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25UeXBlT2ZPYmpl
Y3QoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7Ci1jaGFyKiBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkFsbG9jYXRlU2ltcGxlUHJvcGVydHlTdG9yYWdlV2l0aEluaXRpYWxD
YXBhY2l0eShWTSopIFdURl9JTlRFUk5BTDsKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
QWxsb2NhdGVTaW1wbGVQcm9wZXJ0eVN0b3JhZ2UoVk0qLCBzaXplX3QgbmV3U2l6ZSkgV1RGX0lO
VEVSTkFMOwotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25BbGxvY2F0ZUNvbXBsZXhQcm9w
ZXJ0eVN0b3JhZ2VXaXRoSW5pdGlhbENhcGFjaXR5KFZNKiwgSlNPYmplY3QqKSBXVEZfSU5URVJO
QUw7Ci1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFsbG9jYXRlQ29tcGxleFByb3BlcnR5
U3RvcmFnZShWTSosIEpTT2JqZWN0Kiwgc2l6ZV90IG5ld1NpemUpIFdURl9JTlRFUk5BTDsKLWNo
YXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRW5zdXJlSW50MzIoVk0qLCBKU0NlbGwqKTsKLWNo
YXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRW5zdXJlRG91YmxlKFZNKiwgSlNDZWxsKik7Ci1j
aGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkVuc3VyZUNvbnRpZ3VvdXMoVk0qLCBKU0NlbGwq
KTsKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRW5zdXJlQXJyYXlTdG9yYWdlKFZNKiwg
SlNDZWxsKik7Ci1TdHJpbmdJbXBsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlc29sdmVSb3Bl
KEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqKTsKLUpTU3RyaW5nKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblNpbmdsZUNoYXJhY3RlclN0cmluZyhWTSosIGludDMyX3QpOwotCi1KU0NlbGwqIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uU3RyaW5nU3Vic3RyKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxs
KiwgaW50MzJfdCwgaW50MzJfdCk7Ci1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3Ry
aW5nU2xpY2UoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBpbnQzMl90LCBpbnQzMl90KTsKLUpT
U3RyaW5nKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN0cmluZ1ZhbHVlT2YoSlNHbG9iYWxPYmpl
Y3QqLCBFbmNvZGVkSlNWYWx1ZSk7Ci1KU1N0cmluZyogSklUX09QRVJBVElPTiBvcGVyYXRpb25U
b0xvd2VyQ2FzZShKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwgdWludDMyX3QpOwotCi1jaGFy
KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkludDMyVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBp
bnQzMl90LCBpbnQzMl90KTsKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW50NTJUb1N0
cmluZyhKU0dsb2JhbE9iamVjdCosIGludDY0X3QsIGludDMyX3QpOwotY2hhciogSklUX09QRVJB
VElPTiBvcGVyYXRpb25Eb3VibGVUb1N0cmluZyhKU0dsb2JhbE9iamVjdCosIGRvdWJsZSwgaW50
MzJfdCk7Ci1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkludDMyVG9TdHJpbmdXaXRoVmFs
aWRSYWRpeChKU0dsb2JhbE9iamVjdCosIGludDMyX3QsIGludDMyX3QpOwotY2hhciogSklUX09Q
RVJBVElPTiBvcGVyYXRpb25JbnQ1MlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgoSlNHbG9iYWxPYmpl
Y3QqLCBpbnQ2NF90LCBpbnQzMl90KTsKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRG91
YmxlVG9TdHJpbmdXaXRoVmFsaWRSYWRpeChKU0dsb2JhbE9iamVjdCosIGRvdWJsZSwgaW50MzJf
dCk7Ci0KLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTm9ybWFsaXplTWFw
S2V5SGVhcEJpZ0ludChWTSosIEpTQmlnSW50KikgV1RGX0lOVEVSTkFMOwotVUNQVVN0cmljdElu
dDMyIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTWFwSGFzaChKU0dsb2JhbE9iamVjdCosIEVuY29k
ZWRKU1ZhbHVlIGlucHV0KTsKLVVDUFVTdHJpY3RJbnQzMiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bk1hcEhhc2hIZWFwQmlnSW50KFZNKiwgSlNCaWdJbnQqKTsKLUpTQ2VsbCogSklUX09QRVJBVElP
TiBvcGVyYXRpb25KU01hcEZpbmRCdWNrZXQoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNv
ZGVkSlNWYWx1ZSwgaW50MzJfdCk7Ci1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSlNT
ZXRGaW5kQnVja2V0KEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIGlu
dDMyX3QpOwotCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblBhcnNlSW50
Tm9SYWRpeEdlbmVyaWMoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSk7Ci1FbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblBhcnNlSW50U3RyaW5nTm9SYWRpeChKU0ds
b2JhbE9iamVjdCosIEpTU3RyaW5nKik7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblBhcnNlSW50U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBpbnQzMl90
KTsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUGFyc2VJbnRHZW5lcmlj
KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpOwotCi1TeW1ib2wqIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3U3ltYm9sKFZNKik7Ci1TeW1ib2wqIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uTmV3U3ltYm9sV2l0aERlc2NyaXB0aW9uKEpTR2xvYmFsT2JqZWN0KiwgSlNT
dHJpbmcqKTsKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdTdHJpbmdPYmplY3Qo
Vk0qLCBKU1N0cmluZyosIFN0cnVjdHVyZSopOwotSlNTdHJpbmcqIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVG9TdHJpbmdPbkNlbGwoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKTsKLUpTU3RyaW5n
KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUpOwotSlNTdHJpbmcqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbFN0cmluZ0Nv
bnN0cnVjdG9yT25DZWxsKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKik7Ci1KU1N0cmluZyogSklU
X09QRVJBVElPTiBvcGVyYXRpb25DYWxsU3RyaW5nQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSk7Ci1KU1N0cmluZyogSklUX09QRVJBVElPTiBvcGVyYXRpb25NYWtl
Um9wZTIoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyosIEpTU3RyaW5nKik7Ci1KU1N0cmluZyog
SklUX09QRVJBVElPTiBvcGVyYXRpb25NYWtlUm9wZTMoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmlu
ZyosIEpTU3RyaW5nKiwgSlNTdHJpbmcqKTsKLUpTU3RyaW5nKiBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblN0ckNhdDIoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUpOwotSlNTdHJpbmcqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3RyQ2F0MyhKU0dsb2JhbE9i
amVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwot
Y2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25GaW5kU3dpdGNoSW1tVGFyZ2V0Rm9yRG91Ymxl
KFZNKiwgRW5jb2RlZEpTVmFsdWUsIHNpemVfdCB0YWJsZUluZGV4KTsKLWNoYXIqIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uU3dpdGNoU3RyaW5nKEpTR2xvYmFsT2JqZWN0Kiwgc2l6ZV90IHRhYmxl
SW5kZXgsIEpTU3RyaW5nKik7Ci11aW50cHRyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21w
YXJlU3RyaW5nSW1wbExlc3MoU3RyaW5nSW1wbCosIFN0cmluZ0ltcGwqKTsKLXVpbnRwdHJfdCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsTGVzc0VxKFN0cmluZ0ltcGwq
LCBTdHJpbmdJbXBsKik7Ci11aW50cHRyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJl
U3RyaW5nSW1wbEdyZWF0ZXIoU3RyaW5nSW1wbCosIFN0cmluZ0ltcGwqKTsKLXVpbnRwdHJfdCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsR3JlYXRlckVxKFN0cmluZ0lt
cGwqLCBTdHJpbmdJbXBsKik7Ci11aW50cHRyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21w
YXJlU3RyaW5nTGVzcyhKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwgSlNTdHJpbmcqKTsKLXVp
bnRwdHJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdMZXNzRXEoSlNHbG9i
YWxPYmplY3QqLCBKU1N0cmluZyosIEpTU3RyaW5nKik7Ci11aW50cHRyX3QgSklUX09QRVJBVElP
TiBvcGVyYXRpb25Db21wYXJlU3RyaW5nR3JlYXRlcihKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5n
KiwgSlNTdHJpbmcqKTsKLXVpbnRwdHJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVT
dHJpbmdHcmVhdGVyRXEoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyosIEpTU3RyaW5nKik7Ci12
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTm90aWZ5V3JpdGUoVk0qLCBXYXRjaHBvaW50U2V0
Kik7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3dTdGFja092ZXJmbG93Rm9yVmFy
YXJncyhKU0dsb2JhbE9iamVjdCopIFdURl9JTlRFUk5BTDsKLVVDUFVTdHJpY3RJbnQzMiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblNpemVPZlZhcmFyZ3MoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVk
SlNWYWx1ZSBhcmd1bWVudHMsIHVpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0KTsKLXZvaWQgSklU
X09QRVJBVElPTiBvcGVyYXRpb25Mb2FkVmFyYXJncyhKU0dsb2JhbE9iamVjdCosIGludDMyX3Qg
Zmlyc3RFbGVtZW50RGVzdCwgRW5jb2RlZEpTVmFsdWUgYXJndW1lbnRzLCB1aW50MzJfdCBvZmZz
ZXQsIHVpbnQzMl90IGxlbmd0aCwgdWludDMyX3QgbWFuZGF0b3J5TWluaW11bSk7Ci12b2lkIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3dERkcoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNW
YWx1ZSk7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3dTdGF0aWNFcnJvcihKU0ds
b2JhbE9iamVjdCosIEpTU3RyaW5nKiwgdWludDMyX3QpOwotCi1zaXplX3QgSklUX09QRVJBVElP
TiBvcGVyYXRpb25IYXNPd25Qcm9wZXJ0eShKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUpOwotCi1VQ1BVU3RyaWN0SW50MzIgSklUX09QRVJBVElPTiBvcGVyYXRpb25B
cnJheUluZGV4T2ZTdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBCdXR0ZXJmbHkqLCBKU1N0cmluZyos
IGludDMyX3QpOwotVUNQVVN0cmljdEludDMyIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJyYXlJ
bmRleE9mVmFsdWVEb3VibGUoSlNHbG9iYWxPYmplY3QqLCBCdXR0ZXJmbHkqLCBFbmNvZGVkSlNW
YWx1ZSwgaW50MzJfdCk7Ci1VQ1BVU3RyaWN0SW50MzIgSklUX09QRVJBVElPTiBvcGVyYXRpb25B
cnJheUluZGV4T2ZWYWx1ZUludDMyT3JDb250aWd1b3VzKEpTR2xvYmFsT2JqZWN0KiwgQnV0dGVy
Zmx5KiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpOwotCi1KU0NlbGwqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uU3ByZWFkRmFzdEFycmF5KEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKik7Ci1KU0Nl
bGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3ByZWFkR2VuZXJpYyhKU0dsb2JhbE9iamVjdCos
IEpTQ2VsbCopOwotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0FycmF5V2l0aFNw
cmVhZFNsb3coSlNHbG9iYWxPYmplY3QqLCB2b2lkKiwgdWludDMyX3QpOwotSlNDZWxsKiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkNyZWF0ZUltbXV0YWJsZUJ1dHRlcmZseShKU0dsb2JhbE9iamVj
dCosIHVuc2lnbmVkIGxlbmd0aCk7Ci0KLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25S
ZXNvbHZlU2NvcGUoSlNHbG9iYWxPYmplY3QqLCBKU1Njb3BlKiwgVW5pcXVlZFN0cmluZ0ltcGwq
KTsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVzb2x2ZVNjb3BlRm9y
SG9pc3RpbmdGdW5jRGVjbEluRXZhbChKU0dsb2JhbE9iamVjdCosIEpTU2NvcGUqLCBVbmlxdWVk
U3RyaW5nSW1wbCopOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRE
eW5hbWljVmFyKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIHNjb3BlLCBVbmlxdWVkU3RyaW5n
SW1wbCosIHVuc2lnbmVkKTsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXREeW5hbWlj
VmFyU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIHNjb3BlLCBFbmNvZGVkSlNWYWx1
ZSwgVW5pcXVlZFN0cmluZ0ltcGwqLCB1bnNpZ25lZCk7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHV0RHluYW1pY1Zhck5vblN0cmljdChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBz
Y29wZSwgRW5jb2RlZEpTVmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKiwgdW5zaWduZWQpOwotCi1p
bnQ2NF90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29udmVydEJveGVkRG91YmxlVG9JbnQ1MihF
bmNvZGVkSlNWYWx1ZSk7Ci1pbnQ2NF90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29udmVydERv
dWJsZVRvSW50NTIoZG91YmxlKTsKLQotc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTnVt
YmVySXNJbnRlZ2VyKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpOwotCi1jaGFyKiBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld1Jhd09iamVjdChWTSosIFN0cnVjdHVyZSosIGludDMy
X3QsIEJ1dHRlcmZseSopIFdURl9JTlRFUk5BTDsKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVy
YXRpb25OZXdPYmplY3RXaXRoQnV0dGVyZmx5KFZNKiwgU3RydWN0dXJlKiwgQnV0dGVyZmx5Kikg
V1RGX0lOVEVSTkFMOwotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld09iamVjdFdp
dGhCdXR0ZXJmbHlXaXRoSW5kZXhpbmdIZWFkZXJBbmRWZWN0b3JMZW5ndGgoVk0qLCBTdHJ1Y3R1
cmUqLCB1bnNpZ25lZCBsZW5ndGgsIEJ1dHRlcmZseSopIFdURl9JTlRFUk5BTDsKLQotdm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtEaXJlY3RDYWxsKENhbGxMaW5rSW5mbyosIEpTRnVu
Y3Rpb24qKSBXVEZfSU5URVJOQUw7Ci0KLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uRGF0ZUdldEZ1bGxZZWFyKFZNKiwgRGF0ZUluc3RhbmNlKikgV1RGX0lOVEVSTkFMOwot
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRDRnVsbFllYXIo
Vk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRNb250aChWTSosIERhdGVJbnN0YW5jZSopIFdURl9JTlRF
Uk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFVUQ01v
bnRoKFZNKiwgRGF0ZUluc3RhbmNlKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0RGF0ZShWTSosIERhdGVJbnN0YW5jZSopIFdURl9J
TlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFVU
Q0RhdGUoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXREYXkoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZf
SU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRV
VENEYXkoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRIb3VycyhWTSosIERhdGVJbnN0YW5jZSopIFdU
Rl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdl
dFVUQ0hvdXJzKFZNKiwgRGF0ZUluc3RhbmNlKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0TWludXRlcyhWTSosIERhdGVJbnN0YW5j
ZSopIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
RGF0ZUdldFVUQ01pbnV0ZXMoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7Ci1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRTZWNvbmRzKFZNKiwgRGF0
ZUluc3RhbmNlKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25EYXRlR2V0VVRDU2Vjb25kcyhWTSosIERhdGVJbnN0YW5jZSopIFdURl9JTlRFUk5B
TDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFRpbWV6b25l
T2Zmc2V0KFZNKiwgRGF0ZUluc3RhbmNlKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0WWVhcihWTSosIERhdGVJbnN0YW5jZSopIFdU
Rl9JTlRFUk5BTDsKLQotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2Nlc3NUeXBlUHJv
ZmlsZXJMb2dERkcoVk0qKSBXVEZfSU5URVJOQUw7Ci0KLXZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25UcmlnZ2VyUmVvcHRpbWl6YXRpb25Ob3coQ29kZUJsb2NrKiBiYXNlbGluZUNvZGVCbG9j
aywgQ29kZUJsb2NrKiBvcHRpaW16ZWRDb2RlQmxvY2ssIE9TUkV4aXRCYXNlKikgV1RGX0lOVEVS
TkFMOwotdm9pZCB0cmlnZ2VyUmVvcHRpbWl6YXRpb25Ob3coQ29kZUJsb2NrKiBiYXNlbGluZUNv
ZGVCbG9jaywgQ29kZUJsb2NrKiBvcHRpaW16ZWRDb2RlQmxvY2ssIE9TUkV4aXRCYXNlKik7IC8v
IFRoaXMgaXMgbm90IEpJVF9PUEVSQVRJT04uCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblJlZ0V4cFRlc3RTdHJpbmcsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgUmVnRXhw
T2JqZWN0KiwgSlNTdHJpbmcqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blJlZ0V4cFRlc3QsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgUmVnRXhwT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhw
VGVzdEdlbmVyaWMsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBh
cmVTdHJpY3RFcUNlbGwsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBvcDEsIEpT
Q2VsbCogb3AyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN1YkhlYXBC
aWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSwgSlND
ZWxsKiBvcDIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTXVsSGVhcEJp
Z0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogb3AxLCBKU0Nl
bGwqIG9wMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Nb2RIZWFwQmln
SW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBvcDEsIEpTQ2Vs
bCogb3AyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRpdkhlYXBCaWdJ
bnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSwgSlNDZWxs
KiBvcDIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUG93SGVhcEJpZ0lu
dCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogb3AxLCBKU0NlbGwq
IG9wMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25CaXRBbmRIZWFwQmln
SW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBvcDEsIEpTQ2Vs
bCogb3AyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkJpdE5vdEhlYXBC
aWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSkpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25CaXRPckhlYXBCaWdJbnQsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIpKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQml0TFNoaWZ0SGVhcEJpZ0ludCwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9w
MikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BZGRIZWFwQmlnSW50LCBF
bmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3Ay
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkJpdFJTaGlmdEhlYXBCaWdJ
bnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSwgSlNDZWxs
KiBvcDIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQml0WG9ySGVhcEJp
Z0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogb3AxLCBKU0Nl
bGwqIG9wMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TYW1lVmFsdWUs
IHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUFjdGl2YXRpb25E
aXJlY3QsIEpTQ2VsbCosIChWTSosIFN0cnVjdHVyZSosIEpTU2NvcGUqLCBTeW1ib2xUYWJsZSos
IEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNy
ZWF0ZURpcmVjdEFyZ3VtZW50cywgSlNDZWxsKiwgKFZNKiwgU3RydWN0dXJlKiwgdWludDMyX3Qg
bGVuZ3RoLCB1aW50MzJfdCBtaW5DYXBhY2l0eSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25DcmVhdGVEaXJlY3RBcmd1bWVudHNEdXJpbmdFeGl0LCBKU0NlbGwqLCAoVk0q
LCBJbmxpbmVDYWxsRnJhbWUqLCBKU0Z1bmN0aW9uKiwgdWludDMyX3QgYXJndW1lbnRDb3VudCkp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVTY29wZWRBcmd1bWVu
dHMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIFJlZ2lzdGVyKiBhcmd1
bWVudFN0YXJ0LCB1aW50MzJfdCBsZW5ndGgsIEpTRnVuY3Rpb24qIGNhbGxlZSwgSlNMZXhpY2Fs
RW52aXJvbm1lbnQqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0
ZUNsb25lZEFyZ3VtZW50c0R1cmluZ0V4aXQsIEpTQ2VsbCosIChWTSosIElubGluZUNhbGxGcmFt
ZSosIEpTRnVuY3Rpb24qLCB1aW50MzJfdCBhcmd1bWVudENvdW50KSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUNsb25lZEFyZ3VtZW50cywgSlNDZWxsKiwgKEpT
R2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgUmVnaXN0ZXIqIGFyZ3VtZW50U3RhcnQsIHVpbnQz
Ml90IGxlbmd0aCwgSlNGdW5jdGlvbiogY2FsbGVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNyZWF0ZUFyZ3VtZW50c0J1dHRlcmZseSwgSlNDZWxsKiwgKEpTR2xvYmFs
T2JqZWN0KiwgUmVnaXN0ZXIqIGFyZ3VtZW50U3RhcnQsIHVpbnQzMl90IGFyZ3VtZW50Q291bnQp
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlUmVzdCwgSlNDZWxs
KiwgKEpTR2xvYmFsT2JqZWN0KiwgUmVnaXN0ZXIqIGFyZ3VtZW50U3RhcnQsIHVuc2lnbmVkIG51
bWJlck9mQXJndW1lbnRzVG9Ta2lwLCB1bnNpZ25lZCBhcnJheVNpemUpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlCdWZmZXIsIEpTQ2VsbCosIChWTSosIFN0
cnVjdHVyZSosIEpTQ2VsbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
U2V0QWRkLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1
ZSwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXBTZXQs
IEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25XZWFrU2V0QWRkLCB2b2lkLCAoVk0qLCBKU0NlbGwqLCBKU0NlbGwqLCBpbnQzMl90KSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldlYWtNYXBTZXQsIHZvaWQsIChWTSos
IEpTQ2VsbCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90KSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkZNb2RPbkludHMsIGRvdWJsZSwgKGludDMyX3QsIGlu
dDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHlwZU9mSXNPYmpl
Y3QsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKikpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25UeXBlT2ZJc0Z1bmN0aW9uLCBzaXplX3QsIChKU0dsb2JhbE9i
amVjdCosIEpTQ2VsbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT2Jq
ZWN0SXNDYWxsYWJsZSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbklzQ29uc3RydWN0b3IsIHNpemVfdCwgKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uVHlwZU9mT2JqZWN0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0Nl
bGwqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlU2ltcGxl
UHJvcGVydHlTdG9yYWdlV2l0aEluaXRpYWxDYXBhY2l0eSwgY2hhciosIChWTSopKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVTaW1wbGVQcm9wZXJ0eVN0b3Jh
Z2UsIGNoYXIqLCAoVk0qLCBzaXplX3QgbmV3U2l6ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25BbGxvY2F0ZUNvbXBsZXhQcm9wZXJ0eVN0b3JhZ2VXaXRoSW5pdGlhbENh
cGFjaXR5LCBjaGFyKiwgKFZNKiwgSlNPYmplY3QqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkFsbG9jYXRlQ29tcGxleFByb3BlcnR5U3RvcmFnZSwgY2hhciosIChWTSos
IEpTT2JqZWN0Kiwgc2l6ZV90IG5ld1NpemUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uRW5zdXJlSW50MzIsIGNoYXIqLCAoVk0qLCBKU0NlbGwqKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVuc3VyZURvdWJsZSwgY2hhciosIChWTSosIEpTQ2Vs
bCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW5zdXJlQ29udGlndW91
cywgY2hhciosIChWTSosIEpTQ2VsbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uRW5zdXJlQXJyYXlTdG9yYWdlLCBjaGFyKiwgKFZNKiwgSlNDZWxsKikpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZXNvbHZlUm9wZSwgU3RyaW5nSW1wbCosIChK
U0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25TaW5nbGVDaGFyYWN0ZXJTdHJpbmcsIEpTU3RyaW5nKiwgKFZNKiwgaW50MzJfdCkp
OworCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ1N1YnN0ciwgSlND
ZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgaW50MzJfdCwgaW50MzJfdCkpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdTbGljZSwgSlNDZWxsKiwgKEpT
R2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgaW50MzJfdCwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdWYWx1ZU9mLCBKU1N0cmluZyosIChKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblRvTG93ZXJDYXNlLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5n
KiwgdWludDMyX3QpKTsKKworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnQz
MlRvU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgaW50MzJfdCwgaW50MzJfdCkpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnQ1MlRvU3RyaW5nLCBjaGFyKiwg
KEpTR2xvYmFsT2JqZWN0KiwgaW50NjRfdCwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Eb3VibGVUb1N0cmluZywgY2hhciosIChKU0dsb2JhbE9iamVjdCos
IGRvdWJsZSwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25J
bnQzMlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBpbnQz
Ml90LCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDUy
VG9TdHJpbmdXaXRoVmFsaWRSYWRpeCwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIGludDY0X3Qs
IGludDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRG91YmxlVG9T
dHJpbmdXaXRoVmFsaWRSYWRpeCwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIGRvdWJsZSwgaW50
MzJfdCkpOworCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5vcm1hbGl6ZU1h
cEtleUhlYXBCaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoVk0qLCBKU0JpZ0ludCopKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWFwSGFzaCwgVUNQVVN0cmljdEludDMyLCAo
SlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBpbnB1dCkpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25NYXBIYXNoSGVhcEJpZ0ludCwgVUNQVVN0cmljdEludDMyLCAo
Vk0qLCBKU0JpZ0ludCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSlNN
YXBGaW5kQnVja2V0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVk
SlNWYWx1ZSwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25K
U1NldEZpbmRCdWNrZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29k
ZWRKU1ZhbHVlLCBpbnQzMl90KSk7CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUGFyc2VJbnROb1JhZGl4R2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blBhcnNlSW50U3RyaW5nTm9SYWRpeCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCos
IEpTU3RyaW5nKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QYXJzZUlu
dFN0cmluZywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwgaW50
MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QYXJzZUludEdlbmVy
aWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgaW50
MzJfdCkpOworCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1N5bWJvbCwg
U3ltYm9sKiwgKFZNKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdT
eW1ib2xXaXRoRGVzY3JpcHRpb24sIFN5bWJvbCosIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5n
KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdTdHJpbmdPYmplY3Qs
IEpTQ2VsbCosIChWTSosIEpTU3RyaW5nKiwgU3RydWN0dXJlKikpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25Ub1N0cmluZ09uQ2VsbCwgSlNTdHJpbmcqLCAoSlNHbG9iYWxP
YmplY3QqLCBKU0NlbGwqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRv
U3RyaW5nLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNhbGxTdHJpbmdDb25zdHJ1Y3Rvck9u
Q2VsbCwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNhbGxTdHJpbmdDb25zdHJ1Y3RvciwgSlNTdHJpbmcq
LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25NYWtlUm9wZTIsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0Kiwg
SlNTdHJpbmcqLCBKU1N0cmluZyopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uTWFrZVJvcGUzLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwgSlNT
dHJpbmcqLCBKU1N0cmluZyopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
U3RyQ2F0MiwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyQ2F0
MywgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkZpbmRTd2l0Y2hJbW1UYXJnZXRGb3JEb3VibGUsIGNoYXIqLCAoVk0qLCBFbmNvZGVkSlNW
YWx1ZSwgc2l6ZV90IHRhYmxlSW5kZXgpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uU3dpdGNoU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0Kiwgc2l6ZV90IHRhYmxl
SW5kZXgsIEpTU3RyaW5nKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25D
b21wYXJlU3RyaW5nSW1wbExlc3MsIHVpbnRwdHJfdCwgKFN0cmluZ0ltcGwqLCBTdHJpbmdJbXBs
KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nSW1w
bExlc3NFcSwgdWludHB0cl90LCAoU3RyaW5nSW1wbCosIFN0cmluZ0ltcGwqKSk7CitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsR3JlYXRlciwgdWlu
dHB0cl90LCAoU3RyaW5nSW1wbCosIFN0cmluZ0ltcGwqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsR3JlYXRlckVxLCB1aW50cHRyX3QsIChT
dHJpbmdJbXBsKiwgU3RyaW5nSW1wbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ29tcGFyZVN0cmluZ0xlc3MsIHVpbnRwdHJfdCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNT
dHJpbmcqLCBKU1N0cmluZyopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q29tcGFyZVN0cmluZ0xlc3NFcSwgdWludHB0cl90LCAoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmlu
ZyosIEpTU3RyaW5nKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21w
YXJlU3RyaW5nR3JlYXRlciwgdWludHB0cl90LCAoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyos
IEpTU3RyaW5nKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJl
U3RyaW5nR3JlYXRlckVxLCB1aW50cHRyX3QsIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwg
SlNTdHJpbmcqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5vdGlmeVdy
aXRlLCB2b2lkLCAoVk0qLCBXYXRjaHBvaW50U2V0KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dGb3JWYXJhcmdzLCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNpemVPZlZh
cmFyZ3MsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUg
YXJndW1lbnRzLCB1aW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCkpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25Mb2FkVmFyYXJncywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0Kiwg
aW50MzJfdCBmaXJzdEVsZW1lbnREZXN0LCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMsIHVpbnQz
Ml90IG9mZnNldCwgdWludDMyX3QgbGVuZ3RoLCB1aW50MzJfdCBtYW5kYXRvcnlNaW5pbXVtKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93REZHLCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25UaHJvd1N0YXRpY0Vycm9yLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU1N0
cmluZyosIHVpbnQzMl90KSk7CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
SGFzT3duUHJvcGVydHksIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBFbmNv
ZGVkSlNWYWx1ZSkpOworCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5
SW5kZXhPZlN0cmluZywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqLCBCdXR0ZXJm
bHkqLCBKU1N0cmluZyosIGludDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQXJyYXlJbmRleE9mVmFsdWVEb3VibGUsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFs
T2JqZWN0KiwgQnV0dGVyZmx5KiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlJbmRleE9mVmFsdWVJbnQzMk9yQ29udGln
dW91cywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqLCBCdXR0ZXJmbHkqLCBFbmNv
ZGVkSlNWYWx1ZSwgaW50MzJfdCkpOworCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblNwcmVhZEZhc3RBcnJheSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKikp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TcHJlYWRHZW5lcmljLCBKU0Nl
bGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNwcmVhZFNsb3csIEpTQ2VsbCosIChKU0dsb2JhbE9i
amVjdCosIHZvaWQqLCB1aW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25DcmVhdGVJbW11dGFibGVCdXR0ZXJmbHksIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCos
IHVuc2lnbmVkIGxlbmd0aCkpOworCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blJlc29sdmVTY29wZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTY29wZSosIFVuaXF1
ZWRTdHJpbmdJbXBsKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZXNv
bHZlU2NvcGVGb3JIb2lzdGluZ0Z1bmNEZWNsSW5FdmFsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiwgSlNTY29wZSosIFVuaXF1ZWRTdHJpbmdJbXBsKikpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25HZXREeW5hbWljVmFyLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIHNjb3BlLCBVbmlxdWVkU3RyaW5nSW1wbCosIHVuc2ln
bmVkKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dER5bmFtaWNWYXJT
dHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBzY29wZSwgRW5jb2RlZEpT
VmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKiwgdW5zaWduZWQpKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0RHluYW1pY1Zhck5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiwgSlNPYmplY3QqIHNjb3BlLCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0lt
cGwqLCB1bnNpZ25lZCkpOworCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNv
bnZlcnRCb3hlZERvdWJsZVRvSW50NTIsIGludDY0X3QsIChFbmNvZGVkSlNWYWx1ZSkpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0RG91YmxlVG9JbnQ1MiwgaW50
NjRfdCwgKGRvdWJsZSkpOworCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk51
bWJlcklzSW50ZWdlciwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkp
OworCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1Jhd09iamVjdCwgY2hh
ciosIChWTSosIFN0cnVjdHVyZSosIGludDMyX3QsIEJ1dHRlcmZseSopKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3T2JqZWN0V2l0aEJ1dHRlcmZseSwgSlNDZWxsKiwg
KFZNKiwgU3RydWN0dXJlKiwgQnV0dGVyZmx5KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25OZXdPYmplY3RXaXRoQnV0dGVyZmx5V2l0aEluZGV4aW5nSGVhZGVyQW5kVmVj
dG9yTGVuZ3RoLCBKU0NlbGwqLCAoVk0qLCBTdHJ1Y3R1cmUqLCB1bnNpZ25lZCBsZW5ndGgsIEJ1
dHRlcmZseSopKTsKKworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25MaW5rRGly
ZWN0Q2FsbCwgdm9pZCwgKENhbGxMaW5rSW5mbyosIEpTRnVuY3Rpb24qKSk7CisKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGF0ZUdldEZ1bGxZZWFyLCBFbmNvZGVkSlNWYWx1
ZSwgKFZNKiwgRGF0ZUluc3RhbmNlKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25EYXRlR2V0VVRDRnVsbFllYXIsIEVuY29kZWRKU1ZhbHVlLCAoVk0qLCBEYXRlSW5zdGFu
Y2UqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRhdGVHZXRNb250aCwg
RW5jb2RlZEpTVmFsdWUsIChWTSosIERhdGVJbnN0YW5jZSopKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uRGF0ZUdldFVUQ01vbnRoLCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiwg
RGF0ZUluc3RhbmNlKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EYXRl
R2V0RGF0ZSwgRW5jb2RlZEpTVmFsdWUsIChWTSosIERhdGVJbnN0YW5jZSopKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGF0ZUdldFVUQ0RhdGUsIEVuY29kZWRKU1ZhbHVl
LCAoVk0qLCBEYXRlSW5zdGFuY2UqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkRhdGVHZXREYXksIEVuY29kZWRKU1ZhbHVlLCAoVk0qLCBEYXRlSW5zdGFuY2UqKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRhdGVHZXRVVENEYXksIEVuY29kZWRK
U1ZhbHVlLCAoVk0qLCBEYXRlSW5zdGFuY2UqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkRhdGVHZXRIb3VycywgRW5jb2RlZEpTVmFsdWUsIChWTSosIERhdGVJbnN0YW5j
ZSopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGF0ZUdldFVUQ0hvdXJz
LCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiwgRGF0ZUluc3RhbmNlKikpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25EYXRlR2V0TWludXRlcywgRW5jb2RlZEpTVmFsdWUsIChWTSos
IERhdGVJbnN0YW5jZSopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGF0
ZUdldFVUQ01pbnV0ZXMsIEVuY29kZWRKU1ZhbHVlLCAoVk0qLCBEYXRlSW5zdGFuY2UqKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRhdGVHZXRTZWNvbmRzLCBFbmNvZGVk
SlNWYWx1ZSwgKFZNKiwgRGF0ZUluc3RhbmNlKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25EYXRlR2V0VVRDU2Vjb25kcywgRW5jb2RlZEpTVmFsdWUsIChWTSosIERhdGVJ
bnN0YW5jZSopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGF0ZUdldFRp
bWV6b25lT2Zmc2V0LCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiwgRGF0ZUluc3RhbmNlKikpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EYXRlR2V0WWVhciwgRW5jb2RlZEpTVmFs
dWUsIChWTSosIERhdGVJbnN0YW5jZSopKTsKKworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Qcm9jZXNzVHlwZVByb2ZpbGVyTG9nREZHLCB2b2lkLCAoVk0qKSk7CisKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJpZ2dlclJlb3B0aW1pemF0aW9uTm93LCB2
b2lkLCAoQ29kZUJsb2NrKiBiYXNlbGluZUNvZGVCbG9jaywgQ29kZUJsb2NrKiBvcHRpaW16ZWRD
b2RlQmxvY2ssIE9TUkV4aXRCYXNlKikpOwogCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKLWRvdWJs
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJhbmRvbShKU0dsb2JhbE9iamVjdCopOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SYW5kb20sIGRvdWJsZSwgKEpTR2xvYmFsT2Jq
ZWN0KikpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoRlRMX0pJVCkKLXZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25UcmlnZ2VyVGllclVwTm93KFZNKikgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblRyaWdnZXJUaWVyVXBOb3dJbkxvb3AoVk0qLCB1bnNpZ25lZCBi
eXRlY29kZUluZGV4Qml0cykgV1RGX0lOVEVSTkFMOwotY2hhciogSklUX09QRVJBVElPTiBvcGVy
YXRpb25UcmlnZ2VyT1NSRW50cnlOb3coVk0qLCB1bnNpZ25lZCBieXRlY29kZUluZGV4Qml0cykg
V1RGX0lOVEVSTkFMOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcmlnZ2Vy
VGllclVwTm93LCB2b2lkLCAoVk0qKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblRyaWdnZXJUaWVyVXBOb3dJbkxvb3AsIHZvaWQsIChWTSosIHVuc2lnbmVkIGJ5dGVjb2Rl
SW5kZXhCaXRzKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyaWdnZXJP
U1JFbnRyeU5vdywgY2hhciosIChWTSosIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXhCaXRzKSk7CiAj
ZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCiAKIH0gLy8gZXh0ZXJuICJDIgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCmluZGV4IDRiY2E4Y2Q1
YWU0MDg5ZTUxMGNkYzMxZjgzNTQyMDAwZjBlOWNkMmQuLmU1YjdjNGUzMzYyMmU3ZDgxMDZlNmU1
OWUwMTViYzVmMmY0ZmQzZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMT1NSRXhpdENvbXBpbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TE9TUkV4aXRDb21waWxlci5jcHAKQEAgLTU0OSw3ICs1NDksOSBAQCBzdGF0aWMgdm9pZCBjb21w
aWxlU3R1YihWTSYgdm0sIHVuc2lnbmVkIGV4aXRJRCwgSklUQ29kZSogaml0Q29kZSwgT1NSRXhp
dCYgZXhpdAogICAgICAgICApOwogfQogCi1leHRlcm4gIkMiIEpJVF9PUEVSQVRJT04gdm9pZCog
b3BlcmF0aW9uQ29tcGlsZUZUTE9TUkV4aXQoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIHVuc2lnbmVk
IGV4aXRJRCkKK2V4dGVybiAiQyIgeworCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ29tcGlsZUZUTE9TUkV4aXQsIHZvaWQqLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIHVuc2ln
bmVkIGV4aXRJRCkpCiB7CiAgICAgaWYgKHNob3VsZER1bXBEaXNhc3NlbWJseSgpIHx8IE9wdGlv
bnM6OnZlcmJvc2VPU1IoKSB8fCBPcHRpb25zOjp2ZXJib3NlRlRMT1NSRXhpdCgpKQogICAgICAg
ICBkYXRhTG9nKCJDb21waWxpbmcgT1NSIGV4aXQgd2l0aCBleGl0SUQgPSAiLCBleGl0SUQsICJc
biIpOwpAQCAtNjAyLDYgKzYwNCw4IEBAIGV4dGVybiAiQyIgSklUX09QRVJBVElPTiB2b2lkKiBv
cGVyYXRpb25Db21waWxlRlRMT1NSRXhpdChDYWxsRnJhbWUqIGNhbGxGcmFtZSwKICAgICByZXR1
cm4gZXhpdC5tX2NvZGUuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCk7CiB9CiAKK30gLy8gZXh0
ZXJuICJDIgorCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCiAKICNlbmRpZiAvLyBFTkFCTEUo
RlRMX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhp
dENvbXBpbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxl
ci5oCmluZGV4IGJlNzJmNDUzOTk1NTljNDZjM2EyYWJhMDkwNWE4MWZlMjgzZTQyNDQuLmJkY2U2
OTgxNzEzNGEwYTBjN2Q5ZTBlNTkzOWQwYTRkNjVjMzlmN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuaApAQCAtMzQsNyArMzQsNyBAQCBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAvLyBUYWtlcyB0aGUgY2FsbCBmcmFtZSBhbmQg
dGhlIGluZGV4IG9mIHRoZSBleGl0LCBhbmQgcmV0dXJucyB0aGUgYWRkcmVzcyB0bwogLy8ganVt
cCB0by4KIGV4dGVybiAiQyIgewotdm9pZCogSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21waWxl
RlRMT1NSRXhpdChDYWxsRnJhbWUqLCB1bnNpZ25lZCBleGl0SUQpIFdURl9JTlRFUk5BTDsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGlsZUZUTE9TUkV4aXQsIHZvaWQq
LCAoQ2FsbEZyYW1lKiwgdW5zaWduZWQgZXhpdElEKSk7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2Ug
SlNDOjpGVEwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3BlcmF0
aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMuY3BwCmlu
ZGV4IGZkNjlkYWUzNjNlOGI1YWYzOGFjOTExYjY5YTgyZmJlZjRlOGE4ODcuLjM2MTYxZjlkOWY0
NTI3MzNkNTc1YjA4ZDZjZmNiMWMwMTkzOTU5ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExPcGVyYXRpb25zLmNwcApAQCAtNTIsNyArNTIsOSBAQCBJR05PUkVfV0FSTklOR1Nf
QkVHSU4oImZyYW1lLWFkZHJlc3MiKQogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7
CiAKLWV4dGVybiAiQyIgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblBvcHVsYXRlT2JqZWN0
SW5PU1IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXhpdFRpbWVPYmplY3RNYXRlcmlh
bGl6YXRpb24qIG1hdGVyaWFsaXphdGlvbiwgRW5jb2RlZEpTVmFsdWUqIGVuY29kZWRWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUqIHZhbHVlcykKK2V4dGVybiAiQyIgeworCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUG9wdWxhdGVPYmplY3RJbk9TUiwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEV4aXRUaW1lT2JqZWN0TWF0ZXJpYWxpemF0aW9uKiBtYXRlcmlh
bGl6YXRpb24sIEVuY29kZWRKU1ZhbHVlKiBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlKiB2
YWx1ZXMpKQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBERkc7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwpAQCAtMTgwLDcgKzE4Miw4IEBAIGV4dGVybiAiQyIgdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblBvcHVsYXRlT2JqZWN0SW5PU1IoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
CiAgICAgfQogfQogCi1leHRlcm4gIkMiIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25N
YXRlcmlhbGl6ZU9iamVjdEluT1NSKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEV4aXRU
aW1lT2JqZWN0TWF0ZXJpYWxpemF0aW9uKiBtYXRlcmlhbGl6YXRpb24sIEVuY29kZWRKU1ZhbHVl
KiB2YWx1ZXMpCisKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXRlcmlhbGl6
ZU9iamVjdEluT1NSLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXhp
dFRpbWVPYmplY3RNYXRlcmlhbGl6YXRpb24qIG1hdGVyaWFsaXphdGlvbiwgRW5jb2RlZEpTVmFs
dWUqIHZhbHVlcykpCiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIERGRzsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CkBAIC02OTYsNyArNjk5LDcgQEAgZXh0ZXJuICJDIiBKU0NlbGwq
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTWF0ZXJpYWxpemVPYmplY3RJbk9TUihKU0dsb2JhbE9i
amVjdCoKICAgICB9CiB9CiAKLWV4dGVybiAiQyIgaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblN3aXRjaFN0cmluZ0FuZEdldEJyYW5jaE9mZnNldChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBzaXplX3QgdGFibGVJbmRleCwgSlNTdHJpbmcqIHN0cmluZykKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hTdHJpbmdBbmRHZXRCcmFuY2hPZmZzZXQsIGlu
dDMyX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBzaXplX3QgdGFibGVJbmRleCwg
SlNTdHJpbmcqIHN0cmluZykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTcx
MCw3ICs3MTMsNyBAQCBleHRlcm4gIkMiIGludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25T
d2l0Y2hTdHJpbmdBbmRHZXRCcmFuY2hPZmZzZXQoSlNHbG9iYQogICAgIHJldHVybiBjYWxsRnJh
bWUtPmNvZGVCbG9jaygpLT5zdHJpbmdTd2l0Y2hKdW1wVGFibGUodGFibGVJbmRleCkub2Zmc2V0
Rm9yVmFsdWUoc3RySW1wbCwgc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWluKCkpOwog
fQogCi1leHRlcm4gIkMiIGludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25UeXBlT2ZPYmpl
Y3RBc1R5cGVvZlR5cGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmpl
Y3QpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHlwZU9mT2JqZWN0QXNUeXBl
b2ZUeXBlLCBpbnQzMl90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBv
YmplY3QpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC03MjUsNyArNzI4LDcg
QEAgZXh0ZXJuICJDIiBpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVHlwZU9mT2JqZWN0
QXNUeXBlb2ZUeXBlKEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJf
dD4oVHlwZW9mVHlwZTo6T2JqZWN0KTsKIH0KIAotZXh0ZXJuICJDIiB2b2lkKiBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkNvbXBpbGVGVExMYXp5U2xvd1BhdGgoQ2FsbEZyYW1lKiBjYWxsRnJhbWUs
IHVuc2lnbmVkIGluZGV4KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBp
bGVGVExMYXp5U2xvd1BhdGgsIHZvaWQqLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIHVuc2lnbmVk
IGluZGV4KSkKIHsKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJlY2F0ZWRWTSgpOwogCkBA
IC03NDEsNiArNzQ0LDggQEAgZXh0ZXJuICJDIiB2b2lkKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkNvbXBpbGVGVExMYXp5U2xvd1BhdGgoQ2FsbEZyYW1lKiBjYWxsRnIKICAgICByZXR1cm4gbGF6
eVNsb3dQYXRoLnN0dWIoKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKIH0KIAorfSAvLyBl
eHRlcm4gIkMiCisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKIAogSUdOT1JFX1dBUk5JTkdT
X0VORApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPcGVyYXRpb25z
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMuaAppbmRleCA0NzUz
NTdhMTFiODliZTBkMzM1NzZmZGM5YTVjZTYyMzY4YzMwMWFkLi40YTBkMTgyZDMxMjNmZTZjZTUx
NWM1ZTY5M2VmNDczM2YxNDQxZTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTE9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9w
ZXJhdGlvbnMuaApAQCAtMzYsMTQgKzM2LDE0IEBAIGNsYXNzIExhenlTbG93UGF0aDsKIAogZXh0
ZXJuICJDIiB7CiAKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25NYXRlcmlhbGl6ZU9i
amVjdEluT1NSKEpTR2xvYmFsT2JqZWN0KiwgRXhpdFRpbWVPYmplY3RNYXRlcmlhbGl6YXRpb24q
LCBFbmNvZGVkSlNWYWx1ZSopIFdURl9JTlRFUk5BTDsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTWF0ZXJpYWxpemVPYmplY3RJbk9TUiwgSlNDZWxsKiwgKEpTR2xvYmFsT2Jq
ZWN0KiwgRXhpdFRpbWVPYmplY3RNYXRlcmlhbGl6YXRpb24qLCBFbmNvZGVkSlNWYWx1ZSopKTsK
IAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblBvcHVsYXRlT2JqZWN0SW5PU1IoSlNHbG9i
YWxPYmplY3QqLCBFeGl0VGltZU9iamVjdE1hdGVyaWFsaXphdGlvbiosIEVuY29kZWRKU1ZhbHVl
KiwgRW5jb2RlZEpTVmFsdWUqKSBXVEZfSU5URVJOQUw7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblBvcHVsYXRlT2JqZWN0SW5PU1IsIHZvaWQsIChKU0dsb2JhbE9iamVjdCos
IEV4aXRUaW1lT2JqZWN0TWF0ZXJpYWxpemF0aW9uKiwgRW5jb2RlZEpTVmFsdWUqLCBFbmNvZGVk
SlNWYWx1ZSopKTsKIAotdm9pZCogSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21waWxlRlRMTGF6
eVNsb3dQYXRoKENhbGxGcmFtZSosIHVuc2lnbmVkKSBXVEZfSU5URVJOQUw7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBpbGVGVExMYXp5U2xvd1BhdGgsIHZvaWQqLCAo
Q2FsbEZyYW1lKiwgdW5zaWduZWQpKTsKIAotaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blN3aXRjaFN0cmluZ0FuZEdldEJyYW5jaE9mZnNldChKU0dsb2JhbE9iamVjdCosIHNpemVfdCB0
YWJsZUluZGV4LCBKU1N0cmluZyopIFdURl9JTlRFUk5BTDsKLWludDMyX3QgSklUX09QRVJBVElP
TiBvcGVyYXRpb25UeXBlT2ZPYmplY3RBc1R5cGVvZlR5cGUoSlNHbG9iYWxPYmplY3QqLCBKU0Nl
bGwqKSBXVEZfSU5URVJOQUw7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3
aXRjaFN0cmluZ0FuZEdldEJyYW5jaE9mZnNldCwgaW50MzJfdCwgKEpTR2xvYmFsT2JqZWN0Kiwg
c2l6ZV90IHRhYmxlSW5kZXgsIEpTU3RyaW5nKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25UeXBlT2ZPYmplY3RBc1R5cGVvZlR5cGUsIGludDMyX3QsIChKU0dsb2JhbE9i
amVjdCosIEpTQ2VsbCopKTsKIAogfSAvLyBleHRlcm4gIkMiCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5oCmluZGV4IGI0NWJlM2FkNTAyNzkxNTBiNzkyNDNhMDRmZmJlYzExZjkzMWY5ODUuLmY4M2Y2
ZjE4NTZjODZkMGY5YTU0ODJhZGVlZDNiY2E3Mjc0OTJiYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVQuaApAQCAtNTA0LDkgKzUwNCwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgT3A+CiAgICAgICAgIHZvaWQgZW1pdF9jb21wYXJlVW5zaWduZWRBbmRKdW1w
KGNvbnN0IEluc3RydWN0aW9uKiwgUmVsYXRpb25hbENvbmRpdGlvbik7CiAgICAgICAgIHZvaWQg
ZW1pdF9jb21wYXJlVW5zaWduZWRBbmRKdW1wSW1wbChWaXJ0dWFsUmVnaXN0ZXIgb3AxLCBWaXJ0
dWFsUmVnaXN0ZXIgb3AyLCB1bnNpZ25lZCB0YXJnZXQsIFJlbGF0aW9uYWxDb25kaXRpb24pOwot
ICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcD4KLSAgICAgICAgdm9pZCBlbWl0X2NvbXBhcmVB
bmRKdW1wU2xvdyhjb25zdCBJbnN0cnVjdGlvbiosIERvdWJsZUNvbmRpdGlvbiwgc2l6ZV90IChK
SVRfT1BFUkFUSU9OICpvcGVyYXRpb24pKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlKSwgYm9vbCBpbnZlcnQsIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRl
cmF0b3ImKTsKLSAgICAgICAgdm9pZCBlbWl0X2NvbXBhcmVBbmRKdW1wU2xvd0ltcGwoVmlydHVh
bFJlZ2lzdGVyIG9wMSwgVmlydHVhbFJlZ2lzdGVyIG9wMiwgdW5zaWduZWQgdGFyZ2V0LCBzaXpl
X3QgaW5zdHJ1Y3Rpb25TaXplLCBEb3VibGVDb25kaXRpb24sIHNpemVfdCAoSklUX09QRVJBVElP
TiAqb3BlcmF0aW9uKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSksIGJvb2wgaW52ZXJ0LCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7Cisg
ICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIE9wLCB0eXBlbmFtZSBTbG93T3BlcmF0aW9uPgorICAg
ICAgICB2b2lkIGVtaXRfY29tcGFyZUFuZEp1bXBTbG93KGNvbnN0IEluc3RydWN0aW9uKiwgRG91
YmxlQ29uZGl0aW9uLCBTbG93T3BlcmF0aW9uLCBib29sIGludmVydCwgVmVjdG9yPFNsb3dDYXNl
RW50cnk+OjppdGVyYXRvciYpOworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBTbG93T3BlcmF0
aW9uPgorICAgICAgICB2b2lkIGVtaXRfY29tcGFyZUFuZEp1bXBTbG93SW1wbChWaXJ0dWFsUmVn
aXN0ZXIgb3AxLCBWaXJ0dWFsUmVnaXN0ZXIgb3AyLCB1bnNpZ25lZCB0YXJnZXQsIHNpemVfdCBp
bnN0cnVjdGlvblNpemUsIERvdWJsZUNvbmRpdGlvbiwgU2xvd09wZXJhdGlvbiwgYm9vbCBpbnZl
cnQsIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgCiAgICAgICAg
IHZvaWQgYXNzZXJ0U3RhY2tQb2ludGVyT2Zmc2V0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCmluZGV4IGI3ZWI4NDVlZjVmZWJjYzEzYTcyNWM2M2M3
MDljZGI3YmRjM2ZlMjAuLmUyZWQ5NTFkZmYwMzQxODIwODUxZjQyNzUwYjFiOGUxODM0NGViZmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcApAQCAtMjcx
LDggKzI3MSw4IEBAIHZvaWQgSklUOjplbWl0X2NvbXBhcmVVbnNpZ25lZEltcGwoVmlydHVhbFJl
Z2lzdGVyIGRzdCwgVmlydHVhbFJlZ2lzdGVyIG9wMSwgVmlyCiAgICAgZW1pdFB1dFZpcnR1YWxS
ZWdpc3Rlcihkc3QpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBPcD4KLXZvaWQgSklUOjplbWl0
X2NvbXBhcmVBbmRKdW1wU2xvdyhjb25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIERvdWJs
ZUNvbmRpdGlvbiBjb25kaXRpb24sIHNpemVfdCAoSklUX09QRVJBVElPTiAqb3BlcmF0aW9uKShK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSksIGJvb2wgaW52
ZXJ0LCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQordGVtcGxhdGU8dHlw
ZW5hbWUgT3AsIHR5cGVuYW1lIFNsb3dPcGVyYXRpb24+Cit2b2lkIEpJVDo6ZW1pdF9jb21wYXJl
QW5kSnVtcFNsb3coY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCBEb3VibGVDb25kaXRp
b24gY29uZGl0aW9uLCBTbG93T3BlcmF0aW9uIG9wZXJhdGlvbiwgYm9vbCBpbnZlcnQsIFZlY3Rv
cjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCiB7CiAgICAgYXV0byBieXRlY29kZSA9
IGluc3RydWN0aW9uLT5hczxPcD4oKTsKICAgICBWaXJ0dWFsUmVnaXN0ZXIgb3AxID0gYnl0ZWNv
ZGUubV9saHM7CkBAIC0yODEsNyArMjgxLDggQEAgdm9pZCBKSVQ6OmVtaXRfY29tcGFyZUFuZEp1
bXBTbG93KGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiwgRG91YmxlQ29uZGl0aW8KICAg
ICBlbWl0X2NvbXBhcmVBbmRKdW1wU2xvd0ltcGwob3AxLCBvcDIsIHRhcmdldCwgaW5zdHJ1Y3Rp
b24tPnNpemUoKSwgY29uZGl0aW9uLCBvcGVyYXRpb24sIGludmVydCwgaXRlcik7CiB9CiAKLXZv
aWQgSklUOjplbWl0X2NvbXBhcmVBbmRKdW1wU2xvd0ltcGwoVmlydHVhbFJlZ2lzdGVyIG9wMSwg
VmlydHVhbFJlZ2lzdGVyIG9wMiwgdW5zaWduZWQgdGFyZ2V0LCBzaXplX3QgaW5zdHJ1Y3Rpb25T
aXplLCBEb3VibGVDb25kaXRpb24gY29uZGl0aW9uLCBzaXplX3QgKEpJVF9PUEVSQVRJT04gKm9w
ZXJhdGlvbikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUp
LCBib29sIGludmVydCwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKK3Rl
bXBsYXRlPHR5cGVuYW1lIFNsb3dPcGVyYXRpb24+Cit2b2lkIEpJVDo6ZW1pdF9jb21wYXJlQW5k
SnVtcFNsb3dJbXBsKFZpcnR1YWxSZWdpc3RlciBvcDEsIFZpcnR1YWxSZWdpc3RlciBvcDIsIHVu
c2lnbmVkIHRhcmdldCwgc2l6ZV90IGluc3RydWN0aW9uU2l6ZSwgRG91YmxlQ29uZGl0aW9uIGNv
bmRpdGlvbiwgU2xvd09wZXJhdGlvbiBvcGVyYXRpb24sIGJvb2wgaW52ZXJ0LCBWZWN0b3I8U2xv
d0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQogewogCiAgICAgLy8gV2UgZ2VuZXJhdGUgaW5s
aW5lIGNvZGUgZm9yIHRoZSBmb2xsb3dpbmcgY2FzZXMgaW4gdGhlIHNsb3cgcGF0aDoKQEAgLTU2
MCw4ICs1NjEsOCBAQCB2b2lkIEpJVDo6ZW1pdF9jb21wYXJlVW5zaWduZWQoY29uc3QgSW5zdHJ1
Y3Rpb24qIGluc3RydWN0aW9uLCBSZWxhdGlvbmFsQ29uZGl0aQogICAgIGVtaXRTdG9yZUJvb2wo
ZHN0LCByZWdUMCk7CiB9CiAKLXRlbXBsYXRlIDx0eXBlbmFtZSBPcD4KLXZvaWQgSklUOjplbWl0
X2NvbXBhcmVBbmRKdW1wU2xvdyhjb25zdCBJbnN0cnVjdGlvbiAqaW5zdHJ1Y3Rpb24sIERvdWJs
ZUNvbmRpdGlvbiwgc2l6ZV90IChKSVRfT1BFUkFUSU9OICpvcGVyYXRpb24pKEpTR2xvYmFsT2Jq
ZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSwgYm9vbCBpbnZlcnQsIFZlY3Rv
cjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCit0ZW1wbGF0ZSA8dHlwZW5hbWUgT3As
IHR5cGVuYW1lIFNsb3dPcGVyYXRpb24+Cit2b2lkIEpJVDo6ZW1pdF9jb21wYXJlQW5kSnVtcFNs
b3coY29uc3QgSW5zdHJ1Y3Rpb24gKmluc3RydWN0aW9uLCBEb3VibGVDb25kaXRpb24sIFNsb3dP
cGVyYXRpb24gb3BlcmF0aW9uLCBib29sIGludmVydCwgVmVjdG9yPFNsb3dDYXNlRW50cnk+Ojpp
dGVyYXRvciYgaXRlcikKIHsKICAgICBhdXRvIGJ5dGVjb2RlID0gaW5zdHJ1Y3Rpb24tPmFzPE9w
PigpOwogICAgIFZpcnR1YWxSZWdpc3RlciBvcDEgPSBieXRlY29kZS5tX2xoczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IGYwZTMxYWMwZjhjODll
M2M4NDI3Y2FkYjdiYjg2NTIzZGJiMjI0OTUuLjgyMDc1NThlMmM2MDViMmFlMTU3OTkzM2MwNWZl
MWU5NTVlOTY2NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmNwcApAQCAtOTgsNyArOTgsNyBAQCB2b2lkICogX1JldHVybkFkZHJlc3Modm9pZCk7CiAjZW5k
aWYKIAogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3dTdGFja092ZXJmbG93RXJy
b3IoQ29kZUJsb2NrKiBjb2RlQmxvY2spCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uVGhyb3dTdGFja092ZXJmbG93RXJyb3IsIHZvaWQsIChDb2RlQmxvY2sqIGNvZGVCbG9jaykp
CiB7CiAgICAgLy8gV2UgcGFzcyBpbiBvdXIgb3duIGNvZGUgYmxvY2ssIGJlY2F1c2UgdGhlIGNh
bGxmcmFtZSBoYXNuJ3QgYmVlbiBwb3B1bGF0ZWQuCiAgICAgVk0mIHZtID0gY29kZUJsb2NrLT52
bSgpOwpAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UaHJv
d1N0YWNrT3ZlcmZsb3dFcnJvcihDb2RlQmxvY2sqIGNvZGVCbG9jaykKICAgICB0aHJvd1N0YWNr
T3ZlcmZsb3dFcnJvcihjb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpLCBzY29wZSk7CiB9CiAKLXZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dFcnJvckZyb21UaHVu
ayhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0Vycm9yRnJvbVRodW5rLCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
QEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3dTdGFj
a092ZXJmbG93RXJyb3JGcm9tVGh1bmsoSlNHbG9iYWxPYmplY3QqIGdsbwogICAgIEFTU0VSVCh2
bS50YXJnZXRNYWNoaW5lUENGb3JUaHJvdyk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25UaHJvd0l0ZXJhdG9yUmVzdWx0SXNOb3RPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UaHJvd0l0ZXJhdG9y
UmVzdWx0SXNOb3RPYmplY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTMwLDcgKzEzMCw3IEBAIHZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25UaHJvd0l0ZXJhdG9yUmVzdWx0SXNOb3RPYmplY3QoSlNH
bG9iYWxPYmplY3QqIGdsb2JhCiAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29w
ZSwgIkl0ZXJhdG9yIHJlc3VsdCBpbnRlcmZhY2UgaXMgbm90IGFuIG9iamVjdC4iX3MpOwogfQog
Ci1pbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEFyaXR5Q2hlY2soSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25D
YWxsQXJpdHlDaGVjaywgaW50MzJfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNDcsNyArMTQ3LDcgQEAgaW50MzJf
dCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxBcml0eUNoZWNrKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCiAgICAgcmV0dXJuIG1pc3NpbmdBcmdDb3VudDsKIH0KIAotaW50MzJfdCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbnN0cnVjdEFyaXR5Q2hlY2soSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db25zdHJ1
Y3RBcml0eUNoZWNrLCBpbnQzMl90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE2NCw3ICsxNjQsNyBAQCBpbnQzMl90
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29uc3RydWN0QXJpdHlDaGVjayhKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQogICAgIHJldHVybiBtaXNzaW5nQXJnQ291bnQ7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVHJ5R2V0QnlJZChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1Zh
bHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeUdldEJ5SWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNv
ZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE4MSw3ICsxODEsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRyeUdldEJ5SWQoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgUwogfQogCiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVHJ5R2V0QnlJZEdlbmVyaWMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5R2V0QnlJZEdlbmVyaWMsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwg
dWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CkBAIC0xOTYsNyArMTk2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25UcnlHZXRCeUlkR2VuZXJpYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHNsb3QuZ2V0UHVyZVJlc3VsdCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25UcnlHZXRCeUlkT3B0aW1pemUoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBF
bmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlHZXRCeUlkT3B0aW1pemUsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1Yklu
Zm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxl
SWRlbnRpZmllcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIxOCw3ICsy
MTgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRyeUdldEJ5SWRP
cHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoc2xvdC5nZXRQdXJlUmVzdWx0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkdldEJ5SWREaXJlY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRy
X3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25HZXRCeUlkRGlyZWN0LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFz
ZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0yMzcsNyArMjM3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25HZXRCeUlkRGlyZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShmb3VuZCA/IHNs
b3QuZ2V0VmFsdWUoZ2xvYmFsT2JqZWN0LCBpZGVudCkgOiBqc1VuZGVmaW5lZCgpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZERpcmVjdEdlbmVy
aWMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWlu
dHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uR2V0QnlJZERpcmVjdEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0Nh
Y2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0y
NTUsNyArMjU1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRC
eUlkRGlyZWN0R2VuZXJpYyhKU0dsb2JhbE9iamVjdCogZ2xvYmEKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShmb3VuZCA/IHNsb3QuZ2V0VmFsdWUoZ2xvYmFs
T2JqZWN0LCBpZGVudCkgOiBqc1VuZGVmaW5lZCgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZERpcmVjdE9wdGltaXplKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFs
dWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZERpcmVjdE9wdGltaXplLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHVi
SW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZp
ZXIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNzcsNyArMjc3LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlkRGlyZWN0T3B0aW1p
emUoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpT
VmFsdWU6OmVuY29kZShmb3VuZCA/IHNsb3QuZ2V0VmFsdWUoZ2xvYmFsT2JqZWN0LCBpZGVudCkg
OiBqc1VuZGVmaW5lZCgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uR2V0QnlJZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHVi
SW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFi
bGVJZGVudGlmaWVyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWQs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
U3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2Fj
aGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVy
U2NvcGUoZmFsc2UpOwogICAgIApAQCAtMjk4LDcgKzI5OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTdHJ1CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5SWRHZW5lcmljKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNo
ZWFibGVJZGVudGlmaWVyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5
SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkK
IHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAg
CkBAIC0zMTcsNyArMzE3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25HZXRCeUlkR2VuZXJpYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uR2V0QnlJZE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0
cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uR2V0QnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUg
YmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVyU2Ft
cGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAKQEAgLTM0MCw3ICszNDAs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogICAgIH0pKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlkV2l0aFRoaXMoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1
ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzRW5jb2RlZCwgdWludHB0cl90IHJhd0NhY2hlYWJs
ZUlkZW50aWZpZXIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZFdp
dGhUaGlzLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0
cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc0VuY29kZWQsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsK
ICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAKQEAgLTM1
OSw3ICszNTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5
SWRXaXRoVGhpcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoYmFzZVZhbHVlLmdldChnbG9iYWxPYmplY3QsIGlkZW50LCBzbG90KSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzR2Vu
ZXJpYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzRW5jb2RlZCwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZp
ZXIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzR2Vu
ZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzRW5jb2RlZCwgdWludHB0cl90IHJh
d0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2Ft
cGxlclNjb3BlKGZhbHNlKTsKIApAQCAtMzc2LDcgKzM3Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzR2VuZXJpYyhKU0dsb2JhbE9iamVj
dCogZ2xvCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShiYXNlVmFsdWUuZ2V0KGdsb2JhbE9i
amVjdCwgaWRlbnQsIHNsb3QpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25HZXRCeUlkV2l0aFRoaXNPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNFbmNvZGVkLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmll
cikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkV2l0aFRoaXNPcHRp
bWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1Zh
bHVlIHRoaXNFbmNvZGVkLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAg
ICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIApAQCAt
NDAwLDcgKzQwMCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0
QnlJZFdpdGhUaGlzT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsCiAgICAgfSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluQnlJZChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1Zh
bHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlJZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRK
U1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBT
dXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAKQEAgLTQyOCw3ICs0
MjgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluQnlJZChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1YwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNCb29sZWFuKGJhc2VPYmplY3QtPmdldFByb3BlcnR5U2xvdChnbG9iYWxPYmplY3QsIGlk
ZW50LCBzbG90KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkluQnlJZEdlbmVyaWMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uSW5CeUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3Qg
cmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJT
YW1wbGVyU2NvcGUoZmFsc2UpOwogCkBAIC00NTQsNyArNDU0LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25JbkJ5SWRHZW5lcmljKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihiYXNlT2JqZWN0
LT5nZXRQcm9wZXJ0eVNsb3QoZ2xvYmFsT2JqZWN0LCBpZGVudCwgc2xvdCkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25JbkJ5SWRPcHRpbWl6ZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29k
ZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHVi
SW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZp
ZXIpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsK
IApAQCAtNDg0LDcgKzQ4NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uSW5CeUlkT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZm91bmQpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25JbkJ5VmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQ2VsbCogYmFzZSwgRW5jb2RlZEpTVmFsdWUga2V5KQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkluQnlWYWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBrZXkpKQogewogICAg
IFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAKQEAgLTQ5
NSw3ICs0OTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluQnlW
YWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZQogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNCb29sZWFuKENvbW1vblNsb3dQYXRoczo6b3BJbkJ5VmFsKGdsb2JhbE9iamVj
dCwgYmFzZSwgSlNWYWx1ZTo6ZGVjb2RlKGtleSkpKSk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25QdXRCeUlkU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0
cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZp
ZXIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFN0cmljdCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHVi
SW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVyU2Ft
cGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAKQEAgLTUxNCw3ICs1MTQs
NyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZFN0cmljdChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cgogICAgIExPR19JQygoSUNFdmVudDo6T3BlcmF0
aW9uUHV0QnlJZFN0cmljdCwgYmFzZVZhbHVlLmNsYXNzSW5mb09yTnVsbCh2bSksIGlkZW50LCBz
bG90LmJhc2UoKSA9PSBiYXNlVmFsdWUpKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblB1dEJ5SWROb25TdHJpY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJ
bmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRC
YXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1w
bGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIApAQCAtNTMzLDcgKzUzMyw3
IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjCiAgICAgTE9HX0lDKChJQ0V2ZW50OjpPcGVyYXRp
b25QdXRCeUlkTm9uU3RyaWN0LCBiYXNlVmFsdWUuY2xhc3NJbmZvT3JOdWxsKHZtKSwgaWRlbnQs
IHNsb3QuYmFzZSgpID09IGJhc2VWYWx1ZSkpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlm
aWVyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREaXJlY3RTdHJp
Y3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5m
byogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBT
dXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgCkBAIC01NTIs
NyArNTUyLDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWREaXJlY3RTdHJp
Y3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3QKICAgICBMT0dfSUMoKElDRXZlbnQ6
Ok9wZXJhdGlvblB1dEJ5SWREaXJlY3RTdHJpY3QsIGJhc2VWYWx1ZS5jbGFzc0luZm9Pck51bGwo
dm0pLCBpZGVudCwgc2xvdC5iYXNlKCkgPT0gYmFzZVZhbHVlKSk7CiB9CiAKLXZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0Nh
Y2hlYWJsZUlkZW50aWZpZXIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlJZERpcmVjdE5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50
aWZpZXIpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNl
KTsKICAgICAKQEAgLTU3MSw3ICs1NzEsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
UHV0QnlJZERpcmVjdE5vblN0cmljdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAg
IExPR19JQygoSUNFdmVudDo6T3BlcmF0aW9uUHV0QnlJZERpcmVjdE5vblN0cmljdCwgYmFzZVZh
bHVlLmNsYXNzSW5mb09yTnVsbCh2bSksIGlkZW50LCBzbG90LmJhc2UoKSA9PSBiYXNlVmFsdWUp
KTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWRTdHJpY3RPcHRpbWl6
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1Yklu
Zm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJh
c2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90
IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVy
U2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAKQEAgLTYwMyw3ICs2MDMsNyBAQCB2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZFN0cmljdE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsCiAgICAgICAgIHJlcGF0Y2hQdXRCeUlEKGdsb2JhbE9iamVjdCwgY29kZUJs
b2NrLCBiYXNlVmFsdWUsIHN0cnVjdHVyZSwgaWRlbnRpZmllciwgc2xvdCwgKnN0dWJJbmZvLCBQ
dXRLaW5kOjpOb3REaXJlY3QpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0
QnlJZE5vblN0cmljdE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVj
dHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZE5vblN0cmljdE9wdGlt
aXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1Yklu
Zm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAg
U3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIApAQCAtNjM1
LDcgKzYzNSw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0
T3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgICAgIHJlcGF0Y2hQdXRC
eUlEKGdsb2JhbE9iamVjdCwgY29kZUJsb2NrLCBiYXNlVmFsdWUsIHN0cnVjdHVyZSwgaWRlbnRp
Zmllciwgc2xvdCwgKnN0dWJJbmZvLCBQdXRLaW5kOjpOb3REaXJlY3QpOwogfQogCi12b2lkIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdE9wdGltaXplKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0
cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3
Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1w
bGVyU2NvcGUoZmFsc2UpOwogICAgIApAQCAtNjY2LDcgKzY2Niw3IEBAIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25QdXRCeUlkRGlyZWN0U3RyaWN0T3B0aW1pemUoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iCiAgICAgICAgIHJlcGF0Y2hQdXRCeUlEKGdsb2JhbE9iamVjdCwgY29kZUJsb2Nr
LCBiYXNlT2JqZWN0LCBzdHJ1Y3R1cmUsIGlkZW50aWZpZXIsIHNsb3QsICpzdHViSW5mbywgUHV0
S2luZDo6RGlyZWN0KTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWRE
aXJlY3ROb25TdHJpY3RPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVy
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREaXJlY3ROb25TdHJp
Y3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVy
ZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQog
ewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAK
QEAgLTc0MCw3ICs3NDAsNyBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyB2b2lkIGRlZmluZVByaXZh
dGVGaWVsZChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogCiBleHRlcm4gIkMi
IHsKIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWREZWZpbmVQcml2YXRlRmll
bGRTdHJpY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8q
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNl
LCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QdXRCeUlkRGVmaW5lUHJpdmF0ZUZpZWxkU3RyaWN0LCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3Qg
cmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
QEAgLTc1Miw3ICs3NTIsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZERl
ZmluZVByaXZhdGVGaWVsZFN0cmljdChKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIGRlZmluZVBy
aXZhdGVGaWVsZCh2bSwgZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGJhc2VWYWx1ZSwgaWRlbnRp
ZmllciwgdmFsdWUpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZERl
ZmluZVByaXZhdGVGaWVsZFN0cmljdE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlk
ZW50aWZpZXIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERlZmlu
ZVByaXZhdGVGaWVsZFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVh
YmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2Nv
cGUoZmFsc2UpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTc3NCw3ICs3
NzQsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZERlZmluZVByaXZhdGVG
aWVsZFN0cmljdE9wdGltaXplKEpTR2xvYmFsT2JqZQogICAgIH0pOwogfQogCi12b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZFNldFByaXZhdGVGaWVsZFN0cmljdChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNo
ZWFibGVJZGVudGlmaWVyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5
SWRTZXRQcml2YXRlRmllbGRTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVy
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtNzg2LDcgKzc4Niw3IEBAIHZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkU2V0UHJpdmF0ZUZpZWxkU3RyaWN0KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgc2V0UHJpdmF0ZUZpZWxkKHZtLCBnbG9iYWxPYmpl
Y3QsIGNhbGxGcmFtZSwgYmFzZVZhbHVlLCBpZGVudGlmaWVyLCB2YWx1ZSk7CiB9CiAKLXZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkU2V0UHJpdmF0ZUZpZWxkU3RyaWN0T3B0aW1p
emUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJ
bmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRC
YXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXRCeUlkU2V0UHJpdmF0ZUZpZWxkU3RyaWN0T3B0aW1pemUsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1
YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBTdXBlclNh
bXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwpAQCAtOTc4LDcgKzk3OCw3IEBAIHN0YXRpYyBPcHRpbWl6YXRpb25SZXN1
bHQgdHJ5UHV0QnlWYWxPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
CiAgICAgcmV0dXJuIG9wdGltaXphdGlvblJlc3VsdDsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblB1dEJ5VmFsT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1
YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5m
bywgRUNNQU1vZGUgZWNtYU1vZGUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UHV0QnlWYWxPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJz
Y3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQnlWYWxJbmZvKiBieVZhbEluZm8s
IEVDTUFNb2RlIGVjbWFNb2RlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAt
MTA2OCw3ICsxMDY4LDcgQEAgc3RhdGljIE9wdGltaXphdGlvblJlc3VsdCB0cnlEaXJlY3RQdXRC
eVZhbE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QKICAgICByZXR1cm4gb3B0
aW1pemF0aW9uUmVzdWx0OwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0
UHV0QnlWYWxPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBFQ01BTW9k
ZSBlY21hTW9kZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EaXJlY3RQdXRC
eVZhbE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlw
dCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5mbywgRUNN
QU1vZGUgZWNtYU1vZGUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xMDky
LDcgKzEwOTIsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxP
cHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTihzY29wZSwgZGlyZWN0UHV0QnlWYWwoZ2xvYmFsT2JqZWN0LCBvYmplY3QsIHN1YnNjcmlw
dCwgdmFsdWUsIGJ5VmFsSW5mbywgZWNtYU1vZGUpKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblB1dEJ5VmFsR2VuZXJpYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vi
c2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEJ5VmFsSW5mbyogYnlWYWxJbmZv
LCBFQ01BTW9kZSBlY21hTW9kZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeVZhbEdlbmVyaWMsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2Ny
aXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBF
Q01BTW9kZSBlY21hTW9kZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTEx
MDYsNyArMTEwNiw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbEdlbmVy
aWMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlCiB9CiAKIAotdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsR2VuZXJpYyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEJ5VmFs
SW5mbyogYnlWYWxJbmZvLCBFQ01BTW9kZSBlY21hTW9kZSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25EaXJlY3RQdXRCeVZhbEdlbmVyaWMsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEJ5
VmFsSW5mbyogYnlWYWxJbmZvLCBFQ01BTW9kZSBlY21hTW9kZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTExMTksNyArMTExOSw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25EaXJlY3RQdXRCeVZhbEdlbmVyaWMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwKICAgICBkaXJlY3RQdXRCeVZhbChnbG9iYWxPYmplY3QsIGFzT2JqZWN0KGJhc2VWYWx1ZSks
IHN1YnNjcmlwdCwgdmFsdWUsIGJ5VmFsSW5mbywgZWNtYU1vZGUpOwogfQogCi12b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uUHV0UHJpdmF0ZU5hbWVPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEJ5VmFs
SW5mbyogYnlWYWxJbmZvLCBQcml2YXRlRmllbGRQdXRLaW5kIHB1dEtpbmQpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0UHJpdmF0ZU5hbWVPcHRpbWl6ZSwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSwgQnlWYWxJbmZvKiBieVZhbEluZm8sIFByaXZhdGVGaWVsZFB1dEtpbmQgcHV0S2lu
ZCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTExODksNyArMTE4OSw3IEBA
IHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRQcml2YXRlTmFtZU9wdGltaXplKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiB9CiAKIC8vIFdlIG5lZWQgdG8gbWF0Y2ggdGhlIHNp
Z25hdHVyZSBvZiBvcGVyYXRpb25QdXRQcml2YXRlTmFtZU9wdGltaXplCi12b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uUHV0UHJpdmF0ZU5hbWVHZW5lcmljKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRTdWJzY3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQnlWYWxJbmZv
KiBieVZhbEluZm8sIFByaXZhdGVGaWVsZFB1dEtpbmQgcHJpdmF0ZUZpZWxkUHV0S2luZCkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRQcml2YXRlTmFtZUdlbmVyaWMsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUsIEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBQcml2YXRlRmllbGRQdXRLaW5k
IHByaXZhdGVGaWVsZFB1dEtpbmQpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBA
IC0xMjIwLDcgKzEyMjAsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0UHJpdmF0
ZU5hbWVHZW5lcmljKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgICAgIGJ5VmFs
SW5mby0+dG9va1Nsb3dQYXRoID0gdHJ1ZTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25DYWxsRXZhbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxlZUZyYW1lLCBFQ01BTW9kZSBlY21hTW9kZSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25DYWxsRXZhbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxlZUZyYW1lLCBFQ01BTW9kZSBlY21hTW9k
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEyOTQsNyArMTI5NCw3IEBAIHN0YXRpYyBT
bG93UGF0aFJldHVyblR5cGUgaGFuZGxlSG9zdENhbGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lCiAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KEtlZXBUaGVG
cmFtZSkpOwogfQogCi1TbG93UGF0aFJldHVyblR5cGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25M
aW5rQ2FsbChDYWxsRnJhbWUqIGNhbGxlZUZyYW1lLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsTGlua0luZm8qIGNhbGxMaW5rSW5mbykKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25MaW5rQ2FsbCwgU2xvd1BhdGhSZXR1cm5UeXBlLCAoQ2FsbEZyYW1lKiBjYWxs
ZWVGcmFtZSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbExpbmtJbmZvKiBjYWxs
TGlua0luZm8pKQogewogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gY2FsbGVlRnJhbWUtPmNh
bGxlckZyYW1lKCk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMTQxNSw3
ICsxNDE1LDcgQEAgaW5saW5lIFNsb3dQYXRoUmV0dXJuVHlwZSB2aXJ0dWFsRm9yV2l0aEZ1bmN0
aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEMKICAgICAgICAgcmVpbnRlcnByZXRf
Y2FzdDx2b2lkKj4oY2FsbExpbmtJbmZvLT5jYWxsTW9kZSgpID09IENhbGxNb2RlOjpUYWlsID8g
UmV1c2VUaGVGcmFtZSA6IEtlZXBUaGVGcmFtZSkpOwogfQogCi1TbG93UGF0aFJldHVyblR5cGUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rUG9seW1vcnBoaWNDYWxsKENhbGxGcmFtZSogY2Fs
bGVlRnJhbWUsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxMaW5rSW5mbyogY2Fs
bExpbmtJbmZvKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkxpbmtQb2x5bW9y
cGhpY0NhbGwsIFNsb3dQYXRoUmV0dXJuVHlwZSwgKENhbGxGcmFtZSogY2FsbGVlRnJhbWUsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxMaW5rSW5mbyogY2FsbExpbmtJbmZvKSkK
IHsKICAgICBBU1NFUlQoY2FsbExpbmtJbmZvLT5zcGVjaWFsaXphdGlvbktpbmQoKSA9PSBDb2Rl
Rm9yQ2FsbCk7CiAgICAgSlNDZWxsKiBjYWxsZWVBc0Z1bmN0aW9uQ2VsbDsKQEAgLTE0MjYsMTMg
KzE0MjYsMTMgQEAgU2xvd1BhdGhSZXR1cm5UeXBlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlu
a1BvbHltb3JwaGljQ2FsbChDYWxsRnJhbWUqIGNhbGxlZUYKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCi1TbG93UGF0aFJldHVyblR5cGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WaXJ0dWFsQ2Fs
bChDYWxsRnJhbWUqIGNhbGxlZUZyYW1lLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsTGlua0luZm8qIGNhbGxMaW5rSW5mbykKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25WaXJ0dWFsQ2FsbCwgU2xvd1BhdGhSZXR1cm5UeXBlLCAoQ2FsbEZyYW1lKiBjYWxsZWVG
cmFtZSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbExpbmtJbmZvKiBjYWxsTGlu
a0luZm8pKQogewogICAgIEpTQ2VsbCogY2FsbGVlQXNGdW5jdGlvbkNlbGxJZ25vcmVkOwogICAg
IHJldHVybiB2aXJ0dWFsRm9yV2l0aEZ1bmN0aW9uKGdsb2JhbE9iamVjdCwgY2FsbGVlRnJhbWUs
IGNhbGxMaW5rSW5mbywgY2FsbGVlQXNGdW5jdGlvbkNlbGxJZ25vcmVkKTsKIH0KIAotc2l6ZV90
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZUxlc3MoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlTGVzcywgc2l6
ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTE0NDEsNyArMTQ0MSw3IEBAIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkNvbXBhcmVMZXNzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKCiAg
ICAgcmV0dXJuIGpzTGVzczx0cnVlPihnbG9iYWxPYmplY3QsIEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkT3AxKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpKTsKIH0KIAotc2l6ZV90IEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZUxlc3NFcShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ay
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVMZXNzRXEsIHNpemVf
dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CkBAIC0xNDUwLDcgKzE0NTAsNyBAQCBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRp
b25Db21wYXJlTGVzc0VxKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZQogICAg
IHJldHVybiBqc0xlc3NFcTx0cnVlPihnbG9iYWxPYmplY3QsIEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkT3AxKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpKTsKIH0KIAotc2l6ZV90IEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlR3JlYXRlciwgc2l6
ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTE0NTksNyArMTQ1OSw3IEBAIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkNvbXBhcmVHcmVhdGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kCiAg
ICAgcmV0dXJuIGpzTGVzczxmYWxzZT4oZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZE9wMiksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKSk7CiB9CiAKLXNpemVfdCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVHcmVhdGVyRXEoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlR3JlYXRlckVx
LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwpAQCAtMTQ2OCw3ICsxNDY4LDcgQEAgc2l6ZV90IEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXJFcShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmMKICAgICByZXR1cm4ganNMZXNzRXE8ZmFsc2U+KGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRPcDIpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSkpOwogfQogCi1zaXpl
X3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlRXEoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlRXEsIHNpemVf
dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CkBAIC0xNDc4LDkgKzE0NzgsOSBAQCBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRp
b25Db21wYXJlRXEoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVgogfQog
CiAjaWYgVVNFKEpTVkFMVUU2NCkKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uQ29tcGFyZVN0cmluZ0VxKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCog
bGVmdCwgSlNDZWxsKiByaWdodCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25D
b21wYXJlU3RyaW5nRXEsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDZWxsKiBsZWZ0LCBKU0NlbGwqIHJpZ2h0KSkKICNlbHNlCi1zaXplX3QgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25Db21wYXJlU3RyaW5nRXEoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDZWxsKiBsZWZ0LCBKU0NlbGwqIHJpZ2h0KQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdFcSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNDZWxsKiBsZWZ0LCBKU0NlbGwqIHJpZ2h0KSkKICNlbmRpZgogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTE0OTUsNyArMTQ5NSw3IEBAIHNpemVf
dCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdFcShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU0NlCiAjZW5kaWYKIH0KIAotc2l6ZV90IEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uQ29tcGFyZVN0cmljdEVxKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmljdEVxLCBzaXplX3QsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpA
QCAtMTUwOCw3ICsxNTA4LDcgQEAgc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFy
ZVN0cmljdEVxKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY28KIH0KIAogI2lmIFVT
RShCSUdJTlQzMikKLXNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVFcUhlYXBC
aWdJbnRUb0ludDMyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogaGVhcEJp
Z0ludCwgaW50MzJfdCBzbWFsbEludCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Db21wYXJlRXFIZWFwQmlnSW50VG9JbnQzMiwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNDZWxsKiBoZWFwQmlnSW50LCBpbnQzMl90IHNtYWxsSW50KSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTUyMCw3ICsxNTIwLDcgQEAgc2l6ZV90IEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZUVxSGVhcEJpZ0ludFRvSW50MzIoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE8KIH0KICNlbmRpZgogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbk5ld0FycmF5V2l0aFByb2ZpbGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSogcHJvZmlsZSwgY29uc3QgSlNWYWx1ZSogdmFsdWVz
LCBpbnQgc2l6ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheVdp
dGhQcm9maWxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEFycmF5QWxsb2NhdGlvblByb2ZpbGUqIHByb2ZpbGUsIGNvbnN0IEpTVmFsdWUqIHZhbHVlcywg
aW50IHNpemUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNTI4LDcgKzE1
MjgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0FycmF5V2l0
aFByb2ZpbGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoY29uc3RydWN0QXJyYXlOZWdhdGl2ZUluZGV4ZWQoZ2xvYmFsT2JqZWN0LCBwcm9maWxlLCB2
YWx1ZXMsIHNpemUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25OZXdBcnJheVdpdGhTaXplQW5kUHJvZmlsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBBcnJheUFsbG9jYXRpb25Qcm9maWxlKiBwcm9maWxlLCBFbmNvZGVkSlNWYWx1ZSBzaXplKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNpemVBbmRQcm9m
aWxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEFycmF5
QWxsb2NhdGlvblByb2ZpbGUqIHByb2ZpbGUsIEVuY29kZWRKU1ZhbHVlIHNpemUpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNTUwLDcgKzE1NTAsNyBAQCBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgbmV3RnVuY3Rpb25Db21tb24oVk0mIHZtLCBKU1Njb3BlKiBzY29wZSwgSlND
ZWxsKiBmdW5jdGlvbgogCiBleHRlcm4gIkMiIHsKIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25OZXdGdW5jdGlvbihWTSogdm1Qb2ludGVyLCBKU1Njb3BlKiBzY29wZSwg
SlNDZWxsKiBmdW5jdGlvbkV4ZWN1dGFibGUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uTmV3RnVuY3Rpb24sIEVuY29kZWRKU1ZhbHVlLCAoVk0qIHZtUG9pbnRlciwgSlNTY29w
ZSogc2NvcGUsIEpTQ2VsbCogZnVuY3Rpb25FeGVjdXRhYmxlKSkKIHsKICAgICBWTSYgdm0gPSAq
dm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKQEAgLTE1NTgsNyArMTU1OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uTmV3RnVuY3Rpb24oVk0qIHZtUG9pbnRlciwgSlNTY29wZSogc2NvcGUsCiAgICAg
cmV0dXJuIG5ld0Z1bmN0aW9uQ29tbW9uPEpTRnVuY3Rpb24+KHZtLCBzY29wZSwgZnVuY3Rpb25F
eGVjdXRhYmxlLCBmYWxzZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uTmV3RnVuY3Rpb25XaXRoSW52YWxpZGF0ZWRSZWFsbG9jYXRpb25XYXRjaHBvaW50KFZN
KiB2bVBvaW50ZXIsIEpTU2NvcGUqIHNjb3BlLCBKU0NlbGwqIGZ1bmN0aW9uRXhlY3V0YWJsZSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdGdW5jdGlvbldpdGhJbnZhbGlk
YXRlZFJlYWxsb2NhdGlvbldhdGNocG9pbnQsIEVuY29kZWRKU1ZhbHVlLCAoVk0qIHZtUG9pbnRl
ciwgSlNTY29wZSogc2NvcGUsIEpTQ2VsbCogZnVuY3Rpb25FeGVjdXRhYmxlKSkKIHsKICAgICBW
TSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTE1NjYsNyArMTU2Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uTmV3RnVuY3Rpb25XaXRoSW52YWxpZGF0ZWRSZWFsbG9jYXRpb25X
YXRjCiAgICAgcmV0dXJuIG5ld0Z1bmN0aW9uQ29tbW9uPEpTRnVuY3Rpb24+KHZtLCBzY29wZSwg
ZnVuY3Rpb25FeGVjdXRhYmxlLCB0cnVlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25OZXdHZW5lcmF0b3JGdW5jdGlvbihWTSogdm1Qb2ludGVyLCBKU1Njb3Bl
KiBzY29wZSwgSlNDZWxsKiBmdW5jdGlvbkV4ZWN1dGFibGUpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTmV3R2VuZXJhdG9yRnVuY3Rpb24sIEVuY29kZWRKU1ZhbHVlLCAoVk0q
IHZtUG9pbnRlciwgSlNTY29wZSogc2NvcGUsIEpTQ2VsbCogZnVuY3Rpb25FeGVjdXRhYmxlKSkK
IHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE1NzQsNyArMTU3NCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3R2VuZXJhdG9yRnVuY3Rpb24oVk0qIHZtUG9p
bnRlciwgSlNTY29wCiAgICAgcmV0dXJuIG5ld0Z1bmN0aW9uQ29tbW9uPEpTR2VuZXJhdG9yRnVu
Y3Rpb24+KHZtLCBzY29wZSwgZnVuY3Rpb25FeGVjdXRhYmxlLCBmYWxzZSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3R2VuZXJhdG9yRnVuY3Rpb25XaXRo
SW52YWxpZGF0ZWRSZWFsbG9jYXRpb25XYXRjaHBvaW50KFZNKiB2bVBvaW50ZXIsIEpTU2NvcGUq
IHNjb3BlLCBKU0NlbGwqIGZ1bmN0aW9uRXhlY3V0YWJsZSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25OZXdHZW5lcmF0b3JGdW5jdGlvbldpdGhJbnZhbGlkYXRlZFJlYWxsb2Nh
dGlvbldhdGNocG9pbnQsIEVuY29kZWRKU1ZhbHVlLCAoVk0qIHZtUG9pbnRlciwgSlNTY29wZSog
c2NvcGUsIEpTQ2VsbCogZnVuY3Rpb25FeGVjdXRhYmxlKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Q
b2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKQEAgLTE1ODIsNyArMTU4Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uTmV3R2VuZXJhdG9yRnVuY3Rpb25XaXRoSW52YWxpZGF0ZWRSZWFsbG9jCiAgICAgcmV0
dXJuIG5ld0Z1bmN0aW9uQ29tbW9uPEpTR2VuZXJhdG9yRnVuY3Rpb24+KHZtLCBzY29wZSwgZnVu
Y3Rpb25FeGVjdXRhYmxlLCB0cnVlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25OZXdBc3luY0Z1bmN0aW9uKFZNKiB2bVBvaW50ZXIsIEpTU2NvcGUqIHNjb3Bl
LCBKU0NlbGwqIGZ1bmN0aW9uRXhlY3V0YWJsZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25OZXdBc3luY0Z1bmN0aW9uLCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiB2bVBvaW50ZXIs
IEpTU2NvcGUqIHNjb3BlLCBKU0NlbGwqIGZ1bmN0aW9uRXhlY3V0YWJsZSkpCiB7CiAgICAgVk0m
IHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0xNTkwLDcgKzE1OTAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbk5ld0FzeW5jRnVuY3Rpb24oVk0qIHZtUG9pbnRlciwgSlNTY29wZSog
cwogICAgIHJldHVybiBuZXdGdW5jdGlvbkNvbW1vbjxKU0FzeW5jRnVuY3Rpb24+KHZtLCBzY29w
ZSwgZnVuY3Rpb25FeGVjdXRhYmxlLCBmYWxzZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uTmV3QXN5bmNGdW5jdGlvbldpdGhJbnZhbGlkYXRlZFJlYWxsb2Nh
dGlvbldhdGNocG9pbnQoVk0qIHZtUG9pbnRlciwgSlNTY29wZSogc2NvcGUsIEpTQ2VsbCogZnVu
Y3Rpb25FeGVjdXRhYmxlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0Fz
eW5jRnVuY3Rpb25XaXRoSW52YWxpZGF0ZWRSZWFsbG9jYXRpb25XYXRjaHBvaW50LCBFbmNvZGVk
SlNWYWx1ZSwgKFZNKiB2bVBvaW50ZXIsIEpTU2NvcGUqIHNjb3BlLCBKU0NlbGwqIGZ1bmN0aW9u
RXhlY3V0YWJsZSkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNTk4LDcgKzE1OTgsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0FzeW5jRnVuY3Rpb25X
aXRoSW52YWxpZGF0ZWRSZWFsbG9jYXRpbwogICAgIHJldHVybiBuZXdGdW5jdGlvbkNvbW1vbjxK
U0FzeW5jRnVuY3Rpb24+KHZtLCBzY29wZSwgZnVuY3Rpb25FeGVjdXRhYmxlLCB0cnVlKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdBc3luY0dlbmVyYXRv
ckZ1bmN0aW9uKFZNKiB2bVBvaW50ZXIsIEpTU2NvcGUqIHNjb3BlLCBKU0NlbGwqIGZ1bmN0aW9u
RXhlY3V0YWJsZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBc3luY0dl
bmVyYXRvckZ1bmN0aW9uLCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiB2bVBvaW50ZXIsIEpTU2NvcGUq
IHNjb3BlLCBKU0NlbGwqIGZ1bmN0aW9uRXhlY3V0YWJsZSkpCiB7CiAgICAgVk0mIHZtID0gKnZt
UG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC0xNjA2LDcgKzE2MDYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbk5ld0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24oVk0qIHZtUG9pbnRlciwgSgogICAgIHJl
dHVybiBuZXdGdW5jdGlvbkNvbW1vbjxKU0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24+KHZtLCBzY29w
ZSwgZnVuY3Rpb25FeGVjdXRhYmxlLCBmYWxzZSk7CiB9CiAgICAgCi1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25XaXRoSW52YWxp
ZGF0ZWRSZWFsbG9jYXRpb25XYXRjaHBvaW50KFZNKiB2bVBvaW50ZXIsIEpTU2NvcGUqIHNjb3Bl
LCBKU0NlbGwqIGZ1bmN0aW9uRXhlY3V0YWJsZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25OZXdBc3luY0dlbmVyYXRvckZ1bmN0aW9uV2l0aEludmFsaWRhdGVkUmVhbGxvY2F0
aW9uV2F0Y2hwb2ludCwgRW5jb2RlZEpTVmFsdWUsIChWTSogdm1Qb2ludGVyLCBKU1Njb3BlKiBz
Y29wZSwgSlNDZWxsKiBmdW5jdGlvbkV4ZWN1dGFibGUpKQogewogICAgIFZNJiB2bSA9ICp2bVBv
aW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtMTYxNCw3ICsxNjE0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25OZXdBc3luY0dlbmVyYXRvckZ1bmN0aW9uV2l0aEludmFsaWRhdGVkUmUKICAgICByZXR1
cm4gbmV3RnVuY3Rpb25Db21tb248SlNBc3luY0dlbmVyYXRvckZ1bmN0aW9uPih2bSwgc2NvcGUs
IGZ1bmN0aW9uRXhlY3V0YWJsZSwgdHJ1ZSk7CiB9CiAgICAgCi12b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uU2V0RnVuY3Rpb25OYW1lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Q2VsbCogZnVuY0NlbGwsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWROYW1lKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldEZ1bmN0aW9uTmFtZSwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogZnVuY0NlbGwsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWROYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTYyNSw3ICsxNjI1
LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNldEZ1bmN0aW9uTmFtZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwKICAgICBmdW5jLT5zZXRGdW5jdGlvbk5hbWUo
Z2xvYmFsT2JqZWN0LCBuYW1lKTsKIH0KIAotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bk5ld09iamVjdChWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdPYmplY3QsIEpTQ2VsbCosIChWTSogdm1Qb2lu
dGVyLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0x
NjM0LDcgKzE2MzQsNyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3T2JqZWN0
KFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHJldHVybiBjb25zdHJ1
Y3RFbXB0eU9iamVjdCh2bSwgc3RydWN0dXJlKTsKIH0KIAotSlNDZWxsKiBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbk5ld1Byb21pc2UoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3UHJvbWlzZSwgSlNDZWxsKiwg
KFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVyZSogc3RydWN0dXJlKSkKIHsKICAgICBWTSYgdm0gPSAq
dm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKQEAgLTE2NDMsNyArMTY0Myw3IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRp
b25OZXdQcm9taXNlKFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHJl
dHVybiBKU1Byb21pc2U6OmNyZWF0ZSh2bSwgc3RydWN0dXJlKTsKIH0KIAotSlNDZWxsKiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbk5ld0ludGVybmFsUHJvbWlzZShWTSogdm1Qb2ludGVyLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJ
bnRlcm5hbFByb21pc2UsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNjUyLDcgKzE2NTIsNyBAQCBKU0Nl
bGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3SW50ZXJuYWxQcm9taXNlKFZNKiB2bVBvaW50
ZXIsIFN0cnVjdHVyZSogc3RydQogICAgIHJldHVybiBKU0ludGVybmFsUHJvbWlzZTo6Y3JlYXRl
KHZtLCBzdHJ1Y3R1cmUpOwogfQogCi1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3
R2VuZXJhdG9yKFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVyZSogc3RydWN0dXJlKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0dlbmVyYXRvciwgSlNDZWxsKiwgKFZNKiB2bVBv
aW50ZXIsIFN0cnVjdHVyZSogc3RydWN0dXJlKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVy
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTE2NjEsNyArMTY2MSw3IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdHZW5l
cmF0b3IoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgcmV0dXJuIEpT
R2VuZXJhdG9yOjpjcmVhdGUodm0sIHN0cnVjdHVyZSk7CiB9CiAKLUpTQ2VsbCogSklUX09QRVJB
VElPTiBvcGVyYXRpb25OZXdBc3luY0dlbmVyYXRvcihWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBc3luY0dl
bmVyYXRvciwgSlNDZWxsKiwgKFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVyZSogc3RydWN0dXJlKSkK
IHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE2NzAsNyArMTY3MCw3IEBAIEpTQ2VsbCogSklU
X09QRVJBVElPTiBvcGVyYXRpb25OZXdBc3luY0dlbmVyYXRvcihWTSogdm1Qb2ludGVyLCBTdHJ1
Y3R1cmUqIHN0cnVjCiAgICAgcmV0dXJuIEpTQXN5bmNHZW5lcmF0b3I6OmNyZWF0ZSh2bSwgc3Ry
dWN0dXJlKTsKIH0KIAotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld1JlZ2V4cChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIHJlZ2V4cFB0cikKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdSZWdleHAsIEpTQ2VsbCosIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIHJlZ2V4cFB0cikpCiB7CiAgICAgU3VwZXJTYW1w
bGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKQEAgLTE2ODYsNyArMTY4Niw3IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBv
cGVyYXRpb25OZXdSZWdleHAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBy
CiAvLyBleGlzdGluZyBERkcgc2xvdyBwYXRoIGdlbmVyYXRvciBtYWNoaW5lcnkgd2hlbiBjcmVh
dGluZyB0aGUgc2xvdyBwYXRoIGZvciBDaGVja1RyYXBzCiAvLyBpbiB0aGUgREZHLiBJZiBhIERG
RyBzbG93IHBhdGggZ2VuZXJhdG9yIHRoYXQgc3VwcG9ydHMgYSB2b2lkIHJldHVybiB0eXBlIGlz
IGFkZGVkIGluIHRoZQogLy8gZnV0dXJlLCB3ZSBjYW4gc3dpdGNoIHRvIHVzaW5nIHRoYXQgdGhl
bi4KLVVudXNlZFB0ciBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhbmRsZVRyYXBzKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
SGFuZGxlVHJhcHMsIFVudXNlZFB0ciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNjk2LDcgKzE2OTYsNyBAQCBVbnVz
ZWRQdHIgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYW5kbGVUcmFwcyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQogICAgIHJldHVybiBudWxscHRyOwogfQogCi12b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uRGVidWcoVk0qIHZtUG9pbnRlciwgaW50MzJfdCBkZWJ1Z0hvb2tUeXBlKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlYnVnLCB2b2lkLCAoVk0qIHZtUG9p
bnRlciwgaW50MzJfdCBkZWJ1Z0hvb2tUeXBlKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVy
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTE3MTIsNyArMTcxMiw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZUFsbFByZWRpY3Rpb25zQW5kT3B0
aW1pemVBZnRlcldhcm1VcChDb2RlQmxvY2sqIGNvZGVCbG9jaykKICAgICBjb2RlQmxvY2stPm9w
dGltaXplQWZ0ZXJXYXJtVXAoKTsKIH0KIAotU2xvd1BhdGhSZXR1cm5UeXBlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uT3B0aW1pemUoVk0qIHZtUG9pbnRlciwgdWludDMyX3QgYnl0ZWNvZGVJbmRl
eEJpdHMpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT3B0aW1pemUsIFNsb3dQ
YXRoUmV0dXJuVHlwZSwgKFZNKiB2bVBvaW50ZXIsIHVpbnQzMl90IGJ5dGVjb2RlSW5kZXhCaXRz
KSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE5NDMsNyArMTk0Myw3IEBAIFNsb3dQYXRo
UmV0dXJuVHlwZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKFZNKiB2bVBvaW50ZXIs
IHVpbnQzMl90IGJ5dGVjCiAgICAgcmV0dXJuIGVuY29kZVJlc3VsdChudWxscHRyLCBudWxscHRy
KTsKIH0KIAotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25UcnlPU1JFbnRlckF0Q2F0Y2go
Vk0qIHZtUG9pbnRlciwgdWludDMyX3QgYnl0ZWNvZGVJbmRleEJpdHMpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5T1NSRW50ZXJBdENhdGNoLCBjaGFyKiwgKFZNKiB2bVBv
aW50ZXIsIHVpbnQzMl90IGJ5dGVjb2RlSW5kZXhCaXRzKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Q
b2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKQEAgLTE5NjcsNyArMTk2Nyw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVHJ5
T1NSRW50ZXJBdENhdGNoKFZNKiB2bVBvaW50ZXIsIHVpbnQzMl90IGJ5dGVjb2RlCiAgICAgcmV0
dXJuIG51bGxwdHI7CiB9CiAKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVHJ5T1NSRW50
ZXJBdENhdGNoQW5kVmFsdWVQcm9maWxlKFZNKiB2bVBvaW50ZXIsIHVpbnQzMl90IGJ5dGVjb2Rl
SW5kZXhCaXRzKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeU9TUkVudGVy
QXRDYXRjaEFuZFZhbHVlUHJvZmlsZSwgY2hhciosIChWTSogdm1Qb2ludGVyLCB1aW50MzJfdCBi
eXRlY29kZUluZGV4Qml0cykpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMDAxLDcgKzIw
MDEsNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRyeU9TUkVudGVyQXRDYXRjaEFu
ZFZhbHVlUHJvZmlsZShWTSogdm1Qb2ludGVyLCB1aQogCiAjZW5kaWYKIAotdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblB1dEJ5SW5kZXgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFycmF5VmFsdWUsIGludDMyX3QgaW5kZXgsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeUluZGV4LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEFycmF5VmFsdWUsIGludDMyX3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIwMzEsNyAr
MjAzMSw3IEBAIHN0YXRpYyB2b2lkIHB1dEFjY2Vzc29yQnlWYWwoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIEpTVmFsCiAgICAgICAgIGJhc2UtPnB1dFNldHRl
cihnbG9iYWxPYmplY3QsIHByb3BlcnR5S2V5LCBhY2Nlc3NvciwgYXR0cmlidXRlKTsKIH0KIAot
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlckJ5SWQoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIGlu
dDMyX3Qgb3B0aW9ucywgSlNDZWxsKiBnZXR0ZXIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0R2V0dGVyQnlJZCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQ2VsbCogb2JqZWN0LCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLCBpbnQzMl90IG9wdGlv
bnMsIEpTQ2VsbCogZ2V0dGVyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAt
MjA0NCw3ICsyMDQ0LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlckJ5
SWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKgogICAgIGJhc2VPYmotPnB1
dEdldHRlcihnbG9iYWxPYmplY3QsIHVpZCwgZ2V0dGVyLCBvcHRpb25zKTsKIH0KIAotdm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5SWQoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIGludDMyX3Qg
b3B0aW9ucywgSlNDZWxsKiBzZXR0ZXIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUHV0U2V0dGVyQnlJZCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Q2VsbCogb2JqZWN0LCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLCBpbnQzMl90IG9wdGlvbnMsIEpT
Q2VsbCogc2V0dGVyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjA1Nyw3
ICsyMDU3LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5SWQoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKgogICAgIGJhc2VPYmotPnB1dFNldHRl
cihnbG9iYWxPYmplY3QsIHVpZCwgc2V0dGVyLCBvcHRpb25zKTsKIH0KIAotdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblB1dEdldHRlckJ5VmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQ2VsbCogYmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgaW50MzJf
dCBhdHRyaWJ1dGUsIEpTQ2VsbCogZ2V0dGVyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblB1dEdldHRlckJ5VmFsLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBpbnQzMl90
IGF0dHJpYnV0ZSwgSlNDZWxsKiBnZXR0ZXIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC0yMDY2LDcgKzIwNjYsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0
R2V0dGVyQnlWYWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKgogICAgIHB1
dEFjY2Vzc29yQnlWYWwoZ2xvYmFsT2JqZWN0LCBhc09iamVjdChiYXNlKSwgSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRTdWJzY3JpcHQpLCBhdHRyaWJ1dGUsIGFzT2JqZWN0KGdldHRlciksIEFjY2Vz
c29yVHlwZTo6R2V0dGVyKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNl
dHRlckJ5VmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogYmFzZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCog
c2V0dGVyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dFNldHRlckJ5VmFs
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKiBz
ZXR0ZXIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMDc2LDcgKzIwNzYs
NyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0U2V0dGVyQnlWYWwoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKgogfQogCiAjaWYgVVNFKEpTVkFMVUU2NCkKLXZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIGlu
dDMyX3QgYXR0cmlidXRlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkR2V0dGVyVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRTZXR0ZXJWYWx1ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0NlbGwqIG9iamVjdCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwgaW50MzJfdCBhdHRy
aWJ1dGUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRHZXR0ZXJWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFNldHRlclZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAt
MjA5Myw3ICsyMDkzLDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNl
dHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwKIH0KIAogI2Vsc2UKLXZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIGlu
dDMyX3QgYXR0cmlidXRlLCBKU0NlbGwqIGdldHRlckNlbGwsIEpTQ2VsbCogc2V0dGVyQ2VsbCkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHZvaWQs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCwgVW5pcXVlZFN0
cmluZ0ltcGwqIHVpZCwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCogZ2V0dGVyQ2VsbCwgSlND
ZWxsKiBzZXR0ZXJDZWxsKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjEx
MCw3ICsyMTEwLDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNldHRl
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwKIH0KICNlbmRpZgogCi1zaXpl
X3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25JbnN0YW5jZU9mQ3VzdG9tKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgSlNPYmplY3QqIGNv
bnN0cnVjdG9yLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkSGFzSW5zdGFuY2UpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5zdGFuY2VPZkN1c3RvbSwgc2l6ZV90LCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBKU09i
amVjdCogY29uc3RydWN0b3IsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRIYXNJbnN0YW5jZSkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIxOTIsNyArMjE5Miw3IEBAIEFMV0FZ
U19JTkxJTkUgc3RhdGljIEpTVmFsdWUgZ2V0QnlWYWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjCiAKIGV4dGVybiAiQyIgewogCi1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJpYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEFycmF5UHJvZmlsZSogcHJvZmls
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJz
Y3JpcHQpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlWYWxHZW5lcmlj
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVy
ZVN0dWJJbmZvKiBzdHViSW5mbywgQXJyYXlQcm9maWxlKiBwcm9maWxlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIyMDUsNyArMjIwNSw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShnZXRCeVZhbChnbG9iYWxP
YmplY3QsIGNhbGxGcmFtZSwgcHJvZmlsZSwgYmFzZVZhbHVlLCBzdWJzY3JpcHQpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywg
QXJyYXlQcm9maWxlKiBwcm9maWxlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25HZXRCeVZhbE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgQXJyYXlQcm9maWxlKiBw
cm9maWxlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFN1YnNjcmlwdCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIyNDcsNyAr
MjI0Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxP
cHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoZ2V0QnlWYWwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUs
IHByb2ZpbGUsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJv
cGVydHkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlWYWwsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIzMDYsNyArMjMwNiw3IEBAIEFMV0FZU19JTkxJTkUg
c3RhdGljIEpTVmFsdWUgZ2V0UHJpdmF0ZU5hbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyCiAKIGV4dGVybiAiQyIgewogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkdldFByaXZhdGVOYW1lT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEZpZWxkTmFtZSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25HZXRQcml2YXRlTmFtZU9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5m
bywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRGaWVs
ZE5hbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMzQyLDcgKzIzNDIs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldFByaXZhdGVOYW1l
T3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsbwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKGdldFByaXZhdGVOYW1lKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1l
LCBiYXNlVmFsdWUsIGZpZWxkTmFtZVZhbHVlKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkdldFByaXZhdGVOYW1lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRGaWVsZE5hbWUpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEZpZWxkTmFtZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIzNTYsNyArMjM1Niw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWUoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShnZXRQcml2
YXRlTmFtZShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgYmFzZVZhbHVlLCBmaWVsZE5hbWVWYWx1
ZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4
ZWRQcm9wZXJ0eURlZmF1bHQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFs
SW5mbyogYnlWYWxJbmZvKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc0lu
ZGV4ZWRQcm9wZXJ0eURlZmF1bHQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwpAQCAtMjQwNCw3ICsyNDA0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlEZWZhdWx0KEpTR2xvYmFsT2JqZWN0
KgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKG9iamVjdC0+aGFzUHJvcGVy
dHlHZW5lcmljKGdsb2JhbE9iamVjdCwgaW5kZXgsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRo
b2RUeXBlOjpHZXRPd25Qcm9wZXJ0eSkpKTsKIH0KICAgICAKLUVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5R2VuZXJpYyhKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKiBieVZhbEluZm8pCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5R2VuZXJpYywgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKiBieVZh
bEluZm8pKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNDQwLDcgKzI0NDAs
NyBAQCBzdGF0aWMgYm9vbCBkZWxldGVCeUlkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFZNJiB2bSwgRGVsZXRlUHJvcGVydHlTbG90JgogICAgIHJldHVybiBjb3VsZERlbGV0ZTsKIH0K
IAotc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVsZXRlQnlJZE9wdGltaXplKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVy
LCBFQ01BTW9kZSBlY21hTW9kZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25E
ZWxldGVCeUlkT3B0aW1pemUsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyLCBFQ01BTW9kZSBlY21hTW9kZSkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI0NjgsNyArMjQ2OCw3IEBAIHNpemVf
dCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlbGV0ZUJ5SWRPcHRpbWl6ZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc2l6ZV90IEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uRGVsZXRlQnlJZEdlbmVyaWMoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwg
dWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIsIEVDTUFNb2RlIGVjbWFNb2RlKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlbGV0ZUJ5SWRHZW5lcmljLCBzaXplX3Qs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllciwg
RUNNQU1vZGUgZWNtYU1vZGUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0y
NTAzLDcgKzI1MDMsNyBAQCBzdGF0aWMgYm9vbCBkZWxldGVCeVZhbChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBWTSYgdm0sIERlbGV0ZVByb3BlcnR5U2xvdAogICAgIHJldHVybiBjb3Vs
ZERlbGV0ZTsKIH0KIAotc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVsZXRlQnlWYWxP
cHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyog
c3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkU3Vic2NyaXB0LCBFQ01BTW9kZSBlY21hTW9kZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25EZWxldGVCeVZhbE9wdGltaXplLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFQ01BTW9kZSBl
Y21hTW9kZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI1MzMsNyArMjUz
Myw3IEBAIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlbGV0ZUJ5VmFsT3B0aW1pemUo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1z
aXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWxldGVCeVZhbEdlbmVyaWMoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRUNNQU1vZGUgZWNt
YU1vZGUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVsZXRlQnlWYWxHZW5l
cmljLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHVi
SW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
U3Vic2NyaXB0LCBFQ01BTW9kZSBlY21hTW9kZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKQEAgLTI1NDIsNyArMjU0Miw3IEBAIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkRlbGV0ZUJ5VmFsR2VuZXJpYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTCiAgICAg
cmV0dXJuIGRlbGV0ZUJ5VmFsKGdsb2JhbE9iamVjdCwgdm0sIHNsb3QsIEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkQmFzZSksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0KSwgZWNtYU1v
ZGUpOwogfQogCi1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHVzaFdpdGhTY29wZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGN1cnJlbnRTY29wZUNlbGwsIEVu
Y29kZWRKU1ZhbHVlIG9iamVjdFZhbHVlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1c2hXaXRoU2NvcGUsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0NlbGwqIGN1cnJlbnRTY29wZUNlbGwsIEVuY29kZWRKU1ZhbHVlIG9iamVjdFZhbHVlKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjU1Nyw3ICsyNTU3LDcgQEAgSlND
ZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1c2hXaXRoU2NvcGUoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDZWwKICAgICByZXR1cm4gSlNXaXRoU2NvcGU6OmNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0LCBjdXJyZW50U2NvcGUsIG9iamVjdCk7CiB9CiAKLUpTQ2VsbCogSklUX09Q
RVJBVElPTiBvcGVyYXRpb25QdXNoV2l0aFNjb3BlT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQ2VsbCogY3VycmVudFNjb3BlQ2VsbCwgSlNPYmplY3QqIG9iamVjdCkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXNoV2l0aFNjb3BlT2JqZWN0LCBKU0Nl
bGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjdXJyZW50U2NvcGVD
ZWxsLCBKU09iamVjdCogb2JqZWN0KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpA
QCAtMjU2Niw3ICsyNTY2LDcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1c2hX
aXRoU2NvcGVPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4g
SlNXaXRoU2NvcGU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBjdXJyZW50U2NvcGUsIG9iamVj
dCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW5zdGFuY2VP
ZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm90bykKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25JbnN0YW5jZU9mLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFByb3RvKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjU3OCw3
ICsyNTc4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25JbnN0YW5j
ZU9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEUKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzQm9vbGVhbihyZXN1bHQpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25JbnN0YW5jZU9mR2VuZXJpYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3RvKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkluc3RhbmNlT2ZHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvdG8pKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNTkyLDcgKzI1OTIsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluc3RhbmNlT2ZHZW5lcmljKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHJl
c3VsdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluc3Rh
bmNlT2ZPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHVi
SW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFByb3RvKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluc3Rh
bmNlT2ZPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3RvKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwpAQCAtMjYxMSw3ICsyNjExLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25JbnN0YW5jZU9mT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8K
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihyZXN1bHQpKTsKIH0KIAotaW50
MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNpemVGcmFtZUZvckZvcndhcmRBcmd1bWVudHMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QgbnVt
VXNlZFN0YWNrU2xvdHMsIGludDMyX3QpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uU2l6ZUZyYW1lRm9yRm9yd2FyZEFyZ3VtZW50cywgaW50MzJfdCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90IG51bVVzZWRTdGFja1Nsb3Rz
LCBpbnQzMl90KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjYxOSw3ICsy
NjE5LDcgQEAgaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNpemVGcmFtZUZvckZvcndh
cmRBcmd1bWVudHMoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICByZXR1cm4gc2l6ZUZyYW1lRm9y
Rm9yd2FyZEFyZ3VtZW50cyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgdm0sIG51bVVzZWRTdGFj
a1Nsb3RzKTsKIH0KIAotaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNpemVGcmFtZUZv
clZhcmFyZ3MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEFyZ3VtZW50cywgaW50MzJfdCBudW1Vc2VkU3RhY2tTbG90cywgaW50MzJfdCBmaXJzdFZh
ckFyZ09mZnNldCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TaXplRnJhbWVG
b3JWYXJhcmdzLCBpbnQzMl90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50cywgaW50MzJfdCBudW1Vc2VkU3RhY2tTbG90cywgaW50
MzJfdCBmaXJzdFZhckFyZ09mZnNldCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
QEAgLTI2MjgsNyArMjYyOCw3IEBAIGludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25TaXpl
RnJhbWVGb3JWYXJhcmdzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0dXJu
IHNpemVGcmFtZUZvclZhcmFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIHZtLCBhcmd1bWVu
dHMsIG51bVVzZWRTdGFja1Nsb3RzLCBmaXJzdFZhckFyZ09mZnNldCk7CiB9CiAKLUNhbGxGcmFt
ZSogSklUX09QRVJBVElPTiBvcGVyYXRpb25TZXR1cEZvcndhcmRBcmd1bWVudHNGcmFtZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSwgRW5jb2Rl
ZEpTVmFsdWUsIGludDMyX3QsIGludDMyX3QgbGVuZ3RoKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblNldHVwRm9yd2FyZEFyZ3VtZW50c0ZyYW1lLCBDYWxsRnJhbWUqLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUsIEVuY29k
ZWRKU1ZhbHVlLCBpbnQzMl90LCBpbnQzMl90IGxlbmd0aCkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTI2MzcsNyArMjYzNyw3IEBAIENhbGxGcmFtZSogSklUX09QRVJBVElP
TiBvcGVyYXRpb25TZXR1cEZvcndhcmRBcmd1bWVudHNGcmFtZShKU0dsb2JhbE9iamVjdCogZ2xv
CiAgICAgcmV0dXJuIG5ld0NhbGxGcmFtZTsKIH0KIAotQ2FsbEZyYW1lKiBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblNldHVwVmFyYXJnc0ZyYW1lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnRz
LCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBpbnQzMl90IGxlbmd0aCkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25TZXR1cFZhcmFyZ3NGcmFtZSwgQ2FsbEZyYW1lKiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnRzLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBp
bnQzMl90IGxlbmd0aCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI2NDcs
NyArMjY0Nyw3IEBAIENhbGxGcmFtZSogSklUX09QRVJBVElPTiBvcGVyYXRpb25TZXR1cFZhcmFy
Z3NGcmFtZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIG5ld0NhbGxG
cmFtZTsKIH0KIAotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25Td2l0Y2hDaGFyV2l0aFVu
a25vd25LZXlUeXBlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRLZXksIHNpemVfdCB0YWJsZUluZGV4KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblN3aXRjaENoYXJXaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEtleSwgc2l6ZV90IHRh
YmxlSW5kZXgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNjczLDcgKzI2
NzMsNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN3aXRjaENoYXJXaXRoVW5rbm93
bktleVR5cGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAgIHJldHVybiByZWludGVycHJldF9j
YXN0PGNoYXIqPihyZXN1bHQpOwogfQogCi1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN3
aXRjaEltbVdpdGhVbmtub3duS2V5VHlwZShWTSogdm1Qb2ludGVyLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkS2V5LCBzaXplX3QgdGFibGVJbmRleCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Td2l0Y2hJbW1XaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoVk0qIHZtUG9pbnRl
ciwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEtleSwgc2l6ZV90IHRhYmxlSW5kZXgpKQogewogICAg
IFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwpAQCAtMjY5Myw3ICsyNjkzLDcgQEAgY2hhciogSklUX09QRVJBVElP
TiBvcGVyYXRpb25Td2l0Y2hJbW1XaXRoVW5rbm93bktleVR5cGUoVk0qIHZtUG9pbnRlciwgRW5j
b2RlZEoKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4ocmVzdWx0KTsKIH0KIAot
Y2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25Td2l0Y2hTdHJpbmdXaXRoVW5rbm93bktleVR5
cGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEtl
eSwgc2l6ZV90IHRhYmxlSW5kZXgpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
U3dpdGNoU3RyaW5nV2l0aFVua25vd25LZXlUeXBlLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRLZXksIHNpemVfdCB0YWJsZUluZGV4
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjcxOCw3ICsyNzE4LDcgQEAg
Y2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25Td2l0Y2hTdHJpbmdXaXRoVW5rbm93bktleVR5
cGUoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4ocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25H
ZXRGcm9tU2NvcGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSW5zdHJ1Y3Rp
b24qIHBjKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEZyb21TY29wZSwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJbnN0
cnVjdGlvbiogcGMpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNzYwLDcg
KzI3NjAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEZyb21T
Y29wZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIH0pKSk7CiB9CiAKLXZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRUb1Njb3BlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIGNvbnN0IEluc3RydWN0aW9uKiBwYykKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QdXRUb1Njb3BlLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Y29uc3QgSW5zdHJ1Y3Rpb24qIHBjKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpA
QCAtMjgxNCw3ICsyODE0LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFRvU2Nv
cGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSW5zdHIKICAgICBDb21tb25T
bG93UGF0aHM6OnRyeUNhY2hlUHV0VG9TY29wZUdsb2JhbChnbG9iYWxPYmplY3QsIGNvZGVCbG9j
aywgYnl0ZWNvZGUsIHNjb3BlLCBzbG90LCBpZGVudCk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25UaHJvdyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkRXhjZXB0aW9uVmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uVGhyb3csIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkRXhjZXB0aW9uVmFsdWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CkBAIC0yODI4LDcgKzI4MjgsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
VGhyb3coSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZQogICAg
IGdlbmVyaWNVbndpbmQodm0sIGNhbGxGcmFtZSk7CiB9CiAKLWNoYXIqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUmVhbGxvY2F0ZUJ1dHRlcmZseVRvSGF2ZVByb3BlcnR5U3RvcmFnZVdpdGhJbml0
aWFsQ2FwYWNpdHkoVk0qIHZtUG9pbnRlciwgSlNPYmplY3QqIG9iamVjdCkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25SZWFsbG9jYXRlQnV0dGVyZmx5VG9IYXZlUHJvcGVydHlT
dG9yYWdlV2l0aEluaXRpYWxDYXBhY2l0eSwgY2hhciosIChWTSogdm1Qb2ludGVyLCBKU09iamVj
dCogb2JqZWN0KSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI4NDAsNyArMjg0MCw3IEBA
IGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVhbGxvY2F0ZUJ1dHRlcmZseVRvSGF2ZVBy
b3BlcnR5U3RvcmFnZVdpdGhJbml0aWFsCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hh
cio+KHJlc3VsdCk7CiB9CiAKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVhbGxvY2F0
ZUJ1dHRlcmZseVRvR3Jvd1Byb3BlcnR5U3RvcmFnZShWTSogdm1Qb2ludGVyLCBKU09iamVjdCog
b2JqZWN0LCBzaXplX3QgbmV3U2l6ZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25SZWFsbG9jYXRlQnV0dGVyZmx5VG9Hcm93UHJvcGVydHlTdG9yYWdlLCBjaGFyKiwgKFZNKiB2
bVBvaW50ZXIsIEpTT2JqZWN0KiBvYmplY3QsIHNpemVfdCBuZXdTaXplKSkKIHsKICAgICBWTSYg
dm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTI4NTEsNyArMjg1MSw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUmVhbGxvY2F0ZUJ1dHRlcmZseVRvR3Jvd1Byb3BlcnR5U3RvcmFnZShWTSogdm1Qb2lu
CiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHJlc3VsdCk7CiB9CiAKLXZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25PU1JXcml0ZUJhcnJpZXIoVk0qIHZtUG9pbnRlciwgSlND
ZWxsKiBjZWxsKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9TUldyaXRlQmFy
cmllciwgdm9pZCwgKFZNKiB2bVBvaW50ZXIsIEpTQ2VsbCogY2VsbCkpCiB7CiAgICAgVk0mIHZt
ID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CkBAIC0yODU5LDcgKzI4NTksNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uT1NSV3JpdGVCYXJyaWVyKFZNKiB2bVBvaW50ZXIsIEpTQ2VsbCogY2VsbCkKICAgICB2bS5o
ZWFwLndyaXRlQmFycmllcihjZWxsKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bldyaXRlQmFycmllclNsb3dQYXRoKFZNKiB2bVBvaW50ZXIsIEpTQ2VsbCogY2VsbCkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Xcml0ZUJhcnJpZXJTbG93UGF0aCwgdm9pZCwg
KFZNKiB2bVBvaW50ZXIsIEpTQ2VsbCogY2VsbCkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRl
cjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBA
IC0yODY3LDcgKzI4NjcsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uV3JpdGVCYXJy
aWVyU2xvd1BhdGgoVk0qIHZtUG9pbnRlciwgSlNDZWxsKiBjZWxsKQogICAgIHZtLmhlYXAud3Jp
dGVCYXJyaWVyU2xvd1BhdGgoY2VsbCk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25Mb29rdXBFeGNlcHRpb25IYW5kbGVyKFZNKiB2bVBvaW50ZXIpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTG9va3VwRXhjZXB0aW9uSGFuZGxlciwgdm9pZCwgKFZNKiB2bVBv
aW50ZXIpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjg3Niw3ICsyODc2LDcgQEAgdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIoVk0qIHZtUG9p
bnRlcikKICAgICBBU1NFUlQodm0udGFyZ2V0TWFjaGluZVBDRm9yVGhyb3cpOwogfQogCi12b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTG9va3VwRXhjZXB0aW9uSGFuZGxlckZyb21DYWxsZXJG
cmFtZShWTSogdm1Qb2ludGVyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkxv
b2t1cEV4Y2VwdGlvbkhhbmRsZXJGcm9tQ2FsbGVyRnJhbWUsIHZvaWQsIChWTSogdm1Qb2ludGVy
KSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI4ODcsNyArMjg4Nyw3IEBAIHZvaWQgSklU
X09QRVJBVElPTiBvcGVyYXRpb25Mb29rdXBFeGNlcHRpb25IYW5kbGVyRnJvbUNhbGxlckZyYW1l
KFZNKiB2bVBvaW50ZXIpCiAgICAgQVNTRVJUKHZtLnRhcmdldE1hY2hpbmVQQ0ZvclRocm93KTsK
IH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZNSGFuZGxlRXhjZXB0aW9uKFZNKiB2
bVBvaW50ZXIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVk1IYW5kbGVFeGNl
cHRpb24sIHZvaWQsIChWTSogdm1Qb2ludGVyKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVy
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTI5MDAsNyArMjkwMCw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25WTUhhbmRsZUV4
Y2VwdGlvbihWTSogdm1Qb2ludGVyKQogLy8gb3Vyc2VsdmVzIHRvIHBsYXkgc29tZSBnbmFybHkg
QUJJIHRyaWNrcyBqdXN0IHRvIHNpbXBsaWZ5IHRoZSBjYWxsaW5nIGNvbnZlbnRpb24uIFRoaXMg
aXMKIC8vIHBhcnRpY3VsYXJseSBzYWZlIGhlcmUgc2luY2UgdGhpcyBpcyBuZXZlciBjYWxsZWQg
b24gdGhlIGNyaXRpY2FsIHBhdGggLSBpdCdzIG9ubHkgZm9yCiAvLyB0ZXN0aW5nLgotdm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkV4Y2VwdGlvbkZ1enooSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FeGNlcHRpb25GdXp6
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTI5MTMsNyArMjkxMyw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25FeGNlcHRpb25GdXp6KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAjZW5k
aWYgLy8gQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpCiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25FeGNlcHRpb25GdXp6V2l0aENhbGxGcmFtZShWTSogdm1Qb2ludGVyKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkV4Y2VwdGlvbkZ1enpXaXRoQ2FsbEZyYW1lLCB2
b2lkLCAoVk0qIHZtUG9pbnRlcikpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yOTI2LDcg
KzI5MjYsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRXhjZXB0aW9uRnV6eldpdGhD
YWxsRnJhbWUoVk0qIHZtUG9pbnRlcikKICNlbmRpZiAvLyBDT01QSUxFUihHQ0NfQ09NUEFUSUJM
RSkKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblZhbHVlQWRkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yOTM0LDcgKzI5MzQsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVuYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNBZGQo
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSksIEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkT3AyKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblZhbHVlQWRkUHJvZmlsZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQmluYXJ5QXJp
dGhQcm9maWxlKiBhcml0aFByb2ZpbGUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uVmFsdWVBZGRQcm9maWxlZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AyLCBCaW5hcnlBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSkpCiB7CiAgICAgQVNTRVJU
KGFyaXRoUHJvZmlsZSk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjk0
Myw3ICsyOTQzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1
ZUFkZFByb2ZpbGVkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHByb2ZpbGVkQWRkKGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRPcDEpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMiksICphcml0aFByb2ZpbGUpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVk
T3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUQWRkSUMqIGFkZElDKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWRPcHRpbWl6ZSwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRBZGRJQyogYWRk
SUMpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yOTY4LDcgKzI5NjgsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWRP
cHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVz
dWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFk
ZFByb2ZpbGVkTm9PcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRBZGRJQyog
YWRkSUMpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVBZGRQcm9maWxl
ZE5vT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwg
SklUQWRkSUMqIGFkZElDKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjk3
OSw3ICsyOTc5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1
ZUFkZFByb2ZpbGVkTm9PcHRpbWl6ZShKU0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHByb2ZpbGVkQWRkKGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRPcDEpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMiksICphcml0aFByb2ZpbGUpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZE9wdGltaXpl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVEFkZElDKiBhZGRJQykKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZUFkZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVEFkZElDKiBhZGRJQykpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTMwMDAsNyArMzAwMCw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0FkZChnbG9iYWxPYmplY3Qs
IG9wMSwgb3AyKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
VmFsdWVBZGROb09wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVEFkZElDKikK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZUFkZE5vT3B0aW1pemUsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUQWRkSUMqKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzAzOCw3ICszMDM4LDcgQEAgQUxXQVlT
X0lOTElORSBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcHJvZmlsZWRNdWwoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRW4KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWwoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25W
YWx1ZU11bCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzA0Nyw3ICszMDQ3LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFbmMKICAgICByZXR1cm4gdW5wcm9maWxlZE11bChnbG9iYWxPYmplY3Qs
IGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblZhbHVlTXVsTm9PcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ay
LCBKSVRNdWxJQyopCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVNdWxO
b09wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJ
VE11bElDKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTMwNTYsNyArMzA1
Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxOb09w
dGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgcmV0dXJuIHVucHJvZmlsZWRNdWwo
Z2xvYmFsT2JqZWN0LCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bE9wdGltaXplKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDIsIEpJVE11bElDKiBtdWxJQykKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25WYWx1ZU11bE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDIsIEpJVE11bElDKiBtdWxJQykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKQEAgLTMwNzQsNyArMzA3NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmFsdWVNdWxPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAg
cmV0dXJuIHVucHJvZmlsZWRNdWwoZ2xvYmFsT2JqZWN0LCBlbmNvZGVkT3AxLCBlbmNvZGVkT3Ay
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFBy
b2ZpbGVkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEJpbmFyeUFyaXRoUHJvZmlsZSogYXJp
dGhQcm9maWxlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlTXVsUHJv
ZmlsZWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQmluYXJ5
QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC0zMDg0LDcgKzMwODQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogICAgIHJl
dHVybiBwcm9maWxlZE11bChnbG9iYWxPYmplY3QsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIsICph
cml0aFByb2ZpbGUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blZhbHVlTXVsUHJvZmlsZWRPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRN
dWxJQyogbXVsSUMpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVNdWxQ
cm9maWxlZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDIsIEpJVE11bElDKiBtdWxJQykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTMxMDMsNyArMzEwMyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
VmFsdWVNdWxQcm9maWxlZE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgcmV0dXJuIHBy
b2ZpbGVkTXVsKGdsb2JhbE9iamVjdCwgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFyaXRoUHJv
ZmlsZSwgZmFsc2UpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blZhbHVlTXVsUHJvZmlsZWROb09wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJ
VE11bElDKiBtdWxJQykKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZU11
bFByb2ZpbGVkTm9PcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AyLCBKSVRNdWxJQyogbXVsSUMpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
CkBAIC0zMTE1LDcgKzMxMTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblZhbHVlTXVsUHJvZmlsZWROb09wdGltaXplKEpTR2xvYmFsT2JqZWN0KgogfQogCiAvLyBG
SVhNRTogaXQgd291bGQgYmUgYmV0dGVyIHRvIGNhbGwgdGhvc2Ugb3BlcmF0aW9uVmFsdWVOZWdh
dGUsIHNpbmNlIHRoZSBvcGVyYW5kIGNhbiBiZSBhIEJpZ0ludAotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25Bcml0aE5lZ2F0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3BlcmFuZCkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Bcml0aE5lZ2F0ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3BlcmFuZCkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTMxNDEsNyArMzE0MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uQXJpdGhOZWdhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwKIH0KIAogLy8gRklYTUU6IGl0IHdvdWxkIGJlIGJldHRlciB0byBjYWxsIHRob3NlIG9wZXJh
dGlvblZhbHVlTmVnYXRlLCBzaW5jZSB0aGUgb3BlcmFuZCBjYW4gYmUgYSBCaWdJbnQKLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJpdGhOZWdhdGVQcm9maWxlZChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3BlcmFuZCwg
VW5hcnlBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25Bcml0aE5lZ2F0ZVByb2ZpbGVkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcGVyYW5kLCBVbmFy
eUFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlKSkKIHsKICAgICBBU1NFUlQoYXJpdGhQcm9maWxl
KTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0zMTc4LDcgKzMxNzgsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFyaXRoTmVnYXRlUHJvZmls
ZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogfQogCiAvLyBGSVhNRTogaXQgd291bGQgYmUgYmV0
dGVyIHRvIGNhbGwgdGhvc2Ugb3BlcmF0aW9uVmFsdWVOZWdhdGUsIHNpbmNlIHRoZSBvcGVyYW5k
IGNhbiBiZSBhIEJpZ0ludAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25B
cml0aE5lZ2F0ZVByb2ZpbGVkT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wZXJhbmQsIEpJVE5lZ0lDKiBuZWdJQykKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Bcml0aE5lZ2F0ZVByb2ZpbGVkT3B0aW1pemUsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wZXJhbmQsIEpJVE5lZ0lDKiBuZWdJQykpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTMyMjIsNyArMzIyMiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uQXJpdGhOZWdhdGVQcm9maWxlZE9wdGltaXplKEpTR2xvYmFsT2JqZWN0CiB9CiAKIC8v
IEZJWE1FOiBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gY2FsbCB0aG9zZSBvcGVyYXRpb25WYWx1ZU5l
Z2F0ZSwgc2luY2UgdGhlIG9wZXJhbmQgY2FuIGJlIGEgQmlnSW50Ci1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFyaXRoTmVnYXRlT3B0aW1pemUoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wZXJhbmQsIEpJVE5lZ0lDKiBu
ZWdJQykKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Bcml0aE5lZ2F0ZU9wdGlt
aXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcGVyYW5kLCBKSVROZWdJQyogbmVnSUMpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0zMjc5LDcgKzMyNzksNyBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBwcm9maWxlZFN1YihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1YihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ay
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlU3ViLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CkBAIC0zMjg3LDcgKzMyODcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblZhbHVlU3ViKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuYwog
ICAgIHJldHVybiB1bnByb2ZpbGVkU3ViKGdsb2JhbE9iamVjdCwgZW5jb2RlZE9wMSwgZW5jb2Rl
ZE9wMik7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVT
dWJQcm9maWxlZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBCaW5hcnlBcml0aFByb2ZpbGUq
IGFyaXRoUHJvZmlsZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZVN1
YlByb2ZpbGVkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEJp
bmFyeUFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlKSkKIHsKICAgICBBU1NFUlQoYXJpdGhQcm9m
aWxlKTsKIApAQCAtMzI5OCw3ICszMjk4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25WYWx1ZVN1YlByb2ZpbGVkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAg
ICByZXR1cm4gcHJvZmlsZWRTdWIodm0sIGdsb2JhbE9iamVjdCwgZW5jb2RlZE9wMSwgZW5jb2Rl
ZE9wMiwgKmFyaXRoUHJvZmlsZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmFsdWVTdWJPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRT
dWJJQyogc3ViSUMpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVTdWJP
cHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRT
dWJJQyogc3ViSUMpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMzE2LDcg
KzMzMTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlU3Vi
T3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogICAgIHJldHVybiB1bnByb2ZpbGVk
U3ViKGdsb2JhbE9iamVjdCwgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVTdWJOb09wdGltaXplKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDIsIEpJVFN1YklDKikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25WYWx1ZVN1Yk5vT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMiwgSklUU3ViSUMqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtMzMyNSw3ICszMzI1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25WYWx1ZVN1Yk5vT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICByZXR1
cm4gdW5wcm9maWxlZFN1YihnbG9iYWxPYmplY3QsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlU3ViUHJvZmls
ZWRPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRTdWJJQyogc3ViSUMpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVTdWJQcm9maWxlZE9wdGltaXpl
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVFN1YklDKiBz
dWJJQykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTMzNDQsNyArMzM0NCw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVTdWJQcm9maWxl
ZE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgcmV0dXJuIHByb2ZpbGVkU3ViKHZtLCBn
bG9iYWxPYmplY3QsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIsICphcml0aFByb2ZpbGUsIGZhbHNl
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1YlBy
b2ZpbGVkTm9PcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRTdWJJQyogc3Vi
SUMpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVTdWJQcm9maWxlZE5v
T3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklU
U3ViSUMqIHN1YklDKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzM1NSw3
ICszMzU1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1
YlByb2ZpbGVkTm9PcHRpbWl6ZShKU0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gcHJvZmlsZWRT
dWIodm0sIGdsb2JhbE9iamVjdCwgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFyaXRoUHJvZmls
ZSk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9jZXNzVHlwZVByb2ZpbGVy
TG9nKFZNKiB2bVBvaW50ZXIpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHJv
Y2Vzc1R5cGVQcm9maWxlckxvZywgdm9pZCwgKFZNKiB2bVBvaW50ZXIpKQogewogICAgIFZNJiB2
bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwpAQCAtMzM2Myw3ICszMzYzLDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblByb2Nlc3NUeXBlUHJvZmlsZXJMb2coVk0qIHZtUG9pbnRlcikKICAgICB2bS50eXBlUHJv
ZmlsZXJMb2coKS0+cHJvY2Vzc0xvZ0VudHJpZXModm0sICJMb2cgRnVsbCwgY2FsbGVkIGZyb20g
aW5zaWRlIGJhc2VsaW5lIEpJVCJfcyk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25Qcm9jZXNzU2hhZG93Q2hpY2tlbkxvZyhWTSogdm1Qb2ludGVyKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblByb2Nlc3NTaGFkb3dDaGlja2VuTG9nLCB2b2lkLCAoVk0qIHZt
UG9pbnRlcikpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMzcyLDcgKzMzNzIsNyBAQCB2
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvY2Vzc1NoYWRvd0NoaWNrZW5Mb2coVk0qIHZt
UG9pbnRlcikKICAgICB2bS5zaGFkb3dDaGlja2VuKCktPnVwZGF0ZSh2bSwgY2FsbEZyYW1lKTsK
IH0KIAotaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNoZWNrSWZFeGNlcHRpb25Jc1Vu
Y2F0Y2hhYmxlQW5kTm90aWZ5UHJvZmlsZXIoVk0qIHZtUG9pbnRlcikKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25DaGVja0lmRXhjZXB0aW9uSXNVbmNhdGNoYWJsZUFuZE5vdGlm
eVByb2ZpbGVyLCBpbnQzMl90LCAoVk0qIHZtUG9pbnRlcikpCiB7CiAgICAgVk0mIHZtID0gKnZt
UG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCmluZGV4IDFhYTMw
NzA3MzBiYzRmYzFhMWUyNDFiYTE5M2YwMzcyYTQyNDM0ZWMuLmU4ZTZjODkyYWM3MWMzNDgyOTJj
OThkMTkzNjQzMzY2MjJkNGEzZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5oCkBAIC0xMjAsMjA4ICsxMjAsMjA4IEBAIHR5cGVkZWYgY2hhciogVW51c2VkUHRy
OwogICAgIFVpOiB1aW50MzJfdAogKi8KIAotdXNpbmcgSl9KSVRPcGVyYXRpb25fR0pNaWMgPSBF
bmNvZGVkSlNWYWx1ZShKSVRfT1BFUkFUSU9OICopKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUsIHZvaWQqKTsKLXVzaW5nIEpfSklUT3BlcmF0aW9uX0dQID0gRW5jb2RlZEpTVmFsdWUo
SklUX09QRVJBVElPTiAqKShKU0dsb2JhbE9iamVjdCosIHZvaWQqKTsKLXVzaW5nIEpfSklUT3Bl
cmF0aW9uX0dQUCA9IEVuY29kZWRKU1ZhbHVlKEpJVF9PUEVSQVRJT04gKikoSlNHbG9iYWxPYmpl
Y3QqLCB2b2lkKiwgdm9pZCopOwotdXNpbmcgSl9KSVRPcGVyYXRpb25fR1BQUCA9IEVuY29kZWRK
U1ZhbHVlKEpJVF9PUEVSQVRJT04gKikoSlNHbG9iYWxPYmplY3QqLCB2b2lkKiwgdm9pZCosIHZv
aWQqKTsKLXVzaW5nIEpfSklUT3BlcmF0aW9uX0dKSiA9IEVuY29kZWRKU1ZhbHVlKEpJVF9PUEVS
QVRJT04gKikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUp
OwotdXNpbmcgSl9KSVRPcGVyYXRpb25fR0pKTWljID0gRW5jb2RlZEpTVmFsdWUoSklUX09QRVJB
VElPTiAqKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwg
dm9pZCopOwotdXNpbmcgWl9KSVRPcGVyYXRpb25fR0paWiA9IGludDMyX3QoSklUX09QRVJBVElP
TiAqKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBpbnQzMl90KTsK
LXVzaW5nIEZfSklUT3BlcmF0aW9uX0dGSlpaID0gQ2FsbEZyYW1lKihKSVRfT1BFUkFUSU9OICop
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIGlu
dDMyX3QpOwotdXNpbmcgU3BydF9KSVRPcGVyYXRpb25fRUdDbGkgPSBTbG93UGF0aFJldHVyblR5
cGUoSklUX09QRVJBVElPTiAqKShDYWxsRnJhbWUqLCBKU0dsb2JhbE9iamVjdCosIENhbGxMaW5r
SW5mbyopOwotdXNpbmcgVl9KSVRPcGVyYXRpb25fQ2IgPSB2b2lkKEpJVF9PUEVSQVRJT04gKiko
Q29kZUJsb2NrKik7Ci11c2luZyBaX0pJVE9wZXJhdGlvbl9HID0gaW50MzJfdCAoSklUX09QRVJB
VElPTiAqKShKU0dsb2JhbE9iamVjdCopOwotdXNpbmcgUF9KSVRPcGVyYXRpb25fVm1TdFpCID0g
Y2hhciooSklUX09QRVJBVElPTiAqKShWTSosIFN0cnVjdHVyZSosIGludDMyX3QsIEJ1dHRlcmZs
eSopOwotdXNpbmcgUF9KSVRPcGVyYXRpb25fR1N0WkIgPSBjaGFyKihKSVRfT1BFUkFUSU9OICop
KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgaW50MzJfdCwgQnV0dGVyZmx5Kik7Ci11c2lu
ZyBKX0pJVE9wZXJhdGlvbl9HSiA9IEVuY29kZWRKU1ZhbHVlKEpJVF9PUEVSQVRJT04gKikoSlNH
bG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSk7Ci11c2luZyBKX0pJVE9wZXJhdGlvbl9HSkkg
PSBFbmNvZGVkSlNWYWx1ZShKSVRfT1BFUkFUSU9OICopKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKik7Ci11c2luZyBWX0pJVE9wZXJhdGlvbl9HU3Np
SkpDID0gdm9pZChKSVRfT1BFUkFUSU9OICopKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1
YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCk7Ci11c2lu
ZyBDX0pJVE9wZXJhdGlvbl9UVCA9IHVpbnRwdHJfdChKSVRfT1BFUkFUSU9OICopKFN0cmluZ0lt
cGwqLCBTdHJpbmdJbXBsKik7Ci11c2luZyBDX0pJVE9wZXJhdGlvbl9CX0dKc3NKc3MgPSB1aW50
cHRyX3QoSklUX09QRVJBVElPTiAqKShKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwgSlNTdHJp
bmcqKTsKLXVzaW5nIFNfSklUT3BlcmF0aW9uX0dDID0gc2l6ZV90KEpJVF9PUEVSQVRJT04gKiko
SlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKTsKLXVzaW5nIFNfSklUT3BlcmF0aW9uX0dKSiA9IHNp
emVfdChKSVRfT1BFUkFUSU9OICopKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlKTsKLXVzaW5nIFZfSklUT3BlcmF0aW9uX0dKSkogPSB2b2lkKEpJVF9PUEVS
QVRJT04gKikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlKTsKLXVzaW5nIEpfSklUT3BlcmF0aW9uX0dTc2lKSiA9IEVuY29kZWRK
U1ZhbHVlKEpJVF9PUEVSQVRJT04gKikoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5m
byosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7Ci11c2luZyBKX0pJVE9wZXJhdGlv
bl9HU3NpSkpJID0gRW5jb2RlZEpTVmFsdWUoSklUX09QRVJBVElPTiAqKShKU0dsb2JhbE9iamVj
dCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBV
bmlxdWVkU3RyaW5nSW1wbCopOwotdXNpbmcgVl9KSVRPcGVyYXRpb25fR0NDSiA9IHZvaWQoSklU
X09QRVJBVElPTiAqKShKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEpTQ2VsbCosIEVuY29kZWRK
U1ZhbHVlKTsKLXVzaW5nIEpfSklUT3BlcmF0aW9uX0dTc2lKSSA9IEVuY29kZWRKU1ZhbHVlKEpJ
VF9PUEVSQVRJT04gKikoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29k
ZWRKU1ZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCopOwotdXNpbmcgWl9KSVRPcGVyYXRpb25fR0pa
WiA9IGludDMyX3QoSklUX09QRVJBVElPTiAqKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1Zh
bHVlLCBpbnQzMl90LCBpbnQzMl90KTsKLXVzaW5nIEZfSklUT3BlcmF0aW9uX0dGSlpaID0gQ2Fs
bEZyYW1lKihKSVRfT1BFUkFUSU9OICopKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiwgRW5j
b2RlZEpTVmFsdWUsIGludDMyX3QsIGludDMyX3QpOwotdXNpbmcgRF9KSVRPcGVyYXRpb25fREQg
PSBkb3VibGUoSklUX09QRVJBVElPTiAqKShkb3VibGUsIGRvdWJsZSk7Ci11c2luZyBEX0pJVE9w
ZXJhdGlvbl9EID0gZG91YmxlKEpJVF9PUEVSQVRJT04gKikoZG91YmxlKTsKK3VzaW5nIEpfSklU
T3BlcmF0aW9uX0dKTWljID0gRW5jb2RlZEpTVmFsdWUoSklUX09QRVJBVElPTl9BVFRSSUJVVEUg
KikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgdm9pZCopOwordXNpbmcgSl9KSVRP
cGVyYXRpb25fR1AgPSBFbmNvZGVkSlNWYWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURSAqKShK
U0dsb2JhbE9iamVjdCosIHZvaWQqKTsKK3VzaW5nIEpfSklUT3BlcmF0aW9uX0dQUCA9IEVuY29k
ZWRKU1ZhbHVlKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFICopKEpTR2xvYmFsT2JqZWN0Kiwgdm9p
ZCosIHZvaWQqKTsKK3VzaW5nIEpfSklUT3BlcmF0aW9uX0dQUFAgPSBFbmNvZGVkSlNWYWx1ZShK
SVRfT1BFUkFUSU9OX0FUVFJJQlVURSAqKShKU0dsb2JhbE9iamVjdCosIHZvaWQqLCB2b2lkKiwg
dm9pZCopOwordXNpbmcgSl9KSVRPcGVyYXRpb25fR0pKID0gRW5jb2RlZEpTVmFsdWUoSklUX09Q
RVJBVElPTl9BVFRSSUJVVEUgKikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUpOwordXNpbmcgSl9KSVRPcGVyYXRpb25fR0pKTWljID0gRW5jb2RlZEpTVmFs
dWUoSklUX09QRVJBVElPTl9BVFRSSUJVVEUgKikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUsIHZvaWQqKTsKK3VzaW5nIFpfSklUT3BlcmF0aW9uX0dKWlog
PSBpbnQzMl90KEpJVF9PUEVSQVRJT05fQVRUUklCVVRFICopKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUsIGludDMyX3QsIGludDMyX3QpOwordXNpbmcgRl9KSVRPcGVyYXRpb25fR0ZK
WlogPSBDYWxsRnJhbWUqKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFICopKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIGludDMyX3QpOwordXNpbmcg
U3BydF9KSVRPcGVyYXRpb25fRUdDbGkgPSBTbG93UGF0aFJldHVyblR5cGUoSklUX09QRVJBVElP
Tl9BVFRSSUJVVEUgKikoQ2FsbEZyYW1lKiwgSlNHbG9iYWxPYmplY3QqLCBDYWxsTGlua0luZm8q
KTsKK3VzaW5nIFZfSklUT3BlcmF0aW9uX0NiID0gdm9pZChKSVRfT1BFUkFUSU9OX0FUVFJJQlVU
RSAqKShDb2RlQmxvY2sqKTsKK3VzaW5nIFpfSklUT3BlcmF0aW9uX0cgPSBpbnQzMl90IChKSVRf
T1BFUkFUSU9OX0FUVFJJQlVURSAqKShKU0dsb2JhbE9iamVjdCopOwordXNpbmcgUF9KSVRPcGVy
YXRpb25fVm1TdFpCID0gY2hhciooSklUX09QRVJBVElPTl9BVFRSSUJVVEUgKikoVk0qLCBTdHJ1
Y3R1cmUqLCBpbnQzMl90LCBCdXR0ZXJmbHkqKTsKK3VzaW5nIFBfSklUT3BlcmF0aW9uX0dTdFpC
ID0gY2hhciooSklUX09QRVJBVElPTl9BVFRSSUJVVEUgKikoSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmUqLCBpbnQzMl90LCBCdXR0ZXJmbHkqKTsKK3VzaW5nIEpfSklUT3BlcmF0aW9uX0dKID0g
RW5jb2RlZEpTVmFsdWUoSklUX09QRVJBVElPTl9BVFRSSUJVVEUgKikoSlNHbG9iYWxPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSk7Cit1c2luZyBKX0pJVE9wZXJhdGlvbl9HSkkgPSBFbmNvZGVkSlNW
YWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURSAqKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCopOwordXNpbmcgVl9KSVRPcGVyYXRpb25fR1NzaUpK
QyA9IHZvaWQoSklUX09QRVJBVElPTl9BVFRSSUJVVEUgKikoSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90
KTsKK3VzaW5nIENfSklUT3BlcmF0aW9uX1RUID0gdWludHB0cl90KEpJVF9PUEVSQVRJT05fQVRU
UklCVVRFICopKFN0cmluZ0ltcGwqLCBTdHJpbmdJbXBsKik7Cit1c2luZyBDX0pJVE9wZXJhdGlv
bl9CX0dKc3NKc3MgPSB1aW50cHRyX3QoSklUX09QRVJBVElPTl9BVFRSSUJVVEUgKikoSlNHbG9i
YWxPYmplY3QqLCBKU1N0cmluZyosIEpTU3RyaW5nKik7Cit1c2luZyBTX0pJVE9wZXJhdGlvbl9H
QyA9IHNpemVfdChKSVRfT1BFUkFUSU9OX0FUVFJJQlVURSAqKShKU0dsb2JhbE9iamVjdCosIEpT
Q2VsbCopOwordXNpbmcgU19KSVRPcGVyYXRpb25fR0pKID0gc2l6ZV90KEpJVF9PUEVSQVRJT05f
QVRUUklCVVRFICopKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlKTsKK3VzaW5nIFZfSklUT3BlcmF0aW9uX0dKSkogPSB2b2lkKEpJVF9PUEVSQVRJT05fQVRU
UklCVVRFICopKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSk7Cit1c2luZyBKX0pJVE9wZXJhdGlvbl9HU3NpSkogPSBFbmNvZGVk
SlNWYWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURSAqKShKU0dsb2JhbE9iamVjdCosIFN0cnVj
dHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKK3VzaW5nIEpf
SklUT3BlcmF0aW9uX0dTc2lKSkkgPSBFbmNvZGVkSlNWYWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJ
QlVURSAqKShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCopOwordXNpbmcgVl9KSVRPcGVy
YXRpb25fR0NDSiA9IHZvaWQoSklUX09QRVJBVElPTl9BVFRSSUJVVEUgKikoSlNHbG9iYWxPYmpl
Y3QqLCBKU0NlbGwqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSk7Cit1c2luZyBKX0pJVE9wZXJh
dGlvbl9HU3NpSkkgPSBFbmNvZGVkSlNWYWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURSAqKShK
U0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIFVuaXF1
ZWRTdHJpbmdJbXBsKik7Cit1c2luZyBaX0pJVE9wZXJhdGlvbl9HSlpaID0gaW50MzJfdChKSVRf
T1BFUkFUSU9OX0FUVFJJQlVURSAqKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBp
bnQzMl90LCBpbnQzMl90KTsKK3VzaW5nIEZfSklUT3BlcmF0aW9uX0dGSlpaID0gQ2FsbEZyYW1l
KihKSVRfT1BFUkFUSU9OX0FUVFJJQlVURSAqKShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSos
IEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBpbnQzMl90KTsKK3VzaW5nIERfSklUT3BlcmF0aW9u
X0REID0gZG91YmxlKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFICopKGRvdWJsZSwgZG91YmxlKTsK
K3VzaW5nIERfSklUT3BlcmF0aW9uX0QgPSBkb3VibGUoSklUX09QRVJBVElPTl9BVFRSSUJVVEUg
KikoZG91YmxlKTsKIAogLy8gVGhpcyBtZXRob2QgaXMgdXNlZCB0byBsb29rdXAgYW4gZXhjZXB0
aW9uIGhhbmRlciwga2V5ZWQgYnkgZmF1bHRMb2NhdGlvbiwgd2hpY2ggaXMKIC8vIHRoZSByZXR1
cm4gbG9jYXRpb24gZnJvbSBvbmUgb2YgdGhlIGNhbGxzIG91dCB0byBvbmUgb2YgdGhlIGhlbHBl
ciBvcGVyYXRpb25zIGFib3ZlLgogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTG9va3Vw
RXhjZXB0aW9uSGFuZGxlcihWTSopIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25Mb29rdXBFeGNlcHRpb25IYW5kbGVyRnJvbUNhbGxlckZyYW1lKFZNKikgV1RGX0lO
VEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZNSGFuZGxlRXhjZXB0aW9uKFZN
KikgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRocm93U3RhY2tP
dmVyZmxvd0Vycm9yRnJvbVRodW5rKEpTR2xvYmFsT2JqZWN0KikgV1RGX0lOVEVSTkFMOwotdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRocm93SXRlcmF0b3JSZXN1bHRJc05vdE9iamVjdChK
U0dsb2JhbE9iamVjdCopIFdURl9JTlRFUk5BTDsKLQotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblRocm93U3RhY2tPdmVyZmxvd0Vycm9yKENvZGVCbG9jayopIFdURl9JTlRFUk5BTDsKLWlu
dDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsQXJpdHlDaGVjayhKU0dsb2JhbE9iamVj
dCopIFdURl9JTlRFUk5BTDsKLWludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db25zdHJ1
Y3RBcml0eUNoZWNrKEpTR2xvYmFsT2JqZWN0KikgV1RGX0lOVEVSTkFMOwotCi1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRyeUdldEJ5SWQoSlNHbG9iYWxPYmplY3QqLCBT
dHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpIFdURl9JTlRFUk5B
TDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVHJ5R2V0QnlJZEdlbmVy
aWMoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSBXVEZfSU5URVJO
QUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRyeUdldEJ5SWRPcHRp
bWl6ZShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUs
IHVpbnRwdHJfdCkgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25HZXRCeUlkKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNv
ZGVkSlNWYWx1ZSwgdWludHB0cl90KSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5SWRHZW5lcmljKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUsIHVpbnRwdHJfdCkgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1
cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpIFdURl9JTlRFUk5BTDsKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzKEpTR2xv
YmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUsIHVpbnRwdHJfdCkgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25HZXRCeUlkV2l0aFRoaXNHZW5lcmljKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpIFdURl9JTlRFUk5BTDsKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzT3B0aW1p
emUoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5SWREaXJlY3QoSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpIFdURl9JTlRFUk5BTDsK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZERpcmVjdEdlbmVy
aWMoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSBXVEZfSU5URVJO
QUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5SWREaXJlY3RP
cHRpbWl6ZShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFs
dWUsIHVpbnRwdHJfdCkgV1RGX0lOVEVSTkFMOwotCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkluQnlJZChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwg
RW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25JbkJ5SWRHZW5lcmljKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25JbkJ5SWRPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCosIFN0cnVj
dHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkgV1RGX0lOVEVSTkFMOwot
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluQnlWYWwoSlNHbG9iYWxP
YmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotCi12b2lkIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZFN0cmljdChKU0dsb2JhbE9iamVjdCosIFN0cnVj
dHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90KSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0QnlJZE5vblN0cmljdChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0
dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQmFzZSwgdWludHB0cl90KSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJ
bmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgdWludHB0cl90KSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUHV0QnlJZERpcmVjdE5vblN0cmljdChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJ
bmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgdWludHB0cl90KSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUHV0QnlJZFN0cmljdE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1Yklu
Zm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRC
YXNlLCB1aW50cHRyX3QpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25QdXRCeUlkTm9uU3RyaWN0T3B0aW1pemUoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHVi
SW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2UsIHVpbnRwdHJfdCkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblB1dEJ5SWREaXJlY3RTdHJpY3RPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkQmFzZSwgdWludHB0cl90KSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUHV0QnlJZERpcmVjdE5vblN0cmljdE9wdGltaXplKEpTR2xvYmFsT2JqZWN0Kiwg
U3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25QdXRCeUlkRGVmaW5lUHJpdmF0ZUZpZWxkU3RyaWN0KEpTR2xvYmFs
T2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QpIFdURl9JTlRFUk5BTDsKLXZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkRGVmaW5lUHJpdmF0ZUZpZWxkU3RyaWN0
T3B0aW1pemUoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkg
V1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWRTZXRQcml2
YXRlRmllbGRTdHJpY3QoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRw
dHJfdCkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWRT
ZXRQcml2YXRlRmllbGRTdHJpY3RPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0
dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQmFzZSwgdWludHB0cl90KSBXVEZfSU5URVJOQUw7Ci0KLXZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25QdXRQcml2YXRlTmFtZU9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKiwgUHJpdmF0
ZUZpZWxkUHV0S2luZCkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blB1dFByaXZhdGVOYW1lR2VuZXJpYyhKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyosIFByaXZhdGVGaWVsZFB1
dEtpbmQpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZh
bE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKiwgRUNNQU1vZGUpIFdURl9JTlRFUk5BTDsKLXZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbE9wdGltaXplKEpTR2xvYmFs
T2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwg
QnlWYWxJbmZvKiwgRUNNQU1vZGUpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25QdXRCeVZhbEdlbmVyaWMoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qLCBFQ01BTW9kZSkgV1RG
X0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsR2Vu
ZXJpYyhKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyosIEVDTUFNb2RlKSBXVEZfSU5URVJOQUw7Ci0KLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEV2YWwoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqLCBFQ01BTW9kZSkgV1RGX0lOVEVSTkFMOwotU2xvd1BhdGhSZXR1cm5UeXBl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0NhbGwoQ2FsbEZyYW1lKiwgSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsTGlua0luZm8qKSBXVEZfSU5URVJOQUw7Ci1TbG93UGF0aFJldHVyblR5cGUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25MaW5rUG9seW1vcnBoaWNDYWxsKENhbGxGcmFtZSosIEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbExpbmtJbmZvKikgV1RGX0lOVEVSTkFMOwotU2xvd1BhdGhSZXR1cm5U
eXBlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmlydHVhbENhbGwoQ2FsbEZyYW1lKiwgSlNHbG9i
YWxPYmplY3QqLCBDYWxsTGlua0luZm8qKSBXVEZfSU5URVJOQUw7Ci0KLXNpemVfdCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVMZXNzKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci1zaXplX3QgSklUX09QRVJBVElPTiBv
cGVyYXRpb25Db21wYXJlTGVzc0VxKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci1zaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRp
b25Db21wYXJlR3JlYXRlcihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29t
cGFyZUdyZWF0ZXJFcShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSkgV1RGX0lOVEVSTkFMOwotc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFy
ZUVxKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZf
SU5URVJOQUw7Ci1zaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlU3RyaWN0RXEo
SlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRF
Uk5BTDsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTG9va3VwRXhjZXB0aW9u
SGFuZGxlciwgdm9pZCwgKFZNKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Mb29rdXBFeGNlcHRpb25IYW5kbGVyRnJvbUNhbGxlckZyYW1lLCB2b2lkLCAoVk0qKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZNSGFuZGxlRXhjZXB0aW9uLCB2b2lk
LCAoVk0qKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93U3RhY2tP
dmVyZmxvd0Vycm9yRnJvbVRodW5rLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqKSk7CitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93SXRlcmF0b3JSZXN1bHRJc05vdE9iamVj
dCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KikpOworCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0Vycm9yLCB2b2lkLCAoQ29kZUJsb2NrKikpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DYWxsQXJpdHlDaGVjaywgaW50MzJf
dCwgKEpTR2xvYmFsT2JqZWN0KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Db25zdHJ1Y3RBcml0eUNoZWNrLCBpbnQzMl90LCAoSlNHbG9iYWxPYmplY3QqKSk7CisKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5R2V0QnlJZCwgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUs
IHVpbnRwdHJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlHZXRC
eUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1Zh
bHVlLCB1aW50cHRyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5
R2V0QnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZEdlbmVyaWMsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2Rl
ZEpTVmFsdWUsIHVpbnRwdHJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25HZXRCeUlkV2l0aFRoaXMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpc0dl
bmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25HZXRCeUlkV2l0aFRoaXNPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlLCB1aW50cHRyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0
QnlJZERpcmVjdCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0
dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25HZXRCeUlkRGlyZWN0R2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZERpcmVjdE9wdGltaXplLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1
ZSwgdWludHB0cl90KSk7CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5C
eUlkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8q
LCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkluQnlJZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkluQnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7CisKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5CeVZhbCwgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlKSk7CisKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFN0cmljdCwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZE5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdE5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0T3B0aW1pemUsIHZvaWQsIChK
U0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90KSk7CitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREaXJlY3RTdHJpY3RPcHRpbWl6ZSwg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QpKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdE5vblN0cmlj
dE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVp
bnRwdHJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGVm
aW5lUHJpdmF0ZUZpZWxkU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVT
dHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEJhc2UsIHVpbnRwdHJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRCeUlkRGVmaW5lUHJpdmF0ZUZpZWxkU3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90KSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRTZXRQcml2YXRlRmllbGRTdHJpY3QsIHZvaWQs
IChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90KSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRTZXRQcml2YXRlRmllbGRTdHJp
Y3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1
aW50cHRyX3QpKTsKKworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRQcml2
YXRlTmFtZU9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qLCBQcml2YXRlRmllbGRQ
dXRLaW5kKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dFByaXZhdGVO
YW1lR2VuZXJpYywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKiwgUHJpdmF0ZUZpZWxkUHV0S2lu
ZCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbE9wdGltaXpl
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qLCBFQ01BTW9kZSkpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25EaXJlY3RQdXRCeVZhbE9wdGltaXplLCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
LCBCeVZhbEluZm8qLCBFQ01BTW9kZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25QdXRCeVZhbEdlbmVyaWMsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyosIEVDTUFNb2Rl
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsR2Vu
ZXJpYywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKiwgRUNNQU1vZGUpKTsKKworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DYWxsRXZhbCwgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSosIEVDTUFNb2RlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkxpbmtDYWxsLCBTbG93UGF0aFJldHVyblR5cGUsIChDYWxsRnJhbWUq
LCBKU0dsb2JhbE9iamVjdCosIENhbGxMaW5rSW5mbyopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTGlua1BvbHltb3JwaGljQ2FsbCwgU2xvd1BhdGhSZXR1cm5UeXBlLCAo
Q2FsbEZyYW1lKiwgSlNHbG9iYWxPYmplY3QqLCBDYWxsTGlua0luZm8qKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZpcnR1YWxDYWxsLCBTbG93UGF0aFJldHVyblR5cGUs
IChDYWxsRnJhbWUqLCBKU0dsb2JhbE9iamVjdCosIENhbGxMaW5rSW5mbyopKTsKKworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlTGVzcywgc2l6ZV90LCAoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUxlc3NFcSwgc2l6ZV90LCAoSlNHbG9iYWxP
YmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXIsIHNpemVfdCwgKEpTR2xvYmFsT2Jq
ZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVHcmVhdGVyRXEsIHNpemVfdCwgKEpTR2xvYmFsT2Jq
ZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVFcSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29tcGFyZVN0cmljdEVxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIEVu
Y29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwogI2lmIFVTRShKU1ZBTFVFNjQpCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdFcShKU0dsb2Jh
bE9iamVjdCosIEpTQ2VsbCogbGVmdCwgSlNDZWxsKiByaWdodCkgV1RGX0lOVEVSTkFMOwotc2l6
ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZUVxSGVhcEJpZ0ludFRvSW50MzIoSlNH
bG9iYWxPYmplY3QqLCBKU0NlbGwqIGhlYXBCaWdJbnQsIGludDMyX3Qgc21hbGxJbnQpIFdURl9J
TlRFUk5BTDsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmlu
Z0VxLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBsZWZ0LCBKU0Nl
bGwqIHJpZ2h0KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVF
cUhlYXBCaWdJbnRUb0ludDMyLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogaGVh
cEJpZ0ludCwgaW50MzJfdCBzbWFsbEludCkpOwogI2Vsc2UKLXNpemVfdCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdFcShKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogbGVmdCwg
SlNDZWxsKiByaWdodCkgV1RGX0lOVEVSTkFMOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Db21wYXJlU3RyaW5nRXEsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxs
KiBsZWZ0LCBKU0NlbGwqIHJpZ2h0KSk7CiAjZW5kaWYKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uTmV3QXJyYXlXaXRoUHJvZmlsZShKU0dsb2JhbE9iamVjdCosIEFycmF5
QWxsb2NhdGlvblByb2ZpbGUqLCBjb25zdCBKU1ZhbHVlKiB2YWx1ZXMsIGludDMyX3Qgc2l6ZSkg
V1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdB
cnJheVdpdGhTaXplQW5kUHJvZmlsZShKU0dsb2JhbE9iamVjdCosIEFycmF5QWxsb2NhdGlvblBy
b2ZpbGUqLCBFbmNvZGVkSlNWYWx1ZSBzaXplKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0Z1bmN0aW9uKFZNKiwgSlNTY29wZSosIEpTQ2Vs
bCopIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
TmV3RnVuY3Rpb25XaXRoSW52YWxpZGF0ZWRSZWFsbG9jYXRpb25XYXRjaHBvaW50KFZNKiwgSlNT
Y29wZSosIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uTmV3R2VuZXJhdG9yRnVuY3Rpb24oVk0qLCBKU1Njb3BlKiwgSlNDZWxsKikg
V1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdH
ZW5lcmF0b3JGdW5jdGlvbldpdGhJbnZhbGlkYXRlZFJlYWxsb2NhdGlvbldhdGNocG9pbnQoVk0q
LCBKU1Njb3BlKiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25OZXdBc3luY0Z1bmN0aW9uKFZNKiwgSlNTY29wZSosIEpTQ2VsbCop
IFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3
QXN5bmNGdW5jdGlvbldpdGhJbnZhbGlkYXRlZFJlYWxsb2NhdGlvbldhdGNocG9pbnQoVk0qLCBK
U1Njb3BlKiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25OZXdBc3luY0dlbmVyYXRvckZ1bmN0aW9uKFZNKiwgSlNTY29wZSosIEpT
Q2VsbCopIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uTmV3QXN5bmNHZW5lcmF0b3JGdW5jdGlvbldpdGhJbnZhbGlkYXRlZFJlYWxsb2NhdGlvbldh
dGNocG9pbnQoVk0qLCBKU1Njb3BlKiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblNldEZ1bmN0aW9uTmFtZShKU0dsb2JhbE9iamVjdCosIEpTQ2Vs
bCosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci1KU0NlbGwqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uTmV3T2JqZWN0KFZNKiwgU3RydWN0dXJlKikgV1RGX0lOVEVSTkFMOwotSlNDZWxs
KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld1Byb21pc2UoVk0qLCBTdHJ1Y3R1cmUqKSBXVEZf
SU5URVJOQUw7Ci1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3SW50ZXJuYWxQcm9t
aXNlKFZNKiwgU3RydWN0dXJlKikgV1RGX0lOVEVSTkFMOwotSlNDZWxsKiBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbk5ld0dlbmVyYXRvcihWTSosIFN0cnVjdHVyZSopIFdURl9JTlRFUk5BTDsKLUpT
Q2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdBc3luY0dlbmVyYXRvcihWTSosIFN0cnVj
dHVyZSopIFdURl9JTlRFUk5BTDsKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdS
ZWdleHAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7Ci1VbnVzZWRQdHIg
SklUX09QRVJBVElPTiBvcGVyYXRpb25IYW5kbGVUcmFwcyhKU0dsb2JhbE9iamVjdCopIFdURl9J
TlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UaHJvdyhKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uRGVidWcoVk0qLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFByb2ZpbGUsIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqLCBBcnJheUFsbG9jYXRpb25Qcm9maWxlKiwgY29uc3QgSlNWYWx1ZSog
dmFsdWVzLCBpbnQzMl90IHNpemUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uTmV3QXJyYXlXaXRoU2l6ZUFuZFByb2ZpbGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
YmplY3QqLCBBcnJheUFsbG9jYXRpb25Qcm9maWxlKiwgRW5jb2RlZEpTVmFsdWUgc2l6ZSkpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdGdW5jdGlvbiwgRW5jb2RlZEpT
VmFsdWUsIChWTSosIEpTU2NvcGUqLCBKU0NlbGwqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbk5ld0Z1bmN0aW9uV2l0aEludmFsaWRhdGVkUmVhbGxvY2F0aW9uV2F0Y2hw
b2ludCwgRW5jb2RlZEpTVmFsdWUsIChWTSosIEpTU2NvcGUqLCBKU0NlbGwqKSk7CitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0dlbmVyYXRvckZ1bmN0aW9uLCBFbmNvZGVk
SlNWYWx1ZSwgKFZNKiwgSlNTY29wZSosIEpTQ2VsbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTmV3R2VuZXJhdG9yRnVuY3Rpb25XaXRoSW52YWxpZGF0ZWRSZWFsbG9j
YXRpb25XYXRjaHBvaW50LCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiwgSlNTY29wZSosIEpTQ2VsbCop
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXN5bmNGdW5jdGlvbiwg
RW5jb2RlZEpTVmFsdWUsIChWTSosIEpTU2NvcGUqLCBKU0NlbGwqKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FzeW5jRnVuY3Rpb25XaXRoSW52YWxpZGF0ZWRSZWFs
bG9jYXRpb25XYXRjaHBvaW50LCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiwgSlNTY29wZSosIEpTQ2Vs
bCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXN5bmNHZW5lcmF0
b3JGdW5jdGlvbiwgRW5jb2RlZEpTVmFsdWUsIChWTSosIEpTU2NvcGUqLCBKU0NlbGwqKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FzeW5jR2VuZXJhdG9yRnVuY3Rp
b25XaXRoSW52YWxpZGF0ZWRSZWFsbG9jYXRpb25XYXRjaHBvaW50LCBFbmNvZGVkSlNWYWx1ZSwg
KFZNKiwgSlNTY29wZSosIEpTQ2VsbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uU2V0RnVuY3Rpb25OYW1lLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBF
bmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdP
YmplY3QsIEpTQ2VsbCosIChWTSosIFN0cnVjdHVyZSopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTmV3UHJvbWlzZSwgSlNDZWxsKiwgKFZNKiwgU3RydWN0dXJlKikpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJbnRlcm5hbFByb21pc2UsIEpT
Q2VsbCosIChWTSosIFN0cnVjdHVyZSopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uTmV3R2VuZXJhdG9yLCBKU0NlbGwqLCAoVk0qLCBTdHJ1Y3R1cmUqKSk7CitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FzeW5jR2VuZXJhdG9yLCBKU0NlbGwqLCAo
Vk0qLCBTdHJ1Y3R1cmUqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5l
d1JlZ2V4cCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKikpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYW5kbGVUcmFwcywgVW51c2VkUHRyLCAoSlNHbG9i
YWxPYmplY3QqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93LCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25EZWJ1Zywgdm9pZCwgKFZNKiwgaW50MzJfdCkpOwogI2lmIEVO
QUJMRShERkdfSklUKQotU2xvd1BhdGhSZXR1cm5UeXBlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
T3B0aW1pemUoVk0qLCB1aW50MzJfdCkgV1RGX0lOVEVSTkFMOwotY2hhciogSklUX09QRVJBVElP
TiBvcGVyYXRpb25UcnlPU1JFbnRlckF0Q2F0Y2goVk0qLCB1aW50MzJfdCkgV1RGX0lOVEVSTkFM
OwotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25UcnlPU1JFbnRlckF0Q2F0Y2hBbmRWYWx1
ZVByb2ZpbGUoVk0qLCB1aW50MzJfdCkgV1RGX0lOVEVSTkFMOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25PcHRpbWl6ZSwgU2xvd1BhdGhSZXR1cm5UeXBlLCAoVk0qLCB1aW50
MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlPU1JFbnRlckF0
Q2F0Y2gsIGNoYXIqLCAoVk0qLCB1aW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25UcnlPU1JFbnRlckF0Q2F0Y2hBbmRWYWx1ZVByb2ZpbGUsIGNoYXIqLCAoVk0q
LCB1aW50MzJfdCkpOwogI2VuZGlmCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJ
bmRleChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBFbmNvZGVkSlNW
YWx1ZSk7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyQnlJZChKU0dsb2Jh
bE9iamVjdCosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCBvcHRpb25zLCBK
U0NlbGwqKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0U2V0
dGVyQnlJZChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50
MzJfdCBvcHRpb25zLCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUHV0R2V0dGVyQnlWYWwoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVk
SlNWYWx1ZSwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKLXZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeVZhbChKU0dsb2JhbE9iamVjdCosIEpT
Q2VsbCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKikgV1RGX0lO
VEVSTkFMOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUluZGV4LCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwgRW5jb2RlZEpT
VmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVyQnlJ
ZCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBp
bnQzMl90IG9wdGlvbnMsIEpTQ2VsbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHV0U2V0dGVyQnlJZCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgVW5p
cXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90IG9wdGlvbnMsIEpTQ2VsbCopKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVyQnlWYWwsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxs
KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRTZXR0ZXJCeVZhbCwg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3Qg
YXR0cmlidXRlLCBKU0NlbGwqKSk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKLXZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBV
bmlxdWVkU3RyaW5nSW1wbCosIGludDMyX3QgYXR0cmlidXRlLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHV0R2V0dGVyU2V0dGVyLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBV
bmlxdWVkU3RyaW5nSW1wbCosIGludDMyX3QgYXR0cmlidXRlLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUpKTsKICNlbHNlCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0
dGVyU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBp
bnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHZvaWQsIChKU0ds
b2JhbE9iamVjdCosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCBhdHRyaWJ1
dGUsIEpTQ2VsbCosIEpTQ2VsbCopKTsKICNlbmRpZgotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblB1c2hGdW5jdGlvbk5hbWVTY29wZShKU0dsb2JhbE9iamVjdCosIGludDMyX3QsIFN5bWJv
bFRhYmxlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLQotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplKEpTR2xvYmFsT2JqZWN0Kiwg
U3RydWN0dXJlU3R1YkluZm8qLCBBcnJheVByb2ZpbGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCkgV1RGX0lOVEVSTkFMOwotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMoSlNHbG9i
YWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEFycmF5UHJvZmlsZSosIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0KSBXVEZfSU5U
RVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRQcm9wZXJ0eSkgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlEZWZhdWx0KEpTR2xvYmFsT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3Jp
cHQsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5R2VuZXJpYyhKU0dsb2JhbE9iamVjdCosIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0
LCBCeVZhbEluZm8qKSBXVEZfSU5URVJOQUw7Ci1zaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRp
b25EZWxldGVCeUlkT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyos
IEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCwgRUNNQU1vZGUpIFdURl9JTlRFUk5BTDsK
LXNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlbGV0ZUJ5SWRHZW5lcmljKEpTR2xvYmFs
T2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRy
X3QsIEVDTUFNb2RlKSBXVEZfSU5URVJOQUw7Ci1zaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRp
b25EZWxldGVCeVZhbE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8q
LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSB0YXJnZXQsIEVDTUFNb2RlKSBX
VEZfSU5URVJOQUw7Ci1zaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWxldGVCeVZhbEdl
bmVyaWMoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVl
IGJhc2UsIEVuY29kZWRKU1ZhbHVlIHRhcmdldCwgRUNNQU1vZGUpIFdURl9JTlRFUk5BTDsKLUpT
Q2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXNoV2l0aFNjb3BlKEpTR2xvYmFsT2JqZWN0
KiwgSlNDZWxsKiBjdXJyZW50U2NvcGVDZWxsLCBFbmNvZGVkSlNWYWx1ZSBvYmplY3QpIFdURl9J
TlRFUk5BTDsKLUpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXNoV2l0aFNjb3BlT2Jq
ZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY3VycmVudFNjb3BlQ2Vs
bCwgSlNPYmplY3QqIG9iamVjdCkgV1RGX0lOVEVSTkFMOwotSlNDZWxsKiBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkdldFBOYW1lcyhKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KikgV1RGX0lOVEVS
TkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25JbnN0YW5jZU9mKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdmFsdWUsIEVuY29kZWRKU1ZhbHVlIHByb3Rv
KSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbklu
c3RhbmNlT2ZHZW5lcmljKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNv
ZGVkSlNWYWx1ZSB2YWx1ZSwgRW5jb2RlZEpTVmFsdWUgcHJvdG8pIFdURl9JTlRFUk5BTDsKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW5zdGFuY2VPZk9wdGltaXplKEpT
R2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwg
RW5jb2RlZEpTVmFsdWUgcHJvdG8pIFdURl9JTlRFUk5BTDsKLWludDMyX3QgSklUX09QRVJBVElP
TiBvcGVyYXRpb25TaXplRnJhbWVGb3JGb3J3YXJkQXJndW1lbnRzKEpTR2xvYmFsT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUgYXJndW1lbnRzLCBpbnQzMl90IG51bVVzZWRTdGFja1Nsb3RzLCBpbnQz
Ml90IGZpcnN0VmFyQXJnT2Zmc2V0KSBXVEZfSU5URVJOQUw7Ci1pbnQzMl90IEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uU2l6ZUZyYW1lRm9yVmFyYXJncyhKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlIGFyZ3VtZW50cywgaW50MzJfdCBudW1Vc2VkU3RhY2tTbG90cywgaW50MzJfdCBmaXJz
dFZhckFyZ09mZnNldCkgV1RGX0lOVEVSTkFMOwotQ2FsbEZyYW1lKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblNldHVwRm9yd2FyZEFyZ3VtZW50c0ZyYW1lKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIGludDMyX3QgbGVuZ3RoKSBXVEZfSU5URVJO
QUw7Ci1DYWxsRnJhbWUqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU2V0dXBWYXJhcmdzRnJhbWUo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMsIGlu
dDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIGludDMyX3QgbGVuZ3RoKSBXVEZfSU5URVJOQUw7Ci0K
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWUoSlNH
bG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRC
YXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkRmllbGROYW1lKSBXVEZfSU5URVJOQUw7Ci1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldFByaXZhdGVOYW1lT3B0aW1pemUo
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkRmllbGROYW1lKSBXVEZfSU5URVJOQUw7Ci0K
LWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3dpdGNoQ2hhcldpdGhVbmtub3duS2V5VHlw
ZShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGtleSwgc2l6ZV90IHRhYmxlSW5kZXgp
IFdURl9JTlRFUk5BTDsKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3dpdGNoSW1tV2l0
aFVua25vd25LZXlUeXBlKFZNKiwgRW5jb2RlZEpTVmFsdWUga2V5LCBzaXplX3QgdGFibGVJbmRl
eCkgV1RGX0lOVEVSTkFMOwotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25Td2l0Y2hTdHJp
bmdXaXRoVW5rbm93bktleVR5cGUoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBrZXks
IHNpemVfdCB0YWJsZUluZGV4KSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkdldEZyb21TY29wZShKU0dsb2JhbE9iamVjdCosIGNvbnN0IEluc3Ry
dWN0aW9uKiBieXRlY29kZVBDKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHV0VG9TY29wZShKU0dsb2JhbE9iamVjdCosIGNvbnN0IEluc3RydWN0aW9uKiBieXRl
Y29kZVBDKSBXVEZfSU5URVJOQUw7Ci0KLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVh
bGxvY2F0ZUJ1dHRlcmZseVRvSGF2ZVByb3BlcnR5U3RvcmFnZVdpdGhJbml0aWFsQ2FwYWNpdHko
Vk0qLCBKU09iamVjdCopIFdURl9JTlRFUk5BTDsKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUmVhbGxvY2F0ZUJ1dHRlcmZseVRvR3Jvd1Byb3BlcnR5U3RvcmFnZShWTSosIEpTT2JqZWN0
Kiwgc2l6ZV90IG5ld1NpemUpIFdURl9JTlRFUk5BTDsKLQotdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbldyaXRlQmFycmllclNsb3dQYXRoKFZNKiwgSlNDZWxsKik7Ci12b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uT1NSV3JpdGVCYXJyaWVyKFZNKiwgSlNDZWxsKik7Ci0KLXZvaWQgSklU
X09QRVJBVElPTiBvcGVyYXRpb25FeGNlcHRpb25GdXp6KEpTR2xvYmFsT2JqZWN0Kik7Ci12b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRXhjZXB0aW9uRnV6eldpdGhDYWxsRnJhbWUoVk0qKTsK
LQotaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNoZWNrSWZFeGNlcHRpb25Jc1VuY2F0
Y2hhYmxlQW5kTm90aWZ5UHJvZmlsZXIoVk0qKTsKLXNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkluc3RhbmNlT2ZDdXN0b20oSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUsIEpTT2JqZWN0KiBjb25zdHJ1Y3RvciwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEhh
c0luc3RhbmNlKSBXVEZfSU5URVJOQUw7Ci0KLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmFsdWVBZGQoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQoSlNHbG9iYWxPYmpl
Y3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ay
LCBCaW5hcnlBcml0aFByb2ZpbGUqKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWRPcHRpbWl6ZShKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIs
IEpJVEFkZElDKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkTm9PcHRpbWl6ZShKU0dsb2JhbE9iamVjdCosIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVEFkZElD
KikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25W
YWx1ZUFkZE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUQWRkSUMqKSBXVEZfSU5URVJOQUw7Ci1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkTm9PcHRpbWl6ZShK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDIsIEpJVEFkZElDKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdURl9JTlRFUk5BTDsK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxPcHRpbWl6ZShK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDIsIEpJVE11bElDKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bE5vT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRN
dWxJQyopIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVmFsdWVNdWxQcm9maWxlZE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUTXVsSUMqKSBXVEZf
SU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVs
UHJvZmlsZWROb09wdGltaXplKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUTXVsSUMqKSBXVEZfSU5URVJOQUw7
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQo
SlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AyLCBCaW5hcnlBcml0aFByb2ZpbGUqKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFyaXRoTmVnYXRlKEpTR2xvYmFsT2JqZWN0
KiwgRW5jb2RlZEpTVmFsdWUgb3BlcmFuZCk7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkFyaXRoTmVnYXRlUHJvZmlsZWQoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNW
YWx1ZSBvcGVyYW5kLCBVbmFyeUFyaXRoUHJvZmlsZSopOwotRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25Bcml0aE5lZ2F0ZVByb2ZpbGVkT3B0aW1pemUoSlNHbG9iYWxPYmpl
Y3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3BlcmFuZCwgSklUTmVnSUMqKTsKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXJpdGhOZWdhdGVPcHRpbWl6ZShKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcGVyYW5kLCBKSVROZWdJQyopOwotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1YihKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIp
IFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFs
dWVTdWJQcm9maWxlZChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEJpbmFyeUFyaXRoUHJvZmlsZSopIFdURl9JTlRF
Uk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVTdWJPcHRp
bWl6ZShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDIsIEpJVFN1YklDKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1Yk5vT3B0aW1pemUoSlNHbG9iYWxPYmpl
Y3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ay
LCBKSVRTdWJJQyopIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmFsdWVTdWJQcm9maWxlZE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUU3ViSUMq
KSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZh
bHVlU3ViUHJvZmlsZWROb09wdGltaXplKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUU3ViSUMqKSBXVEZfSU5U
RVJOQUw7Ci0KLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9jZXNzVHlwZVByb2ZpbGVy
TG9nKFZNKikgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2Nl
c3NTaGFkb3dDaGlja2VuTG9nKFZNKikgV1RGX0lOVEVSTkFMOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXNoRnVuY3Rpb25OYW1lU2NvcGUsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCosIGludDMyX3QsIFN5bWJvbFRhYmxlKiwgRW5jb2RlZEpTVmFsdWUpKTsKKworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBBcnJheVByb2ZpbGUq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNj
cmlwdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbEdlbmVy
aWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyos
IEFycmF5UHJvZmlsZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkU3Vic2NyaXB0KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkdldEJ5VmFsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSkpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlEZWZhdWx0LCBF
bmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJh
c2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyopKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5R2VuZXJpYywg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRC
YXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qKSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlbGV0ZUJ5SWRPcHRpbWl6ZSwgc2l6ZV90
LCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGJh
c2UsIHVpbnRwdHJfdCwgRUNNQU1vZGUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uRGVsZXRlQnlJZEdlbmVyaWMsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QsIEVDTUFNb2RlKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlbGV0ZUJ5VmFsT3B0aW1pemUs
IHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNW
YWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSB0YXJnZXQsIEVDTUFNb2RlKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlbGV0ZUJ5VmFsR2VuZXJpYywgc2l6ZV90LCAoSlNH
bG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVu
Y29kZWRKU1ZhbHVlIHRhcmdldCwgRUNNQU1vZGUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uUHVzaFdpdGhTY29wZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlND
ZWxsKiBjdXJyZW50U2NvcGVDZWxsLCBFbmNvZGVkSlNWYWx1ZSBvYmplY3QpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHVzaFdpdGhTY29wZU9iamVjdCwgSlNDZWxsKiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY3VycmVudFNjb3BlQ2VsbCwg
SlNPYmplY3QqIG9iamVjdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25H
ZXRQTmFtZXMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KikpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnN0YW5jZU9mLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdmFsdWUsIEVuY29kZWRKU1ZhbHVlIHBy
b3RvKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluc3RhbmNlT2ZHZW5l
cmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8q
LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgRW5jb2RlZEpTVmFsdWUgcHJvdG8pKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5zdGFuY2VPZk9wdGltaXplLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1
ZSB2YWx1ZSwgRW5jb2RlZEpTVmFsdWUgcHJvdG8pKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uU2l6ZUZyYW1lRm9yRm9yd2FyZEFyZ3VtZW50cywgaW50MzJfdCwgKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgYXJndW1lbnRzLCBpbnQzMl90IG51bVVzZWRTdGFj
a1Nsb3RzLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0KSk7CitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblNpemVGcmFtZUZvclZhcmFyZ3MsIGludDMyX3QsIChKU0dsb2JhbE9i
amVjdCosIEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50cywgaW50MzJfdCBudW1Vc2VkU3RhY2tTbG90
cywgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25TZXR1cEZvcndhcmRBcmd1bWVudHNGcmFtZSwgQ2FsbEZyYW1lKiwgKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIGludDMyX3Qg
bGVuZ3RoKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldHVwVmFyYXJn
c0ZyYW1lLCBDYWxsRnJhbWUqLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqLCBFbmNvZGVk
SlNWYWx1ZSBhcmd1bWVudHMsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIGludDMyX3QgbGVu
Z3RoKSk7CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0ZU5h
bWUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyos
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkRmllbGRO
YW1lKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVOYW1l
T3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHVi
SW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
RmllbGROYW1lKSk7CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNo
Q2hhcldpdGhVbmtub3duS2V5VHlwZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlIGtleSwgc2l6ZV90IHRhYmxlSW5kZXgpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uU3dpdGNoSW1tV2l0aFVua25vd25LZXlUeXBlLCBjaGFyKiwgKFZNKiwgRW5j
b2RlZEpTVmFsdWUga2V5LCBzaXplX3QgdGFibGVJbmRleCkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Td2l0Y2hTdHJpbmdXaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAo
SlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBrZXksIHNpemVfdCB0YWJsZUluZGV4KSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEZyb21TY29wZSwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIGNvbnN0IEluc3RydWN0aW9uKiBieXRlY29kZVBD
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dFRvU2NvcGUsIHZvaWQs
IChKU0dsb2JhbE9iamVjdCosIGNvbnN0IEluc3RydWN0aW9uKiBieXRlY29kZVBDKSk7CisKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVhbGxvY2F0ZUJ1dHRlcmZseVRvSGF2
ZVByb3BlcnR5U3RvcmFnZVdpdGhJbml0aWFsQ2FwYWNpdHksIGNoYXIqLCAoVk0qLCBKU09iamVj
dCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVhbGxvY2F0ZUJ1dHRl
cmZseVRvR3Jvd1Byb3BlcnR5U3RvcmFnZSwgY2hhciosIChWTSosIEpTT2JqZWN0Kiwgc2l6ZV90
IG5ld1NpemUpKTsKKworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Xcml0ZUJh
cnJpZXJTbG93UGF0aCwgdm9pZCwgKFZNKiwgSlNDZWxsKikpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25PU1JXcml0ZUJhcnJpZXIsIHZvaWQsIChWTSosIEpTQ2VsbCopKTsK
KworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FeGNlcHRpb25GdXp6LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkV4Y2VwdGlvbkZ1enpXaXRoQ2FsbEZyYW1lLCB2b2lkLCAoVk0qKSk7CisKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ2hlY2tJZkV4Y2VwdGlvbklzVW5jYXRjaGFibGVBbmRO
b3RpZnlQcm9maWxlciwgaW50MzJfdCwgKFZNKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25JbnN0YW5jZU9mQ3VzdG9tLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgSlNPYmplY3QqIGNvbnN0cnVjdG9yLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkSGFzSW5zdGFuY2UpKTsKKworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25WYWx1ZUFkZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZCwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEJpbmFyeUFyaXRoUHJvZmlsZSopKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZE9wdGltaXplLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUQWRkSUMqKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWROb09wdGltaXplLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUQWRkSUMqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblZhbHVlQWRkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
YmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AyLCBKSVRBZGRJQyopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFs
dWVBZGROb09wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUQWRkSUMq
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlTXVsLCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25WYWx1ZU11bE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklU
TXVsSUMqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZhbHVlTXVsTm9P
cHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVE11bElDKikpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkT3B0aW1pemUs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRNdWxJQyopKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZE5vT3B0aW1pemUsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRNdWxJQyopKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZCwgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDIsIEJpbmFyeUFyaXRoUHJvZmlsZSopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQXJpdGhOZWdhdGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkFyaXRoTmVnYXRlUHJvZmlsZWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqLCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kLCBVbmFyeUFyaXRoUHJvZmlsZSopKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJpdGhOZWdhdGVQcm9maWxlZE9wdGltaXpl
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wZXJhbmQsIEpJVE5lZ0lDKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Bcml0aE5lZ2F0ZU9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wZXJhbmQsIEpJVE5lZ0lDKikpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZVN1YiwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVTdWJQcm9m
aWxlZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEJpbmFyeUFyaXRoUHJvZmlsZSop
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVTdWJPcHRpbWl6ZSwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVFN1YklDKikpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZVN1Yk5vT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AyLCBKSVRTdWJJQyopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uVmFsdWVTdWJQcm9maWxlZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMiwgSklUU3ViSUMqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blZhbHVlU3ViUHJvZmlsZWROb09wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MiwgSklUU3ViSUMqKSk7CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHJv
Y2Vzc1R5cGVQcm9maWxlckxvZywgdm9pZCwgKFZNKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Qcm9jZXNzU2hhZG93Q2hpY2tlbkxvZywgdm9pZCwgKFZNKikpOwogCiB9
IC8vIGV4dGVybiAiQyIKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCBkMGE0OGYzMzhlZjlkYTM0
NWFiNjhjNTJkYWExYTYwZGY3OGQ2MmM1Li5kNTg5NmI5NTIyODViNzVlYTdhMmJlYTFlN2RjMTdm
MTgwZDQxMDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtNDU1LDEyICs0NTUsMTcgQEAgc3Rh
dGljIGlubGluZSBTdHJpbmcgc3RyaW5nRnJvbVVURihjb25zdCBWZWN0b3ImIHV0ZjgpCiAgICAg
cmV0dXJuIFN0cmluZzo6ZnJvbVVURjhXaXRoTGF0aW4xRmFsbGJhY2sodXRmOC5kYXRhKCksIHV0
Zjguc2l6ZSgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gYWNj
ZXNzb3JNYWtlTWFzcXVlcmFkZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGFjY2Vzc29yTWFrZU1hc3F1ZXJhZGVyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHRlc3RDdXN0b21BY2Nlc3NvclNldHRlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9N
X1NFVFRFUih0ZXN0Q3VzdG9tVmFsdWVTZXR0ZXIpOworCitKU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIoYWNjZXNzb3JNYWtlTWFzcXVlcmFkZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShJbnRlcm5hbEZ1bmN0aW9u
OjpjcmVhdGVGdW5jdGlvblRoYXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkKHZtLCBnbG9iYWxPYmpl
Y3QsIDAsICJJc0hUTUxEREEiX3MsIGZ1bmN0aW9uQ2FsbE1hc3F1ZXJhZGVyKSk7CiB9CiAKKwog
Y2xhc3MgR2xvYmFsT2JqZWN0IGZpbmFsIDogcHVibGljIEpTR2xvYmFsT2JqZWN0IHsKIHB1Ymxp
YzoKICAgICB1c2luZyBCYXNlID0gSlNHbG9iYWxPYmplY3Q7CkBAIC02NTgsNiArNjYzLDcgQEAg
Y2xhc3MgR2xvYmFsT2JqZWN0IGZpbmFsIDogcHVibGljIEpTR2xvYmFsT2JqZWN0IHsKICAgICAg
ICAgfQogICAgIH0KIAorcHVibGljOgogICAgIHN0YXRpYyBib29sIHRlc3RDdXN0b21TZXR0ZXJJ
bXBsKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBHbG9iYWxPYmplY3QqIHRo
aXNPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgY29uc3QgY2hhciogcHJvcGVy
dHlOYW1lKQogICAgIHsKICAgICAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0o
KTsKQEAgLTY2OCwyNyArNjc0LDcgQEAgY2xhc3MgR2xvYmFsT2JqZWN0IGZpbmFsIDogcHVibGlj
IEpTR2xvYmFsT2JqZWN0IHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgc3Rh
dGljIGJvb2wgSklUX09QRVJBVElPTiB0ZXN0Q3VzdG9tQWNjZXNzb3JTZXR0ZXIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQotICAgIHsKLSAgICAgICAgVk0mIHZtID0gbGV4aWNh
bEdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQoSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkuaXNDZWxsKCkpOwotICAgICAgICBKU0NlbGwqIHRoaXNDZWxsID0gSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkuYXNDZWxsKCk7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJU
KHRoaXNDZWxsLT50eXBlKCkgPT0gUHVyZUZvcndhcmRpbmdQcm94eVR5cGUpOwotICAgICAgICBH
bG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PEdsb2JhbE9iamVjdCo+KHZt
LCBqc0Nhc3Q8SlNQcm94eSo+KHRoaXNDZWxsKS0+dGFyZ2V0KCkpOwotICAgICAgICBSRUxFQVNF
X0FTU0VSVCh0aGlzT2JqZWN0KTsKLSAgICAgICAgcmV0dXJuIHRlc3RDdXN0b21TZXR0ZXJJbXBs
KGxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3QsIGVuY29kZWRWYWx1ZSwgIl90ZXN0Q3Vz
dG9tQWNjZXNzb3JTZXR0ZXIiKTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgYm9vbCBKSVRfT1BFUkFU
SU9OIHRlc3RDdXN0b21WYWx1ZVNldHRlcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCi0gICAgewotICAgICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOwot
ICAgICAgICBSRUxFQVNFX0FTU0VSVChKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKS5pc0NlbGwo
KSk7Ci0gICAgICAgIEpTQ2VsbCogdGhpc0NlbGwgPSBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KS5hc0NlbGwoKTsKLSAgICAgICAgR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNEeW5hbWlj
Q2FzdDxHbG9iYWxPYmplY3QqPih2bSwgdGhpc0NlbGwpOwotICAgICAgICBSRUxFQVNFX0FTU0VS
VCh0aGlzT2JqZWN0KTsKLSAgICAgICAgcmV0dXJuIHRlc3RDdXN0b21TZXR0ZXJJbXBsKGxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3QsIGVuY29kZWRWYWx1ZSwgIl90ZXN0Q3VzdG9tVmFs
dWVTZXR0ZXIiKTsKLSAgICB9Ci0gICAgCitwcml2YXRlOgogICAgIHZvaWQgYWRkRnVuY3Rpb24o
Vk0mIHZtLCBKU09iamVjdCogb2JqZWN0LCBjb25zdCBjaGFyKiBuYW1lLCBOYXRpdmVGdW5jdGlv
biBmdW5jdGlvbiwgdW5zaWduZWQgYXJndW1lbnRzKQogICAgIHsKICAgICAgICAgSWRlbnRpZmll
ciBpZGVudGlmaWVyID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgbmFtZSk7CkBAIC03Mzks
NiArNzI1LDI3IEBAIEdsb2JhbE9iamVjdDo6R2xvYmFsT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCiB7CiB9CiAKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUih0ZXN0Q3VzdG9t
QWNjZXNzb3JTZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorewor
ICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7CisgICAgUkVMRUFTRV9BU1NF
UlQoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkuaXNDZWxsKCkpOworICAgIEpTQ2VsbCogdGhp
c0NlbGwgPSBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKS5hc0NlbGwoKTsKKyAgICBSRUxFQVNF
X0FTU0VSVCh0aGlzQ2VsbC0+dHlwZSgpID09IFB1cmVGb3J3YXJkaW5nUHJveHlUeXBlKTsKKyAg
ICBHbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PEdsb2JhbE9iamVjdCo+
KHZtLCBqc0Nhc3Q8SlNQcm94eSo+KHRoaXNDZWxsKS0+dGFyZ2V0KCkpOworICAgIFJFTEVBU0Vf
QVNTRVJUKHRoaXNPYmplY3QpOworICAgIHJldHVybiBHbG9iYWxPYmplY3Q6OnRlc3RDdXN0b21T
ZXR0ZXJJbXBsKGxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3QsIGVuY29kZWRWYWx1ZSwg
Il90ZXN0Q3VzdG9tQWNjZXNzb3JTZXR0ZXIiKTsKK30KKworSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHRlc3RDdXN0b21WYWx1ZVNldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCit7CisgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBS
RUxFQVNFX0FTU0VSVChKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKS5pc0NlbGwoKSk7CisgICAg
SlNDZWxsKiB0aGlzQ2VsbCA9IEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpLmFzQ2VsbCgpOwor
ICAgIEdsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8R2xvYmFsT2JqZWN0
Kj4odm0sIHRoaXNDZWxsKTsKKyAgICBSRUxFQVNFX0FTU0VSVCh0aGlzT2JqZWN0KTsKKyAgICBy
ZXR1cm4gR2xvYmFsT2JqZWN0Ojp0ZXN0Q3VzdG9tU2V0dGVySW1wbChsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzT2JqZWN0LCBlbmNvZGVkVmFsdWUsICJfdGVzdEN1c3RvbVZhbHVlU2V0dGVyIik7
Cit9CisKIHN0YXRpYyBVQ2hhciBwYXRoU2VwYXJhdG9yKCkKIHsKICNpZiBPUyhXSU5ET1dTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXRvbWljc09iamVjdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BdG9taWNzT2JqZWN0LmNwcAppbmRl
eCBkZjYzY2E0Y2U4ZDQ1ZjRmZDhmYTA1NmViZDRkM2NjZDFjNGY4ODQxLi45ZmYzM2E0YjFhNzdi
Y2I5MjI4ODdiZDA4OTJmZTg5N2FiZjcwMWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BdG9taWNzT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BdG9taWNzT2JqZWN0LmNwcApAQCAtNDY2LDcgKzQ2Niw3IEBAIEpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihhdG9taWNzRnVuY1hvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtCiAKIElHTk9SRV9XQVJOSU5HU19CRUdJTigiZnJhbWUtYWRkcmVzcyIp
CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXRvbWljc0FkZChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNW
YWx1ZSBpbmRleCwgRW5jb2RlZEpTVmFsdWUgb3BlcmFuZCkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25BdG9taWNzQWRkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGluZGV4
LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtNDc1LDcgKzQ3NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uQXRvbWljc0FkZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFCiAgICAgcmV0dXJu
IGF0b21pY09wZXJhdGlvbldpdGhBcmdzKHZtLCBnbG9iYWxPYmplY3QsIGFyZ3MsIEFkZEZ1bmMo
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXRvbWljc0Fu
ZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNv
ZGVkSlNWYWx1ZSBpbmRleCwgRW5jb2RlZEpTVmFsdWUgb3BlcmFuZCkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzQW5kLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVl
IGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwpAQCAtNDg0LDcgKzQ4NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uQXRvbWljc0FuZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFCiAgICAg
cmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzKHZtLCBnbG9iYWxPYmplY3QsIGFyZ3MsIEFu
ZEZ1bmMoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXRv
bWljc0NvbXBhcmVFeGNoYW5nZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZXhwZWN0
ZWQsIEVuY29kZWRKU1ZhbHVlIG5ld1ZhbHVlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkF0b21pY3NDb21wYXJlRXhjaGFuZ2UsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUg
aW5kZXgsIEVuY29kZWRKU1ZhbHVlIGV4cGVjdGVkLCBFbmNvZGVkSlNWYWx1ZSBuZXdWYWx1ZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTQ5Myw3ICs0OTMsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkF0b21pY3NDb21wYXJlRXhjaGFuZ2Uo
SlNHbG9iYWxPYmplY3QqIGdsbwogICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyh2
bSwgZ2xvYmFsT2JqZWN0LCBhcmdzLCBDb21wYXJlRXhjaGFuZ2VGdW5jKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkF0b21pY3NFeGNoYW5nZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1
ZSBpbmRleCwgRW5jb2RlZEpTVmFsdWUgb3BlcmFuZCkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25BdG9taWNzRXhjaGFuZ2UsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgaW5k
ZXgsIEVuY29kZWRKU1ZhbHVlIG9wZXJhbmQpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC01MDIsNyArNTAyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25BdG9taWNzRXhjaGFuZ2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICByZXR1
cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3Modm0sIGdsb2JhbE9iamVjdCwgYXJncywgRXhjaGFu
Z2VGdW5jKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkF0
b21pY3NJc0xvY2tGcmVlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHNpemUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWljc0lzTG9j
a0ZyZWUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgc2l6ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTUx
MCw3ICs1MTAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkF0b21p
Y3NJc0xvY2tGcmVlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiBpc0xvY2tG
cmVlKGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKHNpemUpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25BdG9taWNzTG9hZChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBpbmRleCkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzTG9hZCwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNl
LCBFbmNvZGVkSlNWYWx1ZSBpbmRleCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
QEAgLTUxOSw3ICs1MTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkF0b21pY3NMb2FkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIGF0
b21pY09wZXJhdGlvbldpdGhBcmdzKHZtLCBnbG9iYWxPYmplY3QsIGFyZ3MsIExvYWRGdW5jKCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkF0b21pY3NPcihK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVk
SlNWYWx1ZSBpbmRleCwgRW5jb2RlZEpTVmFsdWUgb3BlcmFuZCkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25BdG9taWNzT3IsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgaW5k
ZXgsIEVuY29kZWRKU1ZhbHVlIG9wZXJhbmQpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC01MjgsNyArNTI4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25BdG9taWNzT3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW4KICAgICByZXR1
cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3Modm0sIGdsb2JhbE9iamVjdCwgYXJncywgT3JGdW5j
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkF0b21pY3NT
dG9yZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBF
bmNvZGVkSlNWYWx1ZSBpbmRleCwgRW5jb2RlZEpTVmFsdWUgb3BlcmFuZCkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzU3RvcmUsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpT
VmFsdWUgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIG9wZXJhbmQpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC01MzcsNyArNTM3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25BdG9taWNzU3RvcmUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwK
ICAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3Modm0sIGdsb2JhbE9iamVjdCwgYXJn
cywgU3RvcmVGdW5jKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkF0b21pY3NTdWIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIG9wZXJhbmQpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWljc1N1YiwgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBF
bmNvZGVkSlNWYWx1ZSBpbmRleCwgRW5jb2RlZEpTVmFsdWUgb3BlcmFuZCkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTU0Niw3ICs1NDYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkF0b21pY3NTdWIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRQogICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyh2bSwgZ2xvYmFsT2Jq
ZWN0LCBhcmdzLCBTdWJGdW5jKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkF0b21pY3NYb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIG9wZXJh
bmQpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWljc1hvciwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBi
YXNlLCBFbmNvZGVkSlNWYWx1ZSBpbmRleCwgRW5jb2RlZEpTVmFsdWUgb3BlcmFuZCkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0F0b21pY3NPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0F0b21pY3NPYmplY3QuaAppbmRleCAwODZmNWVkZjM2MTkxYzM1NjE4MDY1NjBkMzFiYmEy
MjZkNDA3NzQ2Li41YThiZWY5NGY2MTAxOWU1NjZhOGYwNWY0YzM0NzhkMmRiOWViZTFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BdG9taWNzT2JqZWN0LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXRvbWljc09iamVjdC5oCkBAIC01MSwx
NiArNTEsMTYgQEAgY2xhc3MgQXRvbWljc09iamVjdCBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFs
T2JqZWN0IHsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsK
IH07CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXRvbWljc0FkZChK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGluZGV4
LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kKTsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uQXRvbWljc0FuZChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGJhc2Us
IEVuY29kZWRKU1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kKTsKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXRvbWljc0NvbXBhcmVFeGNoYW5nZShKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGluZGV4LCBF
bmNvZGVkSlNWYWx1ZSBleHBlY3RlZCwgRW5jb2RlZEpTVmFsdWUgbmV3VmFsdWUpOwotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25BdG9taWNzRXhjaGFuZ2UoSlNHbG9iYWxP
YmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBpbmRleCwgRW5jb2Rl
ZEpTVmFsdWUgb3BlcmFuZCk7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkF0b21pY3NJc0xvY2tGcmVlKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgc2l6ZSk7
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkF0b21pY3NMb2FkKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgaW5kZXgpOwot
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25BdG9taWNzT3IoSlNHbG9iYWxP
YmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBpbmRleCwgRW5jb2Rl
ZEpTVmFsdWUgb3BlcmFuZCk7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkF0b21pY3NTdG9yZShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29k
ZWRKU1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kKTsKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXRvbWljc1N1YihKU0dsb2JhbE9iamVjdCosIEVuY29k
ZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBvcGVy
YW5kKTsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQXRvbWljc1hvcihK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGluZGV4
LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQXRvbWljc0FkZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29k
ZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBvcGVy
YW5kKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkF0b21pY3NBbmQsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNv
ZGVkSlNWYWx1ZSBpbmRleCwgRW5jb2RlZEpTVmFsdWUgb3BlcmFuZCkpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzQ29tcGFyZUV4Y2hhbmdlLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFs
dWUgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGV4cGVjdGVkLCBFbmNvZGVkSlNWYWx1ZSBuZXdWYWx1
ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzRXhjaGFuZ2Us
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBF
bmNvZGVkSlNWYWx1ZSBpbmRleCwgRW5jb2RlZEpTVmFsdWUgb3BlcmFuZCkpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzSXNMb2NrRnJlZSwgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIHNpemUpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWljc0xvYWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBpbmRleCkp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BdG9taWNzT3IsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNW
YWx1ZSBpbmRleCwgRW5jb2RlZEpTVmFsdWUgb3BlcmFuZCkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25BdG9taWNzU3RvcmUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
YmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBpbmRleCwgRW5jb2Rl
ZEpTVmFsdWUgb3BlcmFuZCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25B
dG9taWNzU3ViLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIG9wZXJhbmQpKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXRvbWljc1hvciwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1Zh
bHVlIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBvcGVyYW5kKSk7CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9u
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCmluZGV4
IDJhMDA4ODU1OTYwNmY4MTQzZWJmYmRhYzRjODM1YjE3OGY1NDc5OGEuLjMxZGQ4NzMyZTllMmU5
ZGNhNDE3ZWZhOWY5YTQwOGIwMDcwMzk2YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC01Miw2ICs1Miw5IEBAIEpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPCiAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVh
dGVOb3RBQ29uc3RydWN0b3JFcnJvcihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+anNDYWxsZWUo
KSkpOwogfQogCitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihhcmd1bWVudHNHZXR0
ZXIpOworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoY2FsbGVyR2V0dGVyKTsKKwog
Y29uc3QgQ2xhc3NJbmZvIEpTRnVuY3Rpb246OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6
OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0Z1bmN0aW9u
KSB9OwogY29uc3QgQ2xhc3NJbmZvIEpTU3RyaWN0RnVuY3Rpb246OnNfaW5mbyA9IHsgIkZ1bmN0
aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJM
RShKU1N0cmljdEZ1bmN0aW9uKSB9OwogY29uc3QgQ2xhc3NJbmZvIEpTU2xvcHB5RnVuY3Rpb246
OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU1Nsb3BweUZ1bmN0aW9uKSB9OwpAQCAtMzE0LDcgKzMxNyw3
IEBAIHN0YXRpYyBKU1ZhbHVlIHJldHJpZXZlQXJndW1lbnRzKFZNJiB2bSwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUsIEpTRnVuY3Rpb24qIGZ1bmN0CiAgICAgcmV0dXJuIGZ1bmN0b3IucmVzdWx0KCk7
CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGFyZ3VtZW50c0dldHRl
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihhcmd1bWVudHNHZXR0ZXIs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IEpTRnVuY3Rpb24qIHRoaXNPYmogPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKQEAgLTM3NCw3ICszNzcsNyBAQCBzdGF0aWMgSlNWYWx1ZSByZXRyaWV2
ZUNhbGxlckZ1bmN0aW9uKFZNJiB2bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTRnVuY3Rpb24q
CiAgICAgcmV0dXJuIGZ1bmN0b3IucmVzdWx0KCk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGNhbGxlckdldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihjYWxsZXJHZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVy
aWNUeXBlZEFycmF5Vmlldy5oCmluZGV4IGJkZTRjYzIzOTYwNzM4MDVmZjY5YzVlN2U5NDM0N2U4
NmY5ZGEwNmQuLmE1Zjc3YjI2NzM1MGRhZTg2Y2EyYTRiMmZjZjI1MTZiMzI4MGJjNDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlW
aWV3LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRB
cnJheVZpZXcuaApAQCAtODgsNyArODgsOSBAQCBlbnVtIGNsYXNzIENvcHlUeXBlIHsKICAgICBV
bm9ic2VydmFibGUsCiB9OwogCi1zdGF0aWMgY29uc3QgQVNDSUlMaXRlcmFsIHR5cGVkQXJyYXlC
dWZmZXJIYXNCZWVuRGV0YWNoZWRFcnJvck1lc3NhZ2UgeyAiVW5kZXJseWluZyBBcnJheUJ1ZmZl
ciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3Il9zIH07CitleHRlcm4gY29uc3QgQVND
SUlMaXRlcmFsIHR5cGVkQXJyYXlCdWZmZXJIYXNCZWVuRGV0YWNoZWRFcnJvck1lc3NhZ2U7CisK
K0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIodGhyb3dOZXV0ZXJlZFR5cGVkQXJyYXlUeXBlRXJy
b3IpOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBBZGFwdG9yPgogY2xhc3MgSlNHZW5lcmljVHlwZWRB
cnJheVZpZXcgZmluYWwgOiBwdWJsaWMgSlNBcnJheUJ1ZmZlclZpZXcgewpAQCAtMjk4LDggKzMw
MCw2IEBAIGNsYXNzIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3IGZpbmFsIDogcHVibGljIEpTQXJy
YXlCdWZmZXJWaWV3IHsKIAogICAgIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3KFZNJiwgQ29uc3Ry
dWN0aW9uQ29udGV4dCYpOwogCi0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHRocm93TmV1dGVy
ZWRUeXBlZEFycmF5VHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFBy
b3BlcnR5TmFtZSk7Ci0KICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmpl
Y3QqLCBKU0dsb2JhbE9iamVjdCosIFByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAg
c3RhdGljIGJvb2wgcHV0KEpTQ2VsbCosIEpTR2xvYmFsT2JqZWN0KiwgUHJvcGVydHlOYW1lLCBK
U1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBkZWZpbmVPd25Qcm9w
ZXJ0eShKU09iamVjdCosIEpTR2xvYmFsT2JqZWN0KiwgUHJvcGVydHlOYW1lLCBjb25zdCBQcm9w
ZXJ0eURlc2NyaXB0b3ImLCBib29sIHNob3VsZFRocm93KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdJbmxp
bmVzLmgKaW5kZXggMDE5MjIwYzQ1NTFmMTM0NDA1YjRmMTJmOTI1YjZkYWY5YzQ1NmIwOC4uMjY5
MGRhNjlmZjVhYjJmMDRmYzE5M2U5ZTk1NDIwOTA1NmQ0MDJmMyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZp
ZXdJbmxpbmVzLmgKQEAgLTMzMCwxNSArMzMwLDYgQEAgQXJyYXlCdWZmZXIqIEpTR2VuZXJpY1R5
cGVkQXJyYXlWaWV3PEFkYXB0b3I+OjpleGlzdGluZ0J1ZmZlcigpCiAgICAgcmV0dXJuIGV4aXN0
aW5nQnVmZmVySW5CdXR0ZXJmbHkoKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgQWRhcHRvcj4K
LUVuY29kZWRKU1ZhbHVlIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+Ojp0aHJvd05l
dXRlcmVkVHlwZWRBcnJheVR5cGVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSBvYmplY3QsIFByb3BlcnR5TmFtZSkKLXsKLSAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwotICAgIEFTU0VSVF9VTlVTRUQob2JqZWN0LCBqc0Nhc3Q8SlNHZW5lcmljVHlwZWRBcnJheVZp
ZXcqPihKU1ZhbHVlOjpkZWNvZGUob2JqZWN0KSktPmlzTmV1dGVyZWQoKSk7Ci0gICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdHlwZWRBcnJheUJ1ZmZlckhh
c0JlZW5EZXRhY2hlZEVycm9yTWVzc2FnZSk7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIEFkYXB0
b3I+CiBib29sIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+OjpnZXRPd25Qcm9wZXJ0
eVNsb3QoCiAgICAgSlNPYmplY3QqIG9iamVjdCwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5cy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlzLmNwcAppbmRleCBmYmQ5
MzYxZDdjM2I3ZGIzOWYxYzljNGQ0NTVhMTczMTkzZWE4NzNkLi45Njk1ZWIwOTVkZDFhMDMzZTBh
MzM1MWQ1MWNkNjcwZjUzNzQ1ODczIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1R5cGVkQXJyYXlzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1R5cGVkQXJyYXlzLmNwcApAQCAtMzMsNiArMzMsOCBAQAogCiBuYW1lc3BhY2UgSlND
IHsKIAorY29uc3QgQVNDSUlMaXRlcmFsIHR5cGVkQXJyYXlCdWZmZXJIYXNCZWVuRGV0YWNoZWRF
cnJvck1lc3NhZ2UgeyAiVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBm
cm9tIHRoZSB2aWV3Il9zIH07CisKICNkZWZpbmUgTUFLRV9DT05TVFJVQ1RPUlMoQ2xhc3MpIFwK
ICAgICBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbCMjQ2xhc3MsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpIHsgXAogICAgICAgICByZXR1
cm4gY2FsbEdlbmVyaWNUeXBlZEFycmF5Vmlld0ltcGw8SlMjI0NsYXNzPihnbG9iYWxPYmplY3Qs
IGNhbGxGcmFtZSk7IFwKQEAgLTYyLDUgKzY0LDEzIEBAIE1BS0VfU19JTkZPKEZsb2F0NjQpOwog
CiBNQUtFX0NPTlNUUlVDVE9SUyhEYXRhVmlldyk7CiAKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uih0aHJvd05ldXRlcmVkVHlwZWRBcnJheVR5cGVFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIG9iamVjdCwgUHJvcGVydHlOYW1lKSkKK3sKKyAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOworICAgIEFTU0VSVF9VTlVTRUQob2JqZWN0LCBqc0Nhc3Q8SlNBcnJheUJ1
ZmZlclZpZXcqPihKU1ZhbHVlOjpkZWNvZGUob2JqZWN0KSktPmlzTmV1dGVyZWQoKSk7CisgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdHlwZWRBcnJheUJ1
ZmZlckhhc0JlZW5EZXRhY2hlZEVycm9yTWVzc2FnZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpT
QwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCmluZGV4IGFhODA2MjNjOTUx
NTI3YzU5ZDIyMzhkMGE0M2FmZjdiYmQ1YjY3M2QuLjVjODM0ZGY2NGM1ZDExMTA4ZTI4MWIzZTE3
NWJiY2NkZTYwYzM5YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0xvb2t1cC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCkBA
IC00MDUsNyArNDA1LDcgQEAgaW5saW5lIHZvaWQgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKFZNJiB2
bSwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8sIGNvbnN0IEhhc2gKICAgICB9CiB9CiAKLXRl
bXBsYXRlPFJhd05hdGl2ZUZ1bmN0aW9uIG5hdGl2ZUZ1bmN0aW9uLCBpbnQgbGVuZ3RoPiBFbmNv
ZGVkSlNWYWx1ZSBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXIoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUp
Cit0ZW1wbGF0ZTxSYXdOYXRpdmVGdW5jdGlvbiBuYXRpdmVGdW5jdGlvbiwgaW50IGxlbmd0aD4g
RW5jb2RlZEpTVmFsdWUgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVySW1wbChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNGdW5jdGlvbjo6Y3JlYXRlKGdsb2JhbE9iamVjdC0+
dm0oKSwgZ2xvYmFsT2JqZWN0LCBsZW5ndGgsIHByb3BlcnR5TmFtZS5wdWJsaWNOYW1lKCksIG5h
dGl2ZUZ1bmN0aW9uKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9NYXRoQ29tbW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhD
b21tb24uY3BwCmluZGV4IDliYjVkMGVjMTYwMzQ3YTRhOTE3ZTkwNWE3ZWU0Y2I1YmU3Yzg3OTEu
LmVhNDYwNDE5NzM3MDZiYzZmMTRhY2VlMzQxMWQzYThkMGM4Mzk4Y2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhDb21tb24uY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhDb21tb24uY3BwCkBAIC00MTAsNyArNDEwLDcgQEAg
QUxXQVlTX0lOTElORSBkb3VibGUgbWF0aFBvd0ludGVybmFsKGRvdWJsZSB4LCBkb3VibGUgeSkK
IAogI2VuZGlmCiAKLWRvdWJsZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk1hdGhQb3coZG91Ymxl
IHgsIGRvdWJsZSB5KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hdGhQb3cs
IGRvdWJsZSwgKGRvdWJsZSB4LCBkb3VibGUgeSkpCiB7CiAgICAgaWYgKHN0ZDo6aXNuYW4oeSkp
CiAgICAgICAgIHJldHVybiBQTmFOOwpAQCAtNDUwLDEyICs0NTAsMTIgQEAgZG91YmxlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uTWF0aFBvdyhkb3VibGUgeCwgZG91YmxlIHkpCiAgICAgcmV0dXJu
IG1hdGhQb3dJbnRlcm5hbCh4LCB5KTsKIH0KIAotVUNQVVN0cmljdEludDMyIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVG9JbnQzMihkb3VibGUgdmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uVG9JbnQzMiwgVUNQVVN0cmljdEludDMyLCAoZG91YmxlIHZhbHVlKSkKIHsK
ICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIoSlNDOjp0b0ludDMyKHZhbHVlKSk7CiB9CiAK
LVVDUFVTdHJpY3RJbnQzMiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvSW50MzJTZW5zaWJsZVNs
b3coZG91YmxlIG51bWJlcikKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub0lu
dDMyU2Vuc2libGVTbG93LCBVQ1BVU3RyaWN0SW50MzIsIChkb3VibGUgbnVtYmVyKSkKIHsKICAg
ICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIodG9JbnQzMkludGVybmFsPFRvSW50MzJNb2RlOjpB
ZnRlclNlbnNpYmxlQ29udmVyc2lvbkF0dGVtcHQ+KG51bWJlcikpOwogfQpAQCAtNTExLDcgKzUx
MSw3IEBAIGRvdWJsZSBqc01vZChkb3VibGUgeCwgZG91YmxlIHkpCiAKIG5hbWVzcGFjZSBNYXRo
IHsKIAotZG91YmxlIEpJVF9PUEVSQVRJT04gbG9nMXAoZG91YmxlIHZhbHVlKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKGxvZzFwLCBkb3VibGUsIChkb3VibGUgdmFsdWUpKQogewogICAgIGlm
ICh2YWx1ZSA9PSAwLjApCiAgICAgICAgIHJldHVybiB2YWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhDb21tb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL01hdGhDb21tb24uaAppbmRleCBkNTE2Y2NlMTk2MDk1OTUzYjVmNWYzZDI3
ZGI5MGE2MWUyZDczZTRlLi41MDRhOTQxZGYzMTNhNTMyYjRiMzliYjJmNTBhMjQ0NDIxMjcwNDRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoQ29tbW9uLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aENvbW1vbi5oCkBAIC0zMiw5
ICszMiw5IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgaW50MzJfdCBtYXhFeHBvbmVudEZv
ckludGVnZXJNYXRoUG93ID0gMTAwMDsKLWRvdWJsZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk1h
dGhQb3coZG91YmxlIHgsIGRvdWJsZSB5KSBXVEZfSU5URVJOQUw7Ci1VQ1BVU3RyaWN0SW50MzIg
SklUX09QRVJBVElPTiBvcGVyYXRpb25Ub0ludDMyKGRvdWJsZSkgV1RGX0lOVEVSTkFMOwotVUNQ
VVN0cmljdEludDMyIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9JbnQzMlNlbnNpYmxlU2xvdyhk
b3VibGUpIFdURl9JTlRFUk5BTDsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TWF0aFBvdywgZG91YmxlLCAoZG91YmxlIHgsIGRvdWJsZSB5KSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblRvSW50MzIsIFVDUFVTdHJpY3RJbnQzMiwgKGRvdWJsZSkpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub0ludDMyU2Vuc2libGVTbG93LCBV
Q1BVU3RyaWN0SW50MzIsIChkb3VibGUpKTsKIAogY29uc3RleHByIGRvdWJsZSBtYXhTYWZlSW50
ZWdlcigpCiB7CkBAIC0yMjAsMTIgKzIyMCwxMiBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgY2FuQmVJ
bnQzMihkb3VibGUgdmFsdWUpCiB9CiAKIGV4dGVybiAiQyIgewotZG91YmxlIEpJVF9PUEVSQVRJ
T04ganNSb3VuZChkb3VibGUgdmFsdWUpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFM
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihqc1JvdW5kLCBkb3VibGUsIChkb3VibGUpKTsK
IAogLy8gT24gV2luZG93cyB3ZSBuZWVkIHRvIHdyYXAgZm1vZDsgb24gb3RoZXIgcGxhdGZvcm1z
IHdlIGNhbiBjYWxsIGl0IGRpcmVjdGx5LgogLy8gT24gQVJNdjcgd2UgYXNzZXJ0IHRoYXQgYWxs
IGZ1bmN0aW9uIHBvaW50ZXJzIGhhdmUgdG8gbG93IGJpdCBzZXQgKHBvaW50IHRvIHRodW1iIGNv
ZGUpLgogI2lmIENBTExJTkdfQ09OVkVOVElPTl9JU19TVERDQUxMIHx8IENQVShBUk1fVEhVTUIy
KQotZG91YmxlIEpJVF9PUEVSQVRJT04ganNNb2QoZG91YmxlIHgsIGRvdWJsZSB5KSBSRUZFUkVO
Q0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04oanNN
b2QsIGRvdWJsZSwgKGRvdWJsZSwgZG91YmxlKSk7CiAjZWxzZQogI2RlZmluZSBqc01vZCBmbW9k
CiAjZW5kaWYKQEAgLTI1Miw3ICsyNTIsNyBAQCB1c2luZyBzdGQ6OmNicnQ7CiB1c2luZyBzdGQ6
OmV4cDsKIHVzaW5nIHN0ZDo6ZXhwbTE7CiAKLWRvdWJsZSBKSVRfT1BFUkFUSU9OIGxvZzFwKGRv
dWJsZSkgV1RGX0lOVEVSTkFMOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihsb2cxcCwgZG91
YmxlLCAoZG91YmxlKSk7CiAKIH0gLy8gbmFtZXNwYWNlIE1hdGgKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRnVuY3Rp
b24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUZ1bmN0aW9uLmgKaW5k
ZXggZWM5YjJkNTgzMGYwY2M0Y2IzMjU2YzI3NTk5MGRkZGZmMWUxMDFlYy4uYmRhN2MzZGFkY2Vk
NjliMjM0YzBkNjlkZWE4ODQ5ODdlNmYwZDM3OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTmF0aXZlRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OYXRpdmVGdW5jdGlvbi5oCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBK
U0MgewogCiBjbGFzcyBDYWxsRnJhbWU7CiAKLXR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpTQ19I
T1NUX0NBTExfQVRUUklCVVRFUyAqUmF3TmF0aXZlRnVuY3Rpb24pKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Cit1c2luZyBSYXdOYXRpdmVGdW5jdGlvbiA9IEVuY29kZWRKU1ZhbHVlKEpT
Q19IT1NUX0NBTExfQVRUUklCVVRFUyopKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CiAK
IGNsYXNzIE5hdGl2ZUZ1bmN0aW9uIHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUHJvcGVydHlTbG90LmgKaW5kZXggYTVmODk0M2I1MjUwZGE4MmQ3ZDU5ODIyNDY5
NmZlNDM5ZDY3YzFjMC4uZDAwZjRhMjBiYWQ0MDBjYjg3YmI2MDJkNDY0YjVhYjVmNjk5MmFkOSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKQEAgLTEy
Myw3ICsxMjMsNyBAQCBjbGFzcyBQcm9wZXJ0eVNsb3QgewogCiAgICAgLy8gRklYTUU6IFJlbW92
ZSB0aGlzIHNsb3RCYXNlIC8gcmVjZWl2ZXIgYmVoYXZpb3IgZGlmZmVyZW5jZSBpbiBjdXN0b20g
dmFsdWVzIGFuZCBjdXN0b20gYWNjZXNzb3JzLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwMTQKLSAgICB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlICgq
R2V0VmFsdWVGdW5jKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKTsKKyAgICB1c2luZyBHZXRWYWx1ZUZ1bmMgPSBFbmNvZGVkSlNWYWx1ZShK
SVRfT1BFUkFUSU9OX0FUVFJJQlVURSopKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwogCiAgICAgSlNWYWx1ZSBnZXRWYWx1ZShKU0dsb2Jh
bE9iamVjdCosIFByb3BlcnR5TmFtZSkgY29uc3Q7CiAgICAgSlNWYWx1ZSBnZXRWYWx1ZShKU0ds
b2JhbE9iamVjdCosIHVpbnQ2NF90IHByb3BlcnR5TmFtZSkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNjRi
MjEzYjdkOTExYzk1MWE5MTA0MDI1ZGI2OTNkM2NhMjUxZTkwNy4uNGEzMDhiZDlkYWU0NWJjODY2
NGM5Y2ZlODRhYTlkNjc5NWRmMTllMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcApAQCAtMjksMjMgKzI5LDIzIEBACiAKIG5h
bWVzcGFjZSBKU0MgewogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiByZWdF
eHBDb25zdHJ1Y3RvcklucHV0KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3Bl
cnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiByZWdFeHBDb25z
dHJ1Y3Rvck11bHRpbGluZShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gcmVnRXhwQ29uc3Ry
dWN0b3JMYXN0TWF0Y2goSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlO
YW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIHJlZ0V4cENvbnN0cnVj
dG9yTGFzdFBhcmVuKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFt
ZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiByZWdFeHBDb25zdHJ1Y3Rv
ckxlZnRDb250ZXh0KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFt
ZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiByZWdFeHBDb25zdHJ1Y3Rv
clJpZ2h0Q29udGV4dChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gcmVnRXhwQ29uc3RydWN0
b3JEb2xsYXIxKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiByZWdFeHBDb25zdHJ1Y3RvckRv
bGxhcjIoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFy
MyhKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI0KEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjUoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNihKU0dsb2JhbE9i
amVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI3KEpTR2xvYmFsT2JqZWN0
KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjgoSlNHbG9iYWxPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOShKU0dsb2JhbE9iamVjdCosIEVuY29k
ZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIGJvb2wgSklUX09QRVJBVElPTiBzZXRS
ZWdFeHBDb25zdHJ1Y3RvcklucHV0KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlKTsKLXN0YXRpYyBib29sIEpJVF9PUEVSQVRJT04gc2V0UmVnRXhwQ29uc3Ry
dWN0b3JNdWx0aWxpbmUoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUpOworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0
b3JJbnB1dCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1
Y3Rvck11bHRpbGluZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBD
b25zdHJ1Y3Rvckxhc3RNYXRjaCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihy
ZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihyZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0KTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMSk7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjIpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXIzKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFy
NCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRv
bGxhcjUpOworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0
b3JEb2xsYXI2KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0
cnVjdG9yRG9sbGFyNyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBD
b25zdHJ1Y3RvckRvbGxhcjgpOworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIocmVn
RXhwQ29uc3RydWN0b3JEb2xsYXI5KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldFJlZ0V4cENvbnN0cnVjdG9ySW5wdXQpOworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9T
RVRURVIoc2V0UmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUpOwogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKIApAQCAtMTA3LDgwICsxMDcsODAgQEAgaW5saW5lIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENv
bnN0cnVjdG9yRG9sbGFySW1wbChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHUKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLmdl
dEJhY2tyZWYoZ2xvYmFsT2JqZWN0LCBOKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIxKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiByZWdFeHBDb25zdHJ1Y3RvckRv
bGxhckltcGw8MT4oZ2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIHByb3BlcnR5TmFtZSk7CiB9Ci1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29u
c3RydWN0b3JEb2xsYXIyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1
cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDI+KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBwcm9wZXJ0eU5hbWUpOwogfQotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiByZWdFeHBD
b25zdHJ1Y3RvckRvbGxhcjMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMywgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFySW1wbDwzPihn
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgcHJvcGVydHlOYW1lKTsKIH0KLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI0KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3RvckRvbGxh
cjQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiByZWdFeHBDb25z
dHJ1Y3RvckRvbGxhckltcGw8ND4oZ2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIHByb3BlcnR5TmFt
ZSk7CiB9Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIHJlZ0V4cENvbnN0cnVjdG9yRG9s
bGFyNShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI1LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKIHsK
ICAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDU+KGdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOwogfQotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjYoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFy
SW1wbDw2PihnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgcHJvcGVydHlOYW1lKTsKIH0KLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI3KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1
Y3RvckRvbGxhcjcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhckltcGw8Nz4oZ2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIHBy
b3BlcnR5TmFtZSk7CiB9Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIHJlZ0V4cENvbnN0
cnVjdG9yRG9sbGFyOChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JEb2xsYXI4LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlO
YW1lKSkKIHsKICAgICByZXR1cm4gcmVnRXhwQ29uc3RydWN0b3JEb2xsYXJJbXBsPDg+KGdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBwcm9wZXJ0eU5hbWUpOwogfQotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjkoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlO
YW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIHJlZ0V4cENvbnN0cnVj
dG9yRG9sbGFySW1wbDw5PihnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgcHJvcGVydHlOYW1lKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiByZWdFeHBDb25zdHJ1Y3RvcklucHV0
KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JJbnB1dCwgKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewog
ICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0Nhc3Q8UmVnRXhwQ29uc3RydWN0
b3IqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdsb2JhbE9iamVjdCgpOwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCkuaW5w
dXQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gcmVnRXhwQ29uc3RydWN0
b3JNdWx0aWxpbmUoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3Rvck11
bHRpbGluZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQogewogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0Nhc3Q8
UmVnRXhwQ29uc3RydWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdsb2JhbE9i
amVjdCgpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGdsb2JhbE9iamVj
dC0+cmVnRXhwR2xvYmFsRGF0YSgpLm11bHRpbGluZSgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gcmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2goSlNHbG9iYWxPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihyZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaCwgKEpTR2xvYmFsT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0Nhc3Q8UmVnRXhwQ29uc3RydWN0b3IqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSktPmdsb2JhbE9iamVjdCgpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9iYWxEYXRhKCkuZ2V0QmFja3JlZihnbG9i
YWxPYmplY3QsIDApKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiByZWdFeHBD
b25zdHJ1Y3Rvckxhc3RQYXJlbihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0
cnVjdG9yTGFzdFBhcmVuLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9
IGpzQ2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+
Z2xvYmFsT2JqZWN0KCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3Qt
PnJlZ0V4cEdsb2JhbERhdGEoKS5nZXRMYXN0UGFyZW4oZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gcmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dChK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQsIChK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
IHsKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNDYXN0PFJlZ0V4cENvbnN0
cnVjdG9yKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nbG9iYWxPYmplY3QoKTsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgp
LmdldExlZnRDb250ZXh0KGdsb2JhbE9iamVjdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0KEpTR2xvYmFsT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIocmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQsIChKU0dsb2JhbE9iamVjdCos
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nbG9iYWxPYmplY3QoKTsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLmdldFJpZ2h0Q29udGV4
dChnbG9iYWxPYmplY3QpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldFJlZ0V4cENvbnN0
cnVjdG9ySW5wdXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRF
UihzZXRSZWdFeHBDb25zdHJ1Y3RvcklucHV0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5NSw3ICsxOTUsNyBAQCBib29sIEpJVF9PUEVSQVRJT04g
c2V0UmVnRXhwQ29uc3RydWN0b3JJbnB1dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldFJlZ0V4
cENvbnN0cnVjdG9yTXVsdGlsaW5lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUpCitKU0NfREVGSU5FX0NV
U1RPTV9TRVRURVIoc2V0UmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IHZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKaW5kZXggMzhmMGZiNzI0MjVhMGIzN2U1YThhNzAz
NWVkYTcwNTZmNTY5NzU1MS4uMzdmNzYxYTViYzAzYThiY2Y5MTRiNjY3NGJmZDk3MDZjY2M5YmJj
YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3Bw
CkBAIC0yOSw2ICsyOSw5IEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJM
RShSZWdFeHBPYmplY3QpOwogCiBjb25zdCBDbGFzc0luZm8gUmVnRXhwT2JqZWN0OjpzX2luZm8g
PSB7ICJSZWdFeHAiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKFJlZ0V4cE9iamVjdCkgfTsKIAorSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihy
ZWdFeHBPYmplY3RTZXRMYXN0SW5kZXhTdHJpY3QpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihyZWdFeHBPYmplY3RTZXRMYXN0SW5kZXhOb25TdHJpY3QpOworCiBSZWdFeHBPYmplY3Q6OlJl
Z0V4cE9iamVjdChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWdFeHAqIHJlZ0V4cCkK
ICAgICA6IEpTTm9uRmluYWxPYmplY3Qodm0sIHN0cnVjdHVyZSkKICAgICAsIG1fcmVnRXhwQW5k
TGFzdEluZGV4SXNOb3RXcml0YWJsZUZsYWcoYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4ocmVnRXhw
KSkgLy8gbGFzdEluZGV4SXNOb3RXcml0YWJsZUZsYWcgaXMgbm90IHNldC4KQEAgLTEzMiwxMiAr
MTM1LDEyIEBAIGJvb2wgUmVnRXhwT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCog
b2JqZWN0LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHNjb3BlLCBCYXNlOjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGdsb2JhbE9iamVjdCwgcHJv
cGVydHlOYW1lLCBkZXNjcmlwdG9yLCBzaG91bGRUaHJvdykpOwogfQogCi1zdGF0aWMgYm9vbCBy
ZWdFeHBPYmplY3RTZXRMYXN0SW5kZXhTdHJpY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX1NFVFRFUihyZWdFeHBPYmplY3RTZXRMYXN0SW5kZXhTdHJpY3QsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIHZhbHVlKSkKIHsKICAgICByZXR1cm4ganNDYXN0PFJlZ0V4cE9iamVjdCo+KEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+c2V0TGFzdEluZGV4KGdsb2JhbE9iamVjdCwgSlNW
YWx1ZTo6ZGVjb2RlKHZhbHVlKSwgdHJ1ZSk7CiB9CiAKLXN0YXRpYyBib29sIHJlZ0V4cE9iamVj
dFNldExhc3RJbmRleE5vblN0cmljdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKQorSlNDX0RFRklORV9D
VVNUT01fU0VUVEVSKHJlZ0V4cE9iamVjdFNldExhc3RJbmRleE5vblN0cmljdCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgdmFsdWUpKQogewogICAgIHJldHVybiBqc0Nhc3Q8UmVnRXhwT2JqZWN0Kj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5zZXRMYXN0SW5kZXgoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
OjpkZWNvZGUodmFsdWUpLCBmYWxzZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAppbmRleCBlOWVjNjUxNTk0YzY4Yzg3NzU3NDJj
MjU2NGQ4NTA0NzIzNDkxMjhlLi5mNzk0YzY4M2FjOWIzZWQwYTQ4MWY0MzM2OGE3OWQyOGYwZDhi
Y2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90
b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3Rv
dHlwZS5jcHAKQEAgLTY5NCw3ICs2OTQsNyBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBKU1N0cmlu
ZyogcmVwbGFjZVVzaW5nUmVnRXhwU2VhcmNoKAogCiBJR05PUkVfV0FSTklOR1NfQkVHSU4oImZy
YW1lLWFkZHJlc3MiKQogCi1KU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3RyaW5nUHJv
dG9GdW5jUmVwbGFjZVJlZ0V4cEVtcHR5U3RyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTU3RyaW5nKiB0aGlzVmFsdWUsIFJlZ0V4cE9iamVjdCogc2VhcmNoVmFsdWUpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nUHJvdG9GdW5jUmVwbGFjZVJlZ0V4cEVt
cHR5U3RyLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcq
IHRoaXNWYWx1ZSwgUmVnRXhwT2JqZWN0KiBzZWFyY2hWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTcxNyw3ICs3MTcsNyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uU3RyaW5nUHJvdG9GdW5jUmVwbGFjZVJlZ0V4cEVtcHR5U3RyKEpTR2xvYmFsT2Jq
ZQogICAgICAgICB2bSwgZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIHRoaXNWYWx1ZSwgc2VhcmNo
VmFsdWUsIGNhbGxEYXRhLCByZXBsYWNlbWVudFN0cmluZywgSlNWYWx1ZSgpKSk7CiB9CiAKLUpT
Q2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25TdHJpbmdQcm90b0Z1bmNSZXBsYWNlUmVnRXhw
U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiB0aGlzVmFsdWUs
IFJlZ0V4cE9iamVjdCogc2VhcmNoVmFsdWUsIEpTU3RyaW5nKiByZXBsYWNlU3RyaW5nKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ1Byb3RvRnVuY1JlcGxhY2VSZWdF
eHBTdHJpbmcsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmlu
ZyogdGhpc1ZhbHVlLCBSZWdFeHBPYmplY3QqIHNlYXJjaFZhbHVlLCBKU1N0cmluZyogcmVwbGFj
ZVN0cmluZykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTkzNyw3ICs5Mzcs
NyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jUmVwbGFjZUFsbFVz
aW5nU3RyaW5nU2VhcmNoLCAoSlNHbG9iYWxPYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKHJlcGxhY2VVc2luZ1N0cmluZ1NlYXJjaCh2bSwgZ2xvYmFsT2Jq
ZWN0LCBjYWxsRnJhbWUsIHN0cmluZywgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSwgY2FsbEZyYW1l
LT5hcmd1bWVudCgxKSwgUmVwbGFjZU1vZGU6Okdsb2JhbCkpKTsKIH0KIAotSlNDZWxsKiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblN0cmluZ1Byb3RvRnVuY1JlcGxhY2VHZW5lcmljKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgc2VhcmNoVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHJlcGxhY2VWYWx1ZSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdQcm90b0Z1bmNSZXBsYWNlR2VuZXJpYywg
SlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgc2VhcmNoVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHJlcGxh
Y2VWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKaW5kZXggNzg3MTM3MDA2YWEz
MzIxZTYyZGQyNWJkNGI3M2IwOTgyMjEwNzNkNi4uNGNlMzI2OTM4N2ZkMzJmNTc3ZjM1YzA2M2I4
Y2JlNmMwYjk0MDgyNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nUHJvdG90eXBlLmgKQEAgLTQ5LDkgKzQ5LDkgQEAgY2xhc3MgU3RyaW5nUHJvdG90eXBlIGZp
bmFsIDogcHVibGljIFN0cmluZ09iamVjdCB7CiB9OwogU1RBVElDX0FTU0VSVF9JU09fU1VCU1BB
Q0VfU0hBUkFCTEUoU3RyaW5nUHJvdG90eXBlLCBTdHJpbmdPYmplY3QpOwogCi1KU0NlbGwqIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uU3RyaW5nUHJvdG9GdW5jUmVwbGFjZUdlbmVyaWMoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHNlYXJj
aFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSByZXBsYWNlVmFsdWUpOwotSlNDZWxsKiBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblN0cmluZ1Byb3RvRnVuY1JlcGxhY2VSZWdFeHBFbXB0eVN0cihKU0dsb2Jh
bE9iamVjdCosIEpTU3RyaW5nKiB0aGlzVmFsdWUsIFJlZ0V4cE9iamVjdCogc2VhcmNoVmFsdWUp
OwotSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN0cmluZ1Byb3RvRnVuY1JlcGxhY2VS
ZWdFeHBTdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyogdGhpc1ZhbHVlLCBSZWdFeHBP
YmplY3QqIHNlYXJjaFZhbHVlLCBKU1N0cmluZyogcmVwbGFjZVZhbHVlKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nUHJvdG9GdW5jUmVwbGFjZUdlbmVyaWMsIEpT
Q2VsbCosIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgc2VhcmNoVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHJlcGxhY2VWYWx1ZSkpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdQcm90b0Z1bmNSZXBsYWNlUmVn
RXhwRW1wdHlTdHIsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiB0aGlzVmFs
dWUsIFJlZ0V4cE9iamVjdCogc2VhcmNoVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uU3RyaW5nUHJvdG9GdW5jUmVwbGFjZVJlZ0V4cFN0cmluZywgSlNDZWxsKiwg
KEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqIHRoaXNWYWx1ZSwgUmVnRXhwT2JqZWN0KiBzZWFy
Y2hWYWx1ZSwgSlNTdHJpbmcqIHJlcGxhY2VWYWx1ZSkpOwogCiB2b2lkIHN1YnN0aXR1dGVCYWNr
cmVmZXJlbmNlcyhTdHJpbmdCdWlsZGVyJiByZXN1bHQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1l
bnQsIFN0cmluZ1ZpZXcgc291cmNlLCBjb25zdCBpbnQqIG92ZWN0b3IsIFJlZ0V4cCopOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKaW5kZXggZmI0YjIwZjUx
MTA5OTFhNjY5NTU3ZGUwYTE5YTBjNTJiZWJmNGIyMC4uOWQ0YzQ1OTVkNGEzNTRjZTZhYmIxZDEw
ZTViN2NkM2M0NTZlZDA3NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xz
L0pTRG9sbGFyVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxh
clZNLmNwcApAQCAtNDUyLDYgKzQ1Miw5IEBAIGNsYXNzIEltcHVyZUdldHRlciA6IHB1YmxpYyBK
U05vbkZpbmFsT2JqZWN0IHsKICAgICBXcml0ZUJhcnJpZXI8SlNPYmplY3Q+IG1fZGVsZWdhdGU7
CiB9OwogCitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihjdXN0b21HZXR0ZXJWYWx1
ZUdldHRlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihjdXN0b21HZXR0ZXJB
Y2Vzc29yR2V0dGVyKTsKKwogY2xhc3MgQ3VzdG9tR2V0dGVyIDogcHVibGljIEpTTm9uRmluYWxP
YmplY3QgewogcHVibGljOgogICAgIEN1c3RvbUdldHRlcihWTSYgdm0sIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQpAQCAtNDkwLDUxICs0OTMsNTIgQEAgY2xhc3MgQ3VzdG9tR2V0dGVyIDogcHVibGlj
IEpTTm9uRmluYWxPYmplY3QgewogICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgICAgIEN1c3RvbUdldHRlciogdGhpc09iamVjdCA9IGpzQ2FzdDxDdXN0b21HZXR0ZXIq
PihvYmplY3QpOwogICAgICAgICBpZiAocHJvcGVydHlOYW1lID09IFByb3BlcnR5TmFtZShJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiY3VzdG9tR2V0dGVyIikpKSB7Ci0gICAgICAgICAgICBz
bG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzT2JqZWN0LCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSwgY3VzdG9tR2V0dGVyKTsKKyAgICAgICAgICAgIHNsb3Quc2V0Q2FjaGVhYmxl
Q3VzdG9tKHRoaXNPYmplY3QsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVy
dHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtLCBjdXN0
b21HZXR0ZXJWYWx1ZUdldHRlcik7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
fQogICAgICAgICAKICAgICAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBQcm9wZXJ0eU5hbWUoSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImN1c3RvbUdldHRlckFjY2Vzc29yIikpKSB7Ci0gICAg
ICAgICAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzT2JqZWN0LCBQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nvciwg
Y3VzdG9tR2V0dGVyQWNlc3Nvcik7CisgICAgICAgICAgICBzbG90LnNldENhY2hlYWJsZUN1c3Rv
bSh0aGlzT2JqZWN0LCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0
cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5
QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciwgY3VzdG9tR2V0dGVyQWNlc3NvckdldHRlcik7CiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgcmV0
dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZ2xvYmFsT2JqZWN0
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogICAgIH0KK307CiAKLXByaXZhdGU6Ci0gICAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gY3VzdG9tR2V0dGVyKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQot
ICAgIHsKLSAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKLSAgICAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0dGVy
VmFsdWVHZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCit7CisgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBh
c3NlcnRTY29wZTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgICAgIEN1c3RvbUdldHRlciog
dGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8Q3VzdG9tR2V0dGVyKj4odm0sIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKLSAgICAgICAgaWYgKCF0aGlzT2JqZWN0KQotICAgICAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7Ci0gICAgICAgIGJv
b2wgc2hvdWxkVGhyb3cgPSB0aGlzT2JqZWN0LT5nZXQoZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5h
bWUoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInNob3VsZFRocm93IikpKS50b0Jvb2xlYW4o
Z2xvYmFsT2JqZWN0KTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2Rl
ZEpTVmFsdWUoKSk7Ci0gICAgICAgIGlmIChzaG91bGRUaHJvdykKLSAgICAgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwotICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKDEwMCkpOwotICAgIH0KLSAgICAKLSAgICBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBjdXN0b21HZXR0ZXJBY2Vzc29yKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQotICAgIHsKLSAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKLSAg
ICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgICAgIAotICAgICAgICBKU09iamVjdCogdGhp
c09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNPYmplY3QqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwotICAgICAgICBpZiAoIXRoaXNPYmplY3QpCi0gICAgICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKLSAgICAgICAgYm9vbCBzaG91
bGRUaHJvdyA9IHRoaXNPYmplY3QtPmdldChnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZShJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAic2hvdWxkVGhyb3ciKSkpLnRvQm9vbGVhbihnbG9iYWxP
YmplY3QpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1
ZSgpKTsKLSAgICAgICAgaWYgKHNob3VsZFRocm93KQotICAgICAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIoMTAwKSk7Ci0gICAgfQotfTsKKyAgICBDdXN0b21HZXR0ZXIqIHRo
aXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PEN1c3RvbUdldHRlcio+KHZtLCBKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CisgICAgaWYgKCF0aGlzT2JqZWN0KQorICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKKyAgICBib29sIHNob3VsZFRocm93
ID0gdGhpc09iamVjdC0+Z2V0KGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lKElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sICJzaG91bGRUaHJvdyIpKSkudG9Cb29sZWFuKGdsb2JhbE9iamVjdCk7
CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAg
aWYgKHNob3VsZFRocm93KQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKDEwMCkp
OworfQorCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0dGVyQWNlc3NvckdldHRl
ciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKK3sKKyAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3Bl
OworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBKU09iamVjdCogdGhpc09iamVjdCA9IGpzRHlu
YW1pY0Nhc3Q8SlNPYmplY3QqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAg
IGlmICghdGhpc09iamVjdCkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSk7CisgICAgYm9vbCBzaG91bGRUaHJvdyA9IHRoaXNPYmplY3QtPmdldChn
bG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZShJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAic2hv
dWxkVGhyb3ciKSkpLnRvQm9vbGVhbihnbG9iYWxPYmplY3QpOworICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgIGlmIChzaG91bGRUaHJvdykKKyAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CisgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigxMDApKTsKK30KKworc3RhdGljIEpTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIocnVudGltZUFycmF5TGVuZ3RoR2V0dGVyKTsKIAogY2xhc3Mg
UnVudGltZUFycmF5IDogcHVibGljIEpTQXJyYXkgewogcHVibGljOgpAQCAtNTc2LDcgKzU4MCw3
IEBAIElHTk9SRV9XQVJOSU5HU19FTkQKICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgICAgICBSdW50aW1lQXJyYXkqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8UnVudGltZUFy
cmF5Kj4ob2JqZWN0KTsKICAgICAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSB2bS5wcm9wZXJ0eU5h
bWVzLT5sZW5ndGgpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXNP
YmplY3QsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6
OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtLCBsZW5ndGhHZXR0ZXIpOwor
ICAgICAgICAgICAgc2xvdC5zZXRDYWNoZWFibGVDdXN0b20odGhpc09iamVjdCwgUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0sIHJ1bnRpbWVBcnJheUxlbmd0aEdldHRlcik7CiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCkBAIC02NDYsMjcgKzY1MCwyOSBAQCBJ
R05PUkVfV0FSTklOR1NfRU5ECiAgICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2Nv
cGU7CiAgICAgfQogCi0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gbGVu
Z3RoR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQotICAgIHsKLSAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29w
ZSBhc3NlcnRTY29wZTsKLSAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAg
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICAgICAgUnVu
dGltZUFycmF5KiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxSdW50aW1lQXJyYXkqPih2bSwg
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwotICAgICAgICBpZiAoIXRoaXNPYmplY3QpCi0g
ICAgICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsK
LSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih0aGlzT2JqZWN0LT5nZXRM
ZW5ndGgoKSkpOwotICAgIH0KLQogICAgIFZlY3RvcjxpbnQ+IG1fdmVjdG9yOwogfTsKIAorSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKHJ1bnRpbWVBcnJheUxlbmd0aEdldHRlciwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKSkKK3sKKyAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOworICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CisKKyAgICBSdW50aW1lQXJyYXkqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0
PFJ1bnRpbWVBcnJheSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgaWYg
KCF0aGlzT2JqZWN0KQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmpl
Y3QsIHNjb3BlKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNPYmpl
Y3QtPmdldExlbmd0aCgpKSk7Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJ
bmRleCBzdGF0aWNDdXN0b21BY2Nlc3NvclRhYmxlSW5kZXhbMl0gPSB7CiAgICAgeyAwLCAtMSB9
LAogICAgIHsgLTEsIC0xIH0sCiB9OwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiB0ZXN0U3RhdGljQWNjZXNzb3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitzdGF0aWMgSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUih0ZXN0U3RhdGljQWNjZXNzb3JHZXR0ZXIpOworCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIodGVzdFN0YXRpY0FjY2Vzc29yR2V0dGVyLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtOTAzLDYgKzkwOSwxMCBAQCBjbGFzcyBET01KSVROb2Rl
IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIGludDMyX3QgbV92YWx1ZSB7IDQyIH07
CiB9OwogCisKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGRvbUpJVEdldHRlckN1
c3RvbUdldHRlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihkb21KSVRHZXR0
ZXJTbG93Q2FsbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIHZvaWQqKSk7CisK
IGNsYXNzIERPTUpJVEdldHRlciA6IHB1YmxpYyBET01KSVROb2RlIHsKIHB1YmxpYzoKICAgICBE
T01KSVRHZXR0ZXIoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKQEAgLTkzMyw3ICs5NDMs
NyBAQCBjbGFzcyBET01KSVRHZXR0ZXIgOiBwdWJsaWMgRE9NSklUTm9kZSB7CiAgICAgcHVibGlj
OgogICAgICAgICBBTFdBWVNfSU5MSU5FIGNvbnN0ZXhwciBET01KSVRBdHRyaWJ1dGUoKQogICAg
ICAgICAgICAgOiBET01KSVQ6OkdldHRlclNldHRlcigKLSAgICAgICAgICAgICAgICBET01KSVRH
ZXR0ZXI6OmN1c3RvbUdldHRlciwKKyAgICAgICAgICAgICAgICBkb21KSVRHZXR0ZXJDdXN0b21H
ZXR0ZXIsCiAjaWYgRU5BQkxFKEpJVCkKICAgICAgICAgICAgICAgICAmY2FsbERPTUdldHRlciwK
ICNlbHNlCkBAIC05NDQsMTUgKzk1NCw2IEBAIGNsYXNzIERPTUpJVEdldHRlciA6IHB1YmxpYyBE
T01KSVROb2RlIHsKICAgICAgICAgfQogCiAjaWYgRU5BQkxFKEpJVCkKLSAgICAgICAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gc2xvd0NhbGwoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgdm9pZCogcG9pbnRlcikKLSAgICAgICAgewotICAgICAgICAgICAgRG9sbGFy
Vk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKLSAgICAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKLSAgICAgICAgICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKLSAgICAgICAgICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIoc3RhdGljX2Nhc3Q8RE9NSklUR2V0dGVyKj4ocG9pbnRlciktPnZh
bHVlKCkpKTsKLSAgICAgICAgfQotCiAgICAgICAgIHN0YXRpYyBSZWY8RE9NSklUOjpDYWxsRE9N
R2V0dGVyU25pcHBldD4gY2FsbERPTUdldHRlcigpCiAgICAgICAgIHsKICAgICAgICAgICAgIERv
bGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CkBAIC05NjMsNyArOTY0LDcgQEAgY2xhc3Mg
RE9NSklUR2V0dGVyIDogcHVibGljIERPTUpJVE5vZGUgewogICAgICAgICAgICAgICAgIEpTVmFs
dWVSZWdzIHJlc3VsdHMgPSBwYXJhbXNbMF0uanNWYWx1ZVJlZ3MoKTsKICAgICAgICAgICAgICAg
ICBHUFJSZWcgZG9tR1BSID0gcGFyYW1zWzFdLmdwcigpOwogICAgICAgICAgICAgICAgIEdQUlJl
ZyBnbG9iYWxPYmplY3RHUFIgPSBwYXJhbXNbMl0uZ3ByKCk7Ci0gICAgICAgICAgICAgICAgcGFy
YW1zLmFkZFNsb3dQYXRoQ2FsbChqaXQuanVtcCgpLCBqaXQsIHNsb3dDYWxsLCByZXN1bHRzLCBn
bG9iYWxPYmplY3RHUFIsIGRvbUdQUik7CisgICAgICAgICAgICAgICAgcGFyYW1zLmFkZFNsb3dQ
YXRoQ2FsbChqaXQuanVtcCgpLCBqaXQsIGRvbUpJVEdldHRlclNsb3dDYWxsLCByZXN1bHRzLCBn
bG9iYWxPYmplY3RHUFIsIGRvbUdQUik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIENDYWxsSGVs
cGVyczo6SnVtcExpc3QoKTsKIAogICAgICAgICAgICAgfSk7CkBAIC05NzQsMTUgKzk3NSw2IEBA
IGNsYXNzIERPTUpJVEdldHRlciA6IHB1YmxpYyBET01KSVROb2RlIHsKIAogcHJpdmF0ZToKICAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJik7Ci0KLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBjdXN0b21HZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCi0gICAgewotICAgICAgICBE
b2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwotICAgICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7Ci0gICAgICAgIERPTUpJVE5vZGUqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWND
YXN0PERPTUpJVE5vZGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwotICAgICAg
ICBBU1NFUlQodGhpc09iamVjdCk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNO
dW1iZXIodGhpc09iamVjdC0+dmFsdWUoKSkpOwotICAgIH0KIH07CiAKIHN0YXRpYyBjb25zdCBE
T01KSVRHZXR0ZXI6OkRPTUpJVEF0dHJpYnV0ZSBET01KSVRHZXR0ZXJET01KSVQ7CkBAIC05OTYs
NiArOTg4LDI4IEBAIHZvaWQgRE9NSklUR2V0dGVyOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAg
ICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
ICJjdXN0b21HZXR0ZXIiKSwgY3VzdG9tR2V0dGVyU2V0dGVyLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6
UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IpOwogfQogCitKU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoZG9tSklUR2V0dGVyQ3VzdG9tR2V0dGVyLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpKQoreworICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CisgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIERPTUpJVE5vZGUqIHRoaXNPYmplY3QgPSBqc0R5
bmFtaWNDYXN0PERPTUpJVE5vZGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwor
ICAgIEFTU0VSVCh0aGlzT2JqZWN0KTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVt
YmVyKHRoaXNPYmplY3QtPnZhbHVlKCkpKTsKK30KKworSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KGRvbUpJVEdldHRlclNsb3dDYWxsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIHZvaWQqIHBvaW50ZXIpKQoreworICAgIERvbGxhclZNQXNzZXJ0U2NvcGUg
YXNzZXJ0U2NvcGU7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRp
b25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihzdGF0aWNfY2FzdDxET01KSVRHZXR0ZXIqPihw
b2ludGVyKS0+dmFsdWUoKSkpOworfQorCisKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGRvbUpJVEdldHRlck5vRWZmZWN0Q3VzdG9tR2V0dGVyKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKGRvbUpJVEdldHRlck5vRWZmZWN0U2xvd0NhbGwsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqLCB2b2lkKikpOworCiBjbGFzcyBET01KSVRHZXR0ZXJOb0Vm
ZmVjdHMgOiBwdWJsaWMgRE9NSklUTm9kZSB7CiBwdWJsaWM6CiAgICAgRE9NSklUR2V0dGVyTm9F
ZmZlY3RzKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCkBAIC0xMDI2LDcgKzEwNDAsNyBA
QCBjbGFzcyBET01KSVRHZXR0ZXJOb0VmZmVjdHMgOiBwdWJsaWMgRE9NSklUTm9kZSB7CiAgICAg
cHVibGljOgogICAgICAgICBBTFdBWVNfSU5MSU5FIGNvbnN0ZXhwciBET01KSVRBdHRyaWJ1dGUo
KQogICAgICAgICAgICAgOiBET01KSVQ6OkdldHRlclNldHRlcigKLSAgICAgICAgICAgICAgICBE
T01KSVRHZXR0ZXJOb0VmZmVjdHM6OmN1c3RvbUdldHRlciwKKyAgICAgICAgICAgICAgICBkb21K
SVRHZXR0ZXJOb0VmZmVjdEN1c3RvbUdldHRlciwKICNpZiBFTkFCTEUoSklUKQogICAgICAgICAg
ICAgICAgICZjYWxsRE9NR2V0dGVyLAogI2Vsc2UKQEAgLTEwMzcsMTUgKzEwNTEsNiBAQCBjbGFz
cyBET01KSVRHZXR0ZXJOb0VmZmVjdHMgOiBwdWJsaWMgRE9NSklUTm9kZSB7CiAgICAgICAgIH0K
IAogI2lmIEVOQUJMRShKSVQpCi0gICAgICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIHNsb3dDYWxsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHZvaWQqIHBvaW50
ZXIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2Nv
cGU7Ci0gICAgICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgICAgICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7Ci0gICAgICAg
ICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxG
cmFtZSk7Ci0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHN0YXRp
Y19jYXN0PERPTUpJVEdldHRlck5vRWZmZWN0cyo+KHBvaW50ZXIpLT52YWx1ZSgpKSk7Ci0gICAg
ICAgIH0KLQogICAgICAgICBzdGF0aWMgUmVmPERPTUpJVDo6Q2FsbERPTUdldHRlclNuaXBwZXQ+
IGNhbGxET01HZXR0ZXIoKQogICAgICAgICB7CiAgICAgICAgICAgICBEb2xsYXJWTUFzc2VydFNj
b3BlIGFzc2VydFNjb3BlOwpAQCAtMTA1Nyw3ICsxMDYyLDcgQEAgY2xhc3MgRE9NSklUR2V0dGVy
Tm9FZmZlY3RzIDogcHVibGljIERPTUpJVE5vZGUgewogICAgICAgICAgICAgICAgIEpTVmFsdWVS
ZWdzIHJlc3VsdHMgPSBwYXJhbXNbMF0uanNWYWx1ZVJlZ3MoKTsKICAgICAgICAgICAgICAgICBH
UFJSZWcgZG9tR1BSID0gcGFyYW1zWzFdLmdwcigpOwogICAgICAgICAgICAgICAgIEdQUlJlZyBn
bG9iYWxPYmplY3RHUFIgPSBwYXJhbXNbMl0uZ3ByKCk7Ci0gICAgICAgICAgICAgICAgcGFyYW1z
LmFkZFNsb3dQYXRoQ2FsbChqaXQuanVtcCgpLCBqaXQsIHNsb3dDYWxsLCByZXN1bHRzLCBnbG9i
YWxPYmplY3RHUFIsIGRvbUdQUik7CisgICAgICAgICAgICAgICAgcGFyYW1zLmFkZFNsb3dQYXRo
Q2FsbChqaXQuanVtcCgpLCBqaXQsIGRvbUpJVEdldHRlck5vRWZmZWN0U2xvd0NhbGwsIHJlc3Vs
dHMsIGdsb2JhbE9iamVjdEdQUiwgZG9tR1BSKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQ0Nh
bGxIZWxwZXJzOjpKdW1wTGlzdCgpOwogCiAgICAgICAgICAgICB9KTsKQEAgLTEwNjgsMTUgKzEw
NzMsNiBAQCBjbGFzcyBET01KSVRHZXR0ZXJOb0VmZmVjdHMgOiBwdWJsaWMgRE9NSklUTm9kZSB7
CiAKIHByaXZhdGU6CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYpOwotCi0gICAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gY3VzdG9tR2V0dGVyKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQot
ICAgIHsKLSAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKLSAgICAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgICAgICBET01KSVROb2RlKiB0aGlzT2Jq
ZWN0ID0ganNEeW5hbWljQ2FzdDxET01KSVROb2RlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKLSAgICAgICAgQVNTRVJUKHRoaXNPYmplY3QpOwotICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNPYmplY3QtPnZhbHVlKCkpKTsKLSAgICB9CiB9Owog
CiBzdGF0aWMgY29uc3QgRE9NSklUR2V0dGVyTm9FZmZlY3RzOjpET01KSVRBdHRyaWJ1dGUgRE9N
SklUR2V0dGVyTm9FZmZlY3RzRE9NSklUOwpAQCAtMTA5MCw2ICsxMDg2LDI3IEBAIHZvaWQgRE9N
SklUR2V0dGVyTm9FZmZlY3RzOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAgICAgcHV0RGlyZWN0
Q3VzdG9tQWNjZXNzb3Iodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJjdXN0b21HZXR0
ZXIiKSwgY3VzdG9tR2V0dGVyU2V0dGVyLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IpOwogfQogCitKU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoZG9tSklUR2V0dGVyTm9FZmZlY3RDdXN0b21HZXR0ZXIsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkp
Cit7CisgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKKyAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CisgICAgRE9NSklUTm9kZSogdGhpc09iamVjdCA9IGpzRHluYW1p
Y0Nhc3Q8RE9NSklUTm9kZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAg
QVNTRVJUKHRoaXNPYmplY3QpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIo
dGhpc09iamVjdC0+dmFsdWUoKSkpOworfQorCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04oZG9t
SklUR2V0dGVyTm9FZmZlY3RTbG93Q2FsbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCB2b2lkKiBwb2ludGVyKSkKK3sKKyAgICBEb2xsYXJWTUFzc2VydFNj
b3BlIGFzc2VydFNjb3BlOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3Bl
cmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoc3RhdGljX2Nhc3Q8RE9NSklUR2V0dGVy
Tm9FZmZlY3RzKj4ocG9pbnRlciktPnZhbHVlKCkpKTsKK30KKworc3RhdGljIEpTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIoZG9tSklUR2V0dGVyQ29tcGxleEN1c3RvbUdldHRlcik7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihkb21KSVRHZXR0ZXJDb21wbGV4U2xvd0NhbGwsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCB2b2lkKikpOworCiBjbGFzcyBET01KSVRH
ZXR0ZXJDb21wbGV4IDogcHVibGljIERPTUpJVE5vZGUgewogcHVibGljOgogICAgIERPTUpJVEdl
dHRlckNvbXBsZXgoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKQEAgLTExMjAsNyArMTEz
Nyw3IEBAIGNsYXNzIERPTUpJVEdldHRlckNvbXBsZXggOiBwdWJsaWMgRE9NSklUTm9kZSB7CiAg
ICAgcHVibGljOgogICAgICAgICBBTFdBWVNfSU5MSU5FIGNvbnN0ZXhwciBET01KSVRBdHRyaWJ1
dGUoKQogICAgICAgICAgICAgOiBET01KSVQ6OkdldHRlclNldHRlcigKLSAgICAgICAgICAgICAg
ICBET01KSVRHZXR0ZXJDb21wbGV4OjpjdXN0b21HZXR0ZXIsCisgICAgICAgICAgICAgICAgZG9t
SklUR2V0dGVyQ29tcGxleEN1c3RvbUdldHRlciwKICNpZiBFTkFCTEUoSklUKQogICAgICAgICAg
ICAgICAgICZjYWxsRE9NR2V0dGVyLAogI2Vsc2UKQEAgLTExMzEsMjIgKzExNDgsNiBAQCBjbGFz
cyBET01KSVRHZXR0ZXJDb21wbGV4IDogcHVibGljIERPTUpJVE5vZGUgewogICAgICAgICB9CiAK
ICNpZiBFTkFCTEUoSklUKQotICAgICAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBzbG93Q2FsbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB2b2lkKiBwb2ludGVy
KQotICAgICAgICB7Ci0gICAgICAgICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3Bl
OwotICAgICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgICAgICAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwotICAgICAgICAg
ICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJh
bWUpOwotICAgICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwot
ICAgICAgICAgICAgYXV0byogb2JqZWN0ID0gc3RhdGljX2Nhc3Q8RE9NSklUTm9kZSo+KHBvaW50
ZXIpOwotICAgICAgICAgICAgYXV0byogZG9taml0R2V0dGVyQ29tcGxleCA9IGpzRHluYW1pY0Nh
c3Q8RE9NSklUR2V0dGVyQ29tcGxleCo+KHZtLCBvYmplY3QpOwotICAgICAgICAgICAgaWYgKGRv
bWppdEdldHRlckNvbXBsZXgpIHsKLSAgICAgICAgICAgICAgICBpZiAoZG9taml0R2V0dGVyQ29t
cGxleC0+bV9lbmFibGVFeGNlcHRpb24pCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUodGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJy
b3IoZ2xvYmFsT2JqZWN0LCAiRE9NSklUR2V0dGVyQ29tcGxleCBzbG93IGNhbGwgZXhjZXB0aW9u
Il9zKSkpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc051bWJlcihvYmplY3QtPnZhbHVlKCkpKTsKLSAgICAgICAgfQotCiAgICAgICAgIHN0YXRp
YyBSZWY8RE9NSklUOjpDYWxsRE9NR2V0dGVyU25pcHBldD4gY2FsbERPTUdldHRlcigpCiAgICAg
ICAgIHsKICAgICAgICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CkBAIC0x
MTY0LDcgKzExNjUsNyBAQCBjbGFzcyBET01KSVRHZXR0ZXJDb21wbGV4IDogcHVibGljIERPTUpJ
VE5vZGUgewogICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1HUFNj
cmF0Y2hSZWdpc3RlcnM7ICsraSkKICAgICAgICAgICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIoNDIpLCBwYXJhbXMuZ3BTY3JhdGNoKGkpKTsKIAotICAgICAg
ICAgICAgICAgIHBhcmFtcy5hZGRTbG93UGF0aENhbGwoaml0Lmp1bXAoKSwgaml0LCBzbG93Q2Fs
bCwgcmVzdWx0cywgZ2xvYmFsT2JqZWN0R1BSLCBkb21HUFIpOworICAgICAgICAgICAgICAgIHBh
cmFtcy5hZGRTbG93UGF0aENhbGwoaml0Lmp1bXAoKSwgaml0LCBkb21KSVRHZXR0ZXJDb21wbGV4
U2xvd0NhbGwsIHJlc3VsdHMsIGdsb2JhbE9iamVjdEdQUiwgZG9tR1BSKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCgpOwogICAgICAgICAgICAgfSk7CiAg
ICAgICAgICAgICByZXR1cm4gc25pcHBldDsKQEAgLTExNzQsMTkgKzExNzUsNiBAQCBjbGFzcyBE
T01KSVRHZXR0ZXJDb21wbGV4IDogcHVibGljIERPTUpJVE5vZGUgewogCiAgICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kik7CiAKLSAgICBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBjdXN0b21HZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCi0gICAgewotICAg
ICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwotICAgICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKLQotICAgICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxET01K
SVRHZXR0ZXJDb21wbGV4Kj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKLSAgICAg
ICAgQVNTRVJUKHRoaXNPYmplY3QpOwotICAgICAgICBpZiAodGhpc09iamVjdC0+bV9lbmFibGVF
eGNlcHRpb24pCi0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93RXhjZXB0
aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUVycm9yKGdsb2JhbE9iamVjdCwgIkRPTUpJ
VEdldHRlckNvbXBsZXggc2xvdyBjYWxsIGV4Y2VwdGlvbiJfcykpKTsKLSAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcih0aGlzT2JqZWN0LT52YWx1ZSgpKSk7Ci0gICAgfQot
CiAgICAgYm9vbCBtX2VuYWJsZUV4Y2VwdGlvbiB7IGZhbHNlIH07CiB9OwogCkBAIC0xMjAwLDYg
KzExODgsMzUgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRE9NSklUR2V0dGVy
Q29tcGxleEVuYWJsZUV4Y2VwdGlvbiwgKEpTR2xvYmFsT2IKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoZG9t
SklUR2V0dGVyQ29tcGxleEN1c3RvbUdldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK3sKKyAgICBEb2xs
YXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBh
dXRvKiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxET01KSVRHZXR0ZXJDb21wbGV4Kj4odm0s
IEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBBU1NFUlQodGhpc09iamVjdCk7Cisg
ICAgaWYgKHRoaXNPYmplY3QtPm1fZW5hYmxlRXhjZXB0aW9uKQorICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUVy
cm9yKGdsb2JhbE9iamVjdCwgIkRPTUpJVEdldHRlckNvbXBsZXggc2xvdyBjYWxsIGV4Y2VwdGlv
biJfcykpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNPYmplY3Qt
PnZhbHVlKCkpKTsKK30KKworSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKGRvbUpJVEdldHRlckNv
bXBsZXhTbG93Q2FsbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCB2b2lkKiBwb2ludGVyKSkKK3sKKyAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNj
b3BlOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9n
dWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBhdXRvKiBvYmplY3QgPSBzdGF0aWNfY2Fz
dDxET01KSVROb2RlKj4ocG9pbnRlcik7CisgICAgYXV0byogZG9taml0R2V0dGVyQ29tcGxleCA9
IGpzRHluYW1pY0Nhc3Q8RE9NSklUR2V0dGVyQ29tcGxleCo+KHZtLCBvYmplY3QpOworICAgIGlm
IChkb21qaXRHZXR0ZXJDb21wbGV4KSB7CisgICAgICAgIGlmIChkb21qaXRHZXR0ZXJDb21wbGV4
LT5tX2VuYWJsZUV4Y2VwdGlvbikKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
dGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJyb3IoZ2xvYmFsT2Jq
ZWN0LCAiRE9NSklUR2V0dGVyQ29tcGxleCBzbG93IGNhbGwgZXhjZXB0aW9uIl9zKSkpOworICAg
IH0KKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKG9iamVjdC0+dmFsdWUoKSkp
OworfQorCiBzdGF0aWMgY29uc3QgRE9NSklUR2V0dGVyQ29tcGxleDo6RE9NSklUQXR0cmlidXRl
IERPTUpJVEdldHRlckNvbXBsZXhET01KSVQ7CiAKIHZvaWQgRE9NSklUR2V0dGVyQ29tcGxleDo6
ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQpAQCAt
MTIxMiw2ICsxMjI5LDggQEAgdm9pZCBET01KSVRHZXR0ZXJDb21wbGV4OjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgcHV0RGlyZWN0TmF0
aXZlRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
ImVuYWJsZUV4Y2VwdGlvbiIpLCAwLCBmdW5jdGlvbkRPTUpJVEdldHRlckNvbXBsZXhFbmFibGVF
eGNlcHRpb24sIE5vSW50cmluc2ljLCAwKTsKIH0KIAorc3RhdGljIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04oZnVuY3Rpb25ET01KSVRGdW5jdGlvbk9iamVjdFdpdGhvdXRUeXBlQ2hlY2ssIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRE9NSklUTm9kZSop
KTsKKwogY2xhc3MgRE9NSklURnVuY3Rpb25PYmplY3QgOiBwdWJsaWMgRE9NSklUTm9kZSB7CiBw
dWJsaWM6CiAgICAgRE9NSklURnVuY3Rpb25PYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKQEAgLTEyMzgsMTUgKzEyNTcsNiBAQCBjbGFzcyBET01KSVRGdW5jdGlvbk9iamVjdCA6
IHB1YmxpYyBET01KSVROb2RlIHsKICAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICB9CiAKLSAg
ICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBmdW5jdGlvbldpdGhvdXRUeXBl
Q2hlY2soSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRE9NSklUTm9kZSogbm9kZSkKLSAg
ICB7Ci0gICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7Ci0gICAgICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwotICAgICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNOdW1iZXIobm9kZS0+dmFsdWUoKSkpOwotICAgIH0KLQogI2lmIEVOQUJM
RShKSVQpCiAgICAgc3RhdGljIFJlZjxTbmlwcGV0PiBjaGVja1N1YkNsYXNzU25pcHBldCgpCiAg
ICAgewpAQCAtMTI4Miw3ICsxMjkyLDE2IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkRPTUpJVEZ1bmN0aW9uT2JqZWN0V2l0aFR5cGVDaGVjaywgKEpTR2xvYmFsT2JqCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih0aGlzT2JqZWN0LT52YWx1ZSgpKSk7CiB9
CiAKLXN0YXRpYyBjb25zdCBET01KSVQ6OlNpZ25hdHVyZSBET01KSVRGdW5jdGlvbk9iamVjdFNp
Z25hdHVyZShET01KSVRGdW5jdGlvbk9iamVjdDo6ZnVuY3Rpb25XaXRob3V0VHlwZUNoZWNrLCBE
T01KSVRGdW5jdGlvbk9iamVjdDo6aW5mbygpLCBET01KSVQ6OkVmZmVjdDo6Zm9yUmVhZChET01K
SVQ6OkhlYXBSYW5nZShET01KSVQ6OkhlYXBSYW5nZTo6Q29uc3RFeHByLCAwLCAxKSksIFNwZWNJ
bnQzMk9ubHkpOworSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKGZ1bmN0aW9uRE9NSklURnVuY3Rp
b25PYmplY3RXaXRob3V0VHlwZUNoZWNrLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIERPTUpJVE5vZGUqIG5vZGUpKQoreworICAgIERvbGxhclZNQXNzZXJ0
U2NvcGUgYXNzZXJ0U2NvcGU7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRP
cGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihub2RlLT52YWx1ZSgpKSk7Cit9CisK
K3N0YXRpYyBjb25zdCBET01KSVQ6OlNpZ25hdHVyZSBET01KSVRGdW5jdGlvbk9iamVjdFNpZ25h
dHVyZShmdW5jdGlvbkRPTUpJVEZ1bmN0aW9uT2JqZWN0V2l0aG91dFR5cGVDaGVjaywgRE9NSklU
RnVuY3Rpb25PYmplY3Q6OmluZm8oKSwgRE9NSklUOjpFZmZlY3Q6OmZvclJlYWQoRE9NSklUOjpI
ZWFwUmFuZ2UoRE9NSklUOjpIZWFwUmFuZ2U6OkNvbnN0RXhwciwgMCwgMSkpLCBTcGVjSW50MzJP
bmx5KTsKIAogdm9pZCBET01KSVRGdW5jdGlvbk9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewpAQCAtMTI5MSw2ICsxMzEwLDggQEAg
dm9pZCBET01KSVRGdW5jdGlvbk9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCBn
bG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJmdW5jIiksIDAsIGZ1bmN0
aW9uRE9NSklURnVuY3Rpb25PYmplY3RXaXRoVHlwZUNoZWNrLCBOb0ludHJpbnNpYywgJkRPTUpJ
VEZ1bmN0aW9uT2JqZWN0U2lnbmF0dXJlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlB
dHRyaWJ1dGU6OlJlYWRPbmx5KSk7CiB9CiAKK3N0YXRpYyBKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKGZ1bmN0aW9uRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3RXaXRob3V0VHlwZUNoZWNrLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERPTUpJVE5vZGUqIG5v
ZGUpKTsKKwogY2xhc3MgRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QgOiBwdWJsaWMgRE9NSklUTm9k
ZSB7CiBwdWJsaWM6CiAgICAgRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QoVk0mIHZtLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSkKQEAgLTEzMTcsMTUgKzEzMzgsNiBAQCBjbGFzcyBET01KSVRDaGVja0pT
Q2FzdE9iamVjdCA6IHB1YmxpYyBET01KSVROb2RlIHsKICAgICAgICAgcmV0dXJuIG9iamVjdDsK
ICAgICB9CiAKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBmdW5jdGlv
bldpdGhvdXRUeXBlQ2hlY2soSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRE9NSklUTm9k
ZSogbm9kZSkKLSAgICB7Ci0gICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7
Ci0gICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwotICAgICAgICBKSVRPcGVyYXRp
b25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIobm9kZS0+dmFsdWUoKSkpOwotICAgIH0K
LQogcHJpdmF0ZToKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3Qq
KTsKIH07CkBAIC0xMzQyLDcgKzEzNTQsMTYgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3RXaXRoVHlwZUNoZWNrLCAoSlNHbG9iYWwKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNPYmplY3QtPnZhbHVlKCkpKTsK
IH0KIAotc3RhdGljIGNvbnN0IERPTUpJVDo6U2lnbmF0dXJlIERPTUpJVENoZWNrSlNDYXN0T2Jq
ZWN0U2lnbmF0dXJlKERPTUpJVENoZWNrSlNDYXN0T2JqZWN0OjpmdW5jdGlvbldpdGhvdXRUeXBl
Q2hlY2ssIERPTUpJVENoZWNrSlNDYXN0T2JqZWN0OjppbmZvKCksIERPTUpJVDo6RWZmZWN0Ojpm
b3JSZWFkKERPTUpJVDo6SGVhcFJhbmdlOjp0b3AoKSksIFNwZWNJbnQzMk9ubHkpOworSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKGZ1bmN0aW9uRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3RXaXRob3V0
VHlwZUNoZWNrLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IERPTUpJVE5vZGUqIG5vZGUpKQoreworICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2Nv
cGU7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcihub2RlLT52YWx1ZSgpKSk7Cit9CisKK3N0YXRpYyBjb25zdCBE
T01KSVQ6OlNpZ25hdHVyZSBET01KSVRDaGVja0pTQ2FzdE9iamVjdFNpZ25hdHVyZShmdW5jdGlv
bkRPTUpJVENoZWNrSlNDYXN0T2JqZWN0V2l0aG91dFR5cGVDaGVjaywgRE9NSklUQ2hlY2tKU0Nh
c3RPYmplY3Q6OmluZm8oKSwgRE9NSklUOjpFZmZlY3Q6OmZvclJlYWQoRE9NSklUOjpIZWFwUmFu
Z2U6OnRvcCgpKSwgU3BlY0ludDMyT25seSk7CiAKIHZvaWQgRE9NSklUQ2hlY2tKU0Nhc3RPYmpl
Y3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
IHsKQEAgLTEzNTEsNiArMTM3Miw5IEBAIHZvaWQgRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3Q6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgcHV0
RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgImZ1bmMiKSwgMCwgZnVuY3Rpb25ET01KSVRDaGVja0pTQ2FzdE9iamVjdFdpdGhU
eXBlQ2hlY2ssIE5vSW50cmluc2ljLCAmRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3RTaWduYXR1cmUs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsKIH0K
IAorc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoZG9tSklUR2V0dGVyQmFzZUpTT2Jq
ZWN0Q3VzdG9tR2V0dGVyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKGRvbUpJ
VEdldHRlckJhc2VKU09iamVjdFNsb3dDYWxsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0Kiwgdm9pZCopKTsKKwogY2xhc3MgRE9NSklUR2V0dGVyQmFzZUpTT2JqZWN0IDogcHVibGlj
IERPTUpJVE5vZGUgewogcHVibGljOgogICAgIERPTUpJVEdldHRlckJhc2VKU09iamVjdChWTSYg
dm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQpAQCAtMTM4MSw3ICsxNDA1LDcgQEAgY2xhc3MgRE9N
SklUR2V0dGVyQmFzZUpTT2JqZWN0IDogcHVibGljIERPTUpJVE5vZGUgewogICAgIHB1YmxpYzoK
ICAgICAgICAgQUxXQVlTX0lOTElORSBjb25zdGV4cHIgRE9NSklUQXR0cmlidXRlKCkKICAgICAg
ICAgICAgIDogRE9NSklUOjpHZXR0ZXJTZXR0ZXIoCi0gICAgICAgICAgICAgICAgRE9NSklUR2V0
dGVyQmFzZUpTT2JqZWN0OjpjdXN0b21HZXR0ZXIsCisgICAgICAgICAgICAgICAgZG9tSklUR2V0
dGVyQmFzZUpTT2JqZWN0Q3VzdG9tR2V0dGVyLAogI2lmIEVOQUJMRShKSVQpCiAgICAgICAgICAg
ICAgICAgJmNhbGxET01HZXR0ZXIsCiAjZWxzZQpAQCAtMTM5MiwxNiArMTQxNiw2IEBAIGNsYXNz
IERPTUpJVEdldHRlckJhc2VKU09iamVjdCA6IHB1YmxpYyBET01KSVROb2RlIHsKICAgICAgICAg
fQogCiAjaWYgRU5BQkxFKEpJVCkKLSAgICAgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gc2xvd0NhbGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgdm9pZCogcG9p
bnRlcikKLSAgICAgICAgewotICAgICAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRT
Y29wZTsKLSAgICAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICAgICAg
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKLSAgICAg
ICAgICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2Fs
bEZyYW1lKTsKLSAgICAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBzdGF0aWNfY2FzdDxKU09i
amVjdCo+KHBvaW50ZXIpOwotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShvYmpl
Y3QtPmdldFByb3RvdHlwZURpcmVjdCh2bSkpOwotICAgICAgICB9Ci0KICAgICAgICAgc3RhdGlj
IFJlZjxET01KSVQ6OkNhbGxET01HZXR0ZXJTbmlwcGV0PiBjYWxsRE9NR2V0dGVyKCkKICAgICAg
ICAgewogICAgICAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKQEAgLTE0
MTIsNyArMTQyNiw3IEBAIGNsYXNzIERPTUpJVEdldHRlckJhc2VKU09iamVjdCA6IHB1YmxpYyBE
T01KSVROb2RlIHsKICAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRzID0gcGFyYW1z
WzBdLmpzVmFsdWVSZWdzKCk7CiAgICAgICAgICAgICAgICAgR1BSUmVnIGRvbUdQUiA9IHBhcmFt
c1sxXS5ncHIoKTsKICAgICAgICAgICAgICAgICBHUFJSZWcgZ2xvYmFsT2JqZWN0R1BSID0gcGFy
YW1zWzJdLmdwcigpOwotICAgICAgICAgICAgICAgIHBhcmFtcy5hZGRTbG93UGF0aENhbGwoaml0
Lmp1bXAoKSwgaml0LCBzbG93Q2FsbCwgcmVzdWx0cywgZ2xvYmFsT2JqZWN0R1BSLCBkb21HUFIp
OworICAgICAgICAgICAgICAgIHBhcmFtcy5hZGRTbG93UGF0aENhbGwoaml0Lmp1bXAoKSwgaml0
LCBkb21KSVRHZXR0ZXJCYXNlSlNPYmplY3RTbG93Q2FsbCwgcmVzdWx0cywgZ2xvYmFsT2JqZWN0
R1BSLCBkb21HUFIpOwogICAgICAgICAgICAgICAgIHJldHVybiBDQ2FsbEhlbHBlcnM6Okp1bXBM
aXN0KCk7CiAKICAgICAgICAgICAgIH0pOwpAQCAtMTQyMywxNSArMTQzNyw2IEBAIGNsYXNzIERP
TUpJVEdldHRlckJhc2VKU09iamVjdCA6IHB1YmxpYyBET01KSVROb2RlIHsKIAogcHJpdmF0ZToK
ICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJik7Ci0KLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBjdXN0b21HZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCi0gICAgewotICAgICAg
ICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwotICAgICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7Ci0gICAgICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNEeW5hbWlj
Q2FzdDxKU09iamVjdCo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7Ci0gICAgICAg
IFJFTEVBU0VfQVNTRVJUKHRoaXNPYmplY3QpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCh2bSkpOwotICAgIH0KIH07CiAKIHN0
YXRpYyBjb25zdCBET01KSVRHZXR0ZXJCYXNlSlNPYmplY3Q6OkRPTUpJVEF0dHJpYnV0ZSBET01K
SVRHZXR0ZXJCYXNlSlNPYmplY3RET01KSVQ7CkBAIC0xNDQ1LDYgKzE0NTAsMjUgQEAgdm9pZCBE
T01KSVRHZXR0ZXJCYXNlSlNPYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKICAgICBwdXRE
aXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImN1c3Rv
bUdldHRlciIpLCBjdXN0b21HZXR0ZXJTZXR0ZXIsIFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25s
eSB8IFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nvcik7CiB9CiAKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihkb21KSVRHZXR0ZXJCYXNlSlNPYmplY3RDdXN0b21HZXR0ZXIsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkpCit7CisgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKKyAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBq
c0R5bmFtaWNDYXN0PEpTT2JqZWN0Kj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
KyAgICBSRUxFQVNFX0FTU0VSVCh0aGlzT2JqZWN0KTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCh2bSkpOworfQorCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04oZG9tSklUR2V0dGVyQmFzZUpTT2JqZWN0U2xvd0NhbGwsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgdm9pZCogcG9pbnRlcikpCit7
CisgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKKyAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOworICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cih2bSwgY2FsbEZyYW1lKTsKKyAgICBKU09iamVjdCogb2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNP
YmplY3QqPihwb2ludGVyKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG9iamVjdC0+Z2V0
UHJvdG90eXBlRGlyZWN0KHZtKSk7Cit9CisKIGNsYXNzIE1lc3NhZ2UgOiBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8TWVzc2FnZT4gewogcHVibGljOgogICAgIE1lc3NhZ2UoQXJyYXlCdWZm
ZXJDb250ZW50cyYmLCBpbnQzMl90KTsKQEAgLTE0OTUsMzAgKzE1MTksMzggQEAgY2xhc3MgSlNU
ZXN0Q3VzdG9tR2V0dGVyU2V0dGVyIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogfTsKIAog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBjdXN0b21HZXRBY2Nlc3NvcihK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
c3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0QWNjZXNzb3IpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0VmFsdWUpOworc3RhdGljIEpT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0QWNjZXNzb3JHbG9iYWxPYmplY3QpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0VmFsdWVHbG9iYWxPYmpl
Y3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoY3VzdG9tU2V0QWNjZXNzb3Ip
Oworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoY3VzdG9tU2V0VmFsdWUpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoY3VzdG9tRnVuY3Rpb25TZXR0ZXIpOworCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0QWNjZXNzb3IsIChKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICAvLyBQ
YXNzZWQgfHRoaXN8CiAgICAgcmV0dXJuIHRoaXNWYWx1ZTsKIH0KIAotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gY3VzdG9tR2V0VmFsdWUoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgc2xvdFZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0VmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBzbG90VmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAg
UkVMRUFTRV9BU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKHNsb3RWYWx1ZSkuaW5oZXJpdHM8SlNUZXN0
Q3VzdG9tR2V0dGVyU2V0dGVyPihnbG9iYWxPYmplY3QtPnZtKCkpKTsKICAgICAvLyBQYXNzZWQg
cHJvcGVydHkgaG9sZGVyLgogICAgIHJldHVybiBzbG90VmFsdWU7CiB9CiAKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGN1c3RvbUdldEFjY2Vzc29yR2xvYmFsT2JqZWN0KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0QWNjZXNzb3JHbG9iYWxPYmplY3Qs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlO
YW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdCk7CiB9CiAK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGN1c3RvbUdldFZhbHVlR2xvYmFs
T2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoY3VzdG9tR2V0VmFsdWVHbG9iYWxP
YmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdCk7
CiB9CiAKLXN0YXRpYyBib29sIEpJVF9PUEVSQVRJT04gY3VzdG9tU2V0QWNjZXNzb3IoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc09iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKGN1c3RvbVNl
dEFjY2Vzc29yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc09iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBEb2xsYXJW
TUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKQEAgLTE1MzIsNyArMTU2NCw3IEBAIHN0YXRpYyBib29sIEpJVF9PUEVSQVRJT04gY3VzdG9t
U2V0QWNjZXNzb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBib29sIEpJVF9PUEVSQVRJT04gY3VzdG9tU2V0VmFsdWUo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgc2xvdFZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoY3Vz
dG9tU2V0VmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSBzbG90VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgRG9sbGFy
Vk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CkBAIC0xNTQ4LDcgKzE1ODAsNyBAQCBzdGF0aWMgYm9vbCBKSVRfT1BFUkFUSU9OIGN1c3Rv
bVNldFZhbHVlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKUwogICAgIHJl
dHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCBKSVRfT1BFUkFUSU9OIGN1c3RvbUZ1bmN0aW9u
U2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoY3VzdG9t
RnVuY3Rpb25TZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBEb2xsYXJWTUFzc2Vy
dFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcAppbmRleCBhMmI2
ZGZlMmNkYjE5MjNkNjllOGJhOTM1YzcyMThkYjhjYmE2MzU5Li43MDNiYmQxZjM0ZmNiMTcyZjQ0
YzE1YzZiMmUxYzdlYTg4ZDc4NTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbU9wZXJhdGlvbnMuY3BwCkBAIC01NSw3ICs1NSw3IEBAIElHTk9SRV9XQVJOSU5HU19CRUdJ
TigiZnJhbWUtYWRkcmVzcyIpCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAK
LXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25XYXNtVGhyb3dCYWRJNjQoSlNXZWJBc3NlbWJs
eUluc3RhbmNlKiBpbnN0YW5jZSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25X
YXNtVGhyb3dCYWRJNjQsIHZvaWQsIChKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RhbmNlKSkK
IHsKICAgICBWTSYgdm0gPSBpbnN0YW5jZS0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMzksNyArMjM5LDcgQEAgaW5saW5lIGJv
b2wgc2hvdWxkSklUKHVuc2lnbmVkIGZ1bmN0aW9uSW5kZXgpCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25XYXNtVHJpZ2dlck9TUkVudHJ5Tm93KFBy
b2JlOjpDb250ZXh0JiBjb250ZXh0KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bldhc21UcmlnZ2VyT1NSRW50cnlOb3csIHZvaWQsIChQcm9iZTo6Q29udGV4dCYgY29udGV4dCkp
CiB7CiAgICAgT1NSRW50cnlEYXRhJiBvc3JFbnRyeURhdGEgPSAqY29udGV4dC5hcmc8T1NSRW50
cnlEYXRhKj4oKTsKICAgICB1aW50MzJfdCBmdW5jdGlvbkluZGV4ID0gb3NyRW50cnlEYXRhLmZ1
bmN0aW9uSW5kZXgoKTsKQEAgLTQzNyw3ICs0MzcsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uV2FzbVRyaWdnZXJPU1JFbnRyeU5vdyhQcm9iZTo6Q29udGV4dCYgY29udGV4dCkKICAg
ICByZXR1cm4gcmV0dXJuV2l0aG91dE9TUkVudHJ5KCk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25XYXNtVHJpZ2dlclRpZXJVcE5vdyhJbnN0YW5jZSogaW5zdGFuY2UsIHVpbnQz
Ml90IGZ1bmN0aW9uSW5kZXgpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Fz
bVRyaWdnZXJUaWVyVXBOb3csIHZvaWQsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVpbnQzMl90IGZ1
bmN0aW9uSW5kZXgpKQogewogICAgIFdhc206OkNvZGVCbG9jayYgY29kZUJsb2NrID0gKmluc3Rh
bmNlLT5jb2RlQmxvY2soKTsKICAgICBBU1NFUlQoaW5zdGFuY2UtPm1lbW9yeSgpLT5tb2RlKCkg
PT0gY29kZUJsb2NrLm1vZGUoKSk7CkBAIC00NzYsNyArNDc2LDcgQEAgdm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbldhc21UcmlnZ2VyVGllclVwTm93KEluc3RhbmNlKiBpbnN0YW5jZSwgdWlu
dDMyX3QgZnUKICAgICB9CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25XYXNtVW53
aW5kKENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbldhc21VbndpbmQsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgLy8g
RklYTUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0ZWFkLgog
ICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMyMDYKQEAg
LTQ4Niw3ICs0ODYsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uV2FzbVVud2luZChD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKICAgICBBU1NFUlQoISF2bS5jYWxsRnJhbWVGb3JDYXRjaCk7
CiB9CiAKLWRvdWJsZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbnZlcnRUb0Y2NChDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNvbnZlcnRUb0Y2NCwgZG91YmxlLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUg
dikpCiB7CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJBc3NlbWJseUluc3Rh
bmNlKiBpbnN0ZWFkLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDMyMDYKQEAgLTQ5NSw3ICs0OTUsNyBAQCBkb3VibGUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25Db252ZXJ0VG9GNjQoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdikKICAgICBy
ZXR1cm4gdi50b051bWJlcihjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKTsKIH0K
IAotaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbnZlcnRUb0kzMihDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgSlNWYWx1ZSB2KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbnZlcnRUb0kzMiwgaW50MzJfdCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHYp
KQogewogICAgIC8vIEZJWE1FOiBDb25zaWRlciBwYXNzaW5nIEpTV2ViQXNzZW1ibHlJbnN0YW5j
ZSogaW5zdGVhZC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAzMjA2CkBAIC01MDQsNyArNTA0LDcgQEAgaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkNvbnZlcnRUb0kzMihDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2KQogICAgIHJl
dHVybiB2LnRvSW50MzIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSk7CiB9CiAK
LWZsb2F0IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29udmVydFRvRjMyKENhbGxGcmFtZSogY2Fs
bEZyYW1lLCBKU1ZhbHVlIHYpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29u
dmVydFRvRjMyLCBmbG9hdCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHYpKQogewog
ICAgIC8vIEZJWE1FOiBDb25zaWRlciBwYXNzaW5nIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5z
dGVhZC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAz
MjA2CkBAIC01MTMsNyArNTEzLDcgQEAgZmxvYXQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db252
ZXJ0VG9GMzIoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdikKICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KHYudG9OdW1iZXIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KHZtKSkpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMo
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0YW5jZSwgY29uc3QgU2lnbmF0dXJl
KiBzaWduYXR1cmUsIEpTVmFsdWUgcmVzdWx0LCB1aW50NjRfdCogcmVnaXN0ZXJSZXN1bHRzLCB1
aW50NjRfdCogY2FsbGVlRnJhbWVQb2ludGVyKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkl0ZXJhdGVSZXN1bHRzLCB2b2lkLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEluc3Rh
bmNlKiBpbnN0YW5jZSwgY29uc3QgU2lnbmF0dXJlKiBzaWduYXR1cmUsIEpTVmFsdWUgcmVzdWx0
LCB1aW50NjRfdCogcmVnaXN0ZXJSZXN1bHRzLCB1aW50NjRfdCogY2FsbGVlRnJhbWVQb2ludGVy
KSkKIHsKICAgICAvLyBGSVhNRTogQ29uc2lkZXIgcGFzc2luZyBKU1dlYkFzc2VtYmx5SW5zdGFu
Y2UqIGluc3RlYWQuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMzIwNgpAQCAtNTcyLDcgKzU3Miw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25JdGVyYXRlUmVzdWx0cyhDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSW5zdGFuY2UqIGluc3RhCiAv
LyBGSVhNRTogSXQgd291bGQgYmUgbXVjaCBlYXNpZXIgdG8gaW5saW5lIHRoaXMgd2hlbiB3ZSBo
YXZlIGEgZ2xvYmFsIEdDLCB3aGljaCBjb3VsZCBwcm9iYWJseSBtZWFuIHdlIGNvdWxkIGF2b2lk
CiAvLyBzcGlsbGluZyB0aGUgcmVzdWx0cyBvbnRvIHRoZSBzdGFjay4KIC8vIFNhdmVkIHJlc3Vs
dCByZWdpc3RlcnMgc2hvdWxkIGJlIHBsYWNlZCBvbiB0aGUgc3RhY2sganVzdCBhYm92ZSB0aGUg
bGFzdCBzdGFjayByZXN1bHQuCi1KU0FycmF5KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFsbG9j
YXRlUmVzdWx0c0FycmF5KENhbGxGcmFtZSogY2FsbEZyYW1lLCBXYXNtOjpJbnN0YW5jZSogaW5z
dGFuY2UsIGNvbnN0IFNpZ25hdHVyZSogc2lnbmF0dXJlLCBJbmRleGluZ1R5cGUgaW5kZXhpbmdU
eXBlLCBKU1ZhbHVlKiBzdGFja1BvaW50ZXJGcm9tQ2FsbGVlKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5LCBKU0FycmF5KiwgKENhbGxGcmFt
ZSogY2FsbEZyYW1lLCBXYXNtOjpJbnN0YW5jZSogaW5zdGFuY2UsIGNvbnN0IFNpZ25hdHVyZSog
c2lnbmF0dXJlLCBJbmRleGluZ1R5cGUgaW5kZXhpbmdUeXBlLCBKU1ZhbHVlKiBzdGFja1BvaW50
ZXJGcm9tQ2FsbGVlKSkKIHsKICAgICBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGpzSW5zdGFuY2Ug
PSBpbnN0YW5jZS0+b3duZXI8SlNXZWJBc3NlbWJseUluc3RhbmNlPigpOwogICAgIFZNJiB2bSA9
IGpzSW5zdGFuY2UtPnZtKCk7CkBAIC02MDMsNyArNjAzLDcgQEAgSlNBcnJheSogSklUX09QRVJB
VElPTiBvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheShDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
V2FzbToKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uV2FzbVdyaXRlQmFycmllclNsb3dQYXRoKEpTQ2VsbCogY2VsbCwgVk0qIHZtUG9pbnRlcikK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtV3JpdGVCYXJyaWVyU2xvd1Bh
dGgsIHZvaWQsIChKU0NlbGwqIGNlbGwsIFZNKiB2bVBvaW50ZXIpKQogewogICAgIEFTU0VSVChj
ZWxsKTsKICAgICBBU1NFUlQodm1Qb2ludGVyKTsKQEAgLTYxMSwxNyArNjExLDE3IEBAIHZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25XYXNtV3JpdGVCYXJyaWVyU2xvd1BhdGgoSlNDZWxsKiBj
ZWxsLCBWTSogdm1Qb2ludGVyCiAgICAgdm0uaGVhcC53cml0ZUJhcnJpZXJTbG93UGF0aChjZWxs
KTsKIH0KIAotdWludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qb3Bjb3VudDMyKGludDMy
X3QgdmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUG9wY291bnQzMiwg
dWludDMyX3QsIChpbnQzMl90IHZhbHVlKSkKIHsKICAgICByZXR1cm4gX19idWlsdGluX3BvcGNv
dW50KHZhbHVlKTsKIH0KIAotdWludDY0X3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qb3Bjb3Vu
dDY0KGludDY0X3QgdmFsdWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUG9w
Y291bnQ2NCwgdWludDY0X3QsIChpbnQ2NF90IHZhbHVlKSkKIHsKICAgICByZXR1cm4gX19idWls
dGluX3BvcGNvdW50bGwodmFsdWUpOwogfQogCi1pbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uR3Jvd01lbW9yeSh2b2lkKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0YW5jZSwgaW50MzJf
dCBkZWx0YSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Hcm93TWVtb3J5LCBp
bnQzMl90LCAodm9pZCogY2FsbEZyYW1lLCBJbnN0YW5jZSogaW5zdGFuY2UsIGludDMyX3QgZGVs
dGEpKQogewogICAgIGluc3RhbmNlLT5zdG9yZVRvcENhbGxGcmFtZShjYWxsRnJhbWUpOwogCkBA
IC02NDMsNyArNjQzLDcgQEAgaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdyb3dNZW1v
cnkodm9pZCogY2FsbEZyYW1lLCBJbnN0YW5jZSogaW5zdGFuY2UsIGkKICAgICByZXR1cm4gZ3Jv
d24udmFsdWUoKS5wYWdlQ291bnQoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25HZXRXYXNtVGFibGVFbGVtZW50KEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWdu
ZWQgdGFibGVJbmRleCwgaW50MzJfdCBzaWduZWRJbmRleCkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25HZXRXYXNtVGFibGVFbGVtZW50LCBFbmNvZGVkSlNWYWx1ZSwgKEluc3Rh
bmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgdGFibGVJbmRleCwgaW50MzJfdCBzaWduZWRJbmRleCkp
CiB7CiAgICAgQVNTRVJUKHRhYmxlSW5kZXggPCBpbnN0YW5jZS0+bW9kdWxlKCkubW9kdWxlSW5m
b3JtYXRpb24oKS50YWJsZUNvdW50KCkpOwogICAgIGlmIChzaWduZWRJbmRleCA8IDApCkBAIC02
ODksMTIgKzY4OSwxMiBAQCBzdGF0aWMgYm9vbCBzZXRXYXNtVGFibGVFbGVtZW50KEluc3RhbmNl
KiBpbnN0YW5jZSwgdW5zaWduZWQgdGFibGVJbmRleCwgaW50MzJfdAogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU2V0V2FzbVRhYmxlRWxlbWVudChJ
bnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIHRhYmxlSW5kZXgsIGludDMyX3Qgc2lnbmVkSW5k
ZXgsIEVuY29kZWRKU1ZhbHVlIGVuY1ZhbHVlKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblNldFdhc21UYWJsZUVsZW1lbnQsIGJvb2wsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVu
c2lnbmVkIHRhYmxlSW5kZXgsIGludDMyX3Qgc2lnbmVkSW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVu
Y1ZhbHVlKSkKIHsKICAgICByZXR1cm4gc2V0V2FzbVRhYmxlRWxlbWVudChpbnN0YW5jZSwgdGFi
bGVJbmRleCwgc2lnbmVkSW5kZXgsIGVuY1ZhbHVlKTsKIH0KIAotaW50MzJfdCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbldhc21UYWJsZUdyb3coSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCB0
YWJsZUluZGV4LCBFbmNvZGVkSlNWYWx1ZSBmaWxsLCBpbnQzMl90IGRlbHRhKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUdyb3csIGludDMyX3QsIChJbnN0YW5j
ZSogaW5zdGFuY2UsIHVuc2lnbmVkIHRhYmxlSW5kZXgsIEVuY29kZWRKU1ZhbHVlIGZpbGwsIGlu
dDMyX3QgZGVsdGEpKQogewogICAgIEFTU0VSVCh0YWJsZUluZGV4IDwgaW5zdGFuY2UtPm1vZHVs
ZSgpLm1vZHVsZUluZm9ybWF0aW9uKCkudGFibGVDb3VudCgpKTsKICAgICBhdXRvIG9sZFNpemUg
PSBpbnN0YW5jZS0+dGFibGUodGFibGVJbmRleCktPmxlbmd0aCgpOwpAQCAtNzEwLDcgKzcxMCw3
IEBAIGludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25XYXNtVGFibGVHcm93KEluc3RhbmNl
KiBpbnN0YW5jZSwgdW5zaWduZWQgdGFibGVJCiAgICAgcmV0dXJuIG9sZFNpemU7CiB9CiAKLWJv
b2wgSklUX09QRVJBVElPTiBvcGVyYXRpb25XYXNtVGFibGVGaWxsKEluc3RhbmNlKiBpbnN0YW5j
ZSwgdW5zaWduZWQgdGFibGVJbmRleCwgaW50MzJfdCB1bnNhZmVPZmZzZXQsIEVuY29kZWRKU1Zh
bHVlIGZpbGwsIGludDMyX3QgdW5zYWZlQ291bnQpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uV2FzbVRhYmxlRmlsbCwgYm9vbCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWdu
ZWQgdGFibGVJbmRleCwgaW50MzJfdCB1bnNhZmVPZmZzZXQsIEVuY29kZWRKU1ZhbHVlIGZpbGws
IGludDMyX3QgdW5zYWZlQ291bnQpKQogewogICAgIEFTU0VSVCh0YWJsZUluZGV4IDwgaW5zdGFu
Y2UtPm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0aW9uKCkudGFibGVDb3VudCgpKTsKICAgICBpZiAo
dW5zYWZlT2Zmc2V0IDwgMCB8fCB1bnNhZmVDb3VudCA8IDApCkBAIC03MjgsMTkgKzcyOCwxOSBA
QCBib29sIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uV2FzbVRhYmxlRmlsbChJbnN0YW5jZSogaW5z
dGFuY2UsIHVuc2lnbmVkIHRhYmxlSW5kZQogICAgIHJldHVybiB0cnVlOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbldhc21SZWZGdW5jKEluc3RhbmNlKiBpbnN0
YW5jZSwgdWludDMyX3QgaW5kZXgpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
V2FzbVJlZkZ1bmMsIEVuY29kZWRKU1ZhbHVlLCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1aW50MzJf
dCBpbmRleCkpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IGluc3RhbmNlLT5nZXRGdW5jdGlvbldy
YXBwZXIoaW5kZXgpOwogICAgIEFTU0VSVCh2YWx1ZS5pc0NhbGxhYmxlKGluc3RhbmNlLT5vd25l
cjxKU09iamVjdD4oKS0+dm0oKSkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodmFsdWUp
OwogfQogCi1pbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0V2FzbVRhYmxlU2l6ZShJ
bnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIHRhYmxlSW5kZXgpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uR2V0V2FzbVRhYmxlU2l6ZSwgaW50MzJfdCwgKEluc3RhbmNlKiBp
bnN0YW5jZSwgdW5zaWduZWQgdGFibGVJbmRleCkpCiB7CiAgICAgcmV0dXJuIGluc3RhbmNlLT50
YWJsZSh0YWJsZUluZGV4KS0+bGVuZ3RoKCk7CiB9CiAKLXZvaWQqIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uV2FzbVRvSlNFeGNlcHRpb24oQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIFdhc206OkV4Y2Vw
dGlvblR5cGUgdHlwZSwgSW5zdGFuY2UqIHdhc21JbnN0YW5jZSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25XYXNtVG9KU0V4Y2VwdGlvbiwgdm9pZCosIChDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgV2FzbTo6RXhjZXB0aW9uVHlwZSB0eXBlLCBJbnN0YW5jZSogd2FzbUluc3RhbmNl
KSkKIHsKICAgICB3YXNtSW5zdGFuY2UtPnN0b3JlVG9wQ2FsbEZyYW1lKGNhbGxGcmFtZSk7CiAg
ICAgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0YW5jZSA9IHdhc21JbnN0YW5jZS0+b3duZXI8
SlNXZWJBc3NlbWJseUluc3RhbmNlPigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21PcGVyYXRpb25zLmgKaW5kZXggMWZlNWFjZTExN2FkYmJiYTJiYzQ1MWE3MzAxODY3NjNhNGZk
Nzg3Yy4uODE5MTdhMmViYWMzMGVkNzVhNDljNzM3NWQwMjQ2MmFmZTFjZDVmYyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oCkBAIC00NSwzMSArNDUsMzEg
QEAgbmFtZXNwYWNlIFdhc20gewogY2xhc3MgSW5zdGFuY2U7CiBjbGFzcyBTaWduYXR1cmU7CiAK
LXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25XYXNtVHJpZ2dlck9TUkVudHJ5Tm93KFByb2Jl
OjpDb250ZXh0JikgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbldh
c21UcmlnZ2VyVGllclVwTm93KEluc3RhbmNlKiwgdWludDMyX3QgZnVuY3Rpb25JbmRleCkgV1RG
X0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbldhc21UaHJvd0JhZEk2NChK
U1dlYkFzc2VtYmx5SW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uV2FzbVVud2luZChDYWxsRnJhbWUqKSBXVEZfSU5URVJOQUw7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UcmlnZ2VyT1NSRW50cnlOb3csIHZvaWQsIChQ
cm9iZTo6Q29udGV4dCYpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Fz
bVRyaWdnZXJUaWVyVXBOb3csIHZvaWQsIChJbnN0YW5jZSosIHVpbnQzMl90IGZ1bmN0aW9uSW5k
ZXgpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRocm93QmFkSTY0
LCB2b2lkLCAoSlNXZWJBc3NlbWJseUluc3RhbmNlKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25XYXNtVW53aW5kLCB2b2lkLCAoQ2FsbEZyYW1lKikpOwogCi1kb3VibGUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25Db252ZXJ0VG9GNjQoQ2FsbEZyYW1lKiwgSlNWYWx1ZSkg
V1RGX0lOVEVSTkFMOwotaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbnZlcnRUb0kz
MihDYWxsRnJhbWUqLCBKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci1mbG9hdCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkNvbnZlcnRUb0YzMihDYWxsRnJhbWUqLCBKU1ZhbHVlKSBXVEZfSU5URVJOQUw7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0Y2NCwgZG91Ymxl
LCAoQ2FsbEZyYW1lKiwgSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Db252ZXJ0VG9JMzIsIGludDMyX3QsIChDYWxsRnJhbWUqLCBKU1ZhbHVlKSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0YzMiwgZmxvYXQsIChDYWxs
RnJhbWUqLCBKU1ZhbHVlKSk7CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25JdGVyYXRl
UmVzdWx0cyhDYWxsRnJhbWUqLCBJbnN0YW5jZSosIGNvbnN0IFNpZ25hdHVyZSosIEpTVmFsdWUs
IHVpbnQ2NF90KiwgdWludDY0X3QqKSBXVEZfSU5URVJOQUw7Ci1KU0FycmF5KiBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KENhbGxGcmFtZSosIFdhc206Okluc3Rh
bmNlKiwgY29uc3QgU2lnbmF0dXJlKiwgSW5kZXhpbmdUeXBlLCBKU1ZhbHVlKikgV1RGX0lOVEVS
TkFMOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRlUmVzdWx0cywg
dm9pZCwgKENhbGxGcmFtZSosIEluc3RhbmNlKiwgY29uc3QgU2lnbmF0dXJlKiwgSlNWYWx1ZSwg
dWludDY0X3QqLCB1aW50NjRfdCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXksIEpTQXJyYXkqLCAoQ2FsbEZyYW1lKiwgV2FzbTo6SW5z
dGFuY2UqLCBjb25zdCBTaWduYXR1cmUqLCBJbmRleGluZ1R5cGUsIEpTVmFsdWUqKSk7CiAKLXZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25XYXNtV3JpdGVCYXJyaWVyU2xvd1BhdGgoSlNDZWxs
KiwgVk0qKSBXVEZfSU5URVJOQUw7Ci11aW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblBv
cGNvdW50MzIoaW50MzJfdCkgV1RGX0lOVEVSTkFMOwotdWludDY0X3QgSklUX09QRVJBVElPTiBv
cGVyYXRpb25Qb3Bjb3VudDY0KGludDY0X3QpIFdURl9JTlRFUk5BTDsKLWludDMyX3QgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25Hcm93TWVtb3J5KHZvaWQqLCBJbnN0YW5jZSosIGludDMyX3QpIFdU
Rl9JTlRFUk5BTDsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVdyaXRl
QmFycmllclNsb3dQYXRoLCB2b2lkLCAoSlNDZWxsKiwgVk0qKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblBvcGNvdW50MzIsIHVpbnQzMl90LCAoaW50MzJfdCkpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Qb3Bjb3VudDY0LCB1aW50NjRfdCwgKGlu
dDY0X3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR3Jvd01lbW9yeSwg
aW50MzJfdCwgKHZvaWQqLCBJbnN0YW5jZSosIGludDMyX3QpKTsKIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRXYXNtVGFibGVFbGVtZW50KEluc3RhbmNlKiwgdW5z
aWduZWQsIGludDMyX3QpIFdURl9JTlRFUk5BTDsKLWJvb2wgSklUX09QRVJBVElPTiBvcGVyYXRp
b25TZXRXYXNtVGFibGVFbGVtZW50KEluc3RhbmNlKiwgdW5zaWduZWQsIGludDMyX3QsIEVuY29k
ZWRKU1ZhbHVlIGVuY1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbldhc21SZWZGdW5jKEluc3RhbmNlKiwgdWludDMyX3QpIFdURl9JTlRF
Uk5BTDsKLWludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25XYXNtVGFibGVHcm93KEluc3Rh
bmNlKiwgdW5zaWduZWQsIEVuY29kZWRKU1ZhbHVlIGZpbGwsIGludDMyX3QgZGVsdGEpIFdURl9J
TlRFUk5BTDsKLWJvb2wgSklUX09QRVJBVElPTiBvcGVyYXRpb25XYXNtVGFibGVGaWxsKEluc3Rh
bmNlKiwgdW5zaWduZWQsIGludDMyX3Qgb2Zmc2V0LCBFbmNvZGVkSlNWYWx1ZSBmaWxsLCBpbnQz
Ml90IGNvdW50KSBXVEZfSU5URVJOQUw7Ci1pbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
R2V0V2FzbVRhYmxlU2l6ZShJbnN0YW5jZSosIHVuc2lnbmVkKSBXVEZfSU5URVJOQUw7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFdhc21UYWJsZUVsZW1lbnQsIEVuY29k
ZWRKU1ZhbHVlLCAoSW5zdGFuY2UqLCB1bnNpZ25lZCwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25TZXRXYXNtVGFibGVFbGVtZW50LCBib29sLCAoSW5zdGFu
Y2UqLCB1bnNpZ25lZCwgaW50MzJfdCwgRW5jb2RlZEpTVmFsdWUgZW5jVmFsdWUpKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVJlZkZ1bmMsIEVuY29kZWRKU1ZhbHVl
LCAoSW5zdGFuY2UqLCB1aW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25XYXNtVGFibGVHcm93LCBpbnQzMl90LCAoSW5zdGFuY2UqLCB1bnNpZ25lZCwgRW5jb2Rl
ZEpTVmFsdWUgZmlsbCwgaW50MzJfdCBkZWx0YSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25XYXNtVGFibGVGaWxsLCBib29sLCAoSW5zdGFuY2UqLCB1bnNpZ25lZCwgaW50
MzJfdCBvZmZzZXQsIEVuY29kZWRKU1ZhbHVlIGZpbGwsIGludDMyX3QgY291bnQpKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0V2FzbVRhYmxlU2l6ZSwgaW50MzJfdCwg
KEluc3RhbmNlKiwgdW5zaWduZWQpKTsKIAotdm9pZCogSklUX09QRVJBVElPTiBvcGVyYXRpb25X
YXNtVG9KU0V4Y2VwdGlvbihDYWxsRnJhbWUqLCBXYXNtOjpFeGNlcHRpb25UeXBlLCBJbnN0YW5j
ZSopIFdURl9JTlRFUk5BTDsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Fz
bVRvSlNFeGNlcHRpb24sIHZvaWQqLCAoQ2FsbEZyYW1lKiwgV2FzbTo6RXhjZXB0aW9uVHlwZSwg
SW5zdGFuY2UqKSk7CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtQ2FsbGluZ0NvbnZlbnRpb25zLmggYi9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUNhbGxpbmdDb252ZW50aW9ucy5oCmluZGV4IGQ1OTBjNTQzMWI5MDYwMjA1
ZTRhOTVkMzE4MDdkZGIzYjI5ZDY0NDUuLjZhNGMyZDFjMmM1MDEzZjM1OWE3MDk2ZjZkNDZkNDAz
ZTVlMmQzNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtQ2FsbGluZ0NvbnZl
bnRpb25zLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1DYWxsaW5nQ29udmVudGlvbnMu
aApAQCAtNzUsNyArNzUsMTkgQEAKICNlbmRpZgogCiAjaWYgRU5BQkxFKEpJVCkgJiYgQ0FMTElO
R19DT05WRU5USU9OX0lTX1NURENBTEwKLSNkZWZpbmUgSklUX09QRVJBVElPTiBDREVDTAorI2Rl
ZmluZSBKSVRfT1BFUkFUSU9OX0FUVFJJQlVURSBDREVDTAogI2Vsc2UKLSNkZWZpbmUgSklUX09Q
RVJBVElPTgorI2RlZmluZSBKSVRfT1BFUkFUSU9OX0FUVFJJQlVURQogI2VuZGlmCisKKworI2Rl
ZmluZSBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04oZnVuY3Rpb25OYW1lLCByZXR1cm5UeXBlLCBw
YXJhbWV0ZXJzKSBcCisgICAgcmV0dXJuVHlwZSBKSVRfT1BFUkFUSU9OX0FUVFJJQlVURSBmdW5j
dGlvbk5hbWUgcGFyYW1ldGVycworI2RlZmluZSBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKGZ1
bmN0aW9uTmFtZSwgcmV0dXJuVHlwZSwgcGFyYW1ldGVycykgXAorICAgIHJldHVyblR5cGUgSklU
X09QRVJBVElPTl9BVFRSSUJVVEUgZnVuY3Rpb25OYW1lIHBhcmFtZXRlcnMgUkVGRVJFTkNFRF9G
Uk9NX0FTTSBXVEZfSU5URVJOQUwKKyNkZWZpbmUgSlNDX0FOTk9UQVRFX0pJVF9PUEVSQVRJT04o
ZnVuY3Rpb25JZCwgZnVuY3Rpb24pCisKKyNkZWZpbmUgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
UihmdW5jdGlvbk5hbWUpIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04oZnVuY3Rpb25OYW1lLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCAoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKSkKKyNkZWZpbmUgSlNDX0RFQ0xBUkVfQ1VTVE9NX1NF
VFRFUihmdW5jdGlvbk5hbWUpIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04oZnVuY3Rpb25OYW1l
LCBib29sLCAoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpKQorI2RlZmluZSBKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoZnVuY3Rp
b25OYW1lLCBwYXJhbWV0ZXJzKSBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04oZnVuY3Rpb25OYW1l
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBwYXJhbWV0ZXJzKQorI2RlZmluZSBKU0NfREVGSU5FX0NV
U1RPTV9TRVRURVIoZnVuY3Rpb25OYW1lLCBwYXJhbWV0ZXJzKSBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04oZnVuY3Rpb25OYW1lLCBib29sLCBwYXJhbWV0ZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCmluZGV4IGMwMjFhNWNjYzA4YTY5
ZjVjZjljYjFjMDRjMzg4NGNlYWFiYTNiMTcuLjI5ZGE2M2M5MTdkYmNiZDhlOTVjZTBmOWI0MjRk
NzQwNWZhZTY0YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0N1c3RvbS5jcHAKQEAgLTY1LDYgKzY1LDU3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAK
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uU2hv
d01vZGFsRGlhbG9nKTsKIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNET01XaW5kb3dJbnN0
YW5jZUZ1bmN0aW9uT3BlbkRhdGFiYXNlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzUmVtb3RlRE9NV2luZG93SW5zdGFuY2VGdW5jdGlvbkJsdXJOb25DYWNoaW5nKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzRE9NV2luZG93SW5zdGFuY2VGdW5jdGlv
bkJsdXJOb25DYWNoaW5nKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzUmVt
b3RlRE9NV2luZG93SW5zdGFuY2VGdW5jdGlvbkNsb3NlTm9uQ2FjaGluZyk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25DbG9zZU5v
bkNhY2hpbmcpOworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNSZW1vdGVET01X
aW5kb3dJbnN0YW5jZUZ1bmN0aW9uRm9jdXNOb25DYWNoaW5nKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzRE9NV2luZG93SW5zdGFuY2VGdW5jdGlvbkZvY3VzTm9uQ2FjaGlu
Zyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1JlbW90ZURPTVdpbmRvd0lu
c3RhbmNlRnVuY3Rpb25Qb3N0TWVzc2FnZU5vbkNhY2hpbmcpOworc3RhdGljIEpTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIoanNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uUG9zdE1lc3NhZ2VOb25D
YWNoaW5nKTsKKyNpZiBFTkFCTEUoVVNFUl9NRVNTQUdFX0hBTkRMRVJTKQorc3RhdGljIEpTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNET01XaW5kb3dXZWJLaXQpOworI2VuZGlmCisKK0pTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihqc1JlbW90ZURPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25CbHVy
Tm9uQ2FjaGluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKK3sKKyAgICByZXR1cm4gbm9uQ2FjaGluZ1N0
YXRpY0Z1bmN0aW9uR2V0dGVySW1wbDxqc1JlbW90ZURPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25C
bHVyLCAwPihnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7Cit9CisKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25CbHVyTm9uQ2FjaGluZywgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lKSkKK3sKKyAgICByZXR1cm4gbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0
dGVySW1wbDxqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25CbHVyLCAwPihnbG9iYWxPYmplY3Qs
IHByb3BlcnR5TmFtZSk7Cit9CisKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1JlbW90ZURP
TVdpbmRvd0luc3RhbmNlRnVuY3Rpb25DbG9zZU5vbkNhY2hpbmcsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkp
Cit7CisgICAgcmV0dXJuIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlckltcGw8anNSZW1v
dGVET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uQ2xvc2UsIDA+KGdsb2JhbE9iamVjdCwgcHJvcGVy
dHlOYW1lKTsKK30KKworSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzRE9NV2luZG93SW5zdGFu
Y2VGdW5jdGlvbkNsb3NlTm9uQ2FjaGluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKK3sKKyAgICByZXR1
cm4gbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVySW1wbDxqc0RPTVdpbmRvd0luc3RhbmNl
RnVuY3Rpb25DbG9zZSwgMD4oZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUpOworfQorCitKU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoanNSZW1vdGVET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uRm9j
dXNOb25DYWNoaW5nLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQoreworICAgIHJldHVybiBub25DYWNoaW5n
U3RhdGljRnVuY3Rpb25HZXR0ZXJJbXBsPGpzUmVtb3RlRE9NV2luZG93SW5zdGFuY2VGdW5jdGlv
bkZvY3VzLCAwPihnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7Cit9CisKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25Gb2N1c05vbkNhY2hpbmcs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSkpCit7CisgICAgcmV0dXJuIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlv
bkdldHRlckltcGw8anNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uRm9jdXMsIDA+KGdsb2JhbE9i
amVjdCwgcHJvcGVydHlOYW1lKTsKK30KKworSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzUmVt
b3RlRE9NV2luZG93SW5zdGFuY2VGdW5jdGlvblBvc3RNZXNzYWdlTm9uQ2FjaGluZywgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJv
cGVydHlOYW1lKSkKK3sKKyAgICByZXR1cm4gbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVy
SW1wbDxqc1JlbW90ZURPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25Qb3N0TWVzc2FnZSwgMD4oZ2xv
YmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUpOworfQorCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uUG9zdE1lc3NhZ2VOb25DYWNoaW5nLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUpKQoreworICAgIHJldHVybiBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXJJ
bXBsPGpzRE9NV2luZG93SW5zdGFuY2VGdW5jdGlvblBvc3RNZXNzYWdlLCAyPihnbG9iYWxPYmpl
Y3QsIHByb3BlcnR5TmFtZSk7Cit9CiAKIHZvaWQgSlNET01XaW5kb3c6OnZpc2l0QWRkaXRpb25h
bENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewpAQCAtODAsNyArMTMxLDcgQEAgdm9p
ZCBKU0RPTVdpbmRvdzo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0
b3IpCiB9CiAKICNpZiBFTkFCTEUoVVNFUl9NRVNTQUdFX0hBTkRMRVJTKQotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNET01XaW5kb3dXZWJLaXQoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzRE9NV2luZG93V2ViS2l0LCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIEpTRE9NV2luZG93KiBjYXN0ZWRUaGlzID0gdG9KU0RPTVdpbmRvdyh2bSwgSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwpAQCAtMTAzLDE5ICsxNTQsMTkgQEAgYm9vbCBqc0RPTVdp
bmRvd0dldE93blByb3BlcnR5U2xvdFJlc3RyaWN0ZWRBY2Nlc3MoSlNET01HbG9iYWxPYmplY3Qq
IHRoaXNPYmplY3QKICAgICAvLyBUaGVzZSBhcmUgdGhlIGZ1bmN0aW9ucyB3ZSBhbGxvdyBhY2Nl
c3MgdG8gY3Jvc3Mtb3JpZ2luIChEb05vdENoZWNrU2VjdXJpdHkgaW4gSURMKS4KICAgICAvLyBB
bHdheXMgcHJvdmlkZSB0aGUgb3JpZ2luYWwgZnVuY3Rpb24sIG9uIGEgZnJlc2ggdW5jYWNoZWQg
ZnVuY3Rpb24gb2JqZWN0LgogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gYnVpbHRpbk5hbWVzLmJs
dXJQdWJsaWNOYW1lKCkpIHsKLSAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCB3aW5kb3dUeXBlID09IERPTVdpbmRvd1R5
cGU6OlJlbW90ZSA/IG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcjxqc1JlbW90ZURPTVdp
bmRvd0luc3RhbmNlRnVuY3Rpb25CbHVyLCAwPiA6IG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdl
dHRlcjxqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25CbHVyLCAwPik7CisgICAgICAgIHNsb3Qu
c2V0Q3VzdG9tKHRoaXNPYmplY3QsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwg
d2luZG93VHlwZSA9PSBET01XaW5kb3dUeXBlOjpSZW1vdGUgPyBqc1JlbW90ZURPTVdpbmRvd0lu
c3RhbmNlRnVuY3Rpb25CbHVyTm9uQ2FjaGluZyA6IGpzRE9NV2luZG93SW5zdGFuY2VGdW5jdGlv
bkJsdXJOb25DYWNoaW5nKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIGlmIChw
cm9wZXJ0eU5hbWUgPT0gYnVpbHRpbk5hbWVzLmNsb3NlUHVibGljTmFtZSgpKSB7Ci0gICAgICAg
IHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSwgd2luZG93VHlwZSA9PSBET01XaW5kb3dUeXBlOjpSZW1vdGUgPyBub25DYWNoaW5nU3Rh
dGljRnVuY3Rpb25HZXR0ZXI8anNSZW1vdGVET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uQ2xvc2Us
IDA+IDogbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyPGpzRE9NV2luZG93SW5zdGFuY2VG
dW5jdGlvbkNsb3NlLCAwPik7CisgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgd2luZG93VHlwZSA9PSBET01XaW5kb3dU
eXBlOjpSZW1vdGUgPyBqc1JlbW90ZURPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25DbG9zZU5vbkNh
Y2hpbmcgOiBqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25DbG9zZU5vbkNhY2hpbmcpOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBidWlsdGlu
TmFtZXMuZm9jdXNQdWJsaWNOYW1lKCkpIHsKLSAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09i
amVjdCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRP
bmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCB3aW5kb3dUeXBlID09IERP
TVdpbmRvd1R5cGU6OlJlbW90ZSA/IG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcjxqc1Jl
bW90ZURPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25Gb2N1cywgMD4gOiBub25DYWNoaW5nU3RhdGlj
RnVuY3Rpb25HZXR0ZXI8anNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uRm9jdXMsIDA+KTsKKyAg
ICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pLCB3aW5kb3dUeXBlID09IERPTVdpbmRvd1R5cGU6OlJlbW90ZSA/IGpzUmVtb3Rl
RE9NV2luZG93SW5zdGFuY2VGdW5jdGlvbkZvY3VzTm9uQ2FjaGluZyA6IGpzRE9NV2luZG93SW5z
dGFuY2VGdW5jdGlvbkZvY3VzTm9uQ2FjaGluZyk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KICAgICBpZiAocHJvcGVydHlOYW1lID09IGJ1aWx0aW5OYW1lcy5wb3N0TWVzc2FnZVB1Ymxp
Y05hbWUoKSkgewotICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIHdpbmRvd1R5cGUgPT0gRE9NV2luZG93VHlwZTo6UmVt
b3RlID8gbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyPGpzUmVtb3RlRE9NV2luZG93SW5z
dGFuY2VGdW5jdGlvblBvc3RNZXNzYWdlLCAwPiA6IG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdl
dHRlcjxqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25Qb3N0TWVzc2FnZSwgMj4pOworICAgICAg
ICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSksIHdpbmRvd1R5cGUgPT0gRE9NV2luZG93VHlwZTo6UmVtb3RlID8ganNSZW1vdGVET01X
aW5kb3dJbnN0YW5jZUZ1bmN0aW9uUG9zdE1lc3NhZ2VOb25DYWNoaW5nIDoganNET01XaW5kb3dJ
bnN0YW5jZUZ1bmN0aW9uUG9zdE1lc3NhZ2VOb25DYWNoaW5nKTsKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xv
Y2F0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25D
dXN0b20uY3BwCmluZGV4IDg0YjlhMTNlMTllYTE4OWRmMzA3NDc2MDY1ZGQzNzNlNTFlNGY2NTIu
LjM0Yjg3MjU1MmFkMzVhM2ZmOWYyNmU3YTkzMDAyNDJmOThiYzVmZjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCkBAIC0zNSw2ICszNSwx
MyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAorc3RhdGlj
IEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNMb2NhdGlvbkluc3RhbmNlRnVuY3Rpb25SZXBs
YWNlTm9uQ2FjaGluZyk7CisKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc0xvY2F0aW9uSW5z
dGFuY2VGdW5jdGlvblJlcGxhY2VOb25DYWNoaW5nLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpKQoreworICAg
IHJldHVybiBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXJJbXBsPGpzTG9jYXRpb25JbnN0
YW5jZUZ1bmN0aW9uUmVwbGFjZSwgMT4oZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUpOworfQor
CiBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RDb21tb24oSlNMb2NhdGlvbiYgdGhpc09i
amVjdCwgSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBWTSYgdm0gPSBsZXhpY2Fs
R2xvYmFsT2JqZWN0LnZtKCk7CkBAIC01NSw3ICs2Miw3IEBAIHN0YXRpYyBib29sIGdldE93blBy
b3BlcnR5U2xvdENvbW1vbihKU0xvY2F0aW9uJiB0aGlzT2JqZWN0LCBKU0dsb2JhbE9iamVjdCYg
bGV4CiAKICAgICAvLyBXZSBvbmx5IGFsbG93IGFjY2VzcyB0byBMb2NhdGlvbi5yZXBsYWNlKCkg
Y3Jvc3Mgb3JpZ2luLgogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gdm0ucHJvcGVydHlOYW1lcy0+
cmVwbGFjZSkgewotICAgICAgICBzbG90LnNldEN1c3RvbSgmdGhpc09iamVjdCwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSksIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcjxqc0xvY2F0aW9u
SW5zdGFuY2VGdW5jdGlvblJlcGxhY2UsIDE+KTsKKyAgICAgICAgc2xvdC5zZXRDdXN0b20oJnRo
aXNPYmplY3QsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9u
bHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBqc0xvY2F0aW9uSW5zdGFuY2VGdW5j
dGlvblJlcGxhY2VOb25DYWNoaW5nKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5j
dGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVu
Y3Rpb25zLmNwcAppbmRleCBmN2FiZjQyOTQzMTNhNTNkMTk5MWZmMWEwMzEyYTc3OWYyYmJkYTNm
Li5mNWFjNWE0ODZhZTg1NjBmM2U5YWI3OGFjYTk5NWIwOTgyMDdmNzJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5j
cHAKQEAgLTM2LDYgKzM2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIC8vIEphdmFT
Y3JpcHQgYWNjZXNzIHRvIHBsdWctaW4tZXhwb3J0ZWQgcHJvcGVydGllcyBmb3IgSlNIVE1MQXBw
bGV0RWxlbWVudCwgSlNIVE1MRW1iZWRFbGVtZW50IGFuZCBKU0hUTUxPYmplY3RFbGVtZW50Lgog
CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsUGx1Z2luKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHBsdWdpbkVsZW1lbnRQcm9wZXJ0eUdldHRlcik7CiAK
IEluc3RhbmNlKiBwbHVnaW5JbnN0YW5jZShIVE1MRWxlbWVudCYgZWxlbWVudCkKIHsKQEAgLTk2
LDcgKzk3LDcgQEAgSlNPYmplY3QqIHBsdWdpblNjcmlwdE9iamVjdChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNIVE1MRWxlbWVudCoKICAgICByZXR1cm4gaW5zdGFuY2Ut
PmNyZWF0ZVJ1bnRpbWVPYmplY3QobGV4aWNhbEdsb2JhbE9iamVjdCk7CiB9CiAgICAgCi1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgcGx1Z2luRWxlbWVudFByb3BlcnR5R2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIocGx1Z2luRWxl
bWVudFByb3BlcnR5R2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkpCiB7
CiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGU3NDJjZWFmMmY4Y2MzOWU2OGIx
ODIzMzU3YjVmNWMzZjg1ZTI1YjkuLjE4NmQ1MGZiNDM3YTVlNzAyYzVmMjdhNmE5NmEyZjE5NzRi
OGNjNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCkBAIC0zMjcwLDEwICszMjcwLDEwIEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgog
ICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVy
YXRlQ29uZGl0aW9uYWxTdHJpbmcoJGF0dHJpYnV0ZSk7CiAgICAgICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxT
dHJpbmc7CiAgICAgICAgICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgk
aW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKLSAgICAgICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICJKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gJHtnZXR0ZXJ9
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKCR7Z2V0dGVyfSk7XG4iKTsKICAgICAgICAgICAgIGlmICghSXNSZWFk
b25seSgkYXR0cmlidXRlKSkgewogICAgICAgICAgICAgICAgIG15ICRzZXR0ZXIgPSBHZXRBdHRy
aWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwotICAg
ICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJib29sIEpJVF9PUEVSQVRJT04gJHtz
ZXR0ZXJ9KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICJKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKCR7c2V0dGVyfSk7XG4iKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjZW5kaWZcbiIpIGlmICRjb25k
aXRpb25hbFN0cmluZzsKICAgICAgICAgfQpAQCAtNDI2NiwxMyArNDI2NiwxMyBAQCBzdWIgR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgaWYgKCRvcGVyYXRpb24tPmV4dGVuZGVk
QXR0cmlidXRlcy0+e0RPTUpJVH0pIHsKICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJE
T01KSVRJRExUeXBlLmgifSA9IDE7CiAgICAgICAgICAgICAgICAgbXkgJG5hbWVPZkZ1bmN0aW9u
V2l0aG91dFR5cGVDaGVjayA9ICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRmdW5jdGlvbk5h
bWUpIC4gIldpdGhvdXRUeXBlQ2hlY2siOwotICAgICAgICAgICAgICAgIG15ICRmdW5jdGlvblNp
Z25hdHVyZSA9ICJKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gJHtuYW1lT2ZGdW5j
dGlvbldpdGhvdXRUeXBlQ2hlY2t9KEpTQzo6SlNHbG9iYWxPYmplY3QqLCAkY2xhc3NOYW1lKiI7
CisgICAgICAgICAgICAgICAgbXkgJGZ1bmN0aW9uU2lnbmF0dXJlID0gIkpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04oJHtuYW1lT2ZGdW5jdGlvbldpdGhvdXRUeXBlQ2hlY2t9LCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCAoSlNDOjpKU0dsb2JhbE9iamVjdCosICRjbGFzc05hbWUqIjsKICAgICAgICAg
ICAgICAgICBmb3JlYWNoIG15ICRhcmd1bWVudCAoQHskb3BlcmF0aW9uLT5hcmd1bWVudHN9KSB7
CiAgICAgICAgICAgICAgICAgICAgIG15ICR0eXBlID0gJGFyZ3VtZW50LT50eXBlOwogICAgICAg
ICAgICAgICAgICAgICBteSAkYXJndW1lbnRUeXBlID0gR2V0QXJndW1lbnRUeXBlRm9yRnVuY3Rp
b25XaXRob3V0VHlwZUNoZWNrKCRpbnRlcmZhY2UsICR0eXBlKTsKICAgICAgICAgICAgICAgICAg
ICAgJGZ1bmN0aW9uU2lnbmF0dXJlIC49ICIsICR7YXJndW1lbnRUeXBlfSI7CiAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAkZnVuY3Rpb25TaWdu
YXR1cmUgLiAiKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAkZnVu
Y3Rpb25TaWduYXR1cmUgLiAiKSk7XG4iKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiI2VuZGlmXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAg
ICAgIH0KQEAgLTQyODYsMTAgKzQyODYsMTAgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
IAogICAgICAgICBpZiAoTmVlZHNDb25zdHJ1Y3RvclByb3BlcnR5KCRpbnRlcmZhY2UpKSB7CiAg
ICAgICAgICAgICBteSAkY29uc3RydWN0b3JHZXR0ZXIgPSAianMiIC4gJGludGVyZmFjZU5hbWUg
LiAiQ29uc3RydWN0b3IiOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gJHtjb25zdHJ1Y3RvckdldHRlcn0oSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTtcbiIp
OworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKCR7Y29uc3RydWN0b3JHZXR0ZXJ9KTtcbiIpOwogCiAgICAgICAgICAgICBteSAkY29uc3Ry
dWN0b3JTZXR0ZXIgPSAic2V0SlMiIC4gJGludGVyZmFjZU5hbWUgLiAiQ29uc3RydWN0b3IiOwot
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sIEpJVF9PUEVSQVRJT04gJHtjb25z
dHJ1Y3RvclNldHRlcn0oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIkpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoJHtjb25zdHJ1Y3RvclNldHRlcn0pO1xuIik7
CiAgICAgICAgIH0KIAogICAgICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGludGVyZmFj
ZS0+YXR0cmlidXRlc30pIHsKQEAgLTQyOTksNyArNDI5OSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiAgICAgICAgICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVy
YXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkYXR0cmlidXRlKTsKICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29u
ZGl0aW9uYWxTdHJpbmc7CiAgICAgICAgICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0
dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKLSAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICR7
Z2V0dGVyfShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoJHtnZXR0ZXJ9KTtcbiIpOwogICAgICAgICAgICAgaWYgKCFJ
c1JlYWRvbmx5KCRhdHRyaWJ1dGUpKSB7CiAgICAgICAgICAgICAgICAgbXkgJHJlYWRXcml0ZUNv
bmRpdGlvbmFsID0gJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZX07CiAgICAgICAgICAgICAgICAgaWYgKCRyZWFkV3JpdGVDb25kaXRpb25hbCkg
ewpAQCAtNDMwNyw3ICs0MzA3LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjaWYgJHtyZWFkV3JpdGVDb25kaXRp
b25hbFN0cmluZ31cbiIpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBteSAk
c2V0dGVyID0gR2V0QXR0cmlidXRlU2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAk
YXR0cmlidXRlKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgSklU
X09QRVJBVElPTiAke3NldHRlcn0oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKCR7c2V0dGVyfSk7XG4iKTsK
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNlbmRpZlxuIikgaWYgJHJlYWRX
cml0ZUNvbmRpdGlvbmFsOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIjZW5kaWZcbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKQEAgLTQ4NzAsNyArNDg3
MCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgaWYgKE5lZWRzQ29uc3RydWN0
b3JQcm9wZXJ0eSgkaW50ZXJmYWNlKSkgewogICAgICAgICBteSAkY29uc3RydWN0b3JHZXR0ZXIg
PSAianMiIC4gJGludGVyZmFjZU5hbWUgLiAiQ29uc3RydWN0b3IiOwogCi0gICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAke2NvbnN0cnVjdG9y
R2V0dGVyfShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpXG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoJHtjb25zdHJ1Y3RvckdldHRlcn0sIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7
CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7XG4iKTsKQEAgLTQ4OTAs
NyArNDg5MCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICAgICAgbXkgJGNv
bnN0cnVjdG9yU2V0dGVyID0gInNldEpTIiAuICRpbnRlcmZhY2VOYW1lIC4gIkNvbnN0cnVjdG9y
IjsKIAotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgSklUX09QRVJBVElPTiAke2Nv
bnN0cnVjdG9yU2V0dGVyfShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpXG4iKTsK
KyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoJHtj
b25zdHJ1Y3RvclNldHRlcn0sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKVxu
Iik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7
XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7XG4iKTsKQEAgLTUzMzgsNyArNTMzOCw3IEBAIHN1YiBH
ZW5lcmF0ZUF0dHJpYnV0ZUdldHRlclRyYW1wb2xpbmVEZWZpbml0aW9uCiAgICAgICAgIHB1c2go
QHRlbXBsYXRlUGFyYW1ldGVycywgIkNhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQiKTsK
ICAgICB9CiAgICAgCi0gICAgcHVzaChAJG91dHB1dEFycmF5LCAiRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiAke2F0dHJpYnV0ZUdldHRlck5hbWV9KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSlcbiIp
OworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIkpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUigke2F0
dHJpYnV0ZUdldHRlck5hbWV9LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSlcbiIpOwogICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIntcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1
cm4gSURMQXR0cmlidXRlPCR7Y2xhc3NOYW1lfT46OiR7Y2FsbEF0dHJpYnV0ZUdldHRlck5hbWV9
PCIgLiBqb2luKCIsICIsIEB0ZW1wbGF0ZVBhcmFtZXRlcnMpIC4gIj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgXCIiIC4gJGF0dHJpYnV0ZS0+bmFtZSAuICAiXCIpO1xuIik7CiAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKQEAgLTU1MjcsNyArNTUyNyw3IEBAIHN1
YiBHZW5lcmF0ZUF0dHJpYnV0ZVNldHRlclRyYW1wb2xpbmVEZWZpbml0aW9uCiAgICAgcHVzaChA
dGVtcGxhdGVQYXJhbWV0ZXJzLCAkYXR0cmlidXRlU2V0dGVyQm9keU5hbWUpOwogICAgIHB1c2go
QHRlbXBsYXRlUGFyYW1ldGVycywgIkNhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpSZXR1cm5FYXJs
eSIpIGlmICRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0xlZ2FjeUxlbmllbnRUaGlz
fTsKICAgICAKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJib29sIEpJVF9PUEVSQVRJT04gJHth
dHRyaWJ1dGVTZXR0ZXJOYW1lfShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpXG4i
KTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoJHth
dHRyaWJ1dGVTZXR0ZXJOYW1lfSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgcmV0dXJuIElETEF0dHJpYnV0ZTwke2NsYXNzTmFtZX0+Ojoke2NhbGxBdHRy
aWJ1dGVTZXR0ZXJOYW1lfTwiIC4gam9pbigiLCAiLCBAdGVtcGxhdGVQYXJhbWV0ZXJzKSAuICI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgXCIiIC4gJGF0
dHJpYnV0ZS0+bmFtZSAuICJcIik7XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5c
biIpOwpAQCAtNTczNCw3ICs1NzM0LDcgQEAgc3ViIEdlbmVyYXRlT3BlcmF0aW9uRGVmaW5pdGlv
bgogCiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCI8SmF2YVNjcmlwdENvcmUvRnJhbWVUcmFj
ZXJzLmg+IiwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAgbXkgJG5hbWVPZkZ1bmN0aW9uV2l0aG91
dFR5cGVDaGVjayA9ICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRmdW5jdGlvbk5hbWUpIC4g
IldpdGhvdXRUeXBlQ2hlY2siOwotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gJHtuYW1lT2ZGdW5jdGlvbldpdGhvdXRUeXBlQ2hl
Y2t9KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsICRjbGFzc05hbWUq
IGNhc3RlZFRoaXMiKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKCR7bmFtZU9mRnVuY3Rpb25XaXRob3V0VHlwZUNoZWNrfSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsICRj
bGFzc05hbWUqIGNhc3RlZFRoaXMiKTsKICAgICAgICAgZm9yZWFjaCBteSAkYXJndW1lbnQgKEB7
JG9wZXJhdGlvbi0+YXJndW1lbnRzfSkgewogICAgICAgICAgICAgbXkgJHR5cGUgPSAkYXJndW1l
bnQtPnR5cGU7CiAgICAgICAgICAgICBteSAkYXJndW1lbnRUeXBlID0gR2V0QXJndW1lbnRUeXBl
Rm9yRnVuY3Rpb25XaXRob3V0VHlwZUNoZWNrKCRpbnRlcmZhY2UsICR0eXBlKTsKQEAgLTU3NDIs
NyArNTc0Miw3IEBAIHN1YiBHZW5lcmF0ZU9wZXJhdGlvbkRlZmluaXRpb24KICAgICAgICAgICAg
IG15ICRlbmNvZGVkTmFtZSA9ICJlbmNvZGVkIiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0
KCRuYW1lKTsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiwgJHthcmd1bWVudFR5
cGV9ICR7ZW5jb2RlZE5hbWV9Iik7CiAgICAgICAgIH0KLSAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiKVxuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIikpXG4iKTsKICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7XG4iKTsKICAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7XG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNET01XaW5kb3cuY3BwCmluZGV4IGJlZTM2ODU4MTI5Y2JkMmMwNDA2NzBm
ZTBkNjg2MGY3YmMzNmM2MjIuLjkwYTJkOTRkYjBhZWJjYmVmYzIwNDI5NWYyZTYwZmY1MmI4YzA1
NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTRE9NV2luZG93LmNwcApAQCAtNTEsMjAgKzUxLDIwIEBAIHVzaW5nIG5hbWVzcGFjZSBK
U0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzRE9NV2luZG93Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU0RP
TVdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc0RPTVdpbmRvd0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNET01XaW5kb3dFeHBvc2VkVG9Xb3JrZXJBbmRXaW5k
b3dDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNET01XaW5kb3dUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNET01XaW5kb3dUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTRE9NV2luZG93VGVzdERlZmF1bHRUb0pTT05G
aWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc0RPTVdpbmRvd1Rlc3ROb2RlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU0RPTVdpbmRvd1Rlc3ROb2RlQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzRE9NV2luZG93VGVzdE9iamVjdENv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNET01XaW5kb3dUZXN0T2Jq
ZWN0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzRE9NV2luZG93VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNET01XaW5kb3dUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc0RPTVdpbmRv
d0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNET01XaW5kb3dD
b25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzRE9NV2luZG93RXhwb3Nl
ZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU0RPTVdpbmRvd0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNET01XaW5kb3dUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNET01XaW5k
b3dUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNET01XaW5kb3dUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2Vk
Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU0RPTVdpbmRvd1Rl
c3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzRE9NV2luZG93VGVzdE5vZGVDb25zdHJ1Y3Rvcik7CitKU0NfREVD
TEFSRV9DVVNUT01fU0VUVEVSKHNldEpTRE9NV2luZG93VGVzdE5vZGVDb25zdHJ1Y3Rvcik7CitK
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzRE9NV2luZG93VGVzdE9iamVjdENvbnN0cnVjdG9y
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNET01XaW5kb3dUZXN0T2JqZWN0Q29u
c3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc0RPTVdpbmRvd1Rlc3RQcm9t
aXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldEpTRE9NV2luZG93VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKTsKIAog
dXNpbmcgSlNET01XaW5kb3dDb25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1
Y3RhYmxlPEpTRE9NV2luZG93PjsKIApAQCAtMTY2LDcgKzE2Niw3IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIEpTRE9NV2luZG93KiBJRExBdHRyaWJ1dGU8SlNET01XaW5kb3c+OjpjYXN0KEpTR2xvYmFs
T2JqZWN0JiBsCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNET01XaW5kb3cqPihKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzRE9NV2luZG93Q29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzRE9NV2luZG93
Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNzYsNyArMTc2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc0RPTVdpbmRvd0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTRE9NV2luZG93OjpnZXRDb25zdHJ1
Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9i
amVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU0RPTVdpbmRvd0NvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X1NFVFRFUihzZXRKU0RPTVdpbmRvd0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMTk1LDcgKzE5NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc0RPTVdpbmRvd0V4cG9z
ZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yR2V0dGVyKEpTR2xvCiAgICAgcmV0dXJuIEpT
RXhwb3NlZFRvV29ya2VyQW5kV2luZG93OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSwgJnRoaXNPYmplY3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzRE9NV2luZG93RXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzRE9NV2luZG93
RXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNET01XaW5kb3c+OjpnZXQ8anNET01XaW5k
b3dFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgIkV4cG9zZWRUb1dvcmtlckFuZFdpbmRvdyIpOwogfQpAQCAt
MjA3LDcgKzIwNyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU0RPTVdpbmRvd0V4cG9zZWRU
b1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yU2V0dGVyKEpTR2xvCiAgICAgcmV0dXJuIHRoaXNP
YmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oIkV4cG9zZWRUb1dvcmtlckFuZFdpbmRvdyIpLCBzdHJsZW4o
IkV4cG9zZWRUb1dvcmtlckFuZFdpbmRvdyIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNET01XaW5kb3dFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRU
RVIoc2V0SlNET01XaW5kb3dFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU0RPTVdpbmRvdz46OnNldDxzZXRKU0RPTVdpbmRvd0V4cG9zZWRUb1dvcmtlckFuZFdp
bmRvd0NvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3ciKTsKIH0KQEAgLTIxOCw3ICsy
MTgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNET01XaW5kb3dUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZUNvbnN0cnVjdG9yR2V0dGVyKEpTRwogICAgIHJldHVybiBKU1Rlc3RDb25kaXRp
b25hbGx5UmVhZFdyaXRlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KSwgJnRoaXNPYmplY3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzRE9NV2luZG93VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNET01XaW5kb3dUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2luZG93Pjo6Z2V0PGpzRE9NV2luZG93VGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlIik7CiB9CkBAIC0y
MzAsNyArMjMwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTRE9NV2luZG93VGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvclNldHRlcihKU0cKICAgICByZXR1cm4gdGhpc09i
amVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUiKSwgc3RybGVu
KCJUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNET01XaW5kb3dUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X1NFVFRFUihzZXRKU0RPTVdpbmRvd1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0
b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNET01XaW5kb3c+OjpzZXQ8c2V0SlNET01XaW5kb3dUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZSIpOwogfQpA
QCAtMjQxLDcgKzI0MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc0RPTVdpbmRvd1Rlc3RE
ZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvckdlCiAgICAgcmV0dXJuIEpT
VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksICZ0aGlzT2JqZWN0KTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRC
eUV4cG9zZWRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoanNET01XaW5kb3dUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNET01XaW5kb3c+OjpnZXQ8anNET01XaW5kb3dUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVk
QnlFeHBvc2VkQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkIik7CiB9CkBAIC0yNTMsNyAr
MjUzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTRE9NV2luZG93VGVzdERlZmF1bHRUb0pT
T05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yU2UKICAgICByZXR1cm4gdGhpc09iamVjdC5w
dXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgTENoYXIqPigiVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZCIpLCBzdHJs
ZW4oIlRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQiKSksIHZhbHVlKTsKIH0KIAot
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTRE9NV2luZG93VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJl
ZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09O
RmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OnNldDxz
ZXRKU0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3Rv
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZCIpOwogfQpAQCAtMjY0LDcgKzI2NCw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc0RPTVdpbmRvd1Rlc3ROb2RlQ29uc3RydWN0b3JH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljCiAgICAgcmV0dXJuIEpTVGVzdE5vZGU6OmdldENv
bnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCAmdGhpc09iamVjdCk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNET01XaW5kb3dUZXN0Tm9kZUNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c0RPTVdpbmRvd1Rlc3ROb2RlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNET01XaW5kb3c+OjpnZXQ8anNET01XaW5kb3dUZXN0
Tm9kZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
VGVzdE5vZGUiKTsKIH0KQEAgLTI3Niw3ICsyNzYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNET01XaW5kb3dUZXN0Tm9kZUNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
YwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0Tm9kZSIpLCBzdHJs
ZW4oIlRlc3ROb2RlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU0RP
TVdpbmRvd1Rlc3ROb2RlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTRE9NV2luZG93VGVzdE5vZGVDb25z
dHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OnNldDxzZXRKU0RPTVdpbmRvd1Rlc3ROb2Rl
Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgIlRlc3ROb2RlIik7CiB9CkBAIC0yODcsNyArMjg3LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzRE9NV2luZG93VGVzdE9iamVjdENvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXgKICAgICByZXR1cm4gSlNUZXN0T2JqOjpnZXRDb25zdHJ1Y3RvcihKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgJnRoaXNPYmplY3QpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzRE9NV2luZG93VGVzdE9iamVjdENvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc0RPTVdpbmRvd1Rlc3RP
YmplY3RDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OmdldDxqc0RPTVdpbmRvd1Rlc3RPYmplY3RDb25zdHJ1
Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RPYmplY3Qi
KTsKIH0KQEAgLTI5OSw3ICsyOTksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNET01XaW5k
b3dUZXN0T2JqZWN0Q29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleAogICAgIHJl
dHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0T2JqZWN0IiksIHN0cmxlbigiVGVz
dE9iamVjdCIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNET01XaW5k
b3dUZXN0T2JqZWN0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTRE9NV2luZG93VGVzdE9iamVjdENvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTRE9NV2luZG93Pjo6c2V0PHNldEpTRE9NV2luZG93VGVzdE9iamVj
dENvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJUZXN0T2JqZWN0Iik7CiB9CkBAIC0zMTAsNyArMzEwLDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzRE9NV2luZG93VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVj
dG9yR2V0dGVyKEpTR2wKICAgICByZXR1cm4gSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Ojpn
ZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgJnRoaXNPYmpl
Y3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzRE9NV2luZG93VGVzdFBy
b21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihqc0RPTVdpbmRvd1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRD
b25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU0RPTVdpbmRvdz46OmdldDxqc0RPTVdpbmRvd1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZl
bnRDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRl
c3RQcm9taXNlUmVqZWN0aW9uRXZlbnQiKTsKIH0KQEAgLTMyMiw3ICszMjIsNyBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgc2V0SlNET01XaW5kb3dUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3Ry
dWN0b3JTZXR0ZXIoSlNHbAogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJU
ZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50IiksIHN0cmxlbigiVGVzdFByb21pc2VSZWplY3Rpb25F
dmVudCIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNET01XaW5kb3dU
ZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTRE9NV2luZG93VGVz
dFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2luZG93Pjo6
c2V0PHNldEpTRE9NV2luZG93VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0
UHJvbWlzZVJlamVjdGlvbkV2ZW50Iik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggZjIyNDA0ZjkzZDY2Mzk0ZDZhYmIwYzg1Y2ZiZmQ2Nzdh
NTgzMzE1MS4uOWMwZDg0ODZlNzQ1ODU3NDRlYjA1ZjdmMTYxZDgzZjk3M2I1NWZlMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRGVkaWNhdGVk
V29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtNDQsOCArNDQs
OCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU0RlZGljYXRlZFdvcmtlckdsb2Jh
bFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc0Rl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X1NFVFRFUihzZXRKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IpOwogCiB1
c2luZyBKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0
cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPjsKIApA
QCAtMTA2LDcgKzEwNiw3IEBAIEpTVmFsdWUgSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6
Z2V0Q29uc3RydWN0b3IoVk0mIHZtLCBjb25zdCBKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIGdl
dERPTUNvbnN0cnVjdG9yPEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcj4o
dm0sICpqc0Nhc3Q8Y29uc3QgSlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc0RlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKGpzRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEx
Niw3ICsxMTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzRGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iagogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkp
OwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX1NFVFRFUihzZXRKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9
IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3cuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRXhwb3NlZFRvV29ya2VyQW5k
V2luZG93LmNwcAppbmRleCA1ODlmNmMwMDg3MGYyYzVjYTE1ZjkzMzAwYTgxYmVkZjBiMTg5YzIy
Li45MjNmYzcyNjc2N2FjMDljNmM0NzQwNjdmNTIwODkxY2U4ZGQ4ZGU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNFeHBvc2VkVG9Xb3JrZXJB
bmRXaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvdy5jcHAKQEAgLTkxLDggKzkxLDggQEAgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd1Byb3RvdHlwZUZ1
bmN0aW9uRG9Tb21ldGhpbmcKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc0V4cG9zZWRUb1dvcmtl
ckFuZFdpbmRvd0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNF
eHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3Rvcik7CiAKIGNsYXNzIEpTRXhwb3NlZFRv
V29ya2VyQW5kV2luZG93UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9i
amVjdCB7CiBwdWJsaWM6CkBAIC0yMTksNyArMjE5LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNF
eHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3cqIElETE9wZXJhdGlvbjxKU0V4cG9zZWRUb1dvcmtlckFu
ZFcKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvdyo+
KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzRXhwb3NlZFRvV29ya2VyQW5k
V2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0y
MjksNyArMjI5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc0V4cG9zZWRUb1dv
cmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93OjpnZXRDb25zdHJ1Y3RvcihKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7
CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0Nv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUu
Y3BwCmluZGV4IDk4YjUzNjRmZDJiZmJlNzM0NTliZjJjYmJiNTk3MDJkNzVkOWUwMzguLmQ4ZWY5
Y2RhY2YxNWMzN2ZiMmI0YzdlODg4NzU4Y2FlYzA4MDgwZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1BhaW50V29ya2xldEdsb2JhbFNjb3Bl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNQYWlu
dFdvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAgLTQ0LDggKzQ0LDggQEAgdXNpbmcgbmFtZXNwYWNl
IEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0
cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNQYWludFdvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yKTsKIAogdXNpbmcgSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNQYWludFdvcmts
ZXRHbG9iYWxTY29wZT47CiAKQEAgLTEwNiw3ICsxMDYsNyBAQCBKU1ZhbHVlIEpTUGFpbnRXb3Jr
bGV0R2xvYmFsU2NvcGU6OmdldENvbnN0cnVjdG9yKFZNJiB2bSwgY29uc3QgSlNHbG9iYWxPYmpl
Y3QqCiAgICAgcmV0dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTUGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3Rvcj4odm0sICpqc0Nhc3Q8Y29uc3QgSlNET01HbG9iYWxPYmplY3QqPihnbG9i
YWxPYmplY3QpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1BhaW50V29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTExNiw3ICsxMTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzUGFp
bnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdAogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZTo6Z2V0Q29uc3RydWN0
b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmpl
Y3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNQYWludFdvcmtsZXRHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0
b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9
IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlLmNwcAppbmRleCBiZjQyMjE2YjQxYWZiOGRlOGZlMTRjZWFiOGYzZGFhOGZkOTg3ZDIz
Li5mNGZjNTcyOGFkMTE1NmZhYzQ1OWJjZTdkYTE4NTIyZmFiMjMxZjcyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTQ0LDggKzQ0LDggQEAgdXNpbmcg
bmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik7CiAKIHVzaW5nIEpTU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJs
ZTxKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT47CiAKQEAgLTEwNiw3ICsxMDYsNyBAQCBKU1Zh
bHVlIEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1Y3RvcihWTSYgdm0sIGNv
bnN0IEpTR2xvYmFsT2JqZWN0KgogICAgIHJldHVybiBnZXRET01Db25zdHJ1Y3RvcjxKU1NlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yPih2bSwgKmpzQ2FzdDxjb25zdCBKU0RPTUds
b2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMTYsNyArMTE2LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBw
cm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRK
U1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rp
b25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
RVJlYWN0aW9ucy5jcHAKaW5kZXggNjUyZjFmNWE3ZDk5ZTUyNjBhZDdhOTRhMTZlMDVkMmU0Y2Fj
MzY2Mi4uZjUxOTIzYzAzZGQxNTlhODY4OWNiZWQxMjhjZDJkOGIwMWRkMjZlNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rp
b25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Q0VSZWFjdGlvbnMuY3BwCkBAIC01NywyMCArNTcsMjAgQEAgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENFUmVh
Y3Rpb24KIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rp
b25zKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1
dGVXaXRoQ0VSZWFjdGlvbnMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyhKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0
ZVdpdGhDRVJlYWN0aW9ucyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rpb25zQXR0
cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rpb25z
UmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0
aW9uc05vdE5lZWRlZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZU5vdE5lZWRlZChKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVO
b3ROZWVkZWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDRVJlYWN0
aW9uc0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q0VS
ZWFjdGlvbnNDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdENF
UmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVX
aXRoQ0VSZWFjdGlvbnMpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDRVJl
YWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJp
YnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdENFUmVhY3Rpb25zQXR0cmli
dXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1
dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVk
ZWQpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lm
aWVyQXR0cmlidXRlTm90TmVlZGVkKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZU5vdE5lZWRlZCk7CiAKIGNsYXNzIEpT
VGVzdENFUmVhY3Rpb25zUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9i
amVjdCB7CiBwdWJsaWM6CkBAIC0xOTIsNyArMTkyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNU
ZXN0Q0VSZWFjdGlvbnMqIElETE9wZXJhdGlvbjxKU1Rlc3RDRVJlYWN0aW9ucz46OmNhc3QoSlNH
bG8KICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RDRVJlYWN0aW9ucyo+KEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdENFUmVh
Y3Rpb25zQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9
IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMDIsNyArMjAyLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2EKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdENFUmVhY3Rpb25z
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5
cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RD
RVJlYWN0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9y
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjIzLDcgKzIyMyw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc0dldHRlcihK
U0dsb2JhbE9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERP
TVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1dGVX
aXRoQ0VSZWFjdGlvbnMoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyhKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVX
aXRoQ0VSZWFjdGlvbnMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnM+OjpnZXQ8anNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1
dGVXaXRoQ0VSZWFjdGlvbnNHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJhdHRyaWJ1dGVXaXRoQ0VSZWFjdGlv
bnMiKTsKIH0KQEAgLTI0Miw3ICsyNDIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNTZXR0ZXIoSlNHbG9iYWxPYgogICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q0VSZWFjdGlv
bnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENFUmVhY3Rpb25zQXR0cmli
dXRlV2l0aENFUmVhY3Rpb25zLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zPjo6c2V0PHNldEpT
VGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJhdHRyaWJ1dGVXaXRoQ0VSZWFj
dGlvbnMiKTsKIH0KQEAgLTI1NSw3ICsyNTUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zR2V0dGVyKEpTRwog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RhdHRyaWJ1dGV3aXRoY2VyZWFj
dGlvbnNBdHRyKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RD
RVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0
dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9ucz46OmdldDxqc1Rlc3RDRVJlYWN0aW9u
c1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJl
aGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0
QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zIik7CiB9CkBAIC0yNzQsNyArMjc0LDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJl
YWN0aW9uc1NldHRlcihKU0cKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyhK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zPjo6c2V0PHNldEpTVGVzdENFUmVhY3Rpb25zUmVmbGVj
dEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc1NldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyIp
OwogfQpAQCAtMjg3LDcgKzI4Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDRVJl
YWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0CiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxUZXN0Q0VSZWFj
dGlvbnNTdHJpbmdpZmllcj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2Jh
bE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnN0cmluZ2lmaWVyQXR0cmlidXRlKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdp
ZmllckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIoanNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9ucz46Omdl
dDxqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlz
RXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
c3RyaW5naWZpZXJBdHRyaWJ1dGUiKTsKIH0KQEAgLTMxMCw3ICszMTAsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZVNldHRlcihK
U0dsb2JhbE9iamVjdAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q0VS
ZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9ucz46
OnNldDxzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdHJpbmdpZmllckF0
dHJpYnV0ZSIpOwogfQpAQCAtMzIzLDcgKzMyMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZEdldHRlcihK
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1dGVXaXRoQ0VSZWFj
dGlvbnNOb3ROZWVkZWQoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q0VSZWFjdGlvbnNB
dHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnM+OjpnZXQ8anNUZXN0
Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWRHZXR0ZXIsIENhc3Rl
ZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJhdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQiKTsKIH0KQEAgLTM0Miw3ICsz
NDIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVX
aXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWRTZXR0ZXIoSgogICAgIHJldHVybiB0cnVlOwogfQogCi1i
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFj
dGlvbnNOb3ROZWVkZWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RF
RklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVh
Y3Rpb25zTm90TmVlZGVkLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zPjo6c2V0PHNldEpTVGVz
dENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJhdHRyaWJ1dGVXaXRo
Q0VSZWFjdGlvbnNOb3ROZWVkZWQiKTsKIH0KQEAgLTM1NSw3ICszNTUsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rp
b25zTm90TmVlZGVkRwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJ
RExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYXR0cmli
dXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RhdHRy
aWJ1dGV3aXRoY2VyZWFjdGlvbnNub3RuZWVkZWRBdHRyKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VS
ZWFjdGlvbnNOb3ROZWVkZWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05v
dE5lZWRlZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RDRVJlYWN0aW9ucz46OmdldDxqc1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1
dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWRHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9y
OjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0QXR0cmli
dXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkIik7CiB9CkBAIC0zNzQsNyArMzc0LDcgQEAgc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhD
RVJlYWN0aW9uc05vdE5lZWRlZFMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9u
c05vdE5lZWRlZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5F
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENF
UmVhY3Rpb25zTm90TmVlZGVkLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zPjo6c2V0PHNldEpT
VGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZFNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVm
bGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZCIpOwogfQpAQCAtMzg3LDcgKzM4
Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVy
QXR0cmlidXRlTm90TmVlZGVkR2V0dGVyKEpTR2xvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcj4+
KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Nj
b3BlLCBpbXBsLnN0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVkKCkpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJp
YnV0ZU5vdE5lZWRlZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIoanNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZU5vdE5lZWRlZCwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0
aW9ucz46OmdldDxqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVk
R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAic3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQiKTsKIH0KQEAg
LTQxMCw3ICs0MTAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlvbnNT
dHJpbmdpZmllckF0dHJpYnV0ZU5vdE5lZWRlZFNldHRlcihKU0dsbwogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmll
ckF0dHJpYnV0ZU5vdE5lZWRlZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitK
U0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0
dHJpYnV0ZU5vdE5lZWRlZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9ucz46OnNldDxzZXRKU1Rl
c3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVkU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdHJpbmdpZmllckF0dHJp
YnV0ZU5vdE5lZWRlZCIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5n
aWZpZXIuY3BwCmluZGV4IDMwNTFmNjFlZGRkYjVhMjQ2ZGQxYTliZTYzYTM5NzYwYmY3MDUxYzku
LmMwMzZhY2UyNzZhOTM1N2JlM2RmN2NkZmQ1NDIxOTg3YzY4ZDEzMzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0
cmluZ2lmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5jcHAKQEAgLTUyLDEyICs1MiwxMiBAQCBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJQcm90
b3R5cGVGdW5jdGlvblRvU3RyaW5nKQogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lm
aWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZh
bHVlV2l0aG91dFJlYWN0aW9ucyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENF
UmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZVdpdGhvdXRSZWFjdGlvbnMoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0
b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmlu
Z2lmaWVyQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDRVJl
YWN0aW9uc1N0cmluZ2lmaWVyVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWVXaXRob3V0UmVhY3Rpb25zKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmll
clZhbHVlV2l0aG91dFJlYWN0aW9ucyk7CiAKIGNsYXNzIEpTVGVzdENFUmVhY3Rpb25zU3RyaW5n
aWZpZXJQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1
YmxpYzoKQEAgLTE3NCw3ICsxNzQsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyKiBJRExPcGVyYXRpb248SlNUZXN0Q0VSZWFjdGlvbnNTdAogICAgIHJl
dHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIqPihKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVy
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4NCw3
ICsxODQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rpb25z
U3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iagogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwog
fQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3Is
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMDUsNyArMjA1LDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZUdldHRlcihKU0dsb2JhbE9i
amVjdCYgbGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9N
U3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnZhbHVlKCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q0VSZWFjdGlvbnNTdHJp
bmdpZmllclZhbHVlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWUsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmll
cj46OmdldDxqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWVHZXR0ZXIsIENhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJ2YWx1ZSIpOwogfQpAQCAtMjI0LDcgKzIyNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRK
U1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJl
YWN0aW9uc1N0cmluZ2lmaWVyVmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZp
ZXJWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyPjo6c2V0PHNldEpT
VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidmFsdWUiKTsKIH0KQEAgLTIzNyw3ICsyMzcs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZh
bHVlV2l0aG91dFJlYWN0aW9uc0dldHRlcihKUwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIGltcGwudmFsdWVXaXRob3V0UmVhY3Rpb25zKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlV2l0aG91dFJl
YWN0aW9ucyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNU
ZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlV2l0aG91dFJlYWN0aW9ucywgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9u
c1N0cmluZ2lmaWVyPjo6Z2V0PGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZVdpdGhv
dXRSZWFjdGlvbnNHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ2YWx1ZVdpdGhvdXRSZWFjdGlvbnMiKTsKIH0K
QEAgLTI1Niw3ICsyNTYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlv
bnNTdHJpbmdpZmllclZhbHVlV2l0aG91dFJlYWN0aW9uc1NldHRlcihKUwogICAgIHJldHVybiB0
cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdp
ZmllclZhbHVlV2l0aG91dFJlYWN0aW9ucyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdp
ZmllclZhbHVlV2l0aG91dFJlYWN0aW9ucywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9uc1N0cmlu
Z2lmaWVyPjo6c2V0PHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZVdpdGhvdXRS
ZWFjdGlvbnNTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgInZhbHVlV2l0aG91dFJlYWN0aW9ucyIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIuY3Bw
CmluZGV4IDRiNjE2OTI4OGNhZjZhOGI4NzIwMzBmODg0OTBiOWI4Y2FkMDFkYzMuLjg4MjMzY2Fm
NmI2NGZhNjM4YTNhMGJmMmVhOGRhMTY0NjEyOWYxYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5j
cHAKQEAgLTY3LDE1ICs2NywxNSBAQCBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENh
bGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoRGVmYQogCiAvLyBBdHRy
aWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDYWxsVHJh
Y2VyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDYWxsVHJh
Y2VyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlSW50ZXJmYWNlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVJbnRlcmZhY2UoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENhbGxUcmFjZXJUZXN0
QXR0cmlidXRlU3BlY2lmaWVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q2Fs
bFRyYWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlV2l0aFZhcmlhbnQo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0
ZVdpdGhWYXJpYW50KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RDYWxsVHJhY2VyVGVzdFJlYWRvbmx5QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdENhbGxUcmFjZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdENhbGxUcmFjZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlSW50ZXJmYWNlKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1
dGVJbnRlcmZhY2UpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDYWxsVHJhY2Vy
VGVzdEF0dHJpYnV0ZVNwZWNpZmllZCk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlU3BlY2lmaWVkKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudCk7CitKU0Nf
REVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlV2l0
aFZhcmlhbnQpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDYWxsVHJhY2VyVGVz
dFJlYWRvbmx5QXR0cmlidXRlKTsKIAogY2xhc3MgSlNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZSBm
aW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMjEyLDcg
KzIxMiw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdENhbGxUcmFjZXIqIElETE9wZXJhdGlv
bjxKU1Rlc3RDYWxsVHJhY2VyPjo6Y2FzdChKU0dsb2JhCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nh
c3Q8SlNUZXN0Q2FsbFRyYWNlcio+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBj
YWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MjIyLDcgKzIyMiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q2FsbFRy
YWNlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShKU1Rlc3RDYWxsVHJhY2VyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI0NSw3
ICsyNDUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q2FsbFRyYWNlclRlc3RBdHRy
aWJ1dGVJbnRlcmZhY2VHZXR0ZXIoSlNHbG9iYWxPYmplYwogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCAodG9KUzxJRExCb29sZWFuPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBpbXBsLnRlc3RBdHRyaWJ1dGVJbnRlcmZhY2UoKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZUludGVyZmFj
ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q2Fs
bFRyYWNlclRlc3RBdHRyaWJ1dGVJbnRlcmZhY2UsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q2FsbFRyYWNlcj46OmdldDxqc1Rlc3RDYWxs
VHJhY2VyVGVzdEF0dHJpYnV0ZUludGVyZmFjZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZp
b3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRlc3RBdHRyaWJ1
dGVJbnRlcmZhY2UiKTsKIH0KQEAgLTI2NSw3ICsyNjUsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVJbnRlcmZhY2VTZXR0ZXIoSlNHbG9iYWxP
YmplYwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVJbnRlcmZhY2UoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENhbGxUcmFjZXJU
ZXN0QXR0cmlidXRlSW50ZXJmYWNlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENhbGxUcmFjZXI+OjpzZXQ8c2V0
SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVJbnRlcmZhY2VTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInRlc3RBdHRyaWJ1dGVJbnRlcmZh
Y2UiKTsKIH0KQEAgLTI4MCw3ICsyODAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWRHZXR0ZXIoSlNHbG9iYWxPYmplYwogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExCb29sZWFuPihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQoKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDYWxsVHJhY2VyVGVz
dEF0dHJpYnV0ZVNwZWNpZmllZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoanNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q2FsbFRyYWNl
cj46OmdldDxqc1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVNwZWNpZmllZEdldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgInRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQiKTsKIH0KQEAgLTMwMCw3ICszMDAsNyBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZp
ZWRTZXR0ZXIoSlNHbG9iYWxPYmplYwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNl
dEpTVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlU3BlY2lmaWVkLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENh
bGxUcmFjZXI+OjpzZXQ8c2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWRT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInRl
c3RBdHRyaWJ1dGVTcGVjaWZpZWQiKTsKIH0KQEAgLTMxNSw3ICszMTUsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudEdldHRl
cihKU0dsb2JhbE9iagogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJ
RExVbmlvbjxJRExCb29sZWFuLCBJRExGbG9hdCwgSURMRE9NU3RyaW5nPj4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwudGVz
dEF0dHJpYnV0ZVdpdGhWYXJpYW50KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q2FsbFRyYWNlclRlc3RB
dHRyaWJ1dGVXaXRoVmFyaWFudCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RDYWxsVHJhY2VyPjo6Z2V0PGpzVGVzdENhbGxUcmFjZXJUZXN0
QXR0cmlidXRlV2l0aFZhcmlhbnRHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3Nl
cnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0ZXN0QXR0cmlidXRlV2l0aFZh
cmlhbnQiKTsKIH0KQEAgLTMzNSw3ICszMzUsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudFNldHRlcihKU0dsb2JhbE9iagog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q2FsbFRy
YWNlclRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RB
dHRyaWJ1dGVXaXRoVmFyaWFudCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDYWxsVHJhY2VyPjo6c2V0PHNldEpT
VGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlV2l0aFZhcmlhbnRTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInRlc3RBdHRyaWJ1dGVXaXRoVmFy
aWFudCIpOwogfQpAQCAtMzQ4LDcgKzM0OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RDYWxsVHJhY2VyVGVzdFJlYWRvbmx5QXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0CiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEJvb2xlYW4+KGxleGlj
YWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudGVzdFJlYWRvbmx5QXR0cmlidXRlKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q2FsbFRyYWNlclRl
c3RSZWFkb25seUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoanNUZXN0Q2FsbFRyYWNlclRlc3RSZWFkb25seUF0dHJpYnV0ZSwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDYWxsVHJhY2Vy
Pjo6Z2V0PGpzVGVzdENhbGxUcmFjZXJUZXN0UmVhZG9ubHlBdHRyaWJ1dGVHZXR0ZXIsIENhc3Rl
ZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJ0ZXN0UmVhZG9ubHlBdHRyaWJ1dGUiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25z
dHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCmluZGV4IDM5NGU5YTU1Y2U3Zjlm
ZGRiOTAzMTJhMjdmMmE5NDgxODg1NWNjMjAuLjY0ZTgwMjYyNGJlNWY4MzlmNDYyMWU0Zjk1MzIx
OWI4MWU3MmRkYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0aEpTQnVp
bHRpbkNvbnN0cnVjdG9yLmNwcApAQCAtNDUsOCArNDUsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlND
OwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdENsYXNzV2l0
aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKTsK
IAogY2xhc3MgSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGUgZmlu
YWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE1NSw3ICsx
NTUsNyBAQCB2b2lkIEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yOjpkZXN0cm95
KEpTQzo6SlNDZWxsKiBjZWxsKQogICAgIHRoaXNPYmplY3QtPkpTVGVzdENsYXNzV2l0aEpTQnVp
bHRpbkNvbnN0cnVjdG9yOjp+SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IoKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDbGFzc1dpdGhKU0J1aWx0
aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMTY1LDcgKzE2NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1
Y3Rvcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJv
dG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzLmNwcAppbmRleCA5YjQ1
MWIxNmFlMzliZmQzNmY5N2E0N2ZmMTZhNzRiMGNjYzQ1MTdmLi5lZDA3MzZhNDJkMGE1ZjgzYjYx
YzgwZmEzMzY5ZWRhYWI2ZjA4YTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENvbmRpdGlvbmFsSW5j
bHVkZXMuY3BwCkBAIC04NiwyNiArODYsMjYgQEAgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25QYXJ0aWFsTWl4aW4KIAog
Ly8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzVGVzdEF0
dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9uYWxJbmNs
dWRlc0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Rlc3RBdHRyKTsKICNpZiBFTkFCTEUoQ29uZGl0aW9u
MjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5SZWFkT25seUF0dHJpYnV0ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4
aW5SZWFkT25seUF0dHJpYnV0ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8
IEVOQUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5BdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5BdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4
aW5BdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDb25kaXRp
b25hbEluY2x1ZGVzTWl4aW5BdHRyaWJ1dGUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlv
bjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQ3VzdG9tQXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQ3Vz
dG9tQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlc01peGluQ3VzdG9tQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQ3VzdG9tQXR0cmlidXRl
KTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIz
KQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsSW5j
bHVkZXNNaXhpbk5vZGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5Ob2RlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluTm9kZUF0dHJp
YnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENvbmRpdGlvbmFsSW5j
bHVkZXNNaXhpbk5vZGVBdHRyaWJ1dGUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIy
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1BhcnRpYWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0
aWFsKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdENvbmRpdGlvbmFsSW5j
bHVkZXNQYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbCk7CiAjZW5kaWYKIAogY2xhc3Mg
SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpT
Tm9uRmluYWxPYmplY3QgewpAQCAtNDkwLDcgKzQ5MCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpT
VGVzdENvbmRpdGlvbmFsSW5jbHVkZXMqIElETE9wZXJhdGlvbjxKU1Rlc3RDb25kaXRpb25hbElu
Y2x1CiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcyo+
KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsSW5j
bHVkZXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTAw
LDcgKzUwMCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9u
YWxJbmNsdWRlc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzOjpnZXRDb25zdHJ1Y3RvcihKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9
CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNU
T01fU0VUVEVSKHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTUyMSw3ICs1MjEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Rlc3RBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExEb3VibGU+KGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudGVzdEF0dHIoKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzVGVz
dEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXNUZXN0QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6Z2V0PGpz
VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNUZXN0QXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRlc3RBdHRy
Iik7CiB9CkBAIC01MzUsNyArNTM1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENv
bmRpdGlvbmFsSW5jbHVkZXNNaXhpblJlYWRPbmx5QXR0cmlidXRlR2V0dGVyKEpTR2wKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm1peGluUmVhZE9ubHlBdHRyaWJ1dGUoKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbElu
Y2x1ZGVzTWl4aW5SZWFkT25seUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluUmVhZE9ubHlB
dHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcz46OmdldDxqc1Rlc3RDb25kaXRpb25hbEluY2x1
ZGVzTWl4aW5SZWFkT25seUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm1peGluUmVhZE9ubHlB
dHRyaWJ1dGUiKTsKIH0KQEAgLTU1MSw3ICs1NTEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2Jq
ZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubWl4aW5BdHRyaWJ1dGUoKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbElu
Y2x1ZGVzTWl4aW5BdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkF0dHJpYnV0ZSwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRp
b25hbEluY2x1ZGVzPjo6Z2V0PGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkF0dHJpYnV0
ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIm1peGluQXR0cmlidXRlIik7CiB9CkBAIC01NzIsNyArNTcyLDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkF0
dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkF0dHJpYnV0ZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQXR0cmlidXRlLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdENvbmRpdGlvbmFsSW5jbHVkZXM+OjpzZXQ8c2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRl
c01peGluQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJtaXhpbkF0dHJpYnV0ZSIpOwogfQpAQCAtNTg2LDcgKzU4Niw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5DdXN0b21B
dHRyaWJ1dGVHZXR0ZXIoSlNHbG9iCiAgICAgcmV0dXJuIHRoaXNPYmplY3QubWl4aW5DdXN0b21B
dHRyaWJ1dGUobGV4aWNhbEdsb2JhbE9iamVjdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQ3VzdG9tQXR0cmlidXRlKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25kaXRp
b25hbEluY2x1ZGVzTWl4aW5DdXN0b21BdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcz46Omdl
dDxqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5DdXN0b21BdHRyaWJ1dGVHZXR0ZXIsIENh
c3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJtaXhpbkN1c3RvbUF0dHJpYnV0ZSIpOwogfQpAQCAtNjAxLDcgKzYwMSw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5DdXN0b21B
dHRyaWJ1dGVTZXR0ZXIoSlNHbG9iCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5DdXN0b21BdHRyaWJ1dGUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkN1c3RvbUF0dHJpYnV0ZSwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXNNaXhpbkN1c3RvbUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibWl4aW5DdXN0b21BdHRyaWJ1dGUiKTsKIH0KQEAg
LTYxNyw3ICs2MTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxJ
bmNsdWRlc01peGluTm9kZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbAogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+KGxleGljYWxHbG9i
YWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLm1p
eGluTm9kZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbk5vZGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXNNaXhpbk5vZGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcz46OmdldDxqc1Rlc3RDb25k
aXRpb25hbEluY2x1ZGVzTWl4aW5Ob2RlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JC
ZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibWl4aW5O
b2RlQXR0cmlidXRlIik7CiB9CkBAIC02MzgsNyArNjM4LDcgQEAgc3RhdGljIGlubGluZSBib29s
IHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbk5vZGVBdHRyaWJ1dGVTZXR0ZXIoSlNH
bG9iYWwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbk5vZGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENvbmRp
dGlvbmFsSW5jbHVkZXNNaXhpbk5vZGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9u
YWxJbmNsdWRlcz46OnNldDxzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5Ob2RlQXR0
cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJtaXhpbk5vZGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTY1NCw3ICs2NTQsNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1BhcnRpYWxNaXhpbkF0dHJp
YnV0ZUZyb21QYXJ0aWFsRwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9K
UzxJRExEb3VibGU+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwucGFydGlh
bE1peGluQXR0cmlidXRlRnJvbVBhcnRpYWwoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUGFydGlhbE1peGluQXR0cmlidXRl
RnJvbVBhcnRpYWwoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlh
bCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RDb25kaXRpb25hbEluY2x1ZGVzPjo6Z2V0PGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQYXJ0
aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbEdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZp
b3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInBhcnRpYWxNaXhp
bkF0dHJpYnV0ZUZyb21QYXJ0aWFsIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZS5jcHAKaW5kZXggOWRhMGNjMjY0OGY4ZjYzMDA2MDVlMTk4ZjI0ZGIwNzJj
OWM5YmZhNy4uZGExN2JiMGRhYTA2MmM3NzRmYjIxYzRiZThkYjdmN2Y5OTJlMTViMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlLmNwcApAQCAtNTQsMzQgKzU0
LDM0IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGUpOwogI2lmIEVOQUJMRShDT05ESVRJT04pCi1ib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDb25k
aXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSk7CiAjZW5k
aWYKICNpZiBFTkFCTEUoQ09ORElUSU9OMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxBbmRDb25kaXRpb25h
bGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpz
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGUpOwogI2lmIEVOQUJMRShDT05ESVRJT04pCi1ib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsQW5kQ29uZGl0aW9u
YWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRpdGlvbmFs
bHlSZWFkV3JpdGVBdHRyaWJ1dGUpOwogI2VuZGlmCiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRp
dGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZVVuZm9yZ2VhYmxlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5m
b3JnZWFibGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0
dHJpYnV0ZVByb21pc2UoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25h
bGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFi
bGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFs
bHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdl
YWJsZVByaXZhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25h
bGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3Jn
ZWFibGVQcml2YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRl
QXR0cmlidXRlUHJvbWlzZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQ
cm9taXNlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1
bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpz
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0
dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNl
dEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUF0dHJpYnV0ZVByb21pc2UpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RD
b25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1
dGVQcm9taXNlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSk7CitKU0Nf
REVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0
aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVh
ZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRl
QXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRX
cml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGVQcm9taXNlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0
dHJpYnV0ZVByb21pc2UpOwogCiBjbGFzcyBKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUHJv
dG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBA
IC0yNzQsNyArMjc0LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZSogSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHkKICAgICByZXR1cm4ganNE
eW5hbWljQ2FzdDxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlKj4oSlNDOjpnZXRWTSgmbGV4
aWNhbEdsb2JhbE9iamVjdCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpz
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI4NCw3ICsy
ODQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iagogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQog
Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3IsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMDUsNyArMzA1LDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0
cmlidXQKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJm
YWNlPE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3Qo
KSwgdGhyb3dTY29wZSwgaW1wbC5jb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVD
b25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+Ojpn
ZXQ8anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlIik7
CiB9CkBAIC0zMjQsNyArMzI0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXQKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDb25k
aXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFs
bHlSZWFkV3JpdGVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJjb25kaXRpb25hbGx5UmVh
ZFdyaXRlQXR0cmlidXRlIik7CiB9CkBAIC0zNDAsNyArMzQwLDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRpdGlv
bmFsbHlSZWEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50
ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmpl
Y3QoKSwgdGhyb3dTY29wZSwgaW1wbC5jb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdy
aXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpnZXQ8anNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0
dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImNvbmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxseVJlYWRX
cml0ZUF0dHJpYnV0ZSIpOwogfQpAQCAtMzYyLDcgKzM2Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxBbmRDb25kaXRpb25h
bGx5UmVhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdy
aXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9u
YWxBbmRDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGU+OjpzZXQ8c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNv
bmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVNldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiY29uZGl0aW9uYWxBbmRD
b25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlIik7CiB9CkBAIC0zNzksNyArMzc5LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1l
Q29uZGl0aW9uYWxseVJlYWRXcml0ZUEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09i
amVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5ydW50aW1lQ29uZGl0aW9uYWxs
eVJlYWRXcml0ZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRX
cml0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIoanNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdy
aXRlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpnZXQ8anNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAicnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUiKTsKIH0K
QEAgLTM5Nyw3ICszOTcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQQogICAgIHJldHVybiB0
cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RD
b25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1
dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OnNldDxzZXRKU1Rlc3RD
b25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1
dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwg
InJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlIik7CiB9CkBAIC00MTAsNyAr
NDEwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5ydW50aW1lQ29u
ZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKCkpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRp
bWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1
bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVHZXR0ZXIsIENh
c3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxl
Iik7CiB9CkBAIC00MjgsNyArNDI4LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUEKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFs
bHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2Vh
YmxlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFs
bHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25h
bGx5UmVhZFdyaXRlPjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1l
Q29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJydW50aW1lQ29uZGl0aW9u
YWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlIik7CiB9CkBAIC00NDEsNyArNDQxLDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50
aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhp
c09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5ydW50aW1lQ29uZGl0aW9u
YWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSgpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50
aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3Jn
ZWFibGVQcml2YXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpnZXQ8anNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3Jn
ZWFibGVQcml2YXRlR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicnVu
dGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUiKTsK
IH0KQEAgLTQ1OSw3ICs0NTksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQQogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQ
cml2YXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlv
bmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OnNldDxzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZh
dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwg
InJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRl
Iik7CiB9CkBAIC00NzIsNyArNDcyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUEKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMUHJvbWlzZTxJRExEb3VibGU+
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dT
Y29wZSwgaW1wbC5ydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2Uo
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25h
bGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25k
aXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQ
cm9taXNlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZUdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OlJlamVjdFByb21pc2U+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0
ZVByb21pc2UiKTsKIH0KQEAgLTQ5MCw3ICs0OTAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRl
QQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRl
UHJvbWlzZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRp
b25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25h
bGx5UmVhZFdyaXRlPjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1l
Q29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2VTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJ1bnRpbWVDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSIpOwogfQpAQCAtNTAzLDcgKzUwMyw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25k
aXRpb25hbGx5UmVhZFdyaXRlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0
b0pTPElETEludGVyZmFjZTxOb2RlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3Qu
Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuc2V0dGluZ3NDb25kaXRpb25hbGx5UmVh
ZFdyaXRlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6Z2V0PGpzVGVzdENvbmRpdGlvbmFs
bHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJzZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUiKTsKIH0K
QEAgLTUyMSw3ICs1MjEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZQogICAgIHJldHVybiB0
cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6c2V0PHNldEpTVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgInNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSIpOwogfQpAQCAtNTM0
LDcgKzUzNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVh
ZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxOb2RlPj4obGV4aWNhbEdsb2JhbE9i
amVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuc2V0dGlu
Z3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUoKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
U2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdENvbmRpdGlvbmFs
bHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdl
YWJsZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6Z2V0PGpzVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZUdl
dHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgInNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVu
Zm9yZ2VhYmxlIik7CiB9CkBAIC01NTIsNyArNTUyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3Jp
dGUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1
dGVVbmZvcmdlYWJsZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVG
SU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdz
Q29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpzZXQ8c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzZXR0
aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZSIpOwogfQpAQCAt
NTY1LDcgKzU2NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxOb2RlPj4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuc2V0
dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2Vh
YmxlUHJpdmF0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6Z2V0
PGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGVHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJzZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZv
cmdlYWJsZVByaXZhdGUiKTsKIH0KQEAgLTU4Myw3ICs1ODMsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJl
YWRXcml0ZQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0
dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJp
dmF0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6c2V0PHNldEpTVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGVVbmZvcmdlYWJsZVByaXZhdGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgInNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSIpOwogfQpAQCAtNTk2LDcgKzU5Niw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRp
b25hbGx5UmVhZFdyaXRlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETFByb21pc2U8SURMRG91YmxlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3Qu
Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuc2V0dGluZ3NDb25kaXRpb25hbGx5UmVh
ZFdyaXRlQXR0cmlidXRlUHJvbWlzZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRp
b25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6
Z2V0PGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGVQcm9taXNlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6UmVq
ZWN0UHJvbWlzZT4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNldHRpbmdzQ29u
ZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UiKTsKIH0KQEAgLTYxNCw3ICs2MTQs
NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNl
dHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29u
ZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9t
aXNlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpzZXQ8c2V0SlNUZXN0
Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZVByb21pc2VTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgInNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2Ui
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RET01KSVQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdERPTUpJVC5jcHAKaW5kZXggZDNmMWIzNTZmZmFmYjc4MTA4ZTQ2NjZjNzI3OThm
YTIyZjI0ZTAyNy4uZjc3NTMwYmRmZWJjNGU0NjU2MDg1YTcyZDMwNjgzMTkxNWY0ZWRhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERP
TUpJVC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdERPTUpJVC5jcHAKQEAgLTYwLDU1ICs2MCw1NSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwog
Ly8gRnVuY3Rpb25zCiAKIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0RE9NSklUUHJv
dG90eXBlRnVuY3Rpb25HZXRBdHRyaWJ1dGUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0QXR0cmlidXRlV2l0aG91dFR5
cGVDaGVjayhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNUZXN0RE9NSklUKiwgRE9NSklUOjpJRExK
U0FyZ3VtZW50VHlwZTxJRExET01TdHJpbmc+KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
anNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRBdHRyaWJ1dGVXaXRob3V0VHlwZUNoZWNr
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCAoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTVGVzdERPTUpJ
VCosIERPTUpJVDo6SURMSlNBcmd1bWVudFR5cGU8SURMRE9NU3RyaW5nPikpOwogSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkl0ZW0pOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0
aW9uSXRlbVdpdGhvdXRUeXBlQ2hlY2soSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTVGVzdERPTUpJ
VCosIERPTUpJVDo6SURMSlNBcmd1bWVudFR5cGU8SURMVW5zaWduZWRTaG9ydD4sIERPTUpJVDo6
SURMSlNBcmd1bWVudFR5cGU8SURMVW5zaWduZWRTaG9ydD4pOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkl0ZW1XaXRob3V0VHlwZUNoZWNr
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCAoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTVGVzdERPTUpJ
VCosIERPTUpJVDo6SURMSlNBcmd1bWVudFR5cGU8SURMVW5zaWduZWRTaG9ydD4sIERPTUpJVDo6
SURMSlNBcmd1bWVudFR5cGU8SURMVW5zaWduZWRTaG9ydD4pKTsKIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25IYXNBdHRyaWJ1dGUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0
aW9uSGFzQXR0cmlidXRlV2l0aG91dFR5cGVDaGVjayhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNU
ZXN0RE9NSklUKik7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKGpzVGVzdERPTUpJVFByb3Rv
dHlwZUZ1bmN0aW9uSGFzQXR0cmlidXRlV2l0aG91dFR5cGVDaGVjaywgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU1Rlc3RET01KSVQqKSk7CiBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudEJ5
SWQpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFByb3Rv
dHlwZUZ1bmN0aW9uR2V0RWxlbWVudEJ5SWRXaXRob3V0VHlwZUNoZWNrKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU1Rlc3RET01KSVQqLCBET01KSVQ6OklETEpTQXJndW1lbnRUeXBlPElETFJlcXVp
cmVzRXhpc3RpbmdBdG9tU3RyaW5nQWRhcHRvcjxJRExET01TdHJpbmc+Pik7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudEJ5
SWRXaXRob3V0VHlwZUNoZWNrLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCAoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTVGVzdERPTUpJVCosIERPTUpJVDo6SURMSlNBcmd1bWVudFR5cGU8SURMUmVxdWly
ZXNFeGlzdGluZ0F0b21TdHJpbmdBZGFwdG9yPElETERPTVN0cmluZz4+KSk7CiBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudHNC
eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFBy
b3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudHNCeU5hbWVXaXRob3V0VHlwZUNoZWNrKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU1Rlc3RET01KSVQqLCBET01KSVQ6OklETEpTQXJndW1lbnRUeXBlPElE
TEF0b21TdHJpbmdBZGFwdG9yPElETERPTVN0cmluZz4+KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50c0J5TmFtZVdpdGhv
dXRUeXBlQ2hlY2ssIEpTQzo6RW5jb2RlZEpTVmFsdWUsIChKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNUZXN0RE9NSklUKiwgRE9NSklUOjpJRExKU0FyZ3VtZW50VHlwZTxJRExBdG9tU3RyaW5nQWRh
cHRvcjxJRExET01TdHJpbmc+PikpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdERPTUpJVENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRBbnlBdHRyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUQm9vbGVhbkF0dHIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRCeXRlQXR0
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVE9j
dGV0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERP
TUpJVFNob3J0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdERPTUpJVFVuc2lnbmVkU2hvcnRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0RE9NSklUTG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdBdHRyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUTG9uZ0xvbmdBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUVW5zaWdu
ZWRMb25nTG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RET01KSVRGbG9hdEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWRGbG9hdEF0dHIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVREb3VibGVBdHRyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUVW5yZXN0cmljdGVkRG91
YmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERP
TUpJVERvbVN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RET01KSVRCeXRlU3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVzdlN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVROb2RlQXR0cihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVEJvb2xlYW5OdWxsYWJsZUF0
dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRC
eXRlTnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0RE9NSklUT2N0ZXROdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRTaG9ydE51bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVuc2lnbmVkU2hvcnROdWxs
YWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RE
T01KSVRMb25nTnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0RE9NSklUVW5zaWduZWRMb25nTnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUTG9uZ0xvbmdOdWxsYWJsZUF0
dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRV
bnNpZ25lZExvbmdMb25nTnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0RE9NSklURmxvYXROdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWRGbG9hdE51
bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dERPTUpJVERvdWJsZU51bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZERvdWJsZU51bGxhYmxlQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVERvbVN0cmlu
Z051bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdERPTUpJVEJ5dGVTdHJpbmdOdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRVc3ZTdHJpbmdOdWxsYWJsZUF0dHIoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVROb2RlTnVsbGFi
bGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVENvbnN0
cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RE9NSklUQ29uc3Ry
dWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRBbnlBdHRyKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUQm9vbGVhbkF0dHIpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRCeXRlQXR0cik7CitKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVE9jdGV0QXR0cik7CitKU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdERPTUpJVFNob3J0QXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdERPTUpJVFVuc2lnbmVkU2hvcnRBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0RE9NSklUTG9uZ0F0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RET01KSVRVbnNpZ25lZExvbmdBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0RE9NSklUTG9uZ0xvbmdBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0RE9NSklUVW5zaWduZWRMb25nTG9uZ0F0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RET01KSVRGbG9hdEF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RET01KSVRVbnJlc3RyaWN0ZWRGbG9hdEF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RET01KSVREb3VibGVBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0RE9NSklUVW5yZXN0cmljdGVkRG91YmxlQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdERPTUpJVERvbVN0cmluZ0F0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RET01KSVRCeXRlU3RyaW5nQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdERPTUpJVFVzdlN0cmluZ0F0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RET01KSVROb2RlQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERP
TUpJVEJvb2xlYW5OdWxsYWJsZUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RET01KSVRCeXRlTnVsbGFibGVBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0RE9NSklUT2N0ZXROdWxsYWJsZUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RET01KSVRTaG9ydE51bGxhYmxlQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdERPTUpJVFVuc2lnbmVkU2hvcnROdWxsYWJsZUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RET01KSVRMb25nTnVsbGFibGVBdHRyKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0RE9NSklUVW5zaWduZWRMb25nTnVsbGFibGVBdHRyKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUTG9uZ0xvbmdOdWxsYWJsZUF0dHIpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdMb25nTnVs
bGFibGVBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklURmxvYXRO
dWxsYWJsZUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRVbnJl
c3RyaWN0ZWRGbG9hdE51bGxhYmxlQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpz
VGVzdERPTUpJVERvdWJsZU51bGxhYmxlQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZERvdWJsZU51bGxhYmxlQXR0cik7CitKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVERvbVN0cmluZ051bGxhYmxlQXR0cik7CitKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVEJ5dGVTdHJpbmdOdWxsYWJsZUF0dHIp
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRVc3ZTdHJpbmdOdWxsYWJs
ZUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVROb2RlTnVsbGFi
bGVBdHRyKTsKIAogc3RhdGljIGNvbnN0IEpTQzo6RE9NSklUOjpTaWduYXR1cmUgRE9NSklUU2ln
bmF0dXJlRm9yVGVzdERPTUpJVEdldEF0dHJpYnV0ZShqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5j
dGlvbkdldEF0dHJpYnV0ZVdpdGhvdXRUeXBlQ2hlY2ssIEpTVGVzdERPTUpJVDo6aW5mbygpLCBK
U0M6OkRPTUpJVDo6RWZmZWN0Ojpmb3JSZWFkKERPTUpJVDo6QWJzdHJhY3RIZWFwUmVwb3NpdG9y
eTo6RE9NKSwgRE9NSklUOjpJRExSZXN1bHRUeXBlRmlsdGVyPElETE51bGxhYmxlPElETERPTVN0
cmluZz4+Ojp2YWx1ZSwgRE9NSklUOjpJRExBcmd1bWVudFR5cGVGaWx0ZXI8SURMRE9NU3RyaW5n
Pjo6dmFsdWUpOwogCkBAIC02MTUsNyArNjE1LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0
RE9NSklUKiBJRExPcGVyYXRpb248SlNUZXN0RE9NSklUPjo6Y2FzdChKU0dsb2JhbE9iamVjdCYK
ICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RET01KSVQqPihKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUQ29uc3RydWN0b3Is
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC02MjUsNyArNjI1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RET01KSVRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2IKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdERPTUpJVDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwog
fQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RE9NSklUQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNl
dEpTVGVzdERPTUpJVENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNjQ2LDcg
KzY0Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRBbnlBdHRyR2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETEFueT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29w
ZSwgaW1wbC5hbnlBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0RE9NSklUQW55QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoanNUZXN0RE9NSklUQW55QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUQW55
QXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImFueUF0dHIiKTsK
IH0KQEAgLTY1OSw3ICs2NTksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklU
Qm9vbGVhbkF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYQogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExCb29sZWFuPihsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmJvb2xlYW5BdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUQm9vbGVhbkF0dHIoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVEJvb2xlYW5BdHRy
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRCb29sZWFuQXR0ckdldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgImJvb2xlYW5BdHRyIik7CiB9CkBAIC02NzIsNyArNjcyLDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVEJ5dGVBdHRyR2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMQnl0ZT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1w
bC5ieXRlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dERPTUpJVEJ5dGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RET01KSVRCeXRlQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUQnl0ZUF0
dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJieXRlQXR0ciIpOwog
fQpAQCAtNjg1LDcgKzY4NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRP
Y3RldEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE9jdGV0PihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm9jdGV0QXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVE9jdGV0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUT2N0ZXRBdHRyLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46
OmdldDxqc1Rlc3RET01KSVRPY3RldEF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJvY3RldEF0dHIiKTsKIH0KQEAgLTY5OCw3ICs2OTgsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0RE9NSklUU2hvcnRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsTwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJ
RExTaG9ydD4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5zaG9ydEF0dHIo
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRTaG9y
dEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVz
dERPTUpJVFNob3J0QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUU2hvcnRBdHRyR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2hvcnRBdHRyIik7CiB9CkBAIC03
MTEsNyArNzExLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFVuc2lnbmVk
U2hvcnRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2EKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMVW5zaWduZWRTaG9ydD4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgaW1wbC51bnNpZ25lZFNob3J0QXR0cigpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVuc2lnbmVkU2hvcnRBdHRyKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRV
bnNpZ25lZFNob3J0QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUVW5zaWduZWRTaG9ydEF0
dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bnNpZ25lZFNob3J0
QXR0ciIpOwogfQpAQCAtNzI0LDcgKzcyNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RET01KSVRMb25nQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubG9uZ0F0dHIoKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRMb25nQXR0cihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUTG9uZ0F0dHIsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9N
SklUPjo6Z2V0PGpzVGVzdERPTUpJVExvbmdBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAibG9uZ0F0dHIiKTsKIH0KQEAgLTczNyw3ICs3MzcsNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUVW5zaWduZWRMb25nQXR0ckdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9K
UzxJRExVbnNpZ25lZExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwu
dW5zaWduZWRMb25nQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0F0dHIsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6
Z2V0PGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0F0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJ1bnNpZ25lZExvbmdBdHRyIik7CiB9CkBAIC03NTAsNyArNzUwLDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVExvbmdMb25nQXR0ckdldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMTG9uZ0xvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGltcGwubG9uZ0xvbmdBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0RE9NSklUTG9uZ0xvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRMb25nTG9uZ0F0dHIsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpz
VGVzdERPTUpJVExvbmdMb25nQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgImxvbmdMb25nQXR0ciIpOwogfQpAQCAtNzYzLDcgKzc2Myw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdMb25nQXR0ckdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElE
TFVuc2lnbmVkTG9uZ0xvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwu
dW5zaWduZWRMb25nTG9uZ0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdMb25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUVW5zaWduZWRMb25nTG9uZ0F0
dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0xvbmdBdHRyR2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidW5zaWduZWRMb25nTG9uZ0F0dHIiKTsK
IH0KQEAgLTc3Niw3ICs3NzYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklU
RmxvYXRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsTwogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExGbG9hdD4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgaW1wbC5mbG9hdEF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRGbG9hdEF0dHIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVEZsb2F0QXR0ciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+
OjpnZXQ8anNUZXN0RE9NSklURmxvYXRBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiZmxvYXRBdHRyIik7CiB9CkBAIC03ODksNyArNzg5LDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZEZsb2F0QXR0ckdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8
SURMVW5yZXN0cmljdGVkRmxvYXQ+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGlt
cGwudW5yZXN0cmljdGVkRmxvYXRBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0RE9NSklUVW5yZXN0cmljdGVkRmxvYXRBdHRyKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWRG
bG9hdEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZEZsb2F0QXR0ckdl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVucmVzdHJpY3RlZEZsb2F0
QXR0ciIpOwogfQpAQCAtODAyLDcgKzgwMiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RET01KSVREb3VibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERvdWJsZT4obGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5kb3VibGVBdHRyKCkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklURG91YmxlQXR0cihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklURG91Ymxl
QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklURG91YmxlQXR0ckdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImRvdWJsZUF0dHIiKTsKIH0KQEAgLTgxNSw3ICs4MTUs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUVW5yZXN0cmljdGVkRG91Ymxl
QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCAodG9KUzxJRExVbnJlc3RyaWN0ZWREb3VibGU+KGxleGljYWxHbG9iYWxPYmplY3Qs
IHRocm93U2NvcGUsIGltcGwudW5yZXN0cmljdGVkRG91YmxlQXR0cigpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZERvdWJsZUF0
dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERP
TUpJVFVucmVzdHJpY3RlZERvdWJsZUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVFVucmVz
dHJpY3RlZERvdWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJ1bnJlc3RyaWN0ZWREb3VibGVBdHRyIik7CiB9CkBAIC04MjgsNyArODI4LDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVERvbVN0cmluZ0F0dHJHZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmRv
bVN0cmluZ0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RET01KSVREb21TdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RET01KSVREb21TdHJpbmdBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RE
T01KSVREb21TdHJpbmdBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAiZG9tU3RyaW5nQXR0ciIpOwogfQpAQCAtODQxLDcgKzg0MSw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RET01KSVRCeXRlU3RyaW5nQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEJ5
dGVTdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYnl0ZVN0cmlu
Z0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01K
SVRCeXRlU3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNUZXN0RE9NSklUQnl0ZVN0cmluZ0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJ
VEJ5dGVTdHJpbmdBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
Ynl0ZVN0cmluZ0F0dHIiKTsKIH0KQEAgLTg1NCw3ICs4NTQsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0RE9NSklUVXN2U3RyaW5nQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsbwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExVU1ZT
dHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudXN2U3RyaW5nQXR0
cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVz
dlN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdERPTUpJVFVzdlN0cmluZ0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVFVzdlN0
cmluZ0F0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1c3ZTdHJp
bmdBdHRyIik7CiB9CkBAIC04NjcsNyArODY3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdERPTUpJVE5vZGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2IK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPE5v
ZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhy
b3dTY29wZSwgaW1wbC5ub2RlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERPTUpJVE5vZGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVROb2RlQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0
RE9NSklUTm9kZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJu
b2RlQXR0ciIpOwogfQpAQCAtODgwLDcgKzg4MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RET01KSVRCb29sZWFuTnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElE
TEJvb2xlYW4+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmJvb2xlYW5O
dWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RET01KSVRCb29sZWFuTnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRCb29sZWFuTnVsbGFibGVBdHRyLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46
OmdldDxqc1Rlc3RET01KSVRCb29sZWFuTnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiYm9vbGVhbk51bGxhYmxlQXR0ciIpOwogfQpAQCAtODkzLDcg
Kzg5Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRCeXRlTnVsbGFibGVB
dHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETEJ5dGU+PihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmJ5dGVOdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRCeXRlTnVsbGFibGVBdHRyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRCeXRl
TnVsbGFibGVBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRCeXRlTnVsbGFibGVBdHRyR2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYnl0ZU51bGxhYmxlQXR0ciIp
OwogfQpAQCAtOTA2LDcgKzkwNiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01K
SVRPY3RldE51bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETE9jdGV0Pj4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5vY3RldE51bGxhYmxlQXR0cigp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVE9jdGV0
TnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RET01KSVRPY3RldE51bGxhYmxlQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklU
T2N0ZXROdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJvY3RldE51bGxhYmxlQXR0ciIpOwogfQpAQCAtOTE5LDcgKzkxOSw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRTaG9ydE51bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElE
TE51bGxhYmxlPElETFNob3J0Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1w
bC5zaG9ydE51bGxhYmxlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdERPTUpJVFNob3J0TnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRTaG9ydE51bGxhYmxlQXR0ciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01K
SVQ+OjpnZXQ8anNUZXN0RE9NSklUU2hvcnROdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzaG9ydE51bGxhYmxlQXR0ciIpOwogfQpAQCAtOTMyLDcg
KzkzMiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRVbnNpZ25lZFNob3J0
TnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETFVuc2lnbmVkU2hvcnQ+PihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVuc2lnbmVkU2hvcnROdWxsYWJsZUF0dHIo
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRVbnNp
Z25lZFNob3J0TnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RET01KSVRVbnNpZ25lZFNob3J0TnVsbGFibGVBdHRyLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46
OmdldDxqc1Rlc3RET01KSVRVbnNpZ25lZFNob3J0TnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidW5zaWduZWRTaG9ydE51bGxhYmxlQXR0ciIpOwog
fQpAQCAtOTQ1LDcgKzk0NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRM
b25nTnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETExvbmc+PihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmxvbmdOdWxsYWJsZUF0dHIoKSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRMb25nTnVsbGFi
bGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RET01KSVRMb25nTnVsbGFibGVBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRMb25nTnVs
bGFibGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibG9uZ051
bGxhYmxlQXR0ciIpOwogfQpAQCAtOTU4LDcgKzk1OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdOdWxsYWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxl
PElETFVuc2lnbmVkTG9uZz4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwu
dW5zaWduZWRMb25nTnVsbGFibGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0RE9NSklUVW5zaWduZWRMb25nTnVsbGFibGVBdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRVbnNpZ25lZExv
bmdOdWxsYWJsZUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ051bGxh
YmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVuc2lnbmVk
TG9uZ051bGxhYmxlQXR0ciIpOwogfQpAQCAtOTcxLDcgKzk3MSw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RET01KSVRMb25nTG9uZ051bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51
bGxhYmxlPElETExvbmdMb25nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1w
bC5sb25nTG9uZ051bGxhYmxlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERPTUpJVExvbmdMb25nTnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRMb25nTG9uZ051bGxhYmxl
QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUTG9uZ0xvbmdOdWxsYWJsZUF0dHJHZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJsb25nTG9uZ051bGxhYmxlQXR0ciIp
OwogfQpAQCAtOTg0LDcgKzk4NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01K
SVRVbnNpZ25lZExvbmdMb25nTnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETFVuc2lnbmVk
TG9uZ0xvbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVuc2lnbmVk
TG9uZ0xvbmdOdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdMb25nTnVsbGFibGVBdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRVbnNpZ25lZExv
bmdMb25nTnVsbGFibGVBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdM
b25nTnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
dW5zaWduZWRMb25nTG9uZ051bGxhYmxlQXR0ciIpOwogfQpAQCAtOTk3LDcgKzk5Nyw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRGbG9hdE51bGxhYmxlQXR0ckdldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETE51bGxhYmxlPElETEZsb2F0Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dT
Y29wZSwgaW1wbC5mbG9hdE51bGxhYmxlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVEZsb2F0TnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRGbG9hdE51bGxhYmxl
QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklURmxvYXROdWxsYWJsZUF0dHJHZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJmbG9hdE51bGxhYmxlQXR0ciIpOwogfQpA
QCAtMTAxMCw3ICsxMDEwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFVu
cmVzdHJpY3RlZEZsb2F0TnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2IKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMVW5yZXN0cmljdGVk
RmxvYXQ+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVucmVzdHJpY3Rl
ZEZsb2F0TnVsbGFibGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0RE9NSklUVW5yZXN0cmljdGVkRmxvYXROdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVFVucmVzdHJpY3Rl
ZEZsb2F0TnVsbGFibGVBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWRG
bG9hdE51bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
InVucmVzdHJpY3RlZEZsb2F0TnVsbGFibGVBdHRyIik7CiB9CkBAIC0xMDIzLDcgKzEwMjMsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklURG91YmxlTnVsbGFibGVBdHRyR2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExEb3VibGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBpbXBsLmRvdWJsZU51bGxhYmxlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVERvdWJsZU51bGxhYmxlQXR0cihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklURG91Ymxl
TnVsbGFibGVBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVREb3VibGVOdWxsYWJsZUF0dHJH
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJkb3VibGVOdWxsYWJsZUF0
dHIiKTsKIH0KQEAgLTEwMzYsNyArMTAzNiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RET01KSVRVbnJlc3RyaWN0ZWREb3VibGVOdWxsYWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETFVu
cmVzdHJpY3RlZERvdWJsZT4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwu
dW5yZXN0cmljdGVkRG91YmxlTnVsbGFibGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUVW5yZXN0cmljdGVkRG91YmxlTnVsbGFibGVBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01K
SVRVbnJlc3RyaWN0ZWREb3VibGVOdWxsYWJsZUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJ
VFVucmVzdHJpY3RlZERvdWJsZU51bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgInVucmVzdHJpY3RlZERvdWJsZU51bGxhYmxlQXR0ciIpOwogfQpAQCAt
MTA0OSw3ICsxMDQ5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVERvbVN0
cmluZ051bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGUKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMRE9NU3RyaW5nPj4obGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5kb21TdHJpbmdOdWxsYWJsZUF0dHIo
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVREb21T
dHJpbmdOdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdERPTUpJVERvbVN0cmluZ051bGxhYmxlQXR0ciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNU
ZXN0RE9NSklURG9tU3RyaW5nTnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAiZG9tU3RyaW5nTnVsbGFibGVBdHRyIik7CiB9CkBAIC0xMDYyLDcgKzEw
NjIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUQnl0ZVN0cmluZ051bGxh
YmxlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExCeXRlU3RyaW5nPj4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5ieXRlU3RyaW5nTnVsbGFibGVBdHRyKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUQnl0ZVN0cmluZ051
bGxhYmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0RE9NSklUQnl0ZVN0cmluZ051bGxhYmxlQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9N
SklUQnl0ZVN0cmluZ051bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgImJ5dGVTdHJpbmdOdWxsYWJsZUF0dHIiKTsKIH0KQEAgLTEwNzUsNyArMTA3NSw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRVc3ZTdHJpbmdOdWxsYWJsZUF0
dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETFVTVlN0cmluZz4+KGxleGljYWxHbG9iYWxPYmpl
Y3QsIHRocm93U2NvcGUsIGltcGwudXN2U3RyaW5nTnVsbGFibGVBdHRyKCkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUVXN2U3RyaW5nTnVsbGFibGVB
dHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RE
T01KSVRVc3ZTdHJpbmdOdWxsYWJsZUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVFVzdlN0
cmluZ051bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
InVzdlN0cmluZ051bGxhYmxlQXR0ciIpOwogfQpAQCAtMTA4OCw3ICsxMDg4LDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVE5vZGVOdWxsYWJsZUF0dHJHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMTnVsbGFibGU8SURMSW50ZXJmYWNlPE5vZGU+Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwg
KnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwubm9kZU51bGxhYmxl
QXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJ
VE5vZGVOdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdERPTUpJVE5vZGVOdWxsYWJsZUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERP
TUpJVE5vZGVOdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJub2RlTnVsbGFibGVBdHRyIik7CiB9CkBAIC0xMTEzLDcgKzExMTMsNyBAQCBKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRBdHRyaWJ1
dGUsIChKU0dsb2JhbE9iagogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0RE9NSklUPjo6
Y2FsbDxqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEF0dHJpYnV0ZUJvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZ2V0QXR0cmlidXRlIik7CiB9CiAKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlv
bkdldEF0dHJpYnV0ZVdpdGhvdXRUeXBlQ2hlY2soSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNUZXN0RE9NSklUKiBjYXN0ZWRUaGlzLCBET01KSVQ6OklETEpTQXJn
dW1lbnRUeXBlPElETERPTVN0cmluZz4gZW5jb2RlZE5hbWUpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRBdHRyaWJ1dGVXaXRob3V0VHlw
ZUNoZWNrLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNUZXN0RE9NSklUKiBjYXN0ZWRUaGlzLCBET01KSVQ6OklETEpTQXJn
dW1lbnRUeXBlPElETERPTVN0cmluZz4gZW5jb2RlZE5hbWUpKQogewogICAgIFVOVVNFRF9QQVJB
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwpAQCAtMTE1Miw3ICsxMTUyLDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSXRlbSwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXgKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdERPTUpJVD46OmNhbGw8anNUZXN0RE9N
SklUUHJvdG90eXBlRnVuY3Rpb25JdGVtQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJpdGVtIik7CiB9CiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkl0ZW1XaXRob3V0VHlwZUNoZWNrKEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERPTUpJVCogY2FzdGVkVGhp
cywgRE9NSklUOjpJRExKU0FyZ3VtZW50VHlwZTxJRExVbnNpZ25lZFNob3J0PiBlbmNvZGVkWCwg
RE9NSklUOjpJRExKU0FyZ3VtZW50VHlwZTxJRExVbnNpZ25lZFNob3J0PiBlbmNvZGVkWSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkl0ZW1X
aXRob3V0VHlwZUNoZWNrLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCAoSlNDOjpKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RE9NSklUKiBjYXN0ZWRUaGlzLCBET01KSVQ6
OklETEpTQXJndW1lbnRUeXBlPElETFVuc2lnbmVkU2hvcnQ+IGVuY29kZWRYLCBET01KSVQ6OklE
TEpTQXJndW1lbnRUeXBlPElETFVuc2lnbmVkU2hvcnQ+IGVuY29kZWRZKSkKIHsKICAgICBVTlVT
RURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKQEAgLTExODUsNyArMTE4NSw3IEBAIEpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkhhc0F0dHJpYnV0ZSwgKEpT
R2xvYmFsT2JqCiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RET01KSVQ+OjpjYWxsPGpz
VGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSGFzQXR0cmlidXRlQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJoYXNBdHRyaWJ1dGUiKTsKIH0KIAotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSGFzQXR0
cmlidXRlV2l0aG91dFR5cGVDaGVjayhKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1Rlc3RET01KSVQqIGNhc3RlZFRoaXMpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25IYXNBdHRyaWJ1dGVXaXRob3V0VHlwZUNo
ZWNrLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNUZXN0RE9NSklUKiBjYXN0ZWRUaGlzKSkKIHsKICAgICBVTlVTRURfUEFS
QU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKQEAgLTEyMTksNyArMTIxOSw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRCeUlkLCAoSlNHbG9i
YWxPCiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RET01KSVQ+OjpjYWxsPGpzVGVzdERP
TUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudEJ5SWRCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgImdldEVsZW1lbnRCeUlkIik7CiB9CiAKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEVsZW1l
bnRCeUlkV2l0aG91dFR5cGVDaGVjayhKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1Rlc3RET01KSVQqIGNhc3RlZFRoaXMsIERPTUpJVDo6SURMSlNBcmd1bWVudFR5
cGU8SURMUmVxdWlyZXNFeGlzdGluZ0F0b21TdHJpbmdBZGFwdG9yPElETERPTVN0cmluZz4+IGVu
Y29kZWRFbGVtZW50SWQpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04oanNUZXN0RE9NSklUUHJv
dG90eXBlRnVuY3Rpb25HZXRFbGVtZW50QnlJZFdpdGhvdXRUeXBlQ2hlY2ssIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rl
c3RET01KSVQqIGNhc3RlZFRoaXMsIERPTUpJVDo6SURMSlNBcmd1bWVudFR5cGU8SURMUmVxdWly
ZXNFeGlzdGluZ0F0b21TdHJpbmdBZGFwdG9yPElETERPTVN0cmluZz4+IGVuY29kZWRFbGVtZW50
SWQpKQogewogICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBWTSYg
dm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwpAQCAtMTI1NSw3ICsxMjU1LDcg
QEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9u
R2V0RWxlbWVudHNCeU5hbWUsIChKU0dsb2IKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dERPTUpJVD46OmNhbGw8anNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50c0J5
TmFtZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZ2V0RWxlbWVudHNC
eU5hbWUiKTsKIH0KIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERP
TUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudHNCeU5hbWVXaXRob3V0VHlwZUNoZWNrKEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERPTUpJVCogY2Fz
dGVkVGhpcywgRE9NSklUOjpJRExKU0FyZ3VtZW50VHlwZTxJRExBdG9tU3RyaW5nQWRhcHRvcjxJ
RExET01TdHJpbmc+PiBlbmNvZGVkRWxlbWVudE5hbWUpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50c0J5TmFtZVdpdGhvdXRU
eXBlQ2hlY2ssIEpTQzo6RW5jb2RlZEpTVmFsdWUsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RET01KSVQqIGNhc3RlZFRoaXMsIERPTUpJVDo6SURMSlNB
cmd1bWVudFR5cGU8SURMQXRvbVN0cmluZ0FkYXB0b3I8SURMRE9NU3RyaW5nPj4gZW5jb2RlZEVs
ZW1lbnROYW1lKSkKIHsKICAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAg
ICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9K
U09OLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RE
ZWZhdWx0VG9KU09OLmNwcAppbmRleCA0Mzc0NjgxYWI0NDc0ZGZlNzIwMjIyMWQ1YmM3ZjNjNDE4
ZDQ2ZGQxLi5kZjZjZGQxYzAwNWZmOTBkZjljMzVjMDRiOTQ2MDkyMjNhMTM5NGUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVs
dFRvSlNPTi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdERlZmF1bHRUb0pTT04uY3BwCkBAIC03NCw0MSArNzQsNDEgQEAgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3REZWZhdWx0VG9KU09OUHJvdG90eXBlRnVuY3Rpb25Ub0pTT04p
OwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05Mb25nQXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkVu
YWJsZWRCeVNldHRpbmdzQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05Mb25nQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTkVuYWJsZWRCeVNldHRpbmdzQXR0cmli
dXRlKTsKICNpZiBFTkFCTEUoVEVTVF9DT05ESVRJT05BTCkKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORW5hYmxlZEJ5Q29uZGl0aW9uYWxBdHRy
aWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNP
TkVuYWJsZWRCeUNvbmRpdGlvbmFsQXR0cmlidXRlKTsKICNlbmRpZgotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05FdmVudEhhbmRsZXJBdHRyaWJ1
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORXZlbnRI
YW5kbGVyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3REZWZhdWx0VG9KU09ORmlyc3RTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORmlyc3RTdHJpbmdBdHRyaWJ1dGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pT
T05TZWNvbmRMb25nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
RGVmYXVsdFRvSlNPTlNlY29uZExvbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05UaGlyZFVuSlNPTmFibGVBdHRy
aWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGhp
cmRVbkpTT05hYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZvdXJ0
aFVucmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORmlmdGhM
b25nQ2xhbXBlZEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTlNpeHRoVHlwZWRlZkF0dHJpYnV0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05TaXh0aFR5cGVkZWZBdHRyaWJ1
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1
bHRUb0pTT05TZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlNldmVudGhEaXJlY3RseVRvSlNPTmFi
bGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdERlZmF1bHRUb0pTT05FaWdodGhJbmRpcmVjdGx5QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1
bHRUb0pTT05OaW50aE9wdGlvbmFsRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTk5pbnRoT3B0aW9uYWxEaXJl
Y3RseVRvSlNPTmFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05UZW50aEZyb3plbkFycmF5QXR0cmlidXRlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlRlbnRoRnJvemVu
QXJyYXlBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdERlZmF1bHRUb0pTT05FbGV2ZW50aFNlcXVlbmNlQXR0cmlidXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkVsZXZlbnRoU2VxdWVuY2VBdHRy
aWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERl
ZmF1bHRUb0pTT05Ud2VsZnRoSW50ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1dGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OVHdlbGZ0aEludGVyZmFjZVNlcXVl
bmNlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3REZWZhdWx0VG9KU09OVGhpcnRlZW50aFJlY29yZEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05UaGlydGVlbnRoUmVjb3JkQXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNP
TkV2ZW50SGFuZGxlckF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdERlZmF1bHRUb0pTT05FdmVudEhhbmRsZXJBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09ORmlyc3RTdHJpbmdBdHRyaWJ1dGUpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09ORmlyc3RTdHJpbmdB
dHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09O
U2Vjb25kTG9uZ0F0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dERlZmF1bHRUb0pTT05TZWNvbmRMb25nQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTlRoaXJkVW5KU09OYWJsZUF0dHJpYnV0ZSk7CitKU0Nf
REVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05UaGlyZFVuSlNPTmFi
bGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9K
U09ORm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZvdXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0
dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05G
aWZ0aExvbmdDbGFtcGVkQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0RGVmYXVsdFRvSlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGUpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09OU2l4dGhUeXBlZGVmQXR0cmlidXRl
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlNpeHRo
VHlwZWRlZkF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1
bHRUb0pTT05TZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlNldmVudGhEaXJlY3RseVRvSlNP
TmFibGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0
VG9KU09ORWlnaHRoSW5kaXJlY3RseUF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05FaWdodGhJbmRpcmVjdGx5QXR0cmlidXRlKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTk5pbnRoT3B0aW9uYWxE
aXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3REZWZhdWx0VG9KU09OTmludGhPcHRpb25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJp
YnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05UZW50
aEZyb3plbkFycmF5QXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0RGVmYXVsdFRvSlNPTlRlbnRoRnJvemVuQXJyYXlBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09ORWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0
ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05FbGV2
ZW50aFNlcXVlbmNlQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0
RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0dHJpYnV0ZSk7CitKU0NfREVD
TEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05Ud2VsZnRoSW50ZXJmYWNl
U2VxdWVuY2VBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZh
dWx0VG9KU09OVGhpcnRlZW50aFJlY29yZEF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05UaGlydGVlbnRoUmVjb3JkQXR0cmlidXRlKTsK
IAogY2xhc3MgSlNUZXN0RGVmYXVsdFRvSlNPTlByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6
OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMjYxLDcgKzI2MSw3IEBAIHRlbXBsYXRl
PD4gaW5saW5lIEpTVGVzdERlZmF1bHRUb0pTT04qIElETE9wZXJhdGlvbjxKU1Rlc3REZWZhdWx0
VG9KU09OPjo6Y2FzdChKCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0RGVmYXVsdFRv
SlNPTio+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1Zh
bHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRU
b0pTT05Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjcxLDcgKzI3
MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU1Rlc3REZWZhdWx0VG9KU09OOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dERlZmF1bHRUb0pTT05Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI5Miw3
ICsyOTIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkxvbmdB
dHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleAogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Nj
b3BlLCBpbXBsLmxvbmdBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OTG9uZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTkxvbmdBdHRy
aWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0RGVmYXVsdFRvSlNPTj46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09OTG9uZ0F0dHJpYnV0
ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgImxvbmdBdHRyaWJ1dGUiKTsKIH0KQEAgLTMwNSw3ICszMDUsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkVuYWJsZWRCeVNldHRp
bmdzQXR0cmlidXRlR2V0dGVyKEpTR2xvYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExVbnNpZ25lZFNob3J0PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Nj
b3BlLCBpbXBsLmVuYWJsZWRCeVNldHRpbmdzQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkVuYWJsZWRCeVNldHRpbmdz
QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3REZWZhdWx0VG9KU09ORW5hYmxlZEJ5U2V0dGluZ3NBdHRyaWJ1dGUsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNP
Tj46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09ORW5hYmxlZEJ5U2V0dGluZ3NBdHRyaWJ1dGVHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJlbmFibGVkQnlTZXR0aW5nc0F0dHJpYnV0ZSIpOwogfQpAQCAtMzE5LDcg
KzMxOSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORW5hYmxl
ZEJ5Q29uZGl0aW9uYWxBdHRyaWJ1dGVHZXR0ZXIoSlNHCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETEVudW1lcmF0aW9uPFRlc3REZWZhdWx0VG9KU09ORW51bT4+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZW5hYmxlZEJ5Q29uZGl0aW9u
YWxBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3REZWZhdWx0VG9KU09ORW5hYmxlZEJ5Q29uZGl0aW9uYWxBdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05FbmFi
bGVkQnlDb25kaXRpb25hbEF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1
bHRUb0pTT05FbmFibGVkQnlDb25kaXRpb25hbEF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImVu
YWJsZWRCeUNvbmRpdGlvbmFsQXR0cmlidXRlIik7CiB9CkBAIC0zMzIsNyArMzMyLDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05FdmVudEhhbmRsZXJBdHRyaWJ1
dGVHZXR0ZXIoSlNHbG9iYWxPYmoKICAgICByZXR1cm4gZXZlbnRIYW5kbGVyQXR0cmlidXRlKHRo
aXNPYmplY3Qud3JhcHBlZCgpLCBldmVudE5hbWVzKCkuZW50SGFuZGxlckF0dHJpYnV0ZUV2ZW50
LCB3b3JsZEZvckRPTU9iamVjdCh0aGlzT2JqZWN0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkV2ZW50SGFuZGxlckF0dHJpYnV0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRv
SlNPTkV2ZW50SGFuZGxlckF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1
bHRUb0pTT05FdmVudEhhbmRsZXJBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJldmVudEhhbmRs
ZXJBdHRyaWJ1dGUiKTsKIH0KQEAgLTM0Nyw3ICszNDcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkV2ZW50SGFuZGxlckF0dHJpYnV0ZVNldHRlcihKU0dsb2Jh
bE9iagogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
RGVmYXVsdFRvSlNPTkV2ZW50SGFuZGxlckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRv
SlNPTkV2ZW50SGFuZGxlckF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6
c2V0PHNldEpTVGVzdERlZmF1bHRUb0pTT05FdmVudEhhbmRsZXJBdHRyaWJ1dGVTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImV2ZW50SGFuZGxl
ckF0dHJpYnV0ZSIpOwogfQpAQCAtMzYwLDcgKzM2MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3REZWZhdWx0VG9KU09ORmlyc3RTdHJpbmdBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxP
YmplCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmlu
Zz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5maXJzdFN0cmluZ0F0dHJp
YnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1
bHRUb0pTT05GaXJzdFN0cmluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTkZpcnN0U3RyaW5nQXR0cmlidXRl
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTkZpcnN0U3RyaW5nQXR0cmli
dXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiZmlyc3RTdHJpbmdBdHRyaWJ1dGUiKTsKIH0KQEAgLTM3OCw3
ICszNzgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZpcnN0
U3RyaW5nQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZQogICAgIHJldHVybiB0cnVlOwogfQog
Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZpcnN0U3RyaW5nQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09ORmlyc3RTdHJpbmdBdHRyaWJ1dGUsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9KU09ORmly
c3RTdHJpbmdBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgImZpcnN0U3RyaW5nQXR0cmlidXRlIik7CiB9CkBAIC0zOTEsNyArMzkx
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05TZWNvbmRMb25n
QXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwg
aW1wbC5zZWNvbmRMb25nQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTlNlY29uZExvbmdBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05T
ZWNvbmRMb25nQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNP
TlNlY29uZExvbmdBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3Nl
cnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzZWNvbmRMb25nQXR0cmlidXRl
Iik7CiB9CkBAIC00MDksNyArNDA5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdERl
ZmF1bHRUb0pTT05TZWNvbmRMb25nQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWMKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pT
T05TZWNvbmRMb25nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2Vjb25kTG9u
Z0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6c2V0PHNldEpTVGVzdERl
ZmF1bHRUb0pTT05TZWNvbmRMb25nQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzZWNvbmRMb25nQXR0cmlidXRlIik7CiB9CkBA
IC00MjIsNyArNDIyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pT
T05UaGlyZFVuSlNPTmFibGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWwKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RFeGNlcHRpb24+Pihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29w
ZSwgaW1wbC50aGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OVGhpcmRVbkpTT05hYmxlQXR0cmli
dXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RE
ZWZhdWx0VG9KU09OVGhpcmRVbkpTT05hYmxlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8
anNUZXN0RGVmYXVsdFRvSlNPTlRoaXJkVW5KU09OYWJsZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgInRoaXJkVW5KU09OYWJsZUF0dHJpYnV0ZSIpOwogfQpAQCAtNDQwLDcgKzQ0MCw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGhpcmRVbkpTT05hYmxlQXR0
cmlidXRlU2V0dGVyKEpTR2xvYmFsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGhpcmRVbkpTT05hYmxlQXR0cmlidXRlKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGhpcmRVbkpTT05hYmxlQXR0cmlidXRlLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdERlZmF1bHRUb0pTT04+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTlRoaXJkVW5K
U09OYWJsZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAidGhpcmRVbkpTT05hYmxlQXR0cmlidXRlIik7CiB9CkBAIC00NTMsNyAr
NDUzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Gb3VydGhV
bnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGVHZXR0ZXIKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMVW5yZXN0cmljdGVkRG91YmxlPihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmZvdXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZSgp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pT
T05Gb3VydGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05Gb3VydGhVbnJlc3Ry
aWN0ZWREb3VibGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OmdldDxqc1Rlc3REZWZhdWx0VG9K
U09ORm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJy
b3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZm91
cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmlidXRlIik7CiB9CkBAIC00NzEsNyArNDcxLDcgQEAg
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05Gb3VydGhVbnJlc3RyaWN0
ZWREb3VibGVBdHRyaWJ1dGVTZXR0ZXIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05Gb3VydGhVbnJlc3RyaWN0ZWREb3VibGVB
dHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05Gb3VydGhVbnJlc3RyaWN0ZWREb3Vi
bGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OnNldDxzZXRKU1Rlc3RE
ZWZhdWx0VG9KU09ORm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmlidXRlU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJmb3VydGhVbnJlc3Ry
aWN0ZWREb3VibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTQ4NCw3ICs0ODQsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGVH
ZXR0ZXIoSlNHbG9iYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJ
RExDbGFtcEFkYXB0b3I8SURMTG9uZz4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGltcGwuZmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05GaWZ0aExvbmdDbGFtcGVkQXR0cmli
dXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RE
ZWZhdWx0VG9KU09ORmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0
PGpzVGVzdERlZmF1bHRUb0pTT05GaWZ0aExvbmdDbGFtcGVkQXR0cmlidXRlR2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiZmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZSIpOwogfQpAQCAtNTAyLDcgKzUwMiw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORmlmdGhMb25nQ2xhbXBl
ZEF0dHJpYnV0ZVNldHRlcihKU0dsb2JhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0
ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGUsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9KU09ORmlm
dGhMb25nQ2xhbXBlZEF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAiZmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZSIpOwogfQpAQCAt
NTE1LDcgKzUxNSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09O
U2l4dGhUeXBlZGVmQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERvdWJsZT4obGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSwgaW1wbC5zaXh0aFR5cGVkZWZBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OU2l4dGhUeXBlZGVmQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3REZWZhdWx0VG9KU09OU2l4dGhUeXBlZGVmQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8
anNUZXN0RGVmYXVsdFRvSlNPTlNpeHRoVHlwZWRlZkF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
InNpeHRoVHlwZWRlZkF0dHJpYnV0ZSIpOwogfQpAQCAtNTMzLDcgKzUzMyw3IEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2l4dGhUeXBlZGVmQXR0cmlidXRlU2V0
dGVyKEpTR2xvYmFsT2JqCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2l4dGhUeXBlZGVmQXR0cmlidXRlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3REZWZhdWx0VG9KU09OU2l4dGhUeXBlZGVmQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1
bHRUb0pTT04+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTlNpeHRoVHlwZWRlZkF0dHJpYnV0
ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
c2l4dGhUeXBlZGVmQXR0cmlidXRlIik7CiB9CkBAIC01NDYsNyArNTQ2LDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05TZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxl
QXR0cmlidXRlR2V0dGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8
SURMSW50ZXJmYWNlPFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsPj4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuc2V2
ZW50aERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05TZXZlbnRoRGlyZWN0bHlUb0pTT05h
YmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3REZWZhdWx0VG9KU09OU2V2ZW50aERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZSwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RE
ZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05TZXZlbnRoRGlyZWN0bHlUb0pT
T05hYmxlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2V2ZW50aERpcmVjdGx5VG9KU09OYWJs
ZUF0dHJpYnV0ZSIpOwogfQpAQCAtNTY0LDcgKzU2NCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1Rlc3REZWZhdWx0VG9KU09OU2V2ZW50aERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZVNl
dHRlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RE
ZWZhdWx0VG9KU09OU2V2ZW50aERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0RGVmYXVsdFRvSlNPTlNldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2V2ZW50
aERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic2V2ZW50aERpcmVjdGx5VG9KU09OYWJsZUF0dHJp
YnV0ZSIpOwogfQpAQCAtNTc3LDcgKzU3Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3REZWZhdWx0VG9KU09ORWlnaHRoSW5kaXJlY3RseUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxUZXN0
RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2U+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5laWdodGhJbmRpcmVj
dGx5QXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0RGVmYXVsdFRvSlNPTkVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05FaWdodGhJ
bmRpcmVjdGx5QXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNP
TkVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9y
OjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJlaWdodGhJbmRpcmVj
dGx5QXR0cmlidXRlIik7CiB9CkBAIC01OTUsNyArNTk1LDcgQEAgc3RhdGljIGlubGluZSBib29s
IHNldEpTVGVzdERlZmF1bHRUb0pTT05FaWdodGhJbmRpcmVjdGx5QXR0cmlidXRlU2V0dGVyKEpT
R2xvYmEKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dERlZmF1bHRUb0pTT05FaWdodGhJbmRpcmVjdGx5QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZh
dWx0VG9KU09ORWlnaHRoSW5kaXJlY3RseUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0
VG9KU09OPjo6c2V0PHNldEpTVGVzdERlZmF1bHRUb0pTT05FaWdodGhJbmRpcmVjdGx5QXR0cmli
dXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJlaWdodGhJbmRpcmVjdGx5QXR0cmlidXRlIik7CiB9CkBAIC02MDgsNyArNjA4LDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05OaW50aE9wdGlvbmFsRGlyZWN0
bHlUb0pTT05hYmxlQXR0cmlidXQKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMTnVsbGFibGU8SURMSW50ZXJmYWNlPFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZp
bmFsPj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0
aHJvd1Njb3BlLCBpbXBsLm5pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUo
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9K
U09OTmludGhPcHRpb25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTk5pbnRo
T3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OmdldDxq
c1Rlc3REZWZhdWx0VG9KU09OTmludGhPcHRpb25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0
ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIm5pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1
dGUiKTsKIH0KQEAgLTYyNiw3ICs2MjYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
RGVmYXVsdFRvSlNPTk5pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dAogICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRv
SlNPTk5pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dERlZmF1bHRUb0pTT05OaW50aE9wdGlvbmFsRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTk5p
bnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm5pbnRoT3B0aW9uYWxEaXJlY3Rs
eVRvSlNPTmFibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTYzOSw3ICs2MzksNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlRlbnRoRnJvemVuQXJyYXlBdHRyaWJ1dGVH
ZXR0ZXIoSlNHbG9iYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJ
RExGcm96ZW5BcnJheTxJRExCb29sZWFuPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmpl
Y3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwudGVudGhGcm96ZW5BcnJheUF0dHJp
YnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1
bHRUb0pTT05UZW50aEZyb3plbkFycmF5QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09OVGVudGhGcm96ZW5BcnJh
eUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05UZW50aEZy
b3plbkFycmF5QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidGVudGhGcm96ZW5BcnJheUF0dHJp
YnV0ZSIpOwogfQpAQCAtNjU3LDcgKzY1Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3REZWZhdWx0VG9KU09OVGVudGhGcm96ZW5BcnJheUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0
VG9KU09OVGVudGhGcm96ZW5BcnJheUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNP
TlRlbnRoRnJvemVuQXJyYXlBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46
OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGVudGhGcm96ZW5BcnJheUF0dHJpYnV0ZVNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidGVudGhG
cm96ZW5BcnJheUF0dHJpYnV0ZSIpOwogfQpAQCAtNjcwLDcgKzY3MCw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZUdl
dHRlcihKU0dsb2JhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElE
TFNlcXVlbmNlPElETERPTVN0cmluZz4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0
Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLmVsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1
dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0
VG9KU09ORWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTkVsZXZlbnRoU2VxdWVuY2VB
dHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09ORWxldmVudGhT
ZXF1ZW5jZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImVsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1
dGUiKTsKIH0KQEAgLTY4OCw3ICs2ODgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
RGVmYXVsdFRvSlNPTkVsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYQogICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRv
SlNPTkVsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05F
bGV2ZW50aFNlcXVlbmNlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+Ojpz
ZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkVsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGVTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImVsZXZlbnRo
U2VxdWVuY2VBdHRyaWJ1dGUiKTsKIH0KQEAgLTcwMSw3ICs3MDEsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0dHJp
YnV0ZUdldHRlcgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExT
ZXF1ZW5jZTxJRExJbnRlcmZhY2U8VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWw+Pj4obGV4
aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUs
IGltcGwudHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZh
Y2VTZXF1ZW5jZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0dHJp
YnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05Ud2VsZnRoSW50ZXJm
YWNlU2VxdWVuY2VBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3Nl
cnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0d2VsZnRoSW50ZXJmYWNlU2Vx
dWVuY2VBdHRyaWJ1dGUiKTsKIH0KQEAgLTcxOSw3ICs3MTksNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0dHJpYnV0
ZVNldHRlcgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0dHJpYnV0ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0dHJpYnV0ZSwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6c2V0PHNldEpTVGVzdERlZmF1bHRUb0pTT05Ud2Vs
ZnRoSW50ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInR3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0dHJp
YnV0ZSIpOwogfQpAQCAtNzMyLDcgKzczMiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3REZWZhdWx0VG9KU09OVGhpcnRlZW50aFJlY29yZEF0dHJpYnV0ZUdldHRlcihKU0dsb2JhCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFJlY29yZDxJRExET01T
dHJpbmcsIElETFVuc2lnbmVkU2hvcnQ+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVj
dC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC50aGlydGVlbnRoUmVjb3JkQXR0cmli
dXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVs
dFRvSlNPTlRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05UaGlydGVlbnRoUmVjb3Jk
QXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTlRoaXJ0ZWVu
dGhSZWNvcmRBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0aGlydGVlbnRoUmVjb3JkQXR0cmli
dXRlIik7CiB9CkBAIC03NTAsNyArNzUwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dERlZmF1bHRUb0pTT05UaGlydGVlbnRoUmVjb3JkQXR0cmlidXRlU2V0dGVyKEpTR2xvYmEKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRU
b0pTT05UaGlydGVlbnRoUmVjb3JkQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09O
VGhpcnRlZW50aFJlY29yZEF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6
c2V0PHNldEpTVGVzdERlZmF1bHRUb0pTT05UaGlydGVlbnRoUmVjb3JkQXR0cmlidXRlU2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ0aGlydGVl
bnRoUmVjb3JkQXR0cmlidXRlIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2Vk
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZh
dWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQuY3BwCmluZGV4IDYyNDNhYWU2NWZjNTgxMzcwMjkx
NGMzNzhjZmFiMGM3MzBhMTE5MTMuLjY1NjA0MmMwZmM4MmUwZDI2ZGRkMWU4NTZjMTc1MTEyZWQ1
YmE2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVy
ZWRCeUV4cG9zZWQuY3BwCkBAIC01MywxMSArNTMsMTEgQEAgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRQcm90b3R5cGVGdW5jdGlv
blQKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkTm9ybWFsQXR0cmlidXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkZpbHRl
cmVkQnlFeHBvc2VkRmlsdGVyZWRCeUV4cG9zZWRXaW5kb3dBdHRyaWJ1dGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRC
eUV4cG9zZWRGaWx0ZXJlZEJ5RXhwb3NlZFdvcmtlckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25z
dHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERlZmF1bHRUb0pT
T05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkTm9ybWFsQXR0cmlidXRlKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlF
eHBvc2VkRmlsdGVyZWRCeUV4cG9zZWRXaW5kb3dBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRGaWx0ZXJlZEJ5
RXhwb3NlZFdvcmtlckF0dHJpYnV0ZSk7CiAKIGNsYXNzIEpTVGVzdERlZmF1bHRUb0pTT05GaWx0
ZXJlZEJ5RXhwb3NlZFByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmpl
Y3QgewogcHVibGljOgpAQCAtMTkyLDcgKzE5Miw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVz
dERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZCogSURMT3BlcmF0aW9uPEpTVGVzdERlZmF1
CiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlF
eHBvc2VkKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlz
VmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVs
dFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhw
b3NlZENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjAyLDcgKzIwMiw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3Ry
dWN0b3IoSlNHCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3REZWZhdWx0VG9KU09O
RmlsdGVyZWRCeUV4cG9zZWQ6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIyMyw3ICsyMjMsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkTm9ybWFsQXR0cmlidXRl
R2V0dGVyKAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25n
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm5vcm1hbEF0dHJpYnV0ZSgp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pT
T05GaWx0ZXJlZEJ5RXhwb3NlZE5vcm1hbEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBv
c2VkTm9ybWFsQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZD46OmdldDxq
c1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWROb3JtYWxBdHRyaWJ1dGVHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJub3JtYWxBdHRyaWJ1dGUiKTsKIH0KQEAgLTIzNiw3ICsyMzYsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkRmls
dGVyZWRCeUV4cG9zZWRXaW5kbwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExEb3VibGU+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZmls
dGVyZWRCeUV4cG9zZWRXaW5kb3dBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRGaWx0ZXJl
ZEJ5RXhwb3NlZFdpbmRvd0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkRmlsdGVy
ZWRCeUV4cG9zZWRXaW5kb3dBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2Vk
Pjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZEZpbHRlcmVkQnlFeHBv
c2VkV2luZG93QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZmlsdGVyZWRCeUV4cG9zZWRXaW5k
b3dBdHRyaWJ1dGUiKTsKIH0KQEAgLTI0OSw3ICsyNDksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkRmlsdGVyZWRCeUV4cG9zZWRX
b3JrZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJp
bmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZmlsdGVyZWRCeUV4cG9z
ZWRXb3JrZXJBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRGaWx0ZXJlZEJ5RXhwb3NlZFdv
cmtlckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIoanNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkRmlsdGVyZWRCeUV4cG9zZWRX
b3JrZXJBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkPjo6Z2V0PGpzVGVz
dERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZEZpbHRlcmVkQnlFeHBvc2VkV29ya2VyQXR0
cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZmlsdGVyZWRCeUV4cG9zZWRXb3JrZXJBdHRyaWJ1dGUi
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0
SW5oZXJpdGFuY2UuY3BwCmluZGV4IGZkZDY1MzUxYzcyMjQ1NTZkY2RjNDExZTEyZjczZGYyNzJi
ZTFlYmMuLjhjMjIxMjUzZDI2MzRhMThkNzcyMzEzZWRjYzUyMWMzODk3N2IxNTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0
VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNl
LmNwcApAQCAtNDMsOCArNDMsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1
dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9K
U09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05JbmRp
cmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKTsKIAog
Y2xhc3MgSlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VQcm90b3R5cGUgZmlu
YWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE0MSw3ICsx
NDEsNyBAQCBKU1ZhbHVlIEpTVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlOjpn
ZXRDb25zdHJ1Y3RvcihWTSYgdm0sIGNvbnN0IEpTRwogICAgIHJldHVybiBnZXRET01Db25zdHJ1
Y3RvcjxKU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yPih2
bSwgKmpzQ2FzdDxjb25zdCBKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05JbmRpcmVj
dEluaGVyaXRhbmNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3Ry
dWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0xNTEsNyArMTUxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKEoK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdElu
aGVyaXRhbmNlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
LCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdC5j
cHAKaW5kZXggOWZjODA0YjE2OGYzNDViMWE2NDEzNDAyYTZkODg5OThmZjgzMzQ0Zi4uZjcxMTg0
NGRjMzJjNGIxNjg3NWE4NThhY2Y2MTZlZjZlMTY5Y2Y0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RGVmYXVsdFRvSlNPTkluaGVyaXQuY3BwCkBAIC03MCwxMCArNzAsMTAgQEAgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdFByb3RvdHlwZUZ1bmN0aW9u
VG9KU09OKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pT
T05Jbmhlcml0SW5oZXJpdExvbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEluaGVyaXRMb25nQXR0cmlidXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25z
dHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERlZmF1bHRUb0pT
T05Jbmhlcml0Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RE
ZWZhdWx0VG9KU09OSW5oZXJpdEluaGVyaXRMb25nQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRJbmhlcml0TG9uZ0F0dHJp
YnV0ZSk7CiAKIGNsYXNzIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0UHJvdG90eXBlIGZpbmFs
IDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xODIsNyArMTgy
LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQqIElETE9w
ZXJhdGlvbjxKU1Rlc3REZWZhdWx0VG9KU09OSW4KICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxK
U1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdCo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTIsNyArMTkyLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdERlZmF1bHRUb0pTT05J
bmhlcml0OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBw
cm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0
VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjEzLDcg
KzIxMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJp
dEluaGVyaXRMb25nQXR0cmlidXRlR2V0dGVyKEpTR2xvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIGltcGwuaW5oZXJpdExvbmdBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEluaGVyaXRMb25nQXR0cmli
dXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RE
ZWZhdWx0VG9KU09OSW5oZXJpdEluaGVyaXRMb25nQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0Pjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0SW5oZXJpdExvbmdBdHRyaWJ1dGVH
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJpbmhlcml0TG9uZ0F0dHJpYnV0ZSIpOwogfQpAQCAtMjMxLDcgKzIz
MSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdElu
aGVyaXRMb25nQXR0cmlidXRlU2V0dGVyKEpTR2xvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEluaGVyaXRMb25n
QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEluaGVyaXRMb25nQXR0
cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Pjo6c2V0PHNldEpTVGVz
dERlZmF1bHRUb0pTT05Jbmhlcml0SW5oZXJpdExvbmdBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImluaGVyaXRMb25nQXR0cmli
dXRlIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5h
bC5jcHAKaW5kZXggMTgxYTUyMTJiNTcxMTgzY2M1Njk1MDdhNTc4NjcxNDJhMmI1YzQwNi4uOTZh
NGU3ODZmYWQ3ZDE0NjdlNWE3OTE5YjU3YTY4MmRhZTFlNzljYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0RmluYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsLmNwcApAQCAtNzAsMTIgKzcwLDEyIEBA
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5h
bFByb3RvdHlwZUZ1bmN0aW9uVG9KU09OCiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05J
bmhlcml0RmluYWxDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0
ZUZvbyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVGb28oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdB
dHRyaWJ1dGVCYXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9K
U09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlQmFyKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9y
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVy
aXRGaW5hbENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RGVm
YXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUZvbyk7CitKU0NfREVDTEFS
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExv
bmdBdHRyaWJ1dGVGb28pOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0
VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlQmFyKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0
dHJpYnV0ZUJhcik7CiAKIGNsYXNzIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxQcm90
b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAg
LTE4NSw3ICsxODUsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3REZWZhdWx0VG9KU09OSW5o
ZXJpdEZpbmFsKiBJRExPcGVyYXRpb248SlNUZXN0RGVmYXVsdFRvSgogICAgIHJldHVybiBqc0R5
bmFtaWNDYXN0PEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWwqPihKU0M6OmdldFZNKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpz
VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5NSw3
ICsxOTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pT
T05Jbmhlcml0RmluYWxDb25zdHJ1Y3RvcihKU0dsb2JhbAogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbDo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkp
OwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRG
aW5hbENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZN
JiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMTYsNyArMjE2LDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdB
dHRyaWJ1dGVGb29HZXR0ZXIKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5maW5hbExv
bmdBdHRyaWJ1dGVGb28oKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlRm9vKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9K
U09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlRm9vLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0
RmluYWw+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJp
YnV0ZUZvb0dldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImZpbmFsTG9uZ0F0dHJpYnV0ZUZvbyIpOwogfQpAQCAt
MjM0LDcgKzIzNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09O
SW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlRm9vU2V0dGVyCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZp
bmFsRmluYWxMb25nQXR0cmlidXRlRm9vKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJp
dEZpbmFsRmluYWxMb25nQXR0cmlidXRlRm9vLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT05J
bmhlcml0RmluYWw+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFs
TG9uZ0F0dHJpYnV0ZUZvb1NldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAiZmluYWxMb25nQXR0cmlidXRlRm9vIik7CiB9CkBAIC0yNDcsNyArMjQ3
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Rmlu
YWxGaW5hbExvbmdBdHRyaWJ1dGVCYXJHZXR0ZXIKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwg
aW1wbC5maW5hbExvbmdBdHRyaWJ1dGVCYXIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmli
dXRlQmFyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlQmFyLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRU
b0pTT05Jbmhlcml0RmluYWw+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZp
bmFsTG9uZ0F0dHJpYnV0ZUJhckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2Vy
dD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImZpbmFsTG9uZ0F0dHJpYnV0ZUJh
ciIpOwogfQpAQCAtMjY1LDcgKzI2NSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RE
ZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlQmFyU2V0dGVyCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9K
U09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlQmFyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0
VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlQmFyLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERl
ZmF1bHRUb0pTT05Jbmhlcml0RmluYWw+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVy
aXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUJhclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZmluYWxMb25nQXR0cmlidXRlQmFyIik7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RG9tYWluU2VjdXJpdHkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdERvbWFpblNlY3VyaXR5LmNwcAppbmRleCAwZTNkOTM5M2E0OTFhMWZjMDQ3OGM4
YThiMmYyNjgwYjE5NzlkYThmLi45Y2M1MGNlZWQyODljNTEyNDY1MTQ2OWEyZWY0ZjExZDRhMzg1
ODc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0RG9tYWluU2VjdXJpdHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3REb21haW5TZWN1cml0eS5jcHAKQEAgLTU4LDkgKzU4LDkgQEAg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZUZ1
bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZCkKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERvbWFpblNl
Y3VyaXR5RXhjaXRpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVz
dERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0RG9tYWluU2VjdXJpdHlFeGNpdGluZ0F0dHIpOwogCiBjbGFzcyBKU1Rlc3RE
b21haW5TZWN1cml0eVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmpl
Y3QgewogcHVibGljOgpAQCAtMTkxLDcgKzE5MSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVz
dERvbWFpblNlY3VyaXR5KiBJRExPcGVyYXRpb248SlNUZXN0RG9tYWluU2VjdXJpdHk+OjpjYXN0
CiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0RG9tYWluU2VjdXJpdHkqPihKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REb21haW5TZWN1cml0eUNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RE
b21haW5TZWN1cml0eUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjAxLDcgKzIwMSw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3REb21h
aW5TZWN1cml0eTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RG9tYWluU2Vj
dXJpdHlDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7
CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIyNiw3ICsyMjYsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RG9tYWluU2VjdXJpdHlFeGNpdGluZ0F0dHJH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBs
LmV4Y2l0aW5nQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdERvbWFpblNlY3VyaXR5RXhjaXRpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REb21haW5TZWN1cml0eUV4Y2l0aW5nQXR0ciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REb21h
aW5TZWN1cml0eT46OmdldDxqc1Rlc3REb21haW5TZWN1cml0eUV4Y2l0aW5nQXR0ckdldHRlciwg
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgImV4Y2l0aW5nQXR0ciIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRp
bmcuY3BwCmluZGV4IDczYzU2OTA5OWJjY2YwNmM0NWMxZTA0NDIyNmY4MjY3NGIwMmNlMmYuLjg2
YzJjZjdlMTI2MzkyOTY0ZTNmMDA5NWRkOTIzMmYzZTY3OGRmZjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5n
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RW5hYmxlZEJ5U2V0dGluZy5jcHAKQEAgLTU3LDIwICs1NywyMCBAQCBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdEVuYWJsZWRCeVNldHRpbmdQcm90b3R5cGVGdW5jdGlvbkVuYWJsZWRC
eVNldHRpbgogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdUZXN0
U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Rlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RFbmFibGVk
QnlTZXR0aW5nQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RFbmFibGVkQnlTZXR0aW5nVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1
Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEVuYWJsZWRCeVNldHRp
bmdUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKTsKICNpZiBFTkFCTEUoVEVT
VF9GRUFUVVJFKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEVuYWJs
ZWRCeVNldHRpbmdFbmFibGVkQnlTZXR0aW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RFbmFibGVkQnlTZXR0aW5n
RW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNl
dEpTVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlTZXR0aW5nQXR0cmlidXRlKTsKICNlbmRp
ZgogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJs
ZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJs
ZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlKTsKICNlbmRpZgotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1dGUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nU3VwcGxl
bWVudGFsQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0
RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNU
T01fU0VUVEVSKHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1dGUp
OwogCiBjbGFzcyBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nUHJvdG90eXBlIGZpbmFsIDogcHVibGlj
IEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yNjMsNyArMjYzLDcgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgSlNUZXN0RW5hYmxlZEJ5U2V0dGluZyogSURMT3BlcmF0aW9uPEpTVGVz
dEVuYWJsZWRCeVNldHRpbmc+OjoKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RFbmFi
bGVkQnlTZXR0aW5nKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFt
ZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0yNzMsNyArMjczLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RF
bmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGwKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEVuYWJsZWRCeVNldHRpbmc6OmdldENvbnN0cnVjdG9yKEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkp
KTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMjkyLDcgKzI5Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RFbmFibGVkQnlTZXR0aW5nVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3Rv
CiAgICAgcmV0dXJuIEpTVGVzdFN1Yk9iajo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4
aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdUZXN0U3ViT2Jq
RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RFbmFibGVkQnlTZXR0aW5nVGVzdFN1Yk9iakVuYWJsZWRC
eVNldHRpbmdDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RFbmFibGVkQnlTZXR0aW5nPjo6Z2V0PGpzVGVzdEVuYWJsZWRC
eVNldHRpbmdUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmci
KTsKIH0KQEAgLTMwNCw3ICszMDQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RW5h
YmxlZEJ5U2V0dGluZ1Rlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0bwogICAgIHJl
dHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGlu
ZyIpLCBzdHJsZW4oIlRlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nIikpLCB2YWx1ZSk7CiB9CiAK
LWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nVGVzdFN1Yk9iakVu
YWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Rl
c3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RW5hYmxl
ZEJ5U2V0dGluZz46OnNldDxzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nVGVzdFN1Yk9iakVuYWJs
ZWRCeVNldHRpbmdDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmciKTsKIH0KQEAg
LTMxOCw3ICszMTgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RW5hYmxlZEJ5U2V0
dGluZ0VuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGVHZXR0ZXIoSlNHbAogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmpl
Y3QsIHRocm93U2NvcGUsIGltcGwuZW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZSgpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFi
bGVkQnlTZXR0aW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0
ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RFbmFibGVkQnlTZXR0aW5nPjo6Z2V0PGpzVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlT
ZXR0aW5nQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0
ZSIpOwogfQpAQCAtMzM5LDcgKzMzOSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RF
bmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZVNldHRlcihKU0dsCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RFbmFibGVkQnlT
ZXR0aW5nRW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RW5hYmxlZEJ5U2V0
dGluZ0VuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RW5hYmxlZEJ5U2V0
dGluZz46OnNldDxzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5U2V0dGluZ0F0dHJp
YnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVl
LCAiZW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZSIpOwogfQpAQCAtMzU1LDcgKzM1NSw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0
dGluZ3NBdHRyaWJ1dGVHZXR0ZXIoCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1w
bC5lbmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlUd29TZXR0aW5n
c0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEVuYWJs
ZWRCeVNldHRpbmc+OjpnZXQ8anNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVR3b1NldHRp
bmdzQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1
dGUiKTsKIH0KQEAgLTM3Niw3ICszNzYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlU2V0dGVyKAogICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RW5hYmxlZEJ5
U2V0dGluZ0VuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RFbmFibGVk
QnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RW5h
YmxlZEJ5U2V0dGluZz46OnNldDxzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdv
U2V0dGluZ3NBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgImVuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlIik7CiB9CkBAIC0z
OTEsNyArMzkxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEVuYWJsZWRCeVNldHRp
bmdTdXBwbGVtZW50YWxBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWwKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBXZWJDb3JlOjpUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbDo6
c3VwcGxlbWVudGFsQXR0cmlidXRlKGltcGwpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1dGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEVuYWJsZWRC
eVNldHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RW5hYmxlZEJ5U2V0dGluZz46OmdldDxqc1Rl
c3RFbmFibGVkQnlTZXR0aW5nU3VwcGxlbWVudGFsQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlz
RXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
c3VwcGxlbWVudGFsQXR0cmlidXRlIik7CiB9CkBAIC00MDksNyArNDA5LDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1dGVT
ZXR0ZXIoSlNHbG9iYWwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
RW5hYmxlZEJ5U2V0dGluZz46OnNldDxzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nU3VwcGxlbWVu
dGFsQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJzdXBwbGVtZW50YWxBdHRyaWJ1dGUiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkRm9yQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5h
YmxlZEZvckNvbnRleHQuY3BwCmluZGV4IDcwYzgxMjcyMjg3ZTliYzE3ZGIzZTIwYTg0OTg2Y2Jl
M2ExOGM0ZjYuLjNjYjQxNTI3ODU4MTdiMjc2ZmIxOTg0ZjQxNDUzY2Q4ZWMyY2E4N2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFi
bGVkRm9yQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEVuYWJsZWRGb3JDb250ZXh0LmNwcApAQCAtNDgsMTAgKzQ4LDEwIEBAIHVz
aW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFbmFibGVk
Rm9yQ29udGV4dFRlc3RTdWJPYmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RW5hYmxlZEZvckNvbnRleHRUZXN0U3ViT2JqRW5h
YmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RW5hYmxlZEZvckNvbnRleHRUZXN0U3ViT2JqRW5h
YmxlZEZvckNvbnRleHRDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNl
dEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0VGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0Q29uc3Ry
dWN0b3IpOwogCiBjbGFzcyBKU1Rlc3RFbmFibGVkRm9yQ29udGV4dFByb3RvdHlwZSBmaW5hbCA6
IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTYyLDcgKzE2Miw3
IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0KiBJRExBdHRyaWJ1
dGU8SlNUZXN0RW5hYmxlZEZvckNvbnRleHQ+CiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0RW5hYmxlZEZvckNvbnRleHQqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEVuYWJsZWRGb3JDb250ZXh0Q29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0xNzIsNyArMTcyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0RW5hYmxlZEZvckNvbnRleHQ6Omdl
dENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+
Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEVuYWJs
ZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0Q29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZN
JiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTEsNyArMTkxLDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdEVuYWJsZWRGb3JDb250ZXh0VGVzdFN1Yk9iakVuYWJsZWRG
b3JDb250ZXh0Q29uc3RydWMKICAgICByZXR1cm4gSlNUZXN0U3ViT2JqOjpnZXRDb25zdHJ1Y3Rv
cihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmpl
Y3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RW5hYmxlZEZv
ckNvbnRleHRUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RW5hYmxlZEZvckNvbnRl
eHRUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RFbmFibGVkRm9yQ29udGV4
dD46OmdldDxqc1Rlc3RFbmFibGVkRm9yQ29udGV4dFRlc3RTdWJPYmpFbmFibGVkRm9yQ29udGV4
dENvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVz
dFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0Iik7CiB9CkBAIC0yMDMsNyArMjAzLDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0VGVzdFN1Yk9iakVuYWJsZWRG
b3JDb250ZXh0Q29uc3RydWMKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigi
VGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0IiksIHN0cmxlbigiVGVzdFN1Yk9iakVuYWJsZWRG
b3JDb250ZXh0IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RF
bmFibGVkRm9yQ29udGV4dFRlc3RTdWJPYmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RFbmFibGVkRm9yQ29udGV4dFRlc3RTdWJPYmpFbmFibGVkRm9yQ29udGV4dENv
bnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0Pjo6c2V0PHNldEpTVGVz
dEVuYWJsZWRGb3JDb250ZXh0VGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3JT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRl
c3RTdWJPYmpFbmFibGVkRm9yQ29udGV4dCIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3Ry
dWN0b3IuY3BwCmluZGV4IDljOGY4NTUxYTdmNjg2OGEyNTBmNTgxNWRhMWFlNDQ2NzY0MjdmMTYu
LmExY2RkY2ExYzJjMjIxNWNlOWE1OWFiNjBlZjk2NDNhMTQxZmYxMmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVj
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKQEAgLTEyMywxMiArMTIzLDEyIEBAIHRlbXBsYXRlPD4g
VGVzdEV2ZW50Q29uc3RydWN0b3I6OkluaXQgY29udmVydERpY3Rpb25hcnk8VGVzdEV2ZW50Q29u
c3RydWN0b3I6OkluCiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RXZlbnRDb25zdHJ1Y3Rv
ckF0dHIxKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RXZl
bnRDb25zdHJ1Y3RvckF0dHIyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVz
dEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMSk7CitKU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMik7CiAjaWYgRU5BQkxFKFNQRUNJ
QUxfRVZFTlQpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RXZlbnRD
b25zdHJ1Y3RvckF0dHIzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEV2
ZW50Q29uc3RydWN0b3JBdHRyMyk7CiAjZW5kaWYKIAogY2xhc3MgSlNUZXN0RXZlbnRDb25zdHJ1
Y3RvclByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewpAQCAt
MjYzLDcgKzI2Myw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEV2ZW50Q29uc3RydWN0b3Iq
IElETEF0dHJpYnV0ZTxKU1Rlc3RFdmVudENvbnN0cnVjdG9yPjo6CiAgICAgcmV0dXJuIGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcio+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9i
YWxPYmplY3QpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RFdmVudENvbnN0
cnVjdG9yQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9
IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNzMsNyArMjczLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEV2ZW50Q29uc3Ry
dWN0b3I6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHBy
b3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RXZlbnRDb25zdHJ1
Y3RvckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsK
ICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjk0LDcgKzI5NCw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjFHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwg
aW1wbC5hdHRyMSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dEV2ZW50Q29uc3RydWN0b3JBdHRyMShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIoanNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIxLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEV2ZW50Q29uc3RydWN0b3I+
OjpnZXQ8anNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIxR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JC
ZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYXR0cjEi
KTsKIH0KQEAgLTMwNyw3ICszMDcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RXZl
bnRDb25zdHJ1Y3RvckF0dHIyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsRwogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYXR0cjIoKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEV2ZW50Q29uc3RydWN0
b3JBdHRyMiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RFdmVudENvbnN0cnVjdG9yPjo6Z2V0PGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRy
MkdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgImF0dHIyIik7CiB9CkBAIC0zMjEsNyArMzIxLDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyM0dldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEcKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmF0
dHIzKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RXZlbnRD
b25zdHJ1Y3RvckF0dHIzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcj46OmdldDxq
c1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjNHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9y
OjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJhdHRyMyIpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEV2ZW50VGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKaW5kZXggMDMyMTcyNDZkZGY2NTYxNWI0YTg5YmU3NjFl
MmQ5ZDkzMzExMmMzNi4uNDEzZmJmMmNmNjQ4ODJhZTNkMDY1NzU5ZGU0YzRiZGIyNzM3Y2Y1YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEV2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCkBAIC01NCw4ICs1NCw4IEBAIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVGdW5jdGlvbkl0ZW0pOwog
CiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RFdmVudFRhcmdldENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKTsKIAogY2xhc3MgSlNUZXN0RXZl
bnRUYXJnZXRQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsK
IHB1YmxpYzoKQEAgLTIyNiw3ICsyMjYsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RFdmVu
dFRhcmdldCogSURMT3BlcmF0aW9uPEpTVGVzdEV2ZW50VGFyZ2V0Pjo6Y2FzdChKU0dsbwogICAg
IHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdEV2ZW50VGFyZ2V0Kj4oSlNDOjpnZXRWTSgmbGV4
aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RXZlbnRUYXJnZXRD
b25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIzNiw3ICsyMzYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0RXZlbnRUYXJnZXQ6OmdldENv
bnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xv
YmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEV2ZW50VGFy
Z2V0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RF
RklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCmluZGV4IGI2MTAwMThjMjk0Yjkx
MjRmNTQ4YmM2MDRjMTNjMGY0MjYwNjRmNDcuLjkwOTc2NzgzMzRlZDk5N2JiM2E3OTdmODMwNjIy
Y2U1NWQ1OGVlZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCkBAIC00Niw5ICs0Niw5IEBAIHVz
aW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEV4Y2VwdGlvbk5hbWUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3Rvcik7CitK
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEV4Y2VwdGlvbk5hbWUpOwogCiBjbGFzcyBK
U1Rlc3RFeGNlcHRpb25Qcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2Jq
ZWN0IHsKIHB1YmxpYzoKQEAgLTE1OCw3ICsxNTgsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rl
c3RFeGNlcHRpb24qIElETEF0dHJpYnV0ZTxKU1Rlc3RFeGNlcHRpb24+OjpjYXN0KEpTR2xvYmFs
TwogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdEV4Y2VwdGlvbio+KEpTQzo6Z2V0Vk0o
JmxleGljYWxHbG9iYWxPYmplY3QpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEV4Y2Vw
dGlvbkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTY4LDcgKzE2OCw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RFeGNlcHRpb246Omdl
dENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+
Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEV4Y2Vw
dGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3RvciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTE4OSw3ICsxODksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0RXhjZXB0aW9uTmFtZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
agogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubmFtZSgpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEV4Y2VwdGlvbk5hbWUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEV4Y2VwdGlvbk5hbWUs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
RXhjZXB0aW9uPjo6Z2V0PGpzVGVzdEV4Y2VwdGlvbk5hbWVHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJuYW1l
Iik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKaW5kZXggZGI1
ZmRkOTg5ODM5YjM5NDNkMzdiZGY1MTU3MjY5MmNhNjUwODFhYi4uMjFhNzhkMjEyODNlYzA0YmY2
MWM4MTI4YmJjMGNmNzVjMGNmMGVjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlLmNwcApAQCAtNDYsOSArNDYsOSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBB
dHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHZW5l
cmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVBU2VjcmV0QXR0
cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGVDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVBU2VjcmV0QXR0cmlidXRlKTsKIAogY2xhc3Mg
SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpT
Tm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTY4LDcgKzE2OCw3IEBAIHRlbXBsYXRlPD4g
aW5saW5lIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqIElETEF0dHJpYnV0ZTxKU1Rlc3RHZW5l
cmF0ZUlzUmVhY2hhCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0R2VuZXJhdGVJc1Jl
YWNoYWJsZSo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3Is
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0xNzgsNyArMTc4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU6OmdldENvbnN0
cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFs
T2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitK
U0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYg
dm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk5LDcgKzE5OSw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQVNlY3JldEF0dHJpYnV0ZUdl
dHRlcihKU0dsb2JhbE9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hU2Vj
cmV0QXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUFTZWNyZXRBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVBU2Vj
cmV0QXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU+OjpnZXQ8anNUZXN0R2VuZXJhdGVJc1Jl
YWNoYWJsZUFTZWNyZXRBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpB
c3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJhU2VjcmV0QXR0cmlidXRl
Iik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0R2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwCmluZGV4IGExNjY0NzI3NmFiMWU1NjJj
NzEzNmZhZmE3Yzg3ZDBlNWQ4ZTM4ZWUuLjRkOWViMDFkYzY2NTBmN2JmYjNkMDY2NmI1NTg4ZmZk
OTQ1Njg5MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwCkBAIC0xNTgsMTcyICsxNTgs
MTcyIEBAIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0R2xvYmFsT2JqZWN0SW5zdGFu
Y2VGdW5jdGlvblRlc3RGZWF0dXJlR2V0U2VjcmV0CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2Jh
bE9iamVjdFJlZ3VsYXJBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RSZWd1bGFyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0UHVibGlj
QW5kUHJpdmF0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpz
VGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RHbG9iYWxPYmplY3RSZWd1bGFyQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0UmVndWxhckF0dHJpYnV0ZSk7CitKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVB
dHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RQdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlKTsKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFB1Ymxp
Y0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFB1
YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0
dHJpYnV0ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1bnRpbWVB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RF
bmFibGVkQXRSdW50aW1lQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0R2xvYmFsT2JqZWN0RW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSk7CitKU0NfREVD
TEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1bnRpbWVB
dHRyaWJ1dGUpOwogI2VuZGlmCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0R2xvYmFsT2JqZWN0RE9NV2luZG93Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RET01XaW5kb3dDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0RGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEdsb2JhbE9iamVjdERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2Jh
bE9iamVjdFBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RQYWludFdvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RHbG9iYWxPYmplY3RTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc0Nv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25z
U3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsVHJhY2Vy
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9i
YWxPYmplY3RET01XaW5kb3dDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdEdsb2JhbE9iamVjdERPTVdpbmRvd0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0RGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2Jh
bE9iamVjdERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RQYWludFdvcmtsZXRHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFs
T2JqZWN0UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0U2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3Rvcik7
CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJl
YWN0aW9uc0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xv
YmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVD
TEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc1N0
cmluZ2lmaWVyQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxUcmFjZXJDb25zdHJ1Y3Rvcik7
CiAjaWYgRU5BQkxFKFRFU1RfQ09ORElUSU9OQUwpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2Fs
bGJhY2tJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsYmFja0ludGVyZmFjZUNvbnN0cnVjdG9yKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxi
YWNrSW50ZXJmYWNlQ29uc3RydWN0b3IpOwogI2VuZGlmCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0
cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0
VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RET01KSVRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RET01KSVRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRU
b0pTT05Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09O
SW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNl
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pT
T05Jbmhlcml0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RG9tYWluU2Vj
dXJpdHlDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxlZEJ5U2V0
dGluZ0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRGb3JD
b250ZXh0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0RW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50Q29u
c3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudFRh
cmdldENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFeGNlcHRpb25Db25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RF
eGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RHZW5l
cmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RHbG9i
YWxPYmplY3RDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0
dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25D
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0
cnVjdG9yQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcik7
CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDb25kaXRp
b25hbEluY2x1ZGVzQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdERPTUpJVENvbnN0
cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdERPTUpJVENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0
R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OQ29uc3Ry
dWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFS
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5k
aXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3IpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVs
dFRvSlNPTkluaGVyaXRDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpz
VGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3Ip
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVm
YXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3IpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RG9tYWlu
U2VjdXJpdHlDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEds
b2JhbE9iamVjdFRlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxlZEJ5U2V0dGluZ0Nv
bnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0
VGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3Rv
cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVu
dENvbnN0cnVjdG9yQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50VGFyZ2V0Q29u
c3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFeGNlcHRpb25Db25zdHJ1Y3Rvcik7CitKU0NfREVDTEFS
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFeGNlcHRpb25Db25zdHJ1
Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RH
ZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9y
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdEdsb2Jh
bE9iamVjdENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZp
ZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29u
c3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlcldpdGhJ
ZGVudGlmaWVyQ29uc3RydWN0b3IpOwogI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNl
Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IpOwogI2VuZGlmCi1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUxlYWRpbmdV
bmRlcnNjb3JlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0
VGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0SXRlcmFibGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEpTQnVpbHRpbkNv
bnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdExl
Z2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxP
YmplY3RBdWRpb0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
R2xvYmFsT2JqZWN0QXVkaW9Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJ
bnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtl
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TWFwTGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElk
ZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyTm9J
ZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlv
bkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RO
YW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVy
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5h
bWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRl
ckNhbGxXaXRoQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFt
ZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyV2l0
aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVy
VGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJX
aXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdl
dHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldp
dGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldp
dGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJp
ZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3Jn
ZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9w
ZXJ0aWVzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJs
ZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlTGVhZGlu
Z1VuZGVyc2NvcmVDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SlNCdWlsdGlu
Q29uc3RydWN0b3JDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeUZhY3Rv
cnlGdW5jdGlvbkNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0QXVkaW9Db25zdHJ1Y3Rv
cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdEF1ZGlv
Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJ
bnNDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9i
amVjdFRlc3RNYXBMaWtlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRl
bk9wZXJhdGlvbnNDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3Ry
dWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb25Db25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0
cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01f
R0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25z
dHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4
Y2VwdGlvbkNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3Ip
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRE
ZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNv
bnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0
aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpz
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0
ZXJDYWxsV2l0aENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0
R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0
ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpz
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3Ip
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFt
ZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3Ry
dWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0
aW9uQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVy
V2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0
b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRH
ZXR0ZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0
b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9yKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0
aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVy
cmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0
aWVzQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29u
c3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3Zl
cnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJv
cGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3Rvcik7CiAjaWYgRU5BQkxF
KENvbmRpdGlvbkRlcml2ZWQpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0T3BlcmF0aW9uQ29u
ZGl0aW9uYWxDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE9wZXJhdGlv
bkNvbmRpdGlvbmFsQ29uc3RydWN0b3IpOwogI2VuZGlmCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNX
aXRoU2VxdWVuY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEds
b2JhbE9iamVjdFRlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xv
YmFsT2JqZWN0VGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RSZXBvcnRFeHRyYU1lbW9yeUNv
c3RDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEds
b2JhbE9iamVjdFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0
b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdFBsdWdpbkludGVyZmFjZUNv
bnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRP
bmx5TWFwTGlrZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0
R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5U2V0TGlrZUNv
bnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0
VGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENv
bnN0cnVjdG9yKTsKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIp
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0R2xvYmFsT2JqZWN0VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0
cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKTsKICNlbmRpZgot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RT
ZXRMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZVdpdGhPdmVycmlk
ZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xv
YmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0
VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJBbm9ueW1v
dXNPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25D
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdp
Zmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxl
bWVudGVkQXNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0
cmluZ0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZE9u
bHlBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmli
dXRlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVz
dFR5cGVkZWZzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0V29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVj
dFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0V29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VDb25zdHJ1
Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RT
ZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZVdpdGhPdmVycmlk
ZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJDb25zdHJ1
Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RT
dHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQW5vbnltb3Vz
T3BlcmF0aW9uQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lm
aWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXND
b25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNDb25zdHJ1Y3Rvcik7CitK
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmll
ck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVk
VG9TdHJpbmdDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEds
b2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3IpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5n
aWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRl
Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3Rvcik7CitKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RUeXBlZGVmc0NvbnN0
cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdFR5cGVkZWZzQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RHbG9iYWxPYmplY3RXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0V29ya2VyR2xvYmFsU2NvcGVDb25z
dHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFdv
cmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0R2xvYmFsT2JqZWN0V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IpOwogCiB1
c2luZyBKU1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RD
b25zdHJ1Y3RhYmxlPEpTVGVzdEdsb2JhbE9iamVjdD47CiAKQEAgLTgyNyw3ICs4MjcsNyBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RHbG9iYWxPYmplY3QqIElETE9wZXJhdGlvbjxKU1Rlc3RH
bG9iYWxPYmplY3Q+OjpjYXN0KEpTRwogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdEds
b2JhbE9iamVjdCo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUu
dGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEds
b2JhbE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTgzNyw3
ICs4MzcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVj
dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpYwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoSlNUZXN0R2xvYmFsT2JqZWN0OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC04NTgs
NyArODU4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFJlZ3Vs
YXJBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGwKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBpbXBsLnJlZ3VsYXJBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RSZWd1bGFyQXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmpl
Y3RSZWd1bGFyQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RS
ZWd1bGFyQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVndWxhckF0dHJpYnV0ZSIpOwogfQpA
QCAtODc2LDcgKzg3Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RSZWd1bGFyQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RSZWd1bGFy
QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RSZWd1bGFyQXR0cmlidXRlLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RSZWd1bGFy
QXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJyZWd1bGFyQXR0cmlidXRlIik7CiB9CkBAIC04ODksNyArODg5LDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1
dGVHZXR0ZXIoSlNHbG9iYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnB1
YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmpl
Y3RQdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9i
YWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAicHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0ZSIpOwogfQpAQCAtOTA3
LDcgKzkwNyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RQdWJs
aWNBbmRQcml2YXRlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2
YXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQXR0
cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxP
YmplY3RQdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJwdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlIik7
CiB9CkBAIC05MjEsNyArOTIxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2Jh
bE9iamVjdFB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZUdldHQKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0
dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEds
b2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0UHVi
bGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rl
c3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGVHZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJwdWJsaWNBbmRQcml2YXRlQ29uZGl0
aW9uYWxBdHRyaWJ1dGUiKTsKIH0KQEAgLTk0Miw3ICs5NDIsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmli
dXRlU2V0dAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGUs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFB1
YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicHVibGljQW5kUHJpdmF0ZUNvbmRpdGlv
bmFsQXR0cmlidXRlIik7CiB9CkBAIC05NTgsNyArOTU4LDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVHZXR0ZXIoSlNH
bG9iYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3Ry
aW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmVuYWJsZWRBdFJ1bnRp
bWVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RHbG9iYWxPYmplY3RFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RFbmFibGVkQXRS
dW50aW1lQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RFbmFi
bGVkQXRSdW50aW1lQXR0cmlidXRlR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSIpOwogfQpAQCAtOTc5LDcgKzk3OSw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RFbmFibGVkQXRSdW50aW1l
QXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RFbmFibGVkQXRSdW50aW1lQXR0cmlidXRl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RFbmFibGVk
QXRSdW50aW1lQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJlbmFibGVkQXRSdW50aW1lQXR0cmlidXRlIik7CiB9CkBAIC05OTIs
NyArOTkyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdERPTVdp
bmRvd0NvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNET01XaW5k
b3c6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlz
T2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RHbG9iYWxPYmplY3RET01XaW5kb3dDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0RE9NV2luZG93
Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdERPTVdpbmRv
d0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiRE9N
V2luZG93Iik7CiB9CkBAIC0xMDA0LDcgKzEwMDQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0R2xvYmFsT2JqZWN0RE9NV2luZG93Q29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmpl
YwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJET01XaW5kb3ciKSwgc3Ry
bGVuKCJET01XaW5kb3ciKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEdsb2JhbE9iamVjdERPTVdpbmRvd0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxP
YmplY3RET01XaW5kb3dDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+Ojpz
ZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0RE9NV2luZG93Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIkRPTVdpbmRvdyIpOwog
fQpAQCAtMTAxNSw3ICsxMDE1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2Jh
bE9iamVjdERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JHZXQKICAgICByZXR1
cm4gSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdERlZGljYXRl
ZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdERlZGljYXRlZFdvcmtlckdsb2Jh
bFNjb3BlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdERl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSIpOwogfQpAQCAt
MTAyNyw3ICsxMDI3LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVj
dERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JTZXQKICAgICByZXR1cm4gdGhp
c09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUiKSwgc3Ry
bGVuKCJEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0RGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVG
SU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0RGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0
SlNUZXN0R2xvYmFsT2JqZWN0RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvclNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiRGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGUiKTsKIH0KQEAgLTEwMzgsNyArMTAzOCw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RQYWludFdvcmtsZXRHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yR2V0dGVyCiAgICAgcmV0dXJuIEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU6
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2Jq
ZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RHbG9iYWxPYmplY3RQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmpl
Y3RQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxq
c1Rlc3RHbG9iYWxPYmplY3RQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiUGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGUiKTsKIH0KQEAgLTEwNTAsNyArMTA1MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yU2V0dGVyCiAg
ICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlBhaW50V29ya2xldEdsb2JhbFNj
b3BlIiksIHN0cmxlbigiUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUiKSksIHZhbHVlKTsKIH0KIAot
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFBhaW50V29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlND
X0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFBhaW50V29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNl
dEpTVGVzdEdsb2JhbE9iamVjdFBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlBhaW50
V29ya2xldEdsb2JhbFNjb3BlIik7CiB9CkBAIC0xMDYxLDcgKzEwNjEsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0U2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JHZXR0ZQogICAgIHJldHVybiBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6Z2V0
Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3Qu
Z2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dEdsb2JhbE9iamVjdFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RT
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNU
ZXN0R2xvYmFsT2JqZWN0U2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JHZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJTZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUiKTsKIH0KQEAgLTEwNzMsNyArMTA3Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvclNldHRlCiAg
ICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZSIpLCBzdHJsZW4oIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSIpKSwgdmFsdWUpOwogfQog
Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0U2VydmljZVdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
SlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNl
dDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlIik7CiB9CkBAIC0xMDg0LDcgKzEwODQsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zQ29uc3Ry
dWN0b3JHZXR0ZXIoSlNHbG9iYQogICAgIHJldHVybiBKU1Rlc3RDRVJlYWN0aW9uczo6Z2V0Q29u
c3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xv
YmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEds
b2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlv
bnNDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdENF
UmVhY3Rpb25zQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJUZXN0Q0VSZWFjdGlvbnMiKTsKIH0KQEAgLTEwOTYsNyArMTA5Niw3IEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3Rv
clNldHRlcihKU0dsb2JhCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRl
c3RDRVJlYWN0aW9ucyIpLCBzdHJsZW4oIlRlc3RDRVJlYWN0aW9ucyIpKSwgdmFsdWUpOwogfQog
Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25z
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklO
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc0NvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdENFUmVhY3Rpb25zIik7CiB9CkBAIC0x
MTA3LDcgKzExMDcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3RvckdldAogICAgIHJldHVybiBKU1Rl
c3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25z
U3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJD
b25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVh
Y3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgIlRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyIik7CiB9CkBAIC0xMTE5LDcg
KzExMTksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENF
UmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3RvclNldAogICAgIHJldHVybiB0aGlzT2JqZWN0
LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBMQ2hhcio+KCJUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllciIpLCBzdHJsZW4oIlRl
c3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmll
ckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0Q0VSZWFj
dGlvbnNTdHJpbmdpZmllciIpOwogfQpAQCAtMTEzMCw3ICsxMTMwLDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3JHZXR0
ZXIoSlNHbG9iYWwKICAgICByZXR1cm4gSlNUZXN0Q2FsbFRyYWNlcjo6Z2V0Q29uc3RydWN0b3Io
SlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsVHJhY2VyQ29uc3RydWN0
b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsVHJhY2VyQ29u
c3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0Q2Fs
bFRyYWNlciIpOwogfQpAQCAtMTE0Miw3ICsxMTQyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9i
YWwKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdENhbGxUcmFjZXIi
KSwgc3RybGVuKCJUZXN0Q2FsbFRyYWNlciIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxUcmFj
ZXJDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5j
b2RlZFZhbHVlLCAiVGVzdENhbGxUcmFjZXIiKTsKIH0KQEAgLTExNTQsNyArMTE1NCw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbGJhY2tJbnRlcmZh
Y2VDb25zdHJ1Y3RvckdldHRlcihKCiAgICAgcmV0dXJuIEpTVGVzdENhbGxiYWNrSW50ZXJmYWNl
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09i
amVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVj
dFRlc3RDYWxsYmFja0ludGVyZmFjZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0Q2FsbGJhY2tJbnRlcmZhY2VDb25zdHJ1Y3RvckdldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RDYWxsYmFja0ludGVyZmFjZSIpOwog
fQpAQCAtMTE2OSw3ICsxMTY5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RDYWxsYmFja0ludGVyZmFjZUNvbnN0cnVjdG9yU2V0dGVyKEoKICAgICByZXR1
cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdENhbGxiYWNrSW50ZXJmYWNlIiksIHN0
cmxlbigiVGVzdENhbGxiYWNrSW50ZXJmYWNlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbGJhY2tJbnRlcmZhY2VDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxiYWNrSW50ZXJmYWNlQ29uc3Ry
dWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3RDYWxsYmFja0ludGVyZmFjZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0Q2FsbGJhY2tJbnRlcmZhY2Ui
KTsKIH0KQEAgLTExODIsNyArMTE4Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1CiAgICAg
cmV0dXJuIEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3Rv
cihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmpl
Y3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRl
c3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46
OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JD
b25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RD
bGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvciIpOwogfQpAQCAtMTE5NCw3ICsxMTk0LDcgQEAg
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDbGFzc1dpdGhKU0J1
aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnUKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qo
dm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENo
YXIqPigiVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yIiksIHN0cmxlbigiVGVzdENs
YXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3Ry
dWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENsYXNzV2l0aEpT
QnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0
Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1
Y3RvckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IiKTsKIH0KQEAg
LTEyMDUsNyArMTIwNSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yR2V0dGVyCiAgICAgcmV0dXJuIEpT
VGVzdENvbmRpdGlvbmFsSW5jbHVkZXM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q29uZGl0aW9uYWxJ
bmNsdWRlc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q29uZGl0aW9uYWxJ
bmNsdWRlc0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAiVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMiKTsKIH0KQEAgLTEyMTcsNyArMTIxNyw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q29uZGl0aW9uYWxJbmNs
dWRlc0NvbnN0cnVjdG9yU2V0dGVyCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZt
LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFy
Kj4oIlRlc3RDb25kaXRpb25hbEluY2x1ZGVzIiksIHN0cmxlbigiVGVzdENvbmRpdGlvbmFsSW5j
bHVkZXMiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3IsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDb25kaXRpb25h
bEluY2x1ZGVzQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RDb25kaXRpb25hbEluY2x1ZGVzIik7CiB9CkBAIC0xMjI4
LDcgKzEyMjgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVz
dERPTUpJVENvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZQogICAgIHJldHVybiBKU1Rlc3RE
T01KSVQ6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0
aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RE9NSklUQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RE
T01KSVRDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVz
dERPTUpJVENvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAiVGVzdERPTUpJVCIpOwogfQpAQCAtMTI0MCw3ICsxMjQwLDcgQEAgc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RET01KSVRDb25zdHJ1Y3RvclNldHRlcihKU0ds
b2JhbE9iamUKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdERPTUpJ
VCIpLCBzdHJsZW4oIlRlc3RET01KSVQiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RET01KSVRDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdERPTUpJVENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2Jh
bE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RE9NSklUQ29uc3RydWN0b3JT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRl
c3RET01KSVQiKTsKIH0KQEAgLTEyNTEsNyArMTI1MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yR2V0dGVyKEpT
R2xvCiAgICAgcmV0dXJuIEpTVGVzdERlZmF1bHRUb0pTT046OmdldENvbnN0cnVjdG9yKEpTQzo6
Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNP
TkNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVz
dERlZmF1bHRUb0pTT04iKTsKIH0KQEAgLTEyNjMsNyArMTI2Myw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yU2V0
dGVyKEpTR2xvCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3REZWZh
dWx0VG9KU09OIiksIHN0cmxlbigiVGVzdERlZmF1bHRUb0pTT04iKSksIHZhbHVlKTsKIH0KIAot
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09O
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklO
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3REZWZhdWx0VG9KU09OIik7CiB9
CkBAIC0xMjc0LDcgKzEyNzQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFs
T2JqZWN0VGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29ucwogICAgIHJldHVy
biBKU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZTo6Z2V0Q29uc3RydWN0b3Io
SlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmpl
Y3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVy
aXRhbmNlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2UiKTsKIH0KQEAgLTEyODYsNyAr
MTI4Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVm
YXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zCiAgICAgcmV0dXJuIHRoaXNPYmplY3Qu
cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0
PGNvbnN0IExDaGFyKj4oIlRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZSIpLCBz
dHJsZW4oIlRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZSIpKSwgdmFsdWUpOwog
fQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRU
b0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVm
YXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdERlZmF1bHRUb0pTT05J
bmRpcmVjdEluaGVyaXRhbmNlIik7CiB9CkBAIC0xMjk3LDcgKzEyOTcsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29u
c3RydWN0b3JHZXR0ZQogICAgIHJldHVybiBKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdDo6Z2V0
Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3Qu
Z2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNU
ZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3JHZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0RGVmYXVsdFRvSlNPTkluaGVy
aXQiKTsKIH0KQEAgLTEzMDksNyArMTMwOSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3RvclNldHRlCiAg
ICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3REZWZhdWx0VG9KU09OSW5o
ZXJpdCIpLCBzdHJsZW4oIlRlc3REZWZhdWx0VG9KU09OSW5oZXJpdCIpKSwgdmFsdWUpOwogfQog
Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pT
T05Jbmhlcml0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
SlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0
VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNl
dDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3Rv
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Iik7CiB9CkBAIC0xMzIwLDcgKzEzMjAsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0RmluYWxDb25zdHJ1Y3RvcgogICAgIHJldHVybiBKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJp
dEZpbmFsOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNU
ZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RH
bG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0RmluYWxDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgIlRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsIik7CiB9CkBAIC0xMzMyLDcgKzEzMzIs
NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRU
b0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3RvcgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERp
cmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBMQ2hhcio+KCJUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbCIpLCBzdHJsZW4oIlRlc3RE
ZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVy
aXRGaW5hbENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9y
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJU
ZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbCIpOwogfQpAQCAtMTM0Myw3ICsxMzQzLDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3REb21haW5TZWN1cml0
eUNvbnN0cnVjdG9yR2V0dGVyKEpTR2wKICAgICByZXR1cm4gSlNUZXN0RG9tYWluU2VjdXJpdHk6
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2Jq
ZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVz
dERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdERvbWFpblNlY3VyaXR5Iik7CiB9CkBAIC0xMzU1LDcg
KzEzNTUsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERv
bWFpblNlY3VyaXR5Q29uc3RydWN0b3JTZXR0ZXIoSlNHbAogICAgIHJldHVybiB0aGlzT2JqZWN0
LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBMQ2hhcio+KCJUZXN0RG9tYWluU2VjdXJpdHkiKSwgc3RybGVuKCJUZXN0RG9tYWlu
U2VjdXJpdHkiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9i
YWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERvbWFpblNlY3VyaXR5Q29u
c3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgIlRlc3REb21haW5TZWN1cml0eSIpOwogfQpAQCAtMTM2Niw3ICsxMzY2LDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVkQnlTZXR0aW5n
Q29uc3RydWN0b3JHZXR0ZXIoSlMKICAgICByZXR1cm4gSlNUZXN0RW5hYmxlZEJ5U2V0dGluZzo6
Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmpl
Y3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRl
c3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEds
b2JhbE9iamVjdFRlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0RW5hYmxlZEJ5U2V0dGluZyIpOwogfQpAQCAt
MTM3OCw3ICsxMzc4LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3JTZXR0ZXIoSlMKICAgICByZXR1cm4gdGhp
c09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdEVuYWJsZWRCeVNldHRpbmciKSwgc3RybGVuKCJU
ZXN0RW5hYmxlZEJ5U2V0dGluZyIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEVu
YWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEVuYWJsZWRCeVNldHRpbmciKTsKIH0KQEAgLTEz
ODksNyArMTM4OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0RW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvckdldHRlcihKCiAgICAgcmV0dXJuIEpTVGVz
dEVuYWJsZWRGb3JDb250ZXh0OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xv
YmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRGb3JDb250ZXh0
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2Jh
bE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxlZEZvckNvbnRleHRDb25z
dHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RFbmFi
bGVkRm9yQ29udGV4dCIpOwogfQpAQCAtMTQwMSw3ICsxNDAxLDcgQEAgc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9y
U2V0dGVyKEoKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdEVuYWJs
ZWRGb3JDb250ZXh0IiksIHN0cmxlbigiVGVzdEVuYWJsZWRGb3JDb250ZXh0IikpLCB2YWx1ZSk7
CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxl
ZEZvckNvbnRleHRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJs
ZWRGb3JDb250ZXh0Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0
PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0
RW5hYmxlZEZvckNvbnRleHQiKTsKIH0KQEAgLTE0MTIsNyArMTQxMiw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVj
dG9yR2V0dGVyKEpTCiAgICAgcmV0dXJuIEpTVGVzdEV2ZW50Q29uc3RydWN0b3I6OmdldENvbnN0
cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2Jh
bE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRD
b25zdHJ1Y3RvckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAiVGVzdEV2ZW50Q29uc3RydWN0b3IiKTsKIH0KQEAgLTE0MjQsNyAr
MTQyNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZl
bnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yU2V0dGVyKEpTCiAgICAgcmV0dXJuIHRoaXNPYmplY3Qu
cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0
PGNvbnN0IExDaGFyKj4oIlRlc3RFdmVudENvbnN0cnVjdG9yIiksIHN0cmxlbigiVGVzdEV2ZW50
Q29uc3RydWN0b3IiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudENvbnN0
cnVjdG9yQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgIlRlc3RFdmVudENvbnN0cnVjdG9yIik7CiB9CkBAIC0xNDM1LDcgKzE0
MzUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50
VGFyZ2V0Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYQogICAgIHJldHVybiBKU1Rlc3RFdmVudFRh
cmdldDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRo
aXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFs
T2JqZWN0VGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJUZXN0RXZlbnRUYXJnZXQiKTsKIH0KQEAgLTE0NDcsNyArMTQ0Nyw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRUYXJn
ZXRDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGly
ZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0
IExDaGFyKj4oIlRlc3RFdmVudFRhcmdldCIpLCBzdHJsZW4oIlRlc3RFdmVudFRhcmdldCIpKSwg
dmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVu
dFRhcmdldENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvclNldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEV2ZW50VGFyZ2V0
Iik7CiB9CkBAIC0xNDU4LDcgKzE0NTgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
R2xvYmFsT2JqZWN0VGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsTwogICAg
IHJldHVybiBKU1Rlc3RFeGNlcHRpb246OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXhjZXB0aW9uQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RFeGNlcHRpb25Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+Ojpn
ZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yR2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdEV4Y2VwdGlvbiIpOwogfQpAQCAtMTQ3
MCw3ICsxNDcwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RFeGNlcHRpb25Db25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE8KICAgICByZXR1cm4gdGhpc09i
amVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdEV4Y2VwdGlvbiIpLCBzdHJsZW4oIlRlc3RFeGNlcHRp
b24iKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dEV4Y2VwdGlvbkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RFeGNlcHRpb24i
KTsKIH0KQEAgLTE0ODEsNyArMTQ4MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yR2V0dGVyCiAgICAg
cmV0dXJuIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0R2Vu
ZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0R2VuZXJhdGVJc1JlYWNoYWJs
ZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0R2Vu
ZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUiKTsKIH0KQEAgLTE0OTMsNyArMTQ5
Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0R2VuZXJh
dGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yU2V0dGVyCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0
RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNv
bnN0IExDaGFyKj4oIlRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlIiksIHN0cmxlbigiVGVzdEdlbmVy
YXRlSXNSZWFjaGFibGUiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RH
ZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlIik7CiB9
CkBAIC0xNTA0LDcgKzE1MDQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFs
T2JqZWN0VGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYgogICAgIHJldHVy
biBKU1Rlc3RHbG9iYWxPYmplY3Q6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0R2xvYmFsT2JqZWN0Q29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+
OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdEdsb2JhbE9iamVjdCIpOwog
fQpAQCAtMTUxNiw3ICsxNTE2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvclNldHRlcihKU0dsb2IKICAgICByZXR1
cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdEdsb2JhbE9iamVjdCIpLCBzdHJsZW4o
IlRlc3RHbG9iYWxPYmplY3QiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0R2xvYmFsT2JqZWN0
Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgIlRlc3RHbG9iYWxPYmplY3QiKTsKIH0KQEAgLTE1MjcsNyArMTUyNyw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlck5v
SWRlbnRpZmllckNvbnN0cnVjdG9yCiAgICAgcmV0dXJuIEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
LCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9y
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlck5v
SWRlbnRpZmllckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIiKTsKIH0KQEAgLTE1MzksNyArMTUz
OSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0
RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNv
bnN0IExDaGFyKj4oIlRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyIiksIHN0cmxlbigiVGVz
dEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVy
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklO
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0
b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwg
IlRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyIik7CiB9CkBAIC0xNTUwLDcgKzE1NTAsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cgogICAgIHJldHVybiBKU1Rlc3RJbmRleGVkU2V0dGVy
VGhyb3dpbmdFeGNlcHRpb246OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9i
YWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlclRocm93
aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb25Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0
VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yR2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4
Y2VwdGlvbiIpOwogfQpAQCAtMTU2Miw3ICsxNTYyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25z
dHIKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdEluZGV4ZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvbiIpLCBzdHJsZW4oIlRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb24iKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3JT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRl
c3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24iKTsKIH0KQEAgLTE1NzMsNyArMTU3Myw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNl
dHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0CiAgICAgcmV0dXJuIEpTVGVzdEluZGV4ZWRTZXR0
ZXJXaXRoSWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyV2l0aElk
ZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmll
ckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5k
ZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyIik7CiB9
CkBAIC0xNTg1LDcgKzE1ODUsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdAogICAgIHJldHVy
biB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyIiksIHN0cmxlbigiVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllciIpKSwgdmFsdWUp
OwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0
dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmll
ciIpOwogfQpAQCAtMTU5Nyw3ICsxNTk3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE8KICAg
ICByZXR1cm4gSlNUZXN0SW50ZXJmYWNlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckdldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RJbnRlcmZhY2UiKTsKIH0KQEAgLTE2
MTIsNyArMTYxMiw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPCiAgICAgcmV0dXJuIHRoaXNP
YmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RJbnRlcmZhY2UiKSwgc3RybGVuKCJUZXN0SW50ZXJm
YWNlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RJbnRlcmZhY2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0SW50ZXJmYWNl
Iik7CiB9CkBAIC0xNjI1LDcgKzE2MjUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0bwogICAg
IHJldHVybiBKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZTo6Z2V0Q29uc3RydWN0b3Io
SlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50
ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNU
ZXN0R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0b3JH
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0SW50ZXJmYWNlTGVh
ZGluZ1VuZGVyc2NvcmUiKTsKIH0KQEAgLTE2MzcsNyArMTYzNyw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVD
b25zdHJ1Y3RvCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RJbnRl
cmZhY2VMZWFkaW5nVW5kZXJzY29yZSIpLCBzdHJsZW4oIlRlc3RJbnRlcmZhY2VMZWFkaW5nVW5k
ZXJzY29yZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3RvclNldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEludGVyZmFjZUxl
YWRpbmdVbmRlcnNjb3JlIik7CiB9CkBAIC0xNjQ4LDcgKzE2NDgsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEl0ZXJhYmxlQ29uc3RydWN0b3JHZXR0ZXIo
SlNHbG9iYWxPYgogICAgIHJldHVybiBKU1Rlc3RJdGVyYWJsZTo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3RJdGVyYWJsZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SXRlcmFibGVDb25zdHJ1Y3RvciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9i
YWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdEl0ZXJhYmxlQ29uc3RydWN0b3JH
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0SXRlcmFibGUiKTsK
IH0KQEAgLTE2NjAsNyArMTY2MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0SXRlcmFibGVDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iCiAgICAgcmV0
dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCBy
ZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RJdGVyYWJsZSIpLCBzdHJsZW4oIlRl
c3RJdGVyYWJsZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3RJdGVyYWJsZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46
OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SXRlcmFibGVDb25zdHJ1Y3RvclNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEl0ZXJh
YmxlIik7CiB9CkBAIC0xNjcxLDcgKzE2NzEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3JHZXR0ZQog
ICAgIHJldHVybiBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SlNCdWlsdGluQ29u
c3RydWN0b3JDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0
VGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IiKTsKIH0KQEAgLTE2
ODMsNyArMTY4Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvclNldHRlCiAgICAgcmV0dXJuIHRoaXNP
YmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvciIpLCBzdHJsZW4o
IlRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvciIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNU
T01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNv
bnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvclNldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEpTQnVpbHRpbkNv
bnN0cnVjdG9yIik7CiB9CkBAIC0xNjk0LDcgKzE2OTQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9y
R2V0dAogICAgIHJldHVybiBKU1Rlc3Q6OmdldExlZ2FjeUZhY3RvcnlGdW5jdGlvbihKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdExl
Z2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5RmFjdG9yeUZ1
bmN0aW9uQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRl
c3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb24iKTsKIH0KQEAgLTE3
MDYsNyArMTcwNiw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3JTZXR0CiAgICAgcmV0dXJuIHRoaXNP
YmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb24iKSwgc3RybGVu
KCJUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rp
b25Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TGVnYWN5
RmFjdG9yeUZ1bmN0aW9uIik7CiB9CkBAIC0xNzE3LDcgKzE3MTcsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0QXVkaW9Db25zdHJ1Y3RvckdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbAogICAgIHJldHVybiBKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb246OmdldExl
Z2FjeUZhY3RvcnlGdW5jdGlvbihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhp
c09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0R2xvYmFsT2JqZWN0QXVkaW9Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0QXVkaW9Db25zdHJ1
Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0QXVkaW9Db25zdHJ1Y3Rv
ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIkF1ZGlvIik7CiB9CkBA
IC0xNzI5LDcgKzE3MjksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0QXVkaW9Db25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbAogICAgIHJldHVybiB0
aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJBdWRpbyIpLCBzdHJsZW4oIkF1ZGlvIikpLCB2YWx1
ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RBdWRpb0Nv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RBdWRpb0NvbnN0cnVjdG9yLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RBdWRpb0Nv
bnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJBdWRpbyIpOwogfQpAQCAtMTc0MCw3ICsxNzQwLDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3Ry
dWN0b3JHZXQKICAgICByZXR1cm4gSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluczo6Z2V0Q29u
c3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xv
YmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEds
b2JhbE9iamVjdFRlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRl
c3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3JHZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TGVnYWN5T3ZlcnJpZGVC
dWlsdElucyIpOwogfQpAQCAtMTc1Miw3ICsxNzUyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3JT
ZXQKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnMiKSwgc3RybGVuKCJUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdElucyIpKSwgdmFs
dWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdExl
Z2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9i
YWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeU92ZXJyaWRlQnVp
bHRJbnNDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAiVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiKTsKIH0KQEAgLTE3NjMs
NyArMTc2Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
TWFwTGlrZUNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqCiAgICAgcmV0dXJuIEpTVGVzdE1h
cExpa2U6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0
aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
TWFwTGlrZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TWFwTGlrZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiVGVzdE1hcExpa2UiKTsKIH0KQEAgLTE3NzUsNyArMTc3NSw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZUNvbnN0cnVjdG9yU2V0dGVy
KEpTR2xvYmFsT2JqCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RN
YXBMaWtlIiksIHN0cmxlbigiVGVzdE1hcExpa2UiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29u
c3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgIlRlc3RNYXBMaWtlIik7CiB9CkBAIC0xNzg2LDcgKzE3ODYsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNDb25zdAogICAgIHJldHVybiBKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnND
b25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
Iik7CiB9CkBAIC0xNzk4LDcgKzE3OTgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdAogICAg
IHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TWFwTGlrZVdpdGhPdmVycmlk
ZGVuT3BlcmF0aW9ucyIpLCBzdHJsZW4oIlRlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0Nv
bnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0
TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucyIpOwogfQpAQCAtMTgwOSw3ICsxODA5LDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb24KICAgICByZXR1cm4gSlNUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyTm9JZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rv
ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIiKTsKIH0KQEAgLTE4MjEsNyArMTgyMSw3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyTm9JZGVudGlmaWVyQ29uCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4o
IlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIiKSwgc3RybGVuKCJUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
Tm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RH
bG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyIik7CiB9CkBAIC0xODMyLDcgKzE4MzIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhj
ZXB0aQogICAgIHJldHVybiBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRo
aXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4
Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb25Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3JH
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24iKTsKIH0KQEAgLTE4NDQsNyArMTg0NCw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZt
LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFy
Kj4oIlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIpLCBzdHJsZW4o
IlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIpKSwgdmFsdWUpOwog
fQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rv
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uIik7CiB9CkBAIC0xODU1
LDcgKzE4NTUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQwogICAgIHJldHVybiBKU1Rlc3RO
YW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RO
YW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmpl
Y3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJ
ZGVudGlmaWVyQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIiKTsKIH0KQEAgLTE4
NjcsNyArMTg2Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDCiAgICAgcmV0dXJuIHRoaXNP
YmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRp
ZmllciIpLCBzdHJsZW4oIlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllciIp
KSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmll
ckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1
Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVl
LCAiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyIik7CiB9CkBAIC0xODc4
LDcgKzE4NzgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yRwogICAgIHJldHVybiBKU1Rlc3RO
YW1lZERlbGV0ZXJOb0lkZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVy
Tm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZp
ZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5h
bWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllciIpOwogfQpAQCAt
MTg5MCw3ICsxODkwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvclMKICAgICByZXR1cm4gdGhp
c09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllciIpLCBz
dHJsZW4oIlRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIiKSksIHZhbHVlKTsKIH0KIAotYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJOb0lk
ZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitK
U0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVs
ZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46
OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29u
c3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgIlRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIiKTsKIH0KQEAgLTE5MDEsNyArMTkw
MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRE
ZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1CiAgICAgcmV0dXJuIEpTVGVzdE5hbWVkRGVs
ZXRlclRocm93aW5nRXhjZXB0aW9uOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlclRo
cm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvckdldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4
Y2VwdGlvbiIpOwogfQpAQCAtMTkxMyw3ICsxOTEzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0
cnUKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkRGVsZXRl
clRocm93aW5nRXhjZXB0aW9uIiksIHN0cmxlbigiVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhj
ZXB0aW9uIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yU2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFt
ZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24iKTsKIH0KQEAgLTE5MjQsNyArMTkyNCw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0
aElkZW50aWZpZXJDb25zdHJ1Y3RvCiAgICAgcmV0dXJuIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJ
ZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVy
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVy
V2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgIlRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllciIpOwogfQpAQCAtMTkzNiw3
ICsxOTM2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RO
YW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG8KICAgICByZXR1cm4gdGhpc09iamVj
dC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyIiksIHN0cmxl
bigiVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aElk
ZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitK
U0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVs
ZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0
Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmll
ckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIiKTsKIH0KQEAgLTE5NDcs
NyArMTk0Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1CiAgICAgcmV0dXJuIEpTVGVzdE5h
bWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVs
ZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJX
aXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvckdldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZERlbGV0ZXJXaXRo
SW5kZXhlZEdldHRlciIpOwogfQpAQCAtMTk1OSw3ICsxOTU5LDcgQEAgc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRl
ckNvbnN0cnUKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVk
RGVsZXRlcldpdGhJbmRleGVkR2V0dGVyIiksIHN0cmxlbigiVGVzdE5hbWVkRGVsZXRlcldpdGhJ
bmRleGVkR2V0dGVyIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0
dGVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9y
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJU
ZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIiKTsKIH0KQEAgLTE5NzAsNyArMTk3MCw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0
ZXJDYWxsV2l0aENvbnN0cnVjdG9yR2V0dGVyCiAgICAgcmV0dXJuIEpTVGVzdE5hbWVkR2V0dGVy
Q2FsbFdpdGg6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
LCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVj
dD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVj
dG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkR2V0
dGVyQ2FsbFdpdGgiKTsKIH0KQEAgLTE5ODIsNyArMTk4Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9y
U2V0dGVyCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROYW1lZEdl
dHRlckNhbGxXaXRoIiksIHN0cmxlbigiVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGgiKSksIHZhbHVl
KTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1l
ZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RO
YW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0
Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3Ry
dWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgIlRlc3ROYW1lZEdldHRlckNhbGxXaXRoIik7CiB9CkBAIC0xOTkzLDcgKzE5OTMsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyTm9J
ZGVudGlmaWVyQ29uc3RydWN0b3JHZQogICAgIHJldHVybiBKU1Rlc3ROYW1lZEdldHRlck5vSWRl
bnRpZmllcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCks
IHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9i
YWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyTm9JZGVudGlm
aWVyQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJU
ZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIiKTsKIH0KQEAgLTIwMDUsNyArMjAwNSw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJOb0lk
ZW50aWZpZXJDb25zdHJ1Y3RvclNlCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZt
LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFy
Kj4oIlRlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllciIpLCBzdHJsZW4oIlRlc3ROYW1lZEdldHRl
ck5vSWRlbnRpZmllciIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE5hbWVkR2V0dGVyTm9J
ZGVudGlmaWVyIik7CiB9CkBAIC0yMDE2LDcgKzIwMTYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1
Y3RvcgogICAgIHJldHVybiBKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyOjpnZXRDb25z
dHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9i
YWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+Ojpn
ZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1
Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZEdl
dHRlcldpdGhJZGVudGlmaWVyIik7CiB9CkBAIC0yMDI4LDcgKzIwMjgsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZp
ZXJDb25zdHJ1Y3RvcgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0
TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllciIpLCBzdHJsZW4oIlRlc3ROYW1lZEdldHRlcldpdGhJ
ZGVudGlmaWVyIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWRHZXR0ZXJX
aXRoSWRlbnRpZmllciIpOwogfQpAQCAtMjAzOSw3ICsyMDM5LDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0
cnVjdG9yR2UKICAgICByZXR1cm4gSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmdldENv
bnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmds
b2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0
PGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9y
R2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkU2V0dGVy
Tm9JZGVudGlmaWVyIik7CiB9CkBAIC0yMDUxLDcgKzIwNTEsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3Ry
dWN0b3JTZQogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TmFtZWRT
ZXR0ZXJOb0lkZW50aWZpZXIiKSwgc3RybGVuKCJUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIi
KSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0
dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllciIpOwog
fQpAQCAtMjA2Miw3ICsyMDYyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWMKICAgICByZXR1
cm4gSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1l
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpz
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0
b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFtZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvbiIpOwogfQpAQCAtMjA3NCw3ICsyMDc0LDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlclRocm93aW5nRXhj
ZXB0aW9uQ29uc3RydWMKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50
aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVz
dE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24iKSwgc3RybGVuKCJUZXN0TmFtZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbiIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb25Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rv
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24iKTsKIH0KQEAgLTIwODUsNyArMjA4NSw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0
ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yCiAgICAgcmV0dXJuIEpTVGVzdE5hbWVkU2V0dGVy
V2l0aElkZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRp
ZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0
ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIiKTsKIH0KQEAgLTIwOTcs
NyArMjA5Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yCiAgICAgcmV0dXJuIHRoaXNPYmpl
Y3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9j
YXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyIiksIHN0cmxl
bigiVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVu
dGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlND
X0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRl
cldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29u
c3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgIlRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyIik7CiB9CkBAIC0yMTA4LDcgKzIx
MDgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1YwogICAgIHJldHVybiBKU1Rlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0
aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0
dGVyIik7CiB9CkBAIC0yMTIwLDcgKzIxMjAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Ywog
ICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TmFtZWRTZXR0ZXJXaXRo
SW5kZXhlZEdldHRlciIpLCBzdHJsZW4oIlRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVy
IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9y
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWRTZXR0ZXJX
aXRoSW5kZXhlZEdldHRlciIpOwogfQpAQCAtMjEzMSw3ICsyMTMxLDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0
dGVyQW5kU2V0dGUKICAgICByZXR1cm4gSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRl
ckFuZFNldHRlcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0
dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVk
R2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0
b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlciIpOwogfQpAQCAtMjE0Myw3ICsyMTQzLDcgQEAg
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldp
dGhJbmRleGVkR2V0dGVyQW5kU2V0dGUKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qo
dm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENo
YXIqPigiVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIiKSwgc3RybGVu
KCJUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlciIpKSwgdmFsdWUpOwog
fQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0
dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1
Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvclNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVz
dE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIiKTsKIH0KQEAgLTIxNTQsNyAr
MjE1NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluCiAgICAgcmV0dXJuIEpTVGVzdE5hbWVk
U2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9i
amVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3Zl
cnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiKTsKIH0K
QEAgLTIxNjYsNyArMjE2Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluCiAgICAgcmV0dXJu
IHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWlu
dGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVy
cmlkZUJ1aWx0SW5zIiksIHN0cmxlbigiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnMiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNU
T01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lP
dmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlk
ZUJ1aWx0SW5zQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0
SW5zIik7CiB9CkBAIC0yMTc3LDcgKzIxNzcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcAog
ICAgIHJldHVybiBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRp
ZXM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlz
T2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQ
cm9wZXJ0aWVzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0Nv
bnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5h
bWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllcyIpOwogfQpAQCAtMjE4OSw3
ICsyMTg5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3AKICAgICByZXR1cm4gdGhpc09iamVj
dC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJv
cGVydGllcyIpLCBzdHJsZW4oIlRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVBy
b3BlcnRpZXMiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXND
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5F
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExl
Z2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2Jh
bE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lVbmZvcmdlYWJsZVByb3BlcnRpZXMiKTsKIH0KQEAgLTIyMDAsNyArMjIwMCw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5VW5mb3JnZWFibGVQcm9wCiAgICAgcmV0dXJuIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2Fj
eVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnM6OmdldENvbnN0
cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2Jh
bE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5k
TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJX
aXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0Nv
bnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRT
ZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWls
dEluc0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92
ZXJyaWRlQnVpbHRJbnMiKTsKIH0KQEAgLTIyMTIsNyArMjIxMiw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3Jn
ZWFibGVQcm9wCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROYW1l
ZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1
aWx0SW5zIiksIHN0cmxlbigiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJv
cGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlk
ZUJ1aWx0SW5zQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVBy
b3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIik7CiB9CkBAIC0yMjI0LDcgKzIyMjQs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE9wZXJhdGlv
bkNvbmRpdGlvbmFsQ29uc3RydWN0b3JHZXR0ZQogICAgIHJldHVybiBKU1Rlc3RPcGVyYXRpb25D
b25kaXRpb25hbDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29u
c3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0T3Bl
cmF0aW9uQ29uZGl0aW9uYWwiKTsKIH0KQEAgLTIyMzksNyArMjIzOSw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25z
dHJ1Y3RvclNldHRlCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RP
cGVyYXRpb25Db25kaXRpb25hbCIpLCBzdHJsZW4oIlRlc3RPcGVyYXRpb25Db25kaXRpb25hbCIp
KSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEds
b2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0T3BlcmF0aW9uQ29uZGl0
aW9uYWxDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAiVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsIik7CiB9CkBAIC0yMjUyLDcg
KzIyNTIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDbwogICAgIHJldHVybiBKU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+Ojpn
ZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVu
Y2VDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlIik7CiB9CkBAIC0yMjY0LDcgKzIy
NjQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDbwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1
dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KCJUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZSIpLCBz
dHJsZW4oIlRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlIikpLCB2YWx1ZSk7
CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9y
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZSIpOwogfQpAQCAtMjI3NSw3ICsyMjc1LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RQbHVnaW5JbnRlcmZh
Y2VDb25zdHJ1Y3RvckdldHRlcihKU0cKICAgICByZXR1cm4gSlNUZXN0UGx1Z2luSW50ZXJmYWNl
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09i
amVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0R2xvYmFsT2JqZWN0VGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEds
b2JhbE9iamVjdFRlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RQbHVnaW5JbnRlcmZhY2UiKTsKIH0KQEAgLTIy
ODcsNyArMjI4Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3JTZXR0ZXIoSlNHCiAgICAgcmV0dXJuIHRoaXNP
YmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RQbHVnaW5JbnRlcmZhY2UiKSwgc3RybGVuKCJUZXN0
UGx1Z2luSW50ZXJmYWNlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFBsdWdpbklu
dGVyZmFjZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJUZXN0UGx1Z2luSW50ZXJmYWNlIik7CiB9CkBAIC0yMjk4LDcgKzIy
OTgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRP
bmx5TWFwTGlrZUNvbnN0cnVjdG9yR2V0dGVyKEpTRwogICAgIHJldHVybiBKU1Rlc3RSZWFkT25s
eU1hcExpa2U6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
LCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8
anNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yR2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFJlYWRPbmx5TWFwTGlrZSIpOwog
fQpAQCAtMjMxMCw3ICsyMzEwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvclNldHRlcihKU0cKICAgICByZXR1
cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFJlYWRPbmx5TWFwTGlrZSIpLCBzdHJs
ZW4oIlRlc3RSZWFkT25seU1hcExpa2UiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RSZWFkT25seU1hcExpa2UiKTsKIH0KQEAgLTIz
MjEsNyArMjMyMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3JHZXR0ZXIoSlNHCiAgICAgcmV0dXJuIEpTVGVz
dFJlYWRPbmx5U2V0TGlrZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seVNldExpa2VDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVj
dD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3JH
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0UmVhZE9ubHlTZXRM
aWtlIik7CiB9CkBAIC0yMzMzLDcgKzIzMzMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yU2V0dGVyKEpTRwog
ICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0UmVhZE9ubHlTZXRMaWtl
IiksIHN0cmxlbigiVGVzdFJlYWRPbmx5U2V0TGlrZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3Ry
dWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFJlYWRPbmx5U2V0TGlrZSIpOwog
fQpAQCAtMjM0NCw3ICsyMzQ0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3RvckdldHQKICAgICByZXR1
cm4gSlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlcG9y
dEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVwb3J0RXh0cmFNZW1vcnlD
b3N0Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RS
ZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgIlRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3QiKTsKIH0KQEAgLTIzNTYs
NyArMjM1Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3JTZXR0CiAgICAgcmV0dXJuIHRoaXNPYmpl
Y3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9j
YXN0PGNvbnN0IExDaGFyKj4oIlRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3QiKSwgc3RybGVuKCJU
ZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNU
T01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RD
b25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0UmVwb3J0RXh0
cmFNZW1vcnlDb3N0Iik7CiB9CkBAIC0yMzY4LDcgKzIzNjgsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZUNvbnN0cgogICAgIHJldHVybiBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2Jq
ZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rv
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSIpOwogfQpAQCAt
MjM4Myw3ICsyMzgzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHIKICAgICByZXR1cm4gdGhp
c09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZSIpLCBzdHJsZW4oIlRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UiKSksIHZhbHVl
KTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UiKTsKIH0KQEAgLTIzOTYsNyArMjM5Niw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZUNvbnN0cnVjdG9yR2V0dGVyKEpT
R2xvYmFsT2JqCiAgICAgcmV0dXJuIEpTVGVzdFNldExpa2U6OmdldENvbnN0cnVjdG9yKEpTQzo6
Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
U2V0TGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZUNvbnN0cnVjdG9yLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9i
amVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZUNvbnN0cnVjdG9yR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFNldExpa2UiKTsKIH0KQEAg
LTI0MDgsNyArMjQwOCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0U2V0TGlrZUNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqCiAgICAgcmV0dXJuIHRo
aXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RTZXRMaWtlIiksIHN0cmxlbigiVGVzdFNldExp
a2UiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3RTZXRMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RT
ZXRMaWtlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RTZXRMaWtlIik7CiB9CkBA
IC0yNDE5LDcgKzI0MTksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdAogICAgIHJldHVybiBK
U1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zOjpnZXRDb25zdHJ1Y3RvcihKU0M6
OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVz
dFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdFNl
dExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+Ojpn
ZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnND
b25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RT
ZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zIik7CiB9CkBAIC0yNDMxLDcgKzI0MzEsNyBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VXaXRo
T3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdAogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVj
dCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBM
Q2hhcio+KCJUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucyIpLCBzdHJsZW4oIlRl
c3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZVdpdGhPdmVycmlk
ZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEds
b2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9ucyIpOwogfQpAQCAtMjQ0Miw3ICsyNDQyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmEK
ICAgICByZXR1cm4gSlNUZXN0U3RyaW5naWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0o
JmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5n
aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFs
T2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9y
R2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFN0cmluZ2lmaWVy
Iik7CiB9CkBAIC0yNDU0LDcgKzI0NTQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYQogICAg
IHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0U3RyaW5naWZpZXIiKSwgc3Ry
bGVuKCJUZXN0U3RyaW5naWZpZXIiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVy
Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgIlRlc3RTdHJpbmdpZmllciIpOwogfQpAQCAtMjQ2NSw3ICsyNDY1LDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckFub255
bW91c09wZXJhdGlvbkNvbnN0cnUKICAgICByZXR1cm4gSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1v
dXNPcGVyYXRpb246OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVy
YXRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9u
Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJp
bmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uIik7
CiB9CkBAIC0yNDc3LDcgKzI0NzcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydQogICAgIHJl
dHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNP
cGVyYXRpb24iKSwgc3RybGVuKCJUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24iKSks
IHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RTdHJpbmdpZmllckFu
b255bW91c09wZXJhdGlvbiIpOwogfQpAQCAtMjQ4OCw3ICsyNDg4LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9u
Q29uc3RydWN0b3IKICAgICByZXR1cm4gSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbjo6
Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmpl
Y3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3IsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2Jq
ZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9u
Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0
U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbiIpOwogfQpAQCAtMjUwMCw3ICsyNTAwLDcgQEAgc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck5hbWVk
T3BlcmF0aW9uQ29uc3RydWN0b3IKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0s
IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIq
PigiVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24iKSwgc3RybGVuKCJUZXN0U3RyaW5naWZp
ZXJOYW1lZE9wZXJhdGlvbiIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25D
b25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvclNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFN0cmlu
Z2lmaWVyTmFtZWRPcGVyYXRpb24iKTsKIH0KQEAgLTI1MTEsNyArMjUxMSw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25J
bXBsZW1lbnRlZEFzQ29uCiAgICAgcmV0dXJuIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1w
bGVtZW50ZWRBczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxl
bWVudGVkQXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVt
ZW50ZWRBc0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3JHZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25J
bXBsZW1lbnRlZEFzIik7CiB9CkBAIC0yNTIzLDcgKzI1MjMsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50
ZWRBc0NvbgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0U3RyaW5n
aWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzIiksIHN0cmxlbigiVGVzdFN0cmluZ2lmaWVyT3Bl
cmF0aW9uSW1wbGVtZW50ZWRBcyIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRB
c0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0
Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxl
bWVudGVkQXNDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcyIp
OwogfQpAQCAtMjUzNCw3ICsyNTM0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEds
b2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb24KICAgICBy
ZXR1cm4gSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nOjpnZXRDb25zdHJ1
Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxP
YmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFs
T2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xv
YmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlv
bk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgIlRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmciKTsKIH0KQEAg
LTI1NDYsNyArMjU0Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uCiAgICAgcmV0dXJuIHRo
aXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9T
dHJpbmciKSwgc3RybGVuKCJUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nIikp
LCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25z
dHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0
U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nIik7CiB9CkBAIC0yNTU3LDcgKzI1NTcs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lm
aWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1YwogICAgIHJldHVybiBKU1Rlc3RTdHJpbmdpZmll
clJlYWRPbmx5QXR0cmlidXRlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xv
YmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZE9u
bHlBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRy
aWJ1dGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVz
dFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRl
Iik7CiB9CkBAIC0yNTY5LDcgKzI1NjksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1YwogICAg
IHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0U3RyaW5naWZpZXJSZWFkT25s
eUF0dHJpYnV0ZSIpLCBzdHJsZW4oIlRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlIikp
LCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0U3RyaW5naWZpZXJSZWFk
T25seUF0dHJpYnV0ZSIpOwogfQpAQCAtMjU4MCw3ICsyNTgwLDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0
ZUNvbnN0cnUKICAgICByZXR1cm4gSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGU6
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2Jq
ZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0
R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3Is
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRX
cml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlIik7CiB9CkBAIC0yNTky
LDcgKzI1OTIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydQogICAgIHJldHVybiB0aGlzT2Jq
ZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUiKSwg
c3RybGVuKCJUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUiKSksIHZhbHVlKTsKIH0K
IAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmll
clJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVy
UmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJp
YnV0ZSIpOwogfQpAQCAtMjYwMyw3ICsyNjAzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RUeXBlZGVmc0NvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2IK
ICAgICByZXR1cm4gSlNUZXN0VHlwZWRlZnM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxl
eGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0VHlwZWRlZnND
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0R2xvYmFsT2JqZWN0VGVzdFR5cGVkZWZzQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RUeXBlZGVmc0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFR5cGVkZWZzIik7CiB9CkBAIC0yNjE1
LDcgKzI2MTUsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dFR5cGVkZWZzQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYgogICAgIHJldHVybiB0aGlzT2Jq
ZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0VHlwZWRlZnMiKSwgc3RybGVuKCJUZXN0VHlwZWRlZnMi
KSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0VHlw
ZWRlZnNDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFR5cGVkZWZzQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RUeXBlZGVmcyIpOwogfQpA
QCAtMjYyNiw3ICsyNjI2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9i
amVjdFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG8KICAgICByZXR1cm4g
SlNXb3JrZXJHbG9iYWxTY29wZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpz
VGVzdEdsb2JhbE9iamVjdFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0
Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JHZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJXb3JrZXJHbG9iYWxTY29wZSIp
OwogfQpAQCAtMjYzOCw3ICsyNjM4LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEds
b2JhbE9iamVjdFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG8KICAgICBy
ZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiV29ya2VyR2xvYmFsU2NvcGUiKSwgc3Ry
bGVuKCJXb3JrZXJHbG9iYWxTY29wZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0R2xvYmFsT2JqZWN0V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0V29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAiV29ya2VyR2xvYmFsU2NvcGUiKTsKIH0KQEAgLTI2NDksNyArMjY0
OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RXb3JrbGV0R2xv
YmFsU2NvcGVDb25zdHJ1Y3RvckdldHRlcihKU0dsCiAgICAgcmV0dXJuIEpTV29ya2xldEdsb2Jh
bFNjb3BlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0R2xvYmFsT2JqZWN0V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9i
amVjdFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rl
c3RHbG9iYWxPYmplY3RXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpOwogfQpAQCAt
MjY2MSw3ICsyNjYxLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVj
dFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yU2V0dGVyKEpTR2wKICAgICByZXR1cm4gdGhp
c09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiV29ya2xldEdsb2JhbFNjb3BlIiksIHN0cmxlbigiV29y
a2xldEdsb2JhbFNjb3BlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFdvcmtsZXRHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJXb3JrbGV0R2xvYmFsU2NvcGUiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAppbmRleCAwNWNhYTMxNmJlZTgzMWFm
NTcxMGExM2YyNDc1NjI0NTZkYjllNGRlLi4zZGY3OTczZTA2NTI2MjExOGEyNzJmNzc5OGFkNWUz
NjBmYTNmYjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50
aWZpZXIuY3BwCkBAIC00Niw4ICs0Niw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0
dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJD
b25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEluZGV4ZWRT
ZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik7CiAKIGNsYXNzIEpTVGVzdEluZGV4ZWRTZXR0
ZXJOb0lkZW50aWZpZXJQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2Jq
ZWN0IHsKIHB1YmxpYzoKQEAgLTI0MSw3ICsyNDEsNyBAQCBib29sIEpTVGVzdEluZGV4ZWRTZXR0
ZXJOb0lkZW50aWZpZXI6OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIEpTR2xv
YgogICAgIHJldHVybiBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxk
VGhyb3cpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEluZGV4ZWRT
ZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMjUxLDcgKzI1MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVy
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5
cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJ
bmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEluZGV4ZWRT
ZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRl
eGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAK
aW5kZXggMmEzMjMzN2NjYjJkMmZmYjczYzY0NmU5ZGQyN2MxYzYyN2U2NTdmZS4uNmRmYTcxNTA1
NzlkOTVhYjczOTY1ZDc2NTQ4Y2Y1N2JlMjA3MWFlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4
Y2VwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKQEAgLTQ2LDggKzQ2LDgg
QEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9u
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbmRleGVkU2V0
dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9y
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0SW5kZXhlZFNldHRlclRocm93
aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOwogCiBjbGFzcyBKU1Rlc3RJbmRleGVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb25Qcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2Jq
ZWN0IHsKIHB1YmxpYzoKQEAgLTI0MSw3ICsyNDEsNyBAQCBib29sIEpTVGVzdEluZGV4ZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwg
SgogICAgIHJldHVybiBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxk
VGhyb3cpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEluZGV4ZWRT
ZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b25Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI1MSw3ICsyNTEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVj
dG9yKEpTRwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0SW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVy
V2l0aElkZW50aWZpZXIuY3BwCmluZGV4IDYzNzgwZmJhOTNjMzc2Yzk3YTZmZGZkNmEyNDVmZTc4
MjZmYWE5NjYuLjVlNzdlNmUwOTAzZWJkMDdjMDc4NWRhNTI3ZTc1ODAxOWY2MTc0ZWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRl
eGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCkBA
IC01Miw4ICs1Miw4IEBAIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SW5kZXhlZFNl
dHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25JbmRlCiAKIC8vIEF0dHJpYnV0ZXMK
IAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25z
dHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEluZGV4ZWRTZXR0
ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKTsKIAogY2xhc3MgSlNUZXN0SW5kZXhlZFNldHRl
cldpdGhJZGVudGlmaWVyUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9i
amVjdCB7CiBwdWJsaWM6CkBAIC0yNTMsNyArMjUzLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNU
ZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyKiBJRExPcGVyYXRpb248SlNUZXN0SW5kZXhl
ZFMKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50
aWZpZXIqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNW
YWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0yNjMsNyArMjYzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0ds
b2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
cHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAppbmRleCAzNTcxYTIyOThkOTEyMTkzNjYzOGRhNTJh
NjYxZTdjNDgzYjRmMzFmLi42MzlkYjAxM2IwMDQzNDBmZDNkODU1Yzk3ZWQ2Yjg0M2U3NWY2MmNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcApAQCAtMTE1LDUxICsxMTUsNTEgQEAgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gp
OwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcik7CiAjaWYgRU5BQkxFKENvbmRpdGlvbjIy
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0SW50ZXJmYWNlTWl4aW5SZWFkT25seUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RJbnRlcmZhY2VNaXhpblJlYWRPbmx5QXR0cmlidXRlKTsK
ICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZU1peGluQXR0
cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5B
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RJbnRlcmZh
Y2VNaXhpbkF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdElu
dGVyZmFjZU1peGluQXR0cmlidXRlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikg
fHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdEludGVyZmFjZU1peGluQ3VzdG9tQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5DdXN0b21BdHRyaWJ1dGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RJbnRlcmZhY2VNaXhpbkN1c3RvbUF0dHJpYnV0
ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEludGVyZmFjZU1peGluQ3Vz
dG9tQXR0cmlidXRlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxF
KENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdElu
dGVyZmFjZU1peGluTm9kZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEludGVyZmFjZU1peGluTm9kZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdEludGVyZmFjZU1peGluTm9kZUF0dHJpYnV0ZSk7CitKU0NfREVDTEFS
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEludGVyZmFjZU1peGluTm9kZUF0dHJpYnV0ZSk7CiAj
ZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VQYXJ0aWFsTWl4
aW5BdHRyaWJ1dGVGcm9tUGFydGlhbChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RJbnRlcmZhY2VQYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbCk7CiAjZW5kaWYK
ICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBs
ZW1lbnRhbFN0YXRpY1JlYWRPbmx5QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY1JlYWRPbmx5QXR0
cik7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24x
MikKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VDb25z
dHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY0F0dHIoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1
cHBsZW1lbnRhbFN0YXRpY0F0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY0F0dHIpOwogI2VuZGlmCiAj
aWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50
YWxTdHIxKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRp
dGlvbjEyKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFj
ZVN1cHBsZW1lbnRhbFN0cjIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbnRl
cmZhY2VTdXBwbGVtZW50YWxTdHIyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIpOwogI2VuZGlmCiAjaWYgRU5B
QkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyhKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50
YWxTdHIzKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0SW50ZXJmYWNlU3Vw
cGxlbWVudGFsU3RyMyk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJM
RShDb25kaXRpb24xMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJ
bnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01f
R0VUVEVSKGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKTsKICNlbmRpZgog
I2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZVJlZmxlY3RBdHRyaWJ1dGUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbnRlcmZhY2VSZWZsZWN0QXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0SW50ZXJmYWNlUmVm
bGVjdEF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEludGVy
ZmFjZVJlZmxlY3RBdHRyaWJ1dGUpOwogI2VuZGlmCiAKIGNsYXNzIEpTVGVzdEludGVyZmFjZVBy
b3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewpAQCAtNTE3LDcg
KzUxNyw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEludGVyZmFjZSogSURMT3BlcmF0aW9u
PEpTVGVzdEludGVyZmFjZT46OmNhc3QoSlNHbG9iYWxPCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nh
c3Q8SlNUZXN0SW50ZXJmYWNlKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNh
bGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTI3
LDcgKzUyNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNl
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShKU1Rlc3RJbnRlcmZhY2U6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RJ
bnRlcmZhY2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTU0OSw3ICs1NDks
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0SW50ZXJmYWNlTWl4aW5SZWFkT25seUF0
dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIGltcGwubWl4aW5SZWFkT25seUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZU1peGluUmVhZE9ubHlBdHRyaWJ1dGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFj
ZU1peGluUmVhZE9ubHlBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6Z2V0PGpzVGVzdEludGVyZmFjZU1p
eGluUmVhZE9ubHlBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3Nl
cnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJtaXhpblJlYWRPbmx5QXR0cmli
dXRlIik7CiB9CkBAIC01NjUsNyArNTY1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dEludGVyZmFjZU1peGluQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2EKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm1peGluQXR0cmlidXRlKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlTWl4aW5BdHRy
aWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVz
dEludGVyZmFjZU1peGluQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OmdldDxqc1Rlc3RJbnRlcmZhY2VN
aXhpbkF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm1peGluQXR0cmlidXRlIik7CiB9CkBAIC01
ODYsNyArNTg2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEludGVyZmFjZU1peGlu
QXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2EKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEludGVyZmFjZU1peGluQXR0cmlidXRl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbkF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRl
cmZhY2U+OjpzZXQ8c2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5BdHRyaWJ1dGVTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm1peGluQXR0cmlidXRl
Iik7CiB9CkBAIC02MDAsNyArNjAwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdElu
dGVyZmFjZU1peGluQ3VzdG9tQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JgogICAgIHJl
dHVybiB0aGlzT2JqZWN0Lm1peGluQ3VzdG9tQXR0cmlidXRlKGxleGljYWxHbG9iYWxPYmplY3Qp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZU1peGlu
Q3VzdG9tQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RJbnRlcmZhY2VNaXhpbkN1c3RvbUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpnZXQ8
anNUZXN0SW50ZXJmYWNlTWl4aW5DdXN0b21BdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJtaXhp
bkN1c3RvbUF0dHJpYnV0ZSIpOwogfQpAQCAtNjE1LDcgKzYxNSw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbkN1c3RvbUF0dHJpYnV0ZVNldHRlcihKU0dsb2Jh
bE9iamVjdCYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEludGVyZmFjZU1peGluQ3VzdG9tQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RJbnRlcmZhY2VN
aXhpbkN1c3RvbUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpzZXQ8c2V0SlNU
ZXN0SW50ZXJmYWNlTWl4aW5DdXN0b21BdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm1peGluQ3VzdG9tQXR0cmlidXRlIik7CiB9
CkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEludGVyZmFj
ZU1peGluTm9kZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGUKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+PihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1w
bC5taXhpbk5vZGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RJbnRlcmZhY2VNaXhpbk5vZGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFjZU1peGluTm9kZUF0dHJp
YnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RJbnRlcmZhY2U+OjpnZXQ8anNUZXN0SW50ZXJmYWNlTWl4aW5Ob2RlQXR0cmlidXRlR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAibWl4aW5Ob2RlQXR0cmlidXRlIik7CiB9CkBAIC02NTIsNyArNjUyLDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEludGVyZmFjZU1peGluTm9kZUF0dHJpYnV0
ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdEludGVyZmFjZU1peGluTm9kZUF0dHJpYnV0ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0SW50ZXJmYWNlTWl4aW5Ob2RlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFj
ZT46OnNldDxzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbk5vZGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm1peGluTm9kZUF0dHJp
YnV0ZSIpOwogfQpAQCAtNjY4LDcgKzY2OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RJbnRlcmZhY2VQYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbEdldHRlcihKU0dsCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERvdWJsZT4obGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5wYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9t
UGFydGlhbCgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdElu
dGVyZmFjZVBhcnRpYWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFsKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RJbnRlcmZhY2VQYXJ0aWFsTWl4aW5B
dHRyaWJ1dGVGcm9tUGFydGlhbCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpnZXQ8anNUZXN0SW50ZXJmYWNlUGFydGlh
bE1peGluQXR0cmlidXRlRnJvbVBhcnRpYWxHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9y
OjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJwYXJ0aWFsTWl4aW5B
dHRyaWJ1dGVGcm9tUGFydGlhbCIpOwogfQpAQCAtNjgzLDcgKzY4Myw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY1Jl
YWRPbmx5QXR0ckdlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElE
TExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFdlYkNvcmU6OlRlc3RTdXBw
bGVtZW50YWw6OnN1cHBsZW1lbnRhbFN0YXRpY1JlYWRPbmx5QXR0cigpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxl
bWVudGFsU3RhdGljUmVhZE9ubHlBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRp
Y1JlYWRPbmx5QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpnZXRTdGF0aWM8anNUZXN0SW50ZXJmYWNlQ29uc3Ry
dWN0b3JTdXBwbGVtZW50YWxTdGF0aWNSZWFkT25seUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJzdXBwbGVtZW50YWxTdGF0aWNSZWFkT25seUF0dHIiKTsKIH0K
QEAgLTY5OCw3ICs2OTgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0SW50ZXJmYWNl
Q29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyR2V0dGVyKEpTRwogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRh
bFN0YXRpY0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY0F0dHIoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFjZUNvbnN0cnVj
dG9yU3VwcGxlbWVudGFsU3RhdGljQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpnZXRTdGF0aWM8anNUZXN0SW50
ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyR2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3VwcGxlbWVudGFsU3RhdGljQXR0ciIpOwogfQpAQCAt
NzE4LDcgKzcxOCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VDb25z
dHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY0F0dHJTZXR0ZXIoSlNHCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1
cHBsZW1lbnRhbFN0YXRpY0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
SlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3Vw
cGxlbWVudGFsU3RhdGljQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpzZXRTdGF0aWM8
c2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyU2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdXBwbGVt
ZW50YWxTdGF0aWNBdHRyIik7CiB9CkBAIC03MzQsNyArNzM0LDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjFHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9N
U3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBXZWJDb3JlOjpUZXN0U3Vw
cGxlbWVudGFsOjpzdXBwbGVtZW50YWxTdHIxKGltcGwpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjEoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFjZVN1cHBs
ZW1lbnRhbFN0cjEsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6Z2V0PGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0
cjFHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJzdXBwbGVtZW50YWxTdHIxIik7CiB9CkBAIC03NTAsNyArNzUw
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0
cjJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Nj
b3BlLCBXZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxTdHIyKGltcGwpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZVN1cHBs
ZW1lbnRhbFN0cjIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6Z2V0PGpzVGVzdElu
dGVyZmFjZVN1cHBsZW1lbnRhbFN0cjJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpB
c3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdXBwbGVtZW50YWxTdHIy
Iik7CiB9CkBAIC03NzEsNyArNzcxLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdElu
dGVyZmFjZVN1cHBsZW1lbnRhbFN0cjJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEludGVyZmFjZVN1
cHBsZW1lbnRhbFN0cjIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RF
RklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6c2V0PHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRh
bFN0cjJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgInN1cHBsZW1lbnRhbFN0cjIiKTsKIH0KQEAgLTc4NSw3ICs3ODUsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyM0dldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aQogICAgIHJldHVybiB0aGlzT2JqZWN0LnN1cHBsZW1lbnRhbFN0cjMobGV4
aWNhbEdsb2JhbE9iamVjdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMywgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZh
Y2U+OjpnZXQ8anNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyM0dldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
InN1cHBsZW1lbnRhbFN0cjMiKTsKIH0KQEAgLTgwMCw3ICs4MDAsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyM1NldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0SW50ZXJmYWNlU3Vw
cGxlbWVudGFsU3RyMywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpzZXQ8c2V0SlNUZXN0SW50
ZXJmYWNlU3VwcGxlbWVudGFsU3RyM1NldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAic3VwcGxlbWVudGFsU3RyMyIpOwogfQpAQCAtODE2LDcgKzgx
Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxO
b2RlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxOb2RlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwg
KnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIFdlYkNvcmU6OlRlc3RTdXBw
bGVtZW50YWw6OnN1cHBsZW1lbnRhbE5vZGUoaW1wbCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0SW50ZXJmYWNlU3VwcGxl
bWVudGFsTm9kZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpnZXQ8anNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9k
ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgInN1cHBsZW1lbnRhbE5vZGUiKTsKIH0KQEAgLTgzNyw3ICs4Mzcs
NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9k
ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+
OjpzZXQ8c2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZVNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic3VwcGxlbWVudGFsTm9kZSIp
OwogfQpAQCAtODUzLDcgKzg1Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RJbnRl
cmZhY2VSZWZsZWN0QXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0
aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGF0dHJpYnV0ZUF0dHIpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZVJlZmxlY3RBdHRyaWJ1
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdElu
dGVyZmFjZVJlZmxlY3RBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6Z2V0PGpzVGVzdEludGVyZmFjZVJl
ZmxlY3RBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0QXR0cmlidXRlIik7CiB9CkBA
IC04NzQsNyArODc0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEludGVyZmFjZVJl
ZmxlY3RBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEludGVyZmFjZVJlZmxlY3RBdHRy
aWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNU
T01fU0VUVEVSKHNldEpTVGVzdEludGVyZmFjZVJlZmxlY3RBdHRyaWJ1dGUsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0SW50ZXJmYWNlPjo6c2V0PHNldEpTVGVzdEludGVyZmFjZVJlZmxlY3RBdHRyaWJ1dGVTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJlZmxl
Y3RBdHRyaWJ1dGUiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlTGVhZGlu
Z1VuZGVyc2NvcmUuY3BwCmluZGV4IDBhNjlkZmI3ZWJjMDBmYzFkNTMxYjMyMzFlYTUyZjg0YWM0
MDdhZDguLjMwMTJmZTQ1MGJlNTdiMzA1MDdlYjJjYjFiZDhhYmRiZWQzNjIwNGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZh
Y2VMZWFkaW5nVW5kZXJzY29yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmNwcApAQCAtNDYs
OSArNDYsOSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJz
Y29yZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW50ZXJm
YWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVSZWFkb25s
eShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RJbnRlcmZhY2VMZWFkaW5n
VW5kZXJzY29yZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlUmVhZG9ubHkpOwog
CiBjbGFzcyBKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZVByb3RvdHlwZSBmaW5hbCA6
IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTU4LDcgKzE1OCw3
IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlKiBJ
RExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdElu
dGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNjgsNyArMTY4
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VMZWFkaW5n
VW5kZXJzY29yZUNvbnN0cnVjdG9yKEpTR2xvYmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlOjpnZXRDb25zdHJ1Y3RvcihKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9
CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29y
ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYg
dm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTg5LDcgKzE4OSw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZVJlYWRvbmx5R2V0
dGVyKEpTR2xvYmFsT2JqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5yZWFk
b25seSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVy
ZmFjZUxlYWRpbmdVbmRlcnNjb3JlUmVhZG9ubHkoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlUmVhZG9u
bHksIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmU+OjpnZXQ8anNUZXN0SW50ZXJmYWNlTGVhZGlu
Z1VuZGVyc2NvcmVSZWFkb25seUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2Vy
dD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlYWRvbmx5Iik7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SXRl
cmFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEl0ZXJhYmxlLmNwcAppbmRleCA3YjQ1YzY2NzFhMDAwMGYyODdmMGJmNTMzMjliN2NkZjA1NzFh
NmQyLi4yNGIyMzgwYTI5ZjJhM2IxOWJkNThlZGM0NjMwN2UzZTExY2Q5MzdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
dGVyYWJsZS5jcHAKQEAgLTU3LDggKzU3LDggQEAgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RJdGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk7CiAKIC8vIEF0dHJpYnV0ZXMK
IAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEl0ZXJhYmxlQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJdGVyYWJsZUNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0SXRlcmFibGVDb25z
dHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEl0ZXJhYmxlQ29u
c3RydWN0b3IpOwogCiBjbGFzcyBKU1Rlc3RJdGVyYWJsZVByb3RvdHlwZSBmaW5hbCA6IHB1Ymxp
YyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTcyLDcgKzE3Miw3IEBAIHRl
bXBsYXRlPD4gaW5saW5lIEpTVGVzdEl0ZXJhYmxlKiBJRExPcGVyYXRpb248SlNUZXN0SXRlcmFi
bGU+OjpjYXN0KEpTR2xvYmFsT2JqCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0SXRl
cmFibGUqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNW
YWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJdGVyYWJs
ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RJdGVyYWJsZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTgyLDcgKzE4Miw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SXRlcmFibGVDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RJ
dGVyYWJsZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
cHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0SXRlcmFibGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0SXRlcmFibGVDb25zdHJ1Y3Rv
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0g
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SlNCdWlsdGluQ29uc3Ry
dWN0b3IuY3BwCmluZGV4IDJhN2E2NmY0YWRjODEyY2EwMjYxZWRmNjk2MjRjMDk0NTc0YmIxZGIu
LmM4ZDI2ZjQ5MDQxYmM1ZGY5OGRjZTAwYzE2NDA4Mzg0Njg3MzJmZTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RKU0J1aWx0aW5Db25z
dHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcApAQCAtNDcsMTEgKzQ3LDExIEBAIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGVG
dW5jdGlvblRlc3RDdXN0b21GCiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RK
U0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVDdXN0b20oSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRy
aWJ1dGVSV0N1c3RvbShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEpTQnVpbHRp
bkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZVJXQ3VzdG9tKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcik7CitKU0Nf
REVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3Ry
dWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1
Y3RvclRlc3RBdHRyaWJ1dGVDdXN0b20pOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVSV0N1c3RvbSk7CitKU0NfREVDTEFS
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0
ZVJXQ3VzdG9tKTsKIAogY2xhc3MgSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGUg
ZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE3MSw3
ICsxNzEsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvciog
SURMT3BlcmF0aW9uPEpTVGVzdEpTQnVpbHRpbkNvbnN0cgogICAgIHJldHVybiBqc0R5bmFtaWND
YXN0PEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0SlNCdWlsdGluQ29u
c3RydWN0b3JDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4MSw3ICsxODEsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0SlNCdWlsdGlu
Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEpT
QnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0y
MDAsNyArMjAwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0
cnVjdG9yVGVzdEF0dHJpYnV0ZUN1c3RvbUdldHRlcihKU0dsb2IKICAgICByZXR1cm4gdGhpc09i
amVjdC50ZXN0QXR0cmlidXRlQ3VzdG9tKGxleGljYWxHbG9iYWxPYmplY3QpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0
dHJpYnV0ZUN1c3RvbShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIoanNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlQ3VzdG9tLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEpTQnVpbHRp
bkNvbnN0cnVjdG9yPjo6Z2V0PGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0
ZUN1c3RvbUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRlc3RBdHRyaWJ1dGVDdXN0b20iKTsKIH0KQEAgLTIx
MSw3ICsyMTEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0SlNCdWlsdGluQ29uc3Ry
dWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b21HZXR0ZXIoSlNHbAogICAgIHJldHVybiB0aGlzT2Jq
ZWN0LnRlc3RBdHRyaWJ1dGVSV0N1c3RvbShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RB
dHRyaWJ1dGVSV0N1c3RvbShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b20sIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SlNC
dWlsdGluQ29uc3RydWN0b3I+OjpnZXQ8anNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0
cmlidXRlUldDdXN0b21HZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0ZXN0QXR0cmlidXRlUldDdXN0b20iKTsK
IH0KQEAgLTIyMyw3ICsyMjMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0SlNCdWls
dGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b21TZXR0ZXIoSlNHbAogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SlNCdWlsdGluQ29uc3Ry
dWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b20oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVj
dG9yVGVzdEF0dHJpYnV0ZVJXQ3VzdG9tLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVj
dG9yPjo6c2V0PHNldEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZVJXQ3Vz
dG9tU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJ0ZXN0QXR0cmlidXRlUldDdXN0b20iKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeUZh
Y3RvcnlGdW5jdGlvbi5jcHAKaW5kZXggYWRlN2E0NjhiY2VmOTcyNzc1ZDZjNGIzNTk1ODg0YWFh
ZTYyODYyMC4uNTI5MWU0MjJmYjMzMWM4YTQ1ZDAzODA1NzAwNTUwOTEzMzI2MmY3YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2Fj
eUZhY3RvcnlGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbi5jcHAKQEAgLTQ4LDggKzQ4LDgg
QEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rp
b25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdExl
Z2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3IpOwogCiBjbGFzcyBK
U1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Qcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpK
U05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTIwNyw3ICsyMDcsNyBAQCB2b2lkIEpTVGVz
dExlZ2FjeUZhY3RvcnlGdW5jdGlvbjo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2VsbCkKICAgICB0
aGlzT2JqZWN0LT5KU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb246On5KU1Rlc3RMZWdhY3lGYWN0
b3J5RnVuY3Rpb24oKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RM
ZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0
b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0yMTcsNyArMjE3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamUKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbjo6Z2V0
Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5n
bG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TGVnYWN5
RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5j
dGlvbkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsK
ICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeU5vSW50ZXJmYWNl
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdC5jcHAKaW5kZXggOGNjYTE0ZTQyZDUxYWU4YmNlMzdm
NjllODY0YjlhODUyMjA2ZmRlOS4uNTJkYjA2YjFkMTA5ZjA3YjVkNGFkMGMyYjExNWMwNWI2ZTVm
N2QwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QuY3Bw
CkBAIC01OSwxNSArNTksMTUgQEAgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yRnVuY3Rpb25TdGF0aWMKIAogLy8gQXR0cmli
dXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TGVnYWN5Tm9J
bnRlcmZhY2VPYmplY3RSZWFkb25seVN0cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZFdy
aXRlU3RyaW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0Q3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21HZXR0ZXJTZXR0ZXJT
dHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Tm9kZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Tm9kZUF0dHJpYnV0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TGVnYWN5
Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q29uc3Ry
dWN0b3JTdGF0aWNTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRvbmx5U3RyaW5nQXR0cmlidXRl
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmpl
Y3RSZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZSk7
CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
Q3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21HZXR0ZXJTZXR0ZXJT
dHJpbmdBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RMZWdhY3lO
b0ludGVyZmFjZU9iamVjdE5vZGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdE5vZGVBdHRyaWJ1dGUpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVj
dG9yU3RhdGljU3RyaW5nQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJp
YnV0ZSk7CiAKIGNsYXNzIEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlIGZp
bmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNzUsNyAr
MTc1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0UmVhZG9ubHlTdHJpbmdBdHRyaWJ1dGVHZXR0ZXIKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBpbXBsLnJlYWRvbmx5U3RyaW5nQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkb25s
eVN0cmluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkb25seVN0cmluZ0F0dHJpYnV0
ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OmdldDxqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9i
amVjdFJlYWRvbmx5U3RyaW5nQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVhZG9ubHlTdHJp
bmdBdHRyaWJ1dGUiKTsKIH0KQEAgLTE4OCw3ICsxODgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGVH
ZXR0ZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJp
bmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwucmVhZFdyaXRlU3RyaW5n
QXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdExlZ2FjeU5vSW50ZXJm
YWNlT2JqZWN0UmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
Pjo6Z2V0PGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZFdyaXRlU3RyaW5nQXR0cmli
dXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAicmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlIik7CiB9CkBAIC0y
MDYsNyArMjA2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJm
YWNlT2JqZWN0UmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlU2V0dGUKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
UmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9i
amVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RMZWdhY3lOb0ludGVy
ZmFjZU9iamVjdD46OnNldDxzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRXcml0
ZVN0cmluZ0F0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAicmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlIik7CiB9CkBAIC0yMTcsNyAr
MjE3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0Q3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0cmkKICAgICByZXR1cm4gdGhpc09iamVjdC5j
dXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUobGV4aWNhbEdsb2JhbE9iamVjdCk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3RDdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
Q3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
Pjo6Z2V0PGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q3VzdG9tR2V0dGVyU2V0dGVyU3Ry
aW5nQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0
cmlidXRlIik7CiB9CkBAIC0yMjksNyArMjI5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0cmkK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0Q3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0
dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OnNldDxzZXRK
U1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJp
YnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVl
LCAiY3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0cmlidXRlIik7CiB9CkBAIC0yNDIsNyArMjQy
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
Tm9kZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5ub2RlQXR0cmlidXRl
KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TGVnYWN5Tm9J
bnRlcmZhY2VPYmplY3ROb2RlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdE5vZGVBdHRyaWJ1
dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+OjpnZXQ8anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3ROb2RlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibm9kZUF0dHJpYnV0ZSIpOwogfQpA
QCAtMjYwLDcgKzI2MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RMZWdhY3lOb0lu
dGVyZmFjZU9iamVjdE5vZGVBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9i
amVjdE5vZGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlND
X0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Tm9k
ZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OnNldDxz
ZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdE5vZGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm5vZGVBdHRyaWJ1dGUi
KTsKIH0KQEAgLTI3Miw3ICsyNzIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0TGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJpYgogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFRlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdDo6c3Rh
dGljU3RyaW5nQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0
dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNU
ZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJpYnV0
ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OmdldFN0YXRpYzxqc1Rlc3RMZWdhY3lOb0ludGVy
ZmFjZU9iamVjdENvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cmlidXRlR2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3RhdGljU3RyaW5nQXR0cmlidXRlIik7CiB9CkBA
IC0yODksNyArMjg5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdExlZ2FjeU5vSW50
ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyaWIKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdExlZ2FjeU5v
SW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyaWJ1dGUsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+OjpzZXRTdGF0aWM8c2V0SlNUZXN0TGVnYWN5
Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJpYnV0ZVNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic3RhdGljU3Ry
aW5nQXR0cmlidXRlIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWls
dElucy5jcHAKaW5kZXggYzNmNGQ0ZDkxNDVlNGE3Yjg5YWE1OGQzOTFlZTFjYjI3YzNhYjEyZC4u
N2YzZTk4MmMzZmI4MjNhNDE1MGI0Yjc0OGM4OTQ1ZmEyOTVmZjBkMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcApAQCAtNTQsOCArNTQsOCBAQCBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5
cGVGdW5jdGlvbk5hbWVkSXRlbQogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5z
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RMZWdh
Y3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOwogCiBjbGFzcyBK
U1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6
SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yMTUsNyArMjE1LDcgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdElucyogSURMT3BlcmF0aW9uPEpTVGVz
dExlZ2FjeU92ZXJyaWQKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RMZWdhY3lPdmVy
cmlkZUJ1aWx0SW5zKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFt
ZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3Ry
dWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0yMjUsNyArMjI1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmoK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnM6
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlw
ZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdExl
Z2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0TGVnYWN5T3ZlcnJp
ZGVCdWlsdEluc0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1hcExpa2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1hcExpa2Uu
Y3BwCmluZGV4IDczZDQzM2U1MTk5OGIzMjViOTZlMTdhMTUwNjVkN2FmYjlhZGE5ZjYuLjk4Njc2
MzM3MGI0YzMxMTE2OWM1NjQ5NDc0OWFlOTU1YjA2YzQxZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBMaWtlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWFwTGlrZS5jcHAK
QEAgLTYyLDkgKzYyLDkgQEAgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtl
UHJvdG90eXBlRnVuY3Rpb25EZWxldGUpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RNYXBMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RNYXBMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE1hcExpa2VTaXplKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitK
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE1hcExpa2VDb25zdHJ1Y3Rvcik7CitKU0Nf
REVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE1hcExpa2VDb25zdHJ1Y3Rvcik7CitKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE1hcExpa2VTaXplKTsKIAogY2xhc3MgSlNUZXN0
TWFwTGlrZVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3Qgewog
cHVibGljOgpAQCAtMTg5LDcgKzE4OSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE1hcExp
a2UqIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlPjo6Y2FzdChKU0dsb2JhbE9iamVjCiAgICAg
cmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0TWFwTGlrZSo+KEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE1hcExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0TWFwTGlrZUNvbnN0cnVjdG9yLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMTk5LDcgKzE5OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0TWFwTGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RNYXBMaWtlOjpnZXRDb25zdHJ1Y3RvcihKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9
CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RNYXBMaWtlQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNl
dEpTVGVzdE1hcExpa2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIxOSw3
ICsyMTksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0TWFwTGlrZVNpemVHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplYwogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCAodG9KUzxJRExBbnk+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIGZvcndhcmRTaXplVG9NYXBMaWtlKGxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3Qp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE1hcExpa2VTaXpl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RNYXBM
aWtlU2l6ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RNYXBMaWtlPjo6Z2V0PGpzVGVzdE1hcExpa2VTaXplR2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2l6ZSIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRl
bk9wZXJhdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMuY3BwCmluZGV4IGI5ZmJlYTdj
ZjdlNTliMmNmMjcxMjU4ZDE0MTExYjY0MDQwODllYTcuLjI1MTFmZWNiNDY1NTFmZWEyNzhkZTE3
M2Y2YTQ3YzcwNGMxOGE2YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWFwTGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucy5jcHAKQEAgLTYyLDExICs2MiwxMSBAQCBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQ
cm90b3R5cGVGdW5jdGlvbgogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RNYXBMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTZXQoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zU2V0KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2l6ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3Ry
dWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RNYXBMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2V0KTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Nl
dCk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRl
bk9wZXJhdGlvbnNTaXplKTsKIAogY2xhc3MgSlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9uc1Byb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3Qgewog
cHVibGljOgpAQCAtMTkxLDcgKzE5MSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE1hcExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMqIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMCiAgICAg
cmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
cyo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVl
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE1hcExpa2VXaXRo
T3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
c0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjAxLDcgKzIwMSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVj
dG9yKEpTCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RNYXBMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIyMiw3ICsyMjIsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NldEdldHRlcihKU0ds
b2JhbE9iagogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25n
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnNldCgpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNTZXQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTZXQsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0TWFwTGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9ucz46OmdldDxqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zU2V0R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2V0Iik7CiB9CkBAIC0yNDAsNyArMjQwLDcgQEAgc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNT
ZXRTZXR0ZXIoSlNHbG9iYWxPYmoKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTZXQoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNl
dEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTZXQsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OnNldDxzZXRKU1Rlc3RNYXBMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zU2V0U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzZXQiKTsKIH0KQEAgLTI1Miw3ICsyNTIsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Np
emVHZXR0ZXIoSlNHbG9iYWxPYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExBbnk+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGZvcndhcmRTaXpl
VG9NYXBMaWtlKGxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3QpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnNTaXplKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2l6ZSwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RNYXBMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zPjo6Z2V0PGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNTaXplR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2l6ZSIpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyLmNwcAppbmRleCBmOTgwYzk3MTEzNmMyMmMyMDc5NGU4OGE1ZDgwYTI2NTBiNjFi
NzY0Li5kOWUzY2RmMmNkZGJkNTcwNzI2YzBlZWQ4MjExNWZkMTRlNjk4MWYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJ
bmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVy
LmNwcApAQCAtNDcsOCArNDcsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1
dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik7
CiAKIGNsYXNzIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllclByb3RvdHlw
ZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMzE1
LDcgKzMxNSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVy
OjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0CiAgICAgcmV0dXJuIEpTT2JqZWN0
OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGxleGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5
TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlm
aWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMzI1LDcgKzMyNSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZp
ZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3Rv
dHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJ
bmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCmluZGV4IGQ2MTEzMGJmNGNlYTM0MDBi
Nzc3MGYyMWEzOWE3NzkyYmVhMDI0ODcuLjY1MTgzMTViYWQ2NjJhMjI2OTY5OWY4NjQ3MWMwZTUz
YjZiY2U2ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcApAQCAtNDcsOCArNDcsOCBAQCB1c2lu
ZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRBbmRJ
bmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhj
ZXB0aW9uQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RO
YW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKTsKIAogY2xh
c3MgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5cGUg
ZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTMxNSw3
ICszMTUsNyBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0
aW9uOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogbwogICAgIHJldHVybiBKU09iamVjdDo6
ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5h
bWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhj
ZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3Ry
dWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0zMjUsNyArMzI1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnUK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAg
ICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
cldpdGhJZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKaW5kZXgg
MjBlMDIzM2VjZjk3NGZjODZjYTg1YTIyZmY5MTE0NzIwZGFkMzM4Ny4uZjQzNGU0Nzg0YzVkYTM1
NTRhNjRiZWI5MDA2YmMwMDIwODM0YWVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVu
dGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCkBAIC01NCw4ICs1
NCw4IEBAIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jCiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0
aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOwogCiBj
bGFzcyBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZSBm
aW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMzI5LDcg
KzMyOSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyKiBJRExPcGVyYXRpb248SlNUZXN0CiAgICAgcmV0dXJuIGpzRHluYW1pY0Nh
c3Q8SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIqPihKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRo
SWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMzM5LDcgKzMzOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rv
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1
Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVs
ZXRlck5vSWRlbnRpZmllci5jcHAKaW5kZXggMWQ1MmE2NDY0YTFkYTU5N2E5NWFhNGQ5M2JiNTQ4
YWZkMzFkODA3YS4uYWQ0ZjFhMDg5NDc0NjNlMzdhNDE1NzU5MzQ1NGVlMzViOWYzNzM1ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHAKQEAgLTQ2
LDggKzQ2LDggQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlm
aWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZERl
bGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01f
R0VUVEVSKGpzVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29u
c3RydWN0b3IpOwogCiBjbGFzcyBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJQcm90b3R5
cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTIy
Nyw3ICsyMjcsNyBAQCBib29sIEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllcjo6ZGVsZXRl
UHJvcGVydHlCeUluZGV4KEpTQ2VsbCogY2VsbCwgSlNHbG9iYQogICAgIHJldHVybiBKU09iamVj
dDo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KGNlbGwsIGxleGljYWxHbG9iYWxPYmplY3QsIGluZGV4
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZERlbGV0ZXJO
b0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIoanNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0yMzcsNyArMjM3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE8KICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllcjo6Z2V0Q29u
c3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9i
YWxPYmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWREZWxl
dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE5hbWVkRGVsZXRlck5vSWRl
bnRpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkK
IHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRo
cm93aW5nRXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKaW5kZXggYjI5MDQ0
ZWEwMGZkYmI1ZmMwMzY3M2U4ZDQ3YjU1MWMzYmYyMjY0NC4uZTNhZjQxOTZkODAwYmNlNmU2MGJh
MzkyMWU5YTZlNGZkMjg1MWQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRE
ZWxldGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCkBAIC00Niw4ICs0Niw4IEBAIHVzaW5nIG5hbWVz
cGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0
TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3Ry
dWN0b3IpOwogCiBjbGFzcyBKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvblByb3Rv
dHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAt
MjI3LDcgKzIyNyw3IEBAIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb246
OmRlbGV0ZVByb3BlcnR5QnlJbmRleChKU0NlbGwqIGNlbGwsIEpTCiAgICAgcmV0dXJuIEpTT2Jq
ZWN0OjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoY2VsbCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgaW5k
ZXgpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkRGVsZXRl
clRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0yMzcsNyArMjM3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpT
R2wKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5n
RXhjZXB0aW9uOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
LCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRp
Zmllci5jcHAKaW5kZXggMjc0NzFlZGU5ZWVmNDcyZDJiYjFkODE5MGY3ODNmMTAzMWJhYzRhMy4u
YmVkYTFiNjk4ODk3ZWQwMTI5OGZlYzE1NGU0NTkyZjJkM2M1MmM1NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldp
dGhJZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIuY3BwCkBAIC01MSw4ICs1MSw4
IEBAIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50
aWZpZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkCiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVy
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZERlbGV0
ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik7CitKU0Nf
REVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVy
Q29uc3RydWN0b3IpOwogCiBjbGFzcyBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllclBy
b3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpA
QCAtMjM0LDcgKzIzNCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5hbWVkRGVsZXRlcldp
dGhJZGVudGlmaWVyKiBJRExPcGVyYXRpb248SlNUZXN0TmFtZWREZWxlCiAgICAgcmV0dXJuIGpz
RHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIqPihKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmll
ckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MjQ0LDcgKzI0NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRE
ZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0
b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmpl
Y3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWREZWxldGVyV2l0
aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50
aWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7
CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRo
SW5kZXhlZEdldHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCmluZGV4IDAwYzk2MzRh
NDRkYzgwMmUyNWRkYWU0MWYxZDcwYzQ1Mjg3YWRjNWIuLjJjODNkZTQzOTFlODU4OTljNmQxMjIz
MTJhYzdiYzY3NjQxY2VlZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVs
ZXRlcldpdGhJbmRleGVkR2V0dGVyLmNwcApAQCAtNDcsOCArNDcsOCBAQCB1c2luZyBuYW1lc3Bh
Y2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0
ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE5h
bWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVj
dG9yKTsKIAogY2xhc3MgSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5
cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTI0
MSw3ICsyNDEsNyBAQCBib29sIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyOjpk
ZWxldGVQcm9wZXJ0eUJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBKUwogICAgIHJldHVybiAhaW1wbC5p
c1N1cHBvcnRlZFByb3BlcnR5SW5kZXgoaW5kZXgpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE5hbWVk
RGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNTEsNyArMjUx
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZERlbGV0ZXJXaXRo
SW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTR2wKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7
CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhl
ZEdldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdl
dHRlckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsK
ICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyQ2FsbFdp
dGguY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkR2V0dGVyQ2FsbFdpdGguY3BwCmluZGV4IGU0Yjk1YTQ2MjQzNmY2OTcxNDhkZDU4OTU4NTBl
ZTVlNGY3M2EwOWQuLmM4ZjA3ODk2ZWRiMTk5OWMwMmE5OTEyZmIwOWIxMmY0OTRiYmExNWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZEdldHRlckNhbGxXaXRoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aC5jcHAKQEAgLTQ2LDggKzQ2LDgg
QEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0TmFtZWRH
ZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yKTsKIAogY2xhc3MgSlNUZXN0TmFt
ZWRHZXR0ZXJDYWxsV2l0aFByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxP
YmplY3QgewogcHVibGljOgpAQCAtMjAxLDcgKzIwMSw3IEBAIHZvaWQgSlNUZXN0TmFtZWRHZXR0
ZXJDYWxsV2l0aDo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBKU0dsb2Jh
bE9iCiAgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE5hbWVkR2V0dGVyQ2Fs
bFdpdGhDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIxMSw3ICsyMTEsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRHZXR0ZXJD
YWxsV2l0aDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
cHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3ROYW1lZEdl
dHRlckNhbGxXaXRoQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0
ZXJOb0lkZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyLmNwcAppbmRleCBlZWE3NGVjZDY1NDg3
Y2Q1MjVjNzVlZjJhMzg2MDA4MzI4NjhkMjBjLi4yZTA2YWQ5MTIxZjFkZDFiNTliMmIyNmI4ZDRm
NTNlYjllZjBhZGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRp
Zmllci5jcHAKQEAgLTQ2LDggKzQ2LDggQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0
cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRH
ZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVj
dG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0TmFtZWRHZXR0ZXJOb0lk
ZW50aWZpZXJDb25zdHJ1Y3Rvcik7CiAKIGNsYXNzIEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlm
aWVyUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJs
aWM6CkBAIC0yMDEsNyArMjAxLDcgQEAgdm9pZCBKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmll
cjo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBKU0dsb2IKICAgICBKU09i
amVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIGxleGljYWxHbG9iYWxPYmplY3QsIHBy
b3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVy
Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMTEsNyArMjExLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xv
YmFsT2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVu
dGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBw
cm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3ROYW1l
ZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkR2V0dGVyV2l0aElkZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCmluZGV4IDY2
ZWE3MmM4MzI1MjFhMTZhYjcxZDYwN2M3NjhjNWVkZTNjZmM1NGUuLmJhOWQwNmEwOGEyYmJhYWY3
NTYyNTE2MWI3YjQ5ZmVmMzFlZGMzOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRH
ZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKQEAgLTUxLDggKzUxLDggQEAgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rp
b25HZXR0ZXIKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0TmFtZWRHZXR0
ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKTsKIAogY2xhc3Mg
SlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBK
U0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMjEyLDcgKzIxMiw3IEBAIHRlbXBs
YXRlPD4gaW5saW5lIEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIqIElETE9wZXJhdGlv
bjxKU1Rlc3ROYW1lZEdldHRlCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRH
ZXR0ZXJXaXRoSWRlbnRpZmllcio+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBj
YWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRl
bnRpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjIyLDcgKzIyMiw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVj
dG9yKEpTR2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZEdldHRl
cldpdGhJZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNl
dEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3Bw
CmluZGV4IGJlODZlZjcwNzg3MWJmNTQ5NDEyZjUzMGIwYWFkYzZlNjZlN2ZjZTQuLmViNzgyODFj
NTY1NWFhOGU3ZDliNDk2NzVlYmM1NWM5YWQ5NzMwMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmll
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcApAQCAtNDYsOCArNDYsOCBAQCB1c2luZyBuYW1l
c3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE5hbWVkU2V0dGVy
Tm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKTsKIAogY2xhc3MgSlNUZXN0
TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05v
bkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTI3MCw3ICsyNzAsNyBAQCBib29sIEpTVGVzdE5h
bWVkU2V0dGVyTm9JZGVudGlmaWVyOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0
LCBKU0dsb2JhbAogICAgIHJldHVybiBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0
LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRv
ciwgc2hvdWxkVGhyb3cpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0yODAsNyArMjgwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFs
T2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlm
aWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90
b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3ROYW1lZFNl
dHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCmluZGV4
IDI5ZjY1YTZjODRlZTE0NGY0MDYwMThmNDY1NTZmYjhmYmRiZTkzYmYuLjJmYzg4MzhmNjI2NjY1
YmVkYzViMGY3MzgxNzY4ZGZhZGYwN2U2YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKQEAgLTQ2LDggKzQ2LDggQEAgdXNpbmcg
bmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4
Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0
cnVjdG9yKTsKIAogY2xhc3MgSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvblByb3Rv
dHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAt
MjcwLDcgKzI3MCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6
ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgSlNHCiAgICAgcmV0dXJuIEpTT2Jq
ZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGxleGljYWxHbG9iYWxPYmplY3QsIHByb3Bl
cnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0yODAsNyArMjgwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1l
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG8KICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OmdldENvbnN0
cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFs
T2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkU2V0dGVy
VGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0TmFtZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0
dGVyV2l0aElkZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCmluZGV4IGZiYzlhOWQw
OTE1NTAxYWQ0MjQwYTk4ZWIxNzk1MzE1ODhhODVlZDYuLjI4MmYyNmQzZmYxZWVlYTdlOGYwODg3
ZjgyOTZiMWQyYWIwYTY4Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoSWRlbnRpZmllci5jcHAKQEAgLTUxLDggKzUxLDggQEAgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25OYW1l
ZFMKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0TmFtZWRTZXR0ZXJXaXRo
SWRlbnRpZmllckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKTsKIAogY2xhc3MgSlNUZXN0
TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpT
Tm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMjgxLDcgKzI4MSw3IEBAIHRlbXBsYXRlPD4g
aW5saW5lIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIqIElETE9wZXJhdGlvbjxKU1Rl
c3ROYW1lZFNldHRlCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJX
aXRoSWRlbnRpZmllcio+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJh
bWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmll
ckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjkxLDcgKzI5MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpT
R2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZFNldHRlcldpdGhJ
ZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
LCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVy
LmNwcAppbmRleCAzMDM2MTA1YzBkNzlmMDRlZjM1OGEzMDQ2YzlmOTk5OTJlNTU3NWFkLi45MTQw
Mzc2Zjg3ZDk2YzJiNzdhYzNkMWJkNzI3MGNhNjhiZWQzOWVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5k
ZXhlZEdldHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCkBAIC01NCw4ICs1NCw4
IEBAIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhl
ZEdldHRlclByb3RvdHlwZUZ1bmN0aW9uSW5kCiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0
ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkU2V0
dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3Rvcik7
CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXJDb25zdHJ1Y3Rvcik7CiAKIGNsYXNzIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXJQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsK
IHB1YmxpYzoKQEAgLTMwNiw3ICszMDYsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3ROYW1l
ZFNldHRlcldpdGhJbmRleGVkR2V0dGVyKiBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRTZQogICAg
IHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIq
PihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlcldp
dGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1
Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTMxNiw3ICszMTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0dsbwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdl
dHRlcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJv
dG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RO
YW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5k
ZXhlZEdldHRlckFuZFNldHRlci5jcHAKaW5kZXggZjIwZjVmN2VhZDE4NmQxMzU1NGFlNjA5MzMw
YTY1YjJlNjk0MGMyNC4uMzE3MDc5MzllMTI3ZjU3ODYzODFhZjU3NDNkYjdkYTU2ZjY0NDQxNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRl
eGVkR2V0dGVyQW5kU2V0dGVyLmNwcApAQCAtNTQsOCArNTQsOCBAQCBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90
b3R5cGVGdQogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRl
eGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3Ry
dWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3ROYW1lZFNldHRlcldp
dGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IpOwogCiBjbGFzcyBKU1Rlc3ROYW1l
ZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyUHJvdG90eXBlIGZpbmFsIDogcHVibGlj
IEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0zMjksNyArMzI5LDcgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRl
ciogSURMT3BlcmF0aW9uPEpTVGUKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1l
ZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRl
ckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3Is
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0zMzksNyArMzM5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWMKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJB
bmRTZXR0ZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCks
IHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwCmluZGV4IDIwZmIy
NDRkZmUyMmEwMTM4ZTI0MzIzNTQ2NDMxOTlmMmNmNWE0NWQuLjZlOWRjYTYzY2U3YzkzYWNlYWM0
NDk1MjYzNDJmZjI3MmQzZjI4NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0
SW5zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAKQEAgLTQ2LDggKzQ2
LDggQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJp
ZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3Zl
cnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKTsK
IAogY2xhc3MgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc1Byb3Rv
dHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAt
MjUxLDcgKzI1MSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVC
dWlsdEluczo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iCiAgICAgcmV0dXJuIEpTT2Jq
ZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGxleGljYWxHbG9iYWxPYmplY3QsIHByb3Bl
cnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJp
ZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0yNjEsNyArMjYxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3Ry
dWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2Fj
eU92ZXJyaWRlQnVpbHRJbnM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElu
c0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAg
ICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2Fj
eVVuZm9yZ2VhYmxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0
aWVzLmNwcAppbmRleCBlMzM3NjMzY2Q3MjZmMjFjNWQ0Nzg4YTcyMzE3MGM3MGY4NGViOGJjLi5i
ZmFjMDI5NTBmNzJjM2QxZmFkYWRiNjQyMjRjNWEzYmMzOTNmNDY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzLmNwcApAQCAtNTIsOSArNTIsOSBAQCBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0luc3Rh
bgogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2Fj
eVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJs
ZVByb3BlcnRpZXNVbmZvcmdlYWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXND
b25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE5hbWVkU2V0
dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQ
cm9wZXJ0aWVzVW5mb3JnZWFibGVBdHRyaWJ1dGUpOwogCiBjbGFzcyBKU1Rlc3ROYW1lZFNldHRl
cldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMg
SlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTMxMSw3ICszMTEsNyBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3Bl
cnRpZXMqIElETE9wZXJhdGlvbgogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVk
U2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllcyo+KEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxl
UHJvcGVydGllc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRp
ZXNDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMyMSw3ICszMjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVy
dGllc0NvbgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJs
ZVByb3BlcnRpZXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5
VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0zNDIsNyArMzQyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVy
V2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc1VuZm9yZ2VhYmwKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVuZm9yZ2VhYmxlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5m
b3JnZWFibGVQcm9wZXJ0aWVzVW5mb3JnZWFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVu
Zm9yZ2VhYmxlUHJvcGVydGllc1VuZm9yZ2VhYmxlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE5hbWVkU2V0dGVyV2l0aExl
Z2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllcz46OmdldDxqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lVbmZvcmdlYWJsZVByb3BlcnRpZXNVbmZvcmdlYWJsZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgInVuZm9yZ2VhYmxlQXR0cmlidXRlIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5m
b3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAKaW5k
ZXggNWU3YzFkOWRlMTU5MzhlODNmM2NjNGIwOGYwYzEyZWNlMTQyNmY1MS4uZTQ1NzhhMjliNmE2
ZjM2ZTM0ZGU2OTk4ZWY0NzQ3NzMzMzRiNDAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9y
Z2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhM
ZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcApA
QCAtNTIsOSArNTIsOSBAQCBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVkU2V0
dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZwogCiAvLyBBdHRyaWJ1dGVz
CiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlcldp
dGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZFNldHRlcldp
dGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnNVbmZvcmdlYWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNB
bmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRp
ZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRp
ZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zVW5mb3JnZWFibGVBdHRyaWJ1dGUpOwogCiBjbGFz
cyBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdh
Y3lPdmVycmlkZUJ1aWx0SW5zUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5h
bE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yOTIsNyArMjkyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5
T3ZlcnIKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zKj4oSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5
VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3ROYW1l
ZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1
aWx0SW5zQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9
IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMDIsNyArMzAyLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVBy
b3BlcnRpZXNBbmQKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkU2V0dGVy
V2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnM6
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlw
ZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5h
bWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitK
U0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5m
b3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzIzLDcgKzMyMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRM
ZWdhY3lPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0
cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bmZvcmdlYWJsZUF0
dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5h
bWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnNVbmZvcmdlYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQ
cm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc1VuZm9yZ2VhYmxlQXR0cmlidXRlLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE5h
bWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnM+OjpnZXQ8anNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9w
ZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc1VuZm9yZ2VhYmxlQXR0cmlidXRlR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAidW5mb3JnZWFibGVBdHRyaWJ1dGUiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAppbmRleCA5
ODhiYjVjNGFmZjA3ZDZlYjM4NjVkNWJlZjYzN2M1YmMzNTc4OWRmLi45NGUxMzEwMGNhY2RhMzhm
ZTQ1NjZjNjBjNDU1MWJjMWU1ZWE5NDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCkBAIC02OSwxMCArNjksMTAg
QEAgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25G
b3JFYWNoKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0Tm9kZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0Tm9kZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3ROb2RlTmFtZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dE5vZGVOYW1lKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Tm9kZUNv
bnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Tm9kZUNvbnN0
cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Tm9kZU5hbWUpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3ROb2RlTmFtZSk7CiAKIGNsYXNzIEpTVGVz
dE5vZGVQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1
YmxpYzoKQEAgLTI2NSw3ICsyNjUsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3ROb2RlKiBJ
RExPcGVyYXRpb248SlNUZXN0Tm9kZT46OmNhc3QoSlNHbG9iYWxPYmplY3QmIGxleAogICAgIHJl
dHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdE5vZGUqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3ROb2RlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE5vZGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI3
NSw3ICsyNzUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5vZGVDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbAogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoSlNUZXN0Tm9kZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0Tm9kZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3ROb2RlQ29uc3Ry
dWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2
bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yOTYsNyArMjk2LDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdE5vZGVOYW1lR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJ
RExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubmFtZSgp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5vZGVOYW1lKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3ROb2RlTmFt
ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3ROb2RlPjo6Z2V0PGpzVGVzdE5vZGVOYW1lR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibmFtZSIpOwogfQpA
QCAtMzE0LDcgKzMxNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3ROb2RlTmFtZVNl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5vZGVOYW1lKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3ROb2RlTmFtZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3ROb2RlPjo6c2V0PHNldEpTVGVzdE5vZGVOYW1lU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJuYW1l
Iik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwCmluZGV4IGNiODU1ZTc4ZmZlNGY4NTExNDI3MjQ5N2VkZjM4OTU4YjRl
MzU0ZTAuLjc5MWZkMGQyMjE5ZTc5YzZhZjFlMzA2YzgwYjU1Y2M4YjBmM2VkODcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
Y3BwCkBAIC0xNTk2LDIwMSArMTU5NiwyMDEgQEAgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKTsKIAogLy8gQXR0cmlidXRlcwogCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVhZE9ubHlMb25nQXR0
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlYWRP
bmx5U3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE9ialJlYWRPbmx5VGVzdE9iakF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1JlYWRPbmx5TG9uZ0F0dHIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25zdHJ1Y3Rv
clN0YXRpY1N0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpD
b25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbnN0cnVjdG9yVGVzdFN1Yk9iaihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbnN0cnVjdG9yVGVzdFN0YXRp
Y1JlYWRvbmx5T2JqKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqRW51bUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpFbnVt
QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2Jq
Qnl0ZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpCeXRlQXR0cihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqT2N0ZXRB
dHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqT2N0ZXRBdHRyKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpTaG9ydEF0dHIo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpTaG9ydEF0dHIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNsYW1wZWRTaG9ydEF0
dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDbGFtcGVkU2hvcnRBdHRy
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpFbmZv
cmNlUmFuZ2VTaG9ydEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpF
bmZvcmNlUmFuZ2VTaG9ydEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakxvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0T2JqTG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdE9iakxvbmdMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdE9iakxvbmdMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0cihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqU3RyaW5nQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialN0cmluZ0F0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialVzdnN0cmluZ0F0dHIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdBdHRyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpUZXN0T2JqQXR0cihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialRlc3RPYmpBdHRyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpUZXN0TnVsbGFibGVP
YmpBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqVGVzdE51bGxhYmxl
T2JqQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
T2JqTGVuaWVudFRlc3RPYmpBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
T2JqTGVuaWVudFRlc3RPYmpBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RPYmpVbmZvcmdlYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0
cmluZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialN0cmluZ0F0dHJUcmVh
dGluZ051bGxBc0VtcHR5U3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialVzdnN0cmluZ0F0dHJUcmVhdGlu
Z051bGxBc0VtcHR5U3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RPYmpCeXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpCeXRlU3RyaW5nQXR0clRyZWF0aW5n
TnVsbEFzRW1wdHlTdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE9ialN0cmluZ0xvbmdSZWNvcmRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0T2JqU3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0
dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialVz
dnN0cmluZ0xvbmdSZWNvcmRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdE9ialN0cmluZ09ialJlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RPYmpTdHJpbmdPYmpSZWNvcmRBdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpTdHJpbmdOdWxsYWJsZU9ialJl
Y29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpTdHJpbmdOdWxs
YWJsZU9ialJlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE9ialN0cmluZ1ZvaWRDYWxsYmFja1JlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RPYmpTdHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRBdHRyKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpEaWN0aW9uYXJ5
QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakRpY3Rpb25hcnlBdHRy
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpOdWxs
YWJsZURpY3Rpb25hcnlBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2Jq
TnVsbGFibGVEaWN0aW9uYXJ5QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0T2JqQW5ub3RhdGVkVHlwZUluVW5pb25BdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQW5ub3RhdGVkVHlwZUluVW5pb25BdHRyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpBbm5vdGF0ZWRUeXBl
SW5TZXF1ZW5jZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpBbm5v
dGF0ZWRUeXBlSW5TZXF1ZW5jZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE9iakltcGxlbWVudGF0aW9uRW51bUF0dHIoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RPYmpJbXBsZW1lbnRhdGlvbkVudW1BdHRyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpNZWRpYURldmljZXMoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpYTUxPYmpBdHRy
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqWE1MT2JqQXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ3JlYXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ3JlYXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVmbGVj
dGVkVVNWU3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialJl
ZmxlY3RlZFVTVlN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0cihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRl
Z3JhbEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRV
bnNpZ25lZEludGVncmFsQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlZmxlY3RlZFVTVlVS
TEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVU1ZV
UkxBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RP
YmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWZsZWN0
ZWRDdXN0b21Cb29sZWFuQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9i
alJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNvbnN0cnVjdG9yKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQ29uc3RydWN0b3IpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpSZWFkT25seUxvbmdBdHRyKTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIoanNUZXN0T2JqUmVhZE9ubHlTdHJpbmdBdHRyKTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIoanNUZXN0T2JqUmVhZE9ubHlUZXN0T2JqQXR0cik7CitKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljUmVhZE9ubHlMb25nQXR0
cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGlj
U3RyaW5nQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iakNvbnN0
cnVjdG9yU3RhdGljU3RyaW5nQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVz
dE9iakNvbnN0cnVjdG9yVGVzdFN1Yk9iaik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpz
VGVzdE9iakNvbnN0cnVjdG9yVGVzdFN0YXRpY1JlYWRvbmx5T2JqKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0T2JqRW51bUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RPYmpFbnVtQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVz
dE9iakJ5dGVBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQnl0
ZUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpPY3RldEF0dHIpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpPY3RldEF0dHIpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpTaG9ydEF0dHIpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpTaG9ydEF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RPYmpDbGFtcGVkU2hvcnRBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0T2JqQ2xhbXBlZFNob3J0QXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdE9iakVuZm9yY2VSYW5nZVNob3J0QXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdE9iakVuZm9yY2VSYW5nZVNob3J0QXR0cik7CitKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpMb25nQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdE9iakxvbmdBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0T2JqTG9uZ0xvbmdBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
T2JqTG9uZ0xvbmdBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqVW5z
aWduZWRMb25nTG9uZ0F0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RP
YmpVbnNpZ25lZExvbmdMb25nQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVz
dE9ialN0cmluZ0F0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpT
dHJpbmdBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqVXN2c3RyaW5n
QXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialVzdnN0cmluZ0F0
dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpUZXN0T2JqQXR0cik7CitK
U0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialRlc3RPYmpBdHRyKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqVGVzdE51bGxhYmxlT2JqQXR0cik7CitKU0Nf
REVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialRlc3ROdWxsYWJsZU9iakF0dHIpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpMZW5pZW50VGVzdE9iakF0dHIpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpMZW5pZW50VGVzdE9iakF0dHIp
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpVbmZvcmdlYWJsZUF0dHIpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpTdHJpbmdBdHRyVHJlYXRpbmdOdWxs
QXNFbXB0eVN0cmluZyk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialN0
cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0T2JqVXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRp
bmdOdWxsQXNFbXB0eVN0cmluZyk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9i
akJ5dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyk7CitKU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdE9iakJ5dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0
eVN0cmluZyk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialN0cmluZ0xvbmdS
ZWNvcmRBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqU3RyaW5n
TG9uZ1JlY29yZEF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpVc3Zz
dHJpbmdMb25nUmVjb3JkQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0cik7CitKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdE9ialN0cmluZ09ialJlY29yZEF0dHIpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpTdHJpbmdPYmpSZWNvcmRBdHRyKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqU3RyaW5nTnVsbGFibGVPYmpSZWNvcmRBdHRyKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqU3RyaW5nTnVsbGFibGVPYmpS
ZWNvcmRBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqU3RyaW5nVm9p
ZENhbGxiYWNrUmVjb3JkQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dE9ialN0cmluZ1ZvaWRDYWxsYmFja1JlY29yZEF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RPYmpEaWN0aW9uYXJ5QXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdE9iakRpY3Rpb25hcnlBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0T2JqTnVsbGFibGVEaWN0aW9uYXJ5QXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdE9iak51bGxhYmxlRGljdGlvbmFyeUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5VbmlvbkF0dHIpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5VbmlvbkF0dHIpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5TZXF1ZW5j
ZUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpBbm5vdGF0ZWRU
eXBlSW5TZXF1ZW5jZUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpJ
bXBsZW1lbnRhdGlvbkVudW1BdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0T2JqSW1wbGVtZW50YXRpb25FbnVtQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdE9iak1lZGlhRGV2aWNlcyk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVz
dE9ialhNTE9iakF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpY
TUxPYmpBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQ3JlYXRlKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQ3JlYXRlKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cik7CitKU0NfREVD
TEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpSZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVNWU3RyaW5n
QXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialJlZmxlY3RlZEludGVn
cmFsQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialJlZmxlY3Rl
ZEludGVncmFsQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialJlZmxl
Y3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cik7CitKU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cik7CitKU0NfREVDTEFS
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpSZWZsZWN0ZWRVU1ZVUkxBdHRyKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVNWVVJMQXR0cik7CitKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdy
YWxBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqUmVmbGVjdGVk
Q3VzdG9tSW50ZWdyYWxBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2Jq
UmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cik7CitKU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHIpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKTsKICNpZiBF
TkFCTEUoVEVTVF9GRUFUVVJFKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE9iakVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RPYmpFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSk7CitK
U0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iakVuYWJsZWRBdFJ1bnRpbWVBdHRy
aWJ1dGUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25zdHJ1Y3RvckVuYWJsZWRBdFJ1bnRpbWVB
dHRyaWJ1dGVTdGF0aWMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25z
dHJ1Y3RvckVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpDb25zdHJ1Y3RvckVuYWJsZWRBdFJ1bnRpbWVBdHRy
aWJ1dGVTdGF0aWMpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDb25z
dHJ1Y3RvckVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMpOwogI2VuZGlmCi1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVHlwZWRBcnJheUF0dHIoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpUeXBlZEFycmF5QXR0cihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ3VzdG9tQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakN1c3RvbUF0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak9uZm9vKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqT25mb28oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak9ud2Via2l0Zm9vKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0T2JqT253ZWJraXRmb28oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialdpdGhFeGVjU3RhdGVBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpXaXRoRXhlY1N0YXRlQXR0cmlidXRlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpXaXRoQ2Fs
bFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdE9ialdpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpXaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlQXR0cmlidXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpXaXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpUeXBlZEFycmF5QXR0cik7CitKU0NfREVDTEFSRV9DVVNU
T01fU0VUVEVSKHNldEpTVGVzdE9ialR5cGVkQXJyYXlBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNUZXN0T2JqQ3VzdG9tQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdE9iakN1c3RvbUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RPYmpPbmZvbyk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iak9uZm9v
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqT253ZWJraXRmb28pOworSlND
X0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpPbndlYmtpdGZvbyk7CitKU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialdpdGhFeGVjU3RhdGVBdHRyaWJ1dGUpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpXaXRoRXhlY1N0YXRlQXR0cmlidXRl
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqV2l0aENhbGxXaXRoQW5kU2V0
dGVyQ2FsbFdpdGhBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZSk7CitKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmli
dXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZSk7CitK
U0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25D
b250ZXh0QW5kRXhlY1N0YXRlQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2Vz
QXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqV2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlKTsKICNp
ZiBFTkFCTEUoQ29uZGl0aW9uMSkKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0T2JqQ29uZGl0aW9uYWxBdHRyMShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRp
b24xKSAmJiBFTkFCTEUoQ29uZGl0aW9uMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01f
R0VUVEVSKGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyKTsKICNlbmRpZgogI2lmIEVOQUJMRShD
b25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMyhKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzKTsKICNlbmRpZgogI2lmIEVO
QUJMRShDb25kaXRpb24xKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3Rvcik7
CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRD
b25zdHJ1Y3Rvcik7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgJiYgRU5BQkxFKENv
bmRpdGlvbjIpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29u
ZGl0aW9uYWxBdHRyNUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0T2JqQ29uZGl0aW9uYWxBdHRyNUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNUNvbnN0cnVjdG9yKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNUNvbnN0cnVj
dG9yKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9u
MikKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25kaXRpb25h
bEF0dHI2Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpD
b25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IpOwog
I2VuZGlmCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ2FjaGVk
QXR0cmlidXRlMShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE9iakNhY2hlZEF0dHJpYnV0ZTIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0T2JqQ2FjaGVkQXR0cmlidXRlMSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVz
dE9iakNhY2hlZEF0dHJpYnV0ZTIpOwogI2lmIEVOQUJMRShDT05ESVRJT04pCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMyhKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUzKTsKICNl
bmRpZgotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakFueUF0dHJp
YnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakFueUF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqT2JqZWN0
QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqT2JqZWN0QXR0
cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RP
YmpDb250ZW50RG9jdW1lbnQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RPYmpNdXRhYmxlUG9pbnQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RPYmpNdXRhYmxlUG9pbnQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE9ialN0cmF3YmVycnkoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RPYmpTdHJhd2JlcnJ5KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RPYmpEZXNjcmlwdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE9iaklkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2Jq
SWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakhh
c2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZXBs
YWNlYWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialJl
cGxhY2VhYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RPYmpOdWxsYWJsZURvdWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak51bGxhYmxlTG9uZ0F0dHJpYnV0ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak51bGxhYmxlQm9v
bGVhbkF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE9iak51bGxhYmxlU3RyaW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0
dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
T2JqTnVsbGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdE9iak51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak51bGxhYmxlVVNWU3Ry
aW5nU2V0dGFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RP
YmpOdWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpOdWxsYWJsZUJ5dGVTdHJpbmdTZXR0YWJs
ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iak51bGxhYmxl
Qnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RPYmpBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZl
ZEVudW1UeXBlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPYmpUZXN0UmVhZE9ubHlWb2lkUHJvbWlzZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialRlc3RSZWFkT25seVByb21pc2VBdHRyaWJ1
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpQdXRG
b3J3YXJkc0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialB1
dEZvcndhcmRzQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RPYmpQdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqU3RyaW5naWZp
ZXJBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpTdHJpbmdp
ZmllckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpD
b25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0Fu
ZFdvcmtlckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVz
dE9iakFueUF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9i
akFueUF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iak9iamVj
dEF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iak9iamVj
dEF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNvbnRlbnRE
b2N1bWVudCk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iak11dGFibGVQb2lu
dCk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iak11dGFibGVQb2ludCk7
CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialN0cmF3YmVycnkpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpTdHJhd2JlcnJ5KTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIoanNUZXN0T2JqRGVzY3JpcHRpb24pOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RPYmpJZCk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dE9iaklkKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqSGFzaCk7CitKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialJlcGxhY2VhYmxlQXR0cmlidXRlKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGUp
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpOdWxsYWJsZURvdWJsZUF0dHJp
YnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iak51bGxhYmxlTG9uZ0F0
dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iak51bGxhYmxlQm9v
bGVhbkF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iak51bGxh
YmxlU3RyaW5nQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2Jq
TnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZSk7CitKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iak51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUp
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpOdWxsYWJsZVN0cmluZ1Nl
dHRhYmxlQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqTnVs
bGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdE9iak51bGxhYmxlVVNWU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpOdWxsYWJsZUJ5dGVTdHJpbmdTZXR0YWJs
ZUF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iak51bGxh
YmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0T2JqQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0
T2JqQXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZSk7CitKU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialRlc3RSZWFkT25seVZvaWRQcm9taXNlQXR0cmli
dXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqVGVzdFJlYWRPbmx5UHJv
bWlzZUF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialB1dEZv
cndhcmRzQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2Jq
UHV0Rm9yd2FyZHNBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RP
YmpQdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZSk7CitKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialN0cmluZ2lmaWVyQXR0cmlidXRlKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqU3RyaW5naWZpZXJBdHRyaWJ1dGUpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2lu
ZG93QXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQ29u
ZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01f
R0VUVEVSKGpzVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJBdHRyaWJ1dGUpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3Nl
ZFRvV29ya2VyQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2Jq
Q29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZSk7CitKU0NfREVD
TEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5k
b3dBbmRXb3JrZXJBdHRyaWJ1dGUpOwogCiBjbGFzcyBKU1Rlc3RPYmpQcm90b3R5cGUgZmluYWwg
OiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTI1ODMsNyArMjU4
Myw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE9iaiogSURMT3BlcmF0aW9uPEpTVGVzdE9i
aj46OmNhc3QoSlNHbG9iYWxPYmplY3QmIGxleGljCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8
SlNUZXN0T2JqKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50
aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2Jq
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdE9iakNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjU5Myw3ICsyNTkzLDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE9iajo6
Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBl
LT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2Jq
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklO
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iakNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMjYxNCw3ICsyNjE0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9i
alJlYWRPbmx5TG9uZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG8KICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5yZWFkT25seUxvbmdBdHRyKCkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVhZE9ubHlMb25nQXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqUmVhZE9u
bHlMb25nQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqUmVhZE9ubHlMb25nQXR0ckdldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgInJlYWRPbmx5TG9uZ0F0dHIiKTsKIH0KQEAgLTI2MjcsNyArMjYyNyw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seVN0cmluZ0F0dHJHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0
b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5y
ZWFkT25seVN0cmluZ0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RPYmpSZWFkT25seVN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialJlYWRPbmx5U3RyaW5nQXR0ciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8
anNUZXN0T2JqUmVhZE9ubHlTdHJpbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVhZE9ubHlTdHJp
bmdBdHRyIik7CiB9CkBAIC0yNjQwLDcgKzI2NDAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0T2JqUmVhZE9ubHlUZXN0T2JqQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8
VGVzdE9iaj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgp
LCB0aHJvd1Njb3BlLCBpbXBsLnJlYWRPbmx5VGVzdE9iakF0dHIoKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWFkT25seVRlc3RPYmpBdHRyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpSZWFkT25s
eVRlc3RPYmpBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpSZWFkT25seVRlc3RPYmpBdHRyR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAicmVhZE9ubHlUZXN0T2JqQXR0ciIpOwogfQpAQCAtMjY1Miw3ICsyNjUyLDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljUmVhZE9u
bHlMb25nQXR0ckdldHRlcihKU0dsb2JhbE8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgVGVz
dE9iajo6c3RhdGljUmVhZE9ubHlMb25nQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljUmVhZE9ubHlMb25nQXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQ29u
c3RydWN0b3JTdGF0aWNSZWFkT25seUxvbmdBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldFN0YXRpYzxqc1Rlc3RPYmpD
b25zdHJ1Y3RvclN0YXRpY1JlYWRPbmx5TG9uZ0F0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJzdGF0aWNSZWFkT25seUxvbmdBdHRyIik7CiB9CkBAIC0yNjY0LDcg
KzI2NjQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JTdGF0
aWNTdHJpbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JgogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIFRlc3RPYmo6OnN0YXRpY1N0cmluZ0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHIo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNv
bnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXRTdGF0aWM8anNUZXN0T2JqQ29uc3Ry
dWN0b3JTdGF0aWNTdHJpbmdBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAic3RhdGljU3RyaW5nQXR0ciIpOwogfQpAQCAtMjY4MSw3ICsyNjgxLDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0clNldHRl
cihKU0dsb2JhbE9iamVjdCYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldFN0
YXRpYzxzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN0YXRpY1N0cmluZ0F0
dHIiKTsKIH0KQEAgLTI2OTIsNyArMjY5Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RPYmpDb25zdHJ1Y3RvclRlc3RTdWJPYmpHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljCiAg
ICAgcmV0dXJuIEpTVGVzdFN1Yk9iajo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbnN0cnVjdG9yVGVzdFN1Yk9iaihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQ29uc3Ry
dWN0b3JUZXN0U3ViT2JqLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OmdldFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3RvclRlc3RT
dWJPYmpHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0U3ViT2Jq
Iik7CiB9CkBAIC0yNzA5LDcgKzI3MDksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
T2JqQ29uc3RydWN0b3JUZXN0U3RhdGljUmVhZG9ubHlPYmpHZXR0ZXIoSlNHbG9iYWxPYgogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8VGVzdE9i
aj4+KGxleGljYWxHbG9iYWxPYmplY3QsICpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPigmbGV4
aWNhbEdsb2JhbE9iamVjdCksIHRocm93U2NvcGUsIFRlc3RPYmo6OnRlc3RTdGF0aWNSZWFkb25s
eU9iaihkb2N1bWVudCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqQ29uc3RydWN0b3JUZXN0U3RhdGljUmVhZG9ubHlPYmooSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNvbnN0cnVjdG9yVGVzdFN0YXRp
Y1JlYWRvbmx5T2JqLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OmdldFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3RvclRlc3RTdGF0
aWNSZWFkb25seU9iakdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRl
c3RTdGF0aWNSZWFkb25seU9iaiIpOwogfQpAQCAtMjcyMiw3ICsyNzIyLDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdE9iakVudW1BdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8
SURMRW51bWVyYXRpb248VGVzdE9iajo6RW51bVR5cGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBpbXBsLmVudW1BdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0T2JqRW51bUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakVudW1BdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpFbnVt
QXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgImVudW1BdHRyIik7CiB9CkBAIC0yNzQzLDcgKzI3NDMsNyBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqRW51bUF0dHJTZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmplYwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqRW51bUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iakVudW1BdHRy
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpFbnVtQXR0clNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZW51bUF0dHIiKTsK
IH0KQEAgLTI3NTYsNyArMjc1Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpC
eXRlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEJ5dGU+KGxleGljYWxHbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIGltcGwuYnl0ZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpCeXRlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQnl0ZUF0dHIsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVz
dE9iakJ5dGVBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYnl0ZUF0dHIiKTsKIH0KQEAgLTI3NzQsNyAr
Mjc3NCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpCeXRlQXR0clNldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpCeXRlQXR0cihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2Jq
Qnl0ZUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakJ5dGVBdHRyU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJieXRl
QXR0ciIpOwogfQpAQCAtMjc4Nyw3ICsyNzg3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdE9iak9jdGV0QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamUK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMT2N0ZXQ+KGxleGlj
YWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwub2N0ZXRBdHRyKCkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqT2N0ZXRBdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpPY3RldEF0dHIsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2Jq
Pjo6Z2V0PGpzVGVzdE9iak9jdGV0QXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm9jdGV0QXR0ciIpOwog
fQpAQCAtMjgwNSw3ICsyODA1LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iak9j
dGV0QXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamUKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iak9jdGV0QXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0T2JqT2N0ZXRBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rl
c3RPYmpPY3RldEF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgIm9jdGV0QXR0ciIpOwogfQpAQCAtMjgxOCw3ICsyODE4LDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialNob3J0QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMU2hvcnQ+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuc2hvcnRB
dHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqU2hv
cnRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RPYmpTaG9ydEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialNob3J0QXR0ckdldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgInNob3J0QXR0ciIpOwogfQpAQCAtMjgzNiw3ICsyODM2LDcgQEAgc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdE9ialNob3J0QXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE9ialNob3J0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqU2hvcnRBdHRyLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dE9iaj46OnNldDxzZXRKU1Rlc3RPYmpTaG9ydEF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInNob3J0QXR0ciIpOwogfQpAQCAtMjg0OSw3
ICsyODQ5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNsYW1wZWRTaG9ydEF0
dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG8KICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMQ2xhbXBBZGFwdG9yPElETFNob3J0Pj4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5jbGFtcGVkU2hvcnRBdHRyKCkpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ2xhbXBlZFNob3J0QXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQ2xh
bXBlZFNob3J0QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQ2xhbXBlZFNob3J0QXR0ckdldHRlciwg
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgImNsYW1wZWRTaG9ydEF0dHIiKTsKIH0KQEAgLTI4NjcsNyArMjg2Nyw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpDbGFtcGVkU2hvcnRBdHRyU2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RPYmpDbGFtcGVkU2hvcnRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDbGFt
cGVkU2hvcnRBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpDbGFtcGVk
U2hvcnRBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJjbGFtcGVkU2hvcnRBdHRyIik7CiB9CkBAIC0yODgwLDcgKzI4ODAsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqRW5mb3JjZVJhbmdlU2hvcnRBdHRyR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExFbmZvcmNlUmFuZ2VBZGFwdG9yPElETFNob3J0Pj4obGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhyb3dTY29wZSwgaW1wbC5lbmZvcmNlUmFuZ2VTaG9ydEF0dHIoKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpFbmZvcmNlUmFuZ2VTaG9ydEF0dHIo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakVu
Zm9yY2VSYW5nZVNob3J0QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqRW5mb3JjZVJhbmdlU2hvcnRB
dHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiZW5mb3JjZVJhbmdlU2hvcnRBdHRyIik7CiB9CkBAIC0yODk4
LDcgKzI4OTgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqRW5mb3JjZVJhbmdl
U2hvcnRBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpYwogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqRW5mb3JjZVJhbmdlU2hvcnRBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RPYmpFbmZvcmNlUmFuZ2VTaG9ydEF0dHIsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2Jq
Pjo6c2V0PHNldEpTVGVzdE9iakVuZm9yY2VSYW5nZVNob3J0QXR0clNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZW5mb3JjZVJhbmdlU2hvcnRB
dHRyIik7CiB9CkBAIC0yOTExLDcgKzI5MTEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0T2JqVW5zaWduZWRTaG9ydEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbAog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExVbnNpZ25lZFNob3J0
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVuc2lnbmVkU2hvcnRBdHRy
KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVW5zaWdu
ZWRTaG9ydEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpVbnNpZ25lZFNo
b3J0QXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVuc2lnbmVkU2hvcnRBdHRyIik7CiB9CkBAIC0yOTI5
LDcgKzI5MjksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqVW5zaWduZWRTaG9y
dEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbAogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxz
ZXRKU1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidW5zaWduZWRTaG9ydEF0dHIiKTsKIH0KQEAgLTI5
NDIsNyArMjk0Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpMb25nQXR0ckdl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIGltcGwubG9uZ0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RPYmpMb25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0T2JqTG9uZ0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakxvbmdB
dHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAibG9uZ0F0dHIiKTsKIH0KQEAgLTI5NjAsNyArMjk2MCw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpMb25nQXR0clNldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RPYmpMb25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqTG9uZ0F0dHIs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakxvbmdBdHRyU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJsb25nQXR0ciIpOwog
fQpAQCAtMjk3Myw3ICsyOTczLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakxv
bmdMb25nQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE8KICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZ0xvbmc+KGxleGljYWxHbG9i
YWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubG9uZ0xvbmdBdHRyKCkpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTG9uZ0xvbmdBdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpMb25nTG9uZ0F0dHIs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
T2JqPjo6Z2V0PGpzVGVzdE9iakxvbmdMb25nQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImxvbmdMb25n
QXR0ciIpOwogfQpAQCAtMjk5MSw3ICsyOTkxLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdE9iakxvbmdMb25nQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE8K
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakxv
bmdMb25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5F
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqTG9uZ0xvbmdBdHRyLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9i
aj46OnNldDxzZXRKU1Rlc3RPYmpMb25nTG9uZ0F0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImxvbmdMb25nQXR0ciIpOwogfQpAQCAtMzAw
NCw3ICszMDA0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialVuc2lnbmVkTG9u
Z0xvbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2EKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMVW5zaWduZWRMb25nTG9uZz4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bnNpZ25lZExvbmdMb25nQXR0cigpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdB
dHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RP
YmpVbnNpZ25lZExvbmdMb25nQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqVW5zaWduZWRMb25nTG9u
Z0F0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bnNpZ25lZExvbmdMb25nQXR0ciIpOwogfQpAQCAtMzAy
Miw3ICszMDIyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialVuc2lnbmVkTG9u
Z0xvbmdBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2EKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpzZXQ8c2V0SlNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHJTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInVuc2lnbmVkTG9uZ0xvbmdBdHRy
Iik7CiB9CkBAIC0zMDM1LDcgKzMwMzUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
T2JqU3RyaW5nQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iagogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGlj
YWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuc3RyaW5nQXR0cigpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialN0cmluZ0F0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialN0cmluZ0F0dHIs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
T2JqPjo6Z2V0PGpzVGVzdE9ialN0cmluZ0F0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdHJpbmdBdHRy
Iik7CiB9CkBAIC0zMDUzLDcgKzMwNTMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
T2JqU3RyaW5nQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iagogICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqU3RyaW5n
QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0T2JqU3RyaW5nQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8
c2V0SlNUZXN0T2JqU3RyaW5nQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAic3RyaW5nQXR0ciIpOwogfQpAQCAtMzA2Niw3ICszMDY2LDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialVzdnN0cmluZ0F0dHJHZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMVVNWU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBpbXBsLnVzdnN0cmluZ0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RPYmpVc3ZzdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpVc3ZzdHJpbmdBdHRyLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RP
YmpVc3ZzdHJpbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidXN2c3RyaW5nQXR0ciIpOwogfQpAQCAt
MzA4NCw3ICszMDg0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialVzdnN0cmlu
Z0F0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWwKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialVzdnN0cmluZ0F0dHIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdE9ialVzdnN0cmluZ0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpT
VGVzdE9ialVzdnN0cmluZ0F0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgInVzdnN0cmluZ0F0dHIiKTsKIH0KQEAgLTMwOTcsNyArMzA5Nyw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpUZXN0T2JqQXR0ckdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4obGV4aWNhbEdsb2JhbE9iamVjdCwg
KnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwudGVzdE9iakF0dHIo
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpUZXN0T2Jq
QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0
T2JqVGVzdE9iakF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialRlc3RPYmpBdHRyR2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAidGVzdE9iakF0dHIiKTsKIH0KQEAgLTMxMTUsNyArMzExNSw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RPYmpUZXN0T2JqQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RPYmpUZXN0T2JqQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqVGVzdE9iakF0dHIsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialRlc3RPYmpBdHRyU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ0ZXN0T2JqQXR0ciIpOwog
fQpAQCAtMzEyOCw3ICszMTI4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialRl
c3ROdWxsYWJsZU9iakF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWwKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMSW50ZXJmYWNl
PFRlc3RPYmo+Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0
KCksIHRocm93U2NvcGUsIGltcGwudGVzdE51bGxhYmxlT2JqQXR0cigpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialRlc3ROdWxsYWJsZU9iakF0dHIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialRlc3RO
dWxsYWJsZU9iakF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialRlc3ROdWxsYWJsZU9iakF0dHJHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJ0ZXN0TnVsbGFibGVPYmpBdHRyIik7CiB9CkBAIC0zMTQ2LDcgKzMxNDYs
NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqVGVzdE51bGxhYmxlT2JqQXR0clNl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqVGVzdE51bGxhYmxlT2JqQXR0cihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0T2JqVGVzdE51bGxhYmxlT2JqQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNU
ZXN0T2JqVGVzdE51bGxhYmxlT2JqQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidGVzdE51bGxhYmxlT2JqQXR0ciIpOwogfQpAQCAtMzE1
OSw3ICszMTU5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakxlbmllbnRUZXN0
T2JqQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEcKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+PihsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5s
ZW5pZW50VGVzdE9iakF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RPYmpMZW5pZW50VGVzdE9iakF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakxlbmllbnRUZXN0T2JqQXR0ciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8
anNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6UmV0dXJuRWFybHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJsZW5pZW50
VGVzdE9iakF0dHIiKTsKIH0KQEAgLTMxNzcsNyArMzE3Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBzZXRKU1Rlc3RPYmpMZW5pZW50VGVzdE9iakF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RPYmpMZW5pZW50VGVzdE9iakF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iakxlbmllbnRUZXN0T2JqQXR0
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRy
U2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6UmV0dXJuRWFybHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImxlbmllbnRUZXN0T2JqQXR0ciIp
OwogfQpAQCAtMzE5MCw3ICszMTkwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9i
alVuZm9yZ2VhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2IKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVuZm9yZ2VhYmxlQXR0cigpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialVuZm9yZ2VhYmxlQXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqVW5m
b3JnZWFibGVBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpVbmZvcmdlYWJsZUF0dHJHZXR0ZXIsIENh
c3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJ1bmZvcmdlYWJsZUF0dHIiKTsKIH0KQEAgLTMyMDMsNyArMzIwMyw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0
cmluZ0dldHRlcihKU0dsb2JhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0
b0pTPElETExlZ2FjeU51bGxUb0VtcHR5U3RyaW5nQWRhcHRvcjxJRExET01TdHJpbmc+PihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnN0cmluZ0F0dHJUcmVhdGluZ051bGxB
c0VtcHR5U3RyaW5nKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialN0cmluZ0F0dHJUcmVhdGlu
Z051bGxBc0VtcHR5U3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpTdHJpbmdBdHRyVHJlYXRpbmdO
dWxsQXNFbXB0eVN0cmluZ0dldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN0cmluZ0F0dHJUcmVhdGluZ051bGxB
c0VtcHR5U3RyaW5nIik7CiB9CkBAIC0zMjIxLDcgKzMyMjEsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0T2JqU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmdTZXR0ZXIo
SlNHbG9iYQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0T2JqU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9i
alN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46
OnNldDxzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ1NldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic3RyaW5n
QXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmciKTsKIH0KQEAgLTMyMzQsNyArMzIzNCw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxs
QXNFbXB0eVN0cmluZ0dldHRlcihKU0dsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsICh0b0pTPElETExlZ2FjeU51bGxUb0VtcHR5U3RyaW5nQWRhcHRvcjxJRExVU1ZTdHJpbmc+
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVzdnN0cmluZ0F0dHJUcmVh
dGluZ051bGxBc0VtcHR5U3RyaW5nKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0T2JqVXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialVzdnN0
cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpVc3Zz
dHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ0dldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVzdnN0
cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nIik7CiB9CkBAIC0zMjUyLDcgKzMyNTIs
NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqVXN2c3RyaW5nQXR0clRyZWF0aW5n
TnVsbEFzRW1wdHlTdHJpbmdTZXR0ZXIoSlNHbAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqVXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1w
dHlTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialVzdnN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5
U3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdBdHRy
VHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ1NldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlT
dHJpbmciKTsKIH0KQEAgLTMyNjUsNyArMzI2NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RPYmpCeXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmdHZXR0ZXIoSlNH
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExlZ2FjeU51bGxU
b0VtcHR5U3RyaW5nQWRhcHRvcjxJRExCeXRlU3RyaW5nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSwgaW1wbC5ieXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmco
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpCeXRlU3Ry
aW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakJ5dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxs
QXNFbXB0eVN0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051
bGxBc0VtcHR5U3RyaW5nR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051
bGxBc0VtcHR5U3RyaW5nIik7CiB9CkBAIC0zMjgzLDcgKzMyODMsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0T2JqQnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5n
U2V0dGVyKEpTRwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0T2JqQnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RPYmpCeXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakJ5dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNF
bXB0eVN0cmluZ1NldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAiYnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nIik7CiB9CkBA
IC0zMjk2LDcgKzMyOTYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqU3RyaW5n
TG9uZ1JlY29yZEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYQogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExSZWNvcmQ8SURMRE9NU3RyaW5nLCBJRExM
b25nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRo
cm93U2NvcGUsIGltcGwuc3RyaW5nTG9uZ1JlY29yZEF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpTdHJpbmdMb25nUmVjb3JkQXR0cihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqU3RyaW5nTG9u
Z1JlY29yZEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialN0cmluZ0xvbmdSZWNvcmRBdHRyR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAic3RyaW5nTG9uZ1JlY29yZEF0dHIiKTsKIH0KQEAgLTMzMTQsNyArMzMxNCw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpTdHJpbmdMb25nUmVjb3JkQXR0clNl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpTdHJpbmdMb25nUmVjb3JkQXR0cihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0T2JqU3RyaW5nTG9uZ1JlY29yZEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpT
VGVzdE9ialN0cmluZ0xvbmdSZWNvcmRBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdHJpbmdMb25nUmVjb3JkQXR0ciIpOwogfQpAQCAt
MzMyNyw3ICszMzI3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialVzdnN0cmlu
Z0xvbmdSZWNvcmRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXgKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMUmVjb3JkPElETFVTVlN0cmluZywgSURMTG9u
Zz4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJv
d1Njb3BlLCBpbXBsLnVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialVzdnN0
cmluZ0xvbmdSZWNvcmRBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3Jk
QXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgInVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyIik7CiB9CkBAIC0z
MzQ1LDcgKzMzNDUsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqVXN2c3RyaW5n
TG9uZ1JlY29yZEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleAogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29y
ZEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNU
T01fU0VUVEVSKHNldEpTVGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0clNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidXN2c3RyaW5n
TG9uZ1JlY29yZEF0dHIiKTsKIH0KQEAgLTMzNTgsNyArMzM1OCw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0ckdldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFJl
Y29yZDxJRExCeXRlU3RyaW5nLCBJRExMb25nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNP
YmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwudXN2c3RyaW5nTG9uZ1JlY29y
ZEF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpV
c3ZzdHJpbmdMb25nUmVjb3JkQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIoanNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpz
VGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhh
dmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidXN2c3RyaW5n
TG9uZ1JlY29yZEF0dHIiKTsKIH0KQEAgLTMzNzYsNyArMzM3Niw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0clNldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqVXN2c3RyaW5n
TG9uZ1JlY29yZEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialVzdnN0
cmluZ0xvbmdSZWNvcmRBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJ1c3ZzdHJpbmdMb25nUmVjb3JkQXR0ciIpOwogfQpAQCAtMzM4OSw3
ICszMzg5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ09ialJlY29y
ZEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWwKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMUmVjb3JkPElETERPTVN0cmluZywgSURMSW50ZXJmYWNl
PFRlc3RPYmo+Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0
KCksIHRocm93U2NvcGUsIGltcGwuc3RyaW5nT2JqUmVjb3JkQXR0cigpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialN0cmluZ09ialJlY29yZEF0dHIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialN0cmlu
Z09ialJlY29yZEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialN0cmluZ09ialJlY29yZEF0dHJHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJzdHJpbmdPYmpSZWNvcmRBdHRyIik7CiB9CkBAIC0zNDA3LDcgKzM0MDcs
NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqU3RyaW5nT2JqUmVjb3JkQXR0clNl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqU3RyaW5nT2JqUmVjb3JkQXR0cihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0T2JqU3RyaW5nT2JqUmVjb3JkQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNU
ZXN0T2JqU3RyaW5nT2JqUmVjb3JkQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic3RyaW5nT2JqUmVjb3JkQXR0ciIpOwogfQpAQCAtMzQy
MCw3ICszNDIwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ051bGxh
YmxlT2JqUmVjb3JkQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMUmVjb3JkPElETERPTVN0cmluZywgSURMTnVsbGFi
bGU8SURMSW50ZXJmYWNlPFRlc3RPYmo+Pj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2Jq
ZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnN0cmluZ051bGxhYmxlT2JqUmVj
b3JkQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9i
alN0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqU3RyaW5nTnVsbGFibGVPYmpSZWNvcmRBdHRyLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9i
aj46OmdldDxqc1Rlc3RPYmpTdHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHJHZXR0ZXIsIENhc3Rl
ZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJzdHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHIiKTsKIH0KQEAgLTM0MzgsNyArMzQzOCw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpTdHJpbmdOdWxsYWJsZU9ialJlY29y
ZEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpTdHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdE9ialN0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0ciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RP
Ymo+OjpzZXQ8c2V0SlNUZXN0T2JqU3RyaW5nTnVsbGFibGVPYmpSZWNvcmRBdHRyU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdHJpbmdOdWxs
YWJsZU9ialJlY29yZEF0dHIiKTsKIH0KQEAgLTM0NTEsNyArMzQ1MSw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRBdHRyR2V0dGVyKEpT
R2xvYmFsT2JqZWN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElE
TFJlY29yZDxJRExET01TdHJpbmcsIElETENhbGxiYWNrRnVuY3Rpb248SlNWb2lkQ2FsbGJhY2s+
Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93
U2NvcGUsIGltcGwuc3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0cigpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialN0cmluZ1ZvaWRDYWxsYmFja1JlY29y
ZEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVz
dE9ialN0cmluZ1ZvaWRDYWxsYmFja1JlY29yZEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialN0cmlu
Z1ZvaWRDYWxsYmFja1JlY29yZEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpB
c3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdHJpbmdWb2lkQ2FsbGJh
Y2tSZWNvcmRBdHRyIik7CiB9CkBAIC0zNDY5LDcgKzM0NjksNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0T2JqU3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0clNldHRlcihKU0dsb2Jh
bE9iamVjdAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0T2JqU3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqU3RyaW5n
Vm9pZENhbGxiYWNrUmVjb3JkQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0
T2JqU3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0
ciIpOwogfQpAQCAtMzQ4Miw3ICszNDgyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dE9iakRpY3Rpb25hcnlBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmEKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRGljdGlvbmFyeTxUZXN0
T2JqOjpEaWN0aW9uYXJ5Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFs
T2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuZGljdGlvbmFyeUF0dHIoKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpEaWN0aW9uYXJ5QXR0cihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqRGljdGlvbmFy
eUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakRpY3Rpb25hcnlBdHRyR2V0dGVyLCBDYXN0ZWRUaGlz
RXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
ZGljdGlvbmFyeUF0dHIiKTsKIH0KQEAgLTM1MDAsNyArMzUwMCw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RPYmpEaWN0aW9uYXJ5QXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RPYmpEaWN0aW9uYXJ5QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqRGljdGlvbmFyeUF0dHIsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakRpY3Rpb25hcnlBdHRyU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJkaWN0aW9uYXJ5
QXR0ciIpOwogfQpAQCAtMzUxMyw3ICszNTEzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdE9iak51bGxhYmxlRGljdGlvbmFyeUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURM
RGljdGlvbmFyeTxUZXN0T2JqOjpEaWN0aW9uYXJ5Pj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0
aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLm51bGxhYmxlRGljdGlv
bmFyeUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RP
YmpOdWxsYWJsZURpY3Rpb25hcnlBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpOdWxsYWJsZURpY3Rpb25hcnlBdHRyLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxq
c1Rlc3RPYmpOdWxsYWJsZURpY3Rpb25hcnlBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhh
dmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibnVsbGFibGVE
aWN0aW9uYXJ5QXR0ciIpOwogfQpAQCAtMzUzMSw3ICszNTMxLDcgQEAgc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdE9iak51bGxhYmxlRGljdGlvbmFyeUF0dHJTZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE9iak51bGxhYmxlRGljdGlvbmFyeUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iak51bGxhYmxlRGlj
dGlvbmFyeUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iak51bGxhYmxl
RGljdGlvbmFyeUF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgIm51bGxhYmxlRGljdGlvbmFyeUF0dHIiKTsKIH0KQEAgLTM1NDQsNyArMzU0
NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5Vbmlv
bkF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETFVuaW9uPElETERPTVN0cmluZywgSURMQ2xhbXBBZGFwdG9yPElE
TExvbmc+Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCks
IHRocm93U2NvcGUsIGltcGwuYW5ub3RhdGVkVHlwZUluVW5pb25BdHRyKCkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQW5ub3RhdGVkVHlwZUluVW5pb25B
dHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RP
YmpBbm5vdGF0ZWRUeXBlSW5VbmlvbkF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakFubm90YXRlZFR5
cGVJblVuaW9uQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImFubm90YXRlZFR5cGVJblVuaW9uQXR0ciIp
OwogfQpAQCAtMzU2Miw3ICszNTYyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9i
akFubm90YXRlZFR5cGVJblVuaW9uQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGUKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakFubm90YXRl
ZFR5cGVJblVuaW9uQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQW5ub3RhdGVkVHlwZUluVW5pb25BdHRy
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5Vbmlv
bkF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgImFubm90YXRlZFR5cGVJblVuaW9uQXR0ciIpOwogfQpAQCAtMzU3NSw3ICszNTc1LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakFubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0
ckdldHRlcihKU0dsb2JhbE9iamVjdCYKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMU2VxdWVuY2U8SURMQ2xhbXBBZGFwdG9yPElETExvbmc+Pj4obGV4aWNhbEds
b2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwu
YW5ub3RhdGVkVHlwZUluU2VxdWVuY2VBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0T2JqQW5ub3RhdGVkVHlwZUluU2VxdWVuY2VBdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpBbm5vdGF0ZWRU
eXBlSW5TZXF1ZW5jZUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakFubm90YXRlZFR5cGVJblNlcXVl
bmNlQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImFubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0ciIpOwog
fQpAQCAtMzU5Myw3ICszNTkzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakFu
bm90YXRlZFR5cGVJblNlcXVlbmNlQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakFubm90YXRlZFR5
cGVJblNlcXVlbmNlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQW5ub3RhdGVkVHlwZUluU2VxdWVuY2VB
dHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5T
ZXF1ZW5jZUF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgImFubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0ciIpOwogfQpAQCAtMzYwNiw3ICsz
NjA2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakltcGxlbWVudGF0aW9uRW51
bUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMRW51bWVyYXRpb248QWx0ZXJuYXRlRW51bU5hbWU+PihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmltcGxlbWVudGF0aW9uRW51bUF0dHIo
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpJbXBsZW1l
bnRhdGlvbkVudW1BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RPYmpJbXBsZW1lbnRhdGlvbkVudW1BdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpJ
bXBsZW1lbnRhdGlvbkVudW1BdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNz
ZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiaW1wbGVtZW50YXRpb25FbnVt
QXR0ciIpOwogfQpAQCAtMzYyNyw3ICszNjI3LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdE9iakltcGxlbWVudGF0aW9uRW51bUF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iaklt
cGxlbWVudGF0aW9uRW51bUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
SlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iakltcGxlbWVudGF0aW9uRW51bUF0
dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakltcGxlbWVudGF0aW9uRW51
bUF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgImltcGxlbWVudGF0aW9uRW51bUF0dHIiKTsKIH0KQEAgLTM2NDAsNyArMzY0MCw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpNZWRpYURldmljZXNHZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETEludGVyZmFjZTxNZWRpYURldmljZXM+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5tZWRpYURldmljZXMo
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpNZWRpYURl
dmljZXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVz
dE9iak1lZGlhRGV2aWNlcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqTWVkaWFEZXZpY2VzR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAibWVkaWFEZXZpY2VzIik7CiB9CkBAIC0zNjUzLDcgKzM2NTMsNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0T2JqWE1MT2JqQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iagogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9K
UzxJRExJbnRlcmZhY2U8VGVzdE9iaj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0
Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnhtbE9iakF0dHIoKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpYTUxPYmpBdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpYTUxPYmpBdHRy
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dE9iaj46OmdldDxqc1Rlc3RPYmpYTUxPYmpBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhh
dmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiWE1MT2JqQXR0
ciIpOwogfQpAQCAtMzY3MSw3ICszNjcxLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dE9ialhNTE9iakF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmoKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialhNTE9i
akF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNU
T01fU0VUVEVSKHNldEpTVGVzdE9ialhNTE9iakF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0
PHNldEpTVGVzdE9ialhNTE9iakF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgIlhNTE9iakF0dHIiKTsKIH0KQEAgLTM2ODQsNyArMzY4NCw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDcmVhdGVHZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsICh0b0pTPElETEJvb2xlYW4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGltcGwuaXNDcmVhdGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpDcmVhdGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKGpzVGVzdE9iakNyZWF0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQ3JlYXRlR2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiY3JlYXRlIik7CiB9CkBAIC0zNzAyLDcgKzM3MDIsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0T2JqQ3JlYXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0T2JqQ3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDcmVhdGUsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6
c2V0PHNldEpTVGVzdE9iakNyZWF0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAiY3JlYXRlIik7CiB9CkBAIC0zNzE1LDcgKzM3MTUsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0ckdldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGlt
cGwuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnJl
ZmxlY3RlZHN0cmluZ2F0dHJBdHRyKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46
OmdldDxqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JC
ZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVj
dGVkU3RyaW5nQXR0ciIpOwogfQpAQCAtMzczMyw3ICszNzMzLDcgQEAgc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmlu
Z0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmlu
Z0F0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgInJlZmxlY3RlZFN0cmluZ0F0dHIiKTsKIH0KQEAgLTM3NDYsNyArMzc0Niw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0
b0pTPElETFVTVlN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5h
dHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVj
dGVkdXN2c3RyaW5nYXR0ckF0dHIpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE9ialJlZmxlY3RlZFVTVlN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialJlZmxlY3RlZFVTVlN0cmluZ0F0dHIs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
T2JqPjo6Z2V0PGpzVGVzdE9ialJlZmxlY3RlZFVTVlN0cmluZ0F0dHJHZXR0ZXIsIENhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJyZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyIik7CiB9CkBAIC0zNzY0LDcgKzM3NjQsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVNWU3RyaW5nQXR0clNldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVNWU3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2Jq
UmVmbGVjdGVkVVNWU3RyaW5nQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0
T2JqUmVmbGVjdGVkVVNWU3RyaW5nQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdGVkVVNWU3RyaW5nQXR0ciIpOwogfQpAQCAt
Mzc3Nyw3ICszNzc3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3Rl
ZEludGVncmFsQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWMKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSwgaW1wbC5nZXRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6
OnJlZmxlY3RlZGludGVncmFsYXR0ckF0dHIpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0cihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxB
dHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdE9iaj46OmdldDxqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHJHZXR0ZXIsIENhc3Rl
ZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJyZWZsZWN0ZWRJbnRlZ3JhbEF0dHIiKTsKIH0KQEAgLTM3OTUsNyArMzc5NSw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHJTZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9i
alJlZmxlY3RlZEludGVncmFsQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0
T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJyZWZsZWN0ZWRJbnRlZ3JhbEF0dHIiKTsKIH0KQEAgLTM4
MDgsNyArMzgwOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRV
bnNpZ25lZEludGVncmFsQXR0ckdldHRlcihKU0dsb2JhbE9iamVjCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFVuc2lnbmVkTG9uZz4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgc3RkOjptYXgoMCwgaW1wbC5nZXRJbnRlZ3JhbEF0dHJpYnV0ZShX
ZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZHVuc2lnbmVkaW50ZWdyYWxhdHRyQXR0cikpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlZmxlY3RlZFVu
c2lnbmVkSW50ZWdyYWxBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0ciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8
anNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNF
cnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJy
ZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0ciIpOwogfQpAQCAtMzgyNiw3ICszODI2LDcgQEAg
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxB
dHRyU2V0dGVyKEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0ciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RP
Ymo+OjpzZXQ8c2V0SlNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHJTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJlZmxlY3Rl
ZFVuc2lnbmVkSW50ZWdyYWxBdHRyIik7CiB9CkBAIC0zODM5LDcgKzM4MzksNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHJHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9K
UzxJRExCb29sZWFuPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmhhc0F0
dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0
ZWRib29sZWFuYXR0ckF0dHIpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0ciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+Ojpn
ZXQ8anNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJl
aGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0
ZWRCb29sZWFuQXR0ciIpOwogfQpAQCAtMzg1Nyw3ICszODU3LDcgQEAgc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2EKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRCb29s
ZWFuQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqUmVmbGVjdGVkQm9v
bGVhbkF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgInJlZmxlY3RlZEJvb2xlYW5BdHRyIik7CiB9CkBAIC0zODcwLDcgKzM4NzAsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0ckdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsbwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGlt
cGwuZ2V0VVJMQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkdXJsYXR0ckF0
dHIpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlZmxl
Y3RlZFVSTEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialJlZmxlY3RlZFVS
TEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0ZWRVUkxBdHRyIik7CiB9CkBAIC0zODg4LDcg
KzM4ODgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0
clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsbwogICAgIHJldHVybiB0cnVlOwogfQog
Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNU
ZXN0T2JqUmVmbGVjdGVkVVJMQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdGVkVVJMQXR0ciIpOwogfQpAQCAtMzkwMSw3ICsz
OTAxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVTVlVSTEF0
dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMVVNWU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBpbXBsLmdldFVSTEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3Rl
ZHVzdnVybGF0dHJBdHRyKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpSZWZsZWN0ZWRVU1ZVUkxBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpSZWZsZWN0ZWRVU1ZVUkxBdHRyLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxq
c1Rlc3RPYmpSZWZsZWN0ZWRVU1ZVUkxBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVjdGVkVVNW
VVJMQXR0ciIpOwogfQpAQCAtMzkxOSw3ICszOTE5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdE9ialJlZmxlY3RlZFVTVlVSTEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9i
alJlZmxlY3RlZFVTVlVSTEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
SlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialJlZmxlY3RlZFVTVlVSTEF0dHIs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialJlZmxlY3RlZFVTVlVSTEF0dHJT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJl
ZmxlY3RlZFVTVlVSTEF0dHIiKTsKIH0KQEAgLTM5MzIsNyArMzkzMiw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElE
TERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVu
dFN0cmluZ0F0dHJBdHRyKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxq
c1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVjdGVkU3Ry
aW5nQXR0ciIpOwogfQpAQCAtMzk1MCw3ICszOTUwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9i
alJlZmxlY3RlZFN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
SlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHJT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJl
ZmxlY3RlZFN0cmluZ0F0dHIiKTsKIH0KQEAgLTM5NjMsNyArMzk2Myw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHJHZXR0ZXIoSlNH
bG9iYWxPYmplY3QmCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElE
TExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZ2V0SW50ZWdyYWxB
dHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50SW50ZWdyYWxBdHRyQXR0
cikpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVmbGVj
dGVkQ3VzdG9tSW50ZWdyYWxBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0
PGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJl
ZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ciIpOwogfQpAQCAtMzk4MSw3ICszOTgxLDcgQEAgc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0clNl
dHRlcihKU0dsb2JhbE9iamVjdCYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNl
dDxzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHJTZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJlZmxlY3RlZEN1c3RvbUlu
dGVncmFsQXR0ciIpOwogfQpAQCAtMzk5NCw3ICszOTk0LDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExCb29sZWFu
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmhhc0F0dHJpYnV0ZVdpdGhv
dXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50Qm9vbGVh
bkF0dHJBdHRyKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RP
YmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2Jq
Pjo6Z2V0PGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyR2V0dGVyLCBDYXN0ZWRU
aGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAicmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIiKTsKIH0KQEAgLTQwMTIsNyArNDAxMiw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0
clNldHRlcihKU0dsb2JhbE9iamVjdCYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+Ojpz
ZXQ8c2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHJTZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJlZmxlY3RlZEN1c3RvbUJv
b2xlYW5BdHRyIik7CiB9CkBAIC00MDI1LDcgKzQwMjUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJp
bmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZ2V0VVJMQXR0cmlidXRl
KFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudFVSTEF0dHJBdHRyKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxB
dHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RP
YmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0
b21VUkxBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVjdGVkQ3VzdG9tVVJMQXR0ciIpOwogfQpA
QCAtNDA0Myw3ICs0MDQzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialJlZmxl
Y3RlZEN1c3RvbVVSTEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3Rv
bVVSTEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHIsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHJTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJlZmxlY3Rl
ZEN1c3RvbVVSTEF0dHIiKTsKIH0KQEAgLTQwNTcsNyArNDA1Nyw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RPYmpFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERP
TVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5lbmFibGVkQXRS
dW50aW1lQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0T2JqRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0
ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RPYmo+OjpnZXQ8anNUZXN0T2JqRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZUdldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgImVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUiKTsKIH0KQEAgLTQwNzgsNyArNDA3OCw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpFbmFibGVkQXRSdW50aW1lQXR0cmli
dXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RPYmpFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46
OnNldDxzZXRKU1Rlc3RPYmpFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJlbmFibGVkQXRSdW50aW1l
QXR0cmlidXRlIik7CiB9CkBAIC00MDkzLDcgKzQwOTMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0T2JqQ29uc3RydWN0b3JFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlU3RhdGljR2V0
dGVyKAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJp
bmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFRlc3RPYmo6OmVuYWJsZWRBdFJ1
bnRpbWVBdHRyaWJ1dGVTdGF0aWMoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RPYmpDb25zdHJ1Y3RvckVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNv
bnN0cnVjdG9yRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpYywgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXRTdGF0aWM8
anNUZXN0T2JqQ29uc3RydWN0b3JFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlU3RhdGljR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZW5hYmxlZEF0UnVudGltZUF0dHJp
YnV0ZVN0YXRpYyIpOwogfQpAQCAtNDExMyw3ICs0MTEzLDcgQEAgc3RhdGljIGlubGluZSBib29s
IHNldEpTVGVzdE9iakNvbnN0cnVjdG9yRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpY1Nl
dHRlcigKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dE9iakNvbnN0cnVjdG9yRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpYyhKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0T2JqQ29uc3RydWN0b3JFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlU3RhdGljLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OnNldFN0YXRpYzxzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvckVuYWJsZWRBdFJ1
bnRpbWVBdHRyaWJ1dGVTdGF0aWNTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgImVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMiKTsKIH0K
QEAgLTQxMjgsNyArNDEyOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpUeXBl
ZEFycmF5QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEZsb2F0MzJBcnJheT4obGV4aWNhbEds
b2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwu
dHlwZWRBcnJheUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpUeXBlZEFycmF5QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIoanNUZXN0T2JqVHlwZWRBcnJheUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialR5
cGVkQXJyYXlBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidHlwZWRBcnJheUF0dHIiKTsKIH0KQEAgLTQx
NDYsNyArNDE0Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpUeXBlZEFycmF5
QXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpUeXBlZEFycmF5QXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0T2JqVHlwZWRBcnJheUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpT
VGVzdE9ialR5cGVkQXJyYXlBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJ0eXBlZEFycmF5QXR0ciIpOwogfQpAQCAtNDE1Nyw3ICs0MTU3
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakN1c3RvbUF0dHJHZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmoKICAgICByZXR1cm4gdGhpc09iamVjdC5jdXN0
b21BdHRyKGxleGljYWxHbG9iYWxPYmplY3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE9iakN1c3RvbUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakN1c3RvbUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakN1
c3RvbUF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjdXN0b21BdHRyIik7CiB9CkBAIC00MTY5LDcgKzQx
NjksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQ3VzdG9tQXR0clNldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iagogICAgIHJldHVybiB0cnVlOwogfQogCi1i
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ3VzdG9tQXR0cihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2Jq
Q3VzdG9tQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqQ3VzdG9tQXR0
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
Y3VzdG9tQXR0ciIpOwogfQpAQCAtNDE4MCw3ICs0MTgwLDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdE9iak9uZm9vR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LAogICAgIHJldHVybiBldmVudEhhbmRsZXJBdHRyaWJ1dGUodGhpc09iamVjdC53cmFwcGVk
KCksIGV2ZW50TmFtZXMoKS5mb29FdmVudCwgd29ybGRGb3JET01PYmplY3QodGhpc09iamVjdCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak9uZm9vKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpPbmZvbywg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RP
Ymo+OjpnZXQ8anNUZXN0T2JqT25mb29HZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpB
c3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJvbmZvbyIpOwogfQpAQCAt
NDE5NSw3ICs0MTk1LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iak9uZm9vU2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LAogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqT25mb28oSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dE9iak9uZm9vLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpPbmZvb1NldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAib25mb28i
KTsKIH0KQEAgLTQyMDYsNyArNDIwNiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RP
YmpPbndlYmtpdGZvb0dldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iCiAgICAg
cmV0dXJuIGV2ZW50SGFuZGxlckF0dHJpYnV0ZSh0aGlzT2JqZWN0LndyYXBwZWQoKSwgZXZlbnRO
YW1lcygpLmZvb0V2ZW50LCB3b3JsZEZvckRPTU9iamVjdCh0aGlzT2JqZWN0KSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqT253ZWJraXRmb28oSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iak9ud2Via2l0Zm9v
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dE9iaj46OmdldDxqc1Rlc3RPYmpPbndlYmtpdGZvb0dldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm9ud2Via2l0
Zm9vIik7CiB9CkBAIC00MjIxLDcgKzQyMjEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0T2JqT253ZWJraXRmb29TZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYgog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqT253
ZWJraXRmb28oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdE9iak9ud2Via2l0Zm9vLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46
OnNldDxzZXRKU1Rlc3RPYmpPbndlYmtpdGZvb1NldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAib253ZWJraXRmb28iKTsKIH0KQEAgLTQyMzQsNyAr
NDIzNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoRXhlY1N0YXRlQXR0
cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIGltcGwud2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZSgqanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0
Kj4oJmxleGljYWxHbG9iYWxPYmplY3QpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RPYmpXaXRoRXhlY1N0YXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpXaXRoRXhlY1N0YXRlQXR0cmli
dXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdE9iaj46OmdldDxqc1Rlc3RPYmpXaXRoRXhlY1N0YXRlQXR0cmlidXRlR2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAid2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZSIpOwogfQpAQCAtNDI1Miw3ICs0MjUyLDcgQEAg
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialdpdGhFeGVjU3RhdGVBdHRyaWJ1dGVTZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdE9ialdpdGhFeGVjU3RhdGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dE9ialdpdGhFeGVjU3RhdGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpT
VGVzdE9ialdpdGhFeGVjU3RhdGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIndpdGhFeGVjU3RhdGVBdHRyaWJ1dGUiKTsKIH0K
QEAgLTQyNjUsNyArNDI2NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpXaXRo
Q2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZUdldHRlcihKU0dsCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmpl
Y3QsIHRocm93U2NvcGUsIGltcGwud2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1
dGUoKmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqV2l0aENhbGxXaXRo
QW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialdpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0
cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0
dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIndpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0
cmlidXRlIik7CiB9CkBAIC00MjgzLDcgKzQyODMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0T2JqV2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGVTZXR0ZXIoSlNH
bAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2Jq
V2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialdp
dGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46
OnNldDxzZXRKU1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZVNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAid2l0
aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUiKTsKIH0KQEAgLTQyOTksNyArNDI5
OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEF0dHJpYnV0ZUdldHRlcihKU0dsb2JhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4obGV4aWNhbEdsb2JhbE9iamVj
dCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwud2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUoKmNvbnRleHQpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0
T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNF
cnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ3
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZSIpOwogfQpAQCAtNDMyMCw3ICs0MzIw
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25D
b250ZXh0QXR0cmlidXRlU2V0dGVyKEpTR2xvYmEKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0
ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlIik7CiB9
CkBAIC00MzM2LDcgKzQzMzYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqV2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGVHZQogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8VGVzdE9iaj4+KGxl
eGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3Bl
LCBpbXBsLndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlQXR0cmlidXRlKCpq
c0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPigmbGV4aWNhbEdsb2JhbE9iamVjdCksICpjYWxsRnJh
bWUsICpjb250ZXh0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqV2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVz
dE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlQXR0cmlidXRlR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1
dGUiKTsKIH0KQEAgLTQzNTcsNyArNDM1Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZVNlCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpXaXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGUsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QW5kRXhlY1N0YXRlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0
ZUF0dHJpYnV0ZSIpOwogfQpAQCAtNDM3Myw3ICs0MzczLDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNw
YWNlc0EKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJm
YWNlPFRlc3RPYmo+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmpl
Y3QoKSwgdGhyb3dTY29wZSwgaW1wbC53aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNT
dGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUoKmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSwgKmNhbGxGcmFtZSwgKmNvbnRleHQpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
bmRFeGVjU3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpXaXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGVHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFj
ZXNBdHRyaWJ1dGUiKTsKIH0KQEAgLTQzOTQsNyArNDM5NCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhT
cGFjZXNBCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBdHRy
aWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNU
T01fU0VUVEVSKHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0
YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0
T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQXR0cmli
dXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1
dGUiKTsKIH0KQEAgLTQ0MDgsNyArNDQwOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RPYmpDb25kaXRpb25hbEF0dHIxR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuY29uZGl0aW9uYWxBdHRyMSgpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNv
bmRpdGlvbmFsQXR0cjEsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjFHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJjb25kaXRpb25hbEF0dHIxIik7CiB9CkBAIC00NDI5LDcgKzQ0MjksNyBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMVNldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsbwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQ29u
ZGl0aW9uYWxBdHRyMSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqQ29uZGl0
aW9uYWxBdHRyMVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAiY29uZGl0aW9uYWxBdHRyMSIpOwogfQpAQCAtNDQ0NSw3ICs0NDQ1LDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjJHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5jb25k
aXRpb25hbEF0dHIyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqQ29uZGl0aW9uYWxBdHRyMihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIoanNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMiwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2Jq
Q29uZGl0aW9uYWxBdHRyMkdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImNvbmRpdGlvbmFsQXR0cjIiKTsKIH0K
QEAgLTQ0NjYsNyArNDQ2Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpDb25k
aXRpb25hbEF0dHIyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0
dHIyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46
OnNldDxzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJjb25kaXRpb25hbEF0dHIyIik7CiB9CkBA
IC00NDgyLDcgKzQ0ODIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ29uZGl0
aW9uYWxBdHRyM0dldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsbwogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBpbXBsLmNvbmRpdGlvbmFsQXR0cjMoKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpDb25kaXRpb25hbEF0
dHIzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdE9iaj46OmdldDxqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzR2V0dGVyLCBDYXN0ZWRUaGlz
RXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
Y29uZGl0aW9uYWxBdHRyMyIpOwogfQpAQCAtNDUwMyw3ICs0NTAzLDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjNTZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0
cjMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjNT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImNv
bmRpdGlvbmFsQXR0cjMiKTsKIH0KQEAgLTQ1MTcsNyArNDUxNyw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmCiAgICAgcmV0dXJuIEpTVGVzdE9iamVjdEE6OmdldENvbnN0cnVjdG9yKEpTQzo6
Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25kaXRpb25hbEF0
dHI0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0
T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAiY29uZGl0aW9uYWxBdHRyNCIpOwogfQpAQCAtNDUzMiw3ICs0NTMyLDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1
Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJl
Y3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
TENoYXIqPigiY29uZGl0aW9uYWxBdHRyNCIpLCBzdHJsZW4oImNvbmRpdGlvbmFsQXR0cjQiKSks
IHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNvbmRpdGlvbmFs
QXR0cjRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0
Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgImNvbmRpdGlvbmFsQXR0cjQiKTsKIH0KQEAgLTQ1NDYsNyArNDU0Niw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3JH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmCiAgICAgcmV0dXJuIEpTVGVzdE9iamVjdEI6OmdldENvbnN0
cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2Jh
bE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpD
b25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3RvciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpnZXQ8anNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY29uZGl0aW9uYWxBdHRyNSIpOwogfQpAQCAtNDU2
MSw3ICs0NTYxLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFs
QXR0cjVDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYKICAgICByZXR1cm4gdGhpc09i
amVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgTENoYXIqPigiY29uZGl0aW9uYWxBdHRyNSIpLCBzdHJsZW4oImNvbmRpdGlv
bmFsQXR0cjUiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9i
akNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxB
dHRyNUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpDb25k
aXRpb25hbEF0dHI1Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgImNvbmRpdGlvbmFsQXR0cjUiKTsKIH0KQEAgLTQ1NzUsNyAr
NDU3NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2
Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmCiAgICAgcmV0dXJuIEpTVGVzdE9iamVj
dEM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlz
T2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25z
dHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yR2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY29uZGl0aW9uYWxBdHRyNiIp
OwogfQpAQCAtNDU5MCw3ICs0NTkwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9i
akNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYKICAgICBy
ZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiY29uZGl0aW9uYWxBdHRyNiIpLCBzdHJs
ZW4oImNvbmRpdGlvbmFsQXR0cjYiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2Jq
Q29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRK
U1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImNvbmRpdGlvbmFsQXR0cjYiKTsKIH0K
QEAgLTQ2MTAsNyArNDYxMCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDYWNo
ZWRBdHRyaWJ1dGUxR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDYWNo
ZWRBdHRyaWJ1dGUxKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUxLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpDYWNoZWRBdHRy
aWJ1dGUxR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY2FjaGVkQXR0cmlidXRlMSIpOwogfQpAQCAtNDYyOCw3
ICs0NjI4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0
ZTJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG8KICAgICByZXR1cm4gcmVzdWx0Owog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0
ZTIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9i
akNhY2hlZEF0dHJpYnV0ZTIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTJHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJjYWNoZWRBdHRyaWJ1dGUyIik7CiB9CkBAIC00NjQ3LDcgKzQ2NDcsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlM0dldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsbwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMyhKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQ2FjaGVkQXR0
cmlidXRlMywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlM0dldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgImNhY2hlZEF0dHJpYnV0ZTMiKTsKIH0KQEAgLTQ2NjIsNyArNDY2Miw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpBbnlBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETEFueT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hbnlBdHRyaWJ1
dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpBbnlB
dHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpz
VGVzdE9iakFueUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQW55QXR0cmlidXRlR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiYW55QXR0cmlidXRlIik7CiB9CkBAIC00NjgwLDcgKzQ2ODAsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQW55QXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsTwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0T2JqQW55QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpBbnlBdHRyaWJ1
dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakFueUF0dHJpYnV0ZVNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiYW55QXR0
cmlidXRlIik7CiB9CkBAIC00NjkzLDcgKzQ2OTMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0T2JqT2JqZWN0QXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExPYmplY3Q+KGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwub2JqZWN0QXR0cmlidXRlKCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqT2JqZWN0QXR0cmli
dXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RP
YmpPYmplY3RBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iak9iamVjdEF0dHJpYnV0ZUdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgIm9iamVjdEF0dHJpYnV0ZSIpOwogfQpAQCAtNDcxMSw3ICs0NzExLDcgQEAg
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iak9iamVjdEF0dHJpYnV0ZVNldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2IKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdE9iak9iamVjdEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqT2Jq
ZWN0QXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpPYmplY3RB
dHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgIm9iamVjdEF0dHJpYnV0ZSIpOwogfQpAQCAtNDcyNCw3ICs0NzI0LDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNvbnRlbnREb2N1bWVudEdldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMSW50ZXJmYWNlPERvY3VtZW50Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmpl
Y3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIEJpbmRpbmdTZWN1cml0eTo6Y2hlY2tTZWN1
cml0eUZvck5vZGUobGV4aWNhbEdsb2JhbE9iamVjdCwgaW1wbC5jb250ZW50RG9jdW1lbnQoKSkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29udGVudERv
Y3VtZW50KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RPYmpDb250ZW50RG9jdW1lbnQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakNvbnRlbnREb2N1bWVudEdl
dHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgImNvbnRlbnREb2N1bWVudCIpOwogfQpAQCAtNDczNyw3ICs0NzM3LDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iak11dGFibGVQb2ludEdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPFNWR1BvaW50Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwg
KnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwubXV0YWJsZVBvaW50
KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTXV0YWJs
ZVBvaW50KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RPYmpNdXRhYmxlUG9pbnQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iak11dGFibGVQb2ludEdldHRlciwg
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgIm11dGFibGVQb2ludCIpOwogfQpAQCAtNDc1NSw3ICs0NzU1LDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdE9iak11dGFibGVQb2ludFNldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdE9iak11dGFibGVQb2ludChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqTXV0YWJsZVBvaW50
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpNdXRhYmxlUG9pbnRTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm11dGFibGVQ
b2ludCIpOwogfQpAQCAtNDc2OCw3ICs0NzY4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdE9ialN0cmF3YmVycnlHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmoK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5ibHVlYmVycnkoKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpTdHJhd2JlcnJ5KEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpTdHJhd2JlcnJ5LCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9i
aj46OmdldDxqc1Rlc3RPYmpTdHJhd2JlcnJ5R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3RyYXdiZXJyeSIp
OwogfQpAQCAtNDc4Niw3ICs0Nzg2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9i
alN0cmF3YmVycnlTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmoKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialN0cmF3YmVy
cnkoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdE9ialN0cmF3YmVycnksIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNl
dEpTVGVzdE9ialN0cmF3YmVycnlTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgInN0cmF3YmVycnkiKTsKIH0KQEAgLTQ3OTksNyArNDc5OSw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpEZXNjcmlwdGlvbkdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwu
ZGVzY3JpcHRpb24oKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPYmpEZXNjcmlwdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNUZXN0T2JqRGVzY3JpcHRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakRlc2NyaXB0aW9u
R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAiZGVzY3JpcHRpb24iKTsKIH0KQEAgLTQ4MTIsNyArNDgxMiw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpJZEdldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwu
aWQoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpJZChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqSWQs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
T2JqPjo6Z2V0PGpzVGVzdE9iaklkR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNz
ZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiaWQiKTsKIH0KQEAgLTQ4MzAs
NyArNDgzMCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpJZFNldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpJZChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqSWQs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iaklkU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJpZCIpOwogfQpAQCAtNDg0Myw3
ICs0ODQzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakhhc2hHZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEoKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBpbXBsLmhhc2goKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RPYmpIYXNoKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RPYmpIYXNoLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpIYXNoR2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiaGFzaCIpOwogfQpAQCAtNDg1Niw3ICs0ODU2LDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdE9ialJlcGxhY2VhYmxlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2EKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5yZXBsYWNlYWJsZUF0dHJpYnV0
ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlcGxh
Y2VhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqUmVw
bGFjZWFibGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZXBsYWNlYWJsZUF0dHJpYnV0ZSIp
OwogfQpAQCAtNDg2OCw3ICs0ODY4LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9i
alJlcGxhY2VhYmxlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2EKICAgICBy
ZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigicmVwbGFjZWFibGVBdHRyaWJ1dGUiKSwg
c3RybGVuKCJyZXBsYWNlYWJsZUF0dHJpYnV0ZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9i
alJlcGxhY2VhYmxlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RP
YmpSZXBsYWNlYWJsZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVwbGFjZWFibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTQ4ODEs
NyArNDg4MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZURvdWJs
ZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4CiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETFVucmVzdHJpY3RlZERvdWJsZT4+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubnVsbGFibGVEb3VibGVBdHRy
aWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpO
dWxsYWJsZURvdWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIoanNUZXN0T2JqTnVsbGFibGVEb3VibGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpz
VGVzdE9iak51bGxhYmxlRG91YmxlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhh
dmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibnVsbGFibGVE
b3VibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTQ4OTQsNyArNDg5NCw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUxvbmdBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51
bGxhYmxlPElETExvbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm51
bGxhYmxlTG9uZ0F0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE9iak51bGxhYmxlTG9uZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqTnVsbGFibGVMb25nQXR0cmlidXRlLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9i
aj46OmdldDxqc1Rlc3RPYmpOdWxsYWJsZUxvbmdBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNF
cnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJu
dWxsYWJsZUxvbmdBdHRyaWJ1dGUiKTsKIH0KQEAgLTQ5MDcsNyArNDkwNyw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUJvb2xlYW5BdHRyaWJ1dGVHZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETE51bGxhYmxlPElETEJvb2xlYW4+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBpbXBsLm51bGxhYmxlQm9vbGVhbkF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak51bGxhYmxlQm9vbGVhbkF0dHJpYnV0ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqTnVsbGFibGVC
b29sZWFuQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpOdWxsYWJsZUJvb2xlYW5BdHRyaWJ1
dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJudWxsYWJsZUJvb2xlYW5BdHRyaWJ1dGUiKTsKIH0KQEAgLTQ5
MjAsNyArNDkyMCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZVN0
cmluZ0F0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4CiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETERPTVN0cmluZz4+KGxleGlj
YWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubnVsbGFibGVTdHJpbmdBdHRyaWJ1dGUo
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpOdWxsYWJs
ZVN0cmluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNUZXN0T2JqTnVsbGFibGVTdHJpbmdBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9i
ak51bGxhYmxlU3RyaW5nQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibnVsbGFibGVTdHJpbmdB
dHRyaWJ1dGUiKTsKIH0KQEAgLTQ5MzMsNyArNDkzMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9i
amVjCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxl
PElETExvbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm51bGxhYmxl
TG9uZ1NldHRhYmxlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0T2JqTnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iak51bGxhYmxlTG9uZ1Nl
dHRhYmxlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0
dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlIik7
CiB9CkBAIC00OTUxLDcgKzQ5NTEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2Jq
TnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplYwogICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqTnVsbGFibGVM
b25nU2V0dGFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
SlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iak51bGxhYmxlTG9uZ1NldHRhYmxl
QXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpOdWxsYWJsZUxv
bmdTZXR0YWJsZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAibnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUiKTsKIH0KQEAg
LTQ5NjQsNyArNDk2NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJs
ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETERPTVN0cmluZz4+KGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubnVsbGFibGVTdHJpbmdTZXR0YWJs
ZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE9iak51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iak51bGxhYmxlU3RyaW5nU2V0dGFibGVB
dHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iak51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1
dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJudWxsYWJsZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlIik7CiB9
CkBAIC00OTgyLDcgKzQ5ODIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqTnVs
bGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iagogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqTnVsbGFibGVTdHJp
bmdTZXR0YWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitK
U0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqTnVsbGFibGVTdHJpbmdTZXR0YWJs
ZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqTnVsbGFibGVT
dHJpbmdTZXR0YWJsZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAibnVsbGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSIpOwog
fQpAQCAtNDk5NSw3ICs0OTk1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iak51
bGxhYmxlVVNWU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWwKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMVVNWU3RyaW5n
Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5udWxsYWJsZVVTVlN0cmlu
Z1NldHRhYmxlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0T2JqTnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqTnVsbGFibGVVU1ZT
dHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqTnVsbGFibGVVU1ZTdHJp
bmdTZXR0YWJsZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2Vy
dD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm51bGxhYmxlVVNWU3RyaW5nU2V0
dGFibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTUwMTMsNyArNTAxMyw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RPYmpOdWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlU2V0dGVy
KEpTR2xvYmFsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RPYmpOdWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RP
YmpOdWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46
OnNldDxzZXRKU1Rlc3RPYmpOdWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlU2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJudWxsYWJs
ZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlIik7CiB9CkBAIC01MDI2LDcgKzUwMjYsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5nU2V0dGFibGVB
dHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCAodG9KUzxJRExOdWxsYWJsZTxJRExCeXRlU3RyaW5nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSwgaW1wbC5udWxsYWJsZUJ5dGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSgpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak51bGxhYmxlQnl0
ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpOdWxsYWJsZUJ5dGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0
ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RPYmo+OjpnZXQ8anNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGVH
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJudWxsYWJsZUJ5dGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSIpOwog
fQpAQCAtNTA0NCw3ICs1MDQ0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iak51
bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmEKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iak51bGxhYmxlQnl0
ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpOdWxsYWJsZUJ5dGVTdHJp
bmdTZXR0YWJsZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2Jq
TnVsbGFibGVCeXRlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm51bGxhYmxlQnl0ZVN0cmluZ1NldHRh
YmxlQXR0cmlidXRlIik7CiB9CkBAIC01MDU3LDcgKzUwNTcsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0T2JqQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01T
dHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYXR0cmlidXRlKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQXR0cmlidXRl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpB
dHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImF0
dHJpYnV0ZSIpOwogfQpAQCAtNTA3MCw3ICs1MDcwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlR2V0dGVyKEpTR2xvYmFsT2Jq
ZWMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRW51bWVyYXRp
b248VGVzdE9iajo6T3B0aW9uYWw+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBp
bXBsLmF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakF0
dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpBdHRyaWJ1dGVX
aXRoUmVzZXJ2ZWRFbnVtVHlwZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2Vy
dD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImF0dHJpYnV0ZVdpdGhSZXNlcnZl
ZEVudW1UeXBlIik7CiB9CkBAIC01MDkxLDcgKzUwOTEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0T2JqQXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGVTZXR0ZXIoSlNHbG9iYWxP
YmplYwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
T2JqQXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iakF0dHJpYnV0
ZVdpdGhSZXNlcnZlZEVudW1UeXBlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RP
YmpBdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiYXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5
cGUiKTsKIH0KQEAgLTUxMDQsNyArNTEwNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RPYmpUZXN0UmVhZE9ubHlWb2lkUHJvbWlzZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFByb21pc2U8SURMVW5k
ZWZpbmVkPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCks
IHRocm93U2NvcGUsIGltcGwudGVzdFJlYWRPbmx5Vm9pZFByb21pc2VBdHRyaWJ1dGUoKSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpUZXN0UmVhZE9ubHlW
b2lkUHJvbWlzZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoanNUZXN0T2JqVGVzdFJlYWRPbmx5Vm9pZFByb21pc2VBdHRyaWJ1dGUsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6
Z2V0PGpzVGVzdE9ialRlc3RSZWFkT25seVZvaWRQcm9taXNlQXR0cmlidXRlR2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6UmVqZWN0UHJvbWlzZT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgInRlc3RSZWFkT25seVZvaWRQcm9taXNlQXR0cmlidXRlIik7CiB9CkBAIC01
MTE3LDcgKzUxMTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqVGVzdFJlYWRP
bmx5UHJvbWlzZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdAogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExQcm9taXNlPElETEludGVyZmFjZTxUZXN0Tm9k
ZT4+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhy
b3dTY29wZSwgaW1wbC50ZXN0UmVhZE9ubHlQcm9taXNlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVGVzdFJlYWRPbmx5UHJvbWlzZUF0
dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNU
ZXN0T2JqVGVzdFJlYWRPbmx5UHJvbWlzZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqVGVz
dFJlYWRPbmx5UHJvbWlzZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OlJlamVjdFByb21pc2U+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0ZXN0UmVh
ZE9ubHlQcm9taXNlQXR0cmlidXRlIik7CiB9CkBAIC01MTMwLDcgKzUxMzAsNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0T2JqUHV0Rm9yd2FyZHNBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9K
UzxJRExJbnRlcmZhY2U8VGVzdE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVj
dC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5wdXRGb3J3YXJkc0F0dHJpYnV0ZSgp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialB1dEZvcndh
cmRzQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqUHV0Rm9y
d2FyZHNBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJwdXRGb3J3YXJkc0F0dHJpYnV0ZSIpOwog
fQpAQCAtNTE1Myw3ICs1MTUzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialB1
dEZvcndhcmRzQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2EKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialB1dEZvcndhcmRz
QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZSwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNBdHRyaWJ1dGVTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInB1dEZvcndhcmRz
QXR0cmlidXRlIik7CiB9CkBAIC01MTY2LDcgKzUxNjYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9i
amVjdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJs
ZTxJRExJbnRlcmZhY2U8VGVzdE5vZGU+Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmpl
Y3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwucHV0Rm9yd2FyZHNOdWxsYWJsZUF0
dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9i
alB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
T2JqPjo6Z2V0PGpzVGVzdE9ialB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGVHZXR0ZXIsIENh
c3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJwdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlIik7CiB9CkBAIC01MTg5LDcgKzUx
ODksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJs
ZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdAogICAgIHJldHVybiB0cnVlOwogfQogCi1i
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0
ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZSwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZVNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicHV0
Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZSIpOwogfQpAQCAtNTIwMiw3ICs1MjAyLDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ2lmaWVyQXR0cmlidXRlR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2EKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMVVNWU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBs
LnN0cmluZ2lmaWVyQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0T2JqU3RyaW5naWZpZXJBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialN0cmluZ2lmaWVyQXR0cmlidXRlLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9i
aj46OmdldDxqc1Rlc3RPYmpTdHJpbmdpZmllckF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN0
cmluZ2lmaWVyQXR0cmlidXRlIik7CiB9CkBAIC01MjIwLDcgKzUyMjAsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0T2JqU3RyaW5naWZpZXJBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0T2JqU3RyaW5naWZpZXJBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialN0cmluZ2lm
aWVyQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpTdHJpbmdp
ZmllckF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5j
b2RlZFZhbHVlLCAic3RyaW5naWZpZXJBdHRyaWJ1dGUiKTsKIH0KQEAgLTUyMzMsNyArNTIzMyw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRv
V2luZG93QXR0cmlidXRlR2V0dGVyKEpTR2xvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGlt
cGwuY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9X
aW5kb3dBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKGpzVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGUsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6
Z2V0PGpzVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGVHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJjb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QXR0cmlidXRlIik7CiB9CkBA
IC01MjUxLDcgKzUyNTEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0
aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZVNldHRlcihKU0dsbwogICAgIHJldHVybiB0
cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4
cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9z
ZWRUb1dpbmRvd0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2Jq
Q29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiY29uZGl0aW9uYWxseUV4cG9zZWRU
b1dpbmRvd0F0dHJpYnV0ZSIpOwogfQpAQCAtNTI2NCw3ICs1MjY0LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJBdHRyaWJ1dGVH
ZXR0ZXIoSlNHbG8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
TG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5jb25kaXRpb25hbGx5
RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQ29u
ZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQ29u
ZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImNvbmRp
dGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJBdHRyaWJ1dGUiKTsKIH0KQEAgLTUyODIsNyArNTI4Miw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRv
V29ya2VyQXR0cmlidXRlU2V0dGVyKEpTR2xvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmli
dXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhw
b3NlZFRvV29ya2VyQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJjb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmlidXRl
Iik7CiB9CkBAIC01Mjk1LDcgKzUyOTUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZUdldAogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dB
bmRXb3JrZXJBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpD
b25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxq
c1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJp
YnV0ZSIpOwogfQpAQCAtNTMxMyw3ICs1MzEzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGVTZXQK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNv
bmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGUsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5k
b3dBbmRXb3JrZXJBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgImNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJB
dHRyaWJ1dGUiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWwuY3Bw
CmluZGV4IGQ5MTE0ODlkZDc5ZTk1MmUyNWY1ZTEzYWViNWIyM2E1MmZmZDNmY2EuLjhkYWE4ZmFm
NDIyNDVlYmNiMTRmMGM0Zjk4ZGU5ZDU4OWVlZGZjMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9w
ZXJhdGlvbkNvbmRpdGlvbmFsLmNwcApAQCAtNTcsOCArNTcsOCBAQCBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90eXBlRnVuY3Rpb25Db25k
aXRpb25hbAogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFs
Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPcGVyYXRp
b25Db25kaXRpb25hbENvbnN0cnVjdG9yKTsKIAogY2xhc3MgSlNUZXN0T3BlcmF0aW9uQ29uZGl0
aW9uYWxQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1
YmxpYzoKQEAgLTE3Nyw3ICsxNzcsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RPcGVyYXRp
b25Db25kaXRpb25hbCogSURMT3BlcmF0aW9uPEpTVGVzdE9wZXJhdGlvbkNvbmRpdAogICAgIHJl
dHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsKj4oSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNU
ZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkp
CiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4Nyw3ICsxODcs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9wZXJhdGlvbkNvbmRpdGlv
bmFsQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
SlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWw6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAK
aW5kZXggYjg2OWEzNWY4NzMwNDRjZDFiMzA5MzI1OGY1MmE3YTIzYzliZGUxMi4uYzdmZDNhZmIx
NDA0NzExNzc1ZmY4ZDVhNDIzYjA5ODU4YmI4NTljZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcApAQCAtNTAsOCArNTAsOCBAQCB1c2luZyBuYW1lc3Bh
Y2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IpOwogCiBjbGFzcyBKU1Rlc3RPdmVybG9h
ZGVkQ29uc3RydWN0b3JzUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9i
amVjdCB7CiBwdWJsaWM6CkBAIC0yNzQsNyArMjc0LDcgQEAgdm9pZCBKU1Rlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzOjpkZXN0cm95KEpTQzo6SlNDZWxsKiBjZWxsKQogICAgIHRoaXNPYmplY3Qt
PkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6On5KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzKCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0yODQsNyArMjg0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmoKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6OmdldENvbnN0
cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFs
T2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
c0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAg
ICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnNXaXRoU2VxdWVuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UuY3BwCmluZGV4IDkw
N2IwMTA2MDc2M2NlODg4NzZkMTdiZWY1MjExNGMyMGE1MmVkNDQuLmJhMTdkYTk4M2I0NDkzN2Zh
YjVkZDYxNGQxMzU0ZTVlMTdmZTM4Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVl
bmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHAKQEAgLTQ5LDggKzQ5LDgg
QEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1
ZW5jZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5j
ZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKTsKIAogY2xhc3MgSlNUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZVByb3RvdHlwZSBmaW5hbCA6IHB1Ymxp
YyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMjEzLDcgKzIxMyw3IEBAIHZv
aWQgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZTo6ZGVzdHJveShKU0M6
OkpTQ2VsbCogY2VsbCkKICAgICB0aGlzT2JqZWN0LT5KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzV2l0aFNlcXVlbmNlOjp+SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5j
ZSgpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhT
ZXF1ZW5jZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjIzLDcgKzIyMyw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5j
ZUNvbnN0cnVjdG9yCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzV2l0aFNlcXVlbmNlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNl
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklO
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVu
Y2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAg
ICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQbHVnaW5JbnRlcmZhY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbklu
dGVyZmFjZS5jcHAKaW5kZXggYjExM2IwYTI4ODkxZDNkNjI3NzY3MzZiODg0NjU2ZWFlNTY4NjVm
Ny4uMzU3NmYxOTMzNWRjOTQ0ZTExMjU3NDRmOTA5ZjU5NzM3MzMxY2ZkNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVy
ZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFBsdWdpbkludGVyZmFjZS5jcHAKQEAgLTQ1LDggKzQ1LDggQEAgdXNpbmcgbmFtZXNwYWNl
IEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0
b3IpOwogCiBjbGFzcyBKU1Rlc3RQbHVnaW5JbnRlcmZhY2VQcm90b3R5cGUgZmluYWwgOiBwdWJs
aWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTIxMSw3ICsyMTEsNyBAQCBD
YWxsRGF0YSBKU1Rlc3RQbHVnaW5JbnRlcmZhY2U6OmdldENhbGxEYXRhKEpTQ2VsbCogY2VsbCkK
ICAgICByZXR1cm4gcGx1Z2luRWxlbWVudEN1c3RvbUdldENhbGxEYXRhKHRoaXNPYmplY3QpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFBsdWdpbkludGVyZmFjZUNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7
CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIyMSw3ICsyMjEsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFBsdWdpbkludGVyZmFjZUNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNU
ZXN0UGx1Z2luSW50ZXJmYWNlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlz
ZVJlamVjdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQuY3BwCmluZGV4IDhlNWM2YmEyMzkxNGY3
MDc5Yjc2ZTQ5YmZhYzI0OTk5NTNlOWY1YmIuLmI2MDNmODgwZWYwYTY0NjljYmI0YzhlNzM5OWI1
ZDNmYWZmY2U0NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQu
Y3BwCkBAIC0xMjcsMTAgKzEyNywxMCBAQCB0ZW1wbGF0ZTw+IFRlc3RQcm9taXNlUmVqZWN0aW9u
RXZlbnQ6OkluaXQgY29udmVydERpY3Rpb25hcnk8VGVzdFByb21pc2VSZWplY3RpbwogCiAvLyBB
dHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RQcm9t
aXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRQcm9t
aXNlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0UHJvbWlz
ZVJlamVjdGlvbkV2ZW50UmVhc29uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpz
VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRQcm9taXNl
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50
UmVhc29uKTsKIAogY2xhc3MgSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50UHJvdG90eXBlIGZp
bmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yNTksNyAr
MjU5LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50KiBJ
RExBdHRyaWJ1dGU8SlNUZXN0UHJvbWlzZVJlamVjdGkKICAgICByZXR1cm4ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RQcm9taXNl
UmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI2OSw3ICsyNjksNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0UHJv
bWlzZVJlamVjdGlvbkV2ZW50OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0yOTAsNyArMjkwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFByb21p
c2VSZWplY3Rpb25FdmVudFByb21pc2VHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGwKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMUHJvbWlzZTxJRExBbnk+PihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwg
aW1wbC5wcm9taXNlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50UHJvbWlzZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50UHJvbWlzZSwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RQ
cm9taXNlUmVqZWN0aW9uRXZlbnQ+OjpnZXQ8anNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50UHJv
bWlzZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OlJlamVjdFByb21pc2U+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJwcm9taXNlIik7CiB9CkBAIC0zMDMsNyArMzAz
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFByb21pc2VSZWplY3Rpb25FdmVudFJl
YXNvbkdldHRlcihKU0dsb2JhbE9iamVjdCYgbGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMQW55PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBp
bXBsLnJlYXNvbigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dFByb21pc2VSZWplY3Rpb25FdmVudFJlYXNvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50UmVhc29uLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFByb21p
c2VSZWplY3Rpb25FdmVudD46OmdldDxqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRSZWFzb25H
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJyZWFzb24iKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RSZWFkT25seU1hcExpa2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRPbmx5TWFwTGlr
ZS5jcHAKaW5kZXggOTIwNTc2YTQxMzYxZTY0ZTdkMDc0MTMwMDEzYzMzMjE2ZWM2YmMwZS4uY2U4
YzA5OTQ2MDhjOTE5MTg0ZjNhMjY5OTU2ZDRjNzI1OWM3YzUyMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRPbmx5TWFwTGlrZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJl
YWRPbmx5TWFwTGlrZS5jcHAKQEAgLTU5LDkgKzU5LDkgQEAgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpOwogCiAv
LyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RS
ZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RSZWFkT25seU1hcExpa2VTaXplKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0
b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RSZWFkT25seU1hcExpa2VTaXpl
KTsKIAogY2xhc3MgSlNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlIGZpbmFsIDogcHVibGlj
IEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xODMsNyArMTgzLDcgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgSlNUZXN0UmVhZE9ubHlNYXBMaWtlKiBJRExPcGVyYXRpb248SlNUZXN0
UmVhZE9ubHlNYXBMaWtlPjo6Y2EKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RSZWFk
T25seU1hcExpa2UqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1l
LnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RS
ZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0xOTMsNyArMTkzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RSZWFk
T25seU1hcExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGUKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKEpTVGVzdFJlYWRPbmx5TWFwTGlrZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwog
fQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMjEzLDcgKzIxMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RS
ZWFkT25seU1hcExpa2VTaXplR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEFueT4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgZm9yd2FyZFNpemVUb01hcExpa2UobGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc09iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0UmVhZE9ubHlNYXBMaWtlU2l6ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0UmVhZE9ubHlNYXBMaWtlU2l6ZSwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RSZWFkT25seU1hcExpa2U+
OjpnZXQ8anNUZXN0UmVhZE9ubHlNYXBMaWtlU2l6ZUdldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgInNpemUiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RSZWFkT25seVNldExpa2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRPbmx5U2V0TGlrZS5j
cHAKaW5kZXggYzMyZDc3NGVkNTA2M2Y5ZmZmYzc1NTMwM2Y4ZGE1MDhkM2YwZmViNC4uMjAwNDM1
ZmRkMDdiOGRmMjJlYjkyZjVjNDJjMTVmYzg5MzM0M2JiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRPbmx5U2V0TGlrZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRP
bmx5U2V0TGlrZS5jcHAKQEAgLTU4LDkgKzU4LDkgQEAgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpOwogCiAvLyBB
dHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RSZWFk
T25seVNldExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RSZWFkT25seVNldExpa2VTaXplKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3Ip
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RSZWFkT25seVNldExpa2VTaXplKTsK
IAogY2xhc3MgSlNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpT
Qzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xODEsNyArMTgxLDcgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgSlNUZXN0UmVhZE9ubHlTZXRMaWtlKiBJRExPcGVyYXRpb248SlNUZXN0UmVh
ZE9ubHlTZXRMaWtlPjo6Y2EKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RSZWFkT25s
eVNldExpa2UqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRo
aXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RSZWFk
T25seVNldExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIoanNUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0x
OTEsNyArMTkxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RSZWFkT25s
eVNldExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGUKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKEpTVGVzdFJlYWRPbmx5U2V0TGlrZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQog
Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMjExLDcgKzIxMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RSZWFk
T25seVNldExpa2VTaXplR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEFueT4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgZm9yd2FyZFNpemVUb1NldExpa2UobGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc09iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0UmVhZE9ubHlTZXRMaWtlU2l6ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIoanNUZXN0UmVhZE9ubHlTZXRMaWtlU2l6ZSwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RSZWFkT25seVNldExpa2U+Ojpn
ZXQ8anNUZXN0UmVhZE9ubHlTZXRMaWtlU2l6ZUdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgInNpemUiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlcG9ydEV4dHJhTWVt
b3J5Q29zdC5jcHAKaW5kZXggM2VkZDAxZmNhYjI0OWVmNWVmODliOTc1YmY1OGZmM2UxNTU3OGEz
ZS4uOWQ2YjRhNDhkODU1MTllNTFlY2I5NDM4MWQ0MjQwNWU2YjkxNjYxZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlcG9ydEV4dHJh
TWVtb3J5Q29zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdC5jcHAKQEAgLTQ0LDggKzQ0LDggQEAgdXNp
bmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdFJlcG9ydEV4
dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3IpOwogCiBjbGFzcyBKU1Rlc3RS
ZXBvcnRFeHRyYU1lbW9yeUNvc3RQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZp
bmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE1MCw3ICsxNTAsNyBAQCB2b2lkIEpTVGVzdFJlcG9y
dEV4dHJhTWVtb3J5Q29zdDo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2VsbCkKICAgICB0aGlzT2Jq
ZWN0LT5KU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3Q6On5KU1Rlc3RSZXBvcnRFeHRyYU1lbW9y
eUNvc3QoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RSZXBvcnRF
eHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3IsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0xNjAsNyArMTYwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamUKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdDo6Z2V0Q29uc3Ry
dWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxP
YmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0UmVwb3J0RXh0cmFN
ZW1vcnlDb3N0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
SlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENv
bnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBW
TSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAppbmRleCBmMGFkYzgzZjA0NmM3
MmMxZDY2MjhlOWYxMzQ5NGYxNGNkMzE3YTJkLi41MmZiY2NhMWNlODFjYzdkOTNiZDdkZjc2M2M3
ZjQ2NTg4NDkzYmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlLmNwcApAQCAtNjEsMTUgKzYxLDE1IEBAIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBl
RnVuY3Rpb25GCiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVZhbHVlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFs
dWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVJlYWRvbmx5VmFsdWUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2VDYWNoZWRWYWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQ
b3J0cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFJlYWRvbmx5VmFsdWUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01f
R0VUVEVSKGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVZhbHVlKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2VSZWFkb25seVZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWUpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2VDYWNoZWRWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVBvcnRzKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkUmVhZG9ubHlWYWx1
ZSk7CiAKIGNsYXNzIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlw
ZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTkw
LDcgKzE5MCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZSogSURMT3BlcmF0aW9uPEpTVGVzdFNlcmlhCiAgICAgcmV0dXJuIGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKj4oSlNDOjpnZXRWTSgm
bGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtMjAwLDcgKzIwMCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6Omdl
dENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+
Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTIyMSw3ICsyMjEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWVHZXR0ZXIoSlNHbG9iYWxPYgogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExTZXJpYWxpemVkU2NyaXB0VmFsdWU8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xv
YmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwudmFsdWUoKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VW
YWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlPjo6Z2V0PGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVZhbHVl
R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAidmFsdWUiKTsKIH0KQEAgLTIzOSw3ICsyMzksNyBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWVT
ZXR0ZXIoSlNHbG9iYWxPYgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZT46OnNldDxzZXRKU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2VWYWx1ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAidmFsdWUiKTsKIH0KQEAgLTI1Miw3ICsyNTIsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUmVh
ZG9ubHlWYWx1ZUdldHRlcihKUwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExTZXJpYWxpemVkU2NyaXB0VmFsdWU8U2VyaWFsaXplZFNjcmlwdFZhbHVlPj4obGV4
aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUs
IGltcGwucmVhZG9ubHlWYWx1ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVJlYWRvbmx5VmFsdWUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVJlYWRvbmx5VmFsdWUsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlPjo6Z2V0PGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVJlYWRv
bmx5VmFsdWVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWFkb25seVZhbHVlIik7CiB9CkBAIC0yNzAsNyAr
MjcwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZUNhY2hlZFZhbHVlR2V0dGVyKEpTR2wKICAgICByZXR1cm4gcmVzdWx0OwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZUNhY2hlZFZhbHVlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+OjpnZXQ8anNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjYWNoZWRWYWx1
ZSIpOwogfQpAQCAtMjg4LDcgKzI4OCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZVNldHRlcihKU0dsCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlPjo6c2V0PHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZUNhY2hlZFZhbHVlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJjYWNoZWRWYWx1ZSIpOwogfQpAQCAtMzAxLDcgKzMwMSw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQ
b3J0c0dldHRlcihKU0dsb2JhbE9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETFNlcXVlbmNlPElETEludGVyZmFjZTxNZXNzYWdlUG9ydD4+PihsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5w
b3J0cygpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVBvcnRzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQ
b3J0cywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+OjpnZXQ8anNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlUG9ydHNHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9y
OjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJwb3J0cyIpOwogfQpA
QCAtMzE5LDcgKzMxOSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRSZWFkb25seVZhbHVlR2V0CiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRSZWFkb25seVZhbHVlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VDYWNoZWRSZWFkb25seVZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZT46OmdldDxqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRSZWFkb25s
eVZhbHVlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY2FjaGVkUmVhZG9ubHlWYWx1ZSIpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNldExp
a2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNl
dExpa2UuY3BwCmluZGV4IGJmNDI5OTFhNTY0NzBlODVkMTljZmEyMTkxYjc1Yjc5Y2RhNzY4YjYu
LmUyNTk3ZTE5YzMwZTlhMDM2MDY3Njk2NzFiYzJkZGU3ZjYxMzMyMDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXRMaWtlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2V0TGlr
ZS5jcHAKQEAgLTYxLDkgKzYxLDkgQEAgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RT
ZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25EZWxldGUpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTZXRMaWtlQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RTZXRMaWtlQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNldExpa2VTaXplKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdFNldExpa2VDb25zdHJ1Y3Rvcik7
CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdFNldExpa2VDb25zdHJ1Y3Rvcik7
CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdFNldExpa2VTaXplKTsKIAogY2xhc3Mg
SlNUZXN0U2V0TGlrZVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmpl
Y3QgewogcHVibGljOgpAQCAtMTg3LDcgKzE4Nyw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVz
dFNldExpa2UqIElETE9wZXJhdGlvbjxKU1Rlc3RTZXRMaWtlPjo6Y2FzdChKU0dsb2JhbE9iamVj
CiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2V0TGlrZSo+KEpTQzo6Z2V0Vk0oJmxl
eGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNldExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0U2V0TGlrZUNvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMTk3LDcgKzE5Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RTZXRMaWtlOjpnZXRDb25zdHJ1Y3RvcihK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgp
KSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RTZXRMaWtlQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdFNldExpa2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTIxNyw3ICsyMTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0U2V0TGlrZVNpemVH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplYwogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExBbnk+KGxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIGZvcndhcmRTaXplVG9TZXRMaWtlKGxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNP
YmplY3QpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNldExp
a2VTaXplKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RTZXRMaWtlU2l6ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RTZXRMaWtlPjo6Z2V0PGpzVGVzdFNldExpa2VTaXplR2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2l6ZSIpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNldExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMuY3BwCmluZGV4IDE3
M2E5NjcyMzczZjVkMTI1OTMxOGNlNDM2OTYxZGFmNTNiZDZmMTIuLjFmYjE5YmRhOThmY2RkMDg5
Njk3YTY0ODc3YzgwNThiZTc5N2UyYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucy5jcHAKQEAgLTYxLDExICs2MSwxMSBAQCBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnNQcm90b3R5cGVGdW5jdGlvbgogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RTZXRMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNB
ZGQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zQWRkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2l6ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RTZXRMaWtl
V2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQWRkKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9uc0FkZCk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdFNldExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnNTaXplKTsKIAogY2xhc3MgSlNUZXN0U2V0TGlrZVdpdGhPdmVycmlk
ZGVuT3BlcmF0aW9uc1Byb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmpl
Y3QgewogcHVibGljOgpAQCAtMTg5LDcgKzE4OSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVz
dFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMqIElETE9wZXJhdGlvbjxKU1Rlc3RTZXRM
CiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9ucyo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhp
c1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNldExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9uc0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk5LDcgKzE5OSw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0Nv
bnN0cnVjdG9yKEpTCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RTZXRMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNU
T01fU0VUVEVSKHNldEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1
Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIyMCw3ICsyMjAsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0FkZEdldHRl
cihKU0dsb2JhbE9iagogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJ
RExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmFkZCgpKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnNBZGQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNBZGQsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U2V0TGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OmdldDxqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zQWRkR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYWRkIik7CiB9CkBAIC0yMzgsNyArMjM4LDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnNBZGRTZXR0ZXIoSlNHbG9iYWxPYmoKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNBZGQo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNBZGQsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OnNldDxzZXRKU1Rlc3RTZXRM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQWRkU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJhZGQiKTsKIH0KQEAgLTI1MCw3ICsyNTAsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9uc1NpemVHZXR0ZXIoSlNHbG9iYWxPYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExBbnk+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGZvcndh
cmRTaXplVG9TZXRMaWtlKGxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3QpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRl
bk9wZXJhdGlvbnNTaXplKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2l6ZSwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXRMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Z2V0PGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNTaXplR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2l6
ZSIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFN0cmluZ2lmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllci5jcHAKaW5kZXggNmRhMWYwOGRhNmJlYTNlZGVm
ZThjYjRiOGE2OWZiZTliNjcwZGQzMy4uODU4MGU1OThjZjRiNjI5ZDc0OTFiMDgxMDNhMWVmNjYy
NmRkYmM1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFN0cmluZ2lmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuY3BwCkBAIC01MCw4ICs1MCw4IEBAIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U3RyaW5naWZpZXJQcm90b3R5cGVGdW5jdGlv
blRvU3RyaW5nKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3Rvcik7CiAKIGNs
YXNzIEpTVGVzdFN0cmluZ2lmaWVyUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25G
aW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNjEsNyArMTYxLDcgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgSlNUZXN0U3RyaW5naWZpZXIqIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmllcj46OmNh
c3QoSlNHbG8KICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RTdHJpbmdpZmllcio+KEpT
Qzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVyQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVz
dFN0cmluZ2lmaWVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZN
JiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNzEsNyArMTcxLDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2EKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFN0cmlu
Z2lmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBw
cm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RTdHJpbmdpZmllckNvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYg
dm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RT
dHJpbmdpZmllckFub255bW91c09wZXJhdGlvbi5jcHAKaW5kZXggZWFlMDQ5NzNlMTA5Mjc2ZDYw
YjBmYzNkNDlmYjU1N2UwOTZlNTA1OS4uYjBkY2Q4NDYwNTU4YTRjNzNmMWViMWQ5ZDA0ZDI5N2U0
YjUwOGQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1v
dXNPcGVyYXRpb24uY3BwCkBAIC01MCw4ICs1MCw4IEBAIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Qcm90b3R5cGVGdW5jdGlvblRv
CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0U3RyaW5naWZp
ZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IpOwog
CiBjbGFzcyBKU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvblByb3RvdHlwZSBmaW5h
bCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTYxLDcgKzE2
MSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0
aW9uKiBJRExPcGVyYXRpb248SlNUZXN0U3RyaW5nCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8
SlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24qPihKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTcx
LDcgKzE3MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U3RyaW5naWZp
ZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0dsCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShKU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbjo6Z2V0Q29uc3RydWN0
b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmpl
Y3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U3RyaW5naWZpZXJBbm9u
eW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0U3RyaW5naWZpZXJBbm9ueW1v
dXNPcGVyYXRpb25Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmll
ck5hbWVkT3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uLmNwcAppbmRleCAzZDQwY2RiMjE3
NmFkMmY2NTM3NDVkYjYwMDEzYTVkODllNWVhYzk0Li5kNjU1MmI1MjhjMzhhNjdmYzhiOTdmZGM1
NDAxOGEwNmRjOTEwYmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFt
ZWRPcGVyYXRpb24uY3BwCkBAIC01MSw4ICs1MSw4IEBAIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvblByb3RvdHlwZUZ1bmN0aW9uVG9TdHJp
CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRP
cGVyYXRpb25Db25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3Rvcik7CiAKIGNsYXNzIEpTVGVzdFN0
cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Qcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05v
bkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE2Myw3ICsxNjMsNyBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uKiBJRExPcGVyYXRpb248SlNUZXN0
U3RyaW5naWZpZQogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdFN0cmluZ2lmaWVyTmFt
ZWRPcGVyYXRpb24qPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1l
LnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RT
dHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25D
b25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE3Myw3ICsxNzMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0ds
b2JhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9w
ZXJhdGlvbjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
cHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RT
dHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxl
bWVudGVkQXMuY3BwCmluZGV4IDdkYjVmZjdkYzM0OTNkY2ZiMTI5MmM2ZWI5YTIxNGI3NDNhYzE1
ZDguLjljMzBlZjI5YjlkZDYzNzg1OTEzYzBlZDQwZGZmYjFhNmZiNDhmYWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmll
ck9wZXJhdGlvbkltcGxlbWVudGVkQXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMu
Y3BwCkBAIC01MSw4ICs1MSw4IEBAIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U3Ry
aW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBlRnVuY3RpCiAKIC8vIEF0dHJp
YnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lm
aWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RTdHJpbmdpZmllck9w
ZXJhdGlvbkltcGxlbWVudGVkQXNDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9y
KTsKIAogY2xhc3MgSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJvdG90
eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0x
NjMsNyArMTYzLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRp
b25JbXBsZW1lbnRlZEFzKiBJRExPcGVyYXRpb248SlNUZXN0U3QKICAgICByZXR1cm4ganNEeW5h
bWljQ2FzdDxKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMqPihKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbklt
cGxlbWVudGVkQXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIoanNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3Ry
dWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0xNzMsNyArMTczLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNDb25zdHJ1Y3RvcigK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1w
bGVtZW50ZWRBczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5n
aWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nLmNwcAppbmRleCBjZWFmNjRhYjViZTI1ODRhYWI0
MWJhMGRhYmU1N2NjZTMyNzc0YmNlLi5lODc5ZjdmZTc2MTkxOTFlMGE5YmQ5NjY4YzlhZDNkZTIz
NmNkNDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25OYW1lZFRvU3RyaW5nLmNwcApAQCAtNTAsOCArNTAsOCBAQCBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ1Byb3RvdHlw
ZUZ1bmN0aQogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFt
ZWRUb1N0cmluZ0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVk
VG9TdHJpbmdDb25zdHJ1Y3Rvcik7CiAKIGNsYXNzIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9u
TmFtZWRUb1N0cmluZ1Byb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmpl
Y3QgewogcHVibGljOgpAQCAtMTYxLDcgKzE2MSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVz
dFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZyogSURMT3BlcmF0aW9uPEpTVGVzdFN0
CiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1l
ZFRvU3RyaW5nKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50
aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U3Ry
aW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9u
TmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTcxLDcgKzE3MSw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRv
U3RyaW5nQ29uc3RydWN0b3IoCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RTdHJp
bmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmc6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAot
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0
cmluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9T
dHJpbmdDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7
CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRP
bmx5QXR0cmlidXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlLmNwcAppbmRleCA5ZWY4MWIxNjk0
OTYyZjRkYTFlZjk4Zjc3ZDljZjc4MmEzOWIxODlkLi4xZjVjNjQyN2IyYTkwODk0NDU0ZTA0MmIy
ODczMjkxMjlkOTdlOWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVy
UmVhZE9ubHlBdHRyaWJ1dGUuY3BwCkBAIC01MSw5ICs1MSw5IEBAIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZVByb3RvdHlwZUZ1bmN0
aW9uVG9TCiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUlkZW50aWZpZXIoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0
cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0U3RyaW5naWZpZXJS
ZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUlkZW50aWZpZXIpOwogCiBjbGFzcyBK
U1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlUHJvdG90eXBlIGZpbmFsIDogcHVibGlj
IEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNjksNyArMTY5LDcgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZSogSURMT3Bl
cmF0aW9uPEpTVGVzdFN0cmluZ2kKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RTdHJp
bmdpZmllclJlYWRPbmx5QXR0cmlidXRlKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RTdHJpbmdpZmll
clJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewog
ICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNzksNyArMTc5LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0
cmlidXRlQ29uc3RydWN0b3IoSlNHbG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVz
dFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAot
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5F
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYg
dm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjAwLDcgKzIwMCw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlSWRlbnRpZmll
ckdldHRlcihKU0dsb2JhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5pZGVu
dGlmaWVyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U3Ry
aW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUlkZW50aWZpZXIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1
dGVJZGVudGlmaWVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGU+OjpnZXQ8anNUZXN0U3Ry
aW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUlkZW50aWZpZXJHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJpZGVu
dGlmaWVyIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZFdy
aXRlQXR0cmlidXRlLmNwcAppbmRleCA3YzNkNGNiNjA3OWRlZjFiMzI4YWZlNmVlMTk2NDZiODYz
NmQzMzUxLi42MDJjMDhjZThjZjY1NTUxZDU0NDU2YzAyYWU0ZDIyYTg3MTBhODBjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5n
aWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZS5jcHAK
QEAgLTUxLDEwICs1MSwxMCBAQCBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmlu
Z2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlUHJvdG90eXBlRnVuY3Rpb25UbwogCiAvLyBBdHRyaWJ1
dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTdHJpbmdpZmll
clJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U3RyaW5naWZpZXJSZWFk
V3JpdGVBdHRyaWJ1dGVJZGVudGlmaWVyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVJZGVudGlmaWVyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVD
b25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdFN0cmluZ2lm
aWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUlkZW50aWZpZXIpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJp
YnV0ZUlkZW50aWZpZXIpOwogCiBjbGFzcyBKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJp
YnV0ZVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVi
bGljOgpAQCAtMTcwLDcgKzE3MCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdFN0cmluZ2lm
aWVyUmVhZFdyaXRlQXR0cmlidXRlKiBJRExPcGVyYXRpb248SlNUZXN0U3RyaW5nCiAgICAgcmV0
dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUqPihK
U0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTdHJpbmdpZmllclJlYWRX
cml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMTgwLDcgKzE4MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0dsCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJp
YnV0ZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJv
dG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTIwMSw3ICsyMDEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0U3Ry
aW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVJZGVudGlmaWVyR2V0dGVyKEpTR2xvYgogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuaWRlbnRpZmllcigpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmli
dXRlSWRlbnRpZmllcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIoanNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVJZGVudGlmaWVyLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFN0cmluZ2lm
aWVyUmVhZFdyaXRlQXR0cmlidXRlPjo6Z2V0PGpzVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0
cmlidXRlSWRlbnRpZmllckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImlkZW50aWZpZXIiKTsKIH0KQEAgLTIx
OSw3ICsyMTksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0U3RyaW5naWZpZXJSZWFk
V3JpdGVBdHRyaWJ1dGVJZGVudGlmaWVyU2V0dGVyKEpTR2xvYgogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRy
aWJ1dGVJZGVudGlmaWVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0
ZUlkZW50aWZpZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGU+
OjpzZXQ8c2V0SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVJZGVudGlmaWVyU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJpZGVu
dGlmaWVyIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAppbmRleCA5MGNkNzA2YzJlMzM5YzJjZDkx
MmRmNDA3NjI0MmNjYzZhN2MwYzlmLi4yMzgzZTM4NTgyYmVmN2Y3MjFlNDQwMWFiODM3ZWYwMDY3
MDFhMTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0VHlwZWRlZnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKQEAgLTgzLDIxICs4MywyMSBAQCBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoRXhjZXB0aW9uKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xv
bmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RU
eXBlZGVmc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdFR5cGVkZWZzU2VyaWFsaXplZFNjcmlwdFZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yVGVzdFN1Yk9i
aihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFR5cGVkZWZz
QXR0cmlidXRlV2l0aENsYW1wKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0VHlw
ZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXAoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJ
blR5cGVkZWYoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dFR5cGVkZWZzQnVmZmVyU291cmNlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdFR5cGVkZWZzQnVmZmVyU291cmNlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0VHlwZWRlZnNEb21UaW1lU3RhbXBBdHRyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0VHlwZWRlZnNEb21UaW1lU3RhbXBBdHRyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0VHlwZWRlZnNDb25zdHJ1Y3Rvcik7CitK
U0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdB
dHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0VHlwZWRlZnNVbnNpZ25l
ZExvbmdMb25nQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdFR5cGVkZWZz
U2VyaWFsaXplZFNjcmlwdFZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0VHlwZWRlZnNTZXJpYWxpemVkU2NyaXB0VmFsdWUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yVGVzdFN1Yk9iaik7CitKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXApOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFt
cEluVHlwZWRlZik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdFR5cGVkZWZz
QXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0VHlwZWRlZnNCdWZmZXJTb3VyY2VBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0VHlwZWRlZnNCdWZmZXJTb3VyY2VBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNUZXN0VHlwZWRlZnNEb21UaW1lU3RhbXBBdHRyKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0VHlwZWRlZnNEb21UaW1lU3RhbXBBdHRyKTsKIAogY2xhc3Mg
SlNUZXN0VHlwZWRlZnNQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2Jq
ZWN0IHsKIHB1YmxpYzoKQEAgLTI4Miw3ICsyODIsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rl
c3RUeXBlZGVmcyogSURMT3BlcmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Y2FzdChKU0dsb2JhbE9i
agogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzKj4oSlNDOjpnZXRWTSgm
bGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0VHlwZWRlZnNDb25z
dHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTI5Miw3ICsyOTIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0VHlwZWRlZnM6OmdldENvbnN0cnVj
dG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2Jq
ZWN0KCkpKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFR5cGVkZWZzQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNU
T01fU0VUVEVSKHNldEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0zMTMsNyArMzEzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFR5cGVk
ZWZzVW5zaWduZWRMb25nTG9uZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGwKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMVW5zaWduZWRMb25nTG9uZz4obGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bnNpZ25lZExvbmdMb25nQXR0cigp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFR5cGVkZWZzVW5z
aWduZWRMb25nTG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+OjpnZXQ8
anNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVuc2ln
bmVkTG9uZ0xvbmdBdHRyIik7CiB9CkBAIC0zMzEsNyArMzMxLDcgQEAgc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHJTZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdFR5cGVkZWZzVW5z
aWduZWRMb25nTG9uZ0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+OjpzZXQ8c2V0SlNUZXN0
VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidW5zaWduZWRMb25nTG9uZ0F0dHIiKTsKIH0KQEAg
LTM0NCw3ICszNDQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0VHlwZWRlZnNTZXJp
YWxpemVkU2NyaXB0VmFsdWVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxP
YmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5zZXJpYWxpemVkU2NyaXB0VmFsdWUoKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RUeXBlZGVmc1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0VHlwZWRlZnNTZXJpYWxpemVkU2NyaXB0VmFsdWUsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+OjpnZXQ8anNUZXN0
VHlwZWRlZnNTZXJpYWxpemVkU2NyaXB0VmFsdWVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzZXJpYWxpemVk
U2NyaXB0VmFsdWUiKTsKIH0KQEAgLTM2Miw3ICszNjIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0VHlwZWRlZnNTZXJpYWxpemVkU2NyaXB0VmFsdWVTZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RU
eXBlZGVmc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0VHlwZWRlZnNTZXJpYWxp
emVkU2NyaXB0VmFsdWUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+OjpzZXQ8c2V0SlNUZXN0VHlw
ZWRlZnNTZXJpYWxpemVkU2NyaXB0VmFsdWVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIpOwogfQpAQCAt
MzczLDcgKzM3Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0NvbnN0
cnVjdG9yVGVzdFN1Yk9iakdldHRlcihKU0dsb2JhbE9iamVjdCYKICAgICByZXR1cm4gSlNUZXN0
U3ViT2JqOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclRlc3RTdWJPYmooSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3JU
ZXN0U3ViT2JqLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdFR5cGVkZWZzPjo6Z2V0U3RhdGljPGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3JU
ZXN0U3ViT2JqR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFN1
Yk9iaiIpOwogfQpAQCAtMzg2LDcgKzM4Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcEdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4CiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETENsYW1wQWRhcHRvcjxJ
RExVbnNpZ25lZExvbmdMb25nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1w
bC5hdHRyaWJ1dGVXaXRoQ2xhbXAoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xh
bXAsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0VHlwZWRlZnM+OjpnZXQ8anNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJhdHRyaWJ1dGVXaXRoQ2xhbXAiKTsKIH0KQEAgLTQwNCw3ICs0MDQsNyBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBTZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFR5cGVkZWZzPjo6c2V0
PHNldEpTVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJhdHRyaWJ1dGVXaXRoQ2xhbXAiKTsK
IH0KQEAgLTQxNyw3ICs0MTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0VHlwZWRl
ZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWZHZXR0ZXIoSlNHbG9iYWxPYgogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExDbGFtcEFkYXB0b3I8SURMTG9uZz4+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYXR0cmlidXRlV2l0aENsYW1w
SW5UeXBlZGVmKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1w
SW5UeXBlZGVmLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdFR5cGVkZWZzPjo6Z2V0PGpzVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1w
SW5UeXBlZGVmR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmIik7
CiB9CkBAIC00MzUsNyArNDM1LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdFR5cGVk
ZWZzQXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmU2V0dGVyKEpTR2xvYmFsT2IKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFR5cGVkZWZzQXR0cmli
dXRlV2l0aENsYW1wSW5UeXBlZGVmKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhD
bGFtcEluVHlwZWRlZiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RUeXBlZGVmcz46OnNldDxzZXRKU1Rlc3RUeXBl
ZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcEluVHlwZWRlZlNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiYXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVm
Iik7CiB9CkBAIC00NDgsNyArNDQ4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFR5
cGVkZWZzQnVmZmVyU291cmNlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWMKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMVW5pb248SURMQXJyYXlCdWZm
ZXJWaWV3LCBJRExBcnJheUJ1ZmZlcj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0
Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLmJ1ZmZlclNvdXJjZUF0dHIoKSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RUeXBlZGVmc0J1ZmZlclNv
dXJjZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpz
VGVzdFR5cGVkZWZzQnVmZmVyU291cmNlQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RUeXBlZGVmcz46OmdldDxqc1Rlc3RUeXBlZGVm
c0J1ZmZlclNvdXJjZUF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJidWZmZXJTb3VyY2VBdHRyIik7CiB9
CkBAIC00NjYsNyArNDY2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdFR5cGVkZWZz
QnVmZmVyU291cmNlQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWMKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFR5cGVkZWZzQnVmZmVyU291
cmNlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitKU0NfREVGSU5FX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0VHlwZWRlZnNCdWZmZXJTb3VyY2VBdHRyLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdFR5cGVkZWZzPjo6c2V0PHNldEpTVGVzdFR5cGVkZWZzQnVmZmVyU291cmNlQXR0clNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiYnVmZmVy
U291cmNlQXR0ciIpOwogfQpAQCAtNDc5LDcgKzQ3OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RUeXBlZGVmc0RvbVRpbWVTdGFtcEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFVuc2lnbmVk
TG9uZ0xvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZG9tVGltZVN0
YW1wQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFR5
cGVkZWZzRG9tVGltZVN0YW1wQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIoanNUZXN0VHlwZWRlZnNEb21UaW1lU3RhbXBBdHRyLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFR5cGVkZWZzPjo6Z2V0
PGpzVGVzdFR5cGVkZWZzRG9tVGltZVN0YW1wQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImRvbVRpbWVT
dGFtcEF0dHIiKTsKIH0KQEAgLTQ5Nyw3ICs0OTcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0VHlwZWRlZnNEb21UaW1lU3RhbXBBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
YwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0VHlw
ZWRlZnNEb21UaW1lU3RhbXBBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RUeXBlZGVmc0RvbVRpbWVTdGFtcEF0
dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+OjpzZXQ8c2V0SlNUZXN0VHlwZWRlZnNEb21UaW1l
U3RhbXBBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJkb21UaW1lU3RhbXBBdHRyIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNXb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNXb3JrZXJHbG9iYWxTY29wZS5j
cHAKaW5kZXggZWJkNGZjZDZjYmMwMDgwZDllOGIxOTk3YjI0MzYxZjg2ZDAyODViNS4uZmYwNWNi
Njk4MzI3ODU0YjgzZDhkMGYzYzY2ODljNzkxYTZlNzBlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTV29ya2VyR2xvYmFsU2NvcGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtlckdsb2Jh
bFNjb3BlLmNwcApAQCAtNTAsMTggKzUwLDE4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8v
IEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzV29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNXb3JrZXJHbG9iYWxTY29wZUV4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0Nv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNXb3JrZXJHbG9iYWxTY29w
ZUV4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1dvcmtlckdsb2JhbFNjb3BlVGVzdERlZmF1bHRUb0pT
T05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNX
b3JrZXJHbG9iYWxTY29wZVRlc3ROb2RlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJB
VElPTiBzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdE5vZGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNXb3JrZXJHbG9iYWxTY29wZVRlc3RP
YmplY3RDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTV29ya2VyR2xv
YmFsU2NvcGVUZXN0T2JqZWN0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0UHJvbWlzZVJlamVjdGlvbkV2
ZW50Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1dvcmtlckdsb2Jh
bFNjb3BlVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNXb3JrZXJHbG9iYWxTY29wZUV4cG9zZWRU
b1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIo
c2V0SlNXb3JrZXJHbG9iYWxTY29wZUV4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9y
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNXb3JrZXJHbG9iYWxTY29wZVRlc3REZWZh
dWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNU
T01fU0VUVEVSKHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVk
QnlFeHBvc2VkQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1dvcmtl
ckdsb2JhbFNjb3BlVGVzdE5vZGVDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0Tm9kZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNXb3JrZXJHbG9iYWxTY29wZVRlc3RPYmplY3RDb25zdHJ1Y3Rv
cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0
T2JqZWN0Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1dvcmtlckds
b2JhbFNjb3BlVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9TRVRURVIoc2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3RQcm9taXNlUmVqZWN0
aW9uRXZlbnRDb25zdHJ1Y3Rvcik7CiAKIHVzaW5nIEpTV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTV29ya2VyR2xvYmFsU2Nv
cGU+OwogCkBAIC0xNzEsNyArMTcxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNXb3JrZXJHbG9i
YWxTY29wZSogSURMQXR0cmlidXRlPEpTV29ya2VyR2xvYmFsU2NvcGU+OjpjYXN0KEoKICAgICBy
ZXR1cm4ganNEeW5hbWljQ2FzdDxKU1dvcmtlckdsb2JhbFNjb3BlKj4oSlNDOjpnZXRWTSgmbGV4
aWNhbEdsb2JhbE9iamVjdCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1dvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzV29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4MSw3ICsxODEsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNXb3JrZXJHbG9iYWxT
Y29wZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJv
dG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNX
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1dvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZN
JiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMDAsNyArMjAwLDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzV29ya2VyR2xvYmFsU2NvcGVFeHBvc2VkVG9Xb3JrZXJBbmRXaW5k
b3dDb25zdHJ1Y3RvckdldHQKICAgICByZXR1cm4gSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3c6
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2Jq
ZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1dvcmtlckdsb2JhbFNjb3BlRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzV29ya2VyR2xvYmFs
U2NvcGVFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1dvcmtlckdsb2JhbFNjb3BlPjo6
Z2V0PGpzV29ya2VyR2xvYmFsU2NvcGVFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3Rv
ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIkV4cG9zZWRUb1dvcmtl
ckFuZFdpbmRvdyIpOwogfQpAQCAtMjEyLDcgKzIxMiw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1dvcmtlckdsb2JhbFNjb3BlRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3JT
ZXR0CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIkV4cG9zZWRUb1dvcmtl
ckFuZFdpbmRvdyIpLCBzdHJsZW4oIkV4cG9zZWRUb1dvcmtlckFuZFdpbmRvdyIpKSwgdmFsdWUp
OwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNXb3JrZXJHbG9iYWxTY29wZUV4cG9zZWRU
b1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1dvcmtlckdsb2JhbFNjb3BlRXhw
b3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNXb3JrZXJHbG9iYWxT
Y29wZT46OnNldDxzZXRKU1dvcmtlckdsb2JhbFNjb3BlRXhwb3NlZFRvV29ya2VyQW5kV2luZG93
Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgIkV4cG9zZWRUb1dvcmtlckFuZFdpbmRvdyIpOwogfQpAQCAtMjIzLDcgKzIyMyw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1dvcmtlckdsb2JhbFNjb3BlVGVzdERlZmF1bHRU
b0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0CiAgICAgcmV0dXJuIEpTVGVzdERlZmF1bHRUb0pT
T05GaWx0ZXJlZEJ5RXhwb3NlZDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0RGVmYXVsdFRvSlNPTkZp
bHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0RGVmYXVsdFRvSlNPTkZpbHRl
cmVkQnlFeHBvc2VkQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNXb3JrZXJHbG9iYWxTY29wZT46OmdldDxqc1dvcmtlckdsb2Jh
bFNjb3BlVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdERlZmF1bHRUb0pTT05GaWx0
ZXJlZEJ5RXhwb3NlZCIpOwogfQpAQCAtMjM1LDcgKzIzNSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3Nl
ZENvbnN0CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3REZWZhdWx0
VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQiKSwgc3RybGVuKCJUZXN0RGVmYXVsdFRvSlNPTkZpbHRl
cmVkQnlFeHBvc2VkIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1dv
cmtlckdsb2JhbFNjb3BlVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5
RXhwb3NlZENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTV29ya2VyR2xvYmFsU2NvcGU+OjpzZXQ8c2V0
SlNXb3JrZXJHbG9iYWxTY29wZVRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25z
dHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAiVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZCIpOwogfQpAQCAtMjQ2LDcg
KzI0Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1dvcmtlckdsb2JhbFNjb3BlVGVzdE5v
ZGVDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVGVzdE5vZGU6
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2Jq
ZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1dvcmtlckdsb2JhbFNjb3BlVGVzdE5vZGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNXb3JrZXJHbG9iYWxTY29wZVRlc3ROb2RlQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNXb3JrZXJHbG9iYWxTY29wZT46OmdldDxqc1dvcmtlckdsb2JhbFNjb3BlVGVzdE5vZGVD
b25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RO
b2RlIik7CiB9CkBAIC0yNTgsNyArMjU4LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTV29y
a2VyR2xvYmFsU2NvcGVUZXN0Tm9kZUNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWMKICAg
ICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5vZGUiKSwgc3RybGVuKCJU
ZXN0Tm9kZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIEpJVF9PUEVSQVRJT04gc2V0SlNXb3JrZXJH
bG9iYWxTY29wZVRlc3ROb2RlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTV29ya2VyR2xvYmFsU2NvcGVU
ZXN0Tm9kZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTV29ya2VyR2xvYmFsU2NvcGU+OjpzZXQ8c2V0
SlNXb3JrZXJHbG9iYWxTY29wZVRlc3ROb2RlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROb2RlIik7CiB9CkBAIC0y
NjksNyArMjY5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzV29ya2VyR2xvYmFsU2NvcGVU
ZXN0T2JqZWN0Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmoKICAgICByZXR1cm4gSlNUZXN0
T2JqOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhp
c09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNXb3JrZXJHbG9iYWxTY29wZVRlc3RPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNXb3JrZXJHbG9iYWxTY29wZVRlc3RP
YmplY3RDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1dvcmtlckdsb2JhbFNjb3BlPjo6Z2V0PGpzV29ya2VyR2xvYmFsU2NvcGVU
ZXN0T2JqZWN0Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJUZXN0T2JqZWN0Iik7CiB9CkBAIC0yODEsNyArMjgxLDcgQEAgc3RhdGljIGlubGluZSBi
b29sIHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0T2JqZWN0Q29uc3RydWN0b3JTZXR0ZXIoSlNH
bG9iYWxPYmoKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE9iamVj
dCIpLCBzdHJsZW4oIlRlc3RPYmplY3QiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0T2JqZWN0Q29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpT
V29ya2VyR2xvYmFsU2NvcGVUZXN0T2JqZWN0Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNXb3JrZXJH
bG9iYWxTY29wZT46OnNldDxzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdE9iamVjdENvbnN0cnVj
dG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJUZXN0T2JqZWN0Iik7CiB9CkBAIC0yOTIsNyArMjkyLDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0
b3JHZXQKICAgICByZXR1cm4gSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50OjpnZXRDb25zdHJ1
Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxP
YmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNXb3JrZXJHbG9i
YWxTY29wZVRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNXb3JrZXJHbG9iYWxTY29wZVRlc3RQ
cm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1dvcmtlckdsb2JhbFNjb3BlPjo6Z2V0PGpzV29y
a2VyR2xvYmFsU2NvcGVUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3JHZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0UHJvbWlzZVJlamVjdGlvbkV2
ZW50Iik7CiB9CkBAIC0zMDQsNyArMzA0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTV29y
a2VyR2xvYmFsU2NvcGVUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3JTZXQKICAg
ICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFByb21pc2VSZWplY3Rpb25F
dmVudCIpLCBzdHJsZW4oIlRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQiKSksIHZhbHVlKTsKIH0K
IAotYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0UHJvbWlzZVJl
amVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0UHJv
bWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNXb3JrZXJHbG9iYWxTY29w
ZT46OnNldDxzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENv
bnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Iik7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNXb3JrbGV0R2xvYmFsU2NvcGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTV29ya2xldEds
b2JhbFNjb3BlLmNwcAppbmRleCBlZjNjYmIwY2I1ZjkyYzk0NjQ1YTk5YjY4YzI0ZTU0NmM4YWU2
NDUxLi4zMTg3NjE4M2RhN2ZhOTdmMjhmNTA5ZmY0MTcxZjQ2OTcyZWM2Y2E5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNXb3JrbGV0R2xvYmFs
U2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAgLTQ0LDggKzQ0LDggQEAgdXNpbmcgbmFtZXNwYWNl
IEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik7
CiAKIHVzaW5nIEpTV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVj
dG9yTm90Q29uc3RydWN0YWJsZTxKU1dvcmtsZXRHbG9iYWxTY29wZT47CiAKQEAgLTExNiw3ICsx
MTYsNyBAQCBKU1ZhbHVlIEpTV29ya2xldEdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1Y3RvcihWTSYg
dm0sIGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAgIHJldHVybiBnZXRET01Db25zdHJ1
Y3RvcjxKU1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yPih2bSwgKmpzQ2FzdDxjb25zdCBK
U0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzV29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0xMjYsNyArMTI2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXgKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTV29ya2xldEdsb2JhbFNjb3BlOjpnZXRD
b25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmds
b2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgSklUX09QRVJBVElPTiBzZXRKU1dvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9y
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfYXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXku
Y3BwCmluZGV4IGJjNjhkNTA2MjgwZTE0ZjM1NDkxMmQ1OTJlYmU1YzU5MWNhNmU0YWEuLjgwMmRj
YTBiMTIzYjdjMjdkYmRiYjNlOGIxMDgwMjIzNmQwMGRhNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9hcnJheS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAK
IGNvbnN0IENsYXNzSW5mbyBSdW50aW1lQXJyYXk6OnNfaW5mbyA9IHsgIlJ1bnRpbWVBcnJheSIs
ICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoUnVu
dGltZUFycmF5KSB9OwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBhcnJh
eUxlbmd0aEdldHRlcihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpOworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoYXJyYXlMZW5ndGhHZXR0ZXIp
OwogCiBSdW50aW1lQXJyYXk6OlJ1bnRpbWVBcnJheShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0
dXJlKQogICAgIDogSlNBcnJheSh2bSwgc3RydWN0dXJlLCBudWxscHRyKQpAQCAtNjQsNyArNjQs
NyBAQCB2b2lkIFJ1bnRpbWVBcnJheTo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCiAgICAgc3RhdGlj
X2Nhc3Q8UnVudGltZUFycmF5Kj4oY2VsbCktPlJ1bnRpbWVBcnJheTo6flJ1bnRpbWVBcnJheSgp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGFycmF5TGVuZ3RoR2V0dGVyKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihhcnJheUxlbmd0aEdl
dHRlciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcAppbmRleCAyZTk4NTQ3MGQw
NGJjMzQzOGU3YmJmZGJlZjgwMTBlNWM0OTMxY2MyLi42ZjViMDkwNGJhOGQyNDk0NjkwYjJjZDM5
YjA3YjBlOTBjY2U1OWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9tZXRob2QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5j
cHAKQEAgLTQ0LDcgKzQ0LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEJpbmRpbmdzOwogV0VCQ09SRV9F
WFBPUlQgY29uc3QgQ2xhc3NJbmZvIFJ1bnRpbWVNZXRob2Q6OnNfaW5mbyA9IHsgIlJ1bnRpbWVN
ZXRob2QiLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKFJ1bnRpbWVNZXRob2QpIH07CiAKIHN0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGNhbGxSdW50aW1lTWV0aG9kKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG1ldGhvZExlbmd0aEdldHRlcihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
bWV0aG9kTGVuZ3RoR2V0dGVyKTsKIAogUnVudGltZU1ldGhvZDo6UnVudGltZU1ldGhvZChWTSYg
dm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBNZXRob2QqIG1ldGhvZCkKICAgICAvLyBDYWxsZXJz
IHdpbGwgbmVlZCB0byBwYXNzIGluIHRoZSByaWdodCBnbG9iYWwgb2JqZWN0IGNvcnJlc3BvbmRp
bmcgdG8gdGhpcyBuYXRpdmUgb2JqZWN0ICJtZXRob2QiLgpAQCAtNTksNyArNTksNyBAQCB2b2lk
IFJ1bnRpbWVNZXRob2Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgY29uc3QgU3RyaW5nJiBpZGVu
dCkKICAgICBBU1NFUlQoaW5oZXJpdHModm0sIGluZm8oKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG1ldGhvZExlbmd0aEdldHRlcihKU0dsb2JhbE9iamVjdCogZXhlYywg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIobWV0aG9kTGVuZ3RoR2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBleGVj
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCmluZGV4IDg4YjJkZTg3NWRmMWZhYWMw
ZGEwODFlY2JkMWE4NTk1YzllOWQ4ODAuLmU3NTllNGQwYzdlNzkxZWVhMjA1YTZlNWVjZTkzMGEx
NDZhNzNjNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcApAQCAt
NDEsOSArNDEsOSBAQCBXRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gUnVudGltZU9iamVj
dDo6c19pbmZvID0geyAiUnVudGltZU9iamVjdCIsICZCYXNlOgogc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oY2FsbFJ1bnRpbWVPYmplY3QpOwogc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oY2FsbFJ1bnRpbWVDb25zdHJ1Y3Rvcik7CiAKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGZhbGxiYWNrT2JqZWN0R2V0dGVyKEpTR2xvYmFsT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBmaWVsZEdldHRlcihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gbWV0aG9k
R2V0dGVyKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihmYWxsYmFja09iamVjdEdldHRlcik7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihmaWVsZEdldHRlcik7CitzdGF0aWMgSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihtZXRob2RHZXR0ZXIpOwogCiBSdW50aW1lT2JqZWN0OjpS
dW50aW1lT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZlB0cjxJbnN0YW5j
ZT4mJiBpbnN0YW5jZSkKICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKQEAgLTcwLDcgKzcwLDcg
QEAgdm9pZCBSdW50aW1lT2JqZWN0OjppbnZhbGlkYXRlKCkKICAgICBtX2luc3RhbmNlID0gbnVs
bHB0cjsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBmYWxsYmFja09iamVjdEdl
dHRlcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGZhbGxiYWNrT2JqZWN0R2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5
TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05MSw3ICs5MSw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gZmFsbGJhY2tPYmplY3RHZXR0ZXIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGZpZWxkR2V0dGVyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoZmllbGRH
ZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKIHsgICAgCiAgICAgVk0m
IHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMTMsNyArMTEzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBmaWVsZEdldHRlcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW4KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gbWV0aG9kR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIobWV0aG9kR2V0dGVyLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb21qaXQvRE9NSklUSGVscGVycy5oIGIvU291
cmNlL1dlYkNvcmUvZG9taml0L0RPTUpJVEhlbHBlcnMuaAppbmRleCBhYzg4MzUwYTY1YmIxMDMy
NjMwNDBlNjBjNzEzMmRmNDhmOWY1Yjk4Li41ZGEzYjRjYTllMTUzZTAwZGQ2MzE2NWE5MzJjYzFl
YzdlMGMyOTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb21qaXQvRE9NSklUSGVscGVy
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbWppdC9ET01KSVRIZWxwZXJzLmgKQEAgLTU1LDEz
ICs1NSw4IEBAIGlubGluZSBDQ2FsbEhlbHBlcnM6Okp1bXAgYnJhbmNoSWZOb3RXZWFrSXNMaXZl
KENDYWxsSGVscGVycyYgaml0LCBHUFJSZWcgd2Vha0ltCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IFdyYXBwZWROb2RlPgotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIHRvV3JhcHBl
clNsb3coSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB2b2lkKiByZXN1bHQpCitK
U0M6OkVuY29kZWRKU1ZhbHVlIHRvV3JhcHBlclNsb3dJbXBsKEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgdm9pZCogcmVzdWx0KQogewotICAgIEFTU0VSVChyZXN1bHQpOwotICAg
IEFTU0VSVChnbG9iYWxPYmplY3QpOwotICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwotICAgIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwotICAgIEpTQzo6SklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2Vy
KHZtLCBjYWxsRnJhbWUpOwogICAgIHJldHVybiBKU0M6OkpTVmFsdWU6OmVuY29kZSh0b0pTKGds
b2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3Qp
LCAqc3RhdGljX2Nhc3Q8V3JhcHBlZE5vZGUqPihyZXN1bHQpKSk7CiB9CiAKQEAgLTE5OCw2ICsx
OTMsMTYgQEAgaW5saW5lIENDYWxsSGVscGVyczo6SnVtcCBicmFuY2hUZXN0SXNIVE1MRmxhZ09u
Tm9kZShNYWNyb0Fzc2VtYmxlciYgaml0LCBDQ2FsbEgKICAgICByZXR1cm4gaml0LmJyYW5jaFRl
c3QzMihjb25kaXRpb24sIENDYWxsSGVscGVyczo6QWRkcmVzcyhub2RlQWRkcmVzcywgTm9kZTo6
bm9kZUZsYWdzTWVtb3J5T2Zmc2V0KCkpLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihOb2Rl
OjpmbGFnSXNIVE1MKCkpKTsKIH0KIAorZXh0ZXJuICJDIiB7CisKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uVG9KU05vZGUsIEpTQzo6RW5jb2RlZEpTVmFsdWUsIChKU0M6OkpT
R2xvYmFsT2JqZWN0Kiwgdm9pZCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uVG9KU0NvbnRhaW5lck5vZGUsIEpTQzo6RW5jb2RlZEpTVmFsdWUsIChKU0M6OkpTR2xvYmFs
T2JqZWN0Kiwgdm9pZCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9K
U0VsZW1lbnQsIEpTQzo6RW5jb2RlZEpTVmFsdWUsIChKU0M6OkpTR2xvYmFsT2JqZWN0Kiwgdm9p
ZCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9KU0hUTUxFbGVtZW50
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCAoSlNDOjpKU0dsb2JhbE9iamVjdCosIHZvaWQqKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvSlNEb2N1bWVudCwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgKEpTQzo6SlNHbG9iYWxPYmplY3QqLCB2b2lkKikpOworCit9CisKIH0gfQog
CiBJR05PUkVfV0FSTklOR1NfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb21qaXQv
SlNEb2N1bWVudERPTUpJVC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb21qaXQvSlNEb2N1bWVudERP
TUpJVC5jcHAKaW5kZXggMTZlNTg4ZjdhN2M0NDJkMjQyNTAwNDQ2NTMyNDM0NzZmZmRjZTEwNi4u
ZjhlODU0ZmExNjY3NWRkNTgzOWIzMjVjZmUyOGFjZTJmMmE1MzYzMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9taml0L0pTRG9jdW1lbnRET01KSVQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbWppdC9KU0RvY3VtZW50RE9NSklULmNwcApAQCAtNjAsNyArNjAsNyBAQCBSZWY8SlND
OjpET01KSVQ6OkNhbGxET01HZXR0ZXJTbmlwcGV0PiBjb21waWxlRG9jdW1lbnREb2N1bWVudEVs
ZW1lbnRBdHRyaWJ1dGUoKQogICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MoZG9jdW1lbnQsIEpTRG9jdW1lbnQ6Om9mZnNldE9mV3JhcHBlZCgpKSwgc2NyYXRjaCk7CiAg
ICAgICAgIERPTUpJVDo6bG9hZERvY3VtZW50RWxlbWVudChqaXQsIHNjcmF0Y2gsIHNjcmF0Y2gp
OwogICAgICAgICBhdXRvIG51bGxDYXNlID0gaml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxIZWxwZXJz
OjpaZXJvLCBzY3JhdGNoKTsKLSAgICAgICAgRE9NSklUOjp0b1dyYXBwZXI8RWxlbWVudD4oaml0
LCBwYXJhbXMsIHNjcmF0Y2gsIGdsb2JhbE9iamVjdCwgcmVzdWx0LCBET01KSVQ6OnRvV3JhcHBl
clNsb3c8RWxlbWVudD4sIGdsb2JhbE9iamVjdFZhbHVlKTsKKyAgICAgICAgRE9NSklUOjp0b1dy
YXBwZXI8RWxlbWVudD4oaml0LCBwYXJhbXMsIHNjcmF0Y2gsIGdsb2JhbE9iamVjdCwgcmVzdWx0
LCBET01KSVQ6Om9wZXJhdGlvblRvSlNFbGVtZW50LCBnbG9iYWxPYmplY3RWYWx1ZSk7CiAgICAg
ICAgIGF1dG8gZG9uZSA9IGppdC5qdW1wKCk7CiAKICAgICAgICAgbnVsbENhc2UubGluaygmaml0
KTsKQEAgLTEyNyw3ICsxMjcsNyBAQCBSZWY8SlNDOjpET01KSVQ6OkNhbGxET01HZXR0ZXJTbmlw
cGV0PiBjb21waWxlRG9jdW1lbnRCb2R5QXR0cmlidXRlKCkKICAgICAgICAgaml0Lmp1bXAoKS5s
aW5rVG8obG9vcFN0YXJ0LCAmaml0KTsKIAogICAgICAgICBzdWNjZXNzQ2FzZXMubGluaygmaml0
KTsKLSAgICAgICAgRE9NSklUOjp0b1dyYXBwZXI8SFRNTEVsZW1lbnQ+KGppdCwgcGFyYW1zLCBz
Y3JhdGNoMSwgZ2xvYmFsT2JqZWN0LCByZXN1bHQsIERPTUpJVDo6dG9XcmFwcGVyU2xvdzxIVE1M
RWxlbWVudD4sIGdsb2JhbE9iamVjdFZhbHVlKTsKKyAgICAgICAgRE9NSklUOjp0b1dyYXBwZXI8
SFRNTEVsZW1lbnQ+KGppdCwgcGFyYW1zLCBzY3JhdGNoMSwgZ2xvYmFsT2JqZWN0LCByZXN1bHQs
IERPTUpJVDo6b3BlcmF0aW9uVG9KU0hUTUxFbGVtZW50LCBnbG9iYWxPYmplY3RWYWx1ZSk7CiAg
ICAgICAgIGF1dG8gZG9uZSA9IGppdC5qdW1wKCk7CiAKICAgICAgICAgbnVsbENhc2VzLmxpbmso
JmppdCk7CkBAIC0xNDAsNiArMTQwLDYwIEBAIFJlZjxKU0M6OkRPTUpJVDo6Q2FsbERPTUdldHRl
clNuaXBwZXQ+IGNvbXBpbGVEb2N1bWVudEJvZHlBdHRyaWJ1dGUoKQogICAgIHJldHVybiBzbmlw
cGV0OwogfQogCitleHRlcm4gIkMiIHsKKworSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblRvSlNFbGVtZW50LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCAoSlNDOjpKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCB2b2lkKiByZXN1bHQpKQoreworICAgIEFTU0VSVChyZXN1bHQpOwor
ICAgIEFTU0VSVChnbG9iYWxPYmplY3QpOworICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOworICAgIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOworICAgIEpTQzo6SklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBjYWxsRnJhbWUpOworICAgIHJldHVybiBET01KSVQ6OnRvV3JhcHBlclNsb3dJbXBs
PEVsZW1lbnQ+KGdsb2JhbE9iamVjdCwgcmVzdWx0KTsKK30KKworSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblRvSlNIVE1MRWxlbWVudCwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgKEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgdm9pZCogcmVzdWx0KSkKK3sKKyAgICBB
U1NFUlQocmVzdWx0KTsKKyAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0KTsKKyAgICBKU0M6OlZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKU0M6OkpJVE9wZXJhdGlvblByb2xvZ3VlQ2Fs
bEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKKyAgICByZXR1cm4gRE9NSklUOjp0
b1dyYXBwZXJTbG93SW1wbDxIVE1MRWxlbWVudD4oZ2xvYmFsT2JqZWN0LCByZXN1bHQpOworfQor
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9KU0RvY3VtZW50LCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB2b2lkKiBy
ZXN1bHQpKQoreworICAgIEFTU0VSVChyZXN1bHQpOworICAgIEFTU0VSVChnbG9iYWxPYmplY3Qp
OworICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIEpTQzo6Q2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOworICAgIEpTQzo6SklUT3Bl
cmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworICAg
IHJldHVybiBET01KSVQ6OnRvV3JhcHBlclNsb3dJbXBsPERvY3VtZW50PihnbG9iYWxPYmplY3Qs
IHJlc3VsdCk7Cit9CisKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub0pTTm9k
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgdm9pZCogcmVzdWx0KSkKK3sKKyAgICBBU1NFUlQocmVzdWx0KTsKKyAgICBBU1NFUlQoZ2xv
YmFsT2JqZWN0KTsKKyAgICBKU0M6OlZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBK
U0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBK
U0M6OkpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZy
YW1lKTsKKyAgICByZXR1cm4gRE9NSklUOjp0b1dyYXBwZXJTbG93SW1wbDxOb2RlPihnbG9iYWxP
YmplY3QsIHJlc3VsdCk7Cit9CisKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25U
b0pTQ29udGFpbmVyTm9kZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgdm9pZCogcmVzdWx0KSkKK3sKKyAgICBBU1NFUlQocmVzdWx0KTsK
KyAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0KTsKKyAgICBKU0M6OlZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKKyAgICBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKKyAgICBKU0M6OkpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcih2bSwgY2FsbEZyYW1lKTsKKyAgICByZXR1cm4gRE9NSklUOjp0b1dyYXBwZXJTbG93SW1w
bDxDb250YWluZXJOb2RlPihnbG9iYWxPYmplY3QsIHJlc3VsdCk7Cit9CisKK30KKwogfQogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbWppdC9KU05vZGVET01KSVQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9taml0L0pTTm9kZURPTUpJVC5jcHAKaW5kZXggMTQ5YzA2NDM1
YjkzYWRiNDQzOThhZGZmYWU0OTg3ZDZjYzNmMzk4Yi4uYjFhNDg3NDliMjM3Nzg0NTFiM2Y2NmQ0
YTc0N2YyOTJlNzFiN2U5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9taml0L0pTTm9k
ZURPTUpJVC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9taml0L0pTTm9kZURPTUpJVC5jcHAK
QEAgLTQ3LDggKzQ3LDggQEAgUmVmPEpTQzo6U25pcHBldD4gY2hlY2tTdWJDbGFzc1NuaXBwZXRG
b3JKU05vZGUoKQogCiBlbnVtIGNsYXNzIElzQ29udGFpbmVyR3VhcmRSZXF1aXJlbWVudCB7IFJl
cXVpcmVkLCBOb3RSZXF1aXJlZCB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBXcmFwcGVkTm9kZT4K
LXN0YXRpYyBSZWY8SlNDOjpET01KSVQ6OkNhbGxET01HZXR0ZXJTbmlwcGV0PiBjcmVhdGVDYWxs
RE9NR2V0dGVyRm9yT2Zmc2V0QWNjZXNzKHB0cmRpZmZfdCBvZmZzZXQsIElzQ29udGFpbmVyR3Vh
cmRSZXF1aXJlbWVudCBpc0NvbnRhaW5lckd1YXJkUmVxdWlyZW1lbnQpCit0ZW1wbGF0ZTx0eXBl
bmFtZSBXcmFwcGVkTm9kZSwgdHlwZW5hbWUgVG9XcmFwcGVyT3BlcmF0aW9uPgorc3RhdGljIFJl
ZjxKU0M6OkRPTUpJVDo6Q2FsbERPTUdldHRlclNuaXBwZXQ+IGNyZWF0ZUNhbGxET01HZXR0ZXJG
b3JPZmZzZXRBY2Nlc3MocHRyZGlmZl90IG9mZnNldCwgVG9XcmFwcGVyT3BlcmF0aW9uIG9wZXJh
dGlvbiwgSXNDb250YWluZXJHdWFyZFJlcXVpcmVtZW50IGlzQ29udGFpbmVyR3VhcmRSZXF1aXJl
bWVudCkKIHsKICAgICBSZWY8SlNDOjpET01KSVQ6OkNhbGxET01HZXR0ZXJTbmlwcGV0PiBzbmlw
cGV0ID0gSlNDOjpET01KSVQ6OkNhbGxET01HZXR0ZXJTbmlwcGV0OjpjcmVhdGUoKTsKICAgICBz
bmlwcGV0LT5udW1HUFNjcmF0Y2hSZWdpc3RlcnMgPSAxOwpAQCAtNjksNyArNjksNyBAQCBzdGF0
aWMgUmVmPEpTQzo6RE9NSklUOjpDYWxsRE9NR2V0dGVyU25pcHBldD4gY3JlYXRlQ2FsbERPTUdl
dHRlckZvck9mZnNldEFjY2VzcwogICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFk
ZHJlc3Moc2NyYXRjaCwgb2Zmc2V0KSwgc2NyYXRjaCk7CiAgICAgICAgIG51bGxDYXNlcy5hcHBl
bmQoaml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxIZWxwZXJzOjpaZXJvLCBzY3JhdGNoKSk7CiAKLSAg
ICAgICAgRE9NSklUOjp0b1dyYXBwZXI8V3JhcHBlZE5vZGU+KGppdCwgcGFyYW1zLCBzY3JhdGNo
LCBnbG9iYWxPYmplY3QsIHJlc3VsdCwgRE9NSklUOjp0b1dyYXBwZXJTbG93PFdyYXBwZWROb2Rl
PiwgZ2xvYmFsT2JqZWN0VmFsdWUpOworICAgICAgICBET01KSVQ6OnRvV3JhcHBlcjxXcmFwcGVk
Tm9kZT4oaml0LCBwYXJhbXMsIHNjcmF0Y2gsIGdsb2JhbE9iamVjdCwgcmVzdWx0LCBvcGVyYXRp
b24sIGdsb2JhbE9iamVjdFZhbHVlKTsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGRvbmUg
PSBqaXQuanVtcCgpOwogCiAgICAgICAgIG51bGxDYXNlcy5saW5rKCZqaXQpOwpAQCAtODIsMzUg
KzgyLDM1IEBAIHN0YXRpYyBSZWY8SlNDOjpET01KSVQ6OkNhbGxET01HZXR0ZXJTbmlwcGV0PiBj
cmVhdGVDYWxsRE9NR2V0dGVyRm9yT2Zmc2V0QWNjZXNzCiAKIFJlZjxKU0M6OkRPTUpJVDo6Q2Fs
bERPTUdldHRlclNuaXBwZXQ+IGNvbXBpbGVOb2RlRmlyc3RDaGlsZEF0dHJpYnV0ZSgpCiB7Ci0g
ICAgYXV0byBzbmlwcGV0ID0gY3JlYXRlQ2FsbERPTUdldHRlckZvck9mZnNldEFjY2VzczxOb2Rl
PihDQVNUX09GRlNFVChOb2RlKiwgQ29udGFpbmVyTm9kZSopICsgQ29udGFpbmVyTm9kZTo6Zmly
c3RDaGlsZE1lbW9yeU9mZnNldCgpLCBJc0NvbnRhaW5lckd1YXJkUmVxdWlyZW1lbnQ6OlJlcXVp
cmVkKTsKKyAgICBhdXRvIHNuaXBwZXQgPSBjcmVhdGVDYWxsRE9NR2V0dGVyRm9yT2Zmc2V0QWNj
ZXNzPE5vZGU+KENBU1RfT0ZGU0VUKE5vZGUqLCBDb250YWluZXJOb2RlKikgKyBDb250YWluZXJO
b2RlOjpmaXJzdENoaWxkTWVtb3J5T2Zmc2V0KCksIERPTUpJVDo6b3BlcmF0aW9uVG9KU05vZGUs
IElzQ29udGFpbmVyR3VhcmRSZXF1aXJlbWVudDo6UmVxdWlyZWQpOwogICAgIHNuaXBwZXQtPmVm
ZmVjdCA9IEpTQzo6RE9NSklUOjpFZmZlY3Q6OmZvckRlZihET01KSVQ6OkFic3RyYWN0SGVhcFJl
cG9zaXRvcnk6Ok5vZGVfZmlyc3RDaGlsZCk7CiAgICAgcmV0dXJuIHNuaXBwZXQ7CiB9CiAKIFJl
ZjxKU0M6OkRPTUpJVDo6Q2FsbERPTUdldHRlclNuaXBwZXQ+IGNvbXBpbGVOb2RlTGFzdENoaWxk
QXR0cmlidXRlKCkKIHsKLSAgICBhdXRvIHNuaXBwZXQgPSBjcmVhdGVDYWxsRE9NR2V0dGVyRm9y
T2Zmc2V0QWNjZXNzPE5vZGU+KENBU1RfT0ZGU0VUKE5vZGUqLCBDb250YWluZXJOb2RlKikgKyBD
b250YWluZXJOb2RlOjpsYXN0Q2hpbGRNZW1vcnlPZmZzZXQoKSwgSXNDb250YWluZXJHdWFyZFJl
cXVpcmVtZW50OjpSZXF1aXJlZCk7CisgICAgYXV0byBzbmlwcGV0ID0gY3JlYXRlQ2FsbERPTUdl
dHRlckZvck9mZnNldEFjY2VzczxOb2RlPihDQVNUX09GRlNFVChOb2RlKiwgQ29udGFpbmVyTm9k
ZSopICsgQ29udGFpbmVyTm9kZTo6bGFzdENoaWxkTWVtb3J5T2Zmc2V0KCksIERPTUpJVDo6b3Bl
cmF0aW9uVG9KU05vZGUsIElzQ29udGFpbmVyR3VhcmRSZXF1aXJlbWVudDo6UmVxdWlyZWQpOwog
ICAgIHNuaXBwZXQtPmVmZmVjdCA9IEpTQzo6RE9NSklUOjpFZmZlY3Q6OmZvckRlZihET01KSVQ6
OkFic3RyYWN0SGVhcFJlcG9zaXRvcnk6Ok5vZGVfbGFzdENoaWxkKTsKICAgICByZXR1cm4gc25p
cHBldDsKIH0KIAogUmVmPEpTQzo6RE9NSklUOjpDYWxsRE9NR2V0dGVyU25pcHBldD4gY29tcGls
ZU5vZGVOZXh0U2libGluZ0F0dHJpYnV0ZSgpCiB7Ci0gICAgYXV0byBzbmlwcGV0ID0gY3JlYXRl
Q2FsbERPTUdldHRlckZvck9mZnNldEFjY2VzczxOb2RlPihOb2RlOjpuZXh0U2libGluZ01lbW9y
eU9mZnNldCgpLCBJc0NvbnRhaW5lckd1YXJkUmVxdWlyZW1lbnQ6Ok5vdFJlcXVpcmVkKTsKKyAg
ICBhdXRvIHNuaXBwZXQgPSBjcmVhdGVDYWxsRE9NR2V0dGVyRm9yT2Zmc2V0QWNjZXNzPE5vZGU+
KE5vZGU6Om5leHRTaWJsaW5nTWVtb3J5T2Zmc2V0KCksIERPTUpJVDo6b3BlcmF0aW9uVG9KU05v
ZGUsIElzQ29udGFpbmVyR3VhcmRSZXF1aXJlbWVudDo6Tm90UmVxdWlyZWQpOwogICAgIHNuaXBw
ZXQtPmVmZmVjdCA9IEpTQzo6RE9NSklUOjpFZmZlY3Q6OmZvckRlZihET01KSVQ6OkFic3RyYWN0
SGVhcFJlcG9zaXRvcnk6Ok5vZGVfbmV4dFNpYmxpbmcpOwogICAgIHJldHVybiBzbmlwcGV0Owog
fQogCiBSZWY8SlNDOjpET01KSVQ6OkNhbGxET01HZXR0ZXJTbmlwcGV0PiBjb21waWxlTm9kZVBy
ZXZpb3VzU2libGluZ0F0dHJpYnV0ZSgpCiB7Ci0gICAgYXV0byBzbmlwcGV0ID0gY3JlYXRlQ2Fs
bERPTUdldHRlckZvck9mZnNldEFjY2VzczxOb2RlPihOb2RlOjpwcmV2aW91c1NpYmxpbmdNZW1v
cnlPZmZzZXQoKSwgSXNDb250YWluZXJHdWFyZFJlcXVpcmVtZW50OjpOb3RSZXF1aXJlZCk7Cisg
ICAgYXV0byBzbmlwcGV0ID0gY3JlYXRlQ2FsbERPTUdldHRlckZvck9mZnNldEFjY2VzczxOb2Rl
PihOb2RlOjpwcmV2aW91c1NpYmxpbmdNZW1vcnlPZmZzZXQoKSwgRE9NSklUOjpvcGVyYXRpb25U
b0pTTm9kZSwgSXNDb250YWluZXJHdWFyZFJlcXVpcmVtZW50OjpOb3RSZXF1aXJlZCk7CiAgICAg
c25pcHBldC0+ZWZmZWN0ID0gSlNDOjpET01KSVQ6OkVmZmVjdDo6Zm9yRGVmKERPTUpJVDo6QWJz
dHJhY3RIZWFwUmVwb3NpdG9yeTo6Tm9kZV9wcmV2aW91c1NpYmxpbmcpOwogICAgIHJldHVybiBz
bmlwcGV0OwogfQogCiBSZWY8SlNDOjpET01KSVQ6OkNhbGxET01HZXR0ZXJTbmlwcGV0PiBjb21w
aWxlTm9kZVBhcmVudE5vZGVBdHRyaWJ1dGUoKQogewotICAgIGF1dG8gc25pcHBldCA9IGNyZWF0
ZUNhbGxET01HZXR0ZXJGb3JPZmZzZXRBY2Nlc3M8Q29udGFpbmVyTm9kZT4oTm9kZTo6cGFyZW50
Tm9kZU1lbW9yeU9mZnNldCgpLCBJc0NvbnRhaW5lckd1YXJkUmVxdWlyZW1lbnQ6Ok5vdFJlcXVp
cmVkKTsKKyAgICBhdXRvIHNuaXBwZXQgPSBjcmVhdGVDYWxsRE9NR2V0dGVyRm9yT2Zmc2V0QWNj
ZXNzPENvbnRhaW5lck5vZGU+KE5vZGU6OnBhcmVudE5vZGVNZW1vcnlPZmZzZXQoKSwgRE9NSklU
OjpvcGVyYXRpb25Ub0pTQ29udGFpbmVyTm9kZSwgSXNDb250YWluZXJHdWFyZFJlcXVpcmVtZW50
OjpOb3RSZXF1aXJlZCk7CiAgICAgc25pcHBldC0+ZWZmZWN0ID0gSlNDOjpET01KSVQ6OkVmZmVj
dDo6Zm9yRGVmKERPTUpJVDo6QWJzdHJhY3RIZWFwUmVwb3NpdG9yeTo6Tm9kZV9wYXJlbnROb2Rl
KTsKICAgICByZXR1cm4gc25pcHBldDsKIH0KQEAgLTE1MSw3ICsxNTEsNyBAQCBSZWY8SlNDOjpE
T01KSVQ6OkNhbGxET01HZXR0ZXJTbmlwcGV0PiBjb21waWxlTm9kZU93bmVyRG9jdW1lbnRBdHRy
aWJ1dGUoKQogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IG51bGxDYXNlczsKICAgICAg
ICAgLy8gSWYgdGhlIHx0aGlzfCBpcyB0aGUgZG9jdW1lbnQgaXRzZWxmLCBvd25lckRvY3VtZW50
IHdpbGwgcmV0dXJuIG51bGwuCiAgICAgICAgIG51bGxDYXNlcy5hcHBlbmQoaml0LmJyYW5jaFB0
cihDQ2FsbEhlbHBlcnM6OkVxdWFsLCB3cmFwcGVkLCBkb2N1bWVudCkpOwotICAgICAgICBET01K
SVQ6OnRvV3JhcHBlcjxEb2N1bWVudD4oaml0LCBwYXJhbXMsIGRvY3VtZW50LCBnbG9iYWxPYmpl
Y3QsIHJlc3VsdCwgRE9NSklUOjp0b1dyYXBwZXJTbG93PERvY3VtZW50PiwgZ2xvYmFsT2JqZWN0
VmFsdWUpOworICAgICAgICBET01KSVQ6OnRvV3JhcHBlcjxEb2N1bWVudD4oaml0LCBwYXJhbXMs
IGRvY3VtZW50LCBnbG9iYWxPYmplY3QsIHJlc3VsdCwgRE9NSklUOjpvcGVyYXRpb25Ub0pTRG9j
dW1lbnQsIGdsb2JhbE9iamVjdFZhbHVlKTsKICAgICAgICAgYXV0byBkb25lID0gaml0Lmp1bXAo
KTsKIAogICAgICAgICBudWxsQ2FzZXMubGluaygmaml0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKaW5kZXgg
NjgwNDMzMTg4ZDFkMTAzY2M5OTUyYTI0YzcyOWVjZDYwNzg2MmU2NS4uNjE0NmI4MTk4ZmRmNTFh
N2RiOTUxMTc2MDNmOThiZWNhZDNjYTU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKQEAgLTUxLDYgKzUx
LDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHByb3Bl
cnR5R2V0dGVyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKG1ldGhvZEdldHRl
cik7CisKIHN0YXRpYyBOUElkZW50aWZpZXIgbnBJZGVudGlmaWVyRnJvbUlkZW50aWZpZXIoUHJv
cGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAgICBTdHJpbmcgbmFtZShwcm9wZXJ0eU5hbWUu
cHVibGljTmFtZSgpKTsKQEAgLTYwLDYgKzYzLDExIEBAIHN0YXRpYyBOUElkZW50aWZpZXIgbnBJ
ZGVudGlmaWVyRnJvbUlkZW50aWZpZXIoUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8TlBJZGVudGlmaWVyPihJZGVudGlmaWVyUmVwOjpnZXQobmFtZS51
dGY4KCkuZGF0YSgpKSk7CiB9CiAKK3N0YXRpYyBKU0M6OkV4Y2VwdGlvbiogdGhyb3dJbnZhbGlk
QWNjZXNzRXJyb3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIFRocm93U2Nv
cGUmIHNjb3BlKQoreworICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBzY29wZSwgY3JlYXRlUmVmZXJlbmNlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIlRy
eWluZyB0byBhY2Nlc3Mgb2JqZWN0IGZyb20gZGVzdHJveWVkIHBsdWctaW4uIikpOworfQorCiBj
b25zdCBDbGFzc0luZm8gSlNOUE9iamVjdDo6c19pbmZvID0geyAiTlBPYmplY3QiLCAmQmFzZTo6
c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTTlBPYmplY3Qp
IH07CiAKIEpTTlBPYmplY3Q6OkpTTlBPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIE5QUnVudGltZU9iamVjdE1hcCogb2JqZWN0TWFwLCBO
UE9iamVjdCogbnBPYmplY3QpCkBAIC0zMDgsMTMgKzMxNiwxMyBAQCBib29sIEpTTlBPYmplY3Q6
OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsbwogCiAgICAgLy8gRmlyc3QsIGNoZWNrIGlmIHRoZSBOUE9iamVjdCBoYXMgYSBwcm9w
ZXJ0eSB3aXRoIHRoaXMgbmFtZS4KICAgICBpZiAodGhpc09iamVjdC0+bV9ucE9iamVjdC0+X2Ns
YXNzLT5oYXNQcm9wZXJ0eSAmJiB0aGlzT2JqZWN0LT5tX25wT2JqZWN0LT5fY2xhc3MtPmhhc1By
b3BlcnR5KHRoaXNPYmplY3QtPm1fbnBPYmplY3QsIG5wSWRlbnRpZmllcikpIHsKLSAgICAgICAg
c2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUpLCB0aGlzT2JqZWN0LT5wcm9wZXJ0eUdldHRlcik7
CisgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlKSwgcHJvcGVydHlHZXR0ZXIpOwog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICAvLyBTZWNvbmQsIGNoZWNrIGlmIHRo
ZSBOUE9iamVjdCBoYXMgYSBtZXRob2Qgd2l0aCB0aGlzIG5hbWUuCiAgICAgaWYgKHRoaXNPYmpl
Y3QtPm1fbnBPYmplY3QtPl9jbGFzcy0+aGFzTWV0aG9kICYmIHRoaXNPYmplY3QtPm1fbnBPYmpl
Y3QtPl9jbGFzcy0+aGFzTWV0aG9kKHRoaXNPYmplY3QtPm1fbnBPYmplY3QsIG5wSWRlbnRpZmll
cikpIHsKLSAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5LCB0
aGlzT2JqZWN0LT5tZXRob2RHZXR0ZXIpOworICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2Jq
ZWN0LCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHksIG1ldGhvZEdldHRlcik7CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KICAgICAKQEAgLTQ2OCwxOCArNDc2LDE4IEBAIHZvaWQgSlNOUE9iamVjdDo6Z2V0T3du
UHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
CiAgICAgbnBuTWVtRnJlZShpZGVudGlmaWVycyk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTTlBP
YmplY3Q6OnByb3BlcnR5R2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIocHJvcGVydHlHZXR0ZXIsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUgcHJvcGVydHlOYW1lKSkKIHsKICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIEpT
TlBPYmplY3QqIHRoaXNPYmogPSBqc0Nhc3Q8SlNOUE9iamVjdCo+KEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmosIGluZm8o
KSk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqLCBKU05QT2JqZWN0Ojpp
bmZvKCkpOwogICAgIAotICAgIGlmICghdGhpc09iai0+bV9ucE9iamVjdCkKKyAgICBpZiAoIXRo
aXNPYmotPm5wT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dJ
bnZhbGlkQWNjZXNzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUpKTsKIAotICAgIGlm
ICghdGhpc09iai0+bV9ucE9iamVjdC0+X2NsYXNzLT5nZXRQcm9wZXJ0eSkKKyAgICBpZiAoIXRo
aXNPYmotPm5wT2JqZWN0KCktPl9jbGFzcy0+Z2V0UHJvcGVydHkpCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKICAgICBOUFZhcmlhbnQgcmVzdWx0OwpA
QCAtNDg4LDcgKzQ5Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTTlBPYmplY3Q6OnByb3BlcnR5R2V0
dGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFCiAgICAgLy8gQ2FsbGlu
ZyBOUENsYXNzOjpnZXRQcm9wZXJ0eSB3aWxsIGNhbGwgaW50byBwbHVnLWluIGNvZGUsIGFuZCB0
aGVyZSdzIG5vIHRlbGxpbmcgd2hhdCB0aGUgcGx1Zy1pbiBjYW4gZG8uCiAgICAgLy8gKGluY2x1
ZGluZyBkZXN0cm95aW5nIHRoZSBwbHVnLWluKS4gQmVjYXVzZSBvZiB0aGlzLCB3ZSBtYWtlIHN1
cmUgdG8ga2VlcCB0aGUgcGx1Zy1pbiBhbGl2ZSB1bnRpbCAKICAgICAvLyB0aGUgY2FsbCBoYXMg
ZmluaXNoZWQuCi0gICAgTlBSdW50aW1lT2JqZWN0TWFwOjpQbHVnaW5Qcm90ZWN0b3IgcHJvdGVj
dG9yKHRoaXNPYmotPm1fb2JqZWN0TWFwKTsKKyAgICBOUFJ1bnRpbWVPYmplY3RNYXA6OlBsdWdp
blByb3RlY3RvciBwcm90ZWN0b3IodGhpc09iai0+b2JqZWN0TWFwKCkpOwogICAgIAogICAgIGJv
b2wgcmV0dXJuVmFsdWU7CiAgICAgewpAQCAtNDk4LDcgKzUwNiw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTTlBPYmplY3Q6OnByb3BlcnR5R2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFCiAgICAgICAgIGlmICghbnBJZGVudGlmaWVyKQogICAgICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAotICAgICAgICByZXR1cm5WYWx1ZSA9
IHRoaXNPYmotPm1fbnBPYmplY3QtPl9jbGFzcy0+Z2V0UHJvcGVydHkodGhpc09iai0+bV9ucE9i
amVjdCwgbnBJZGVudGlmaWVyLCAmcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuVmFsdWUgPSB0aGlz
T2JqLT5ucE9iamVjdCgpLT5fY2xhc3MtPmdldFByb3BlcnR5KHRoaXNPYmotPm5wT2JqZWN0KCks
IG5wSWRlbnRpZmllciwgJnJlc3VsdCk7CiAgICAgICAgIAogICAgICAgICBOUFJ1bnRpbWVPYmpl
Y3RNYXA6Om1vdmVHbG9iYWxFeGNlcHRpb25Ub0V4ZWNTdGF0ZShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICB9CkBAIC01MDYsMjAgKzUxNCwyMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU05QT2JqZWN0
Ojpwcm9wZXJ0eUdldHRlcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRQog
ICAgIGlmICghcmV0dXJuVmFsdWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiAKLSAgICBKU1ZhbHVlIHByb3BlcnR5VmFsdWUgPSB0aGlzT2JqLT5tX29i
amVjdE1hcC0+Y29udmVydE5QVmFyaWFudFRvSlNWYWx1ZSh0aGlzT2JqLT5nbG9iYWxPYmplY3Qo
KSwgcmVzdWx0KTsKKyAgICBKU1ZhbHVlIHByb3BlcnR5VmFsdWUgPSB0aGlzT2JqLT5vYmplY3RN
YXAoKS0+Y29udmVydE5QVmFyaWFudFRvSlNWYWx1ZSh0aGlzT2JqLT5nbG9iYWxPYmplY3QoKSwg
cmVzdWx0KTsKICAgICByZWxlYXNlTlBWYXJpYW50VmFsdWUoJnJlc3VsdCk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShwcm9wZXJ0eVZhbHVlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNO
UE9iamVjdDo6bWV0aG9kR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIobWV0aG9kR2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSkpCiB7CiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU05Q
T2JqZWN0KiB0aGlzT2JqID0ganNDYXN0PEpTTlBPYmplY3QqPihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqLCBpbmZvKCkp
OworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iaiwgSlNOUE9iamVjdDo6aW5m
bygpKTsKICAgICAKLSAgICBpZiAoIXRoaXNPYmotPm1fbnBPYmplY3QpCisgICAgaWYgKCF0aGlz
T2JqLT5ucE9iamVjdCgpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93SW52
YWxpZEFjY2Vzc0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlKSk7CiAKICAgICBOUElk
ZW50aWZpZXIgbnBJZGVudGlmaWVyID0gbnBJZGVudGlmaWVyRnJvbUlkZW50aWZpZXIocHJvcGVy
dHlOYW1lKTsKQEAgLTUzMCwxMSArNTM4LDYgQEAgRW5jb2RlZEpTVmFsdWUgSlNOUE9iamVjdDo6
bWV0aG9kR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmMKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTTlBNZXRob2Q6OmNyZWF0ZSh0aGlzT2JqLT5nbG9i
YWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLnB1YmxpY05hbWUoKSwgbnBJZGVudGlmaWVyKSk7CiB9
CiAKLUpTQzo6RXhjZXB0aW9uKiBKU05QT2JqZWN0Ojp0aHJvd0ludmFsaWRBY2Nlc3NFcnJvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgVGhyb3dTY29wZSYgc2NvcGUpCi17
Ci0gICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBj
cmVhdGVSZWZlcmVuY2VFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAiVHJ5aW5nIHRvIGFjY2Vz
cyBvYmplY3QgZnJvbSBkZXN0cm95ZWQgcGx1Zy1pbi4iKSk7Ci19Ci0KIElzb1N1YnNwYWNlKiBK
U05QT2JqZWN0OjpzdWJzcGFjZUZvckltcGwoVk0mIHZtKQogewogICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxJc29TdWJzcGFjZVBlclZNPiBwZXJWTShbXSAoVk0mIHZtKSB7IHJldHVybiBJU09f
U1VCU1BBQ0VfUEFSQU1FVEVSUyh2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuZ2V0
KCksIEpTTlBPYmplY3QpOyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAppbmRleCA0NjhkZjcxYTQ0MjQxZWYwMzE4
NGY0YWNjY2IwYTg2ODVlNDgxNjQ1Li4yYWQyNzY5ZGMzNTg3OWFmYmJmZjIwYWJhOGQzZGM0MzM3
N2Q0NWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9KU05QT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvSlNOUE9iamVjdC5oCkBAIC03NSw2ICs3NSw3IEBAIGNsYXNzIEpTTlBPYmplY3Qg
ZmluYWwgOiBwdWJsaWMgSlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiAgICAgREVDTEFSRV9J
TkZPOwogCiAgICAgTlBPYmplY3QqIG5wT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gbV9ucE9iamVj
dDsgfQorICAgIE5QUnVudGltZU9iamVjdE1hcCogb2JqZWN0TWFwKCkgY29uc3QgeyByZXR1cm4g
bV9vYmplY3RNYXA7IH0KIAogcHJpdmF0ZToKICAgICBzdGF0aWMgSlNDOjpJc29TdWJzcGFjZSog
c3Vic3BhY2VGb3JJbXBsKEpTQzo6Vk0mKTsKQEAgLTEwMCwxMCArMTAxLDYgQEAgY2xhc3MgSlNO
UE9iamVjdCBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKIAogICAg
IHN0YXRpYyB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoSlNDOjpKU09iamVjdCosIEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OlByb3BlcnR5TmFtZUFycmF5JiwgSlNDOjpFbnVtZXJhdGlvbk1v
ZGUpOwogCi0gICAgc3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgcHJvcGVydHlHZXR0ZXIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLSAgICBzdGF0aWMgSlNDOjpFbmNvZGVkSlNWYWx1ZSBtZXRob2RHZXR0ZXIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLSAg
ICBzdGF0aWMgSlNDOjpFeGNlcHRpb24qIHRocm93SW52YWxpZEFjY2Vzc0Vycm9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OlRocm93U2NvcGUmKTsKLQogICAgIE5QUnVudGltZU9iamVjdE1h
cCogbV9vYmplY3RNYXA7CiAgICAgTlBPYmplY3QqIG1fbnBPYmplY3Q7CiB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>