<?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>169451</bug_id>
          
          <creation_ts>2017-03-09 15:31:48 -0800</creation_ts>
          <short_desc>WebGPU: Backend - Buffers</short_desc>
          <delta_ts>2017-03-09 16:01:21 -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>WebGL</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>167952</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>dino</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1285644</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-03-09 15:31:48 -0800</bug_when>
    <thetext>WebGPU: Backend - Buffers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285648</commentid>
    <comment_count>1</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-03-09 15:36:33 -0800</bug_when>
    <thetext>&lt;rdar://problem/30959168&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285650</commentid>
    <comment_count>2</comment_count>
      <attachid>304003</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-03-09 15:47:45 -0800</bug_when>
    <thetext>Created attachment 304003
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285653</commentid>
    <comment_count>3</comment_count>
      <attachid>304003</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-03-09 15:54:38 -0800</bug_when>
    <thetext>Comment on attachment 304003
Patch

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

&gt; Source/WebCore/platform/graphics/cocoa/GPUBufferMetal.mm:2
&gt; + * Copyright (C) 2015 Apple Inc. All rights reserved.

Nope.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285657</commentid>
    <comment_count>4</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-03-09 16:01:21 -0800</bug_when>
    <thetext>Committed r213684: &lt;http://trac.webkit.org/changeset/213684&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304003</attachid>
            <date>2017-03-09 15:47:45 -0800</date>
            <delta_ts>2017-03-09 15:54:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169451-20170310104739.patch</filename>
            <type>text/plain</type>
            <size>26139</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzAzNDMxM2ZlMmQ2Yjgw
