<?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>192715</bug_id>
          
          <creation_ts>2018-12-14 13:30:32 -0800</creation_ts>
          <short_desc>REGRESSION(r239153): Caused flaky GC-related crashes seen with layout tests (Requested by ryanhaddad on #webkit).</short_desc>
          <delta_ts>2018-12-14 13:41:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>190047</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>keith_miller</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1488031</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-14 13:30:32 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/239153 broke the build:
Caused flaky GC-related crashes seen with layout tests (Requested by ryanhaddad on #webkit).

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

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

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

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488039</commentid>
    <comment_count>2</comment_count>
      <attachid>357335</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-14 13:40:35 -0800</bug_when>
    <thetext>Comment on attachment 357335
ROLLOUT of r239153

Clearing flags on attachment: 357335

Committed r239231: &lt;https://trac.webkit.org/changeset/239231&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488040</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-14 13:40:36 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488045</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-12-14 13:41:27 -0800</bug_when>
    <thetext>&lt;rdar://problem/46740313&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357335</attachid>
            <date>2018-12-14 13:30:44 -0800</date>
            <delta_ts>2018-12-14 13:40:35 -0800</delta_ts>
            <desc>ROLLOUT of r239153</desc>
            <filename>bug-192715-20181214133043.patch</filename>
            <type>text/plain</type>
            <size>52586</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
OTFiODRkODY3YTRiOGU0OWE3ZWM1ZmIyMjhlNjg3ZDU5NDNhM2FlLi5iMDJmZWI4YzYzN2MwYWFm
YzhkNzMyN2Q1OTQ0ZDE4Y2I2ZDgzZDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAxOC0xMi0xNCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIzOTE1MywgcjIzOTE1
NCwgYW5kIHIyMzkxNTUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTI3MTUKKworICAgICAgICBDYXVzZWQgZmxha3kgR0MtcmVsYXRlZCBjcmFzaGVz
IHNlZW4gd2l0aCBsYXlvdXQgdGVzdHMKKyAgICAgICAgKFJlcXVlc3RlZCBieSByeWFuaGFkZGFk
IG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldHM6CisKKyAgICAgICAg
IltKU0NdIE9wdGltaXplIE9iamVjdC5rZXlzIGJ5IGNhY2hpbmcgb3duIGtleXMgcmVzdWx0cyBp
bgorICAgICAgICBTdHJ1Y3R1cmVSYXJlRGF0YSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDA0NworICAgICAgICBodHRwczovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvMjM5MTUzCisKKyAgICAgICAgIlVucmV2aWV3ZWQsIGJ1aWxkIGZpeCBh
ZnRlciByMjM5MTUzIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTkwMDQ3CisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8y
MzkxNTQKKworICAgICAgICAiVW5yZXZpZXdlZCwgYnVpbGQgZml4IGFmdGVyIHIyMzkxNTMsIHBh
cnQgMiIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
MDA0NworICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjM5MTU1CisK
IDIwMTgtMTItMTQgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgQ2FsbGVycyBvZiBKU1N0cmluZzo6Z2V0SW5kZXggc2hvdWxkIGNoZWNrIGZvciBPT00g
ZXhjZXB0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0
cmFjdEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdB
YnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IDNiZmY5NDg3MTljNDQ4ZWFkMjg0MDAy
MzU4OGE1YTY0MzIxMjMzZjIuLjVmNWVjY2MzMzBjMjJiZThiZDkxZTFiNGNkN2I3NTk3MTRhMGRk
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRl
cnByZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3Ry
YWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTQzLDcgKzQzLDYgQEAKICNpbmNsdWRlICJPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiUHV0QnlJZFN0YXR1cy5oIgogI2luY2x1ZGUgIlN0cmluZ09i
amVjdC5oIgotI2luY2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oIgogI2luY2x1ZGUg
PHd0Zi9Cb29sZWFuTGF0dGljZS5oPgogI2luY2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5o
PgogCkBAIC0yNTgxLDMwICsyNTgwLDYgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3Ry
YWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogCi0gICAgY2FzZSBPYmplY3RLZXlzOiB7Ci0gICAgICAgIGlmIChu
b2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gT2JqZWN0VXNlKSB7Ci0gICAgICAgICAgICBhdXRv
JiBzdHJ1Y3R1cmVTZXQgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS5tX3N0cnVjdHVyZTsKLSAg
ICAgICAgICAgIGlmIChzdHJ1Y3R1cmVTZXQuaXNGaW5pdGUoKSAmJiBzdHJ1Y3R1cmVTZXQuc2l6
ZSgpID09IDEpIHsKLSAgICAgICAgICAgICAgICBSZWdpc3RlcmVkU3RydWN0dXJlIHN0cnVjdHVy
ZSA9IHN0cnVjdHVyZVNldC5vbmx5U3RydWN0dXJlKCk7Ci0gICAgICAgICAgICAgICAgaWYgKGF1
dG8qIHJhcmVEYXRhID0gc3RydWN0dXJlLT5yYXJlRGF0YUNvbmN1cnJlbnRseSgpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGF1dG8qIGltbXV0YWJsZUJ1dHRlcmZseSA9IHJhcmVEYXRhLT5jYWNo
ZWRPd25LZXlzQ29uY3VycmVudGx5KCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpbW11dGFi
bGVCdXR0ZXJmbHkgJiYgaW1tdXRhYmxlQnV0dGVyZmx5ICE9IG1fdm0uc2VudGluZWxJbW11dGFi
bGVCdXR0ZXJmbHkuZ2V0KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX2dyYXBo
LmlzV2F0Y2hpbmdIYXZpbmdBQmFkVGltZVdhdGNocG9pbnQobm9kZSkpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRpZEZvbGRDbG9iYmVyV29ybGQoKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZXRUeXBlRm9yTm9kZShub2RlLCBTcGVjQXJyYXkpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQot
ICAgICAgICB9Ci0KLSAgICAgICAgY2xvYmJlcldvcmxkKCk7Ci0gICAgICAgIHNldFR5cGVGb3JO
b2RlKG5vZGUsIFNwZWNBcnJheSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQogICAgIGNhc2Ug
VG9PYmplY3Q6CiAgICAgY2FzZSBDYWxsT2JqZWN0Q29uc3RydWN0b3I6IHsKICAgICAgICAgQWJz
dHJhY3RWYWx1ZSYgc291cmNlID0gZm9yTm9kZShub2RlLT5jaGlsZDEoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IGQ2ZTM4NDNh
OGQ4MzQ5NDkwMTU0ZTA4Nzc3Mjc0ZjA4NjU1ZjY1MGIuLjY0NmIwMmM0YThhODM0ZjgyNWRiNmUx
MDVhOGFjMTBjZmQyMjAzN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Qnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC0yNjkyLDE1ICsyNjkyLDYgQEAgYm9vbCBCeXRlQ29kZVBh
cnNlcjo6aGFuZGxlSW50cmluc2ljQ2FsbChOb2RlKiBjYWxsZWUsIFZpcnR1YWxSZWdpc3RlciBy
ZXN1bHQsIEkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgY2FzZSBPYmplY3RL
ZXlzSW50cmluc2ljOiB7Ci0gICAgICAgIGlmIChhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyA8
IDIpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgaW5zZXJ0Q2hlY2tzKCk7
Ci0gICAgICAgIHNldChyZXN1bHQsIGFkZFRvR3JhcGgoT2JqZWN0S2V5cywgZ2V0KHZpcnR1YWxS
ZWdpc3RlckZvckFyZ3VtZW50KDEsIHJlZ2lzdGVyT2Zmc2V0KSkpKTsKLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgfQotCiAgICAgY2FzZSBSZWZsZWN0R2V0UHJvdG90eXBlT2ZJbnRyaW5zaWM6
IHsKICAgICAgICAgaWYgKGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzICE9IDIpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6
ZS5oCmluZGV4IDI1MGVjMDA0NDNkMTJjMDYzYWE0M2VlZWJkYzQ4YzcwMjk0MTI1YTUuLjg3NDI0
MjA3YzQwMTY0ODNiZGJmYjQyMDI5OTBlMmEyN2VlOTlkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC02NjgsNyArNjY4LDYgQEAgdm9pZCBjbG9iYmVy
aXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNv
bnN0IFdyaXRlRnUKICAgICBjYXNlIENyZWF0ZVRoaXM6CiAgICAgY2FzZSBJbnN0YW5jZU9mOgog
ICAgIGNhc2UgU3RyaW5nVmFsdWVPZjoKLSAgICBjYXNlIE9iamVjdEtleXM6CiAgICAgICAgIHJl
YWQoV29ybGQpOwogICAgICAgICB3cml0ZShIZWFwKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTUz
MCw2ICsxNTI5LDcgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwg
Y29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgfQogICAgIH0K
IAorCiAgICAgY2FzZSBOZXdPYmplY3Q6CiAgICAgY2FzZSBOZXdSZWdleHA6CiAgICAgY2FzZSBO
ZXdTeW1ib2w6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0
YW50Rm9sZGluZ1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3Rh
bnRGb2xkaW5nUGhhc2UuY3BwCmluZGV4IDAzZjg0ZjU1ZmNmNTFkODFhZGNlODEyOTQ1ZTE1OGI0
M2ViOGYwYjAuLmZiMWY2ZGMyMzFhYmU0NDhkNWY5MTZjNjM0OGZkMWYxMzdmYmEwMjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhh
c2UuY3BwCkBAIC03NjYsMjYgKzc2Niw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGNhc2UgT2JqZWN0S2V5czogewotICAg
ICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gT2JqZWN0VXNlKSB7
Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8mIHN0cnVjdHVyZVNldCA9IG1fc3RhdGUuZm9yTm9k
ZShub2RlLT5jaGlsZDEoKSkubV9zdHJ1Y3R1cmU7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChz
dHJ1Y3R1cmVTZXQuaXNGaW5pdGUoKSAmJiBzdHJ1Y3R1cmVTZXQuc2l6ZSgpID09IDEpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyZWRTdHJ1Y3R1cmUgc3RydWN0dXJlID0gc3Ry
dWN0dXJlU2V0Lm9ubHlTdHJ1Y3R1cmUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChh
dXRvKiByYXJlRGF0YSA9IHN0cnVjdHVyZS0+cmFyZURhdGFDb25jdXJyZW50bHkoKSkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8qIGltbXV0YWJsZUJ1dHRlcmZseSA9IHJhcmVE
YXRhLT5jYWNoZWRPd25LZXlzQ29uY3VycmVudGx5KCk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKGltbXV0YWJsZUJ1dHRlcmZseSAmJiBpbW11dGFibGVCdXR0ZXJmbHkgIT0gbV9n
cmFwaC5tX3ZtLnNlbnRpbmVsSW1tdXRhYmxlQnV0dGVyZmx5LmdldCgpKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChtX2dyYXBoLmlzV2F0Y2hpbmdIYXZpbmdBQmFkVGlt
ZVdhdGNocG9pbnQobm9kZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG5vZGUtPmNvbnZlcnRUb05ld0FycmF5QnVmZmVyKG1fZ3JhcGguZnJlZXplKGltbXV0YWJsZUJ1
dHRlcmZseSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9
IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLQog
ICAgICAgICAgICAgY2FzZSBUb051bWJlcjogewogICAgICAgICAgICAgICAgIGlmIChtX3N0YXRl
LmZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLm1fdHlwZSAmIH5TcGVjQnl0ZWNvZGVOdW1iZXIpCiAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdEb2VzR0MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2Vz
R0MuY3BwCmluZGV4IGRmNzQ5MzBiZGJiMzg2NGFkOTQ0YmM0NzIwNzEyZmUwZjM5NDdiZDUuLjg5
ZmIzMjU4ZGU2NjY4ZjZkN2ZiZDE5YmU0Nzg3ZTRjM2FhYjc5ODEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKQEAgLTMzOSw3ICszMzksNiBAQCBib29sIGRvZXNHQyhH
cmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBUb1RoaXM6CiAgICAgY2FzZSBDcmVh
dGVUaGlzOgogICAgIGNhc2UgT2JqZWN0Q3JlYXRlOgotICAgIGNhc2UgT2JqZWN0S2V5czoKICAg
ICBjYXNlIEFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgogICAgIGNhc2UgUmVhbGxvY2F0ZVByb3Bl
cnR5U3RvcmFnZToKICAgICBjYXNlIEFycmF5aWZ5OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggYTJlZWZhNWFiMGJjMTBmYzUwZDQzOTYxMmViMjFj
YzE4ZjdlMGMyMi4uMzViNjExODYzYmJiZDZhODNiMjViMjYxNGVlZjkxMmRkZTljNzI3MSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xNTk1LDE0
ICsxNTk1LDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKLSAg
ICAgICAgY2FzZSBPYmplY3RLZXlzOiB7Ci0gICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCkt
PnNob3VsZFNwZWN1bGF0ZU9iamVjdCgpKSB7Ci0gICAgICAgICAgICAgICAgd2F0Y2hIYXZpbmdB
QmFkVGltZShub2RlKTsKLSAgICAgICAgICAgICAgICBmaXhFZGdlPE9iamVjdFVzZT4obm9kZS0+
Y2hpbGQxKCkpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0K
LQogICAgICAgICBjYXNlIENoZWNrU3RyaW5nSWRlbnQ6IHsKICAgICAgICAgICAgIGZpeEVkZ2U8
U3RyaW5nSWRlbnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFrOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5jcHAKaW5kZXggM2QxYzNiYTEzNzYyMWUzYjJmMDM0
MTViYjkxZDE0MTIzNjNjZTRmMS4uZGQ5NjdjOGFkMjM3MjBjODg1NjY3NTg3MzUwNmU1MmQxNTBm
Yjc3MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuY3BwCkBAIC0zMSw3ICszMSw2
IEBACiAjaW5jbHVkZSAiREZHR3JhcGguaCIKICNpbmNsdWRlICJERkdQcm9tb3RlZEhlYXBMb2Nh
dGlvbi5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKLSNpbmNsdWRlICJKU0ltbXV0YWJsZUJ1
dHRlcmZseS5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKQEAgLTIyNCwx
NyArMjIzLDYgQEAgdm9pZCBOb2RlOjpjb252ZXJ0VG9MYXp5SlNDb25zdGFudChHcmFwaCYgZ3Jh
cGgsIExhenlKU1ZhbHVlIHZhbHVlKQogICAgIGNoaWxkcmVuLnJlc2V0KCk7CiB9CiAKLXZvaWQg
Tm9kZTo6Y29udmVydFRvTmV3QXJyYXlCdWZmZXIoRnJvemVuVmFsdWUqIGltbXV0YWJsZUJ1dHRl
cmZseSkKLXsKLSAgICBzZXRPcEFuZERlZmF1bHRGbGFncyhOZXdBcnJheUJ1ZmZlcik7Ci0gICAg
TmV3QXJyYXlCdWZmZXJEYXRhIGRhdGEgeyB9OwotICAgIGRhdGEuaW5kZXhpbmdNb2RlID0gaW1t
dXRhYmxlQnV0dGVyZmx5LT5jYXN0PEpTSW1tdXRhYmxlQnV0dGVyZmx5Kj4oKS0+aW5kZXhpbmdN
b2RlKCk7Ci0gICAgZGF0YS52ZWN0b3JMZW5ndGhIaW50ID0gaW1tdXRhYmxlQnV0dGVyZmx5LT5j
YXN0PEpTSW1tdXRhYmxlQnV0dGVyZmx5Kj4oKS0+dG9CdXR0ZXJmbHkoKS0+dmVjdG9yTGVuZ3Ro
KCk7Ci0gICAgY2hpbGRyZW4ucmVzZXQoKTsKLSAgICBtX29wSW5mbyA9IGltbXV0YWJsZUJ1dHRl
cmZseTsKLSAgICBtX29wSW5mbzIgPSBkYXRhLmFzUXVhZFdvcmQ7Ci19Ci0KIHZvaWQgTm9kZTo6
Y29udmVydFRvRGlyZWN0Q2FsbChGcm96ZW5WYWx1ZSogZXhlY3V0YWJsZSkKIHsKICAgICBOb2Rl
VHlwZSBuZXdPcCA9IExhc3ROb2RlVHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgK
aW5kZXggYjgwMTQ3NTVjN2JjYjUwOTE0ZWQzOWQ2MWE1M2Q5NGFjYTg2MDIxZS4uZDNmNzNhOGMy
ODRkYmQ3MDNmMjJlNmZmY2VlYTA5ODZmMzczNDliMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdOb2RlLmgKQEAgLTc2MSw4ICs3NjEsNiBAQCBwdWJsaWM6CiAgICAgICAgIG1fb3BJbmZvID0g
c3RydWN0dXJlOwogICAgICAgICBtX29wSW5mbzIgPSBPcEluZm9XcmFwcGVyKCk7CiAgICAgfQot
Ci0gICAgdm9pZCBjb252ZXJ0VG9OZXdBcnJheUJ1ZmZlcihGcm96ZW5WYWx1ZSogaW1tdXRhYmxl
QnV0dGVyZmx5KTsKICAgICAKICAgICB2b2lkIGNvbnZlcnRUb0RpcmVjdENhbGwoRnJvemVuVmFs
dWUqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlw
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IGRjMmYz
ZTE2YjgzMmFhYzBhZjdmMGFkNjNjNGM4ZTI4MWRjYmEzNGUuLjRjZmFmZTdkYjM2OGE2ZDQxMzkz
Yjg1NjU0YTYyMjhmMzJiN2I3NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVU
eXBlLmgKQEAgLTI2NSw3ICsyNjUsNiBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7
CiAgICAgbWFjcm8oUGFyc2VJbnQsIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlUmVzdWx0SlMpIFwK
ICAgICBtYWNybyhHZXRQcm90b3R5cGVPZiwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVSZXN1bHRK
UykgXAogICAgIG1hY3JvKE9iamVjdENyZWF0ZSwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVSZXN1
bHRKUykgXAotICAgIG1hY3JvKE9iamVjdEtleXMsIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlUmVz
dWx0SlMpIFwKICAgICBcCiAgICAgLyogQXRvbWljcyBvYmplY3QgZnVuY3Rpb25zLiAqL1wKICAg
ICBtYWNybyhBdG9taWNzQWRkLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9k
ZUhhc1ZhckFyZ3MpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
Y3BwCmluZGV4IDBiMjZjMmQxNjJjN2YyNGNmYWNlYmMzYTc5NTE2YzQ5ZDczMjE0NGMuLmI3NWZj
ZGZiOTc1ZDkxZWNhMmUzOGZkZmM2ZWQwNWRiMGM3Y2JjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtMjQ4LDI1ICsyNDgsNiBAQCBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvVGhpc1N0cmljdChFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRPcCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpKTsKIH0KIAotSlNBcnJheSog
SklUX09QRVJBVElPTiBvcGVyYXRpb25PYmplY3RLZXlzKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9iamVjdCkKLXsKLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAg
IE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKLSAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBKU09iamVjdCogb2JqZWN0ID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRPYmplY3QpLnRvT2JqZWN0KGV4ZWMpOwotICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICBy
ZXR1cm4gb3duUHJvcGVydHlLZXlzKGV4ZWMsIG9iamVjdCwgUHJvcGVydHlOYW1lTW9kZTo6U3Ry
aW5ncywgRG9udEVudW1Qcm9wZXJ0aWVzTW9kZTo6RXhjbHVkZSk7Ci19Ci0KLUpTQXJyYXkqIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uT2JqZWN0S2V5c09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiBvYmplY3QpCi17Ci0gICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVD
YWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7Ci0gICAgcmV0dXJuIG93blByb3BlcnR5
S2V5cyhleGVjLCBvYmplY3QsIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MsIERvbnRFbnVtUHJv
cGVydGllc01vZGU6OkV4Y2x1ZGUpOwotfQotCiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uT2JqZWN0Q3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFBy
b3RvdHlwZSkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wZXJhdGlvbnMuaAppbmRleCAzOGMxMTZhNTRmOTFhNjE1YjgxYzE1MTEyMTQ4
ZjI1Zjk0YWRiMWVmLi4zMTVmZDZhZGM1MjcxZDMyZTJiNTgxN2E4MGZiMDI4MTljYmJmMjgzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaApAQCAtNDMsOCArNDMs
NiBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN0cmluZ0Zyb21DaGFy
Q29kZVVudHlwZWQoRXhlY1N0YXRlKiwgRW5jbwogLy8gVGhlc2Ugcm91dGluZXMgcHJvdmlkZSBj
YWxsYmFja3Mgb3V0IHRvIEMrKyBpbXBsZW1lbnRhdGlvbnMgb2Ygb3BlcmF0aW9ucyB0b28gY29t
cGxleCB0byBKSVQuCiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbE9iamVjdENv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFRhcmdldCkgV1RGX0lOVEVSTkFMOwogSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blRvT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFRhcmdldCwgVW5pcXVlZFN0cmluZ0ltcGwqKSBXVEZfSU5URVJOQUw7Ci1KU0FycmF5KiBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9iamVjdEtleXMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUpIFdURl9JTlRFUk5BTDsKLUpTQXJyYXkqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT2JqZWN0
S2V5c09iamVjdChFeGVjU3RhdGUqLCBKU09iamVjdCopIFdURl9JTlRFUk5BTDsKIEpTQ2VsbCog
SklUX09QRVJBVElPTiBvcGVyYXRpb25PYmplY3RDcmVhdGUoRXhlY1N0YXRlKiwgRW5jb2RlZEpT
VmFsdWUpIFdURl9JTlRFUk5BTDsKIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25PYmpl
Y3RDcmVhdGVPYmplY3QoRXhlY1N0YXRlKiwgSlNPYmplY3QqKSBXVEZfSU5URVJOQUw7CiBKU0Nl
bGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ3JlYXRlVGhpcyhFeGVjU3RhdGUqLCBKU09iamVj
dCogY29uc3RydWN0b3IsIHVpbnQzMl90IGlubGluZUNhcGFjaXR5KSBXVEZfSU5URVJOQUw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdh
dGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblBy
b3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IGIzYzY5YmNmMTI0NzI3YmZjYzY3NmIyYWZhZGFiNWE4
OGMyMmY5M2EuLmNmMjU1N2QxY2EyZjdjYjNkMzlmMGRjMWIxMTM5NDkzODg3MjJmMTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9u
UGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblBy
b3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC05ODQsOCArOTg0LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
Y2FzZSBOZXdBcnJheToKICAgICAgICAgY2FzZSBOZXdBcnJheVdpdGhTaXplOgogICAgICAgICBj
YXNlIENyZWF0ZVJlc3Q6Ci0gICAgICAgIGNhc2UgTmV3QXJyYXlCdWZmZXI6Ci0gICAgICAgIGNh
c2UgT2JqZWN0S2V5czogeworICAgICAgICBjYXNlIE5ld0FycmF5QnVmZmVyOiB7CiAgICAgICAg
ICAgICBzZXRQcmVkaWN0aW9uKFNwZWNBcnJheSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVj
dXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAppbmRl
eCBmMTA2OTgyYWUzOWZmM2JjYzM2Y2ZiNWFlZTBkNzE2YzA3ZTk0MzE2Li5kMTllZThlMWJmY2Rm
YmZjOTFjYmU4ZmEwYjM0NTE0NmM2ZjExYmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaApAQCAtMTc4LDcgKzE3OCw2IEBAIGJvb2wgc2FmZVRvRXhl
Y3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3RhdGUsIEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwg
Ym9vbCBpZ25vCiAgICAgY2FzZSBUb1RoaXM6CiAgICAgY2FzZSBDcmVhdGVUaGlzOgogICAgIGNh
c2UgT2JqZWN0Q3JlYXRlOgotICAgIGNhc2UgT2JqZWN0S2V5czoKICAgICBjYXNlIEdldENhbGxl
ZToKICAgICBjYXNlIFNldENhbGxlZToKICAgICBjYXNlIEdldEFyZ3VtZW50Q291bnRJbmNsdWRp
bmdUaGlzOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcAppbmRleCA4MTdlNTYyNmQ3MzBiMDYyZWU0MzkwYjBlM2RmNWY4NGNjMmVjM2Y4Li5mZTNk
Njg2MmUyZjQwYWI3ZDc0ZmJiNmJiNjViYWY4NTMzNDU5YzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMTIzNjUsOTQgKzEyMzY1
LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRvVGhpcyhOb2RlKiBub2RlKQogICAg
IGpzVmFsdWVSZXN1bHQodGVtcFJlZ3MsIG5vZGUpOwogfQogCi12b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlT2JqZWN0S2V5cyhOb2RlKiBub2RlKQotewotICAgIHN3aXRjaCAobm9kZS0+Y2hp
bGQxKCkudXNlS2luZCgpKSB7Ci0gICAgY2FzZSBPYmplY3RVc2U6IHsKLSAgICAgICAgaWYgKG1f
Z3JhcGguaXNXYXRjaGluZ0hhdmluZ0FCYWRUaW1lV2F0Y2hwb2ludChub2RlKSkgewotICAgICAg
ICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb2JqZWN0KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsK
LSAgICAgICAgICAgIEdQUlRlbXBvcmFyeSBzdHJ1Y3R1cmUodGhpcyk7Ci0gICAgICAgICAgICBH
UFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKLSAgICAgICAgICAgIEdQUlRlbXBvcmFyeSBzY3Jh
dGNoMih0aGlzKTsKLSAgICAgICAgICAgIEdQUlRlbXBvcmFyeSBzY3JhdGNoMyh0aGlzKTsKLSAg
ICAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7Ci0KLSAgICAgICAgICAgIEdQUlJl
ZyBvYmplY3RHUFIgPSBvYmplY3QuZ3ByKCk7Ci0gICAgICAgICAgICBHUFJSZWcgc3RydWN0dXJl
R1BSID0gc3RydWN0dXJlLmdwcigpOwotICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBz
Y3JhdGNoLmdwcigpOwotICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2gyR1BSID0gc2NyYXRjaDIu
Z3ByKCk7Ci0gICAgICAgICAgICBHUFJSZWcgc2NyYXRjaDNHUFIgPSBzY3JhdGNoMy5ncHIoKTsK
LSAgICAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7Ci0KLSAgICAgICAg
ICAgIHNwZWN1bGF0ZU9iamVjdChub2RlLT5jaGlsZDEoKSwgb2JqZWN0R1BSKTsKLQotICAgICAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBzbG93Q2FzZXM7Ci0gICAgICAgICAgICBtX2pp
dC5lbWl0TG9hZFN0cnVjdHVyZSgqbV9qaXQudm0oKSwgb2JqZWN0R1BSLCBzdHJ1Y3R1cmVHUFIs
IHNjcmF0Y2hHUFIpOwotICAgICAgICAgICAgbV9qaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFk
ZHJlc3Moc3RydWN0dXJlR1BSLCBTdHJ1Y3R1cmU6OnByZXZpb3VzT3JSYXJlRGF0YU9mZnNldCgp
KSwgc2NyYXRjaEdQUik7Ci0KLSAgICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJh
bmNoVGVzdFB0cihDQ2FsbEhlbHBlcnM6Olplcm8sIHNjcmF0Y2hHUFIpKTsKLSAgICAgICAgICAg
IHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgQ0Nh
bGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQo
KSksIFRydXN0ZWRJbW0zMihiaXR3aXNlX2Nhc3Q8aW50MzJfdD4obV9qaXQudm0oKS0+c3RydWN0
dXJlU3RydWN0dXJlLT5zdHJ1Y3R1cmVJRCgpKSkpKTsKLQotICAgICAgICAgICAgbV9qaXQubG9h
ZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgU3RydWN0dXJlUmFyZURhdGE6
Om9mZnNldE9mQ2FjaGVkT3duS2V5cygpKSwgc2NyYXRjaEdQUik7Ci0KLSAgICAgICAgICAgIHNs
b3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdFB0cihDQ2FsbEhlbHBlcnM6Olplcm8sIHNj
cmF0Y2hHUFIpKTsKLSAgICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoUHRy
KENDYWxsSGVscGVyczo6RXF1YWwsIHNjcmF0Y2hHUFIsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2lu
dGVyKG1faml0LmdyYXBoKCksIG1faml0LnZtKCktPnNlbnRpbmVsSW1tdXRhYmxlQnV0dGVyZmx5
LmdldCgpKSkpOwotCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Qgc2xvd0J1
dEFycmF5QnVmZmVyQ2FzZXM7Ci0KLSAgICAgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSBtX2ppdC5ncmFwaCgpLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50
aWMpOwotICAgICAgICAgICAgUmVnaXN0ZXJlZFN0cnVjdHVyZSBhcnJheVN0cnVjdHVyZSA9IG1f
aml0LmdyYXBoKCkucmVnaXN0ZXJTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVy
ZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24oQ29weU9uV3JpdGVBcnJheVdpdGhDb250
aWd1b3VzKSk7Ci0KLSAgICAgICAgICAgIG1faml0Lm1vdmUoc2NyYXRjaEdQUiwgc2NyYXRjaDNH
UFIpOwotICAgICAgICAgICAgbV9qaXQuYWRkUHRyKFRydXN0ZWRJbW1QdHIoSlNJbW11dGFibGVC
dXR0ZXJmbHk6Om9mZnNldE9mRGF0YSgpKSwgc2NyYXRjaEdQUik7Ci0KLSAgICAgICAgICAgIGVt
aXRBbGxvY2F0ZUpTT2JqZWN0PEpTQXJyYXk+KHJlc3VsdEdQUiwgVHJ1c3RlZEltbVB0cihhcnJh
eVN0cnVjdHVyZSksIHNjcmF0Y2hHUFIsIHN0cnVjdHVyZUdQUiwgc2NyYXRjaDJHUFIsIHNsb3dC
dXRBcnJheUJ1ZmZlckNhc2VzKTsKLQotICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Io
c2xvd1BhdGhDYWxsKHNsb3dCdXRBcnJheUJ1ZmZlckNhc2VzLCB0aGlzLCBvcGVyYXRpb25OZXdB
cnJheUJ1ZmZlciwgcmVzdWx0R1BSLCBhcnJheVN0cnVjdHVyZSwgc2NyYXRjaDNHUFIpKTsKLQot
ICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKHNsb3dDYXNlcywg
dGhpcywgb3BlcmF0aW9uT2JqZWN0S2V5c09iamVjdCwgcmVzdWx0R1BSLCBvYmplY3RHUFIpKTsK
LQotICAgICAgICAgICAgY2VsbFJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBvYmplY3Qo
dGhpcywgbm9kZS0+Y2hpbGQxKCkpOwotCi0gICAgICAgIEdQUlJlZyBvYmplY3RHUFIgPSBvYmpl
Y3QuZ3ByKCk7Ci0KLSAgICAgICAgc3BlY3VsYXRlT2JqZWN0KG5vZGUtPmNoaWxkMSgpLCBvYmpl
Y3RHUFIpOwotCi0gICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7Ci0gICAgICAgIEdQUkZsdXNoZWRD
YWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKLSAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3Vs
dC5ncHIoKTsKLSAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25PYmplY3RLZXlzT2JqZWN0
LCByZXN1bHRHUFIsIG9iamVjdEdQUik7Ci0gICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7
Ci0KLSAgICAgICAgY2VsbFJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwotICAgICAgICBicmVhazsK
LSAgICB9Ci0KLSAgICBjYXNlIFVudHlwZWRVc2U6IHsKLSAgICAgICAgSlNWYWx1ZU9wZXJhbmQg
b2JqZWN0KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKLQotICAgICAgICBKU1ZhbHVlUmVncyBvYmpl
Y3RSZWdzID0gb2JqZWN0LmpzVmFsdWVSZWdzKCk7Ci0KLSAgICAgICAgZmx1c2hSZWdpc3RlcnMo
KTsKLSAgICAgICAgR1BSRmx1c2hlZENhbGxSZXN1bHQgcmVzdWx0KHRoaXMpOwotICAgICAgICBH
UFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwotICAgICAgICBjYWxsT3BlcmF0aW9uKG9w
ZXJhdGlvbk9iamVjdEtleXMsIHJlc3VsdEdQUiwgb2JqZWN0UmVncyk7Ci0gICAgICAgIG1faml0
LmV4Y2VwdGlvbkNoZWNrKCk7Ci0KLSAgICAgICAgY2VsbFJlc3VsdChyZXN1bHRHUFIsIG5vZGUp
OwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBkZWZhdWx0OgotICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci19Ci0KIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RDcmVhdGUoTm9kZSogbm9kZSkKIHsKICAgICBz
d2l0Y2ggKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IDQ4NDYzYzVmNzlkZjQ0NjQ1NmUwYWFm
NzQ0MTA0ZmUzZTAyZWJmNjMuLjQzOGIxMTRjOWRlNjUwMzVmMDQ5ZThmM2U1YmY1NTVjYTgzOTYz
NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgK
QEAgLTE0NzksNyArMTQ3OSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbXBpbGVOZXdBcnJheVdp
dGhTaXplKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVOZXdUeXBlZEFycmF5KE5vZGUqKTsKICAg
ICB2b2lkIGNvbXBpbGVUb1RoaXMoTm9kZSopOwotICAgIHZvaWQgY29tcGlsZU9iamVjdEtleXMo
Tm9kZSopOwogICAgIHZvaWQgY29tcGlsZU9iamVjdENyZWF0ZShOb2RlKik7CiAgICAgdm9pZCBj
b21waWxlQ3JlYXRlVGhpcyhOb2RlKik7CiAgICAgdm9pZCBjb21waWxlTmV3T2JqZWN0KE5vZGUq
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwCmluZGV4IDIwYzA1M2E5NTUzYWM5ZTAxNTIzNjBkNzY3YjEyYzRhYmM3M2ZiZjQu
Ljk1MmY4OTE1OGQ0Y2MzMGJjNzY4YmVlZjc5YzhkYjdiM2RmZGY2NTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAt
MzE2NywxMSArMzE2Nyw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9k
ZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgY2FzZSBPYmplY3RLZXlzOiB7Ci0gICAg
ICAgIGNvbXBpbGVPYmplY3RLZXlzKG5vZGUpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KICAg
ICBjYXNlIENyZWF0ZVRoaXM6IHsKICAgICAgICAgY29tcGlsZUNyZWF0ZVRoaXMobm9kZSk7CiAg
ICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQ2NC5jcHAKaW5kZXggNGU2NWViYzEzNzFiMTY3Mzg3ODY4MDM3MDgyNzJlYmZjNGFl
YzJiYi4uNmY1YTg3YzBlMDMyN2IwYTc5MmM1ZGI1YTIzZWU2ZWRhMTRjNjk1NiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0z
NDA5LDExICszNDA5LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2Rl
KQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBjYXNlIE9iamVjdEtleXM6IHsKLSAgICAg
ICAgY29tcGlsZU9iamVjdEtleXMobm9kZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQogICAg
IGNhc2UgQ3JlYXRlVGhpczogewogICAgICAgICBjb21waWxlQ3JlYXRlVGhpcyhub2RlKTsKICAg
ICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFi
c3RyYWN0SGVhcFJlcG9zaXRvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJz
dHJhY3RIZWFwUmVwb3NpdG9yeS5oCmluZGV4IDlmM2FhMmZlN2RjM2VjZmViMGM4NzBiODFhODdj
YmMxMWYyODgwNTEuLmJiZDQ3MTMyZmVjN2JjZmNkM2I2ZTJjNTg0MTRlYWE4NGJjODUyMWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3Np
dG9yeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVw
b3NpdG9yeS5oCkBAIC0xMTYsMTAgKzExNiw4IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
RlRMIHsKICAgICBtYWNybyhTdHJ1Y3R1cmVfZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU6Omdsb2Jh
bE9iamVjdE9mZnNldCgpKSBcCiAgICAgbWFjcm8oU3RydWN0dXJlX2luZGV4aW5nTW9kZUluY2x1
ZGluZ0hpc3RvcnksIFN0cnVjdHVyZTo6aW5kZXhpbmdNb2RlSW5jbHVkaW5nSGlzdG9yeU9mZnNl
dCgpKSBcCiAgICAgbWFjcm8oU3RydWN0dXJlX2lubGluZUNhcGFjaXR5LCBTdHJ1Y3R1cmU6Omlu
bGluZUNhcGFjaXR5T2Zmc2V0KCkpIFwKLSAgICBtYWNybyhTdHJ1Y3R1cmVfcHJldmlvdXNPclJh
cmVEYXRhLCBTdHJ1Y3R1cmU6OnByZXZpb3VzT3JSYXJlRGF0YU9mZnNldCgpKSBcCiAgICAgbWFj
cm8oU3RydWN0dXJlX3Byb3RvdHlwZSwgU3RydWN0dXJlOjpwcm90b3R5cGVPZmZzZXQoKSkgXAog
ICAgIG1hY3JvKFN0cnVjdHVyZV9zdHJ1Y3R1cmVJRCwgU3RydWN0dXJlOjpzdHJ1Y3R1cmVJRE9m
ZnNldCgpKSBcCi0gICAgbWFjcm8oU3RydWN0dXJlUmFyZURhdGFfY2FjaGVkT3duS2V5cywgU3Ry
dWN0dXJlUmFyZURhdGE6Om9mZnNldE9mQ2FjaGVkT3duS2V5cygpKSBcCiAgICAgbWFjcm8oSGFz
aE1hcEltcGxfY2FwYWNpdHksIEhhc2hNYXBJbXBsPEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tl
dERhdGFLZXk+Pjo6b2Zmc2V0T2ZDYXBhY2l0eSgpKSBcCiAgICAgbWFjcm8oSGFzaE1hcEltcGxf
YnVmZmVyLCAgSGFzaE1hcEltcGw8SGFzaE1hcEJ1Y2tldDxIYXNoTWFwQnVja2V0RGF0YUtleT4+
OjpvZmZzZXRPZkJ1ZmZlcigpKSBcCiAgICAgbWFjcm8oSGFzaE1hcEltcGxfaGVhZCwgIEhhc2hN
YXBJbXBsPEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFLZXk+Pjo6b2Zmc2V0T2ZIZWFk
KCkpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0
aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApp
bmRleCAyM2M5Mzk2ZjRkNjllMDRmNmYwY2I1ZjQ5MWJhMDRlNmNjZmFkMTBhLi4wZjZjZWViYjU1
NTNkZmE4YTBjMDBjMzI2NGI5NjU5MTQ3OWJhN2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC0yMDEsNyArMjAxLDYgQEAgaW5saW5lIENh
cGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDYWxsT2JqZWN0
Q29uc3RydWN0b3I6CiAgICAgY2FzZSBDYWxsU3RyaW5nQ29uc3RydWN0b3I6CiAgICAgY2FzZSBP
YmplY3RDcmVhdGU6Ci0gICAgY2FzZSBPYmplY3RLZXlzOgogICAgIGNhc2UgTWFrZVJvcGU6CiAg
ICAgY2FzZSBOZXdBcnJheVdpdGhTaXplOgogICAgIGNhc2UgVHJ5R2V0QnlJZDoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCBkNTViNDA5YzJh
MWIyZGQ1ODQ2YTczMDI2NzE0MzJkNzI4MjZmNDA5Li4xODU4NzZiODM3MTZkYmYzNTI2MjllYWRm
YjYxODQ2NThkZDBmM2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvQjMuY3BwCkBAIC04NjYsOSArODY2LDYgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBP
YmplY3RDcmVhdGU6CiAgICAgICAgICAgICBjb21waWxlT2JqZWN0Q3JlYXRlKCk7CiAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBPYmplY3RLZXlzOgotICAgICAgICAgICAgY29tcGls
ZU9iamVjdEtleXMoKTsKLSAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE5ld09iamVj
dDoKICAgICAgICAgICAgIGNvbXBpbGVOZXdPYmplY3QoKTsKICAgICAgICAgICAgIGJyZWFrOwpA
QCAtNTUwMCw3NSArNTQ5Nyw2IEBAIHByaXZhdGU6CiAgICAgICAgIHNldEludDMyKG1fb3V0LnBo
aShJbnQzMiwgemVyb0xlbmd0aFJlc3VsdCwgbm9uWmVyb0xlbmd0aFJlc3VsdCkpOwogICAgIH0K
IAotICAgIHZvaWQgY29tcGlsZU9iamVjdEtleXMoKQotICAgIHsKLSAgICAgICAgc3dpdGNoICht
X25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSkgewotICAgICAgICBjYXNlIE9iamVjdFVzZTogewot
ICAgICAgICAgICAgaWYgKG1fZ3JhcGguaXNXYXRjaGluZ0hhdmluZ0FCYWRUaW1lV2F0Y2hwb2lu
dChtX25vZGUpKSB7Ci0gICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbm90TnVsbENhc2UgPSBt
X291dC5uZXdCbG9jaygpOwotICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIHJhcmVEYXRhQ2Fz
ZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7Ci0gICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbm90TnVs
bENhY2hlQ2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7Ci0gICAgICAgICAgICAgICAgTEJhc2ljQmxv
Y2sgdXNlQ2FjaGVDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKLSAgICAgICAgICAgICAgICBMQmFz
aWNCbG9jayBzbG93QnV0QXJyYXlCdWZmZXJDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKLSAgICAg
ICAgICAgICAgICBMQmFzaWNCbG9jayBzbG93Q2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7Ci0gICAg
ICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gbV9vdXQubmV3QmxvY2soKTsK
LQotICAgICAgICAgICAgICAgIExWYWx1ZSBvYmplY3QgPSBsb3dPYmplY3QobV9ub2RlLT5jaGls
ZDEoKSk7Ci0gICAgICAgICAgICAgICAgTFZhbHVlIHN0cnVjdHVyZSA9IGxvYWRTdHJ1Y3R1cmUo
b2JqZWN0KTsKLSAgICAgICAgICAgICAgICBMVmFsdWUgcHJldmlvdXNPclJhcmVEYXRhID0gbV9v
dXQubG9hZFB0cihzdHJ1Y3R1cmUsIG1faGVhcHMuU3RydWN0dXJlX3ByZXZpb3VzT3JSYXJlRGF0
YSk7Ci0gICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0Lm5vdE51bGwocHJldmlvdXNP
clJhcmVEYXRhKSwgdW5zdXJlKG5vdE51bGxDYXNlKSwgdW5zdXJlKHNsb3dDYXNlKSk7Ci0KLSAg
ICAgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG5vdE51
bGxDYXNlLCByYXJlRGF0YUNhc2UpOwotICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKLSAg
ICAgICAgICAgICAgICAgICAgbV9vdXQubm90RXF1YWwobV9vdXQubG9hZDMyKHByZXZpb3VzT3JS
YXJlRGF0YSwgbV9oZWFwcy5KU0NlbGxfc3RydWN0dXJlSUQpLCBtX291dC5jb25zdEludDMyKG1f
Z3JhcGgubV92bS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUtPnN0cnVjdHVyZUlEKCkpKSwKLSAgICAgICAg
ICAgICAgICAgICAgdW5zdXJlKHJhcmVEYXRhQ2FzZSksIHVuc3VyZShzbG93Q2FzZSkpOwotCi0g
ICAgICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8ocmFyZURhdGFDYXNlLCBub3ROdWxsQ2FjaGVD
YXNlKTsKLSAgICAgICAgICAgICAgICBMVmFsdWUgY2FjaGVkT3duS2V5cyA9IG1fb3V0LmxvYWRQ
dHIocHJldmlvdXNPclJhcmVEYXRhLCBtX2hlYXBzLlN0cnVjdHVyZVJhcmVEYXRhX2NhY2hlZE93
bktleXMpOwotICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5ub3ROdWxsKGNhY2hl
ZE93bktleXMpLCB1bnN1cmUobm90TnVsbENhY2hlQ2FzZSksIHVuc3VyZShzbG93Q2FzZSkpOwot
Ci0gICAgICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obm90TnVsbENhY2hlQ2FzZSwgdXNlQ2Fj
aGVDYXNlKTsKLSAgICAgICAgICAgICAgICBtX291dC5icmFuY2gobV9vdXQubm90RXF1YWwoY2Fj
aGVkT3duS2V5cywgd2Vha1BvaW50ZXIobV9ncmFwaC5tX3ZtLnNlbnRpbmVsSW1tdXRhYmxlQnV0
dGVyZmx5LmdldCgpKSksIHVuc3VyZSh1c2VDYWNoZUNhc2UpLCB1bnN1cmUoc2xvd0Nhc2UpKTsK
LQotICAgICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKHVzZUNhY2hlQ2FzZSwgc2xvd0J1dEFy
cmF5QnVmZmVyQ2FzZSk7Ci0gICAgICAgICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCA9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1fbm9kZS0+b3JpZ2luLnNlbWFudGljKTsK
LSAgICAgICAgICAgICAgICBSZWdpc3RlcmVkU3RydWN0dXJlIGFycmF5U3RydWN0dXJlID0gbV9n
cmFwaC5yZWdpc3RlclN0cnVjdHVyZShnbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9ySW5k
ZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlvbihDb3B5T25Xcml0ZUFycmF5V2l0aENvbnRpZ3VvdXMp
KTsKLSAgICAgICAgICAgICAgICBMVmFsdWUgZmFzdEFycmF5ID0gYWxsb2NhdGVPYmplY3Q8SlNB
cnJheT4oYXJyYXlTdHJ1Y3R1cmUsIG1fb3V0LmFkZFB0cihjYWNoZWRPd25LZXlzLCBKU0ltbXV0
YWJsZUJ1dHRlcmZseTo6b2Zmc2V0T2ZEYXRhKCkpLCBzbG93QnV0QXJyYXlCdWZmZXJDYXNlKTsK
LSAgICAgICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBmYXN0UmVzdWx0ID0gbV9vdXQuYW5jaG9y
KGZhc3RBcnJheSk7Ci0gICAgICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwot
Ci0gICAgICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oc2xvd0J1dEFycmF5QnVmZmVyQ2FzZSwg
c2xvd0Nhc2UpOwotICAgICAgICAgICAgICAgIExWYWx1ZSBzbG93QXJyYXkgPSB2bUNhbGwoSW50
NjQsIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25OZXdBcnJheUJ1ZmZlciksIG1fY2FsbEZyYW1l
LCB3ZWFrU3RydWN0dXJlKGFycmF5U3RydWN0dXJlKSwgY2FjaGVkT3duS2V5cyk7Ci0gICAgICAg
ICAgICAgICAgVmFsdWVGcm9tQmxvY2sgc2xvd0J1dEFycmF5QnVmZmVyUmVzdWx0ID0gbV9vdXQu
YW5jaG9yKHNsb3dBcnJheSk7Ci0gICAgICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRp
b24pOwotCi0gICAgICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oc2xvd0Nhc2UsIGNvbnRpbnVh
dGlvbik7Ci0gICAgICAgICAgICAgICAgVk0mIHZtID0gdGhpcy0+dm0oKTsKLSAgICAgICAgICAg
ICAgICBMVmFsdWUgc2xvd1Jlc3VsdFZhbHVlID0gbGF6eVNsb3dQYXRoKAotICAgICAgICAgICAg
ICAgICAgICBbPSwgJnZtXSAoY29uc3QgVmVjdG9yPExvY2F0aW9uPiYgbG9jYXRpb25zKSAtPiBS
ZWZQdHI8TGF6eVNsb3dQYXRoOjpHZW5lcmF0b3I+IHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBjcmVhdGVMYXp5Q2FsbEdlbmVyYXRvcih2bSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvcGVyYXRpb25PYmplY3RLZXlzT2JqZWN0LCBsb2NhdGlvbnNbMF0uZGlyZWN0R1BS
KCksIGxvY2F0aW9uc1sxXS5kaXJlY3RHUFIoKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0g
ICAgICAgICAgICAgICAgICAgIG9iamVjdCk7Ci0gICAgICAgICAgICAgICAgVmFsdWVGcm9tQmxv
Y2sgc2xvd1Jlc3VsdCA9IG1fb3V0LmFuY2hvcihzbG93UmVzdWx0VmFsdWUpOwotICAgICAgICAg
ICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKLQotICAgICAgICAgICAgICAgIG1fb3V0
LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOwotICAgICAgICAgICAgICAgIHNldEpT
VmFsdWUobV9vdXQucGhpKHBvaW50ZXJUeXBlKCksIGZhc3RSZXN1bHQsIHNsb3dCdXRBcnJheUJ1
ZmZlclJlc3VsdCwgc2xvd1Jlc3VsdCkpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgc2V0SlNWYWx1ZSh2bUNhbGwoSW50NjQsIG1fb3V0Lm9wZXJh
dGlvbihvcGVyYXRpb25PYmplY3RLZXlzT2JqZWN0KSwgbV9jYWxsRnJhbWUsIGxvd09iamVjdCht
X25vZGUtPmNoaWxkMSgpKSkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAg
ICAgY2FzZSBVbnR5cGVkVXNlOgotICAgICAgICAgICAgc2V0SlNWYWx1ZSh2bUNhbGwoSW50NjQs
IG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25PYmplY3RLZXlzKSwgbV9jYWxsRnJhbWUsIGxvd0pT
VmFsdWUobV9ub2RlLT5jaGlsZDEoKSkpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBk
ZWZhdWx0OgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotCiAgICAgdm9pZCBjb21waWxlT2JqZWN0
Q3JlYXRlKCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5k
KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNp
Yy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuY3BwCmluZGV4
IGZiYzRlZjNjZDhmMmVjNjJkYTkzMDBkYTI3MWIxMDIzMzk3NDM0ZmMuLmFiZTZmMTcyODZlM2Jl
MzkxZTBjMzc0YzFmNmM1NzRjNWJkODY3ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludHJpbnNpYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50cmluc2ljLmNwcApAQCAtMTE5LDggKzExOSw2IEBAIGNvbnN0IGNoYXIqIGludHJp
bnNpY05hbWUoSW50cmluc2ljIGludHJpbnNpYykKICAgICAgICAgcmV0dXJuICJPYmplY3RHZXRQ
cm90b3R5cGVPZkludHJpbnNpYyI7CiAgICAgY2FzZSBPYmplY3RJc0ludHJpbnNpYzoKICAgICAg
ICAgcmV0dXJuICJPYmplY3RJc0ludHJpbnNpYyI7Ci0gICAgY2FzZSBPYmplY3RLZXlzSW50cmlu
c2ljOgotICAgICAgICByZXR1cm4gIk9iamVjdEtleXNJbnRyaW5zaWMiOwogICAgIGNhc2UgUmVm
bGVjdEdldFByb3RvdHlwZU9mSW50cmluc2ljOgogICAgICAgICByZXR1cm4gIlJlZmxlY3RHZXRQ
cm90b3R5cGVPZkludHJpbnNpYyI7CiAgICAgY2FzZSBTdHJpbmdQcm90b3R5cGVWYWx1ZU9mSW50
cmluc2ljOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmlu
c2ljLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuaAppbmRleCBi
NDdmNDZkOWU0ZGUwMDEzZGU4MzQ2ZTgyZTY4MTZmNWZkMDJmNzQ2Li5jZmJkMTg0OTYzNTJiYjlk
NGUyNmEwMmM1NjkzYjhjNDYwMDE5MDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRyaW5zaWMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRyaW5zaWMuaApAQCAtNzIsNyArNzIsNiBAQCBlbnVtIEludHJpbnNpYyB7CiAgICAgT2Jq
ZWN0Q3JlYXRlSW50cmluc2ljLAogICAgIE9iamVjdEdldFByb3RvdHlwZU9mSW50cmluc2ljLAog
ICAgIE9iamVjdElzSW50cmluc2ljLAotICAgIE9iamVjdEtleXNJbnRyaW5zaWMsCiAgICAgUmVm
bGVjdEdldFByb3RvdHlwZU9mSW50cmluc2ljLAogICAgIFN0cmluZ1Byb3RvdHlwZVZhbHVlT2ZJ
bnRyaW5zaWMsCiAgICAgU3RyaW5nUHJvdG90eXBlUmVwbGFjZUludHJpbnNpYywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW1tdXRhYmxlQnV0dGVyZmx5Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ltbXV0YWJsZUJ1dHRlcmZseS5oCmlu
ZGV4IDFmZjRkMjc2Nzc1MzI4YmQwYzZjYTJlNDE0NjcwMzgyNzUxNWU4YmMuLjI4NDc4M2MwYzc1
NTk2YWRkYTVhMWY5OGYzNmIwNjllMGViOGU0YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTSW1tdXRhYmxlQnV0dGVyZmx5LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNJbW11dGFibGVCdXR0ZXJmbHkuaApAQCAtNjcsMTEgKzY3LDYg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gYXJyYXk7CiAgICAgfQogCi0gICAgc3RhdGljIEpT
SW1tdXRhYmxlQnV0dGVyZmx5KiBjcmVhdGVTZW50aW5lbChWTSYgdm0pCi0gICAgewotICAgICAg
ICByZXR1cm4gY3JlYXRlKHZtLCBDb3B5T25Xcml0ZUFycmF5V2l0aENvbnRpZ3VvdXMsIDApOwot
ICAgIH0KLQogICAgIHVuc2lnbmVkIHB1YmxpY0xlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1faGVh
ZGVyLnB1YmxpY0xlbmd0aCgpOyB9CiAgICAgdW5zaWduZWQgdmVjdG9yTGVuZ3RoKCkgY29uc3Qg
eyByZXR1cm4gbV9oZWFkZXIudmVjdG9yTGVuZ3RoKCk7IH0KICAgICB1bnNpZ25lZCBsZW5ndGgo
KSBjb25zdCB7IHJldHVybiBtX2hlYWRlci5wdWJsaWNMZW5ndGgoKTsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCmluZGV4IGZj
Zjk5YjhlY2QyOTVmMThlNDRhMjMwYmYzMDQ2NDQxOGJkMTQ1MjUuLjkwYTM2YTkzNTU3OGYyYjhl
MzEzMTEzZDI5ZDkwYmE5ZDQ2NmE5NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNs
dWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRl
ICJKU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oIgotI2luY2x1ZGUgIkpTSW1tdXRhYmxlQnV0dGVy
Zmx5LmgiCiAjaW5jbHVkZSAiTG9va3VwLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgi
CiAjaW5jbHVkZSAiUHJvcGVydHlEZXNjcmlwdG9yLmgiCkBAIC03NCw3ICs3Myw3IEBAIGNvbnN0
IENsYXNzSW5mbyBPYmplY3RDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSW50
ZXJuYWxGdW5jdGlvbjo6c19pCiAgIGdldE93blByb3BlcnR5RGVzY3JpcHRvcnMgb2JqZWN0Q29u
c3RydWN0b3JHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzICBEb250RW51bXxGdW5jdGlvbiAxCiAg
IGdldE93blByb3BlcnR5TmFtZXMgICAgICAgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0
eU5hbWVzICAgICAgICBEb250RW51bXxGdW5jdGlvbiAxCiAgIGdldE93blByb3BlcnR5U3ltYm9s
cyAgICAgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eVN5bWJvbHMgICAgICBEb250RW51
bXxGdW5jdGlvbiAxCi0gIGtleXMgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0Q29uc3RydWN0
b3JLZXlzICAgICAgICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAxIE9iamVjdEtl
eXNJbnRyaW5zaWMKKyAga2V5cyAgICAgICAgICAgICAgICAgICAgICBvYmplY3RDb25zdHJ1Y3Rv
cktleXMgICAgICAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKICAgZGVmaW5l
UHJvcGVydHkgICAgICAgICAgICBvYmplY3RDb25zdHJ1Y3RvckRlZmluZVByb3BlcnR5ICAgICAg
ICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDMKICAgZGVmaW5lUHJvcGVydGllcyAgICAgICAgICBv
YmplY3RDb25zdHJ1Y3RvckRlZmluZVByb3BlcnRpZXMgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0
aW9uIDIKICAgY3JlYXRlICAgICAgICAgICAgICAgICAgICBvYmplY3RDb25zdHJ1Y3RvckNyZWF0
ZSAgICAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDIgT2JqZWN0Q3JlYXRlSW50
cmluc2ljCkBAIC0yNzIsNiArMjcxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBv
YmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5U3ltYm9scyhFeGVjU3RhdGUqIGUKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShvd25Qcm9wZXJ0eUtleXMo
ZXhlYywgb2JqZWN0LCBQcm9wZXJ0eU5hbWVNb2RlOjpTeW1ib2xzLCBEb250RW51bVByb3BlcnRp
ZXNNb2RlOjpJbmNsdWRlKSkpOwogfQogCisvLyBGSVhNRTogVXNlIHRoZSBlbnVtZXJhdGlvbiBj
YWNoZS4KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JLZXlz
KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpAQCAtODkyLDI1
ICs4OTIsMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3Rv
cklzKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVh
bihzYW1lVmFsdWUoZXhlYywgZXhlYy0+YXJndW1lbnQoMCksIGV4ZWMtPmFyZ3VtZW50KDEpKSkp
OwogfQogCisvLyBGSVhNRTogVXNlIHRoZSBlbnVtZXJhdGlvbiBjYWNoZS4KIEpTQXJyYXkqIG93
blByb3BlcnR5S2V5cyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBvYmplY3QsIFByb3BlcnR5
TmFtZU1vZGUgcHJvcGVydHlOYW1lTW9kZSwgRG9udEVudW1Qcm9wZXJ0aWVzTW9kZSBkb250RW51
bVByb3BlcnRpZXNNb2RlKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotCi0gICAgYXV0byogZ2xvYmFsT2JqZWN0
ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOwotICAgIGJvb2wgaXNPYmplY3RLZXlzID0g
cHJvcGVydHlOYW1lTW9kZSA9PSBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzICYmIGRvbnRFbnVt
UHJvcGVydGllc01vZGUgPT0gRG9udEVudW1Qcm9wZXJ0aWVzTW9kZTo6RXhjbHVkZTsKLSAgICAv
LyBXZSBhdHRlbXB0IHRvIGxvb2sgdXAgb3duIHByb3BlcnR5IGtleXMgY2FjaGUgaW4gT2JqZWN0
LmtleXMgY2FzZS4KLSAgICBpZiAoaXNPYmplY3RLZXlzKSB7Ci0gICAgICAgIGlmIChMSUtFTFko
IWdsb2JhbE9iamVjdC0+aXNIYXZpbmdBQmFkVGltZSgpKSkgewotICAgICAgICAgICAgaWYgKGF1
dG8qIGltbXV0YWJsZUJ1dHRlcmZseSA9IG9iamVjdC0+c3RydWN0dXJlKHZtKS0+Y2FjaGVkT3du
S2V5cygpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGltbXV0YWJsZUJ1dHRlcmZseSAhPSB2bS5z
ZW50aW5lbEltbXV0YWJsZUJ1dHRlcmZseS5nZXQoKSkgewotICAgICAgICAgICAgICAgICAgICBT
dHJ1Y3R1cmUqIGFycmF5U3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5vcmlnaW5hbEFycmF5U3Ry
dWN0dXJlRm9ySW5kZXhpbmdUeXBlKGltbXV0YWJsZUJ1dHRlcmZseS0+aW5kZXhpbmdNb2RlKCkp
OwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNBcnJheTo6Y3JlYXRlV2l0aEJ1dHRlcmZs
eSh2bSwgbnVsbHB0ciwgYXJyYXlTdHJ1Y3R1cmUsIGltbXV0YWJsZUJ1dHRlcmZseS0+dG9CdXR0
ZXJmbHkoKSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0g
ICAgfQotCiAgICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydGllcygmdm0sIHByb3BlcnR5TmFt
ZU1vZGUsIFByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRlKTsKICAgICBvYmplY3QtPm1ldGhvZFRh
YmxlKHZtKS0+Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIGV4ZWMsIHByb3BlcnRpZXMsIEVu
dW1lcmF0aW9uTW9kZShkb250RW51bVByb3BlcnRpZXNNb2RlKSk7CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgbnVsbHB0cik7CkBAIC05MzIsMzEgKzkxOCw4IEBAIEpTQXJyYXkqIG93
blByb3BlcnR5S2V5cyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBvYmplY3QsIFByb3BlcnR5
TmFtZU1vZGUgcHJvCiAgICAgaWYgKHByb3BlcnR5TmFtZU1vZGUgIT0gUHJvcGVydHlOYW1lTW9k
ZTo6U3RyaW5nc0FuZFN5bWJvbHMpIHsKICAgICAgICAgQVNTRVJUKHByb3BlcnR5TmFtZU1vZGUg
PT0gUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncyB8fCBwcm9wZXJ0eU5hbWVNb2RlID09IFByb3Bl
cnR5TmFtZU1vZGU6OlN5bWJvbHMpOwogICAgICAgICBpZiAoIW11c3RGaWx0ZXJQcm9wZXJ0eSAm
JiBwcm9wZXJ0aWVzLnNpemUoKSA8IE1JTl9TUEFSU0VfQVJSQVlfSU5ERVgpIHsKKyAgICAgICAg
ICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKTsKICAg
ICAgICAgICAgIGlmIChMSUtFTFkoIWdsb2JhbE9iamVjdC0+aXNIYXZpbmdBQmFkVGltZSgpKSkg
ewotICAgICAgICAgICAgICAgIGlmIChpc09iamVjdEtleXMpIHsKLSAgICAgICAgICAgICAgICAg
ICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBvYmplY3QtPnN0cnVjdHVyZSh2bSk7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChzdHJ1Y3R1cmUtPmNhbkNhY2hlT3duS2V5cygpKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBhdXRvKiBjYWNoZWRCdXR0ZXJmbHkgPSBzdHJ1Y3R1cmUtPmNhY2hl
ZE93bktleXMoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYWNoZWRCdXR0ZXJmbHkg
PT0gdm0uc2VudGluZWxJbW11dGFibGVCdXR0ZXJmbHkuZ2V0KCkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBDYWNoZSB0aGUgaW1tdXRhYmxlIGJ1dHRlcmZseSEKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzaXplX3QgbnVtUHJvcGVydGllcyA9IHByb3BlcnRpZXMuc2l6
ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8qIG5ld0J1dHRlcmZseSA9IEpT
SW1tdXRhYmxlQnV0dGVyZmx5OjpjcmVhdGUodm0sIENvcHlPbldyaXRlQXJyYXlXaXRoQ29udGln
dW91cywgbnVtUHJvcGVydGllcyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBudW1Qcm9wZXJ0aWVzOyBpKyspIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgYXV0byYgaWRlbnRpZmllciA9IHByb3BlcnRpZXNbaV07Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVCghaWRlbnRpZmllci5pc1N5bWJv
bCgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3QnV0dGVyZmx5LT5zZXRJ
bmRleCh2bSwgaSwganNPd25lZFN0cmluZygmdm0sIGlkZW50aWZpZXIuc3RyaW5nKCkpKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdHJ1Y3R1cmUtPnNldENhY2hlZE93bktleXModm0sIG5ld0J1dHRlcmZseSk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU3RydWN0dXJlKiBhcnJheVN0cnVjdHVyZSA9IGdsb2JhbE9i
amVjdC0+b3JpZ2luYWxBcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZShuZXdCdXR0ZXJmbHkt
PmluZGV4aW5nTW9kZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNB
cnJheTo6Y3JlYXRlV2l0aEJ1dHRlcmZseSh2bSwgbnVsbHB0ciwgYXJyYXlTdHJ1Y3R1cmUsIG5l
d0J1dHRlcmZseS0+dG9CdXR0ZXJmbHkoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYWNoZWRCdXR0ZXJmbHkgPT0gbnVsbHB0cikK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmUtPnNldENhY2hlZE93bktleXMo
dm0sIGpzQ2FzdDxKU0ltbXV0YWJsZUJ1dHRlcmZseSo+KHZtLnNlbnRpbmVsSW1tdXRhYmxlQnV0
dGVyZmx5LmdldCgpKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9
Ci0KICAgICAgICAgICAgICAgICBzaXplX3QgbnVtUHJvcGVydGllcyA9IHByb3BlcnRpZXMuc2l6
ZSgpOwogICAgICAgICAgICAgICAgIEpTQXJyYXkqIGtleXMgPSBKU0FycmF5OjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdC0+b3JpZ2luYWxBcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZShBcnJh
eVdpdGhDb250aWd1b3VzKSwgbnVtUHJvcGVydGllcyk7CiAgICAgICAgICAgICAgICAgV3JpdGVC
YXJyaWVyPFVua25vd24+KiBidWZmZXIgPSBrZXlzLT5idXR0ZXJmbHkoKS0+Y29udGlndW91cygp
LmRhdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVj
dHVyZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCmlu
ZGV4IDM1NDI4MjdkZTNhMjcwNDU0ZmY2YzYzNDAyNjgyZmMwNTgyMzQ4YjEuLjU4ZDgzYmNlNGFm
ZGFkZTgwM2QzODRiYTcxMGUwYWI5ZDZhZDA5MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlLmNwcApAQCAtMTI1Miw3ICsxMjUyLDE3IEBAIEpTUHJvcGVydHlO
YW1lRW51bWVyYXRvciogU3RydWN0dXJlOjpjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCkg
Y29uc3QKIAogYm9vbCBTdHJ1Y3R1cmU6OmNhbkNhY2hlUHJvcGVydHlOYW1lRW51bWVyYXRvcigp
IGNvbnN0CiB7Ci0gICAgaWYgKCF0aGlzLT5jYW5DYWNoZU93bktleXMoKSkKKyAgICBhdXRvIGNh
bkNhY2hlID0gW10gKGNvbnN0IFN0cnVjdHVyZSogc3RydWN0dXJlKSB7CisgICAgICAgIGlmIChz
dHJ1Y3R1cmUtPmlzRGljdGlvbmFyeSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICBpZiAoaGFzSW5kZXhlZFByb3BlcnRpZXMoc3RydWN0dXJlLT5pbmRleGluZ1R5cGUoKSkp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJ
bmZvKCkub3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcygpKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9OworCisgICAgaWYgKCFjYW5DYWNoZSh0
aGlzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgU3RydWN0dXJlQ2hhaW4qIHN0cnVj
dHVyZUNoYWluID0gbV9jYWNoZWRQcm90b3R5cGVDaGFpbi5nZXQoKTsKQEAgLTEyNjEsNyArMTI3
MSw3IEBAIGJvb2wgU3RydWN0dXJlOjpjYW5DYWNoZVByb3BlcnR5TmFtZUVudW1lcmF0b3IoKSBj
b25zdAogICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgIGlmICghc3RydWN0dXJlLT5nZXQoKSkK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBpZiAoIXN0cnVjdHVyZS0+Z2V0KCkt
PmNhbkNhY2hlT3duS2V5cygpKQorICAgICAgICBpZiAoIWNhbkNhY2hlKHN0cnVjdHVyZS0+Z2V0
KCkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBzdHJ1Y3R1cmUrKzsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCmluZGV4IDFlODRj
NGQxOWI0MTVkYjM0NmQ1MmJmNWU1ZTU3YTFiNzUyYjA5ZDcuLjhkZWQ4MjViZmJhOTNhODUwOTBi
NjE0OGMwZjUwZGExOWRmYWM5YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cnVjdHVyZS5oCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiUHV0UHJvcGVydHlTbG90Lmgi
CiAjaW5jbHVkZSAiU3RydWN0dXJlSURCbG9iLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlUmFyZURh
dGEuaCIKKyNpbmNsdWRlICJTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCIKICNpbmNsdWRlICJT
dHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUuaCIKICNpbmNsdWRlICJKU1R5cGVJbmZvLmgiCiAjaW5j
bHVkZSAiV2F0Y2hwb2ludC5oIgpAQCAtMzI1LDE1ICszMjYsNiBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBTdHJ1Y3R1cmVSYXJlRGF0YSo+KG1fcHJldmlvdXNP
clJhcmVEYXRhLmdldCgpKTsKICAgICB9CiAKLSAgICBjb25zdCBTdHJ1Y3R1cmVSYXJlRGF0YSog
cmFyZURhdGFDb25jdXJyZW50bHkoKSBjb25zdAotICAgIHsKLSAgICAgICAgSlNDZWxsKiBjZWxs
ID0gbV9wcmV2aW91c09yUmFyZURhdGEuZ2V0KCk7Ci0gICAgICAgIFdURjo6bG9hZExvYWRGZW5j
ZSgpOwotICAgICAgICBpZiAoaXNSYXJlRGF0YShjZWxsKSkKLSAgICAgICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDxTdHJ1Y3R1cmVSYXJlRGF0YSo+KGNlbGwpOwotICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLSAgICB9Ci0KICAgICBTdHJ1Y3R1cmVSYXJlRGF0YSogZW5zdXJlUmFyZURhdGEoVk0m
IHZtKQogICAgIHsKICAgICAgICAgaWYgKCFoYXNSYXJlRGF0YSgpKQpAQCAtNDgwLDEwICs0NzIs
NiBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5DYWNoZVByb3BlcnR5TmFtZUVudW1lcmF0b3IoKSBj
b25zdDsKICAgICBib29sIGNhbkFjY2Vzc1Byb3BlcnRpZXNRdWlja2x5Rm9yRW51bWVyYXRpb24o
KSBjb25zdDsKIAotICAgIHZvaWQgc2V0Q2FjaGVkT3duS2V5cyhWTSYsIEpTSW1tdXRhYmxlQnV0
dGVyZmx5Kik7Ci0gICAgSlNJbW11dGFibGVCdXR0ZXJmbHkqIGNhY2hlZE93bktleXMoKSBjb25z
dDsKLSAgICBib29sIGNhbkNhY2hlT3duS2V5cygpIGNvbnN0OwotCiAgICAgdm9pZCBnZXRQcm9w
ZXJ0eU5hbWVzRnJvbVN0cnVjdHVyZShWTSYsIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRp
b25Nb2RlKTsKIAogICAgIEpTU3RyaW5nKiBvYmplY3RUb1N0cmluZ1ZhbHVlKCkKQEAgLTUzMiwx
MSArNTIwLDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFN0cnVj
dHVyZSwgbV9pbmxpbmVDYXBhY2l0eSk7CiAgICAgfQogCi0gICAgc3RhdGljIHB0cmRpZmZfdCBw
cmV2aW91c09yUmFyZURhdGFPZmZzZXQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIE9CSkVDVF9P
RkZTRVRPRihTdHJ1Y3R1cmUsIG1fcHJldmlvdXNPclJhcmVEYXRhKTsKLSAgICB9Ci0KICAgICBz
dGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mKTsKICAgICAgICAgCiAgICAgYm9v
bCB0cmFuc2l0aW9uV2F0Y2hwb2ludFNldEhhc0JlZW5JbnZhbGlkYXRlZCgpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmgKaW5kZXgg
YWI3ZTIwNmRkZTVlY2U0ZjcwYmFjN2E0ZTkzMGVlNThmNTU3NWUzOS4uYjNlYjFiNDFlOWYxYzc4
MWU5NmYwMjI5MDUxMDAwZTA0MjcwNWQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaApAQCAtMjE5LDI5ICsyMTksNiBAQCBpbmxpbmUg
Ym9vbCBTdHJ1Y3R1cmU6OnRyYW5zaXRpdmVseVRyYW5zaXRpb25lZEZyb20oU3RydWN0dXJlKiBz
dHJ1Y3R1cmVUb0ZpbmQpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1pbmxpbmUgdm9pZCBTdHJ1
Y3R1cmU6OnNldENhY2hlZE93bktleXMoVk0mIHZtLCBKU0ltbXV0YWJsZUJ1dHRlcmZseSogb3du
S2V5cykKLXsKLSAgICBlbnN1cmVSYXJlRGF0YSh2bSktPnNldENhY2hlZE93bktleXModm0sIG93
bktleXMpOwotfQotCi1pbmxpbmUgSlNJbW11dGFibGVCdXR0ZXJmbHkqIFN0cnVjdHVyZTo6Y2Fj
aGVkT3duS2V5cygpIGNvbnN0Ci17Ci0gICAgaWYgKCFoYXNSYXJlRGF0YSgpKQotICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gcmFyZURhdGEoKS0+Y2FjaGVkT3duS2V5cygpOwot
fQotCi1pbmxpbmUgYm9vbCBTdHJ1Y3R1cmU6OmNhbkNhY2hlT3duS2V5cygpIGNvbnN0Ci17Ci0g
ICAgaWYgKGlzRGljdGlvbmFyeSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKGhh
c0luZGV4ZWRQcm9wZXJ0aWVzKGluZGV4aW5nVHlwZSgpKSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIGlmICh0eXBlSW5mbygpLm92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMoKSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiB0cnVlOwotfQotCiBBTFdBWVNfSU5MSU5FIEpT
VmFsdWUgcHJvdG90eXBlRm9yTG9va3VwUHJpbWl0aXZlSW1wbChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBjb25zdCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsKICAgICBBU1NFUlQoIXN0
cnVjdHVyZS0+aXNPYmplY3QoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5jcHAKaW5kZXggZDhiMmYwMGZhMjEzOTE4MDUyMWYxMWEw
NmMxMTI0MjliNzBiZTc1NS4uODk4NGNlOTE5NTZhODFkNTFhZDBkNTIzMzYzMGU2OTllMzZkZWI1
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFy
ZURhdGEuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJh
cmVEYXRhLmNwcApAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRh
LmgiCiAKICNpbmNsdWRlICJBZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9pbnRC
YXNlLmgiCi0jaW5jbHVkZSAiSlNJbW11dGFibGVCdXR0ZXJmbHkuaCIKICNpbmNsdWRlICJKU1By
b3BlcnR5TmFtZUVudW1lcmF0b3IuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUg
IkpTQ0lubGluZXMuaCIKQEAgLTcxLDcgKzcwLDE2IEBAIHZvaWQgU3RydWN0dXJlUmFyZURhdGE6
OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICB2
aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX3ByZXZpb3VzKTsKICAgICB2aXNpdG9yLmFwcGVu
ZCh0aGlzT2JqZWN0LT5tX29iamVjdFRvU3RyaW5nVmFsdWUpOwogICAgIHZpc2l0b3IuYXBwZW5k
KHRoaXNPYmplY3QtPm1fY2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRvcik7Ci0gICAgdmlzaXRv
ci5hcHBlbmQodGhpc09iamVjdC0+bV9jYWNoZWRPd25LZXlzKTsKK30KKworSlNQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yKiBTdHJ1Y3R1cmVSYXJlRGF0YTo6Y2FjaGVkUHJvcGVydHlOYW1lRW51bWVy
YXRvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRv
ci5nZXQoKTsKK30KKwordm9pZCBTdHJ1Y3R1cmVSYXJlRGF0YTo6c2V0Q2FjaGVkUHJvcGVydHlO
YW1lRW51bWVyYXRvcihWTSYgdm0sIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogZW51bWVyYXRv
cikKK3sKKyAgICBtX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3Iuc2V0KHZtLCB0aGlzLCBl
bnVtZXJhdG9yKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmlu
ZygpIGhlbHBlciB3YXRjaHBvaW50IGNsYXNzZXMgLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5oCmluZGV4IGQ0ZGU1OGI1
NTUwZmIzNDA1Y2MyNDIwNGY1ZmNhNTg0YWFhNDZiZDMuLjExYzE4MWRkNjFlN2ViNjc1NGViYTk3
MDU0YmYxMmE1MDNmYjg4YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RydWN0dXJlUmFyZURhdGEuaApAQCAtNTgsMTAgKzU4LDcgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBK
U1ZhbHVlIHByb3RvdHlwZSk7CiAKLSAgICBTdHJ1Y3R1cmUqIHByZXZpb3VzSUQoKSBjb25zdAot
ICAgIHsKLSAgICAgICAgcmV0dXJuIG1fcHJldmlvdXMuZ2V0KCk7Ci0gICAgfQorICAgIFN0cnVj
dHVyZSogcHJldmlvdXNJRCgpIGNvbnN0OwogICAgIHZvaWQgc2V0UHJldmlvdXNJRChWTSYsIFN0
cnVjdHVyZSopOwogICAgIHZvaWQgY2xlYXJQcmV2aW91c0lEKCk7CiAKQEAgLTcxLDIwICs2OCwx
MSBAQCBwdWJsaWM6CiAgICAgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBjYWNoZWRQcm9wZXJ0
eU5hbWVFbnVtZXJhdG9yKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRDYWNoZWRQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yKFZNJiwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKik7CiAKLSAgICBKU0ltbXV0
YWJsZUJ1dHRlcmZseSogY2FjaGVkT3duS2V5cygpIGNvbnN0OwotICAgIEpTSW1tdXRhYmxlQnV0
dGVyZmx5KiBjYWNoZWRPd25LZXlzQ29uY3VycmVudGx5KCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRD
YWNoZWRPd25LZXlzKFZNJiwgSlNJbW11dGFibGVCdXR0ZXJmbHkqKTsKLQogICAgIEJveDxJbmxp
bmVXYXRjaHBvaW50U2V0PiBjb3B5U2hhcmVkUG9seVByb3RvV2F0Y2hwb2ludCgpIGNvbnN0IHsg
cmV0dXJuIG1fcG9seVByb3RvV2F0Y2hwb2ludDsgfQogICAgIGNvbnN0IEJveDxJbmxpbmVXYXRj
aHBvaW50U2V0PiYgc2hhcmVkUG9seVByb3RvV2F0Y2hwb2ludCgpIGNvbnN0IHsgcmV0dXJuIG1f
cG9seVByb3RvV2F0Y2hwb2ludDsgfQogICAgIHZvaWQgc2V0U2hhcmVkUG9seVByb3RvV2F0Y2hw
b2ludChCb3g8SW5saW5lV2F0Y2hwb2ludFNldD4mJiBzaGFyZWRQb2x5UHJvdG9XYXRjaHBvaW50
KSB7IG1fcG9seVByb3RvV2F0Y2hwb2ludCA9IFdURk1vdmUoc2hhcmVkUG9seVByb3RvV2F0Y2hw
b2ludCk7IH0KICAgICBib29sIGhhc1NoYXJlZFBvbHlQcm90b1dhdGNocG9pbnQoKSBjb25zdCB7
IHJldHVybiBzdGF0aWNfY2FzdDxib29sPihtX3BvbHlQcm90b1dhdGNocG9pbnQpOyB9CiAKLSAg
ICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mQ2FjaGVkT3duS2V5cygpCi0gICAgewotICAgICAg
ICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFN0cnVjdHVyZVJhcmVEYXRhLCBtX2NhY2hlZE93bktl
eXMpOwotICAgIH0KLQogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CiAKIHByaXZhdGU6CkBAIC05
OCwxMCArODYsNyBAQCBwcml2YXRlOgogCiAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9w
cmV2aW91czsKICAgICBXcml0ZUJhcnJpZXI8SlNTdHJpbmc+IG1fb2JqZWN0VG9TdHJpbmdWYWx1
ZTsKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGhhdmUgc29tZSBzdG9yeSBmb3IgY2xlYXJpbmcg
dGhlc2UgcHJvcGVydHkgbmFtZXMgY2FjaGVzIGluIEdDLgotICAgIC8vIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI2NTkKICAgICBXcml0ZUJhcnJpZXI8SlNQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yPiBtX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3I7Ci0gICAg
V3JpdGVCYXJyaWVyPEpTSW1tdXRhYmxlQnV0dGVyZmx5PiBtX2NhY2hlZE93bktleXM7CiAKICAg
ICB0eXBlZGVmIEhhc2hNYXA8UHJvcGVydHlPZmZzZXQsIFJlZlB0cjxXYXRjaHBvaW50U2V0Piwg
V1RGOjpJbnRIYXNoPFByb3BlcnR5T2Zmc2V0PiwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFz
aFRyYWl0czxQcm9wZXJ0eU9mZnNldD4+IFByb3BlcnR5V2F0Y2hwb2ludE1hcDsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8UHJvcGVydHlXYXRjaHBvaW50TWFwPiBtX3JlcGxhY2VtZW50V2F0Y2hwb2lu
dFNldHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1
cmVSYXJlRGF0YUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVj
dHVyZVJhcmVEYXRhSW5saW5lcy5oCmluZGV4IDcwZTc3ZDRjNjQ5MTBjMTY4MDI4ZjNiNjg2MzU2
MWMzNzFlNDc4ZTYuLmU0ZTI0OTZhNTYyNGRkZjdkOTk3Y2MyMDMyZjA5ZWEyNTAxZGJhOWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRh
SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJh
cmVEYXRhSW5saW5lcy5oCkBAIC0yNSwxMyArMjUsMTYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNp
bmNsdWRlICJKU0ltbXV0YWJsZUJ1dHRlcmZseS5oIgotI2luY2x1ZGUgIkpTUHJvcGVydHlOYW1l
RW51bWVyYXRvci5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJl
UmFyZURhdGEuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKK2lubGluZSBTdHJ1Y3R1cmUqIFN0cnVj
dHVyZVJhcmVEYXRhOjpwcmV2aW91c0lEKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcmV2aW91
cy5nZXQoKTsKK30KKwogaW5saW5lIHZvaWQgU3RydWN0dXJlUmFyZURhdGE6OnNldFByZXZpb3Vz
SUQoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsKICAgICBtX3ByZXZpb3VzLnNldCh2
bSwgdGhpcywgc3RydWN0dXJlKTsKQEAgLTQ3LDMzICs1MCw0IEBAIGlubGluZSBKU1N0cmluZyog
U3RydWN0dXJlUmFyZURhdGE6Om9iamVjdFRvU3RyaW5nVmFsdWUoKSBjb25zdAogICAgIHJldHVy
biBtX29iamVjdFRvU3RyaW5nVmFsdWUuZ2V0KCk7CiB9CiAKLWlubGluZSBKU1Byb3BlcnR5TmFt
ZUVudW1lcmF0b3IqIFN0cnVjdHVyZVJhcmVEYXRhOjpjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9jYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
LmdldCgpOwotfQotCi1pbmxpbmUgdm9pZCBTdHJ1Y3R1cmVSYXJlRGF0YTo6c2V0Q2FjaGVkUHJv
cGVydHlOYW1lRW51bWVyYXRvcihWTSYgdm0sIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogZW51
bWVyYXRvcikKLXsKLSAgICBtX2NhY2hlZFByb3BlcnR5TmFtZUVudW1lcmF0b3Iuc2V0KHZtLCB0
aGlzLCBlbnVtZXJhdG9yKTsKLX0KLQotaW5saW5lIEpTSW1tdXRhYmxlQnV0dGVyZmx5KiBTdHJ1
Y3R1cmVSYXJlRGF0YTo6Y2FjaGVkT3duS2V5cygpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKCFpc0Nv
bXBpbGF0aW9uVGhyZWFkKCkpOwotICAgIHJldHVybiBtX2NhY2hlZE93bktleXMuZ2V0KCk7Ci19
Ci0KLWlubGluZSBKU0ltbXV0YWJsZUJ1dHRlcmZseSogU3RydWN0dXJlUmFyZURhdGE6OmNhY2hl
ZE93bktleXNDb25jdXJyZW50bHkoKSBjb25zdAotewotICAgIGF1dG8qIHJlc3VsdCA9IG1fY2Fj
aGVkT3duS2V5cy5nZXQoKTsKLSAgICBXVEY6OmxvYWRMb2FkRmVuY2UoKTsKLSAgICByZXR1cm4g
cmVzdWx0OwotfQotCi1pbmxpbmUgdm9pZCBTdHJ1Y3R1cmVSYXJlRGF0YTo6c2V0Q2FjaGVkT3du
S2V5cyhWTSYgdm0sIEpTSW1tdXRhYmxlQnV0dGVyZmx5KiBidXR0ZXJmbHkpCi17Ci0gICAgV1RG
OjpzdG9yZVN0b3JlRmVuY2UoKTsKLSAgICBtX2NhY2hlZE93bktleXMuc2V0KHZtLCB0aGlzLCBi
dXR0ZXJmbHkpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1ZNLmNwcAppbmRleCBkODMyNjliNjQ0ODJhYWU2ZGI5ZTJmZDc4NDlhY2I3NGI0ZDMyYTc3
Li41ZDJjNDUyNjcwZjIwYzYzNDc4Mzg3M2E4NWUyY2U2MzliMjNmNTYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVk0uY3BwCkBAIC00MzQsNyArNDM0LDYgQEAgVk06OlZNKFZNVHlwZSB2
bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogICAgIGV4Y2VwdGlvblN0cnVjdHVyZS5zZXQoKnRo
aXMsIEV4Y2VwdGlvbjo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCAwLCBqc051bGwoKSkpOwogICAg
IHByb21pc2VEZWZlcnJlZFN0cnVjdHVyZS5zZXQoKnRoaXMsIEpTUHJvbWlzZURlZmVycmVkOjpj
cmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIDAsIGpzTnVsbCgpKSk7CiAgICAgaW50ZXJuYWxQcm9taXNl
RGVmZXJyZWRTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpj
cmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIDAsIGpzTnVsbCgpKSk7Ci0gICAgbmF0aXZlU3RkRnVuY3Rp
b25DZWxsU3RydWN0dXJlLnNldCgqdGhpcywgTmF0aXZlU3RkRnVuY3Rpb25DZWxsOjpjcmVhdGVT
dHJ1Y3R1cmUoKnRoaXMsIDAsIGpzTnVsbCgpKSk7CiAgICAgcHJvZ3JhbUNvZGVCbG9ja1N0cnVj
dHVyZS5zZXQoKnRoaXMsIFByb2dyYW1Db2RlQmxvY2s6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywg
MCwganNOdWxsKCkpKTsKICAgICBtb2R1bGVQcm9ncmFtQ29kZUJsb2NrU3RydWN0dXJlLnNldCgq
dGhpcywgTW9kdWxlUHJvZ3JhbUNvZGVCbG9jazo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCAwLCBq
c051bGwoKSkpOwogICAgIGV2YWxDb2RlQmxvY2tTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBFdmFsQ29k
ZUJsb2NrOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIDAsIGpzTnVsbCgpKSk7CkBAIC00NDgsOCAr
NDQ3LDggQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogCiAgICAg
c2VudGluZWxTZXRCdWNrZXQuc2V0KCp0aGlzLCBKU1NldDo6QnVja2V0VHlwZTo6Y3JlYXRlU2Vu
dGluZWwoKnRoaXMpKTsKICAgICBzZW50aW5lbE1hcEJ1Y2tldC5zZXQoKnRoaXMsIEpTTWFwOjpC
dWNrZXRUeXBlOjpjcmVhdGVTZW50aW5lbCgqdGhpcykpOwotICAgIHNlbnRpbmVsSW1tdXRhYmxl
QnV0dGVyZmx5LnNldCgqdGhpcywgSlNJbW11dGFibGVCdXR0ZXJmbHk6OmNyZWF0ZVNlbnRpbmVs
KCp0aGlzKSk7CiAKKyAgICBuYXRpdmVTdGRGdW5jdGlvbkNlbGxTdHJ1Y3R1cmUuc2V0KCp0aGlz
LCBOYXRpdmVTdGRGdW5jdGlvbkNlbGw6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxs
KCkpKTsKICAgICBzbWFsbFN0cmluZ3MuaW5pdGlhbGl6ZUNvbW1vblN0cmluZ3MoKnRoaXMpOwog
CiAgICAgVGhyZWFkOjpjdXJyZW50KCkuc2V0Q3VycmVudEF0b21pY1N0cmluZ1RhYmxlKGV4aXN0
aW5nRW50cnlBdG9taWNTdHJpbmdUYWJsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaApp
bmRleCA4NjVlNWY3MzYxMjQ3ZjgwM2ExMGM3OGFkN2I4YTdkMmE4YzQ1ODkyLi5mNTE2MmNiZDdh
ZTAxMTVlNDI5NTlmODVjN2VlMWY3OTdhZmE1ZDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9WTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNLmgKQEAgLTU3MSw3ICs1NzEsNiBAQCBwdWJsaWM6CiAgICAgU3Ryb25nPEpTQ2VsbD4gZW1w
dHlQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOwogICAgIFN0cm9uZzxKU0NlbGw+IHNlbnRpbmVsU2V0
QnVja2V0OwogICAgIFN0cm9uZzxKU0NlbGw+IHNlbnRpbmVsTWFwQnVja2V0OwotICAgIFN0cm9u
ZzxKU0NlbGw+IHNlbnRpbmVsSW1tdXRhYmxlQnV0dGVyZmx5OwogCiAgICAgc3RkOjp1bmlxdWVf
cHRyPFByb21pc2VEZWZlcnJlZFRpbWVyPiBwcm9taXNlRGVmZXJyZWRUaW1lcjsKICAgICAKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDgy
ZTQyMTBmOGNmYzQ0N2Q4YThlYjJkNmQzODNhNGM3MWY2NGFmOC4uNTYwZGZjYmRhN2IzOWU0NGYx
MTcwMWQ2Y2IyMmM0YTI4NjI2OWUzMiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxOC0xMi0xNCAgQ29tbWl0
IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjIzOTE1MywgcjIzOTE1NCwgYW5kIHIyMzkxNTUuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI3MTUKKworICAgICAgICBDYXVz
ZWQgZmxha3kgR0MtcmVsYXRlZCBjcmFzaGVzIHNlZW4gd2l0aCBsYXlvdXQgdGVzdHMKKyAgICAg
ICAgKFJlcXVlc3RlZCBieSByeWFuaGFkZGFkIG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVy
dGVkIGNoYW5nZXNldHM6CisKKyAgICAgICAgIltKU0NdIE9wdGltaXplIE9iamVjdC5rZXlzIGJ5
IGNhY2hpbmcgb3duIGtleXMgcmVzdWx0cyBpbgorICAgICAgICBTdHJ1Y3R1cmVSYXJlRGF0YSIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDA0Nwor
ICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjM5MTUzCisKKyAgICAg
ICAgIlVucmV2aWV3ZWQsIGJ1aWxkIGZpeCBhZnRlciByMjM5MTUzIgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwMDQ3CisgICAgICAgIGh0dHBzOi8v
dHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMzkxNTQKKworICAgICAgICAiVW5yZXZpZXdlZCwg
YnVpbGQgZml4IGFmdGVyIHIyMzkxNTMsIHBhcnQgMiIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDA0NworICAgICAgICBodHRwczovL3RyYWMud2Vi
a2l0Lm9yZy9jaGFuZ2VzZXQvMjM5MTU1CisKIDIwMTgtMTItMTQgIEtlaXRoIE1pbGxlciAgPGtl
aXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgQ2FsbGVycyBvZiBKU1N0cmluZzo6Z2V0
SW5kZXggc2hvdWxkIGNoZWNrIGZvciBPT00gZXhjZXB0aW9ucwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3Mvb2JqZWN0LWtleXMtY2FjaGVkLXplcm8uanMgYi9KU1Rlc3RzL3N0cmVzcy9vYmpl
Y3Qta2V5cy1jYWNoZWQtemVyby5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjdj
Yzk2YWZhY2ZhODQ4YjEwMzBkNjMxYjY1MzkxNTdkNzA3Yjk2NS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vYmplY3Qta2V5cy1j
YWNoZWQtemVyby5qcworKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLWZ1bmN0aW9uIHNo
b3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpCi17Ci0gICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQp
Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKLX0KLQot
ZnVuY3Rpb24gdGVzdChvYmplY3QpCi17Ci0gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iamVjdCk7
Ci19Ci1ub0lubGluZSh0ZXN0KTsKLQotdmFyIG9iamVjdCA9IHt9OwotZm9yICh2YXIgaSA9IDA7
IGkgPCAxZTY7ICsraSkgewotICAgIHZhciByZXN1bHQgPSB0ZXN0KG9iamVjdCk7Ci0gICAgc2hv
dWxkQmUocmVzdWx0Lmxlbmd0aCwgMCk7Ci0gICAgc2hvdWxkQmUocmVzdWx0WzBdLCB1bmRlZmlu
ZWQpOwotICAgIHJlc3VsdFswXSA9IGk7Ci0gICAgc2hvdWxkQmUocmVzdWx0Lmxlbmd0aCwgMSk7
Ci0gICAgc2hvdWxkQmUocmVzdWx0WzBdLCBpKTsKLX0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL29iamVjdC1rZXlzLWNoYW5nZWQtYXR0cmlidXRlLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb2Jq
ZWN0LWtleXMtY2hhbmdlZC1hdHRyaWJ1dGUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGMzZjE0M2VjMjdmMDAyMDU5YWU0MTcyNTY5ZjliNzQzYzEzYmQxYTYuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb2JqZWN0
LWtleXMtY2hhbmdlZC1hdHRyaWJ1dGUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBA
Ci1mdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKQotewotICAgIGlmIChhY3R1YWwg
IT09IGV4cGVjdGVkKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFj
dHVhbCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3Qob2JqZWN0KQotewotICAgIHJldHVybiBPYmplY3Qu
a2V5cyhvYmplY3QpOwotfQotbm9JbmxpbmUodGVzdCk7Ci0KLXZhciBvYmplY3QgPSB7IENvY29h
OiA0MiB9OwotZm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkgewotICAgIHZhciByZXN1bHQg
PSB0ZXN0KG9iamVjdCk7Ci0gICAgc2hvdWxkQmUocmVzdWx0Lmxlbmd0aCwgMSk7Ci0gICAgc2hv
dWxkQmUocmVzdWx0WzBdLCAnQ29jb2EnKTsKLX0KLQotUmVmbGVjdC5kZWZpbmVQcm9wZXJ0eShv
YmplY3QsICdDb2NvYScsIHsKLSAgICBlbnVtZXJhYmxlOiBmYWxzZQotfSk7Ci0KLWZvciAodmFy
IGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKLSAgICB2YXIgcmVzdWx0ID0gdGVzdChvYmplY3QpOwot
ICAgIHNob3VsZEJlKHJlc3VsdC5sZW5ndGgsIDApOwotICAgIHNob3VsZEJlKHJlc3VsdFswXSwg
dW5kZWZpbmVkKTsKLX0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29iamVjdC1rZXlzLWNo
YW5nZWQtaW5kZXguanMgYi9KU1Rlc3RzL3N0cmVzcy9vYmplY3Qta2V5cy1jaGFuZ2VkLWluZGV4
LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MjNlMDkyNTdiMjlkYTQ1NGJkZjZm
M2ZkNzNiYTNiYTZiM2Y3NDc5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0pTVGVzdHMvc3RyZXNzL29iamVjdC1rZXlzLWNoYW5nZWQtaW5kZXguanMKKysr
IC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi1mdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4
cGVjdGVkKQotewotICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQotICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3Qob2Jq
ZWN0KQotewotICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmplY3QpOwotfQotbm9JbmxpbmUodGVz
dCk7Ci0KLXZhciBvYmplY3QgPSB7fTsKLWZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsK
LSAgICB2YXIgcmVzdWx0ID0gdGVzdChvYmplY3QpOwotICAgIHNob3VsZEJlKHJlc3VsdC5sZW5n
dGgsIDApOwotICAgIHNob3VsZEJlKHJlc3VsdFswXSwgdW5kZWZpbmVkKTsKLSAgICByZXN1bHRb
MF0gPSBpOwotICAgIHNob3VsZEJlKHJlc3VsdC5sZW5ndGgsIDEpOwotICAgIHNob3VsZEJlKHJl
c3VsdFswXSwgaSk7Ci19Ci0KLW9iamVjdFswXSA9IDQyOwotZm9yICh2YXIgaSA9IDA7IGkgPCAx
ZTY7ICsraSkgewotICAgIHZhciByZXN1bHQgPSB0ZXN0KG9iamVjdCk7Ci0gICAgc2hvdWxkQmUo
cmVzdWx0Lmxlbmd0aCwgMSk7Ci0gICAgc2hvdWxkQmUocmVzdWx0WzBdLCAnMCcpOwotfQpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb2JqZWN0LWtleXMtY2hhbmdlZC5qcyBiL0pTVGVzdHMv
c3RyZXNzL29iamVjdC1rZXlzLWNoYW5nZWQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDFkM2EzMDUzZmJlNmQ2NGQ5MDIyOTdiMDgzZGZhNzIwZGI0NmMyODIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb2JqZWN0
LWtleXMtY2hhbmdlZC5qcworKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLWZ1bmN0aW9u
IHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpCi17Ci0gICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0
ZWQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKLX0K
LQotZnVuY3Rpb24gdGVzdChvYmplY3QpCi17Ci0gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iamVj
dCk7Ci19Ci1ub0lubGluZSh0ZXN0KTsKLQotdmFyIG9iamVjdCA9IHt9OwotZm9yICh2YXIgaSA9
IDA7IGkgPCAxZTY7ICsraSkgewotICAgIHZhciByZXN1bHQgPSB0ZXN0KG9iamVjdCk7Ci0gICAg
c2hvdWxkQmUocmVzdWx0Lmxlbmd0aCwgMCk7Ci0gICAgc2hvdWxkQmUocmVzdWx0WzBdLCB1bmRl
ZmluZWQpOwotICAgIHJlc3VsdFswXSA9IGk7Ci0gICAgc2hvdWxkQmUocmVzdWx0Lmxlbmd0aCwg
MSk7Ci0gICAgc2hvdWxkQmUocmVzdWx0WzBdLCBpKTsKLX0KLQotb2JqZWN0LkNvY29hID0gNDI7
Ci1mb3IgKHZhciBpID0gMDsgaSA8IDFlNjsgKytpKSB7Ci0gICAgdmFyIHJlc3VsdCA9IHRlc3Qo
b2JqZWN0KTsKLSAgICBzaG91bGRCZShyZXN1bHQubGVuZ3RoLCAxKTsKLSAgICBzaG91bGRCZShy
ZXN1bHRbMF0sICdDb2NvYScpOwotfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb2JqZWN0
LWtleXMtaW5kZXhlZC1ub24tY2FjaGUuanMgYi9KU1Rlc3RzL3N0cmVzcy9vYmplY3Qta2V5cy1p
bmRleGVkLW5vbi1jYWNoZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDljOWNm
NGVlMTEyYTdmMzE3Y2M2NzkwMTMxYzAwZjRiODcwZDY4Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vYmplY3Qta2V5cy1pbmRl
eGVkLW5vbi1jYWNoZS5qcworKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLWZ1bmN0aW9u
IHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpCi17Ci0gICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0
ZWQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKLX0K
LQotZnVuY3Rpb24gdGVzdChvYmplY3QpCi17Ci0gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iamVj
dCk7Ci19Ci1ub0lubGluZSh0ZXN0KTsKLQotdmFyIG9iamVjdCA9IHswOiA0Mn07Ci1mb3IgKHZh
ciBpID0gMDsgaSA8IDFlMzsgKytpKSB7Ci0gICAgdmFyIHJlc3VsdCA9IHRlc3Qob2JqZWN0KTsK
LSAgICBzaG91bGRCZShyZXN1bHQubGVuZ3RoLCAxKTsKLSAgICBzaG91bGRCZShyZXN1bHRbMF0s
ICcwJyk7Ci19Ci1vYmplY3RbMV0gPSA0NDsKLWZvciAodmFyIGkgPSAwOyBpIDwgMWUzOyArK2kp
IHsKLSAgICB2YXIgcmVzdWx0ID0gdGVzdChvYmplY3QpOwotICAgIHNob3VsZEJlKHJlc3VsdC5s
ZW5ndGgsIDIpOwotICAgIHNob3VsZEJlKHJlc3VsdFswXSwgJzAnKTsKLSAgICBzaG91bGRCZShy
ZXN1bHRbMV0sICcxJyk7Ci19CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vYmplY3Qta2V5
cy1vdmVycmlkZXMtZ2V0LXByb3BlcnR5LW5hbWVzLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb2JqZWN0
LWtleXMtb3ZlcnJpZGVzLWdldC1wcm9wZXJ0eS1uYW1lcy5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNTMwZDhiYjE3ZTkxOThlNTA3YmU3NWM1ZDE5NjFlOTE0YjBiN2ZkYy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3N0cmVz
cy9vYmplY3Qta2V5cy1vdmVycmlkZXMtZ2V0LXByb3BlcnR5LW5hbWVzLmpzCisrKyAvZGV2L251
bGwKQEAgLTEsNTcgKzAsMCBAQAotZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkK
LXsKLSAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOwotfQotCi1mdW5jdGlvbiB0ZXN0KG9iamVjdCkKLXsK
LSAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqZWN0KTsKLX0KLW5vSW5saW5lKHRlc3QpOwotCi17
Ci0gICAgbGV0IG9iamVjdCA9IG5ldyBTdHJpbmcoIkNvY29hIik7Ci0gICAgZm9yIChsZXQgaSA9
IDA7IGkgPCAxZTM7ICsraSkgewotICAgICAgICBsZXQgcmVzdWx0ID0gdGVzdChvYmplY3QpOwot
ICAgICAgICBzaG91bGRCZShyZXN1bHQubGVuZ3RoLCA1KTsKLSAgICAgICAgc2hvdWxkQmUocmVz
dWx0WzBdLCAnMCcpOwotICAgICAgICBzaG91bGRCZShyZXN1bHRbMV0sICcxJyk7Ci0gICAgICAg
IHNob3VsZEJlKHJlc3VsdFsyXSwgJzInKTsKLSAgICAgICAgc2hvdWxkQmUocmVzdWx0WzNdLCAn
MycpOwotICAgICAgICBzaG91bGRCZShyZXN1bHRbNF0sICc0Jyk7Ci0gICAgfQotCi0gICAgb2Jq
ZWN0LkNvY29hID0gNDI7Ci0gICAgbGV0IHJlc3VsdCA9IHRlc3Qob2JqZWN0KTsKLSAgICBzaG91
bGRCZShyZXN1bHQubGVuZ3RoLCA2KTsKLSAgICBzaG91bGRCZShyZXN1bHRbMF0sICcwJyk7Ci0g
ICAgc2hvdWxkQmUocmVzdWx0WzFdLCAnMScpOwotICAgIHNob3VsZEJlKHJlc3VsdFsyXSwgJzIn
KTsKLSAgICBzaG91bGRCZShyZXN1bHRbM10sICczJyk7Ci0gICAgc2hvdWxkQmUocmVzdWx0WzRd
LCAnNCcpOwotICAgIHNob3VsZEJlKHJlc3VsdFs1XSwgJ0NvY29hJyk7Ci19Ci0KLXsKLSAgICBs
ZXQgb2JqZWN0ID0gbmV3IFN0cmluZygiQ29jb2EiKTsKLSAgICBmb3IgKGxldCBpID0gMDsgaSA8
IDFlMzsgKytpKSB7Ci0gICAgICAgIGxldCByZXN1bHQgPSB0ZXN0KG9iamVjdCk7Ci0gICAgICAg
IHNob3VsZEJlKHJlc3VsdC5sZW5ndGgsIDUpOwotICAgICAgICBzaG91bGRCZShyZXN1bHRbMF0s
ICcwJyk7Ci0gICAgICAgIHNob3VsZEJlKHJlc3VsdFsxXSwgJzEnKTsKLSAgICAgICAgc2hvdWxk
QmUocmVzdWx0WzJdLCAnMicpOwotICAgICAgICBzaG91bGRCZShyZXN1bHRbM10sICczJyk7Ci0g
ICAgICAgIHNob3VsZEJlKHJlc3VsdFs0XSwgJzQnKTsKLSAgICB9Ci0KLSAgICBvYmplY3RbOF0g
PSA0MjsKLSAgICBsZXQgcmVzdWx0ID0gdGVzdChvYmplY3QpOwotICAgIHNob3VsZEJlKHJlc3Vs
dC5sZW5ndGgsIDYpOwotICAgIHNob3VsZEJlKHJlc3VsdFswXSwgJzAnKTsKLSAgICBzaG91bGRC
ZShyZXN1bHRbMV0sICcxJyk7Ci0gICAgc2hvdWxkQmUocmVzdWx0WzJdLCAnMicpOwotICAgIHNo
b3VsZEJlKHJlc3VsdFszXSwgJzMnKTsKLSAgICBzaG91bGRCZShyZXN1bHRbNF0sICc0Jyk7Ci0g
ICAgc2hvdWxkQmUocmVzdWx0WzVdLCAnOCcpOwotfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>