<?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>217502</bug_id>
          
          <creation_ts>2020-10-08 18:16:47 -0700</creation_ts>
          <short_desc>REGRESSION(r268170): Crash on ARM64E exclusively</short_desc>
          <delta_ts>2020-10-08 18:19:22 -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>217460</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1696097</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-10-08 18:16:47 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/268170 broke the build:
Crash on ARM64E exclusively

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>1696099</commentid>
    <comment_count>1</comment_count>
      <attachid>410900</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-10-08 18:16:55 -0700</bug_when>
    <thetext>Created attachment 410900
REVERT of r268170

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>1696102</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-08 18:18:18 -0700</bug_when>
    <thetext>Committed r268241: &lt;https://trac.webkit.org/changeset/268241&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 410900.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696104</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-08 18:19:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/70120485&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410900</attachid>
            <date>2020-10-08 18:16:55 -0700</date>
            <delta_ts>2020-10-08 18:18:19 -0700</delta_ts>
            <desc>REVERT of r268170</desc>
            <filename>bug-217502-20201009011654.patch</filename>
            <type>text/plain</type>
            <size>43457</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MjM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ZjkyYTRiYjIwODVmYjYwMmRjM2E3NmI5MTIxODk4MzFjZjNiZmJkLi5lZmY1NGU2NTUwYWZmMzBm
