<?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>192990</bug_id>
          
          <creation_ts>2018-12-21 11:59:47 -0800</creation_ts>
          <short_desc>[WebGPU] GPUBindGroupLayout refactoring: no HashMap, and failure logging</short_desc>
          <delta_ts>2018-12-21 12:46:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Fan">justin_fan</reporter>
          <assigned_to name="Justin Fan">justin_fan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</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>1490425</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2018-12-21 11:59:47 -0800</bug_when>
    <thetext>[WebGPU] GPUBindGroupLayout refactoring: no HashMap, and failure logging</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490430</commentid>
    <comment_count>1</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2018-12-21 12:02:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/46905997&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490431</commentid>
    <comment_count>2</comment_count>
      <attachid>357964</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2018-12-21 12:09:30 -0800</bug_when>
    <thetext>Created attachment 357964
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490433</commentid>
    <comment_count>3</comment_count>
      <attachid>357965</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2018-12-21 12:15:45 -0800</bug_when>
    <thetext>Created attachment 357965
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490440</commentid>
    <comment_count>4</comment_count>
      <attachid>357965</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-21 12:46:12 -0800</bug_when>
    <thetext>Comment on attachment 357965
Patch

Clearing flags on attachment: 357965

Committed r239515: &lt;https://trac.webkit.org/changeset/239515&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490441</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-21 12:46:14 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357964</attachid>
            <date>2018-12-21 12:09:30 -0800</date>
            <delta_ts>2018-12-21 12:15:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192990-20181221120929.patch</filename>
            <type>text/plain</type>
            <size>17406</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDc5OTA4MzM2MTI5NTAy
