<?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>203133</bug_id>
          
          <creation_ts>2019-10-17 21:06:59 -0700</creation_ts>
          <short_desc>[ASAN] Fix WebGPU tests after r250258</short_desc>
          <delta_ts>2019-10-18 17:44:37 -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>WebGPU</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>hi</cc>
    
    <cc>jlewis3</cc>
    
    <cc>joepeck</cc>
    
    <cc>justin_fan</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1581279</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-17 21:06:59 -0700</bug_when>
    <thetext>```
    ASAN=YES make debug
    ASAN=YES run-webkit-tests --debug --time-out-ms=100000 --exit-after-n-failures=1 LayoutTests/webgpu/
```

Eventually, one of the tests will fail and result in a &quot;attempting free on address which was not malloc()-ed&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581280</commentid>
    <comment_count>1</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-17 21:07:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/56379008&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581281</commentid>
    <comment_count>2</comment_count>
      <attachid>381266</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-17 21:10:15 -0700</bug_when>
    <thetext>Created attachment 381266
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581572</commentid>
    <comment_count>3</comment_count>
      <attachid>381266</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-10-18 15:43:39 -0700</bug_when>
    <thetext>Comment on attachment 381266
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=381266&amp;action=review

r=me

&gt; Source/WebCore/platform/graphics/gpu/GPUObjectBase.h:43
&gt; +

Bad newline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581584</commentid>
    <comment_count>4</comment_count>
      <attachid>381341</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-18 16:09:57 -0700</bug_when>
    <thetext>Created attachment 381341
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581644</commentid>
    <comment_count>5</comment_count>
      <attachid>381341</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-18 17:44:35 -0700</bug_when>
    <thetext>Comment on attachment 381341
Patch

Clearing flags on attachment: 381341

Committed r251315: &lt;https://trac.webkit.org/changeset/251315&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581645</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-18 17:44:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381266</attachid>
            <date>2019-10-17 21:10:15 -0700</date>
            <delta_ts>2019-10-18 16:09:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>203133.diff</filename>
            <type>text/plain</type>
            <size>26066</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3MjliMDFlZjUwYi4uNGY1NjJkNDgzNTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAxOS0xMC0xNyAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+