MjlhMjFiODUyN2I5ODQ3ZmQ3NDQzOWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAyMC0xMC0wOCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjgxNzAgYW5kIHIyNjgx
OTAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1
MDIKKworICAgICAgICBDcmFzaCBvbiBBUk02NEUgZXhjbHVzaXZlbHkKKworICAgICAgICBSZXZl
cnRlZCBjaGFuZ2VzZXRzOgorCisgICAgICAgICJbSlNDXSBSZXN0cmljdCBtb3JlIHB0ci10YWdn
aW5nIGFuZCBhdm9pZCB1c2luZworICAgICAgICBPcGVyYXRpb25QdHJUYWcgZm9yIEpJVCBjb2Rl
IgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NDYw
CisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNjgxNzAKKworICAg
ICAgICAiVW5yZXZpZXdlZCwgYnVpbGQgZml4IGZvciBBUk02NEUiCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc0NjAKKyAgICAgICAgaHR0cHM6Ly90
cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI2ODE5MAorCiAyMDIwLTEwLTA4ICBSeW9zdWtlIE5p
d2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgaXQgcG9zc2libGUgdG8gc2Vu
ZCBhbiBhcmJpdHJhcnkgSVBDIG1lc3NhZ2UgZnJvbSBKYXZhU2NyaXB0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM5ZTk5OWJk
MzRkNThjYjBlN2NmODI0NGVjNmY4MTRmMTFjYzA4OWYuLjYyYzViZTEzMGZmYWFhZWRjY2RkMzVh
MWRkODJiNjVkMGY3ZGMzYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjAtMTAtMDggIENvbW1p
dCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQs
IHJldmVydGluZyByMjY4MTcwIGFuZCByMjY4MTkwLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTAyCisKKyAgICAgICAgQ3Jhc2ggb24gQVJNNjRF
IGV4Y2x1c2l2ZWx5CisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0czoKKworICAgICAgICAi
W0pTQ10gUmVzdHJpY3QgbW9yZSBwdHItdGFnZ2luZyBhbmQgYXZvaWQgdXNpbmcKKyAgICAgICAg
T3BlcmF0aW9uUHRyVGFnIGZvciBKSVQgY29kZSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzQ2MAorICAgICAgICBodHRwczovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvMjY4MTcwCisKKyAgICAgICAgIlVucmV2aWV3ZWQsIGJ1aWxkIGZpeCBm
b3IgQVJNNjRFIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE3NDYwCisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNjgx
OTAKKwogMjAyMC0xMC0wOCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBNYWtlIGl0IHBvc3NpYmxlIHRvIHNlbmQgYW4gYXJiaXRyYXJ5IElQQyBtZXNzYWdlIGZy
b20gSmF2YVNjcmlwdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAppbmRleCA4NWZhMmM3YTAyYzQzZDRlOTNjNTZj
ZTM2Y2E3MDI1Y2I1NTU5MWQ1Li4xMmRjZDZjOWU4M2Y4MzM1ODUzMGQ5NDdhODhjNjIwYmQ0YTlh
NTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0
TWFjcm9Bc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fi
c3RyYWN0TWFjcm9Bc3NlbWJsZXIuaApAQCAtODc3LDcgKzg3Nyw3IEBAIHB1YmxpYzoKICAgICB0
ZW1wbGF0ZTxQdHJUYWcgdGFnPgogICAgIHN0YXRpYyB2b2lkKiBnZXRMaW5rZXJBZGRyZXNzKHZv
aWQqIGNvZGUsIEFzc2VtYmxlckxhYmVsIGxhYmVsKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRh
Z0NvZGVQdHI8dGFnPihBc3NlbWJsZXJUeXBlOjpnZXRSZWxvY2F0ZWRBZGRyZXNzKGNvZGUsIGxh
YmVsKSk7CisgICAgICAgIHJldHVybiB0YWdDb2RlUHRyKEFzc2VtYmxlclR5cGU6OmdldFJlbG9j
YXRlZEFkZHJlc3MoY29kZSwgbGFiZWwpLCB0YWcpOwogICAgIH0KIAogICAgIHN0YXRpYyB1bnNp
Z25lZCBnZXRMaW5rZXJDYWxsUmV0dXJuT2Zmc2V0KENhbGwgY2FsbCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQXNzZW1ibGVyQnVmZmVyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fzc2VtYmxlckJ1ZmZlci5oCmluZGV4IGVmNWFkZWEx
ZjMxYTcwMjQ3ZDAyZGRkOTg3Njc3ZWYwYzExMDFlNWUuLjBjMzhhN2VmMjIwNjU2ODY2ZDk1M2Q3
Y2ZmZjlkNGVjOTY0NWVlNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvQXNzZW1ibGVyQnVmZmVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9Bc3NlbWJsZXJCdWZmZXIuaApAQCAtMTg3LDE1ICsxODcsMTUgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIEFMV0FZU19JTkxJTkUgdm9pZCB1cGRhdGUodWludDMyX3QgdmFsdWUpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIHVpbnQ2NF90IGlucHV0ID0gdmFsdWUgXiBtX2hhc2g7Ci0g
ICAgICAgICAgICB1aW50NjRfdCBhID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHRhZ0ludDxzdGF0
aWNfY2FzdDxQdHJUYWc+KDApPihpbnB1dCkgPj4gMzkpOwotICAgICAgICAgICAgdWludDY0X3Qg
YiA9IHRhZ0ludDxzdGF0aWNfY2FzdDxQdHJUYWc+KDB4YjdlMTUxNjI4YWVkMmE2YSk+KGlucHV0
KSA+PiAyMzsKKyAgICAgICAgICAgIHVpbnQ2NF90IGEgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4o
dGFnSW50KGlucHV0LCBzdGF0aWNfY2FzdDxQdHJUYWc+KDApKSA+PiAzOSk7CisgICAgICAgICAg
ICB1aW50NjRfdCBiID0gdGFnSW50KGlucHV0LCBzdGF0aWNfY2FzdDxQdHJUYWc+KDB4YjdlMTUx
NjI4YWVkMmE2YSkpID4+IDIzOwogICAgICAgICAgICAgbV9oYXNoID0gYSBeIGI7CiAgICAgICAg
IH0KICAgICAgICAgdWludDMyX3QgZmluYWxIYXNoKCkgY29uc3QKICAgICAgICAgewogICAgICAg
ICAgICAgdWludDY0X3QgaGFzaCA9IG1faGFzaDsKLSAgICAgICAgICAgIHVpbnQ2NF90IGEgPSBz
dGF0aWNfY2FzdDx1aW50MzJfdD4odGFnSW50PHN0YXRpY19jYXN0PFB0clRhZz4oMHhiZjcxNTg4
MDljZjRmM2M3KT4oaGFzaCkgPj4gMzkpOwotICAgICAgICAgICAgdWludDY0X3QgYiA9IHRhZ0lu
dDxzdGF0aWNfY2FzdDxQdHJUYWc+KDB4NjJlNzE2MGYzOGI0ZGE1Nik+KGhhc2gpID4+IDIzOwor
ICAgICAgICAgICAgdWludDY0X3QgYSA9IHN0YXRpY19jYXN0PHVpbnQzMl90Pih0YWdJbnQoaGFz
aCwgc3RhdGljX2Nhc3Q8UHRyVGFnPigweGJmNzE1ODgwOWNmNGYzYzcpKSA+PiAzOSk7CisgICAg
ICAgICAgICB1aW50NjRfdCBiID0gdGFnSW50KGhhc2gsIHN0YXRpY19jYXN0PFB0clRhZz4oMHg2
MmU3MTYwZjM4YjRkYTU2KSkgPj4gMjM7CiAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KGEgXiBiKTsKICAgICAgICAgfQogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0pJVE9wZXJhdGlvbkxpc3QuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9KSVRPcGVyYXRpb25MaXN0LmNwcAppbmRleCBl
NGMzNTZiMjdkMGJhNzAwNGVhOWVmNGE1Y2YzMDhiYzViMDNjNDY2Li5lMmMxNjA3YjJmMDVhNWRi
YjU1OTJlOWFhYjU4NjI4YzJmNzMyMjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL0pJVE9wZXJhdGlvbkxpc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvSklUT3BlcmF0aW9uTGlzdC5jcHAKQEAgLTQ4LDE0ICs0OCwxNCBAQCBz
dGF0aWMgU1VQUFJFU1NfQVNBTiBBTFdBWVNfSU5MSU5FIHZvaWQgYWRkUG9pbnRlcnMoSGFzaE1h
cDx2b2lkKiwgdm9pZCo+JiBtYXAsCiAgICAgZm9yIChjb25zdCB1aW50cHRyX3QqIGN1cnJlbnQg
PSBiZWdpbkhvc3Q7IGN1cnJlbnQgIT0gZW5kSG9zdDsgKytjdXJyZW50KSB7CiAgICAgICAgIHZv
aWQqIGNvZGVQdHIgPSByZW1vdmVDb2RlUHRyVGFnKGJpdHdpc2VfY2FzdDx2b2lkKj4oKmN1cnJl
bnQpKTsKICAgICAgICAgaWYgKGNvZGVQdHIpIHsKLSAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0g
bWFwLmFkZChjb2RlUHRyLCB0YWdDb2RlUHRyPEpTRW50cnlQdHJUYWc+KGNvZGVQdHIpKTsKKyAg
ICAgICAgICAgIGF1dG8gcmVzdWx0ID0gbWFwLmFkZChjb2RlUHRyLCB0YWdDb2RlUHRyKGNvZGVQ
dHIsIEpTRW50cnlQdHJUYWcpKTsKICAgICAgICAgICAgIEFTU0VSVChyZXN1bHQuaXNOZXdFbnRy
eSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgZm9yIChjb25zdCB1aW50cHRyX3QqIGN1cnJlbnQg
PSBiZWdpbk9wZXJhdGlvbnM7IGN1cnJlbnQgIT0gZW5kT3BlcmF0aW9uczsgKytjdXJyZW50KSB7
CiAgICAgICAgIHZvaWQqIGNvZGVQdHIgPSByZW1vdmVDb2RlUHRyVGFnKGJpdHdpc2VfY2FzdDx2
b2lkKj4oKmN1cnJlbnQpKTsKICAgICAgICAgaWYgKGNvZGVQdHIpIHsKLSAgICAgICAgICAgIGF1
dG8gcmVzdWx0ID0gbWFwLmFkZChjb2RlUHRyLCB0YWdDb2RlUHRyPE9wZXJhdGlvblB0clRhZz4o
Y29kZVB0cikpOworICAgICAgICAgICAgYXV0byByZXN1bHQgPSBtYXAuYWRkKGNvZGVQdHIsIHRh
Z0NvZGVQdHIoY29kZVB0ciwgT3BlcmF0aW9uUHRyVGFnKSk7CiAgICAgICAgICAgICBBU1NFUlQo
cmVzdWx0LmlzTmV3RW50cnkpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5jcHAKaW5kZXgg
OTg3MjU4YWE3ZGM1NGFhYTJkMzhmZDgyMzg0NWJkM2ZkMjA5Y2ZhMS4uZjFiYWQ2NjdhZTg2Mzcy
ZmFjN2FmMjFjMzY2MTEwNDJiMThhYjNlOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuY3BwCkBAIC01NDUsNyArNTQ1
LDcgQEAgdm9pZCBNYWNyb0Fzc2VtYmxlcjo6cHJvYmUoUHJvYmU6OkZ1bmN0aW9uIGZ1bmN0aW9u
LCB2b2lkKiBhcmcpCiAgICAgbW92ZShUcnVzdGVkSW1tUHRyKHRhZ0NGdW5jdGlvbjxPcGVyYXRp
b25QdHJUYWc+KGN0aU1hc21Qcm9iZVRyYW1wb2xpbmUpKSwgeDI2KTsKICAgICBtb3ZlKFRydXN0
ZWRJbW1QdHIodGFnQ0Z1bmN0aW9uPEpJVFByb2JlRXhlY3V0b3JQdHJUYWc+KFByb2JlOjpleGVj
dXRlUHJvYmUpKSwgeDI4KTsKICNpZiBDUFUoQVJNNjRFKQotICAgIGFzc2VydElzVGFnZ2VkV2l0
aDxKSVRQcm9iZVB0clRhZz4oZnVuY3Rpb24pOworICAgIEFTU0VSVChpc1RhZ2dlZFdpdGgoZnVu
Y3Rpb24sIEpJVFByb2JlUHRyVGFnKSk7CiAjZW5kaWYKICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIo
cmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oZnVuY3Rpb24pKSwgeDI0KTsKICAgICBtb3ZlKFRydXN0
ZWRJbW1QdHIoYXJnKSwgeDI1KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oCmluZGV4IGM1YTRmY2EyZmE1OWMyYmQ1
OGQ3NTY5MzkwMzM0ZmJjM2QzYjhkMTEuLjUzOTllNTkzNDU0ZDcyNzdhZmRiY2ExNmI4YzQyYjAz
MGQ1OTk0ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaApAQCAtMjc4LDcgKzI3OCw3IEBAIHB1YmxpYzoKICAg
ICAgICAgOiBtX3ZhbHVlKHZhbHVlKQogI2VuZGlmCiAgICAgewotICAgICAgICBhc3NlcnRJc1Rh
Z2dlZFdpdGg8dGFnPih2YWx1ZSk7CisgICAgICAgIGFzc2VydElzVGFnZ2VkV2l0aCh2YWx1ZSwg
dGFnKTsKICAgICAgICAgQVNTRVJUKHZhbHVlKTsKICNpZiBDUFUoQVJNX1RIVU1CMikKICAgICAg
ICAgQVNTRVJUKCEocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHZhbHVlKSAmIDEpKTsKQEAg
LTI5MCw3ICsyOTAsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQodmFsdWUpOwog
ICAgICAgICBBU1NFUlRfVkFMSURfQ09ERV9QT0lOVEVSKHZhbHVlKTsKLSAgICAgICAgYXNzZXJ0
SXNUYWdnZWRXaXRoPHRhZz4odmFsdWUpOworICAgICAgICBhc3NlcnRJc1RhZ2dlZFdpdGgodmFs
dWUsIHRhZyk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciByZXN1bHQ7CiAgICAgICAg
IHJlc3VsdC5tX3ZhbHVlID0gdmFsdWU7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCmluZGV4IGZmMWM4MDIyYjJj
Yzg5NTMzMmFkOWRiNWI4MjUxZTZjNzhmMzEwNDMuLjZjY2IxOWUxZDQ5MDZiODk3MDFlMWFjYjNm
ZTE4OTQxODBmZjRmZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvdGVzdG1hc20uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVz
dG1hc20uY3BwCkBAIC0yMTIzLDcgKzIxMjMsNyBAQCB2b2lkIHRlc3RQcm9iZU1vZGlmaWVzUHJv
Z3JhbUNvdW50ZXIoKQogICAgICAgICAvLyBXcml0ZSBleHBlY3RlZCB2YWx1ZXMgaW50byB0aGUg
cmVnaXN0ZXJzLgogICAgICAgICBqaXQucHJvYmUoWyZdIChQcm9iZTo6Q29udGV4dCYgY29udGV4
dCkgewogICAgICAgICAgICAgcHJvYmVDYWxsQ291bnQrKzsKLSAgICAgICAgICAgIGNvbnRleHQu
Y3B1LnBjKCkgPSB1bnRhZ0NvZGVQdHI8SlNFbnRyeVB0clRhZz4oY29udGludWF0aW9uLmNvZGUo
KS5leGVjdXRhYmxlQWRkcmVzcygpKTsKKyAgICAgICAgICAgIGNvbnRleHQuY3B1LnBjKCkgPSB1
bnRhZ0NvZGVQdHIoY29udGludWF0aW9uLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpLCBKU0Vu
dHJ5UHRyVGFnKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaml0LmJyZWFrcG9pbnQoKTsgLy8g
V2Ugc2hvdWxkIG5ldmVyIGdldCBoZXJlLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci90ZXN0YWlyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvdGVz
dGFpci5jcHAKaW5kZXggZmVmYzdhMTE4YThmNmZjNDFmMzhlOWEwZmY1MzJjZmYyNmU2YzFkNy4u
MzlhM2JhZjFhOTQzZGU1ZmVmOTlkNjE3OTI4Yjg1ZGY3NWVhODFiMyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL3Rlc3RhaXIuY3BwCkBAIC05OSw3ICs5OSw3IEBAIHN0ZDo6dW5pcXVl
X3B0cjxCMzo6Q29tcGlsYXRpb24+IGNvbXBpbGUoQjM6OlByb2NlZHVyZSYgcHJvYykKIHRlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KIFQgaW52b2tlKGNvbnN0IEIz
OjpDb21waWxhdGlvbiYgY29kZSwgQXJndW1lbnRzLi4uIGFyZ3VtZW50cykKIHsKLSAgICB2b2lk
KiBleGVjdXRhYmxlQWRkcmVzcyA9IHVudGFnQ0Z1bmN0aW9uUHRyPEIzQ29tcGlsYXRpb25QdHJU
YWc+KGNvZGUuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpOworICAgIHZvaWQqIGV4ZWN1dGFi
bGVBZGRyZXNzID0gdW50YWdDRnVuY3Rpb25QdHIoY29kZS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJl
c3MoKSwgQjNDb21waWxhdGlvblB0clRhZyk7CiAgICAgVCAoKmZ1bmN0aW9uKShBcmd1bWVudHMu
Li4pID0gYml0d2lzZV9jYXN0PFQoKikoQXJndW1lbnRzLi4uKT4oZXhlY3V0YWJsZUFkZHJlc3Mp
OwogICAgIHJldHVybiBmdW5jdGlvbihhcmd1bWVudHMuLi4pOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMT3V0cHV0LmgKaW5kZXggZDAzNTNjODcxY2Y1NzM0YzZjNWY2ZWJmNTMzMTA4Mzc3
NzdhMDg2Zi4uZjE1NWY2Yzk2MTFlODQ4MmU3ZjY2ZGRjMWI2YjNkNjhhYTI2MWU5YiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCkBAIC0zOTUsMTMgKzM5NSwxMyBAQCBwdWJs
aWM6CiAgICAgewogICAgICAgICBzdGF0aWNfYXNzZXJ0KCFzdGQ6OmlzX3NhbWU8RnVuY3Rpb24s
IExWYWx1ZT46OnZhbHVlKTsKICAgICAgICAgcmV0dXJuIG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6
Q0NhbGxWYWx1ZT4obV9wcm9jLCB0eXBlLCBvcmlnaW4oKSwgQjM6OkVmZmVjdHM6Om5vbmUoKSwK
LSAgICAgICAgICAgIGNvbnN0SW50UHRyKHRhZ0NGdW5jdGlvblB0cjx2b2lkKiwgT3BlcmF0aW9u
UHRyVGFnPihmdW5jdGlvbikpLCBhcmcxLCBhcmdzLi4uKTsKKyAgICAgICAgICAgIGNvbnN0SW50
UHRyKHRhZ0NGdW5jdGlvblB0cjx2b2lkKj4oZnVuY3Rpb24sIE9wZXJhdGlvblB0clRhZykpLCBh
cmcxLCBhcmdzLi4uKTsKICAgICB9CiAKICAgICAvLyBGSVhNRTogQ29uc2lkZXIgZW5oYW5jaW5n
IHRoaXMgdG8gYWxsb3cgdGhlIGNsaWVudCB0byBjaG9vc2UgdGhlIHRhcmdldCBQdHJUYWcgdG8g
dXNlLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQz
MjQKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvblR5cGU+Ci0gICAgTFZhbHVlIG9wZXJh
dGlvbihGdW5jdGlvblR5cGUgZnVuY3Rpb24pIHsgcmV0dXJuIGNvbnN0SW50UHRyKHRhZ0NGdW5j
dGlvblB0cjx2b2lkKiwgT3BlcmF0aW9uUHRyVGFnPihmdW5jdGlvbikpOyB9CisgICAgTFZhbHVl
IG9wZXJhdGlvbihGdW5jdGlvblR5cGUgZnVuY3Rpb24pIHsgcmV0dXJuIGNvbnN0SW50UHRyKHRh
Z0NGdW5jdGlvblB0cjx2b2lkKj4oZnVuY3Rpb24sIE9wZXJhdGlvblB0clRhZykpOyB9CiAKICAg
ICB2b2lkIGp1bXAoTEJhc2ljQmxvY2spOwogICAgIHZvaWQgYnJhbmNoKExWYWx1ZSBjb25kaXRp
b24sIExCYXNpY0Jsb2NrIHRha2VuLCBXZWlnaHQgdGFrZW5XZWlnaHQsIExCYXNpY0Jsb2NrIG5v
dFRha2VuLCBXZWlnaHQgbm90VGFrZW5XZWlnaHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0aENhbGwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExTbG93UGF0aENhbGwuY3BwCmluZGV4IDJhZGQ0OTRjNTMyYWFlYThlZTNkMTFjZTEy
Mjc4MTE4OTM1NmFkNGYuLjMyODRhZDJmYzVlZGIyNzBjOTc4OTA0ODViZWFmNTdkYWU1MzY1MzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHAKQEAg
LTEyMCwxNCArMTIwLDE0IEBAIFNsb3dQYXRoQ2FsbEtleSBTbG93UGF0aENhbGxDb250ZXh0Ojpr
ZXlXaXRoVGFyZ2V0KEZ1bmN0aW9uUHRyPENGdW5jdGlvblB0clRhZz4KIFNsb3dQYXRoQ2FsbCBT
bG93UGF0aENhbGxDb250ZXh0OjptYWtlQ2FsbChWTSYgdm0sIEZ1bmN0aW9uUHRyPENGdW5jdGlv
blB0clRhZz4gY2FsbFRhcmdldCkKIHsKICAgICBTbG93UGF0aENhbGxLZXkga2V5ID0ga2V5V2l0
aFRhcmdldChjYWxsVGFyZ2V0KTsKLSAgICBTbG93UGF0aENhbGwgcmVzdWx0ID0gU2xvd1BhdGhD
YWxsKG1faml0LmNhbGwoSklUVGh1bmtQdHJUYWcpLCBrZXkpOworICAgIFNsb3dQYXRoQ2FsbCBy
ZXN1bHQgPSBTbG93UGF0aENhbGwobV9qaXQuY2FsbChPcGVyYXRpb25QdHJUYWcpLCBrZXkpOwog
CiAgICAgbV9qaXQuYWRkTGlua1Rhc2soCiAgICAgICAgIFtyZXN1bHQsICZ2bV0gKExpbmtCdWZm
ZXImIGxpbmtCdWZmZXIpIHsKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRU
aHVua1B0clRhZz4gdGh1bmsgPQogICAgICAgICAgICAgICAgIHZtLmZ0bFRodW5rcy0+Z2V0U2xv
d1BhdGhDYWxsVGh1bmsodm0sIHJlc3VsdC5rZXkoKSk7CiAKLSAgICAgICAgICAgIGxpbmtCdWZm
ZXIubGluayhyZXN1bHQuY2FsbCgpLCBDb2RlTG9jYXRpb25MYWJlbDxKSVRUaHVua1B0clRhZz4o
dGh1bmsuY29kZSgpKSk7CisgICAgICAgICAgICBsaW5rQnVmZmVyLmxpbmsocmVzdWx0LmNhbGwo
KSwgQ29kZUxvY2F0aW9uTGFiZWw8T3BlcmF0aW9uUHRyVGFnPih0aHVuay5yZXRhZ2dlZENvZGU8
T3BlcmF0aW9uUHRyVGFnPigpKSk7CiAgICAgICAgIH0pOwogICAgIAogICAgIHJldHVybiByZXN1
bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmNwcAppbmRleCBiMmUzZGNjNzA4Mjlh
NDdlNzhlZGJlYjQyMDM4MGMwMDhiNGM2OGYyLi45MjYzNjRmMTZiNjA0MDIwMjAwYWE2YTc1YTFj
M2ExYTRhNzc2Mjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENv
ZGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5jcHAKQEAgLTEx
Niw3ICsxMTYsNyBAQCBKSVRDb2RlV2l0aENvZGVSZWY6On5KSVRDb2RlV2l0aENvZGVSZWYoKQog
dm9pZCogSklUQ29kZVdpdGhDb2RlUmVmOjpleGVjdXRhYmxlQWRkcmVzc0F0T2Zmc2V0KHNpemVf
dCBvZmZzZXQpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobV9yZWYpOwotICAgIGFzc2VydElzVGFn
Z2VkV2l0aDxKU0VudHJ5UHRyVGFnPihtX3JlZi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSk7
CisgICAgYXNzZXJ0SXNUYWdnZWRXaXRoKG1fcmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygp
LCBKU0VudHJ5UHRyVGFnKTsKICAgICBpZiAoIW9mZnNldCkKICAgICAgICAgcmV0dXJuIG1fcmVm
LmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRFeGNlcHRpb25zLmNwcAppbmRleCA2ZDU4M2E0ODllZDUzMDMxOGNlMzA5NmM2NmIwMmU3
ZDFjNThhNGJjLi5iYTgwNTc2NzU3NDExOTJiZmIwY2M3OWMyZmJiOTc1ZGIwMThlNjgxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAKQEAgLTgyLDcgKzgy
LDcgQEAgdm9pZCBnZW5lcmljVW53aW5kKFZNJiB2bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiAK
ICAgICBBU1NFUlQoYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oY2FsbEZyYW1lKSA8IGJpdHdpc2Vf
Y2FzdDx1aW50cHRyX3Q+KHZtLnRvcEVudHJ5RnJhbWUpKTsKIAotICAgIGFzc2VydElzVGFnZ2Vk
V2l0aDxFeGNlcHRpb25IYW5kbGVyUHRyVGFnPihjYXRjaFJvdXRpbmUpOworICAgIGFzc2VydElz
VGFnZ2VkV2l0aChjYXRjaFJvdXRpbmUsIEV4Y2VwdGlvbkhhbmRsZXJQdHJUYWcpOwogICAgIHZt
LmNhbGxGcmFtZUZvckNhdGNoID0gY2FsbEZyYW1lOwogICAgIHZtLnRhcmdldE1hY2hpbmVQQ0Zv
clRocm93ID0gY2F0Y2hSb3V0aW5lOwogICAgIHZtLnRhcmdldEludGVycHJldGVyUENGb3JUaHJv
dyA9IGNhdGNoUENGb3JJbnRlcnByZXRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuY3BwCmluZGV4IDY4MTg0MDQ5OTQwOTVlYzAwZjAwYTNjY2Y2Njg1OWVkZmVl
ZTc4MTguLjE5MDZlNWQ3YmMyMjRmODQyMTkxOWNjMTUyOTVjYWQ5NjQ2NTRhMmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAtMjYyMyw3ICsyNjIz
LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaENoYXJXaXRoVW5r
bm93bktleVR5cGUsIGNoYXIqLCAoSlNHbG9iYWwKICAgICAgICAgfQogICAgIH0KIAotICAgIGFz
c2VydElzVGFnZ2VkV2l0aDxKU1N3aXRjaFB0clRhZz4ocmVzdWx0KTsKKyAgICBhc3NlcnRJc1Rh
Z2dlZFdpdGgocmVzdWx0LCBKU1N3aXRjaFB0clRhZyk7CiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8Y2hhcio+KHJlc3VsdCk7CiB9CiAKQEAgLTI2NDMsNyArMjY0Myw3IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hJbW1XaXRoVW5rbm93bktleVR5cGUsIGNo
YXIqLCAoVk0qIHZtUG9pCiAgICAgICAgIHJlc3VsdCA9IGp1bXBUYWJsZS5jdGlGb3JWYWx1ZShz
dGF0aWNfY2FzdDxpbnQzMl90PihrZXkuYXNEb3VibGUoKSkpLmV4ZWN1dGFibGVBZGRyZXNzKCk7
CiAgICAgZWxzZQogICAgICAgICByZXN1bHQgPSBqdW1wVGFibGUuY3RpRGVmYXVsdC5leGVjdXRh
YmxlQWRkcmVzcygpOwotICAgIGFzc2VydElzVGFnZ2VkV2l0aDxKU1N3aXRjaFB0clRhZz4ocmVz
dWx0KTsKKyAgICBhc3NlcnRJc1RhZ2dlZFdpdGgocmVzdWx0LCBKU1N3aXRjaFB0clRhZyk7CiAg
ICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHJlc3VsdCk7CiB9CiAKQEAgLTI2Njgs
NyArMjY2OCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hTdHJp
bmdXaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoSlNHbG9iCiAgICAgfSBlbHNlCiAgICAgICAg
IHJlc3VsdCA9IGp1bXBUYWJsZS5jdGlEZWZhdWx0LmV4ZWN1dGFibGVBZGRyZXNzKCk7CiAKLSAg
ICBhc3NlcnRJc1RhZ2dlZFdpdGg8SlNTd2l0Y2hQdHJUYWc+KHJlc3VsdCk7CisgICAgYXNzZXJ0
SXNUYWdnZWRXaXRoKHJlc3VsdCwgSlNTd2l0Y2hQdHJUYWcpOwogICAgIHJldHVybiByZWludGVy
cHJldF9jYXN0PGNoYXIqPihyZXN1bHQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L1JlcGF0Y2guY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBh
dGNoLmNwcAppbmRleCBjNTNmNDk4M2QyMDVmYmNjNjg2NmUzMGQxZTU2YjRjNGUzNDJkMmZjLi5h
MWE1MmRlNzdlNGZmNDAzZTI2NzY1Mzc0YmJjYWZkMDlmMGY2MzFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvUmVwYXRjaC5jcHAKQEAgLTczLDE2ICs3MywxNSBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogc3RhdGljIEZ1bmN0aW9uUHRyPENGdW5jdGlvblB0clRhZz4gcmVhZFB1dElDQ2FsbFRhcmdl
dChDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZUxvY2F0aW9uQ2FsbDxKU0ludGVybmFsUHRyVGFn
PiBjYWxsKQogeworICAgIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4gdGFyZ2V0ID0gTWFj
cm9Bc3NlbWJsZXI6OnJlYWRDYWxsVGFyZ2V0PE9wZXJhdGlvblB0clRhZz4oY2FsbCk7CiAjaWYg
RU5BQkxFKEZUTF9KSVQpCiAgICAgaWYgKGNvZGVCbG9jay0+aml0VHlwZSgpID09IEpJVFR5cGU6
OkZUTEpJVCkgewotICAgICAgICBGdW5jdGlvblB0cjxKSVRUaHVua1B0clRhZz4gdGFyZ2V0ID0g
TWFjcm9Bc3NlbWJsZXI6OnJlYWRDYWxsVGFyZ2V0PEpJVFRodW5rUHRyVGFnPihjYWxsKTsKLSAg
ICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpJVFRodW5rUHRyVGFnPiB0aHVuayA9IE1hY3Jv
QXNzZW1ibGVyQ29kZVB0cjxKSVRUaHVua1B0clRhZz46OmNyZWF0ZUZyb21FeGVjdXRhYmxlQWRk
cmVzcyh0YXJnZXQuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CisgICAgICAgIE1hY3JvQXNzZW1ibGVy
Q29kZVB0cjxKSVRUaHVua1B0clRhZz4gdGh1bmsgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8T3Bl
cmF0aW9uUHRyVGFnPjo6Y3JlYXRlRnJvbUV4ZWN1dGFibGVBZGRyZXNzKHRhcmdldC5leGVjdXRh
YmxlQWRkcmVzcygpKS5yZXRhZ2dlZDxKSVRUaHVua1B0clRhZz4oKTsKICAgICAgICAgcmV0dXJu
IGNvZGVCbG9jay0+dm0oKS5mdGxUaHVua3MtPmtleUZvclNsb3dQYXRoQ2FsbFRodW5rKHRodW5r
KS5jYWxsVGFyZ2V0KCkucmV0YWdnZWQ8Q0Z1bmN0aW9uUHRyVGFnPigpOwogICAgIH0KICNlbHNl
CiAgICAgVU5VU0VEX1BBUkFNKGNvZGVCbG9jayk7CiAjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQp
Ci0gICAgRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPiB0YXJnZXQgPSBNYWNyb0Fzc2VtYmxl
cjo6cmVhZENhbGxUYXJnZXQ8T3BlcmF0aW9uUHRyVGFnPihjYWxsKTsKICAgICByZXR1cm4gdGFy
Z2V0LnJldGFnZ2VkPENGdW5jdGlvblB0clRhZz4oKTsKIH0KIApAQCAtOTIsOCArOTEsOCBAQCB2
b2lkIGZ0bFRodW5rQXdhcmVSZXBhdGNoQ2FsbChDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZUxv
Y2F0aW9uQ2FsbDxKU0ludGVybmFsUAogICAgIGlmIChjb2RlQmxvY2stPmppdFR5cGUoKSA9PSBK
SVRUeXBlOjpGVExKSVQpIHsKICAgICAgICAgVk0mIHZtID0gY29kZUJsb2NrLT52bSgpOwogICAg
ICAgICBGVEw6OlRodW5rcyYgdGh1bmtzID0gKnZtLmZ0bFRodW5rczsKLSAgICAgICAgRnVuY3Rp
b25QdHI8SklUVGh1bmtQdHJUYWc+IHRhcmdldCA9IE1hY3JvQXNzZW1ibGVyOjpyZWFkQ2FsbFRh
cmdldDxKSVRUaHVua1B0clRhZz4oY2FsbCk7Ci0gICAgICAgIGF1dG8gc2xvd1BhdGhUaHVuayA9
IE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKSVRUaHVua1B0clRhZz46OmNyZWF0ZUZyb21FeGVjdXRh
YmxlQWRkcmVzcyh0YXJnZXQuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CisgICAgICAgIEZ1bmN0aW9u
UHRyPE9wZXJhdGlvblB0clRhZz4gdGFyZ2V0ID0gTWFjcm9Bc3NlbWJsZXI6OnJlYWRDYWxsVGFy
Z2V0PE9wZXJhdGlvblB0clRhZz4oY2FsbCk7CisgICAgICAgIGF1dG8gc2xvd1BhdGhUaHVuayA9
IE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKSVRUaHVua1B0clRhZz46OmNyZWF0ZUZyb21FeGVjdXRh
YmxlQWRkcmVzcyh0YXJnZXQucmV0YWdnZWRFeGVjdXRhYmxlQWRkcmVzczxKSVRUaHVua1B0clRh
Zz4oKSk7CiAgICAgICAgIEZUTDo6U2xvd1BhdGhDYWxsS2V5IGtleSA9IHRodW5rcy5rZXlGb3JT
bG93UGF0aENhbGxUaHVuayhzbG93UGF0aFRodW5rKTsKICAgICAgICAga2V5ID0ga2V5LndpdGhD
YWxsVGFyZ2V0KG5ld0NhbGxlZUZ1bmN0aW9uKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OnJl
cGF0Y2hDYWxsKGNhbGwsIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4odGh1bmtzLmdldFNs
b3dQYXRoQ2FsbFRodW5rKHZtLCBrZXkpLnJldGFnZ2VkQ29kZTxPcGVyYXRpb25QdHJUYWc+KCkp
KTsKQEAgLTQwNiw3ICs0MDUsNyBAQCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2FjaGVH
ZXRCeShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDb2RlQmxvY2sqCiAKICAgICAgICAg
ICAgICAgICAgICAgbmV3Q2FzZSA9IEdldHRlclNldHRlckFjY2Vzc0Nhc2U6OmNyZWF0ZSgKICAg
ICAgICAgICAgICAgICAgICAgICAgIHZtLCBjb2RlQmxvY2ssIHR5cGUsIHByb3BlcnR5TmFtZSwg
b2Zmc2V0LCBzdHJ1Y3R1cmUsIGNvbmRpdGlvblNldCwgbG9hZFRhcmdldEZyb21Qcm94eSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHNsb3Qud2F0Y2hwb2ludFNldCgpLCBzbG90LmlzQ2FjaGVh
YmxlQ3VzdG9tKCkgPyBGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KHNsb3QuY3VzdG9tR2V0
dGVyKCkpIDogbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNsb3Qud2F0Y2hwb2lu
dFNldCgpLCBzbG90LmlzQ2FjaGVhYmxlQ3VzdG9tKCkgPyBzbG90LmN1c3RvbUdldHRlcigpIDog
bnVsbHB0ciwKICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3QuaXNDYWNoZWFibGVDdXN0b20o
KSAmJiBzbG90LnNsb3RCYXNlKCkgIT0gYmFzZVZhbHVlID8gc2xvdC5zbG90QmFzZSgpIDogbnVs
bHB0ciwKICAgICAgICAgICAgICAgICAgICAgICAgIGRvbUF0dHJpYnV0ZSwgV1RGTW92ZShwcm90
b3R5cGVBY2Nlc3NDaGFpbikpOwogICAgICAgICAgICAgICAgIH0KQEAgLTc0Miw3ICs3NDEsNyBA
QCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2FjaGVQdXRCeUlEKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENvZGVCbG9jawogCiAgICAgICAgICAgICAgICAgbmV3Q2FzZSA9IEdl
dHRlclNldHRlckFjY2Vzc0Nhc2U6OmNyZWF0ZSgKICAgICAgICAgICAgICAgICAgICAgdm0sIGNv
ZGVCbG9jaywgc2xvdC5pc0N1c3RvbUFjY2Vzc29yKCkgPyBBY2Nlc3NDYXNlOjpDdXN0b21BY2Nl
c3NvclNldHRlciA6IEFjY2Vzc0Nhc2U6OkN1c3RvbVZhbHVlU2V0dGVyLCBvbGRTdHJ1Y3R1cmUs
IHByb3BlcnR5TmFtZSwKLSAgICAgICAgICAgICAgICAgICAgaW52YWxpZE9mZnNldCwgY29uZGl0
aW9uU2V0LCBXVEZNb3ZlKHByb3RvdHlwZUFjY2Vzc0NoYWluKSwgaXNQcm94eSwgc2xvdC5jdXN0
b21TZXR0ZXIoKS5yZXRhZ2dlZDxPcGVyYXRpb25QdHJUYWc+KCksIHNsb3QuYmFzZSgpICE9IGJh
c2VWYWx1ZSA/IHNsb3QuYmFzZSgpIDogbnVsbHB0cik7CisgICAgICAgICAgICAgICAgICAgIGlu
dmFsaWRPZmZzZXQsIGNvbmRpdGlvblNldCwgV1RGTW92ZShwcm90b3R5cGVBY2Nlc3NDaGFpbiks
IGlzUHJveHksIHNsb3QuY3VzdG9tU2V0dGVyKCksIHNsb3QuYmFzZSgpICE9IGJhc2VWYWx1ZSA/
IHNsb3QuYmFzZSgpIDogbnVsbHB0cik7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgICAgIEFTU0VSVChzbG90LmlzQ2FjaGVhYmxlU2V0dGVyKCkpOwogICAgICAgICAgICAgICAg
IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0IGNvbmRpdGlvblNldDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAKaW5kZXggYmZhNGYzYmM4ZWUyYjg5ZjQxYjljYjk4
NjBmNmYzYjNjYzgxZTUyMy4uMGRmNGNhMGMyZmJlYmFkYTNmMmYxY2MxOTFlMDYyYTkzY2EzM2Q5
MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAKQEAgLTYyLDkg
KzYyLDkgQEAgdm9pZCBpbml0aWFsaXplKCkKICNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkp
CiAKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bU9wY29kZUlEcyArIG51bVdhc21PcGNvZGVJ
RHM7ICsraSkgewotICAgICAgICBnX2pzY0NvbmZpZy5sbGludC5vcGNvZGVNYXBbaV0gPSB0YWdD
b2RlUHRyPEJ5dGVjb2RlUHRyVGFnPihnX2pzY0NvbmZpZy5sbGludC5vcGNvZGVNYXBbaV0pOwot
ICAgICAgICBnX2pzY0NvbmZpZy5sbGludC5vcGNvZGVNYXBXaWRlMTZbaV0gPSB0YWdDb2RlUHRy
PEJ5dGVjb2RlUHRyVGFnPihnX2pzY0NvbmZpZy5sbGludC5vcGNvZGVNYXBXaWRlMTZbaV0pOwot
ICAgICAgICBnX2pzY0NvbmZpZy5sbGludC5vcGNvZGVNYXBXaWRlMzJbaV0gPSB0YWdDb2RlUHRy
PEJ5dGVjb2RlUHRyVGFnPihnX2pzY0NvbmZpZy5sbGludC5vcGNvZGVNYXBXaWRlMzJbaV0pOwor
ICAgICAgICBnX2pzY0NvbmZpZy5sbGludC5vcGNvZGVNYXBbaV0gPSB0YWdDb2RlUHRyKGdfanNj
Q29uZmlnLmxsaW50Lm9wY29kZU1hcFtpXSwgQnl0ZWNvZGVQdHJUYWcpOworICAgICAgICBnX2pz
Y0NvbmZpZy5sbGludC5vcGNvZGVNYXBXaWRlMTZbaV0gPSB0YWdDb2RlUHRyKGdfanNjQ29uZmln
LmxsaW50Lm9wY29kZU1hcFdpZGUxNltpXSwgQnl0ZWNvZGVQdHJUYWcpOworICAgICAgICBnX2pz
Y0NvbmZpZy5sbGludC5vcGNvZGVNYXBXaWRlMzJbaV0gPSB0YWdDb2RlUHRyKGdfanNjQ29uZmln
LmxsaW50Lm9wY29kZU1hcFdpZGUzMltpXSwgQnl0ZWNvZGVQdHJUYWcpOwogICAgIH0KIAogICAg
IEFTU0VSVChsbGludF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9saW5lIDwgVUlOVDhfTUFY
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFBDUmFuZ2Vz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRQQ1Jhbmdlcy5oCmluZGV4IDQ0
ZjRlZjkxMDNkN2UyMTYyOTU5ZGZhNTY4MmVhNmNiMWI1Mjg3MTMuLmFkNzExMWJlMTI0YTQyN2Q5
NDkyYmIwZmU2YTAzOGJhYmYwZGNmYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludFBDUmFuZ2VzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50UENSYW5nZXMuaApAQCAtNDAsOCArNDAsOCBAQCBleHRlcm4gIkMiIHsKIEFMV0FZU19J
TkxJTkUgYm9vbCBpc0xMSW50UEModm9pZCogcGMpCiB7CiAgICAgdWludHB0cl90IHBjQXNJbnQg
PSBiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihwYyk7Ci0gICAgdWludHB0cl90IGxsaW50U3RhcnQg
PSB1bnRhZ0NvZGVQdHI8dWludHB0cl90LCBDRnVuY3Rpb25QdHJUYWc+KGxsaW50UENSYW5nZVN0
YXJ0KTsKLSAgICB1aW50cHRyX3QgbGxpbnRFbmQgPSB1bnRhZ0NvZGVQdHI8dWludHB0cl90LCBD
RnVuY3Rpb25QdHJUYWc+KGxsaW50UENSYW5nZUVuZCk7CisgICAgdWludHB0cl90IGxsaW50U3Rh
cnQgPSB1bnRhZ0NvZGVQdHI8dWludHB0cl90PihsbGludFBDUmFuZ2VTdGFydCwgQ0Z1bmN0aW9u
UHRyVGFnKTsKKyAgICB1aW50cHRyX3QgbGxpbnRFbmQgPSB1bnRhZ0NvZGVQdHI8dWludHB0cl90
PihsbGludFBDUmFuZ2VFbmQsIENGdW5jdGlvblB0clRhZyk7CiAgICAgUkVMRUFTRV9BU1NFUlQo
bGxpbnRTdGFydCA8IGxsaW50RW5kKTsKICAgICByZXR1cm4gbGxpbnRTdGFydCA8PSBwY0FzSW50
ICYmIHBjQXNJbnQgPD0gbGxpbnRFbmQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50U2xvd1BhdGhzLmNwcAppbmRleCA2MTFhZTRiYjE1NGQwMTk0ZmU2NjY3ZmExZjA0
YzRmNGYxNjYzMWY5Li40ODA4NjU5YjcyN2Q2NDk3ZTBjNjg0NWQ0ZjVhMTQzZTM4ODVjZTJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKQEAg
LTE1NSw3ICsxNTUsNyBAQCBpbmxpbmUgSlNWYWx1ZSBnZXRPcGVyYW5kKENhbGxGcmFtZSogY2Fs
bEZyYW1lLCBWaXJ0dWFsUmVnaXN0ZXIgb3BlcmFuZCkgeyByZXR1cgogICAgIH0gd2hpbGUgKGZh
bHNlKQogCiAjZGVmaW5lIExMSU5UX0NBTExfRU5EX0lNUEwoY2FsbEZyYW1lLCBjYWxsVGFyZ2V0
LCBjYWxsVGFyZ2V0VGFnKSBcCi0gICAgTExJTlRfUkVUVVJOX1RXTygocmV0YWdDb2RlUHRyPGNh
bGxUYXJnZXRUYWcsIFNsb3dQYXRoUHRyVGFnPihjYWxsVGFyZ2V0KSksIChjYWxsRnJhbWUpKQor
ICAgIExMSU5UX1JFVFVSTl9UV08ocmV0YWdDb2RlUHRyKChjYWxsVGFyZ2V0KSwgY2FsbFRhcmdl
dFRhZywgU2xvd1BhdGhQdHJUYWcpLCAoY2FsbEZyYW1lKSkKIAogI2RlZmluZSBMTElOVF9DQUxM
X1RIUk9XKGdsb2JhbE9iamVjdCwgZXhjZXB0aW9uVG9UaHJvdykgZG8geyAgICAgICAgICAgICAg
ICAgICBcCiAgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBfX2N0X2dsb2JhbE9iamVjdCA9IChnbG9i
YWxPYmplY3QpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC0xNzIyLDcg
KzE3MjIsNyBAQCBpbmxpbmUgU2xvd1BhdGhSZXR1cm5UeXBlIHNldFVwQ2FsbChDYWxsRnJhbWUq
IGNhbGxlZUZyYW1lLCBDb2RlU3BlY2lhbGl6YXRpb25LaQogICAgICAgICAgICAgICAgIGNhbGxM
aW5rSW5mby0+bGluayh2bSwgY2FsbGVyQ29kZUJsb2NrLCBpbnRlcm5hbEZ1bmN0aW9uLCBjb2Rl
UHRyKTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgYXNzZXJ0SXNUYWdnZWRXaXRoPEpT
RW50cnlQdHJUYWc+KGNvZGVQdHIuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CisgICAgICAgICAgICBh
c3NlcnRJc1RhZ2dlZFdpdGgoY29kZVB0ci5leGVjdXRhYmxlQWRkcmVzcygpLCBKU0VudHJ5UHRy
VGFnKTsKICAgICAgICAgICAgIExMSU5UX0NBTExfUkVUVVJOKGdsb2JhbE9iamVjdCwgY2FsbGVl
RnJhbWUsIGNvZGVQdHIuZXhlY3V0YWJsZUFkZHJlc3MoKSwgSlNFbnRyeVB0clRhZyk7CiAgICAg
ICAgIH0KICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIGhhbmRsZUhvc3RD
YWxsKGNhbGxlZUZyYW1lLCBjYWxsZWVBc1ZhbHVlLCBraW5kKSk7CkBAIC0xNzY1LDcgKzE3NjUs
NyBAQCBpbmxpbmUgU2xvd1BhdGhSZXR1cm5UeXBlIHNldFVwQ2FsbChDYWxsRnJhbWUqIGNhbGxl
ZUZyYW1lLCBDb2RlU3BlY2lhbGl6YXRpb25LaQogICAgICAgICAgICAgY29kZUJsb2NrLT5saW5r
SW5jb21pbmdDYWxsKGNhbGxGcmFtZSwgY2FsbExpbmtJbmZvKTsKICAgICB9CiAKLSAgICBhc3Nl
cnRJc1RhZ2dlZFdpdGg8SlNFbnRyeVB0clRhZz4oY29kZVB0ci5leGVjdXRhYmxlQWRkcmVzcygp
KTsKKyAgICBhc3NlcnRJc1RhZ2dlZFdpdGgoY29kZVB0ci5leGVjdXRhYmxlQWRkcmVzcygpLCBK
U0VudHJ5UHRyVGFnKTsKICAgICBMTElOVF9DQUxMX1JFVFVSTihnbG9iYWxPYmplY3QsIGNhbGxl
ZUZyYW1lLCBjb2RlUHRyLmV4ZWN1dGFibGVBZGRyZXNzKCksIEpTRW50cnlQdHJUYWcpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRUaHVua3MuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmNwcAppbmRleCA3ODUz
NjBmNDg3NjA3MWFmZDY0YWQxY2ZlMWJhOGJlYTgzOGFiM2QyLi4wNjZlMTFlNGZmYzBlMDAyMDY2
NzRiMDdkNTMxODE5NmRkOWQyZDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRUaHVua3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludFRodW5rcy5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZjx0YWc+IGdlbmVyYXRlVGh1bmtXaXRoSnVtcFRvKExMSW50Q29kZSB0YXJnZXQsIGNvbnMK
IHsKICAgICBKU0ludGVyZmFjZUpJVCBqaXQ7CiAKLSAgICBhc3NlcnRJc1RhZ2dlZFdpdGg8SlNF
bnRyeVB0clRhZz4odGFyZ2V0KTsKKyAgICBhc3NlcnRJc1RhZ2dlZFdpdGgodGFyZ2V0LCBKU0Vu
dHJ5UHRyVGFnKTsKIAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICBDQ2FsbEhlbHBlcnM6
OlJlZ2lzdGVySUQgc2NyYXRjaCA9IFdhc206Ondhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xv
Z3VlU2NyYXRjaEdQUnNbMF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NQdHJUYWcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ1B0clRh
Zy5oCmluZGV4IDUwNDc3MmNjNzY3ZDA1N2ZiMmI5MGQ5ZjkwMzE3MDczMGE5ZjE1ZDYuLjhjMzUz
NTk1NjZmZDNlZDExZDM4NTExZjllMWUyNWExMTRlMDYwOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ1B0clRhZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQ1B0clRhZy5oCkBAIC01MCw3ICs1MCw2IEBAIHVzaW5nIFB0clRhZyA9
IFdURjo6UHRyVGFnOwogICAgIHYoT3BlcmF0aW9uUHRyVGFnKSBcCiAgICAgdihPU1JFbnRyeVB0
clRhZykgXAogICAgIHYoT1NSRXhpdFB0clRhZykgXAotICAgIHYoUHV0VmFsdWVQdHJUYWcpIFwK
ICAgICB2KFNsb3dQYXRoUHRyVGFnKSBcCiAgICAgdihXYXNtRW50cnlQdHJUYWcpIFwKICAgICB2
KFlhcnI4Qml0UHRyVGFnKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9NYWNoaW5lQ29udGV4dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFj
aGluZUNvbnRleHQuaAppbmRleCBlYWQ5Y2RmZDdiNjNiZTAyN2RmNzg0YmEwMmU5YmI2NmJkM2Ji
MGE2Li5lNTQ2NjMzYjg4NDUyYzBjYWMyMjQ5OGVlYWJlM2FjMzk3MDY0MzkyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYWNoaW5lQ29udGV4dC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hY2hpbmVDb250ZXh0LmgKQEAgLTQ1Nyw3ICs0
NTcsNyBAQCBpbmxpbmUgT3B0aW9uYWw8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPFBsYXRmb3JtUmVn
aXN0ZXJzUENQdHJUYWc+PiBpbnN0cnVjdGlvblBvaQogICAgICAgICByZXR1cm4gbWFrZU9wdGlv
bmFsKE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxQbGF0Zm9ybVJlZ2lzdGVyc1BDUHRyVGFnPihudWxs
cHRyKSk7CiAgICAgaWYgKCF1c2VzUG9pbnRlclRhZ2dpbmcoKSkKICAgICAgICAgcmV0dXJuIG1h
a2VPcHRpb25hbChNYWNyb0Fzc2VtYmxlckNvZGVQdHI8UGxhdGZvcm1SZWdpc3RlcnNQQ1B0clRh
Zz4odmFsdWUpKTsKLSAgICBpZiAoaXNUYWdnZWRXaXRoPFBsYXRmb3JtUmVnaXN0ZXJzUENQdHJU
YWc+KHZhbHVlKSkKKyAgICBpZiAoaXNUYWdnZWRXaXRoKHZhbHVlLCBQbGF0Zm9ybVJlZ2lzdGVy
c1BDUHRyVGFnKSkKICAgICAgICAgcmV0dXJuIG1ha2VPcHRpb25hbChNYWNyb0Fzc2VtYmxlckNv
ZGVQdHI8UGxhdGZvcm1SZWdpc3RlcnNQQ1B0clRhZz4odmFsdWUpKTsKICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TmF0aXZlRXhlY3V0YWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRp
dmVFeGVjdXRhYmxlLmNwcAppbmRleCBlOTAzOWE2ODk2NmFlY2Q2NTJmYjZkNmM3M2I5Njk3MWY2
NWM4MmQ0Li5hZTBmYTkxZjMwOTIwYTkzN2RmN2IxODg3ZGU3YTZhNTFkOTgyZDYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFeGVjdXRhYmxlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFeGVjdXRhYmxlLmNwcApA
QCAtNjAsMTAgKzYwLDEwIEBAIHZvaWQgTmF0aXZlRXhlY3V0YWJsZTo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBSZWY8SklUQ29kZT4mJiBjYWxsVGh1bmssIFJlZjxKSVRDCiAgICAgbV9qaXRDb2Rl
Rm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2sgPSBtX2ppdENvZGVGb3JDb25zdHJ1Y3QtPmFkZHJl
c3NGb3JDYWxsKE11c3RDaGVja0FyaXR5KTsKICAgICBtX25hbWUgPSBuYW1lOwogCi0gICAgYXNz
ZXJ0SXNUYWdnZWRXaXRoPEpTRW50cnlQdHJUYWc+KG1faml0Q29kZUZvckNhbGwtPmFkZHJlc3NG
b3JDYWxsKEFyaXR5Q2hlY2tOb3RSZXF1aXJlZCkuZXhlY3V0YWJsZUFkZHJlc3MoKSk7Ci0gICAg
YXNzZXJ0SXNUYWdnZWRXaXRoPEpTRW50cnlQdHJUYWc+KG1faml0Q29kZUZvckNvbnN0cnVjdC0+
YWRkcmVzc0ZvckNhbGwoQXJpdHlDaGVja05vdFJlcXVpcmVkKS5leGVjdXRhYmxlQWRkcmVzcygp
KTsKLSAgICBhc3NlcnRJc1RhZ2dlZFdpdGg8SlNFbnRyeVB0clRhZz4obV9qaXRDb2RlRm9yQ2Fs
bFdpdGhBcml0eUNoZWNrLmV4ZWN1dGFibGVBZGRyZXNzKCkpOwotICAgIGFzc2VydElzVGFnZ2Vk
V2l0aDxKU0VudHJ5UHRyVGFnPihtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjay5l
eGVjdXRhYmxlQWRkcmVzcygpKTsKKyAgICBhc3NlcnRJc1RhZ2dlZFdpdGgobV9qaXRDb2RlRm9y
Q2FsbC0+YWRkcmVzc0ZvckNhbGwoQXJpdHlDaGVja05vdFJlcXVpcmVkKS5leGVjdXRhYmxlQWRk
cmVzcygpLCBKU0VudHJ5UHRyVGFnKTsKKyAgICBhc3NlcnRJc1RhZ2dlZFdpdGgobV9qaXRDb2Rl
Rm9yQ29uc3RydWN0LT5hZGRyZXNzRm9yQ2FsbChBcml0eUNoZWNrTm90UmVxdWlyZWQpLmV4ZWN1
dGFibGVBZGRyZXNzKCksIEpTRW50cnlQdHJUYWcpOworICAgIGFzc2VydElzVGFnZ2VkV2l0aCht
X2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2suZXhlY3V0YWJsZUFkZHJlc3MoKSwgSlNFbnRy
eVB0clRhZyk7CisgICAgYXNzZXJ0SXNUYWdnZWRXaXRoKG1faml0Q29kZUZvckNvbnN0cnVjdFdp
dGhBcml0eUNoZWNrLmV4ZWN1dGFibGVBZGRyZXNzKCksIEpTRW50cnlQdHJUYWcpOwogfQogCiBO
YXRpdmVFeGVjdXRhYmxlOjpOYXRpdmVFeGVjdXRhYmxlKFZNJiB2bSwgVGFnZ2VkTmF0aXZlRnVu
Y3Rpb24gZnVuY3Rpb24sIFRhZ2dlZE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHV0UHJvcGVydHlTbG90LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9QdXRQcm9wZXJ0eVNsb3QuaAppbmRleCAwZWNk
NTJkYWEyZjdlZTA4ZDk3YmM3MDRkYzRhY2UzZWEwOWMzZWVjLi5jMTBmY2QxZWM1MDU2ODY2NWI2
NmY5MjE0NmU4MDc3ZjE1MTk3NDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9QdXRQcm9wZXJ0eVNsb3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9QdXRQcm9wZXJ0eVNsb3QuaApAQCAtNjYsMTQgKzY2LDE0IEBAIHB1YmxpYzoKICAgICAg
ICAgbV9vZmZzZXQgPSBvZmZzZXQ7CiAgICAgfQogCi0gICAgdm9pZCBzZXRDdXN0b21WYWx1ZShK
U09iamVjdCogYmFzZSwgUHV0VmFsdWVGdW5jIGZ1bmN0aW9uKQorICAgIHZvaWQgc2V0Q3VzdG9t
VmFsdWUoSlNPYmplY3QqIGJhc2UsIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4gZnVuY3Rp
b24pCiAgICAgewogICAgICAgICBtX3R5cGUgPSBDdXN0b21WYWx1ZTsKICAgICAgICAgbV9iYXNl
ID0gYmFzZTsKICAgICAgICAgbV9wdXRGdW5jdGlvbiA9IGZ1bmN0aW9uOwogICAgIH0KIAotICAg
IHZvaWQgc2V0Q3VzdG9tQWNjZXNzb3IoSlNPYmplY3QqIGJhc2UsIFB1dFZhbHVlRnVuYyBmdW5j
dGlvbikKKyAgICB2b2lkIHNldEN1c3RvbUFjY2Vzc29yKEpTT2JqZWN0KiBiYXNlLCBGdW5jdGlv
blB0cjxPcGVyYXRpb25QdHJUYWc+IGZ1bmN0aW9uKQogICAgIHsKICAgICAgICAgbV90eXBlID0g
Q3VzdG9tQWNjZXNzb3I7CiAgICAgICAgIG1fYmFzZSA9IGJhc2U7CkBAIC05Nyw3ICs5Nyw3IEBA
IHB1YmxpYzoKICAgICAgICAgbV9pc1N0cmljdE1vZGUgPSB2YWx1ZTsKICAgICB9CiAKLSAgICBG
dW5jdGlvblB0cjxQdXRWYWx1ZVB0clRhZz4gY3VzdG9tU2V0dGVyKCkgY29uc3QKKyAgICBGdW5j
dGlvblB0cjxPcGVyYXRpb25QdHJUYWc+IGN1c3RvbVNldHRlcigpIGNvbnN0CiAgICAgewogICAg
ICAgICBBU1NFUlQoaXNDYWNoZWFibGVDdXN0b20oKSk7CiAgICAgICAgIHJldHVybiBtX3B1dEZ1
bmN0aW9uOwpAQCAtMTM3LDcgKzEzNyw3IEBAIHByaXZhdGU6CiAgICAgVHlwZSBtX3R5cGU7CiAg
ICAgdWludDhfdCBtX2NvbnRleHQ7CiAgICAgQ2FjaGVhYmlsaXR5VHlwZSBtX2NhY2hlYWJpbGl0
eTsKLSAgICBGdW5jdGlvblB0cjxQdXRWYWx1ZVB0clRhZz4gbV9wdXRGdW5jdGlvbjsKKyAgICBG
dW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+IG1fcHV0RnVuY3Rpb247CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21B
aXJJUkdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJH
ZW5lcmF0b3IuY3BwCmluZGV4IDIyMmRmMDliMGQ0MTU1ODgyZTJmMGE5ZWIxYTE1NzkwYmYwYTJi
MjguLmM1ZTBjNmRjODkzY2E2NjJlMjdhMWRhZDRlMzVmYzQ1Y2Y4NjI3NjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcApAQCAtNTk4
LDcgKzU5OCw3IEBAIHByaXZhdGU6CiAgICAgICAgIEluc3QgaW5zdChDQ2FsbCwgb3JpZ2luKTsK
IAogICAgICAgICBUbXAgY2FsbGVlID0gZzY0KCk7Ci0gICAgICAgIGFwcGVuZChibG9jaywgTW92
ZSwgQXJnOjppbW1QdHIodGFnQ0Z1bmN0aW9uUHRyPHZvaWQqLCBPcGVyYXRpb25QdHJUYWc+KGZ1
bmMpKSwgY2FsbGVlKTsKKyAgICAgICAgYXBwZW5kKGJsb2NrLCBNb3ZlLCBBcmc6OmltbVB0cih0
YWdDRnVuY3Rpb25QdHI8dm9pZCo+KGZ1bmMsIE9wZXJhdGlvblB0clRhZykpLCBjYWxsZWUpOwog
ICAgICAgICBpbnN0LmFyZ3MuYXBwZW5kKGNhbGxlZSk7CiAKICAgICAgICAgaWYgKHJlc3VsdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5jcHAKaW5kZXggOWM0
YjU5NTQ2ZTZmOTYwYWI3NThlM2E1M2YyYjYxZGJiNjc0YzIxZS4uMjAwNDNhMWVhNTA1YTk1ZDRk
NWYzZTNjZTM5NWM2OWFhMmUzNTU4YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbVNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbVNsb3dQYXRocy5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBMTEludCB7CiAgICAgfSB3aGlsZSAoZmFsc2UpCiAKICNkZWZpbmUgV0FTTV9DQUxMX1JF
VFVSTih0YXJnZXRJbnN0YW5jZSwgY2FsbFRhcmdldCwgY2FsbFRhcmdldFRhZykgZG8geyBcCi0g
ICAgICAgIFdBU01fUkVUVVJOX1RXTygocmV0YWdDb2RlUHRyPGNhbGxUYXJnZXRUYWcsIFNsb3dQ
YXRoUHRyVGFnPihjYWxsVGFyZ2V0KSksIHRhcmdldEluc3RhbmNlKTsgXAorICAgICAgICBXQVNN
X1JFVFVSTl9UV08ocmV0YWdDb2RlUHRyKGNhbGxUYXJnZXQsIGNhbGxUYXJnZXRUYWcsIFNsb3dQ
YXRoUHRyVGFnKSwgdGFyZ2V0SW5zdGFuY2UpOyBcCiAgICAgfSB3aGlsZSAoZmFsc2UpCiAKICNk
ZWZpbmUgQ09ERV9CTE9DSygpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
UmVnaXN0ZXJzLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtUmVnaXN0ZXJzLmNwcAppbmRl
eCAxMzY5NDE3OTA3MzgzM2VhZjhhZTcyYzdhYmVlYTYwMGE4NmI5YjA5Li43NzlmYTJlZGJjMjI2
ZjFkMGQxNTc4MzE4MWZkNzdiOGRjODZhYWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybVJlZ2lzdGVycy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1SZWdpc3Rl
cnMuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQqIHRocmVhZFN0YXRlTFJJbnRlcm5hbChQbGF0
Zm9ybVJlZ2lzdGVycyYgcmVncykKICAgICB2b2lkKiBjYW5kaWRhdGVMUiA9IGFybV90aHJlYWRf
c3RhdGU2NF9nZXRfbHJfZnB0cihyZWdzKTsKIAogI2lmIFVTRShVTlRBR0dFRF9USFJFQURfU1RB
VEVfUFRSKQotICAgIGlmIChjYW5kaWRhdGVMUiAmJiBpc1RhZ2dlZFdpdGg8Q0Z1bmN0aW9uUHRy
VGFnPihjYW5kaWRhdGVMUikpCisgICAgaWYgKGNhbmRpZGF0ZUxSICYmIGlzVGFnZ2VkV2l0aChj
YW5kaWRhdGVMUiwgQ0Z1bmN0aW9uUHRyVGFnKSkKICAgICAgICAgcmV0dXJuIHJldGFnQ29kZVB0
cjxDRnVuY3Rpb25QdHJUYWcsIFBsYXRmb3JtUmVnaXN0ZXJzTFJQdHJUYWc+KGNhbmRpZGF0ZUxS
KTsKICAgICBjYW5kaWRhdGVMUiA9IGJpdHdpc2VfY2FzdDx2b2lkKj4oYXJtX3RocmVhZF9zdGF0
ZTY0X2dldF9scihyZWdzKSk7CiAgICAgaWYgKCFjYW5kaWRhdGVMUikKQEAgLTU2LDcgKzU2LDcg
QEAgdm9pZCogdGhyZWFkU3RhdGVQQ0ludGVybmFsKFBsYXRmb3JtUmVnaXN0ZXJzJiByZWdzKQog
ICAgIHZvaWQqIGNhbmRpZGF0ZVBDID0gYXJtX3RocmVhZF9zdGF0ZTY0X2dldF9wY19mcHRyKHJl
Z3MpOwogCiAjaWYgVVNFKFVOVEFHR0VEX1RIUkVBRF9TVEFURV9QVFIpCi0gICAgaWYgKGNhbmRp
ZGF0ZVBDICYmIGlzVGFnZ2VkV2l0aDxDRnVuY3Rpb25QdHJUYWc+KGNhbmRpZGF0ZVBDKSkKKyAg
ICBpZiAoY2FuZGlkYXRlUEMgJiYgaXNUYWdnZWRXaXRoKGNhbmRpZGF0ZVBDLCBDRnVuY3Rpb25Q
dHJUYWcpKQogICAgICAgICByZXR1cm4gcmV0YWdDb2RlUHRyPENGdW5jdGlvblB0clRhZywgUGxh
dGZvcm1SZWdpc3RlcnNQQ1B0clRhZz4oY2FuZGlkYXRlUEMpOwogICAgIGNhbmRpZGF0ZVBDID0g
Yml0d2lzZV9jYXN0PHZvaWQqPihhcm1fdGhyZWFkX3N0YXRlNjRfZ2V0X3BjKHJlZ3MpKTsKICAg
ICBpZiAoIWNhbmRpZGF0ZVBDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUHRyVGFnLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9QdHJUYWcuaAppbmRleCA2ZjFlNjY4NWYzNTgzY2I0YTQ0MjI1MjRl
NWY4YTMyMTU5MzFmOWMyLi42OGVkN2QxZDI0ZjkxYTQ4ZWI5YTZhMGYwMjUyYTc3NTBkZGFiNTVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QdHJUYWcuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9QdHJUYWcuaApAQCAtMTkzLDE0ICsxOTMsMjYgQEAgaW5saW5lIFB0clR5cGUgdGFnQ29kZVB0
ckltcGwoUHRyVHlwZSBwdHIsIFB0clRhZyB0YWcpCiAgICAgcmV0dXJuIHB0cmF1dGhfc2lnbl91
bmF1dGhlbnRpY2F0ZWQocHRyLCBwdHJhdXRoX2tleV9wcm9jZXNzX2RlcGVuZGVudF9jb2RlLCB0
YWcpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFt
ZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZSAmJiAh
c3RkOjppc19zYW1lPFQsIFB0clR5cGU+Ojp2YWx1ZT4+CitpbmxpbmUgVCB0YWdDb2RlUHRyKFB0
clR5cGUgcHRyLCBQdHJUYWcgdGFnKQoreworICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8VD4odGFn
Q29kZVB0ckltcGw8UHRyVGFnQWN0aW9uOjpEZWJ1Z0Fzc2VydD4ocHRyLCB0YWcpKTsKK30KKwog
dGVtcGxhdGU8dHlwZW5hbWUgVCwgUHRyVGFnIHRhZywgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5h
bWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+Pgog
aW5saW5lIFQgdGFnQ29kZVB0cihQdHJUeXBlIHB0cikKIHsKICAgICByZXR1cm4gYml0d2lzZV9j
YXN0PFQ+KHRhZ0NvZGVQdHJJbXBsPFB0clRhZ0FjdGlvbjo6RGVidWdBc3NlcnQ+KHB0ciwgdGFn
KSk7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGUsIHR5cGVuYW1lID0gc3RkOjplbmFi
bGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlPj4KK2lubGluZSBQdHJUeXBl
IHRhZ0NvZGVQdHIoUHRyVHlwZSBwdHIsIFB0clRhZyB0YWcpCit7CisgICAgcmV0dXJuIHRhZ0Nv
ZGVQdHJJbXBsPFB0clRhZ0FjdGlvbjo6RGVidWdBc3NlcnQ+KHB0ciwgdGFnKTsKK30KKwogdGVt
cGxhdGU8UHRyVGFnIHRhZywgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJs
ZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgotaW5saW5lIFB0clR5cGUg
dGFnQ29kZVB0cihQdHJUeXBlIHB0cikgeyByZXR1cm4gdGFnQ29kZVB0ckltcGw8UHRyVGFnQWN0
aW9uOjpEZWJ1Z0Fzc2VydCwgUHRyVHlwZT4ocHRyLCB0YWcpOyB9CitpbmxpbmUgUHRyVHlwZSB0
YWdDb2RlUHRyKFB0clR5cGUgcHRyKSB7IHJldHVybiB0YWdDb2RlUHRyKHB0ciwgdGFnKTsgfQog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBQdHJUeXBlPgogaW5saW5lIFB0clR5cGUgdW50YWdDb2RlUHRy
SW1wbEhlbHBlcihQdHJUeXBlIHB0ciwgUHRyVGFnIHRhZykKQEAgLTIyMiwxNyArMjM0LDI2IEBA
IGlubGluZSBQdHJUeXBlIHVudGFnQ29kZVB0ckltcGwoUHRyVHlwZSBwdHIsIFB0clRhZyB0YWcp
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
UHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJU
eXBlPjo6dmFsdWUgJiYgIXN0ZDo6aXNfc2FtZTxULCBQdHJUeXBlPjo6dmFsdWU+PgoraW5saW5l
IFQgdW50YWdDb2RlUHRyKFB0clR5cGUgcHRyLCBQdHJUYWcgdGFnKQoreworICAgIHJldHVybiBi
aXR3aXNlX2Nhc3Q8VD4odW50YWdDb2RlUHRySW1wbDxQdHJUYWdBY3Rpb246OkRlYnVnQXNzZXJ0
PihwdHIsIHRhZykpOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBQdHJUYWcgdGFnLCB0eXBl
bmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVy
PFB0clR5cGU+Ojp2YWx1ZT4+CiBpbmxpbmUgVCB1bnRhZ0NvZGVQdHIoUHRyVHlwZSBwdHIpCiB7
CiAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxUPih1bnRhZ0NvZGVQdHJJbXBsPFB0clRhZ0FjdGlv
bjo6RGVidWdBc3NlcnQ+KHB0ciwgdGFnKSk7CiB9CiAKLXRlbXBsYXRlPFB0clRhZyB0YWcsIHR5
cGVuYW1lIFB0clR5cGUsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50
ZXI8UHRyVHlwZT46OnZhbHVlPj4KLWlubGluZSBQdHJUeXBlIHVudGFnQ29kZVB0cihQdHJUeXBl
IHB0cikgeyByZXR1cm4gdW50YWdDb2RlUHRySW1wbDxQdHJUYWdBY3Rpb246OkRlYnVnQXNzZXJ0
LCBQdHJUeXBlPihwdHIsIHRhZyk7IH0KLQogdGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZSwgdHlw
ZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+
PgotaW5saW5lIFB0clR5cGUgdW50YWdDb2RlUHRyKFB0clR5cGUgcHRyLCBQdHJUYWcgdGFnKSB7
IHJldHVybiB1bnRhZ0NvZGVQdHJJbXBsPFB0clRhZ0FjdGlvbjo6RGVidWdBc3NlcnQsIFB0clR5
cGU+KHB0ciwgdGFnKTsgfQoraW5saW5lIFB0clR5cGUgdW50YWdDb2RlUHRyKFB0clR5cGUgcHRy
LCBQdHJUYWcgdGFnKQoreworICAgIHJldHVybiB1bnRhZ0NvZGVQdHJJbXBsPFB0clRhZ0FjdGlv
bjo6RGVidWdBc3NlcnQ+KHB0ciwgdGFnKTsKK30KKwordGVtcGxhdGU8UHRyVGFnIHRhZywgdHlw
ZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRl
cjxQdHJUeXBlPjo6dmFsdWU+PgoraW5saW5lIFB0clR5cGUgdW50YWdDb2RlUHRyKFB0clR5cGUg
cHRyKSB7IHJldHVybiB1bnRhZ0NvZGVQdHIocHRyLCB0YWcpOyB9CiAKIHRlbXBsYXRlPFB0clRh
Z0FjdGlvbiB0YWdBY3Rpb24sIHR5cGVuYW1lIFB0clR5cGU+CiBpbmxpbmUgUHRyVHlwZSByZXRh
Z0NvZGVQdHJJbXBsSGVscGVyKFB0clR5cGUgcHRyLCBQdHJUYWcgb2xkVGFnLCBQdHJUYWcgbmV3
VGFnKQpAQCAtMjgyLDYzICszMDMsNiBAQCBpbmxpbmUgUHRyVHlwZSByZXRhZ0NvZGVQdHIoUHRy
VHlwZSBwdHIsIFB0clRhZyBvbGRUYWcsIFB0clRhZyBuZXdUYWcpCiB0ZW1wbGF0ZTxQdHJUYWcg
b2xkVGFnLCBQdHJUYWcgbmV3VGFnLCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6
ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZT4+CiBpbmxpbmUgUHRy
VHlwZSByZXRhZ0NvZGVQdHIoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIHJldGFnQ29kZVB0cihwdHIs
IG9sZFRhZywgbmV3VGFnKTsgfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBQdHJUeXBlPgotdm9pZCBh
c3NlcnRJc0NGdW5jdGlvblB0cihQdHJUeXBlIHZhbHVlKQotewotICAgIHZvaWQqIHB0ciA9IGJp
dHdpc2VfY2FzdDx2b2lkKj4odmFsdWUpOwotICAgIFdURl9QVFJUQUdfQVNTRVJUKFB0clRhZ0Fj
dGlvbjo6RGVidWdBc3NlcnQsIHB0ciwgQ0Z1bmN0aW9uUHRyVGFnLCBwdHIgPT0gdGFnQ29kZVB0
ckltcGw8UHRyVGFnQWN0aW9uOjpOb0Fzc2VydD4ocmVtb3ZlQ29kZVB0clRhZyhwdHIpLCBDRnVu
Y3Rpb25QdHJUYWcpKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZT4KLXZvaWQgYXNz
ZXJ0SXNOdWxsT3JDRnVuY3Rpb25QdHIoUHRyVHlwZSBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAg
ICAgICAgYXNzZXJ0SXNDRnVuY3Rpb25QdHIocHRyKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUg
UHRyVHlwZT4KLXZvaWQgYXNzZXJ0SXNOb3RUYWdnZWQoUHRyVHlwZSB2YWx1ZSkKLXsKLSAgICB2
b2lkKiBwdHIgPSBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHZhbHVlKTsKLSAgICBXVEZfUFRSVEFHX0FT
U0VSVChQdHJUYWdBY3Rpb246OkRlYnVnQXNzZXJ0LCBwdHIsIE5vUHRyVGFnLCBwdHIgPT0gcmVt
b3ZlQ29kZVB0clRhZyhwdHIpKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZT4KLXZv
aWQgYXNzZXJ0SXNUYWdnZWQoUHRyVHlwZSB2YWx1ZSkKLXsKLSAgICB2b2lkKiBwdHIgPSBiaXR3
aXNlX2Nhc3Q8dm9pZCo+KHZhbHVlKTsKLSAgICBXVEZfUFRSVEFHX0FTU0VSVChQdHJUYWdBY3Rp
b246OkRlYnVnQXNzZXJ0LCBwdHIsIEFueVB0clRhZywgcHRyICE9IHJlbW92ZUNvZGVQdHJUYWco
cHRyKSk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGU+Ci12b2lkIGFzc2VydElzTnVs
bE9yVGFnZ2VkKFB0clR5cGUgcHRyKQotewotICAgIGlmIChwdHIpCi0gICAgICAgIGFzc2VydElz
VGFnZ2VkKHB0cik7Ci19Ci0KLXRlbXBsYXRlPFB0clRhZyB0YWcsIHR5cGVuYW1lIFB0clR5cGU+
Ci1ib29sIGlzVGFnZ2VkV2l0aChQdHJUeXBlIHZhbHVlKQotewotICAgIHZvaWQqIHB0ciA9IGJp
dHdpc2VfY2FzdDx2b2lkKj4odmFsdWUpOwotICAgIGlmICh0YWcgPT0gTm9QdHJUYWcpCi0gICAg
ICAgIHJldHVybiBwdHIgPT0gcmVtb3ZlQ29kZVB0clRhZyhwdHIpOwotICAgIHJldHVybiBwdHIg
PT0gdGFnQ29kZVB0ckltcGw8UHRyVGFnQWN0aW9uOjpOb0Fzc2VydD4ocmVtb3ZlQ29kZVB0clRh
ZyhwdHIpLCB0YWcpOwotfQotCi10ZW1wbGF0ZTxQdHJUYWcgdGFnLCB0eXBlbmFtZSBQdHJUeXBl
Pgotdm9pZCBhc3NlcnRJc1RhZ2dlZFdpdGgoUHRyVHlwZSB2YWx1ZSkKLXsKLSAgICBXVEZfUFRS
VEFHX0FTU0VSVChQdHJUYWdBY3Rpb246OkRlYnVnQXNzZXJ0LCB2YWx1ZSwgdGFnLCBpc1RhZ2dl
ZFdpdGg8dGFnPih2YWx1ZSkpOwotfQotCi10ZW1wbGF0ZTxQdHJUYWcgdGFnLCB0eXBlbmFtZSBQ
dHJUeXBlPgotdm9pZCBhc3NlcnRJc051bGxPclRhZ2dlZFdpdGgoUHRyVHlwZSBwdHIpCi17Ci0g
ICAgaWYgKHB0cikKLSAgICAgICAgYXNzZXJ0SXNUYWdnZWRXaXRoPHRhZz4ocHRyKTsKLX0KLQog
dGVtcGxhdGU8UHRyVGFnQWN0aW9uIHRhZ0FjdGlvbiwgdHlwZW5hbWUgUHRyVHlwZT4KIGlubGlu
ZSBQdHJUeXBlIHRhZ0NGdW5jdGlvblB0ckltcGwoUHRyVHlwZSBwdHIsIFB0clRhZyB0YWcpCiB7
CkBAIC0zNDgsMTkgKzMxMiwzMSBAQCBpbmxpbmUgUHRyVHlwZSB0YWdDRnVuY3Rpb25QdHJJbXBs
KFB0clR5cGUgcHRyLCBQdHJUYWcgdGFnKQogICAgIHJldHVybiByZXRhZ0NvZGVQdHJJbXBsPHRh
Z0FjdGlvbj4ocHRyLCBDRnVuY3Rpb25QdHJUYWcsIHRhZyk7CiB9CiAKK3RlbXBsYXRlPHR5cGVu
YW1lIFQsIHR5cGVuYW1lIFB0clR5cGUsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6
OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlICYmICFzdGQ6OmlzX3NhbWU8VCwgUHRyVHlwZT46
OnZhbHVlPj4KK2lubGluZSBUIHRhZ0NGdW5jdGlvblB0cihQdHJUeXBlIHB0ciwgUHRyVGFnIHRh
ZykKK3sKKyAgICByZXR1cm4gYml0d2lzZV9jYXN0PFQ+KHRhZ0NGdW5jdGlvblB0ckltcGw8UHRy
VGFnQWN0aW9uOjpEZWJ1Z0Fzc2VydD4ocHRyLCB0YWcpKTsKK30KKwogdGVtcGxhdGU8dHlwZW5h
bWUgVCwgUHRyVGFnIHRhZywgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJs
ZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgogaW5saW5lIFQgdGFnQ0Z1
bmN0aW9uUHRyKFB0clR5cGUgcHRyKQogewogICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8VD4odGFn
Q0Z1bmN0aW9uUHRySW1wbDxQdHJUYWdBY3Rpb246OkRlYnVnQXNzZXJ0PihwdHIsIHRhZykpOwog
fQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lm
X3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZT4+CitpbmxpbmUgUHRyVHlwZSB0YWdD
RnVuY3Rpb25QdHIoUHRyVHlwZSBwdHIsIFB0clRhZyB0YWcpCit7CisgICAgcmV0dXJuIHRhZ0NG
dW5jdGlvblB0ckltcGw8UHRyVGFnQWN0aW9uOjpEZWJ1Z0Fzc2VydD4ocHRyLCB0YWcpOworfQor
CiB0ZW1wbGF0ZTxQdHJUYWcgdGFnLCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6
ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZT4+Ci1pbmxpbmUgUHRy
VHlwZSB0YWdDRnVuY3Rpb25QdHIoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIHRhZ0NGdW5jdGlvblB0
ckltcGw8UHRyVGFnQWN0aW9uOjpEZWJ1Z0Fzc2VydD4ocHRyLCB0YWcpOyB9CitpbmxpbmUgUHRy
VHlwZSB0YWdDRnVuY3Rpb25QdHIoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIHRhZ0NGdW5jdGlvblB0
cihwdHIsIHRhZyk7IH0KIAogdGVtcGxhdGU8UHRyVGFnIG5ld1RhZywgdHlwZW5hbWUgRnVuY3Rp
b25UeXBlLCBjbGFzcyA9IHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfcG9pbnRlcjxG
dW5jdGlvblR5cGU+Ojp2YWx1ZSAmJiBzdGQ6OmlzX2Z1bmN0aW9uPHR5cGVuYW1lIHN0ZDo6cmVt
b3ZlX3BvaW50ZXI8RnVuY3Rpb25UeXBlPjo6dHlwZT46OnZhbHVlPjo6dHlwZT4KIGlubGluZSBG
dW5jdGlvblR5cGUgdGFnQ0Z1bmN0aW9uKEZ1bmN0aW9uVHlwZSBmdW5jKQogewotICAgIGFzc2Vy
dElzVGFnZ2VkV2l0aDxDRnVuY3Rpb25QdHJUYWc+KGZ1bmMpOworICAgIEFTU0VSVChpc1RhZ2dl
ZFdpdGgoZnVuYywgQ0Z1bmN0aW9uUHRyVGFnKSk7CiAgICAgQVNTRVJUKG5ld1RhZyAhPSBDRnVu
Y3Rpb25QdHJUYWcpOwogICAgIHJldHVybiBwdHJhdXRoX2F1dGhfYW5kX3Jlc2lnbihmdW5jLCBw
dHJhdXRoX2tleV9mdW5jdGlvbl9wb2ludGVyLCAwLCBwdHJhdXRoX2tleV9wcm9jZXNzX2RlcGVu
ZGVudF9jb2RlLCBuZXdUYWcpOwogfQpAQCAtMzgwLDYgKzM1NiwxMiBAQCBpbmxpbmUgUHRyVHlw
ZSB1bnRhZ0NGdW5jdGlvblB0ckltcGwoUHRyVHlwZSBwdHIsIFB0clRhZyB0YWcpCiAgICAgcmV0
dXJuIHJldGFnQ29kZVB0ckltcGw8dGFnQWN0aW9uPihwdHIsIHRhZywgQ0Z1bmN0aW9uUHRyVGFn
KTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUg
PSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWUgJiYgIXN0
ZDo6aXNfc2FtZTxULCBQdHJUeXBlPjo6dmFsdWU+PgoraW5saW5lIFQgdW50YWdDRnVuY3Rpb25Q
dHIoUHRyVHlwZSBwdHIsIFB0clRhZyB0YWcpCit7CisgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxU
Pih1bnRhZ0NGdW5jdGlvblB0ckltcGw8UHRyVGFnQWN0aW9uOjpEZWJ1Z0Fzc2VydD4ocHRyLCB0
YWcpKTsKK30KKwogdGVtcGxhdGU8dHlwZW5hbWUgVCwgUHRyVGFnIHRhZywgdHlwZW5hbWUgUHRy
VHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBl
Pjo6dmFsdWU+PgogaW5saW5lIFQgdW50YWdDRnVuY3Rpb25QdHIoUHRyVHlwZSBwdHIpCiB7CkBA
IC0zOTIsMTYgKzM3NCw3OSBAQCBpbmxpbmUgVCB1bnRhZ0NGdW5jdGlvblB0cihQdHJUeXBlIHB0
cikKICAgICByZXR1cm4gYml0d2lzZV9jYXN0PFQ+KHVudGFnQ0Z1bmN0aW9uUHRySW1wbDx0YWdB
Y3Rpb24+KHB0ciwgdGFnKSk7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGUsIHR5cGVu
YW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlPj4K
K2lubGluZSBQdHJUeXBlIHVudGFnQ0Z1bmN0aW9uUHRyKFB0clR5cGUgcHRyLCBQdHJUYWcgdGFn
KQoreworICAgIHJldHVybiB1bnRhZ0NGdW5jdGlvblB0ckltcGw8UHRyVGFnQWN0aW9uOjpEZWJ1
Z0Fzc2VydD4ocHRyLCB0YWcpOworfQorCiB0ZW1wbGF0ZTxQdHJUYWcgdGFnLCB0eXBlbmFtZSBQ
dHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5
cGU+Ojp2YWx1ZT4+Ci1pbmxpbmUgUHRyVHlwZSB1bnRhZ0NGdW5jdGlvblB0cihQdHJUeXBlIHB0
cikgeyByZXR1cm4gdW50YWdDRnVuY3Rpb25QdHJJbXBsPFB0clRhZ0FjdGlvbjo6RGVidWdBc3Nl
cnQ+KHB0ciwgdGFnKTsgfQoraW5saW5lIFB0clR5cGUgdW50YWdDRnVuY3Rpb25QdHIoUHRyVHlw
ZSBwdHIpIHsgcmV0dXJuIHVudGFnQ0Z1bmN0aW9uUHRyKHB0ciwgdGFnKTsgfQogCi10ZW1wbGF0
ZSA8UHRyVGFnIHRhZywgdHlwZW5hbWUgSW50VHlwZT4KLWlubGluZSBJbnRUeXBlIHRhZ0ludChJ
bnRUeXBlIHB0ckludCkKK3RlbXBsYXRlIDx0eXBlbmFtZSBJbnRUeXBlPgoraW5saW5lIEludFR5
cGUgdGFnSW50KEludFR5cGUgcHRySW50LCBQdHJUYWcgdGFnKQogewogICAgIHN0YXRpY19hc3Nl
cnQoc2l6ZW9mKEludFR5cGUpID09IHNpemVvZih1aW50cHRyX3QpLCAiIik7CiAgICAgcmV0dXJu
IGJpdHdpc2VfY2FzdDxJbnRUeXBlPihwdHJhdXRoX3NpZ25fdW5hdXRoZW50aWNhdGVkKGJpdHdp
c2VfY2FzdDx2b2lkKj4ocHRySW50KSwgcHRyYXV0aF9rZXlfcHJvY2Vzc19kZXBlbmRlbnRfZGF0
YSwgdGFnKSk7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGU+Cit2b2lkIGFzc2VydElz
Q0Z1bmN0aW9uUHRyKFB0clR5cGUgdmFsdWUpCit7CisgICAgdm9pZCogcHRyID0gYml0d2lzZV9j
YXN0PHZvaWQqPih2YWx1ZSk7CisgICAgV1RGX1BUUlRBR19BU1NFUlQoUHRyVGFnQWN0aW9uOjpE
ZWJ1Z0Fzc2VydCwgcHRyLCBDRnVuY3Rpb25QdHJUYWcsIHB0ciA9PSB0YWdDb2RlUHRySW1wbDxQ
dHJUYWdBY3Rpb246Ok5vQXNzZXJ0PihyZW1vdmVDb2RlUHRyVGFnKHB0ciksIENGdW5jdGlvblB0
clRhZykpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBQdHJUeXBlPgordm9pZCBhc3NlcnRJc051
bGxPckNGdW5jdGlvblB0cihQdHJUeXBlIHB0cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICBh
c3NlcnRJc0NGdW5jdGlvblB0cihwdHIpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBQdHJUeXBl
Pgordm9pZCBhc3NlcnRJc05vdFRhZ2dlZChQdHJUeXBlIHZhbHVlKQoreworICAgIHZvaWQqIHB0
ciA9IGJpdHdpc2VfY2FzdDx2b2lkKj4odmFsdWUpOworICAgIFdURl9QVFJUQUdfQVNTRVJUKFB0
clRhZ0FjdGlvbjo6RGVidWdBc3NlcnQsIHB0ciwgTm9QdHJUYWcsIHB0ciA9PSByZW1vdmVDb2Rl
UHRyVGFnKHB0cikpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBQdHJUeXBlPgordm9pZCBhc3Nl
cnRJc1RhZ2dlZChQdHJUeXBlIHZhbHVlKQoreworICAgIHZvaWQqIHB0ciA9IGJpdHdpc2VfY2Fz
dDx2b2lkKj4odmFsdWUpOworICAgIFdURl9QVFJUQUdfQVNTRVJUKFB0clRhZ0FjdGlvbjo6RGVi
dWdBc3NlcnQsIHB0ciwgQW55UHRyVGFnLCBwdHIgIT0gcmVtb3ZlQ29kZVB0clRhZyhwdHIpKTsK
K30KKwordGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZT4KK3ZvaWQgYXNzZXJ0SXNOdWxsT3JUYWdn
ZWQoUHRyVHlwZSBwdHIpCit7CisgICAgaWYgKHB0cikKKyAgICAgICAgYXNzZXJ0SXNUYWdnZWQo
cHRyKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZT4KK2Jvb2wgaXNUYWdnZWRXaXRo
KFB0clR5cGUgdmFsdWUsIFB0clRhZyB0YWcpCit7CisgICAgdm9pZCogcHRyID0gYml0d2lzZV9j
YXN0PHZvaWQqPih2YWx1ZSk7CisgICAgaWYgKHRhZyA9PSBOb1B0clRhZykKKyAgICAgICAgcmV0
dXJuIHB0ciA9PSByZW1vdmVDb2RlUHRyVGFnKHB0cik7CisgICAgcmV0dXJuIHB0ciA9PSB0YWdD
b2RlUHRySW1wbDxQdHJUYWdBY3Rpb246Ok5vQXNzZXJ0PihyZW1vdmVDb2RlUHRyVGFnKHB0ciks
IHRhZyk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGU+Cit2b2lkIGFzc2VydElzVGFn
Z2VkV2l0aChQdHJUeXBlIHZhbHVlLCBQdHJUYWcgdGFnKQoreworICAgIFdURl9QVFJUQUdfQVNT
RVJUKFB0clRhZ0FjdGlvbjo6RGVidWdBc3NlcnQsIHZhbHVlLCB0YWcsIGlzVGFnZ2VkV2l0aCh2
YWx1ZSwgdGFnKSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGU+Cit2b2lkIGFzc2Vy
dElzTnVsbE9yVGFnZ2VkV2l0aChQdHJUeXBlIHB0ciwgUHRyVGFnIHRhZykKK3sKKyAgICBpZiAo
cHRyKQorICAgICAgICBhc3NlcnRJc1RhZ2dlZFdpdGgocHRyLCB0YWcpOworfQorCiBpbmxpbmUg
Ym9vbCB1c2VzUG9pbnRlclRhZ2dpbmcoKSB7IHJldHVybiB0cnVlOyB9CiAKIC8vIHZ0YmwgZnVu
Y3Rpb24gcG9pbnRlcnMgbmVlZCB0byBzaWduIHdpdGggcHRyYXV0aF9rZXlfcHJvY2Vzc19pbmRl
cGVuZGVudF9jb2RlCkBAIC00NDksMTUgKzQ5NCwyNyBAQCBpbmxpbmUgVCogcmV0YWdBcnJheVB0
cihUKiBwdHIsIHNpemVfdCwgc2l6ZV90KQogfQogCiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5
cGVuYW1lIFB0clR5cGUsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50
ZXI8UHRyVHlwZT46OnZhbHVlICYmICFzdGQ6OmlzX3NhbWU8VCwgUHRyVHlwZT46OnZhbHVlPj4K
K2NvbnN0ZXhwciBUIHRhZ0NvZGVQdHIoUHRyVHlwZSBwdHIsIFB0clRhZykgeyByZXR1cm4gYml0
d2lzZV9jYXN0PFQ+KHB0cik7IH0KKwogdGVtcGxhdGU8dHlwZW5hbWUgVCwgUHRyVGFnLCB0eXBl
bmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVy
PFB0clR5cGU+Ojp2YWx1ZT4+CiBpbmxpbmUgVCB0YWdDb2RlUHRyKFB0clR5cGUgcHRyKSB7IHJl
dHVybiBiaXR3aXNlX2Nhc3Q8VD4ocHRyKTsgfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBQdHJUeXBl
LCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2
YWx1ZT4+Citjb25zdGV4cHIgUHRyVHlwZSB0YWdDb2RlUHRyKFB0clR5cGUgcHRyLCBQdHJUYWcp
IHsgcmV0dXJuIHB0cjsgfQorCiB0ZW1wbGF0ZTxQdHJUYWcsIHR5cGVuYW1lIFB0clR5cGUsIHR5
cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVl
Pj4KIGlubGluZSBQdHJUeXBlIHRhZ0NvZGVQdHIoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIHB0cjsg
fQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0
ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZSAmJiAhc3RkOjpp
c19zYW1lPFQsIFB0clR5cGU+Ojp2YWx1ZT4+Citjb25zdGV4cHIgVCB1bnRhZ0NvZGVQdHIoUHRy
VHlwZSBwdHIsIFB0clRhZykgeyByZXR1cm4gYml0d2lzZV9jYXN0PFQ+KHB0cik7IH0KKwogdGVt
cGxhdGU8dHlwZW5hbWUgVCwgUHRyVGFnLCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0
ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZT4+CiBpbmxpbmUg
VCB1bnRhZ0NvZGVQdHIoUHRyVHlwZSBwdHIpICB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8VD4ocHRy
KTsgfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxl
X2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZT4+Citjb25zdGV4cHIgUHRyVHlw
ZSB1bnRhZ0NvZGVQdHIoUHRyVHlwZSBwdHIsIFB0clRhZykgeyByZXR1cm4gcHRyOyB9CisKIHRl
bXBsYXRlPFB0clRhZywgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9p
Zl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgogaW5saW5lIFB0clR5cGUgdW50
YWdDb2RlUHRyKFB0clR5cGUgcHRyKSB7IHJldHVybiBwdHI7IH0KIApAQCAtNDc5LDkgKzUzNiwx
NSBAQCBjb25zdGV4cHIgVCByZW1vdmVDb2RlUHRyVGFnKFB0clR5cGUgcHRyKSB7IHJldHVybiBi
aXR3aXNlX2Nhc3Q8VD4ocHRyKTsgfQogdGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5h
bWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+Pgog
Y29uc3RleHByIFB0clR5cGUgcmVtb3ZlQ29kZVB0clRhZyhQdHJUeXBlIHB0cikgeyByZXR1cm4g
cHRyOyB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFB0clR5cGUsIHR5cGVuYW1l
ID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlICYmICFz
dGQ6OmlzX3NhbWU8VCwgUHRyVHlwZT46OnZhbHVlPj4KK2lubGluZSBUIHRhZ0NGdW5jdGlvblB0
cihQdHJUeXBlIHB0ciwgUHRyVGFnKSB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8VD4ocHRyKTsgfQor
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBQdHJUYWcsIHR5cGVuYW1lIFB0clR5cGUsIHR5cGVuYW1l
ID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlPj4KIGlu
bGluZSBUIHRhZ0NGdW5jdGlvblB0cihQdHJUeXBlIHB0cikgeyByZXR1cm4gYml0d2lzZV9jYXN0
PFQ+KHB0cik7IH0KIAordGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6
OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgoraW5saW5lIFB0
clR5cGUgdGFnQ0Z1bmN0aW9uUHRyKFB0clR5cGUgcHRyLCBQdHJUYWcpIHsgcmV0dXJuIHB0cjsg
fQorCiB0ZW1wbGF0ZTxQdHJUYWcsIHR5cGVuYW1lIFB0clR5cGUsIHR5cGVuYW1lID0gc3RkOjpl
bmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlPj4KIGlubGluZSBQdHJU
eXBlIHRhZ0NGdW5jdGlvblB0cihQdHJUeXBlIHB0cikgeyByZXR1cm4gcHRyOyB9CiAKQEAgLTQ5
NCwxNCArNTU3LDIwIEBAIGlubGluZSBSZXR1cm5UeXBlIHRhZ0NGdW5jdGlvbihGdW5jdGlvblR5
cGUgZnVuYykKICAgICByZXR1cm4gYml0d2lzZV9jYXN0PFJldHVyblR5cGU+KHRhZ0NGdW5jdGlv
bjxuZXdUYWc+KGZ1bmMpKTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUHRy
VHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBl
Pjo6dmFsdWUgJiYgIXN0ZDo6aXNfc2FtZTxULCBQdHJUeXBlPjo6dmFsdWU+PgoraW5saW5lIFQg
dW50YWdDRnVuY3Rpb25QdHIoUHRyVHlwZSBwdHIsIFB0clRhZykgeyByZXR1cm4gYml0d2lzZV9j
YXN0PFQ+KHB0cik7IH0KKwogdGVtcGxhdGU8dHlwZW5hbWUgVCwgUHRyVGFnLCB0eXBlbmFtZSBQ
dHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5
cGU+Ojp2YWx1ZT4+CiBpbmxpbmUgVCB1bnRhZ0NGdW5jdGlvblB0cihQdHJUeXBlIHB0cikgeyBy
ZXR1cm4gYml0d2lzZV9jYXN0PFQ+KHB0cik7IH0KIAordGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlw
ZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6
dmFsdWU+PgoraW5saW5lIFB0clR5cGUgdW50YWdDRnVuY3Rpb25QdHIoUHRyVHlwZSBwdHIsIFB0
clRhZykgeyByZXR1cm4gcHRyOyB9CisKIHRlbXBsYXRlPFB0clRhZywgdHlwZW5hbWUgUHRyVHlw
ZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6
dmFsdWU+PgogaW5saW5lIFB0clR5cGUgdW50YWdDRnVuY3Rpb25QdHIoUHRyVHlwZSBwdHIpIHsg
cmV0dXJuIHB0cjsgfQogCi10ZW1wbGF0ZSA8UHRyVGFnLCB0eXBlbmFtZSBJbnRUeXBlPgotaW5s
aW5lIEludFR5cGUgdGFnSW50KEludFR5cGUgcHRySW50KQordGVtcGxhdGUgPHR5cGVuYW1lIElu
dFR5cGU+CitpbmxpbmUgSW50VHlwZSB0YWdJbnQoSW50VHlwZSBwdHJJbnQsIFB0clRhZykKIHsK
ICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihJbnRUeXBlKSA9PSBzaXplb2YodWludHB0cl90KSwg
IiIpOwogICAgIHJldHVybiBwdHJJbnQ7CkBAIC01MTQsMTAgKzU4MywxMCBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBQdHJUeXBlPiB2b2lkIGFzc2VydElzTm90VGFnZ2VkKFB0clR5cGUpIHsgfQogdGVt
cGxhdGU8dHlwZW5hbWUgUHRyVHlwZT4gdm9pZCBhc3NlcnRJc1RhZ2dlZChQdHJUeXBlKSB7IH0K
IHRlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGU+IHZvaWQgYXNzZXJ0SXNOdWxsT3JUYWdnZWQoUHRy
VHlwZSkgeyB9CiAKLXRlbXBsYXRlPFB0clRhZywgdHlwZW5hbWUgUHRyVHlwZT4gYm9vbCBpc1Rh
Z2dlZFdpdGgoUHRyVHlwZSkgeyByZXR1cm4gZmFsc2U7IH0KK3RlbXBsYXRlPHR5cGVuYW1lIFB0
clR5cGU+IGJvb2wgaXNUYWdnZWRXaXRoKFB0clR5cGUsIFB0clRhZykgeyByZXR1cm4gZmFsc2U7
IH0KIAotdGVtcGxhdGU8UHRyVGFnLCB0eXBlbmFtZSBQdHJUeXBlPiB2b2lkIGFzc2VydElzVGFn
Z2VkV2l0aChQdHJUeXBlKSB7IH0KLXRlbXBsYXRlPFB0clRhZywgdHlwZW5hbWUgUHRyVHlwZT4g
dm9pZCBhc3NlcnRJc051bGxPclRhZ2dlZFdpdGgoUHRyVHlwZSkgeyB9Cit0ZW1wbGF0ZTx0eXBl
bmFtZSBQdHJUeXBlPiB2b2lkIGFzc2VydElzVGFnZ2VkV2l0aChQdHJUeXBlLCBQdHJUYWcpIHsg
fQordGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZT4gdm9pZCBhc3NlcnRJc051bGxPclRhZ2dlZFdp
dGgoUHRyVHlwZSwgUHRyVGFnKSB7IH0KIAogaW5saW5lIGJvb2wgdXNlc1BvaW50ZXJUYWdnaW5n
KCkgeyByZXR1cm4gZmFsc2U7IH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>