ZDFmMzA5ZWQ0MDkyYjAyMjVjYzRmOTNkMy4uNTkyYzU5ZjY5ZDY4NGFlMjYwN2NhYzI3YjVlN2Y5
Njg5NTc1ZjAyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE4LTEyLTIxICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gR1BVQmlu
ZEdyb3VwTGF5b3V0IHJlZmFjdG9yaW5nOiBubyBIYXNoTWFwLCBhbmQgZmFpbHVyZSBsb2dnaW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI5OTAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3Rv
ciBhd2F5IHRoZSB1bm5lY2Vzc2FyeSBIYXNoTWFwcyB3aGVuIGNyZWF0aW5nIE1UTEFyZ3VtZW50
RW5jb2RlcnMgaW4gR1BVQmluZEdyb3VwTGF5b3V0IGNyZWF0aW9uLgorICAgICAgICBBbHNvIHVw
ZGF0ZSBHUFVCaW5kR3JvdXBMYXlvdXQ6OmNyZWF0ZSAtPiB0cnlDcmVhdGUsIGluIG9yZGVyIHRv
IGJldHRlciBoYW5kbGUgT2JqZWN0aXZlLUMgZXhjZXB0aW9ucy4KKworICAgICAgICBObyBuZXcg
dGVzdHM7IG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1
L1dlYkdQVUJpbmRHcm91cExheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVCaW5k
R3JvdXBMYXlvdXQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVCaW5kR3JvdXBM
YXlvdXQ6OldlYkdQVUJpbmRHcm91cExheW91dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUv
V2ViR1BVQmluZEdyb3VwTGF5b3V0Lmg6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVCaW5kR3Jv
dXBMYXlvdXQ6OmJpbmRHcm91cExheW91dCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvV2ViR1BVRGV2aWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVURldmljZTo6Y3Jl
YXRlQmluZEdyb3VwTGF5b3V0IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVQmluZEdyb3VwTGF5b3V0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVURldmljZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OnRyeUNyZWF0ZUJp
bmRHcm91cExheW91dCBjb25zdCk6IFJlbmFtZWQgZnJvbSA6OmNyZWF0ZSouIE5vdyByZXR1cm5p
bmcgYSBSZWZQdHIuIAorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpjcmVhdGVCaW5kR3Jv
dXBMYXlvdXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVEZXZpY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BV
QmluZEdyb3VwTGF5b3V0TWV0YWwubW06CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRBcmd1bWVu
dFRvQXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6bmV3RW5jb2Rlcik6CisgICAgICAgIChXZWJD
b3JlOjpHUFVCaW5kR3JvdXBMYXlvdXQ6OnRyeUNyZWF0ZSk6IFJlbmFtZWQgZnJvbSA6OmNyZWF0
ZS4gTm93IHJldHVybmluZyBhIFJlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91
cExheW91dDo6R1BVQmluZEdyb3VwTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OmFwcGVuZEFy
Z3VtZW50VG9BcnJheUluTWFwKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRH
cm91cExheW91dDo6Y3JlYXRlKTogRGVsZXRlZC4KKworICAgICAgICBEZWxldGVkIHVubmVlZGVk
IEdQVUJpbmRHcm91cExheW91dC5jcHA6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBMYXlvdXQuY3BwOiBSZW1vdmVkLgorCiAyMDE4LTEy
LTIxICBKdXN0aW4gTWljaGF1ZCAgPGp1c3Rpbl9taWNoYXVkQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXBlYXRlZCBiYWNrZ3JvdW5kIGltYWdlcyB3aXRoIHplcm8gc2l6ZSBzaG91bGQgZGlzcGxh
eSB0aGUgYmFja2dyb3VuZCBjb2xvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVQmluZEdyb3VwTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cExheW91dC5jcHAKaW5kZXggZDk4N2JmMzMyNjc4NDRl
ZDUwNzVlODNlMjY1ZjZjMmI2NGRmYWJlZi4uZDNkMmY4NzkwMTRlNTYzZGY5MTUzNjA1YmIwZTMw
NWY2M2ZkMTc1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVQmluZEdyb3VwTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVCaW5kR3JvdXBMYXlvdXQuY3BwCkBAIC0zMCwxMiArMzAsMTIgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1SZWY8V2ViR1BVQmluZEdyb3VwTGF5b3V0PiBXZWJHUFVCaW5kR3Jv
dXBMYXlvdXQ6OmNyZWF0ZShSZWY8R1BVQmluZEdyb3VwTGF5b3V0PiYmIGxheW91dCkKK1JlZjxX
ZWJHUFVCaW5kR3JvdXBMYXlvdXQ+IFdlYkdQVUJpbmRHcm91cExheW91dDo6Y3JlYXRlKFJlZlB0
cjxHUFVCaW5kR3JvdXBMYXlvdXQ+JiYgbGF5b3V0KQogewogICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYkdQVUJpbmRHcm91cExheW91dChXVEZNb3ZlKGxheW91dCkpKTsKIH0KIAotV2ViR1BV
QmluZEdyb3VwTGF5b3V0OjpXZWJHUFVCaW5kR3JvdXBMYXlvdXQoUmVmPEdQVUJpbmRHcm91cExh
eW91dD4mJiBsYXlvdXQpCitXZWJHUFVCaW5kR3JvdXBMYXlvdXQ6OldlYkdQVUJpbmRHcm91cExh
eW91dChSZWZQdHI8R1BVQmluZEdyb3VwTGF5b3V0PiYmIGxheW91dCkKICAgICA6IG1fYmluZEdy
b3VwTGF5b3V0KFdURk1vdmUobGF5b3V0KSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cExheW91dC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwTGF5b3V0LmgKaW5kZXggYmUyOTIwM2Ez
ZWUyNDU4YTZmOWNiNDc3ODQ5ZTIxYjQ4ZTM3OTFiYy4uZjljMGY4MzA1MGY2NzkxNzM3YzJmNTNh
MDkyMjAwYTVmZGVhNmFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVQmluZEdyb3VwTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVQmluZEdyb3VwTGF5b3V0LmgKQEAgLTM2LDE0ICszNiwxNCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdlYkdQVUJpbmRHcm91cExheW91dCA6IHB1YmxpYyBSZWZD
b3VudGVkPFdlYkdQVUJpbmRHcm91cExheW91dD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
V2ViR1BVQmluZEdyb3VwTGF5b3V0PiBjcmVhdGUoUmVmPEdQVUJpbmRHcm91cExheW91dD4mJik7
CisgICAgc3RhdGljIFJlZjxXZWJHUFVCaW5kR3JvdXBMYXlvdXQ+IGNyZWF0ZShSZWZQdHI8R1BV
QmluZEdyb3VwTGF5b3V0PiYmKTsKIAotICAgIFJlZlB0cjxHUFVCaW5kR3JvdXBMYXlvdXQ+IGJp
bmRHcm91cExheW91dCgpIGNvbnN0IHsgcmV0dXJuIG1fYmluZEdyb3VwTGF5b3V0LmNvcHlSZWYo
KTsgfQorICAgIFJlZlB0cjxHUFVCaW5kR3JvdXBMYXlvdXQ+IGJpbmRHcm91cExheW91dCgpIGNv
bnN0IHsgcmV0dXJuIG1fYmluZEdyb3VwTGF5b3V0OyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGlj
aXQgV2ViR1BVQmluZEdyb3VwTGF5b3V0KFJlZjxHUFVCaW5kR3JvdXBMYXlvdXQ+JiYpOworICAg
IGV4cGxpY2l0IFdlYkdQVUJpbmRHcm91cExheW91dChSZWZQdHI8R1BVQmluZEdyb3VwTGF5b3V0
PiYmKTsKIAotICAgIFJlZjxHUFVCaW5kR3JvdXBMYXlvdXQ+IG1fYmluZEdyb3VwTGF5b3V0Owor
ICAgIFJlZlB0cjxHUFVCaW5kR3JvdXBMYXlvdXQ+IG1fYmluZEdyb3VwTGF5b3V0OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVURldmljZS5jcHAKaW5kZXggOTQxNWMzNWZiMWIxNGI1MzUyMTAxOGQzZDdiMTYwNjNj
MWYyYzMzYi4uNzNhMWFhNjE1MzY5YmYxY2NlM2Q5M2IxZmE3OTcwNDY3N2IzNzY4NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCkBAIC02OSw3
ICs2OSw3IEBAIFJlZlB0cjxXZWJHUFVCdWZmZXI+IFdlYkdQVURldmljZTo6Y3JlYXRlQnVmZmVy
KFdlYkdQVUJ1ZmZlckRlc2NyaXB0b3ImJiBkZXNjcmlwCiAKIFJlZjxXZWJHUFVCaW5kR3JvdXBM
YXlvdXQ+IFdlYkdQVURldmljZTo6Y3JlYXRlQmluZEdyb3VwTGF5b3V0KFdlYkdQVUJpbmRHcm91
cExheW91dERlc2NyaXB0b3ImJiBkZXNjcmlwdG9yKSBjb25zdAogewotICAgIGF1dG8gbGF5b3V0
ID0gbV9kZXZpY2UtPmNyZWF0ZUJpbmRHcm91cExheW91dChHUFVCaW5kR3JvdXBMYXlvdXREZXNj
cmlwdG9yIHsgZGVzY3JpcHRvci5iaW5kaW5ncyB9KTsKKyAgICBhdXRvIGxheW91dCA9IG1fZGV2
aWNlLT50cnlDcmVhdGVCaW5kR3JvdXBMYXlvdXQoR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRv
ciB7IGRlc2NyaXB0b3IuYmluZGluZ3MgfSk7CiAgICAgcmV0dXJuIFdlYkdQVUJpbmRHcm91cExh
eW91dDo6Y3JlYXRlKFdURk1vdmUobGF5b3V0KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYThj
NDczNzI4YWE4ODc4NjNmNjc0NGM3NjFjZDBmZmE5OGJkZGE2NC4uNGVmNzAwNDQ1NTMwZmMyMWI0
MmY3ODllYjU0MTNkMzEzNDBkY2ZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE3NDMsNyArMTc0Myw2
IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL1Nwb3RMaWdodFNvdXJjZS5jcHAKIAotcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRH
cm91cExheW91dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwCiBwbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlwZWxpbmVMYXlvdXQuY3BwCiBwbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvbGVnYWN5L0dQVUxlZ2FjeUJ1ZmZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxZGY4ZDdlMTMwMWQ3YTAwYzE2
OTAzOWQzMjI4ZTY3YjBiMmQxMDliLi41YzVjYzFmMmQwN2I2ZmYyYzI3NWVlOWE2YTEzNmZkYmU4
NTgzZDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0xMzczOCw3ICsxMzczOCw2IEBACiAJCUQwMUEyN0FDMTBDOUJGRDgwMDAy
NkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNwYWNlU3BsaXRTdHJpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDAy
MzJCNTgyMUNCNDlCNzAwOTQ4M0I5IC8qIEdQVUJpbmRHcm91cExheW91dE1ldGFsLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gR1BVQmluZEdyb3VwTGF5b3V0TWV0YWwubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUQwMjQ1NEQwMjFDNEE0MUMwMEI3MzYyOCAvKiBHUFVCaW5kR3Jv
dXBMYXlvdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVQmluZEdyb3VwTGF5b3V0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUQwMjQ1NEQxMjFDNEE0MUMwMEI3MzYyOCAvKiBHUFVCaW5k
R3JvdXBMYXlvdXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR1BVQmluZEdyb3VwTGF5b3V0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDAyQjgzRUQyMUM4Mzk3QTAwRjg1NDcz
IC8qIFdlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVUJpbmRH
cm91cExheW91dERlc2NyaXB0b3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
MDJDMjY5MTIxODE0MTZEMDBEODE4RTQgLyogV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRDAyQzI2OTIyMTgxNDE2RDAwRDgxOEU0IC8qIFdlYkdQVUFkYXB0ZXJEZXNj
cmlwdG9yLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvci5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xODA2NCw3ICsxODA2Myw2IEBACiAJCQljaGlsZHJlbiA9ICgK
IAkJCQlEMDg3Q0UzNzIxQUNBOTQyMDBCREUxNzQgLyogY29jb2EgKi8sCiAJCQkJMzEyRkY4Q0Uy
MUE0QzMzRjAwRUIxOTlEIC8qIGxlZ2FjeSAqLywKLQkJCQlEMDI0NTREMTIxQzRBNDFDMDBCNzM2
MjggLyogR1BVQmluZEdyb3VwTGF5b3V0LmNwcCAqLywKIAkJCQlEMDI0NTREMDIxQzRBNDFDMDBC
NzM2MjggLyogR1BVQmluZEdyb3VwTGF5b3V0LmggKi8sCiAJCQkJRDBCOEJCMDEyMUM0NkU3ODAw
MEM3NjgxIC8qIEdQVUJpbmRHcm91cExheW91dEJpbmRpbmcuaCAqLywKIAkJCQlEMDgzRDk4NDIx
QzQ4MDUwMDA4RThFRkYgLyogR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91
cExheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmlu
ZEdyb3VwTGF5b3V0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzI5YzA2Mjgz
NGEwM2NhODNkODE5N2M0YTAwMWUwYjIyMWU5ODYwYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVQmluZEdyb3VwTGF5b3V0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiR1BVQmluZEdyb3Vw
TGF5b3V0LmgiCi0KLSNpZiBFTkFCTEUoV0VCR1BVKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCi0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3Jv
dXBMYXlvdXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5k
R3JvdXBMYXlvdXQuaAppbmRleCAxYzBhOTE1OTBiZjE2M2Q4Njc5Zjc4OGQxMmU1NzUzYTRiMTU3
YzExLi5kYjJlMjE5NTBjODBhNmRhOWViNzIzOWVjNjlhNWY1NzFmZTU2NmM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwTGF5b3V0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91
cExheW91dC5oCkBAIC0yOSwxMSArMjksOSBAQAogCiAjaW5jbHVkZSAiR1BVQmluZEdyb3VwTGF5
b3V0RGVzY3JpcHRvci5oIgogCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3
dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KIAogT0JKQ19QUk9UT0NPTChNVExBcmd1bWVudEVuY29kZXIpOwogCkBAIC00MywxNCArNDEs
MTggQEAgY2xhc3MgR1BVRGV2aWNlOwogCiBjbGFzcyBHUFVCaW5kR3JvdXBMYXlvdXQgOiBwdWJs
aWMgUmVmQ291bnRlZDxHUFVCaW5kR3JvdXBMYXlvdXQ+IHsKIHB1YmxpYzoKLSAgICB1c2luZyBB
cmd1bWVudHNNYXAgPSBIYXNoTWFwPEdQVVNoYWRlclN0YWdlRmxhZ3MsIFJldGFpblB0cjxNVExB
cmd1bWVudEVuY29kZXI+PjsKKyAgICBzdHJ1Y3QgQXJndW1lbnRFbmNvZGVycyB7CisgICAgICAg
IFJldGFpblB0cjxNVExBcmd1bWVudEVuY29kZXI+IHZlcnRleDsKKyAgICAgICAgUmV0YWluUHRy
PE1UTEFyZ3VtZW50RW5jb2Rlcj4gZnJhZ21lbnQ7CisgICAgICAgIFJldGFpblB0cjxNVExBcmd1
bWVudEVuY29kZXI+IGNvbXB1dGU7CisgICAgfTsKIAotICAgIHN0YXRpYyBSZWY8R1BVQmluZEdy
b3VwTGF5b3V0PiBjcmVhdGUoY29uc3QgR1BVRGV2aWNlJiwgR1BVQmluZEdyb3VwTGF5b3V0RGVz
Y3JpcHRvciYmKTsKKyAgICBzdGF0aWMgUmVmUHRyPEdQVUJpbmRHcm91cExheW91dD4gdHJ5Q3Jl
YXRlKGNvbnN0IEdQVURldmljZSYsIEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3ImJik7CiAK
IHByaXZhdGU6Ci0gICAgR1BVQmluZEdyb3VwTGF5b3V0KEFyZ3VtZW50c01hcCYmKTsKKyAgICBH
UFVCaW5kR3JvdXBMYXlvdXQoQXJndW1lbnRFbmNvZGVycyYmKTsKIAotICAgIEFyZ3VtZW50c01h
cCBtX2FyZ3VtZW50c01hcDsKKyAgICBBcmd1bWVudEVuY29kZXJzIG1fYXJndW1lbnRFbmNvZGVy
czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5jcHAKaW5kZXggODA5N2Q1OTBjNmM1NDRj
ZDJkYjIzMGM4NjEwNGI5OGJlMjI0NTBjOC4uMTEzMjllZTg1ZTUxYjAyYmQzMWM4MWIzZmUyYTIx
Mzk0MzJkNzRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVURldmljZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVURldmljZS5jcHAKQEAgLTQ2LDkgKzQ2LDkgQEAgUmVmUHRyPEdQVUJ1ZmZlcj4gR1BV
RGV2aWNlOjpjcmVhdGVCdWZmZXIoR1BVQnVmZmVyRGVzY3JpcHRvciYmIGRlc2NyaXB0b3IpIGNv
bnMKICAgICByZXR1cm4gR1BVQnVmZmVyOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUoZGVzY3JpcHRv
cikpOwogfQogCi1SZWY8R1BVQmluZEdyb3VwTGF5b3V0PiBHUFVEZXZpY2U6OmNyZWF0ZUJpbmRH
cm91cExheW91dChHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yJiYgZGVzY3JpcHRvcikgY29u
c3QKK1JlZlB0cjxHUFVCaW5kR3JvdXBMYXlvdXQ+IEdQVURldmljZTo6dHJ5Q3JlYXRlQmluZEdy
b3VwTGF5b3V0KEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3ImJiBkZXNjcmlwdG9yKSBjb25z
dAogewotICAgIHJldHVybiBHUFVCaW5kR3JvdXBMYXlvdXQ6OmNyZWF0ZSgqdGhpcywgV1RGTW92
ZShkZXNjcmlwdG9yKSk7CisgICAgcmV0dXJuIEdQVUJpbmRHcm91cExheW91dDo6dHJ5Q3JlYXRl
KCp0aGlzLCBXVEZNb3ZlKGRlc2NyaXB0b3IpKTsKIH0KIAogUmVmPEdQVVBpcGVsaW5lTGF5b3V0
PiBHUFVEZXZpY2U6OmNyZWF0ZVBpcGVsaW5lTGF5b3V0KEdQVVBpcGVsaW5lTGF5b3V0RGVzY3Jp
cHRvciYmIGRlc2NyaXB0b3IpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvR1BVRGV2aWNlLmgKaW5kZXggNWM5ZDMwOWEzMjFjNjEzYTc4NTAyZGI5YzU2
MWViYWM1MGE3OGJhNy4uMzc2ZDBmZTYyZmJkMzNmYmY3ZTJlMTZjMDY0YmRiMjJhMDRmZjQ5NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmlj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2Uu
aApAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAKICAgICBSZWZQdHI8R1BVQnVmZmVyPiBjcmVh
dGVCdWZmZXIoR1BVQnVmZmVyRGVzY3JpcHRvciYmKSBjb25zdDsKIAotICAgIFJlZjxHUFVCaW5k
R3JvdXBMYXlvdXQ+IGNyZWF0ZUJpbmRHcm91cExheW91dChHUFVCaW5kR3JvdXBMYXlvdXREZXNj
cmlwdG9yJiYpIGNvbnN0OworICAgIFJlZlB0cjxHUFVCaW5kR3JvdXBMYXlvdXQ+IHRyeUNyZWF0
ZUJpbmRHcm91cExheW91dChHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yJiYpIGNvbnN0Owog
ICAgIFJlZjxHUFVQaXBlbGluZUxheW91dD4gY3JlYXRlUGlwZWxpbmVMYXlvdXQoR1BVUGlwZWxp
bmVMYXlvdXREZXNjcmlwdG9yJiYpIGNvbnN0OwogCiAgICAgUmVmUHRyPEdQVVNoYWRlck1vZHVs
ZT4gY3JlYXRlU2hhZGVyTW9kdWxlKEdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3ImJikgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2Ev
R1BVQmluZEdyb3VwTGF5b3V0TWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvY29jb2EvR1BVQmluZEdyb3VwTGF5b3V0TWV0YWwubW0KaW5kZXggNGZjMzQ3NzNj
MWExYzk4MmIwMTViZWVmYjdhMTVmNzU4YzY0YWEzZi4uMDQ2NDBjYTc3NTRlMDc5ZDAyM2JiMjFi
ZWRkMTNiYjYxODJiNGZiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cExheW91dE1ldGFsLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBMYXlvdXRNZXRh
bC5tbQpAQCAtMjksNyArMjksOSBAQAogI2lmIEVOQUJMRShXRUJHUFUpCiAKICNpbXBvcnQgIkdQ
VURldmljZS5oIgorI2ltcG9ydCAiTG9nZ2luZy5oIgogCisjaW1wb3J0IDxGb3VuZGF0aW9uL0Zv
dW5kYXRpb24uaD4KICNpbXBvcnQgPE1ldGFsL01ldGFsLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tP
YmpDRXhjZXB0aW9ucy5oPgogCkBAIC00OCw1NyArNTAsNzQgQEAgc3RhdGljIE1UTERhdGFUeXBl
IE1UTERhdGFUeXBlRm9yQmluZGluZ1R5cGUoR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZzo6Qmlu
ZGluZ1QKICAgICB9CiB9CiAKLXVzaW5nIEFyZ3VtZW50QXJyYXlzTWFwID0gSGFzaE1hcDxHUFVT
aGFkZXJTdGFnZUZsYWdzLCBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk8TVRMQXJndW1lbnREZXNj
cmlwdG9yICo+Pj47Ci1zdGF0aWMgdm9pZCBhcHBlbmRBcmd1bWVudFRvQXJyYXlJbk1hcChBcmd1
bWVudEFycmF5c01hcCYgbWFwLCBHUFVTaGFkZXJTdGFnZUZsYWdzIHN0YWdlLCBSZXRhaW5QdHI8
TVRMQXJndW1lbnREZXNjcmlwdG9yPiBhcmd1bWVudCkKK3VzaW5nIEFyZ3VtZW50QXJyYXkgPSBS
ZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk8TVRMQXJndW1lbnREZXNjcmlwdG9yICo+PjsKK3N0YXRp
YyB2b2lkIGFwcGVuZEFyZ3VtZW50VG9BcnJheShBcmd1bWVudEFycmF5IGFycmF5LCBSZXRhaW5Q
dHI8TVRMQXJndW1lbnREZXNjcmlwdG9yPiBhcmd1bWVudCkKIHsKLSAgICBhdXRvIGl0ZXJhdG9y
ID0gbWFwLmZpbmQoc3RhZ2UpOwotICAgIGlmIChpdGVyYXRvciA9PSBtYXAuZW5kKCkpIHsKLSAg
ICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwotICAgICAgICBtYXAuc2V0KHN0YWdl
LCBbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6YXJndW1lbnQuZ2V0KCks
IG5pbF0pOwotICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwotICAgIH0gZWxzZQot
ICAgICAgICBbaXRlcmF0b3ItPnZhbHVlIGFkZE9iamVjdDphcmd1bWVudC5nZXQoKV07CisgICAg
aWYgKCFhcnJheSkKKyAgICAgICAgYXJyYXkgPSBbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0
V2l0aE9iamVjdHM6YXJndW1lbnQuZ2V0KCksIG5pbF07CisgICAgZWxzZQorICAgICAgICBbYXJy
YXkgYWRkT2JqZWN0OmFyZ3VtZW50LmdldCgpXTsKIH0KIAotUmVmPEdQVUJpbmRHcm91cExheW91
dD4gR1BVQmluZEdyb3VwTGF5b3V0OjpjcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIEdQ
VUJpbmRHcm91cExheW91dERlc2NyaXB0b3ImJiBkZXNjcmlwdG9yKQorc3RhdGljIFJldGFpblB0
cjxNVExBcmd1bWVudEVuY29kZXI+IG5ld0VuY29kZXIoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2Us
IEFyZ3VtZW50QXJyYXkgYXJyYXkpCit7CisgICAgUmV0YWluUHRyPE1UTEFyZ3VtZW50RW5jb2Rl
cj4gZW5jb2RlcjsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgZW5jb2Rl
ciA9IGFkb3B0TlMoW2RldmljZS5wbGF0Zm9ybURldmljZSgpIG5ld0FyZ3VtZW50RW5jb2Rlcldp
dGhBcmd1bWVudHM6YXJyYXkuZ2V0KCldKTsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
OworICAgIGlmICghZW5jb2RlcikKKyAgICAgICAgTE9HKFdlYkdQVSwgIkdQVUJpbmRHcm91cExh
eW91dDo6dHJ5Q3JlYXRlKCk6IFVuYWJsZSB0byBjcmVhdGUgTVRMQXJndW1lbnRFbmNvZGVyISIp
OworCisgICAgcmV0dXJuIGVuY29kZXI7Cit9OworCitSZWZQdHI8R1BVQmluZEdyb3VwTGF5b3V0
PiBHUFVCaW5kR3JvdXBMYXlvdXQ6OnRyeUNyZWF0ZShjb25zdCBHUFVEZXZpY2UmIGRldmljZSwg
R1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvciYmIGRlc2NyaXB0b3IpCiB7Ci0gICAgQXJndW1l
bnRBcnJheXNNYXAgYXJndW1lbnRBcnJheXNNYXA7CisgICAgQXJndW1lbnRBcnJheSB2ZXJ0ZXhB
cmd1bWVudHMsIGZyYWdtZW50QXJndW1lbnRzLCBjb21wdXRlQXJndW1lbnRzOwogCiAgICAgZm9y
IChjb25zdCBhdXRvJiBiaW5kaW5nIDogZGVzY3JpcHRvci5iaW5kaW5ncykgewotCiAgICAgICAg
IFJldGFpblB0cjxNVExBcmd1bWVudERlc2NyaXB0b3I+IG10bEFyZ3VtZW50OwogCiAgICAgICAg
IEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKICAgICAgICAgbXRsQXJndW1lbnQgPSBhZG9w
dE5TKFtNVExBcmd1bWVudERlc2NyaXB0b3IgbmV3XSk7CiAgICAgICAgIEVORF9CTE9DS19PQkpD
X0VYQ0VQVElPTlM7CiAKKyAgICAgICAgaWYgKCFtdGxBcmd1bWVudCkgeworICAgICAgICAgICAg
TE9HKFdlYkdQVSwgIkdQVUJpbmRHcm91cExheW91dDo6dHJ5Q3JlYXRlKCk6IFVuYWJsZSB0byBj
cmVhdGUgTVRMQXJndW1lbnREZXNjcmlwdG9yISIpOworICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgICAgIH0KKwogICAgICAgICBtdGxBcmd1bWVudC5nZXQoKS5kYXRhVHlwZSA9IE1U
TERhdGFUeXBlRm9yQmluZGluZ1R5cGUoYmluZGluZy50eXBlKTsKICAgICAgICAgbXRsQXJndW1l
bnQuZ2V0KCkuaW5kZXggPSBiaW5kaW5nLmJpbmRpbmc7CiAKICAgICAgICAgaWYgKGJpbmRpbmcu
dmlzaWJpbGl0eSAmIEdQVVNoYWRlclN0YWdlQml0OjpWRVJURVgpCi0gICAgICAgICAgICBhcHBl
bmRBcmd1bWVudFRvQXJyYXlJbk1hcChhcmd1bWVudEFycmF5c01hcCwgR1BVU2hhZGVyU3RhZ2VC
aXQ6OlZFUlRFWCwgbXRsQXJndW1lbnQpOworICAgICAgICAgICAgYXBwZW5kQXJndW1lbnRUb0Fy
cmF5KHZlcnRleEFyZ3VtZW50cywgbXRsQXJndW1lbnQpOwogICAgICAgICBpZiAoYmluZGluZy52
aXNpYmlsaXR5ICYgR1BVU2hhZGVyU3RhZ2VCaXQ6OkZSQUdNRU5UKQotICAgICAgICAgICAgYXBw
ZW5kQXJndW1lbnRUb0FycmF5SW5NYXAoYXJndW1lbnRBcnJheXNNYXAsIEdQVVNoYWRlclN0YWdl
Qml0OjpGUkFHTUVOVCwgbXRsQXJndW1lbnQpOworICAgICAgICAgICAgYXBwZW5kQXJndW1lbnRU
b0FycmF5KGZyYWdtZW50QXJndW1lbnRzLCBtdGxBcmd1bWVudCk7CiAgICAgICAgIGlmIChiaW5k
aW5nLnZpc2liaWxpdHkgJiBHUFVTaGFkZXJTdGFnZUJpdDo6Q09NUFVURSkKLSAgICAgICAgICAg
IGFwcGVuZEFyZ3VtZW50VG9BcnJheUluTWFwKGFyZ3VtZW50QXJyYXlzTWFwLCBHUFVTaGFkZXJT
dGFnZUJpdDo6Q09NUFVURSwgbXRsQXJndW1lbnQpOworICAgICAgICAgICAgYXBwZW5kQXJndW1l
bnRUb0FycmF5KGNvbXB1dGVBcmd1bWVudHMsIG10bEFyZ3VtZW50KTsKICAgICB9CiAKLSAgICBB
cmd1bWVudHNNYXAgYXJndW1lbnRzTWFwOwotCi0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOworICAgIEFyZ3VtZW50RW5jb2RlcnMgZW5jb2RlcnM7CiAKLSAgICBmb3IgKGNvbnN0IGF1
dG8mIGFyZ3VtZW50QXJyYXlQYWlyIDogYXJndW1lbnRBcnJheXNNYXApIHsKLSAgICAgICAgYXV0
byBtdGxBcmd1bWVudEVuY29kZXIgPSBhZG9wdE5TKFtkZXZpY2UucGxhdGZvcm1EZXZpY2UoKSBu
ZXdBcmd1bWVudEVuY29kZXJXaXRoQXJndW1lbnRzOmFyZ3VtZW50QXJyYXlQYWlyLnZhbHVlLmdl
dCgpXSk7Ci0gICAgICAgIGFyZ3VtZW50c01hcC5zZXQoYXJndW1lbnRBcnJheVBhaXIua2V5LCBt
dGxBcmd1bWVudEVuY29kZXIpOworICAgIGlmICh2ZXJ0ZXhBcmd1bWVudHMpIHsKKyAgICAgICAg
aWYgKCEoZW5jb2RlcnMudmVydGV4ID0gbmV3RW5jb2RlcihkZXZpY2UsIHZlcnRleEFyZ3VtZW50
cykpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIGlmIChmcmFnbWVu
dEFyZ3VtZW50cykgeworICAgICAgICBpZiAoIShlbmNvZGVycy5mcmFnbWVudCA9IG5ld0VuY29k
ZXIoZGV2aWNlLCBmcmFnbWVudEFyZ3VtZW50cykpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgfQorICAgIGlmIChjb21wdXRlQXJndW1lbnRzKSB7CisgICAgICAgIGlmICghKGVu
Y29kZXJzLmNvbXB1dGUgPSBuZXdFbmNvZGVyKGRldmljZSwgY29tcHV0ZUFyZ3VtZW50cykpKQor
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgRU5EX0JMT0NLX09CSkNf
RVhDRVBUSU9OUzsKLQotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQVUJpbmRHcm91cExheW91
dChXVEZNb3ZlKGFyZ3VtZW50c01hcCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdQVUJp
bmRHcm91cExheW91dChXVEZNb3ZlKGVuY29kZXJzKSkpOwogfQogCi1HUFVCaW5kR3JvdXBMYXlv
dXQ6OkdQVUJpbmRHcm91cExheW91dChBcmd1bWVudHNNYXAmJiBtYXApCi0gICAgOiBtX2FyZ3Vt
ZW50c01hcChtYXApCitHUFVCaW5kR3JvdXBMYXlvdXQ6OkdQVUJpbmRHcm91cExheW91dChBcmd1
bWVudEVuY29kZXJzJiYgZW5jb2RlcnMpCisgICAgOiBtX2FyZ3VtZW50RW5jb2RlcnMoV1RGTW92
ZShlbmNvZGVycykpCiB7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357965</attachid>
            <date>2018-12-21 12:15:45 -0800</date>
            <delta_ts>2018-12-21 12:46:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192990-20181221121544.patch</filename>
            <type>text/plain</type>
            <size>17525</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDc5OTA4MzM2MTI5NTAy
