<?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>214135</bug_id>
          
          <creation_ts>2020-07-09 06:09:20 -0700</creation_ts>
          <short_desc>[GTK] Add support for shm buffers in AcceleratedBackingStoreWayland when using the WPE renderer</short_desc>
          <delta_ts>2020-07-09 07:10:14 -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>WebKitGTK</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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aperez</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1670080</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-07-09 06:09:20 -0700</bug_when>
    <thetext>It&apos;s available since wpe-fdo 1.7.0. This makes accelerated compositing work in platforms where EGL_WL_bind_wayland_display is not available. It can also be forced with the environment variable LIBGL_ALWAYS_SOFTWARE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670081</commentid>
    <comment_count>1</comment_count>
      <attachid>403859</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-07-09 06:23:36 -0700</bug_when>
    <thetext>Created attachment 403859
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670090</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-07-09 07:10:14 -0700</bug_when>
    <thetext>Committed r264168: &lt;https://trac.webkit.org/changeset/264168&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403859</attachid>
            <date>2020-07-09 06:23:36 -0700</date>
            <delta_ts>2020-07-09 07:06:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-gtk-shm.diff</filename>
            <type>text/plain</type>
            <size>26214</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggN2UxMzMxMmNhMTk5Li43YTg1MmE0MzA4NTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzcgQEAKKzIwMjAtMDctMDkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtHVEtdIEFkZCBzdXBwb3J0IGZvciBzaG0gYnVmZmVycyBpbiBB
