<?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>171889</bug_id>
          
          <creation_ts>2017-05-09 15:33:03 -0700</creation_ts>
          <short_desc>REGRESSION(r216545): Caused a test failure (Requested by eric_carlson on #webkit).</short_desc>
          <delta_ts>2017-05-09 15:36:02 -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>171877</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1306621</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-09 15:33:03 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/216545 broke the build:
Caused a test failure (Requested by eric_carlson 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>1306622</commentid>
    <comment_count>1</comment_count>
      <attachid>309550</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-09 15:33:14 -0700</bug_when>
    <thetext>Created attachment 309550
ROLLOUT of r216545

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>1306625</commentid>
    <comment_count>2</comment_count>
      <attachid>309550</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-09 15:36:01 -0700</bug_when>
    <thetext>Comment on attachment 309550
ROLLOUT of r216545

Clearing flags on attachment: 309550

Committed r216550: &lt;http://trac.webkit.org/changeset/216550&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306626</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-09 15:36:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309550</attachid>
            <date>2017-05-09 15:33:14 -0700</date>
            <delta_ts>2017-05-09 15:36:01 -0700</delta_ts>
            <desc>ROLLOUT of r216545</desc>
            <filename>bug-171889-20170509183313.patch</filename>
            <type>text/plain</type>
            <size>50302</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2NTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTZhYzFjMDgwNjZiZjk4
ZjM2ZGQ4NTBhZDFhZTYxMDc1ZTA3MzRlMi4uYWIxMTc3YzhiNjRmYmM0YzE3MmU0OTBkODY1NjBj
N2E1NzZlOTFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA1LTA5ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMjE2NTQ1LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTcxODg5CisKKyAgICAgICAgQ2F1c2VkIGEgdGVzdCBmYWlsdXJlIChS
ZXF1ZXN0ZWQgYnkgZXJpY19jYXJsc29uIG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVk
IGNoYW5nZXNldDoKKworICAgICAgICAiW01lZGlhU3RyZWFtXSBkZXZpY2VJZCBjb25zdHJhaW50
IGRvZXNuJ3Qgd29yayB3aXRoCisgICAgICAgIGdldFVzZXJNZWRpYSIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTg3NworICAgICAgICBodHRwOi8v
dHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMTY1NDUKKwogMjAxNy0wNS0wOSAgWmFsYW4gQnVq
dGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIHJlc2V0Rmxvd1RocmVhZENvbnRhaW5p
bmdCbG9ja0FuZENoaWxkSW5mb0luY2x1ZGluZ0Rlc2NlbmRhbnRzIHNob3VsZCBub3QgaWdub3Jl
IFJlbmRlckVsZW1lbnQgc3VidHJlZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjczNTA2MzUzMzZlODNlYjA0
ZGZiOWMyYjVmN2NjNWUzMDlkN2M4NS4uMTBmMjU4ZjkyM2YyNDg1ZmE3NTA4OGYwZTdjNDUyYzk5
ZDIwODc0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA1LTA5ICBDb21taXQg
UXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMjE2NTQ1LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTcxODg5CisKKyAgICAgICAgQ2F1c2VkIGEgdGVzdCBmYWlsdXJlIChSZXF1
ZXN0ZWQgYnkgZXJpY19jYXJsc29uIG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNo
YW5nZXNldDoKKworICAgICAgICAiW01lZGlhU3RyZWFtXSBkZXZpY2VJZCBjb25zdHJhaW50IGRv
ZXNuJ3Qgd29yayB3aXRoCisgICAgICAgIGdldFVzZXJNZWRpYSIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTg3NworICAgICAgICBodHRwOi8vdHJh
Yy53ZWJraXQub3JnL2NoYW5nZXNldC8yMTY1NDUKKwogMjAxNy0wNS0wOSAgRXJpYyBDYXJsc29u
ICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWVkaWFTdHJlYW1dIGRldmlj
ZUlkIGNvbnN0cmFpbnQgZG9lc24ndCB3b3JrIHdpdGggZ2V0VXNlck1lZGlhCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJbXBs
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJ
bXBsLmgKaW5kZXggODdiNDYwMDliY2VhZDQ4NjQxOTg5ODRiMzNjNjNlMjE3OWUzMmY3ZC4uNWE3
NTk0NmQyM2ExZDcwN2YxNmI5NjhlNTk3NjBiMmY1OWY2ZmY5OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50c0ltcGwu
aApAQCAtNDYsMjcgKzQ2LDEyIEBAIHN0cnVjdCBNZWRpYUNvbnN0cmFpbnRzRGF0YSB7CiAgICAg
ICAgICwgaXNWYWxpZChpc1ZhbGlkKQogICAgIHsKICAgICB9Ci0gICAgTWVkaWFDb25zdHJhaW50
c0RhdGEoY29uc3QgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMpCi0gICAgICAgIDogbWFu
ZGF0b3J5Q29uc3RyYWludHMoY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMoKSkKLSAg
ICAgICAgLCBhZHZhbmNlZENvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLmFkdmFuY2VkQ29uc3RyYWlu
dHMoKSkKLSAgICAgICAgLCBkZXZpY2VJREhhc2hTYWx0KGNvbnN0cmFpbnRzLmRldmljZUlESGFz
aFNhbHQoKSkKLSAgICAgICAgLCBpc1ZhbGlkKGNvbnN0cmFpbnRzLmlzVmFsaWQoKSkKLSAgICB7
Ci0gICAgfQotICAgIE1lZGlhQ29uc3RyYWludHNEYXRhKGNvbnN0IE1lZGlhQ29uc3RyYWludHNE
YXRhJiBjb25zdHJhaW50cywgY29uc3QgU3RyaW5nJiBoYXNoU2FsdCkKLSAgICAgICAgOiBtYW5k
YXRvcnlDb25zdHJhaW50cyhjb25zdHJhaW50cy5tYW5kYXRvcnlDb25zdHJhaW50cykKLSAgICAg
ICAgLCBhZHZhbmNlZENvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLmFkdmFuY2VkQ29uc3RyYWludHMp
Ci0gICAgICAgICwgZGV2aWNlSURIYXNoU2FsdChoYXNoU2FsdCkKLSAgICAgICAgLCBpc1ZhbGlk
KGNvbnN0cmFpbnRzLmlzVmFsaWQpCi0gICAgewotICAgIH0KIAogICAgIHZvaWQgc2V0RGVmYXVs
dFZpZGVvQ29uc3RyYWludHMoKTsKICAgICBib29sIGlzQ29uc3RyYWludFNldChzdGQ6OmZ1bmN0
aW9uPGJvb2woY29uc3QgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmKT4mJik7CiAKICAgICBN
ZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCBtYW5kYXRvcnlDb25zdHJhaW50czsKICAgICBWZWN0
b3I8TWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXA+IGFkdmFuY2VkQ29uc3RyYWludHM7Ci0gICAg
U3RyaW5nIGRldmljZUlESGFzaFNhbHQ7CiAgICAgYm9vbCBpc1ZhbGlkIHsgZmFsc2UgfTsKIH07
CiAKQEAgLTgxLDExICs2Niw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBNZWRpYVRyYWNrQ29uc3Ry
YWludFNldE1hcCYgbWFuZGF0b3J5Q29uc3RyYWludHMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X2RhdGEubWFuZGF0b3J5Q29uc3RyYWludHM7IH0KICAgICBjb25zdCBWZWN0b3I8TWVkaWFUcmFj
a0NvbnN0cmFpbnRTZXRNYXA+JiBhZHZhbmNlZENvbnN0cmFpbnRzKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9kYXRhLmFkdmFuY2VkQ29uc3RyYWludHM7IH0KICAgICBib29sIGlzVmFsaWQoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX2RhdGEuaXNWYWxpZDsgfQotCi0gICAgU3RyaW5nIGRldmlj
ZUlESGFzaFNhbHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2RhdGEuZGV2aWNlSURIYXNoU2Fs
dDsgfQotICAgIHZvaWQgc2V0RGV2aWNlSURIYXNoU2FsdChjb25zdCBTdHJpbmcmIHNhbHQpIGZp
bmFsIHsgbV9kYXRhLmRldmljZUlESGFzaFNhbHQgPSBzYWx0OyB9Ci0KICAgICBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzRGF0YSYgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQorCiAgICAg
dm9pZCBzZXREZWZhdWx0VmlkZW9Db25zdHJhaW50cygpIHsgbV9kYXRhLnNldERlZmF1bHRWaWRl
b0NvbnN0cmFpbnRzKCk7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzRW51bWVyYXRp
b25SZXF1ZXN0LmNwcAppbmRleCA3ODlhNThjZjI2Njc4YmZiZGNmMWFjNjM3ZDUyZTlhZDk3YTA5
NWFlLi43MWE0ZDUxYmU3ZTRiNzIwZTM2M2U2YzE1Yzk3ZGQxYTU1ZjY1NWRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlc0VudW1lcmF0
aW9uUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QuY3BwCkBAIC02NSw2ICs2NSwxMSBAQCBTZWN1
cml0eU9yaWdpbiogTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0Ojp0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luKCkgY29uc3QKICAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKKyAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG93bmNhc3Q8
RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpLmZyYW1lKCkpIHsKKyAgICAgICAg
aWYgKGZyYW1lLT5pc01haW5GcmFtZSgpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgfQorCiAgICAgcmV0dXJuICZzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnRvcE9yaWdpbigp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhQ29udHJvbGxlci5oCmluZGV4IDcwN2ZkOGU0MDZmNjljNzYyZjVmMWU3Zjc0NTNk
N2RkODk2OTUwMjEuLjg4MDRhY2FhYjIxYzVmZGU0YjhkMzcxNWYzZWVkZmJlMDVhZmE3ZjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29u
dHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1l
ZGlhQ29udHJvbGxlci5oCkBAIC00NiwxMSArNDYsMTUgQEAgcHVibGljOgogICAgIHZvaWQgZW51
bWVyYXRlTWVkaWFEZXZpY2VzKE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdCYpOwogICAg
IHZvaWQgY2FuY2VsTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0KE1lZGlhRGV2aWNlc0Vu
dW1lcmF0aW9uUmVxdWVzdCYpOwogCisgICAgdm9pZCBzZXREZXZpY2VJREhhc2hTYWx0KGNvbnN0
IFN0cmluZyYgc2FsdCkgeyBtX2lkSGFzaFNhbHQgPSBzYWx0OyB9CisgICAgU3RyaW5nIGRldmlj
ZUlESGFzaFNhbHQoKSBjb25zdCB7IHJldHVybiBtX2lkSGFzaFNhbHQ7IH0KKwogICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOwogICAgIHN0YXRp
YyBVc2VyTWVkaWFDb250cm9sbGVyKiBmcm9tKFBhZ2UqIHBhZ2UpIHsgcmV0dXJuIHN0YXRpY19j
YXN0PFVzZXJNZWRpYUNvbnRyb2xsZXIqPihTdXBwbGVtZW50PFBhZ2U+Ojpmcm9tKHBhZ2UsIHN1
cHBsZW1lbnROYW1lKCkpKTsgfQogCiBwcml2YXRlOgogICAgIFVzZXJNZWRpYUNsaWVudCogbV9j
bGllbnQ7CisgICAgU3RyaW5nIG1faWRIYXNoU2FsdDsKIH07CiAKIGlubGluZSB2b2lkIFVzZXJN
ZWRpYUNvbnRyb2xsZXI6OnJlcXVlc3RVc2VyTWVkaWFBY2Nlc3MoVXNlck1lZGlhUmVxdWVzdCYg
cmVxdWVzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1VzZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IGIwYTgwYjA0MWVmYTk3MzRlYzU3ODRjOWM1MDAw
YTEyYTczN2MyM2IuLjk2MTI1ZmQ0NDNmMDgzM2Y1M2U3MzBiOGZhM2RiZThjOWI1YWJlYmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVx
dWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVk
aWFSZXF1ZXN0LmNwcApAQCAtMTUzLDcgKzE1Myw3IEBAIHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6
c3RhcnQoKQogICAgIG1fY29udHJvbGxlci0+cmVxdWVzdFVzZXJNZWRpYUFjY2VzcygqdGhpcyk7
CiB9CiAKLXZvaWQgVXNlck1lZGlhUmVxdWVzdDo6YWxsb3coY29uc3QgU3RyaW5nJiBhdWRpb0Rl
dmljZVVJRCwgY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiBkZXZp
Y2VJZGVudGlmaWVySGFzaFNhbHQpCit2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmFsbG93KGNvbnN0
IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQpCiB7
CiAgICAgbV9hbGxvd2VkQXVkaW9EZXZpY2VVSUQgPSBhdWRpb0RldmljZVVJRDsKICAgICBtX2Fs
bG93ZWRWaWRlb0RldmljZVVJRCA9IHZpZGVvRGV2aWNlVUlEOwpAQCAtMTgwLDkgKzE4MCw2IEBA
IHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6YWxsb3coY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJ
RCwgY29uc3QgU3RyaW5nJiB2aWRlb0RlCiAgICAgICAgIG1fcHJvbWlzZS5yZXNvbHZlKHN0cmVh
bSk7CiAgICAgfTsKIAotICAgIG1fYXVkaW9Db25zdHJhaW50cy0+c2V0RGV2aWNlSURIYXNoU2Fs
dChkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpOwotICAgIG1fdmlkZW9Db25zdHJhaW50cy0+c2V0
RGV2aWNlSURIYXNoU2FsdChkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpOwotCiAgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuY3JlYXRlTWVkaWFTdHJlYW0oV1RGTW92
ZShjYWxsYmFjayksIG1fYWxsb3dlZEF1ZGlvRGV2aWNlVUlELCBtX2FsbG93ZWRWaWRlb0Rldmlj
ZVVJRCwgJm1fYXVkaW9Db25zdHJhaW50cy5nZXQoKSwgJm1fdmlkZW9Db25zdHJhaW50cy5nZXQo
KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9V
c2VyTWVkaWFSZXF1ZXN0LmgKaW5kZXggMmJmMGE0NWZjZGU2MjhiMWJhYTBlOTIyYmJlYjliMzE4
MTQ5NzJmYi4uYTNlOTY5MDI5MjY1NzlhZmFkMjgxNDI3OGJlYzZlNzJmOTA2YzhlYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1
ZXN0LmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc3RhcnQoKTsKIAogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QWxsb3dlZE1lZGlhRGV2aWNlVUlEcyhjb25zdCBTdHJp
bmcmIGF1ZGlvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlEKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGFsbG93KGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQsIGNv
bnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgZGV2aWNlSWRlbnRpZmll
ckhhc2hTYWx0KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFsbG93KGNvbnN0IFN0cmluZyYg
YXVkaW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQpOwogCiAgICAgZW51
bSBNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiB7IE5vQ29uc3RyYWludHMsIFVzZXJNZWRpYURpc2Fi
bGVkLCBOb0NhcHR1cmVEZXZpY2VzLCBJbnZhbGlkQ29uc3RyYWludCwgSGFyZHdhcmVFcnJvciwg
UGVybWlzc2lvbkRlbmllZCwgT3RoZXJGYWlsdXJlIH07CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBkZW55KE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uLCBjb25zdCBTdHJpbmcmIGludmFsaWRDb25z
dHJhaW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhQ29uc3RyYWludHMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhQ29uc3RyYWludHMuaAppbmRleCA1Mzg4NzE3ZGUyMjNkNjY0NTgzNjgyYjQxZTQ3MDgz
MGRhYzk2MWY3Li44OTk4Mzc0NTdiYzc4MDQ4Y2U5MDNkNWJiNGI0NDZmNmUwMjkyOGFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFp
bnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25z
dHJhaW50cy5oCkBAIC04MTEsOSArODExLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgY29uc3Qg
VmVjdG9yPE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwPiYgYWR2YW5jZWRDb25zdHJhaW50cygp
IGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0ID0gMDsKIAotICAg
IHZpcnR1YWwgU3RyaW5nIGRldmljZUlESGFzaFNhbHQoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIHNldERldmljZUlESGFzaFNhbHQoY29uc3QgU3RyaW5nJikgPSAwOwotCiBwcm90ZWN0
ZWQ6CiAgICAgTWVkaWFDb25zdHJhaW50cygpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAK
aW5kZXggMmZlNjhhNzY1ODZiNTE4MTE0MTQ1OGIyYTZmNGViOWQyYzJjYjg1Mi4uNGI0ZTQ2NDcy
YWZmYTk0N2VhODI4ZWE0NWQ2ZDBiYjAzZTA0NjUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAK
QEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRlICJNZWRpYUNvbnN0cmFpbnRzLmgiCiAjaW5jbHVk
ZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzLmgiCi0jaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIgogI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1VVSUQuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdIYXNoLmg+CkBAIC0zNDIsNyArMzQxLDExIEBAIGRvdWJsZSBSZWFsdGlt
ZU1lZGlhU291cmNlOjpmaXRuZXNzRGlzdGFuY2UoY29uc3QgTWVkaWFDb25zdHJhaW50JiBjb25z
dHJhaW50KQogICAgIH0KIAogICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6RGV2aWNlSWQ6
IHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIEFTU0VSVChjb25zdHJh
aW50LmlzU3RyaW5nKCkpOworICAgICAgICBpZiAoIWNhcGFiaWxpdGllcy5zdXBwb3J0c0Rldmlj
ZUlkKCkpCisgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICByZXR1cm4gZG93bmNhc3Q8
U3RyaW5nQ29uc3RyYWludD4oY29uc3RyYWludCkuZml0bmVzc0Rpc3RhbmNlKG1faWQpOwogICAg
ICAgICBicmVhazsKICAgICB9CiAKQEAgLTUzOCwyMyArNTQxLDYgQEAgYm9vbCBSZWFsdGltZU1l
ZGlhU291cmNlOjpzZWxlY3RTZXR0aW5ncyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJh
aW50cywgRmwKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogCi0gICAgICAg
IC8vIFRoZSBkZXZpY2VJZCBjYW4ndCBiZSBjaGFuZ2VkLCBhbmQgdGhlIGNvbnN0cmFpbnQgdmFs
dWUgaXMgdGhlIGhhc2hlZCBkZXZpY2UgSUQsIHNvIHZlcmlmeSB0aGF0IHRoZQotICAgICAgICAv
LyBkZXZpY2UncyB1bmlxdWUgSUQgaGFzaGVzIHRvIHRoZSBjb25zdHJhaW50IHZhbHVlIGJ1dCBk
b24ndCBpbmNsdWRlIHRoZSBjb25zdHJhaW50IGluIHRoZSBmbGF0dGVuZWQKLSAgICAgICAgLy8g
Y29uc3RyYWludCBzZXQuCi0gICAgICAgIGlmIChjb25zdHJhaW50LmNvbnN0cmFpbnRUeXBlKCkg
PT0gTWVkaWFDb25zdHJhaW50VHlwZTo6RGV2aWNlSWQpIHsKLSAgICAgICAgICAgIEFTU0VSVChj
b25zdHJhaW50LmlzU3RyaW5nKCkpOwotICAgICAgICAgICAgQVNTRVJUKCFjb25zdHJhaW50cy5k
ZXZpY2VJREhhc2hTYWx0KCkuaXNFbXB0eSgpKTsKLQotICAgICAgICAgICAgYXV0byBoYXNoZWRJ
RCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmhhc2hTdHJpbmdXaXRo
U2FsdChtX3BlcnNpc3RlbnRJRCwgY29uc3RyYWludHMuZGV2aWNlSURIYXNoU2FsdCgpKTsKLSAg
ICAgICAgICAgIGRvdWJsZSBjb25zdHJhaW50RGlzdGFuY2UgPSBkb3duY2FzdDxTdHJpbmdDb25z
dHJhaW50Pihjb25zdHJhaW50KS5maXRuZXNzRGlzdGFuY2UoaGFzaGVkSUQpOwotICAgICAgICAg
ICAgaWYgKHN0ZDo6aXNpbmYoY29uc3RyYWludERpc3RhbmNlKSkgewotICAgICAgICAgICAgICAg
IGZhaWxlZENvbnN0cmFpbnQgPSBjb25zdHJhaW50Lm5hbWUoKTsKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICB9Ci0KICAgICAgICAgZG91YmxlIGNvbnN0cmFpbnREaXN0YW5jZSA9IGZpdG5lc3NE
aXN0YW5jZShjb25zdHJhaW50KTsKICAgICAgICAgaWYgKHN0ZDo6aXNpbmYoY29uc3RyYWludERp
c3RhbmNlKSkgewogICAgICAgICAgICAgZmFpbGVkQ29uc3RyYWludCA9IGNvbnN0cmFpbnQubmFt
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJh
aW50cy5jcHAKaW5kZXggZWNiZjkzNWEyN2YwNjBlNjI4NjRmNTg3YTQ4NWI4YWRlY2QwZDBhZi4u
NzM3NzVhMGYyY2VlN2E3NjA4NjM1ODgzMmE5ZmM4MmFmYjhiZjU3ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBv
cnRlZENvbnN0cmFpbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuY3BwCkBAIC0zNSw2
ICszNSw3MiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NvbnN0IEF0b21pY1N0cmluZyYg
UmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzOjpuYW1lRm9yQ29uc3RyYWlu
dChNZWRpYUNvbnN0cmFpbnRUeXBlIGNvbnN0cmFpbnQpCit7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21pY1N0cmluZz4gdW5rbm93bkNvbnN0cmFpbnROYW1lKGVtcHR5U3RyaW5nKCkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHdpZHRoQ29uc3RyYWlu
dE5hbWUoIndpZHRoIik7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4g
aGVpZ2h0Q29uc3RyYWludE5hbWUoImhlaWdodCIpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9taWNTdHJpbmc+IGFzcGVjdFJhdGlvQ29uc3RyYWludE5hbWUoImFzcGVjdFJhdGlvIik7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gZnJhbWVSYXRlQ29uc3Ry
YWludE5hbWUoImZyYW1lUmF0ZSIpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNT
dHJpbmc+IGZhY2luZ01vZGVDb25zdHJhaW50TmFtZSgiZmFjaW5nTW9kZSIpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHZvbHVtZUNvbnN0cmFpbnROYW1lKCJ2b2x1
bWUiKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzYW1wbGVSYXRl
Q29uc3RyYWludE5hbWUoInNhbXBsZVJhdGUiKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbWljU3RyaW5nPiBzYW1wbGVTaXplQ29uc3RyYWludE5hbWUoInNhbXBsZVNpemUiKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBlY2hvQ2FuY2VsbGF0aW9uQ29u
c3RyYWludE5hbWUoImVjaG9DYW5jZWxsYXRpb24iKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbWljU3RyaW5nPiBkZXZpY2VJZENvbnN0cmFpbnROYW1lKCJkZXZpY2VJZCIpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGdyb3VwSWRDb25zdHJhaW50TmFt
ZSgiZ3JvdXBJZCIpOworICAgIHN3aXRjaCAoY29uc3RyYWludCkgeworICAgIGNhc2UgTWVkaWFD
b25zdHJhaW50VHlwZTo6VW5rbm93bjoKKyAgICAgICAgcmV0dXJuIHVua25vd25Db25zdHJhaW50
TmFtZTsKKyAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OldpZHRoOgorICAgICAgICByZXR1
cm4gd2lkdGhDb25zdHJhaW50TmFtZTsKKyAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6Okhl
aWdodDoKKyAgICAgICAgcmV0dXJuIGhlaWdodENvbnN0cmFpbnROYW1lOworICAgIGNhc2UgTWVk
aWFDb25zdHJhaW50VHlwZTo6QXNwZWN0UmF0aW86CisgICAgICAgIHJldHVybiBhc3BlY3RSYXRp
b0NvbnN0cmFpbnROYW1lOworICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6RnJhbWVSYXRl
OgorICAgICAgICByZXR1cm4gZnJhbWVSYXRlQ29uc3RyYWludE5hbWU7CisgICAgY2FzZSBNZWRp
YUNvbnN0cmFpbnRUeXBlOjpGYWNpbmdNb2RlOgorICAgICAgICByZXR1cm4gZmFjaW5nTW9kZUNv
bnN0cmFpbnROYW1lOworICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6Vm9sdW1lOgorICAg
ICAgICByZXR1cm4gdm9sdW1lQ29uc3RyYWludE5hbWU7CisgICAgY2FzZSBNZWRpYUNvbnN0cmFp
bnRUeXBlOjpTYW1wbGVSYXRlOgorICAgICAgICByZXR1cm4gc2FtcGxlUmF0ZUNvbnN0cmFpbnRO
YW1lOworICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6U2FtcGxlU2l6ZToKKyAgICAgICAg
cmV0dXJuIHNhbXBsZVNpemVDb25zdHJhaW50TmFtZTsKKyAgICBjYXNlIE1lZGlhQ29uc3RyYWlu
dFR5cGU6OkVjaG9DYW5jZWxsYXRpb246CisgICAgICAgIHJldHVybiBlY2hvQ2FuY2VsbGF0aW9u
Q29uc3RyYWludE5hbWU7CisgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEZXZpY2VJZDoK
KyAgICAgICAgcmV0dXJuIGRldmljZUlkQ29uc3RyYWludE5hbWU7CisgICAgY2FzZSBNZWRpYUNv
bnN0cmFpbnRUeXBlOjpHcm91cElkOgorICAgICAgICByZXR1cm4gZ3JvdXBJZENvbnN0cmFpbnRO
YW1lOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBlbXB0
eUF0b207Cit9CisKK01lZGlhQ29uc3RyYWludFR5cGUgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBv
cnRlZENvbnN0cmFpbnRzOjpjb25zdHJhaW50RnJvbU5hbWUoY29uc3QgU3RyaW5nJiBjb25zdHJh
aW50TmFtZSkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxBdG9taWNTdHJp
bmcsIE1lZGlhQ29uc3RyYWludFR5cGU+PiBuYW1lVG9Db25zdHJhaW50TWFwOworICAgIEhhc2hN
YXA8QXRvbWljU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBlPiYgbmFtZVRvQ29uc3RyYWludE1h
cFZhbHVlID0gbmFtZVRvQ29uc3RyYWludE1hcC5nZXQoKTsKKyAgICBpZiAoIW5hbWVUb0NvbnN0
cmFpbnRNYXBWYWx1ZS5zaXplKCkpIHsKKyAgICAgICAgbmFtZVRvQ29uc3RyYWludE1hcFZhbHVl
LmFkZCgid2lkdGgiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpXaWR0aCk7CisgICAgICAgIG5hbWVU
b0NvbnN0cmFpbnRNYXBWYWx1ZS5hZGQoImhlaWdodCIsIE1lZGlhQ29uc3RyYWludFR5cGU6Okhl
aWdodCk7CisgICAgICAgIG5hbWVUb0NvbnN0cmFpbnRNYXBWYWx1ZS5hZGQoImFzcGVjdFJhdGlv
IiwgTWVkaWFDb25zdHJhaW50VHlwZTo6QXNwZWN0UmF0aW8pOworICAgICAgICBuYW1lVG9Db25z
dHJhaW50TWFwVmFsdWUuYWRkKCJmcmFtZVJhdGUiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpGcmFt
ZVJhdGUpOworICAgICAgICBuYW1lVG9Db25zdHJhaW50TWFwVmFsdWUuYWRkKCJmYWNpbmdNb2Rl
IiwgTWVkaWFDb25zdHJhaW50VHlwZTo6RmFjaW5nTW9kZSk7CisgICAgICAgIG5hbWVUb0NvbnN0
cmFpbnRNYXBWYWx1ZS5hZGQoInZvbHVtZSIsIE1lZGlhQ29uc3RyYWludFR5cGU6OlZvbHVtZSk7
CisgICAgICAgIG5hbWVUb0NvbnN0cmFpbnRNYXBWYWx1ZS5hZGQoInNhbXBsZVJhdGUiLCBNZWRp
YUNvbnN0cmFpbnRUeXBlOjpTYW1wbGVSYXRlKTsKKyAgICAgICAgbmFtZVRvQ29uc3RyYWludE1h
cFZhbHVlLmFkZCgic2FtcGxlU2l6ZSIsIE1lZGlhQ29uc3RyYWludFR5cGU6OlNhbXBsZVNpemUp
OworICAgICAgICBuYW1lVG9Db25zdHJhaW50TWFwVmFsdWUuYWRkKCJlY2hvQ2FuY2VsbGF0aW9u
IiwgTWVkaWFDb25zdHJhaW50VHlwZTo6RWNob0NhbmNlbGxhdGlvbik7CisgICAgICAgIG5hbWVU
b0NvbnN0cmFpbnRNYXBWYWx1ZS5hZGQoImRldmljZUlkIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6
RGV2aWNlSWQpOworICAgICAgICBuYW1lVG9Db25zdHJhaW50TWFwVmFsdWUuYWRkKCJncm91cElk
IiwgTWVkaWFDb25zdHJhaW50VHlwZTo6R3JvdXBJZCk7CisgICAgfQorICAgIGF1dG8gaXRlciA9
IG5hbWVUb0NvbnN0cmFpbnRNYXBWYWx1ZS5maW5kKGNvbnN0cmFpbnROYW1lKTsKKyAgICByZXR1
cm4gaXRlciA9PSBuYW1lVG9Db25zdHJhaW50TWFwVmFsdWUuZW5kKCkgPyBNZWRpYUNvbnN0cmFp
bnRUeXBlOjpVbmtub3duIDogaXRlci0+dmFsdWU7Cit9CisKIGJvb2wgUmVhbHRpbWVNZWRpYVNv
dXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzOjpzdXBwb3J0c0NvbnN0cmFpbnQoTWVkaWFDb25zdHJh
aW50VHlwZSBjb25zdHJhaW50KSBjb25zdAogewogICAgIHN3aXRjaCAoY29uc3RyYWludCkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaApp
bmRleCA0MDQwZTM0NTg4OTc2MWE1ODY4ZGRkOWI3N2JjNDZlMmE1Mjk2NDZmLi5mYWY5NGJlNmE3
MTcwMjFkNmQyYmFlNmMzNTljMmRhMzdiYjIwMGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3Ry
YWludHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaApAQCAtOTMsNiArOTMsOSBAQCBwdWJs
aWM6CiAKICAgICBib29sIHN1cHBvcnRzQ29uc3RyYWludChNZWRpYUNvbnN0cmFpbnRUeXBlKSBj
b25zdDsKIAorICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVGb3JDb25zdHJhaW50
KE1lZGlhQ29uc3RyYWludFR5cGUpOworICAgIHN0YXRpYyBNZWRpYUNvbnN0cmFpbnRUeXBlIGNv
bnN0cmFpbnRGcm9tTmFtZShjb25zdCBTdHJpbmcmKTsKKwogICAgIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFJlYWx0aW1lTWVkaWFTb3VyY2VT
dXBwb3J0ZWRDb25zdHJhaW50cyYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KaW5k
ZXggYzUwMmZkMzgyZTVhNmRlOWFkOTUxMjQ1Nzg2Y2FjN2E4YmM4NDg0NS4uZmY1YzM0OGY1OWVm
MGMzMmNkZmVjODIyNWZlMmIyMmI4MWQwY2FmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJj
ZS5tbQpAQCAtMTE2LDcgKzExNiw3IEBAIHB1YmxpYzoKICAgICAgICAgQVZDYXB0dXJlRGV2aWNl
VHlwZWRlZiAqZGV2aWNlID0gW2dldEFWQ2FwdHVyZURldmljZUNsYXNzKCkgZGV2aWNlV2l0aFVu
aXF1ZUlEOmRldmljZUlEXTsKICAgICAgICAgaWYgKCFkZXZpY2UpCiAgICAgICAgICAgICByZXR1
cm4geyB9OwotICAgICAgICByZXR1cm4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZp
Y2UsIGRldmljZUlELCBjb25zdHJhaW50cyk7CisgICAgICAgIHJldHVybiBBVlZpZGVvQ2FwdHVy
ZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgZW1wdHlTdHJpbmcoKSwgY29uc3RyYWludHMpOwogICAg
IH0KIAogI2lmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyTWFjLmNwcAppbmRleCA2YThiMjI4OTRkYTVkNTNhYjQ5NDk0NjIxOGIzM2NjMzUwMDI3
MGQ1Li43NDI4NGU4MWZkMWIyNzQyNTBkNTIxYzZkNThjMzFlZWU2OWM1OWI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCkBAIC0xOTEsNyArMTkxLDYg
QEAgVmVjdG9yPFN0cmluZz4gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6YmVzdFNvdXJj
ZXNGb3JUeXBlQW5kQ29uc3RyYWludHMoUmUKICAgICBmb3IgKGF1dG8mIGRldmljZSA6IGJlc3RT
b3VyY2VzKQogICAgICAgICBzb3VyY2VVSURzLnVuY2hlY2tlZEFwcGVuZChkZXZpY2UtPnBlcnNp
c3RlbnRJRCgpKTsKIAotICAgIGludmFsaWRDb25zdHJhaW50ID0gZW1wdHlTdHJpbmcoKTsKICAg
ICByZXR1cm4gc291cmNlVUlEczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCAwZmEzOWM3ZDYzMjM1MThiNDFjZDVkNDBkOGNk
MWM2MWNiMmNmNDc0Li43YWY2NjQ4YjBlMTc4NjYzYWI3OGY5NzhmODkzY2U1NWRkNjQ1MmZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApA
QCAtMjM5Myw3ICsyMzkzLDYgQEAgdm9pZCBBcmd1bWVudENvZGVyPE1lZGlhQ29uc3RyYWludHNE
YXRhPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmUKIHsKICAgICBlbmNv
ZGVyIDw8IGNvbnN0cmFpbnQubWFuZGF0b3J5Q29uc3RyYWludHMKICAgICAgICAgPDwgY29uc3Ry
YWludC5hZHZhbmNlZENvbnN0cmFpbnRzCi0gICAgICAgIDw8IGNvbnN0cmFpbnQuZGV2aWNlSURI
YXNoU2FsdAogICAgICAgICA8PCBjb25zdHJhaW50LmlzVmFsaWQ7CiB9CiAKQEAgLTI0MDEsNyAr
MjQwMCw2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxNZWRpYUNvbnN0cmFpbnRzRGF0YT46OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpNZWRpCiB7CiAgICAgcmV0dXJuIGRlY29kZXIu
ZGVjb2RlKGNvbnN0cmFpbnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzKQogICAgICAgICAmJiBkZWNv
ZGVyLmRlY29kZShjb25zdHJhaW50cy5hZHZhbmNlZENvbnN0cmFpbnRzKQotICAgICAgICAmJiBk
ZWNvZGVyLmRlY29kZShjb25zdHJhaW50cy5kZXZpY2VJREhhc2hTYWx0KQogICAgICAgICAmJiBk
ZWNvZGVyLmRlY29kZShjb25zdHJhaW50cy5pc1ZhbGlkKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5j
cHAKaW5kZXggZGMyMDg0NzU4YjBlZmUyMjQxMGM4YmYyOGE4MGQ4OTkyZWQ4Zjk5YS4uNzA0NWY1
YWEwYjE3Y2NlODMzMmI2ODdkM2Q0NWQ2MTgyZDcxNDE3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuY3Bw
CkBAIC0yNywzNCArMjcsMjggQEAKICNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQ
cm94eS5oIgogCiAjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+Ci0jaW5jbHVkZSA8V2Vi
Q29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi1Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTo6VXNl
ck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlciwgY29uc3QgU3RyaW5nJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbklkZW50aWZpZXIpCi0gICAgOiBtX3VzZXJNZWRpYUlEKHVzZXJNZWRpYUlEKQot
ICAgICwgbV9mcmFtZUlEKGZyYW1lSUQpCi0gICAgLCBtX2NvbXBsZXRpb25IYW5kbGVyKFdURk1v
dmUoaGFuZGxlcikpCi0gICAgLCBtX3VzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW4oKFNl
Y3VyaXR5T3JpZ2luRGF0YTo6ZnJvbURhdGFiYXNlSWRlbnRpZmllcih1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbklkZW50aWZpZXIpLT5zZWN1cml0eU9yaWdpbigpKSkKLSAgICAsIG1fdG9wTGV2ZWxE
b2N1bWVudFNlY3VyaXR5T3JpZ2luKFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbURhdGFiYXNlSWRl
bnRpZmllcih0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciktPnNlY3VyaXR5T3JpZ2lu
KCkpCitVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvbkNo
ZWNrUHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIs
IHVpbnQ2NF90IHVzZXJNZWRpYUlEKQorICAgIDogbV9tYW5hZ2VyKCZtYW5hZ2VyKQorICAgICwg
bV91c2VyTWVkaWFJRCh1c2VyTWVkaWFJRCkKIHsKIH0KIAogdm9pZCBVc2VyTWVkaWFQZXJtaXNz
aW9uQ2hlY2tQcm94eTo6c2V0VXNlck1lZGlhQWNjZXNzSW5mbyhjb25zdCBTdHJpbmcmIG1lZGlh
RGV2aWNlSWRlbnRpZmllckhhc2hTYWx0LCBib29sIGFsbG93ZWQpCiB7Ci0gICAgaWYgKCFtX2Nv
bXBsZXRpb25IYW5kbGVyKQorICAgIEFTU0VSVChtX21hbmFnZXIpOworICAgIGlmICghbV9tYW5h
Z2VyKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2NvbXBsZXRpb25IYW5kbGVyKG1fdXNlck1l
ZGlhSUQsIG1lZGlhRGV2aWNlSWRlbnRpZmllckhhc2hTYWx0LCBhbGxvd2VkKTsKLSAgICBtX2Nv
bXBsZXRpb25IYW5kbGVyID0gbnVsbHB0cjsKKyAgICBtX21hbmFnZXItPmRpZENvbXBsZXRlVXNl
ck1lZGlhUGVybWlzc2lvbkNoZWNrKG1fdXNlck1lZGlhSUQsIG1lZGlhRGV2aWNlSWRlbnRpZmll
ckhhc2hTYWx0LCBhbGxvd2VkKTsKKyAgICBtX21hbmFnZXIgPSBudWxscHRyOwogfQogCiB2b2lk
IFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5OjppbnZhbGlkYXRlKCkKIHsKLSAgICBtX2Nv
bXBsZXRpb25IYW5kbGVyID0gbnVsbHB0cjsKKyAgICBtX21hbmFnZXIgPSBudWxscHRyOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmgKaW5kZXggNjZiZTA4ZDJmODZi
M2QxNTk5ZTc4MzQ2ZTRkOThkYWY4OGMyZjJiOC4uYmNjZTBhOWIzODdlY2E5YmQ2ZDA2ZjJhOWUw
YWFmYmFhN2QzYmNhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmgKQEAgLTI5LDM5ICsyOSwyNSBAQAogI2lu
Y2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBTZWN1cml0eU9yaWdpbjsKLX0KLQogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIGNsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
OwogCiBjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSA6IHB1YmxpYyBBUEk6Ok9i
amVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVjaz4gewog
cHVibGljOgotCi0gICAgdXNpbmcgQ29tcGxldGlvbkhhbmRsZXIgPSBzdGQ6OmZ1bmN0aW9uPHZv
aWQodWludDY0X3QsIGNvbnN0IFN0cmluZyYsIGJvb2wgYWxsb3dlZCk+OwotCi0gICAgc3RhdGlj
IFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eT4gY3JlYXRlKHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIsIGNv
bnN0IFN0cmluZyYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyKQorICAgIHN0YXRpYyBSZWY8VXNl
ck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk+IGNyZWF0ZShVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94
eSh1c2VyTWVkaWFJRCwgZnJhbWVJRCwgV1RGTW92ZShoYW5kbGVyKSwgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW5JZGVudGlmaWVyLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllcikpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94
eShtYW5hZ2VyLCB1c2VyTWVkaWFJRCkpOwogICAgIH0KIAogICAgIHZvaWQgc2V0VXNlck1lZGlh
QWNjZXNzSW5mbyhjb25zdCBTdHJpbmcmLCBib29sIGFsbG93ZWQpOwogICAgIHZvaWQgaW52YWxp
ZGF0ZSgpOwogCi0gICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJ
RDsgfQotICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiB1c2VyTWVkaWFEb2N1bWVudFNlY3Vy
aXR5T3JpZ2luKCkgeyByZXR1cm4gJm1fdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbi5n
ZXQoKTsgfQotICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiB0b3BMZXZlbERvY3VtZW50U2Vj
dXJpdHlPcmlnaW4oKSB7IHJldHVybiAmbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4u
Z2V0KCk7IH0KLQogcHJpdmF0ZToKLSAgICBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSh1
aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXIm
JiwgY29uc3QgU3RyaW5nJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIpOworICAgIFVzZXJNZWRp
YVBlcm1pc3Npb25DaGVja1Byb3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5JiwgdWludDY0X3QpOwogCisgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkqIG1fbWFuYWdlcjsKICAgICB1aW50NjRfdCBtX3VzZXJNZWRpYUlEOwotICAgIHVpbnQ2
NF90IG1fZnJhbWVJRDsKLSAgICBDb21wbGV0aW9uSGFuZGxlciBtX2NvbXBsZXRpb25IYW5kbGVy
OwotICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gbV91c2VyTWVkaWFEb2N1bWVudFNl
Y3VyaXR5T3JpZ2luOwotICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gbV90b3BMZXZl
bERvY3VtZW50U2VjdXJpdHlPcmlnaW47CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDBkN2QyN2M2MjM2NzM5Zjky
MjNhY2UzODc0ZTU3YmYxZjlhMGJlZWQuLjgzODQyODJkMDM1OWMyOGQxMzcxNDA0NGFkZTQ0ZDNi
ZjhkYTYxZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtMzks
OSArMzksOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKLUZyYW1lQXV0aG9yaXphdGlvblN0YXRlOjpGcmFtZUF1dGhvcml6YXRpb25TdGF0ZShTZWN1
cml0eU9yaWdpbiogdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbiwgU2VjdXJpdHlPcmln
aW4qIHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbikKLSAgICA6IG1fdXNlck1lZGlhRG9j
dW1lbnRTZWN1cml0eU9yaWdpbih1c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luKQotICAg
ICwgbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4odG9wTGV2ZWxEb2N1bWVudFNlY3Vy
aXR5T3JpZ2luKQorRnJhbWVBdXRob3JpemF0aW9uU3RhdGU6OkZyYW1lQXV0aG9yaXphdGlvblN0
YXRlKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHJlcXVlc3QpCisgICAgOiBtX3Vz
ZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW4ocmVxdWVzdC51c2VyTWVkaWFEb2N1bWVudFNl
Y3VyaXR5T3JpZ2luKCkpCisgICAgLCBtX3RvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbihy
ZXF1ZXN0LnRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpKQogewogfQogCkBAIC02NSwz
NCArNjUsMzIgQEAgdm9pZCBGcmFtZUF1dGhvcml6YXRpb25TdGF0ZTo6c2V0SGFzUGVybWlzc2lv
blRvVXNlQ2FwdHVyZURldmljZShjb25zdCBTdHJpbmcmIGQKICAgICAgICAgbV9hdXRob3JpemVk
RGV2aWNlVUlEcy5yZW1vdmUoaW5kZXgpOwogfQogCi12b2lkIEZyYW1lQXV0aG9yaXphdGlvblN0
YXRlOjplbnN1cmVTZWN1cml0eU9yaWdpbnNBcmVFcXVhbChXZWJDb3JlOjpTZWN1cml0eU9yaWdp
biogdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4qIHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbikKK3ZvaWQgRnJhbWVBdXRob3JpemF0
aW9uU3RhdGU6OmVuc3VyZVNlY3VyaXR5T3JpZ2luc0FyZUVxdWFsKFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkmIHJlcXVlc3QpCiB7CiAgICAgZG8gewotICAgICAgICBpZiAoIW1fdXNl
ck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbiB8fCAhbV91c2VyTWVkaWFEb2N1bWVudFNlY3Vy
aXR5T3JpZ2luLT5lcXVhbCh1c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luKSkKKyAgICAg
ICAgaWYgKCFtX3VzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW4gfHwgIW1fdXNlck1lZGlh
RG9jdW1lbnRTZWN1cml0eU9yaWdpbi0+ZXF1YWwocmVxdWVzdC51c2VyTWVkaWFEb2N1bWVudFNl
Y3VyaXR5T3JpZ2luKCkpKQogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgaWYgKCFtX3Rv
cExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbiB8fCAhbV90b3BMZXZlbERvY3VtZW50U2VjdXJp
dHlPcmlnaW4tPmVxdWFsKHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbikpCisgICAgICAg
IGlmICghbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4gfHwgIW1fdG9wTGV2ZWxEb2N1
bWVudFNlY3VyaXR5T3JpZ2luLT5lcXVhbChyZXF1ZXN0LnRvcExldmVsRG9jdW1lbnRTZWN1cml0
eU9yaWdpbigpKSkKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIHJldHVybjsKICAgICB9
IHdoaWxlICgwKTsKIAotICAgIG1fdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9IHVz
ZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW47Ci0gICAgbV90b3BMZXZlbERvY3VtZW50U2Vj
dXJpdHlPcmlnaW4gPSB0b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW47CisgICAgbV91c2Vy
TWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luID0gcmVxdWVzdC51c2VyTWVkaWFEb2N1bWVudFNl
Y3VyaXR5T3JpZ2luKCk7CisgICAgbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4gPSBy
ZXF1ZXN0LnRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpOwogICAgIG1fYXV0aG9yaXpl
ZERldmljZVVJRHMuY2xlYXIoKTsKLSAgICBtX2RldmljZUlkZW50aWZpZXJIYXNoU2FsdCA9IGVt
cHR5U3RyaW5nKCk7CiB9CiAKLXRlbXBsYXRlIDx0eXBlbmFtZSBSZXF1ZXN0VHlwZT4KLUZyYW1l
QXV0aG9yaXphdGlvblN0YXRlJiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6c3RhdGVGb3JSZXF1ZXN0KFJlcXVlc3RUeXBlJiByZXF1ZXN0KQorRnJhbWVBdXRob3JpemF0
aW9uU3RhdGUmIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzdGF0ZUZv
clJlcXVlc3QoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcmVxdWVzdCkKIHsKICAg
ICBhdXRvJiBzdGF0ZSA9IG1fZnJhbWVTdGF0ZXMuYWRkKHJlcXVlc3QuZnJhbWVJRCgpLCBudWxs
cHRyKS5pdGVyYXRvci0+dmFsdWU7CiAgICAgaWYgKHN0YXRlKSB7Ci0gICAgICAgIHN0YXRlLT5l
bnN1cmVTZWN1cml0eU9yaWdpbnNBcmVFcXVhbChyZXF1ZXN0LnVzZXJNZWRpYURvY3VtZW50U2Vj
dXJpdHlPcmlnaW4oKSwgcmVxdWVzdC50b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSk7
CisgICAgICAgIHN0YXRlLT5lbnN1cmVTZWN1cml0eU9yaWdpbnNBcmVFcXVhbChyZXF1ZXN0KTsK
ICAgICAgICAgcmV0dXJuICpzdGF0ZTsKICAgICB9CiAKLSAgICBzdGF0ZSA9IHN0ZDo6bWFrZV91
bmlxdWU8RnJhbWVBdXRob3JpemF0aW9uU3RhdGU+KHJlcXVlc3QudXNlck1lZGlhRG9jdW1lbnRT
ZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0LnRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbigp
KTsKKyAgICBzdGF0ZSA9IHN0ZDo6bWFrZV91bmlxdWU8RnJhbWVBdXRob3JpemF0aW9uU3RhdGU+
KHJlcXVlc3QpOwogICAgIHJldHVybiAqc3RhdGU7CiB9CiAKQEAgLTE4NSwxMSArMTgzLDExIEBA
IHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnVzZXJNZWRpYUFj
Y2Vzc1dhc0RlbmllZCh1aW50NjRfdCB1CiAgICAgaWYgKCFyZXF1ZXN0KQogICAgICAgICByZXR1
cm47CiAKLSAgICBhdXRvIGZyYW1lU3RhdGUgPSBzdGF0ZUZvclJlcXVlc3QoKnJlcXVlc3QpOwor
ICAgIGF1dG8gZmFtZVN0YXRlID0gc3RhdGVGb3JSZXF1ZXN0KCpyZXF1ZXN0KTsKICAgICBmb3Ig
KGNvbnN0IGF1dG8mIGRldmljZVVJRCA6IHJlcXVlc3QtPnZpZGVvRGV2aWNlVUlEcygpKQotICAg
ICAgICBmcmFtZVN0YXRlLnNldEhhc1Blcm1pc3Npb25Ub1VzZUNhcHR1cmVEZXZpY2UoZGV2aWNl
VUlELCBmYWxzZSk7CisgICAgICAgIGZhbWVTdGF0ZS5zZXRIYXNQZXJtaXNzaW9uVG9Vc2VDYXB0
dXJlRGV2aWNlKGRldmljZVVJRCwgZmFsc2UpOwogICAgIGZvciAoY29uc3QgYXV0byYgZGV2aWNl
VUlEIDogcmVxdWVzdC0+YXVkaW9EZXZpY2VVSURzKCkpCi0gICAgICAgIGZyYW1lU3RhdGUuc2V0
SGFzUGVybWlzc2lvblRvVXNlQ2FwdHVyZURldmljZShkZXZpY2VVSUQsIGZhbHNlKTsKKyAgICAg
ICAgZmFtZVN0YXRlLnNldEhhc1Blcm1pc3Npb25Ub1VzZUNhcHR1cmVEZXZpY2UoZGV2aWNlVUlE
LCBmYWxzZSk7CiAKICAgICBkZW55UmVxdWVzdCh1c2VyTWVkaWFJRCwgcmVhc29uLCBlbXB0eVN0
cmluZygpKTsKIH0KQEAgLTIxOCwxNSArMjE2LDEzIEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk6OnVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50ZWQodWludDY0X3QK
ICAgICBpZiAoIXJlcXVlc3QpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8mIGZyYW1lU3Rh
dGUgPSBzdGF0ZUZvclJlcXVlc3QoKnJlcXVlc3QpOwotICAgIGlmICghYXVkaW9EZXZpY2VVSUQu
aXNFbXB0eSgpKQotICAgICAgICBmcmFtZVN0YXRlLnNldEhhc1Blcm1pc3Npb25Ub1VzZUNhcHR1
cmVEZXZpY2UoYXVkaW9EZXZpY2VVSUQsIHRydWUpOwotICAgIGlmICghdmlkZW9EZXZpY2VVSUQu
aXNFbXB0eSgpKQotICAgICAgICBmcmFtZVN0YXRlLnNldEhhc1Blcm1pc3Npb25Ub1VzZUNhcHR1
cmVEZXZpY2UodmlkZW9EZXZpY2VVSUQsIHRydWUpOworICAgIGF1dG8mIGZhbWVTdGF0ZSA9IHN0
YXRlRm9yUmVxdWVzdCgqcmVxdWVzdCk7CisgICAgZmFtZVN0YXRlLnNldEhhc1Blcm1pc3Npb25U
b1VzZUNhcHR1cmVEZXZpY2UoYXVkaW9EZXZpY2VVSUQsIHRydWUpOworICAgIGZhbWVTdGF0ZS5z
ZXRIYXNQZXJtaXNzaW9uVG9Vc2VDYXB0dXJlRGV2aWNlKHZpZGVvRGV2aWNlVUlELCB0cnVlKTsK
IAogICAgIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24oKS53aWxsQ3JlYXRlTWVk
aWFTdHJlYW0oKnRoaXMsICFhdWRpb0RldmljZVVJRC5pc0VtcHR5KCksICF2aWRlb0RldmljZVVJ
RC5pc0VtcHR5KCkpOwogCi0gICAgbV9wYWdlLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpVc2VyTWVkaWFBY2Nlc3NXYXNHcmFudGVkKHVzZXJNZWRpYUlELCBhdWRpb0RldmljZVVJ
RCwgdmlkZW9EZXZpY2VVSUQsIGZyYW1lU3RhdGUuZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KCkp
LCBtX3BhZ2UucGFnZUlEKCkpOworICAgIG1fcGFnZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6VXNlck1lZGlhQWNjZXNzV2FzR3JhbnRlZCh1c2VyTWVkaWFJRCwgYXVkaW9EZXZp
Y2VVSUQsIHZpZGVvRGV2aWNlVUlEKSwgbV9wYWdlLnBhZ2VJRCgpKTsKICNlbHNlCiAgICAgVU5V
U0VEX1BBUkFNKHVzZXJNZWRpYUlEKTsKICAgICBVTlVTRURfUEFSQU0oYXVkaW9EZXZpY2VVSUQp
OwpAQCAtMjcwLDIxICsyNjYsMjEgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSgKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGJvb2wgYXV0aG9yaXplZEZvckF1ZGlv
ID0gZmFsc2U7Ci0gICAgICAgIGJvb2wgYXV0aG9yaXplZEZvclZpZGVvID0gZmFsc2U7Ci0gICAg
ICAgIGF1dG8gdXNlck1lZGlhT3JpZ2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKFNl
Y3VyaXR5T3JpZ2luRGF0YTo6ZnJvbURhdGFiYXNlSWRlbnRpZmllcih1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbklkZW50aWZpZXIpLnZhbHVlX29yKFNlY3VyaXR5T3JpZ2luRGF0YSgpKS5zZWN1cml0
eU9yaWdpbigpKTsKLSAgICAgICAgYXV0byB0b3BMZXZlbE9yaWdpbiA9IEFQSTo6U2VjdXJpdHlP
cmlnaW46OmNyZWF0ZShTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21EYXRhYmFzZUlkZW50aWZpZXIo
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIpLnZhbHVlX29yKFNlY3VyaXR5T3JpZ2lu
RGF0YSgpKS5zZWN1cml0eU9yaWdpbigpKTsKKyAgICAgICAgYXV0byB1c2VyTWVkaWFPcmlnaW4g
PSBBUEk6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRGF0
YWJhc2VJZGVudGlmaWVyKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciktPnNlY3Vy
aXR5T3JpZ2luKCkpOworICAgICAgICBhdXRvIHRvcExldmVsT3JpZ2luID0gQVBJOjpTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlKFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbURhdGFiYXNlSWRlbnRpZmll
cih0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciktPnNlY3VyaXR5T3JpZ2luKCkpOwog
ICAgICAgICBhdXRvIHJlcXVlc3QgPSBjcmVhdGVSZXF1ZXN0KHVzZXJNZWRpYUlELCBmcmFtZUlE
LCB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHRvcExldmVsRG9jdW1lbnRPcmln
aW5JZGVudGlmaWVyLCBhdWRpb0RldmljZVVJRHMsIHZpZGVvRGV2aWNlVUlEcyk7CiAKLSAgICAg
ICAgYXV0byYgZnJhbWVTdGF0ZSA9IHN0YXRlRm9yUmVxdWVzdChyZXF1ZXN0LmdldCgpKTsKKyAg
ICAgICAgYm9vbCBhdXRob3JpemVkRm9yQXVkaW8gPSBmYWxzZTsKKyAgICAgICAgYm9vbCBhdXRo
b3JpemVkRm9yVmlkZW8gPSBmYWxzZTsKKyAgICAgICAgYXV0byYgZmFtZVN0YXRlID0gc3RhdGVG
b3JSZXF1ZXN0KHJlcXVlc3QpOwogICAgICAgICBmb3IgKGF1dG8gZGV2aWNlVUlEIDogYXVkaW9E
ZXZpY2VVSURzKSB7Ci0gICAgICAgICAgICBpZiAoZnJhbWVTdGF0ZS5oYXNQZXJtaXNzaW9uVG9V
c2VDYXB0dXJlRGV2aWNlKGRldmljZVVJRCkpIHsKKyAgICAgICAgICAgIGlmIChmYW1lU3RhdGUu
aGFzUGVybWlzc2lvblRvVXNlQ2FwdHVyZURldmljZShkZXZpY2VVSUQpKSB7CiAgICAgICAgICAg
ICAgICAgYXV0aG9yaXplZEZvckF1ZGlvID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBmb3IgKGF1dG8gZGV2aWNlVUlEIDog
dmlkZW9EZXZpY2VVSURzKSB7Ci0gICAgICAgICAgICBpZiAoZnJhbWVTdGF0ZS5oYXNQZXJtaXNz
aW9uVG9Vc2VDYXB0dXJlRGV2aWNlKGRldmljZVVJRCkpIHsKKyAgICAgICAgICAgIGlmIChmYW1l
U3RhdGUuaGFzUGVybWlzc2lvblRvVXNlQ2FwdHVyZURldmljZShkZXZpY2VVSUQpKSB7CiAgICAg
ICAgICAgICAgICAgYXV0aG9yaXplZEZvclZpZGVvID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIH0KQEAgLTMwNiwzNyArMzAyLDExIEBAIHZvaWQgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yRnJhbWUoCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIHZhbGlkYXRlQ29u
c3RyYWludHNIYW5kbGVyID0gW3RoaXMsIHVzZXJNZWRpYUlELCB2YWxpZEhhbmRsZXIsIGludmFs
aWRIYW5kbGVyLCBhdWRpb0NvbnN0cmFpbnRzRGF0YSwgdmlkZW9Db25zdHJhaW50c0RhdGFdKGNv
bnN0IFN0cmluZyYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSB7Ci0gICAgICAgIHN5bmNXaXRo
V2ViQ29yZVByZWZzKCk7Ci0KLSAgICAgICAgYXV0byBhdWRpb0NvbnN0cmFpbnRzID0gTWVkaWFD
b25zdHJhaW50c0ltcGw6OmNyZWF0ZSh7YXVkaW9Db25zdHJhaW50c0RhdGEsIGRldmljZUlkZW50
aWZpZXJIYXNoU2FsdH0pOwotICAgICAgICBhdXRvIHZpZGVvQ29uc3RyYWludHMgPSBNZWRpYUNv
bnN0cmFpbnRzSW1wbDo6Y3JlYXRlKHt2aWRlb0NvbnN0cmFpbnRzRGF0YSwgZGV2aWNlSWRlbnRp
Zmllckhhc2hTYWx0fSk7Ci0KLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCkudmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHModmFsaWRIYW5kbGVyLCBpbnZhbGlk
SGFuZGxlciwgYXVkaW9Db25zdHJhaW50cywgdmlkZW9Db25zdHJhaW50cyk7Ci0gICAgfTsKLQot
ICAgIGF1dG8gaGF2ZURldmljZVNhbHRIYW5kbGVyID0gW3RoaXMsIHVzZXJNZWRpYUlELCBmcmFt
ZUlELCB2YWxpZGF0ZUNvbnN0cmFpbnRzSGFuZGxlcl0odWludDY0X3QgdXNlck1lZGlhSUQsIGNv
bnN0IFN0cmluZyYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0LCBib29sIG9yaWdpbkhhc1BlcnNp
c3RlbnRBY2Nlc3MpIHsKLQotICAgICAgICBhdXRvIHJlcXVlc3QgPSBtX3BlbmRpbmdEZXZpY2VS
ZXF1ZXN0cy50YWtlKHVzZXJNZWRpYUlEKTsKLSAgICAgICAgaWYgKCFyZXF1ZXN0KQotICAgICAg
ICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmICghbV9wYWdlLmlzVmFsaWQoKSkKLSAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICBhdXRvJiBmcmFtZVN0YXRlID0gc3RhdGVGb3JSZXF1ZXN0
KCpyZXF1ZXN0KTsKLSAgICAgICAgZnJhbWVTdGF0ZS5zZXREZXZpY2VJZGVudGlmaWVySGFzaFNh
bHQoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KTsKLSAgICAgICAgZnJhbWVTdGF0ZS5zZXRIYXNQ
ZXJzaXN0ZW50QWNjZXNzKG9yaWdpbkhhc1BlcnNpc3RlbnRBY2Nlc3MpOwotICAgICAgICB2YWxp
ZGF0ZUNvbnN0cmFpbnRzSGFuZGxlcihkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpOwotICAgIH07
CisgICAgYXV0byBhdWRpb0NvbnN0cmFpbnRzID0gTWVkaWFDb25zdHJhaW50c0ltcGw6OmNyZWF0
ZShNZWRpYUNvbnN0cmFpbnRzRGF0YShhdWRpb0NvbnN0cmFpbnRzRGF0YSkpOworICAgIGF1dG8g
dmlkZW9Db25zdHJhaW50cyA9IE1lZGlhQ29uc3RyYWludHNJbXBsOjpjcmVhdGUoTWVkaWFDb25z
dHJhaW50c0RhdGEodmlkZW9Db25zdHJhaW50c0RhdGEpKTsKIAotICAgIGF1dG8gZnJhbWVTdGF0
ZSA9ICBtX2ZyYW1lU3RhdGVzLmdldChmcmFtZUlEKTsKLSAgICBpZiAoZnJhbWVTdGF0ZSAmJiAh
ZnJhbWVTdGF0ZS0+ZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KCkuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIHZhbGlkYXRlQ29uc3RyYWludHNIYW5kbGVyKGZyYW1lU3RhdGUtPmRldmljZUlkZW50aWZp
ZXJIYXNoU2FsdCgpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGdldFVzZXJNZWRp
YVBlcm1pc3Npb25JbmZvKHVzZXJNZWRpYUlELCBmcmFtZUlELCBXVEZNb3ZlKGhhdmVEZXZpY2VT
YWx0SGFuZGxlciksIFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyKSwg
V1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllcikpOworICAgIHN5bmNXaXRo
V2ViQ29yZVByZWZzKCk7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9u
KCkudmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHModmFsaWRIYW5kbGVyLCBpbnZhbGlkSGFuZGxl
ciwgYXVkaW9Db25zdHJhaW50cywgdmlkZW9Db25zdHJhaW50cyk7CiAjZWxzZQogICAgIFVOVVNF
RF9QQVJBTSh1c2VyTWVkaWFJRCk7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwpAQCAtMzQ3
LDU3ICszMTcsNDIgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSgKICNlbmRpZgogfQogCi0jaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKLXZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHk6OmdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKHVpbnQ2NF90IHVzZXJNZWRpYUlE
LCB1aW50NjRfdCBmcmFtZUlELCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTo6Q29tcGxl
dGlvbkhhbmRsZXImJiBoYW5kbGVyLCBjb25zdCBTdHJpbmcmJiB1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVu
dGlmaWVyKQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51
bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIFN0cmluZyB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIFN0cmlu
ZyB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllcikKIHsKLSAgICBhdXRvIHJlcXVlc3Qg
PSBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTo6Y3JlYXRlKHVzZXJNZWRpYUlELCBmcmFt
ZUlELCBXVEZNb3ZlKGhhbmRsZXIpLCB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIs
IHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyKTsKLQorI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisgICAgYXV0byByZXF1ZXN0ID0gVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6
OmNyZWF0ZSgqdGhpcywgdXNlck1lZGlhSUQpOwogICAgIG1fcGVuZGluZ0RldmljZVJlcXVlc3Rz
LmFkZCh1c2VyTWVkaWFJRCwgcmVxdWVzdC5wdHIoKSk7CiAKLSAgICBhdXRvIGZyYW1lU3RhdGUg
PSAgbV9mcmFtZVN0YXRlcy5nZXQoZnJhbWVJRCk7Ci0gICAgaWYgKGZyYW1lU3RhdGUgJiYgIWZy
YW1lU3RhdGUtPmRldmljZUlkZW50aWZpZXJIYXNoU2FsdCgpLmlzRW1wdHkoKSkgewotICAgICAg
ICBoYW5kbGVyKHVzZXJNZWRpYUlELCBmcmFtZVN0YXRlLT5kZXZpY2VJZGVudGlmaWVySGFzaFNh
bHQoKSwgZnJhbWVTdGF0ZS0+aGFzUGVyc2lzdGVudEFjY2VzcygpKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQogICAgIGF1dG8gdXNlck1lZGlhT3JpZ2luID0gQVBJOjpTZWN1cml0eU9yaWdp
bjo6Y3JlYXRlKFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbURhdGFiYXNlSWRlbnRpZmllcih1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIpLnZhbHVlX29yKFNlY3VyaXR5T3JpZ2luRGF0
YSgpKS5zZWN1cml0eU9yaWdpbigpKTsKICAgICBhdXRvIHRvcExldmVsT3JpZ2luID0gQVBJOjpT
ZWN1cml0eU9yaWdpbjo6Y3JlYXRlKFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbURhdGFiYXNlSWRl
bnRpZmllcih0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllcikudmFsdWVfb3IoU2VjdXJp
dHlPcmlnaW5EYXRhKCkpLnNlY3VyaXR5T3JpZ2luKCkpOworCiAgICAgaWYgKCFtX3BhZ2UudWlD
bGllbnQoKS5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4obV9wYWdlLCAqbV9wYWdl
LnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlEKSwgKnVzZXJNZWRpYU9yaWdpbi5nZXQoKSwgKnRv
cExldmVsT3JpZ2luLmdldCgpLCByZXF1ZXN0LmdldCgpKSkgewogICAgICAgICBtX3BlbmRpbmdE
ZXZpY2VSZXF1ZXN0cy50YWtlKHVzZXJNZWRpYUlEKTsKLQotICAgICAgICBoYW5kbGVyKHVzZXJN
ZWRpYUlELCBlbXB0eVN0cmluZygpLCBmYWxzZSk7CisgICAgICAgIG1fcGFnZS5wcm9jZXNzKCku
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkQ29tcGxldGVNZWRpYURldmljZUVudW1lcmF0aW9u
KHVzZXJNZWRpYUlELCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4oKSwgZW1wdHlTdHJp
bmcoKSwgZmFsc2UpLCBtX3BhZ2UucGFnZUlEKCkpOwogICAgIH0KLX0KKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKHVzZXJNZWRpYUlEKTsKKyAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CisgICAg
VU5VU0VEX1BBUkFNKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllcik7CisgICAgVU5V
U0VEX1BBUkFNKHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyKTsKICNlbmRpZgorfQog
Ci12b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjplbnVtZXJhdGVN
ZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJ
RCwgU3RyaW5nIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgU3RyaW5nIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyKQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6ZGlkQ29tcGxldGVVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2sodWlu
dDY0X3QgdXNlck1lZGlhSUQsIGNvbnN0IFN0cmluZyYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0
LCBib29sIG9yaWdpbkhhc1BlcnNpc3RlbnRBY2Nlc3MpCiB7Ci0jaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKLQotICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgdXNlck1lZGlhSURd
KHVpbnQ2NF90IHVzZXJNZWRpYUlELCBjb25zdCBTdHJpbmcmIGRldmljZUlkZW50aWZpZXJIYXNo
U2FsdCwgYm9vbCBvcmlnaW5IYXNQZXJzaXN0ZW50QWNjZXNzKSB7Ci0gICAgICAgIGF1dG8gcmVx
dWVzdCA9IG1fcGVuZGluZ0RldmljZVJlcXVlc3RzLnRha2UodXNlck1lZGlhSUQpOwotICAgICAg
ICBpZiAoIXJlcXVlc3QpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKCFtX3Bh
Z2UuaXNWYWxpZCgpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGF1dG8mIGZyYW1l
U3RhdGUgPSBzdGF0ZUZvclJlcXVlc3QoKnJlcXVlc3QpOwotICAgICAgICBBU1NFUlQoZnJhbWVT
dGF0ZS5kZXZpY2VJZGVudGlmaWVySGFzaFNhbHQoKS5pc0VtcHR5KCkgfHwgZnJhbWVTdGF0ZS5k
ZXZpY2VJZGVudGlmaWVySGFzaFNhbHQoKSA9PSBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpOwot
ICAgICAgICBmcmFtZVN0YXRlLnNldERldmljZUlkZW50aWZpZXJIYXNoU2FsdChkZXZpY2VJZGVu
dGlmaWVySGFzaFNhbHQpOwotICAgICAgICBmcmFtZVN0YXRlLnNldEhhc1BlcnNpc3RlbnRBY2Nl
c3Mob3JpZ2luSGFzUGVyc2lzdGVudEFjY2Vzcyk7CisgICAgaWYgKCFtX3BhZ2UuaXNWYWxpZCgp
KQorICAgICAgICByZXR1cm47CiAKLSAgICAgICAgc3luY1dpdGhXZWJDb3JlUHJlZnMoKTsKLSAg
ICAgICAgYXV0byBkZXZpY2VJbmZvID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xl
dG9uKCkuZ2V0TWVkaWFTdHJlYW1EZXZpY2VzKCk7Ci0gICAgICAgIG1fcGFnZS5wcm9jZXNzKCku
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkQ29tcGxldGVNZWRpYURldmljZUVudW1lcmF0aW9u
KHVzZXJNZWRpYUlELCBkZXZpY2VJbmZvLCBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQsIG9yaWdp
bkhhc1BlcnNpc3RlbnRBY2Nlc3MpLCBtX3BhZ2UucGFnZUlEKCkpOwotICAgIH07CisgICAgaWYg
KCFtX3BlbmRpbmdEZXZpY2VSZXF1ZXN0cy50YWtlKHVzZXJNZWRpYUlEKSkKKyAgICAgICAgcmV0
dXJuOwogCi0gICAgZ2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8odXNlck1lZGlhSUQsIGZyYW1l
SUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luSWRlbnRpZmllciksIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZp
ZXIpKTsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN5bmNXaXRoV2ViQ29yZVByZWZz
KCk7CisgICAgYXV0byBkZXZpY2VJbmZvID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCkuZ2V0TWVkaWFTdHJlYW1EZXZpY2VzKCk7CisgICAgbV9wYWdlLnByb2Nlc3MoKS5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRDb21wbGV0ZU1lZGlhRGV2aWNlRW51bWVyYXRpb24o
dXNlck1lZGlhSUQsIGRldmljZUluZm8sIGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCwgb3JpZ2lu
SGFzUGVyc2lzdGVudEFjY2VzcyksIG1fcGFnZS5wYWdlSUQoKSk7CiAjZWxzZQotICAgIFVOVVNF
RF9QQVJBTSh1c2VyTWVkaWFJRCk7Ci0gICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwotICAgIFVO
VVNFRF9QQVJBTSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIpOwotICAgIFVOVVNF
RF9QQVJBTSh0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllcik7CisgICAgVU5VU0VEX1BB
UkFNKGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCk7CisgICAgVU5VU0VEX1BBUkFNKG9yaWdpbkhh
c1BlcnNpc3RlbnRBY2Nlc3MpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmgKaW5kZXggZjhmODU3MWIxN2I3N2UyNzdhZjI4MTI3ZjVmYjMxZTIxODc0NzcwYS4u
ZTEyZTAyZGIxNjBlZGY4YTZmN2ZlZTlmMjVjOTM2NjRhYTE4NWYxNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAgLTMwLDcgKzMwLDYgQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIENhcHR1cmVEZXZpY2U7CiBzdHJ1Y3QgTWVkaWFDb25zdHJhaW50c0RhdGE7Ci1j
bGFzcyBTZWN1cml0eU9yaWdpbjsKIH07CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzksMjUg
KzM4LDE3IEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsKIAogY2xhc3MgRnJhbWVBdXRob3JpemF0aW9u
U3RhdGUgewogcHVibGljOgotICAgIGV4cGxpY2l0IEZyYW1lQXV0aG9yaXphdGlvblN0YXRlKFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luKiB1c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luLCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbiogdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKTsK
KyAgICBleHBsaWNpdCBGcmFtZUF1dGhvcml6YXRpb25TdGF0ZShVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5Jik7CiAKICAgICBib29sIGhhc1Blcm1pc3Npb25Ub1VzZUNhcHR1cmVEZXZp
Y2UoY29uc3QgU3RyaW5nJiBkZXZpY2VVSUQpOwogICAgIHZvaWQgc2V0SGFzUGVybWlzc2lvblRv
VXNlQ2FwdHVyZURldmljZShjb25zdCBTdHJpbmcmLCBib29sKTsKIAotICAgIHZvaWQgZW5zdXJl
U2VjdXJpdHlPcmlnaW5zQXJlRXF1YWwoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qIHVzZXJNZWRp
YURvY3VtZW50U2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiB0b3BMZXZl
bERvY3VtZW50U2VjdXJpdHlPcmlnaW4pOwotCi0gICAgdm9pZCBzZXREZXZpY2VJZGVudGlmaWVy
SGFzaFNhbHQoY29uc3QgU3RyaW5nJiBoYXNoU2FsdCkgeyBtX2RldmljZUlkZW50aWZpZXJIYXNo
U2FsdCA9IGhhc2hTYWx0OyB9Ci0gICAgU3RyaW5nIGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCgp
IGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0OyB9Ci0KLSAgICBib29s
IGhhc1BlcnNpc3RlbnRBY2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX2hhc1BlcnNpc3RlbnRBY2Nl
c3M7IH0KLSAgICB2b2lkIHNldEhhc1BlcnNpc3RlbnRBY2Nlc3MoYm9vbCB2YWx1ZSkgeyBtX2hh
c1BlcnNpc3RlbnRBY2Nlc3MgPSB2YWx1ZTsgfQorICAgIHZvaWQgZW5zdXJlU2VjdXJpdHlPcmln
aW5zQXJlRXF1YWwoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYpOwogCiBwcml2YXRl
OgogICAgIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gbV91c2VyTWVkaWFEb2N1bWVu
dFNlY3VyaXR5T3JpZ2luOwogICAgIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gbV90
b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW47CiAgICAgVmVjdG9yPFN0cmluZz4gbV9hdXRo
b3JpemVkRGV2aWNlVUlEczsKLSAgICBTdHJpbmcgbV9kZXZpY2VJZGVudGlmaWVySGFzaFNhbHQ7
Ci0gICAgYm9vbCBtX2hhc1BlcnNpc3RlbnRBY2Nlc3MgeyBmYWxzZSB9OwogfTsKIAogY2xhc3Mg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgewpAQCAtNzMsMTIgKzY0LDEy
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXNlck1lZGlhQWNjZXNzV2FzR3JhbnRlZCh1aW50NjRf
dCwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiB2aWRlb0Rldmlj
ZVVJRCk7CiAgICAgdm9pZCB1c2VyTWVkaWFBY2Nlc3NXYXNEZW5pZWQodWludDY0X3QsIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbik7
Ci0KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgUmVxdWVzdFR5cGU+Ci0gICAgRnJhbWVBdXRob3Jp
emF0aW9uU3RhdGUmIHN0YXRlRm9yUmVxdWVzdChSZXF1ZXN0VHlwZSYpOworICAgIEZyYW1lQXV0
aG9yaXphdGlvblN0YXRlJiBzdGF0ZUZvclJlcXVlc3QoVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eSYpOwogCiAgICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50
NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luSWRlbnRpZmllciwgU3RyaW5nIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlm
aWVyKTsKIAorICAgIHZvaWQgZGlkQ29tcGxldGVVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2sodWlu
dDY0X3QsIGNvbnN0IFN0cmluZyYsIGJvb2wgYWxsb3cpOworCiAgICAgdm9pZCBzdG9wQ2FwdHVy
ZSgpOwogICAgIHZvaWQgc2NoZWR1bGVOZXh0UmVqZWN0aW9uKCk7CiAgICAgdm9pZCByZWplY3Rp
b25UaW1lckZpcmVkKCk7CkBAIC05MCw5ICs4MSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
UmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZVJlcXVlc3QodWludDY0
X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyZ1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbklkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhdWRpb0RldmljZVVJRHMsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiB2aWRlb0RldmljZVVJRHMpOwogICAgIHZvaWQgZGVueVJlcXVl
c3QodWludDY0X3QgdXNlck1lZGlhSUQsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6
OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiwgY29uc3QgU3RyaW5nJiBpbnZhbGlkQ29uc3Ry
YWludCk7Ci0KLSAgICB2b2lkIGdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKHVpbnQ2NF90IHVz
ZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94
eTo6Q29tcGxldGlvbkhhbmRsZXImJiwgY29uc3QgU3RyaW5nJiZ1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVu
dGlmaWVyKTsKLQorICAgIFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eT4gY3JlYXRl
VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrKHVpbnQ2NF90IHVzZXJNZWRpYUlEKTsKICAgICB2b2lk
IHN5bmNXaXRoV2ViQ29yZVByZWZzKCkgY29uc3Q7CiAKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBS
ZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4+IG1fcGVuZGluZ1VzZXJNZWRp
YVJlcXVlc3RzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0
cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuY3BwCmluZGV4IGM1ZDI3MDlhMzc4YjEzZDZlYjRiZWU5ZmY1NGM3Yjc0YTdmMmE0MzguLmZh
M2JkYWNiZjZmOWM1MWQ2ZWNjMzY4ODczYzZhYjI3Yjg5OWQ4NzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFt
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKQEAgLTE1NCwxNCArMTU0LDE0
IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpyZW1vdmVNZWRpYVJl
cXVlc3RGcm9tTWFwcyhVc2VyTWVkaWFSZXF1CiAgICAgbV91c2VyTWVkaWFSZXF1ZXN0VG9JRE1h
cC5yZW1vdmUoJnJlcXVlc3QpOwogfQogCi12b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcjo6dXNlck1lZGlhQWNjZXNzV2FzR3JhbnRlZCh1aW50NjRfdCByZXF1ZXN0SUQsIGNv
bnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQs
IGNvbnN0IFN0cmluZyYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KQordm9pZCBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50ZWQodWludDY0
X3QgcmVxdWVzdElELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcm
IHZpZGVvRGV2aWNlVUlEKQogewogICAgIGF1dG8gcmVxdWVzdCA9IG1faWRUb1VzZXJNZWRpYVJl
cXVlc3RNYXAudGFrZShyZXF1ZXN0SUQpOwogICAgIGlmICghcmVxdWVzdCkKICAgICAgICAgcmV0
dXJuOwogICAgIHJlbW92ZU1lZGlhUmVxdWVzdEZyb21NYXBzKCpyZXF1ZXN0KTsKIAotICAgIHJl
cXVlc3QtPmFsbG93KGF1ZGlvRGV2aWNlVUlELCB2aWRlb0RldmljZVVJRCwgZGV2aWNlSWRlbnRp
Zmllckhhc2hTYWx0KTsKKyAgICByZXF1ZXN0LT5hbGxvdyhhdWRpb0RldmljZVVJRCwgdmlkZW9E
ZXZpY2VVSUQpOwogfQogCiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6
dXNlck1lZGlhQWNjZXNzV2FzRGVuaWVkKHVpbnQ2NF90IHJlcXVlc3RJRCwgV2ViQ29yZTo6VXNl
ck1lZGlhUmVxdWVzdDo6TWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24gcmVhc29uLCBjb25zdCBTdHJp
bmcmIGludmFsaWRDb25zdHJhaW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyLmgKaW5kZXggYThkZmZhZGE5NzJjNTVjODQxNDAzZGFlNDBjMjk3ZjI2Y2M2
MGJlOS4uNmI0NDFmMTU2NTM3MGUwNjYxMGY3MzhjZDljYTZjZWQxZWFkZmE1MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlh
U3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCkBAIC00NSw3ICs0NSw3
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc3RhcnRVc2VyTWVkaWFSZXF1ZXN0KFdlYkNvcmU6OlVz
ZXJNZWRpYVJlcXVlc3QmKTsKICAgICB2b2lkIGNhbmNlbFVzZXJNZWRpYVJlcXVlc3QoV2ViQ29y
ZTo6VXNlck1lZGlhUmVxdWVzdCYpOwotICAgIHZvaWQgdXNlck1lZGlhQWNjZXNzV2FzR3JhbnRl
ZCh1aW50NjRfdCwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiB2
aWRlb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpOwor
ICAgIHZvaWQgdXNlck1lZGlhQWNjZXNzV2FzR3JhbnRlZCh1aW50NjRfdCwgY29uc3QgU3RyaW5n
JiBhdWRpb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZVVJRCk7CiAgICAgdm9p
ZCB1c2VyTWVkaWFBY2Nlc3NXYXNEZW5pZWQodWludDY0X3QsIFdlYkNvcmU6OlVzZXJNZWRpYVJl
cXVlc3Q6Ok1lZGlhQWNjZXNzRGVuaWFsUmVhc29uLCBjb25zdCBTdHJpbmcmKTsKIAogICAgIHZv
aWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzKFdlYkNvcmU6Ok1lZGlhRGV2aWNlc0VudW1lcmF0aW9u
UmVxdWVzdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCmluZGV4IDU4YWQ2ZjM1MzVhZTY2YzBjMTMzMDk2ZDg5OTBmNmVjMDJmMTEwNjkuLjE1M2U0
Y2VhNDVhMzRmZDdkYjlmYzJjZDkzYWJiM2RiMTY3MWUzNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM4NjQsOSArMzg2NCw5IEBAIHZv
aWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50
NjRfdCBub3RpZmljYXRpb25JRCwKIH0KIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi12b2lk
IFdlYlBhZ2U6OnVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50ZWQodWludDY0X3QgdXNlck1lZGlhSUQs
IGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VV
SUQsIGNvbnN0IFN0cmluZyYgbWVkaWFEZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpCit2b2lkIFdl
YlBhZ2U6OnVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50ZWQodWludDY0X3QgdXNlck1lZGlhSUQsIGNv
bnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQp
CiB7Ci0gICAgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXItPnVzZXJNZWRpYUFj
Y2Vzc1dhc0dyYW50ZWQodXNlck1lZGlhSUQsIGF1ZGlvRGV2aWNlVUlELCB2aWRlb0RldmljZVVJ
RCwgbWVkaWFEZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpOworICAgIG1fdXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLT51c2VyTWVkaWFBY2Nlc3NXYXNHcmFudGVkKHVzZXJNZWRpYUlE
LCBhdWRpb0RldmljZVVJRCwgdmlkZW9EZXZpY2VVSUQpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnVz
ZXJNZWRpYUFjY2Vzc1dhc0RlbmllZCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgcmVh
c29uLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBhMDRmZmU4NTliN2FmY2M1MDNkMThiYjM1MTBhYWZi
YTExOGQyYzI0Li4yYzZkOGI4OGU1MjU2Mzk2OGNkZDUwNzY2ZjgyMTQxNjJiMTFhNGMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTExNzQsNyAr
MTE3NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlz
c2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpOwogCiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICB2b2lkIHVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50
ZWQodWludDY0X3QgdXNlck1lZGlhSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQsIGNv
bnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgbWVkaWFEZXZpY2VJZGVu
dGlmaWVySGFzaFNhbHQpOworICAgIHZvaWQgdXNlck1lZGlhQWNjZXNzV2FzR3JhbnRlZCh1aW50
NjRfdCB1c2VyTWVkaWFJRCwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCwgY29uc3QgU3Ry
aW5nJiB2aWRlb0RldmljZVVJRCk7CiAgICAgdm9pZCB1c2VyTWVkaWFBY2Nlc3NXYXNEZW5pZWQo
dWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IHJlYXNvbiwgU3RyaW5nIGludmFsaWRDb25z
dHJhaW50KTsKIAogICAgIHZvaWQgZGlkQ29tcGxldGVNZWRpYURldmljZUVudW1lcmF0aW9uKHVp
bnQ2NF90IHVzZXJNZWRpYUlELCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4m
IGRldmljZXMsIGNvbnN0IFN0cmluZyYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0LCBib29sIG9y
aWdpbkhhc1BlcnNpc3RlbnRBY2Nlc3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCAyMmY0ZWRiNTkyYjNiZWZj
YjU2NDk2Njk3Njc5YjEyMjFkYzRkZGQ4Li5lZjExNTEzMzBmMmNmOTk0NWE0MGQxMjQ1MTZhOTgx
M2E0YmVhMmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMjk4LDcgKzI5OCw3IEBAIG1lc3NhZ2VzIC0+IFdl
YlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICAj
IE1lZGlhU3RlYW0KLSAgICBVc2VyTWVkaWFBY2Nlc3NXYXNHcmFudGVkKHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCBTdHJpbmcgYXVkaW9EZXZpY2VVSUQsIFN0cmluZyB2aWRlb0RldmljZVVJRCwgU3Ry
aW5nIG1lZGlhRGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KQorICAgIFVzZXJNZWRpYUFjY2Vzc1dh
c0dyYW50ZWQodWludDY0X3QgdXNlck1lZGlhSUQsIFN0cmluZyBhdWRpb0RldmljZVVJRCwgU3Ry
aW5nIHZpZGVvRGV2aWNlVUlEKQogICAgIFVzZXJNZWRpYUFjY2Vzc1dhc0RlbmllZCh1aW50NjRf
dCB1c2VyTWVkaWFJRCwgdWludDY0X3QgcmVhc29uLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnQp
CiAgICAgRGlkQ29tcGxldGVNZWRpYURldmljZUVudW1lcmF0aW9uKHVpbnQ2NF90IHVzZXJNZWRp
YUlELCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gZGV2aWNlcywgU3RyaW5nIG1lZGlh
RGV2aWNlSWRlbnRpZmllckhhc2hTYWx0LCBib29sIGhhc1BlcnNpc3RlbnRBY2Nlc3MpCiAjaWYg
RU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggM2Uz
NWMyNzU1ZGI5OGUyZjMyZDIxZDQ1NDAxNThmMjA5Y2Q0NzdhNi4uYTkzNzM3ZTkwZjlmNWMyYzhj
YzVkOWRhZDk3Y2I0MmVmYzVmMDA1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTIxMiwx
MSArMjEyLDE1IEBAIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjpjcmVhdGVDYXB0dXJlU291cmNlKGNvbnN0CiAgICAgICAgIHJldHVybiB7IH07
CiAKICAgICB1aW50NjRfdCBpZCA9IG5leHRTZXNzaW9uSUQoKTsKKyAgICBNZWRpYUNvbnN0cmFp
bnRzRGF0YSBjb25zdHJhaW50c0RhdGE7CisgICAgY29uc3RyYWludHNEYXRhLm1hbmRhdG9yeUNv
bnN0cmFpbnRzID0gY29uc3RyYWludHMtPm1hbmRhdG9yeUNvbnN0cmFpbnRzKCk7CisgICAgY29u
c3RyYWludHNEYXRhLmFkdmFuY2VkQ29uc3RyYWludHMgPSBjb25zdHJhaW50cy0+YWR2YW5jZWRD
b25zdHJhaW50cygpOworICAgIGNvbnN0cmFpbnRzRGF0YS5pc1ZhbGlkID0gY29uc3RyYWludHMt
PmlzVmFsaWQoKTsKICAgICBib29sIHN1Y2NlZWRlZDsKIAogICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyBzZXR0aW5nczsKICAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOwotICAgIGlmICgh
bV9wcm9jZXNzLnNlbmRTeW5jKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoaWQsIGRl
dmljZUlELCBzb3VyY2VUeXBlLCAqY29uc3RyYWludHMpLCBNZXNzYWdlczo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENv
bnN0cmFpbnRzOjpSZXBseShzdWNjZWVkZWQsIGVycm9yTWVzc2FnZSwgc2V0dGluZ3MpLCAwKSkK
KyAgICBpZiAoIW1fcHJvY2Vzcy5zZW5kU3luYyhNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFp
bnRzKGlkLCBkZXZpY2VJRCwgc291cmNlVHlwZSwgY29uc3RyYWludHNEYXRhKSwgTWVzc2FnZXM6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVy
ZURldmljZVdpdGhDb25zdHJhaW50czo6UmVwbHkoc3VjY2VlZGVkLCBlcnJvck1lc3NhZ2UsIHNl
dHRpbmdzKSwgMCkpCiAgICAgICAgIHJldHVybiBXVEZNb3ZlKGVycm9yTWVzc2FnZSk7CiAKICAg
ICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgU291cmNlKFN0cmluZzo6bnVtYmVyKGlkKSwg
c291cmNlVHlwZSwgZW1wdHlTdHJpbmcoKSwgaWQsICp0aGlzKSk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjgwMGYyMDY2
NGE3MDhjNzcwZDZhMTdlYzE1NDdjNDJjZTY5NTAzZS4uOGVmMTIxNDk1YmFmOTQ2ZTVmNjM4YmZl
Njg2YTI0YmNlNDc3M2VkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA1LTA5ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMjE2NTQ1LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTcxODg5CisKKyAgICAgICAgQ2F1c2VkIGEgdGVzdCBmYWlsdXJlIChS
ZXF1ZXN0ZWQgYnkgZXJpY19jYXJsc29uIG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVk
IGNoYW5nZXNldDoKKworICAgICAgICAiW01lZGlhU3RyZWFtXSBkZXZpY2VJZCBjb25zdHJhaW50
IGRvZXNuJ3Qgd29yayB3aXRoCisgICAgICAgIGdldFVzZXJNZWRpYSIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTg3NworICAgICAgICBodHRwOi8v
dHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMTY1NDUKKwogMjAxNy0wNS0wOSAgWmFsYW4gQnVq
dGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIHJlc2V0Rmxvd1RocmVhZENvbnRhaW5p
bmdCbG9ja0FuZENoaWxkSW5mb0luY2x1ZGluZ0Rlc2NlbmRhbnRzIHNob3VsZCBub3QgaWdub3Jl
IFJlbmRlckVsZW1lbnQgc3VidHJlZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL2dldC11c2VyLW1lZGlhLWRldmljZS1pZC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldC11c2VyLW1lZGlhLWRldmljZS1pZC1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQxODdiNTQ4YWM3MDc5ZjBlYzMzZWRk
OTUxMDM0YWMzYzc2MDg1NDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXQtdXNlci1tZWRpYS1kZXZp
Y2UtaWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0KLVBBU1Mg
Q29sbGVjdCBkZXZpY2UgSURzIAotUEFTUyBQYXNzIGRldmljZSBJRHMgYXMgZXhhY3QgY29uc3Ry
YWludHMgCi1QQVNTIFBhc3MgZGV2aWNlIElEcyBhcyBvcHRpb25hbCBjb25zdHJhaW50cyAKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXQtdXNlci1tZWRpYS1k
ZXZpY2UtaWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0LXVzZXItbWVk
aWEtZGV2aWNlLWlkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhhMGQ0MThj
YjhiOTJjZWIwMTZkYTIyNjI3ZDM5OWZlZThiOGM3MzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXQt
dXNlci1tZWRpYS1kZXZpY2UtaWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Ci0gICAgPHRpdGxlPlRlc3QgcGFzc2luZyBjYXB0dXJlIGRldmljZSBJRHMgdG8gZ2V0VXNl
ck1lZGlhPC90aXRsZT4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0PgotICAgIGxldCBkZXZpY2VJ
ZHMgPSBbXTsKLQotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5l
ci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOwotCi0gICAgcHJvbWlzZV90ZXN0KCh0ZXN0
KSA9PiB7Ci0gICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURl
dmljZXMoKQotICAgICAgICAgICAgLnRoZW4oKGRldmljZXMpID0+IHsKLSAgICAgICAgICAgICAg
ICBkZXZpY2VzLmZvckVhY2goKGRldmljZSkgPT4gewotICAgICAgICAgICAgICAgICAgICBsZXQg
a2luZCA9IGRldmljZS5raW5kID09ICJhdWRpb2lucHV0IiA/ICJhdWRpbyIgOiAidmlkZW8iOwot
ICAgICAgICAgICAgICAgICAgICBkZXZpY2VJZHMucHVzaCh7IHR5cGU6IGtpbmQsIGlkIDogZGV2
aWNlLmRldmljZUlkfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAg
ICB9LCAiQ29sbGVjdCBkZXZpY2UgSURzIik7Ci0gICAgCi0gICAgbGV0IGNvbnN0cmFpbnRzID0g
eyB9OwotCi0gICAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7Ci0gICAgICAgIGRldmljZUlkcy5m
b3JFYWNoKChpbmZvKSA9PiB7Ci0gICAgICAgICAgICBjb25zdHJhaW50c1tpbmZvLnR5cGVdID0g
eyBkZXZpY2VJZDogeyBleGFjdDogaW5mby5pZCB9IH07Ci0gICAgICAgIH0pOwotICAgIAotICAg
ICAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoY29uc3RyYWlu
dHMpCi0gICAgICAgICAgICAudGhlbigoc3RyZWFtKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgsIDEsICJjb3JyZWN0IG51
bWJlciBvZiBhdWRpbyB0cmFja3MiKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHN0
cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCwgMSwgImNvcnJlY3QgbnVtYmVyIG9mIGF1ZGlv
IHRyYWNrcyIpOwotICAgICAgICAgICAgfSkKLQotICAgIH0sICJQYXNzIGRldmljZSBJRHMgYXMg
ZXhhY3QgY29uc3RyYWludHMiKTsKLSAgICAKLSAgICBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsK
LSAgICAgICAgZGV2aWNlSWRzLmZvckVhY2goKGluZm8pID0+IHsKLSAgICAgICAgICAgIGNvbnN0
cmFpbnRzW2luZm8udHlwZV0gPSB7IGRldmljZUlkOiBpbmZvLmlkIH07Ci0gICAgICAgIH0pOwot
ICAgIAotICAgICAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEo
Y29uc3RyYWludHMpCi0gICAgICAgICAgICAudGhlbigoc3RyZWFtKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgsIDEsICJj
b3JyZWN0IG51bWJlciBvZiBhdWRpbyB0cmFja3MiKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCwgMSwgImNvcnJlY3QgbnVtYmVy
IG9mIGF1ZGlvIHRyYWNrcyIpOwotICAgICAgICAgICAgfSkKLQotICAgIH0sICJQYXNzIGRldmlj
ZSBJRHMgYXMgb3B0aW9uYWwgY29uc3RyYWludHMiKTsKLQotICAgIDwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHk+Ci08L2JvZHk+Ci08L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>