CisKKyAgICAgICAgW0FTQU5dIEZpeCBXZWJHUFUgdGVzdHMgYWZ0ZXIgcjI1MDI1OAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMTMzCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS81NjM3OTAwOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVPYmplY3RCYXNl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVPYmplY3RCYXNlOjp+R1BVT2JqZWN0QmFzZSk6IEFk
ZGVkLgorICAgICAgICBBZGQgYSBkZWZhdWx0IHZpcnR1YWwgZGVzdHJ1Y3RvciBzaW5jZSB0aGlz
IGNsYXNzIGNsYXNzIGlzIHRoZSBvbmUgdGhhdCBpcyBgUmVmQ291bnRlZGAgYW5kCisgICAgICAg
IHRoZSBgV2ViR1BVUGlwZWxpbmVgIHN1YmNsYXNzIGlzIHZpcnR1YWwuCisKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZS5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BV
UGlwZWxpbmU6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdQVVBpcGVsaW5lOjpXZWJHUFVQaXBlbGluZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
UFVQaXBlbGluZTo6Y29udGV4dERlc3Ryb3llZCk6IEFkZGVkLgorICAgICAgICBNYWtlIGBXZWJH
UFVQaXBlbGluZWAgYSBzdWJjbGFzcyBvZiBgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXJgIHNv
IHRoYXQgdGhlIHJhdyBwb2ludGVyIHRvCisgICAgICAgIHRoZSBhc3NvY2lhdGVkIGBTY3JpcHRF
eGVjdXRpb25Db250ZXh0YCBpcyBwcm9wZXJseSBjbGVhcmVkIGFuZCBpc24ndCBVQUZkLgorCisg
ICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmg6CisgICAgICAg
ICogTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdQVUNvbXB1dGVQaXBlbGluZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdQVUNvbXB1dGVQaXBlbGluZTo6V2ViR1BVQ29tcHV0ZVBpcGVsaW5lKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkdQVUNvbXB1dGVQaXBlbGluZTo6Y2xvbmVTaGFkZXJNb2R1bGVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdQVUNvbXB1dGVQaXBlbGluZTo6cmVjb21waWxlKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5oOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BV
UmVuZGVyUGlwZWxpbmU6OldlYkdQVVJlbmRlclBpcGVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdQVVJlbmRlclBpcGVsaW5lOjpjbG9uZVNoYWRlck1vZHVsZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR1BVUmVuZGVyUGlwZWxpbmU6OnJlY29tcGlsZSk6CisgICAgICAgICogTW9kdWxl
cy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVURldmlj
ZTo6Y3JlYXRlUmVuZGVyUGlwZWxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVRGV2aWNl
OjpjcmVhdGVDb21wdXRlUGlwZWxpbmUpOgorICAgICAgICBSZXdvcmsgaG93IFdlYiBJbnNwZWN0
b3IgcHJlc2VydmVzIHJlbGF0ZWQgc2hhZGVyIG1vZHVsZXMgc28gdGhhdCB0aGVyZSBpc24ndCBh
cyBtdWNoIHdhc3RlZAorICAgICAgICBzcGFjZSBpbiB0aGUgY2xhc3MgbGF5b3V0LCBhcyB3ZSBj
YW4gdXNlIHRoZSBgUmVmUHRyYCBpdHNlbGYgaW5zdGVhZCBvZiBhbiBgT3B0aW9uYWxgLgorCisg
ICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyLmlkbDoKKyAgICAgICAgTm93IHRo
YXQgYEdQVU9iamVjdEJhc2VgIGhhcyBhIHZpcnR1YWwgZGVzdHJ1Y3RvciwgaXQgaGFzIGEgdnRh
YmxlLCB3aGljaCBtZWFucyB0aGF0IHRoaXMKKyAgICAgICAgb2JqZWN0IGFsc28gZG9lcyBhbmQg
dGhlcmVmb3JlIGNhbm5vdCBiZSBtYXJrZWQgd2l0aCBgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJs
ZWAuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpzaGFkZXJGb3JUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclNoYWRlclByb2dyYW06OnJlcXVlc3RTaGFkZXJTb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6dXBkYXRlU2hhZGVyKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclNoYWRlclByb2dyYW06OmJ1aWxkT2JqZWN0Rm9yU2hhZGVyUHJvZ3JhbSk6
CisKIDIwMTktMTAtMTcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFNpbmNSZXNhbXBsZXIgZG9lcyBub3QgbmVlZCB0byBjcmVhdGUgYSBuZXcgQXVkaW9CdXMg
Zm9yIGVhY2ggY29uc3VtZVNvdXJjZSBjYWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVQnVmZmVyLmlkbAppbmRleCA0YjhkNjJlMjU2NS4uZTEzM2RkNzEzNDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlci5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyLmlkbApAQCAt
MjksNyArMjksNiBAQCB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1NjQ7CiBbCiAgICAgQ29u
ZGl0aW9uYWw9V0VCR1BVLAogICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVLAotICAgIEltcGxl
bWVudGF0aW9uTGFja3NWVGFibGUsCiAgICAgSW50ZXJmYWNlTmFtZT1HUFVCdWZmZXIKIF0gaW50
ZXJmYWNlIFdlYkdQVUJ1ZmZlciB7CiAgICAgUHJvbWlzZTxBcnJheUJ1ZmZlcj4gbWFwUmVhZEFz
eW5jKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVD
b21wdXRlUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
Q29tcHV0ZVBpcGVsaW5lLmNwcAppbmRleCA4YThjZjBkNzVkMy4uNmI4OTk0NTVjZGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGlu
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBp
cGVsaW5lLmNwcApAQCAtNDEsMTUgKzQxLDE1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
UmVmPFdlYkdQVUNvbXB1dGVQaXBlbGluZT4gV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpjcmVhdGUo
V2ViR1BVRGV2aWNlJiBkZXZpY2UsIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+JiYgcGlwZWxp
bmUsIEdQVUVycm9yU2NvcGVzJiBlcnJvclNjb3BlcywgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6
OlNoYWRlckRhdGE+IGNvbXB1dGVTaGFkZXIpCitSZWY8V2ViR1BVQ29tcHV0ZVBpcGVsaW5lPiBX
ZWJHUFVDb21wdXRlUGlwZWxpbmU6OmNyZWF0ZShXZWJHUFVEZXZpY2UmIGRldmljZSwgUmVmUHRy
PEdQVUNvbXB1dGVQaXBlbGluZT4mJiBwaXBlbGluZSwgR1BVRXJyb3JTY29wZXMmIGVycm9yU2Nv
cGVzLCBXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YSYmIGNvbXB1dGVTaGFkZXIpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lKGRldmljZSwgV1RGTW92
ZShwaXBlbGluZSksIGVycm9yU2NvcGVzLCBjb21wdXRlU2hhZGVyKSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lKGRldmljZSwgV1RGTW92ZShwaXBlbGlu
ZSksIGVycm9yU2NvcGVzLCBXVEZNb3ZlKGNvbXB1dGVTaGFkZXIpKSk7CiB9CiAKLVdlYkdQVUNv
bXB1dGVQaXBlbGluZTo6V2ViR1BVQ29tcHV0ZVBpcGVsaW5lKFdlYkdQVURldmljZSYgZGV2aWNl
LCBSZWZQdHI8R1BVQ29tcHV0ZVBpcGVsaW5lPiYmIHBpcGVsaW5lLCBHUFVFcnJvclNjb3BlcyYg
ZXJyb3JTY29wZXMsIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhPiBjb21wdXRl
U2hhZGVyKQorV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpXZWJHUFVDb21wdXRlUGlwZWxpbmUoV2Vi
R1BVRGV2aWNlJiBkZXZpY2UsIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+JiYgcGlwZWxpbmUs
IEdQVUVycm9yU2NvcGVzJiBlcnJvclNjb3BlcywgV2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGEm
JiBjb21wdXRlU2hhZGVyKQogICAgIDogV2ViR1BVUGlwZWxpbmUoZGV2aWNlLCBlcnJvclNjb3Bl
cykKICAgICAsIG1fY29tcHV0ZVBpcGVsaW5lKFdURk1vdmUocGlwZWxpbmUpKQotICAgICwgbV9j
b21wdXRlU2hhZGVyKGNvbXB1dGVTaGFkZXIpCisgICAgLCBtX2NvbXB1dGVTaGFkZXIoV1RGTW92
ZShjb21wdXRlU2hhZGVyKSkKIHsKIH0KIApAQCAtNTcsMjcgKzU3LDIwIEBAIFdlYkdQVUNvbXB1
dGVQaXBlbGluZTo6fldlYkdQVUNvbXB1dGVQaXBlbGluZSgpID0gZGVmYXVsdDsKIAogYm9vbCBX
ZWJHUFVDb21wdXRlUGlwZWxpbmU6OmNsb25lU2hhZGVyTW9kdWxlcyhjb25zdCBXZWJHUFVEZXZp
Y2UmIGRldmljZSkKIHsKLSAgICBpZiAobV9jb21wdXRlU2hhZGVyKSB7Ci0gICAgICAgIGlmIChh
dXRvJiB3ZWJHUFVDb21wdXRlU2hhZGVyTW9kdWxlID0gbV9jb21wdXRlU2hhZGVyLnZhbHVlKCku
bW9kdWxlKSB7Ci0gICAgICAgICAgICBjb25zdCBhdXRvJiBjb21wdXRlU291cmNlID0gd2ViR1BV
Q29tcHV0ZVNoYWRlck1vZHVsZS0+c291cmNlKCk7Ci0gICAgICAgICAgICB3ZWJHUFVDb21wdXRl
U2hhZGVyTW9kdWxlID0gV2ViR1BVU2hhZGVyTW9kdWxlOjpjcmVhdGUoR1BVU2hhZGVyTW9kdWxl
Ojp0cnlDcmVhdGUoZGV2aWNlLmRldmljZSgpLCB7IGNvbXB1dGVTb3VyY2UgfSksIGNvbXB1dGVT
b3VyY2UpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KKyAgICBpZiAobV9j
b21wdXRlU2hhZGVyLm1vZHVsZSkgeworICAgICAgICBjb25zdCBhdXRvJiBjb21wdXRlU291cmNl
ID0gbV9jb21wdXRlU2hhZGVyLm1vZHVsZS0+c291cmNlKCk7CisgICAgICAgIG1fY29tcHV0ZVNo
YWRlci5tb2R1bGUgPSBXZWJHUFVTaGFkZXJNb2R1bGU6OmNyZWF0ZShHUFVTaGFkZXJNb2R1bGU6
OnRyeUNyZWF0ZShkZXZpY2UuZGV2aWNlKCksIHsgY29tcHV0ZVNvdXJjZSB9KSwgY29tcHV0ZVNv
dXJjZSk7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKIGJvb2wgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpyZWNvbXBpbGUoY29uc3QgV2ViR1BVRGV2
aWNlJiBkZXZpY2UpCiB7Ci0gICAgaWYgKG1fY29tcHV0ZVBpcGVsaW5lICYmIG1fY29tcHV0ZVNo
YWRlcikgewotICAgICAgICBpZiAoYXV0byYgd2ViR1BVQ29tcHV0ZVNoYWRlck1vZHVsZSA9IG1f
Y29tcHV0ZVNoYWRlci52YWx1ZSgpLm1vZHVsZSkgewotICAgICAgICAgICAgLy8gUmVjcmVhdGUg
dGhlIHNoYWRlciBtb2R1bGUgc28gdGhhdCBtb2RpZmljYXRpb25zIHRvIGl0IHZpYSB0aGlzIHBp
cGVsaW5lIGRvbid0IGFmZmVjdAotICAgICAgICAgICAgLy8gb3RoZXIgcGlwZWxpbmVzIHRoYXQg
YWxzbyB1c2UgdGhlIHNhbWUgc2hhZGVyIG1vZHVsZS4KLQotICAgICAgICAgICAgaWYgKGF1dG8q
IGdwdUNvbXB1dGVTaGFkZXJNb2R1bGUgPSB3ZWJHUFVDb21wdXRlU2hhZGVyTW9kdWxlLT5tb2R1
bGUoKSkgewotICAgICAgICAgICAgICAgIEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvciBj
b21wdXRlU3RhZ2UobWFrZVJlZigqZ3B1Q29tcHV0ZVNoYWRlck1vZHVsZSksIHsgbV9jb21wdXRl
U2hhZGVyLnZhbHVlKCkuZW50cnlQb2ludCB9KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gbV9j
b21wdXRlUGlwZWxpbmUtPnJlY29tcGlsZShkZXZpY2UuZGV2aWNlKCksIFdURk1vdmUoY29tcHV0
ZVN0YWdlKSk7Ci0gICAgICAgICAgICB9CisgICAgaWYgKG1fY29tcHV0ZVBpcGVsaW5lICYmIG1f
Y29tcHV0ZVNoYWRlci5tb2R1bGUpIHsKKyAgICAgICAgaWYgKGF1dG8qIGdwdUNvbXB1dGVTaGFk
ZXJNb2R1bGUgPSBtX2NvbXB1dGVTaGFkZXIubW9kdWxlLT5tb2R1bGUoKSkgeworICAgICAgICAg
ICAgR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yIGNvbXB1dGVTdGFnZShtYWtlUmVmKCpn
cHVDb21wdXRlU2hhZGVyTW9kdWxlKSwgeyBtX2NvbXB1dGVTaGFkZXIuZW50cnlQb2ludCB9KTsK
KyAgICAgICAgICAgIHJldHVybiBtX2NvbXB1dGVQaXBlbGluZS0+cmVjb21waWxlKGRldmljZS5k
ZXZpY2UoKSwgV1RGTW92ZShjb21wdXRlU3RhZ2UpKTsKICAgICAgICAgfQogICAgIH0KICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVDb21wdXRlUGlwZWxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVUNvbXB1dGVQaXBlbGluZS5oCmluZGV4IDY1YWU0MTFhMzI4Li5iODQ3MTM1MmUyOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBpcGVs
aW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tcHV0ZVBp
cGVsaW5lLmgKQEAgLTM2LDI5ICszNiwzMCBAQCBjbGFzcyBHUFVDb21wdXRlUGlwZWxpbmU7CiBj
bGFzcyBHUFVQaXBlbGluZTsKIGNsYXNzIEdQVUVycm9yU2NvcGVzOwogY2xhc3MgV2ViR1BVRGV2
aWNlOworY2xhc3MgV2ViR1BVU2hhZGVyTW9kdWxlOwogCiBjbGFzcyBXZWJHUFVDb21wdXRlUGlw
ZWxpbmUgZmluYWwgOiBwdWJsaWMgV2ViR1BVUGlwZWxpbmUgewogcHVibGljOgogICAgIHZpcnR1
YWwgfldlYkdQVUNvbXB1dGVQaXBlbGluZSgpOwogCi0gICAgc3RhdGljIFJlZjxXZWJHUFVDb21w
dXRlUGlwZWxpbmU+IGNyZWF0ZShXZWJHUFVEZXZpY2UmLCBSZWZQdHI8R1BVQ29tcHV0ZVBpcGVs
aW5lPiYmLCBHUFVFcnJvclNjb3BlcyYsIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJE
YXRhPiBjb21wdXRlU2hhZGVyKTsKKyAgICBzdGF0aWMgUmVmPFdlYkdQVUNvbXB1dGVQaXBlbGlu
ZT4gY3JlYXRlKFdlYkdQVURldmljZSYsIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+JiYsIEdQ
VUVycm9yU2NvcGVzJiwgV2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGEmJiBjb21wdXRlU2hhZGVy
KTsKIAogICAgIGJvb2wgaXNDb21wdXRlUGlwZWxpbmUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CiAKICAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBjb21wdXRlUGlwZWxpbmUoKTsg
fQogICAgIGNvbnN0IEdQVUNvbXB1dGVQaXBlbGluZSogY29tcHV0ZVBpcGVsaW5lKCkgY29uc3Qg
eyByZXR1cm4gbV9jb21wdXRlUGlwZWxpbmUuZ2V0KCk7IH0KLSAgICBPcHRpb25hbDxXZWJHUFVQ
aXBlbGluZTo6U2hhZGVyRGF0YT4gY29tcHV0ZVNoYWRlcigpIGNvbnN0IHsgcmV0dXJuIG1fY29t
cHV0ZVNoYWRlcjsgfQorICAgIFJlZlB0cjxXZWJHUFVTaGFkZXJNb2R1bGU+IGNvbXB1dGVTaGFk
ZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbXB1dGVTaGFkZXIubW9kdWxlOyB9CiAKICAgICBib29s
IGNsb25lU2hhZGVyTW9kdWxlcyhjb25zdCBXZWJHUFVEZXZpY2UmKTsKICAgICBib29sIHJlY29t
cGlsZShjb25zdCBXZWJHUFVEZXZpY2UmKTsKIAogcHJpdmF0ZToKLSAgICBXZWJHUFVDb21wdXRl
UGlwZWxpbmUoV2ViR1BVRGV2aWNlJiwgUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4mJiwgR1BV
RXJyb3JTY29wZXMmLCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gY29tcHV0
ZVNoYWRlcik7CisgICAgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lKFdlYkdQVURldmljZSYsIFJlZlB0
cjxHUFVDb21wdXRlUGlwZWxpbmU+JiYsIEdQVUVycm9yU2NvcGVzJiwgV2ViR1BVUGlwZWxpbmU6
OlNoYWRlckRhdGEmJiBjb21wdXRlU2hhZGVyKTsKIAogICAgIFJlZlB0cjxHUFVDb21wdXRlUGlw
ZWxpbmU+IG1fY29tcHV0ZVBpcGVsaW5lOwogCiAgICAgLy8gUHJlc2VydmVkIGZvciBXZWIgSW5z
cGVjdG9yIHJlY29tcGlsYXRpb24uCi0gICAgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRl
ckRhdGE+IG1fY29tcHV0ZVNoYWRlcjsKKyAgICBXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YSBt
X2NvbXB1dGVTaGFkZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcAppbmRleCA2ZGM4ZGIzMTQw
Yy4uYzFiMzc1ZGFkZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVURldmljZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVRGV2aWNlLmNwcApAQCAtMjMzLDE3ICsyMzMsMTcgQEAgUmVmPFdlYkdQVVJlbmRlclBpcGVs
aW5lPiBXZWJHUFVEZXZpY2U6OmNyZWF0ZVJlbmRlclBpcGVsaW5lKGNvbnN0IFdlYkdQVVJlbmRl
clAKIAogICAgIGF1dG8gZ3B1RGVzY3JpcHRvciA9IGRlc2NyaXB0b3IudHJ5Q3JlYXRlR1BVUmVu
ZGVyUGlwZWxpbmVEZXNjcmlwdG9yKG1fZXJyb3JTY29wZXMpOwogICAgIGlmICghZ3B1RGVzY3Jp
cHRvcikKLSAgICAgICAgcmV0dXJuIFdlYkdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUoKnRoaXMs
IG51bGxwdHIsIG1fZXJyb3JTY29wZXMsIFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0KTsKKyAg
ICAgICAgcmV0dXJuIFdlYkdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUoKnRoaXMsIG51bGxwdHIs
IG1fZXJyb3JTY29wZXMsIHsgfSwgeyB9KTsKIAogICAgIGF1dG8gZ3B1UGlwZWxpbmUgPSBtX2Rl
dmljZS0+dHJ5Q3JlYXRlUmVuZGVyUGlwZWxpbmUoKmdwdURlc2NyaXB0b3IsIG1fZXJyb3JTY29w
ZXMpOwogCiAgICAgV2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGEgdmVydGV4U2hhZGVyID0geyBk
ZXNjcmlwdG9yLnZlcnRleFN0YWdlLm1vZHVsZSwgZGVzY3JpcHRvci52ZXJ0ZXhTdGFnZS5lbnRy
eVBvaW50IH07CiAKLSAgICBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gZnJh
Z21lbnRTaGFkZXI7CisgICAgV2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGEgZnJhZ21lbnRTaGFk
ZXI7CiAgICAgaWYgKGRlc2NyaXB0b3IuZnJhZ21lbnRTdGFnZSkKLSAgICAgICAgZnJhZ21lbnRT
aGFkZXIgPSB7IHsgZGVzY3JpcHRvci5mcmFnbWVudFN0YWdlLnZhbHVlKCkubW9kdWxlLCBkZXNj
cmlwdG9yLmZyYWdtZW50U3RhZ2UudmFsdWUoKS5lbnRyeVBvaW50IH0gfTsKKyAgICAgICAgZnJh
Z21lbnRTaGFkZXIgPSB7IGRlc2NyaXB0b3IuZnJhZ21lbnRTdGFnZS52YWx1ZSgpLm1vZHVsZSwg
ZGVzY3JpcHRvci5mcmFnbWVudFN0YWdlLnZhbHVlKCkuZW50cnlQb2ludCB9OwogCi0gICAgYXV0
byB3ZWJHUFVQaXBlbGluZSA9IFdlYkdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUoKnRoaXMsIFdU
Rk1vdmUoZ3B1UGlwZWxpbmUpLCBtX2Vycm9yU2NvcGVzLCB2ZXJ0ZXhTaGFkZXIsIGZyYWdtZW50
U2hhZGVyKTsKKyAgICBhdXRvIHdlYkdQVVBpcGVsaW5lID0gV2ViR1BVUmVuZGVyUGlwZWxpbmU6
OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShncHVQaXBlbGluZSksIG1fZXJyb3JTY29wZXMsIFdURk1v
dmUodmVydGV4U2hhZGVyKSwgV1RGTW92ZShmcmFnbWVudFNoYWRlcikpOwogICAgIGlmICh3ZWJH
UFVQaXBlbGluZS0+aXNWYWxpZCgpKQogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZENyZWF0ZVdlYkdQVVBpcGVsaW5lKCp0aGlzLCB3ZWJHUFVQaXBlbGluZS5nZXQoKSk7CiAg
ICAgcmV0dXJuIHdlYkdQVVBpcGVsaW5lOwpAQCAtMjU1LDEzICsyNTUsMTMgQEAgUmVmPFdlYkdQ
VUNvbXB1dGVQaXBlbGluZT4gV2ViR1BVRGV2aWNlOjpjcmVhdGVDb21wdXRlUGlwZWxpbmUoY29u
c3QgV2ViR1BVQ29tcHUKIAogICAgIGF1dG8gZ3B1RGVzY3JpcHRvciA9IGRlc2NyaXB0b3IudHJ5
Q3JlYXRlR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcihtX2Vycm9yU2NvcGVzKTsKICAgICBp
ZiAoIWdwdURlc2NyaXB0b3IpCi0gICAgICAgIHJldHVybiBXZWJHUFVDb21wdXRlUGlwZWxpbmU6
OmNyZWF0ZSgqdGhpcywgbnVsbHB0ciwgbV9lcnJvclNjb3BlcywgV1RGOjpudWxsb3B0KTsKKyAg
ICAgICAgcmV0dXJuIFdlYkdQVUNvbXB1dGVQaXBlbGluZTo6Y3JlYXRlKCp0aGlzLCBudWxscHRy
LCBtX2Vycm9yU2NvcGVzLCB7IH0pOwogCiAgICAgYXV0byBncHVQaXBlbGluZSA9IG1fZGV2aWNl
LT50cnlDcmVhdGVDb21wdXRlUGlwZWxpbmUoKmdwdURlc2NyaXB0b3IsIG1fZXJyb3JTY29wZXMp
OwogCiAgICAgV2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGEgY29tcHV0ZVNoYWRlciA9IHsgZGVz
Y3JpcHRvci5jb21wdXRlU3RhZ2UubW9kdWxlLCBkZXNjcmlwdG9yLmNvbXB1dGVTdGFnZS5lbnRy
eVBvaW50IH07CiAKLSAgICBhdXRvIHdlYkdQVVBpcGVsaW5lID0gV2ViR1BVQ29tcHV0ZVBpcGVs
aW5lOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUoZ3B1UGlwZWxpbmUpLCBtX2Vycm9yU2NvcGVzLCBj
b21wdXRlU2hhZGVyKTsKKyAgICBhdXRvIHdlYkdQVVBpcGVsaW5lID0gV2ViR1BVQ29tcHV0ZVBp
cGVsaW5lOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUoZ3B1UGlwZWxpbmUpLCBtX2Vycm9yU2NvcGVz
LCBXVEZNb3ZlKGNvbXB1dGVTaGFkZXIpKTsKICAgICBpZiAod2ViR1BVUGlwZWxpbmUtPmlzVmFs
aWQoKSkKICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJHUFVQ
aXBlbGluZSgqdGhpcywgd2ViR1BVUGlwZWxpbmUuZ2V0KCkpOwogICAgIHJldHVybiB3ZWJHUFVQ
aXBlbGluZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VVBpcGVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVs
aW5lLmNwcAppbmRleCA3YTEyMTU5OGYyOS4uZjMzYmFmNGZjOTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZS5jcHAKQEAgLTU3LDkgKzU3LDkg
QEAgTG9jayYgV2ViR1BVUGlwZWxpbmU6Omluc3RhbmNlc011dGV4KCkKIAogV2ViR1BVUGlwZWxp
bmU6OldlYkdQVVBpcGVsaW5lKFdlYkdQVURldmljZSYgZGV2aWNlLCBHUFVFcnJvclNjb3BlcyYg
ZXJyb3JTY29wZXMpCiAgICAgOiBHUFVPYmplY3RCYXNlKG1ha2VSZWYoZXJyb3JTY29wZXMpKQot
ICAgICwgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KGRldmljZS5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpCisgICAgLCBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcihkZXZpY2Uuc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKQogewotICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQp
OworICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogCiAgICAgewogICAgICAg
ICBMb2NrSG9sZGVyIGxvY2soaW5zdGFuY2VzTXV0ZXgoKSk7CkBAIC03OCw2ICs3OCwxMyBAQCBX
ZWJHUFVQaXBlbGluZTo6fldlYkdQVVBpcGVsaW5lKCkKICAgICB9CiB9CiAKK3ZvaWQgV2ViR1BV
UGlwZWxpbmU6OmNvbnRleHREZXN0cm95ZWQoKQoreworICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6d2lsbERlc3Ryb3lXZWJHUFVQaXBlbGluZSgqdGhpcyk7CisKKyAgICBDb250ZXh0RGVz
dHJ1Y3Rpb25PYnNlcnZlcjo6Y29udGV4dERlc3Ryb3llZCgpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmUuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lLmgKaW5kZXggYzQxYTFhOTAzZDIuLmQ3ZjEx
YTMzNjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQ
aXBlbGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVs
aW5lLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAKKyNpbmNsdWRl
ICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIkdQVU9iamVjdEJhc2Uu
aCIKICNpbmNsdWRlICJXZWJHUFVTaGFkZXJNb2R1bGUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgpAQCAtMzgsNyArMzksNyBAQCBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xh
c3MgR1BVRXJyb3JTY29wZXM7CiBjbGFzcyBXZWJHUFVEZXZpY2U7CiAKLWNsYXNzIFdlYkdQVVBp
cGVsaW5lIDogcHVibGljIEdQVU9iamVjdEJhc2UgeworY2xhc3MgV2ViR1BVUGlwZWxpbmUgOiBw
dWJsaWMgR1BVT2JqZWN0QmFzZSwgcHVibGljIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsK
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJHUFVQaXBlbGluZSgpOwogCkBAIC00OCw3ICs0OSw2
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJQaXBlbGluZSgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzQ29tcHV0ZVBpcGVsaW5lKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0ID0gMDsKIAogICAgIHN0cnVj
dCBTaGFkZXJEYXRhIHsKQEAgLTU5LDEwICs1OSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIGNsb25lU2hhZGVyTW9kdWxlcyhjb25zdCBXZWJHUFVEZXZpY2UmKSA9IDA7CiAgICAgdmly
dHVhbCBib29sIHJlY29tcGlsZShjb25zdCBXZWJHUFVEZXZpY2UmKSA9IDA7CiAKKyAgICB2b2lk
IGNvbnRleHREZXN0cm95ZWQoKSBmaW5hbDsKKwogcHJvdGVjdGVkOgogICAgIFdlYkdQVVBpcGVs
aW5lKFdlYkdQVURldmljZSYsIEdQVUVycm9yU2NvcGVzJik7Ci0KLSAgICBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVSZW5kZXJQaXBlbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVSZW5kZXJQaXBlbGluZS5jcHAKaW5kZXggMDJhYWJkYmYzMmEuLmU5MjljNTRmZDE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGlu
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlw
ZWxpbmUuY3BwCkBAIC00MSwxNiArNDEsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1S
ZWY8V2ViR1BVUmVuZGVyUGlwZWxpbmU+IFdlYkdQVVJlbmRlclBpcGVsaW5lOjpjcmVhdGUoV2Vi
R1BVRGV2aWNlJiBkZXZpY2UsIFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4mJiBwaXBlbGluZSwg
R1BVRXJyb3JTY29wZXMmIGVycm9yU2NvcGVzLCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hh
ZGVyRGF0YT4gdmVydGV4U2hhZGVyLCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0
YT4gZnJhZ21lbnRTaGFkZXIpCitSZWY8V2ViR1BVUmVuZGVyUGlwZWxpbmU+IFdlYkdQVVJlbmRl
clBpcGVsaW5lOjpjcmVhdGUoV2ViR1BVRGV2aWNlJiBkZXZpY2UsIFJlZlB0cjxHUFVSZW5kZXJQ
aXBlbGluZT4mJiBwaXBlbGluZSwgR1BVRXJyb3JTY29wZXMmIGVycm9yU2NvcGVzLCBXZWJHUFVQ
aXBlbGluZTo6U2hhZGVyRGF0YSYmIHZlcnRleFNoYWRlciwgV2ViR1BVUGlwZWxpbmU6OlNoYWRl
ckRhdGEmJiBmcmFnbWVudFNoYWRlcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJH
UFVSZW5kZXJQaXBlbGluZShkZXZpY2UsIFdURk1vdmUocGlwZWxpbmUpLCBlcnJvclNjb3Blcywg
dmVydGV4U2hhZGVyLCBmcmFnbWVudFNoYWRlcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFdlYkdQVVJlbmRlclBpcGVsaW5lKGRldmljZSwgV1RGTW92ZShwaXBlbGluZSksIGVycm9yU2Nv
cGVzLCBXVEZNb3ZlKHZlcnRleFNoYWRlciksIFdURk1vdmUoZnJhZ21lbnRTaGFkZXIpKSk7CiB9
CiAKLVdlYkdQVVJlbmRlclBpcGVsaW5lOjpXZWJHUFVSZW5kZXJQaXBlbGluZShXZWJHUFVEZXZp
Y2UmIGRldmljZSwgUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiYmIHBpcGVsaW5lLCBHUFVFcnJv
clNjb3BlcyYgZXJyb3JTY29wZXMsIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRh
PiB2ZXJ0ZXhTaGFkZXIsIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhPiBmcmFn
bWVudFNoYWRlcikKK1dlYkdQVVJlbmRlclBpcGVsaW5lOjpXZWJHUFVSZW5kZXJQaXBlbGluZShX
ZWJHUFVEZXZpY2UmIGRldmljZSwgUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiYmIHBpcGVsaW5l
LCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMsIFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRh
JiYgdmVydGV4U2hhZGVyLCBXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YSYmIGZyYWdtZW50U2hh
ZGVyKQogICAgIDogV2ViR1BVUGlwZWxpbmUoZGV2aWNlLCBlcnJvclNjb3BlcykKICAgICAsIG1f
cmVuZGVyUGlwZWxpbmUoV1RGTW92ZShwaXBlbGluZSkpCi0gICAgLCBtX3ZlcnRleFNoYWRlcih2
ZXJ0ZXhTaGFkZXIpCi0gICAgLCBtX2ZyYWdtZW50U2hhZGVyKGZyYWdtZW50U2hhZGVyKQorICAg
ICwgbV92ZXJ0ZXhTaGFkZXIoV1RGTW92ZSh2ZXJ0ZXhTaGFkZXIpKQorICAgICwgbV9mcmFnbWVu
dFNoYWRlcihXVEZNb3ZlKGZyYWdtZW50U2hhZGVyKSkKIHsKIH0KIApAQCAtNTgsNDUgKzU4LDM3
IEBAIFdlYkdQVVJlbmRlclBpcGVsaW5lOjp+V2ViR1BVUmVuZGVyUGlwZWxpbmUoKSA9IGRlZmF1
bHQ7CiAKIGJvb2wgV2ViR1BVUmVuZGVyUGlwZWxpbmU6OmNsb25lU2hhZGVyTW9kdWxlcyhjb25z
dCBXZWJHUFVEZXZpY2UmIGRldmljZSkKIHsKLSAgICBpZiAobV92ZXJ0ZXhTaGFkZXIpIHsKLSAg
ICAgICAgaWYgKGF1dG8mIHdlYkdQVVZlcnRleFNoYWRlck1vZHVsZSA9IG1fdmVydGV4U2hhZGVy
LnZhbHVlKCkubW9kdWxlKSB7Ci0gICAgICAgICAgICBib29sIHNoYXJlc1ZlcnRleEZyYWdtZW50
U2hhZGVyTW9kdWxlID0gbV9mcmFnbWVudFNoYWRlciAmJiBtX2ZyYWdtZW50U2hhZGVyLnZhbHVl
KCkubW9kdWxlID09IHdlYkdQVVZlcnRleFNoYWRlck1vZHVsZTsKKyAgICBpZiAobV92ZXJ0ZXhT
aGFkZXIubW9kdWxlKSB7CisgICAgICAgIGJvb2wgc2hhcmVzVmVydGV4RnJhZ21lbnRTaGFkZXJN
b2R1bGUgPSBtX2ZyYWdtZW50U2hhZGVyLm1vZHVsZSA9PSBtX3ZlcnRleFNoYWRlci5tb2R1bGU7
CiAKLSAgICAgICAgICAgIGNvbnN0IGF1dG8mIHZlcnRleFNvdXJjZSA9IHdlYkdQVVZlcnRleFNo
YWRlck1vZHVsZS0+c291cmNlKCk7Ci0gICAgICAgICAgICB3ZWJHUFVWZXJ0ZXhTaGFkZXJNb2R1
bGUgPSBXZWJHUFVTaGFkZXJNb2R1bGU6OmNyZWF0ZShHUFVTaGFkZXJNb2R1bGU6OnRyeUNyZWF0
ZShkZXZpY2UuZGV2aWNlKCksIHsgdmVydGV4U291cmNlIH0pLCB2ZXJ0ZXhTb3VyY2UpOworICAg
ICAgICBjb25zdCBhdXRvJiB2ZXJ0ZXhTb3VyY2UgPSBtX3ZlcnRleFNoYWRlci5tb2R1bGUtPnNv
dXJjZSgpOworICAgICAgICBtX3ZlcnRleFNoYWRlci5tb2R1bGUgPSBXZWJHUFVTaGFkZXJNb2R1
bGU6OmNyZWF0ZShHUFVTaGFkZXJNb2R1bGU6OnRyeUNyZWF0ZShkZXZpY2UuZGV2aWNlKCksIHsg
dmVydGV4U291cmNlIH0pLCB2ZXJ0ZXhTb3VyY2UpOwogCi0gICAgICAgICAgICBpZiAoIW1fZnJh
Z21lbnRTaGFkZXIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICAgICAg
IGlmIChhdXRvJiB3ZWJHUFVGcmFnbWVudFNoYWRlck1vZHVsZSA9IG1fZnJhZ21lbnRTaGFkZXIu
dmFsdWUoKS5tb2R1bGUpIHsKLSAgICAgICAgICAgICAgICBpZiAoc2hhcmVzVmVydGV4RnJhZ21l
bnRTaGFkZXJNb2R1bGUpCi0gICAgICAgICAgICAgICAgICAgIHdlYkdQVUZyYWdtZW50U2hhZGVy
TW9kdWxlID0gd2ViR1BVVmVydGV4U2hhZGVyTW9kdWxlOwotICAgICAgICAgICAgICAgIGVsc2Ug
ewotICAgICAgICAgICAgICAgICAgICBjb25zdCBhdXRvJiBmcmFnbWVudFNvdXJjZSA9IHdlYkdQ
VUZyYWdtZW50U2hhZGVyTW9kdWxlLT5zb3VyY2UoKTsKLSAgICAgICAgICAgICAgICAgICAgd2Vi
R1BVRnJhZ21lbnRTaGFkZXJNb2R1bGUgPSBXZWJHUFVTaGFkZXJNb2R1bGU6OmNyZWF0ZShHUFVT
aGFkZXJNb2R1bGU6OnRyeUNyZWF0ZShkZXZpY2UuZGV2aWNlKCksIHsgZnJhZ21lbnRTb3VyY2Ug
fSksIGZyYWdtZW50U291cmNlKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIGlmIChtX2ZyYWdtZW50U2hhZGVyLm1vZHVsZSkgeworICAg
ICAgICAgICAgaWYgKHNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyTW9kdWxlKQorICAgICAgICAg
ICAgICAgIG1fZnJhZ21lbnRTaGFkZXIubW9kdWxlID0gbV92ZXJ0ZXhTaGFkZXIubW9kdWxlOwor
ICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgY29uc3QgYXV0byYgZnJhZ21lbnRT
b3VyY2UgPSBtX2ZyYWdtZW50U2hhZGVyLm1vZHVsZS0+c291cmNlKCk7CisgICAgICAgICAgICAg
ICAgbV9mcmFnbWVudFNoYWRlci5tb2R1bGUgPSBXZWJHUFVTaGFkZXJNb2R1bGU6OmNyZWF0ZShH
UFVTaGFkZXJNb2R1bGU6OnRyeUNyZWF0ZShkZXZpY2UuZGV2aWNlKCksIHsgZnJhZ21lbnRTb3Vy
Y2UgfSksIGZyYWdtZW50U291cmNlKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQorCisgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgV2Vi
R1BVUmVuZGVyUGlwZWxpbmU6OnJlY29tcGlsZShjb25zdCBXZWJHUFVEZXZpY2UmIGRldmljZSkK
IHsKLSAgICBpZiAobV9yZW5kZXJQaXBlbGluZSAmJiBtX3ZlcnRleFNoYWRlcikgewotICAgICAg
ICBpZiAoYXV0byYgd2ViR1BVVmVydGV4U2hhZGVyTW9kdWxlID0gbV92ZXJ0ZXhTaGFkZXIudmFs
dWUoKS5tb2R1bGUpIHsKLSAgICAgICAgICAgIGlmIChhdXRvKiBncHVWZXJ0ZXhTaGFkZXJNb2R1
bGUgPSB3ZWJHUFVWZXJ0ZXhTaGFkZXJNb2R1bGUtPm1vZHVsZSgpKSB7Ci0gICAgICAgICAgICAg
ICAgR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNjcmlwdG9yIHZlcnRleFN0YWdlKG1ha2VSZWYoKmdw
dVZlcnRleFNoYWRlck1vZHVsZSksIHsgbV92ZXJ0ZXhTaGFkZXIudmFsdWUoKS5lbnRyeVBvaW50
IH0pOwotICAgICAgICAgICAgICAgIE9wdGlvbmFsPEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3Jp
cHRvcj4gZnJhZ21lbnRTdGFnZTsKLSAgICAgICAgICAgICAgICBpZiAobV9mcmFnbWVudFNoYWRl
cikgewotICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byYgd2ViR1BVRnJhZ21lbnRTaGFkZXJN
b2R1bGUgPSBtX2ZyYWdtZW50U2hhZGVyLnZhbHVlKCkubW9kdWxlKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoYXV0byogZ3B1RnJhZ21lbnRTaGFkZXJNb2R1bGUgPSB3ZWJHUFVGcmFn
bWVudFNoYWRlck1vZHVsZS0+bW9kdWxlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZnJhZ21lbnRTdGFnZSA9IEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvcihtYWtlUmVmKCpn
cHVGcmFnbWVudFNoYWRlck1vZHVsZSksIHsgbV9mcmFnbWVudFNoYWRlci52YWx1ZSgpLmVudHJ5
UG9pbnQgfSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIG1fcmVuZGVyUGlwZWxpbmUtPnJlY29tcGlsZShkZXZpY2UuZGV2
aWNlKCksIFdURk1vdmUodmVydGV4U3RhZ2UpLCBXVEZNb3ZlKGZyYWdtZW50U3RhZ2UpKTsKKyAg
ICBpZiAobV9yZW5kZXJQaXBlbGluZSAmJiBtX3ZlcnRleFNoYWRlci5tb2R1bGUpIHsKKyAgICAg
ICAgaWYgKGF1dG8qIGdwdVZlcnRleFNoYWRlck1vZHVsZSA9IG1fdmVydGV4U2hhZGVyLm1vZHVs
ZS0+bW9kdWxlKCkpIHsKKyAgICAgICAgICAgIEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRv
ciB2ZXJ0ZXhTdGFnZShtYWtlUmVmKCpncHVWZXJ0ZXhTaGFkZXJNb2R1bGUpLCB7IG1fdmVydGV4
U2hhZGVyLmVudHJ5UG9pbnQgfSk7CisgICAgICAgICAgICBPcHRpb25hbDxHUFVQcm9ncmFtbWFi
bGVTdGFnZURlc2NyaXB0b3I+IGZyYWdtZW50U3RhZ2U7CisgICAgICAgICAgICBpZiAobV9mcmFn
bWVudFNoYWRlci5tb2R1bGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byogZ3B1RnJhZ21l
bnRTaGFkZXJNb2R1bGUgPSBtX2ZyYWdtZW50U2hhZGVyLm1vZHVsZS0+bW9kdWxlKCkpCisgICAg
ICAgICAgICAgICAgICAgIGZyYWdtZW50U3RhZ2UgPSBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2Ny
aXB0b3IobWFrZVJlZigqZ3B1RnJhZ21lbnRTaGFkZXJNb2R1bGUpLCB7IG1fZnJhZ21lbnRTaGFk
ZXIuZW50cnlQb2ludCB9KTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBtX3Jl
bmRlclBpcGVsaW5lLT5yZWNvbXBpbGUoZGV2aWNlLmRldmljZSgpLCBXVEZNb3ZlKHZlcnRleFN0
YWdlKSwgV1RGTW92ZShmcmFnbWVudFN0YWdlKSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVUmVuZGVyUGlwZWxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VVJlbmRlclBpcGVsaW5lLmgKaW5kZXggNjJhNzBkMTRjNWYuLmI0NjBiMTM3OTNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5l
LmgKQEAgLTM2LDMxICszNiwzMiBAQCBjbGFzcyBHUFVQaXBlbGluZTsKIGNsYXNzIEdQVVJlbmRl
clBpcGVsaW5lOwogY2xhc3MgR1BVRXJyb3JTY29wZXM7CiBjbGFzcyBXZWJHUFVEZXZpY2U7Citj
bGFzcyBXZWJHUFVTaGFkZXJNb2R1bGU7CiAKIGNsYXNzIFdlYkdQVVJlbmRlclBpcGVsaW5lIGZp
bmFsIDogcHVibGljIFdlYkdQVVBpcGVsaW5lIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJH
UFVSZW5kZXJQaXBlbGluZSgpOwogCi0gICAgc3RhdGljIFJlZjxXZWJHUFVSZW5kZXJQaXBlbGlu
ZT4gY3JlYXRlKFdlYkdQVURldmljZSYsIFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4mJiwgR1BV
RXJyb3JTY29wZXMmLCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gdmVydGV4
U2hhZGVyLCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gZnJhZ21lbnRTaGFk
ZXIpOworICAgIHN0YXRpYyBSZWY8V2ViR1BVUmVuZGVyUGlwZWxpbmU+IGNyZWF0ZShXZWJHUFVE
ZXZpY2UmLCBSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+JiYsIEdQVUVycm9yU2NvcGVzJiwgV2Vi
R1BVUGlwZWxpbmU6OlNoYWRlckRhdGEmJiB2ZXJ0ZXhTaGFkZXIsIFdlYkdQVVBpcGVsaW5lOjpT
aGFkZXJEYXRhJiYgZnJhZ21lbnRTaGFkZXIpOwogCiAgICAgYm9vbCBpc1JlbmRlclBpcGVsaW5l
KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyBy
ZXR1cm4gcmVuZGVyUGlwZWxpbmUoKTsgfQogICAgIGNvbnN0IEdQVVJlbmRlclBpcGVsaW5lKiBy
ZW5kZXJQaXBlbGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyUGlwZWxpbmUuZ2V0KCk7IH0K
LSAgICBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gdmVydGV4U2hhZGVyKCkg
Y29uc3QgeyByZXR1cm4gbV92ZXJ0ZXhTaGFkZXI7IH0KLSAgICBPcHRpb25hbDxXZWJHUFVQaXBl
bGluZTo6U2hhZGVyRGF0YT4gZnJhZ21lbnRTaGFkZXIoKSBjb25zdCB7IHJldHVybiBtX2ZyYWdt
ZW50U2hhZGVyOyB9CisgICAgUmVmUHRyPFdlYkdQVVNoYWRlck1vZHVsZT4gdmVydGV4U2hhZGVy
KCkgY29uc3QgeyByZXR1cm4gbV92ZXJ0ZXhTaGFkZXIubW9kdWxlOyB9CisgICAgUmVmUHRyPFdl
YkdQVVNoYWRlck1vZHVsZT4gZnJhZ21lbnRTaGFkZXIoKSBjb25zdCB7IHJldHVybiBtX2ZyYWdt
ZW50U2hhZGVyLm1vZHVsZTsgfQogCiAgICAgYm9vbCBjbG9uZVNoYWRlck1vZHVsZXMoY29uc3Qg
V2ViR1BVRGV2aWNlJik7CiAgICAgYm9vbCByZWNvbXBpbGUoY29uc3QgV2ViR1BVRGV2aWNlJik7
CiAKIHByaXZhdGU6Ci0gICAgV2ViR1BVUmVuZGVyUGlwZWxpbmUoV2ViR1BVRGV2aWNlJiwgUmVm
UHRyPEdQVVJlbmRlclBpcGVsaW5lPiYmLCBHUFVFcnJvclNjb3BlcyYsIE9wdGlvbmFsPFdlYkdQ
VVBpcGVsaW5lOjpTaGFkZXJEYXRhPiB2ZXJ0ZXhTaGFkZXIsIE9wdGlvbmFsPFdlYkdQVVBpcGVs
aW5lOjpTaGFkZXJEYXRhPiBmcmFnbWVudFNoYWRlcik7CisgICAgV2ViR1BVUmVuZGVyUGlwZWxp
bmUoV2ViR1BVRGV2aWNlJiwgUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiYmLCBHUFVFcnJvclNj
b3BlcyYsIFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhJiYgdmVydGV4U2hhZGVyLCBXZWJHUFVQ
aXBlbGluZTo6U2hhZGVyRGF0YSYmIGZyYWdtZW50U2hhZGVyKTsKIAogICAgIFJlZlB0cjxHUFVS
ZW5kZXJQaXBlbGluZT4gbV9yZW5kZXJQaXBlbGluZTsKIAogICAgIC8vIFByZXNlcnZlZCBmb3Ig
V2ViIEluc3BlY3RvciByZWNvbXBpbGF0aW9uLgotICAgIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5l
OjpTaGFkZXJEYXRhPiBtX3ZlcnRleFNoYWRlcjsKLSAgICBPcHRpb25hbDxXZWJHUFVQaXBlbGlu
ZTo6U2hhZGVyRGF0YT4gbV9mcmFnbWVudFNoYWRlcjsKKyAgICBXZWJHUFVQaXBlbGluZTo6U2hh
ZGVyRGF0YSBtX3ZlcnRleFNoYWRlcjsKKyAgICBXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YSBt
X2ZyYWdtZW50U2hhZGVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0uY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0uY3BwCmluZGV4
IDExNTFiZjJjN2U0Li5lOTQyMzhiY2UyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcApAQCAtMTI2LDI3ICsxMjYsMjcgQEAg
c3RhdGljIFdlYkdMU2hhZGVyKiBzaGFkZXJGb3JUeXBlKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSwg
SW5zcGVjdG9yOjpQcm90b2NvbDo6Q2EKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdFQkdQVSkKLXN0
YXRpYyBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gc2hhZGVyRm9yVHlwZShX
ZWJHUFVQaXBlbGluZSYgcGlwZWxpbmUsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6U2hh
ZGVyVHlwZSBzaGFkZXJUeXBlKQorc3RhdGljIFJlZlB0cjxXZWJHUFVTaGFkZXJNb2R1bGU+IHNo
YWRlckZvclR5cGUoV2ViR1BVUGlwZWxpbmUmIHBpcGVsaW5lLCBJbnNwZWN0b3I6OlByb3RvY29s
OjpDYW52YXM6OlNoYWRlclR5cGUgc2hhZGVyVHlwZSkKIHsKICAgICBzd2l0Y2ggKHNoYWRlclR5
cGUpIHsKICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVyVHlwZTo6
Q29tcHV0ZToKICAgICAgICAgaWYgKGlzPFdlYkdQVUNvbXB1dGVQaXBlbGluZT4ocGlwZWxpbmUp
KQogICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0PFdlYkdQVUNvbXB1dGVQaXBlbGluZT4ocGlw
ZWxpbmUpLmNvbXB1dGVTaGFkZXIoKTsKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNh
bnZhczo6U2hhZGVyVHlwZTo6RnJhZ21lbnQ6CiAgICAgICAgIGlmIChpczxXZWJHUFVSZW5kZXJQ
aXBlbGluZT4ocGlwZWxpbmUpKQogICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0PFdlYkdQVVJl
bmRlclBpcGVsaW5lPihwaXBlbGluZSkuZnJhZ21lbnRTaGFkZXIoKTsKLSAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBjYXNlIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVyVHlwZTo6VmVydGV4OgogICAgICAgICBpZiAo
aXM8V2ViR1BVUmVuZGVyUGlwZWxpbmU+KHBpcGVsaW5lKSkKICAgICAgICAgICAgIHJldHVybiBk
b3duY2FzdDxXZWJHUFVSZW5kZXJQaXBlbGluZT4ocGlwZWxpbmUpLnZlcnRleFNoYWRlcigpOwot
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworICAgIHJldHVybiBudWxscHRyOwogfQogI2VuZGlmCiAKQEAgLTE2OCwxMCArMTY4LDggQEAg
U3RyaW5nIEluc3BlY3RvclNoYWRlclByb2dyYW06OnJlcXVlc3RTaGFkZXJTb3VyY2UoSW5zcGVj
dG9yOjpQcm90b2NvbDo6Q2FudmFzOjoKICNpZiBFTkFCTEUoV0VCR1BVKQogICAgICAgICBbJl0g
KHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8V2ViR1BVUGlwZWxpbmU+IHBpcGVsaW5lV3JhcHBlcikg
ewogICAgICAgICAgICAgYXV0byYgcGlwZWxpbmUgPSBwaXBlbGluZVdyYXBwZXIuZ2V0KCk7Ci0g
ICAgICAgICAgICBpZiAoYXV0byBzaGFkZXJEYXRhID0gc2hhZGVyRm9yVHlwZShwaXBlbGluZSwg
c2hhZGVyVHlwZSkpIHsKLSAgICAgICAgICAgICAgICBpZiAoYXV0byBtb2R1bGUgPSBzaGFkZXJE
YXRhLnZhbHVlKCkubW9kdWxlKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gbW9kdWxlLT5z
b3VyY2UoKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChhdXRvIHNoYWRlciA9IHNo
YWRlckZvclR5cGUocGlwZWxpbmUsIHNoYWRlclR5cGUpKQorICAgICAgICAgICAgICAgIHJldHVy
biBzaGFkZXItPnNvdXJjZSgpOwogICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgICAg
ICB9LAogI2VuZGlmCkBAIC0yMTYsMTIgKzIxNCwxMCBAQCBib29sIEluc3BlY3RvclNoYWRlclBy
b2dyYW06OnVwZGF0ZVNoYWRlcihJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlNoYWRlclR5
cAogICAgICAgICAgICAgYXV0byYgcGlwZWxpbmUgPSBwaXBlbGluZVdyYXBwZXIuZ2V0KCk7CiAg
ICAgICAgICAgICBpZiAoYXV0byogZGV2aWNlID0gbV9jYW52YXMuZGV2aWNlQ29udGV4dCgpKSB7
CiAgICAgICAgICAgICAgICAgaWYgKHBpcGVsaW5lLmNsb25lU2hhZGVyTW9kdWxlcygqZGV2aWNl
KSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byBzaGFkZXJEYXRhID0gc2hhZGVyRm9y
VHlwZShwaXBlbGluZSwgc2hhZGVyVHlwZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChhdXRvIG1vZHVsZSA9IHNoYWRlckRhdGEudmFsdWUoKS5tb2R1bGUpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtb2R1bGUtPnVwZGF0ZSgqZGV2aWNlLCBzb3VyY2UpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChwaXBlbGluZS5yZWNvbXBpbGUoKmRldmljZSkpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byBzaGFkZXIgPSBzaGFk
ZXJGb3JUeXBlKHBpcGVsaW5lLCBzaGFkZXJUeXBlKSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgc2hhZGVyLT51cGRhdGUoKmRldmljZSwgc291cmNlKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChwaXBlbGluZS5yZWNvbXBpbGUoKmRldmljZSkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9CkBAIC0yNTUsOSArMjUxLDcgQEAgUmVmPEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkNhbnZhczo6U2hhZGVyUHJvZ3JhbT4gSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbTo6
YnVpbGRPYmoKICAgICAgICAgICAgICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2Fu
dmFzOjpQcm9ncmFtVHlwZTo6Q29tcHV0ZTsKICAgICAgICAgICAgIGlmIChpczxXZWJHUFVSZW5k
ZXJQaXBlbGluZT4ocGlwZWxpbmUpKSB7CiAgICAgICAgICAgICAgICAgYXV0byYgcmVuZGVyUGlw
ZWxpbmUgPSBkb3duY2FzdDxXZWJHUFVSZW5kZXJQaXBlbGluZT4ocGlwZWxpbmUpOwotICAgICAg
ICAgICAgICAgIGF1dG8gdmVydGV4U2hhZGVyID0gcmVuZGVyUGlwZWxpbmUudmVydGV4U2hhZGVy
KCk7Ci0gICAgICAgICAgICAgICAgYXV0byBmcmFnbWVudFNoYWRlciA9IHJlbmRlclBpcGVsaW5l
LmZyYWdtZW50U2hhZGVyKCk7Ci0gICAgICAgICAgICAgICAgaWYgKHZlcnRleFNoYWRlciAmJiBm
cmFnbWVudFNoYWRlciAmJiB2ZXJ0ZXhTaGFkZXIudmFsdWUoKS5tb2R1bGUgPT0gZnJhZ21lbnRT
aGFkZXIudmFsdWUoKS5tb2R1bGUpCisgICAgICAgICAgICAgICAgaWYgKHJlbmRlclBpcGVsaW5l
LnZlcnRleFNoYWRlcigpID09IHJlbmRlclBpcGVsaW5lLmZyYWdtZW50U2hhZGVyKCkpCiAgICAg
ICAgICAgICAgICAgICAgIHNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVyID0gdHJ1ZTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpQcm9ncmFtVHlw
ZTo6UmVuZGVyOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVU9iamVjdEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVPYmplY3RCYXNlLmgKaW5kZXggNjU3NzA1Nzg5N2QuLmE3ZTZi
N2FjNjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
R1BVT2JqZWN0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVPYmplY3RCYXNlLmgKQEAgLTMzLDEwICszMywxNCBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBHUFVPYmplY3RCYXNlIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVT2JqZWN0QmFz
ZT4geworcHVibGljOgorICAgIHZpcnR1YWwgfkdQVU9iamVjdEJhc2UoKSA9IGRlZmF1bHQ7CisK
IHByb3RlY3RlZDoKICAgICBHUFVPYmplY3RCYXNlKFJlZjxHUFVFcnJvclNjb3Blcz4mJiByZXBv
cnRlcikKICAgICAgICAgOiBtX2Vycm9yU2NvcGVzKFdURk1vdmUocmVwb3J0ZXIpKSB7IH0KIAor
CiAgICAgR1BVRXJyb3JTY29wZXMmIGVycm9yU2NvcGVzKCkgeyByZXR1cm4gbV9lcnJvclNjb3Bl
czsgfQogCiBwcml2YXRlOgo=
</data>
<flag name="review"
          id="397036"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381341</attachid>
            <date>2019-10-18 16:09:57 -0700</date>
            <delta_ts>2019-10-18 17:44:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>203133.diff</filename>
            <type>text/plain</type>
            <size>25988</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3MjliMDFlZjUwYi4uNGY1NjJkNDgzNTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAxOS0xMC0xOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+