ZDFmMzA5ZWQ0MDkyYjAyMjVjYzRmOTNkMy4uNTkyYzU5ZjY5ZDY4NGFlMjYwN2NhYzI3YjVlN2Y5
Njg5NTc1ZjAyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE4LTEyLTIxICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gR1BVQmlu
ZEdyb3VwTGF5b3V0IHJlZmFjdG9yaW5nOiBubyBIYXNoTWFwLCBhbmQgZmFpbHVyZSBsb2dnaW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI5OTAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3Rv
ciBhd2F5IHRoZSB1bm5lY2Vzc2FyeSBIYXNoTWFwcyB3aGVuIGNyZWF0aW5nIE1UTEFyZ3VtZW50
RW5jb2RlcnMgaW4gR1BVQmluZEdyb3VwTGF5b3V0IGNyZWF0aW9uLgorICAgICAgICBBbHNvIHVw
ZGF0ZSBHUFVCaW5kR3JvdXBMYXlvdXQ6OmNyZWF0ZSAtPiB0cnlDcmVhdGUsIGluIG9yZGVyIHRv
IGJldHRlciBoYW5kbGUgT2JqZWN0aXZlLUMgZXhjZXB0aW9ucy4KKworICAgICAgICBObyBuZXcg
dGVzdHM7IG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1
L1dlYkdQVUJpbmRHcm91cExheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVCaW5k
R3JvdXBMYXlvdXQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVCaW5kR3JvdXBM
YXlvdXQ6OldlYkdQVUJpbmRHcm91cExheW91dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUv
V2ViR1BVQmluZEdyb3VwTGF5b3V0Lmg6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVCaW5kR3Jv
dXBMYXlvdXQ6OmJpbmRHcm91cExheW91dCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvV2ViR1BVRGV2aWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVURldmljZTo6Y3Jl
YXRlQmluZEdyb3VwTGF5b3V0IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVQmluZEdyb3VwTGF5b3V0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVURldmljZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OnRyeUNyZWF0ZUJp
bmRHcm91cExheW91dCBjb25zdCk6IFJlbmFtZWQgZnJvbSA6OmNyZWF0ZSouIE5vdyByZXR1cm5p
bmcgYSBSZWZQdHIuIAorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpjcmVhdGVCaW5kR3Jv
dXBMYXlvdXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVEZXZpY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BV
QmluZEdyb3VwTGF5b3V0TWV0YWwubW06CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRBcmd1bWVu
dFRvQXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6bmV3RW5jb2Rlcik6CisgICAgICAgIChXZWJD
b3JlOjpHUFVCaW5kR3JvdXBMYXlvdXQ6OnRyeUNyZWF0ZSk6IFJlbmFtZWQgZnJvbSA6OmNyZWF0
ZS4gTm93IHJldHVybmluZyBhIFJlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91
cExheW91dDo6R1BVQmluZEdyb3VwTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OmFwcGVuZEFy
Z3VtZW50VG9BcnJheUluTWFwKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRH
cm91cExheW91dDo6Y3JlYXRlKTogRGVsZXRlZC4KKworICAgICAgICBEZWxldGVkIHVubmVlZGVk
IEdQVUJpbmRHcm91cExheW91dC5jcHA6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVCaW5kR3JvdXBMYXlvdXQuY3BwOiBSZW1vdmVkLgorCiAyMDE4LTEy
LTIxICBKdXN0aW4gTWljaGF1ZCAgPGp1c3Rpbl9taWNoYXVkQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXBlYXRlZCBiYWNrZ3JvdW5kIGltYWdlcyB3aXRoIHplcm8gc2l6ZSBzaG91bGQgZGlzcGxh
eSB0aGUgYmFja2dyb3VuZCBjb2xvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVQmluZEdyb3VwTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cExheW91dC5jcHAKaW5kZXggZDk4N2JmMzMyNjc4NDRl
ZDUwNzVlODNlMjY1ZjZjMmI2NGRmYWJlZi4uZDNkMmY4NzkwMTRlNTYzZGY5MTUzNjA1YmIwZTMw
NWY2M2ZkMTc1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVQmluZEdyb3VwTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVCaW5kR3JvdXBMYXlvdXQuY3BwCkBAIC0zMCwxMiArMzAsMTIgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1SZWY8V2ViR1BVQmluZEdyb3VwTGF5b3V0PiBXZWJHUFVCaW5kR3Jv
dXBMYXlvdXQ6OmNyZWF0ZShSZWY8R1BVQmluZEdyb3VwTGF5b3V0PiYmIGxheW91dCkKK1JlZjxX
ZWJHUFVCaW5kR3JvdXBMYXlvdXQ+IFdlYkdQVUJpbmRHcm91cExheW91dDo6Y3JlYXRlKFJlZlB0
cjxHUFVCaW5kR3JvdXBMYXlvdXQ+JiYgbGF5b3V0KQogewogICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYkdQVUJpbmRHcm91cExheW91dChXVEZNb3ZlKGxheW91dCkpKTsKIH0KIAotV2ViR1BV
QmluZEdyb3VwTGF5b3V0OjpXZWJHUFVCaW5kR3JvdXBMYXlvdXQoUmVmPEdQVUJpbmRHcm91cExh
eW91dD4mJiBsYXlvdXQpCitXZWJHUFVCaW5kR3JvdXBMYXlvdXQ6OldlYkdQVUJpbmRHcm91cExh
eW91dChSZWZQdHI8R1BVQmluZEdyb3VwTGF5b3V0PiYmIGxheW91dCkKICAgICA6IG1fYmluZEdy
b3VwTGF5b3V0KFdURk1vdmUobGF5b3V0KSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91cExheW91dC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwTGF5b3V0LmgKaW5kZXggYmUyOTIwM2Ez
ZWUyNDU4YTZmOWNiNDc3ODQ5ZTIxYjQ4ZTM3OTFiYy4uZjljMGY4MzA1MGY2NzkxNzM3YzJmNTNh
MDkyMjAwYTVmZGVhNmFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVQmluZEdyb3VwTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVQmluZEdyb3VwTGF5b3V0LmgKQEAgLTM2LDE0ICszNiwxNCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdlYkdQVUJpbmRHcm91cExheW91dCA6IHB1YmxpYyBSZWZD
b3VudGVkPFdlYkdQVUJpbmRHcm91cExheW91dD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
V2ViR1BVQmluZEdyb3VwTGF5b3V0PiBjcmVhdGUoUmVmPEdQVUJpbmRHcm91cExheW91dD4mJik7
CisgICAgc3RhdGljIFJlZjxXZWJHUFVCaW5kR3JvdXBMYXlvdXQ+IGNyZWF0ZShSZWZQdHI8R1BV
QmluZEdyb3VwTGF5b3V0PiYmKTsKIAotICAgIFJlZlB0cjxHUFVCaW5kR3JvdXBMYXlvdXQ+IGJp
bmRHcm91cExheW91dCgpIGNvbnN0IHsgcmV0dXJuIG1fYmluZEdyb3VwTGF5b3V0LmNvcHlSZWYo
KTsgfQorICAgIFJlZlB0cjxHUFVCaW5kR3JvdXBMYXlvdXQ+IGJpbmRHcm91cExheW91dCgpIGNv
bnN0IHsgcmV0dXJuIG1fYmluZEdyb3VwTGF5b3V0OyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGlj
aXQgV2ViR1BVQmluZEdyb3VwTGF5b3V0KFJlZjxHUFVCaW5kR3JvdXBMYXlvdXQ+JiYpOworICAg
IGV4cGxpY2l0IFdlYkdQVUJpbmRHcm91cExheW91dChSZWZQdHI8R1BVQmluZEdyb3VwTGF5b3V0
PiYmKTsKIAotICAgIFJlZjxHUFVCaW5kR3JvdXBMYXlvdXQ+IG1fYmluZEdyb3VwTGF5b3V0Owor
ICAgIFJlZlB0cjxHUFVCaW5kR3JvdXBMYXlvdXQ+IG1fYmluZEdyb3VwTGF5b3V0OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVURldmljZS5jcHAKaW5kZXggOTQxNWMzNWZiMWIxNGI1MzUyMTAxOGQzZDdiMTYwNjNj
MWYyYzMzYi4uNzNhMWFhNjE1MzY5YmYxY2NlM2Q5M2IxZmE3OTcwNDY3N2IzNzY4NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCkBAIC02OSw3
ICs2OSw3IEBAIFJlZlB0cjxXZWJHUFVCdWZmZXI+IFdlYkdQVURldmljZTo6Y3JlYXRlQnVmZmVy
KFdlYkdQVUJ1ZmZlckRlc2NyaXB0b3ImJiBkZXNjcmlwCiAKIFJlZjxXZWJHUFVCaW5kR3JvdXBM
YXlvdXQ+IFdlYkdQVURldmljZTo6Y3JlYXRlQmluZEdyb3VwTGF5b3V0KFdlYkdQVUJpbmRHcm91
cExheW91dERlc2NyaXB0b3ImJiBkZXNjcmlwdG9yKSBjb25zdAogewotICAgIGF1dG8gbGF5b3V0
ID0gbV9kZXZpY2UtPmNyZWF0ZUJpbmRHcm91cExheW91dChHUFVCaW5kR3JvdXBMYXlvdXREZXNj
cmlwdG9yIHsgZGVzY3JpcHRvci5iaW5kaW5ncyB9KTsKKyAgICBhdXRvIGxheW91dCA9IG1fZGV2
aWNlLT50cnlDcmVhdGVCaW5kR3JvdXBMYXlvdXQoR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRv
ciB7IGRlc2NyaXB0b3IuYmluZGluZ3MgfSk7CiAgICAgcmV0dXJuIFdlYkdQVUJpbmRHcm91cExh
eW91dDo6Y3JlYXRlKFdURk1vdmUobGF5b3V0KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYThj
NDczNzI4YWE4ODc4NjNmNjc0NGM3NjFjZDBmZmE5OGJkZGE2NC4uNGVmNzAwNDQ1NTMwZmMyMWI0
MmY3ODllYjU0MTNkMzEzNDBkY2ZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE3NDMsNyArMTc0Myw2
IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL1Nwb3RMaWdodFNvdXJjZS5jcHAKIAotcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRH
cm91cExheW91dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwCiBwbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVUGlwZWxpbmVMYXlvdXQuY3BwCiBwbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvbGVnYWN5L0dQVUxlZ2FjeUJ1ZmZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxZGY4ZDdlMTMwMWQ3YTAwYzE2
OTAzOWQzMjI4ZTY3YjBiMmQxMDliLi41YzVjYzFmMmQwN2I2ZmYyYzI3NWVlOWE2YTEzNmZkYmU4
NTgzZDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0xMzczOCw3ICsxMzczOCw2IEBACiAJCUQwMUEyN0FDMTBDOUJGRDgwMDAy
NkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNwYWNlU3BsaXRTdHJpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDAy
MzJCNTgyMUNCNDlCNzAwOTQ4M0I5IC8qIEdQVUJpbmRHcm91cExheW91dE1ldGFsLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gR1BVQmluZEdyb3VwTGF5b3V0TWV0YWwubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUQwMjQ1NEQwMjFDNEE0MUMwMEI3MzYyOCAvKiBHUFVCaW5kR3Jv
dXBMYXlvdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVQmluZEdyb3VwTGF5b3V0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUQwMjQ1NEQxMjFDNEE0MUMwMEI3MzYyOCAvKiBHUFVCaW5k
R3JvdXBMYXlvdXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR1BVQmluZEdyb3VwTGF5b3V0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDAyQjgzRUQyMUM4Mzk3QTAwRjg1NDcz
IC8qIFdlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVUJpbmRH
cm91cExheW91dERlc2NyaXB0b3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
MDJDMjY5MTIxODE0MTZEMDBEODE4RTQgLyogV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRDAyQzI2OTIyMTgxNDE2RDAwRDgxOEU0IC8qIFdlYkdQVUFkYXB0ZXJEZXNj
cmlwdG9yLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVBZGFwdGVyRGVzY3JpcHRvci5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xODA2NCw3ICsxODA2Myw2IEBACiAJCQljaGlsZHJlbiA9ICgK
IAkJCQlEMDg3Q0UzNzIxQUNBOTQyMDBCREUxNzQgLyogY29jb2EgKi8sCiAJCQkJMzEyRkY4Q0Uy
MUE0QzMzRjAwRUIxOTlEIC8qIGxlZ2FjeSAqLywKLQkJCQlEMDI0NTREMTIxQzRBNDFDMDBCNzM2
MjggLyogR1BVQmluZEdyb3VwTGF5b3V0LmNwcCAqLywKIAkJCQlEMDI0NTREMDIxQzRBNDFDMDBC
NzM2MjggLyogR1BVQmluZEdyb3VwTGF5b3V0LmggKi8sCiAJCQkJRDBCOEJCMDEyMUM0NkU3ODAw
MEM3NjgxIC8qIEdQVUJpbmRHcm91cExheW91dEJpbmRpbmcuaCAqLywKIAkJCQlEMDgzRDk4NDIx
QzQ4MDUwMDA4RThFRkYgLyogR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91
cExheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmlu
ZEdyb3VwTGF5b3V0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzI5YzA2Mjgz
NGEwM2NhODNkODE5N2M0YTAwMWUwYjIyMWU5ODYwYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVQmluZEdyb3VwTGF5b3V0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiR1BVQmluZEdyb3Vw
TGF5b3V0LmgiCi0KLSNpZiBFTkFCTEUoV0VCR1BVKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCi0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5kR3Jv
dXBMYXlvdXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCaW5k
R3JvdXBMYXlvdXQuaAppbmRleCAxYzBhOTE1OTBiZjE2M2Q4Njc5Zjc4OGQxMmU1NzUzYTRiMTU3
YzExLi5kYjJlMjE5NTBjODBhNmRhOWViNzIzOWVjNjlhNWY1NzFmZTU2NmM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQmluZEdyb3VwTGF5b3V0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJpbmRHcm91
cExheW91dC5oCkBAIC0yOSwxMSArMjksOSBAQAogCiAjaW5jbHVkZSAiR1BVQmluZEdyb3VwTGF5
b3V0RGVzY3JpcHRvci5oIgogCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3
dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KIAogT0JKQ19QUk9UT0NPTChNVExBcmd1bWVudEVuY29kZXIpOwogCkBAIC00MywxNCArNDEs
MTggQEAgY2xhc3MgR1BVRGV2aWNlOwogCiBjbGFzcyBHUFVCaW5kR3JvdXBMYXlvdXQgOiBwdWJs
aWMgUmVmQ291bnRlZDxHUFVCaW5kR3JvdXBMYXlvdXQ+IHsKIHB1YmxpYzoKLSAgICB1c2luZyBB
cmd1bWVudHNNYXAgPSBIYXNoTWFwPEdQVVNoYWRlclN0YWdlRmxhZ3MsIFJldGFpblB0cjxNVExB
cmd1bWVudEVuY29kZXI+PjsKKyAgICBzdHJ1Y3QgQXJndW1lbnRFbmNvZGVycyB7CisgICAgICAg
IFJldGFpblB0cjxNVExBcmd1bWVudEVuY29kZXI+IHZlcnRleDsKKyAgICAgICAgUmV0YWluUHRy
PE1UTEFyZ3VtZW50RW5jb2Rlcj4gZnJhZ21lbnQ7CisgICAgICAgIFJldGFpblB0cjxNVExBcmd1
bWVudEVuY29kZXI+IGNvbXB1dGU7CisgICAgfTsKIAotICAgIHN0YXRpYyBSZWY8R1BVQmluZEdy
b3VwTGF5b3V0PiBjcmVhdGUoY29uc3QgR1BVRGV2aWNlJiwgR1BVQmluZEdyb3VwTGF5b3V0RGVz
Y3JpcHRvciYmKTsKKyAgICBzdGF0aWMgUmVmUHRyPEdQVUJpbmRHcm91cExheW91dD4gdHJ5Q3Jl
YXRlKGNvbnN0IEdQVURldmljZSYsIEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3ImJik7CiAK
IHByaXZhdGU6Ci0gICAgR1BVQmluZEdyb3VwTGF5b3V0KEFyZ3VtZW50c01hcCYmKTsKKyAgICBH
UFVCaW5kR3JvdXBMYXlvdXQoQXJndW1lbnRFbmNvZGVycyYmKTsKIAotICAgIEFyZ3VtZW50c01h
cCBtX2FyZ3VtZW50c01hcDsKKyAgICBBcmd1bWVudEVuY29kZXJzIG1fYXJndW1lbnRFbmNvZGVy
czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5jcHAKaW5kZXggODA5N2Q1OTBjNmM1NDRj
ZDJkYjIzMGM4NjEwNGI5OGJlMjI0NTBjOC4uMTEzMjllZTg1ZTUxYjAyYmQzMWM4MWIzZmUyYTIx
Mzk0MzJkNzRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVURldmljZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVURldmljZS5jcHAKQEAgLTQ2LDkgKzQ2LDkgQEAgUmVmUHRyPEdQVUJ1ZmZlcj4gR1BV
RGV2aWNlOjpjcmVhdGVCdWZmZXIoR1BVQnVmZmVyRGVzY3JpcHRvciYmIGRlc2NyaXB0b3IpIGNv
bnMKICAgICByZXR1cm4gR1BVQnVmZmVyOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUoZGVzY3JpcHRv
cikpOwogfQogCi1SZWY8R1BVQmluZEdyb3VwTGF5b3V0PiBHUFVEZXZpY2U6OmNyZWF0ZUJpbmRH
cm91cExheW91dChHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yJiYgZGVzY3JpcHRvcikgY29u
c3QKK1JlZlB0cjxHUFVCaW5kR3JvdXBMYXlvdXQ+IEdQVURldmljZTo6dHJ5Q3JlYXRlQmluZEdy
b3VwTGF5b3V0KEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3ImJiBkZXNjcmlwdG9yKSBjb25z
dAogewotICAgIHJldHVybiBHUFVCaW5kR3JvdXBMYXlvdXQ6OmNyZWF0ZSgqdGhpcywgV1RGTW92
ZShkZXNjcmlwdG9yKSk7CisgICAgcmV0dXJuIEdQVUJpbmRHcm91cExheW91dDo6dHJ5Q3JlYXRl
KCp0aGlzLCBXVEZNb3ZlKGRlc2NyaXB0b3IpKTsKIH0KIAogUmVmPEdQVVBpcGVsaW5lTGF5b3V0
PiBHUFVEZXZpY2U6OmNyZWF0ZVBpcGVsaW5lTGF5b3V0KEdQVVBpcGVsaW5lTGF5b3V0RGVzY3Jp
cHRvciYmIGRlc2NyaXB0b3IpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvR1BVRGV2aWNlLmgKaW5kZXggNWM5ZDMwOWEzMjFjNjEzYTc4NTAyZGI5YzU2
MWViYWM1MGE3OGJhNy4uMzc2ZDBmZTYyZmJkMzNmYmY3ZTJlMTZjMDY0YmRiMjJhMDRmZjQ5NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmlj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2Uu
aApAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAKICAgICBSZWZQdHI8R1BVQnVmZmVyPiBjcmVh
dGVCdWZmZXIoR1BVQnVmZmVyRGVzY3JpcHRvciYmKSBjb25zdDsKIAotICAgIFJlZjxHUFVCaW5k
R3JvdXBMYXlvdXQ+IGNyZWF0ZUJpbmRHcm91cExheW91dChHUFVCaW5kR3JvdXBMYXlvdXREZXNj
cmlwdG9yJiYpIGNvbnN0OworICAgIFJlZlB0cjxHUFVCaW5kR3JvdXBMYXlvdXQ+IHRyeUNyZWF0
ZUJpbmRHcm91cExheW91dChHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yJiYpIGNvbnN0Owog
ICAgIFJlZjxHUFVQaXBlbGluZUxheW91dD4gY3JlYXRlUGlwZWxpbmVMYXlvdXQoR1BVUGlwZWxp
bmVMYXlvdXREZXNjcmlwdG9yJiYpIGNvbnN0OwogCiAgICAgUmVmUHRyPEdQVVNoYWRlck1vZHVs
ZT4gY3JlYXRlU2hhZGVyTW9kdWxlKEdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3ImJikgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2Ev
R1BVQmluZEdyb3VwTGF5b3V0TWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvY29jb2EvR1BVQmluZEdyb3VwTGF5b3V0TWV0YWwubW0KaW5kZXggNGZjMzQ3NzNj
MWExYzk4MmIwMTViZWVmYjdhMTVmNzU4YzY0YWEzZi4uODc2ODBhODNjMGY0MTg5ODgyYzNiODQ5
ZjI4MTYzZmU3MTIwMjFiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cExheW91dE1ldGFsLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBMYXlvdXRNZXRh
bC5tbQpAQCAtMjksNyArMjksOSBAQAogI2lmIEVOQUJMRShXRUJHUFUpCiAKICNpbXBvcnQgIkdQ
VURldmljZS5oIgorI2ltcG9ydCAiTG9nZ2luZy5oIgogCisjaW1wb3J0IDxGb3VuZGF0aW9uL0Zv
dW5kYXRpb24uaD4KICNpbXBvcnQgPE1ldGFsL01ldGFsLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tP
YmpDRXhjZXB0aW9ucy5oPgogCkBAIC00OCw1NyArNTAsNzYgQEAgc3RhdGljIE1UTERhdGFUeXBl
IE1UTERhdGFUeXBlRm9yQmluZGluZ1R5cGUoR1BVQmluZEdyb3VwTGF5b3V0QmluZGluZzo6Qmlu
ZGluZ1QKICAgICB9CiB9CiAKLXVzaW5nIEFyZ3VtZW50QXJyYXlzTWFwID0gSGFzaE1hcDxHUFVT
aGFkZXJTdGFnZUZsYWdzLCBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk8TVRMQXJndW1lbnREZXNj
cmlwdG9yICo+Pj47Ci1zdGF0aWMgdm9pZCBhcHBlbmRBcmd1bWVudFRvQXJyYXlJbk1hcChBcmd1
bWVudEFycmF5c01hcCYgbWFwLCBHUFVTaGFkZXJTdGFnZUZsYWdzIHN0YWdlLCBSZXRhaW5QdHI8
TVRMQXJndW1lbnREZXNjcmlwdG9yPiBhcmd1bWVudCkKK3VzaW5nIEFyZ3VtZW50QXJyYXkgPSBS
ZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk8TVRMQXJndW1lbnREZXNjcmlwdG9yICo+PjsKK3N0YXRp
YyB2b2lkIGFwcGVuZEFyZ3VtZW50VG9BcnJheShBcmd1bWVudEFycmF5IGFycmF5LCBSZXRhaW5Q
dHI8TVRMQXJndW1lbnREZXNjcmlwdG9yPiBhcmd1bWVudCkKIHsKLSAgICBhdXRvIGl0ZXJhdG9y
ID0gbWFwLmZpbmQoc3RhZ2UpOwotICAgIGlmIChpdGVyYXRvciA9PSBtYXAuZW5kKCkpIHsKLSAg
ICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwotICAgICAgICBtYXAuc2V0KHN0YWdl
LCBbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6YXJndW1lbnQuZ2V0KCks
IG5pbF0pOwotICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwotICAgIH0gZWxzZQot
ICAgICAgICBbaXRlcmF0b3ItPnZhbHVlIGFkZE9iamVjdDphcmd1bWVudC5nZXQoKV07CisgICAg
QkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIGlmICghYXJyYXkpCisgICAgICAgIGFy
cmF5ID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOmFyZ3VtZW50Lmdl
dCgpLCBuaWxdOworICAgIGVsc2UKKyAgICAgICAgW2FycmF5IGFkZE9iamVjdDphcmd1bWVudC5n
ZXQoKV07CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIAotUmVmPEdQVUJpbmRH
cm91cExheW91dD4gR1BVQmluZEdyb3VwTGF5b3V0OjpjcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBk
ZXZpY2UsIEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3ImJiBkZXNjcmlwdG9yKQorc3RhdGlj
IFJldGFpblB0cjxNVExBcmd1bWVudEVuY29kZXI+IG5ld0VuY29kZXIoY29uc3QgR1BVRGV2aWNl
JiBkZXZpY2UsIEFyZ3VtZW50QXJyYXkgYXJyYXkpCiB7Ci0gICAgQXJndW1lbnRBcnJheXNNYXAg
YXJndW1lbnRBcnJheXNNYXA7CisgICAgUmV0YWluUHRyPE1UTEFyZ3VtZW50RW5jb2Rlcj4gZW5j
b2RlcjsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgZW5jb2RlciA9IGFk
b3B0TlMoW2RldmljZS5wbGF0Zm9ybURldmljZSgpIG5ld0FyZ3VtZW50RW5jb2RlcldpdGhBcmd1
bWVudHM6YXJyYXkuZ2V0KCldKTsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAg
IGlmICghZW5jb2RlcikKKyAgICAgICAgTE9HKFdlYkdQVSwgIkdQVUJpbmRHcm91cExheW91dDo6
dHJ5Q3JlYXRlKCk6IFVuYWJsZSB0byBjcmVhdGUgTVRMQXJndW1lbnRFbmNvZGVyISIpOwogCi0g
ICAgZm9yIChjb25zdCBhdXRvJiBiaW5kaW5nIDogZGVzY3JpcHRvci5iaW5kaW5ncykgeworICAg
IHJldHVybiBlbmNvZGVyOworfTsKKworUmVmUHRyPEdQVUJpbmRHcm91cExheW91dD4gR1BVQmlu
ZEdyb3VwTGF5b3V0Ojp0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UsIEdQVUJpbmRH
cm91cExheW91dERlc2NyaXB0b3ImJiBkZXNjcmlwdG9yKQoreworICAgIEFyZ3VtZW50QXJyYXkg
dmVydGV4QXJndW1lbnRzLCBmcmFnbWVudEFyZ3VtZW50cywgY29tcHV0ZUFyZ3VtZW50czsKIAor
ICAgIGZvciAoY29uc3QgYXV0byYgYmluZGluZyA6IGRlc2NyaXB0b3IuYmluZGluZ3MpIHsKICAg
ICAgICAgUmV0YWluUHRyPE1UTEFyZ3VtZW50RGVzY3JpcHRvcj4gbXRsQXJndW1lbnQ7CiAKICAg
ICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAgICAgICBtdGxBcmd1bWVudCA9
IGFkb3B0TlMoW01UTEFyZ3VtZW50RGVzY3JpcHRvciBuZXddKTsKICAgICAgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKIAorICAgICAgICBpZiAoIW10bEFyZ3VtZW50KSB7CisgICAgICAg
ICAgICBMT0coV2ViR1BVLCAiR1BVQmluZEdyb3VwTGF5b3V0Ojp0cnlDcmVhdGUoKTogVW5hYmxl
IHRvIGNyZWF0ZSBNVExBcmd1bWVudERlc2NyaXB0b3IhIik7CisgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICAgICAgfQorCiAgICAgICAgIG10bEFyZ3VtZW50LmdldCgpLmRhdGFUeXBl
ID0gTVRMRGF0YVR5cGVGb3JCaW5kaW5nVHlwZShiaW5kaW5nLnR5cGUpOwogICAgICAgICBtdGxB
cmd1bWVudC5nZXQoKS5pbmRleCA9IGJpbmRpbmcuYmluZGluZzsKIAogICAgICAgICBpZiAoYmlu
ZGluZy52aXNpYmlsaXR5ICYgR1BVU2hhZGVyU3RhZ2VCaXQ6OlZFUlRFWCkKLSAgICAgICAgICAg
IGFwcGVuZEFyZ3VtZW50VG9BcnJheUluTWFwKGFyZ3VtZW50QXJyYXlzTWFwLCBHUFVTaGFkZXJT
dGFnZUJpdDo6VkVSVEVYLCBtdGxBcmd1bWVudCk7CisgICAgICAgICAgICBhcHBlbmRBcmd1bWVu
dFRvQXJyYXkodmVydGV4QXJndW1lbnRzLCBtdGxBcmd1bWVudCk7CiAgICAgICAgIGlmIChiaW5k
aW5nLnZpc2liaWxpdHkgJiBHUFVTaGFkZXJTdGFnZUJpdDo6RlJBR01FTlQpCi0gICAgICAgICAg
ICBhcHBlbmRBcmd1bWVudFRvQXJyYXlJbk1hcChhcmd1bWVudEFycmF5c01hcCwgR1BVU2hhZGVy
U3RhZ2VCaXQ6OkZSQUdNRU5ULCBtdGxBcmd1bWVudCk7CisgICAgICAgICAgICBhcHBlbmRBcmd1
bWVudFRvQXJyYXkoZnJhZ21lbnRBcmd1bWVudHMsIG10bEFyZ3VtZW50KTsKICAgICAgICAgaWYg
KGJpbmRpbmcudmlzaWJpbGl0eSAmIEdQVVNoYWRlclN0YWdlQml0OjpDT01QVVRFKQotICAgICAg
ICAgICAgYXBwZW5kQXJndW1lbnRUb0FycmF5SW5NYXAoYXJndW1lbnRBcnJheXNNYXAsIEdQVVNo
YWRlclN0YWdlQml0OjpDT01QVVRFLCBtdGxBcmd1bWVudCk7CisgICAgICAgICAgICBhcHBlbmRB
cmd1bWVudFRvQXJyYXkoY29tcHV0ZUFyZ3VtZW50cywgbXRsQXJndW1lbnQpOwogICAgIH0KIAot
ICAgIEFyZ3VtZW50c01hcCBhcmd1bWVudHNNYXA7Ci0KLSAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CisgICAgQXJndW1lbnRFbmNvZGVycyBlbmNvZGVyczsKIAotICAgIGZvciAoY29u
c3QgYXV0byYgYXJndW1lbnRBcnJheVBhaXIgOiBhcmd1bWVudEFycmF5c01hcCkgewotICAgICAg
ICBhdXRvIG10bEFyZ3VtZW50RW5jb2RlciA9IGFkb3B0TlMoW2RldmljZS5wbGF0Zm9ybURldmlj
ZSgpIG5ld0FyZ3VtZW50RW5jb2RlcldpdGhBcmd1bWVudHM6YXJndW1lbnRBcnJheVBhaXIudmFs
dWUuZ2V0KCldKTsKLSAgICAgICAgYXJndW1lbnRzTWFwLnNldChhcmd1bWVudEFycmF5UGFpci5r
ZXksIG10bEFyZ3VtZW50RW5jb2Rlcik7CisgICAgaWYgKHZlcnRleEFyZ3VtZW50cykgeworICAg
ICAgICBpZiAoIShlbmNvZGVycy52ZXJ0ZXggPSBuZXdFbmNvZGVyKGRldmljZSwgdmVydGV4QXJn
dW1lbnRzKSkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgaWYgKGZy
YWdtZW50QXJndW1lbnRzKSB7CisgICAgICAgIGlmICghKGVuY29kZXJzLmZyYWdtZW50ID0gbmV3
RW5jb2RlcihkZXZpY2UsIGZyYWdtZW50QXJndW1lbnRzKSkpCisgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICB9CisgICAgaWYgKGNvbXB1dGVBcmd1bWVudHMpIHsKKyAgICAgICAgaWYg
KCEoZW5jb2RlcnMuY29tcHV0ZSA9IG5ld0VuY29kZXIoZGV2aWNlLCBjb21wdXRlQXJndW1lbnRz
KSkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TOwotCi0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR1BVQmluZEdyb3Vw
TGF5b3V0KFdURk1vdmUoYXJndW1lbnRzTWFwKSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
R1BVQmluZEdyb3VwTGF5b3V0KFdURk1vdmUoZW5jb2RlcnMpKSk7CiB9CiAKLUdQVUJpbmRHcm91
cExheW91dDo6R1BVQmluZEdyb3VwTGF5b3V0KEFyZ3VtZW50c01hcCYmIG1hcCkKLSAgICA6IG1f
YXJndW1lbnRzTWFwKG1hcCkKK0dQVUJpbmRHcm91cExheW91dDo6R1BVQmluZEdyb3VwTGF5b3V0
KEFyZ3VtZW50RW5jb2RlcnMmJiBlbmNvZGVycykKKyAgICA6IG1fYXJndW1lbnRFbmNvZGVycyhX
VEZNb3ZlKGVuY29kZXJzKSkKIHsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>