Y2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQgd2hlbiB1c2luZyB0aGUgV1BFIHJlbmRlcmVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQxMzUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJdCdzIGF2
YWlsYWJsZSBzaW5jZSB3cGUtZmRvIDEuNy4wLiBUaGlzIG1ha2VzIGFjY2VsZXJhdGVkIGNvbXBv
c2l0aW5nIHdvcmsgaW4gcGxhdGZvcm1zIHdoZXJlCisgICAgICAgIEVHTF9XTF9iaW5kX3dheWxh
bmRfZGlzcGxheSBpcyBub3QgYXZhaWxhYmxlLiBJdCBjYW4gYWxzbyBiZSBmb3JjZWQgd2l0aCB0
aGUgZW52aXJvbm1lbnQgdmFyaWFibGUKKyAgICAgICAgTElCR0xfQUxXQVlTX1NPRlRXQVJFLgor
CisgICAgICAgICogVUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3Mp
OiBVc2UgQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kOjpjaGVja1JlcXVpcmVtZW50cygp
CisgICAgICAgIGluc3RlYWQgb2YgY2FsbGluZyB3cGVfZmRvX2luaXRpYWxpemVfZm9yX2VnbF9k
aXNwbGF5KCkgYWdhaW4uCisgICAgICAgICogVUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tp
bmdTdG9yZVdheWxhbmQuY3BwOgorICAgICAgICAoV2ViS2l0Ojp0cnlJbml0aWFsaXplRUdMKTog
TW92ZWQgRUdMIHNwZWNpZmljIGluaXRpYWxpemF0aW9uIGhlcmUuCisgICAgICAgIChXZWJLaXQ6
OnRyeUluaXRpYWxpemVTSE0pOiBBZGRlZCBTSE0gaW5pdGlhbGl6YXRpb24uCisgICAgICAgIChX
ZWJLaXQ6OkFjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZDo6Y2hlY2tSZXF1aXJlbWVudHMp
OiBUcnkgdG8gaW5pdGlhbGl6ZSBFR0wgZmlyc3QgYW5kIHRoZW4gU0hNIGlmIEVHTCBmYWlsZWQu
CisgICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZDo6QWNjZWxl
cmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kKTogQ3JlYXRlIGEgRUdMIGV4cG9ydGFibGUgb25seSB3
aGVuCisgICAgICAgIHVzaW5nIEVHTCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKFdlYktpdDo6
QWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kOjp+QWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVX
YXlsYW5kKTogUmVsZWFzZSBFR0wgcmVzb3VyY2VzIG9ubHkgd2hlbiB1c2luZworICAgICAgICBF
R0wgaW1wbGVtZW50YXRpb24uCisgICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQmFja2luZ1N0
b3JlV2F5bGFuZDo6dW5yZWFsaXplKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OkFjY2VsZXJh
dGVkQmFja2luZ1N0b3JlV2F5bGFuZDo6dHJ5RW5zdXJlR0xDb250ZXh0KTogUmV0dXJuIGVhcmx5
IHdoZW4gbm90IHVzaW5nIEVHTCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKFdlYktpdDo6QWNj
ZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kOjp1cGRhdGUpOiBBZGQgaW1wbGVtZW50YXRpb24g
Zm9yIHRoZSBTSE0gY2FzZS4KKyAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRCYWNraW5nU3Rv
cmVXYXlsYW5kOjpkaXNwbGF5SW1hZ2UpOiBSZW5hbWVkLgorICAgICAgICAoV2ViS2l0OjpBY2Nl
bGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQ6OmRpc3BsYXlCdWZmZXIpOiBTSE0gaW1wbGVtZW50
YXRpb24sIGNvcHkgdGhlIHNobSBidWZmZXIgaW50byBhIGNhaXJvCisgICAgICAgIGltYWdlIHN1
cmZhY2UuCisgICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZDo6
dHJ5RW5zdXJlVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQmFja2luZ1N0
b3JlV2F5bGFuZDo6ZG93bmxvYWRUZXh0dXJlKToKKyAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0
ZWRCYWNraW5nU3RvcmVXYXlsYW5kOjpzbmFwc2hvdCk6IEhhbmRsZSB0aGUgU0hNIGNhc2UuCisg
ICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZDo6cGFpbnQpOiBE
aXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5
bGFuZC5oOgorCiAyMDIwLTA3LTA5ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gQWRkIHN1cHBvcnQgZm9yIEhUVFBDb29raWVBY2Nl
cHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAKaW5kZXggYWI3ZDdkMDk1
ZTRhLi5kZWFhYmY3YzdiZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2ds
aWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9n
bGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAKQEAgLTQyLDcgKzQyLDcgQEAKIAogI2lmIFBMQVRG
T1JNKFdBWUxBTkQpCiAjaWYgVVNFKFdQRV9SRU5ERVJFUikKLSNpbmNsdWRlIDx3cGUvZmRvLWVn
bC5oPgorI2luY2x1ZGUgIkFjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZC5oIgogI2Vsc2UK
ICNpbmNsdWRlICJXYXlsYW5kQ29tcG9zaXRvci5oIgogI2VuZGlmCkBAIC0xMTYsNyArMTE2LDcg
QEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25z
dCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MKICAgICBpZiAoV2ViQ29yZTo6UGxhdGZvcm1EaXNw
bGF5OjpzaGFyZWREaXNwbGF5KCkudHlwZSgpID09IFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheTo6
VHlwZTo6V2F5bGFuZCkgewogI2lmIFVTRShXUEVfUkVOREVSRVIpCiAgICAgICAgIHdwZV9sb2Fk
ZXJfaW5pdCgibGliV1BFQmFja2VuZC1mZG8tMS4wLnNvIik7Ci0gICAgICAgIGlmICh3cGVfZmRv
X2luaXRpYWxpemVfZm9yX2VnbF9kaXNwbGF5KFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheTo6c2hh
cmVkRGlzcGxheSgpLmVnbERpc3BsYXkoKSkpIHsKKyAgICAgICAgaWYgKEFjY2VsZXJhdGVkQmFj
a2luZ1N0b3JlV2F5bGFuZDo6Y2hlY2tSZXF1aXJlbWVudHMoKSkgewogICAgICAgICAgICAgcGFy
YW1ldGVycy5ob3N0Q2xpZW50RmlsZURlc2NyaXB0b3IgPSB3cGVfcmVuZGVyZXJfaG9zdF9jcmVh
dGVfY2xpZW50KCk7CiAgICAgICAgICAgICBwYXJhbWV0ZXJzLmltcGxlbWVudGF0aW9uTGlicmFy
eU5hbWUgPSBGaWxlU3lzdGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24od3BlX2xvYWRlcl9n
ZXRfbG9hZGVkX2ltcGxlbWVudGF0aW9uX2xpYnJhcnlfbmFtZSgpKTsKICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVkQmFja2luZ1N0
b3JlV2F5bGFuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvQWNjZWxlcmF0ZWRC
YWNraW5nU3RvcmVXYXlsYW5kLmNwcAppbmRleCBjMDZkZGFiZTkyNjMuLmU0N2ZhOWUzYzg3YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVkQmFja2lu
Z1N0b3JlV2F5bGFuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0FjY2Vs
ZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZC5jcHAKQEAgLTUxLDYgKzUxLDEwIEBACiAKICNpZiBV
U0UoV1BFX1JFTkRFUkVSKQogI2luY2x1ZGUgPHdwZS9mZG8tZWdsLmg+CisjaWYgV1BFX0ZET19D
SEVDS19WRVJTSU9OKDEsIDcsIDApCisjaW5jbHVkZSA8d2F5bGFuZC1zZXJ2ZXIuaD4KKyNpbmNs
dWRlIDx3cGUvdW5zdGFibGUvZmRvLXNobS5oPgorI2VuZGlmCiAjZWxzZQogI2luY2x1ZGUgIldh
eWxhbmRDb21wb3NpdG9yLmgiCiAjZW5kaWYKQEAgLTY2LDcgKzcwLDExIEBAIHN0YXRpYyBQRk5H
TEVHTElNQUdFVEFSR0VUVEVYVFVSRTJET0VTUFJPQyBnbEltYWdlVGFyZ2V0VGV4dHVyZTJEOwog
bmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotYm9vbCBpc0VH
TEltYWdlQXZhaWxhYmxlKGJvb2wgdXNlSW5kZXhlZEdldFN0cmluZykKK2VudW0gY2xhc3MgV2F5
bGFuZEltcGwgeyBVbnN1cHBvcnRlZCwgRUdMLCBTSE0gfTsKK3N0YXRpYyBPcHRpb25hbDxXYXls
YW5kSW1wbD4gc193YXlsYW5kSW1wbDsKKworI2lmIFVTRShXUEVfUkVOREVSRVIpCitzdGF0aWMg
Ym9vbCBpc0VHTEltYWdlQXZhaWxhYmxlKGJvb2wgdXNlSW5kZXhlZEdldFN0cmluZykKIHsKICNp
ZiBVU0UoT1BFTkdMX0VTKQogICAgIFVOVVNFRF9QQVJBTSh1c2VJbmRleGVkR2V0U3RyaW5nKTsK
QEAgLTkyLDQyICsxMDAsNzEgQEAgYm9vbCBpc0VHTEltYWdlQXZhaWxhYmxlKGJvb2wgdXNlSW5k
ZXhlZEdldFN0cmluZykKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgQWNjZWxlcmF0ZWRC
YWNraW5nU3RvcmVXYXlsYW5kOjpjaGVja1JlcXVpcmVtZW50cygpCitzdGF0aWMgYm9vbCB0cnlJ
bml0aWFsaXplRUdMKCkKIHsKLSNpZiBVU0UoV1BFX1JFTkRFUkVSKQotICAgIGlmICghZ2xJbWFn
ZVRhcmdldFRleHR1cmUyRCkgewotICAgICAgICBhdXRvKiBlZ2xEaXNwbGF5ID0gUGxhdGZvcm1E
aXNwbGF5OjpzaGFyZWREaXNwbGF5KCkuZWdsRGlzcGxheSgpOwotICAgICAgICBjb25zdCBjaGFy
KiBleHRlbnNpb25zID0gZWdsUXVlcnlTdHJpbmcoZWdsRGlzcGxheSwgRUdMX0VYVEVOU0lPTlMp
OwotICAgICAgICBpZiAoIUdMQ29udGV4dDo6aXNFeHRlbnNpb25TdXBwb3J0ZWQoZXh0ZW5zaW9u
cywgIkVHTF9XTF9iaW5kX3dheWxhbmRfZGlzcGxheSIpKQotICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIGF1dG8qIGVnbERpc3BsYXkgPSBQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3Bs
YXkoKS5lZ2xEaXNwbGF5KCk7CisgICAgY29uc3QgY2hhciogZXh0ZW5zaW9ucyA9IGVnbFF1ZXJ5
U3RyaW5nKGVnbERpc3BsYXksIEVHTF9FWFRFTlNJT05TKTsKKyAgICBpZiAoIUdMQ29udGV4dDo6
aXNFeHRlbnNpb25TdXBwb3J0ZWQoZXh0ZW5zaW9ucywgIkVHTF9XTF9iaW5kX3dheWxhbmRfZGlz
cGxheSIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgaWYgKCF3cGVfZmRvX2lu
aXRpYWxpemVfZm9yX2VnbF9kaXNwbGF5KGVnbERpc3BsYXkpKQotICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIGlmICghd3BlX2Zkb19pbml0aWFsaXplX2Zvcl9lZ2xfZGlzcGxheShlZ2xE
aXNwbGF5KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpHTENvbnRleHQ+IGVnbENvbnRleHQgPSBHTENvbnRleHQ6OmNyZWF0ZU9mZnNj
cmVlbkNvbnRleHQoKTsKLSAgICAgICAgaWYgKCFlZ2xDb250ZXh0KQotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpHTENvbnRleHQ+IGVnbENv
bnRleHQgPSBHTENvbnRleHQ6OmNyZWF0ZU9mZnNjcmVlbkNvbnRleHQoKTsKKyAgICBpZiAoIWVn
bENvbnRleHQpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBpZiAoIWVnbENvbnRl
eHQtPm1ha2VDb250ZXh0Q3VycmVudCgpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGlmICghZWdsQ29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKIAogI2lmIFVTRShPUEVOR0xfRVMpCi0gICAgICAgIGlmIChpc0VHTEltYWdlQXZhaWxh
YmxlKGZhbHNlKSkKKyAgICBpZiAoaXNFR0xJbWFnZUF2YWlsYWJsZShmYWxzZSkpCiAjZWxzZQot
ICAgICAgICBpZiAoaXNFR0xJbWFnZUF2YWlsYWJsZShHTENvbnRleHQ6OmN1cnJlbnQoKS0+dmVy
c2lvbigpID49IDMyMCkpCisgICAgaWYgKGlzRUdMSW1hZ2VBdmFpbGFibGUoR0xDb250ZXh0Ojpj
dXJyZW50KCktPnZlcnNpb24oKSA+PSAzMjApKQogI2VuZGlmCi0gICAgICAgICAgICBnbEltYWdl
VGFyZ2V0VGV4dHVyZTJEID0gcmVpbnRlcnByZXRfY2FzdDxQRk5HTEVHTElNQUdFVEFSR0VUVEVY
VFVSRTJET0VTUFJPQz4oZWdsR2V0UHJvY0FkZHJlc3MoImdsRUdMSW1hZ2VUYXJnZXRUZXh0dXJl
MkRPRVMiKSk7Ci0gICAgfQorICAgICAgICBnbEltYWdlVGFyZ2V0VGV4dHVyZTJEID0gcmVpbnRl
cnByZXRfY2FzdDxQRk5HTEVHTElNQUdFVEFSR0VUVEVYVFVSRTJET0VTUFJPQz4oZWdsR2V0UHJv
Y0FkZHJlc3MoImdsRUdMSW1hZ2VUYXJnZXRUZXh0dXJlMkRPRVMiKSk7CiAKLSAgICBpZiAoIWds
SW1hZ2VUYXJnZXRUZXh0dXJlMkQpIHsKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJBY2NlbGVyYXRl
ZEJhY2tpbmdTdG9yZVdQRSByZXF1aXJlcyBnbEVHTEltYWdlVGFyZ2V0VGV4dHVyZTJELiIpOwor
ICAgIGlmICghZ2xJbWFnZVRhcmdldFRleHR1cmUyRCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0KIAorICAgIHNfd2F5bGFuZEltcGwgPSBXYXlsYW5kSW1wbDo6RUdMOworICAgIHJldHVy
biB0cnVlOworfQorCitzdGF0aWMgYm9vbCB0cnlJbml0aWFsaXplU0hNKCkKK3sKKyNpZiBXUEVf
RkRPX0NIRUNLX1ZFUlNJT04oMSwgNywgMCkKKyAgICBpZiAoIXdwZV9mZG9faW5pdGlhbGl6ZV9z
aG0oKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisKKyAgICBzX3dheWxhbmRJbXBs
ID0gV2F5bGFuZEltcGw6OlNITTsKICAgICByZXR1cm4gdHJ1ZTsKK30KKyNlbmRpZiAvLyBVU0Uo
V1BFX1JFTkRFUkVSKQorCitib29sIEFjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZDo6Y2hl
Y2tSZXF1aXJlbWVudHMoKQoreworI2lmIFVTRShXUEVfUkVOREVSRVIpCisgICAgaWYgKHNfd2F5
bGFuZEltcGwpCisgICAgICAgIHJldHVybiBzX3dheWxhbmRJbXBsLnZhbHVlKCkgIT0gV2F5bGFu
ZEltcGw6OlVuc3VwcG9ydGVkOworCisgICAgaWYgKHRyeUluaXRpYWxpemVFR0woKSkKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAodHJ5SW5pdGlhbGl6ZVNITSgpKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKworICAgIFdURkxvZ0Fsd2F5cygiQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVX
YXlsYW5kIHJlcXVpcmVzIGdsRUdMSW1hZ2VUYXJnZXRUZXh0dXJlMkQgb3Igc2htIGludGVyZmFj
ZSIpOwogI2Vsc2UKLSAgICByZXR1cm4gV2F5bGFuZENvbXBvc2l0b3I6OnNpbmdsZXRvbigpLmlz
UnVubmluZygpOworICAgIGlmIChXYXlsYW5kQ29tcG9zaXRvcjo6c2luZ2xldG9uKCkuaXNSdW5u
aW5nKCkpIHsKKyAgICAgICAgc193YXlsYW5kSW1wbCA9IFdheWxhbmRJbXBsOjpFR0w7CisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KICNlbmRpZgorCisgICAgc193YXlsYW5kSW1wbCA9IFdh
eWxhbmRJbXBsOjpVbnN1cHBvcnRlZDsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIHN0ZDo6dW5p
cXVlX3B0cjxBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQ+IEFjY2VsZXJhdGVkQmFja2lu
Z1N0b3JlV2F5bGFuZDo6Y3JlYXRlKFdlYlBhZ2VQcm94eSYgd2ViUGFnZSkKQEAgLTE0MCwyMCAr
MTc3LDQ4IEBAIEFjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZDo6QWNjZWxlcmF0ZWRCYWNr
aW5nU3RvcmVXYXlsYW5kKFdlYlBhZ2VQcm94eSYgd2ViCiAgICAgOiBBY2NlbGVyYXRlZEJhY2tp
bmdTdG9yZSh3ZWJQYWdlKQogewogI2lmIFVTRShXUEVfUkVOREVSRVIpCi0gICAgc3RhdGljIHN0
cnVjdCB3cGVfdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRvX2VnbF9jbGllbnQgZXhwb3J0YWJs
ZUNsaWVudCA9IHsKKyAgICBzdGF0aWMgc3RydWN0IHdwZV92aWV3X2JhY2tlbmRfZXhwb3J0YWJs
ZV9mZG9fZWdsX2NsaWVudCBleHBvcnRhYmxlRUdMQ2xpZW50ID0gewogICAgICAgICAvLyBleHBv
cnRfZWdsX2ltYWdlCiAgICAgICAgIG51bGxwdHIsCiAgICAgICAgIC8vIGV4cG9ydF9mZG9fZWds
X2ltYWdlCiAgICAgICAgIFtdKHZvaWQqIGRhdGEsIHN0cnVjdCB3cGVfZmRvX2VnbF9leHBvcnRl
ZF9pbWFnZSogaW1hZ2UpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHN0YXRpY19jYXN0PEFjY2Vs
ZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZCo+KGRhdGEpLT5kaXNwbGF5QnVmZmVyKGltYWdlKTsK
KyAgICAgICAgICAgIHN0YXRpY19jYXN0PEFjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZCo+
KGRhdGEpLT5kaXNwbGF5SW1hZ2UoaW1hZ2UpOwogICAgICAgICB9LAogICAgICAgICAvLyBwYWRk
aW5nCiAgICAgICAgIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIKICAgICB9OwogCisjaWYgV1BF
X0ZET19DSEVDS19WRVJTSU9OKDEsIDcsIDApCisgICAgc3RhdGljIHN0cnVjdCB3cGVfdmlld19i
YWNrZW5kX2V4cG9ydGFibGVfZmRvX2NsaWVudCBleHBvcnRhYmxlQ2xpZW50ID0geworICAgICAg
ICBudWxscHRyLAorICAgICAgICBudWxscHRyLAorICAgICAgICAvLyBleHBvcnRfc2htX2J1ZmZl
cgorICAgICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2Zkb19zaG1fZXhwb3J0ZWRfYnVm
ZmVyKiBidWZmZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PEFjY2VsZXJh
dGVkQmFja2luZ1N0b3JlV2F5bGFuZCo+KGRhdGEpLT5kaXNwbGF5QnVmZmVyKGJ1ZmZlcik7Cisg
ICAgICAgIH0sCisgICAgICAgIG51bGxwdHIsCisgICAgICAgIG51bGxwdHIsCisgICAgfTsKKyNl
bmRpZgorCiAgICAgYXV0byB2aWV3U2l6ZSA9IHdlYlBhZ2Uudmlld1NpemUoKTsKLSAgICBtX2V4
cG9ydGFibGUgPSB3cGVfdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRvX2VnbF9jcmVhdGUoJmV4
cG9ydGFibGVDbGllbnQsIHRoaXMsIHZpZXdTaXplLndpZHRoKCksIHZpZXdTaXplLmhlaWdodCgp
KTsKKyAgICBzd2l0Y2ggKHNfd2F5bGFuZEltcGwudmFsdWUoKSkgeworICAgIGNhc2UgV2F5bGFu
ZEltcGw6OkVHTDoKKyAgICAgICAgbV9leHBvcnRhYmxlID0gd3BlX3ZpZXdfYmFja2VuZF9leHBv
cnRhYmxlX2Zkb19lZ2xfY3JlYXRlKCZleHBvcnRhYmxlRUdMQ2xpZW50LCB0aGlzLCB2aWV3U2l6
ZS53aWR0aCgpLCB2aWV3U2l6ZS5oZWlnaHQoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
V2F5bGFuZEltcGw6OlNITToKKyNpZiBXUEVfRkRPX0NIRUNLX1ZFUlNJT04oMSwgNywgMCkKKyAg
ICAgICAgbV9leHBvcnRhYmxlID0gd3BlX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2Zkb19jcmVh
dGUoJmV4cG9ydGFibGVDbGllbnQsIHRoaXMsIHZpZXdTaXplLndpZHRoKCksIHZpZXdTaXplLmhl
aWdodCgpKTsKKyAgICAgICAgYnJlYWs7CisjZWxzZQorICAgICAgICBGQUxMVEhST1VHSDsKKyNl
bmRpZgorICAgIGNhc2UgV2F5bGFuZEltcGw6OlVuc3VwcG9ydGVkOgorICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKwogICAgIHdwZV92aWV3X2JhY2tlbmRfaW5p
dGlhbGl6ZSh3cGVfdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRvX2dldF92aWV3X2JhY2tlbmQo
bV9leHBvcnRhYmxlKSk7CiAjZWxzZQogICAgIFdheWxhbmRDb21wb3NpdG9yOjpzaW5nbGV0b24o
KS5yZWdpc3RlcldlYlBhZ2UobV93ZWJQYWdlKTsKQEAgLTE2MywxMyArMjI4LDE1IEBAIEFjY2Vs
ZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZDo6QWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5k
KFdlYlBhZ2VQcm94eSYgd2ViCiBBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQ6On5BY2Nl
bGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQoKQogewogI2lmIFVTRShXUEVfUkVOREVSRVIpCi0g
ICAgaWYgKG1fcGVuZGluZ0ltYWdlKQotICAgICAgICB3cGVfdmlld19iYWNrZW5kX2V4cG9ydGFi
bGVfZmRvX2VnbF9kaXNwYXRjaF9yZWxlYXNlX2V4cG9ydGVkX2ltYWdlKG1fZXhwb3J0YWJsZSwg
bV9wZW5kaW5nSW1hZ2UpOwotICAgIGlmIChtX2NvbW1pdHRlZEltYWdlKQotICAgICAgICB3cGVf
dmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRvX2VnbF9kaXNwYXRjaF9yZWxlYXNlX2V4cG9ydGVk
X2ltYWdlKG1fZXhwb3J0YWJsZSwgbV9jb21taXR0ZWRJbWFnZSk7Ci0gICAgaWYgKG1fdmlld1Rl
eHR1cmUpIHsKLSAgICAgICAgaWYgKG1ha2VDb250ZXh0Q3VycmVudCgpKQotICAgICAgICAgICAg
Z2xEZWxldGVUZXh0dXJlcygxLCAmbV92aWV3VGV4dHVyZSk7CisgICAgaWYgKHNfd2F5bGFuZElt
cGwudmFsdWUoKSA9PSBXYXlsYW5kSW1wbDo6RUdMKSB7CisgICAgICAgIGlmIChtX2VnbC5wZW5k
aW5nSW1hZ2UpCisgICAgICAgICAgICB3cGVfdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRvX2Vn
bF9kaXNwYXRjaF9yZWxlYXNlX2V4cG9ydGVkX2ltYWdlKG1fZXhwb3J0YWJsZSwgbV9lZ2wucGVu
ZGluZ0ltYWdlKTsKKyAgICAgICAgaWYgKG1fZWdsLmNvbW1pdHRlZEltYWdlKQorICAgICAgICAg
ICAgd3BlX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2Zkb19lZ2xfZGlzcGF0Y2hfcmVsZWFzZV9l
eHBvcnRlZF9pbWFnZShtX2V4cG9ydGFibGUsIG1fZWdsLmNvbW1pdHRlZEltYWdlKTsKKyAgICAg
ICAgaWYgKG1fZWdsLnZpZXdUZXh0dXJlKSB7CisgICAgICAgICAgICBpZiAobWFrZUNvbnRleHRD
dXJyZW50KCkpCisgICAgICAgICAgICAgICAgZ2xEZWxldGVUZXh0dXJlcygxLCAmbV9lZ2wudmll
d1RleHR1cmUpOworICAgICAgICB9CiAgICAgfQogICAgIHdwZV92aWV3X2JhY2tlbmRfZXhwb3J0
YWJsZV9mZG9fZGVzdHJveShtX2V4cG9ydGFibGUpOwogI2Vsc2UKQEAgLTE5MywxMCArMjYwLDEy
IEBAIHZvaWQgQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kOjp1bnJlYWxpemUoKQogICAg
ICAgICByZXR1cm47CiAKICNpZiBVU0UoV1BFX1JFTkRFUkVSKQotICAgIGlmIChtX3ZpZXdUZXh0
dXJlKSB7Ci0gICAgICAgIGlmIChtYWtlQ29udGV4dEN1cnJlbnQoKSkKLSAgICAgICAgICAgIGds
RGVsZXRlVGV4dHVyZXMoMSwgJm1fdmlld1RleHR1cmUpOwotICAgICAgICBtX3ZpZXdUZXh0dXJl
ID0gMDsKKyAgICBpZiAoc193YXlsYW5kSW1wbC52YWx1ZSgpID09IFdheWxhbmRJbXBsOjpFR0wp
IHsKKyAgICAgICAgaWYgKG1fZWdsLnZpZXdUZXh0dXJlKSB7CisgICAgICAgICAgICBpZiAobWFr
ZUNvbnRleHRDdXJyZW50KCkpCisgICAgICAgICAgICAgICAgZ2xEZWxldGVUZXh0dXJlcygxLCAm
bV9lZ2wudmlld1RleHR1cmUpOworICAgICAgICAgICAgbV9lZ2wudmlld1RleHR1cmUgPSAwOwor
ICAgICAgICB9CiAgICAgfQogI2Vsc2UKICAgICBXYXlsYW5kQ29tcG9zaXRvcjo6c2luZ2xldG9u
KCkudW5iaW5kV2ViUGFnZShtX3dlYlBhZ2UpOwpAQCAtMjE0LDYgKzI4Myw5IEBAIHZvaWQgQWNj
ZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kOjp0cnlFbnN1cmVHTENvbnRleHQoKQogICAgICAg
ICByZXR1cm47CiAKICAgICBtX2dsQ29udGV4dEluaXRpYWxpemVkID0gdHJ1ZTsKKyAgICBpZiAo
c193YXlsYW5kSW1wbC52YWx1ZSgpICE9IFdheWxhbmRJbXBsOjpFR0wpCisgICAgICAgIHJldHVy
bjsKKwogICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKICNpZiBVU0UoR1RLNCkKICAg
ICBtX2dka0dMQ29udGV4dCA9IGFkb3B0R1JlZihnZGtfc3VyZmFjZV9jcmVhdGVfZ2xfY29udGV4
dChndGtfbmF0aXZlX2dldF9zdXJmYWNlKGd0a193aWRnZXRfZ2V0X25hdGl2ZShtX3dlYlBhZ2Uu
dmlld1dpZGdldCgpKSksICZlcnJvci5vdXRQdHIoKSkpOwpAQCAtMjUyLDEwICszMjQsMjYgQEAg
dm9pZCBBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQ6OnVwZGF0ZShjb25zdCBMYXllclRy
ZWVDb250ZXh0JiBjb250ZXh0KQogICAgICAgICByZXR1cm47CiAKICAgICBtX3N1cmZhY2VJRCA9
IGNvbnRleHQuY29udGV4dElEOwotICAgIGlmIChtX3BlbmRpbmdJbWFnZSkgewotICAgICAgICB3
cGVfdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRvX2Rpc3BhdGNoX2ZyYW1lX2NvbXBsZXRlKG1f
ZXhwb3J0YWJsZSk7Ci0gICAgICAgIHdwZV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9mZG9fZWds
X2Rpc3BhdGNoX3JlbGVhc2VfZXhwb3J0ZWRfaW1hZ2UobV9leHBvcnRhYmxlLCBtX3BlbmRpbmdJ
bWFnZSk7Ci0gICAgICAgIG1fcGVuZGluZ0ltYWdlID0gbnVsbHB0cjsKKyAgICBzd2l0Y2ggKHNf
d2F5bGFuZEltcGwudmFsdWUoKSkgeworICAgIGNhc2UgV2F5bGFuZEltcGw6OkVHTDoKKyAgICAg
ICAgaWYgKG1fZWdsLnBlbmRpbmdJbWFnZSkgeworICAgICAgICAgICAgd3BlX3ZpZXdfYmFja2Vu
ZF9leHBvcnRhYmxlX2Zkb19kaXNwYXRjaF9mcmFtZV9jb21wbGV0ZShtX2V4cG9ydGFibGUpOwor
ICAgICAgICAgICAgd3BlX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2Zkb19lZ2xfZGlzcGF0Y2hf
cmVsZWFzZV9leHBvcnRlZF9pbWFnZShtX2V4cG9ydGFibGUsIG1fZWdsLnBlbmRpbmdJbWFnZSk7
CisgICAgICAgICAgICBtX2VnbC5wZW5kaW5nSW1hZ2UgPSBudWxscHRyOworICAgICAgICB9Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgV2F5bGFuZEltcGw6OlNITToKKyNpZiBXUEVfRkRPX0NI
RUNLX1ZFUlNJT04oMSwgNywgMCkKKyAgICAgICAgaWYgKG1fc2htLnBlbmRpbmdGcmFtZSkgewor
ICAgICAgICAgICAgd3BlX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2Zkb19kaXNwYXRjaF9mcmFt
ZV9jb21wbGV0ZShtX2V4cG9ydGFibGUpOworICAgICAgICAgICAgbV9zaG0ucGVuZGluZ0ZyYW1l
ID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisjZWxzZQorICAgICAgICBGQUxM
VEhST1VHSDsKKyNlbmRpZgorICAgIGNhc2UgV2F5bGFuZEltcGw6OlVuc3VwcG9ydGVkOgorICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIH0KIApAQCAtMjY0LDU0
ICszNTIsMTA4IEBAIGludCBBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQ6OnJlbmRlckhv
c3RGaWxlRGVzY3JpcHRvcigpCiAgICAgcmV0dXJuIHdwZV92aWV3X2JhY2tlbmRfZ2V0X3JlbmRl
cmVyX2hvc3RfZmQod3BlX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2Zkb19nZXRfdmlld19iYWNr
ZW5kKG1fZXhwb3J0YWJsZSkpOwogfQogCi12b2lkIEFjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5
bGFuZDo6ZGlzcGxheUJ1ZmZlcihzdHJ1Y3Qgd3BlX2Zkb19lZ2xfZXhwb3J0ZWRfaW1hZ2UqIGlt
YWdlKQordm9pZCBBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQ6OmRpc3BsYXlJbWFnZShz
dHJ1Y3Qgd3BlX2Zkb19lZ2xfZXhwb3J0ZWRfaW1hZ2UqIGltYWdlKQogeworICAgIEFTU0VSVChz
X3dheWxhbmRJbXBsLnZhbHVlKCkgPT0gV2F5bGFuZEltcGw6OkVHTCk7CiAgICAgaWYgKCFtX3N1
cmZhY2VJRCkgewogICAgICAgICB3cGVfdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRvX2Rpc3Bh
dGNoX2ZyYW1lX2NvbXBsZXRlKG1fZXhwb3J0YWJsZSk7Ci0gICAgICAgIGlmIChpbWFnZSAhPSBt
X2NvbW1pdHRlZEltYWdlKQorICAgICAgICBpZiAoaW1hZ2UgIT0gbV9lZ2wuY29tbWl0dGVkSW1h
Z2UpCiAgICAgICAgICAgICB3cGVfdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRvX2VnbF9kaXNw
YXRjaF9yZWxlYXNlX2V4cG9ydGVkX2ltYWdlKG1fZXhwb3J0YWJsZSwgaW1hZ2UpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG1fcGVuZGluZ0ltYWdlKQotICAgICAgICB3cGVf
dmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRvX2VnbF9kaXNwYXRjaF9yZWxlYXNlX2V4cG9ydGVk
X2ltYWdlKG1fZXhwb3J0YWJsZSwgbV9wZW5kaW5nSW1hZ2UpOwotICAgIG1fcGVuZGluZ0ltYWdl
ID0gaW1hZ2U7CisgICAgaWYgKG1fZWdsLnBlbmRpbmdJbWFnZSkKKyAgICAgICAgd3BlX3ZpZXdf
YmFja2VuZF9leHBvcnRhYmxlX2Zkb19lZ2xfZGlzcGF0Y2hfcmVsZWFzZV9leHBvcnRlZF9pbWFn
ZShtX2V4cG9ydGFibGUsIG1fZWdsLnBlbmRpbmdJbWFnZSk7CisgICAgbV9lZ2wucGVuZGluZ0lt
YWdlID0gaW1hZ2U7CisKKyAgICBtX3dlYlBhZ2Uuc2V0Vmlld05lZWRzRGlzcGxheShJbnRSZWN0
KEludFBvaW50Ojp6ZXJvKCksIG1fd2ViUGFnZS52aWV3U2l6ZSgpKSk7Cit9CisKKyNpZiBXUEVf
RkRPX0NIRUNLX1ZFUlNJT04oMSwgNywgMCkKK3ZvaWQgQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVX
YXlsYW5kOjpkaXNwbGF5QnVmZmVyKHN0cnVjdCB3cGVfZmRvX3NobV9leHBvcnRlZF9idWZmZXIq
IGJ1ZmZlcikKK3sKKyAgICBBU1NFUlQoc193YXlsYW5kSW1wbC52YWx1ZSgpID09IFdheWxhbmRJ
bXBsOjpTSE0pOworICAgIGlmICghbV9zdXJmYWNlSUQpIHsKKyAgICAgICAgd3BlX3ZpZXdfYmFj
a2VuZF9leHBvcnRhYmxlX2Zkb19kaXNwYXRjaF9mcmFtZV9jb21wbGV0ZShtX2V4cG9ydGFibGUp
OworICAgICAgICB3cGVfdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRvX2Rpc3BhdGNoX3JlbGVh
c2Vfc2htX2V4cG9ydGVkX2J1ZmZlcihtX2V4cG9ydGFibGUsIGJ1ZmZlcik7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBtX3NobS5wZW5kaW5nRnJhbWUgPSB0cnVlOworCisgICAgc3Ry
dWN0IHdsX3NobV9idWZmZXIqIHNobUJ1ZmZlciA9IHdwZV9mZG9fc2htX2V4cG9ydGVkX2J1ZmZl
cl9nZXRfc2htX2J1ZmZlcihidWZmZXIpOworICAgIGF1dG8gZm9ybWF0ID0gd2xfc2htX2J1ZmZl
cl9nZXRfZm9ybWF0KHNobUJ1ZmZlcik7CisgICAgaWYgKGZvcm1hdCAhPSBXTF9TSE1fRk9STUFU
X0FSR0I4ODg4ICYmIGZvcm1hdCAhPSBXTF9TSE1fRk9STUFUX1hSR0I4ODg4KSB7CisgICAgICAg
IHdwZV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9mZG9fZGlzcGF0Y2hfcmVsZWFzZV9zaG1fZXhw
b3J0ZWRfYnVmZmVyKG1fZXhwb3J0YWJsZSwgYnVmZmVyKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGludDMyX3Qgd2lkdGggPSB3bF9zaG1fYnVmZmVyX2dldF93aWR0aChzaG1CdWZm
ZXIpOworICAgIGludDMyX3QgaGVpZ2h0ID0gd2xfc2htX2J1ZmZlcl9nZXRfaGVpZ2h0KHNobUJ1
ZmZlcik7CisgICAgaW50MzJfdCBzdHJpZGUgPSB3bF9zaG1fYnVmZmVyX2dldF9zdHJpZGUoc2ht
QnVmZmVyKTsKKyAgICBpbnQzMl90IHN1cmZhY2VTdHJpZGUgPSBjYWlyb19mb3JtYXRfc3RyaWRl
X2Zvcl93aWR0aChDQUlST19GT1JNQVRfQVJHQjMyLCB3aWR0aCk7CisgICAgaWYgKCFtX3N1cmZh
Y2UgfHwgY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfd2lkdGgobV9zdXJmYWNlLmdldCgpKSAhPSB3
aWR0aCB8fCBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9oZWlnaHQobV9zdXJmYWNlLmdldCgpKSAh
PSBoZWlnaHQpIHsKKyAgICAgICAgYXV0byogc3VyZmFjZURhdGEgPSBmYXN0WmVyb2VkTWFsbG9j
KGhlaWdodCAqIHN1cmZhY2VTdHJpZGUpOworICAgICAgICBtX3N1cmZhY2UgPSBhZG9wdFJlZihj
YWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZV9mb3JfZGF0YShzdGF0aWNfY2FzdDx1bnNpZ25lZCBj
aGFyKj4oc3VyZmFjZURhdGEpLCBDQUlST19GT1JNQVRfQVJHQjMyLCB3aWR0aCwgaGVpZ2h0LCBz
dXJmYWNlU3RyaWRlKSk7CisgICAgICAgIHN0YXRpYyBjYWlyb191c2VyX2RhdGFfa2V5X3Qgc19z
dXJmYWNlRGF0YUtleTsKKyAgICAgICAgY2Fpcm9fc3VyZmFjZV9zZXRfdXNlcl9kYXRhKG1fc3Vy
ZmFjZS5nZXQoKSwgJnNfc3VyZmFjZURhdGFLZXksIHN1cmZhY2VEYXRhLCBbXSh2b2lkKiBkYXRh
KSB7CisgICAgICAgICAgICBmYXN0RnJlZShkYXRhKTsKKyAgICAgICAgfSk7CisgICAgICAgIGNh
aXJvU3VyZmFjZVNldERldmljZVNjYWxlKG1fc3VyZmFjZS5nZXQoKSwgbV93ZWJQYWdlLmRldmlj
ZVNjYWxlRmFjdG9yKCksIG1fd2ViUGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKKyAgICB9CisK
KyAgICB1bnNpZ25lZCBjaGFyKiBzdXJmYWNlRGF0YSA9IGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0
X2RhdGEobV9zdXJmYWNlLmdldCgpKTsKKyAgICB3bF9zaG1fYnVmZmVyX2JlZ2luX2FjY2Vzcyhz
aG1CdWZmZXIpOworICAgIGF1dG8qIGRhdGEgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyKj4o
d2xfc2htX2J1ZmZlcl9nZXRfZGF0YShzaG1CdWZmZXIpKTsKKyAgICBmb3IgKGludDMyX3QgeSA9
IDA7IHkgPCBoZWlnaHQ7ICsreSkgeworICAgICAgICBmb3IgKGludDMyX3QgeCA9IDA7IHggPCB3
aWR0aDsgKyt4KSB7CisgICAgICAgICAgICBzdXJmYWNlRGF0YVtzdXJmYWNlU3RyaWRlICogeSAr
IDQgKiB4ICsgMF0gPSBkYXRhW3N0cmlkZSAqIHkgKyA0ICogeCArIDBdOworICAgICAgICAgICAg
c3VyZmFjZURhdGFbc3VyZmFjZVN0cmlkZSAqIHkgKyA0ICogeCArIDFdID0gZGF0YVtzdHJpZGUg
KiB5ICsgNCAqIHggKyAxXTsKKyAgICAgICAgICAgIHN1cmZhY2VEYXRhW3N1cmZhY2VTdHJpZGUg
KiB5ICsgNCAqIHggKyAyXSA9IGRhdGFbc3RyaWRlICogeSArIDQgKiB4ICsgMl07CisgICAgICAg
ICAgICBzdXJmYWNlRGF0YVtzdXJmYWNlU3RyaWRlICogeSArIDQgKiB4ICsgM10gPSBkYXRhW3N0
cmlkZSAqIHkgKyA0ICogeCArIDNdOworICAgICAgICB9CisgICAgfQorICAgIHdsX3NobV9idWZm
ZXJfZW5kX2FjY2VzcyhzaG1CdWZmZXIpOworICAgIHdwZV92aWV3X2JhY2tlbmRfZXhwb3J0YWJs
ZV9mZG9fZGlzcGF0Y2hfcmVsZWFzZV9zaG1fZXhwb3J0ZWRfYnVmZmVyKG1fZXhwb3J0YWJsZSwg
YnVmZmVyKTsKIAorICAgIGNhaXJvX3N1cmZhY2VfbWFya19kaXJ0eShtX3N1cmZhY2UuZ2V0KCkp
OwogICAgIG1fd2ViUGFnZS5zZXRWaWV3TmVlZHNEaXNwbGF5KEludFJlY3QoSW50UG9pbnQ6Onpl
cm8oKSwgbV93ZWJQYWdlLnZpZXdTaXplKCkpKTsKIH0KICNlbmRpZgorI2VuZGlmCiAKIGJvb2wg
QWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kOjp0cnlFbnN1cmVUZXh0dXJlKHVuc2lnbmVk
JiB0ZXh0dXJlLCBJbnRTaXplJiB0ZXh0dXJlU2l6ZSkKIHsKKyAgICBBU1NFUlQoc193YXlsYW5k
SW1wbC52YWx1ZSgpID09IFdheWxhbmRJbXBsOjpFR0wpOwogI2lmIFVTRShXUEVfUkVOREVSRVIp
CiAgICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgaWYgKG1fcGVuZGluZ0ltYWdlKSB7CisgICAgaWYgKG1fZWdsLnBlbmRpbmdJbWFnZSkg
ewogICAgICAgICB3cGVfdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRvX2Rpc3BhdGNoX2ZyYW1l
X2NvbXBsZXRlKG1fZXhwb3J0YWJsZSk7CiAKLSAgICAgICAgaWYgKG1fY29tbWl0dGVkSW1hZ2Up
Ci0gICAgICAgICAgICB3cGVfdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRvX2VnbF9kaXNwYXRj
aF9yZWxlYXNlX2V4cG9ydGVkX2ltYWdlKG1fZXhwb3J0YWJsZSwgbV9jb21taXR0ZWRJbWFnZSk7
Ci0gICAgICAgIG1fY29tbWl0dGVkSW1hZ2UgPSBtX3BlbmRpbmdJbWFnZTsKLSAgICAgICAgbV9w
ZW5kaW5nSW1hZ2UgPSBudWxscHRyOworICAgICAgICBpZiAobV9lZ2wuY29tbWl0dGVkSW1hZ2Up
CisgICAgICAgICAgICB3cGVfdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRvX2VnbF9kaXNwYXRj
aF9yZWxlYXNlX2V4cG9ydGVkX2ltYWdlKG1fZXhwb3J0YWJsZSwgbV9lZ2wuY29tbWl0dGVkSW1h
Z2UpOworICAgICAgICBtX2VnbC5jb21taXR0ZWRJbWFnZSA9IG1fZWdsLnBlbmRpbmdJbWFnZTsK
KyAgICAgICAgbV9lZ2wucGVuZGluZ0ltYWdlID0gbnVsbHB0cjsKICAgICB9CiAKLSAgICBpZiAo
IW1fY29tbWl0dGVkSW1hZ2UpCisgICAgaWYgKCFtX2VnbC5jb21taXR0ZWRJbWFnZSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFtX3ZpZXdUZXh0dXJlKSB7Ci0gICAgICAgIGds
R2VuVGV4dHVyZXMoMSwgJm1fdmlld1RleHR1cmUpOwotICAgICAgICBnbEJpbmRUZXh0dXJlKEdM
X1RFWFRVUkVfMkQsIG1fdmlld1RleHR1cmUpOworICAgIGlmICghbV9lZ2wudmlld1RleHR1cmUp
IHsKKyAgICAgICAgZ2xHZW5UZXh0dXJlcygxLCAmbV9lZ2wudmlld1RleHR1cmUpOworICAgICAg
ICBnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1fZWdsLnZpZXdUZXh0dXJlKTsKICAgICAg
ICAgZ2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9D
TEFNUF9UT19FREdFKTsKICAgICAgICAgZ2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdM
X1RFWFRVUkVfV1JBUF9ULCBHTF9DTEFNUF9UT19FREdFKTsKICAgICAgICAgZ2xUZXhQYXJhbWV0
ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTkVBUkVTVCk7CiAg
ICAgICAgIGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01BR19GSUxU
RVIsIEdMX05FQVJFU1QpOwogICAgIH0KLSAgICBnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQs
IG1fdmlld1RleHR1cmUpOwotICAgIGdsSW1hZ2VUYXJnZXRUZXh0dXJlMkQoR0xfVEVYVFVSRV8y
RCwgd3BlX2Zkb19lZ2xfZXhwb3J0ZWRfaW1hZ2VfZ2V0X2VnbF9pbWFnZShtX2NvbW1pdHRlZElt
YWdlKSk7CisgICAgZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBtX2VnbC52aWV3VGV4dHVy
ZSk7CisgICAgZ2xJbWFnZVRhcmdldFRleHR1cmUyRChHTF9URVhUVVJFXzJELCB3cGVfZmRvX2Vn
bF9leHBvcnRlZF9pbWFnZV9nZXRfZWdsX2ltYWdlKG1fZWdsLmNvbW1pdHRlZEltYWdlKSk7CiAK
LSAgICB0ZXh0dXJlID0gbV92aWV3VGV4dHVyZTsKLSAgICB0ZXh0dXJlU2l6ZSA9IHsgc3RhdGlj
X2Nhc3Q8aW50Pih3cGVfZmRvX2VnbF9leHBvcnRlZF9pbWFnZV9nZXRfd2lkdGgobV9jb21taXR0
ZWRJbWFnZSkpLCBzdGF0aWNfY2FzdDxpbnQ+KHdwZV9mZG9fZWdsX2V4cG9ydGVkX2ltYWdlX2dl
dF9oZWlnaHQobV9jb21taXR0ZWRJbWFnZSkpIH07CisgICAgdGV4dHVyZSA9IG1fZWdsLnZpZXdU
ZXh0dXJlOworICAgIHRleHR1cmVTaXplID0geyBzdGF0aWNfY2FzdDxpbnQ+KHdwZV9mZG9fZWds
X2V4cG9ydGVkX2ltYWdlX2dldF93aWR0aChtX2VnbC5jb21taXR0ZWRJbWFnZSkpLCBzdGF0aWNf
Y2FzdDxpbnQ+KHdwZV9mZG9fZWdsX2V4cG9ydGVkX2ltYWdlX2dldF9oZWlnaHQobV9lZ2wuY29t
bWl0dGVkSW1hZ2UpKSB9OwogI2Vsc2UKICAgICBpZiAoIVdheWxhbmRDb21wb3NpdG9yOjpzaW5n
bGV0b24oKS5nZXRUZXh0dXJlKG1fd2ViUGFnZSwgdGV4dHVyZSwgdGV4dHVyZVNpemUpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMjIsNiArNDY0LDcgQEAgYm9vbCBBY2NlbGVyYXRlZEJh
Y2tpbmdTdG9yZVdheWxhbmQ6OnRyeUVuc3VyZVRleHR1cmUodW5zaWduZWQmIHRleHR1cmUsIElu
dFNpemUKIAogdm9pZCBBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQ6OmRvd25sb2FkVGV4
dHVyZSh1bnNpZ25lZCB0ZXh0dXJlLCBjb25zdCBJbnRTaXplJiB0ZXh0dXJlU2l6ZSkKIHsKKyAg
ICBBU1NFUlQoc193YXlsYW5kSW1wbC52YWx1ZSgpID09IFdheWxhbmRJbXBsOjpFR0wpOwogICAg
IEFTU0VSVChtX2dsQ29udGV4dCk7CiAKICAgICBpZiAoIW1fc3VyZmFjZSB8fCBjYWlyb19pbWFn
ZV9zdXJmYWNlX2dldF93aWR0aChtX3N1cmZhY2UuZ2V0KCkpICE9IHRleHR1cmVTaXplLndpZHRo
KCkgfHwgY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfaGVpZ2h0KG1fc3VyZmFjZS5nZXQoKSkgIT0g
dGV4dHVyZVNpemUuaGVpZ2h0KCkpCkBAIC0zNjcsMjUgKzUxMCw0NSBAQCB2b2lkIEFjY2VsZXJh
dGVkQmFja2luZ1N0b3JlV2F5bGFuZDo6ZG93bmxvYWRUZXh0dXJlKHVuc2lnbmVkIHRleHR1cmUs
IGNvbnN0IEludAogI2lmIFVTRShHVEs0KQogdm9pZCBBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdh
eWxhbmQ6OnNuYXBzaG90KEd0a1NuYXBzaG90KiBndGtTbmFwc2hvdCkKIHsKLSAgICBHTHVpbnQg
dGV4dHVyZTsKLSAgICBJbnRTaXplIHRleHR1cmVTaXplOwotICAgIGlmICghdHJ5RW5zdXJlVGV4
dHVyZSh0ZXh0dXJlLCB0ZXh0dXJlU2l6ZSkpCi0gICAgICAgIHJldHVybjsKKyAgICBzd2l0Y2gg
KHNfd2F5bGFuZEltcGwudmFsdWUoKSkgeworICAgIGNhc2UgV2F5bGFuZEltcGw6OkVHTDogewor
ICAgICAgICBHTHVpbnQgdGV4dHVyZTsKKyAgICAgICAgSW50U2l6ZSB0ZXh0dXJlU2l6ZTsKKyAg
ICAgICAgaWYgKCF0cnlFbnN1cmVUZXh0dXJlKHRleHR1cmUsIHRleHR1cmVTaXplKSkKKyAgICAg
ICAgICAgIHJldHVybjsKIAotICAgIGdyYXBoZW5lX3JlY3RfdCBib3VuZHMgPSBHUkFQSEVORV9S
RUNUX0lOSVQoMCwgMCwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRleHR1cmVTaXplLndpZHRoKCkpLCBz
dGF0aWNfY2FzdDxmbG9hdD4odGV4dHVyZVNpemUuaGVpZ2h0KCkpKTsKLSAgICBpZiAobV9nZGtH
TENvbnRleHQpIHsKLSAgICAgICAgR1JlZlB0cjxHZGtUZXh0dXJlPiBnZGtUZXh0dXJlID0gYWRv
cHRHUmVmKGdka19nbF90ZXh0dXJlX25ldyhtX2dka0dMQ29udGV4dC5nZXQoKSwgdGV4dHVyZSwg
dGV4dHVyZVNpemUud2lkdGgoKSwgdGV4dHVyZVNpemUuaGVpZ2h0KCksIG51bGxwdHIsIG51bGxw
dHIpKTsKLSAgICAgICAgZ3RrX3NuYXBzaG90X2FwcGVuZF90ZXh0dXJlKGd0a1NuYXBzaG90LCBn
ZGtUZXh0dXJlLmdldCgpLCAmYm91bmRzKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICBncmFw
aGVuZV9yZWN0X3QgYm91bmRzID0gR1JBUEhFTkVfUkVDVF9JTklUKDAsIDAsIHN0YXRpY19jYXN0
PGZsb2F0Pih0ZXh0dXJlU2l6ZS53aWR0aCgpKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRleHR1cmVT
aXplLmhlaWdodCgpKSk7CisgICAgICAgIGlmIChtX2dka0dMQ29udGV4dCkgeworICAgICAgICAg
ICAgR1JlZlB0cjxHZGtUZXh0dXJlPiBnZGtUZXh0dXJlID0gYWRvcHRHUmVmKGdka19nbF90ZXh0
dXJlX25ldyhtX2dka0dMQ29udGV4dC5nZXQoKSwgdGV4dHVyZSwgdGV4dHVyZVNpemUud2lkdGgo
KSwgdGV4dHVyZVNpemUuaGVpZ2h0KCksIG51bGxwdHIsIG51bGxwdHIpKTsKKyAgICAgICAgICAg
IGd0a19zbmFwc2hvdF9hcHBlbmRfdGV4dHVyZShndGtTbmFwc2hvdCwgZ2RrVGV4dHVyZS5nZXQo
KSwgJmJvdW5kcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBk
b3dubG9hZFRleHR1cmUodGV4dHVyZSwgdGV4dHVyZVNpemUpOworICAgICAgICBicmVhazsKICAg
ICB9CisgICAgY2FzZSBXYXlsYW5kSW1wbDo6U0hNOgorI2lmIFVTRShXUEVfUkVOREVSRVIpICYm
IFdQRV9GRE9fQ0hFQ0tfVkVSU0lPTigxLCA3LCAwKQorICAgICAgICBpZiAobV9zaG0ucGVuZGlu
Z0ZyYW1lKSB7CisgICAgICAgICAgICB3cGVfdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRvX2Rp
c3BhdGNoX2ZyYW1lX2NvbXBsZXRlKG1fZXhwb3J0YWJsZSk7CisgICAgICAgICAgICBtX3NobS5w
ZW5kaW5nRnJhbWUgPSBmYWxzZTsKKyAgICAgICAgfQogCi0gICAgZG93bmxvYWRUZXh0dXJlKHRl
eHR1cmUsIHRleHR1cmVTaXplKTsKKyAgICAgICAgaWYgKCFtX3N1cmZhY2UpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIGJyZWFrOworI2Vsc2UKKyAgICAgICAgRkFMTFRIUk9VR0g7Cisj
ZW5kaWYKKyAgICBjYXNlIFdheWxhbmRJbXBsOjpVbnN1cHBvcnRlZDoKKyAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CiAKICAgICBSZWZQdHI8Y2Fpcm9fdD4gY3Ig
PSBhZG9wdFJlZihndGtfc25hcHNob3RfYXBwZW5kX2NhaXJvKGd0a1NuYXBzaG90LCAmYm91bmRz
KSk7CiAKICAgICAvLyBUaGUgY29tcG9zaXRvciByZW5kZXJzIHRoZSB0ZXh0dXJlIGZsaXBwZWQg
Zm9yIGdkaywgZml4IHRoYXQgaGVyZS4KICAgICBjYWlyb19tYXRyaXhfdCB0cmFuc2Zvcm07Ci0g
ICAgY2Fpcm9fbWF0cml4X2luaXQoJnRyYW5zZm9ybSwgMSwgMCwgMCwgLTEsIDAsIHRleHR1cmVT
aXplLmhlaWdodCgpIC8gbV93ZWJQYWdlLmRldmljZVNjYWxlRmFjdG9yKCkpOworICAgIGNhaXJv
X21hdHJpeF9pbml0KCZ0cmFuc2Zvcm0sIDEsIDAsIDAsIC0xLCAwLCBjYWlyb19pbWFnZV9zdXJm
YWNlX2dldF9oZWlnaHQobV9zdXJmYWNlLmdldCgpKSAvIG1fd2ViUGFnZS5kZXZpY2VTY2FsZUZh
Y3RvcigpKTsKICAgICBjYWlyb190cmFuc2Zvcm0oY3IuZ2V0KCksICZ0cmFuc2Zvcm0pOwogCiAg
ICAgY2Fpcm9fc2V0X3NvdXJjZV9zdXJmYWNlKGNyLmdldCgpLCBtX3N1cmZhY2UuZ2V0KCksIDAs
IDApOwpAQCAtMzk1LDI0ICs1NTgsNDYgQEAgdm9pZCBBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdh
eWxhbmQ6OnNuYXBzaG90KEd0a1NuYXBzaG90KiBndGtTbmFwc2hvdCkKICNlbHNlCiBib29sIEFj
Y2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZDo6cGFpbnQoY2Fpcm9fdCogY3IsIGNvbnN0IElu
dFJlY3QmIGNsaXBSZWN0KQogewotICAgIEdMdWludCB0ZXh0dXJlOwotICAgIEludFNpemUgdGV4
dHVyZVNpemU7Ci0gICAgaWYgKCF0cnlFbnN1cmVUZXh0dXJlKHRleHR1cmUsIHRleHR1cmVTaXpl
KSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBjYWlyb19zYXZlKGNyKTsKKyAgICBzd2l0
Y2ggKHNfd2F5bGFuZEltcGwudmFsdWUoKSkgeworICAgIGNhc2UgV2F5bGFuZEltcGw6OkVHTDog
eworICAgICAgICBHTHVpbnQgdGV4dHVyZTsKKyAgICAgICAgSW50U2l6ZSB0ZXh0dXJlU2l6ZTsK
KyAgICAgICAgaWYgKCF0cnlFbnN1cmVUZXh0dXJlKHRleHR1cmUsIHRleHR1cmVTaXplKSkKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgIGNhaXJvX3NhdmUoY3IpOworCisgICAg
ICAgIGlmIChtX2dka0dMQ29udGV4dCkgeworICAgICAgICAgICAgZ2RrX2NhaXJvX2RyYXdfZnJv
bV9nbChjciwgZ3RrX3dpZGdldF9nZXRfd2luZG93KG1fd2ViUGFnZS52aWV3V2lkZ2V0KCkpLCB0
ZXh0dXJlLCBHTF9URVhUVVJFLCBtX3dlYlBhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSwgMCwgMCwg
dGV4dHVyZVNpemUud2lkdGgoKSwgdGV4dHVyZVNpemUuaGVpZ2h0KCkpOworICAgICAgICAgICAg
Y2Fpcm9fcmVzdG9yZShjcik7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQog
Ci0gICAgaWYgKG1fZ2RrR0xDb250ZXh0KSB7Ci0gICAgICAgIGdka19jYWlyb19kcmF3X2Zyb21f
Z2woY3IsIGd0a193aWRnZXRfZ2V0X3dpbmRvdyhtX3dlYlBhZ2Uudmlld1dpZGdldCgpKSwgdGV4
dHVyZSwgR0xfVEVYVFVSRSwgbV93ZWJQYWdlLmRldmljZVNjYWxlRmFjdG9yKCksIDAsIDAsIHRl
eHR1cmVTaXplLndpZHRoKCksIHRleHR1cmVTaXplLmhlaWdodCgpKTsKLSAgICAgICAgY2Fpcm9f
cmVzdG9yZShjcik7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkb3dubG9hZFRleHR1
cmUodGV4dHVyZSwgdGV4dHVyZVNpemUpOworICAgICAgICBicmVhazsKICAgICB9CisgICAgY2Fz
ZSBXYXlsYW5kSW1wbDo6U0hNOgorI2lmIFVTRShXUEVfUkVOREVSRVIpICYmIFdQRV9GRE9fQ0hF
Q0tfVkVSU0lPTigxLCA3LCAwKQorICAgICAgICBpZiAobV9zaG0ucGVuZGluZ0ZyYW1lKSB7Cisg
ICAgICAgICAgICB3cGVfdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRvX2Rpc3BhdGNoX2ZyYW1l
X2NvbXBsZXRlKG1fZXhwb3J0YWJsZSk7CisgICAgICAgICAgICBtX3NobS5wZW5kaW5nRnJhbWUg
PSBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghbV9zdXJmYWNlKQorICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAKLSAgICBkb3dubG9hZFRleHR1cmUodGV4dHVyZSwgdGV4dHVyZVNp
emUpOworICAgICAgICBjYWlyb19zYXZlKGNyKTsKKyAgICAgICAgYnJlYWs7CisjZWxzZQorICAg
ICAgICBGQUxMVEhST1VHSDsKKyNlbmRpZgorICAgIGNhc2UgV2F5bGFuZEltcGw6OlVuc3VwcG9y
dGVkOgorICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KIAogICAg
IC8vIFRoZSBjb21wb3NpdG9yIHJlbmRlcnMgdGhlIHRleHR1cmUgZmxpcHBlZCBmb3IgZ2RrX2Nh
aXJvX2RyYXdfZnJvbV9nbCwgZml4IHRoYXQgaGVyZS4KICAgICBjYWlyb19tYXRyaXhfdCB0cmFu
c2Zvcm07Ci0gICAgY2Fpcm9fbWF0cml4X2luaXQoJnRyYW5zZm9ybSwgMSwgMCwgMCwgLTEsIDAs
IHRleHR1cmVTaXplLmhlaWdodCgpIC8gbV93ZWJQYWdlLmRldmljZVNjYWxlRmFjdG9yKCkpOwor
ICAgIGNhaXJvX21hdHJpeF9pbml0KCZ0cmFuc2Zvcm0sIDEsIDAsIDAsIC0xLCAwLCBjYWlyb19p
bWFnZV9zdXJmYWNlX2dldF9oZWlnaHQobV9zdXJmYWNlLmdldCgpKSAvIG1fd2ViUGFnZS5kZXZp
Y2VTY2FsZUZhY3RvcigpKTsKICAgICBjYWlyb190cmFuc2Zvcm0oY3IsICZ0cmFuc2Zvcm0pOwog
CiAgICAgY2Fpcm9fcmVjdGFuZ2xlKGNyLCBjbGlwUmVjdC54KCksIGNsaXBSZWN0LnkoKSwgY2xp
cFJlY3Qud2lkdGgoKSwgY2xpcFJlY3QuaGVpZ2h0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZC5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZC5o
CmluZGV4IGI1NDY2NzMwYzMwZi4uNTNmYjE4NzAwZWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9ndGsvQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFu
ZC5oCkBAIC00MCw2ICs0MCw3IEBACiB0eXBlZGVmIHZvaWQqIEVHTEltYWdlS0hSOwogdHlwZWRl
ZiBzdHJ1Y3QgX0dka0dMQ29udGV4dCBHZGtHTENvbnRleHQ7CiBzdHJ1Y3Qgd3BlX2Zkb19lZ2xf
ZXhwb3J0ZWRfaW1hZ2U7CitzdHJ1Y3Qgd3BlX2Zkb19zaG1fZXhwb3J0ZWRfYnVmZmVyOwogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBHTENvbnRleHQ7CkBAIC02Miw3ICs2MywxMCBAQCBw
cml2YXRlOgogCiAgICAgdm9pZCB0cnlFbnN1cmVHTENvbnRleHQoKTsKICNpZiBVU0UoV1BFX1JF
TkRFUkVSKQotICAgIHZvaWQgZGlzcGxheUJ1ZmZlcihzdHJ1Y3Qgd3BlX2Zkb19lZ2xfZXhwb3J0
ZWRfaW1hZ2UqKTsKKyAgICB2b2lkIGRpc3BsYXlJbWFnZShzdHJ1Y3Qgd3BlX2Zkb19lZ2xfZXhw
b3J0ZWRfaW1hZ2UqKTsKKyNpZiBXUEVfRkRPX0NIRUNLX1ZFUlNJT04oMSw3LDApCisgICAgdm9p
ZCBkaXNwbGF5QnVmZmVyKHN0cnVjdCB3cGVfZmRvX3NobV9leHBvcnRlZF9idWZmZXIqKTsKKyNl
bmRpZgogI2VuZGlmCiAgICAgYm9vbCB0cnlFbnN1cmVUZXh0dXJlKHVuc2lnbmVkJiwgV2ViQ29y
ZTo6SW50U2l6ZSYpOwogICAgIHZvaWQgZG93bmxvYWRUZXh0dXJlKHVuc2lnbmVkLCBjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJik7CkBAIC04OCw5ICs5MiwxNyBAQCBwcml2YXRlOgogI2lmIFVTRShX
UEVfUkVOREVSRVIpCiAgICAgc3RydWN0IHdwZV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9mZG8q
IG1fZXhwb3J0YWJsZSB7IG51bGxwdHIgfTsKICAgICB1aW50NjRfdCBtX3N1cmZhY2VJRCB7IDAg
fTsKLSAgICB1bnNpZ25lZCBtX3ZpZXdUZXh0dXJlIHsgMCB9OwotICAgIHN0cnVjdCB3cGVfZmRv
X2VnbF9leHBvcnRlZF9pbWFnZSogbV9jb21taXR0ZWRJbWFnZSB7IG51bGxwdHIgfTsKLSAgICBz
dHJ1Y3Qgd3BlX2Zkb19lZ2xfZXhwb3J0ZWRfaW1hZ2UqIG1fcGVuZGluZ0ltYWdlIHsgbnVsbHB0
ciB9OworICAgIHN0cnVjdCB7CisgICAgICAgIHVuc2lnbmVkIHZpZXdUZXh0dXJlIHsgMCB9Owor
ICAgICAgICBzdHJ1Y3Qgd3BlX2Zkb19lZ2xfZXhwb3J0ZWRfaW1hZ2UqIGNvbW1pdHRlZEltYWdl
IHsgbnVsbHB0ciB9OworICAgICAgICBzdHJ1Y3Qgd3BlX2Zkb19lZ2xfZXhwb3J0ZWRfaW1hZ2Uq
IHBlbmRpbmdJbWFnZSB7IG51bGxwdHIgfTsKKyAgICB9IG1fZWdsOworCisjaWYgV1BFX0ZET19D
SEVDS19WRVJTSU9OKDEsNywwKQorICAgIHN0cnVjdCB7CisgICAgICAgIGJvb2wgcGVuZGluZ0Zy
YW1lIHsgZmFsc2UgfTsKKyAgICB9IG1fc2htOworI2VuZGlmCiAjZW5kaWYKIH07CiAK
</data>
<flag name="review"
          id="419255"
          type_id="1"
          status="+"
          setter="zan"
    />
          </attachment>
      

    </bug>

</bugzilla>