CisKKyAgICAgICAgW0FTQU5dIEZpeCBXZWJHUFUgdGVzdHMgYWZ0ZXIgcjI1MDI1OAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMTMzCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS81NjM3OTAwOD4KKworICAgICAgICBSZXZpZXdlZCBieSBKb3NlcGgg
UGVjb3Jhcm8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVT2JqZWN0QmFz
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVT2JqZWN0QmFzZTo6fkdQVU9iamVjdEJhc2UpOiBB
ZGRlZC4KKyAgICAgICAgQWRkIGEgZGVmYXVsdCB2aXJ0dWFsIGRlc3RydWN0b3Igc2luY2UgdGhp
cyBjbGFzcyBjbGFzcyBpcyB0aGUgb25lIHRoYXQgaXMgYFJlZkNvdW50ZWRgIGFuZAorICAgICAg
ICB0aGUgYFdlYkdQVVBpcGVsaW5lYCBzdWJjbGFzcyBpcyB2aXJ0dWFsLgorCisgICAgICAgICog
TW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQ
VVBpcGVsaW5lOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHUFVQaXBlbGluZTo6V2ViR1BVUGlwZWxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R1BVUGlwZWxpbmU6OmNvbnRleHREZXN0cm95ZWQpOiBBZGRlZC4KKyAgICAgICAgTWFrZSBgV2Vi
R1BVUGlwZWxpbmVgIGEgc3ViY2xhc3Mgb2YgYENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyYCBz
byB0aGF0IHRoZSByYXcgcG9pbnRlciB0bworICAgICAgICB0aGUgYXNzb2NpYXRlZCBgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dGAgaXMgcHJvcGVybHkgY2xlYXJlZCBhbmQgaXNuJ3QgVUFGZC4KKwor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5oOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHUFVDb21wdXRlUGlwZWxpbmU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHUFVDb21wdXRlUGlwZWxpbmU6OldlYkdQVUNvbXB1dGVQaXBlbGluZSk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHUFVDb21wdXRlUGlwZWxpbmU6OmNsb25lU2hhZGVyTW9kdWxlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHUFVDb21wdXRlUGlwZWxpbmU6OnJlY29tcGlsZSk6CisgICAg
ICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQ
VVJlbmRlclBpcGVsaW5lOjpXZWJHUFVSZW5kZXJQaXBlbGluZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHUFVSZW5kZXJQaXBlbGluZTo6Y2xvbmVTaGFkZXJNb2R1bGVzKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdQVVJlbmRlclBpcGVsaW5lOjpyZWNvbXBpbGUpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVEZXZp
Y2U6OmNyZWF0ZVJlbmRlclBpcGVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVURldmlj
ZTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lKToKKyAgICAgICAgUmV3b3JrIGhvdyBXZWIgSW5zcGVj
dG9yIHByZXNlcnZlcyByZWxhdGVkIHNoYWRlciBtb2R1bGVzIHNvIHRoYXQgdGhlcmUgaXNuJ3Qg
YXMgbXVjaCB3YXN0ZWQKKyAgICAgICAgc3BhY2UgaW4gdGhlIGNsYXNzIGxheW91dCwgYXMgd2Ug
Y2FuIHVzZSB0aGUgYFJlZlB0cmAgaXRzZWxmIGluc3RlYWQgb2YgYW4gYE9wdGlvbmFsYC4KKwor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlci5pZGw6CisgICAgICAgIE5vdyB0
aGF0IGBHUFVPYmplY3RCYXNlYCBoYXMgYSB2aXJ0dWFsIGRlc3RydWN0b3IsIGl0IGhhcyBhIHZ0
YWJsZSwgd2hpY2ggbWVhbnMgdGhhdCB0aGlzCisgICAgICAgIG9iamVjdCBhbHNvIGRvZXMgYW5k
IHRoZXJlZm9yZSBjYW5ub3QgYmUgbWFya2VkIHdpdGggYEltcGxlbWVudGF0aW9uTGFja3NWVGFi
bGVgLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6c2hhZGVyRm9yVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JTaGFkZXJQcm9ncmFtOjpyZXF1ZXN0U2hhZGVyU291cmNlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclNoYWRlclByb2dyYW06OnVwZGF0ZVNoYWRlcik6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpidWlsZE9iamVjdEZvclNoYWRlclByb2dyYW0p
OgorCiAyMDE5LTEwLTE3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBTaW5jUmVzYW1wbGVyIGRvZXMgbm90IG5lZWQgdG8gY3JlYXRlIGEgbmV3IEF1ZGlvQnVz
IGZvciBlYWNoIGNvbnN1bWVTb3VyY2UgY2FsbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVQnVmZmVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVUJ1ZmZlci5pZGwKaW5kZXggNGI4ZDYyZTI1NjUuLmUxMzNkZDcxMzQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVCdWZmZXIuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlci5pZGwKQEAg
LTI5LDcgKzI5LDYgQEAgdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdTY0OwogWwogICAgIENv
bmRpdGlvbmFsPVdFQkdQVSwKICAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdQVSwKLSAgICBJbXBs
ZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAogICAgIEludGVyZmFjZU5hbWU9R1BVQnVmZmVyCiBdIGlu
dGVyZmFjZSBXZWJHUFVCdWZmZXIgewogICAgIFByb21pc2U8QXJyYXlCdWZmZXI+IG1hcFJlYWRB
c3luYygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
Q29tcHV0ZVBpcGVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VUNvbXB1dGVQaXBlbGluZS5jcHAKaW5kZXggOGE4Y2YwZDc1ZDMuLjZiODk5NDU1Y2RiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21wdXRlUGlwZWxp
bmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQ
aXBlbGluZS5jcHAKQEAgLTQxLDE1ICs0MSwxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LVJlZjxXZWJHUFVDb21wdXRlUGlwZWxpbmU+IFdlYkdQVUNvbXB1dGVQaXBlbGluZTo6Y3JlYXRl
KFdlYkdQVURldmljZSYgZGV2aWNlLCBSZWZQdHI8R1BVQ29tcHV0ZVBpcGVsaW5lPiYmIHBpcGVs
aW5lLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMsIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5l
OjpTaGFkZXJEYXRhPiBjb21wdXRlU2hhZGVyKQorUmVmPFdlYkdQVUNvbXB1dGVQaXBlbGluZT4g
V2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpjcmVhdGUoV2ViR1BVRGV2aWNlJiBkZXZpY2UsIFJlZlB0
cjxHUFVDb21wdXRlUGlwZWxpbmU+JiYgcGlwZWxpbmUsIEdQVUVycm9yU2NvcGVzJiBlcnJvclNj
b3BlcywgV2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGEmJiBjb21wdXRlU2hhZGVyKQogewotICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdQVUNvbXB1dGVQaXBlbGluZShkZXZpY2UsIFdURk1v
dmUocGlwZWxpbmUpLCBlcnJvclNjb3BlcywgY29tcHV0ZVNoYWRlcikpOworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFdlYkdQVUNvbXB1dGVQaXBlbGluZShkZXZpY2UsIFdURk1vdmUocGlwZWxp
bmUpLCBlcnJvclNjb3BlcywgV1RGTW92ZShjb21wdXRlU2hhZGVyKSkpOwogfQogCi1XZWJHUFVD
b21wdXRlUGlwZWxpbmU6OldlYkdQVUNvbXB1dGVQaXBlbGluZShXZWJHUFVEZXZpY2UmIGRldmlj
ZSwgUmVmUHRyPEdQVUNvbXB1dGVQaXBlbGluZT4mJiBwaXBlbGluZSwgR1BVRXJyb3JTY29wZXMm
IGVycm9yU2NvcGVzLCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gY29tcHV0
ZVNoYWRlcikKK1dlYkdQVUNvbXB1dGVQaXBlbGluZTo6V2ViR1BVQ29tcHV0ZVBpcGVsaW5lKFdl
YkdQVURldmljZSYgZGV2aWNlLCBSZWZQdHI8R1BVQ29tcHV0ZVBpcGVsaW5lPiYmIHBpcGVsaW5l
LCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29wZXMsIFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRh
JiYgY29tcHV0ZVNoYWRlcikKICAgICA6IFdlYkdQVVBpcGVsaW5lKGRldmljZSwgZXJyb3JTY29w
ZXMpCiAgICAgLCBtX2NvbXB1dGVQaXBlbGluZShXVEZNb3ZlKHBpcGVsaW5lKSkKLSAgICAsIG1f
Y29tcHV0ZVNoYWRlcihjb21wdXRlU2hhZGVyKQorICAgICwgbV9jb21wdXRlU2hhZGVyKFdURk1v
dmUoY29tcHV0ZVNoYWRlcikpCiB7CiB9CiAKQEAgLTU3LDI3ICs1NywyMCBAQCBXZWJHUFVDb21w
dXRlUGlwZWxpbmU6On5XZWJHUFVDb21wdXRlUGlwZWxpbmUoKSA9IGRlZmF1bHQ7CiAKIGJvb2wg
V2ViR1BVQ29tcHV0ZVBpcGVsaW5lOjpjbG9uZVNoYWRlck1vZHVsZXMoY29uc3QgV2ViR1BVRGV2
aWNlJiBkZXZpY2UpCiB7Ci0gICAgaWYgKG1fY29tcHV0ZVNoYWRlcikgewotICAgICAgICBpZiAo
YXV0byYgd2ViR1BVQ29tcHV0ZVNoYWRlck1vZHVsZSA9IG1fY29tcHV0ZVNoYWRlci52YWx1ZSgp
Lm1vZHVsZSkgewotICAgICAgICAgICAgY29uc3QgYXV0byYgY29tcHV0ZVNvdXJjZSA9IHdlYkdQ
VUNvbXB1dGVTaGFkZXJNb2R1bGUtPnNvdXJjZSgpOwotICAgICAgICAgICAgd2ViR1BVQ29tcHV0
ZVNoYWRlck1vZHVsZSA9IFdlYkdQVVNoYWRlck1vZHVsZTo6Y3JlYXRlKEdQVVNoYWRlck1vZHVs
ZTo6dHJ5Q3JlYXRlKGRldmljZS5kZXZpY2UoKSwgeyBjb21wdXRlU291cmNlIH0pLCBjb21wdXRl
U291cmNlKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9CisgICAgaWYgKG1f
Y29tcHV0ZVNoYWRlci5tb2R1bGUpIHsKKyAgICAgICAgY29uc3QgYXV0byYgY29tcHV0ZVNvdXJj
ZSA9IG1fY29tcHV0ZVNoYWRlci5tb2R1bGUtPnNvdXJjZSgpOworICAgICAgICBtX2NvbXB1dGVT
aGFkZXIubW9kdWxlID0gV2ViR1BVU2hhZGVyTW9kdWxlOjpjcmVhdGUoR1BVU2hhZGVyTW9kdWxl
Ojp0cnlDcmVhdGUoZGV2aWNlLmRldmljZSgpLCB7IGNvbXB1dGVTb3VyY2UgfSksIGNvbXB1dGVT
b3VyY2UpOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCiBib29sIFdlYkdQVUNvbXB1dGVQaXBlbGluZTo6cmVjb21waWxlKGNvbnN0IFdlYkdQVURl
dmljZSYgZGV2aWNlKQogewotICAgIGlmIChtX2NvbXB1dGVQaXBlbGluZSAmJiBtX2NvbXB1dGVT
aGFkZXIpIHsKLSAgICAgICAgaWYgKGF1dG8mIHdlYkdQVUNvbXB1dGVTaGFkZXJNb2R1bGUgPSBt
X2NvbXB1dGVTaGFkZXIudmFsdWUoKS5tb2R1bGUpIHsKLSAgICAgICAgICAgIC8vIFJlY3JlYXRl
IHRoZSBzaGFkZXIgbW9kdWxlIHNvIHRoYXQgbW9kaWZpY2F0aW9ucyB0byBpdCB2aWEgdGhpcyBw
aXBlbGluZSBkb24ndCBhZmZlY3QKLSAgICAgICAgICAgIC8vIG90aGVyIHBpcGVsaW5lcyB0aGF0
IGFsc28gdXNlIHRoZSBzYW1lIHNoYWRlciBtb2R1bGUuCi0KLSAgICAgICAgICAgIGlmIChhdXRv
KiBncHVDb21wdXRlU2hhZGVyTW9kdWxlID0gd2ViR1BVQ29tcHV0ZVNoYWRlck1vZHVsZS0+bW9k
dWxlKCkpIHsKLSAgICAgICAgICAgICAgICBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3Ig
Y29tcHV0ZVN0YWdlKG1ha2VSZWYoKmdwdUNvbXB1dGVTaGFkZXJNb2R1bGUpLCB7IG1fY29tcHV0
ZVNoYWRlci52YWx1ZSgpLmVudHJ5UG9pbnQgfSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG1f
Y29tcHV0ZVBpcGVsaW5lLT5yZWNvbXBpbGUoZGV2aWNlLmRldmljZSgpLCBXVEZNb3ZlKGNvbXB1
dGVTdGFnZSkpOwotICAgICAgICAgICAgfQorICAgIGlmIChtX2NvbXB1dGVQaXBlbGluZSAmJiBt
X2NvbXB1dGVTaGFkZXIubW9kdWxlKSB7CisgICAgICAgIGlmIChhdXRvKiBncHVDb21wdXRlU2hh
ZGVyTW9kdWxlID0gbV9jb21wdXRlU2hhZGVyLm1vZHVsZS0+bW9kdWxlKCkpIHsKKyAgICAgICAg
ICAgIEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvciBjb21wdXRlU3RhZ2UobWFrZVJlZigq
Z3B1Q29tcHV0ZVNoYWRlck1vZHVsZSksIHsgbV9jb21wdXRlU2hhZGVyLmVudHJ5UG9pbnQgfSk7
CisgICAgICAgICAgICByZXR1cm4gbV9jb21wdXRlUGlwZWxpbmUtPnJlY29tcGlsZShkZXZpY2Uu
ZGV2aWNlKCksIFdURk1vdmUoY29tcHV0ZVN0YWdlKSk7CiAgICAgICAgIH0KICAgICB9CiAgICAg
cmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVDb21wdXRlUGlwZWxpbmUuaAppbmRleCA2NWFlNDExYTMyOC4uYjg0NzEzNTJlMjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBl
bGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQ
aXBlbGluZS5oCkBAIC0zNiwyOSArMzYsMzAgQEAgY2xhc3MgR1BVQ29tcHV0ZVBpcGVsaW5lOwog
Y2xhc3MgR1BVUGlwZWxpbmU7CiBjbGFzcyBHUFVFcnJvclNjb3BlczsKIGNsYXNzIFdlYkdQVURl
dmljZTsKK2NsYXNzIFdlYkdQVVNoYWRlck1vZHVsZTsKIAogY2xhc3MgV2ViR1BVQ29tcHV0ZVBp
cGVsaW5lIGZpbmFsIDogcHVibGljIFdlYkdQVVBpcGVsaW5lIHsKIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5XZWJHUFVDb21wdXRlUGlwZWxpbmUoKTsKIAotICAgIHN0YXRpYyBSZWY8V2ViR1BVQ29t
cHV0ZVBpcGVsaW5lPiBjcmVhdGUoV2ViR1BVRGV2aWNlJiwgUmVmUHRyPEdQVUNvbXB1dGVQaXBl
bGluZT4mJiwgR1BVRXJyb3JTY29wZXMmLCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVy
RGF0YT4gY29tcHV0ZVNoYWRlcik7CisgICAgc3RhdGljIFJlZjxXZWJHUFVDb21wdXRlUGlwZWxp
bmU+IGNyZWF0ZShXZWJHUFVEZXZpY2UmLCBSZWZQdHI8R1BVQ29tcHV0ZVBpcGVsaW5lPiYmLCBH
UFVFcnJvclNjb3BlcyYsIFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhJiYgY29tcHV0ZVNoYWRl
cik7CiAKICAgICBib29sIGlzQ29tcHV0ZVBpcGVsaW5lKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQogCiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gY29tcHV0ZVBpcGVsaW5lKCk7
IH0KICAgICBjb25zdCBHUFVDb21wdXRlUGlwZWxpbmUqIGNvbXB1dGVQaXBlbGluZSgpIGNvbnN0
IHsgcmV0dXJuIG1fY29tcHV0ZVBpcGVsaW5lLmdldCgpOyB9Ci0gICAgT3B0aW9uYWw8V2ViR1BV
UGlwZWxpbmU6OlNoYWRlckRhdGE+IGNvbXB1dGVTaGFkZXIoKSBjb25zdCB7IHJldHVybiBtX2Nv
bXB1dGVTaGFkZXI7IH0KKyAgICBSZWZQdHI8V2ViR1BVU2hhZGVyTW9kdWxlPiBjb21wdXRlU2hh
ZGVyKCkgY29uc3QgeyByZXR1cm4gbV9jb21wdXRlU2hhZGVyLm1vZHVsZTsgfQogCiAgICAgYm9v
bCBjbG9uZVNoYWRlck1vZHVsZXMoY29uc3QgV2ViR1BVRGV2aWNlJik7CiAgICAgYm9vbCByZWNv
bXBpbGUoY29uc3QgV2ViR1BVRGV2aWNlJik7CiAKIHByaXZhdGU6Ci0gICAgV2ViR1BVQ29tcHV0
ZVBpcGVsaW5lKFdlYkdQVURldmljZSYsIFJlZlB0cjxHUFVDb21wdXRlUGlwZWxpbmU+JiYsIEdQ
VUVycm9yU2NvcGVzJiwgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IGNvbXB1
dGVTaGFkZXIpOworICAgIFdlYkdQVUNvbXB1dGVQaXBlbGluZShXZWJHUFVEZXZpY2UmLCBSZWZQ
dHI8R1BVQ29tcHV0ZVBpcGVsaW5lPiYmLCBHUFVFcnJvclNjb3BlcyYsIFdlYkdQVVBpcGVsaW5l
OjpTaGFkZXJEYXRhJiYgY29tcHV0ZVNoYWRlcik7CiAKICAgICBSZWZQdHI8R1BVQ29tcHV0ZVBp
cGVsaW5lPiBtX2NvbXB1dGVQaXBlbGluZTsKIAogICAgIC8vIFByZXNlcnZlZCBmb3IgV2ViIElu
c3BlY3RvciByZWNvbXBpbGF0aW9uLgotICAgIE9wdGlvbmFsPFdlYkdQVVBpcGVsaW5lOjpTaGFk
ZXJEYXRhPiBtX2NvbXB1dGVTaGFkZXI7CisgICAgV2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGEg
bV9jb21wdXRlU2hhZGVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKaW5kZXggNmRjOGRiMzE0
MGMuLmMxYjM3NWRhZGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVEZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVURldmljZS5jcHAKQEAgLTIzMywxNyArMjMzLDE3IEBAIFJlZjxXZWJHUFVSZW5kZXJQaXBl
bGluZT4gV2ViR1BVRGV2aWNlOjpjcmVhdGVSZW5kZXJQaXBlbGluZShjb25zdCBXZWJHUFVSZW5k
ZXJQCiAKICAgICBhdXRvIGdwdURlc2NyaXB0b3IgPSBkZXNjcmlwdG9yLnRyeUNyZWF0ZUdQVVJl
bmRlclBpcGVsaW5lRGVzY3JpcHRvcihtX2Vycm9yU2NvcGVzKTsKICAgICBpZiAoIWdwdURlc2Ny
aXB0b3IpCi0gICAgICAgIHJldHVybiBXZWJHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRlKCp0aGlz
LCBudWxscHRyLCBtX2Vycm9yU2NvcGVzLCBXVEY6Om51bGxvcHQsIFdURjo6bnVsbG9wdCk7Cisg
ICAgICAgIHJldHVybiBXZWJHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRlKCp0aGlzLCBudWxscHRy
LCBtX2Vycm9yU2NvcGVzLCB7IH0sIHsgfSk7CiAKICAgICBhdXRvIGdwdVBpcGVsaW5lID0gbV9k
ZXZpY2UtPnRyeUNyZWF0ZVJlbmRlclBpcGVsaW5lKCpncHVEZXNjcmlwdG9yLCBtX2Vycm9yU2Nv
cGVzKTsKIAogICAgIFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhIHZlcnRleFNoYWRlciA9IHsg
ZGVzY3JpcHRvci52ZXJ0ZXhTdGFnZS5tb2R1bGUsIGRlc2NyaXB0b3IudmVydGV4U3RhZ2UuZW50
cnlQb2ludCB9OwogCi0gICAgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IGZy
YWdtZW50U2hhZGVyOworICAgIFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhIGZyYWdtZW50U2hh
ZGVyOwogICAgIGlmIChkZXNjcmlwdG9yLmZyYWdtZW50U3RhZ2UpCi0gICAgICAgIGZyYWdtZW50
U2hhZGVyID0geyB7IGRlc2NyaXB0b3IuZnJhZ21lbnRTdGFnZS52YWx1ZSgpLm1vZHVsZSwgZGVz
Y3JpcHRvci5mcmFnbWVudFN0YWdlLnZhbHVlKCkuZW50cnlQb2ludCB9IH07CisgICAgICAgIGZy
YWdtZW50U2hhZGVyID0geyBkZXNjcmlwdG9yLmZyYWdtZW50U3RhZ2UudmFsdWUoKS5tb2R1bGUs
IGRlc2NyaXB0b3IuZnJhZ21lbnRTdGFnZS52YWx1ZSgpLmVudHJ5UG9pbnQgfTsKIAotICAgIGF1
dG8gd2ViR1BVUGlwZWxpbmUgPSBXZWJHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRlKCp0aGlzLCBX
VEZNb3ZlKGdwdVBpcGVsaW5lKSwgbV9lcnJvclNjb3BlcywgdmVydGV4U2hhZGVyLCBmcmFnbWVu
dFNoYWRlcik7CisgICAgYXV0byB3ZWJHUFVQaXBlbGluZSA9IFdlYkdQVVJlbmRlclBpcGVsaW5l
OjpjcmVhdGUoKnRoaXMsIFdURk1vdmUoZ3B1UGlwZWxpbmUpLCBtX2Vycm9yU2NvcGVzLCBXVEZN
b3ZlKHZlcnRleFNoYWRlciksIFdURk1vdmUoZnJhZ21lbnRTaGFkZXIpKTsKICAgICBpZiAod2Vi
R1BVUGlwZWxpbmUtPmlzVmFsaWQoKSkKICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRDcmVhdGVXZWJHUFVQaXBlbGluZSgqdGhpcywgd2ViR1BVUGlwZWxpbmUuZ2V0KCkpOwog
ICAgIHJldHVybiB3ZWJHUFVQaXBlbGluZTsKQEAgLTI1NSwxMyArMjU1LDEzIEBAIFJlZjxXZWJH
UFVDb21wdXRlUGlwZWxpbmU+IFdlYkdQVURldmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNv
bnN0IFdlYkdQVUNvbXB1CiAKICAgICBhdXRvIGdwdURlc2NyaXB0b3IgPSBkZXNjcmlwdG9yLnRy
eUNyZWF0ZUdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IobV9lcnJvclNjb3Blcyk7CiAgICAg
aWYgKCFncHVEZXNjcmlwdG9yKQotICAgICAgICByZXR1cm4gV2ViR1BVQ29tcHV0ZVBpcGVsaW5l
OjpjcmVhdGUoKnRoaXMsIG51bGxwdHIsIG1fZXJyb3JTY29wZXMsIFdURjo6bnVsbG9wdCk7Cisg
ICAgICAgIHJldHVybiBXZWJHUFVDb21wdXRlUGlwZWxpbmU6OmNyZWF0ZSgqdGhpcywgbnVsbHB0
ciwgbV9lcnJvclNjb3BlcywgeyB9KTsKIAogICAgIGF1dG8gZ3B1UGlwZWxpbmUgPSBtX2Rldmlj
ZS0+dHJ5Q3JlYXRlQ29tcHV0ZVBpcGVsaW5lKCpncHVEZXNjcmlwdG9yLCBtX2Vycm9yU2NvcGVz
KTsKIAogICAgIFdlYkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhIGNvbXB1dGVTaGFkZXIgPSB7IGRl
c2NyaXB0b3IuY29tcHV0ZVN0YWdlLm1vZHVsZSwgZGVzY3JpcHRvci5jb21wdXRlU3RhZ2UuZW50
cnlQb2ludCB9OwogCi0gICAgYXV0byB3ZWJHUFVQaXBlbGluZSA9IFdlYkdQVUNvbXB1dGVQaXBl
bGluZTo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKGdwdVBpcGVsaW5lKSwgbV9lcnJvclNjb3Blcywg
Y29tcHV0ZVNoYWRlcik7CisgICAgYXV0byB3ZWJHUFVQaXBlbGluZSA9IFdlYkdQVUNvbXB1dGVQ
aXBlbGluZTo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKGdwdVBpcGVsaW5lKSwgbV9lcnJvclNjb3Bl
cywgV1RGTW92ZShjb21wdXRlU2hhZGVyKSk7CiAgICAgaWYgKHdlYkdQVVBpcGVsaW5lLT5pc1Zh
bGlkKCkpCiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViR1BV
UGlwZWxpbmUoKnRoaXMsIHdlYkdQVVBpcGVsaW5lLmdldCgpKTsKICAgICByZXR1cm4gd2ViR1BV
UGlwZWxpbmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVQaXBlbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBl
bGluZS5jcHAKaW5kZXggN2ExMjE1OThmMjkuLmYzM2JhZjRmYzkyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmUuY3BwCkBAIC01Nyw5ICs1Nyw5
IEBAIExvY2smIFdlYkdQVVBpcGVsaW5lOjppbnN0YW5jZXNNdXRleCgpCiAKIFdlYkdQVVBpcGVs
aW5lOjpXZWJHUFVQaXBlbGluZShXZWJHUFVEZXZpY2UmIGRldmljZSwgR1BVRXJyb3JTY29wZXMm
IGVycm9yU2NvcGVzKQogICAgIDogR1BVT2JqZWN0QmFzZShtYWtlUmVmKGVycm9yU2NvcGVzKSkK
LSAgICAsIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dChkZXZpY2Uuc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKQorICAgICwgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoZGV2aWNlLnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSkKIHsKLSAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
KTsKKyAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKIAogICAgIHsKICAgICAg
ICAgTG9ja0hvbGRlciBsb2NrKGluc3RhbmNlc011dGV4KCkpOwpAQCAtNzgsNiArNzgsMTMgQEAg
V2ViR1BVUGlwZWxpbmU6On5XZWJHUFVQaXBlbGluZSgpCiAgICAgfQogfQogCit2b2lkIFdlYkdQ
VVBpcGVsaW5lOjpjb250ZXh0RGVzdHJveWVkKCkKK3sKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OndpbGxEZXN0cm95V2ViR1BVUGlwZWxpbmUoKnRoaXMpOworCisgICAgQ29udGV4dERl
c3RydWN0aW9uT2JzZXJ2ZXI6OmNvbnRleHREZXN0cm95ZWQoKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZS5oCmluZGV4IGM0MWExYTkwM2QyLi5kN2Yx
MWEzMzYxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
UGlwZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBl
bGluZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCisjaW5jbHVk
ZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJHUFVPYmplY3RCYXNl
LmgiCiAjaW5jbHVkZSAiV2ViR1BVU2hhZGVyTW9kdWxlLmgiCiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KQEAgLTM4LDcgKzM5LDcgQEAgY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNs
YXNzIEdQVUVycm9yU2NvcGVzOwogY2xhc3MgV2ViR1BVRGV2aWNlOwogCi1jbGFzcyBXZWJHUFVQ
aXBlbGluZSA6IHB1YmxpYyBHUFVPYmplY3RCYXNlIHsKK2NsYXNzIFdlYkdQVVBpcGVsaW5lIDog
cHVibGljIEdQVU9iamVjdEJhc2UsIHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7
CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViR1BVUGlwZWxpbmUoKTsKIApAQCAtNDgsNyArNDks
NiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVyUGlwZWxpbmUoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0NvbXB1dGVQaXBlbGluZSgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0OyB9CiAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCA9IDA7CiAKICAgICBzdHJ1
Y3QgU2hhZGVyRGF0YSB7CkBAIC01OSwxMCArNTksMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Ym9vbCBjbG9uZVNoYWRlck1vZHVsZXMoY29uc3QgV2ViR1BVRGV2aWNlJikgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCByZWNvbXBpbGUoY29uc3QgV2ViR1BVRGV2aWNlJikgPSAwOwogCisgICAgdm9p
ZCBjb250ZXh0RGVzdHJveWVkKCkgZmluYWw7CisKIHByb3RlY3RlZDoKICAgICBXZWJHUFVQaXBl
bGluZShXZWJHUFVEZXZpY2UmLCBHUFVFcnJvclNjb3BlcyYpOwotCi0gICAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVUmVuZGVyUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVUmVuZGVyUGlwZWxpbmUuY3BwCmluZGV4IDAyYWFiZGJmMzJhLi5lOTI5YzU0ZmQxNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxp
bmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBp
cGVsaW5lLmNwcApAQCAtNDEsMTYgKzQxLDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
UmVmPFdlYkdQVVJlbmRlclBpcGVsaW5lPiBXZWJHUFVSZW5kZXJQaXBlbGluZTo6Y3JlYXRlKFdl
YkdQVURldmljZSYgZGV2aWNlLCBSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+JiYgcGlwZWxpbmUs
IEdQVUVycm9yU2NvcGVzJiBlcnJvclNjb3BlcywgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNo
YWRlckRhdGE+IHZlcnRleFNoYWRlciwgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRh
dGE+IGZyYWdtZW50U2hhZGVyKQorUmVmPFdlYkdQVVJlbmRlclBpcGVsaW5lPiBXZWJHUFVSZW5k
ZXJQaXBlbGluZTo6Y3JlYXRlKFdlYkdQVURldmljZSYgZGV2aWNlLCBSZWZQdHI8R1BVUmVuZGVy
UGlwZWxpbmU+JiYgcGlwZWxpbmUsIEdQVUVycm9yU2NvcGVzJiBlcnJvclNjb3BlcywgV2ViR1BV
UGlwZWxpbmU6OlNoYWRlckRhdGEmJiB2ZXJ0ZXhTaGFkZXIsIFdlYkdQVVBpcGVsaW5lOjpTaGFk
ZXJEYXRhJiYgZnJhZ21lbnRTaGFkZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2Vi
R1BVUmVuZGVyUGlwZWxpbmUoZGV2aWNlLCBXVEZNb3ZlKHBpcGVsaW5lKSwgZXJyb3JTY29wZXMs
IHZlcnRleFNoYWRlciwgZnJhZ21lbnRTaGFkZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBXZWJHUFVSZW5kZXJQaXBlbGluZShkZXZpY2UsIFdURk1vdmUocGlwZWxpbmUpLCBlcnJvclNj
b3BlcywgV1RGTW92ZSh2ZXJ0ZXhTaGFkZXIpLCBXVEZNb3ZlKGZyYWdtZW50U2hhZGVyKSkpOwog
fQogCi1XZWJHUFVSZW5kZXJQaXBlbGluZTo6V2ViR1BVUmVuZGVyUGlwZWxpbmUoV2ViR1BVRGV2
aWNlJiBkZXZpY2UsIFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4mJiBwaXBlbGluZSwgR1BVRXJy
b3JTY29wZXMmIGVycm9yU2NvcGVzLCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0
YT4gdmVydGV4U2hhZGVyLCBPcHRpb25hbDxXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gZnJh
Z21lbnRTaGFkZXIpCitXZWJHUFVSZW5kZXJQaXBlbGluZTo6V2ViR1BVUmVuZGVyUGlwZWxpbmUo
V2ViR1BVRGV2aWNlJiBkZXZpY2UsIFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4mJiBwaXBlbGlu
ZSwgR1BVRXJyb3JTY29wZXMmIGVycm9yU2NvcGVzLCBXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0
YSYmIHZlcnRleFNoYWRlciwgV2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGEmJiBmcmFnbWVudFNo
YWRlcikKICAgICA6IFdlYkdQVVBpcGVsaW5lKGRldmljZSwgZXJyb3JTY29wZXMpCiAgICAgLCBt
X3JlbmRlclBpcGVsaW5lKFdURk1vdmUocGlwZWxpbmUpKQotICAgICwgbV92ZXJ0ZXhTaGFkZXIo
dmVydGV4U2hhZGVyKQotICAgICwgbV9mcmFnbWVudFNoYWRlcihmcmFnbWVudFNoYWRlcikKKyAg
ICAsIG1fdmVydGV4U2hhZGVyKFdURk1vdmUodmVydGV4U2hhZGVyKSkKKyAgICAsIG1fZnJhZ21l
bnRTaGFkZXIoV1RGTW92ZShmcmFnbWVudFNoYWRlcikpCiB7CiB9CiAKQEAgLTU4LDQ1ICs1OCwz
NyBAQCBXZWJHUFVSZW5kZXJQaXBlbGluZTo6fldlYkdQVVJlbmRlclBpcGVsaW5lKCkgPSBkZWZh
dWx0OwogCiBib29sIFdlYkdQVVJlbmRlclBpcGVsaW5lOjpjbG9uZVNoYWRlck1vZHVsZXMoY29u
c3QgV2ViR1BVRGV2aWNlJiBkZXZpY2UpCiB7Ci0gICAgaWYgKG1fdmVydGV4U2hhZGVyKSB7Ci0g
ICAgICAgIGlmIChhdXRvJiB3ZWJHUFVWZXJ0ZXhTaGFkZXJNb2R1bGUgPSBtX3ZlcnRleFNoYWRl
ci52YWx1ZSgpLm1vZHVsZSkgewotICAgICAgICAgICAgYm9vbCBzaGFyZXNWZXJ0ZXhGcmFnbWVu
dFNoYWRlck1vZHVsZSA9IG1fZnJhZ21lbnRTaGFkZXIgJiYgbV9mcmFnbWVudFNoYWRlci52YWx1
ZSgpLm1vZHVsZSA9PSB3ZWJHUFVWZXJ0ZXhTaGFkZXJNb2R1bGU7CisgICAgaWYgKG1fdmVydGV4
U2hhZGVyLm1vZHVsZSkgeworICAgICAgICBib29sIHNoYXJlc1ZlcnRleEZyYWdtZW50U2hhZGVy
TW9kdWxlID0gbV9mcmFnbWVudFNoYWRlci5tb2R1bGUgPT0gbV92ZXJ0ZXhTaGFkZXIubW9kdWxl
OwogCi0gICAgICAgICAgICBjb25zdCBhdXRvJiB2ZXJ0ZXhTb3VyY2UgPSB3ZWJHUFVWZXJ0ZXhT
aGFkZXJNb2R1bGUtPnNvdXJjZSgpOwotICAgICAgICAgICAgd2ViR1BVVmVydGV4U2hhZGVyTW9k
dWxlID0gV2ViR1BVU2hhZGVyTW9kdWxlOjpjcmVhdGUoR1BVU2hhZGVyTW9kdWxlOjp0cnlDcmVh
dGUoZGV2aWNlLmRldmljZSgpLCB7IHZlcnRleFNvdXJjZSB9KSwgdmVydGV4U291cmNlKTsKKyAg
ICAgICAgY29uc3QgYXV0byYgdmVydGV4U291cmNlID0gbV92ZXJ0ZXhTaGFkZXIubW9kdWxlLT5z
b3VyY2UoKTsKKyAgICAgICAgbV92ZXJ0ZXhTaGFkZXIubW9kdWxlID0gV2ViR1BVU2hhZGVyTW9k
dWxlOjpjcmVhdGUoR1BVU2hhZGVyTW9kdWxlOjp0cnlDcmVhdGUoZGV2aWNlLmRldmljZSgpLCB7
IHZlcnRleFNvdXJjZSB9KSwgdmVydGV4U291cmNlKTsKIAotICAgICAgICAgICAgaWYgKCFtX2Zy
YWdtZW50U2hhZGVyKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgICAgICAg
ICBpZiAoYXV0byYgd2ViR1BVRnJhZ21lbnRTaGFkZXJNb2R1bGUgPSBtX2ZyYWdtZW50U2hhZGVy
LnZhbHVlKCkubW9kdWxlKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHNoYXJlc1ZlcnRleEZyYWdt
ZW50U2hhZGVyTW9kdWxlKQotICAgICAgICAgICAgICAgICAgICB3ZWJHUFVGcmFnbWVudFNoYWRl
ck1vZHVsZSA9IHdlYkdQVVZlcnRleFNoYWRlck1vZHVsZTsKLSAgICAgICAgICAgICAgICBlbHNl
IHsKLSAgICAgICAgICAgICAgICAgICAgY29uc3QgYXV0byYgZnJhZ21lbnRTb3VyY2UgPSB3ZWJH
UFVGcmFnbWVudFNoYWRlck1vZHVsZS0+c291cmNlKCk7Ci0gICAgICAgICAgICAgICAgICAgIHdl
YkdQVUZyYWdtZW50U2hhZGVyTW9kdWxlID0gV2ViR1BVU2hhZGVyTW9kdWxlOjpjcmVhdGUoR1BV
U2hhZGVyTW9kdWxlOjp0cnlDcmVhdGUoZGV2aWNlLmRldmljZSgpLCB7IGZyYWdtZW50U291cmNl
IH0pLCBmcmFnbWVudFNvdXJjZSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICBpZiAobV9mcmFnbWVudFNoYWRlci5tb2R1bGUpIHsKKyAg
ICAgICAgICAgIGlmIChzaGFyZXNWZXJ0ZXhGcmFnbWVudFNoYWRlck1vZHVsZSkKKyAgICAgICAg
ICAgICAgICBtX2ZyYWdtZW50U2hhZGVyLm1vZHVsZSA9IG1fdmVydGV4U2hhZGVyLm1vZHVsZTsK
KyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGNvbnN0IGF1dG8mIGZyYWdtZW50
U291cmNlID0gbV9mcmFnbWVudFNoYWRlci5tb2R1bGUtPnNvdXJjZSgpOworICAgICAgICAgICAg
ICAgIG1fZnJhZ21lbnRTaGFkZXIubW9kdWxlID0gV2ViR1BVU2hhZGVyTW9kdWxlOjpjcmVhdGUo
R1BVU2hhZGVyTW9kdWxlOjp0cnlDcmVhdGUoZGV2aWNlLmRldmljZSgpLCB7IGZyYWdtZW50U291
cmNlIH0pLCBmcmFnbWVudFNvdXJjZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKworICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIFdl
YkdQVVJlbmRlclBpcGVsaW5lOjpyZWNvbXBpbGUoY29uc3QgV2ViR1BVRGV2aWNlJiBkZXZpY2Up
CiB7Ci0gICAgaWYgKG1fcmVuZGVyUGlwZWxpbmUgJiYgbV92ZXJ0ZXhTaGFkZXIpIHsKLSAgICAg
ICAgaWYgKGF1dG8mIHdlYkdQVVZlcnRleFNoYWRlck1vZHVsZSA9IG1fdmVydGV4U2hhZGVyLnZh
bHVlKCkubW9kdWxlKSB7Ci0gICAgICAgICAgICBpZiAoYXV0byogZ3B1VmVydGV4U2hhZGVyTW9k
dWxlID0gd2ViR1BVVmVydGV4U2hhZGVyTW9kdWxlLT5tb2R1bGUoKSkgewotICAgICAgICAgICAg
ICAgIEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvciB2ZXJ0ZXhTdGFnZShtYWtlUmVmKCpn
cHVWZXJ0ZXhTaGFkZXJNb2R1bGUpLCB7IG1fdmVydGV4U2hhZGVyLnZhbHVlKCkuZW50cnlQb2lu
dCB9KTsKLSAgICAgICAgICAgICAgICBPcHRpb25hbDxHUFVQcm9ncmFtbWFibGVTdGFnZURlc2Ny
aXB0b3I+IGZyYWdtZW50U3RhZ2U7Ci0gICAgICAgICAgICAgICAgaWYgKG1fZnJhZ21lbnRTaGFk
ZXIpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8mIHdlYkdQVUZyYWdtZW50U2hhZGVy
TW9kdWxlID0gbV9mcmFnbWVudFNoYWRlci52YWx1ZSgpLm1vZHVsZSkgewotICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKGF1dG8qIGdwdUZyYWdtZW50U2hhZGVyTW9kdWxlID0gd2ViR1BVRnJh
Z21lbnRTaGFkZXJNb2R1bGUtPm1vZHVsZSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZyYWdtZW50U3RhZ2UgPSBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3IobWFrZVJlZigq
Z3B1RnJhZ21lbnRTaGFkZXJNb2R1bGUpLCB7IG1fZnJhZ21lbnRTaGFkZXIudmFsdWUoKS5lbnRy
eVBvaW50IH0pOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIHJldHVybiBtX3JlbmRlclBpcGVsaW5lLT5yZWNvbXBpbGUoZGV2aWNlLmRl
dmljZSgpLCBXVEZNb3ZlKHZlcnRleFN0YWdlKSwgV1RGTW92ZShmcmFnbWVudFN0YWdlKSk7Cisg
ICAgaWYgKG1fcmVuZGVyUGlwZWxpbmUgJiYgbV92ZXJ0ZXhTaGFkZXIubW9kdWxlKSB7CisgICAg
ICAgIGlmIChhdXRvKiBncHVWZXJ0ZXhTaGFkZXJNb2R1bGUgPSBtX3ZlcnRleFNoYWRlci5tb2R1
bGUtPm1vZHVsZSgpKSB7CisgICAgICAgICAgICBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0
b3IgdmVydGV4U3RhZ2UobWFrZVJlZigqZ3B1VmVydGV4U2hhZGVyTW9kdWxlKSwgeyBtX3ZlcnRl
eFNoYWRlci5lbnRyeVBvaW50IH0pOworICAgICAgICAgICAgT3B0aW9uYWw8R1BVUHJvZ3JhbW1h
YmxlU3RhZ2VEZXNjcmlwdG9yPiBmcmFnbWVudFN0YWdlOworICAgICAgICAgICAgaWYgKG1fZnJh
Z21lbnRTaGFkZXIubW9kdWxlKSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8qIGdwdUZyYWdt
ZW50U2hhZGVyTW9kdWxlID0gbV9mcmFnbWVudFNoYWRlci5tb2R1bGUtPm1vZHVsZSgpKQorICAg
ICAgICAgICAgICAgICAgICBmcmFnbWVudFN0YWdlID0gR1BVUHJvZ3JhbW1hYmxlU3RhZ2VEZXNj
cmlwdG9yKG1ha2VSZWYoKmdwdUZyYWdtZW50U2hhZGVyTW9kdWxlKSwgeyBtX2ZyYWdtZW50U2hh
ZGVyLmVudHJ5UG9pbnQgfSk7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbV9y
ZW5kZXJQaXBlbGluZS0+cmVjb21waWxlKGRldmljZS5kZXZpY2UoKSwgV1RGTW92ZSh2ZXJ0ZXhT
dGFnZSksIFdURk1vdmUoZnJhZ21lbnRTdGFnZSkpOwogICAgICAgICB9CiAgICAgfQogICAgIHJl
dHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVVJlbmRlclBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVSZW5kZXJQaXBlbGluZS5oCmluZGV4IDYyYTcwZDE0YzVmLi5iNDYwYjEzNzkzZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGlu
ZS5oCkBAIC0zNiwzMSArMzYsMzIgQEAgY2xhc3MgR1BVUGlwZWxpbmU7CiBjbGFzcyBHUFVSZW5k
ZXJQaXBlbGluZTsKIGNsYXNzIEdQVUVycm9yU2NvcGVzOwogY2xhc3MgV2ViR1BVRGV2aWNlOwor
Y2xhc3MgV2ViR1BVU2hhZGVyTW9kdWxlOwogCiBjbGFzcyBXZWJHUFVSZW5kZXJQaXBlbGluZSBm
aW5hbCA6IHB1YmxpYyBXZWJHUFVQaXBlbGluZSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2Vi
R1BVUmVuZGVyUGlwZWxpbmUoKTsKIAotICAgIHN0YXRpYyBSZWY8V2ViR1BVUmVuZGVyUGlwZWxp
bmU+IGNyZWF0ZShXZWJHUFVEZXZpY2UmLCBSZWZQdHI8R1BVUmVuZGVyUGlwZWxpbmU+JiYsIEdQ
VUVycm9yU2NvcGVzJiwgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IHZlcnRl
eFNoYWRlciwgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IGZyYWdtZW50U2hh
ZGVyKTsKKyAgICBzdGF0aWMgUmVmPFdlYkdQVVJlbmRlclBpcGVsaW5lPiBjcmVhdGUoV2ViR1BV
RGV2aWNlJiwgUmVmUHRyPEdQVVJlbmRlclBpcGVsaW5lPiYmLCBHUFVFcnJvclNjb3BlcyYsIFdl
YkdQVVBpcGVsaW5lOjpTaGFkZXJEYXRhJiYgdmVydGV4U2hhZGVyLCBXZWJHUFVQaXBlbGluZTo6
U2hhZGVyRGF0YSYmIGZyYWdtZW50U2hhZGVyKTsKIAogICAgIGJvb2wgaXNSZW5kZXJQaXBlbGlu
ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsg
cmV0dXJuIHJlbmRlclBpcGVsaW5lKCk7IH0KICAgICBjb25zdCBHUFVSZW5kZXJQaXBlbGluZSog
cmVuZGVyUGlwZWxpbmUoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlclBpcGVsaW5lLmdldCgpOyB9
Ci0gICAgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IHZlcnRleFNoYWRlcigp
IGNvbnN0IHsgcmV0dXJuIG1fdmVydGV4U2hhZGVyOyB9Ci0gICAgT3B0aW9uYWw8V2ViR1BVUGlw
ZWxpbmU6OlNoYWRlckRhdGE+IGZyYWdtZW50U2hhZGVyKCkgY29uc3QgeyByZXR1cm4gbV9mcmFn
bWVudFNoYWRlcjsgfQorICAgIFJlZlB0cjxXZWJHUFVTaGFkZXJNb2R1bGU+IHZlcnRleFNoYWRl
cigpIGNvbnN0IHsgcmV0dXJuIG1fdmVydGV4U2hhZGVyLm1vZHVsZTsgfQorICAgIFJlZlB0cjxX
ZWJHUFVTaGFkZXJNb2R1bGU+IGZyYWdtZW50U2hhZGVyKCkgY29uc3QgeyByZXR1cm4gbV9mcmFn
bWVudFNoYWRlci5tb2R1bGU7IH0KIAogICAgIGJvb2wgY2xvbmVTaGFkZXJNb2R1bGVzKGNvbnN0
IFdlYkdQVURldmljZSYpOwogICAgIGJvb2wgcmVjb21waWxlKGNvbnN0IFdlYkdQVURldmljZSYp
OwogCiBwcml2YXRlOgotICAgIFdlYkdQVVJlbmRlclBpcGVsaW5lKFdlYkdQVURldmljZSYsIFJl
ZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4mJiwgR1BVRXJyb3JTY29wZXMmLCBPcHRpb25hbDxXZWJH
UFVQaXBlbGluZTo6U2hhZGVyRGF0YT4gdmVydGV4U2hhZGVyLCBPcHRpb25hbDxXZWJHUFVQaXBl
bGluZTo6U2hhZGVyRGF0YT4gZnJhZ21lbnRTaGFkZXIpOworICAgIFdlYkdQVVJlbmRlclBpcGVs
aW5lKFdlYkdQVURldmljZSYsIFJlZlB0cjxHUFVSZW5kZXJQaXBlbGluZT4mJiwgR1BVRXJyb3JT
Y29wZXMmLCBXZWJHUFVQaXBlbGluZTo6U2hhZGVyRGF0YSYmIHZlcnRleFNoYWRlciwgV2ViR1BV
UGlwZWxpbmU6OlNoYWRlckRhdGEmJiBmcmFnbWVudFNoYWRlcik7CiAKICAgICBSZWZQdHI8R1BV
UmVuZGVyUGlwZWxpbmU+IG1fcmVuZGVyUGlwZWxpbmU7CiAKICAgICAvLyBQcmVzZXJ2ZWQgZm9y
IFdlYiBJbnNwZWN0b3IgcmVjb21waWxhdGlvbi4KLSAgICBPcHRpb25hbDxXZWJHUFVQaXBlbGlu
ZTo6U2hhZGVyRGF0YT4gbV92ZXJ0ZXhTaGFkZXI7Ci0gICAgT3B0aW9uYWw8V2ViR1BVUGlwZWxp
bmU6OlNoYWRlckRhdGE+IG1fZnJhZ21lbnRTaGFkZXI7CisgICAgV2ViR1BVUGlwZWxpbmU6OlNo
YWRlckRhdGEgbV92ZXJ0ZXhTaGFkZXI7CisgICAgV2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGEg
bV9mcmFnbWVudFNoYWRlcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcAppbmRl
eCAxMTUxYmYyYzdlNC4uZTk0MjM4YmNlMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5jcHAKQEAgLTEyNiwyNyArMTI2LDI3IEBA
IHN0YXRpYyBXZWJHTFNoYWRlciogc2hhZGVyRm9yVHlwZShXZWJHTFByb2dyYW0mIHByb2dyYW0s
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhCiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJHUFUpCi1z
dGF0aWMgT3B0aW9uYWw8V2ViR1BVUGlwZWxpbmU6OlNoYWRlckRhdGE+IHNoYWRlckZvclR5cGUo
V2ViR1BVUGlwZWxpbmUmIHBpcGVsaW5lLCBJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlNo
YWRlclR5cGUgc2hhZGVyVHlwZSkKK3N0YXRpYyBSZWZQdHI8V2ViR1BVU2hhZGVyTW9kdWxlPiBz
aGFkZXJGb3JUeXBlKFdlYkdQVVBpcGVsaW5lJiBwaXBlbGluZSwgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6Q2FudmFzOjpTaGFkZXJUeXBlIHNoYWRlclR5cGUpCiB7CiAgICAgc3dpdGNoIChzaGFkZXJU
eXBlKSB7CiAgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlNoYWRlclR5cGU6
OkNvbXB1dGU6CiAgICAgICAgIGlmIChpczxXZWJHUFVDb21wdXRlUGlwZWxpbmU+KHBpcGVsaW5l
KSkKICAgICAgICAgICAgIHJldHVybiBkb3duY2FzdDxXZWJHUFVDb21wdXRlUGlwZWxpbmU+KHBp
cGVsaW5lKS5jb21wdXRlU2hhZGVyKCk7Ci0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpD
YW52YXM6OlNoYWRlclR5cGU6OkZyYWdtZW50OgogICAgICAgICBpZiAoaXM8V2ViR1BVUmVuZGVy
UGlwZWxpbmU+KHBpcGVsaW5lKSkKICAgICAgICAgICAgIHJldHVybiBkb3duY2FzdDxXZWJHUFVS
ZW5kZXJQaXBlbGluZT4ocGlwZWxpbmUpLmZyYWdtZW50U2hhZGVyKCk7Ci0gICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgY2FzZSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OlNoYWRlclR5cGU6OlZlcnRleDoKICAgICAgICAgaWYg
KGlzPFdlYkdQVVJlbmRlclBpcGVsaW5lPihwaXBlbGluZSkpCiAgICAgICAgICAgICByZXR1cm4g
ZG93bmNhc3Q8V2ViR1BVUmVuZGVyUGlwZWxpbmU+KHBpcGVsaW5lKS52ZXJ0ZXhTaGFkZXIoKTsK
LSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KICNlbmRpZgogCkBAIC0xNjgsMTAgKzE2OCw4IEBA
IFN0cmluZyBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtOjpyZXF1ZXN0U2hhZGVyU291cmNlKEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6CiAjaWYgRU5BQkxFKFdFQkdQVSkKICAgICAgICAgWyZd
IChzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPFdlYkdQVVBpcGVsaW5lPiBwaXBlbGluZVdyYXBwZXIp
IHsKICAgICAgICAgICAgIGF1dG8mIHBpcGVsaW5lID0gcGlwZWxpbmVXcmFwcGVyLmdldCgpOwot
ICAgICAgICAgICAgaWYgKGF1dG8gc2hhZGVyRGF0YSA9IHNoYWRlckZvclR5cGUocGlwZWxpbmUs
IHNoYWRlclR5cGUpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGF1dG8gbW9kdWxlID0gc2hhZGVy
RGF0YS52YWx1ZSgpLm1vZHVsZSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vZHVsZS0+
c291cmNlKCk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYXV0byBzaGFkZXIgPSBz
aGFkZXJGb3JUeXBlKHBpcGVsaW5lLCBzaGFkZXJUeXBlKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gc2hhZGVyLT5zb3VyY2UoKTsKICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICAg
ICAgfSwKICNlbmRpZgpAQCAtMjE2LDEyICsyMTQsMTAgQEAgYm9vbCBJbnNwZWN0b3JTaGFkZXJQ
cm9ncmFtOjp1cGRhdGVTaGFkZXIoSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpTaGFkZXJU
eXAKICAgICAgICAgICAgIGF1dG8mIHBpcGVsaW5lID0gcGlwZWxpbmVXcmFwcGVyLmdldCgpOwog
ICAgICAgICAgICAgaWYgKGF1dG8qIGRldmljZSA9IG1fY2FudmFzLmRldmljZUNvbnRleHQoKSkg
ewogICAgICAgICAgICAgICAgIGlmIChwaXBlbGluZS5jbG9uZVNoYWRlck1vZHVsZXMoKmRldmlj
ZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gc2hhZGVyRGF0YSA9IHNoYWRlckZv
clR5cGUocGlwZWxpbmUsIHNoYWRlclR5cGUpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoYXV0byBtb2R1bGUgPSBzaGFkZXJEYXRhLnZhbHVlKCkubW9kdWxlKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbW9kdWxlLT51cGRhdGUoKmRldmljZSwgc291cmNlKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlwZWxpbmUucmVjb21waWxlKCpkZXZpY2UpKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gc2hhZGVyID0gc2hh
ZGVyRm9yVHlwZShwaXBlbGluZSwgc2hhZGVyVHlwZSkpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHNoYWRlci0+dXBkYXRlKCpkZXZpY2UsIHNvdXJjZSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAocGlwZWxpbmUucmVjb21waWxlKCpkZXZpY2UpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfQpAQCAtMjU1LDkgKzI1MSw3IEBAIFJlZjxJbnNwZWN0b3I6
OlByb3RvY29sOjpDYW52YXM6OlNoYWRlclByb2dyYW0+IEluc3BlY3RvclNoYWRlclByb2dyYW06
OmJ1aWxkT2JqCiAgICAgICAgICAgICAgICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNh
bnZhczo6UHJvZ3JhbVR5cGU6OkNvbXB1dGU7CiAgICAgICAgICAgICBpZiAoaXM8V2ViR1BVUmVu
ZGVyUGlwZWxpbmU+KHBpcGVsaW5lKSkgewogICAgICAgICAgICAgICAgIGF1dG8mIHJlbmRlclBp
cGVsaW5lID0gZG93bmNhc3Q8V2ViR1BVUmVuZGVyUGlwZWxpbmU+KHBpcGVsaW5lKTsKLSAgICAg
ICAgICAgICAgICBhdXRvIHZlcnRleFNoYWRlciA9IHJlbmRlclBpcGVsaW5lLnZlcnRleFNoYWRl
cigpOwotICAgICAgICAgICAgICAgIGF1dG8gZnJhZ21lbnRTaGFkZXIgPSByZW5kZXJQaXBlbGlu
ZS5mcmFnbWVudFNoYWRlcigpOwotICAgICAgICAgICAgICAgIGlmICh2ZXJ0ZXhTaGFkZXIgJiYg
ZnJhZ21lbnRTaGFkZXIgJiYgdmVydGV4U2hhZGVyLnZhbHVlKCkubW9kdWxlID09IGZyYWdtZW50
U2hhZGVyLnZhbHVlKCkubW9kdWxlKQorICAgICAgICAgICAgICAgIGlmIChyZW5kZXJQaXBlbGlu
ZS52ZXJ0ZXhTaGFkZXIoKSA9PSByZW5kZXJQaXBlbGluZS5mcmFnbWVudFNoYWRlcigpKQogICAg
ICAgICAgICAgICAgICAgICBzaGFyZXNWZXJ0ZXhGcmFnbWVudFNoYWRlciA9IHRydWU7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6UHJvZ3JhbVR5
cGU6OlJlbmRlcjsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVPYmplY3RCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVT2JqZWN0QmFzZS5oCmluZGV4IDY1NzcwNTc4OTdkLi5hN2U2
YjdhYzYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVU9iamVjdEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVT2JqZWN0QmFzZS5oCkBAIC0zMyw2ICszMyw5IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEdQVU9iamVjdEJhc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVPYmplY3RCYXNl
PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+R1BVT2JqZWN0QmFzZSgpID0gZGVmYXVsdDsKKwog
cHJvdGVjdGVkOgogICAgIEdQVU9iamVjdEJhc2UoUmVmPEdQVUVycm9yU2NvcGVzPiYmIHJlcG9y
dGVyKQogICAgICAgICA6IG1fZXJyb3JTY29wZXMoV1RGTW92ZShyZXBvcnRlcikpIHsgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>