<?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>172785</bug_id>
          
          <creation_ts>2017-05-31 16:22:03 -0700</creation_ts>
          <short_desc>REGRESSION(r217611): &quot;caused wasm-hashset-many.html to become flaky.&quot; (Requested by keith_miller on #webkit).</short_desc>
          <delta_ts>2017-05-31 20:07:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>172759</blocked>
    
    <blocked>172775</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>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1314412</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-31 16:22:03 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/217611 broke the build:
&quot;caused wasm-hashset-many.html to become flaky.&quot; (Requested by keith_miller 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>1314415</commentid>
    <comment_count>1</comment_count>
      <attachid>311652</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-31 16:22:14 -0700</bug_when>
    <thetext>Created attachment 311652
ROLLOUT of r217611

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>1314416</commentid>
    <comment_count>2</comment_count>
      <attachid>311652</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-31 16:25:08 -0700</bug_when>
    <thetext>Comment on attachment 311652
ROLLOUT of r217611

Clearing flags on attachment: 311652

Committed r217638: &lt;http://trac.webkit.org/changeset/217638&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314417</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-31 16:25:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314512</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-05-31 20:07:12 -0700</bug_when>
    <thetext>*** Bug 172781 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311652</attachid>
            <date>2017-05-31 16:22:14 -0700</date>
            <delta_ts>2017-05-31 16:25:08 -0700</delta_ts>
            <desc>ROLLOUT of r217611</desc>
            <filename>bug-172785-20170531192213.patch</filename>
            <type>text/plain</type>
            <size>49568</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3NjM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MWQ1YjhmODNmN2EwNTliMmMwOWI2ZDNiYmY2ZWQ1YmMxYjkwMWIyLi41YjFiYmRjNWRlOGI1MjRk
MTE3NTA1YmUxMjQ2YWRiZGUwMDBkYThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxNy0wNS0zMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIxNzYxMSBhbmQgcjIx
NzYzMS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
Mjc4NQorCisgICAgICAgICJjYXVzZWQgd2FzbS1oYXNoc2V0LW1hbnkuaHRtbCB0byBiZWNvbWUg
Zmxha3kuIiAoUmVxdWVzdGVkIGJ5CisgICAgICAgIGtlaXRoX21pbGxlciBvbiAjd2Via2l0KS4K
KworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXRzOgorCisgICAgICAgICJSZWxhbmQgcjIxNjgw
OCwgdW5kZXJseWluZyBsbGRiIGJ1ZyBoYXMgYmVlbiBmaXhlZC4iCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI3NTkKKyAgICAgICAgaHR0cDovL3Ry
YWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjE3NjExCisKKyAgICAgICAgIlVzZSBkaXNwYXRjaCBx
dWV1ZXMgZm9yIG1hY2ggZXhjZXB0aW9ucyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3Mjc3NQorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8yMTc2MzEKKwogMjAxNy0wNS0zMSAgT2xla3NhbmRyIFNrYWNoa292ICA8Z3Nr
YWNoa292QGdtYWlsLmNvbT4KIAogICAgICAgICBSb2xsaW5nIG91dDogUHJldmVudCBhc3luYyBt
ZXRob2RzIG5hbWVkICdmdW5jdGlvbicKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
IGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggN2FiZTY0ZDlhMjViNmQ4NmE1YWIwODM0ZjUw
NTRiYWRiZmRhOGZhYy4uZTk2Zjg3OTBiYjRjYzdmYzAyZTU5M2MyNDNkNTgzNzE1ZmQxNTdlZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNy0wNS0zMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1
ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIxNzYx
MSBhbmQgcjIxNzYzMS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3Mjc4NQorCisgICAgICAgICJjYXVzZWQgd2FzbS1oYXNoc2V0LW1hbnkuaHRtbCB0
byBiZWNvbWUgZmxha3kuIiAoUmVxdWVzdGVkIGJ5CisgICAgICAgIGtlaXRoX21pbGxlciBvbiAj
d2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXRzOgorCisgICAgICAgICJSZWxh
bmQgcjIxNjgwOCwgdW5kZXJseWluZyBsbGRiIGJ1ZyBoYXMgYmVlbiBmaXhlZC4iCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI3NTkKKyAgICAgICAg
aHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjE3NjExCisKKyAgICAgICAgIlVzZSBk
aXNwYXRjaCBxdWV1ZXMgZm9yIG1hY2ggZXhjZXB0aW9ucyIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mjc3NQorICAgICAgICBodHRwOi8vdHJhYy53
ZWJraXQub3JnL2NoYW5nZXNldC8yMTc2MzEKKwogMjAxNy0wNS0zMSAgS2VpdGggTWlsbGVyICA8
a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgZGlzcGF0Y2ggcXVldWVzIGZv
ciBtYWNoIGV4Y2VwdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
dGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwCmluZGV4IGEzYzM5YTc2MWMyNDVj
ZGQ1OTU4MzViODM4YWQwNWZhNzdmMDBmY2UuLjg1YzI3MmM0NDM3Njc3NTczZTBlNzUwYWFhYzU2
MzllY2U4NDJkN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMv
RXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS90ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcApAQCAtMzAsMTggKzMwLDEwIEBACiAj
aW5jbHVkZSAiSlNDb250ZXh0UmVmUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkphdmFTY3JpcHQuaCIK
ICNpbmNsdWRlICJPcHRpb25zLmgiCi0KICNpbmNsdWRlIDxjaHJvbm8+Ci0jaW5jbHVkZSA8d3Rm
L0F0b21pY3MuaD4KLSNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0N1
cnJlbnRUaW1lLmg+Ci0jaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdCdWlsZGVyLmg+CiAKLSNpZiBIQVZFKE1BQ0hfRVhDRVBUSU9OUykKLSNpbmNsdWRlIDxk
aXNwYXRjaC9kaXNwYXRjaC5oPgotI2VuZGlmCi0KIHVzaW5nIG5hbWVzcGFjZSBzdGQ6OmNocm9u
bzsKIHVzaW5nIEpTQzo6T3B0aW9uczsKIApAQCAtODUsMTUgKzc3LDYgQEAgc3RhdGljIGJvb2wg
ZXh0ZW5kVGVybWluYXRlQ2FsbGJhY2soSlNDb250ZXh0UmVmIGN0eCwgdm9pZCopCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLSNpZiBIQVZFKE1BQ0hfRVhDRVBUSU9OUykKLWJvb2wgZGlzcGF0Y2hU
ZXJtaW5hdGVDYWxsYmFja0NhbGxlZCA9IGZhbHNlOwotc3RhdGljIGJvb2wgZGlzcGF0Y2hUZXJt
aXRhdGVDYWxsYmFjayhKU0NvbnRleHRSZWYsIHZvaWQqKQotewotICAgIGRpc3BhdGNoVGVybWlu
YXRlQ2FsbGJhY2tDYWxsZWQgPSB0cnVlOwotICAgIHJldHVybiB0cnVlOwotfQotI2VuZGlmCi0K
IHN0cnVjdCBUaWVyT3B0aW9ucyB7CiAgICAgY29uc3QgY2hhciogdGllcjsKICAgICB1bnNpZ25l
ZCB0aW1lTGltaXRBZGp1c3RtZW50TWlsbGlzOwpAQCAtMzgyLDY1ICszNjUsNiBAQCBpbnQgdGVz
dEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotI2lmIEhB
VkUoTUFDSF9FWENFUFRJT05TKQotICAgICAgICAvKiBUZXN0IHNjcmlwdCB0aW1lb3V0IGZyb20g
ZGlzcGF0Y2ggcXVldWU6ICovCi0gICAgICAgIHRpbWVMaW1pdCA9ICgxMDAgKyB0aWVyQWRqdXN0
bWVudE1pbGxpcykgLyAxMDAwLjA7Ci0gICAgICAgIEpTQ29udGV4dEdyb3VwU2V0RXhlY3V0aW9u
VGltZUxpbWl0KGNvbnRleHRHcm91cCwgdGltZUxpbWl0LCBkaXNwYXRjaFRlcm1pdGF0ZUNhbGxi
YWNrLCAwKTsKLSAgICAgICAgewotICAgICAgICAgICAgdW5zaWduZWQgdGltZUFmdGVyV2F0Y2hk
b2dTaG91bGRIYXZlRmlyZWQgPSAzMDAgKyB0aWVyQWRqdXN0bWVudE1pbGxpczsKLQotICAgICAg
ICAgICAgU3RyaW5nQnVpbGRlciBzY3JpcHRCdWlsZGVyOwotICAgICAgICAgICAgc2NyaXB0QnVp
bGRlci5hcHBlbmRMaXRlcmFsKCJmdW5jdGlvbiBmb28oKSB7IHZhciBzdGFydFRpbWUgPSBjdXJy
ZW50Q1BVVGltZSgpOyB3aGlsZSAodHJ1ZSkgeyBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkr
Kyk7IGlmIChjdXJyZW50Q1BVVGltZSgpIC0gc3RhcnRUaW1lID4gIik7Ci0gICAgICAgICAgICBz
Y3JpcHRCdWlsZGVyLmFwcGVuZE51bWJlcih0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJl
ZCAvIDEwMDAuMCk7Ci0gICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoIikg
YnJlYWs7IH0gfSBmb28oKTsiKTsKLQotICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0g
SlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc2NyaXB0QnVpbGRlci50b1N0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKLSAgICAgICAg
ICAgIGRpc3BhdGNoVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKLQotICAgICAgICAg
ICAgLy8gV2UgaGF2ZSB0byBkbyB0aGlzIHNpbmNlIGJsb2NrcyBjYW4gb25seSBjYXB0dXJlIHRo
aW5ncyBhcyBjb25zdC4KLSAgICAgICAgICAgIEpTR2xvYmFsQ29udGV4dFJlZiYgY29udGV4dFJl
ZiA9IGNvbnRleHQ7Ci0gICAgICAgICAgICBKU1N0cmluZ1JlZiYgc2NyaXB0UmVmID0gc2NyaXB0
OwotICAgICAgICAgICAgSlNWYWx1ZVJlZiYgZXhjZXB0aW9uUmVmID0gZXhjZXB0aW9uOwotCi0g
ICAgICAgICAgICBMb2NrIHN5bmNMb2NrOwotICAgICAgICAgICAgTG9jayYgc3luY0xvY2tSZWYg
PSBzeW5jTG9jazsKLSAgICAgICAgICAgIENvbmRpdGlvbiBzeW5jaHJvbml6ZTsKLSAgICAgICAg
ICAgIENvbmRpdGlvbiYgc3luY2hyb25pemVSZWYgPSBzeW5jaHJvbml6ZTsKLSAgICAgICAgICAg
IGJvb2wgZGlkU3luY2hyb25pemUgPSBmYWxzZTsKLSAgICAgICAgICAgIGJvb2wmIGRpZFN5bmNo
cm9uaXplUmVmID0gZGlkU3luY2hyb25pemU7Ci0KLSAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpt
aWNyb3NlY29uZHMgc3RhcnRUaW1lOwotICAgICAgICAgICAgc3RkOjpjaHJvbm86Om1pY3Jvc2Vj
b25kcyBlbmRUaW1lOwotCi0gICAgICAgICAgICBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzJiBz
dGFydFRpbWVSZWYgPSBzdGFydFRpbWU7Ci0gICAgICAgICAgICBzdGQ6OmNocm9ubzo6bWljcm9z
ZWNvbmRzJiBlbmRUaW1lUmVmID0gZW5kVGltZTsKLQotICAgICAgICAgICAgZGlzcGF0Y2hfZ3Jv
dXBfdCBncm91cCA9IGRpc3BhdGNoX2dyb3VwX2NyZWF0ZSgpOwotICAgICAgICAgICAgZGlzcGF0
Y2hfZ3JvdXBfYXN5bmMoZ3JvdXAsIGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoMCwgMCksIF57
Ci0gICAgICAgICAgICAgICAgc3RhcnRUaW1lUmVmID0gY3VycmVudENQVVRpbWUoKTsKLSAgICAg
ICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHRSZWYsIHNjcmlwdFJlZiwgbnVsbHB0
ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvblJlZik7Ci0gICAgICAgICAgICAgICAgZW5kVGltZVJl
ZiA9IGN1cnJlbnRDUFVUaW1lKCk7Ci0gICAgICAgICAgICAgICAgYXV0byBsb2NrZXIgPSBXVEY6
OmhvbGRMb2NrKHN5bmNMb2NrUmVmKTsKLSAgICAgICAgICAgICAgICBkaWRTeW5jaHJvbml6ZVJl
ZiA9IHRydWU7Ci0gICAgICAgICAgICAgICAgc3luY2hyb25pemVSZWYubm90aWZ5QWxsKCk7Ci0g
ICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhzeW5j
TG9jayk7Ci0gICAgICAgICAgICBzeW5jaHJvbml6ZS53YWl0KHN5bmNMb2NrLCBbJl0geyByZXR1
cm4gZGlkU3luY2hyb25pemU7IH0pOwotCi0gICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3Rh
cnRUaW1lKSA8IG1pbGxpc2Vjb25kcyh0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkp
ICYmIGRpc3BhdGNoVGVybWluYXRlQ2FsbGJhY2tDYWxsZWQpCi0gICAgICAgICAgICAgICAgcHJp
bnRmKCJQQVNTOiAlcyBzY3JpcHQgb24gZGlzcGF0Y2ggcXVldWUgdGltZWQgb3V0IGFzIGV4cGVj
dGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgICAgICBpZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IG1pbGxpc2Vjb25kcyh0aW1lQWZ0
ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkpCi0gICAgICAgICAgICAgICAgICAgIHByaW50Zigi
RkFJTDogJXMgc2NyaXB0IG9uIGRpc3BhdGNoIHF1ZXVlIGRpZCBub3QgdGltZSBvdXQgYXMgZXhw
ZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAgICAgICAgICBpZiAoIXNob3Vs
ZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQotICAgICAgICAgICAgICAgICAgICBwcmludGYo
IkZBSUw6ICVzIHNjcmlwdCBvbiBkaXNwYXRjaCBxdWV1ZSB0aW1lb3V0IGNhbGxiYWNrIHdhcyBu
b3QgY2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7Ci0gICAgICAgICAgICAgICAgZmFpbGVk
ID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotI2VuZGlmCi0KICAgICAgICAgSlNH
bG9iYWxDb250ZXh0UmVsZWFzZShjb250ZXh0KTsKIAogICAgICAgICBPcHRpb25zOjpzZXRPcHRp
b25zKHNhdmVkT3B0aW9uc0J1aWxkZXIudG9TdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAppbmRleCAzMWUyZGI0MGIyMTZlYWEy
YjExNDI0YjgwM2ZiN2Y5MWRkNGUyNjFmLi5jMTc1YWUwYzQ4MmVkMjdiZDVmNmJkYzg3OTY4ZTc1
ZDQ1YWY1MGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xv
Y2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKQEAg
LTMwLDggKzMwLDYgQEAKICNpbmNsdWRlICJTYW1wbGluZ1Byb2ZpbGVyLmgiCiAjaW5jbHVkZSAi
V2FzbU1hY2hpbmVUaHJlYWRzLmgiCiAjaW5jbHVkZSA8dGhyZWFkPgotI2luY2x1ZGUgPHd0Zi9U
aHJlYWRpbmcuaD4KLSNpbmNsdWRlIDx3dGYvdGhyZWFkcy9TaWduYWxzLmg+CiAKIG5hbWVzcGFj
ZSBKU0MgewogCkBAIC0xNTAsMTAgKzE0OCw2IEBAIHZvaWQgSlNMb2NrOjpkaWRBY3F1aXJlTG9j
aygpCiAgICAgV2FzbTo6c3RhcnRUcmFja2luZ0N1cnJlbnRUaHJlYWQoKTsKICNlbmRpZgogCi0j
aWYgSEFWRShNQUNIX0VYQ0VQVElPTlMpCi0gICAgcmVnaXN0ZXJUaHJlYWRGb3JNYWNoRXhjZXB0
aW9uSGFuZGxpbmcoJlRocmVhZDo6Y3VycmVudCgpKTsKLSNlbmRpZgotCiAgICAgbV92bS0+dHJh
cHMoKS5ub3RpZnlHcmFiQWxsTG9ja3MoKTsKIAogI2lmIEVOQUJMRShTQU1QTElOR19QUk9GSUxF
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKaW5kZXggOWYxMmRm
OTVjZDkwY2E5MDQ3ZDY2Y2IxNzZjZDBkY2UxMDM1OTE3Ni4uMzc1Nzc4NjgyYWJmZjA1YWVjNTM0
YTI1MmUwMTg2OGZjMzJlMjA1MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0
aW9ucy5jcHAKQEAgLTQzLDcgKzQzLDYgQEAKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+
CiAjaW5jbHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KLSNpbmNsdWRlIDx3dGYvdGhyZWFkcy9TaWduYWxzLmg+CiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKICNpbmNsdWRlIDxjcnRfZXh0ZXJucy5oPgpAQCAtMzU5LDEwICszNTgsNiBA
QCBzdGF0aWMgdm9pZCBvdmVycmlkZURlZmF1bHRzKCkKICNpZiAhRU5BQkxFKFdFQkFTU0VNQkxZ
X0ZBU1RfTUVNT1JZKQogICAgIE9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5RmFzdE1lbW9yeSgpID0g
ZmFsc2U7CiAjZW5kaWYKLQotI2lmICFIQVZFKE1BQ0hfRVhDRVBUSU9OUykKLSAgICBPcHRpb25z
Ojp1c2VNYWNoRm9yRXhjZXB0aW9ucygpID0gZmFsc2U7Ci0jZW5kaWYKIH0KIAogc3RhdGljIHZv
aWQgcmVjb21wdXRlRGVwZW5kZW50T3B0aW9ucygpCkBAIC01NTUsMTEgKzU1MCw2IEBAIHZvaWQg
T3B0aW9uczo6aW5pdGlhbGl6ZSgpCiAKICAgICAgICAgICAgIGR1bXBPcHRpb25zSWZOZWVkZWQo
KTsKICAgICAgICAgICAgIGVuc3VyZU9wdGlvbnNBcmVDb2hlcmVudCgpOwotCi0jaWYgSEFWRShN
QUNIX0VYQ0VQVElPTlMpCi0gICAgICAgICAgICBpZiAoT3B0aW9uczo6dXNlTWFjaEZvckV4Y2Vw
dGlvbnMoKSkKLSAgICAgICAgICAgICAgICBoYW5kbGVTaWduYWxzV2l0aE1hY2goKTsKLSNlbmRp
ZgogICAgICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5o
CmluZGV4IGEwOTM1ZDJkZGMyYmYyOTNjNWJhZWVlN2M5MTZjNDNiMDkzNzlkM2QuLjRhZDE2ZWFm
ZmExOWM5YmYxMWI0YjE5OTE0NmRjYWVhZmE5NGIzM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zLmgKQEAgLTQyMyw4ICs0MjMsNiBAQCB0eXBlZGVmIGNvbnN0IGNoYXIq
IG9wdGlvblN0cmluZzsKICAgICB2KHVuc2lnbmVkLCB3YXRjaGRvZywgMCwgTm9ybWFsLCAid2F0
Y2hkb2cgdGltZW91dCAoMCA9IERpc2FibGVkLCBOID0gYSB0aW1lb3V0IHBlcmlvZCBvZiBOIG1p
bGxpc2Vjb25kcykiKSBcCiAgICAgdihib29sLCB1c2VQb2xsaW5nVHJhcHMsIGZhbHNlLCBOb3Jt
YWwsICJ1c2UgcG9sbGluZyAoaW5zdGVhZCBvZiBzaWduYWxsaW5nKSBWTSB0cmFwcyIpIFwKICAg
ICBcCi0gICAgdihib29sLCB1c2VNYWNoRm9yRXhjZXB0aW9ucywgdHJ1ZSwgTm9ybWFsLCAiVXNl
IG1hY2ggZXhjZXB0aW9ucyByYXRoZXIgdGhhbiBzaWduYWxzIHRvIGhhbmRsZSBmYXVsdHMgYW5k
IHBhc3MgdGhyZWFkIG1lc3NhZ2VzLiAoVGhpcyBkb2VzIG5vdGhpbmcgb24gcGxhdGZvcm1zIHdp
dGhvdXQgbWFjaCkiKSBcCi0gICAgXAogICAgIHYoYm9vbCwgdXNlSUNTdGF0cywgZmFsc2UsIE5v
cm1hbCwgbnVsbHB0cikgXAogICAgIFwKICAgICB2KHVuc2lnbmVkLCBwcm90b3R5cGVIaXRDb3Vu
dEZvckxMSW50Q2FjaGluZywgMiwgTm9ybWFsLCAiTnVtYmVyIG9mIHByb3RvdHlwZSBwcm9wZXJ0
eSBoaXRzIGJlZm9yZSBjYWNoaW5nIGEgcHJvdG90eXBlIGluIHRoZSBMTEludC4gQSBjb3VudCBv
ZiAwIG1lYW5zIG5ldmVyIGNhY2hlLiIpIFwKQEAgLTQ0OCw3ICs0NDYsNiBAQCB0eXBlZGVmIGNv
bnN0IGNoYXIqIG9wdGlvblN0cmluZzsKICAgICB2KHVuc2lnbmVkLCB3ZWJBc3NlbWJseUJCUU9w
dGltaXphdGlvbkxldmVsLCAxLCBOb3JtYWwsICJCMyBPcHRpbWl6YXRpb24gbGV2ZWwgZm9yIEJC
USBXZWIgQXNzZW1ibHkgbW9kdWxlIGNvbXBpbGF0aW9ucy4iKSBcCiAgICAgdih1bnNpZ25lZCwg
d2ViQXNzZW1ibHlPTUdPcHRpbWl6YXRpb25MZXZlbCwgT3B0aW9uczo6ZGVmYXVsdEIzT3B0TGV2
ZWwoKSwgTm9ybWFsLCAiQjMgT3B0aW1pemF0aW9uIGxldmVsIGZvciBPTUcgV2ViIEFzc2VtYmx5
IG1vZHVsZSBjb21waWxhdGlvbnMuIikgXAogICAgIFwKLSAgICB2KGJvb2wsIHVzZUJCUVRpZXJV
cENoZWNrcywgdHJ1ZSwgTm9ybWFsLCAiRW5hYmxlcyB0aWVyIHVwIGNoZWNrcyBmb3Igb3VyIEJC
USBjb2RlLiIpIFwKICAgICB2KHVuc2lnbmVkLCB3ZWJBc3NlbWJseU9NR1RpZXJVcENvdW50LCA1
MDAwLCBOb3JtYWwsICJUaGUgY291bnRkb3duIGJlZm9yZSB3ZSB0aWVyIHVwIGEgZnVuY3Rpb24g
dG8gT01HLiIpIFwKICAgICB2KHVuc2lnbmVkLCB3ZWJBc3NlbWJseUxvb3BEZWNyZW1lbnQsIDE1
LCBOb3JtYWwsICJUaGUgYW1vdW50IHRoZSB0aWVyIHVwIGNvdW50ZG93biBpcyBkZWNyZW1lbnRl
ZCBvbiBlYWNoIGxvb3AgYmFja2VkZ2UuIikgXAogICAgIHYodW5zaWduZWQsIHdlYkFzc2VtYmx5
RnVuY3Rpb25FbnRyeURlY3JlbWVudCwgMSwgTm9ybWFsLCAiVGhlIGFtb3VudCB0aGUgdGllciB1
cCBjb3VudGRvd24gaXMgZGVjcmVtZW50ZWQgb24gZWFjaCBmdW5jdGlvbiBlbnRyeS4iKSBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwCmluZGV4IDhjNTdjNDU2YWU0
MzY4YWRmMjhlYTBhNjQ1OGU3YzAzOWE5NzBlZTkuLjFiYWFjZTYwNDRlNjYwYThlNTQ0MWZiYWQw
MThlYTkwOTMxYTRjOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNVHJhcHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMu
Y3BwCkBAIC01MywxMSArNTMsMTEgQEAgQUxXQVlTX0lOTElORSBWTSYgVk1UcmFwczo6dm0oKSBj
b25zdAogI2lmIEVOQUJMRShTSUdOQUxfQkFTRURfVk1fVFJBUFMpCiAKIHN0cnVjdCBTaWduYWxD
b250ZXh0IHsKLSAgICBTaWduYWxDb250ZXh0KFBsYXRmb3JtUmVnaXN0ZXJzJiByZWdpc3RlcnMp
Ci0gICAgICAgIDogcmVnaXN0ZXJzKHJlZ2lzdGVycykKLSAgICAgICAgLCB0cmFwUEMoTWFjaGlu
ZUNvbnRleHQ6Omluc3RydWN0aW9uUG9pbnRlcihyZWdpc3RlcnMpKQotICAgICAgICAsIHN0YWNr
UG9pbnRlcihNYWNoaW5lQ29udGV4dDo6c3RhY2tQb2ludGVyKHJlZ2lzdGVycykpCi0gICAgICAg
ICwgZnJhbWVQb2ludGVyKE1hY2hpbmVDb250ZXh0OjpmcmFtZVBvaW50ZXIocmVnaXN0ZXJzKSkK
KyAgICBTaWduYWxDb250ZXh0KG1jb250ZXh0X3QmIG1jb250ZXh0KQorICAgICAgICA6IG1jb250
ZXh0KG1jb250ZXh0KQorICAgICAgICAsIHRyYXBQQyhNYWNoaW5lQ29udGV4dDo6aW5zdHJ1Y3Rp
b25Qb2ludGVyKG1jb250ZXh0KSkKKyAgICAgICAgLCBzdGFja1BvaW50ZXIoTWFjaGluZUNvbnRl
eHQ6OnN0YWNrUG9pbnRlcihtY29udGV4dCkpCisgICAgICAgICwgZnJhbWVQb2ludGVyKE1hY2hp
bmVDb250ZXh0OjpmcmFtZVBvaW50ZXIobWNvbnRleHQpKQogICAgIHsKICNpZiBDUFUoWDg2XzY0
KSB8fCBDUFUoWDg2KQogICAgICAgICAvLyBPbiBYODZfNjQsIFNJR1RSQVAgcmVwb3J0cyB0aGUg
YWRkcmVzcyBhZnRlciB0aGUgdHJhcHBpbmcgUEMuIFNvLCBkZWMgYnkgMS4KQEAgLTY4LDExICs2
OCwxMSBAQCBzdHJ1Y3QgU2lnbmFsQ29udGV4dCB7CiAgICAgdm9pZCBhZGp1c3RQQ1RvUG9pbnRU
b1RyYXBwaW5nSW5zdHJ1Y3Rpb24oKQogICAgIHsKICNpZiBDUFUoWDg2XzY0KSB8fCBDUFUoWDg2
KQotICAgICAgICBNYWNoaW5lQ29udGV4dDo6aW5zdHJ1Y3Rpb25Qb2ludGVyKHJlZ2lzdGVycykg
PSB0cmFwUEM7CisgICAgICAgIE1hY2hpbmVDb250ZXh0OjppbnN0cnVjdGlvblBvaW50ZXIobWNv
bnRleHQpID0gdHJhcFBDOwogI2VuZGlmCiAgICAgfQogCi0gICAgUGxhdGZvcm1SZWdpc3RlcnMm
IHJlZ2lzdGVyczsKKyAgICBtY29udGV4dF90JiBtY29udGV4dDsKICAgICB2b2lkKiB0cmFwUEM7
CiAgICAgdm9pZCogc3RhY2tQb2ludGVyOwogICAgIHZvaWQqIGZyYW1lUG9pbnRlcjsKQEAgLTEz
MCw4ICsxMzAsOCBAQCBzdGF0aWMgRXhwZWN0ZWQ8Vk1BbmRTdGFja0JvdW5kcywgVk1UcmFwczo6
RXJyb3I+IGZpbmRBY3RpdmVWTUFuZFN0YWNrQm91bmRzKFNpZwogCiBzdGF0aWMgdm9pZCBpbnN0
YWxsU2lnbmFsSGFuZGxlcigpCiB7Ci0gICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2lnbmFsOjpU
cmFwLCBbXSAoU2lnbmFsLCBTaWdJbmZvJiwgUGxhdGZvcm1SZWdpc3RlcnMmIHJlZ2lzdGVycykg
LT4gU2lnbmFsQWN0aW9uIHsKLSAgICAgICAgU2lnbmFsQ29udGV4dCBjb250ZXh0KHJlZ2lzdGVy
cyk7CisgICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2lnbmFsOjpUcmFwLCBbXSAoaW50LCBzaWdp
bmZvX3QqLCB2b2lkKiB1YXApIC0+IFNpZ25hbEFjdGlvbiB7CisgICAgICAgIFNpZ25hbENvbnRl
eHQgY29udGV4dChzdGF0aWNfY2FzdDx1Y29udGV4dF90Kj4odWFwKS0+dWNfbWNvbnRleHQpOwog
CiAgICAgICAgIGlmICghaXNKSVRQQyhjb250ZXh0LnRyYXBQQykpCiAgICAgICAgICAgICByZXR1
cm4gU2lnbmFsQWN0aW9uOjpOb3RIYW5kbGVkOwpAQCAtNDA0LDggKzQwNCw4IEBAIHZvaWQgVk1U
cmFwczo6U2lnbmFsU2VuZGVyOjpzZW5kKCkKICAgICAgICAgICAgIFZNJiB2bSA9ICptX3ZtOwog
ICAgICAgICAgICAgYXV0byBvcHRpb25hbE93bmVyVGhyZWFkID0gdm0ub3duZXJUaHJlYWQoKTsK
ICAgICAgICAgICAgIGlmIChvcHRpb25hbE93bmVyVGhyZWFkKSB7Ci0gICAgICAgICAgICAgICAg
c2VuZE1lc3NhZ2UoKm9wdGlvbmFsT3duZXJUaHJlYWQudmFsdWUoKS5nZXQoKSwgW10gKFBsYXRm
b3JtUmVnaXN0ZXJzJiByZWdpc3RlcnMpIC0+IHZvaWQgewotICAgICAgICAgICAgICAgICAgICBT
aWduYWxDb250ZXh0IGNvbnRleHQocmVnaXN0ZXJzKTsKKyAgICAgICAgICAgICAgICBzZW5kTWVz
c2FnZSgqb3B0aW9uYWxPd25lclRocmVhZC52YWx1ZSgpLmdldCgpLCBbXSAoc2lnaW5mb190Kiwg
dWNvbnRleHRfdCogdWNvbnRleHQpIC0+IHZvaWQgeworICAgICAgICAgICAgICAgICAgICBTaWdu
YWxDb250ZXh0IGNvbnRleHQodWNvbnRleHQtPnVjX21jb250ZXh0KTsKICAgICAgICAgICAgICAg
ICAgICAgYXV0byBhY3RpdmVWTUFuZFN0YWNrQm91bmRzID0gZmluZEFjdGl2ZVZNQW5kU3RhY2tC
b3VuZHMoY29udGV4dCk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChhY3RpdmVWTUFuZFN0YWNr
Qm91bmRzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBWTSogdm0gPSBhY3RpdmVWTUFuZFN0
YWNrQm91bmRzLnZhbHVlKCkudm07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dG9vbHMvU2lnaWxsQ3Jhc2hBbmFseXplci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9v
bHMvU2lnaWxsQ3Jhc2hBbmFseXplci5jcHAKaW5kZXggNzFhNmU0MjU1YzY0NWRkNmFmM2JkYjI1
MGNjZjEzYWQ4YzFhOGE0NC4uNGFkYWVmZjFjZGEyZDFmYmM2ZjkwNjFmMDYzZTE0ZDJlNjMzMDA0
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1NpZ2lsbENyYXNoQW5h
bHl6ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9TaWdpbGxDcmFzaEFu
YWx5emVyLmNwcApAQCAtNzgsMTEgKzc4LDExIEBAIHByaXZhdGU6CiAjZW5kaWYgLy8gVVNFKE9T
X0xPRykKIAogc3RydWN0IFNpZ25hbENvbnRleHQgewotICAgIFNpZ25hbENvbnRleHQoUGxhdGZv
cm1SZWdpc3RlcnMmIHJlZ2lzdGVycykKLSAgICAgICAgOiByZWdpc3RlcnMocmVnaXN0ZXJzKQot
ICAgICAgICAsIG1hY2hpbmVQQyhNYWNoaW5lQ29udGV4dDo6aW5zdHJ1Y3Rpb25Qb2ludGVyKHJl
Z2lzdGVycykpCi0gICAgICAgICwgc3RhY2tQb2ludGVyKE1hY2hpbmVDb250ZXh0OjpzdGFja1Bv
aW50ZXIocmVnaXN0ZXJzKSkKLSAgICAgICAgLCBmcmFtZVBvaW50ZXIoTWFjaGluZUNvbnRleHQ6
OmZyYW1lUG9pbnRlcihyZWdpc3RlcnMpKQorICAgIFNpZ25hbENvbnRleHQobWNvbnRleHRfdCYg
bWNvbnRleHQpCisgICAgICAgIDogbWNvbnRleHQobWNvbnRleHQpCisgICAgICAgICwgbWFjaGlu
ZVBDKE1hY2hpbmVDb250ZXh0OjppbnN0cnVjdGlvblBvaW50ZXIobWNvbnRleHQpKQorICAgICAg
ICAsIHN0YWNrUG9pbnRlcihNYWNoaW5lQ29udGV4dDo6c3RhY2tQb2ludGVyKG1jb250ZXh0KSkK
KyAgICAgICAgLCBmcmFtZVBvaW50ZXIoTWFjaGluZUNvbnRleHQ6OmZyYW1lUG9pbnRlcihtY29u
dGV4dCkpCiAgICAgeyB9CiAKICAgICB2b2lkIGR1bXAoKQpAQCAtMTEyLDcgKzExMiw3IEBAIHN0
cnVjdCBTaWduYWxDb250ZXh0IHsKICAgICAgICAgdihncykKIAogI2RlZmluZSBEVU1QX1JFR0lT
VEVSKF9fcmVnKSBcCi0gICAgICAgIGxvZygiUmVnaXN0ZXIgIiAjX19yZWcgIjogJXAiLCByZWlu
dGVycHJldF9jYXN0PHZvaWQqPihyZWdpc3RlcnMuX18jI19fcmVnKSk7CisgICAgICAgIGxvZygi
UmVnaXN0ZXIgIiAjX19yZWcgIjogJXAiLCByZWludGVycHJldF9jYXN0PHZvaWQqPihtY29udGV4
dC0+X19zcy5fXyMjX19yZWcpKTsKICAgICAgICAgRk9SX0VBQ0hfUkVHSVNURVIoRFVNUF9SRUdJ
U1RFUikKICN1bmRlZiBGT1JfRUFDSF9SRUdJU1RFUgogCkBAIC0xMjAsMjAgKzEyMCwyMCBAQCBz
dHJ1Y3QgU2lnbmFsQ29udGV4dCB7CiAgICAgICAgIGludCBpOwogICAgICAgICBmb3IgKGkgPSAw
OyBpIDwgMjg7IGkgKz0gNCkgewogICAgICAgICAgICAgbG9nKCJ4JWQ6ICUwMTZsbHggeCVkOiAl
MDE2bGx4IHglZDogJTAxNmxseCB4JWQ6ICUwMTZsbHgiLAotICAgICAgICAgICAgICAgIGksIHJl
Z2lzdGVycy5fX3hbaV0sCi0gICAgICAgICAgICAgICAgaSsxLCByZWdpc3RlcnMuX194W2krMV0s
Ci0gICAgICAgICAgICAgICAgaSsyLCByZWdpc3RlcnMuX194W2krMl0sCi0gICAgICAgICAgICAg
ICAgaSszLCByZWdpc3RlcnMuX194W2krM10pOworICAgICAgICAgICAgICAgIGksIG1jb250ZXh0
LT5fX3NzLl9feFtpXSwKKyAgICAgICAgICAgICAgICBpKzEsIG1jb250ZXh0LT5fX3NzLl9feFtp
KzFdLAorICAgICAgICAgICAgICAgIGkrMiwgbWNvbnRleHQtPl9fc3MuX194W2krMl0sCisgICAg
ICAgICAgICAgICAgaSszLCBtY29udGV4dC0+X19zcy5fX3hbaSszXSk7CiAgICAgICAgIH0KICAg
ICAgICAgQVNTRVJUKGkgPCAyOSk7CiAgICAgICAgIGxvZygieCVkOiAlMDE2bGx4IGZwOiAlMDE2
bGx4IGxyOiAlMDE2bGx4IiwKLSAgICAgICAgICAgIGksIHJlZ2lzdGVycy5fX3hbaV0sIHJlZ2lz
dGVycy5fX2ZwLCByZWdpc3RlcnMuX19scik7CisgICAgICAgICAgICBpLCBtY29udGV4dC0+X19z
cy5fX3hbaV0sIG1jb250ZXh0LT5fX3NzLl9fZnAsIG1jb250ZXh0LT5fX3NzLl9fbHIpOwogICAg
ICAgICBsb2coInNwOiAlMDE2bGx4IHBjOiAlMDE2bGx4IGNwc3I6ICUwOHgiLAotICAgICAgICAg
ICAgcmVnaXN0ZXJzLl9fc3AsIHJlZ2lzdGVycy5fX3BjLCByZWdpc3RlcnMuX19jcHNyKTsKKyAg
ICAgICAgICAgIG1jb250ZXh0LT5fX3NzLl9fc3AsIG1jb250ZXh0LT5fX3NzLl9fcGMsIG1jb250
ZXh0LT5fX3NzLl9fY3Bzcik7CiAjZW5kaWYKICAgICB9CiAKLSAgICBQbGF0Zm9ybVJlZ2lzdGVy
cyYgcmVnaXN0ZXJzOworICAgIG1jb250ZXh0X3QmIG1jb250ZXh0OwogICAgIHZvaWQqIG1hY2hp
bmVQQzsKICAgICB2b2lkKiBzdGFja1BvaW50ZXI7CiAgICAgdm9pZCogZnJhbWVQb2ludGVyOwpA
QCAtMTQyLDggKzE0Miw4IEBAIHN0cnVjdCBTaWduYWxDb250ZXh0IHsKIHN0YXRpYyB2b2lkIGlu
c3RhbGxDcmFzaEhhbmRsZXIoKQogewogI2lmIENQVShYODZfNjQpIHx8IENQVShBUk02NCkKLSAg
ICBpbnN0YWxsU2lnbmFsSGFuZGxlcihTaWduYWw6OklsbCwgW10gKFNpZ25hbCwgU2lnSW5mbyYs
IFBsYXRmb3JtUmVnaXN0ZXJzJiByZWdpc3RlcnMpIHsKLSAgICAgICAgU2lnbmFsQ29udGV4dCBj
b250ZXh0KHJlZ2lzdGVycyk7CisgICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2lnbmFsOjpJbGws
IFtdIChpbnQsIHNpZ2luZm9fdCosIHZvaWQqIHVhcCkgeworICAgICAgICBTaWduYWxDb250ZXh0
IGNvbnRleHQoc3RhdGljX2Nhc3Q8dWNvbnRleHRfdCo+KHVhcCktPnVjX21jb250ZXh0KTsKIAog
ICAgICAgICBpZiAoIWlzSklUUEMoY29udGV4dC5tYWNoaW5lUEMpKQogICAgICAgICAgICAgcmV0
dXJuIFNpZ25hbEFjdGlvbjo6Tm90SGFuZGxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21CQlFQbGFuLmNwcAppbmRleCBiMWI1OThkMjBjNWMwMDc3ZDllOWQwOGUzNjhhZDVjYTE3
ODMxYmFmLi4xZGQwY2QxZDgzNWM2YzJmMjMxYjAwYjg4NmRkZTRhZjcyYzI2M2NlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbi5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW4uY3BwCkBAIC0yNDIsNyArMjQyLDcg
QEAgdm9pZCBCQlFQbGFuOjpjb21waWxlRnVuY3Rpb25zKENvbXBpbGF0aW9uRWZmb3J0IGVmZm9y
dCkKICAgICAgICAgQVNTRVJUKHZhbGlkYXRlRnVuY3Rpb24oZnVuY3Rpb25TdGFydCwgZnVuY3Rp
b25MZW5ndGgsIHNpZ25hdHVyZSwgbV9tb2R1bGVJbmZvcm1hdGlvbi5nZXQoKSkpOwogCiAgICAg
ICAgIG1fdW5saW5rZWRXYXNtVG9XYXNtQ2FsbHNbZnVuY3Rpb25JbmRleF0gPSBWZWN0b3I8VW5s
aW5rZWRXYXNtVG9XYXNtQ2FsbD4oKTsKLSAgICAgICAgVGllclVwQ291bnQqIHRpZXJVcCA9IE9w
dGlvbnM6OnVzZUJCUVRpZXJVcENoZWNrcygpID8gJm1fdGllclVwQ291bnRzW2Z1bmN0aW9uSW5k
ZXhdIDogbnVsbHB0cjsKKyAgICAgICAgVGllclVwQ291bnQqIHRpZXJVcCA9ICZtX3RpZXJVcENv
dW50c1tmdW5jdGlvbkluZGV4XTsKICAgICAgICAgYXV0byBwYXJzZUFuZENvbXBpbGVSZXN1bHQg
PSBwYXJzZUFuZENvbXBpbGUobV9jb21waWxhdGlvbkNvbnRleHRzW2Z1bmN0aW9uSW5kZXhdLCBm
dW5jdGlvblN0YXJ0LCBmdW5jdGlvbkxlbmd0aCwgc2lnbmF0dXJlLCBtX3VubGlua2VkV2FzbVRv
V2FzbUNhbGxzW2Z1bmN0aW9uSW5kZXhdLCBtX21vZHVsZUluZm9ybWF0aW9uLmdldCgpLCBtX21v
ZGUsIENvbXBpbGF0aW9uTW9kZTo6QkJRTW9kZSwgZnVuY3Rpb25JbmRleCwgdGllclVwKTsKIAog
ICAgICAgICBpZiAoVU5MSUtFTFkoIXBhcnNlQW5kQ29tcGlsZVJlc3VsdCkpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GYXVsdFNpZ25hbEhhbmRsZXIuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5jcHAK
aW5kZXggMjY0YzM0ZGU0NWRhMTc1YTVkNTE0MWMxNzFlZmU5NWUwNjNjNWUyNy4uMmUwYzk5YTM5
YmViZDMxNzhiOTE0OGQ5NThmZTUzZTU3YTYyMjk3ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5jcHAKQEAgLTUyLDggKzUy
LDkgQEAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxIYXNoU2V0PHN0ZDo6dHVwbGU8dm9pZCos
IHZvaWQqPj4+IGNvZGVMb2NhdGlvbnM7IC8vICgKIAogc3RhdGljIGJvb2wgZmFzdEhhbmRsZXJJ
bnN0YWxsZWQgeyBmYWxzZSB9OwogCi1zdGF0aWMgU2lnbmFsQWN0aW9uIHRyYXBIYW5kbGVyKFNp
Z25hbCwgU2lnSW5mbyYgc2lnSW5mbywgUGxhdGZvcm1SZWdpc3RlcnMmIGNvbnRleHQpCitzdGF0
aWMgU2lnbmFsQWN0aW9uIHRyYXBIYW5kbGVyKGludCwgc2lnaW5mb190KiBzaWdJbmZvLCB2b2lk
KiB1Y29udGV4dCkKIHsKKyAgICBtY29udGV4dF90JiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8dWNv
bnRleHRfdCo+KHVjb250ZXh0KS0+dWNfbWNvbnRleHQ7CiAgICAgdm9pZCogZmF1bHRpbmdJbnN0
cnVjdGlvbiA9IE1hY2hpbmVDb250ZXh0OjppbnN0cnVjdGlvblBvaW50ZXIoY29udGV4dCk7CiAg
ICAgZGF0YUxvZ0xuSWYodmVyYm9zZSwgInN0YXJ0aW5nIGhhbmRsZXIgZm9yIGZhdWx0IGF0OiAi
LCBSYXdQb2ludGVyKGZhdWx0aW5nSW5zdHJ1Y3Rpb24pKTsKIApAQCAtNjMsNyArNjQsNyBAQCBz
dGF0aWMgU2lnbmFsQWN0aW9uIHRyYXBIYW5kbGVyKFNpZ25hbCwgU2lnSW5mbyYgc2lnSW5mbywg
UGxhdGZvcm1SZWdpc3RlcnMmIGNvbgogICAgIGlmIChpc0pJVFBDKGZhdWx0aW5nSW5zdHJ1Y3Rp
b24pKSB7CiAgICAgICAgIGJvb2wgZmF1bHRlZEluQWN0aXZlRmFzdE1lbW9yeSA9IGZhbHNlOwog
ICAgICAgICB7Ci0gICAgICAgICAgICB2b2lkKiBmYXVsdGluZ0FkZHJlc3MgPSBzaWdJbmZvLmZh
dWx0aW5nQWRkcmVzczsKKyAgICAgICAgICAgIHZvaWQqIGZhdWx0aW5nQWRkcmVzcyA9IHNpZ0lu
Zm8tPnNpX2FkZHI7CiAgICAgICAgICAgICBkYXRhTG9nTG5JZih2ZXJib3NlLCAiY2hlY2tpbmcg
ZmF1bHRpbmcgYWRkcmVzczogIiwgUmF3UG9pbnRlcihmYXVsdGluZ0FkZHJlc3MpLCAiIGlzIGlu
IGFuIGFjdGl2ZSBmYXN0IG1lbW9yeSIpOwogICAgICAgICAgICAgZmF1bHRlZEluQWN0aXZlRmFz
dE1lbW9yeSA9IFdhc206Ok1lbW9yeTo6YWRkcmVzc0lzSW5BY3RpdmVGYXN0TWVtb3J5KGZhdWx0
aW5nQWRkcmVzcyk7CiAgICAgICAgIH0KQEAgLTEyMywxMSArMTI0LDExIEBAIHZvaWQgZW5hYmxl
RmFzdE1lbW9yeSgpCiAgICAgICAgICAgICByZXR1cm47CiAKICNpZiBFTkFCTEUoV0VCQVNTRU1C
TFlfRkFTVF9NRU1PUlkpCi0gICAgICAgIGluc3RhbGxTaWduYWxIYW5kbGVyKFNpZ25hbDo6QnVz
LCBbXSAoU2lnbmFsIHNpZ25hbCwgU2lnSW5mbyYgc2lnSW5mbywgUGxhdGZvcm1SZWdpc3RlcnMm
IHVjb250ZXh0KSB7CisgICAgICAgIGluc3RhbGxTaWduYWxIYW5kbGVyKFNpZ25hbDo6QnVzLCBb
XSAoaW50IHNpZ25hbCwgc2lnaW5mb190KiBzaWdJbmZvLCB2b2lkKiB1Y29udGV4dCkgewogICAg
ICAgICAgICAgcmV0dXJuIHRyYXBIYW5kbGVyKHNpZ25hbCwgc2lnSW5mbywgdWNvbnRleHQpOwog
ICAgICAgICB9KTsKIAotICAgICAgICBpbnN0YWxsU2lnbmFsSGFuZGxlcihTaWduYWw6OlNlZ1Ys
IFtdIChTaWduYWwgc2lnbmFsLCBTaWdJbmZvJiBzaWdJbmZvLCBQbGF0Zm9ybVJlZ2lzdGVycyYg
dWNvbnRleHQpIHsKKyAgICAgICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIoU2lnbmFsOjpTZWdWLCBb
XSAoaW50IHNpZ25hbCwgc2lnaW5mb190KiBzaWdJbmZvLCB2b2lkKiB1Y29udGV4dCkgewogICAg
ICAgICAgICAgcmV0dXJuIHRyYXBIYW5kbGVyKHNpZ25hbCwgc2lnSW5mbywgdWNvbnRleHQpOwog
ICAgICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU1hY2hpbmVUaHJlYWRzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NYWNo
aW5lVGhyZWFkcy5jcHAKaW5kZXggMGEzNjdmZDVlMjI1MjdlOWMzYzg3NTM2ZWNmZDcyYjEzZGY3
OWQ1Yi4uNWFhYzg3YWNiNTc0N2M3ZmNhMmY5MzZlYzljZjY3OGI0MzE3ODE3MSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1hY2hpbmVUaHJlYWRzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWFjaGluZVRocmVhZHMuY3BwCkBAIC0z
MSw3ICszMSw2IEBACiAjaW5jbHVkZSAiTWFjaGluZVN0YWNrTWFya2VyLmgiCiAjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZE1lc3NhZ2UuaD4KLSNp
bmNsdWRlIDx3dGYvdGhyZWFkcy9TaWduYWxzLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgV2FzbSB7CiAKQEAgLTU4LDcgKzU3LDcgQEAgdm9pZCByZXNldEluc3RydWN0aW9uQ2FjaGVP
bkFsbFRocmVhZHMoKQogCiAgICAgY29uc3QgRG91Ymx5TGlua2VkTGlzdDxNYWNoaW5lVGhyZWFk
czo6TWFjaGluZVRocmVhZD4mIHRocmVhZHMgPSB3YXNtVGhyZWFkcygpLnRocmVhZHNMaXN0SGVh
ZChsb2NrZXIpOwogICAgIGZvciAoY29uc3QgYXV0byogdGhyZWFkID0gdGhyZWFkcy5oZWFkKCk7
IHRocmVhZDsgdGhyZWFkID0gdGhyZWFkLT5uZXh0KCkpIHsKLSAgICAgICAgc2VuZE1lc3NhZ2Uo
dGhyZWFkLT5tX3RocmVhZC5nZXQoKSwgW10gKGNvbnN0IFBsYXRmb3JtUmVnaXN0ZXJzJikgewor
ICAgICAgICBzZW5kTWVzc2FnZSh0aHJlYWQtPm1fdGhyZWFkLmdldCgpLCBbXSAoc2lnaW5mb190
KiwgdWNvbnRleHRfdCopIHsKICAgICAgICAgICAgIC8vIEl0J3MgbGlrZWx5IHRoYXQgdGhlIHNp
Z25hbCBoYW5kbGVyIHdpbGwgYWxyZWFkeSByZXNldCB0aGUgaW5zdHJ1Y3Rpb24gY2FjaGUgYnV0
IHdlIG1pZ2h0IGFzIHdlbGwgYmUgc3VyZS4KICAgICAgICAgICAgIFdURjo6Y3Jvc3NNb2RpZnlp
bmdDb2RlRmVuY2UoKTsKICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NvbmZp
Z3VyYXRpb25zL1dURi54Y2NvbmZpZyBiL1NvdXJjZS9XVEYvQ29uZmlndXJhdGlvbnMvV1RGLnhj
Y29uZmlnCmluZGV4IGFmMTk5Y2ViOTUwNmY4OTUwZDMzYTljZTQ4MDdiYTZkYmI3YjI3ZTUuLjQy
MWVmZDk2MWMxNDY4Y2QyMGRkYzViYmY4ODk2MjBlZTFjZjU4ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvQ29uZmlndXJhdGlvbnMvV1RGLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XVEYvQ29uZmln
dXJhdGlvbnMvV1RGLnhjY29uZmlnCkBAIC0yNyw2ICsyNywzIEBAIFBST0RVQ1RfTkFNRSA9IFdU
RjsKIAogR0NDX1NZTUJPTFNfUFJJVkFURV9FWFRFUk4gPSBZRVM7CiBTVFJJUF9JTlNUQUxMRURf
UFJPRFVDVCA9IE5POwotCi1FWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU18gPSBNYWNoRXhjZXB0
aW9ucy5kZWZzCi1FWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU1tzZGs9aXBob25lb3MqXSA9ICQo
RVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVNfJChVU0VfSU5URVJOQUxfU0RLKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RG
L1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ2MmE3OTNiM2UxZjY3OTEyYTQz
NzFkNWMwY2FhOWJmMjIxODQ2NmUuLjU3YjNlMGY3OWY2MjM5NTkyNWVhOGU4YTk4ZDcxMzRkMTE2
ZTI4ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjQs
NyArNjQsNiBAQAogCQk1MjE4MzAxMkM5OUU0NzZBODRFRUJFQTggLyogU3ltYm9sSW1wbC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNzJCQkRCMTA3
RkE0MjQ4ODYxNzhCOUUgLyogU3ltYm9sSW1wbC5jcHAgKi87IH07CiAJCTUzMTFCRDUzMUVBNzFD
QUQwMDUyNTI4MSAvKiBTaWduYWxzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUzMTFCRDUxMUVBNzFDQUQwMDUyNTI4MSAvKiBTaWduYWxzLmNwcCAq
LzsgfTsKIAkJNTMxMUJENUMxRUE4MjJGOTAwNTI1MjgxIC8qIFRocmVhZE1lc3NhZ2UuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTMxMUJENUIxRUE4
MjJGOTAwNTI1MjgxIC8qIFRocmVhZE1lc3NhZ2UuY3BwICovOyB9OwotCQk1MzUzNEYyQTFFQzBF
MTBFMDAxNDFCMkYgLyogTWFjaEV4Y2VwdGlvbnMuZGVmcyBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzNTM0RjI5MUVDMEUxMEUwMDE0MUIyRiAvKiBNYWNo
RXhjZXB0aW9ucy5kZWZzICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKENsaWVudCwgU2Vy
dmVyLCApOyB9OyB9OwogCQk3MEE5OTNGRTFBRDcxNTEzMDBGQTYxNUIgLyogU3ltYm9sUmVnaXN0
cnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzBB
OTkzRkMxQUQ3MTUxMzAwRkE2MTVCIC8qIFN5bWJvbFJlZ2lzdHJ5LmNwcCAqLzsgfTsKIAkJNzBF
Q0E2MEQxQjAyNDI2ODAwNDQ5NzM5IC8qIEF0b21pY1N0cmluZ0ltcGwuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzBFQ0E2MEExQjAyNDI2ODAwNDQ5
NzM5IC8qIEF0b21pY1N0cmluZ0ltcGwuY3BwICovOyB9OwogCQk3QUZFQzZCMTFFQjIyQjU5MDBE
QURFMzYgLyogVVVJRC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3QUZFQzZCMDFFQjIyQjU5MDBEQURFMzYgLyogVVVJRC5jcHAgKi87IH07CkBAIC0z
MDAsNyArMjk5LDYgQEAKIAkJNTMxMUJENTcxRUE3RTFBMTAwNTI1MjgxIC8qIFNpZ25hbHMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2lnbmFscy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MzExQkQ1OTFFQTgxQTk2MDA1MjUyODEgLyogVGhyZWFkTWVzc2Fn
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaHJlYWRNZXNzYWdlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzMTFCRDVCMUVBODIyRjkwMDUyNTI4MSAvKiBU
aHJlYWRNZXNzYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRo
cmVhZE1lc3NhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MzUzNEYyOTFF
QzBFMTBFMDAxNDFCMkYgLyogTWFjaEV4Y2VwdGlvbnMuZGVmcyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUubWlnOyBwYXRoID0gTWFjaEV4Y2VwdGlvbnMuZGVmczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTM5RUIwNjIxRDU1Mjg0MjAwQzgyRUY3IC8qIExFQkRlY29kZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTEVCRGVjb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1M0VDMjUzQzFFOTVBRDMwMDAwODMxQjkgLyogUHJpb3JpdHlRdWV1ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcmlvcml0eVF1ZXVlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1MzA3MUM5MUM0MDQyNzIwMDM4NDg5OCAvKiBUaW55
TFJVQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGlueUxSVUNhY2hl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDI0LDcgKzEwMjIsNiBAQAogCQkJ
Y2hpbGRyZW4gPSAoCiAJCQkJMUE0MjhCOEIxQzhGODlERDAwNTFFOUVCIC8qIEFwcEtpdENvbXBh
dGliaWxpdHlEZWNsYXJhdGlvbnMuaCAqLywKIAkJCQkxQUNBREQ4MjE4ODQ0ODAxMDBEOEI3MUQg
LyogRGVwcmVjYXRlZFN5bWJvbHNVc2VkQnlTYWZhcmkubW0gKi8sCi0JCQkJNTM1MzRGMjkxRUMw
RTEwRTAwMTQxQjJGIC8qIE1hY2hFeGNlcHRpb25zLmRlZnMgKi8sCiAJCQkJQThBNDcyQzUxNTFB
ODI1QTAwNDEyM0ZGIC8qIE1haW5UaHJlYWRNYWMubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IG1h
YzsKQEAgLTEzNDksNyArMTM0Niw2IEBACiAJCQkJMTQzRjYxMUYxNTY1RjBGOTAwREI1MTRBIC8q
IFJBTVNpemUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTNCNzI1RUM5ODc0NDZBRDkzRjFBNDQw
IC8qIFJhbmRvbURldmljZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQxNDE1MUE4MjVC
MDA0MTIzRkYgLyogUmFuZG9tTnVtYmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTUzNTM0RjJB
MUVDMEUxMEUwMDE0MUIyRiAvKiBNYWNoRXhjZXB0aW9ucy5kZWZzIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQThBNDc0MUExNTFBODI1QjAwNDEyM0ZGIC8qIFJlZkNvdW50ZWRMZWFrQ291bnRlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkyQ0RFRDBGMzE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkyQ0RFRDBFRjE4MTE1QzM4MDA0REJBNzAgLyogUnVuTG9v
cENGLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZv
cm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggMGM5NTZmNGZmNjM4MDY3NWU0
YzQyN2RmMjBlYzk2ZTY2MGEwYmQ3OS4uNDViZDhhODExZjk4ODljODVkOGY1NGRkZjY1Mzk4MWUy
ZmU4ZjYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC02NjksMTAgKzY2OSw2IEBACiAjZGVmaW5lIEhBVkVf
UkVBRExJTkUgMQogI2RlZmluZSBIQVZFX1NZU19USU1FQl9IIDEKIAotI2lmIF9faGFzX2luY2x1
ZGUoPG1hY2gvbWFjaF9leGMuZGVmcz4pICYmICEoUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZP
Uk0oQVBQTEVUVikpCi0jZGVmaW5lIEhBVkVfTUFDSF9FWENFUFRJT05TIDEKLSNlbmRpZgotCiAj
aWYgIVBMQVRGT1JNKEdUSykKICNkZWZpbmUgVVNFX0FDQ0VMRVJBVEUgMQogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVJlZ2lzdGVycy5oIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm1SZWdpc3RlcnMuaAppbmRleCA4NGJkODkzNzQ5OWRhOTllYWE4NmI3MzY5NWY3
YzViODFhYzI2MGNlLi5kNWI1YWJjMjIxYmJhZDgyOTc2MTkzZWNlNTFjMWM3NjE3NWRiMDZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVJlZ2lzdGVycy5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtUmVnaXN0ZXJzLmgKQEAgLTI2LDExICsyNiw5IEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgotI2luY2x1ZGUgPHd0Zi9TdGRMaWJF
eHRyYXMuaD4KIAogI2lmIE9TKERBUldJTikKICNpbmNsdWRlIDxtYWNoL3RocmVhZF9hY3QuaD4K
LSNpbmNsdWRlIDxzaWduYWwuaD4KICNlbGlmIE9TKFdJTkRPV1MpCiAjaW5jbHVkZSA8d2luZG93
cy5oPgogI2Vsc2UKQEAgLTU3LDExICs1NSw2IEBAIHR5cGVkZWYgYXJtX3RocmVhZF9zdGF0ZTY0
X3QgUGxhdGZvcm1SZWdpc3RlcnM7CiAjZXJyb3IgVW5rbm93biBBcmNoaXRlY3R1cmUKICNlbmRp
ZgogCi1pbmxpbmUgUGxhdGZvcm1SZWdpc3RlcnMmIHJlZ2lzdGVyc0Zyb21VQ29udGV4dCh1Y29u
dGV4dF90KiB1Y29udGV4dCkKLXsKLSAgICByZXR1cm4gdWNvbnRleHQtPnVjX21jb250ZXh0LT5f
X3NzOwotfQotCiAjZWxpZiBPUyhXSU5ET1dTKQogCiB1c2luZyBQbGF0Zm9ybVJlZ2lzdGVycyA9
IENPTlRFWFQ7CkBAIC03MiwxMSArNjUsNiBAQCBzdHJ1Y3QgUGxhdGZvcm1SZWdpc3RlcnMgewog
ICAgIG1jb250ZXh0X3QgbWFjaGluZUNvbnRleHQ7CiB9OwogCi1pbmxpbmUgUGxhdGZvcm1SZWdp
c3RlcnMmIHJlZ2lzdGVyc0Zyb21VQ29udGV4dCh1Y29udGV4dF90KiB1Y29udGV4dCkKLXsKLSAg
ICByZXR1cm4gKmJpdHdpc2VfY2FzdDxQbGF0Zm9ybVJlZ2lzdGVycyo+KCZ1Y29udGV4dC0+dWNf
bWNvbnRleHQpOwotfQotCiAjZWxzZQogCiBzdHJ1Y3QgUGxhdGZvcm1SZWdpc3RlcnMgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvU3RhY2tCb3VuZHMuaCBiL1NvdXJjZS9XVEYvd3RmL1N0
YWNrQm91bmRzLmgKaW5kZXggY2Q2MmMxNDhhNmM3ZWZjOTUxN2E4YjA5YjhhMzJjN2ZlMTkwY2Rl
Zi4uNTU0NjA0ZjJhYjQ4NGM3Y2Y3MWVlMzg2MzBjZWI0Yzc5YzMzZTk3MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvU3RhY2tCb3VuZHMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TdGFja0Jv
dW5kcy5oCkBAIC01NCw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICAgICAgOiBtX29yaWdpbihvcmln
aW4pCiAgICAgICAgICwgbV9ib3VuZChlbmQpCiAgICAgeworICAgICAgICBjaGVja0NvbnNpc3Rl
bmN5KCk7CiAgICAgfQogCiAgICAgdm9pZCogb3JpZ2luKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL1RocmVhZEhvbGRlci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRIb2xk
ZXIuY3BwCmluZGV4IDk3N2QxZGZjMTczOWU1N2Y3Nzk5ZDg1YWZlMzZjNjA2YTc1NDVlMzcuLmUy
YTMxYmU5OTc4YTlkZTQyZWJmYTMzYjA3MDZhNTI0MzNiZDcyY2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1RocmVhZEhvbGRlci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkSG9s
ZGVyLmNwcApAQCAtMzQsMTcgKzM0LDEyIEBACiAKICNpbmNsdWRlICJUaHJlYWRpbmcuaCIKIAot
I2luY2x1ZGUgPHd0Zi90aHJlYWRzL1NpZ25hbHMuaD4KLQogbmFtZXNwYWNlIFdURiB7CiAKIFRo
cmVhZFNwZWNpZmljS2V5IFRocmVhZEhvbGRlcjo6bV9rZXkgPSBJbnZhbGlkVGhyZWFkU3BlY2lm
aWNLZXk7CiAKIFRocmVhZEhvbGRlcjo6flRocmVhZEhvbGRlcigpCiB7Ci0jaWYgSEFWRShNQUNI
X0VYQ0VQVElPTlMpCi0gICAgdW5yZWdpc3RlclRocmVhZEZvck1hY2hFeGNlcHRpb25IYW5kbGlu
ZygmbV90aHJlYWQuZ2V0KCkpOwotI2VuZGlmCiAgICAgbV90aHJlYWQtPmRpZEV4aXQoKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkTWVzc2FnZS5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi9UaHJlYWRNZXNzYWdlLmNwcAppbmRleCBiOTk0Y2FjZDYyNmQ0YzZjZmQ1YzE2ODEw
OWI1NWI2OWRkMjNiOTk2Li5mMTRiYzQ1ZDM2MTRjN2M2NjM1ZWIxN2FiMGUyNzI4MTZhMTM3M2Rk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRNZXNzYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9UaHJlYWRNZXNzYWdlLmNwcApAQCAtMzYsOSArMzYsNiBAQAogI2luY2x1ZGUg
PHd0Zi9Mb2NrZXIuaD4KICNpbmNsdWRlIDx3dGYvdGhyZWFkcy9TaWduYWxzLmg+CiAKLSNpZiBI
QVZFKE1BQ0hfRVhDRVBUSU9OUykKLSNpbmNsdWRlIDxtYWNoL3RocmVhZF9hY3QuaD4KLSNlbmRp
ZgogCiBuYW1lc3BhY2UgV1RGIHsKIApAQCAtODYsMTIgKzgzLDEyIEBAIHZvaWQgaW5pdGlhbGl6
ZVRocmVhZE1lc3NhZ2VzKCkKIH0KIAogU1VQUFJFU1NfQVNBTgotc3RhdGljIE1lc3NhZ2VTdGF0
dXMgc2VuZE1lc3NhZ2VVc2luZ1NpZ25hbChUaHJlYWQmIHRocmVhZCwgY29uc3QgVGhyZWFkTWVz
c2FnZSYgbWVzc2FnZSkKK01lc3NhZ2VTdGF0dXMgc2VuZE1lc3NhZ2VTY29wZWQoVGhyZWFkJiB0
aHJlYWQsIGNvbnN0IFRocmVhZE1lc3NhZ2UmIG1lc3NhZ2UpCiB7CiAgICAgY29uc3RleHByIFNp
Z25hbCBzaWduYWwgPSBTaWduYWw6OlVzcjsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25j
ZTsKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlLCBbXSB7Ci0gICAgICAgIGluc3RhbGxTaWduYWxI
YW5kbGVyKHNpZ25hbCwgW10gKFNpZ25hbCwgU2lnSW5mbyYsIFBsYXRmb3JtUmVnaXN0ZXJzJiBy
ZWdpc3RlcnMpIHsKKyAgICAgICAgaW5zdGFsbFNpZ25hbEhhbmRsZXIoc2lnbmFsLCBbXSAoaW50
LCBzaWdpbmZvX3QqIGluZm8sIHZvaWQqIHVhcCkgewogICAgICAgICAgICAgVGhyZWFkKiB0aHJl
YWQgPSBUaHJlYWQ6OmN1cnJlbnRNYXlCZU51bGwoKTsKIAogICAgICAgICAgICAgaWYgKCF0aHJl
YWQpIHsKQEAgLTEwMSw3ICs5OCw3IEBAIHN0YXRpYyBNZXNzYWdlU3RhdHVzIHNlbmRNZXNzYWdl
VXNpbmdTaWduYWwoVGhyZWFkJiB0aHJlYWQsIGNvbnN0IFRocmVhZE1lc3NhZ2UmCiAKICAgICAg
ICAgICAgIC8vIE5vZGUgc2hvdWxkIGJlIGRlbGV0ZWQgaW4gdGhlIHNlbmRlciB0aHJlYWQuIERl
bGV0aW5nIE5vZGVzIGluIHNpZ25hbCBoYW5kbGVyIGNhdXNlcyBkZWFkIGxvY2suCiAgICAgICAg
ICAgICB0aHJlYWQtPnRocmVhZE1lc3NhZ2VzKCkuY29uc3VtZUFsbFdpdGhOb2RlKFsmXSAoVGhy
ZWFkTWVzc2FnZURhdGEqIGRhdGEsIE5vZGUqIG5vZGUpIHsKLSAgICAgICAgICAgICAgICBkYXRh
LT5tZXNzYWdlKHJlZ2lzdGVycyk7CisgICAgICAgICAgICAgICAgZGF0YS0+bWVzc2FnZShpbmZv
LCBzdGF0aWNfY2FzdDx1Y29udGV4dF90Kj4odWFwKSk7CiAgICAgICAgICAgICAgICAgLy8gQnkg
c2V0dGluZyByYW4gdmFyaWFibGUsICgxKSB0aGUgc2VuZGVyIGFja25vd2xlZGdlcyB0aGUgY29t
cGxldGlvbiBhbmQKICAgICAgICAgICAgICAgICAvLyAoMikgZ2V0cyB0aGUgTm9kZSB0byBiZSBk
ZWxldGVkLgogICAgICAgICAgICAgICAgIGRhdGEtPnJhbi5zdG9yZShub2RlKTsKQEAgLTE1OSw2
MiArMTU2LDYgQEAgc3RhdGljIE1lc3NhZ2VTdGF0dXMgc2VuZE1lc3NhZ2VVc2luZ1NpZ25hbChU
aHJlYWQmIHRocmVhZCwgY29uc3QgVGhyZWFkTWVzc2FnZSYKICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogfQogCi0jaWYgSEFWRShNQUNIX0VYQ0VQVElPTlMpCi1zdGF0aWMgTWVz
c2FnZVN0YXR1cyBzZW5kTWVzc2FnZVVzaW5nTWFjaChUaHJlYWQmIHRocmVhZCwgY29uc3QgVGhy
ZWFkTWVzc2FnZSYgbWVzc2FnZSkKLXsKLSAgICBzdGF0aWMgU3RhdGljTG9jayBtZXNzYWdlTG9j
azsKLSAgICBhdXRvIGxvY2tob2xkZXIgPSBob2xkTG9jayhtZXNzYWdlTG9jayk7Ci0KLSAgICBh
dXRvIHJlc3VsdCA9IHRocmVhZC5zdXNwZW5kKCk7Ci0gICAgaWYgKCFyZXN1bHQpCi0gICAgICAg
IHJldHVybiBNZXNzYWdlU3RhdHVzOjpUaHJlYWRFeGl0ZWQ7Ci0KLSNpZiBDUFUoWDg2KQotICAg
IHVuc2lnbmVkIHVzZXJDb3VudCA9IHNpemVvZihQbGF0Zm9ybVJlZ2lzdGVycykgLyBzaXplb2Yo
aW50KTsKLSAgICB0aHJlYWRfc3RhdGVfZmxhdm9yX3QgZmxhdm9yID0gaTM4Nl9USFJFQURfU1RB
VEU7Ci0jZWxpZiBDUFUoWDg2XzY0KQotICAgIHVuc2lnbmVkIHVzZXJDb3VudCA9IHg4Nl9USFJF
QURfU1RBVEU2NF9DT1VOVDsKLSAgICB0aHJlYWRfc3RhdGVfZmxhdm9yX3QgZmxhdm9yID0geDg2
X1RIUkVBRF9TVEFURTY0OwotI2VsaWYgQ1BVKEFSTSkKLSAgICB1bnNpZ25lZCB1c2VyQ291bnQg
PSBBUk1fVEhSRUFEX1NUQVRFX0NPVU5UOwotICAgIHRocmVhZF9zdGF0ZV9mbGF2b3JfdCBmbGF2
b3IgPSBBUk1fVEhSRUFEX1NUQVRFOwotI2VsaWYgQ1BVKEFSTTY0KQotICAgIHVuc2lnbmVkIHVz
ZXJDb3VudCA9IEFSTV9USFJFQURfU1RBVEU2NF9DT1VOVDsKLSAgICB0aHJlYWRfc3RhdGVfZmxh
dm9yX3QgZmxhdm9yID0gQVJNX1RIUkVBRF9TVEFURTY0OwotI2Vsc2UKLSNlcnJvciBVbmtub3du
IEFyY2hpdGVjdHVyZQotI2VuZGlmCi0KLSAgICBQbGF0Zm9ybVJlZ2lzdGVycyByZWdpc3RlcnM7
Ci0gICAgdGhyZWFkX3N0YXRlX3Qgc3RhdGUgPSByZWludGVycHJldF9jYXN0PHRocmVhZF9zdGF0
ZV90PigmcmVnaXN0ZXJzKTsKLSAgICB0aHJlYWRfZ2V0X3N0YXRlKHRocmVhZC5tYWNoVGhyZWFk
KCksIGZsYXZvciwgc3RhdGUsICZ1c2VyQ291bnQpOwotCi0gICAgbWVzc2FnZShyZWdpc3RlcnMp
OwotCi0gICAgdGhyZWFkX3NldF9zdGF0ZSh0aHJlYWQubWFjaFRocmVhZCgpLCBmbGF2b3IsIHN0
YXRlLCB1c2VyQ291bnQpOwotCi0gICAgdGhyZWFkLnJlc3VtZSgpOwotICAgIHJldHVybiBNZXNz
YWdlU3RhdHVzOjpNZXNzYWdlUmFuOwotfQotCi1zdGF0aWMgYm9vbCB1c2VNYWNoID0gZmFsc2U7
Ci12b2lkIGRlbGl2ZXJNZXNzYWdlc1VzaW5nTWFjaCgpCi17Ci0gICAgdXNlTWFjaCA9IHRydWU7
Ci19Ci0KLSNlbmRpZiAvLyBIQVZFKE1BQ0hfRVhDRVBUSU9OUykKLQotTWVzc2FnZVN0YXR1cyBz
ZW5kTWVzc2FnZVNjb3BlZChUaHJlYWQmIHRocmVhZCwgY29uc3QgVGhyZWFkTWVzc2FnZSYgbWVz
c2FnZSkKLXsKLSNpZiBIQVZFKE1BQ0hfRVhDRVBUSU9OUykKLSAgICBpZiAodXNlTWFjaCkKLSAg
ICAgICAgcmV0dXJuIHNlbmRNZXNzYWdlVXNpbmdNYWNoKHRocmVhZCwgbWVzc2FnZSk7Ci0jZW5k
aWYKLSAgICByZXR1cm4gc2VuZE1lc3NhZ2VVc2luZ1NpZ25hbCh0aHJlYWQsIG1lc3NhZ2UpOwot
fQotCi0KIH0gLy8gbmFtZXNwYWNlIFdURgogCiAjZW5kaWYgLy8gVVNFKFBUSFJFQURTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkTWVzc2FnZS5oIGIvU291cmNlL1dURi93dGYv
VGhyZWFkTWVzc2FnZS5oCmluZGV4IDBmNzQ1NTEyOTQ2Mzc0Njc3YWNmMWI3MGRjNjYyMzU4YTM4
NGZkNjAuLjI2OGFkZDQzODc2ZTQxNjRmZjExMzY1ZmNkYjVhYjdhNjIyYmU5NGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZE1lc3NhZ2UuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9U
aHJlYWRNZXNzYWdlLmgKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdURiB7CiB2b2lkIGlu
aXRpYWxpemVUaHJlYWRNZXNzYWdlcygpOwogCiBjbGFzcyBUaHJlYWRNZXNzYWdlRGF0YTsKLXVz
aW5nIFRocmVhZE1lc3NhZ2UgPSBTY29wZWRMYW1iZGE8dm9pZChQbGF0Zm9ybVJlZ2lzdGVycyYp
PjsKK3VzaW5nIFRocmVhZE1lc3NhZ2UgPSBTY29wZWRMYW1iZGE8dm9pZChzaWdpbmZvX3QqLCB1
Y29udGV4dF90Kik+OwogCiBlbnVtIGNsYXNzIE1lc3NhZ2VTdGF0dXMgewogICAgIE1lc3NhZ2VS
YW4sCkBAIC01MSwxNCArNTEsMTAgQEAgV1RGX0VYUE9SVF9QUklWQVRFIE1lc3NhZ2VTdGF0dXMg
c2VuZE1lc3NhZ2VTY29wZWQoVGhyZWFkJiwgY29uc3QgVGhyZWFkTWVzc2FnZSYKIHRlbXBsYXRl
PHR5cGVuYW1lIEZ1bmN0b3I+CiBNZXNzYWdlU3RhdHVzIHNlbmRNZXNzYWdlKFRocmVhZCYgdGFy
Z2V0VGhyZWFkLCBjb25zdCBGdW5jdG9yJiBmdW5jKQogewotICAgIGF1dG8gbGFtYmRhID0gc2Nv
cGVkTGFtYmRhUmVmPHZvaWQoUGxhdGZvcm1SZWdpc3RlcnMmKT4oZnVuYyk7CisgICAgYXV0byBs
YW1iZGEgPSBzY29wZWRMYW1iZGFSZWY8dm9pZChzaWdpbmZvX3QqLCB1Y29udGV4dF90Kik+KGZ1
bmMpOwogICAgIHJldHVybiBzZW5kTWVzc2FnZVNjb3BlZCh0YXJnZXRUaHJlYWQsIGxhbWJkYSk7
CiB9CiAKLSNpZiBIQVZFKE1BQ0hfRVhDRVBUSU9OUykKLXZvaWQgZGVsaXZlck1lc3NhZ2VzVXNp
bmdNYWNoKCk7Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6c2Vu
ZE1lc3NhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaCBiL1NvdXJj
ZS9XVEYvd3RmL1RocmVhZGluZy5oCmluZGV4IDM1MTRlOGMwOWYwZmM5NGQ1MzRiZTJmM2I2ZTdj
NDk1MGUwYmNmMDUuLmQyZTUzNmRmN2E4Njk2ZDhlNmI5NWJhNDNlMTczZDNiNTUwYmYxNmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1RocmVhZGluZy5oCkBAIC0xMzgsMTAgKzEzOCw2IEBAIHB1YmxpYzoKIAogI2lmIFVTRShQVEhS
RUFEUykKICAgICBMb2NrbGVzc0JhZzxUaHJlYWRNZXNzYWdlRGF0YSo+JiB0aHJlYWRNZXNzYWdl
cygpIHsgcmV0dXJuIG1fdGhyZWFkTWVzc2FnZXM7IH0KLQotI2lmIE9TKERBUldJTikKLSAgICBt
YWNoX3BvcnRfdCBtYWNoVGhyZWFkKCkgeyByZXR1cm4gbV9wbGF0Zm9ybVRocmVhZDsgfQotI2Vu
ZGlmCiAjZW5kaWYKIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvbWFj
L01hY2hFeGNlcHRpb25zLmRlZnMgYi9Tb3VyY2UvV1RGL3d0Zi9tYWMvTWFjaEV4Y2VwdGlvbnMu
ZGVmcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDIwNTc0MmE0ZWQ1MDBmODA2NGZl
ZWI0OTU1YTdjOTcwZDk5YWYwYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9tYWMvTWFjaEV4Y2VwdGlvbnMuZGVmcworKysgL2Rl
di9udWxsCkBAIC0xLDI2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaW5jbHVkZSA8bWFjaC9tYWNoX2V4Yy5kZWZzPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvdGhyZWFkcy9TaWduYWxzLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RocmVh
ZHMvU2lnbmFscy5jcHAKaW5kZXggN2YyNDcwNjVlZWQ1YzFmMGIwMzUzOGEzODFiNTg5MzA1MDVl
MjIyMC4uODU1YjI4YjMxNzIxNzI3Y2YxZjQzMWE5MThhMjUxZGMyZTZhM2RmYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvdGhyZWFkcy9TaWduYWxzLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi90aHJlYWRzL1NpZ25hbHMuY3BwCkBAIC0yOCwyNzUgKzI4LDIxIEBACiAKICNpZiBVU0UoUFRI
UkVBRFMpCiAKLSNpZiBIQVZFKE1BQ0hfRVhDRVBUSU9OUykKLWV4dGVybiAiQyIgewotI2luY2x1
ZGUgIk1hY2hFeGNlcHRpb25zU2VydmVyLmgiCi19OwotI2VuZGlmCi0KICNpbmNsdWRlIDxjc3Rk
aW8+CiAjaW5jbHVkZSA8bXV0ZXg+CiAjaW5jbHVkZSA8c2lnbmFsLmg+Ci0KLSNpZiBIQVZFKE1B
Q0hfRVhDRVBUSU9OUykKLSNpbmNsdWRlIDxkaXNwYXRjaC9kaXNwYXRjaC5oPgotI2luY2x1ZGUg
PG1hY2gvbWFjaC5oPgotI2luY2x1ZGUgPG1hY2gvdGhyZWFkX2FjdC5oPgotI2VuZGlmCi0KICNp
bmNsdWRlIDx3dGYvQXRvbWljcy5oPgogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+Ci0jaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTG9ja2xlc3NCYWcuaD4KICNpbmNsdWRl
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkTWVzc2FnZS5oPgot
I2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KLQogCiBuYW1lc3BhY2UgV1RGIHsKIAotICAgIAog
c3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxMb2NrbGVzc0JhZzxTaWduYWxIYW5kbGVyPj4gaGFu
ZGxlcnNbc3RhdGljX2Nhc3Q8c2l6ZV90PihTaWduYWw6Ok51bWJlck9mU2lnbmFscyldID0geyB9
Owotc3RhdGljIHN0ZDo6b25jZV9mbGFnIGluaXRpYWxpemVPbmNlRmxhZ3Nbc3RhdGljX2Nhc3Q8
c2l6ZV90PihTaWduYWw6Ok51bWJlck9mU2lnbmFscyldOwogc3RhdGljIHN0cnVjdCBzaWdhY3Rp
b24gb2xkQWN0aW9uc1tzdGF0aWNfY2FzdDxzaXplX3Q+KFNpZ25hbDo6TnVtYmVyT2ZTaWduYWxz
KV07CitzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZU9uY2VGbGFnc1tzdGF0aWNfY2Fz
dDxzaXplX3Q+KFNpZ25hbDo6TnVtYmVyT2ZTaWduYWxzKV07CiAKLSNpZiBIQVZFKE1BQ0hfRVhD
RVBUSU9OUykKLS8vIFlvdSBjYW4gcmVhZCBtb3JlIGFib3V0IG1hY2ggZXhjZXB0aW9ucyBoZXJl
OgotLy8gaHR0cDovL3d3dy5jcy5jbXUuZWR1L2Fmcy9jcy9wcm9qZWN0L21hY2gvcHVibGljL2Rv
Yy91bnB1Ymxpc2hlZC9leGNlcHRpb24ucHMKLS8vIGFuZCB0aGUgTWFjaCBpbnRlcmZhY2UgR2Vu
ZXJhdG9yIChNaUcpIGhlcmU6Ci0vLyBodHRwOi8vd3d3LmNzLmNtdS5lZHUvYWZzL2NzL3Byb2pl
Y3QvbWFjaC9wdWJsaWMvZG9jL3VucHVibGlzaGVkL21pZy5wcwotCi1zdGF0aWMgbWFjaF9wb3J0
X3QgZXhjZXB0aW9uUG9ydDsKLXN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IG1heE1lc3NhZ2VTaXpl
ID0gMSAqIEtCOwotCi1zdGF0aWMgdm9pZCBzdGFydE1hY2hFeGNlcHRpb25IYW5kbGVyVGhyZWFk
KCkKLXsKLSAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKLSAgICBzdGQ6OmNhbGxfb25j
ZShvbmNlLCBbXSB7Ci0gICAgICAgIGlmIChtYWNoX3BvcnRfYWxsb2NhdGUobWFjaF90YXNrX3Nl
bGYoKSwgTUFDSF9QT1JUX1JJR0hUX1JFQ0VJVkUsICZleGNlcHRpb25Qb3J0KSAhPSBLRVJOX1NV
Q0NFU1MpCi0gICAgICAgICAgICBDUkFTSCgpOwotCi0gICAgICAgIGlmIChtYWNoX3BvcnRfaW5z
ZXJ0X3JpZ2h0KG1hY2hfdGFza19zZWxmKCksIGV4Y2VwdGlvblBvcnQsIGV4Y2VwdGlvblBvcnQs
IE1BQ0hfTVNHX1RZUEVfTUFLRV9TRU5EKSAhPSBLRVJOX1NVQ0NFU1MpCi0gICAgICAgICAgICBD
UkFTSCgpOwotCi0gICAgICAgIC8vIEl0J3Mgbm90IGNsZWFyIHRoYXQgdGhpcyBuZWVkcyB0byBi
ZSB0aGUgaGlnaCBwcmlvcml0eSBxdWV1ZSBidXQgaXQgc2hvdWxkIGJlIHJhcmUgYW5kIGl0IG1p
Z2h0IGJlCi0gICAgICAgIC8vIGhhbmRsaW5nIGV4Y2VwdGlvbnMgZnJvbSBoaWdoIHByaW9yaXR5
IHRocmVhZHMuIEFueXdheSwgb3VyIGhhbmRsZXJzIHNob3VsZCBiZSB2ZXJ5IGZhc3QgYW55d2F5
IHNvIGl0J3MKLSAgICAgICAgLy8gcHJvYmFibHkgbm90IHRoZSBlbmQgb2YgdGhlIHdvcmxkIGlm
IHdlIGhhbmRsZSBhIGxvdyBwcmlvcml0eSBleGNlcHRpb24gb24gYSBoaWdoIHByaW9yaXR5IHF1
ZXVlLgotICAgICAgICBkaXNwYXRjaF9xdWV1ZV90IHF1ZXVlID0gZGlzcGF0Y2hfZ2V0X2dsb2Jh
bF9xdWV1ZShESVNQQVRDSF9RVUVVRV9QUklPUklUWV9ISUdILCAwKTsKLSAgICAgICAgZGlzcGF0
Y2hfc291cmNlX3Qgc291cmNlID0gZGlzcGF0Y2hfc291cmNlX2NyZWF0ZShESVNQQVRDSF9TT1VS
Q0VfVFlQRV9NQUNIX1JFQ1YsIGV4Y2VwdGlvblBvcnQsIDAsIHF1ZXVlKTsKLSAgICAgICAgUkVM
RUFTRV9BU1NFUlRfV0lUSF9NRVNTQUdFKHNvdXJjZSwgIldlIG5lZWQgdG8gZW5zdXJlIG91ciBz
b3VyY2Ugd2FzIGNyZWF0ZWQuIik7Ci0KLSAgICAgICAgLy8gV2Ugc2hvdWxkIG5ldmVyIGNhbmNl
bCBvdXIgaGFuZGxlciBzaW5jZSBpdCdzIGEgcGVybWFuZW50IHRoaW5nIHNvIHdlIGRvbid0IGFk
ZCBhIGNhbmNlbCBoYW5kbGVyLgotICAgICAgICBkaXNwYXRjaF9zb3VyY2Vfc2V0X2V2ZW50X2hh
bmRsZXIoc291cmNlLCBeewotICAgICAgICAgICAgLy8gdGhlIGxlYWtzIHRvb2wgd2lsbCBnZXQg
bWFkIGF0IHVzIGlmIHdlIGRvbid0IHByZXRlbmQgdG8gd2F0Y2ggdGhlIHNvdXJjZS4KLSAgICAg
ICAgICAgIFVOVVNFRF9QQVJBTShzb3VyY2UpOwotICAgICAgICAgICAgdW5pb24gTWVzc2FnZSB7
Ci0gICAgICAgICAgICAgICAgbWFjaF9tc2dfaGVhZGVyX3QgaGVhZGVyOwotICAgICAgICAgICAg
ICAgIGNoYXIgZGF0YVttYXhNZXNzYWdlU2l6ZV07Ci0gICAgICAgICAgICB9OwotICAgICAgICAg
ICAgTWVzc2FnZSBtZXNzYWdlSGVhZGVySW47Ci0gICAgICAgICAgICBNZXNzYWdlIG1lc3NhZ2VI
ZWFkZXJPdXQ7Ci0KLSAgICAgICAgICAgIGtlcm5fcmV0dXJuX3QgbWVzc2FnZVJlc3VsdCA9IG1h
Y2hfbXNnKCZtZXNzYWdlSGVhZGVySW4uaGVhZGVyLCBNQUNIX1JDVl9NU0csIDAsIG1heE1lc3Nh
Z2VTaXplLCBleGNlcHRpb25Qb3J0LCBNQUNIX01TR19USU1FT1VUX05PTkUsIE1BQ0hfUE9SVF9O
VUxMKTsKLSAgICAgICAgICAgIGlmIChtZXNzYWdlUmVzdWx0ID09IEtFUk5fU1VDQ0VTUykgewot
ICAgICAgICAgICAgICAgIGlmICghbWFjaF9leGNfc2VydmVyKCZtZXNzYWdlSGVhZGVySW4uaGVh
ZGVyLCAmbWVzc2FnZUhlYWRlck91dC5oZWFkZXIpKQotICAgICAgICAgICAgICAgICAgICBDUkFT
SCgpOwotCi0gICAgICAgICAgICAgICAgbWVzc2FnZVJlc3VsdCA9IG1hY2hfbXNnKCZtZXNzYWdl
SGVhZGVyT3V0LmhlYWRlciwgTUFDSF9TRU5EX01TRywgbWVzc2FnZUhlYWRlck91dC5oZWFkZXIu
bXNnaF9zaXplLCAwLCBtZXNzYWdlSGVhZGVyT3V0LmhlYWRlci5tc2doX2xvY2FsX3BvcnQsIDAs
IE1BQ0hfUE9SVF9OVUxMKTsKLSAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChtZXNzYWdl
UmVzdWx0ID09IEtFUk5fU1VDQ0VTUyk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgIGRhdGFMb2dMbigiRmFpbGVkIHRvIHJlY2VpdmUgbWFjaCBtZXNzYWdlIGR1ZSB0byAi
LCBtYWNoX2Vycm9yX3N0cmluZyhtZXNzYWdlUmVzdWx0KSk7Ci0gICAgICAgICAgICAgICAgUkVM
RUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0K
LSAgICAgICAgZGlzcGF0Y2hfcmVzdW1lKHNvdXJjZSk7Ci0gICAgfSk7Ci19Ci0KLXN0YXRpYyBT
aWduYWwgZnJvbU1hY2hFeGNlcHRpb24oZXhjZXB0aW9uX3R5cGVfdCB0eXBlKQotewotICAgIHN3
aXRjaCAodHlwZSkgewotICAgIGNhc2UgRVhDX0JBRF9BQ0NFU1M6IHJldHVybiBTaWduYWw6OlNl
Z1Y7Ci0gICAgY2FzZSBFWENfQkFEX0lOU1RSVUNUSU9OOiByZXR1cm4gU2lnbmFsOjpJbGw7Ci0g
ICAgY2FzZSBFWENfQlJFQUtQT0lOVDogcmV0dXJuIFNpZ25hbDo6VHJhcDsKLSAgICBkZWZhdWx0
OiBicmVhazsKLSAgICB9Ci0gICAgcmV0dXJuIFNpZ25hbDo6VW5rbm93bjsKLX0KLQotc3RhdGlj
IGV4Y2VwdGlvbl9tYXNrX3QgdG9NYWNoTWFzayhTaWduYWwgc2lnbmFsKQotewotICAgIHN3aXRj
aCAoc2lnbmFsKSB7Ci0gICAgY2FzZSBTaWduYWw6OlNlZ1Y6IHJldHVybiBFWENfTUFTS19CQURf
QUNDRVNTOwotICAgIGNhc2UgU2lnbmFsOjpJbGw6IHJldHVybiBFWENfTUFTS19CQURfSU5TVFJV
Q1RJT047Ci0gICAgY2FzZSBTaWduYWw6OlRyYXA6IHJldHVybiBFWENfTUFTS19CUkVBS1BPSU5U
OwotICAgIGRlZmF1bHQ6IGJyZWFrOwotICAgIH0KLSAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotfQotCi1leHRlcm4gIkMiIHsKLQotLy8gV2UgbmVlZCB0byBpbXBsZW1lbnQgc3R1
YnMgZm9yIGNhdGNoX21hY2hfZXhjZXB0aW9uX3JhaXNlIGFuZCBjYXRjaF9tYWNoX2V4Y2VwdGlv
bl9yYWlzZV9zdGF0ZV9pZGVudGl0eS4KLS8vIFRoZSBNaUcgZ2VuZXJhdGVkIGZpbGUgd2lsbCBm
YWlsIHRvIGxpbmsgb3RoZXJ3aXNlLCBldmVuIHRob3VnaCB3ZSBkb24ndCB1c2UgdGhlIGZ1bmN0
aW9ucy4gT25seSB0aGUKLS8vIGNhdGNoX21hY2hfZXhjZXB0aW9uX3JhaXNlX3N0YXRlIGZ1bmN0
aW9uIHNob3VsZCBiZSBjYWxsZWQgYmVjYXVzZSB3ZSBwYXNzIEVYQ0VQVElPTl9TVEFURSB0bwot
Ly8gdGhyZWFkX3NldF9leGNlcHRpb25fcG9ydHMuCi1rZXJuX3JldHVybl90IGNhdGNoX21hY2hf
ZXhjZXB0aW9uX3JhaXNlKG1hY2hfcG9ydF90LCBtYWNoX3BvcnRfdCwgbWFjaF9wb3J0X3QsIGV4
Y2VwdGlvbl90eXBlX3QsIG1hY2hfZXhjZXB0aW9uX2RhdGFfdCwgbWFjaF9tc2dfdHlwZV9udW1i
ZXJfdCkKLXsKLSAgICBkYXRhTG9nTG4oIldlIHNob3VsZCBub3QgaGF2ZSBjYWxsZWQgY2F0Y2hf
ZXhjZXB0aW9uX3JhaXNlKCksIHBsZWFzZSBmaWxlIGEgYnVnIGF0IGJ1Z3Mud2Via2l0Lm9yZyIp
OwotICAgIHJldHVybiBLRVJOX0ZBSUxVUkU7Ci19Ci0KLWtlcm5fcmV0dXJuX3QgY2F0Y2hfbWFj
aF9leGNlcHRpb25fcmFpc2Vfc3RhdGVfaWRlbnRpdHkobWFjaF9wb3J0X3QsIG1hY2hfcG9ydF90
LCBtYWNoX3BvcnRfdCwgZXhjZXB0aW9uX3R5cGVfdCwgbWFjaF9leGNlcHRpb25fZGF0YV90LCBt
YWNoX21zZ190eXBlX251bWJlcl90LCBpbnQqLCB0aHJlYWRfc3RhdGVfdCwgbWFjaF9tc2dfdHlw
ZV9udW1iZXJfdCwgdGhyZWFkX3N0YXRlX3QsICBtYWNoX21zZ190eXBlX251bWJlcl90KikKLXsK
LSAgICBkYXRhTG9nTG4oIldlIHNob3VsZCBub3QgaGF2ZSBjYWxsZWQgY2F0Y2hfbWFjaF9leGNl
cHRpb25fcmFpc2Vfc3RhdGVfaWRlbnRpdHksIHBsZWFzZSBmaWxlIGEgYnVnIGF0IGJ1Z3Mud2Vi
a2l0Lm9yZyIpOwotICAgIHJldHVybiBLRVJOX0ZBSUxVUkU7Ci19Ci0KLWtlcm5fcmV0dXJuX3Qg
Y2F0Y2hfbWFjaF9leGNlcHRpb25fcmFpc2Vfc3RhdGUoCi0gICAgbWFjaF9wb3J0X3QgcG9ydCwK
LSAgICBleGNlcHRpb25fdHlwZV90IGV4Y2VwdGlvblR5cGUsCi0gICAgY29uc3QgbWFjaF9leGNl
cHRpb25fZGF0YV90IGV4Y2VwdGlvbkRhdGEsCi0gICAgbWFjaF9tc2dfdHlwZV9udW1iZXJfdCBk
YXRhQ291bnQsCi0gICAgaW50KiBzdGF0ZUZsYXZvciwKLSAgICBjb25zdCB0aHJlYWRfc3RhdGVf
dCBpblN0YXRlLAotICAgIG1hY2hfbXNnX3R5cGVfbnVtYmVyX3QgaW5TdGF0ZUNvdW50LAotICAg
IHRocmVhZF9zdGF0ZV90IG91dFN0YXRlLAotICAgIG1hY2hfbXNnX3R5cGVfbnVtYmVyX3QqIG91
dFN0YXRlQ291bnQpCi17Ci0gICAgUkVMRUFTRV9BU1NFUlQocG9ydCA9PSBleGNlcHRpb25Qb3J0
KTsKLSAgICBTaWduYWwgc2lnbmFsID0gZnJvbU1hY2hFeGNlcHRpb24oZXhjZXB0aW9uVHlwZSk7
Ci0gICAgUkVMRUFTRV9BU1NFUlQoc2lnbmFsICE9IFNpZ25hbDo6VW5rbm93bik7Ci0KLSAgICBt
ZW1jcHkob3V0U3RhdGUsIGluU3RhdGUsIGluU3RhdGVDb3VudCAqIHNpemVvZihpblN0YXRlWzBd
KSk7Ci0gICAgKm91dFN0YXRlQ291bnQgPSBpblN0YXRlQ291bnQ7Ci0KLSNpZiBDUFUoWDg2XzY0
KQotICAgIFJFTEVBU0VfQVNTRVJUKCpzdGF0ZUZsYXZvciA9PSB4ODZfVEhSRUFEX1NUQVRFKTsK
LSAgICBQbGF0Zm9ybVJlZ2lzdGVycyYgcmVnaXN0ZXJzID0gcmVpbnRlcnByZXRfY2FzdDx4ODZf
dGhyZWFkX3N0YXRlX3QqPihvdXRTdGF0ZSktPnV0cy50czY0OwotI2VsaWYgQ1BVKFg4NikKLSAg
ICBSRUxFQVNFX0FTU0VSVCgqc3RhdGVGbGF2b3IgPT0geDg2X1RIUkVBRF9TVEFURSk7Ci0gICAg
UGxhdGZvcm1SZWdpc3RlcnMmIHJlZ2lzdGVycyA9IHJlaW50ZXJwcmV0X2Nhc3Q8eDg2X3RocmVh
ZF9zdGF0ZV90Kj4ob3V0U3RhdGUpLT51dHMudHMzMjsKLSNlbGlmIENQVShBUk02NCkKLSAgICBS
RUxFQVNFX0FTU0VSVCgqc3RhdGVGbGF2b3IgPT0gQVJNX1RIUkVBRF9TVEFURSk7Ci0gICAgUGxh
dGZvcm1SZWdpc3RlcnMmIHJlZ2lzdGVycyA9IHJlaW50ZXJwcmV0X2Nhc3Q8YXJtX3VuaWZpZWRf
dGhyZWFkX3N0YXRlKj4ob3V0U3RhdGUpLT50c182NDsKLSNlbGlmIENQVShBUk0pCi0gICAgUkVM
RUFTRV9BU1NFUlQoKnN0YXRlRmxhdm9yID09IEFSTV9USFJFQURfU1RBVEUpOwotICAgIFBsYXRm
b3JtUmVnaXN0ZXJzJiByZWdpc3RlcnMgPSByZWludGVycHJldF9jYXN0PGFybV91bmlmaWVkX3Ro
cmVhZF9zdGF0ZSo+KG91dFN0YXRlKS0+dHNfMzI7Ci0jZW5kaWYKLQotICAgIFNpZ0luZm8gaW5m
bzsKLSAgICBpZiAoc2lnbmFsID09IFNpZ25hbDo6U2VnVikgewotICAgICAgICBBU1NFUlRfVU5V
U0VEKGRhdGFDb3VudCwgZGF0YUNvdW50ID09IDIpOwotICAgICAgICBpbmZvLmZhdWx0aW5nQWRk
cmVzcyA9IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGV4Y2VwdGlvbkRhdGFbMV0pOwotICAgIH0K
LQotICAgIGJvb2wgZGlkSGFuZGxlID0gZmFsc2U7Ci0gICAgaGFuZGxlcnNbc3RhdGljX2Nhc3Q8
c2l6ZV90PihzaWduYWwpXS0+aXRlcmF0ZShbJl0gKGNvbnN0IFNpZ25hbEhhbmRsZXImIGhhbmRs
ZXIpIHsKLSAgICAgICAgU2lnbmFsQWN0aW9uIGhhbmRsZXJSZXN1bHQgPSBoYW5kbGVyKHNpZ25h
bCwgaW5mbywgcmVnaXN0ZXJzKTsKLSAgICAgICAgZGlkSGFuZGxlIHw9IGhhbmRsZXJSZXN1bHQg
PT0gU2lnbmFsQWN0aW9uOjpIYW5kbGVkOwotICAgIH0pOwotCi0gICAgaWYgKGRpZEhhbmRsZSkK
LSAgICAgICAgcmV0dXJuIEtFUk5fU1VDQ0VTUzsKLSAgICByZXR1cm4gS0VSTl9GQUlMVVJFOwot
fQotCi19OwotCi1zdGF0aWMgYm9vbCB1c2VNYWNoIHsgZmFsc2UgfTsKLXZvaWQgaGFuZGxlU2ln
bmFsc1dpdGhNYWNoKCkKLXsKLSAgICBkZWxpdmVyTWVzc2FnZXNVc2luZ01hY2goKTsKLSAgICB1
c2VNYWNoID0gdHJ1ZTsKLX0KLQotCi1zdGF0aWMgU3RhdGljTG9jayB0aHJlYWRMb2NrOwotZXhj
ZXB0aW9uX21hc2tfdCBhY3RpdmVFeGNlcHRpb25zIHsgMCB9OwotCi1pbmxpbmUgdm9pZCBzZXRF
eGNlcHRpb25Qb3J0cyhjb25zdCBBYnN0cmFjdExvY2tlciYsIFRocmVhZCogdGhyZWFkKQotewot
ICAgIGtlcm5fcmV0dXJuX3QgcmVzdWx0ID0gdGhyZWFkX3NldF9leGNlcHRpb25fcG9ydHModGhy
ZWFkLT5tYWNoVGhyZWFkKCksIGFjdGl2ZUV4Y2VwdGlvbnMsIGV4Y2VwdGlvblBvcnQsIEVYQ0VQ
VElPTl9TVEFURSB8IE1BQ0hfRVhDRVBUSU9OX0NPREVTLCBNQUNISU5FX1RIUkVBRF9TVEFURSk7
Ci0gICAgaWYgKHJlc3VsdCAhPSBLRVJOX1NVQ0NFU1MpIHsKLSAgICAgICAgZGF0YUxvZ0xuKCJ0
aHJlYWQgc2V0IHBvcnQgZmFpbGVkIGR1ZSB0byAiLCBtYWNoX2Vycm9yX3N0cmluZyhyZXN1bHQp
KTsKLSAgICAgICAgQ1JBU0goKTsKLSAgICB9Ci19Ci0KLWlubGluZSBIYXNoU2V0PFRocmVhZCo+
JiBhY3RpdmVUaHJlYWRzKGNvbnN0IEFic3RyYWN0TG9ja2VyJikKLXsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8SGFzaFNldDxUaHJlYWQqPj4gYWN0aXZlVGhyZWFkczsKLSAgICByZXR1cm4g
YWN0aXZlVGhyZWFkczsKLX0KLQotdm9pZCByZWdpc3RlclRocmVhZEZvck1hY2hFeGNlcHRpb25I
YW5kbGluZyhUaHJlYWQqIHRocmVhZCkKLXsKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKHRo
cmVhZExvY2spOwotICAgIGF1dG8gcmVzdWx0ID0gYWN0aXZlVGhyZWFkcyhsb2NrZXIpLmFkZCh0
aHJlYWQpOwotCi0gICAgaWYgKHJlc3VsdC5pc05ld0VudHJ5KQotICAgICAgICBzZXRFeGNlcHRp
b25Qb3J0cyhsb2NrZXIsIHRocmVhZCk7Ci19Ci0KLXZvaWQgdW5yZWdpc3RlclRocmVhZEZvck1h
Y2hFeGNlcHRpb25IYW5kbGluZyhUaHJlYWQqIHRocmVhZCkKLXsKLSAgICBhdXRvIGxvY2tlciA9
IGhvbGRMb2NrKHRocmVhZExvY2spOwotICAgIGFjdGl2ZVRocmVhZHMobG9ja2VyKS5yZW1vdmUo
dGhyZWFkKTsKLX0KLQotI2Vsc2UKLXN0YXRpYyBjb25zdGV4cHIgYm9vbCB1c2VNYWNoID0gZmFs
c2U7Ci0jZW5kaWYgLy8gSEFWRShNQUNIX0VYQ0VQVElPTlMpCi0KLXN0YXRpYyB2b2lkIGpzY1Np
Z25hbEhhbmRsZXIoaW50LCBzaWdpbmZvX3QqLCB2b2lkKik7Ci0KLXZvaWQgaW5zdGFsbFNpZ25h
bEhhbmRsZXIoU2lnbmFsIHNpZ25hbCwgU2lnbmFsSGFuZGxlciYmIGhhbmRsZXIpCi17Ci0gICAg
QVNTRVJUKHNpZ25hbCA8IFNpZ25hbDo6VW5rbm93bik7Ci0jaWYgSEFWRShNQUNIX0VYQ0VQVElP
TlMpCi0gICAgLy8gU2luY2UgbWFjaCBvbmx5IGhhcyBFWENfQkFEX0FDQ0VTUywgd2hpY2ggY292
ZXJzIGJvdGggU2VnViBhbmQgQnVzLCB3ZSBhcmJpdGFyaWx5IGNob29zZSB0byBtYWtlCi0gICAg
Ly8gbWFjaCBFWENfQkFEX0FDQ0VTU2VzIG1hcCB0byBTZWdWLgotICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQganVzdCB1c2UgYSBzaW5nbGUgU2lnbmFsOjpCYWRBY2Nlc3MgdmFsdWUgaW5zdGVhZCBv
ZiBTZWdWL0J1cy4KLSAgICAvLyBTZWU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzIwNjMKLSAgICBpZiAoc2lnbmFsID09IFNpZ25hbDo6QnVzICYmIHVzZU1hY2gp
Ci0gICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQoIXVzZU1hY2ggfHwgc2lnbmFsICE9IFNpZ25h
bDo6VXNyKTsKLQotICAgIGlmICh1c2VNYWNoKQotICAgICAgICBzdGFydE1hY2hFeGNlcHRpb25I
YW5kbGVyVGhyZWFkKCk7Ci0jZW5kaWYKLQotICAgIHN0ZDo6Y2FsbF9vbmNlKGluaXRpYWxpemVP
bmNlRmxhZ3Nbc3RhdGljX2Nhc3Q8c2l6ZV90PihzaWduYWwpXSwgWyZdIHsKLSAgICAgICAgaGFu
ZGxlcnNbc3RhdGljX2Nhc3Q8c2l6ZV90PihzaWduYWwpXS5jb25zdHJ1Y3QoKTsKLQotICAgICAg
ICBpZiAoIXVzZU1hY2gpIHsKLSAgICAgICAgICAgIHN0cnVjdCBzaWdhY3Rpb24gYWN0aW9uOwot
ICAgICAgICAgICAgYWN0aW9uLnNhX3NpZ2FjdGlvbiA9IGpzY1NpZ25hbEhhbmRsZXI7Ci0gICAg
ICAgICAgICBhdXRvIHJlc3VsdCA9IHNpZ2ZpbGxzZXQoJmFjdGlvbi5zYV9tYXNrKTsKLSAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUKCFyZXN1bHQpOwotICAgICAgICAgICAgYWN0aW9uLnNhX2Zs
YWdzID0gU0FfU0lHSU5GTzsKLSAgICAgICAgICAgIHJlc3VsdCA9IHNpZ2FjdGlvbih0b1N5c3Rl
bVNpZ25hbChzaWduYWwpLCAmYWN0aW9uLCAmb2xkQWN0aW9uc1tzdGF0aWNfY2FzdDxzaXplX3Q+
KHNpZ25hbCldKTsKLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFyZXN1bHQpOwotICAgICAg
ICB9Ci0KLSAgICB9KTsKLQotICAgIGhhbmRsZXJzW3N0YXRpY19jYXN0PHNpemVfdD4oc2lnbmFs
KV0tPmFkZChXVEZNb3ZlKGhhbmRsZXIpKTsKLQotI2lmIEhBVkUoTUFDSF9FWENFUFRJT05TKQot
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sodGhyZWFkTG9jayk7Ci0gICAgaWYgKHVzZU1hY2gp
IHsKLSAgICAgICAgYWN0aXZlRXhjZXB0aW9ucyB8PSB0b01hY2hNYXNrKHNpZ25hbCk7Ci0KLSAg
ICAgICAgZm9yIChUaHJlYWQqIHRocmVhZCA6IGFjdGl2ZVRocmVhZHMobG9ja2VyKSkKLSAgICAg
ICAgICAgIHNldEV4Y2VwdGlvblBvcnRzKGxvY2tlciwgdGhyZWFkKTsKLSAgICB9Ci0jZW5kaWYK
LX0KLQotdm9pZCBqc2NTaWduYWxIYW5kbGVyKGludCBzaWcsIHNpZ2luZm9fdCogaW5mbywgdm9p
ZCogdWNvbnRleHQpCitzdGF0aWMgdm9pZCBqc2NTaWduYWxIYW5kbGVyKGludCBzaWcsIHNpZ2lu
Zm9fdCogaW5mbywgdm9pZCogbWNvbnRleHQpCiB7CiAgICAgU2lnbmFsIHNpZ25hbCA9IGZyb21T
eXN0ZW1TaWduYWwoc2lnKTsKIApAQCAtMzE2LDE2ICs2MiwxMCBAQCB2b2lkIGpzY1NpZ25hbEhh
bmRsZXIoaW50IHNpZywgc2lnaW5mb190KiBpbmZvLCB2b2lkKiB1Y29udGV4dCkKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIFNpZ0luZm8gc2lnSW5mbzsKLSAgICBpZiAoc2lnbmFsID09
IFNpZ25hbDo6U2VnViB8fCBzaWduYWwgPT0gU2lnbmFsOjpCdXMpCi0gICAgICAgIHNpZ0luZm8u
ZmF1bHRpbmdBZGRyZXNzID0gaW5mby0+c2lfYWRkcjsKLQotICAgIFBsYXRmb3JtUmVnaXN0ZXJz
JiByZWdpc3RlcnMgPSByZWdpc3RlcnNGcm9tVUNvbnRleHQocmVpbnRlcnByZXRfY2FzdDx1Y29u
dGV4dF90Kj4odWNvbnRleHQpKTsKLQogICAgIGJvb2wgZGlkSGFuZGxlID0gZmFsc2U7CiAgICAg
Ym9vbCByZXN0b3JlRGVmYXVsdEhhbmRsZXIgPSBmYWxzZTsKICAgICBoYW5kbGVyc1tzdGF0aWNf
Y2FzdDxzaXplX3Q+KHNpZ25hbCldLT5pdGVyYXRlKFsmXSAoY29uc3QgU2lnbmFsSGFuZGxlciYg
aGFuZGxlcikgewotICAgICAgICBzd2l0Y2ggKGhhbmRsZXIoc2lnbmFsLCBzaWdJbmZvLCByZWdp
c3RlcnMpKSB7CisgICAgICAgIHN3aXRjaCAoaGFuZGxlcihzaWcsIGluZm8sIG1jb250ZXh0KSkg
ewogICAgICAgICBjYXNlIFNpZ25hbEFjdGlvbjo6SGFuZGxlZDoKICAgICAgICAgICAgIGRpZEhh
bmRsZSA9IHRydWU7CiAgICAgICAgICAgICBicmVhazsKQEAgLTM0NSwxMyArODUsMTMgQEAgdm9p
ZCBqc2NTaWduYWxIYW5kbGVyKGludCBzaWcsIHNpZ2luZm9fdCogaW5mbywgdm9pZCogdWNvbnRl
eHQpCiAgICAgc3RydWN0IHNpZ2FjdGlvbiYgb2xkQWN0aW9uID0gb2xkQWN0aW9uc1tzdGF0aWNf
Y2FzdDxzaXplX3Q+KHNpZ25hbCldOwogICAgIGlmIChzaWduYWwgPT0gU2lnbmFsOjpVc3IpIHsK
ICAgICAgICAgaWYgKG9sZEFjdGlvbi5zYV9zaWdhY3Rpb24pCi0gICAgICAgICAgICBvbGRBY3Rp
b24uc2Ffc2lnYWN0aW9uKHNpZywgaW5mbywgdWNvbnRleHQpOworICAgICAgICAgICAgb2xkQWN0
aW9uLnNhX3NpZ2FjdGlvbihzaWcsIGluZm8sIG1jb250ZXh0KTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAogICAgIGlmICghZGlkSGFuZGxlKSB7CiAgICAgICAgIGlmIChvbGRBY3Rpb24uc2Ff
c2lnYWN0aW9uKSB7Ci0gICAgICAgICAgICBvbGRBY3Rpb24uc2Ffc2lnYWN0aW9uKHNpZywgaW5m
bywgdWNvbnRleHQpOworICAgICAgICAgICAgb2xkQWN0aW9uLnNhX3NpZ2FjdGlvbihzaWcsIGlu
Zm8sIG1jb250ZXh0KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0zNjAs
NiArMTAwLDI0IEBAIHZvaWQganNjU2lnbmFsSGFuZGxlcihpbnQgc2lnLCBzaWdpbmZvX3QqIGlu
Zm8sIHZvaWQqIHVjb250ZXh0KQogICAgIH0KIH0KIAordm9pZCBpbnN0YWxsU2lnbmFsSGFuZGxl
cihTaWduYWwgc2lnbmFsLCBTaWduYWxIYW5kbGVyJiYgaGFuZGxlcikKK3sKKyAgICBBU1NFUlQo
c2lnbmFsIDwgU2lnbmFsOjpVbmtub3duKTsKKyAgICBzdGQ6OmNhbGxfb25jZShpbml0aWFsaXpl
T25jZUZsYWdzW3N0YXRpY19jYXN0PHNpemVfdD4oc2lnbmFsKV0sIFsmXSB7CisgICAgICAgIGhh
bmRsZXJzW3N0YXRpY19jYXN0PHNpemVfdD4oc2lnbmFsKV0uY29uc3RydWN0KCk7CisKKyAgICAg
ICAgc3RydWN0IHNpZ2FjdGlvbiBhY3Rpb247CisgICAgICAgIGFjdGlvbi5zYV9zaWdhY3Rpb24g
PSBqc2NTaWduYWxIYW5kbGVyOworICAgICAgICBhdXRvIHJlc3VsdCA9IHNpZ2ZpbGxzZXQoJmFj
dGlvbi5zYV9tYXNrKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoIXJlc3VsdCk7CisgICAgICAg
IGFjdGlvbi5zYV9mbGFncyA9IFNBX1NJR0lORk87CisgICAgICAgIHJlc3VsdCA9IHNpZ2FjdGlv
bih0b1N5c3RlbVNpZ25hbChzaWduYWwpLCAmYWN0aW9uLCAmb2xkQWN0aW9uc1tzdGF0aWNfY2Fz
dDxzaXplX3Q+KHNpZ25hbCldKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoIXJlc3VsdCk7Cisg
ICAgfSk7CisKKyAgICBoYW5kbGVyc1tzdGF0aWNfY2FzdDxzaXplX3Q+KHNpZ25hbCldLT5hZGQo
V1RGTW92ZShoYW5kbGVyKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdURgogCiAjZW5kaWYgLy8g
VVNFKFBUSFJFQURTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGhyZWFkcy9TaWduYWxz
LmggYi9Tb3VyY2UvV1RGL3d0Zi90aHJlYWRzL1NpZ25hbHMuaAppbmRleCBmNGJiNTMwNWE0YWUz
OWNhMWFhMzliMTMxZGIzYWVmMmJkYjEwMzBhLi5mMjlkNGRkYjdlOGRmZGJlZjQ3OWMxZWQ5Nzdh
YmJlZmU2YTFjZjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90aHJlYWRzL1NpZ25hbHMu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90aHJlYWRzL1NpZ25hbHMuaApAQCAtMjksNyArMjksNiBA
QAogCiAjaW5jbHVkZSA8c2lnbmFsLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+Ci0jaW5j
bHVkZSA8d3RmL1BsYXRmb3JtUmVnaXN0ZXJzLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCkBAIC04
MCwxMSArNzksNyBAQCBlbnVtIGNsYXNzIFNpZ25hbEFjdGlvbiB7CiAgICAgRm9yY2VEZWZhdWx0
CiB9OwogCi1zdHJ1Y3QgU2lnSW5mbyB7Ci0gICAgdm9pZCogZmF1bHRpbmdBZGRyZXNzIHsgMCB9
OwotfTsKLQotdXNpbmcgU2lnbmFsSGFuZGxlciA9IEZ1bmN0aW9uPFNpZ25hbEFjdGlvbihTaWdu
YWwsIFNpZ0luZm8mLCBQbGF0Zm9ybVJlZ2lzdGVycyYpPjsKK3VzaW5nIFNpZ25hbEhhbmRsZXIg
PSBGdW5jdGlvbjxTaWduYWxBY3Rpb24oaW50LCBzaWdpbmZvX3QqLCB2b2lkKik+OwogCiAvLyBD
YWxsIHRoaXMgbWV0aG9kIHdoZW5ldmVyIHlvdSB3YW50IHRvIGluc3RhbGwgYSBzaWduYWwgaGFu
ZGxlci4gSXQncyBvayB0byBjYWxsIHRoaXMgZnVuY3Rpb24gbGF6aWx5LgogLy8gTm90ZTogWW91
ciBzaWduYWwgaGFuZGxlciB3aWxsIGJlIGNhbGxlZCBldmVyeSB0aW1lIHRoZSBoYW5kbGVyIGZv
ciB0aGUgZGVzaXJlZCBzaWduYWwgaXMgY2FsbGVkLgpAQCAtOTIsMjUgKzg3LDkgQEAgdXNpbmcg
U2lnbmFsSGFuZGxlciA9IEZ1bmN0aW9uPFNpZ25hbEFjdGlvbihTaWduYWwsIFNpZ0luZm8mLCBQ
bGF0Zm9ybVJlZ2lzdGVycyYKIC8vIFRoaXMgZnVuY3Rpb24gaXMgY3VycmVudGx5IGEgb25lIHdh
eSBzdHJlZXQgaS5lLiBvbmNlIGluc3RhbGxlZCwgYSBzaWduYWwgaGFuZGxlciBjYW5ub3QgYmUg
dW5pbnN0YWxsZWQuCiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBpbnN0YWxsU2lnbmFsSGFuZGxl
cihTaWduYWwsIFNpZ25hbEhhbmRsZXImJik7CiAKLQotI2lmIEhBVkUoTUFDSF9FWENFUFRJT05T
KQotY2xhc3MgVGhyZWFkOwotdm9pZCByZWdpc3RlclRocmVhZEZvck1hY2hFeGNlcHRpb25IYW5k
bGluZyhUaHJlYWQqKTsKLXZvaWQgdW5yZWdpc3RlclRocmVhZEZvck1hY2hFeGNlcHRpb25IYW5k
bGluZyhUaHJlYWQqKTsKLQotdm9pZCBoYW5kbGVTaWduYWxzV2l0aE1hY2goKTsKLSNlbmRpZiAv
LyBIQVZFKE1BQ0hfRVhDRVBUSU9OUykKLQogfSAvLyBuYW1lc3BhY2UgV1RGCiAKLSNpZiBIQVZF
KE1BQ0hfRVhDRVBUSU9OUykKLXVzaW5nIFdURjo6cmVnaXN0ZXJUaHJlYWRGb3JNYWNoRXhjZXB0
aW9uSGFuZGxpbmc7Ci11c2luZyBXVEY6OnVucmVnaXN0ZXJUaHJlYWRGb3JNYWNoRXhjZXB0aW9u
SGFuZGxpbmc7Ci11c2luZyBXVEY6OmhhbmRsZVNpZ25hbHNXaXRoTWFjaDsKLSNlbmRpZiAvLyBI
QVZFKE1BQ0hfRVhDRVBUSU9OUykKLQogdXNpbmcgV1RGOjpTaWduYWw7Ci11c2luZyBXVEY6OlNp
Z0luZm87CiB1c2luZyBXVEY6OnRvU3lzdGVtU2lnbmFsOwogdXNpbmcgV1RGOjpmcm9tU3lzdGVt
U2lnbmFsOwogdXNpbmcgV1RGOjpTaWduYWxBY3Rpb247CmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjA2ODZkNzIxMWRkN2ZhOTdhMDZmODNmNGZk
OWZiODY5MDJjZWM2OC4uYjNjNzIzY2M3NjM1MDBlOTJhYzhhODVkNTlmZjA3MzIxYWM4OTg3OSAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIxIEBACisyMDE3LTA1LTMxICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0
Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjE3NjExIGFuZCByMjE3
NjMxLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcy
Nzg1CisKKyAgICAgICAgImNhdXNlZCB3YXNtLWhhc2hzZXQtbWFueS5odG1sIHRvIGJlY29tZSBm
bGFreS4iIChSZXF1ZXN0ZWQgYnkKKyAgICAgICAga2VpdGhfbWlsbGVyIG9uICN3ZWJraXQpLgor
CisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldHM6CisKKyAgICAgICAgIlJlbGFuZCByMjE2ODA4
LCB1bmRlcmx5aW5nIGxsZGIgYnVnIGhhcyBiZWVuIGZpeGVkLiIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mjc1OQorICAgICAgICBodHRwOi8vdHJh
Yy53ZWJraXQub3JnL2NoYW5nZXNldC8yMTc2MTEKKworICAgICAgICAiVXNlIGRpc3BhdGNoIHF1
ZXVlcyBmb3IgbWFjaCBleGNlcHRpb25zIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTcyNzc1CisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcv
Y2hhbmdlc2V0LzIxNzYzMQorCiAyMDE3LTA1LTMxICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRA
YXBwbGUuY29tPgogCiAgICAgICAgIEVXUyBib3RzIHNob3VsZCByZWJvb3QgdGhlbXNlbHZlcyBt
b3JlIGZyZXF1ZW50bHkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1RocmVhZE1lc3NhZ2VzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1RocmVh
ZE1lc3NhZ2VzLmNwcAppbmRleCBlNmE1Nzg5NGJiNTE2ZmUxY2U3MTNkMDdiZjE4ZjA3MDZlZmE5
MzdjLi5kNjNlOWJmMWU3NTA2OGI2YzFhN2U3ZTZlOGI2N2M0ZWIwNTE1ODgyIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9UaHJlYWRNZXNzYWdlcy5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVGhyZWFkTWVzc2FnZXMuY3BwCkBAIC01MCw3
ICs1MCw3IEBAIHN0YXRpYyB2b2lkIHJ1blRocmVhZE1lc3NhZ2VUZXN0KHVuc2lnbmVkIG51bVNl
bmRlcnMsIHVuc2lnbmVkIG51bU1lc3NhZ2VzKQogICAgIGZvciAodW5zaWduZWQgc2VuZGVySUQg
PSAwOyBzZW5kZXJJRCA8IG51bVNlbmRlcnM7ICsrc2VuZGVySUQpIHsKICAgICAgICAgc2VuZGVy
VGhyZWFkc1tzZW5kZXJJRF0gPSBUaHJlYWQ6OmNyZWF0ZSgiVGhyZWFkTWVzc2FnZSBzZW5kZXIi
LCBbc2VuZGVySUQsIG51bU1lc3NhZ2VzLCByZWNlaXZlclRocmVhZCwgJm1lc3NhZ2VzUnVuLCAm
aGFuZGxlcnNSdW5dICgpIHsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBu
dW1NZXNzYWdlczsgKytpKSB7Ci0gICAgICAgICAgICAgICAgYXV0byByZXN1bHQgPSBzZW5kTWVz
c2FnZSgqcmVjZWl2ZXJUaHJlYWQuZ2V0KCksIFtzZW5kZXJJRCwgJmhhbmRsZXJzUnVuXSAoUGxh
dGZvcm1SZWdpc3RlcnMmKSB7CisgICAgICAgICAgICAgICAgYXV0byByZXN1bHQgPSBzZW5kTWVz
c2FnZSgqcmVjZWl2ZXJUaHJlYWQuZ2V0KCksIFtzZW5kZXJJRCwgJmhhbmRsZXJzUnVuXSAoc2ln
aW5mb190KiwgdWNvbnRleHRfdCopIHsKICAgICAgICAgICAgICAgICAgICAgaGFuZGxlcnNSdW5b
c2VuZGVySURdKys7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgRVhQRUNU
X1RSVUUocmVzdWx0ID09IFdURjo6TWVzc2FnZVN0YXR1czo6TWVzc2FnZVJhbik7CkBAIC05NSw3
ICs5NSw3IEBAIHB1YmxpYzoKIFRFU1QoVGhyZWFkTWVzc2FnZSwgU2lnbmFsc1dvcmtPbkV4aXQp
CiB7CiAgICAgc3RhdGljIGJvb2wgaGFuZGxlclJhbiA9IGZhbHNlOwotICAgIGluc3RhbGxTaWdu
YWxIYW5kbGVyKFNpZ25hbDo6VXNyLCBbXSAoU2lnbmFsLCBTaWdJbmZvJiwgUGxhdGZvcm1SZWdp
c3RlcnMmKSAtPiBTaWduYWxBY3Rpb24geworICAgIGluc3RhbGxTaWduYWxIYW5kbGVyKFNpZ25h
bDo6VXNyLCBbXSAoaW50LCBzaWdpbmZvX3QqLCB2b2lkKikgLT4gU2lnbmFsQWN0aW9uIHsKICAg
ICAgICAgZGF0YUxvZ0xuKCJoZXJlIik7CiAgICAgICAgIGhhbmRsZXJSYW4gPSB0cnVlOwogICAg
ICAgICByZXR1cm4gU2lnbmFsQWN0aW9uOjpIYW5kbGVkOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>