OTc1ZGM5OWYzNDViYjdiN2I3NGM3YjZkZS4uM2JlMjMxMDA0OWE2NGM0M2E2ZjQ0MGIzZjRlODAz
NmFkYzMwOGE0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE3LTAzLTA5ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJHUFU6IEJhY2tlbmQgLSBC
dWZmZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Njk0NTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMwOTU5MTY4PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCB0aGUgYmFja2VuZCBm
b3IgR1BVQnVmZmVyLCB3aGljaAorICAgICAgICByZXByZXNlbnRzIGEgY2h1bmsgb2YgbWVtb3J5
IHRoYXQgY2FuIGJlIHVzZWQKKyAgICAgICAgYnkgdGhlIEdQVS4gWW91IGNyZWF0ZSBvbmUgdXNp
bmcgYW4gQXJyYXlCdWZmZXJWaWV3LgorCisgICAgICAgIFdlYktpdCBBUEkgVGVzdDogR1BVQnVm
ZmVyLm1tCisKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvR1BVQnVmZmVyTWV0YWwubW06CisgICAgICAgIChXZWJDb3JlOjpHUFVCdWZmZXI6OkdQ
VUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHUFVCdWZmZXI6Omxlbmd0aCk6CisgICAgICAg
IChXZWJDb3JlOjpHUFVCdWZmZXI6OmNvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJ1
ZmZlcjo6cGxhdGZvcm1CdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1BVQnVmZmVyOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVQnVmZmVyOjp+R1BVQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkdQVUJ1ZmZlcjo6bGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJ1ZmZlcjo6Y29udGVu
dHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCdWZmZXIuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdQVURldmljZTo6Y3JlYXRlQnVmZmVyRnJvbURhdGEpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuaDoKKwogMjAxNy0wMy0wOCAgRGVhbiBKYWNrc29uICA8
ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViR1BVOiBCYWNrZW5kIC0gTGlicmFyeSBhbmQg
RnVuY3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZSBi
L1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IDNiZDYzZjZmYTkyMmYxNTYy
ZGVkNzQ1MDYxOGVjM2QzNjMyZThjMjQuLmM2ZmUxMTNiOTQ1Mjc0ODc4OGY5MjU1YTVkY2NhZmMx
MDY5MTg0OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC00MTUsNiArNDE1LDcgQEAg
bGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2cvU3Vi
aW1hZ2VDYWNoZVdpdGhUaW1lci5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jZy9UcmFuc2Zv
cm1hdGlvbk1hdHJpeENHLmNwcAogCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVQnVm
ZmVyTWV0YWwubW0KICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVEZXZpY2VNZXRhbC5t
bQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVUZ1bmN0aW9uTWV0YWwubW0KICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVMaWJyYXJ5TWV0YWwubW0KQEAgLTQzMSw2ICs0MzIs
NyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9j
di9UZXh0dXJlQ2FjaGVDVi5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVy
ZUNvcGllckNWLmNwcAogCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJ1ZmZlci5jcHAK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2dwdS9HUFVGdW5jdGlvbi5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
TGlicmFyeS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA2MTdkMjQ5OGQ5YzA5ODZkMjU2OWUyZjJlNDFkODM1MDZkN2M5NzZj
Li43ZmZhYzVkZjg2N2E2ZDNmMzU2OTBiNjk2ZDdmN2NhYWQxODg3YzBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzYzLDYg
KzEzNjMsOSBAQAogCQkzMTZCREI5QTFFNzBDQkJGMDBERTBENUEgLyogR1BVTGlicmFyeS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZCREI5ODFF
NzBDQkJGMDBERTBENUEgLyogR1BVTGlicmFyeS5jcHAgKi87IH07CiAJCTMxNkJEQjlCMUU3MENC
QkYwMERFMEQ1QSAvKiBHUFVMaWJyYXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMTZCREI5OTFFNzBDQkJGMDBERTBENUEgLyogR1BVTGlicmFyeS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTMxNkJE
QjlFMUU3MENEOTAwMERFMEQ1QSAvKiBHUFVMaWJyYXJ5TWV0YWwubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZCREI5QzFFNzBDRDkwMDBERTBENUEg
LyogR1BVTGlicmFyeU1ldGFsLm1tICovOyB9OworCQkzMTZCREJBNjFFNzFGQTZGMDBERTBENUEg
LyogR1BVQnVmZmVyTWV0YWwubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMTZCREJBNTFFNzFGQTZGMDBERTBENUEgLyogR1BVQnVmZmVyTWV0YWwubW0g
Ki87IH07CisJCTMxNkJEQkE5MUU3MUZBOTMwMERFMEQ1QSAvKiBHUFVCdWZmZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2QkRCQTcxRTcxRkE5
MzAwREUwRDVBIC8qIEdQVUJ1ZmZlci5jcHAgKi87IH07CisJCTMxNkJEQkFBMUU3MUZBOTMwMERF
MEQ1QSAvKiBHUFVCdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxNkJEQkE4MUU3MUZBOTMwMERFMEQ1QSAvKiBHUFVCdWZmZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMTZGRTA3MTBFNkND
QkVFMDBCRjYwODggLyogSlNDU1NLZXlmcmFtZVJ1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RkUwNkQwRTZDQ0JFRTAwQkY2MDg4IC8qIEpT
Q1NTS2V5ZnJhbWVSdWxlLmNwcCAqLzsgfTsKIAkJMzE2RkUwNzIwRTZDQ0JFRTAwQkY2MDg4IC8q
IEpTQ1NTS2V5ZnJhbWVSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMTZGRTA2RTBFNkNDQkVFMDBCRjYwODggLyogSlNDU1NLZXlmcmFtZVJ1bGUu
aCAqLzsgfTsKIAkJMzE2RkUwNzMwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVzUnVs
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZG
RTA2RjBFNkNDQkVFMDBCRjYwODggLyogSlNDU1NLZXlmcmFtZXNSdWxlLmNwcCAqLzsgfTsKQEAg
LTg2ODcsNiArODY5MCw5IEBACiAJCTMxNkJEQjk4MUU3MENCQkYwMERFMEQ1QSAvKiBHUFVMaWJy
YXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQVUxpYnJhcnku
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTZCREI5OTFFNzBDQkJGMDBERTBE
NUEgLyogR1BVTGlicmFyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVM
aWJyYXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNkJEQjlDMUU3MENEOTAw
MERFMEQ1QSAvKiBHUFVMaWJyYXJ5TWV0YWwubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBHUFVMaWJyYXJ5TWV0YWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTMxNkJEQkE1MUU3MUZBNkYwMERFMEQ1QSAvKiBHUFVCdWZmZXJNZXRhbC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdQVUJ1ZmZlck1ldGFsLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTZCREJBNzFFNzFGQTkzMDBERTBENUEgLyog
R1BVQnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQVUJ1
ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkJEQkE4MUU3MUZBOTMw
MERFMEQ1QSAvKiBHUFVCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
R1BVQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNkZFMDZEMEU2Q0NC
RUUwMEJGNjA4OCAvKiBKU0NTU0tleWZyYW1lUnVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0NTU0tleWZyYW1lUnVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTMxNkZFMDZFMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU0NTU0tleWZyYW1lUnVs
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NTU0tleWZyYW1lUnVsZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTZGRTA2RjBFNkNDQkVFMDBCRjYwODgg
LyogSlNDU1NLZXlmcmFtZXNSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTQ1NTS2V5ZnJhbWVzUnVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xNzQ1OSw2ICsxNzQ2NSw4IEBACiAJCTQ5ODc3MEMxMTI0MkM1MEQwMDIyMjZCQSAvKiBn
cHUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTMxNkJE
QkE3MUU3MUZBOTMwMERFMEQ1QSAvKiBHUFVCdWZmZXIuY3BwICovLAorCQkJCTMxNkJEQkE4MUU3
MUZBOTMwMERFMEQ1QSAvKiBHUFVCdWZmZXIuaCAqLywKIAkJCQkzMTZCREI4NDFFNkUwQTIxMDBE
RTBENUEgLyogR1BVRGV2aWNlLmNwcCAqLywKIAkJCQkzMTZCREI4NTFFNkUwQTIxMDBERTBENUEg
LyogR1BVRGV2aWNlLmggKi8sCiAJCQkJMzE2QkRCOTIxRTcwQzg5NzAwREUwRDVBIC8qIEdQVUZ1
bmN0aW9uLmNwcCAqLywKQEAgLTIyNTU2LDYgKzIyNTY0LDcgQEAKIAkJCQlCMkFGRkM3ODBEMDBB
NUMxMDAzMDA3NEQgLyogRm9udENhc2NhZGVDb2NvYS5tbSAqLywKIAkJCQk3QzRFREQ3MzFBN0I2
MDc4MDAxOThDNEQgLyogRm9udENvY29hLm1tICovLAogCQkJCUI1MzIwRDZBMTIyQTI0RTkwMDJE
MTQ0MCAvKiBGb250UGxhdGZvcm1EYXRhQ29jb2EubW0gKi8sCisJCQkJMzE2QkRCQTUxRTcxRkE2
RjAwREUwRDVBIC8qIEdQVUJ1ZmZlck1ldGFsLm1tICovLAogCQkJCTMxNkJEQjg4MUU2RTE0MUMw
MERFMEQ1QSAvKiBHUFVEZXZpY2VNZXRhbC5tbSAqLywKIAkJCQkzMTZCREI5NjFFNzBDQTI0MDBE
RTBENUEgLyogR1BVRnVuY3Rpb25NZXRhbC5tbSAqLywKIAkJCQkzMTZCREI5QzFFNzBDRDkwMDBE
RTBENUEgLyogR1BVTGlicmFyeU1ldGFsLm1tICovLApAQCAtMjc4MTAsNiArMjc4MTksNyBAQAog
CQkJCTA4ODUwNjgwMTFEQTA0NUIwMDE4MkI5OCAvKiBQYWludFBoYXNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBODBFNkNGQjBBMTk4OUNBMDA3RkI4QzUgLyogUGFpci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkQzMTYwQTMxMkIwMjZGNzAwQzFBMzU5IC8qIFBhbm5lci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMzE2QkRCQUExRTcxRkE5MzAwREUwRDVBIC8qIEdQVUJ1ZmZlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkQzMTYwMUExMkIwMjY3NjAwQzFBMzU5IC8qIFBhbm5lck5vZGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUExODg5MEFGMUFBMTNGMjUwMDI2QzMwMSAvKiBQYXJlbnRhbENvbnRyb2xz
Q29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDRDQxRTgxQzNEREIwQTAwOTY1
RDk5IC8qIFBhcnNlZENvbnRlbnRSYW5nZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDU4OCw2ICsz
MDU5OCw3IEBACiAJCQkJN0M2NTc5RjExRTAwODU2NjAwRTNBMjdBIC8qIEpTQXBwbGVQYXlQYXlt
ZW50UmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUU5NkE4RTFEMUEwREREMDBCODY3
NjggLyogSlNBcHBsZVBheVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFOTZBOTAx
RDFBMERERDAwQjg2NzY4IC8qIEpTQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RTZWxlY3RlZEV2ZW50
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxNkJEQkE2MUU3MUZBNkYwMERFMEQ1QSAvKiBHUFVC
dWZmZXJNZXRhbC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDNjU3OUYzMUUwMDg1NjYwMEUzQTI3
QSAvKiBKU0FwcGxlUGF5U2hpcHBpbmdNZXRob2QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFF
OTZBOTIxRDFBMERERDAwQjg2NzY4IC8qIEpTQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVk
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFOTZBOTQxRDFBMERERDAwQjg2NzY4IC8q
IEpTQXBwbGVQYXlWYWxpZGF0ZU1lcmNoYW50RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0z
MTE5NSw2ICszMTIwNiw3IEBACiAJCQkJQjJGQTNERjgwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZH
U3RyaW5nTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0RGQTBBQjc1QTZGMDAwRTVB
QzQgLyogSlNTVkdTdHlsZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNERkMw
QUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHU1ZHRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkzMTZCREJBOTFFNzFGQTkzMDBERTBENUEgLyogR1BVQnVmZmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUIyRkEzREZFMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1N3aXRjaEVsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNFMDAwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHU3lt
Ym9sRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0UwMjBBQjc1QTZGMDAwRTVB
QzQgLyogSlNTVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVCdWZmZXJNZXRh
bC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVUJ1ZmZlck1l
dGFsLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjkwN2JjOTYzMTU5NzUwZmE3NDYzOWRkZWRjM2QxZDZhNWY5YmU3
M2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9HUFVCdWZmZXJNZXRhbC5tbQpAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkdQVUJ1ZmZlci5oIgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2ltcG9ydCAiR1BVRGV2
aWNlLmgiCisjaW1wb3J0ICJMb2dnaW5nLmgiCisKKyNpbXBvcnQgPE1ldGFsL01ldGFsLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworR1BVQnVmZmVyOjpHUFVCdWZmZXIoR1BVRGV2aWNlKiBk
ZXZpY2UsIEFycmF5QnVmZmVyVmlldyogZGF0YSkKK3sKKyAgICBMT0coV2ViR1BVLCAiR1BVQnVm
ZmVyOjpHUFVCdWZmZXIoKSIpOworCisgICAgaWYgKCFkZXZpY2UgfHwgIWRldmljZS0+cGxhdGZv
cm1EZXZpY2UoKSB8fCAhZGF0YSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9idWZmZXIgPSAo
TVRMQnVmZmVyKilbZGV2aWNlLT5wbGF0Zm9ybURldmljZSgpIG5ld0J1ZmZlcldpdGhCeXRlczpk
YXRhLT5iYXNlQWRkcmVzcygpIGxlbmd0aDpkYXRhLT5ieXRlTGVuZ3RoKCkgb3B0aW9uczpNVExS
ZXNvdXJjZU9wdGlvbkNQVUNhY2hlTW9kZURlZmF1bHRdOworfQorCit1bnNpZ25lZCBsb25nIEdQ
VUJ1ZmZlcjo6bGVuZ3RoKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fYnVmZmVyKQorICAgICAgICBy
ZXR1cm4gMDsKKworICAgIHJldHVybiBbbV9idWZmZXIgbGVuZ3RoXTsKK30KKworUmVmUHRyPEFy
cmF5QnVmZmVyPiBHUFVCdWZmZXI6OmNvbnRlbnRzKCkKK3sKKyAgICBpZiAobV9jb250ZW50cykK
KyAgICAgICAgcmV0dXJuIG1fY29udGVudHM7CisKKyAgICBpZiAoIW1fYnVmZmVyKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKworICAgIG1fY29udGVudHMgPSBBcnJheUJ1ZmZlcjo6Y3JlYXRl
RnJvbUJ5dGVzKFttX2J1ZmZlciBjb250ZW50c10sIFttX2J1ZmZlciBsZW5ndGhdLCBbXSAodm9p
ZCopIHsgfSk7CisgICAgcmV0dXJuIG1fY29udGVudHM7Cit9CisKK01UTEJ1ZmZlciogR1BVQnVm
ZmVyOjpwbGF0Zm9ybUJ1ZmZlcigpCit7CisgICAgcmV0dXJuIG1fYnVmZmVyLmdldCgpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVQnVmZmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMTcyMTg5
Zjg3Y2ZhMDk3ZGYzZTJiZmE5YWY2NWRhNmU2ZGFhOGMxCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUJ1ZmZlci5jcHAKQEAgLTAsMCAr
MSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHUFVCdWZmZXIuaCIKKworI2lmIEVOQUJMRShX
RUJHUFUpCisKKyNpbXBvcnQgIkdQVURldmljZS5oIgorI2ltcG9ydCAiTG9nZ2luZy5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZlB0cjxHUFVCdWZmZXI+IEdQVUJ1ZmZlcjo6Y3JlYXRl
KEdQVURldmljZSogZGV2aWNlLCBBcnJheUJ1ZmZlclZpZXcqIGFycmF5QnVmZmVyKQoreworICAg
IFJlZlB0cjxHUFVCdWZmZXI+IGJ1ZmZlciA9IGFkb3B0UmVmKG5ldyBHUFVCdWZmZXIoZGV2aWNl
LCBhcnJheUJ1ZmZlcikpOworICAgIHJldHVybiBidWZmZXI7Cit9CisKK0dQVUJ1ZmZlcjo6fkdQ
VUJ1ZmZlcigpCit7CisgICAgTE9HKFdlYkdQVSwgIkdQVUJ1ZmZlcjo6fkdQVUJ1ZmZlcigpIik7
Cit9CisKKyNpZiAhUExBVEZPUk0oQ09DT0EpCit1bnNpZ25lZCBsb25nIEdQVUJ1ZmZlcjo6bGVu
Z3RoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKworUmVmUHRyPEFycmF5QnVmZmVyPiBH
UFVCdWZmZXI6OmNvbnRlbnRzKCkKK3sKKyAgICBpZiAobV9jb250ZW50cykKKyAgICAgICAgcmV0
dXJuIG1fY29udGVudHM7CisKKyAgICBtX2NvbnRlbnRzID0gQXJyYXlCdWZmZXI6OmNyZWF0ZSgw
LCAxKTsKKyAgICByZXR1cm4gbV9jb250ZW50czsKK30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVUJ1ZmZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2N2I0YWZkNDVhY2U3NjQ3YjA0YjBiMTVj
NDM3MzFlNzA1ZjAzNDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvR1BVQnVmZmVyLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKFdFQkdQVSkKKworI2luY2x1ZGUgPHJ1bnRpbWUvQXJyYXlCdWZmZXJWaWV3Lmg+CisjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2lmIFBM
QVRGT1JNKENPQ09BKQorT0JKQ19DTEFTUyBNVExCdWZmZXI7CisjZW5kaWYKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBHUFVEZXZpY2U7CisKK2NsYXNzIEdQVUJ1ZmZlciA6IHB1Ymxp
YyBSZWZDb3VudGVkPEdQVUJ1ZmZlcj4geworcHVibGljOgorICAgIHN0YXRpYyBSZWZQdHI8R1BV
QnVmZmVyPiBjcmVhdGUoR1BVRGV2aWNlKiwgQXJyYXlCdWZmZXJWaWV3Kik7CisgICAgV0VCQ09S
RV9FWFBPUlQgfkdQVUJ1ZmZlcigpOworCisgICAgV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgbG9u
ZyBsZW5ndGgoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8QXJyYXlCdWZmZXI+
IGNvbnRlbnRzKCk7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBXRUJDT1JFX0VYUE9SVCBN
VExCdWZmZXIqIHBsYXRmb3JtQnVmZmVyKCk7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBHUFVC
dWZmZXIoR1BVRGV2aWNlKiwgQXJyYXlCdWZmZXJWaWV3Kik7CisgICAgCisjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgUmV0YWluUHRyPE1UTEJ1ZmZlcj4gbV9idWZmZXI7CisjZW5kaWYKKyAgICBS
ZWZQdHI8QXJyYXlCdWZmZXI+IG1fY29udGVudHM7Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVRGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9HUFVEZXZpY2UuY3BwCmluZGV4IDlhOTAzYzA0MjM3YWE5ZjE4ODFlYmFhYjdlMWVhY2Nj
OTI4MGQwODguLmE1NmE4YjIwMzBmYWJjYTc3NzFiY2JhNTM0MzhmNjg4YTc4OWUzM2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3Bw
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoV0VCR1BVKQogCisjaW5jbHVkZSAiR1BV
QnVmZmVyLmgiCiAjaW5jbHVkZSAiR1BVTGlicmFyeS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
IApAQCAtNTgsNiArNTksMTEgQEAgUmVmUHRyPEdQVUxpYnJhcnk+IEdQVURldmljZTo6Y3JlYXRl
TGlicmFyeShjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUpCiAgICAgcmV0dXJuIEdQVUxpYnJhcnk6
OmNyZWF0ZSh0aGlzLCBzb3VyY2VDb2RlKTsKIH0KIAorUmVmUHRyPEdQVUJ1ZmZlcj4gR1BVRGV2
aWNlOjpjcmVhdGVCdWZmZXJGcm9tRGF0YShBcnJheUJ1ZmZlclZpZXcqIGRhdGEpCit7CisgICAg
cmV0dXJuIEdQVUJ1ZmZlcjo6Y3JlYXRlKHRoaXMsIGRhdGEpOworfQorCiAjaWYgIVBMQVRGT1JN
KENPQ09BKQogCiBHUFVEZXZpY2U6OkdQVURldmljZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmgKaW5kZXggMDc1ZWI5MjJhYTg3YjM5ZWEz
M2Y0ZTBhZWNkYTFkN2IwNWIwNmMzNi4uODU1ODQxNTAzNmVlOTkzMGVhZmQ4YzJmZjQ1NjliN2U3
NDg2ZmQ2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVURldmljZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVEZXZpY2UuaApAQCAtNDYsNiArNDYsNyBAQCB0eXBlZGVmIHZvaWQgUGxhdGZvcm1HUFVEZXZp
Y2U7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgR1BVQnVmZmVyOwogY2xhc3MgR1BV
TGlicmFyeTsKIAogY2xhc3MgR1BVRGV2aWNlIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVRGV2aWNl
PiB7CkBAIC02Myw2ICs2NCw3IEBAIHB1YmxpYzoKICAgICBXZWJHUFVMYXllciogbGF5ZXIoKSB7
IHJldHVybiBtX2xheWVyLmdldCgpOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8R1BV
TGlicmFyeT4gY3JlYXRlTGlicmFyeShjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUpOworICAgIFdF
QkNPUkVfRVhQT1JUIFJlZlB0cjxHUFVCdWZmZXI+IGNyZWF0ZUJ1ZmZlckZyb21EYXRhKEFycmF5
QnVmZmVyVmlldyogZGF0YSk7CiAKIHByaXZhdGU6CiAgICAgR1BVRGV2aWNlKCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2NjMDY0ZGZlNWI2
MDlhOTM2YTIxNTViMWU2YzU1ZDMyNjA5YTFkNy4uMjY4MjRkMzk0Njg5ZDIzZWE1YmNkMTdkYmY1
MzU5NTVmMTliNWVkMSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE3LTAzLTA5ICBEZWFuIEphY2tzb24gIDxkaW5v
QGFwcGxlLmNvbT4KKworICAgICAgICBXZWJHUFU6IEJhY2tlbmQgLSBCdWZmZXJzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjk0NTEKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzMwOTU5MTY4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRlc3QgZm9yIEdQVUJ1ZmZlciBvYmplY3QuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvbWFjL0dQVUJ1ZmZlci5tbTog
QWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9tYWMvR1BVRnVuY3Rpb24ubW06CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL21hYy9HUFVMaWJyYXJ5Lm1tOgorCiAyMDE3LTAzLTA4
ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJHUFU6IEJhY2tl
bmQgLSBMaWJyYXJ5IGFuZCBGdW5jdGlvbnMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDc1
MDMwMjYxMGQ3ZjE3M2NjYjhjZjEwZWIwYTUwNTJlM2RjZDgzNS4uYzIxYzgzMTA2NjRlNzAyODE3
NWEyYjM1YTE1ZjQwNmM1MjMxNjY5ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk2LDYg
Kzk2LDcgQEAKIAkJMzE2MkFFOUMxRTZGMkZGNTAwMEU0REJDIC8qIEdQVURldmljZS5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNjJBRTlCMUU2RjJG
Q0UwMDBFNERCQyAvKiBHUFVEZXZpY2UubW0gKi87IH07CiAJCTMxNkJEQkExMUU3MEQ3MUIwMERF
MEQ1QSAvKiBHUFVMaWJyYXJ5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzE2QkRCQTAxRTcwRDZEODAwREUwRDVBIC8qIEdQVUxpYnJhcnkubW0gKi87
IH07CiAJCTMxNkJEQkE0MUU3MEVGNjgwMERFMEQ1QSAvKiBHUFVGdW5jdGlvbi5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkJEQkEzMUU3MEVGNUQw
MERFMEQ1QSAvKiBHUFVGdW5jdGlvbi5tbSAqLzsgfTsKKwkJMzE2QkRCQUMxRTcyMDdGMTAwREUw
RDVBIC8qIEdQVUJ1ZmZlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxNkJEQkFCMUU3MjA3RjEwMERFMEQ1QSAvKiBHUFVCdWZmZXIubW0gKi87IH07
CiAJCTMzQkU1QUY5MTM3QjVBQUUwMDcwNTgxMyAvKiBNb3VzZU1vdmVBZnRlckNyYXNoX0J1bmRs
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzM0JF
NUFGODEzN0I1QUFFMDA3MDU4MTMgLyogTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwICov
OyB9OwogCQkzM0RDODkxMjE0MTk1NUZFMDA3NDdFRjcgLyogc2ltcGxlLWlmcmFtZS5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzREM4
OTBFMTQxOTUzOTMwMDc0N0VGNyAvKiBzaW1wbGUtaWZyYW1lLmh0bWwgKi87IH07CiAJCTMzREM4
OTE0MTQxOTU3OUYwMDc0N0VGNyAvKiBMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2FsbGJh
Y2tfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMzREM4OTEzMTQxOTU3OUYwMDc0N0VGNyAvKiBMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGly
ZWN0Q2FsbGJhY2tfQnVuZGxlLmNwcCAqLzsgfTsKQEAgLTk1NCw2ICs5NTUsNyBAQAogCQkzMTZC
REJBMDFFNzBENkQ4MDBERTBENUEgLyogR1BVTGlicmFyeS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdQVUxpYnJhcnkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTMxNkJEQkEyMUU3MERFRTUwMERFMEQ1QSAvKiBHUFVUZXN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVVRlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMzE2QkRCQTMxRTcwRUY1RDAwREUwRDVBIC8qIEdQVUZ1bmN0aW9uLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR1BVRnVuY3Rpb24ubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkJEQkFCMUU3MjA3RjEwMERFMEQ1QSAvKiBHUFVC
dWZmZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgZmlsZUVuY29kaW5nID0gNDsgcGF0aCA9IEdQVUJ1ZmZl
ci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzMzQjlDRTExMjc3RjIzMTAwRkVG
Q0UzIC8qIFByZXZlbnRFbXB0eVVzZXJBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzM0JFNUFGNDEzN0I1QTZDMDA3MDU4MTMgLyogTW91c2VNb3ZlQWZ0ZXJD
cmFzaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb3VzZU1vdmVB
ZnRlckNyYXNoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzNCRTVBRjgxMzdC
NUFBRTAwNzA1ODEzIC8qIE1vdXNlTW92ZUFmdGVyQ3Jhc2hfQnVuZGxlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vdXNlTW92ZUFmdGVyQ3Jhc2hfQnVuZGxlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2NzIsNiArMTY3NCw3IEBACiAJCTMx
NjJBRTlBMUU2RjJGOEYwMDBFNERCQyAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCTMxNkJEQkFCMUU3MjA3RjEwMERFMEQ1QSAvKiBHUFVCdWZm
ZXIubW0gKi8sCiAJCQkJMzE2MkFFOUIxRTZGMkZDRTAwMEU0REJDIC8qIEdQVURldmljZS5tbSAq
LywKIAkJCQkzMTZCREJBMzFFNzBFRjVEMDBERTBENUEgLyogR1BVRnVuY3Rpb24ubW0gKi8sCiAJ
CQkJMzE2QkRCQTAxRTcwRDZEODAwREUwRDVBIC8qIEdQVUxpYnJhcnkubW0gKi8sCkBAIC0yODAy
LDYgKzI4MDUsNyBAQAogCQkJCTBGMTM5RTc4MUE0MjNBNkIwMEY1OTBGNSAvKiBQbGF0Zm9ybVV0
aWxpdGllc0NvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQTYxQTQxMUEwRjAwNDQ3
QzRDIC8qIFBsYXRmb3JtVXRpbGl0aWVzTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdF
QTcxQTQxMUExMzAwNDQ3QzRDIC8qIFBsYXRmb3JtV2ViVmlld01hYy5tbSBpbiBTb3VyY2VzICov
LAorCQkJCTMxNkJEQkFDMUU3MjA3RjEwMERFMEQ1QSAvKiBHUFVCdWZmZXIubW0gaW4gU291cmNl
cyAqLywKIAkJCQk3Q0NFN0YyNjFBNDExQUY2MDA0NDdDNEMgLyogUHJlZmVyZW5jZXMubW0gaW4g
U291cmNlcyAqLywKIAkJCQk3QTkwOUE4MjFEODc3NDgwMDA3RTEwRjggLyogSW50UmVjdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0YwQjFBNDExQUU2MDA0NDdDNEMgLyogUHJldmVudEVt
cHR5VXNlckFnZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL21hYy9HUFVCdWZmZXIubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvbWFjL0dQVUJ1ZmZlci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZWYxYmE1ZGM2
MTU2N2FjZWYzMjNmZGQxYWNmMzdmOTQzM2NjYWIzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL21hYy9HUFVCdWZmZXIubW0KQEAgLTAsMCArMSw4
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQkdQ
VSkKKworI2ltcG9ydCAiR1BVVGVzdC5oIgorI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvQXJyYXlC
dWZmZXIuaD4KKyNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0FycmF5QnVmZmVyVmlldy5oPgorI2lt
cG9ydCA8SmF2YVNjcmlwdENvcmUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oPgorI2lt
cG9ydCA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgorI2ltcG9ydCA8SmF2YVNjcmlwdENv
cmUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVzLmg+CisjaW1wb3J0IDxKYXZhU2NyaXB0
Q29yZS9UeXBlZEFycmF5cy5oPgorI2ltcG9ydCA8TWV0YWwvTWV0YWwuaD4KKyNpbXBvcnQgPFdl
YkNvcmUvR1BVQnVmZmVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL0dQVURldmljZS5oPgorCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNU
X0YoR1BVLCBCdWZmZXJDcmVhdGUpCit7CisgICAgYXV0byBkZXZpY2UgPSBHUFVEZXZpY2U6OmNy
ZWF0ZSgpOworICAgIC8vIE5vdCBhbGwgaGFyZHdhcmUgc3VwcG9ydHMgTWV0YWwsIHNvIGl0IGlz
IHBvc3NpYmxlCisgICAgLy8gdGhhdCB3ZSB3ZXJlIHVuYWJsZSB0byBjcmVhdGUgdGhlIE1UTERl
dmljZSBvYmplY3QuCisgICAgLy8gSW4gdGhhdCBjYXNlLCB0aGUgZGV2aWNlIHNob3VsZCBiZSBu
dWxsLgorICAgIGlmICghZGV2aWNlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZDxNVExEZXZp
Y2U+IG10bERldmljZSA9IChpZDxNVExEZXZpY2U+KWRldmljZS0+cGxhdGZvcm1EZXZpY2UoKTsK
KyAgICBFWFBFQ1RfTk9UX05VTEwobXRsRGV2aWNlKTsKKworICAgIGF1dG8gYnVmZmVyVmlldyA9
IEpTQzo6VWludDhBcnJheTo6Y3JlYXRlKDEwMjQpOworCisgICAgdWludDhfdCogZGF0YSA9IGJ1
ZmZlclZpZXctPmRhdGEoKTsKKyAgICBtZW1zZXQoZGF0YSwgMSwgYnVmZmVyVmlldy0+Ynl0ZUxl
bmd0aCgpKTsKKworICAgIGF1dG8gYnVmZmVyID0gZGV2aWNlLT5jcmVhdGVCdWZmZXJGcm9tRGF0
YShidWZmZXJWaWV3LmdldCgpKTsKKyAgICBFWFBFQ1RfTk9UX05VTEwoYnVmZmVyKTsKKyAgICBF
WFBFQ1RfRVEoYnVmZmVyLT5sZW5ndGgoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZz4oMTAy
NCkpOworCisgICAgYXV0byBjb250ZW50cyA9IGJ1ZmZlci0+Y29udGVudHMoKTsKKyAgICBFWFBF
Q1RfTk9UX05VTEwoY29udGVudHMpOworICAgIEVYUEVDVF9FUShjb250ZW50cy0+Ynl0ZUxlbmd0
aCgpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nPigxMDI0KSk7CisKKyAgICB1aW50OF90KiBj
b250ZW50c0RhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oY29udGVudHMtPmRhdGEoKSk7Cisg
ICAgRVhQRUNUX05FKGNvbnRlbnRzRGF0YSwgZGF0YSk7CisgICAgRVhQRUNUX0VRKGNvbnRlbnRz
RGF0YVswXSwgMSk7CisgICAgRVhQRUNUX0VRKGNvbnRlbnRzRGF0YVs1MTJdLCAxKTsKKyAgICBF
WFBFQ1RfRVEoY29udGVudHNEYXRhWzEwMjNdLCAxKTsKKworICAgIE1UTEJ1ZmZlciAqbXRsQnVm
ZmVyID0gYnVmZmVyLT5wbGF0Zm9ybUJ1ZmZlcigpOworICAgIEVYUEVDVF9OT1RfTlVMTChtdGxC
dWZmZXIpOworCisKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9tYWMvR1BVRnVu
Y3Rpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvbWFjL0dQVUZ1bmN0
aW9uLm1tCmluZGV4IGM2YTllMWUyODg0OGM0MWM0ZTc0ZDQ1N2MyMjI5NjhiNGIxZWIxMmYuLjJi
NzI2OThiMTFjNDA0MTExMjYzMGY4OTEzOTkxODJiZDk1NGNmN2YgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9tYWMvR1BVRnVuY3Rpb24ubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL21hYy9HUFVGdW5jdGlvbi5tbQpAQCAtMzMs
NyArMzMsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9HUFVEZXZpY2UuaD4KICNpbXBvcnQgPFdlYkNv
cmUvR1BVRnVuY3Rpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvR1BVTGlicmFyeS5oPgotI2ltcG9y
dCA8d3RmL01haW5UaHJlYWQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9tYWMvR1BVTGlicmFyeS5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9tYWMvR1BVTGlicmFyeS5tbQpp
bmRleCA0YTA5NDMxNWY1ODk1OWVlOWUwMWM0NDlkYmQ5MGY2YjEyOTU0YzAxLi5jNzU0MWU5MDAy
MTBkMmIwYzU4OGEzYmFkM2U5MDA1NDdiMGU5ZWViIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvbWFjL0dQVUxpYnJhcnkubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL21hYy9HUFVMaWJyYXJ5Lm1tCkBAIC0zMSw3ICszMSw2IEBA
CiAjaW1wb3J0IDxNZXRhbC9NZXRhbC5oPgogI2ltcG9ydCA8V2ViQ29yZS9HUFVEZXZpY2UuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvR1BVTGlicmFyeS5oPgotI2ltcG9ydCA8d3RmL01haW5UaHJlYWQu
aD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
</data>
<flag name="review"
          id="325596"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>