<?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>257426</bug_id>
          
          <creation_ts>2023-05-27 12:12:32 -0700</creation_ts>
          <short_desc>REGRESSION(264588@main): Speedometer regression and RAMification crash</short_desc>
          <delta_ts>2023-05-27 12:17:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>256815</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>justin_michaud</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1958433</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2023-05-27 12:12:32 -0700</bug_when>
    <thetext>https://commits.webkit.org/264588@main introduced a regression:
Speedometer regression and RAMification crash

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

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

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

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1958436</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-05-27 12:16:46 -0700</bug_when>
    <thetext>Committed 264631@main (65902a82ff47): &lt;https://commits.webkit.org/264631@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 466516.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1958437</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-05-27 12:17:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/109932207&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>466516</attachid>
            <date>2023-05-27 12:12:38 -0700</date>
            <delta_ts>2023-05-27 12:16:47 -0700</delta_ts>
            <desc>REVERT of 264588@main</desc>
            <filename>bug-257426-20230527191237.patch</filename>
            <type>text/plain</type>
            <size>113518</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSAwOTAxNWUyY2JlYTc3NTU2ZjNlMzEzMzIxYjllMGRhNTE0OTYwZDIwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBTYXQsIDI3IE1heSAyMDIzIDE5OjEyOjM2ICswMDAwClN1YmplY3Q6IFtQQVRDSF0g
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIDI2NDU4OEBtYWluLgogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI1NzQyNgoKU3BlZWRvbWV0ZXIgcmVncmVzc2lvbiBhbmQgUkFN
aWZpY2F0aW9uIGNyYXNoCgpSZXZlcnRlZCBjaGFuZ2VzZXQ6CgoiQ3JlYXRlIFNtYWxsSGVhcCBm
b3IgSlNTdHJpbmdzIgpodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU2
ODE1Cmh0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnLzI2NDU4OEBtYWluCi0tLQogLi4uL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgIHwgICA4ICstCiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcCAgICAgICAgICAgfCAgMjUgKy0tCiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwLmggICAgICAgICAgICAgfCAgMjIgKy0tCiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZS5jcHAgICAgfCAgMTAgKy0KIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNwYWNlLmggICAgICB8ICAgNSArLQogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaCAgIHwgICA2IC0KIC4uLi9sbGludC9MTElu
dE9mZmxpbmVBc21Db25maWcuaCAgICAgICAgICAgICB8ICAgMiAtCiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9DbGFzc0luZm8uaCAgICAgfCAgIDMgKy0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTU3RyaW5nLmggICAgICB8ICAgOSAtLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rvb2xzL0ludGVncml0eS5jcHAgICAgIHwgICAyICstCiAuLi4vd2FzbS9XYXNtQWlySVJH
ZW5lcmF0b3JCYXNlLmggICAgICAgICAgICAgfCAgIDIgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcCB8ICAgMiArLQogLi4uL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbVR5cGVEZWZpbml0aW9uLmggIHwgICAyIC0KIC4uLi93YXNtL2pzL1dlYkFzc2VtYmx5
RnVuY3Rpb24uY3BwICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dURi93dGYvQ29tcGFjdFB0
ci5oICAgICAgICAgICAgICAgICAgIHwgIDc0ICsrKystLS0tLQogU291cmNlL1dURi93dGYvRGVi
dWdIZWFwLmggICAgICAgICAgICAgICAgICAgIHwgIDEyIC0tCiBTb3VyY2UvV1RGL3d0Zi9GYXN0
TWFsbG9jLmggICAgICAgICAgICAgICAgICAgfCAxNDMgLS0tLS0tLS0tLS0tLS0tLS0tCiBTb3Vy
Y2UvV1RGL3d0Zi9HaWdhY2FnZS5jcHAgICAgICAgICAgICAgICAgICAgfCAgMTQgLS0KIFNvdXJj
ZS9XVEYvd3RmL0dpZ2FjYWdlLmggICAgICAgICAgICAgICAgICAgICB8ICAxMSArLQogU291cmNl
L1dURi93dGYvUGxhdGZvcm1IYXZlLmggICAgICAgICAgICAgICAgIHwgIDEzICstCiBTb3VyY2Uv
V1RGL3d0Zi9UaHJlYWRpbmcuY3BwICAgICAgICAgICAgICAgICAgfCAgIDEgLQogU291cmNlL1dU
Ri93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcCAgICAgICAgICAgIHwgICA2ICstCiBTb3VyY2UvV1RG
L3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCAgICAgICAgICAgICAgfCAgMTQgKy0KIFNvdXJjZS9XVEYv
d3RmL3RleHQvVW5pcXVlZFN0cmluZ0ltcGwuaCAgICAgICB8ICAgNyAtCiAuLi4vaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwICAgICAgICAgfCAgIDIgLQogLi4uL0NvY29hL1hQQ1Nl
cnZpY2UvWFBDU2VydmljZU1haW4ubW0gICAgICAgIHwgIDEyICstCiAuLi4vVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tICAgICAgfCAgIDQgLQogU291cmNlL2JtYWxsb2MvYm1h
bGxvYy9CUGxhdGZvcm0uaCAgICAgICAgICAgIHwgIDE0IC0tCiBTb3VyY2UvYm1hbGxvYy9ibWFs
bG9jL0dpZ2FjYWdlLmNwcCAgICAgICAgICAgfCAgNjYgKy0tLS0tLS0KIFNvdXJjZS9ibWFsbG9j
L2JtYWxsb2MvR2lnYWNhZ2UuaCAgICAgICAgICAgICB8ICAzNiArLS0tLQogU291cmNlL2JtYWxs
b2MvYm1hbGxvYy9HaWdhY2FnZUNvbmZpZy5oICAgICAgIHwgICAyICstCiBTb3VyY2UvYm1hbGxv
Yy9ibWFsbG9jL0dpZ2FjYWdlS2luZC5oICAgICAgICAgfCAgIDUgLQogU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9IZWFwS2luZC5oICAgICAgICAgICAgIHwgIDIyICstLQogU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9ibWFsbG9jLmNwcCAgICAgICAgICAgIHwgICA4ICstCiAuLi4vVGVzdHMvV1RGL0Fs
aWduZWRSZWZMb2dnZXIuaCAgICAgICAgICAgICAgfCAgIDUgLQogLi4uL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0NvbXBhY3RSZWZQdHIuY3BwIHwgICAyIC0KIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0pTT05WYWx1ZS5jcHAgICB8ICAgOCArCiAuLi4vVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvUGFja2VkUmVmUHRyLmNwcCAgfCAgIDEgLQogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nSW1wbC5jcHAgIHwgIDIxICsrLQogLi4uL1Rlc3RzL1dlYkNvcmUvRmlsZU1v
bml0b3IuY3BwICAgICAgICAgICAgIHwgIDMxICsrLS0KIC4uLi9UZXN0cy9XZWJDb3JlL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50LmNwcCB8ICAzNCArLS0tLQogLi4uL1dlYktpdENvY29hL19XS1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gIHwgMTMwICsrKy0tLS0tLS0tLS0tLS0KIDQyIGZpbGVz
IGNoYW5nZWQsIDE0MSBpbnNlcnRpb25zKCspLCA2NTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCA1ZTc1OTRk
ODRmY2QuLjExODZhZTFiODUyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTExNTAzLDcgKzExNTAzLDcgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUNoZWNrSlNDYXN0KE5vZGUqIG5vZGUpCiAgICAgICAgIEdQUlJlZyBz
cGVjaWZpZWRHUFIgPSBzcGVjaWZpZWQuZ3ByKCk7CiAKICAgICAgICAgZW1pdExvYWRTdHJ1Y3R1
cmUodm0oKSwgYmFzZUdQUiwgb3RoZXJHUFIpOwotICAgICAgICBsb2FkQ29tcGFjdFB0cjxDbGFz
c0luZm8+KEFkZHJlc3Mob3RoZXJHUFIsIFN0cnVjdHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBv
dGhlckdQUik7CisgICAgICAgIGxvYWRDb21wYWN0UHRyKEFkZHJlc3Mob3RoZXJHUFIsIFN0cnVj
dHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBvdGhlckdQUik7CiAgICAgICAgIG1vdmUoVHJ1c3Rl
ZEltbVB0cihub2RlLT5jbGFzc0luZm8oKSksIHNwZWNpZmllZEdQUik7CiAKICAgICAgICAgTGFi
ZWwgbG9vcCA9IGxhYmVsKCk7CkBAIC0xMTcxNCw3ICsxMTcxNCw3IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVGdW5jdGlvblRvU3RyaW5nKE5vZGUqIG5vZGUpCiAgICAgc3BlY3VsYXRl
RnVuY3Rpb24obm9kZS0+Y2hpbGQxKCksIGZ1bmN0aW9uLmdwcigpKTsKIAogICAgIGVtaXRMb2Fk
U3RydWN0dXJlKHZtKCksIGZ1bmN0aW9uLmdwcigpLCByZXN1bHQuZ3ByKCkpOwotICAgIGxvYWRD
b21wYWN0UHRyPENsYXNzSW5mbz4oQWRkcmVzcyhyZXN1bHQuZ3ByKCksIFN0cnVjdHVyZTo6Y2xh
c3NJbmZvT2Zmc2V0KCkpLCByZXN1bHQuZ3ByKCkpOworICAgIGxvYWRDb21wYWN0UHRyKEFkZHJl
c3MocmVzdWx0LmdwcigpLCBTdHJ1Y3R1cmU6OmNsYXNzSW5mb09mZnNldCgpKSwgcmVzdWx0Lmdw
cigpKTsKICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWxfdjxKU0JvdW5kRnVuY3Rpb24+
LCAiV2UgZG9uJ3QgaGFuZGxlIHN1YmNsYXNzZXMgd2hlbiBjb21wYXJpbmcgY2xhc3NJbmZvIGJl
bG93Iik7CiAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hQdHIoRXF1YWwsIHJlc3VsdC5ncHIo
KSwgVHJ1c3RlZEltbVB0cihKU0JvdW5kRnVuY3Rpb246OmluZm8oKSkpKTsKIApAQCAtMTU0MzEs
NyArMTU0MzEsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3JlYXRlUHJvbWlzZShO
b2RlKiBub2RlKQogICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoVGVzdDMyKFplcm8sIHN0cnVj
dHVyZUdQUikpOwogICAgIGVtaXROb25OdWxsRGVjb2RlWmVyb0V4dGVuZGVkU3RydWN0dXJlSUQo
c3RydWN0dXJlR1BSLCBzdHJ1Y3R1cmVHUFIpOwogICAgIG1vdmUoVHJ1c3RlZEltbVB0cihub2Rl
LT5pc0ludGVybmFsUHJvbWlzZSgpID8gSlNJbnRlcm5hbFByb21pc2U6OmluZm8oKSA6IEpTUHJv
bWlzZTo6aW5mbygpKSwgc2NyYXRjaDFHUFIpOwotICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNo
Q29tcGFjdFB0cjxDbGFzc0luZm8+KE5vdEVxdWFsLCBzY3JhdGNoMUdQUiwgQWRkcmVzcyhzdHJ1
Y3R1cmVHUFIsIFN0cnVjdHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBzY3JhdGNoMkdQUikpOwor
ICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoQ29tcGFjdFB0cihOb3RFcXVhbCwgc2NyYXRjaDFH
UFIsIEFkZHJlc3Moc3RydWN0dXJlR1BSLCBTdHJ1Y3R1cmU6OmNsYXNzSW5mb09mZnNldCgpKSwg
c2NyYXRjaDJHUFIpKTsKICAgICBsb2FkTGlua2FibGVDb25zdGFudChMaW5rYWJsZUNvbnN0YW50
OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBzY3JhdGNoMUdQUik7CiAgICAgc2xvd0Nhc2Vz
LmFwcGVuZChicmFuY2hQdHIoTm90RXF1YWwsIHNjcmF0Y2gxR1BSLCBBZGRyZXNzKHN0cnVjdHVy
ZUdQUiwgU3RydWN0dXJlOjpnbG9iYWxPYmplY3RPZmZzZXQoKSkpKTsKIApAQCAtMTU0NzgsNyAr
MTU0NzgsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3JlYXRlSW50ZXJuYWxGaWVs
ZE9iamVjdChOb2RlKiBub2RlLCBPcGVyYXRpb24gb3BlcgogICAgIHNsb3dDYXNlcy5hcHBlbmQo
YnJhbmNoVGVzdDMyKFplcm8sIHN0cnVjdHVyZUdQUikpOwogICAgIGVtaXROb25OdWxsRGVjb2Rl
WmVyb0V4dGVuZGVkU3RydWN0dXJlSUQoc3RydWN0dXJlR1BSLCBzdHJ1Y3R1cmVHUFIpOwogICAg
IG1vdmUoVHJ1c3RlZEltbVB0cihKU0NsYXNzOjppbmZvKCkpLCBzY3JhdGNoMUdQUik7Ci0gICAg
c2xvd0Nhc2VzLmFwcGVuZChicmFuY2hDb21wYWN0UHRyPENsYXNzSW5mbz4oTm90RXF1YWwsIHNj
cmF0Y2gxR1BSLCBBZGRyZXNzKHN0cnVjdHVyZUdQUiwgU3RydWN0dXJlOjpjbGFzc0luZm9PZmZz
ZXQoKSksIHNjcmF0Y2gyR1BSKSk7CisgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hDb21wYWN0
UHRyKE5vdEVxdWFsLCBzY3JhdGNoMUdQUiwgQWRkcmVzcyhzdHJ1Y3R1cmVHUFIsIFN0cnVjdHVy
ZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBzY3JhdGNoMkdQUikpOwogICAgIGxvYWRMaW5rYWJsZUNv
bnN0YW50KExpbmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIHNjcmF0
Y2gxR1BSKTsKICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFB0cihOb3RFcXVhbCwgc2NyYXRj
aDFHUFIsIEFkZHJlc3Moc3RydWN0dXJlR1BSLCBTdHJ1Y3R1cmU6Omdsb2JhbE9iamVjdE9mZnNl
dCgpKSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCmluZGV4IDliZDliNzg2OWZk
Yy4uZTM5MDk4MGJjMDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtMjcw
LDI0ICsyNzAsOCBAQCBwcml2YXRlOgogI2RlZmluZSBJTklUX1NFUlZFUl9JU09fU1VCU1BBQ0Uo
bmFtZSwgaGVhcENlbGxUeXBlLCB0eXBlKSBcCiAgICAgLCBuYW1lIElTT19TVUJTUEFDRV9JTklU
KCp0aGlzLCBoZWFwQ2VsbFR5cGUsIHR5cGUpCiAKLSNkZWZpbmUgSU5JVF9TRVJWRVJfU1RSVUNU
VVJFX0lTT19TVUJTUEFDRV9BTExPQ0FUT1IobmFtZSwgaGVhcENlbGxUeXBlLCB0eXBlKSBcCi0g
ICAgLCBzdHJ1Y3R1cmVBbGxvY2F0b3IjI25hbWUobWFrZVVuaXF1ZTxTdHJ1Y3R1cmVBbGlnbmVk
TWVtb3J5QWxsb2NhdG9yPigiU3RydWN0dXJlIikpIFwKLQogI2RlZmluZSBJTklUX1NFUlZFUl9T
VFJVQ1RVUkVfSVNPX1NVQlNQQUNFKG5hbWUsIGhlYXBDZWxsVHlwZSwgdHlwZSkgXAotICAgICwg
bmFtZSgiSXNvU3Vic3BhY2UiICNuYW1lLCAqdGhpcywgaGVhcENlbGxUeXBlLCBXVEY6OnJvdW5k
VXBUb011bHRpcGxlT2Y8dHlwZTo6YXRvbVNpemU+KHNpemVvZih0eXBlKSksIHR5cGU6Om51bWJl
ck9mTG93ZXJUaWVyQ2VsbHMsIHN0cnVjdHVyZUFsbG9jYXRvciMjbmFtZS5nZXQoKSkKLQotI2lm
ICFFTkFCTEUoU01BTExfSEVBUCkKLSNkZWZpbmUgSU5JVF9TRVJWRVJfU01BTExIRUFQX0lTT19T
VUJTUEFDRShuYW1lLCBoZWFwQ2VsbFR5cGUsIHR5cGUpIFwKLSAgICBJTklUX1NFUlZFUl9JU09f
U1VCU1BBQ0UobmFtZSwgaGVhcENlbGxUeXBlLCB0eXBlKQotI2Vsc2UKLSNkZWZpbmUgSU5JVF9T
RVJWRVJfU01BTExIRUFQX0lTT19TVUJTUEFDRShuYW1lLCBoZWFwQ2VsbFR5cGUsIHR5cGUpIFwK
LSAgICAsIG5hbWUoIlNtYWxsSXNvU3Vic3BhY2UiICNuYW1lLCAqdGhpcywgaGVhcENlbGxUeXBl
LCBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Y8dHlwZTo6YXRvbVNpemU+KHNpemVvZih0eXBlKSks
IHR5cGU6Om51bWJlck9mTG93ZXJUaWVyQ2VsbHMsIHNtYWxsSGVhcEdpZ2FjYWdlQWxsb2NhdG9y
LmdldCgpKQotI2VuZGlmCi0KLSNkZWZpbmUgQVNTRVJUX1NNQUxMSEVBUF9JU09fU1VCU1BBQ0Uo
bmFtZSwgaGVhcENlbGxUeXBlLCB0eXBlKSBcCi0gICAgc3RhdGljX2Fzc2VydCghdHlwZTo6bnVt
YmVyT2ZMb3dlclRpZXJDZWxscywgIlByZWNpc2UgQWxsb2NhdGlvbiBpcyBub3Qgc3VwcG9ydGVk
Iik7Ci1GT1JfRUFDSF9KU0NfU01BTExIRUFQX0lTT19TVUJTUEFDRShBU1NFUlRfU01BTExIRUFQ
X0lTT19TVUJTUEFDRSk7Ci0jdW5kZWYgQVNTRVJUX1NNQUxMSEVBUF9JU09fU1VCU1BBQ0UKKyAg
ICAsIG5hbWUoIklzb1N1YnNwYWNlIiAjbmFtZSwgKnRoaXMsIGhlYXBDZWxsVHlwZSwgV1RGOjpy
b3VuZFVwVG9NdWx0aXBsZU9mPHR5cGU6OmF0b21TaXplPihzaXplb2YodHlwZSkpLCB0eXBlOjpu
dW1iZXJPZkxvd2VyVGllckNlbGxzLCBtYWtlVW5pcXVlPFN0cnVjdHVyZUFsaWduZWRNZW1vcnlB
bGxvY2F0b3I+KCJTdHJ1Y3R1cmUiKSkKIAogSGVhcDo6SGVhcChWTSYgdm0sIEhlYXBUeXBlIGhl
YXBUeXBlKQogICAgIDogbV9oZWFwVHlwZShoZWFwVHlwZSkKQEAgLTM3OSw5ICszNjMsNiBAQCBI
ZWFwOjpIZWFwKFZNJiB2bSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAgLy8gQWxpZ25lZE1lbW9y
eUFsbG9jYXRvcnMKICAgICAsIGZhc3RNYWxsb2NBbGxvY2F0b3IobWFrZVVuaXF1ZTxGYXN0TWFs
bG9jQWxpZ25lZE1lbW9yeUFsbG9jYXRvcj4oKSkKICAgICAsIHByaW1pdGl2ZUdpZ2FjYWdlQWxs
b2NhdG9yKG1ha2VVbmlxdWU8R2lnYWNhZ2VBbGlnbmVkTWVtb3J5QWxsb2NhdG9yPihHaWdhY2Fn
ZTo6UHJpbWl0aXZlKSkKLSNpZiBFTkFCTEUoU01BTExfSEVBUCkKLSAgICAsIHNtYWxsSGVhcEdp
Z2FjYWdlQWxsb2NhdG9yKG1ha2VVbmlxdWU8R2lnYWNhZ2VBbGlnbmVkTWVtb3J5QWxsb2NhdG9y
PihHaWdhY2FnZTo6U21hbGxIZWFwKSkKLSNlbmRpZgogICAgICwganNWYWx1ZUdpZ2FjYWdlQWxs
b2NhdG9yKG1ha2VVbmlxdWU8R2lnYWNhZ2VBbGlnbmVkTWVtb3J5QWxsb2NhdG9yPihHaWdhY2Fn
ZTo6SlNWYWx1ZSkpCiAKICAgICAvLyBTdWJzcGFjZXMKQEAgLTM5MSw5ICszNzIsNyBAQCBIZWFw
OjpIZWFwKFZNJiB2bSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAgLCBjZWxsU3BhY2UoIkpTQ2Vs
bCIsICp0aGlzLCBjZWxsSGVhcENlbGxUeXBlLCBmYXN0TWFsbG9jQWxsb2NhdG9yLmdldCgpKSAv
LyBIYXNoOjB4YWRmYjVhNzkKICAgICAsIHZhcmlhYmxlU2l6ZWRDZWxsU3BhY2UoIlZhcmlhYmxl
IFNpemVkIEpTQ2VsbCIsICp0aGlzLCBjZWxsSGVhcENlbGxUeXBlLCBmYXN0TWFsbG9jQWxsb2Nh
dG9yLmdldCgpKSAvLyBIYXNoOjB4YmNkNzY5Y2MKICAgICAsIGRlc3RydWN0aWJsZU9iamVjdFNw
YWNlKCJKU0Rlc3RydWN0aWJsZU9iamVjdCIsICp0aGlzLCBkZXN0cnVjdGlibGVPYmplY3RIZWFw
Q2VsbFR5cGUsIGZhc3RNYWxsb2NBbGxvY2F0b3IuZ2V0KCkpIC8vIEhhc2g6MHg0ZjVlZDdhOQot
ICAgIEZPUl9FQUNIX0pTQ19TVFJVQ1RVUkVfSVNPX1NVQlNQQUNFKElOSVRfU0VSVkVSX1NUUlVD
VFVSRV9JU09fU1VCU1BBQ0VfQUxMT0NBVE9SKQogICAgIEZPUl9FQUNIX0pTQ19DT01NT05fSVNP
X1NVQlNQQUNFKElOSVRfU0VSVkVSX0lTT19TVUJTUEFDRSkKLSAgICBGT1JfRUFDSF9KU0NfU01B
TExIRUFQX0lTT19TVUJTUEFDRShJTklUX1NFUlZFUl9TTUFMTEhFQVBfSVNPX1NVQlNQQUNFKQog
ICAgIEZPUl9FQUNIX0pTQ19TVFJVQ1RVUkVfSVNPX1NVQlNQQUNFKElOSVRfU0VSVkVSX1NUUlVD
VFVSRV9JU09fU1VCU1BBQ0UpCiAgICAgLCBjb2RlQmxvY2tTcGFjZUFuZFNldCBJU09fU1VCU1BB
Q0VfSU5JVCgqdGhpcywgZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZSwgQ29kZUJsb2NrKSAv
LyBIYXNoOjB4NzdlNjZlYzkKICAgICAsIGZ1bmN0aW9uRXhlY3V0YWJsZVNwYWNlQW5kU2V0IElT
T19TVUJTUEFDRV9JTklUKCp0aGlzLCBkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXBlLCBGdW5j
dGlvbkV4ZWN1dGFibGUpIC8vIEhhc2g6MHg1ZDE1OGYzCkBAIC00MzcsOCArNDE2LDYgQEAgSGVh
cDo6SGVhcChWTSYgdm0sIEhlYXBUeXBlIGhlYXBUeXBlKQogCiAjdW5kZWYgSU5JVF9TRVJWRVJf
SVNPX1NVQlNQQUNFCiAjdW5kZWYgSU5JVF9TRVJWRVJfU1RSVUNUVVJFX0lTT19TVUJTUEFDRQot
I3VuZGVmIElOSVRfU0VSVkVSX1NUUlVDVFVSRV9JU09fU1VCU1BBQ0VfQUxMT0NBVE9SCi0jdW5k
ZWYgSU5JVF9TRVJWRVJfU01BTExIRUFQX0lTT19TVUJTUEFDRQogCiBIZWFwOjp+SGVhcCgpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKaW5kZXggMzk3OGQxZTQzYjI5Li4wMzEwNWYyMWMx
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKQEAgLTkxLDcgKzkxLDYgQEAgY2xhc3Mg
TWFya2luZ0NvbnN0cmFpbnRTZXQ7CiBjbGFzcyBNdXRhdG9yU2NoZWR1bGVyOwogY2xhc3MgUnVu
bmluZ1Njb3BlOwogY2xhc3MgU2xvdFZpc2l0b3I7Ci1jbGFzcyBTdHJ1Y3R1cmVBbGlnbmVkTWVt
b3J5QWxsb2NhdG9yOwogY2xhc3MgU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcjsKIGNsYXNzIFN0
b3BJZk5lY2Vzc2FyeVRpbWVyOwogY2xhc3MgU3dlZXBpbmdTY29wZTsKQEAgLTExMiwxMCArMTEx
LDYgQEAgbmFtZXNwYWNlIEdDQ2xpZW50IHsKIGNsYXNzIEhlYXA7CiB9CiAKLSNkZWZpbmUgRk9S
X0VBQ0hfSlNDX1NNQUxMSEVBUF9JU09fU1VCU1BBQ0UodikgXAotICAgIHYocm9wZVN0cmluZ1Nw
YWNlLCBzdHJpbmdIZWFwQ2VsbFR5cGUsIEpTUm9wZVN0cmluZykgXAotICAgIHYoc3RyaW5nU3Bh
Y2UsIHN0cmluZ0hlYXBDZWxsVHlwZSwgSlNTdHJpbmcpCi0KICNkZWZpbmUgRk9SX0VBQ0hfSlND
X0NPTU1PTl9JU09fU1VCU1BBQ0UodikgXAogICAgIHYoYXJyYXlTcGFjZSwgY2VsbEhlYXBDZWxs
VHlwZSwgSlNBcnJheSkgXAogICAgIHYoYmlnSW50U3BhY2UsIGNlbGxIZWFwQ2VsbFR5cGUsIEpT
QmlnSW50KSBcCkBAIC0xMzgsOCArMTMzLDEwIEBAIGNsYXNzIEhlYXA7CiAgICAgdihwcm9wZXJ0
eVRhYmxlU3BhY2UsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUsIFByb3BlcnR5VGFibGUp
IFwKICAgICB2KHJlZ0V4cFNwYWNlLCBkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXBlLCBSZWdF
eHApIFwKICAgICB2KHJlZ0V4cE9iamVjdFNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLCBSZWdFeHBP
YmplY3QpIFwKKyAgICB2KHJvcGVTdHJpbmdTcGFjZSwgc3RyaW5nSGVhcENlbGxUeXBlLCBKU1Jv
cGVTdHJpbmcpIFwKICAgICB2KHNjb3BlZEFyZ3VtZW50c1NwYWNlLCBjZWxsSGVhcENlbGxUeXBl
LCBTY29wZWRBcmd1bWVudHMpIFwKICAgICB2KHNwYXJzZUFycmF5VmFsdWVNYXBTcGFjZSwgZGVz
dHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZSwgU3BhcnNlQXJyYXlWYWx1ZU1hcCkgXAorICAgIHYo
c3RyaW5nU3BhY2UsIHN0cmluZ0hlYXBDZWxsVHlwZSwgSlNTdHJpbmcpIFwKICAgICB2KHN0cmlu
Z09iamVjdFNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLCBTdHJpbmdPYmplY3QpIFwKICAgICB2KHN0
cnVjdHVyZUNoYWluU3BhY2UsIGNlbGxIZWFwQ2VsbFR5cGUsIFN0cnVjdHVyZUNoYWluKSBcCiAg
ICAgdihzdHJ1Y3R1cmVSYXJlRGF0YVNwYWNlLCBkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXBl
LCBTdHJ1Y3R1cmVSYXJlRGF0YSkgXApAQCAtMTUxLDcgKzE0OCw2IEBAIGNsYXNzIEhlYXA7CiAK
ICNkZWZpbmUgRk9SX0VBQ0hfSlNDX0lTT19TVUJTUEFDRSh2KSBcCiAgICAgRk9SX0VBQ0hfSlND
X0NPTU1PTl9JU09fU1VCU1BBQ0UodikgXAotICAgIEZPUl9FQUNIX0pTQ19TTUFMTEhFQVBfSVNP
X1NVQlNQQUNFKHYpIFwKICAgICBGT1JfRUFDSF9KU0NfU1RSVUNUVVJFX0lTT19TVUJTUEFDRSh2
KQogCiAjaWYgSlNDX09CSkNfQVBJX0VOQUJMRUQKQEAgLTk4OCw5ICs5ODQsNiBAQCBwdWJsaWM6
CiAgICAgLy8gQWxpZ25lZE1lbW9yeUFsbG9jYXRvcnMKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RmFz
dE1hbGxvY0FsaWduZWRNZW1vcnlBbGxvY2F0b3I+IGZhc3RNYWxsb2NBbGxvY2F0b3I7CiAgICAg
c3RkOjp1bmlxdWVfcHRyPEdpZ2FjYWdlQWxpZ25lZE1lbW9yeUFsbG9jYXRvcj4gcHJpbWl0aXZl
R2lnYWNhZ2VBbGxvY2F0b3I7Ci0jaWYgRU5BQkxFKFNNQUxMX0hFQVApCi0gICAgc3RkOjp1bmlx
dWVfcHRyPEdpZ2FjYWdlQWxpZ25lZE1lbW9yeUFsbG9jYXRvcj4gc21hbGxIZWFwR2lnYWNhZ2VB
bGxvY2F0b3I7Ci0jZW5kaWYKICAgICBzdGQ6OnVuaXF1ZV9wdHI8R2lnYWNhZ2VBbGlnbmVkTWVt
b3J5QWxsb2NhdG9yPiBqc1ZhbHVlR2lnYWNhZ2VBbGxvY2F0b3I7CiAKICAgICAvLyBTdWJzcGFj
ZXMKQEAgLTEwMTEsMjcgKzEwMDQsMTggQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHBy
aW1pdGl2ZUdpZ2FjYWdlQXV4aWxpYXJ5U3BhY2U7CiAgICAgICAgIGNhc2UgR2lnYWNhZ2U6OkpT
VmFsdWU6CiAgICAgICAgICAgICByZXR1cm4ganNWYWx1ZUdpZ2FjYWdlQXV4aWxpYXJ5U3BhY2U7
Ci0jaWYgRU5BQkxFKFNNQUxMX0hFQVApCi0gICAgICAgIGNhc2UgR2lnYWNhZ2U6OlNtYWxsSGVh
cDoKLSNlbmRpZgogICAgICAgICBjYXNlIEdpZ2FjYWdlOjpOdW1iZXJPZktpbmRzOgogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICAgICAgcmV0dXJuIHByaW1pdGl2ZUdpZ2FjYWdlQXV4aWxpYXJ5U3BhY2U7CiAg
ICAgfQotCisgICAgCiAgICAgLy8gV2hlbmV2ZXIgcG9zc2libGUsIHVzZSBzdWJzcGFjZUZvcjxD
ZWxsVHlwZT4odm0pIHRvIGdldCBvbmUgb2YgdGhlc2Ugc3Vic3BhY2VzLgogICAgIENvbXBsZXRl
U3Vic3BhY2UgY2VsbFNwYWNlOwogICAgIENvbXBsZXRlU3Vic3BhY2UgdmFyaWFibGVTaXplZENl
bGxTcGFjZTsgLy8gRklYTUU6IFRoaXMgc3BhY2UgaXMgcHJvYmxlbWF0aWMgYmVjYXVzZSB3ZSBo
YXZlIHRoaW5ncyBpbiBoZXJlIGxpa2UgRGlyZWN0QXJndW1lbnRzIGFuZCBTY29wZWRBcmd1bWVu
dHM7IHRob3NlIHNob3VsZCBiZSBzcGxpdCBpbnRvIEpTVmFsdWVPT0IgY2VsbHMgYW5kIEpTVmFs
dWVTdHJpY3QgYXV4aWxpYXJpZXMuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODI4NTgKICAgICBDb21wbGV0ZVN1YnNwYWNlIGRlc3RydWN0aWJsZU9iamVjdFNwYWNl
OwogCi0jZGVmaW5lIERFQ0xBUkVfU1RSVUNUVVJFX0FMTE9DQVRPUihuYW1lLCBoZWFwQ2VsbFR5
cGUsIHR5cGUpIFwKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U3RydWN0dXJlQWxpZ25lZE1lbW9yeUFs
bG9jYXRvcj4gc3RydWN0dXJlQWxsb2NhdG9yIyNuYW1lOwotCi0gICAgRk9SX0VBQ0hfSlNDX0lT
T19TVUJTUEFDRShERUNMQVJFX1NUUlVDVFVSRV9BTExPQ0FUT1IpCi0jdW5kZWYgREVDTEFSRV9T
VFJVQ1RVUkVfQUxMT0NBVE9SCi0KICNkZWZpbmUgREVDTEFSRV9JU09fU1VCU1BBQ0UobmFtZSwg
aGVhcENlbGxUeXBlLCB0eXBlKSBcCiAgICAgSXNvU3Vic3BhY2UgbmFtZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vic3BhY2UuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vic3BhY2UuY3BwCmluZGV4IDg4YzZhNjZhMWExOS4uMDBm
ZmJjZTQwZDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJz
cGFjZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vic3BhY2UuY3Bw
CkBAIC0zMywyMCArMzMsMTYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLUlzb1N1YnNwYWNlOjpJ
c29TdWJzcGFjZShDU3RyaW5nIG5hbWUsIEhlYXAmIGhlYXAsIGNvbnN0IEhlYXBDZWxsVHlwZSYg
aGVhcENlbGxUeXBlLCBzaXplX3Qgc2l6ZSwgdWludDhfdCBudW1iZXJPZkxvd2VyVGllckNlbGxz
LCBBbGlnbmVkTWVtb3J5QWxsb2NhdG9yKiBhbGxvY2F0b3IpCitJc29TdWJzcGFjZTo6SXNvU3Vi
c3BhY2UoQ1N0cmluZyBuYW1lLCBIZWFwJiBoZWFwLCBjb25zdCBIZWFwQ2VsbFR5cGUmIGhlYXBD
ZWxsVHlwZSwgc2l6ZV90IHNpemUsIHVpbnQ4X3QgbnVtYmVyT2ZMb3dlclRpZXJDZWxscywgc3Rk
Ojp1bmlxdWVfcHRyPElzb01lbW9yeUFsbG9jYXRvckJhc2U+JiYgYWxsb2NhdG9yKQogICAgIDog
U3Vic3BhY2UobmFtZSwgaGVhcCkKICAgICAsIG1fZGlyZWN0b3J5KFdURjo6cm91bmRVcFRvTXVs
dGlwbGVPZjxNYXJrZWRCbG9jazo6YXRvbVNpemU+KHNpemUpKQotICAgICwgbV9pc29BbGlnbmVk
TWVtb3J5QWxsb2NhdG9yKGFsbG9jYXRvcikKKyAgICAsIG1faXNvQWxpZ25lZE1lbW9yeUFsbG9j
YXRvcihhbGxvY2F0b3IgPyBXVEZNb3ZlKGFsbG9jYXRvcikgOiBtYWtlVW5pcXVlPElzb0FsaWdu
ZWRNZW1vcnlBbGxvY2F0b3I+KG5hbWUpKQogewotICAgIGlmICghYWxsb2NhdG9yKSB7Ci0gICAg
ICAgIG1fb3B0aW9uYWxPd25lZEFsbG9jYXRvciA9IG1ha2VVbmlxdWU8SXNvQWxpZ25lZE1lbW9y
eUFsbG9jYXRvcj4obmFtZSk7Ci0gICAgICAgIG1faXNvQWxpZ25lZE1lbW9yeUFsbG9jYXRvciA9
IG1fb3B0aW9uYWxPd25lZEFsbG9jYXRvci5nZXQoKTsKLSAgICB9CiAgICAgbV9yZW1haW5pbmdM
b3dlclRpZXJDZWxsQ291bnQgPSBudW1iZXJPZkxvd2VyVGllckNlbGxzOwogICAgIEFTU0VSVChX
VEY6OnJvdW5kVXBUb011bHRpcGxlT2Y8TWFya2VkQmxvY2s6OmF0b21TaXplPihzaXplKSA9PSBj
ZWxsU2l6ZSgpKTsKICAgICBBU1NFUlQobnVtYmVyT2ZMb3dlclRpZXJDZWxscyA8PSBNYXJrZWRC
bG9jazo6bWF4TnVtYmVyT2ZMb3dlclRpZXJDZWxscyk7CiAgICAgbV9pc0lzb1N1YnNwYWNlID0g
dHJ1ZTsKLSAgICBpbml0aWFsaXplKGhlYXBDZWxsVHlwZSwgbV9pc29BbGlnbmVkTWVtb3J5QWxs
b2NhdG9yKTsKKyAgICBpbml0aWFsaXplKGhlYXBDZWxsVHlwZSwgbV9pc29BbGlnbmVkTWVtb3J5
QWxsb2NhdG9yLmdldCgpKTsKIAogICAgIExvY2tlciBsb2NrZXIgeyBtX3NwYWNlLmRpcmVjdG9y
eUxvY2soKSB9OwogICAgIG1fZGlyZWN0b3J5LnNldFN1YnNwYWNlKHRoaXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vic3BhY2UuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNwYWNlLmgKaW5kZXggN2E5OGQ1ZWZmMWY2Li4xNTA2ODNk
M2EwOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNwYWNl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vic3BhY2UuaApAQCAtNDEs
NyArNDEsNyBAQCBjbGFzcyBJc29TdWJzcGFjZTsKIAogY2xhc3MgSXNvU3Vic3BhY2UgOiBwdWJs
aWMgU3Vic3BhY2UgewogcHVibGljOgotICAgIEpTX0VYUE9SVF9QUklWQVRFIElzb1N1YnNwYWNl
KENTdHJpbmcgbmFtZSwgSGVhcCYsIGNvbnN0IEhlYXBDZWxsVHlwZSYsIHNpemVfdCBzaXplLCB1
aW50OF90IG51bWJlck9mTG93ZXJUaWVyQ2VsbHMsIEFsaWduZWRNZW1vcnlBbGxvY2F0b3IqID0g
bnVsbHB0cik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgSXNvU3Vic3BhY2UoQ1N0cmluZyBuYW1l
LCBIZWFwJiwgY29uc3QgSGVhcENlbGxUeXBlJiwgc2l6ZV90IHNpemUsIHVpbnQ4X3QgbnVtYmVy
T2ZMb3dlclRpZXJDZWxscywgc3RkOjp1bmlxdWVfcHRyPElzb01lbW9yeUFsbG9jYXRvckJhc2U+
JiYgPSBudWxscHRyKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSB+SXNvU3Vic3BhY2UoKSBvdmVy
cmlkZTsKIAogICAgIHNpemVfdCBjZWxsU2l6ZSgpIHsgcmV0dXJuIG1fZGlyZWN0b3J5LmNlbGxT
aXplKCk7IH0KQEAgLTY1LDggKzY1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEJlZ2luU3dl
ZXBpbmdUb0ZyZWVMaXN0KE1hcmtlZEJsb2NrOjpIYW5kbGUqKSBvdmVycmlkZTsKIAogICAgIEJs
b2NrRGlyZWN0b3J5IG1fZGlyZWN0b3J5OwotICAgIEFsaWduZWRNZW1vcnlBbGxvY2F0b3IqIG1f
aXNvQWxpZ25lZE1lbW9yeUFsbG9jYXRvcjsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8SXNvTWVtb3J5
QWxsb2NhdG9yQmFzZT4gbV9vcHRpb25hbE93bmVkQWxsb2NhdG9yOyAvLyBJZiB3ZSBvd24gdGhl
IGFsbG9jYXRvci4KKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SXNvTWVtb3J5QWxsb2NhdG9yQmFzZT4g
bV9pc29BbGlnbmVkTWVtb3J5QWxsb2NhdG9yOwogICAgIFNlbnRpbmVsTGlua2VkTGlzdDxQcmVj
aXNlQWxsb2NhdGlvbiwgUGFja2VkUmF3U2VudGluZWxOb2RlPFByZWNpc2VBbGxvY2F0aW9uPj4g
bV9sb3dlclRpZXJGcmVlTGlzdDsKICAgICBTZW50aW5lbExpbmtlZExpc3Q8SXNvQ2VsbFNldCwg
UGFja2VkUmF3U2VudGluZWxOb2RlPElzb0NlbGxTZXQ+PiBtX2NlbGxTZXRzOwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IDZkNGQ5MjgxZDA1
NS4uMDg0ZGJkY2M2NzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fz
c2VtYmx5SGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlI
ZWxwZXJzLmgKQEAgLTE5NjMsMzAgKzE5NjMsMjQgQEAgcHVibGljOgogICAgICAgICBlbWl0Rmls
bFN0b3JhZ2VXaXRoSlNFbXB0eShidXR0ZXJmbHlHUFIsIGluaXRpYWxPZmZzZXQsIG91dE9mTGlu
ZUNhcGFjaXR5LCBzY3JhdGNoR1BSKTsKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PgogICAgIHZvaWQgbG9hZENvbXBhY3RQdHIoQWRkcmVzcyBhZGRyZXNzLCBHUFJSZWcgZGVzdCkK
ICAgICB7CiAjaWYgSEFWRSgzNkJJVF9BRERSRVNTKQotICAgICAgICBzdGF0aWNfYXNzZXJ0KHNp
emVvZih0eXBlbmFtZSBUOjpDb21wYWN0UHRyVHlwZVRyYWl0czo6U3RvcmFnZVR5cGUpID09IDQp
OwogICAgICAgICBsb2FkMzIoYWRkcmVzcywgZGVzdCk7CiAgICAgICAgIGxzaGlmdDY0KFRydXN0
ZWRJbW0zMig0KSwgZGVzdCk7CiAjZWxzZQotICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZih0
eXBlbmFtZSBUOjpDb21wYWN0UHRyVHlwZVRyYWl0czo6U3RvcmFnZVR5cGUpID09IHNpemVvZih2
b2lkKikpOwogICAgICAgICBsb2FkUHRyKGFkZHJlc3MsIGRlc3QpOwogI2VuZGlmCiAgICAgfQog
Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICBKdW1wIGJyYW5jaENvbXBhY3RQdHIoUmVs
YXRpb25hbENvbmRpdGlvbiBjb25kLCBHUFJSZWcgbGVmdCwgQWRkcmVzcyByaWdodCwgR1BSUmVn
IHNjcmF0Y2gpCiAgICAgewogI2lmIEhBVkUoMzZCSVRfQUREUkVTUykKLSAgICAgICAgc3RhdGlj
X2Fzc2VydChzaXplb2YodHlwZW5hbWUgVDo6Q29tcGFjdFB0clR5cGVUcmFpdHM6OlN0b3JhZ2VU
eXBlKSA9PSA0KTsKICAgICAgICAgQVNTRVJUKGxlZnQgIT0gc2NyYXRjaCk7CiAgICAgICAgIGxv
YWQzMihyaWdodCwgc2NyYXRjaCk7CiAgICAgICAgIGxzaGlmdDY0KFRydXN0ZWRJbW0zMig0KSwg
c2NyYXRjaCk7CiAgICAgICAgIHJldHVybiBicmFuY2hQdHIoY29uZCwgbGVmdCwgQWRkcmVzcyhz
Y3JhdGNoKSk7CiAjZWxzZQotICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZih0eXBlbmFtZSBU
OjpDb21wYWN0UHRyVHlwZVRyYWl0czo6U3RvcmFnZVR5cGUpID09IHNpemVvZih2b2lkKikpOwog
ICAgICAgICBVTlVTRURfUEFSQU0oc2NyYXRjaCk7CiAgICAgICAgIHJldHVybiBicmFuY2hQdHIo
Y29uZCwgbGVmdCwgcmlnaHQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKaW5kZXggNjM4OThmZDgzNTUzLi4zNjYw
NDViOTVkNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9m
ZmxpbmVBc21Db25maWcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRP
ZmZsaW5lQXNtQ29uZmlnLmgKQEAgLTE4Miw4ICsxODIsNiBAQAogCiAjZGVmaW5lIE9GRkxJTkVf
QVNNX0dJR0FDQUdFX0VOQUJMRUQgR0lHQUNBR0VfRU5BQkxFRAogCi0jZGVmaW5lIE9GRkxJTkVf
QVNNX0hBVkVfMzZCSVRfQUREUkVTUyBIQVZFXzM2QklUX0FERFJFU1MKLQogI2lmIEVOQUJMRShK
SVQpCiAjZGVmaW5lIE9GRkxJTkVfQVNNX0pJVCAxCiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2xhc3NJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9DbGFzc0luZm8uaAppbmRleCA0ZmY2ZGFhMDcwNGIuLmVkYjE3MjQwMWQ3YiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2xhc3NJbmZvLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2xhc3NJbmZvLmgKQEAgLTI3LDcgKzI3
LDcgQEAKICNpbmNsdWRlIDx3dGYvQ29tcGFjdFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QdHJUYWcu
aD4KIAotI2lmIEhBVkUoMzZCSVRfQUREUkVTUykgfHwgRU5BQkxFKFNNQUxMX0hFQVApCisjaWYg
SEFWRSgzNkJJVF9BRERSRVNTKQogI2RlZmluZSBDTEFTU19JTkZPX0FMSUdOTUVOVCBhbGlnbmFz
KDE2KQogI2Vsc2UKICNkZWZpbmUgQ0xBU1NfSU5GT19BTElHTk1FTlQKQEAgLTE3OSw3ICsxNzks
NiBAQCBzdHJ1Y3QgTWV0aG9kVGFibGUgewogCiBzdHJ1Y3QgQ0xBU1NfSU5GT19BTElHTk1FTlQg
Q2xhc3NJbmZvIHsKICAgICB1c2luZyBDaGVja0pTQ2FzdFNuaXBwZXRGdW5jdGlvblB0ciA9IFJl
ZjxTbmlwcGV0PiAoKikodm9pZCk7Ci0gICAgdXNpbmcgQ29tcGFjdFB0clR5cGVUcmFpdHMgPSBX
VEY6OkJpZ0hlYXBUeXBlVHJhaXRzPENsYXNzSW5mbz47CiAKICAgICAvLyBBIHN0cmluZyBkZW5v
dGluZyB0aGUgY2xhc3MgbmFtZS4gRXhhbXBsZTogIldpbmRvdyIuCiAgICAgQVNDSUlMaXRlcmFs
IGNsYXNzTmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U3RyaW5nLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCmluZGV4
IDBhOWQ3YzYwOWRlNC4uN2Q0Yjc0YzAyMmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1N0cmluZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTU3RyaW5nLmgKQEAgLTMzLDkgKzMzLDcgQEAKICNpbmNsdWRlICJUaHJvd1Njb3BlLmgi
CiAjaW5jbHVkZSA8YXJyYXk+CiAjaW5jbHVkZSA8d3RmL0NoZWNrZWRBcml0aG1ldGljLmg+Ci0j
aW5jbHVkZSA8d3RmL0NvbXBhY3RQdHIuaD4KICNpbmNsdWRlIDx3dGYvRm9yYmlkSGVhcEFsbG9j
YXRpb24uaD4KLSNpbmNsdWRlIDx3dGYvR2lnYWNhZ2UuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4
dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KIApAQCAtOTYsMTMgKzk0
LDYgQEAgSlNTdHJpbmcqIGFzU3RyaW5nKEpTVmFsdWUpOwogLy8gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHg6KGlzOEJpdCkseTooaXNTdWJzdHJpbmcpLHo6KGlz
Um9wZSkgYml0IGZsYWdzCiBjbGFzcyBKU1N0cmluZyA6IHB1YmxpYyBKU0NlbGwgewogcHVibGlj
OgotICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDhfdCBudW1iZXJPZkxvd2VyVGllckNlbGxzID0g
MDsKLSNpZiBFTkFCTEUoU01BTExfSEVBUCkKLSAgICB1c2luZyBBbGxvY2F0b3JJbmZvID0gR2ln
YWNhZ2U6OlNtYWxsSGVhcEFsbG9jYXRvckluZm87Ci0gICAgdXNpbmcgQ29tcGFjdFB0clR5cGVU
cmFpdHMgPSBXVEY6OkJpZ0hlYXBUeXBlVHJhaXRzPEpTU3RyaW5nPjsKLSNlbHNlCi0gICAgdXNp
bmcgQ29tcGFjdFB0clR5cGVUcmFpdHMgPSBXVEY6OkJpZ0hlYXBUeXBlVHJhaXRzPEpTU3RyaW5n
PjsKLSNlbmRpZgogICAgIGZyaWVuZCBjbGFzcyBKSVQ7CiAgICAgZnJpZW5kIGNsYXNzIFZNOwog
ICAgIGZyaWVuZCBjbGFzcyBTcGVjaWFsaXplZFRodW5rSklUOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rvb2xzL0ludGVncml0eS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdG9vbHMvSW50ZWdyaXR5LmNwcAppbmRleCA4ODZmYTQ4NjNiNWQuLmRiM2NmZThiNWQxMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0ludGVncml0eS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0ludGVncml0eS5jcHAKQEAgLTI1MCw3ICsy
NTAsNyBAQCBib29sIEFuYWx5emVyOjphbmFseXplQ2VsbChWTSYgdm0sIEpTQ2VsbCogY2VsbCwg
QW5hbHl6ZXI6OkFjdGlvbiBhY3Rpb24pCiAgICAgfQogCiAgICAgSlNUeXBlIGNlbGxUeXBlID0g
Y2VsbC0+dHlwZSgpOwotICAgIGlmIChjZWxsLT50eXBlKCkgIT0gSlNJbW11dGFibGVCdXR0ZXJm
bHlUeXBlICYmIGNlbGwtPnR5cGUoKSAhPSBTdHJpbmdUeXBlKQorICAgIGlmIChjZWxsLT50eXBl
KCkgIT0gSlNJbW11dGFibGVCdXR0ZXJmbHlUeXBlKQogICAgICAgICBBVURJVF9WRVJJRlkoIUdp
Z2FjYWdlOjpjb250YWlucyhjZWxsKSwgImNlbGwgJXAgY2VsbC50eXBlICVkIiwgY2VsbCwgY2Vs
bFR5cGUpOwogCiAgICAgV2Vha1NldCYgd2Vha1NldCA9IGNlbGwtPmNlbGxDb250YWluZXIoKS53
ZWFrU2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWly
SVJHZW5lcmF0b3JCYXNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJH
ZW5lcmF0b3JCYXNlLmgKaW5kZXggOGFhNzUxZmI3MGM5Li40OTE1YzI3MzcwYTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvckJhc2UuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3JCYXNlLmgK
QEAgLTMwMjQsNyArMzAyNCw3IEBAIHZvaWQgQWlySVJHZW5lcmF0b3JCYXNlPERlcml2ZWQsIEV4
cHJlc3Npb25UeXBlPjo6ZW1pdExvYWRSVFRGcm9tRnVuY3JlZihFeHByZXNzCiB7CiAgICAgYXV0
byogcGF0Y2ggPSBhZGRQYXRjaHBvaW50KEIzOjpJbnQ2NCk7CiAgICAgcGF0Y2gtPnNldEdlbmVy
YXRvcihbXShDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgQjM6OlN0YWNrbWFwR2VuZXJhdGlvblBh
cmFtcyYgcGFyYW1zKSB7Ci0gICAgICAgIGppdC5sb2FkQ29tcGFjdFB0cjxSVFQ+KENDYWxsSGVs
cGVyczo6QWRkcmVzcyhwYXJhbXNbMV0uZ3ByKCksIFdlYkFzc2VtYmx5RnVuY3Rpb25CYXNlOjpv
ZmZzZXRPZlJUVCgpKSwgcGFyYW1zWzBdLmdwcigpKTsKKyAgICAgICAgaml0LmxvYWRDb21wYWN0
UHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhwYXJhbXNbMV0uZ3ByKCksIFdlYkFzc2VtYmx5RnVu
Y3Rpb25CYXNlOjpvZmZzZXRPZlJUVCgpKSwgcGFyYW1zWzBdLmdwcigpKTsKICAgICB9KTsKICAg
ICBzZWxmKCkuZW1pdFBhdGNocG9pbnQocGF0Y2gsIHJlc3VsdCwgZnVuY3JlZik7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKaW5kZXgg
ZDQ5YzgwMzdjNzU0Li45ZWNhZDcwMjc5ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKQEAgLTM1MDgsNyArMzUwOCw3IEBAIFZhbHVl
KiBCM0lSR2VuZXJhdG9yOjplbWl0TG9hZFJUVEZyb21GdW5jcmVmKFZhbHVlKiBmdW5jcmVmKQog
ICAgIFBhdGNocG9pbnRWYWx1ZSogcGF0Y2ggPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PFBh
dGNocG9pbnRWYWx1ZT4obV9wcm9jLCBCMzo6SW50NjQsIE9yaWdpbigpKTsKICAgICBwYXRjaC0+
YXBwZW5kKGZ1bmNyZWYsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpOwogICAgIHBhdGNoLT5zZXRH
ZW5lcmF0b3IoW10oQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IEIzOjpTdGFja21hcEdlbmVyYXRp
b25QYXJhbXMmIHBhcmFtcykgewotICAgICAgICBqaXQubG9hZENvbXBhY3RQdHI8UlRUPihDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MocGFyYW1zWzFdLmdwcigpLCBXZWJBc3NlbWJseUZ1bmN0aW9uQmFz
ZTo6b2Zmc2V0T2ZSVFQoKSksIHBhcmFtc1swXS5ncHIoKSk7CisgICAgICAgIGppdC5sb2FkQ29t
cGFjdFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MocGFyYW1zWzFdLmdwcigpLCBXZWJBc3NlbWJs
eUZ1bmN0aW9uQmFzZTo6b2Zmc2V0T2ZSVFQoKSksIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgfSk7
CiAgICAgcmV0dXJuIHBhdGNoOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbVR5cGVEZWZpbml0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtVHlwZURlZmluaXRpb24uaAppbmRleCA0ZDNlNGQxNTY5MmUuLmIzY2EwNGEyODIwZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVR5cGVEZWZpbml0aW9uLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVR5cGVEZWZpbml0aW9uLmgKQEAg
LTY1Nyw4ICs2NTcsNiBAQCBjbGFzcyBSVFRfQUxJR05NRU5UIFJUVCA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxSVFQ+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIAogcHVi
bGljOgotICAgIHVzaW5nIENvbXBhY3RQdHJUeXBlVHJhaXRzID0gV1RGOjpCaWdIZWFwVHlwZVRy
YWl0czxSVFQ+OwotCiAgICAgUlRUKCkgPSBkZWxldGU7CiAgICAgUlRUKGNvbnN0IFJUVCYpID0g
ZGVsZXRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseUZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5RnVuY3Rpb24uY3BwCmluZGV4IGZkOGEzNjZhYjU1ZC4uOTZmNTkxMTJiYjQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0
aW9uLmNwcApAQCAtMjc1LDcgKzI3NSw3IEBAIENvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNz
ZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAgICAgICAgICAgICAgIHNs
b3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RDZWxsKHNjcmF0Y2hKU1IpKTsKIAogICAgICAg
ICAgICAgICAgIGppdC5lbWl0TG9hZFN0cnVjdHVyZSh2bSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BS
KCksIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKLSAgICAgICAgICAgICAgICBqaXQubG9hZENv
bXBhY3RQdHI8Q2xhc3NJbmZvPihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEpTUi5wYXls
b2FkR1BSKCksIFN0cnVjdHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBzY3JhdGNoSlNSLnBheWxv
YWRHUFIoKSk7CisgICAgICAgICAgICAgICAgaml0LmxvYWRDb21wYWN0UHRyKENDYWxsSGVscGVy
czo6QWRkcmVzcyhzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgU3RydWN0dXJlOjpjbGFzc0luZm9P
ZmZzZXQoKSksIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKIAogICAgICAgICAgICAgICAgIHN0
YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxXZWJBc3NlbWJseUZ1bmN0aW9uPjo6dmFsdWUsICJX
ZSBkbyBub3QgY2hlY2sgZm9yIHN1YnR5cGVzIGJlbG93Iik7CiAgICAgICAgICAgICAgICAgc3Rh
dGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uPjo6dmFs
dWUsICJXZSBkbyBub3QgY2hlY2sgZm9yIHN1YnR5cGVzIGJlbG93Iik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9Db21wYWN0UHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Db21wYWN0UHRyLmgK
aW5kZXggMmVmODYwZmUyZmNjLi4zOGJlNzg2NmQ1OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL0NvbXBhY3RQdHIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Db21wYWN0UHRyLmgKQEAgLTM5
LDggKzM5LDE4IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCisjaWYgQ1BVKEFERFJFU1M2NCkKKyNp
ZiBDUFUoQVJNNjQpICYmIE9TKERBUldJTikKKyNpZiBNQUNIX1ZNX01BWF9BRERSRVNTX1JBVyA8
ICgxVUxMIDw8IDM2KQorI2RlZmluZSBIQVZFXzM2QklUX0FERFJFU1MgMQorI2VuZGlmCisjZW5k
aWYKKyNlbmRpZiAvLyBDUFUoQUREUkVTUzY0KQorCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0
cnVjdCBCaWdIZWFwVHlwZVRyYWl0cyB7CitjbGFzcyBDb21wYWN0UHRyIHsKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKICNpZiBIQVZFKDM2QklUX0FERFJFU1MpCiAgICAg
Ly8gVGhlIENvbXBhY3RQdHIgYWxnb3JpdGhtIHJlbGllcyBvbiBiZWluZyBhYmxlIHRvIHNoaWZ0
CiAgICAgLy8gYSAzNi1iaXQgYWRkcmVzcyByaWdodCBieSA0IGluIG9yZGVyIHRvIGZpdCBpbiAz
Mi1iaXRzLgpAQCAtNDgsNDkgKzU4LDExIEBAIHN0cnVjdCBCaWdIZWFwVHlwZVRyYWl0cyB7CiAg
ICAgLy8gbG9zcyBpcyBpZiB0aGUgaWYgdGhlIGFkZHJlc3MgaXMgYWx3YXlzIDE2IGJ5dGVzIGFs
aWduZWQgaS5lLgogICAgIC8vIHRoZSBsb3dlciA0IGJpdHMgaXMgYWx3YXlzIDAuCiAgICAgdXNp
bmcgU3RvcmFnZVR5cGUgPSB1aW50MzJfdDsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXMz
MkJpdCA9IHRydWU7CiAjZWxzZQogICAgIHVzaW5nIFN0b3JhZ2VUeXBlID0gdWludHB0cl90Owor
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpczMyQml0ID0gZmFsc2U7CiAjZW5kaWYKLQotICAg
IHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgYWRkaXRpb25hbE1hc2sgPSAwOwotICAgIHN0YXRp
YyBjb25zdGV4cHIgdWludDMyX3QgYml0c1NoaWZ0ID0gNDsKLSAgICBzdGF0aWMgY29uc3RleHBy
IHVpbnRwdHJfdCBhbGlnbm1lbnRNYXNrID0gKDF1bGwgPDwgYml0c1NoaWZ0KSAtIDE7Ci0KLSAg
ICBzdGF0aWMgQUxXQVlTX0lOTElORSBTdG9yYWdlVHlwZSBlbmNvZGUoY29uc3QgVCogcHRyKQot
ICAgIHsKLSAgICAgICAgdWludHB0cl90IGludFB0ciA9IGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+
KHB0cik7Ci0jaWYgSEFWRSgzNkJJVF9BRERSRVNTKQotICAgICAgICBzdGF0aWNfYXNzZXJ0KGFs
aWdub2YoVCkgPj0gKDFVTEwgPDwgYml0c1NoaWZ0KSk7Ci0gICAgICAgIEFTU0VSVCghKGludFB0
ciAmIGFsaWdubWVudE1hc2spKTsKLSAgICAgICAgU3RvcmFnZVR5cGUgZW5jb2RlZCA9IHN0YXRp
Y19jYXN0PFN0b3JhZ2VUeXBlPihpbnRQdHIgPj4gYml0c1NoaWZ0KTsKLSAgICAgICAgQVNTRVJU
KGRlY29kZShlbmNvZGVkKSA9PSBwdHIpOwotICAgICAgICByZXR1cm4gZW5jb2RlZDsKLSNlbHNl
Ci0gICAgICAgIHJldHVybiBpbnRQdHI7Ci0jZW5kaWYKLSAgICB9Ci0KLSAgICBzdGF0aWMgQUxX
QVlTX0lOTElORSBUKiBkZWNvZGUoU3RvcmFnZVR5cGUgcHRyKQotICAgIHsKLSNpZiBIQVZFKDM2
QklUX0FERFJFU1MpCi0gICAgICAgIHN0YXRpY19hc3NlcnQoYWxpZ25vZihUKSA+PSAoMVVMTCA8
PCBiaXRzU2hpZnQpKTsKLSAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxUKj4oc3RhdGljX2Nh
c3Q8dWludHB0cl90PihwdHIpIDw8IGJpdHNTaGlmdCk7Ci0jZWxzZQotICAgICAgICByZXR1cm4g
Yml0d2lzZV9jYXN0PFQqPihwdHIpOwotI2VuZGlmCi0gICAgfQotfTsKLQotdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+Ci1jbGFzcyBDb21wYWN0UHRyIHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKLXB1YmxpYzoKLQotICAgIHVzaW5nIENvbXBhY3RUeXBlVHJhaXRzID0gdHlwZW5hbWUgVDo6
Q29tcGFjdFB0clR5cGVUcmFpdHM7Ci0gICAgdXNpbmcgU3RvcmFnZVR5cGUgPSB0eXBlbmFtZSBD
b21wYWN0VHlwZVRyYWl0czo6U3RvcmFnZVR5cGU7Ci0KLSAgICBzdGF0aWMgY29uc3RleHByIHVp
bnQzMl90IGFkZGl0aW9uYWxNYXNrID0gQ29tcGFjdFR5cGVUcmFpdHM6OmFkZGl0aW9uYWxNYXNr
OwotICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpczMyQml0ID0gc2l6ZW9mKFN0b3JhZ2VUeXBl
KSA8PSA0OwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0NvbXBhY3RlZFR5cGUgPSB0cnVl
OwogCiAgICAgQUxXQVlTX0lOTElORSBjb25zdGV4cHIgQ29tcGFjdFB0cigpID0gZGVmYXVsdDsK
QEAgLTIwNSwxMiArMTc3LDI2IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBBTFdBWVNfSU5MSU5F
IFN0b3JhZ2VUeXBlIGVuY29kZShUKiBwdHIpCiAgICAgewotICAgICAgICByZXR1cm4gQ29tcGFj
dFR5cGVUcmFpdHM6OmVuY29kZShwdHIpOworICAgICAgICB1aW50cHRyX3QgaW50UHRyID0gYml0
d2lzZV9jYXN0PHVpbnRwdHJfdD4ocHRyKTsKKyNpZiBIQVZFKDM2QklUX0FERFJFU1MpCisgICAg
ICAgIHN0YXRpY19hc3NlcnQoYWxpZ25vZihUKSA+PSAoMVVMTCA8PCBiaXRzU2hpZnQpKTsKKyAg
ICAgICAgQVNTRVJUKCEoaW50UHRyICYgYWxpZ25tZW50TWFzaykpOworICAgICAgICBTdG9yYWdl
VHlwZSBlbmNvZGVkID0gc3RhdGljX2Nhc3Q8U3RvcmFnZVR5cGU+KGludFB0ciA+PiBiaXRzU2hp
ZnQpOworICAgICAgICBBU1NFUlQoZGVjb2RlKGVuY29kZWQpID09IHB0cik7CisgICAgICAgIHJl
dHVybiBlbmNvZGVkOworI2Vsc2UKKyAgICAgICAgcmV0dXJuIGludFB0cjsKKyNlbmRpZgogICAg
IH0KIAogICAgIHN0YXRpYyBBTFdBWVNfSU5MSU5FIFQqIGRlY29kZShTdG9yYWdlVHlwZSBwdHIp
CiAgICAgewotICAgICAgICByZXR1cm4gQ29tcGFjdFR5cGVUcmFpdHM6OmRlY29kZShwdHIpOwor
I2lmIEhBVkUoMzZCSVRfQUREUkVTUykKKyAgICAgICAgc3RhdGljX2Fzc2VydChhbGlnbm9mKFQp
ID49ICgxVUxMIDw8IGJpdHNTaGlmdCkpOworICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PFQq
PihzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KHB0cikgPDwgYml0c1NoaWZ0KTsKKyNlbHNlCisgICAg
ICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8VCo+KHB0cik7CisjZW5kaWYKICAgICB9CiAKICAgICBi
b29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9wdHIgPT0gaGFz
aERlbGV0ZWRTdG9yYWdlVmFsdWU7IH0KQEAgLTIyNyw2ICsyMTMsOCBAQCBwcml2YXRlOgogICAg
IHRlbXBsYXRlIDx0eXBlbmFtZSBYPgogICAgIGZyaWVuZCBjbGFzcyBDb21wYWN0UHRyOwogCisg
ICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBiaXRzU2hpZnQgPSA0OworICAgIHN0YXRpYyBj
b25zdGV4cHIgdWludHB0cl90IGFsaWdubWVudE1hc2sgPSAoMXVsbCA8PCBiaXRzU2hpZnQpIC0g
MTsKICAgICBzdGF0aWMgY29uc3RleHByIFN0b3JhZ2VUeXBlIGhhc2hEZWxldGVkU3RvcmFnZVZh
bHVlID0gMTsgLy8gMHgxNiAoZW5jb2RlZCBhcyAxKSBpcyB3aXRoaW4gdGhlIGZpcnN0IHVubWFw
cGVkIHBhZ2UgZm9yIG51bGxwdHIuIFRodXMsIGl0IG5ldmVyIGFwcGVhcnMuCiAKICAgICBTdG9y
YWdlVHlwZSBtX3B0ciB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0RlYnVnSGVh
cC5oIGIvU291cmNlL1dURi93dGYvRGVidWdIZWFwLmgKaW5kZXggNDg1MjFjYzk4NzQzLi41NjJh
MzY3ODhiMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RlYnVnSGVhcC5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL0RlYnVnSGVhcC5oCkBAIC0yNiw3ICsyNiw2IEBACiAjcHJhZ21hIG9uY2UK
IAogI2luY2x1ZGUgPHd0Zi9FeHBvcnRNYWNyb3MuaD4KLSNpbmNsdWRlIDx3dGYvR2lnYWNhZ2Uu
aD4KICNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KIAogI2lmIEVOQUJMRShNQUxMT0NfSEVBUF9C
UkVBS0RPV04pCkBAIC05NSwxNyArOTQsNiBAQCBwcml2YXRlOgogI2RlZmluZSBERUZJTkVfQUxM
T0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKFR5cGUpIFwKICAgICBzdHJ1Y3QgTWFrZURlYnVn
SGVhcE1hbGxvY2VkSW1wbE1hY3JvU2VtaWNvbG9uaWZpZXIjI1R5cGUgeyB9CiAKLSNpZiBFTkFC
TEUoU01BTExfSEVBUCkKLSNkZWZpbmUgREVDTEFSRV9TTUFMTEhFQVBfQUxMT0NBVE9SX1dJVEhf
SEVBUF9JREVOVElGSUVSKFR5cGUpIFwKLSAgICB1c2luZyBUeXBlIyNNYWxsb2MgPSBTbWFsbEhl
YXBNYWxsb2M8R2lnYWNhZ2U6OlNtYWxsSGVhcEFsbG9jYXRvckluZm8+Ci0jZWxzZQotI2RlZmlu
ZSBERUNMQVJFX1NNQUxMSEVBUF9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoVHlwZSkg
XAotICAgIHVzaW5nIFR5cGUjI01hbGxvYyA9IEZhc3RNYWxsb2MKLSNlbmRpZgotCi0jZGVmaW5l
IERFRklORV9TTUFMTEhFQVBfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKFR5cGUpIFwK
LSAgICBzdHJ1Y3QgTWFrZURlYnVnSGVhcE1hbGxvY2VkSW1wbE1hY3JvU2VtaWNvbG9uaWZpZXIj
I1R5cGUgeyB9Ci0KICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuaCBiL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuaApp
bmRleCAwNWE3ZDhiYmMyMjMuLjQ4MzE1ZWFhMjY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvRmFzdE1hbGxvYy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuaApAQCAtMjUs
MTAgKzI1LDYgQEAKICNpbmNsdWRlIDx3dGYvRGVidWdIZWFwLmg+CiAjaW5jbHVkZSA8d3RmL1N0
ZExpYkV4dHJhcy5oPgogCi0jaWYgRU5BQkxFKFNNQUxMX0hFQVApCi0jaW5jbHVkZSA8d3RmL0dp
Z2FjYWdlLmg+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdURiB7CiAKIC8vIFRoZXJlIGFyZSBzZXZl
cmFsIG1hbGxvYy1yZWxhdGVkIG1hY3JvcyB0byBhbm5vdGF0ZSBjbGFzcyAvIHN0cnVjdC4gSWYg
dGhlc2UgYW5ub3RhdGlvbnMgYXJlIGF0dGFjaGVkLApAQCAtMjc1LDQzICsyNzEsNiBAQCBzdHJ1
Y3QgRmFzdEZyZWU8VFtdPiB7CiAgICAgfQogfTsKIAotI2lmIEVOQUJMRShTTUFMTF9IRUFQKQot
dGVtcGxhdGU8dHlwZW5hbWUgQWxsb2NhdG9ySW5mbz4KLXN0cnVjdCBTbWFsbEhlYXBNYWxsb2Mg
ewotICAgIHN0YXRpYyB2b2lkKiBtYWxsb2Moc2l6ZV90IHNpemUpCi0gICAgewotICAgICAgICBB
U1NFUlQoQWxsb2NhdG9ySW5mbzo6YmFzZUFkZHJlc3MoKSk7Ci0gICAgICAgIGF1dG8qIHAgPSBH
aWdhY2FnZTo6bWFsbG9jKDo6R2lnYWNhZ2U6OlNtYWxsSGVhcCwgc2l6ZSk7Ci0gICAgICAgIEFT
U0VSVChiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihwKSA+IEFsbG9jYXRvckluZm86OmJhc2VBZGRy
ZXNzKCkpOwotICAgICAgICByZXR1cm4gcDsKLSAgICB9Ci0KLSAgICBzdGF0aWMgdm9pZCogdHJ5
TWFsbG9jKHNpemVfdCBzaXplKQotICAgIHsKLSAgICAgICAgQVNTRVJUKEFsbG9jYXRvckluZm86
OmJhc2VBZGRyZXNzKCkpOwotICAgICAgICBhdXRvKiBwID0gOjpHaWdhY2FnZTo6dHJ5TWFsbG9j
U21hbGxIZWFwKHNpemUpOwotICAgICAgICBBU1NFUlQoYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4o
cCkgPiBBbGxvY2F0b3JJbmZvOjpiYXNlQWRkcmVzcygpKTsKLSAgICAgICAgcmV0dXJuIHA7Ci0g
ICAgfQotCi0gICAgc3RhdGljIHZvaWQqIHRyeVJlYWxsb2Modm9pZCogcCwgc2l6ZV90IHNpemUp
Ci0gICAgewotICAgICAgICBBU1NFUlQoQWxsb2NhdG9ySW5mbzo6YmFzZUFkZHJlc3MoKSk7Ci0g
ICAgICAgIEFTU0VSVChiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihwKSA+IEFsbG9jYXRvckluZm86
OmJhc2VBZGRyZXNzKCkpOwotICAgICAgICBwID0gOjpHaWdhY2FnZTo6dHJ5UmVhbGxvYyg6Okdp
Z2FjYWdlOjpTbWFsbEhlYXAsIHAsIHNpemUpOwotICAgICAgICBBU1NFUlQoYml0d2lzZV9jYXN0
PHVpbnRwdHJfdD4ocCkgPiBBbGxvY2F0b3JJbmZvOjpiYXNlQWRkcmVzcygpKTsKLSAgICAgICAg
cmV0dXJuIHA7Ci0gICAgfQotCi0gICAgc3RhdGljIHZvaWQgZnJlZSh2b2lkKiBwKQotICAgIHsK
LSAgICAgICAgQVNTRVJUKEFsbG9jYXRvckluZm86OmJhc2VBZGRyZXNzKCkpOwotICAgICAgICBB
U1NFUlQoYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4ocCkgPiBBbGxvY2F0b3JJbmZvOjpiYXNlQWRk
cmVzcygpKTsKLSAgICAgICAgOjpHaWdhY2FnZTo6ZnJlZSg6OkdpZ2FjYWdlOjpTbWFsbEhlYXAs
IHApOwotICAgIH0KLX07Ci0jZW5kaWYgLy8gRU5BQkxFKFNNQUxMX0hFQVApCi0KIH0gLy8gbmFt
ZXNwYWNlIFdURgogCiAjaWYgIWRlZmluZWQoTkRFQlVHKQpAQCAtMzk2LDEwOCArMzU1LDYgQEAg
dXNpbmcgX190aGlzSXNIZXJlVG9Gb3JjZUFTZW1pY29sb25BZnRlclRoaXNNYWNybyBVTlVTRURf
VFlQRV9BTElBUyA9IGludAogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEX0lNUEwgXAogdXNp
bmcgX190aGlzSXNIZXJlVG9Gb3JjZUFTZW1pY29sb25BZnRlclRoaXNNYWNybyBVTlVTRURfVFlQ
RV9BTElBUyA9IGludAogCi0jaWYgIUVOQUJMRShTTUFMTF9IRUFQKQotI2RlZmluZSBXVEZfTUFL
RV9TTUFMTEhFQVBfQUxMT0NBVEVEX0lNUEwgXAotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
X0lNUEwKLQotI2Vsc2UKLSNkZWZpbmUgV1RGX01BS0VfU01BTExIRUFQX0FMTE9DQVRFRF9JTVBM
IFwKLSAgICB2b2lkKiBvcGVyYXRvciBuZXcoc2l6ZV90LCB2b2lkKiBwKSBcCi0gICAgeyBcCi0g
ICAgICAgIEFTU0VSVChBbGxvY2F0b3JJbmZvOjpiYXNlQWRkcmVzcygpKTsgXAotICAgICAgICBB
U1NFUlQoYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4ocCkgPiBBbGxvY2F0b3JJbmZvOjpiYXNlQWRk
cmVzcygpKTsgXAotICAgICAgICByZXR1cm4gcDsgXAotICAgIH0gXAotICAgIHZvaWQqIG9wZXJh
dG9yIG5ld1tdKHNpemVfdCwgdm9pZCogcCkgXAotICAgIHsgXAotICAgICAgICBBU1NFUlQoQWxs
b2NhdG9ySW5mbzo6YmFzZUFkZHJlc3MoKSk7IFwKLSAgICAgICAgQVNTRVJUKGJpdHdpc2VfY2Fz
dDx1aW50cHRyX3Q+KHApID4gQWxsb2NhdG9ySW5mbzo6YmFzZUFkZHJlc3MoKSk7IFwKLSAgICAg
ICAgcmV0dXJuIHA7IFwKLSAgICB9IFwKLSAgICBcCi0gICAgdm9pZCogb3BlcmF0b3IgbmV3KHNp
emVfdCBzaXplKSBcCi0gICAgeyBcCi0gICAgICAgIEFTU0VSVChBbGxvY2F0b3JJbmZvOjpiYXNl
QWRkcmVzcygpKTsgXAotICAgICAgICBhdXRvKiBwID0gOjpHaWdhY2FnZTo6dHJ5TWFsbG9jU21h
bGxIZWFwKHNpemUpOyBcCi0gICAgICAgIEFTU0VSVChiaXR3aXNlX2Nhc3Q8dWludHB0cl90Pihw
KSA+IEFsbG9jYXRvckluZm86OmJhc2VBZGRyZXNzKCkpOyBcCi0gICAgICAgIHJldHVybiBwOyBc
Ci0gICAgfSBcCi0gICAgXAotICAgIHZvaWQgb3BlcmF0b3IgZGVsZXRlKHZvaWQqIHApIFwKLSAg
ICB7IFwKLSAgICAgICAgQVNTRVJUKEFsbG9jYXRvckluZm86OmJhc2VBZGRyZXNzKCkpOyBcCi0g
ICAgICAgIEFTU0VSVChiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihwKSA+IEFsbG9jYXRvckluZm86
OmJhc2VBZGRyZXNzKCkpOyBcCi0gICAgICAgIDo6R2lnYWNhZ2U6OmZyZWUoOjpHaWdhY2FnZTo6
U21hbGxIZWFwLCBwKTsgXAotICAgIH0gXAotICAgIFwKLSAgICB2b2lkKiBvcGVyYXRvciBuZXdb
XShzaXplX3Qgc2l6ZSkgXAotICAgIHsgXAotICAgICAgICBBU1NFUlQoQWxsb2NhdG9ySW5mbzo6
YmFzZUFkZHJlc3MoKSk7IFwKLSAgICAgICAgYXV0byogcCA9IDo6R2lnYWNhZ2U6OnRyeU1hbGxv
Y1NtYWxsSGVhcChzaXplKTsgXAotICAgICAgICBBU1NFUlQoYml0d2lzZV9jYXN0PHVpbnRwdHJf
dD4ocCkgPiBBbGxvY2F0b3JJbmZvOjpiYXNlQWRkcmVzcygpKTsgXAotICAgICAgICByZXR1cm4g
cDsgXAotICAgIH0gXAotICAgIFwKLSAgICB2b2lkIG9wZXJhdG9yIGRlbGV0ZVtdKHZvaWQqIHAp
IFwKLSAgICB7IFwKLSAgICAgICAgQVNTRVJUKEFsbG9jYXRvckluZm86OmJhc2VBZGRyZXNzKCkp
OyBcCi0gICAgICAgIEFTU0VSVChiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihwKSA+IEFsbG9jYXRv
ckluZm86OmJhc2VBZGRyZXNzKCkpOyBcCi0gICAgICAgIDo6R2lnYWNhZ2U6OmZyZWUoOjpHaWdh
Y2FnZTo6U21hbGxIZWFwLCBwKTsgXAotICAgIH0gXAotICAgIHZvaWQqIG9wZXJhdG9yIG5ldyhz
aXplX3QsIE5vdE51bGxUYWcsIHZvaWQqIGxvY2F0aW9uKSBcCi0gICAgeyBcCi0gICAgICAgIEFT
U0VSVChBbGxvY2F0b3JJbmZvOjpiYXNlQWRkcmVzcygpKTsgXAotICAgICAgICBBU1NFUlQobG9j
YXRpb24pOyBcCi0gICAgICAgIEFTU0VSVChiaXR3aXNlX2Nhc3Q8dWludHB0cl90Pihsb2NhdGlv
bikgPiBBbGxvY2F0b3JJbmZvOjpiYXNlQWRkcmVzcygpKTsgXAotICAgICAgICByZXR1cm4gbG9j
YXRpb247IFwKLSAgICB9IFwKLSAgICBzdGF0aWMgdm9pZCBmcmVlQWZ0ZXJEZXN0cnVjdGlvbih2
b2lkKiBwKSBcCi0gICAgeyBcCi0gICAgICAgIEFTU0VSVChBbGxvY2F0b3JJbmZvOjpiYXNlQWRk
cmVzcygpKTsgXAotICAgICAgICBBU1NFUlQoYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4ocCkgPiBB
bGxvY2F0b3JJbmZvOjpiYXNlQWRkcmVzcygpKTsgXAotICAgICAgICA6OkdpZ2FjYWdlOjpmcmVl
KDo6R2lnYWNhZ2U6OlNtYWxsSGVhcCwgcCk7IFwKLSAgICB9IFwKLSAgICB1c2luZyB3ZWJraXRG
YXN0TWFsbG9jZWQgPSBpbnQ7IFwKLQotI2VuZGlmCi0KLSNkZWZpbmUgV1RGX01BS0VfU01BTExI
RUFQX0FMTE9DQVRFRCBcCi1wdWJsaWM6IFwKLSAgICBXVEZfTUFLRV9TTUFMTEhFQVBfQUxMT0NB
VEVEX0lNUEwgXAotcHJpdmF0ZTogXAotdXNpbmcgX190aGlzSXNIZXJlVG9Gb3JjZUFTZW1pY29s
b25BZnRlclRoaXNNYWNybyBVTlVTRURfVFlQRV9BTElBUyA9IGludAotCi0jZGVmaW5lIFdURl9N
QUtFX1NNQUxMSEVBUF9GQVNUX0FMTE9DQVRFRCBcCi0gICAgV1RGX01BS0VfU01BTExIRUFQX0FM
TE9DQVRFRF9JTVBMIFwKLXVzaW5nIF9fdGhpc0lzSGVyZVRvRm9yY2VBU2VtaWNvbG9uQWZ0ZXJU
aGlzTWFjcm8gVU5VU0VEX1RZUEVfQUxJQVMgPSBpbnQKLQotI2RlZmluZSBXVEZfTUFLRV9TTUFM
TEhFQVBfQUxMT0NBVEVEX1dJVEhfSEVBUF9JREVOVElGSUVSX0lNUEwoY2xhc3NuYW1lKSBcCi0g
ICAgV1RGX01BS0VfU01BTExIRUFQX0FMTE9DQVRFRF9JTVBMCi0KLSNkZWZpbmUgV1RGX01BS0Vf
U01BTExIRUFQX0FMTE9DQVRFRF9XSVRIX0hFQVBfSURFTlRJRklFUihjbGFzc25hbWUpIFwKLXB1
YmxpYzogXAotICAgIFdURl9NQUtFX1NNQUxMSEVBUF9BTExPQ0FURURfV0lUSF9IRUFQX0lERU5U
SUZJRVJfSU1QTChjbGFzc25hbWUpIFwKLXByaXZhdGU6IFwKLXVzaW5nIF9fdGhpc0lzSGVyZVRv
Rm9yY2VBU2VtaWNvbG9uQWZ0ZXJUaGlzTWFjcm8gVU5VU0VEX1RZUEVfQUxJQVMgPSBpbnQKLQot
I2lmIEVOQUJMRShTTUFMTF9IRUFQKQotI2RlZmluZSBXVEZfTUFLRV9TVFJVQ1RfU01BTExIRUFQ
X0FMTE9DQVRFRF9XSVRIX0hFQVBfSURFTlRJRklFUihjbGFzc05hbWUpIFwKLXB1YmxpYzogXAot
ICAgIFdURl9NQUtFX1NNQUxMSEVBUF9BTExPQ0FURURfV0lUSF9IRUFQX0lERU5USUZJRVJfSU1Q
TChjbGFzc05hbWUpIFwKLSAgICBzdGF0aWMgY29uc3RleHByIHVpbnQ4X3QgbnVtYmVyT2ZMb3dl
clRpZXJDZWxscyA9IDA7IFwKLSAgICB1c2luZyBBbGxvY2F0b3JJbmZvID0gR2lnYWNhZ2U6OlNt
YWxsSGVhcEFsbG9jYXRvckluZm87IC8qIGNoYW5nZSBEZWJ1Z0hlYXAuaCB0b28gKi8gXAotICAg
IHVzaW5nIENvbXBhY3RQdHJUeXBlVHJhaXRzID0gV1RGOjpCaWdIZWFwVHlwZVRyYWl0czxjbGFz
c05hbWU+OyBcCi11c2luZyBfX3RoaXNJc0hlcmVUb0ZvcmNlQVNlbWljb2xvbkFmdGVyVGhpc01h
Y3JvIFVOVVNFRF9UWVBFX0FMSUFTID0gaW50Ci0KLSNlbHNlCi0KLSNkZWZpbmUgV1RGX01BS0Vf
U1RSVUNUX1NNQUxMSEVBUF9BTExPQ0FURURfV0lUSF9IRUFQX0lERU5USUZJRVIoY2xhc3NOYW1l
KSBcCi1wdWJsaWM6IFwKLSAgICBXVEZfTUFLRV9TTUFMTEhFQVBfQUxMT0NBVEVEX1dJVEhfSEVB
UF9JREVOVElGSUVSX0lNUEwoY2xhc3NOYW1lKSBcCi0gICAgdXNpbmcgQ29tcGFjdFB0clR5cGVU
cmFpdHMgPSBXVEY6OkJpZ0hlYXBUeXBlVHJhaXRzPGNsYXNzTmFtZT47IFwKLXVzaW5nIF9fdGhp
c0lzSGVyZVRvRm9yY2VBU2VtaWNvbG9uQWZ0ZXJUaGlzTWFjcm8gVU5VU0VEX1RZUEVfQUxJQVMg
PSBpbnQKLSNlbmRpZgotCiAjaWYgRU5BQkxFKE1BTExPQ19IRUFQX0JSRUFLRE9XTikKIAogI2Rl
ZmluZSBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRF9XSVRIX0hFQVBfSURFTlRJRklFUl9JTVBMKGNs
YXNzbmFtZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvR2lnYWNhZ2UuY3BwIGIvU291
cmNlL1dURi93dGYvR2lnYWNhZ2UuY3BwCmluZGV4IGM2ZmM1ZDE2N2Y5OS4uMjhiYWYzNjNhNDRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9HaWdhY2FnZS5jcHAKKysrIGIvU291cmNlL1dU
Ri93dGYvR2lnYWNhZ2UuY3BwCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSA8d3RmL0dpZ2Fj
YWdlLmg+CiAKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgotI2luY2x1ZGUgPHd0Zi9GYXN0TWFs
bG9jLmg+CiAjaW5jbHVkZSA8d3RmL1BhZ2VCbG9jay5oPgogCiAjaWYgVVNFKFNZU1RFTV9NQUxM
T0MpCkBAIC0zNSwxMiArMzQsNiBAQAogCiBuYW1lc3BhY2UgR2lnYWNhZ2UgewogCi12b2lkKiB0
cnlBbGlnbmVkTWFsbG9jKEtpbmQsIHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXplKSB7IHJl
dHVybiB0cnlGYXN0QWxpZ25lZE1hbGxvYyhhbGlnbm1lbnQsIHNpemUpOyB9Ci0KLXZvaWQgYWxp
Z25lZEZyZWUoS2luZCwgdm9pZCogcCkgeyBmYXN0QWxpZ25lZEZyZWUocCk7IH0KLQotdm9pZCBm
cmVlKEtpbmQsIHZvaWQqIHApIHsgZmFzdEZyZWUocCk7IH0KLQogdm9pZCogdHJ5TWFsbG9jKEtp
bmQsIHNpemVfdCBzaXplKQogewogICAgIHJldHVybiBGYXN0TWFsbG9jOjp0cnlNYWxsb2Moc2l6
ZSk7CkBAIC0xMDMsMTMgKzk2LDYgQEAgdm9pZCogdHJ5TWFsbG9jKEtpbmQga2luZCwgc2l6ZV90
IHNpemUpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotI2lmIEVOQUJMRShTTUFMTF9IRUFQKQot
dm9pZCogdHJ5TWFsbG9jU21hbGxIZWFwKHNpemVfdCBzaXplKQotewotICAgIHJldHVybiBibWFs
bG9jOjphcGk6OnRyeU1hbGxvYyhzaXplLCBibWFsbG9jOjpoZWFwS2luZChLaW5kOjpTbWFsbEhl
YXApKTsKLX0KLSNlbmRpZgotCiB2b2lkKiB0cnlSZWFsbG9jKEtpbmQga2luZCwgdm9pZCogcG9p
bnRlciwgc2l6ZV90IHNpemUpCiB7CiAgICAgdm9pZCogcmVzdWx0ID0gYm1hbGxvYzo6YXBpOjp0
cnlSZWFsbG9jKHBvaW50ZXIsIHNpemUsIGJtYWxsb2M6OmhlYXBLaW5kKGtpbmQpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0dpZ2FjYWdlLmggYi9Tb3VyY2UvV1RGL3d0Zi9HaWdhY2Fn
ZS5oCmluZGV4IDVhNzE2OTcwZTJhOS4uMWQ0ZjA2ODc5MDRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9HaWdhY2FnZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0dpZ2FjYWdlLmgKQEAgLTI1
LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5o
PgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogI2lmIFVTRShTWVNURU1fTUFMTE9D
KQpAQCAtNDQsNyArNDUsNiBAQCBlbnVtIEtpbmQgewogfTsKIAogaW5saW5lIHZvaWQgZW5zdXJl
R2lnYWNhZ2UoKSB7IH0KLWlubGluZSB2b2lkIGVuc3VyZVNtYWxsSGVhcCgpIHsgfQogaW5saW5l
IHZvaWQgZGlzYWJsZVByaW1pdGl2ZUdpZ2FjYWdlKCkgeyB9CiBpbmxpbmUgYm9vbCBzaG91bGRC
ZUVuYWJsZWQoKSB7IHJldHVybiBmYWxzZTsgfQogCkBAIC04MywxMSArODMsMTEgQEAgaW5saW5l
IFQqIGNhZ2VkTWF5QmVOdWxsKEtpbmQsIFQqIHB0cikgeyByZXR1cm4gcHRyOyB9CiAKIGlubGlu
ZSBib29sIGlzQ2FnZWQoS2luZCwgY29uc3Qgdm9pZCopIHsgcmV0dXJuIGZhbHNlOyB9CiAKLVdU
Rl9FWFBPUlRfUFJJVkFURSB2b2lkKiB0cnlBbGlnbmVkTWFsbG9jKEtpbmQsIHNpemVfdCBhbGln
bm1lbnQsIHNpemVfdCBzaXplKTsKLVdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGFsaWduZWRGcmVl
KEtpbmQsIHZvaWQqIHApOworaW5saW5lIHZvaWQqIHRyeUFsaWduZWRNYWxsb2MoS2luZCwgc2l6
ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUpIHsgcmV0dXJuIHRyeUZhc3RBbGlnbmVkTWFsbG9j
KGFsaWdubWVudCwgc2l6ZSk7IH0KK2lubGluZSB2b2lkIGFsaWduZWRGcmVlKEtpbmQsIHZvaWQq
IHApIHsgZmFzdEFsaWduZWRGcmVlKHApOyB9CiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCogdHJ5
TWFsbG9jKEtpbmQsIHNpemVfdCBzaXplKTsKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkKiB0cnlS
ZWFsbG9jKEtpbmQsIHZvaWQqLCBzaXplX3QpOwotV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZnJl
ZShLaW5kLCB2b2lkKiBwKTsKK2lubGluZSB2b2lkIGZyZWUoS2luZCwgdm9pZCogcCkgeyBmYXN0
RnJlZShwKTsgfQogCiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCogdHJ5QWxsb2NhdGVaZXJvZWRW
aXJ0dWFsUGFnZXMoS2luZCwgc2l6ZV90IHNpemUpOwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQg
ZnJlZVZpcnR1YWxQYWdlcyhLaW5kLCB2b2lkKiBiYXNlUHRyLCBzaXplX3Qgc2l6ZSk7CkBAIC0x
MDEsOSArMTAxLDYgQEAgbmFtZXNwYWNlIEdpZ2FjYWdlIHsKIFdURl9FWFBPUlRfUFJJVkFURSB2
b2lkKiB0cnlBbGlnbmVkTWFsbG9jKEtpbmQsIHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXpl
KTsKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGFsaWduZWRGcmVlKEtpbmQsIHZvaWQqKTsKIFdU
Rl9FWFBPUlRfUFJJVkFURSB2b2lkKiB0cnlNYWxsb2MoS2luZCwgc2l6ZV90KTsKLSNpZiBFTkFC
TEUoU01BTExfSEVBUCkKLVdURl9FWFBPUlRfUFJJVkFURSB2b2lkKiB0cnlNYWxsb2NTbWFsbEhl
YXAoc2l6ZV90IHNpemUpOwotI2VuZGlmCiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCogdHJ5UmVh
bGxvYyhLaW5kLCB2b2lkKiwgc2l6ZV90KTsKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGZyZWUo
S2luZCwgdm9pZCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUu
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IGM2Y2VjNWQxNmUyYi4uOTQ2
NTAwNjc4N2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1
ZGUgPGZlYXR1cmVzLmg+CiAjZW5kaWYKIAorCiAjaWYgQ1BVKEFSTV9ORU9OKQogLyogQWxsIE5F
T04gaW50cmluc2ljcyB1c2FnZSBjYW4gYmUgZGlzYWJsZWQgYnkgdGhpcyBtYWNyby4gKi8KICNk
ZWZpbmUgSEFWRV9BUk1fTkVPTl9JTlRSSU5TSUNTIDEKQEAgLTE0ODUsMTUgKzE0ODYsMyBAQAog
ICAgIHx8IChQTEFURk9STShNQUNDQVRBTFlTVCkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTcwMDAwKSkKICNkZWZpbmUgSEFWRV9NQUNIX1JBTkdFX0NSRUFURSAxCiAj
ZW5kaWYKLQotI2lmIENQVShBRERSRVNTNjQpICYmIENQVShBUk02NCkgJiYgUExBVEZPUk0oSU9T
KSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpCi0jZGVmaW5lIEhBVkVfMzZCSVRf
QUREUkVTUyAxCi0jZWxzZQotI2RlZmluZSBIQVZFXzM2QklUX0FERFJFU1MgMAotI2VuZGlmCi0K
LSNpZiAhSEFWRSgzNkJJVF9BRERSRVNTKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgQ1BV
KEFERFJFU1M2NCkgJiYgT1MoREFSV0lOKQotI2RlZmluZSBFTkFCTEVfU01BTExfSEVBUCAxCi0j
ZWxzZQotI2RlZmluZSBFTkFCTEVfU01BTExfSEVBUCAwCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3Bw
CmluZGV4IDlkNmIxOGVkZjBmMC4uMDljNDc5N2FmODZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9UaHJlYWRpbmcuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHAKQEAg
LTQ3MSw3ICs0NzEsNiBAQCB2b2lkIGluaXRpYWxpemUoKQogICAgIHN0ZDo6Y2FsbF9vbmNlKG9u
Y2VLZXksIFtdIHsKICAgICAgICAgc2V0UGVybWlzc2lvbnNPZkNvbmZpZ1BhZ2UoKTsKICAgICAg
ICAgQ29uZmlnOjppbml0aWFsaXplKCk7Ci0gICAgICAgIEdpZ2FjYWdlOjplbnN1cmVTbWFsbEhl
YXAoKTsKICAgICAgICAgR2lnYWNhZ2U6OmVuc3VyZUdpZ2FjYWdlKCk7CiAgICAgICAgIENvbmZp
Zzo6QXNzZXJ0Tm90RnJvemVuU2NvcGUgYXNzZXJ0U2NvcGU7CiAjaWYgIUhBVkUoRkFTVF9UTFMp
ICYmICFPUyhXSU5ET1dTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJ
bXBsLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAKaW5kZXggYWY4NjZi
NzczYTE2Li40MjEzZWE0NzlmMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3Ry
aW5nSW1wbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcApAQCAt
NDUsNyArNDUsMTEgQEAgbmFtZXNwYWNlIFdURiB7CiAKIHVzaW5nIG5hbWVzcGFjZSBVbmljb2Rl
OwogCisjaWYgSEFWRSgzNkJJVF9BRERSRVNTKQogI2RlZmluZSBTVFJJTkdfSU1QTF9TSVpFKG4p
IHJvdW5kVXBUb011bHRpcGxlT2ZJbXBsKDE2LCBuKQorI2Vsc2UKKyNkZWZpbmUgU1RSSU5HX0lN
UExfU0laRShuKSBuCisjZW5kaWYKIAogc3RhdGljX2Fzc2VydChzaXplb2YoU3RyaW5nSW1wbCkg
PT0gU1RSSU5HX0lNUExfU0laRSgyICogc2l6ZW9mKGludCkgKyAyICogc2l6ZW9mKHZvaWQqKSks
ICJTdHJpbmdJbXBsIHNob3VsZCBzdGF5IHNtYWxsIik7CiAKQEAgLTEwMiw3ICsxMDYsNyBAQCB2
b2lkIFN0cmluZ1N0YXRzOjpwcmludFN0YXRzKCkKIH0KICNlbmRpZgogCi1ERUZJTkVfU01BTExI
RUFQX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihTdHJpbmdJbXBsKTsKK0RFRklORV9B
TExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoU3RyaW5nSW1wbCk7CiAKIFN0cmluZ0ltcGw6
OlN0YXRpY1N0cmluZ0ltcGwgU3RyaW5nSW1wbDo6c19lbXB0eUF0b21TdHJpbmcoIiIsIFN0cmlu
Z0ltcGw6OlN0cmluZ0F0b20pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0
cmluZ0ltcGwuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCmluZGV4IDk4NzVk
MzdiZmU3NS4uOGQ3ZjY3YTZlNzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0
cmluZ0ltcGwuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaApAQCAtMjks
MTEgKzI5LDcgQEAKICNpbmNsdWRlIDx3dGYvQ29tcGFjdFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9E
ZWJ1Z0hlYXAuaD4KICNpbmNsdWRlIDx3dGYvRXhwZWN0ZWQuaD4KLSNpbmNsdWRlIDx3dGYvR2ln
YWNhZ2UuaD4KLSNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhF
eHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvTm9u
bW92YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9QYWNrZWQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGli
RXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNTgsNyArNTQsMTEgQEAgdHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgX19DRlN0cmluZyAqIENGU3RyaW5nUmVmOwogQGNsYXNzIE5TU3Ry
aW5nOwogI2VuZGlmCiAKKyNpZiBIQVZFKDM2QklUX0FERFJFU1MpCiAjZGVmaW5lIFNUUklOR19J
TVBMX0FMSUdOTUVOVCBhbGlnbmFzKDE2KQorI2Vsc2UKKyNkZWZpbmUgU1RSSU5HX0lNUExfQUxJ
R05NRU5UCisjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7CiBuYW1lc3BhY2UgTExJbnQgeyBjbGFz
cyBEYXRhOyB9CkBAIC0xNzcsMTEgKzE3NywxMCBAQCBwcm90ZWN0ZWQ6CiAvLyBPciB3ZSBjb3Vs
ZCBzYXkgdGhhdCAiY29uc3QiIGRvZXNuJ3QgbWFrZSBzZW5zZSBhdCBhbGwgYW5kIHVzZSAiU3Ry
aW5nSW1wbCYiIGFuZCAiU3RyaW5nSW1wbCoiIGV2ZXJ5d2hlcmUuCiAvLyBSaWdodCBub3cgd2Ug
dXNlIGEgbWl4IG9mIGJvdGgsIHdoaWNoIG1ha2VzIGNvZGUgbW9yZSBjb25mdXNpbmcgYW5kIGhh
cyBubyBiZW5lZml0LgogCi1ERUNMQVJFX1NNQUxMSEVBUF9BTExPQ0FUT1JfV0lUSF9IRUFQX0lE
RU5USUZJRVIoU3RyaW5nSW1wbCk7CitERUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJ
RklFUihTdHJpbmdJbXBsKTsKIGNsYXNzIFN0cmluZ0ltcGwgOiBwcml2YXRlIFN0cmluZ0ltcGxT
aGFwZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU3RyaW5nSW1wbCk7Ci0gICAgV1RGX01B
S0VfTk9OTU9WQUJMRShTdHJpbmdJbXBsKTsKLSAgICBXVEZfTUFLRV9TVFJVQ1RfU01BTExIRUFQ
X0FMTE9DQVRFRF9XSVRIX0hFQVBfSURFTlRJRklFUihTdHJpbmdJbXBsKTsKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRF9XSVRIX0hFQVBfSURFTlRJRklFUihTdHJpbmdJbXBsKTsKIAogICAg
IGZyaWVuZCBjbGFzcyBBdG9tU3RyaW5nSW1wbDsKICAgICBmcmllbmQgY2xhc3MgSlNDOjpMTElu
dDo6RGF0YTsKQEAgLTIwMyw3ICsyMDIsNiBAQCBjbGFzcyBTdHJpbmdJbXBsIDogcHJpdmF0ZSBT
dHJpbmdJbXBsU2hhcGUgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lPiBmcmllbmQgc3RydWN0IFdU
Rjo6SGFzaEFuZENoYXJhY3RlcnNUcmFuc2xhdG9yOwogCiBwdWJsaWM6Ci0KICAgICBlbnVtIEJ1
ZmZlck93bmVyc2hpcCB7IEJ1ZmZlckludGVybmFsLCBCdWZmZXJPd25lZCwgQnVmZmVyU3Vic3Ry
aW5nLCBCdWZmZXJFeHRlcm5hbCB9OwogCiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBN
YXhMZW5ndGggPSBTdHJpbmdJbXBsU2hhcGU6Ok1heExlbmd0aDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvVW5pcXVlZFN0cmluZ0ltcGwuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
VW5pcXVlZFN0cmluZ0ltcGwuaAppbmRleCA3MzM0MjYxYzQ3MWYuLjU5YjQ1ZTdmYmFiYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9VbmlxdWVkU3RyaW5nSW1wbC5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvVW5pcXVlZFN0cmluZ0ltcGwuaApAQCAtMzgsMTMgKzM4LDYgQEAg
cHJvdGVjdGVkOgogICAgIFVuaXF1ZWRTdHJpbmdJbXBsKENyZWF0ZVN5bWJvbFRhZywgY29uc3Qg
TENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkgOiBTdHJpbmdJbXBsKENyZWF0ZVN5
bWJvbCwgY2hhcmFjdGVycywgbGVuZ3RoKSB7IH0KICAgICBVbmlxdWVkU3RyaW5nSW1wbChDcmVh
dGVTeW1ib2xUYWcsIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpIDog
U3RyaW5nSW1wbChDcmVhdGVTeW1ib2wsIGNoYXJhY3RlcnMsIGxlbmd0aCkgeyB9CiAgICAgVW5p
cXVlZFN0cmluZ0ltcGwoQ3JlYXRlU3ltYm9sVGFnKSA6IFN0cmluZ0ltcGwoQ3JlYXRlU3ltYm9s
KSB7IH0KLXB1YmxpYzoKLSNpZiBFTkFCTEUoU01BTExfSEVBUCkKLSAgICB1c2luZyBBbGxvY2F0
b3JJbmZvID0gR2lnYWNhZ2U6OlNtYWxsSGVhcEFsbG9jYXRvckluZm87Ci0gICAgdXNpbmcgQ29t
cGFjdFB0clR5cGVUcmFpdHMgPSBXVEY6OkJpZ0hlYXBUeXBlVHJhaXRzPFVuaXF1ZWRTdHJpbmdJ
bXBsPjsKLSNlbHNlCi0gICAgdXNpbmcgQ29tcGFjdFB0clR5cGVUcmFpdHMgPSBXVEY6OkJpZ0hl
YXBUeXBlVHJhaXRzPFVuaXF1ZWRTdHJpbmdJbXBsPjsKLSNlbmRpZgogfTsKIAogI2lmIEFTU0VS
VF9FTkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCmluZGV4IDQwOTQ2Y2NlMjY3OS4u
Y2Y4OTY4ZmU0MGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcApAQCAtOTYyLDggKzk2
Miw2IEBAIFQgQVhJc29sYXRlZE9iamVjdDo6Z2V0T3JSZXRyaWV2ZVByb3BlcnR5VmFsdWUoQVhQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogICAgIHJldHVybiBwcm9wZXJ0eVZhbHVlPFQ+KHBy
b3BlcnR5TmFtZSk7CiB9CiAKLXRlbXBsYXRlIFN0cmluZyBBWElzb2xhdGVkT2JqZWN0OjpnZXRP
clJldHJpZXZlUHJvcGVydHlWYWx1ZTxTdHJpbmc+KEFYUHJvcGVydHlOYW1lIHByb3BlcnR5TmFt
ZSk7Ci0KIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6ZmlsbENoaWxkcmVuVmVjdG9yRm9yUHJvcGVy
dHkoQVhQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0
b3ImIGNoaWxkcmVuKSBjb25zdAogewogICAgIFZlY3RvcjxBWElEPiBjaGlsZElEcyA9IHZlY3Rv
ckF0dHJpYnV0ZVZhbHVlPEFYSUQ+KHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2Vy
dmljZU1haW4ubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0Nv
Y29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW0KaW5kZXggNzcyOTkwMDQ4MWJmLi5kODY2
MjQ4MzhjYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGls
aXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2Vydmlj
ZU1haW4ubW0KQEAgLTIyMywxMyArMjIzLDExIEBAIGludCBYUENTZXJ2aWNlTWFpbihpbnQsIGNv
bnN0IGNoYXIqKikKICAgICAgICAgICAgIH0KICAgICAgICAgfQogI2VuZGlmCi0gICAgICAgIGNv
bnN0IGNoYXIqIHdlYktpdEJ1bmRsZVZlcnNpb24gPSB4cGNfZGljdGlvbmFyeV9nZXRfc3RyaW5n
KGJvb3RzdHJhcC5nZXQoKSwgIldlYktpdEJ1bmRsZVZlcnNpb24iKTsKLSAgICAgICAgY29uc3Qg
Y2hhciogZXhwZWN0ZWRCdW5kbGVWZXJzaW9uID0gW1tOU0J1bmRsZSBidW5kbGVXaXRoSWRlbnRp
ZmllcjpAImNvbS5hcHBsZS5XZWJLaXQiXS5pbmZvRGljdGlvbmFyeVsoX19icmlkZ2UgTlNTdHJp
bmcgKilrQ0ZCdW5kbGVWZXJzaW9uS2V5XSBjU3RyaW5nVXNpbmdFbmNvZGluZzpOU0lTT0xhdGlu
MVN0cmluZ0VuY29kaW5nXTsKLSAgICAgICAgaWYgKCF3ZWJLaXRCdW5kbGVWZXJzaW9uIHx8ICFl
eHBlY3RlZEJ1bmRsZVZlcnNpb24gfHwgc3RybmNtcCh3ZWJLaXRCdW5kbGVWZXJzaW9uLCBleHBl
Y3RlZEJ1bmRsZVZlcnNpb24sIHN0cmxlbihleHBlY3RlZEJ1bmRsZVZlcnNpb24pKSkgewotICAg
ICAgICAgICAgY29uc3QgaW50IG1zZ0xlbiA9IHN0cmxlbigiV2ViS2l0IGZyYW1ld29yayB2ZXJz
aW9uIG1pc21hdGNoOiAlcyAhPSAlc1xuIikgKyBzdHJsZW4od2ViS2l0QnVuZGxlVmVyc2lvbikg
KyBzdHJsZW4oZXhwZWN0ZWRCdW5kbGVWZXJzaW9uKTsKLSAgICAgICAgICAgIGNoYXIqIG1zZyA9
IChjaGFyKikgbWFsbG9jKHNpemVvZihjaGFyKSAqIG1zZ0xlbik7Ci0gICAgICAgICAgICBzbnBy
aW50Zihtc2csIG1zZ0xlbiwgIldlYktpdCBmcmFtZXdvcmsgdmVyc2lvbiBtaXNtYXRjaDogJXMg
IT0gJXNcbiIsIHdlYktpdEJ1bmRsZVZlcnNpb24sIGV4cGVjdGVkQnVuZGxlVmVyc2lvbik7Ci0g
ICAgICAgICAgICBsb2dBbmRTZXRDcmFzaExvZ01lc3NhZ2UobXNnKTsKKyAgICAgICAgYXV0byB3
ZWJLaXRCdW5kbGVWZXJzaW9uID0gU3RyaW5nOjpmcm9tTGF0aW4xKHhwY19kaWN0aW9uYXJ5X2dl
dF9zdHJpbmcoYm9vdHN0cmFwLmdldCgpLCAiV2ViS2l0QnVuZGxlVmVyc2lvbiIpKTsKKyAgICAg
ICAgU3RyaW5nIGV4cGVjdGVkQnVuZGxlVmVyc2lvbiA9IFtOU0J1bmRsZSBidW5kbGVXaXRoSWRl
bnRpZmllcjpAImNvbS5hcHBsZS5XZWJLaXQiXS5pbmZvRGljdGlvbmFyeVsoX19icmlkZ2UgTlNT
dHJpbmcgKilrQ0ZCdW5kbGVWZXJzaW9uS2V5XTsKKyAgICAgICAgaWYgKCF3ZWJLaXRCdW5kbGVW
ZXJzaW9uLmlzTnVsbCgpICYmICFleHBlY3RlZEJ1bmRsZVZlcnNpb24uaXNOdWxsKCkgJiYgd2Vi
S2l0QnVuZGxlVmVyc2lvbiAhPSBleHBlY3RlZEJ1bmRsZVZlcnNpb24pIHsKKyAgICAgICAgICAg
IGF1dG8gZXJyb3JNZXNzYWdlID0gbWFrZVN0cmluZygiV2ViS2l0IGZyYW1ld29yayB2ZXJzaW9u
IG1pc21hdGNoOiAiLCB3ZWJLaXRCdW5kbGVWZXJzaW9uLCAiICE9ICIsIGV4cGVjdGVkQnVuZGxl
VmVyc2lvbik7CisgICAgICAgICAgICBsb2dBbmRTZXRDcmFzaExvZ01lc3NhZ2UoZXJyb3JNZXNz
YWdlLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICAgICAgY3Jhc2hEdWVXZWJLaXRGcmFtZXdvcmtW
ZXJzaW9uTWlzbWF0Y2goKTsKICAgICAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCmluZGV4IDNlMGQyNjMyNDU1
NS4uZmQxNjE5Y2YwZjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlcy5tbQpAQCAtMjksNyArMjksNiBAQAogI2ltcG9ydCAiQVBJQXJy
YXkuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIldLTlNBcnJheS5oIgotI2ltcG9y
dCAiV2ViS2l0MkluaXRpYWxpemUuaCIKICNpbXBvcnQgIldlYlByZWZlcmVuY2VzLmgiCiAjaW1w
b3J0ICJfV0tGZWF0dXJlSW50ZXJuYWwuaCIKICNpbXBvcnQgPFdlYkNvcmUvU2VjdXJpdHlPcmln
aW4uaD4KQEAgLTU2NSwxNCArNTY0LDEyIEBAIC0gKHZvaWQpX3NldEZpeGVkUGl0Y2hGb250RmFt
aWx5OihOU1N0cmluZyAqKWZpeGVkUGl0Y2hGb250RmFtaWx5CiAKICsgKE5TQXJyYXk8X1dLRmVh
dHVyZSAqPiAqKV9mZWF0dXJlcwogewotICAgIFdlYktpdDo6SW5pdGlhbGl6ZVdlYktpdDIoKTsK
ICAgICBhdXRvIGZlYXR1cmVzID0gV2ViS2l0OjpXZWJQcmVmZXJlbmNlczo6ZmVhdHVyZXMoKTsK
ICAgICByZXR1cm4gd3JhcHBlcihBUEk6OkFycmF5OjpjcmVhdGUoV1RGTW92ZShmZWF0dXJlcykp
KTsKIH0KIAogKyAoTlNBcnJheTxfV0tGZWF0dXJlICo+ICopX2ludGVybmFsRGVidWdGZWF0dXJl
cwogewotICAgIFdlYktpdDo6SW5pdGlhbGl6ZVdlYktpdDIoKTsKICAgICBhdXRvIGZlYXR1cmVz
ID0gV2ViS2l0OjpXZWJQcmVmZXJlbmNlczo6aW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzKCk7CiAgICAg
cmV0dXJuIHdyYXBwZXIoQVBJOjpBcnJheTo6Y3JlYXRlKFdURk1vdmUoZmVhdHVyZXMpKSk7CiB9
CkBAIC01ODksNyArNTg2LDYgQEAgLSAodm9pZClfc2V0RW5hYmxlZDooQk9PTCl2YWx1ZSBmb3JJ
bnRlcm5hbERlYnVnRmVhdHVyZTooX1dLRmVhdHVyZSAqKWZlYXR1cmUKIAogKyAoTlNBcnJheTxf
V0tFeHBlcmltZW50YWxGZWF0dXJlICo+ICopX2V4cGVyaW1lbnRhbEZlYXR1cmVzCiB7Ci0gICAg
V2ViS2l0OjpJbml0aWFsaXplV2ViS2l0MigpOwogICAgIGF1dG8gZmVhdHVyZXMgPSBXZWJLaXQ6
OldlYlByZWZlcmVuY2VzOjpleHBlcmltZW50YWxGZWF0dXJlcygpOwogICAgIHJldHVybiB3cmFw
cGVyKEFQSTo6QXJyYXk6OmNyZWF0ZShXVEZNb3ZlKGZlYXR1cmVzKSkpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9CUGxhdGZvcm0uaCBiL1NvdXJjZS9ibWFsbG9jL2Jt
YWxsb2MvQlBsYXRmb3JtLmgKaW5kZXggNzU5MTM2YTdlZTVlLi44MDNjODdhZDljOWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQlBsYXRmb3JtLmgKKysrIGIvU291cmNlL2Jt
YWxsb2MvYm1hbGxvYy9CUGxhdGZvcm0uaApAQCAtMzYsOCArMzYsNiBAQAogI2RlZmluZSBCUExB
VEZPUk0oUExBVEZPUk0pIChkZWZpbmVkIEJQTEFURk9STV8jI1BMQVRGT1JNICYmIEJQTEFURk9S
TV8jI1BMQVRGT1JNKQogI2RlZmluZSBCT1MoT1MpIChkZWZpbmVkIEJPU18jI09TICYmIEJPU18j
I09TKQogCi0jZGVmaW5lIEJIQVZFKFdURl9GRUFUVVJFKSAoZGVmaW5lZCBCSEFWRV8jI1dURl9G
RUFUVVJFICYmIEJIQVZFXyMjV1RGX0ZFQVRVUkUpCi0KICNpZmRlZiBfX0FQUExFX18KICNkZWZp
bmUgQk9TX0RBUldJTiAxCiAjZW5kaWYKQEAgLTM5MywxNSArMzkxLDMgQEAKICNkZWZpbmUgQkVO
QUJMRV9NQUxMT0NfU0laRSAwCiAjZGVmaW5lIEJFTkFCTEVfTUFMTE9DX0dPT0RfU0laRSAwCiAj
ZW5kaWYKLQotI2lmIEJDUFUoQUREUkVTUzY0KSAmJiBCQ1BVKEFSTTY0KSAmJiBCUExBVEZPUk0o
SU9TKSAmJiAhQlBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKQotI2RlZmluZSBIQVZFXzM2
QklUX0FERFJFU1MgMQotI2Vsc2UKLSNkZWZpbmUgSEFWRV8zNkJJVF9BRERSRVNTIDAKLSNlbmRp
ZgotCi0jaWYgIUJIQVZFKDM2QklUX0FERFJFU1MpICYmICFCUExBVEZPUk0oSU9TX0ZBTUlMWSkg
JiYgQkNQVShBRERSRVNTNjQpICYmIEJPUyhEQVJXSU4pCi0jZGVmaW5lIEJFTkFCTEVfU01BTExf
SEVBUCAxCi0jZWxzZQotI2RlZmluZSBCRU5BQkxFX1NNQUxMX0hFQVAgMAotI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0dpZ2FjYWdlLmNwcCBiL1NvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvR2lnYWNhZ2UuY3BwCmluZGV4IGE3MzBlYzZjNDE3Yi4uNjFhYzNjN2JjNjdk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0dpZ2FjYWdlLmNwcAorKysgYi9T
b3VyY2UvYm1hbGxvYy9ibWFsbG9jL0dpZ2FjYWdlLmNwcApAQCAtOTksOSArOTksNiBAQCBzaXpl
X3QgcnVud2F5U2l6ZShLaW5kIGtpbmQpCiAgICAgY2FzZSBLaW5kOjpQcmltaXRpdmU6CiAgICAg
ICAgIHJldHVybiBnaWdhY2FnZVJ1bndheTsKICAgICBjYXNlIEtpbmQ6OkpTVmFsdWU6Ci0jaWYg
QkVOQUJMRShTTUFMTF9IRUFQKQotICAgIGNhc2UgS2luZDo6U21hbGxIZWFwOgotI2VuZGlmCiAg
ICAgICAgIHJldHVybiAwOwogICAgIGNhc2UgS2luZDo6TnVtYmVyT2ZLaW5kczoKICAgICAgICAg
UkVMRUFTRV9CQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xMTEsNDEgKzEwOCw2IEBAIHNpemVf
dCBydW53YXlTaXplKEtpbmQga2luZCkKIAogfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCiAKLXZv
aWQgZW5zdXJlU21hbGxIZWFwKCkKLXsKLSAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZs
YWc7Ci0gICAgc3RkOjpjYWxsX29uY2UoCi0gICAgICAgIG9uY2VGbGFnLAotICAgICAgICBbXSB7
Ci0gICAgICAgICAgICBSRUxFQVNFX0JBU1NFUlQoIWdfZ2lnYWNhZ2VDb25maWcuZW5zdXJlR2ln
YWNhZ2VIYXNCZWVuQ2FsbGVkKTsKLSNpZiBCRU5BQkxFKFNNQUxMX0hFQVApCi0gICAgICAgICAg
ICB2b2lkKiBiYXNlID0gdHJ5Vk1BbGxvY2F0ZShhbGlnbm1lbnQoU21hbGxIZWFwKSwgbWF4U2l6
ZShTbWFsbEhlYXApLCBWTVRhZzo6SlNHaWdhY2FnZSk7Ci0gICAgICAgICAgICBpZiAoIWJhc2Up
IHsKLSAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZBVEFMOiBDb3VsZCBub3QgYWxs
b2NhdGUgc21hbGwgaGVhcCBtZW1vcnkuXG4iKTsKLSAgICAgICAgICAgICAgICBmcHJpbnRmKHN0
ZGVyciwgIihNYWtlIHN1cmUgeW91IGhhdmUgbm90IHNldCBhIHZpcnR1YWwgbWVtb3J5IGxpbWl0
LilcbiIpOwotICAgICAgICAgICAgICAgIEJDUkFTSCgpOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBnX2dpZ2FjYWdlQ29uZmlnLnNldEJhc2VQdHIoU21hbGxIZWFwLCBiYXNlKTsKLSAg
ICAgICAgICAgIGdfZ2lnYWNhZ2VDb25maWcuc2V0QWxsb2NTaXplKFNtYWxsSGVhcCwgbWF4U2l6
ZShTbWFsbEhlYXApKTsKLSAgICAgICAgICAgIGdfZ2lnYWNhZ2VDb25maWcuc2V0QWxsb2NCYXNl
UHRyKFNtYWxsSGVhcCwgYmFzZSk7Ci0KLSAgICAgICAgICAgIFJFTEVBU0VfQkFTU0VSVChibWFs
bG9jX2ZvcmNlX2F1eGlsaWFyeV9oZWFwX2ludG9fcmVzZXJ2ZWRfbWVtb3J5KAotICAgICAgICAg
ICAgICAgICZhcGk6OmhlYXBGb3JLaW5kKFNtYWxsSGVhcCksCi0gICAgICAgICAgICAgICAgcmVp
bnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGJhc2UpLAotICAgICAgICAgICAgICAgIHJlaW50ZXJw
cmV0X2Nhc3Q8dWludHB0cl90PihiYXNlKSArIG1heFNpemUoU21hbGxIZWFwKSkpOwotICAgICAg
ICAgICAgdm1EZWFsbG9jYXRlUGh5c2ljYWxQYWdlcyhiYXNlLCBtYXhTaXplKFNtYWxsSGVhcCkp
OwotCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgYXV0byogdGhpeiA9IGJtYWxsb2M6
OmFwaTo6dHJ5TWFsbG9jKDMyLCBibWFsbG9jOjpIZWFwS2luZDo6U21hbGxIZWFwR2lnYWNhZ2Up
OwotICAgICAgICAgICAgICAgIFJFTEVBU0VfQkFTU0VSVChyZWludGVycHJldF9jYXN0PHVpbnRw
dHJfdD4odGhpeikgPiByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oYWxsb2NCYXNlKEtpbmQ6
OlNtYWxsSGVhcCkpKTsKLSAgICAgICAgICAgICAgICBSRUxFQVNFX0JBU1NFUlQocmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KHRoaXopIDwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGFs
bG9jQmFzZShLaW5kOjpTbWFsbEhlYXApKSArIG1heFNpemUoS2luZDo6U21hbGxIZWFwKSk7Ci0g
ICAgICAgICAgICAgICAgYm1hbGxvYzo6YXBpOjpmcmVlKHRoaXopOwotICAgICAgICAgICAgfQot
I2VuZGlmCi0gICAgICAgIH0pOwotfQotCiB2b2lkIGVuc3VyZUdpZ2FjYWdlKCkKIHsKICAgICBz
dGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CkBAIC0xNTUsMTAgKzExNyw2IEBAIHZvaWQg
ZW5zdXJlR2lnYWNhZ2UoKQogICAgICAgICAgICAgUkVMRUFTRV9CQVNTRVJUKCFnX2dpZ2FjYWdl
Q29uZmlnLmVuc3VyZUdpZ2FjYWdlSGFzQmVlbkNhbGxlZCk7CiAgICAgICAgICAgICBnX2dpZ2Fj
YWdlQ29uZmlnLmVuc3VyZUdpZ2FjYWdlSGFzQmVlbkNhbGxlZCA9IHRydWU7CiAKLSNpZiBCRU5B
QkxFKFNNQUxMX0hFQVApCi0gICAgICAgICAgICBSRUxFQVNFX0JBU1NFUlQoZ19naWdhY2FnZUNv
bmZpZy5iYXNlUHRyc1tTbWFsbEhlYXBdKTsKLSNlbmRpZgotCiAgICAgICAgICAgICBpZiAoIXNo
b3VsZEJlRW5hYmxlZCgpKQogICAgICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTY3LDI1ICsx
MjUsMTggQEAgdm9pZCBlbnN1cmVHaWdhY2FnZSgpCiAgICAgICAgICAgICAvLyBhbGlnbm1lbnQg
d2UgbmVlZCBmb3IgZnJlZXppbmcgdGhlIENvbmZpZy4KICAgICAgICAgICAgIFJFTEVBU0VfQkFT
U0VSVCghKHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PigmV2ViQ29uZmlnOjpnX2NvbmZpZykgJiAo
dm1QYWdlU2l6ZSgpIC0gMSkpKTsKICNlbmRpZgotI2lmIEJFTkFCTEUoU01BTExfSEVBUCkKLSAg
ICAgICAgICAgIGNvbnN0ZXhwciBpbnQgbnVtYmVyT2ZDYWdlZEtpbmRzID0gTnVtYmVyT2ZLaW5k
cyAtIDE7Ci0gICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KFNtYWxsSGVhcCA+PSBudW1iZXJPZkNh
Z2VkS2luZHMpOwotICAgICAgICAgICAgLy8gU21hbGxIZWFwIGlzIGluaXRpYWxpemVkIGFib3Zl
LgotI2Vsc2UKLSAgICAgICAgICAgIGNvbnN0ZXhwciBpbnQgbnVtYmVyT2ZDYWdlZEtpbmRzID0g
TnVtYmVyT2ZLaW5kczsKLSNlbmRpZgogCi0gICAgICAgICAgICBLaW5kIHNodWZmbGVkS2luZHNb
bnVtYmVyT2ZDYWdlZEtpbmRzXTsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBudW1iZXJPZkNhZ2VkS2luZHM7ICsraSkKKyAgICAgICAgICAgIEtpbmQgc2h1ZmZsZWRLaW5k
c1tOdW1iZXJPZktpbmRzXTsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBO
dW1iZXJPZktpbmRzOyArK2kpCiAgICAgICAgICAgICAgICAgc2h1ZmZsZWRLaW5kc1tpXSA9IHN0
YXRpY19jYXN0PEtpbmQ+KGkpOwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIFdlIGp1
c3QgZ28gYWhlYWQgYW5kIGFzc3VtZSB0aGF0IDY0IGJpdHMgaXMgZW5vdWdoIHJhbmRvbW5lc3Mu
IFRoYXQncyB0cml2aWFsbHkgdHJ1ZSByaWdodAogICAgICAgICAgICAgLy8gbm93LCBidXQgd291
bGQgc3RvcCBiZWluZyB0cnVlIGlmIHdlIHdlbnQgY3Jhenkgd2l0aCBnaWdhY2FnZXMuIEJhc2Vk
IG9uIG15IG1hdGgsIDIxIGlzIHRoZQogICAgICAgICAgICAgLy8gbGFyZ2VzdCB2YWx1ZSBvZiBu
IHNvIHRoYXQgbiEgPD0gMl42NC4KICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoTnVtYmVyT2ZL
aW5kcyA8PSAyMSwgInRvbyBtYW55IGtpbmRzIik7CiAgICAgICAgICAgICB1aW50NjRfdCByYW5k
b207CiAgICAgICAgICAgICBjcnlwdG9SYW5kb20ocmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCBj
aGFyKj4oJnJhbmRvbSksIHNpemVvZihyYW5kb20pKTsKLSAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IG51bWJlck9mQ2FnZWRLaW5kczsgaS0tOykgeworICAgICAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gTnVtYmVyT2ZLaW5kczsgaS0tOykgewogICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGxpbWl0ID0gaSArIDE7CiAgICAgICAgICAgICAgICAgdW5zaWduZWQgaiA9IHN0YXRpY19jYXN0
PHVuc2lnbmVkPihyYW5kb20gJSBsaW1pdCk7CiAgICAgICAgICAgICAgICAgcmFuZG9tIC89IGxp
bWl0OwpAQCAtMTk4LDEwICsxNDksMTAgQEAgdm9pZCBlbnN1cmVHaWdhY2FnZSgpCiAgICAgICAg
ICAgICBhdXRvIGJ1bXAgPSBbXSAoS2luZCBraW5kLCBzaXplX3QgdG90YWxTaXplKSAtPiBzaXpl
X3QgewogICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbFNpemUgKyBtYXhTaXplKGtpbmQpOwog
ICAgICAgICAgICAgfTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBzaXplX3QgdG90YWxT
aXplID0gMDsKICAgICAgICAgICAgIHNpemVfdCBtYXhBbGlnbm1lbnQgPSAwOwotCisgICAgICAg
ICAgICAKICAgICAgICAgICAgIGZvciAoS2luZCBraW5kIDogc2h1ZmZsZWRLaW5kcykgewogICAg
ICAgICAgICAgICAgIHRvdGFsU2l6ZSA9IGJ1bXAoa2luZCwgYWxpZ25UbyhraW5kLCB0b3RhbFNp
emUpKTsKICAgICAgICAgICAgICAgICB0b3RhbFNpemUgKz0gcnVud2F5U2l6ZShraW5kKTsKQEAg
LTI0MSw3ICsxOTIsNyBAQCB2b2lkIGVuc3VyZUdpZ2FjYWdlKCkKICAgICAgICAgICAgICAgICAg
ICAgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHRoaXNCYXNlKSwKICAgICAgICAgICAgICAg
ICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHRoaXNCYXNlKSArIHNpemUpOwogI2Vu
ZGlmCi0KKyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBpZiAocnVud2F5U2l6ZShr
aW5kKSA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgY2hhciogcnVud2F5ID0gcmVpbnRlcnBy
ZXRfY2FzdDxjaGFyKj4oYmFzZSkgKyBuZXh0Q2FnZTsKICAgICAgICAgICAgICAgICAgICAgLy8g
TWFrZSBPT0IgYWNjZXNzZXMgaW50byB0aGUgcnVud2F5IGNyYXNoLgpAQCAtMzEwLDkgKzI2MSw4
IEBAIHZvaWQgcmVtb3ZlUHJpbWl0aXZlRGlzYWJsZUNhbGxiYWNrKHZvaWQgKCpmdW5jdGlvbiko
dm9pZCopLCB2b2lkKiBhcmd1bWVudCkKIHN0YXRpYyBib29sIHZlcmlmeUdpZ2FjYWdlSXNFbmFi
bGVkKCkKIHsKICAgICBib29sIGlzRW5hYmxlZCA9IGdfZ2lnYWNhZ2VDb25maWcuaXNFbmFibGVk
OwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgTnVtYmVyT2ZLaW5kczsgKytpKSB7CisgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBOdW1iZXJPZktpbmRzOyArK2kpCiAgICAgICAgIGlzRW5h
YmxlZCA9IGlzRW5hYmxlZCAmJiBnX2dpZ2FjYWdlQ29uZmlnLmJhc2VQdHJzW2ldOwotICAgIH0K
ICAgICBpc0VuYWJsZWQgPSBpc0VuYWJsZWQgJiYgZ19naWdhY2FnZUNvbmZpZy5zdGFydDsKICAg
ICBpc0VuYWJsZWQgPSBpc0VuYWJsZWQgJiYgZ19naWdhY2FnZUNvbmZpZy50b3RhbFNpemU7CiAg
ICAgcmV0dXJuIGlzRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2Mv
R2lnYWNhZ2UuaCBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvR2lnYWNhZ2UuaAppbmRleCBmY2Mz
ODRhZmI5NzguLjVlNWE0OTBiZWU4NCAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1hbGxv
Yy9HaWdhY2FnZS5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvR2lnYWNhZ2UuaApAQCAt
NDcsNiArNDcsNyBAQAogI2RlZmluZSBHSUdBQ0FHRV9FTkFCTEVEIDAKICNlbmRpZgogCisKIG5h
bWVzcGFjZSBHaWdhY2FnZSB7CiAKIEJJTkxJTkUgY29uc3QgY2hhciogbmFtZShLaW5kIGtpbmQp
CkBAIC01NiwxMCArNTcsNiBAQCBCSU5MSU5FIGNvbnN0IGNoYXIqIG5hbWUoS2luZCBraW5kKQog
ICAgICAgICByZXR1cm4gIlByaW1pdGl2ZSI7CiAgICAgY2FzZSBKU1ZhbHVlOgogICAgICAgICBy
ZXR1cm4gIkpTVmFsdWUiOwotI2lmIEJFTkFCTEUoU01BTExfSEVBUCkKLSAgICBjYXNlIFNtYWxs
SGVhcDoKLSAgICAgICAgcmV0dXJuICJKU1ZhbHVlIjsKLSNlbmRpZgogICAgIGNhc2UgTnVtYmVy
T2ZLaW5kczoKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtNzMsOSArNzAsNiBAQCBjb25zdGV4
cHIgYm9vbCBoYXNDYXBhY2l0eVRvVXNlTGFyZ2VHaWdhY2FnZSA9IEJPU19FRkZFQ1RJVkVfQURE
UkVTU19XSURUSCA+IDM2OwogCiBjb25zdGV4cHIgc2l6ZV90IHByaW1pdGl2ZUdpZ2FjYWdlU2l6
ZSA9IChoYXNDYXBhY2l0eVRvVXNlTGFyZ2VHaWdhY2FnZSA/IDMyIDogMikgKiBibWFsbG9jOjpT
aXplczo6R0I7CiBjb25zdGV4cHIgc2l6ZV90IGpzVmFsdWVHaWdhY2FnZVNpemUgPSAoaGFzQ2Fw
YWNpdHlUb1VzZUxhcmdlR2lnYWNhZ2UgPyAxNiA6IDIpICogYm1hbGxvYzo6U2l6ZXM6OkdCOwot
I2lmIEJFTkFCTEUoU01BTExfSEVBUCkKLWNvbnN0ZXhwciBzaXplX3Qgc21hbGxIZWFwR2lnYWNh
Z2VTaXplID0gKGhhc0NhcGFjaXR5VG9Vc2VMYXJnZUdpZ2FjYWdlID8gNjQgOiAwKSAqIGJtYWxs
b2M6OlNpemVzOjpHQjsKLSNlbmRpZgogY29uc3RleHByIHNpemVfdCBtYXhpbXVtQ2FnZVNpemVS
ZWR1Y3Rpb25Gb3JTbGlkZSA9IGhhc0NhcGFjaXR5VG9Vc2VMYXJnZUdpZ2FjYWdlID8gNCAqIGJt
YWxsb2M6OlNpemVzOjpHQiA6IGJtYWxsb2M6OlNpemVzOjpHQiAvIDQ7CiAKIApAQCAtOTAsMzYg
Kzg0LDIzIEBAIGNvbnN0ZXhwciBzaXplX3QgbWF4aW11bUNhZ2VTaXplUmVkdWN0aW9uRm9yU2xp
ZGUgPSBoYXNDYXBhY2l0eVRvVXNlTGFyZ2VHaWdhY2FnCiAKIHN0YXRpY19hc3NlcnQoYm1hbGxv
Yzo6aXNQb3dlck9mVHdvKHByaW1pdGl2ZUdpZ2FjYWdlU2l6ZSkpOwogc3RhdGljX2Fzc2VydChi
bWFsbG9jOjppc1Bvd2VyT2ZUd28oanNWYWx1ZUdpZ2FjYWdlU2l6ZSkpOwotI2lmIEJFTkFCTEUo
U01BTExfSEVBUCkKLXN0YXRpY19hc3NlcnQoIWhhc0NhcGFjaXR5VG9Vc2VMYXJnZUdpZ2FjYWdl
IHx8IGJtYWxsb2M6OmlzUG93ZXJPZlR3byhzbWFsbEhlYXBHaWdhY2FnZVNpemUpKTsKLSNlbmRp
Zgogc3RhdGljX2Fzc2VydChwcmltaXRpdmVHaWdhY2FnZVNpemUgPiBtYXhpbXVtQ2FnZVNpemVS
ZWR1Y3Rpb25Gb3JTbGlkZSk7CiBzdGF0aWNfYXNzZXJ0KGpzVmFsdWVHaWdhY2FnZVNpemUgPiBt
YXhpbXVtQ2FnZVNpemVSZWR1Y3Rpb25Gb3JTbGlkZSk7Ci0jaWYgQkVOQUJMRShTTUFMTF9IRUFQ
KQotc3RhdGljX2Fzc2VydChzbWFsbEhlYXBHaWdhY2FnZVNpemUgPiBtYXhpbXVtQ2FnZVNpemVS
ZWR1Y3Rpb25Gb3JTbGlkZSk7Ci0jZW5kaWYKIAogY29uc3RleHByIHNpemVfdCBnaWdhY2FnZVNp
emVUb01hc2soc2l6ZV90IHNpemUpIHsgcmV0dXJuIHNpemUgLSAxOyB9CiAKIGNvbnN0ZXhwciBz
aXplX3QgcHJpbWl0aXZlR2lnYWNhZ2VNYXNrID0gZ2lnYWNhZ2VTaXplVG9NYXNrKHByaW1pdGl2
ZUdpZ2FjYWdlU2l6ZSk7CiBjb25zdGV4cHIgc2l6ZV90IGpzVmFsdWVHaWdhY2FnZU1hc2sgPSBn
aWdhY2FnZVNpemVUb01hc2soanNWYWx1ZUdpZ2FjYWdlU2l6ZSk7Ci0jaWYgQkVOQUJMRShTTUFM
TF9IRUFQKQotY29uc3RleHByIHNpemVfdCBzbWFsbEhlYXBHaWdhY2FnZU1hc2sgPSBnaWdhY2Fn
ZVNpemVUb01hc2soc21hbGxIZWFwR2lnYWNhZ2VTaXplKTsKLSNlbmRpZgogCiAvLyBUaGVzZSBj
b25zdGFudHMgYXJlIG5lZWRlZCBieSB0aGUgTExJbnQuCiBjb25zdGV4cHIgcHRyZGlmZl90IG9m
ZnNldE9mUHJpbWl0aXZlR2lnYWNhZ2VCYXNlUHRyID0gS2luZDo6UHJpbWl0aXZlICogc2l6ZW9m
KHZvaWQqKTsKIGNvbnN0ZXhwciBwdHJkaWZmX3Qgb2Zmc2V0T2ZKU1ZhbHVlR2lnYWNhZ2VCYXNl
UHRyID0gS2luZDo6SlNWYWx1ZSAqIHNpemVvZih2b2lkKik7Ci0jaWYgQkVOQUJMRShTTUFMTF9I
RUFQKQotY29uc3RleHByIHB0cmRpZmZfdCBvZmZzZXRPZlNtYWxsSGVhcEdpZ2FjYWdlQmFzZVB0
ciA9IEtpbmQ6OlNtYWxsSGVhcCAqIHNpemVvZih2b2lkKik7Ci0jZW5kaWYKIAogZXh0ZXJuICJD
IiBCRVhQT1JUIGJvb2wgZGlzYWJsZVByaW1pdGl2ZUdpZ2FjYWdlUmVxdWVzdGVkOwogCiBCSU5M
SU5FIGJvb2wgaXNFbmFibGVkKCkgeyByZXR1cm4gZ19naWdhY2FnZUNvbmZpZy5pc0VuYWJsZWQ7
IH0KIAogQkVYUE9SVCB2b2lkIGVuc3VyZUdpZ2FjYWdlKCk7Ci1CRVhQT1JUIHZvaWQgZW5zdXJl
U21hbGxIZWFwKCk7CiAKIEJFWFBPUlQgdm9pZCBkaXNhYmxlUHJpbWl0aXZlR2lnYWNhZ2UoKTsK
IApAQCAtMTY1LDEwICsxNDYsNiBAQCBCSU5MSU5FIHNpemVfdCBtYXhTaXplKEtpbmQga2luZCkK
ICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHNpemVfdD4ocHJpbWl0aXZlR2lnYWNhZ2VTaXpl
KTsKICAgICBjYXNlIEpTVmFsdWU6CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxzaXplX3Q+
KGpzVmFsdWVHaWdhY2FnZVNpemUpOwotI2lmIEJFTkFCTEUoU01BTExfSEVBUCkKLSAgICBjYXNl
IFNtYWxsSGVhcDoKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHNpemVfdD4oc21hbGxIZWFw
R2lnYWNhZ2VTaXplKTsKLSNlbmRpZgogICAgIGNhc2UgTnVtYmVyT2ZLaW5kczoKICAgICAgICAg
YnJlYWs7CiAgICAgfQpAQCAtMTk1LDkgKzE3Miw2IEBAIHZvaWQgZm9yRWFjaEtpbmQoY29uc3Qg
RnVuYyYgZnVuYykKIHsKICAgICBmdW5jKFByaW1pdGl2ZSk7CiAgICAgZnVuYyhKU1ZhbHVlKTsK
LSNpZiBCRU5BQkxFKFNNQUxMX0hFQVApCi0gICAgZnVuYyhTbWFsbEhlYXApOwotI2VuZGlmCiB9
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CkBAIC0yMzQsMTMgKzIwOCw2IEBAIEJJTkxJTkUgYm9v
bCBjb250YWlucyhjb25zdCB2b2lkKiBwdHIpCiAKIEJFWFBPUlQgYm9vbCBzaG91bGRCZUVuYWJs
ZWQoKTsKIAotI2lmIEJFTkFCTEUoU01BTExfSEVBUCkKLXN0cnVjdCBTbWFsbEhlYXBBbGxvY2F0
b3JJbmZvIHsKLSAgICBjb25zdGV4cHIgc3RhdGljIHVpbnQ2NF90IGhlYXBBZGRyZXNzTWFzayA9
IHNtYWxsSGVhcEdpZ2FjYWdlTWFzazsKLSAgICBzdGF0aWMgaW5saW5lIHVpbnRwdHJfdCBiYXNl
QWRkcmVzcygpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihhbGxvY0Jhc2Uo
U21hbGxIZWFwKSk7IH0KLX07Ci0jZW5kaWYKLQogI2Vsc2UgLy8gR0lHQUNBR0VfRU5BQkxFRAog
CiBCSU5MSU5FIHZvaWQqIGJhc2VQdHIoS2luZCkKQEAgLTI1Myw3ICsyMjAsNiBAQCBCSU5MSU5F
IHNpemVfdCBtYXhTaXplKEtpbmQpIHsgQkNSQVNIKCk7IHJldHVybiAwOyB9CiBCSU5MSU5FIHNp
emVfdCBzaXplKEtpbmQpIHsgcmV0dXJuIDA7IH0KIEJJTkxJTkUgc2l6ZV90IGZvb3RwcmludChL
aW5kKSB7IHJldHVybiAwOyB9CiBCSU5MSU5FIHZvaWQgZW5zdXJlR2lnYWNhZ2UoKSB7IH0KLUJJ
TkxJTkUgdm9pZCBlbnN1cmVTbWFsbEhlYXAoKSB7IH0KIEJJTkxJTkUgYm9vbCBjb250YWlucyhj
b25zdCB2b2lkKikgeyByZXR1cm4gZmFsc2U7IH0KIEJJTkxJTkUgYm9vbCBkaXNhYmxpbmdQcmlt
aXRpdmVHaWdhY2FnZUlzRm9yYmlkZGVuKCkgeyByZXR1cm4gZmFsc2U7IH0KIEJJTkxJTkUgYm9v
bCBpc0VuYWJsZWQoKSB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxs
b2MvYm1hbGxvYy9HaWdhY2FnZUNvbmZpZy5oIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9HaWdh
Y2FnZUNvbmZpZy5oCmluZGV4IGQwM2YwYWY0NWNkYy4uYjljZDA3MTZjY2YwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0dpZ2FjYWdlQ29uZmlnLmgKKysrIGIvU291cmNlL2Jt
YWxsb2MvYm1hbGxvYy9HaWdhY2FnZUNvbmZpZy5oCkBAIC0xMDgsNyArMTA4LDcgQEAgc3RydWN0
IENvbmZpZyB7CiBjb25zdGV4cHIgc2l6ZV90IHN0YXJ0U2xvdE9mR2lnYWNhZ2VDb25maWcgPSAy
OwogY29uc3RleHByIHNpemVfdCBzdGFydE9mZnNldE9mR2lnYWNhZ2VDb25maWcgPSBzdGFydFNs
b3RPZkdpZ2FjYWdlQ29uZmlnICogc2l6ZW9mKFdlYkNvbmZpZzo6U2xvdCk7CiAKLWNvbnN0ZXhw
ciBzaXplX3QgcmVzZXJ2ZWRTbG90c0ZvckdpZ2FjYWdlQ29uZmlnID0gMjA7Citjb25zdGV4cHIg
c2l6ZV90IHJlc2VydmVkU2xvdHNGb3JHaWdhY2FnZUNvbmZpZyA9IDEyOwogY29uc3RleHByIHNp
emVfdCByZXNlcnZlZEJ5dGVzRm9yR2lnYWNhZ2VDb25maWcgPSByZXNlcnZlZFNsb3RzRm9yR2ln
YWNhZ2VDb25maWcgKiBzaXplb2YoV2ViQ29uZmlnOjpTbG90KTsKIAogY29uc3RleHByIHNpemVf
dCBhbGlnbm1lbnRPZkdpZ2FjYWdlQ29uZmlnID0gc3RkOjphbGlnbm1lbnRfb2Y8R2lnYWNhZ2U6
OkNvbmZpZz46OnZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9HaWdh
Y2FnZUtpbmQuaCBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvR2lnYWNhZ2VLaW5kLmgKaW5kZXgg
MGE5ZjFlZjg4Yjc0Li41M2Q1MjdiNWUzMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2Jt
YWxsb2MvR2lnYWNhZ2VLaW5kLmgKKysrIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9HaWdhY2Fn
ZUtpbmQuaApAQCAtMjUsMTYgKzI1LDExIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAi
QlBsYXRmb3JtLmgiCi0KIG5hbWVzcGFjZSBHaWdhY2FnZSB7CiAKIGVudW0gS2luZCB7CiAgICAg
UHJpbWl0aXZlLAogICAgIEpTVmFsdWUsCi0jaWYgQkVOQUJMRShTTUFMTF9IRUFQKQotICAgIFNt
YWxsSGVhcCwKLSNlbmRpZgogICAgIE51bWJlck9mS2luZHMKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcEtpbmQuaCBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2Mv
SGVhcEtpbmQuaAppbmRleCAwNWNiNzAxY2Y1YmIuLjA3YWE3M2Q1YWU3YiAxMDA2NDQKLS0tIGEv
U291cmNlL2JtYWxsb2MvYm1hbGxvYy9IZWFwS2luZC5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2Jt
YWxsb2MvSGVhcEtpbmQuaApAQCAtMzQsMTAgKzM0LDcgQEAgbmFtZXNwYWNlIGJtYWxsb2Mgewog
ZW51bSBjbGFzcyBIZWFwS2luZCB7CiAgICAgUHJpbWFyeSwKICAgICBQcmltaXRpdmVHaWdhY2Fn
ZSwKLSAgICBKU1ZhbHVlR2lnYWNhZ2UsCi0jaWYgQkVOQUJMRShTTUFMTF9IRUFQKQotICAgIFNt
YWxsSGVhcEdpZ2FjYWdlLAotI2VuZGlmCisgICAgSlNWYWx1ZUdpZ2FjYWdlCiB9OwogCiBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIG51bUhlYXBzID0gMzsKQEAgLTQ5LDkgKzQ2LDYgQEAgQklO
TElORSBib29sIGlzR2lnYWNhZ2UoSGVhcEtpbmQgaGVhcEtpbmQpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICBjYXNlIEhlYXBLaW5kOjpQcmltaXRpdmVHaWdhY2FnZToKICAgICBjYXNlIEhl
YXBLaW5kOjpKU1ZhbHVlR2lnYWNhZ2U6Ci0jaWYgQkVOQUJMRShTTUFMTF9IRUFQKQotICAgIGNh
c2UgSGVhcEtpbmQ6OlNtYWxsSGVhcEdpZ2FjYWdlOgotI2VuZGlmCiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KICAgICBCQ1JBU0goKTsKQEAgLTY4LDEwICs2Miw2IEBAIEJJTkxJTkUgR2ln
YWNhZ2U6OktpbmQgZ2lnYWNhZ2VLaW5kKEhlYXBLaW5kIGtpbmQpCiAgICAgICAgIHJldHVybiBH
aWdhY2FnZTo6UHJpbWl0aXZlOwogICAgIGNhc2UgSGVhcEtpbmQ6OkpTVmFsdWVHaWdhY2FnZToK
ICAgICAgICAgcmV0dXJuIEdpZ2FjYWdlOjpKU1ZhbHVlOwotI2lmIEJFTkFCTEUoU01BTExfSEVB
UCkKLSAgICBjYXNlIEhlYXBLaW5kOjpTbWFsbEhlYXBHaWdhY2FnZToKLSAgICAgICAgcmV0dXJu
IEdpZ2FjYWdlOjpTbWFsbEhlYXA7Ci0jZW5kaWYKICAgICB9CiAgICAgQkNSQVNIKCk7CiAgICAg
cmV0dXJuIEdpZ2FjYWdlOjpQcmltaXRpdmU7CkBAIC04NCwxMCArNzQsNiBAQCBCSU5MSU5FIEhl
YXBLaW5kIGhlYXBLaW5kKEdpZ2FjYWdlOjpLaW5kIGtpbmQpCiAgICAgICAgIHJldHVybiBIZWFw
S2luZDo6UHJpbWl0aXZlR2lnYWNhZ2U7CiAgICAgY2FzZSBHaWdhY2FnZTo6SlNWYWx1ZToKICAg
ICAgICAgcmV0dXJuIEhlYXBLaW5kOjpKU1ZhbHVlR2lnYWNhZ2U7Ci0jaWYgQkVOQUJMRShTTUFM
TF9IRUFQKQotICAgIGNhc2UgR2lnYWNhZ2U6OlNtYWxsSGVhcDoKLSAgICAgICAgcmV0dXJuIEhl
YXBLaW5kOjpTbWFsbEhlYXBHaWdhY2FnZTsKLSNlbmRpZgogICAgIGNhc2UgR2lnYWNhZ2U6Ok51
bWJlck9mS2luZHM6CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTEwMyw5ICs4OSw2IEBAIEJJ
TkxJTkUgYm9vbCBpc0FjdGl2ZUhlYXBLaW5kQWZ0ZXJFbnN1cmluZ0dpZ2FjYWdlKEhlYXBLaW5k
IGtpbmQpCiAgICAgICAgIGlmIChHaWdhY2FnZTo6aXNFbmFibGVkKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwotI2lmIEJFTkFCTEUoU01BTExfSEVB
UCkKLSAgICBjYXNlIEhlYXBLaW5kOjpTbWFsbEhlYXBHaWdhY2FnZToKLSNlbmRpZgogICAgIGRl
ZmF1bHQ6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTEyMSw5ICsxMDQsNiBAQCBC
SU5MSU5FIEhlYXBLaW5kIG1hcFRvQWN0aXZlSGVhcEtpbmRBZnRlckVuc3VyaW5nR2lnYWNhZ2Uo
SGVhcEtpbmQga2luZCkKICAgICAgICAgaWYgKEdpZ2FjYWdlOjppc0VuYWJsZWQoKSkKICAgICAg
ICAgICAgIHJldHVybiBraW5kOwogICAgICAgICByZXR1cm4gSGVhcEtpbmQ6OlByaW1hcnk7Ci0j
aWYgQkVOQUJMRShTTUFMTF9IRUFQKQotICAgIGNhc2UgSGVhcEtpbmQ6OlNtYWxsSGVhcEdpZ2Fj
YWdlOgotI2VuZGlmCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGtpbmQ7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9ibWFsbG9jLmNwcCBiL1NvdXJjZS9i
bWFsbG9jL2JtYWxsb2MvYm1hbGxvYy5jcHAKaW5kZXggY2M4MjMzYzlmOWQwLi5iNjgyYTE5YWQz
YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvYm1hbGxvYy5jcHAKKysrIGIv
U291cmNlL2JtYWxsb2MvYm1hbGxvYy9ibWFsbG9jLmNwcApAQCAtNDMsMTcgKzQzLDExIEBAIG5h
bWVzcGFjZSBibWFsbG9jIHsgbmFtZXNwYWNlIGFwaSB7CiBuYW1lc3BhY2Ugewogc3RhdGljIGNv
bnN0IGJtYWxsb2NfdHlwZSBwcmltaXRpdmVHaWdhY2FnZVR5cGUgPSBCTUFMTE9DX1RZUEVfSU5J
VElBTElaRVIoMSwgMSwgIlByaW1pdGl2ZSBHaWdhY2FnZSIpOwogc3RhdGljIGNvbnN0IGJtYWxs
b2NfdHlwZSBqc1ZhbHVlR2lnYWNhZ2VUeXBlID0gQk1BTExPQ19UWVBFX0lOSVRJQUxJWkVSKDEs
IDEsICJKU1ZhbHVlIEdpZ2FjYWdlIik7Ci0jaWYgQkVOQUJMRShTTUFMTF9IRUFQKQotc3RhdGlj
IGNvbnN0IGJtYWxsb2NfdHlwZSBzbWFsbEhlYXBHaWdhY2FnZVR5cGUgPSBCTUFMTE9DX1RZUEVf
SU5JVElBTElaRVIoMSwgMSwgIlNtYWxsIEhlYXAgR2lnYWNhZ2UiKTsKLSNlbmRpZgogfSAvLyBh
bm9ueW1vdXMgbmFtZXNwYWNlCiAKIHBhc19wcmltaXRpdmVfaGVhcF9yZWYgZ2lnYWNhZ2VIZWFw
c1tHaWdhY2FnZTo6TnVtYmVyT2ZLaW5kc10gPSB7CiAgICAgQk1BTExPQ19BVVhJTElBUllfSEVB
UF9SRUZfSU5JVElBTElaRVIoJnByaW1pdGl2ZUdpZ2FjYWdlVHlwZSksCi0gICAgQk1BTExPQ19B
VVhJTElBUllfSEVBUF9SRUZfSU5JVElBTElaRVIoJmpzVmFsdWVHaWdhY2FnZVR5cGUpLAotI2lm
IEJFTkFCTEUoU01BTExfSEVBUCkKLSAgICBCTUFMTE9DX0FVWElMSUFSWV9IRUFQX1JFRl9JTklU
SUFMSVpFUigmc21hbGxIZWFwR2lnYWNhZ2VUeXBlKQotI2VuZGlmCisgICAgQk1BTExPQ19BVVhJ
TElBUllfSEVBUF9SRUZfSU5JVElBTElaRVIoJmpzVmFsdWVHaWdhY2FnZVR5cGUpCiB9OwogI2Vu
ZGlmCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0FsaWduZWRS
ZWZMb2dnZXIuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0FsaWduZWRSZWZMb2dn
ZXIuaAppbmRleCAzNTgyNzU2NTRkZDEuLjFkNjFlNTBmZTE2NiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQWxpZ25lZFJlZkxvZ2dlci5oCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL0FsaWduZWRSZWZMb2dnZXIuaApAQCAtMjYsMTMgKzI2LDEw
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkxvZ2dlci5oIgotI2luY2x1ZGUgPHd0Zi9D
b21wYWN0UHRyLmg+CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogc3RydWN0IGFsaWdu
YXMoMTYpIEFsaWduZWRSZWZMb2dnZXIgewotICAgIHVzaW5nIENvbXBhY3RQdHJUeXBlVHJhaXRz
ID0gV1RGOjpCaWdIZWFwVHlwZVRyYWl0czxBbGlnbmVkUmVmTG9nZ2VyPjsKLQogICAgIEFsaWdu
ZWRSZWZMb2dnZXIoY29uc3QgY2hhciogbmFtZSkKICAgICAgICAgOiBuYW1lIHsgKm5hbWUgfQog
ICAgIHsKQEAgLTUyLDggKzQ5LDYgQEAgc3RydWN0IGFsaWduYXMoMTYpIEFsaWduZWRSZWZMb2dn
ZXIgewogfTsKIAogc3RydWN0IERlcml2ZWRBbGlnbmVkUmVmTG9nZ2VyIDogQWxpZ25lZFJlZkxv
Z2dlciB7Ci0gICAgdXNpbmcgQ29tcGFjdFB0clR5cGVUcmFpdHMgPSBXVEY6OkJpZ0hlYXBUeXBl
VHJhaXRzPERlcml2ZWRBbGlnbmVkUmVmTG9nZ2VyPjsKLQogICAgIERlcml2ZWRBbGlnbmVkUmVm
TG9nZ2VyKGNvbnN0IGNoYXIqIG5hbWUpCiAgICAgICAgIDogQWxpZ25lZFJlZkxvZ2dlciB7IG5h
bWUgfQogICAgIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nv
bXBhY3RSZWZQdHIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ29tcGFjdFJl
ZlB0ci5jcHAKaW5kZXggNDk1MjgzOTk3MzZkLi43OWM3YmZmM2IwZTggMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbXBhY3RSZWZQdHIuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbXBhY3RSZWZQdHIuY3BwCkBAIC00MjEsNyArNDIx
LDYgQEAgVEVTVChXVEZfQ29tcGFjdFJlZlB0ciwgUmV0dXJuVmFsdWUpCiAKIHN0cnVjdCBhbGln
bmFzKDE2KSBDb25zdFJlZkNvdW50ZWQKICAgICA6IFJlZkNvdW50ZWQ8Q29uc3RSZWZDb3VudGVk
PiB7Ci0gICAgdXNpbmcgQ29tcGFjdFB0clR5cGVUcmFpdHMgPSBXVEY6OkJpZ0hlYXBUeXBlVHJh
aXRzPENvbnN0UmVmQ291bnRlZD47CiAgICAgc3RhdGljIFJlZjxDb25zdFJlZkNvdW50ZWQ+IGNy
ZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ29uc3RSZWZDb3VudGVkKTsgfQogfTsKIApA
QCAtNDUxLDcgKzQ1MCw2IEBAIFRFU1QoV1RGX0NvbXBhY3RSZWZQdHIsIENvbnN0KQogfQogCiBz
dHJ1Y3QgQ29tcGFjdFJlZlB0ckNoZWNraW5nQWxpZ25lZFJlZkxvZ2dlciA6IEFsaWduZWRSZWZM
b2dnZXIgewotICAgIHVzaW5nIENvbXBhY3RQdHJUeXBlVHJhaXRzID0gV1RGOjpCaWdIZWFwVHlw
ZVRyYWl0czxDb21wYWN0UmVmUHRyQ2hlY2tpbmdBbGlnbmVkUmVmTG9nZ2VyPjsKICAgICBDb21w
YWN0UmVmUHRyQ2hlY2tpbmdBbGlnbmVkUmVmTG9nZ2VyKGNvbnN0IGNoYXIqIG5hbWUpOwogICAg
IHZvaWQgcmVmKCk7CiAgICAgdm9pZCBkZXJlZigpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvSlNPTlZhbHVlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0pTT05WYWx1ZS5jcHAKaW5kZXggYzA5MzQ4NmRlOTYzLi40NTgxMjAwYmIwMTQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0pTT05WYWx1ZS5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSlNPTlZhbHVlLmNwcApAQCAtNjk5LDE0
ICs2OTksMjIgQEAgVEVTVChKU09OVmFsdWUsIE1lbW9yeUNvc3QpCiAgICAgICAgIFJlZjxKU09O
OjpWYWx1ZT4gdmFsdWUgPSBKU09OOjpWYWx1ZTo6Y3JlYXRlKG1ha2VTdHJpbmcoInRlc3QiX3Mp
KTsKICAgICAgICAgc2l6ZV90IG1lbW9yeUNvc3QgPSB2YWx1ZS0+bWVtb3J5Q29zdCgpOwogICAg
ICAgICBFWFBFQ1RfR1QobWVtb3J5Q29zdCwgMFUpOworI2lmIEhBVkUoMzZCSVRfQUREUkVTUykK
ICAgICAgICAgRVhQRUNUX0xFKG1lbW9yeUNvc3QsIDQ0VSk7CisjZWxzZQorICAgICAgICBFWFBF
Q1RfTEUobWVtb3J5Q29zdCwgMzZVKTsKKyNlbmRpZgogICAgIH0KIAogICAgIHsKICAgICAgICAg
UmVmPEpTT046OlZhbHVlPiB2YWx1ZSA9IEpTT046OlZhbHVlOjpjcmVhdGUoZW1wdHlTdHJpbmco
KSk7CiAgICAgICAgIHNpemVfdCBtZW1vcnlDb3N0ID0gdmFsdWUtPm1lbW9yeUNvc3QoKTsKICAg
ICAgICAgRVhQRUNUX0dUKG1lbW9yeUNvc3QsIDBVKTsKKyNpZiBIQVZFKDM2QklUX0FERFJFU1Mp
CiAgICAgICAgIEVYUEVDVF9MRShtZW1vcnlDb3N0LCA0MFUpOworI2Vsc2UKKyAgICAgICAgRVhQ
RUNUX0xFKG1lbW9yeUNvc3QsIDMyVSk7CisjZW5kaWYKICAgICB9CiAKICAgICB7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9QYWNrZWRSZWZQdHIuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUGFja2VkUmVmUHRyLmNwcAppbmRleCBiM2MzNGU5
MGZkYTMuLjZkOGUzMmFjNjg3ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvUGFja2VkUmVmUHRyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9QYWNrZWRSZWZQdHIuY3BwCkBAIC00MDcsNyArNDA3LDYgQEAgVEVTVChXVEZfUGFja2VkUmVm
UHRyLCBSZXR1cm5WYWx1ZSkKIH0KIAogc3RydWN0IENvbnN0UmVmQ291bnRlZCA6IFJlZkNvdW50
ZWQ8Q29uc3RSZWZDb3VudGVkPiB7Ci0gICAgdXNpbmcgQ29tcGFjdFB0clR5cGVUcmFpdHMgPSBX
VEY6OkJpZ0hlYXBUeXBlVHJhaXRzPENvbnN0UmVmQ291bnRlZD47CiAgICAgc3RhdGljIFJlZjxD
b25zdFJlZkNvdW50ZWQ+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ29uc3RSZWZD
b3VudGVkKTsgfQogfTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3RyaW5nSW1wbC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJ
bXBsLmNwcAppbmRleCBjMDJiNTQyOTAzNTEuLjIxZTgzMzljNzNhZiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKQEAgLTYxNSwxMSArNjE1LDExIEBA
IFRFU1QoV1RGLCBTdHJpbmdJbXBsTnVsbFN5bWJvbFRvQXRvbVN0cmluZykKICAgICBBU1NFUlRf
VFJVRShyZXN1bHQyKTsKIH0KIAotc3RhdGljIGF1dG8qIHN0YXRpY1N0cmluZyA9IE1BS0VfU1RB
VElDX1NUUklOR19JTVBMKCJDb2NvYSIpOworc3RhdGljIFN0cmluZ0ltcGw6OlN0YXRpY1N0cmlu
Z0ltcGwgc3RhdGljU3RyaW5nIHsiQ29jb2EifTsKIAogVEVTVChXVEYsIFN0cmluZ0ltcGxTdGF0
aWNUb0F0b21TdHJpbmcpCiB7Ci0gICAgU3RyaW5nSW1wbCYgb3JpZ2luYWwgPSAqc3RhdGljU3Ry
aW5nOworICAgIFN0cmluZ0ltcGwmIG9yaWdpbmFsID0gc3RhdGljU3RyaW5nOwogICAgIEFTU0VS
VF9GQUxTRShvcmlnaW5hbC5pc1N5bWJvbCgpKTsKICAgICBBU1NFUlRfRkFMU0Uob3JpZ2luYWwu
aXNBdG9tKCkpOwogICAgIEFTU0VSVF9UUlVFKG9yaWdpbmFsLmlzU3RhdGljKCkpOwpAQCAtNzM0
LDYgKzczNCwyMyBAQCBURVNUKFdURiwgRHluYW1pY1N0YXRpY1N0cmluZ0ltcGwpCiAgICAgZG9T
dGF0aWNTdHJpbmdJbXBsVGVzdHMoU3RhdGljU3RyaW5nSW1wbFRlc3RTZXQ6OkR5bmFtaWNhbGx5
QWxsb2NhdGVkSW1wbCwgaGVsbG8sIHdvcmxkLCBsb25nZXIsIGhlbGxvMik7CiB9CiAKK3N0YXRp
YyBTeW1ib2xJbXBsOjpTdGF0aWNTeW1ib2xJbXBsIHN0YXRpY1N5bWJvbCB7IkNvY29hIn07Citz
dGF0aWMgU3ltYm9sSW1wbDo6U3RhdGljU3ltYm9sSW1wbCBzdGF0aWNQcml2YXRlU3ltYm9sIHsi
Q29jb2EiLCBTeW1ib2xJbXBsOjpzX2ZsYWdJc1ByaXZhdGUgfTsKKworVEVTVChXVEYsIFN0YXRp
Y1N5bWJvbEltcGwpCit7CisgICAgYXV0byYgc3ltYm9sID0gc3RhdGljX2Nhc3Q8U3ltYm9sSW1w
bCY+KHN0YXRpY1N5bWJvbCk7CisgICAgQVNTRVJUX1RSVUUoc3ltYm9sLmlzU3ltYm9sKCkpOwor
ICAgIEFTU0VSVF9GQUxTRShzeW1ib2wuaXNQcml2YXRlKCkpOworfQorCitURVNUKFdURiwgU3Rh
dGljUHJpdmF0ZVN5bWJvbEltcGwpCit7CisgICAgYXV0byYgc3ltYm9sID0gc3RhdGljX2Nhc3Q8
U3ltYm9sSW1wbCY+KHN0YXRpY1ByaXZhdGVTeW1ib2wpOworICAgIEFTU0VSVF9UUlVFKHN5bWJv
bC5pc1N5bWJvbCgpKTsKKyAgICBBU1NFUlRfVFJVRShzeW1ib2wuaXNQcml2YXRlKCkpOworfQor
CiBURVNUKFdURiwgRXh0ZXJuYWxTdHJpbmdJbXBsQ3JlYXRlOGJpdCkKIHsKICAgICBjb25zdGV4
cHIgTENoYXIgYnVmZmVyW10gPSAiaGVsbG8iOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKaW5kZXggMDc5ZTk3NDQ1MGU0Li5mODBlYjI1
ZTQ4ODcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxl
TW9uaXRvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVN
b25pdG9yLmNwcApAQCAtNDIsMTUgKzQyLDE2IEBACiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworICAgIAorY29uc3QgU3RyaW5nIEZpbGVNb25p
dG9yVGVzdERhdGEoIlRoaXMgaXMgYSB0ZXN0Il9zKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRv
clJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7
Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21l
IGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3MpOwogCiBjbGFzcyBGaWxlTW9uaXRvclRlc3Qg
OiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiBwdWJsaWM6CiAgICAgdm9pZCBTZXRVcCgpIG92ZXJy
aWRlCiAgICAgewogICAgICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkKCk7Ci0gICAgICAg
IGNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclRlc3REYXRhKCJUaGlzIGlzIGEgdGVzdCJfcyk7Ci0g
ICAgICAgIGNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUg
Y2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7Ci0gICAgICAgIGNvbnN0IFN0cmluZyBGaWxl
TW9uaXRvclNlY29uZFJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0
aGUgdGVzdCJfcyk7CiAgICAgICAgIAogICAgICAgICAvLyBjcmVhdGUgdGVtcCBmaWxlCiAgICAg
ICAgIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGU7CkBAIC0xMjEsMTAgKzEy
Miw2IEBAIFRFU1RfRihGaWxlTW9uaXRvclRlc3QsIERldGVjdENoYW5nZSkKIAogICAgIFdURjo6
aW5pdGlhbGl6ZU1haW5UaHJlYWQoKTsKIAotICAgIGNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclRl
c3REYXRhKCJUaGlzIGlzIGEgdGVzdCJfcyk7Ci0gICAgY29uc3QgU3RyaW5nIEZpbGVNb25pdG9y
UmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Il9zKTsK
LSAgICBjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0YSgiVGhpcyBpcyBz
b21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3MpOwotCiAgICAgYXV0byB0ZXN0UXVldWUg
PSBXb3JrUXVldWU6OmNyZWF0ZSgiVGVzdCBXb3JrIFF1ZXVlIik7CiAKICAgICBhdXRvIG1vbml0
b3IgPSBtYWtlVW5pcXVlPEZpbGVNb25pdG9yPih0ZW1wRmlsZVBhdGgoKSwgdGVzdFF1ZXVlLmNv
cHlSZWYoKSwgW10gKEZpbGVNb25pdG9yOjpGaWxlQ2hhbmdlVHlwZSB0eXBlKSB7CkBAIC0xMzks
NyArMTM2LDcgQEAgVEVTVF9GKEZpbGVNb25pdG9yVGVzdCwgRGV0ZWN0Q2hhbmdlKQogICAgICAg
ICB9CiAgICAgfSk7CiAKLSAgICB0ZXN0UXVldWUtPmRpc3BhdGNoKFs9LCB0aGlzXSAoKSBtdXRh
YmxlIHsKKyAgICB0ZXN0UXVldWUtPmRpc3BhdGNoKFt0aGlzXSAoKSBtdXRhYmxlIHsKICAgICAg
ICAgU3RyaW5nIGZpbGVDb250ZW50cyA9IHJlYWRDb250ZW50c09mRmlsZSh0ZW1wRmlsZVBhdGgo
KSk7CiAgICAgICAgIEVYUEVDVF9TVFJFUShGaWxlTW9uaXRvclRlc3REYXRhLnV0ZjgoKS5kYXRh
KCksIGZpbGVDb250ZW50cy51dGY4KCkuZGF0YSgpKTsKIApAQCAtMTY2LDkgKzE2Myw2IEBAIFRF
U1RfRihGaWxlTW9uaXRvclRlc3QsIERldGVjdE11bHRpcGxlQ2hhbmdlcykKICAgICBFWFBFQ1Rf
VFJVRShGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKHRlbXBGaWxlUGF0aCgpKSk7CiAKICAgICBXVEY6
OmluaXRpYWxpemVNYWluVGhyZWFkKCk7Ci0gICAgY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVz
dERhdGEoIlRoaXMgaXMgYSB0ZXN0Il9zKTsKLSAgICBjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JS
ZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3MpOwot
ICAgIGNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclNlY29uZFJldmlzZWREYXRhKCJUaGlzIGlzIHNv
bWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7CiAKICAgICBhdXRvIHRlc3RRdWV1ZSA9
IFdvcmtRdWV1ZTo6Y3JlYXRlKCJUZXN0IFdvcmsgUXVldWUiKTsKIApAQCAtMTg0LDcgKzE3OCw3
IEBAIFRFU1RfRihGaWxlTW9uaXRvclRlc3QsIERldGVjdE11bHRpcGxlQ2hhbmdlcykKICAgICAg
ICAgfQogICAgIH0pOwogICAgIAotICAgIHRlc3RRdWV1ZS0+ZGlzcGF0Y2goWz0sIHRoaXNdICgp
IG11dGFibGUgeworICAgIHRlc3RRdWV1ZS0+ZGlzcGF0Y2goW3RoaXNdICgpIG11dGFibGUgewog
ICAgICAgICBTdHJpbmcgZmlsZUNvbnRlbnRzID0gcmVhZENvbnRlbnRzT2ZGaWxlKHRlbXBGaWxl
UGF0aCgpKTsKICAgICAgICAgRVhQRUNUX1NUUkVRKEZpbGVNb25pdG9yVGVzdERhdGEudXRmOCgp
LmRhdGEoKSwgZmlsZUNvbnRlbnRzLnV0ZjgoKS5kYXRhKCkpOwogCkBAIC0yMDUsNyArMTk5LDcg
QEAgVEVTVF9GKEZpbGVNb25pdG9yVGVzdCwgRGV0ZWN0TXVsdGlwbGVDaGFuZ2VzKQogCiAgICAg
cmVzZXRUZXN0U3RhdGUoKTsKIAotICAgIHRlc3RRdWV1ZS0+ZGlzcGF0Y2goWz0sIHRoaXNdICgp
IG11dGFibGUgeworICAgIHRlc3RRdWV1ZS0+ZGlzcGF0Y2goW3RoaXNdICgpIG11dGFibGUgewog
ICAgICAgICBhdXRvIHNlY29uZENvbW1hbmQgPSBjcmVhdGVDb21tYW5kKHRlbXBGaWxlUGF0aCgp
LCBGaWxlTW9uaXRvclNlY29uZFJldmlzZWREYXRhKTsKICAgICAgICAgYXV0byByYyA9IHN5c3Rl
bShzZWNvbmRDb21tYW5kLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICBBU1NFUlRfTkUocmMsIC0x
KTsKQEAgLTI2NCw5ICsyNTgsNiBAQCBURVNUX0YoRmlsZU1vbml0b3JUZXN0LCBEZXRlY3RDaGFu
Z2VBbmRUaGVuRGVsZXRlKQogICAgIEVYUEVDVF9UUlVFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMo
dGVtcEZpbGVQYXRoKCkpKTsKIAogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQoKTsKLSAg
ICBjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JUZXN0RGF0YSgiVGhpcyBpcyBhIHRlc3QiX3MpOwot
ICAgIGNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hh
bmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7Ci0gICAgY29uc3QgU3RyaW5nIEZpbGVNb25pdG9y
U2Vjb25kUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0
Il9zKTsKIAogICAgIGF1dG8gdGVzdFF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoIlRlc3QgV29y
ayBRdWV1ZSIpOwogCkBAIC0yODIsNyArMjczLDcgQEAgVEVTVF9GKEZpbGVNb25pdG9yVGVzdCwg
RGV0ZWN0Q2hhbmdlQW5kVGhlbkRlbGV0ZSkKICAgICAgICAgfQogICAgIH0pOwogCi0gICAgdGVz
dFF1ZXVlLT5kaXNwYXRjaChbPSwgdGhpc10gKCkgbXV0YWJsZSB7CisgICAgdGVzdFF1ZXVlLT5k
aXNwYXRjaChbdGhpc10gKCkgbXV0YWJsZSB7CiAgICAgICAgIFN0cmluZyBmaWxlQ29udGVudHMg
PSByZWFkQ29udGVudHNPZkZpbGUodGVtcEZpbGVQYXRoKCkpOwogICAgICAgICBFWFBFQ1RfU1RS
RVEoRmlsZU1vbml0b3JUZXN0RGF0YS51dGY4KCkuZGF0YSgpLCBmaWxlQ29udGVudHMudXRmOCgp
LmRhdGEoKSk7CiAKQEAgLTMyMSwxMCArMzEyLDYgQEAgVEVTVF9GKEZpbGVNb25pdG9yVGVzdCwg
RGV0ZWN0RGVsZXRlQnV0Tm90U3Vic2VxdWVudENoYW5nZSkKIAogICAgIFdURjo6aW5pdGlhbGl6
ZU1haW5UaHJlYWQoKTsKIAotICAgIGNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclRlc3REYXRhKCJU
aGlzIGlzIGEgdGVzdCJfcyk7Ci0gICAgY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yUmV2aXNlZERh
dGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Il9zKTsKLSAgICBjb25z
dCBTdHJpbmcgRmlsZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5n
ZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3MpOwotCiAgICAgYXV0byB0ZXN0UXVldWUgPSBXb3JrUXVl
dWU6OmNyZWF0ZSgiVGVzdCBXb3JrIFF1ZXVlIik7CiAKICAgICBhdXRvIG1vbml0b3IgPSBtYWtl
VW5pcXVlPEZpbGVNb25pdG9yPih0ZW1wRmlsZVBhdGgoKSwgdGVzdFF1ZXVlLmNvcHlSZWYoKSwg
W10gKEZpbGVNb25pdG9yOjpGaWxlQ2hhbmdlVHlwZSB0eXBlKSB7CkBAIC0zNTMsNyArMzQwLDcg
QEAgVEVTVF9GKEZpbGVNb25pdG9yVGVzdCwgRGV0ZWN0RGVsZXRlQnV0Tm90U3Vic2VxdWVudENo
YW5nZSkKIAogICAgIHJlc2V0VGVzdFN0YXRlKCk7CiAKLSAgICB0ZXN0UXVldWUtPmRpc3BhdGNo
KFs9LCB0aGlzXSAoKSBtdXRhYmxlIHsKKyAgICB0ZXN0UXVldWUtPmRpc3BhdGNoKFt0aGlzXSAo
KSBtdXRhYmxlIHsKICAgICAgICAgRVhQRUNUX0ZBTFNFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMo
dGVtcEZpbGVQYXRoKCkpKTsKIAogICAgICAgICBhdXRvIGhhbmRsZSA9IEZpbGVTeXN0ZW06Om9w
ZW5GaWxlKHRlbXBGaWxlUGF0aCgpLCBGaWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6OlRydW5jYXRl
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCmluZGV4IDJiZjFkMzk3YTVmYy4uMzBlMzU4NjI0
Zjg3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKQEAgLTM2LDEzICszNiwxNCBAQCBuYW1l
c3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIGNvbnN0ZXhwciB1aW50MzJfdCBtaW42Qml0VmFsdWUg
eyAwIH07CiAKK2NvbnN0IFVSTCB3ZWJLaXRVUkwgeyAiaHR0cHM6Ly93ZWJraXQub3JnIl9zIH07
Citjb25zdCBVUkwgZXhhbXBsZVVSTCB7ICJodHRwczovL2V4YW1wbGUuY29tIl9zIH07Citjb25z
dCBVUkwgZW1wdHlVUkwgeyB9OworCiAvLyBQb3NpdGl2ZSB0ZXN0IGNhc2VzLgogCiBURVNUKFBy
aXZhdGVDbGlja01lYXN1cmVtZW50LCBXZWxsS25vd25VUkxzKQogewotICAgIGNvbnN0IFVSTCB3
ZWJLaXRVUkwgeyAiaHR0cHM6Ly93ZWJraXQub3JnIl9zIH07Ci0gICAgY29uc3QgVVJMIGV4YW1w
bGVVUkwgeyAiaHR0cHM6Ly9leGFtcGxlLmNvbSJfcyB9OwotICAgIGNvbnN0IFVSTCBlbXB0eVVS
TCB7IH07CiAgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQobWluNkJpdFZhbHVlKSwgUENNOjpTb3VyY2VTaXRl
IHsgd2ViS2l0VVJMIH0sIFBDTTo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUgeyBleGFtcGxl
VVJMIH0sICJ0ZXN0LmJ1bmRsZS5pZGVudGlmaWVyIl9zLCBXYWxsVGltZTo6bm93KCksIFBDTTo6
QXR0cmlidXRpb25FcGhlbWVyYWw6Ok5vIH07CiAgICAgYXR0cmlidXRpb24uYXR0cmlidXRlQW5k
R2V0RWFybGllc3RUaW1lVG9TZW5kKFdlYkNvcmU6OlBDTTo6QXR0cmlidXRpb25UcmlnZ2VyRGF0
YSB7IG1pbjZCaXRWYWx1ZSwgV2ViQ29yZTo6UENNOjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhOjpQ
cmlvcml0eTo6UHJpb3JpdHlWYWx1ZShtaW42Qml0VmFsdWUpLCB7IH0sIHsgfSwgeyB9LCB7IH0s
IHsgfSwgeyB9IH0sIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpJc1J1bm5pbmdM
YXlvdXRUZXN0OjpObyk7CiAKQEAgLTU0LDkgKzU1LDYgQEAgVEVTVChQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCwgV2VsbEtub3duVVJMcykKIAogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwg
VmFsaWRNaW5WYWx1ZXMpCiB7Ci0gICAgY29uc3QgVVJMIHdlYktpdFVSTCB7ICJodHRwczovL3dl
YmtpdC5vcmciX3MgfTsKLSAgICBjb25zdCBVUkwgZXhhbXBsZVVSTCB7ICJodHRwczovL2V4YW1w
bGUuY29tIl9zIH07Ci0gICAgY29uc3QgVVJMIGVtcHR5VVJMIHsgfTsKICAgICBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3Vy
Y2VJRChtaW42Qml0VmFsdWUpLCBQQ006OlNvdXJjZVNpdGUgeyB3ZWJLaXRVUkwgfSwgUENNOjpB
dHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSB7IGV4YW1wbGVVUkwgfSwgInRlc3QuYnVuZGxlLmlk
ZW50aWZpZXIiX3MsIFdhbGxUaW1lOjpub3coKSwgUENNOjpBdHRyaWJ1dGlvbkVwaGVtZXJhbDo6
Tm8gfTsKICAgICBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGVBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQo
V2ViQ29yZTo6UENNOjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhIHsgbWluNkJpdFZhbHVlLCBXZWJD
b3JlOjpQQ006OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE6OlByaW9yaXR5OjpQcmlvcml0eVZhbHVl
KG1pbjZCaXRWYWx1ZSksIHsgfSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0gfSwgV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OklzUnVubmluZ0xheW91dFRlc3Q6Ok5vKTsKIApAQCAt
NjUsOSArNjMsNiBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZE1pblZhbHVl
cykKIAogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgVmFsaWRNaWRWYWx1ZXMpCiB7Ci0g
ICAgY29uc3QgVVJMIHdlYktpdFVSTCB7ICJodHRwczovL3dlYmtpdC5vcmciX3MgfTsKLSAgICBj
b25zdCBVUkwgZXhhbXBsZVVSTCB7ICJodHRwczovL2V4YW1wbGUuY29tIl9zIH07Ci0gICAgY29u
c3QgVVJMIGVtcHR5VVJMIHsgfTsKICAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1
dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRCgodWludDMyX3QpMTkyKSwg
UENNOjpTb3VyY2VTaXRlIHsgd2ViS2l0VVJMIH0sIFBDTTo6QXR0cmlidXRpb25EZXN0aW5hdGlv
blNpdGUgeyBleGFtcGxlVVJMIH0sICJ0ZXN0LmJ1bmRsZS5pZGVudGlmaWVyIl9zLCBXYWxsVGlt
ZTo6bm93KCksIFBDTTo6QXR0cmlidXRpb25FcGhlbWVyYWw6Ok5vIH07CiAgICAgYXR0cmlidXRp
b24uYXR0cmlidXRlQW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFdlYkNvcmU6OlBDTTo6QXR0cmli
dXRpb25UcmlnZ2VyRGF0YSB7ICh1aW50MzJfdCk5LCBXZWJDb3JlOjpQQ006OkF0dHJpYnV0aW9u
VHJpZ2dlckRhdGE6OlByaW9yaXR5OjpQcmlvcml0eVZhbHVlKCh1aW50MzJfdCkyMiksIHsgfSwg
eyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0gfSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OklzUnVubmluZ0xheW91dFRlc3Q6Ok5vKTsKIApAQCAtNzYsOSArNzEsNiBAQCBURVNUKFBy
aXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZE1pZFZhbHVlcykKIAogVEVTVChQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCwgVmFsaWRNYXhWYWx1ZXMpCiB7Ci0gICAgY29uc3QgVVJMIHdlYktpdFVS
TCB7ICJodHRwczovL3dlYmtpdC5vcmciX3MgfTsKLSAgICBjb25zdCBVUkwgZXhhbXBsZVVSTCB7
ICJodHRwczovL2V4YW1wbGUuY29tIl9zIH07Ci0gICAgY29uc3QgVVJMIGVtcHR5VVJMIHsgfTsK
ICAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpTb3VyY2VJRChzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ4X3Q+OjptYXgoKSks
IFBDTTo6U291cmNlU2l0ZSB7IHdlYktpdFVSTCB9LCBQQ006OkF0dHJpYnV0aW9uRGVzdGluYXRp
b25TaXRlIHsgZXhhbXBsZVVSTCB9LCAidGVzdC5idW5kbGUuaWRlbnRpZmllciJfcywgV2FsbFRp
bWU6Om5vdygpLCBQQ006OkF0dHJpYnV0aW9uRXBoZW1lcmFsOjpObyB9OwogICAgIGF0dHJpYnV0
aW9uLmF0dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChXZWJDb3JlOjpQQ006OkF0dHJp
YnV0aW9uVHJpZ2dlckRhdGEgeyBXZWJDb3JlOjpQQ006OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE6
Ok1heEVudHJvcHksIFdlYkNvcmU6OlBDTTo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YTo6UHJpb3Jp
dHk6OlByaW9yaXR5VmFsdWUoV2ViQ29yZTo6UENNOjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhOjpQ
cmlvcml0eTo6TWF4RW50cm9weSksIHsgfSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0gfSwgV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OklzUnVubmluZ0xheW91dFRlc3Q6Ok5vKTsK
IApAQCAtODcsOSArNzksNiBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZE1h
eFZhbHVlcykKIAogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgRWFybGllc3RUaW1lVG9T
ZW5kQXR0cmlidXRpb25NaW5pbXVtRGVsYXkpCiB7Ci0gICAgY29uc3QgVVJMIHdlYktpdFVSTCB7
ICJodHRwczovL3dlYmtpdC5vcmciX3MgfTsKLSAgICBjb25zdCBVUkwgZXhhbXBsZVVSTCB7ICJo
dHRwczovL2V4YW1wbGUuY29tIl9zIH07Ci0gICAgY29uc3QgVVJMIGVtcHR5VVJMIHsgfTsKICAg
ICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpTb3VyY2VJRChzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ4X3Q+OjptYXgoKSksIFBD
TTo6U291cmNlU2l0ZSB7IHdlYktpdFVSTCB9LCBQQ006OkF0dHJpYnV0aW9uRGVzdGluYXRpb25T
aXRlIHsgZXhhbXBsZVVSTCB9LCAidGVzdC5idW5kbGUuaWRlbnRpZmllciJfcywgV2FsbFRpbWU6
Om5vdygpLCBQQ006OkF0dHJpYnV0aW9uRXBoZW1lcmFsOjpObyB9OwogICAgIGF1dG8gbm93ID0g
V2FsbFRpbWU6Om5vdygpOwogICAgIGF0dHJpYnV0aW9uLmF0dHJpYnV0ZUFuZEdldEVhcmxpZXN0
VGltZVRvU2VuZChXZWJDb3JlOjpQQ006OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEgeyBXZWJDb3Jl
OjpQQ006OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE6Ok1heEVudHJvcHksIFdlYkNvcmU6OlBDTTo6
QXR0cmlidXRpb25UcmlnZ2VyRGF0YTo6UHJpb3JpdHk6OlByaW9yaXR5VmFsdWUoV2ViQ29yZTo6
UENNOjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhOjpQcmlvcml0eTo6TWF4RW50cm9weSksIHsgfSwg
eyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0gfSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OklzUnVubmluZ0xheW91dFRlc3Q6Ok5vKTsKQEAgLTE0NSw5ICsxMzQsNiBAQCBURVNUKFBy
aXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZFNvdXJjZU5vbmNlKQogCiBURVNUKFByaXZhdGVD
bGlja01lYXN1cmVtZW50LCBJbnZhbGlkU291cmNlSG9zdCkKIHsKLSAgICBjb25zdCBVUkwgd2Vi
S2l0VVJMIHsgImh0dHBzOi8vd2Via2l0Lm9yZyJfcyB9OwotICAgIGNvbnN0IFVSTCBleGFtcGxl
VVJMIHsgImh0dHBzOi8vZXhhbXBsZS5jb20iX3MgfTsKLSAgICBjb25zdCBVUkwgZW1wdHlVUkwg
eyB9OwogICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEKHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDhfdD46Om1h
eCgpKSwgUENNOjpTb3VyY2VTaXRlIHsgZW1wdHlVUkwgfSwgUENNOjpBdHRyaWJ1dGlvbkRlc3Rp
bmF0aW9uU2l0ZSB7IGV4YW1wbGVVUkwgfSwgInRlc3QuYnVuZGxlLmlkZW50aWZpZXIiX3MsIFdh
bGxUaW1lOjpub3coKSwgUENNOjpBdHRyaWJ1dGlvbkVwaGVtZXJhbDo6Tm8gfTsKICAgICBhdHRy
aWJ1dGlvbi5hdHRyaWJ1dGVBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoV2ViQ29yZTo6UENNOjpB
dHRyaWJ1dGlvblRyaWdnZXJEYXRhIHsgV2ViQ29yZTo6UENNOjpBdHRyaWJ1dGlvblRyaWdnZXJE
YXRhOjpNYXhFbnRyb3B5LCBXZWJDb3JlOjpQQ006OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE6OlBy
aW9yaXR5OjpQcmlvcml0eVZhbHVlKFdlYkNvcmU6OlBDTTo6QXR0cmlidXRpb25UcmlnZ2VyRGF0
YTo6UHJpb3JpdHk6Ok1heEVudHJvcHkpLCB7IH0sIHsgfSwgeyB9LCB7IH0sIHsgfSwgeyB9IH0s
IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpJc1J1bm5pbmdMYXlvdXRUZXN0OjpO
byk7CiAKQEAgLTE1Nyw5ICsxNDMsNiBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJ
bnZhbGlkU291cmNlSG9zdCkKIAogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxp
ZERlc3RpbmF0aW9uSG9zdCkKIHsKLSAgICBjb25zdCBVUkwgd2ViS2l0VVJMIHsgImh0dHBzOi8v
d2Via2l0Lm9yZyJfcyB9OwotICAgIGNvbnN0IFVSTCBleGFtcGxlVVJMIHsgImh0dHBzOi8vZXhh
bXBsZS5jb20iX3MgfTsKLSAgICBjb25zdCBVUkwgZW1wdHlVUkwgeyB9OwogICAgIFByaXZhdGVD
bGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNv
dXJjZUlEKHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDhfdD46Om1heCgpKSwgUENNOjpTb3VyY2VT
aXRlIHsgd2ViS2l0VVJMIH0sIFBDTTo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUgeyBlbXB0
eVVSTCB9LCAidGVzdC5idW5kbGUuaWRlbnRpZmllciJfcywgV2FsbFRpbWU6Om5vdygpLCBQQ006
OkF0dHJpYnV0aW9uRXBoZW1lcmFsOjpObyB9OwogICAgIGF0dHJpYnV0aW9uLmF0dHJpYnV0ZUFu
ZEdldEVhcmxpZXN0VGltZVRvU2VuZChXZWJDb3JlOjpQQ006OkF0dHJpYnV0aW9uVHJpZ2dlckRh
dGEgeyBXZWJDb3JlOjpQQ006OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE6Ok1heEVudHJvcHksIFdl
YkNvcmU6OlBDTTo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YTo6UHJpb3JpdHk6OlByaW9yaXR5VmFs
dWUoV2ViQ29yZTo6UENNOjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhOjpQcmlvcml0eTo6TWF4RW50
cm9weSksIHsgfSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0gfSwgV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OklzUnVubmluZ0xheW91dFRlc3Q6Ok5vKTsKIApAQCAtMTY5LDkgKzE1
Miw2IEBAIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWREZXN0aW5hdGlvbkhv
c3QpCiAKIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEF0dHJpYnV0aW9uVHJpZ2dlckRh
dGEpCiB7Ci0gICAgY29uc3QgVVJMIHdlYktpdFVSTCB7ICJodHRwczovL3dlYmtpdC5vcmciX3Mg
fTsKLSAgICBjb25zdCBVUkwgZXhhbXBsZVVSTCB7ICJodHRwczovL2V4YW1wbGUuY29tIl9zIH07
Ci0gICAgY29uc3QgVVJMIGVtcHR5VVJMIHsgfTsKICAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRChzdGQ6Om51
bWVyaWNfbGltaXRzPHVpbnQ4X3Q+OjptYXgoKSksIFBDTTo6U291cmNlU2l0ZSB7IHdlYktpdFVS
TCB9LCBQQ006OkF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlIHsgZXhhbXBsZVVSTCB9LCAidGVz
dC5idW5kbGUuaWRlbnRpZmllciJfcywgV2FsbFRpbWU6Om5vdygpLCBQQ006OkF0dHJpYnV0aW9u
RXBoZW1lcmFsOjpObyB9OwogICAgIGF0dHJpYnV0aW9uLmF0dHJpYnV0ZUFuZEdldEVhcmxpZXN0
VGltZVRvU2VuZChXZWJDb3JlOjpQQ006OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEgeyAoV2ViQ29y
ZTo6UENNOjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhOjpNYXhFbnRyb3B5ICsgMSksIFdlYkNvcmU6
OlBDTTo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YTo6UHJpb3JpdHk6OlByaW9yaXR5VmFsdWUoV2Vi
Q29yZTo6UENNOjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhOjpQcmlvcml0eTo6TWF4RW50cm9weSks
IHsgfSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0gfSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OklzUnVubmluZ0xheW91dFRlc3Q6Ok5vKTsKIApAQCAtMTgxLDkgKzE2MSw2IEBA
IFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpCiAK
IFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRQcmlvcml0eSkKIHsKLSAgICBj
b25zdCBVUkwgd2ViS2l0VVJMIHsgImh0dHBzOi8vd2Via2l0Lm9yZyJfcyB9OwotICAgIGNvbnN0
IFVSTCBleGFtcGxlVVJMIHsgImh0dHBzOi8vZXhhbXBsZS5jb20iX3MgfTsKLSAgICBjb25zdCBV
UkwgZW1wdHlVUkwgeyB9OwogICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9u
IHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEKHN0ZDo6bnVtZXJpY19saW1pdHM8
dWludDhfdD46Om1heCgpKSwgUENNOjpTb3VyY2VTaXRlIHsgd2ViS2l0VVJMIH0sIFBDTTo6QXR0
cmlidXRpb25EZXN0aW5hdGlvblNpdGUgeyBleGFtcGxlVVJMIH0sICJ0ZXN0LmJ1bmRsZS5pZGVu
dGlmaWVyIl9zLCBXYWxsVGltZTo6bm93KCksIFBDTTo6QXR0cmlidXRpb25FcGhlbWVyYWw6Ok5v
IH07CiAgICAgYXR0cmlidXRpb24uYXR0cmlidXRlQW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFdl
YkNvcmU6OlBDTTo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSB7IFdlYkNvcmU6OlBDTTo6QXR0cmli
dXRpb25UcmlnZ2VyRGF0YTo6TWF4RW50cm9weSwgV2ViQ29yZTo6UENNOjpBdHRyaWJ1dGlvblRy
aWdnZXJEYXRhOjpQcmlvcml0eTo6UHJpb3JpdHlWYWx1ZShXZWJDb3JlOjpQQ006OkF0dHJpYnV0
aW9uVHJpZ2dlckRhdGE6OlByaW9yaXR5OjpNYXhFbnRyb3B5ICsgMSksIHsgfSwgeyB9LCB7IH0s
IHsgfSwgeyB9LCB7IH0gfSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OklzUnVu
bmluZ0xheW91dFRlc3Q6Ok5vKTsKIApAQCAtMTkzLDkgKzE3MCw2IEBAIFRFU1QoUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQsIEludmFsaWRQcmlvcml0eSkKIAogVEVTVChQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCwgSW52YWxpZE1pc3NpbmdDb252ZXJzaW9uKQogewotICAgIGNvbnN0IFVSTCB3ZWJL
aXRVUkwgeyAiaHR0cHM6Ly93ZWJraXQub3JnIl9zIH07Ci0gICAgY29uc3QgVVJMIGV4YW1wbGVV
UkwgeyAiaHR0cHM6Ly9leGFtcGxlLmNvbSJfcyB9OwotICAgIGNvbnN0IFVSTCBlbXB0eVVSTCB7
IH07CiAgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6U291cmNlSUQoc3RkOjpudW1lcmljX2xpbWl0czx1aW50OF90Pjo6bWF4
KCkpLCBQQ006OlNvdXJjZVNpdGUgeyB3ZWJLaXRVUkwgfSwgUENNOjpBdHRyaWJ1dGlvbkRlc3Rp
bmF0aW9uU2l0ZSB7IGV4YW1wbGVVUkwgfSwgInRlc3QuYnVuZGxlLmlkZW50aWZpZXIiX3MsIFdh
bGxUaW1lOjpub3coKSwgUENNOjpBdHRyaWJ1dGlvbkVwaGVtZXJhbDo6Tm8gfTsKIAogICAgIEFT
U0VSVF9UUlVFKGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0Q2xpY2tTb3VyY2VVUkwoKS5p
c0VtcHR5KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCmluZGV4IDFjYmRm
NjgzOTRmZS4uMmZiMDExM2Q1YmUzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVs
Lm1tCkBAIC03NiwyMSArNzYsMTcgQEAgc3RhdGljIGJvb2wgd2ViQXV0aGVudGljYXRpb25QYW5l
bFJlcXVlc3ROb0dlc3R1cmUgPSB0cnVlOwogc3RhdGljIF9XS0xvY2FsQXV0aGVudGljYXRvclBv
bGljeSBsb2NhbEF1dGhlbnRpY2F0b3JQb2xpY3kgPSBfV0tMb2NhbEF1dGhlbnRpY2F0b3JQb2xp
Y3lEaXNhbGxvdzsKIHN0YXRpYyBTdHJpbmcgd2ViQXV0aGVudGljYXRpb25QYW5lbFBpbjsKIHN0
YXRpYyBCT09MIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxOdWxsVXNlckhhbmRsZSA9IE5POwotCi1z
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjp1bmlxdWVfcHRyPFN0cmluZz4gPiB3ZWJBdXRoZW50
aWNhdGlvblBhbmVsU2VsZWN0ZWRDcmVkZW50aWFsTmFtZTsKLXN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxzdGQ6OnVuaXF1ZV9wdHI8U3RyaW5nPiA+IHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxTZWxlY3Rl
ZENyZWRlbnRpYWxEaXNwbGF5TmFtZTsKLQotI2RlZmluZSBTVFJJTkdTIFwKLWNvbnN0IFN0cmlu
ZyB0ZXN0RVMyNTZQcml2YXRlS2V5QmFzZTY0ID0gXAotICAgICJCRGovenhTa3pLZ2FCdVMzY2RX
REY1NThvZjhBYUlwZ0Zwc2pGL1FtMTc0OVZCSlBncVVJd2ZoV0hKOTFuYjdVIiBcCi0gICAgIlBI
NzZjMCtXRk96WktzbFB5eUZzZTRnb0dJVzJSN2s5VkhMUEVabDVuZm5CZ0VWRmg1emV2Ky94cEhR
SXZ1cTYiIFwKLSAgICAiUlE9PSJfczsgXAotY29uc3QgU3RyaW5nIHRlc3RFUzI1NlByaXZhdGVL
ZXlCYXNlNjRBbHRlcm5hdGUgPSAiQkJSb2kySmJSMElYVGVKbXZYVXAxWUl1TTRzcGgvTHUzZUdm
NzVGN24rSG9qSEtHNzBhNFIwckIyUFFjZTUvU0psZTZUN09PNUNxZXQvTEpaVk02TlE4eUREeFd2
YXlmNzFHVERwMnlVdHVJYnFKTEZWYnBXeW1sajlXUml6Z1gzQT09Il9zOyBcCi1jb25zdCBTdHJp
bmcgdGVzdFVzZXJFbnRpdHlCdW5kbGVCYXNlNjQgPSAib21KcFpFb0FBUUlEQkFVR0J3Z0paRzVo
YldWa1NtOW9iZz09Il9zOyAvKiB7ICJpZCI6IGgnMDAwMTAyMDMwNDA1MDYwNzA4MDknLCAibmFt
ZSI6ICJKb2huIiB9ICovIFwKLWNvbnN0IFN0cmluZyB0ZXN0VXNlckVudGl0eUJ1bmRsZU5vVXNl
ckhhbmRsZUJhc2U2NCA9ICJvV1J1WVcxbGJFMURJRTV2TFVoaGJtUnNaUT09Il9zOyAvKiB7Im5h
bWUiOiAiTUMgTm8tSGFuZGxlIn0gKi8gXAotY29uc3QgU3RyaW5nIHRlc3RXZWJLaXRBUElBY2Nl
c3NHcm91cCA9ICJjb20uYXBwbGUuVGVzdFdlYktpdEFQSSJfczsgXAotY29uc3QgU3RyaW5nIHRl
c3RXZWJLaXRBUElBbHRlcm5hdGVBY2Nlc3NHcm91cCA9ICJjb20uYXBwbGUuVGVzdFdlYktpdEFQ
SUFsdGVybmF0ZSJfczsKLQorc3RhdGljIFN0cmluZyB0ZXN0RVMyNTZQcml2YXRlS2V5QmFzZTY0
ID0KKyAgICAiQkRqL3p4U2t6S2dhQnVTM2NkV0RGNTU4b2Y4QWFJcGdGcHNqRi9RbTE3NDlWQkpQ
Z3FVSXdmaFdISjkxbmI3VSIKKyAgICAiUEg3NmMwK1dGT3paS3NsUHl5RnNlNGdvR0lXMlI3azlW
SExQRVpsNW5mbkJnRVZGaDV6ZXYrL3hwSFFJdnVxNiIKKyAgICAiUlE9PSJfczsKK3N0YXRpYyBT
dHJpbmcgdGVzdEVTMjU2UHJpdmF0ZUtleUJhc2U2NEFsdGVybmF0ZSA9ICJCQlJvaTJKYlIwSVhU
ZUptdlhVcDFZSXVNNHNwaC9MdTNlR2Y3NUY3bitIb2pIS0c3MGE0UjByQjJQUWNlNS9TSmxlNlQ3
T081Q3FldC9MSlpWTTZOUTh5RER4V3ZheWY3MUdURHAyeVV0dUlicUpMRlZicFd5bWxqOVdSaXpn
WDNBPT0iX3M7CitzdGF0aWMgU3RyaW5nIHRlc3RVc2VyRW50aXR5QnVuZGxlQmFzZTY0ID0gIm9t
SnBaRW9BQVFJREJBVUdCd2dKWkc1aGJXVmtTbTlvYmc9PSJfczsgLy8geyAiaWQiOiBoJzAwMDEw
MjAzMDQwNTA2MDcwODA5JywgIm5hbWUiOiAiSm9obiIgfQorc3RhdGljIFN0cmluZyB0ZXN0VXNl
ckVudGl0eUJ1bmRsZU5vVXNlckhhbmRsZUJhc2U2NCA9ICJvV1J1WVcxbGJFMURJRTV2TFVoaGJt
UnNaUT09Il9zOyAvLyB7Im5hbWUiOiAiTUMgTm8tSGFuZGxlIn0KK3N0YXRpYyBTdHJpbmcgd2Vi
QXV0aGVudGljYXRpb25QYW5lbFNlbGVjdGVkQ3JlZGVudGlhbE5hbWU7CitzdGF0aWMgU3RyaW5n
IHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxTZWxlY3RlZENyZWRlbnRpYWxEaXNwbGF5TmFtZTsKK3N0
YXRpYyBTdHJpbmcgdGVzdFdlYktpdEFQSUFjY2Vzc0dyb3VwID0gImNvbS5hcHBsZS5UZXN0V2Vi
S2l0QVBJIl9zOworc3RhdGljIFN0cmluZyB0ZXN0V2ViS2l0QVBJQWx0ZXJuYXRlQWNjZXNzR3Jv
dXAgPSAiY29tLmFwcGxlLlRlc3RXZWJLaXRBUElBbHRlcm5hdGUiX3M7CiBzdGF0aWMgYm9vbCBs
YUNvbnRleHRSZXF1ZXN0ZWQgPSBmYWxzZTsKIAogQGludGVyZmFjZSBUZXN0V2ViQXV0aGVudGlj
YXRpb25QYW5lbERlbGVnYXRlIDogTlNPYmplY3QgPF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxE
ZWxlZ2F0ZT4KQEAgLTE2Myw3ICsxNTksNiBAQCAtICh2b2lkKXBhbmVsOihfV0tXZWJBdXRoZW50
aWNhdGlvblBhbmVsICopcGFuZWwgcmVxdWVzdFBJTldpdGhSZW1haW5pbmdSZXRyaWVzOgogCiAt
ICh2b2lkKXBhbmVsOihfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsICopcGFuZWwgc2VsZWN0QXNz
ZXJ0aW9uUmVzcG9uc2U6KE5TQXJyYXkgPCBfV0tXZWJBdXRoZW50aWNhdGlvbkFzc2VydGlvblJl
c3BvbnNlICo+ICopcmVzcG9uc2VzIHNvdXJjZTooX1dLV2ViQXV0aGVudGljYXRpb25Tb3VyY2Up
c291cmNlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShfV0tXZWJBdXRoZW50aWNhdGlvbkFz
c2VydGlvblJlc3BvbnNlICopKWNvbXBsZXRpb25IYW5kbGVyCiB7Ci0gICAgU1RSSU5HUzsKICAg
ICBpZiAocmVzcG9uc2VzLmNvdW50ID09IDEpIHsKICAgICAgICAgYXV0byBsYUNvbnRleHQgPSBh
ZG9wdE5TKFtbTEFDb250ZXh0IGFsbG9jXSBpbml0XSk7CiAgICAgICAgIFtyZXNwb25zZXMuZmly
c3RPYmplY3Qgc2V0TEFDb250ZXh0OmxhQ29udGV4dC5nZXQoKV07CkBAIC0xODAsOCArMTc1LDgg
QEAgLSAodm9pZClwYW5lbDooX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqKXBhbmVsIHNlbGVj
dEFzc2VydGlvblJlc3BvbnNlOihOU0FycmEKICAgICAgICAgYXV0byBsYUNvbnRleHQgPSBhZG9w
dE5TKFtbTEFDb250ZXh0IGFsbG9jXSBpbml0XSk7CiAgICAgICAgIFtvYmplY3Qgc2V0TEFDb250
ZXh0OmxhQ29udGV4dC5nZXQoKV07CiAKLSAgICAgICAgd2ViQXV0aGVudGljYXRpb25QYW5lbFNl
bGVjdGVkQ3JlZGVudGlhbE5hbWUuZ2V0KCkgPSBXVEY6Om1ha2VVbmlxdWU8U3RyaW5nPihvYmpl
Y3QubmFtZSk7Ci0gICAgICAgIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxTZWxlY3RlZENyZWRlbnRp
YWxEaXNwbGF5TmFtZS5nZXQoKSA9IFdURjo6bWFrZVVuaXF1ZTxTdHJpbmc+KG9iamVjdC5kaXNw
bGF5TmFtZSk7CisgICAgICAgIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxTZWxlY3RlZENyZWRlbnRp
YWxOYW1lID0gb2JqZWN0Lm5hbWU7CisgICAgICAgIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxTZWxl
Y3RlZENyZWRlbnRpYWxEaXNwbGF5TmFtZSA9IG9iamVjdC5kaXNwbGF5TmFtZTsKICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIob2JqZWN0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTIw
MiwxMyArMTk3LDExIEBAIC0gKHZvaWQpcGFuZWw6KF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwg
KilwYW5lbCBzZWxlY3RBc3NlcnRpb25SZXNwb25zZTooTlNBcnJhCiAKIC0gKHZvaWQpcGFuZWw6
KF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgKilwYW5lbCBkZWNpZGVQb2xpY3lGb3JMb2NhbEF1
dGhlbnRpY2F0b3JXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKF9XS0xvY2FsQXV0aGVu
dGljYXRvclBvbGljeSBwb2xpY3kpKWNvbXBsZXRpb25IYW5kbGVyCiB7Ci0gICAgU1RSSU5HUzsK
ICAgICBjb21wbGV0aW9uSGFuZGxlcihsb2NhbEF1dGhlbnRpY2F0b3JQb2xpY3kpOwogfQogCiAt
ICh2b2lkKXBhbmVsOihfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsICopcGFuZWwgcmVxdWVzdExB
Q29udGV4dEZvclVzZXJWZXJpZmljYXRpb25XaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4p
KExBQ29udGV4dCAqY29udGV4dCkpY29tcGxldGlvbkhhbmRsZXIKIHsKLSAgICBTVFJJTkdTOwog
ICAgIGxhQ29udGV4dFJlcXVlc3RlZCA9IHRydWU7CiAgICAgY29tcGxldGlvbkhhbmRsZXIobmls
KTsKIH0KQEAgLTMyOSw3ICszMjIsNyBAQCBzdGF0aWMgdm9pZCByZXNldCgpCiAgICAgd2ViQXV0
aGVudGljYXRpb25QYW5lbFBpbiA9IGVtcHR5U3RyaW5nKCk7CiAgICAgd2ViQXV0aGVudGljYXRp
b25QYW5lbE51bGxVc2VySGFuZGxlID0gTk87CiAgICAgbG9jYWxBdXRoZW50aWNhdG9yUG9saWN5
ID0gX1dLTG9jYWxBdXRoZW50aWNhdG9yUG9saWN5RGlzYWxsb3c7Ci0gICAgd2ViQXV0aGVudGlj
YXRpb25QYW5lbFNlbGVjdGVkQ3JlZGVudGlhbE5hbWUuZ2V0KCkgPSBXVEY6Om1ha2VVbmlxdWU8
U3RyaW5nPigpOworICAgIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxTZWxlY3RlZENyZWRlbnRpYWxO
YW1lID0gZW1wdHlTdHJpbmcoKTsKICAgICBsYUNvbnRleHRSZXF1ZXN0ZWQgPSBmYWxzZTsKIH0K
IApAQCAtMzYyLDcgKzM1NSw2IEBAIHN0YXRpYyB2b2lkIGNoZWNrRnJhbWVJbmZvKFdLRnJhbWVJ
bmZvICpmcmFtZSwgYm9vbCBpc01haW5GcmFtZSwgTlNTdHJpbmcgKnVybCwKIAogYm9vbCBhZGRL
ZXlUb0tleWNoYWluKGNvbnN0IFN0cmluZyYgcHJpdmF0ZUtleUJhc2U2NCwgY29uc3QgU3RyaW5n
JiBycElkLCBjb25zdCBTdHJpbmcmIHVzZXJIYW5kbGVCYXNlNjQsIGJvb2wgc3luY2hyb25pemFi
bGUgPSBmYWxzZSkKIHsKLSAgICBTVFJJTkdTOwogICAgIE5TRGljdGlvbmFyeSogb3B0aW9ucyA9
IEB7CiAgICAgICAgIChpZClrU2VjQXR0cktleVR5cGU6IChpZClrU2VjQXR0cktleVR5cGVFQ1NF
Q1ByaW1lUmFuZG9tLAogICAgICAgICAoaWQpa1NlY0F0dHJLZXlDbGFzczogKGlkKWtTZWNBdHRy
S2V5Q2xhc3NQcml2YXRlLApAQCAtNDE2LDcgKzQwOCw2IEBAIHZvaWQgY2xlYW5VcEtleWNoYWlu
KGNvbnN0IFN0cmluZyYgcnBJZCkKICNpZiBIQVZFKE5FQVJfRklFTEQpCiBURVNUKFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWwsIE5vUGFuZWxOZmNTdWNjZWVkKQogewotICAgIFNUUklOR1M7CiAgICAg
UmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JS
ZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYyIgd2l0aEV4dGVu
c2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAK
ICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3Rf
Y29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldp
dGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKQEAgLTQzMSw3ICs0MjIs
NiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE5vUGFuZWxOZmNTdWNjZWVkKQogCiBU
RVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE5vUGFuZWxIaWRTdWNjZXNzKQogewotICAgIFNU
UklOR1M7CiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVu
ZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhp
ZCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVz
b3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJv
Y2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKQEAg
LTQ0NSw3ICs0MzUsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE5vUGFuZWxIaWRT
dWNjZXNzKQogCiBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsSGlkU3VjY2VzczEp
CiB7Ci0gICAgU1RSSU5HUzsKICAgICByZXNldCgpOwogICAgIFJldGFpblB0cjxOU1VSTD4gdGVz
dFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVu
dGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJl
Y3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCkBAIC00NjcsNyArNDU2LDYgQEAg
VEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbEhpZFN1Y2Nlc3MxKQogCiBURVNUKFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsSGlkU3VjY2VzczIpCiB7Ci0gICAgU1RSSU5HUzsK
ICAgICByZXNldCgpOwogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUg
bWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVk
ZW50aWFsLWhpZCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJL
aXRBUEkucmVzb3VyY2VzIl07CiAKQEAgLTQ5NCw3ICs0ODIsNiBAQCBURVNUKFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwsIFBhbmVsSGlkU3VjY2VzczIpCiAvLyBUaGUgc2Vjb25kIGNhbGxiYWNrIHdp
bGwgcmV0dXJuIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHRQcmVzZW50ZWQgd2hpY2gg
bGVhZHMgdG8gc3VjY2Vzcy4KIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxSYWN5
MSkKIHsKLSAgICBTVFJJTkdTOwogICAgIHJlc2V0KCk7CiAgICAgUmV0YWluUHRyPE5TVVJMPiB0
ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRo
ZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRp
cmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKQEAgLTUxOCw3ICs1MDUsNiBA
QCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsUmFjeTEpCiAvLyBVbmxpa2UgdGhl
IHByZXZpb3VzIG9uZSwgdGhpcyBvbmUgZm9jdXNlcyBvbiB0aGUgb3JkZXIgb2YgdGhlIGRlbGVn
YXRlIGNhbGxiYWNrcy4KIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxSYWN5MikK
IHsKLSAgICBTVFJJTkdTOwogICAgIHJlc2V0KCk7CiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0
VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50
aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKQEAgLTU0Miw3ICs1MjgsNiBAQCBU
RVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsUmFjeTIpCiAKIFRFU1QoV2ViQXV0aGVu
dGljYXRpb25QYW5lbCwgUGFuZWxUd2ljZSkKIHsKLSAgICBTVFJJTkdTOwogICAgIHJlc2V0KCk7
CiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBV
UkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZCIgd2l0
aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il07CiAKQEAgLTU2NSw3ICs1NTAsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBh
bmVsVHdpY2UpCiAKIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUmVsb2FkSGlkQ2FuY2Vs
KQogewotICAgIFNUUklOR1M7CiAgICAgcmVzZXQoKTsKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRl
c3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhl
bnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWNhbmNlbCIgd2l0aEV4dGVuc2lvbjpAImh0bWwi
IHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKQEAgLTU4NCw3ICs1
NjgsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFJlbG9hZEhpZENhbmNlbCkKIAog
VEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMb2NhdGlvbkNoYW5nZUhpZENhbmNlbCkKIHsK
LSAgICBTVFJJTkdTOwogICAgIHJlc2V0KCk7CiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJM
ID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNh
dGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1jYW5jZWwiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJk
aXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogICAgIFJldGFpblB0cjxOU1VS
TD4gb3RoZXJVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2lt
cGxlIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5y
ZXNvdXJjZXMiXTsKQEAgLTYwNCw3ICs1ODcsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwsIExvY2F0aW9uQ2hhbmdlSGlkQ2FuY2VsKQogCiBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwsIE5ld0xvYWRIaWRDYW5jZWwpCiB7Ci0gICAgU1RSSU5HUzsKICAgICByZXNldCgpOwogICAg
IFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9y
UmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtY2FuY2VsIiB3
aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJj
ZXMiXTsKICAgICBSZXRhaW5QdHI8TlNVUkw+IG90aGVyVVJMID0gW1tOU0J1bmRsZSBtYWluQnVu
ZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRp
cmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CkBAIC02MjQsNyArNjA2LDYgQEAg
VEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBOZXdMb2FkSGlkQ2FuY2VsKQogCiBURVNUKFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWwsIENsb3NlSGlkQ2FuY2VsKQogewotICAgIFNUUklOR1M7CiAg
ICAgcmVzZXQoKTsKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1h
aW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRp
b24taGlkLWNhbmNlbCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RX
ZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKQEAgLTY0Myw3ICs2MjQsNiBAQCBURVNUKFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWwsIENsb3NlSGlkQ2FuY2VsKQogCiBURVNUKFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWwsIFN1YkZyYW1lQ2hhbmdlTG9jYXRpb25IaWRDYW5jZWwpCiB7Ci0gICAgU1RSSU5HUzsK
ICAgICBIVFRQU2VydmVyIHNlcnZlcihbcGFyZW50RnJhbWUgPSBTdHJpbmcocGFyZW50RnJhbWUp
LCBzdWJGcmFtZSA9IFN0cmluZyhzdWJGcmFtZSldIChjb25zdCBDb25uZWN0aW9uJiBjb25uZWN0
aW9uKSB7CiAgICAgICAgIFJldGFpblB0cjxOU1N0cmluZz4gZmlyc3RSZXNwb25zZSA9IFtOU1N0
cmluZyBzdHJpbmdXaXRoRm9ybWF0OgogICAgICAgICAgICAgQCJIVFRQLzEuMSAyMDAgT0tcclxu
IgpAQCAtNjg5LDcgKzY2OSw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgU3ViRnJh
bWVDaGFuZ2VMb2NhdGlvbkhpZENhbmNlbCkKIAogVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVs
LCBTdWJGcmFtZURlc3RydWN0aW9uSGlkQ2FuY2VsKQogewotICAgIFNUUklOR1M7CiAgICAgSFRU
UFNlcnZlciBzZXJ2ZXIoW3BhcmVudEZyYW1lID0gU3RyaW5nKHBhcmVudEZyYW1lKSwgc3ViRnJh
bWUgPSBTdHJpbmcoc3ViRnJhbWUpXSAoY29uc3QgQ29ubmVjdGlvbiYgY29ubmVjdGlvbikgewog
ICAgICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IGZpcnN0UmVzcG9uc2UgPSBbTlNTdHJpbmcgc3Ry
aW5nV2l0aEZvcm1hdDoKICAgICAgICAgICAgIEAiSFRUUC8xLjEgMjAwIE9LXHJcbiIKQEAgLTcz
MCw3ICs3MDksNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFN1YkZyYW1lRGVzdHJ1
Y3Rpb25IaWRDYW5jZWwpCiAKIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxIaWRD
YW5jZWwpCiB7Ci0gICAgU1RSSU5HUzsKICAgICByZXNldCgpOwogICAgIFJldGFpblB0cjxOU1VS
TD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtY2FuY2VsIiB3aXRoRXh0ZW5zaW9uOkAi
aHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIApAQCAtNzU0
LDcgKzczMiw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxIaWRDYW5jZWwp
CiAKIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxIaWRDdGFwTm9DcmVkZW50aWFs
c0ZvdW5kKQogewotICAgIFNUUklOR1M7CiAgICAgcmVzZXQoKTsKICAgICBSZXRhaW5QdHI8TlNV
Ukw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2Vi
LWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLW5vLWNyZWRlbnRpYWxzIiB3aXRoRXh0
ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsK
IApAQCAtNzcyLDcgKzc0OSw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxI
aWRDdGFwTm9DcmVkZW50aWFsc0ZvdW5kKQogCiBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWws
IFBhbmVsVTJmQ3RhcE5vQ3JlZGVudGlhbHNGb3VuZCkKIHsKLSAgICBTVFJJTkdTOwogICAgIHJl
c2V0KCk7CiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVu
ZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLXUy
Zi1uby1jcmVkZW50aWFscyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRl
c3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKQEAgLTc5MCw3ICs3NjYsNiBAQCBURVNUKFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsVTJmQ3RhcE5vQ3JlZGVudGlhbHNGb3VuZCkKIAogVEVT
VChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBGYWtlUGFuZWxIaWRTdWNjZXNzKQogewotICAgIFNU
UklOR1M7CiAgICAgcmVzZXQoKTsKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdl
dC1hc3NlcnRpb24taGlkIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVz
dFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIApAQCAtODA5LDcgKzc4NCw2IEBAIFRFU1QoV2ViQXV0
aGVudGljYXRpb25QYW5lbCwgRmFrZVBhbmVsSGlkU3VjY2VzcykKIAogVEVTVChXZWJBdXRoZW50
aWNhdGlvblBhbmVsLCBGYWtlUGFuZWxIaWRDdGFwTm9DcmVkZW50aWFsc0ZvdW5kKQogewotICAg
IFNUUklOR1M7CiAgICAgcmVzZXQoKTsKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBb
W05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9u
LWdldC1hc3NlcnRpb24taGlkLW5vLWNyZWRlbnRpYWxzIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIg
c3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIApAQCAtODI4LDcgKzgw
Miw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgRmFrZVBhbmVsSGlkQ3RhcE5vQ3Jl
ZGVudGlhbHNGb3VuZCkKIAogVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBOdWxsUGFuZWxI
aWRTdWNjZXNzKQogewotICAgIFNUUklOR1M7CiAgICAgcmVzZXQoKTsKICAgICBSZXRhaW5QdHI8
TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAi
d2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkIiB3aXRoRXh0ZW5zaW9uOkAiaHRt
bCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIApAQCAtODQ3LDcg
KzgyMCw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTnVsbFBhbmVsSGlkU3VjY2Vz
cykKIAogVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBOdWxsUGFuZWxIaWRDdGFwTm9DcmVk
ZW50aWFsc0ZvdW5kKQogewotICAgIFNUUklOR1M7CiAgICAgcmVzZXQoKTsKICAgICBSZXRhaW5Q
dHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNl
OkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLW5vLWNyZWRlbnRpYWxzIiB3
aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJj
ZXMiXTsKIApAQCAtODY3LDcgKzgzOSw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwg
TnVsbFBhbmVsSGlkQ3RhcE5vQ3JlZGVudGlhbHNGb3VuZCkKICNpZiBIQVZFKE5FQVJfRklFTEQp
CiBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsTXVsdGlwbGVORkNUYWdzUHJlc2Vu
dCkKIHsKLSAgICBTVFJJTkdTOwogICAgIHJlc2V0KCk7CiAgICAgUmV0YWluUHRyPE5TVVJMPiB0
ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRo
ZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYy1tdWx0aXBsZS10YWdzIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIApAQCAt
ODg2LDcgKzg1Nyw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxNdWx0aXBs
ZU5GQ1RhZ3NQcmVzZW50KQogCiBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsSGlk
Q2FuY2VsUmVsb2FkTm9DcmFzaCkKIHsKLSAgICBTVFJJTkdTOwogICAgIHJlc2V0KCk7CiAgICAg
UmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JS
ZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1jYW5jZWwiIHdp
dGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNl
cyJdOwogCkBAIC05MDYsNyArODc2LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQ
YW5lbEhpZENhbmNlbFJlbG9hZE5vQ3Jhc2gpCiAKIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5l
bCwgUGFuZWxIaWRTdWNjZXNzQ2FuY2VsTm9DcmFzaCkKIHsKLSAgICBTVFJJTkdTOwogICAgIHJl
c2V0KCk7CiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVu
ZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhp
ZCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVz
b3VyY2VzIl07CiAKQEAgLTkyNCw3ICs4OTMsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwsIFBhbmVsSGlkU3VjY2Vzc0NhbmNlbE5vQ3Jhc2gpCiAKIFRFU1QoV2ViQXV0aGVudGljYXRp
b25QYW5lbCwgUGFuZWxIaWRDdGFwTm9DcmVkZW50aWFsc0ZvdW5kQ2FuY2VsTm9DcmFzaCkKIHsK
LSAgICBTVFJJTkdTOwogICAgIHJlc2V0KCk7CiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJM
ID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNh
dGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscyIgd2l0aEV4dGVuc2lvbjpAImh0
bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKQEAgLTk0Miw3
ICs5MTAsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsSGlkQ3RhcE5vQ3Jl
ZGVudGlhbHNGb3VuZENhbmNlbE5vQ3Jhc2gpCiAKIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5l
bCwgUGluR2V0UmV0cmllc0Vycm9yKQogewotICAgIFNUUklOR1M7CiAgICAgcmVzZXQoKTsKICAg
ICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZv
clJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdl
dC1yZXRyaWVzLWVycm9yIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVz
dFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIApAQCAtOTU2LDcgKzkyMyw2IEBAIFRFU1QoV2ViQXV0
aGVudGljYXRpb25QYW5lbCwgUGluR2V0UmV0cmllc0Vycm9yKQogCiBURVNUKFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwsIFBpbkdldEtleUFncmVlbWVudEVycm9yKQogewotICAgIFNUUklOR1M7CiAg
ICAgcmVzZXQoKTsKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1h
aW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVu
dGlhbC1oaWQtcGluLWdldC1rZXktYWdyZWVtZW50LWVycm9yIiB3aXRoRXh0ZW5zaW9uOkAiaHRt
bCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIApAQCAtOTcwLDcg
KzkzNiw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGluR2V0S2V5QWdyZWVtZW50
RXJyb3IpCiAKIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGluUmVxdWVzdFBpbkVycm9y
Tm9EZWxlZ2F0ZSkKIHsKLSAgICBTVFJJTkdTOwogICAgIHJlc2V0KCk7CiAgICAgUmV0YWluUHRy
PE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpA
IndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbiIgd2l0aEV4dGVuc2lv
bjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKQEAg
LTk4NCw3ICs5NDksNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpblJlcXVlc3RQ
aW5FcnJvck5vRGVsZWdhdGUpCiAKIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGluUmVx
dWVzdFBpbkVycm9yTnVsbERlbGVnYXRlKQogewotICAgIFNUUklOR1M7CiAgICAgcmVzZXQoKTsK
ICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGlu
IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNv
dXJjZXMiXTsKIApAQCAtMTAwMiw3ICs5NjYsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwsIFBpblJlcXVlc3RQaW5FcnJvck51bGxEZWxlZ2F0ZSkKIAogVEVTVChXZWJBdXRoZW50aWNh
dGlvblBhbmVsLCBQaW5SZXF1ZXN0UGluRXJyb3IpCiB7Ci0gICAgU1RSSU5HUzsKICAgICByZXNl
dCgpOwogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRs
ZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhp
ZC1waW4tZ2V0LXBpbi10b2tlbi1mYWtlLXBpbi1pbnZhbGlkLWVycm9yLXJldHJ5IiB3aXRoRXh0
ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsK
IApAQCAtMTAyMiw3ICs5ODUsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpblJl
cXVlc3RQaW5FcnJvcikKIAogVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5HZXRQaW5U
b2tlblBpbkJsb2NrZWRFcnJvcikKIHsKLSAgICBTVFJJTkdTOwogICAgIHJlc2V0KCk7CiAgICAg
UmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JS
ZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQt
cGluLXRva2VuLXBpbi1ibG9ja2VkLWVycm9yIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIApAQCAtMTA0Miw3ICsxMDA0LDYg
QEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5HZXRQaW5Ub2tlblBpbkJsb2NrZWRF
cnJvcikKIAogVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5HZXRQaW5Ub2tlblBpbkF1
dGhCbG9ja2VkRXJyb3IpCiB7Ci0gICAgU1RSSU5HUzsKICAgICByZXNldCgpOwogICAgIFJldGFp
blB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3Vy
Y2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10
b2tlbi1waW4tYXV0aC1ibG9ja2VkLWVycm9yIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIApAQCAtMTA2Miw3ICsxMDIzLDYg
QEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5HZXRQaW5Ub2tlblBpbkF1dGhCbG9j
a2VkRXJyb3IpCiAKIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGluR2V0UGluVG9rZW5Q
aW5JbnZhbGlkRXJyb3JBbmRSZXRyeSkKIHsKLSAgICBTVFJJTkdTOwogICAgIHJlc2V0KCk7CiAg
ICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxG
b3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1n
ZXQtcGluLXRva2VuLXBpbi1pbnZhbGlkLWVycm9yLXJldHJ5IiB3aXRoRXh0ZW5zaW9uOkAiaHRt
bCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIApAQCAtMTA4MSw3
ICsxMDQxLDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5HZXRQaW5Ub2tlblBp
bkludmFsaWRFcnJvckFuZFJldHJ5KQogCiBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBp
bkdldFBpblRva2VuUGluQXV0aEludmFsaWRFcnJvckFuZFJldHJ5KQogewotICAgIFNUUklOR1M7
CiAgICAgcmVzZXQoKTsKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxl
IG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3Jl
ZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tcGluLWF1dGgtaW52YWxpZC1lcnJvci1yZXRy
eSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVz
b3VyY2VzIl07CiAKQEAgLTExMDAsNyArMTA1OSw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25Q
YW5lbCwgUGluR2V0UGluVG9rZW5QaW5BdXRoSW52YWxpZEVycm9yQW5kUmV0cnkpCiAKIFRFU1Qo
V2ViQXV0aGVudGljYXRpb25QYW5lbCwgTWFrZUNyZWRlbnRpYWxJbnRlcm5hbFVWKQogewotICAg
IFNUUklOR1M7CiAgICAgcmVzZXQoKTsKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBb
W05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9u
LW1ha2UtY3JlZGVudGlhbC1oaWQtaW50ZXJuYWwtdXYiIHdpdGhFeHRlbnNpb246QCJodG1sIiBz
dWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCkBAIC0xMTE3LDcgKzEw
NzUsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE1ha2VDcmVkZW50aWFsSW50ZXJu
YWxVVikKIAogVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBNYWtlQ3JlZGVudGlhbFBpbikK
IHsKLSAgICBTVFJJTkdTOwogICAgIHJlc2V0KCk7CiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0
VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50
aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbiIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKQEAgLTExMzUsNyArMTA5
Miw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTWFrZUNyZWRlbnRpYWxQaW4pCiAK
IFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTWFrZUNyZWRlbnRpYWxQaW5BdXRoQmxvY2tl
ZEVycm9yKQogewotICAgIFNUUklOR1M7CiAgICAgcmVzZXQoKTsKICAgICBSZXRhaW5QdHI8TlNV
Ukw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2Vi
LWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWF1dGgtYmxvY2tlZC1lcnJv
ciIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVz
b3VyY2VzIl07CiAKQEAgLTExNTUsNyArMTExMSw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25Q
YW5lbCwgTWFrZUNyZWRlbnRpYWxQaW5BdXRoQmxvY2tlZEVycm9yKQogCiBURVNUKFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWwsIE1ha2VDcmVkZW50aWFsUGluSW52YWxpZEVycm9yQW5kUmV0cnkpCiB7
Ci0gICAgU1RSSU5HUzsKICAgICByZXNldCgpOwogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVS
TCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGlj
YXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4taW52YWxpZC1lcnJvci1yZXRyeSIgd2l0aEV4
dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07
CiAKQEAgLTExNzQsNyArMTEyOSw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTWFr
ZUNyZWRlbnRpYWxQaW5JbnZhbGlkRXJyb3JBbmRSZXRyeSkKIAogVEVTVChXZWJBdXRoZW50aWNh
dGlvblBhbmVsLCBHZXRBc3NlcnRpb25QaW4pCiB7Ci0gICAgU1RSSU5HUzsKICAgICByZXNldCgp
OwogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
VVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtcGlu
IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNv
dXJjZXMiXTsKIApAQCAtMTE5Miw3ICsxMTQ2LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBh
bmVsLCBHZXRBc3NlcnRpb25QaW4pCiAKIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgR2V0
QXNzZXJ0aW9uSW50ZXJuYWxVVikKIHsKLSAgICBTVFJJTkdTOwogICAgIHJlc2V0KCk7CiAgICAg
UmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JS
ZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1pbnRlcm5hbC11
diIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVz
b3VyY2VzIl07CiAKQEAgLTEyMDksNyArMTE2Miw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25Q
YW5lbCwgR2V0QXNzZXJ0aW9uSW50ZXJuYWxVVikKIAogVEVTVChXZWJBdXRoZW50aWNhdGlvblBh
bmVsLCBHZXRBc3NlcnRpb25JbnRlcm5hbFVWUGluRmFsbGJhY2spCiB7Ci0gICAgU1RSSU5HUzsK
ICAgICByZXNldCgpOwogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUg
bWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2Vy
dGlvbi1oaWQtaW50ZXJuYWwtdXYtcGluLWZhbGxiYWNrIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIg
c3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIApAQCAtMTIyNyw3ICsx
MTc5LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBHZXRBc3NlcnRpb25JbnRlcm5h
bFVWUGluRmFsbGJhY2spCiAKIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgR2V0QXNzZXJ0
aW9uUGluQXV0aEJsb2NrZWRFcnJvcikKIHsKLSAgICBTVFJJTkdTOwogICAgIHJlc2V0KCk7CiAg
ICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxG
b3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1waW4tYXV0
aC1ibG9ja2VkLWVycm9yIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVz
dFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIApAQCAtMTI0Nyw3ICsxMTk4LDYgQEAgVEVTVChXZWJB
dXRoZW50aWNhdGlvblBhbmVsLCBHZXRBc3NlcnRpb25QaW5BdXRoQmxvY2tlZEVycm9yKQogCiBU
RVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEdldEFzc2VydGlvblBpbkludmFsaWRFcnJvckFu
ZFJldHJ5KQogewotICAgIFNUUklOR1M7CiAgICAgcmVzZXQoKTsKICAgICBSZXRhaW5QdHI8TlNV
Ukw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2Vi
LWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLXBpbi1pbnZhbGlkLWVycm9yLXJldHJ5
IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNv
dXJjZXMiXTsKIApAQCAtMTI2Nyw3ICsxMjE3LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBh
bmVsLCBHZXRBc3NlcnRpb25QaW5JbnZhbGlkRXJyb3JBbmRSZXRyeSkKICNpZiBIQVZFKE5FQVJf
RklFTEQpCiBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE5mY1BpbkNhY2hlZERpc2Nvbm5l
Y3QpCiB7Ci0gICAgU1RSSU5HUzsKICAgICByZXNldCgpOwogICAgIFJldGFpblB0cjxOU1VSTD4g
dGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0
aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMtcGluLWRpc2Nvbm5lY3QiIHdpdGhFeHRlbnNp
b246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCkBA
IC0xMjg2LDcgKzEyMzUsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE5mY1BpbkNh
Y2hlZERpc2Nvbm5lY3QpCiAKIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTXVsdGlwbGVB
Y2NvdW50c051bGxEZWxlZ2F0ZSkKIHsKLSAgICBTVFJJTkdTOwogICAgIHJlc2V0KCk7CiAgICAg
UmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JS
ZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1tdWx0aXBsZS1h
Y2NvdW50cyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRB
UEkucmVzb3VyY2VzIl07CiAKQEAgLTEzMDQsNyArMTI1Miw2IEBAIFRFU1QoV2ViQXV0aGVudGlj
YXRpb25QYW5lbCwgTXVsdGlwbGVBY2NvdW50c051bGxEZWxlZ2F0ZSkKIAogVEVTVChXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLCBNdWx0aXBsZUFjY291bnRzKQogewotICAgIFNUUklOR1M7CiAgICAg
cmVzZXQoKTsKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5C
dW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24t
aGlkLW11bHRpcGxlLWFjY291bnRzIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5
OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIApAQCAtMTMyNiw3ICsxMjczLDYgQEAgVEVT
VChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBNdWx0aXBsZUFjY291bnRzKQogCiBURVNUKFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwsIExBRXJyb3IpCiB7Ci0gICAgU1RSSU5HUzsKICAgICByZXNldCgp
OwogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
VVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhLWVy
cm9yIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5y
ZXNvdXJjZXMiXTsKIApAQCAtMTM0Myw3ICsxMjg5LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlv
blBhbmVsLCBMQUVycm9yKQogCiBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBRHVwbGlj
YXRlQ3JlZGVudGlhbCkKIHsKLSAgICBTVFJJTkdTOwogICAgIHJlc2V0KCk7CiAgICAgUmV0YWlu
UHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJj
ZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEtZHVwbGljYXRlLWNyZWRl
bnRpYWwiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJ
LnJlc291cmNlcyJdOwogCkBAIC0xMzYyLDcgKzEzMDcsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWwsIExBRHVwbGljYXRlQ3JlZGVudGlhbCkKIAogVEVTVChXZWJBdXRoZW50aWNhdGlv
blBhbmVsLCBMQUR1cGxpY2F0ZUNyZWRlbnRpYWxXaXRoQ29uc2VudCkKIHsKLSAgICBTVFJJTkdT
OwogICAgIHJlc2V0KCk7CiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNy
ZWRlbnRpYWwtbGEtZHVwbGljYXRlLWNyZWRlbnRpYWwiIHdpdGhFeHRlbnNpb246QCJodG1sIiBz
dWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCkBAIC0xMzg0LDcgKzEz
MjgsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBRHVwbGljYXRlQ3JlZGVudGlh
bFdpdGhDb25zZW50KQogCiBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBTm9DcmVkZW50
aWFsKQogewotICAgIFNUUklOR1M7CiAgICAgcmVzZXQoKTsKICAgICAvLyBJbiBjYXNlIHRoaXMg
d2Fzbid0IGNsZWFuZWQgdXAgYnkgYW5vdGhlciB0ZXN0LgogICAgIGNsZWFuVXBLZXljaGFpbihl
bXB0eVN0cmluZygpKTsKQEAgLTE0MDQsNyArMTM0Nyw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRp
b25QYW5lbCwgTEFOb0NyZWRlbnRpYWwpCiAKIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwg
TEFNYWtlQ3JlZGVudGlhbEFsbG93TG9jYWxBdXRoZW50aWNhdG9yKQogewotICAgIFNUUklOR1M7
CiAgICAgcmVzZXQoKTsKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxl
IG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3Jl
ZGVudGlhbC1sYSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJL
aXRBUEkucmVzb3VyY2VzIl07CiAKQEAgLTE0MjQsNyArMTM2Niw2IEBAIFRFU1QoV2ViQXV0aGVu
dGljYXRpb25QYW5lbCwgTEFNYWtlQ3JlZGVudGlhbEFsbG93TG9jYWxBdXRoZW50aWNhdG9yKQog
CiBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBTWFrZUNyZWRlbnRpYWxOb01vY2tOb1Vz
ZXJHZXN0dXJlKQogewotICAgIFNUUklOR1M7CiAgICAgcmVzZXQoKTsKICAgICB3ZWJBdXRoZW50
aWNhdGlvblBhbmVsUmVxdWVzdE5vR2VzdHVyZSA9IGZhbHNlOwogICAgIFJldGFpblB0cjxOU1VS
TD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWIt
YXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhLW5vLW1vY2siIHdpdGhFeHRlbnNpb246
QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwpAQCAtMTQ0
NCw3ICsxMzg1LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQU1ha2VDcmVkZW50
aWFsTm9Nb2NrTm9Vc2VyR2VzdHVyZSkKIAogVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBM
QUdldEFzc2VydGlvbikKIHsKLSAgICBTVFJJTkdTOwogICAgIHJlc2V0KCk7CiAgICAgUmV0YWlu
UHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJj
ZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWxhIiB3aXRoRXh0ZW5zaW9uOkAi
aHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIApAQCAtMTQ2
NCw3ICsxNDA0LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQUdldEFzc2VydGlv
bikKIAogVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQUdldEFzc2VydGlvbk11bHRpcGxl
Q3JlZGVudGlhbFN0b3JlKQogewotICAgIFNUUklOR1M7CiAgICAgcmVzZXQoKTsKICAgICBSZXRh
aW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291
cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbGEiIHdpdGhFeHRlbnNpb246
QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCkBAIC0x
NDgwLDEyICsxNDE5LDEyIEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTEFHZXRBc3Nl
cnRpb25NdWx0aXBsZUNyZWRlbnRpYWxTdG9yZSkKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOwogICAgIFt3ZWJW
aWV3IHdhaXRGb3JNZXNzYWdlOkAiU3VjY2VlZGVkISJdOwotICAgIEVYUEVDVF9XS19TVFJFUSgq
d2ViQXV0aGVudGljYXRpb25QYW5lbFNlbGVjdGVkQ3JlZGVudGlhbE5hbWUuZ2V0KCksICJKb2hu
Iik7CisgICAgRVhQRUNUX1dLX1NUUkVRKHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxTZWxlY3RlZENy
ZWRlbnRpYWxOYW1lLCAiSm9obiIpOwogCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJM
UmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07CiAgICAgW3dlYlZpZXcgd2Fp
dEZvck1lc3NhZ2U6QCJTdWNjZWVkZWQhIl07Ci0gICAgRVhQRUNUX1dLX1NUUkVRKCp3ZWJBdXRo
ZW50aWNhdGlvblBhbmVsU2VsZWN0ZWRDcmVkZW50aWFsTmFtZS5nZXQoKSwgIkphbmUiKTsKLSAg
ICBFWFBFQ1RfV0tfU1RSRVEoKndlYkF1dGhlbnRpY2F0aW9uUGFuZWxTZWxlY3RlZENyZWRlbnRp
YWxEaXNwbGF5TmFtZS5nZXQoKSwgIkphbmUgU21pdGgiKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEo
d2ViQXV0aGVudGljYXRpb25QYW5lbFNlbGVjdGVkQ3JlZGVudGlhbE5hbWUsICJKYW5lIik7Cisg
ICAgRVhQRUNUX1dLX1NUUkVRKHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxTZWxlY3RlZENyZWRlbnRp
YWxEaXNwbGF5TmFtZSwgIkphbmUgU21pdGgiKTsKIAogICAgIGNsZWFuVXBLZXljaGFpbihlbXB0
eVN0cmluZygpKTsKIH0KQEAgLTE1MTMsNyArMTQ1Miw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRp
b25QYW5lbCwgTEFHZXRBc3NlcnRpb25Ob01vY2tOb1VzZXJHZXN0dXJlKQogCiBURVNUKFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwsIExBR2V0QXNzZXJ0aW9uTXVsdGlwbGVPcmRlcikKIHsKLSAgICBT
VFJJTkdTOwogICAgIHJlc2V0KCk7CiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tO
U0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1n
ZXQtYXNzZXJ0aW9uLWxhIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVz
dFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIApAQCAtMTUyOSwxMSArMTQ2NywxMSBAQCBURVNUKFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBR2V0QXNzZXJ0aW9uTXVsdGlwbGVPcmRlcikKIAogICAg
IFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVS
TC5nZXQoKV1dOwogICAgIFt3ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiU3VjY2VlZGVkISJdOwot
ICAgIEVYUEVDVF9XS19TVFJFUSgqd2ViQXV0aGVudGljYXRpb25QYW5lbFNlbGVjdGVkQ3JlZGVu
dGlhbE5hbWUuZ2V0KCksICJKb2huIik7CisgICAgRVhQRUNUX1dLX1NUUkVRKHdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxTZWxlY3RlZENyZWRlbnRpYWxOYW1lLCAiSm9obiIpOwogCiAgICAgW3dlYlZp
ZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgp
XV07CiAgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJTdWNjZWVkZWQhIl07Ci0gICAgRVhQ
RUNUX1dLX1NUUkVRKCp3ZWJBdXRoZW50aWNhdGlvblBhbmVsU2VsZWN0ZWRDcmVkZW50aWFsTmFt
ZS5nZXQoKSwgIkphbmUiKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEod2ViQXV0aGVudGljYXRpb25Q
YW5lbFNlbGVjdGVkQ3JlZGVudGlhbE5hbWUsICJKYW5lIik7CiAKICAgICBjbGVhblVwS2V5Y2hh
aW4oZW1wdHlTdHJpbmcoKSk7CiB9CkBAIC0xNTQ0LDcgKzE0ODIsNiBAQCBURVNUKFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWwsIExBR2V0QXNzZXJ0aW9uTXVsdGlwbGVPcmRlcikKIAogVEVTVChXZWJB
dXRoZW50aWNhdGlvblBhbmVsLCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zTWlu
aW11bSkKIHsKLSAgICBTVFJJTkdTOwogICAgIHVpbnQ4X3QgaWRlbnRpZmllcltdID0geyAweDAx
LCAweDAyLCAweDAzLCAweDA0IH07CiAgICAgTlNEYXRhICpuc0lkZW50aWZpZXIgPSBbTlNEYXRh
IGRhdGFXaXRoQnl0ZXM6aWRlbnRpZmllciBsZW5ndGg6c2l6ZW9mKGlkZW50aWZpZXIpXTsKICAg
ICBhdXRvIHBhcmFtZXRlcnMgPSBhZG9wdE5TKFtbX1dLUHVibGljS2V5Q3JlZGVudGlhbFBhcmFt
ZXRlcnMgYWxsb2NdIGluaXRXaXRoQWxnb3JpdGhtOkAtN10pOwpAQCAtMTU3OSw3ICsxNTE2LDYg
QEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRp
b25PcHRpb25zTWluaW11bSkKIAogVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zTWF4aW11bURlZmF1bHQpCiB7Ci0gICAgU1RSSU5H
UzsKICAgICB1aW50OF90IGlkZW50aWZpZXJbXSA9IHsgMHgwMSwgMHgwMiwgMHgwMywgMHgwNCB9
OwogICAgIE5TRGF0YSAqbnNJZGVudGlmaWVyID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOmlkZW50
aWZpZXIgbGVuZ3RoOnNpemVvZihpZGVudGlmaWVyKV07CiAgICAgYXV0byBwYXJhbWV0ZXJzMSA9
IGFkb3B0TlMoW1tfV0tQdWJsaWNLZXlDcmVkZW50aWFsUGFyYW1ldGVycyBhbGxvY10gaW5pdFdp
dGhBbGdvcml0aG06QC03XSk7CkBAIC0xNjMzLDcgKzE1NjksNiBAQCBURVNUKFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwsIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnNNYXhpbXVtRGVm
YXVsdCkKIAogVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQdWJsaWNLZXlDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zTWF4aW11bTEpCiB7Ci0gICAgU1RSSU5HUzsKICAgICB1aW50OF90IGlk
ZW50aWZpZXJbXSA9IHsgMHgwMSwgMHgwMiwgMHgwMywgMHgwNCB9OwogICAgIE5TRGF0YSAqbnNJ
ZGVudGlmaWVyID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOmlkZW50aWZpZXIgbGVuZ3RoOnNpemVv
ZihpZGVudGlmaWVyKV07CiAgICAgYXV0byBwYXJhbWV0ZXJzMSA9IGFkb3B0TlMoW1tfV0tQdWJs
aWNLZXlDcmVkZW50aWFsUGFyYW1ldGVycyBhbGxvY10gaW5pdFdpdGhBbGdvcml0aG06QC03XSk7
CkBAIC0xNzA2LDcgKzE2NDEsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFB1Ymxp
Y0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnNNYXhpbXVtMSkKIAogVEVTVChXZWJBdXRoZW50
aWNhdGlvblBhbmVsLCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zTWF4aW11bTIp
CiB7Ci0gICAgU1RSSU5HUzsKICAgICB1aW50OF90IGlkZW50aWZpZXJbXSA9IHsgMHgwMSwgMHgw
MiwgMHgwMywgMHgwNCB9OwogICAgIE5TRGF0YSAqbnNJZGVudGlmaWVyID0gW05TRGF0YSBkYXRh
V2l0aEJ5dGVzOmlkZW50aWZpZXIgbGVuZ3RoOnNpemVvZihpZGVudGlmaWVyKV07CiAgICAgYXV0
byBwYXJhbWV0ZXJzMSA9IGFkb3B0TlMoW1tfV0tQdWJsaWNLZXlDcmVkZW50aWFsUGFyYW1ldGVy
cyBhbGxvY10gaW5pdFdpdGhBbGdvcml0aG06QC03XSk7CkBAIC0xNzc3LDcgKzE3MTEsNiBAQCBU
RVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9w
dGlvbnNNYXhpbXVtMikKIAogVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBNYWtlQ3JlZGVu
dGlhbFNQSVRpbWVvdXQpCiB7Ci0gICAgU1RSSU5HUzsKICAgICByZXNldCgpOwogCiAgICAgdWlu
dDhfdCBpZGVudGlmaWVyW10gPSB7IDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQgfTsKQEAgLTE4MDgs
NyArMTc0MSw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTWFrZUNyZWRlbnRpYWxT
UElUaW1lb3V0KQogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspIHx8IFBMQVRGT1JNKElPUykK
IFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTWFrZUNyZWRlbnRpYWxMQSkKIHsKLSAgICBT
VFJJTkdTOwogICAgIHJlc2V0KCk7CiAKICAgICB1aW50OF90IGlkZW50aWZpZXJbXSA9IHsgMHgw
MSwgMHgwMiwgMHgwMywgMHgwNCB9OwpAQCAtMTg0Niw3ICsxNzc4LDYgQEAgVEVTVChXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLCBNYWtlQ3JlZGVudGlhbExBKQogCiBURVNUKFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWwsIE1ha2VDcmVkZW50aWFsTEFDbGllbnREYXRhSGFzaE1lZGlhdGlvbikKIHsKLSAg
ICBTVFJJTkdTOwogICAgIHJlc2V0KCk7CiAKICAgICB1aW50OF90IGlkZW50aWZpZXJbXSA9IHsg
MHgwMSwgMHgwMiwgMHgwMywgMHgwNCB9OwpAQCAtMTg4NSw3ICsxODE2LDYgQEAgVEVTVChXZWJB
dXRoZW50aWNhdGlvblBhbmVsLCBNYWtlQ3JlZGVudGlhbExBQ2xpZW50RGF0YUhhc2hNZWRpYXRp
b24pCiAKIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTWFrZUNyZWRlbnRpYWxMQUF0dGVz
dGF0aW9uRmFsYmFjaykKIHsKLSAgICBTVFJJTkdTOwogICAgIHJlc2V0KCk7CiAKICAgICB1aW50
OF90IGlkZW50aWZpZXJbXSA9IHsgMHgwMSwgMHgwMiwgMHgwMywgMHgwNCB9OwpAQCAtMTkyMCw3
ICsxODUwLDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBNYWtlQ3JlZGVudGlhbExB
QXR0ZXN0YXRpb25GYWxiYWNrKQogCiBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFB1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uc01pbmltdW4pCiB7Ci0gICAgU1RSSU5HUzsKICAg
ICBhdXRvIG9wdGlvbnMgPSBhZG9wdE5TKFtbX1dLUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RP
cHRpb25zIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byByZXN1bHQgPSBbX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbCBjb252ZXJ0VG9Db3JlUmVxdWVzdE9wdGlvbnNXaXRoT3B0aW9uczpvcHRpb25z
LmdldCgpXTsKIApAQCAtMTkzMyw3ICsxODYyLDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBh
bmVsLCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnNNaW5pbXVuKQogCiBURVNUKFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWwsIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uc01h
eGltdW1EZWZhdWx0KQogewotICAgIFNUUklOR1M7CiAgICAgdWludDhfdCBpZGVudGlmaWVyW10g
PSB7IDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQgfTsKICAgICBOU0RhdGEgKm5zSWRlbnRpZmllciA9
IFtOU0RhdGEgZGF0YVdpdGhCeXRlczppZGVudGlmaWVyIGxlbmd0aDpzaXplb2YoaWRlbnRpZmll
cildOwogICAgIGF1dG8gZGVzY3JpcHRvciA9IGFkb3B0TlMoW1tfV0tQdWJsaWNLZXlDcmVkZW50
aWFsRGVzY3JpcHRvciBhbGxvY10gaW5pdFdpdGhJZGVudGlmaWVyOm5zSWRlbnRpZmllcl0pOwpA
QCAtMTk1OSw3ICsxODg3LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQdWJsaWNL
ZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnNNYXhpbXVtRGVmYXVsdCkKIAogVEVTVChXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnNNYXhpbXVt
KQogewotICAgIFNUUklOR1M7CiAgICAgdWludDhfdCBpZGVudGlmaWVyW10gPSB7IDB4MDEsIDB4
MDIsIDB4MDMsIDB4MDQgfTsKICAgICBOU0RhdGEgKm5zSWRlbnRpZmllciA9IFtOU0RhdGEgZGF0
YVdpdGhCeXRlczppZGVudGlmaWVyIGxlbmd0aDpzaXplb2YoaWRlbnRpZmllcildOwogCkBAIC0y
MDIyLDcgKzE5NDksNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEdldEFzc2VydGlv
blNQSVRpbWVvdXQpCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgfHwgUExBVEZPUk0oSU9T
KQogVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBHZXRBc3NlcnRpb25MQSkKIHsKLSAgICBT
VFJJTkdTOwogICAgIHJlc2V0KCk7CiAgICAgYXV0byBiZWZvcmVUaW1lID0gYWRvcHROUyhbW05T
RGF0ZSBhbGxvY10gaW5pdF0pOwogCkBAIC0yMDg2LDcgKzIwMTIsNiBAQCBURVNUKFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWwsIEdldEFzc2VydGlvbkxBKQogCiBURVNUKFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWwsIEdldEFzc2VydGlvbkxBQ2xpZW50RGF0YUhhc2hNZWRpYXRpb24pCiB7Ci0gICAgU1RS
SU5HUzsKICAgICByZXNldCgpOwogCiAgICAgQVNTRVJUX1RSVUUoYWRkS2V5VG9LZXljaGFpbih0
ZXN0RVMyNTZQcml2YXRlS2V5QmFzZTY0LCAiZXhhbXBsZS5jb20iX3MsIHRlc3RVc2VyRW50aXR5
QnVuZGxlQmFzZTY0KSk7CkBAIC0yMTM3LDcgKzIwNjIsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWwsIEdldEFzc2VydGlvbkxBQ2xpZW50RGF0YUhhc2hNZWRpYXRpb24pCiAKIFRFU1Qo
V2ViQXV0aGVudGljYXRpb25QYW5lbCwgR2V0QXNzZXJ0aW9uTnVsbFVzZXJIYW5kbGUpCiB7Ci0g
ICAgU1RSSU5HUzsKICAgICByZXNldCgpOwogCiAgICAgQVNTRVJUX1RSVUUoYWRkS2V5VG9LZXlj
aGFpbih0ZXN0RVMyNTZQcml2YXRlS2V5QmFzZTY0LCAiZXhhbXBsZS5jb20iX3MsIHRlc3RVc2Vy
RW50aXR5QnVuZGxlTm9Vc2VySGFuZGxlQmFzZTY0KSk7CkBAIC0yMTY2LDcgKzIwOTAsNiBAQCBU
RVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEdldEFzc2VydGlvbk51bGxVc2VySGFuZGxlKQog
CiBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEdldEFzc2VydGlvbkNyb3NzUGxhdGZvcm0p
CiB7Ci0gICAgU1RSSU5HUzsKICAgICByZXNldCgpOwogCiAgICAgQVNTRVJUX1RSVUUoYWRkS2V5
VG9LZXljaGFpbih0ZXN0RVMyNTZQcml2YXRlS2V5QmFzZTY0LCBlbXB0eVN0cmluZygpLCB0ZXN0
VXNlckVudGl0eUJ1bmRsZUJhc2U2NCkpOwpAQCAtMjE5Nyw3ICsyMTIwLDYgQEAgVEVTVChXZWJB
dXRoZW50aWNhdGlvblBhbmVsLCBHZXRBc3NlcnRpb25Dcm9zc1BsYXRmb3JtKQogCiBURVNUKFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWwsIEdldEFsbENyZWRlbnRpYWwpCiB7Ci0gICAgU1RSSU5HUzsK
ICAgICByZXNldCgpOwogCiAgICAgYXV0byBiZWZvcmUgPSBhZG9wdE5TKFtbTlNEYXRlIGFsbG9j
XSBpbml0XSk7CkBAIC0yMjI1LDcgKzIxNDcsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwsIEdldEFsbENyZWRlbnRpYWwpCiAKIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgR2V0
QWxsQ3JlZGVudGlhbE51bGxVc2VySGFuZGxlKQogewotICAgIFNUUklOR1M7CiAgICAgcmVzZXQo
KTsKIAogICAgIEFTU0VSVF9UUlVFKGFkZEtleVRvS2V5Y2hhaW4odGVzdEVTMjU2UHJpdmF0ZUtl
eUJhc2U2NCwgImV4YW1wbGUuY29tIl9zLCB0ZXN0VXNlckVudGl0eUJ1bmRsZU5vVXNlckhhbmRs
ZUJhc2U2NCkpOwpAQCAtMjI0NCw3ICsyMTY1LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBh
bmVsLCBHZXRBbGxDcmVkZW50aWFsTnVsbFVzZXJIYW5kbGUpCiAKIFRFU1QoV2ViQXV0aGVudGlj
YXRpb25QYW5lbCwgR2V0QWxsQ3JlZGVudGlhbFdpdGhEaXNwbGF5TmFtZSkKIHsKLSAgICBTVFJJ
TkdTOwogICAgIHJlc2V0KCk7CiAKICAgICAvLyB7ImlkIjogaCcwMDAxMDIwMzA0MDUwNjA3MDgw
OScsICJuYW1lIjogIkpvaG4iLCAiZGlzcGxheU5hbWUiOiAiSm9obm55In0KQEAgLTIyNjUsNyAr
MjE4NSw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgR2V0QWxsQ3JlZGVudGlhbFdp
dGhEaXNwbGF5TmFtZSkKIAogVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBHZXRBbGxDcmVk
ZW50aWFsQnlSUElEKQogewotICAgIFNUUklOR1M7CiAgICAgcmVzZXQoKTsKIAogICAgIC8vIHsi
aWQiOiBoJzAwMDEwMjAzMDQwNTA2MDcwODA5JywgIm5hbWUiOiAiSm9obiIsICJkaXNwbGF5TmFt
ZSI6ICJKb2hubnkifQpAQCAtMjI5Nyw3ICsyMjE2LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlv
blBhbmVsLCBHZXRBbGxDcmVkZW50aWFsQnlSUElEKQogCiBURVNUKFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWwsIEdldEFsbENyZWRlbnRpYWxCeUNyZWRlbnRpYWxJRCkKIHsKLSAgICBTVFJJTkdTOwog
ICAgIHJlc2V0KCk7CiAgICAgY2xlYW5VcEtleWNoYWluKCJleGFtcGxlLmNvbSJfcyk7CiAKQEAg
LTIzMjEsNyArMjIzOSw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgR2V0QWxsQ3Jl
ZGVudGlhbEJ5Q3JlZGVudGlhbElEKQogCiBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEVu
Y29kZUNUQVBBc3NlcnRpb24pCiB7Ci0gICAgU1RSSU5HUzsKICAgICB1aW50OF90IGhhc2hbXSA9
IHsgMHgwMSwgMHgwMiwgMHgwMywgMHgwNCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwNCwgMHgwMSwg
MHgwMiwgMHgwMywgMHgwNCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwNCwgMHgwMSwgMHgwMiwgMHgw
MywgMHgwNCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwNCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwNCwg
MHgwMSwgMHgwMiwgMHgwMywgMHgwNCB9OwogICAgIGF1dG8gbnNIYXNoID0gYWRvcHROUyhbW05T
RGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczpoYXNoIGxlbmd0aDpzaXplb2YoaGFzaCldKTsKICAg
ICBhdXRvIG9wdGlvbnMgPSBhZG9wdE5TKFtbX1dLUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RP
cHRpb25zIGFsbG9jXSBpbml0XSk7CkBAIC0yMzM1LDcgKzIyNTIsNiBAQCBURVNUKFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWwsIEVuY29kZUNUQVBBc3NlcnRpb24pCiAKIFRFU1QoV2ViQXV0aGVudGlj
YXRpb25QYW5lbCwgRW5jb2RlQ1RBUENyZWF0aW9uKQogewotICAgIFNUUklOR1M7CiAgICAgdWlu
dDhfdCBoYXNoW10gPSB7IDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDEsIDB4MDIsIDB4MDMs
IDB4MDQsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4
MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDEsIDB4MDIs
IDB4MDMsIDB4MDQsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQgfTsKICAgICBhdXRvIG5zSGFzaCA9
IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6aGFzaCBsZW5ndGg6c2l6ZW9m
KGhhc2gpXSk7CiAgICAgdWludDhfdCBpZGVudGlmaWVyW10gPSB7IDB4MDEsIDB4MDIsIDB4MDMs
IDB4MDQgfTsKQEAgLTIzNTcsNyArMjI3Myw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5l
bCwgRW5jb2RlQ1RBUENyZWF0aW9uKQogCiBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFVw
ZGF0ZUNyZWRlbnRpYWxEaXNwbGF5TmFtZSkKIHsKLSAgICBTVFJJTkdTOwogICAgIHJlc2V0KCk7
CiAgICAgY2xlYW5VcEtleWNoYWluKCJleGFtcGxlLmNvbSJfcyk7CiAKQEAgLTIzOTUsNyArMjMx
MCw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgVXBkYXRlQ3JlZGVudGlhbERpc3Bs
YXlOYW1lKQogCiBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFVwZGF0ZUNyZWRlbnRpYWxO
YW1lKQogewotICAgIFNUUklOR1M7CiAgICAgcmVzZXQoKTsKICAgICBjbGVhblVwS2V5Y2hhaW4o
ImV4YW1wbGUuY29tIl9zKTsKIApAQCAtMjQzNCw3ICsyMzQ4LDYgQEAgVEVTVChXZWJBdXRoZW50
aWNhdGlvblBhbmVsLCBVcGRhdGVDcmVkZW50aWFsTmFtZSkKIAogVEVTVChXZWJBdXRoZW50aWNh
dGlvblBhbmVsLCBFeHBvcnRJbXBvcnRDcmVkZW50aWFsKQogewotICAgIFNUUklOR1M7CiAgICAg
cmVzZXQoKTsKICAgICBjbGVhblVwS2V5Y2hhaW4oImV4YW1wbGUuY29tIl9zKTsKIApAQCAtMjQ2
Myw3ICsyMzc2LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBFeHBvcnRJbXBvcnRD
cmVkZW50aWFsKQogCiBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEV4cG9ydEltcG9ydER1
cGxpY2F0ZUNyZWRlbnRpYWwpCiB7Ci0gICAgU1RSSU5HUzsKICAgICByZXNldCgpOwogICAgIGNs
ZWFuVXBLZXljaGFpbihlbXB0eVN0cmluZygpKTsKIApAQCAtMjQ5NCw3ICsyNDA2LDYgQEAgVEVT
VChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBFeHBvcnRJbXBvcnREdXBsaWNhdGVDcmVkZW50aWFs
KQogCiBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEltcG9ydE1hbGZvcm1lZENyZWRlbnRp
YWwpCiB7Ci0gICAgU1RSSU5HUzsKICAgICByZXNldCgpOwogCiAgICAgTlNFcnJvciAqZXJyb3Ig
PSBuaWw7CkBAIC0yNTA2LDcgKzI0MTcsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWws
IEltcG9ydE1hbGZvcm1lZENyZWRlbnRpYWwpCiAKIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5l
bCwgRGVsZXRlT25lQ3JlZGVudGlhbCkKIHsKLSAgICBTVFJJTkdTOwogICAgIHJlc2V0KCk7CiAK
ICAgICBBU1NFUlRfVFJVRShhZGRLZXlUb0tleWNoYWluKHRlc3RFUzI1NlByaXZhdGVLZXlCYXNl
NjQsICJleGFtcGxlLmNvbSJfcywgdGVzdFVzZXJFbnRpdHlCdW5kbGVCYXNlNjQpKTsKQEAgLTI1
MTksOCArMjQyOSw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgRGVsZXRlT25lQ3Jl
ZGVudGlhbCkKIH0KICNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSB8fCBQTEFURk9S
TShJT1MpCiAKLSN1bmRlZiBTVFJJTkdTCi0KIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
IAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>