<?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>211178</bug_id>
          
          <creation_ts>2020-04-29 05:12:32 -0700</creation_ts>
          <short_desc>[GTK4] Make popup menus work</short_desc>
          <delta_ts>2020-06-02 06:05:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>210100</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adrian Perez">aperez</reporter>
          <assigned_to name="Adrian Perez">aperez</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1646960</commentid>
    <comment_count>0</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-04-29 05:12:32 -0700</bug_when>
    <thetext>Currently for popups menus windows of type GTK_WINDOW_POPUP are used,
but this is not possible with GTK4 anymore. The way to create a popup
window is using GtkPopover.

If we want to mimic GTK combo boxes, we likely would need to reimplement
parts of GtkTreePopover, which is the internal widget used as the popup
part of combo boxes. On the other hand, we may be able to put the widget
currently used inside a GtkPopover instead of inside the popup GtkWindow,
apply the same CSS classes that GtkComboBox uses, and maybe that would be
already good.

Note that ideally we want to use the same code for both GTK3 and GTK4,
as it was done recently for context menus in bug #170553 :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1658246</commentid>
    <comment_count>1</comment_count>
      <attachid>400806</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-06-02 05:24:21 -0700</bug_when>
    <thetext>Created attachment 400806
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1658248</commentid>
    <comment_count>2</comment_count>
      <attachid>400806</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-06-02 05:42:16 -0700</bug_when>
    <thetext>Comment on attachment 400806
Patch

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

&gt; Source/WebKit/UIProcess/gtk/WebPopupMenuProxyGtk.cpp:335
&gt; +    GdkRectangle windowRect = { rect.x(), rect.y(), rect.width(), rect.height() };

This exact same line is repeated below, so I would take it out of
the “#if USE(GTK4)” guard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1658251</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-06-02 05:50:49 -0700</bug_when>
    <thetext>(In reply to Adrian Perez from comment #2)
&gt; Comment on attachment 400806 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=400806&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/gtk/WebPopupMenuProxyGtk.cpp:335
&gt; &gt; +    GdkRectangle windowRect = { rect.x(), rect.y(), rect.width(), rect.height() };
&gt; 
&gt; This exact same line is repeated below, so I would take it out of
&gt; the “#if USE(GTK4)” guard.

Yes, but inside a GTK_CHECK_VERSION(3, 24, 0) if</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1658258</commentid>
    <comment_count>4</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-06-02 06:04:46 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #3)
&gt; (In reply to Adrian Perez from comment #2)
&gt; &gt; Comment on attachment 400806 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=400806&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/gtk/WebPopupMenuProxyGtk.cpp:335
&gt; &gt; &gt; +    GdkRectangle windowRect = { rect.x(), rect.y(), rect.width(), rect.height() };
&gt; &gt; 
&gt; &gt; This exact same line is repeated below, so I would take it out of
&gt; &gt; the “#if USE(GTK4)” guard.
&gt; 
&gt; Yes, but inside a GTK_CHECK_VERSION(3, 24, 0) if

You are right, all good then!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1658259</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-06-02 06:05:02 -0700</bug_when>
    <thetext>Committed r262414: &lt;https://trac.webkit.org/changeset/262414&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400806</attachid>
            <date>2020-06-02 05:24:21 -0700</date>
            <delta_ts>2020-06-02 05:42:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wkgtk4-popup-menu.diff</filename>
            <type>text/plain</type>
            <size>18718</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzMzJjZjU4MjYwMTUuLjFkZjgzNjYxYTRjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDIwLTA2LTAyICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLNF0gTWFrZSBwb3B1cCBtZW51cyB3b3JrCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTExNzgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2d0
ay9HdGtWZXJzaW9uaW5nLmg6CisgICAgICAgIChndGtfdHJlZV92aWV3X2NvbHVtbl9jZWxsX2dl
dF9zaXplKToKKwogMjAyMC0wNi0wMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUSzRdIEFkZCBwcmludGluZyBzdXBwb3J0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVmVyc2lvbmluZy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1ZlcnNpb25pbmcuaAppbmRleCAyM2I1YmY1ODQxZWQu
LmZkNWQ4YWIxNWNlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0
a1ZlcnNpb25pbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVmVyc2lv
bmluZy5oCkBAIC0yMjYsNiArMjI2LDEyIEBAIGd0a19kaWFsb2dfcnVuKEd0a0RpYWxvZyogZGlh
bG9nKQogICAgIHJldHVybiBjb250ZXh0LnJlc3BvbnNlOwogfQogCitzdGF0aWMgaW5saW5lIHZv
aWQKK2d0a190cmVlX3ZpZXdfY29sdW1uX2NlbGxfZ2V0X3NpemUoR3RrVHJlZVZpZXdDb2x1bW4q
IGNvbHVtbiwgY29uc3QgR2RrUmVjdGFuZ2xlKiwgZ2ludCogeE9mZnNldCwgZ2ludCogeU9mZnNl
dCwgZ2ludCogd2lkdGgsIGdpbnQqIGhlaWdodCkKK3sKKyAgICBndGtfdHJlZV92aWV3X2NvbHVt
bl9jZWxsX2dldF9zaXplKGNvbHVtbiwgeE9mZnNldCwgeU9mZnNldCwgd2lkdGgsIGhlaWdodCk7
Cit9CisKICNlbHNlIC8vIFVTRShHVEs0KQogCiBzdGF0aWMgaW5saW5lIHZvaWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggZjlhNTc3OTUyZDNmLi5hZGNhNDg4N2Q2YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAK
KzIwMjAtMDYtMDIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgor
CisgICAgICAgIFtHVEs0XSBNYWtlIHBvcHVwIG1lbnVzIHdvcmsKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTE3OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBhIEd0a1BvcG92ZXIgZm9yIEdUSzQg
aW5zdGVhZCBvZiBhIEd0a01lbnUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9QYWdl
Q2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjcmVhdGVQ
b3B1cE1lbnVQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UG9wdXBN
ZW51LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViS2l0UG9wdXBNZW51OjpXZWJLaXRQb3B1cE1l
bnUpOgorICAgICAgICAoV2ViS2l0OjptZW51Q2xvc2VDYWxsYmFjayk6CisgICAgICAgIChXZWJL
aXQ6OldlYktpdFBvcHVwTWVudTo6c2hvd1BvcHVwTWVudSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YktpdFBvcHVwTWVudTo6aGlkZVBvcHVwTWVudSk6CisgICAgICAgIChXZWJLaXQ6OldlYktpdFBv
cHVwTWVudTo6Y2FuY2VsVHJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJLaXRQb3B1cE1l
bnU6OmFjdGl2YXRlSXRlbSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UG9w
dXBNZW51Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2Uu
Y3BwOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VTaXplQWxsb2NhdGUpOiBJdGVyYXRlIGNo
aWxkcmVuIGFuZCBjYWxsIGNoZWNrX3Jlc2l6ZSBvbiBldmVyeSBuYXRpdmUgb25lLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQb3B1cE1lbnVQcm94eUd0azo6dHJlZVZpZXdCdXR0b25SZWxlYXNlRXZlbnRDYWxs
YmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5R3RrOjpjcmVhdGVQb3B1
cE1lbnUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eUd0azo6c2hvd1BvcHVw
TWVudSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5R3RrOjpoaWRlUG9wdXBN
ZW51KToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlHdGs6OnRyZWVWaWV3Um93
QWN0aXZhdGVkQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2Vi
UG9wdXBNZW51UHJveHlHdGsuaDoKKwogMjAyMC0wNi0wMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUSzRdIEFkZCBwcmludGluZyBzdXBw
b3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGll
bnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudElt
cGwuY3BwCmluZGV4IGJkZjU1NWNlNmNjMi4uMjE3MGVjNmIzNzRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtMjUzLDEz
ICsyNTMsOSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aEtleUV2ZW50KGNvbnN0IE5h
dGl2ZVdlYktleWJvYXJkRXZlbnQmIGV2ZW50LCBib29sCiAKIFJlZlB0cjxXZWJQb3B1cE1lbnVQ
cm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYg
cGFnZSkKIHsKLSNpZiBVU0UoR1RLNCkKLSAgICByZXR1cm4gbnVsbHB0cjsKLSNlbHNlCiAgICAg
aWYgKFdFQktJVF9JU19XRUJfVklFVyhtX3ZpZXdXaWRnZXQpKQogICAgICAgICByZXR1cm4gV2Vi
S2l0UG9wdXBNZW51OjpjcmVhdGUobV92aWV3V2lkZ2V0LCBwYWdlKTsKICAgICByZXR1cm4gV2Vi
UG9wdXBNZW51UHJveHlHdGs6OmNyZWF0ZShtX3ZpZXdXaWRnZXQsIHBhZ2UpOwotI2VuZGlmCiB9
CiAKIFJlZjxXZWJDb250ZXh0TWVudVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29udGV4
dE1lbnVQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIENvbnRleHRNZW51Q29udGV4dERhdGEmJiBj
b250ZXh0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBvcHVwTWVudS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBvcHVwTWVudS5jcHAKaW5kZXggYTRmYjU5MmQ1NjE2
Li44YjExZWFjNmRkOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0UG9wdXBNZW51LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFBvcHVwTWVudS5jcHAKQEAgLTI4LDI0ICsyOCwxNyBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBXZWJLaXRQb3B1cE1lbnU6OldlYktp
dFBvcHVwTWVudShHdGtXaWRnZXQqIHdlYlZpZXcsIFdlYlBvcHVwTWVudVByb3h5OjpDbGllbnQm
IGNsaWVudCkKLSNpZiBVU0UoR1RLNCkKLSAgICA6IFdlYlBvcHVwTWVudVByb3h5KGNsaWVudCkK
LSNlbHNlCiAgICAgOiBXZWJQb3B1cE1lbnVQcm94eUd0ayh3ZWJWaWV3LCBjbGllbnQpCi0jZW5k
aWYKIHsKIH0KIAotI2lmICFVU0UoR1RLNCkKIHN0YXRpYyB2b2lkIG1lbnVDbG9zZUNhbGxiYWNr
KFdlYktpdFBvcHVwTWVudSogcG9wdXBNZW51KQogewogICAgIHBvcHVwTWVudS0+YWN0aXZhdGVJ
dGVtKFdURjo6bnVsbG9wdCk7CiB9Ci0jZW5kaWYKIAogdm9pZCBXZWJLaXRQb3B1cE1lbnU6OnNo
b3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24s
IGRvdWJsZSBwYWdlU2NhbGVGYWN0b3IsIGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVt
cywgY29uc3QgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhJiBwbGF0Zm9ybURhdGEsIGludDMyX3Qgc2Vs
ZWN0ZWRJbmRleCkKIHsKLSNpZiAhVVNFKEdUSzQpCiAgICAgR1JlZlB0cjxXZWJLaXRPcHRpb25N
ZW51PiBtZW51ID0gYWRvcHRHUmVmKHdlYmtpdE9wdGlvbk1lbnVDcmVhdGUoKnRoaXMsIGl0ZW1z
LCBzZWxlY3RlZEluZGV4KSk7CiAgICAgY29uc3QgR2RrRXZlbnQqIGV2ZW50ID0gbV9jbGllbnQt
PmN1cnJlbnRseVByb2Nlc3NlZE1vdXNlRG93bkV2ZW50KCkgPyBtX2NsaWVudC0+Y3VycmVudGx5
UHJvY2Vzc2VkTW91c2VEb3duRXZlbnQoKS0+bmF0aXZlRXZlbnQoKSA6IG51bGxwdHI7CiAgICAg
aWYgKHdlYmtpdFdlYlZpZXdTaG93T3B0aW9uTWVudShXRUJLSVRfV0VCX1ZJRVcobV93ZWJWaWV3
KSwgcmVjdCwgbWVudS5nZXQoKSwgZXZlbnQpKSB7CkBAIC01MywzNCArNDYsMjggQEAgdm9pZCBX
ZWJLaXRQb3B1cE1lbnU6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERp
cmVjdGlvbiBkaXJlY3Rpb24KICAgICAgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKG1fbWVu
dS5nZXQoKSwgImNsb3NlIiwgR19DQUxMQkFDSyhtZW51Q2xvc2VDYWxsYmFjayksIHRoaXMpOwog
ICAgIH0gZWxzZQogICAgICAgICBXZWJQb3B1cE1lbnVQcm94eUd0azo6c2hvd1BvcHVwTWVudShy
ZWN0LCBkaXJlY3Rpb24sIHBhZ2VTY2FsZUZhY3RvciwgaXRlbXMsIHBsYXRmb3JtRGF0YSwgc2Vs
ZWN0ZWRJbmRleCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBXZWJLaXRQb3B1cE1lbnU6OmhpZGVQb3B1
cE1lbnUoKQogewotI2lmICFVU0UoR1RLNCkKICAgICBpZiAoIW1fbWVudSkgewogICAgICAgICBX
ZWJQb3B1cE1lbnVQcm94eUd0azo6aGlkZVBvcHVwTWVudSgpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfbWF0Y2hlZChtX21lbnUuZ2V0
KCksIEdfU0lHTkFMX01BVENIX0RBVEEsIDAsIDAsIG51bGxwdHIsIG51bGxwdHIsIHRoaXMpOwog
ICAgIHdlYmtpdF9vcHRpb25fbWVudV9jbG9zZShtX21lbnUuZ2V0KCkpOwotI2VuZGlmCiB9CiAK
IHZvaWQgV2ViS2l0UG9wdXBNZW51OjpjYW5jZWxUcmFja2luZygpCiB7Ci0jaWYgIVVTRShHVEs0
KQogICAgIGlmICghbV9tZW51KSB7CiAgICAgICAgIFdlYlBvcHVwTWVudVByb3h5R3RrOjpjYW5j
ZWxUcmFja2luZygpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGhpZGVQb3B1cE1lbnUo
KTsKICAgICBtX21lbnUgPSBudWxscHRyOwotI2VuZGlmCiB9CiAKLSNpZiAhVVNFKEdUSzQpCiB2
b2lkIFdlYktpdFBvcHVwTWVudTo6YWN0aXZhdGVJdGVtKE9wdGlvbmFsPHVuc2lnbmVkPiBpdGVt
SW5kZXgpCiB7CiAgICAgV2ViUG9wdXBNZW51UHJveHlHdGs6OmFjdGl2YXRlSXRlbShpdGVtSW5k
ZXgpOwpAQCAtODksNiArNzYsNSBAQCB2b2lkIFdlYktpdFBvcHVwTWVudTo6YWN0aXZhdGVJdGVt
KE9wdGlvbmFsPHVuc2lnbmVkPiBpdGVtSW5kZXgpCiAgICAgICAgIG1fbWVudSA9IG51bGxwdHI7
CiAgICAgfQogfQotI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQb3B1cE1lbnUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UG9wdXBNZW51LmgKaW5kZXggYjM1MjRh
NzJlODIzLi41MjJjMmM2ZmQzZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0UG9wdXBNZW51LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRQb3B1cE1lbnUuaApAQCAtMjYsMTEgKzI2LDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgX1dlYktpdE9wdGlvbk1lbnUgV2ViS2l0T3B0aW9uTWVudTsKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKLSNpZiBVU0UoR1RLNCkKLWNsYXNzIFdlYktpdFBvcHVwTWVudSBmaW5hbCA6IHB1Ymxp
YyBXZWJQb3B1cE1lbnVQcm94eSB7Ci0jZWxzZQogY2xhc3MgV2ViS2l0UG9wdXBNZW51IGZpbmFs
IDogcHVibGljIFdlYlBvcHVwTWVudVByb3h5R3RrIHsKLSNlbmRpZgogcHVibGljOgogICAgIHN0
YXRpYyBSZWY8V2ViS2l0UG9wdXBNZW51PiBjcmVhdGUoR3RrV2lkZ2V0KiB3ZWJWaWV3LCBXZWJQ
b3B1cE1lbnVQcm94eTo6Q2xpZW50JiBjbGllbnQpCiAgICAgewpAQCAtMzgsMTIgKzM0LDcgQEAg
cHVibGljOgogICAgIH0KICAgICB+V2ViS2l0UG9wdXBNZW51KCkgPSBkZWZhdWx0OwogCi0jaWYg
VVNFKEdUSzQpCi0gICAgdm9pZCBzZWxlY3RJdGVtKHVuc2lnbmVkKSB7IH07Ci0gICAgdm9pZCBh
Y3RpdmF0ZUl0ZW0oT3B0aW9uYWw8dW5zaWduZWQ+KSB7IH07Ci0jZWxzZQogICAgIHZvaWQgYWN0
aXZhdGVJdGVtKE9wdGlvbmFsPHVuc2lnbmVkPiBpdGVtSW5kZXgpIG92ZXJyaWRlOwotI2VuZGlm
CiAKIHByaXZhdGU6CiAgICAgV2ViS2l0UG9wdXBNZW51KEd0a1dpZGdldCosIFdlYlBvcHVwTWVu
dVByb3h5OjpDbGllbnQmKTsKQEAgLTUyLDkgKzQzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGhp
ZGVQb3B1cE1lbnUoKSBvdmVycmlkZTsKICAgICB2b2lkIGNhbmNlbFRyYWNraW5nKCkgb3ZlcnJp
ZGU7CiAKLSNpZiAhVVNFKEdUSzQpCiAgICAgR1JlZlB0cjxXZWJLaXRPcHRpb25NZW51PiBtX21l
bnU7Ci0jZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAppbmRleCA3
MDA2Mzg0MjI3NjIuLjJlMDhiY2Q2NGQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKQEAgLTg1Myw4ICs4NTMsMTAg
QEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VTaXplQWxsb2NhdGUoR3RrV2lkZ2V0KiB3
aWRnZXQsIEd0a0FsbG9jYXRpb24qIGFsbG8KICAgICB9CiAKICNpZiBVU0UoR1RLNCkKLSAgICBp
ZiAocHJpdi0+YWN0aXZlQ29udGV4dE1lbnVQcm94eSkKLSAgICAgICAgZ3RrX25hdGl2ZV9jaGVj
a19yZXNpemUoR1RLX05BVElWRShwcml2LT5hY3RpdmVDb250ZXh0TWVudVByb3h5LT5ndGtXaWRn
ZXQoKSkpOworICAgIGZvciAoYXV0byogY2hpbGQgPSBndGtfd2lkZ2V0X2dldF9maXJzdF9jaGls
ZCh3aWRnZXQpOyBjaGlsZDsgY2hpbGQgPSBndGtfd2lkZ2V0X2dldF9uZXh0X3NpYmxpbmcoY2hp
bGQpKSB7CisgICAgICAgIGlmIChHVEtfSVNfTkFUSVZFKGNoaWxkKSkKKyAgICAgICAgICAgIGd0
a19uYXRpdmVfY2hlY2tfcmVzaXplKEdUS19OQVRJVkUoY2hpbGQpKTsKKyAgICB9CiAjZW5kaWYK
IAogICAgIGlmIChhdXRvKiBkcmF3aW5nQXJlYSA9IHN0YXRpY19jYXN0PERyYXdpbmdBcmVhUHJv
eHlDb29yZGluYXRlZEdyYXBoaWNzKj4ocHJpdi0+cGFnZVByb3h5LT5kcmF3aW5nQXJlYSgpKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94
eUd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlH
dGsuY3BwCmluZGV4IDkxNTUyZThmNjdjOC4uZmIyNWZiNmEyM2I2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5jcHAKQEAgLTI2
LDExICsyNiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYlBvcHVwTWVu
dVByb3h5R3RrLmgiCiAKLSNpZiAhVVNFKEdUSzQpCi0KICNpbmNsdWRlICJOYXRpdmVXZWJNb3Vz
ZUV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViUG9wdXBJdGVtLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9H
dGtVdGlsaXRpZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0d0a1ZlcnNpb25pbmcuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8
d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgpAQCAtMTExLDIwICsxMTAsMTYgQEAgdm9pZCBXZWJQb3B1
cE1lbnVQcm94eUd0azo6YWN0aXZhdGVTZWxlY3RlZEl0ZW0oKQogICAgIGFjdGl2YXRlSXRlbUF0
UGF0aChwYXRoLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQb3B1cE1lbnVQcm94eUd0azo6dHJlZVZp
ZXdSb3dBY3RpdmF0ZWRDYWxsYmFjayhHdGtUcmVlVmlldyosIEd0a1RyZWVQYXRoKiBwYXRoLCBH
dGtUcmVlVmlld0NvbHVtbiosIFdlYlBvcHVwTWVudVByb3h5R3RrKiBwb3B1cE1lbnUpCi17Ci0g
ICAgcG9wdXBNZW51LT5hY3RpdmF0ZUl0ZW1BdFBhdGgocGF0aCk7Ci19Ci0KLWdib29sZWFuIFdl
YlBvcHVwTWVudVByb3h5R3RrOjp0cmVlVmlld0J1dHRvblJlbGVhc2VFdmVudENhbGxiYWNrKEd0
a1dpZGdldCogdHJlZVZpZXcsIEdka0V2ZW50QnV0dG9uKiBldmVudCwgV2ViUG9wdXBNZW51UHJv
eHlHdGsqIHBvcHVwTWVudSkKKyNpZiAhVVNFKEdUSzQpCitnYm9vbGVhbiBXZWJQb3B1cE1lbnVQ
cm94eUd0azo6dHJlZVZpZXdCdXR0b25SZWxlYXNlRXZlbnRDYWxsYmFjayhHdGtXaWRnZXQqIHRy
ZWVWaWV3LCBHZGtFdmVudCogZXZlbnQsIFdlYlBvcHVwTWVudVByb3h5R3RrKiBwb3B1cE1lbnUp
CiB7CiAgICAgZ3VpbnQgYnV0dG9uOwotICAgIGdka19ldmVudF9nZXRfYnV0dG9uKHJlaW50ZXJw
cmV0X2Nhc3Q8R2RrRXZlbnQqPihldmVudCksICZidXR0b24pOworICAgIGdka19ldmVudF9nZXRf
YnV0dG9uKGV2ZW50LCAmYnV0dG9uKTsKICAgICBpZiAoYnV0dG9uICE9IEdES19CVVRUT05fUFJJ
TUFSWSkKICAgICAgICAgcmV0dXJuIEZBTFNFOwogCiAgICAgZG91YmxlIHgsIHk7Ci0gICAgZ2Rr
X2V2ZW50X2dldF9jb29yZHMocmVpbnRlcnByZXRfY2FzdDxHZGtFdmVudCo+KGV2ZW50KSwgJngs
ICZ5KTsKKyAgICBnZGtfZXZlbnRfZ2V0X2Nvb3JkcyhldmVudCwgJngsICZ5KTsKICAgICBHVW5p
cXVlT3V0UHRyPEd0a1RyZWVQYXRoPiBwYXRoOwogICAgIGlmICghZ3RrX3RyZWVfdmlld19nZXRf
cGF0aF9hdF9wb3MoR1RLX1RSRUVfVklFVyh0cmVlVmlldyksIHgsIHksICZwYXRoLm91dFB0cigp
LCBudWxscHRyLCBudWxscHRyLCBudWxscHRyKSkKICAgICAgICAgcmV0dXJuIEZBTFNFOwpAQCAt
MTU1LDYgKzE1MCw3IEBAIGdib29sZWFuIFdlYlBvcHVwTWVudVByb3h5R3RrOjprZXlQcmVzc0V2
ZW50Q2FsbGJhY2soR3RrV2lkZ2V0KiB3aWRnZXQsIEdka0V2ZW50CiAgICAgZ3RrX3dpZGdldF9l
dmVudChwb3B1cE1lbnUtPm1fdHJlZVZpZXcsIGV2ZW50KTsKICAgICByZXR1cm4gVFJVRTsKIH0K
KyNlbmRpZgogCiB2b2lkIFdlYlBvcHVwTWVudVByb3h5R3RrOjpjcmVhdGVQb3B1cE1lbnUoY29u
c3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mIGl0ZW1zLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgpCiB7
CkBAIC0xOTUsOCArMTkxLDEzIEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlHdGs6OmNyZWF0ZVBv
cHVwTWVudShjb25zdCBWZWN0b3I8V2ViUG9wdXBJdGVtPiYgaXRlbXMsIGluCiAKICAgICBtX3Ry
ZWVWaWV3ID0gZ3RrX3RyZWVfdmlld19uZXdfd2l0aF9tb2RlbChHVEtfVFJFRV9NT0RFTChtb2Rl
bC5nZXQoKSkpOwogICAgIGF1dG8qIHRyZWVWaWV3ID0gR1RLX1RSRUVfVklFVyhtX3RyZWVWaWV3
KTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KHRyZWVWaWV3LCAicm93LWFjdGl2YXRlZCIsIEdfQ0FM
TEJBQ0sodHJlZVZpZXdSb3dBY3RpdmF0ZWRDYWxsYmFjayksIHRoaXMpOworICAgIGdfc2lnbmFs
X2Nvbm5lY3Rfc3dhcHBlZCh0cmVlVmlldywgInJvdy1hY3RpdmF0ZWQiLCBHX0NBTExCQUNLKCtb
XShXZWJQb3B1cE1lbnVQcm94eUd0ayogcG9wdXBNZW51LCBHdGtUcmVlUGF0aCogcGF0aCkgewor
ICAgICAgICBwb3B1cE1lbnUtPmFjdGl2YXRlSXRlbUF0UGF0aChwYXRoKTsKKyAgICB9KSwgdGhp
cyk7CisKKyNpZiAhVVNFKEdUSzQpCiAgICAgZ19zaWduYWxfY29ubmVjdF9hZnRlcih0cmVlVmll
dywgImJ1dHRvbi1yZWxlYXNlLWV2ZW50IiwgR19DQUxMQkFDSyh0cmVlVmlld0J1dHRvblJlbGVh
c2VFdmVudENhbGxiYWNrKSwgdGhpcyk7CisjZW5kaWYKICAgICBndGtfdHJlZV92aWV3X3NldF90
b29sdGlwX2NvbHVtbih0cmVlVmlldywgQ29sdW1uczo6VG9vbHRpcCk7CiAgICAgZ3RrX3RyZWVf
dmlld19zZXRfc2hvd19leHBhbmRlcnModHJlZVZpZXcsIEZBTFNFKTsKICAgICBndGtfdHJlZV92
aWV3X3NldF9sZXZlbF9pbmRlbnRhdGlvbih0cmVlVmlldywgMTIpOwpAQCAtMjI5LDEwICsyMzAs
MzMgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eUd0azo6Y3JlYXRlUG9wdXBNZW51KGNvbnN0IFZl
Y3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywgaW4KIAogICAgIGF1dG8qIHN3aW5kb3cgPSBndGtf
c2Nyb2xsZWRfd2luZG93X25ldyhudWxscHRyLCBudWxscHRyKTsKICAgICBndGtfc2Nyb2xsZWRf
d2luZG93X3NldF9wb2xpY3koR1RLX1NDUk9MTEVEX1dJTkRPVyhzd2luZG93KSwgR1RLX1BPTElD
WV9ORVZFUiwgR1RLX1BPTElDWV9BVVRPTUFUSUMpOworI2lmIFVTRShHVEs0KQorICAgIGd0a19z
Y3JvbGxlZF93aW5kb3dfc2V0X2NoaWxkKEdUS19TQ1JPTExFRF9XSU5ET1coc3dpbmRvdyksIG1f
dHJlZVZpZXcpOworI2Vsc2UKICAgICBndGtfc2Nyb2xsZWRfd2luZG93X3NldF9zaGFkb3dfdHlw
ZShHVEtfU0NST0xMRURfV0lORE9XKHN3aW5kb3cpLCBHVEtfU0hBRE9XX0VUQ0hFRF9JTik7CiAg
ICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihzd2luZG93KSwgbV90cmVlVmlldyk7
CiAgICAgZ3RrX3dpZGdldF9zaG93KG1fdHJlZVZpZXcpOworI2VuZGlmCiAKKyNpZiBVU0UoR1RL
NCkKKyAgICBtX3BvcHVwID0gZ3RrX3BvcG92ZXJfbmV3KCk7CisgICAgZ19zaWduYWxfY29ubmVj
dF9zd2FwcGVkKG1fcG9wdXAsICJjbG9zZWQiLCBHX0NBTExCQUNLKCtbXShXZWJQb3B1cE1lbnVQ
cm94eUd0ayogcG9wdXBNZW51KSB7CisgICAgICAgIHBvcHVwTWVudS0+aGlkZVBvcHVwTWVudSgp
OworICAgIH0pLCB0aGlzKTsKKyAgICBndGtfcG9wb3Zlcl9zZXRfaGFzX2Fycm93KEdUS19QT1BP
VkVSKG1fcG9wdXApLCBGQUxTRSk7CisgICAgZ3RrX3BvcG92ZXJfc2V0X3Bvc2l0aW9uKEdUS19Q
T1BPVkVSKG1fcG9wdXApLCBHVEtfUE9TX0JPVFRPTSk7CisgICAgZ3RrX3BvcG92ZXJfc2V0X2No
aWxkKEdUS19QT1BPVkVSKG1fcG9wdXApLCBzd2luZG93KTsKKyAgICBndGtfd2lkZ2V0X3NldF9w
YXJlbnQobV9wb3B1cCwgbV93ZWJWaWV3KTsKKworICAgIGF1dG8qIGNvbnRyb2xsZXIgPSBndGtf
ZXZlbnRfY29udHJvbGxlcl9rZXlfbmV3KCk7CisgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVk
KGNvbnRyb2xsZXIsICJrZXktcHJlc3NlZCIsIEdfQ0FMTEJBQ0soK1tdKFdlYlBvcHVwTWVudVBy
b3h5R3RrKiBwb3B1cE1lbnUsIHVuc2lnbmVkIGtleXZhbCwgdW5zaWduZWQsIEdka01vZGlmaWVy
VHlwZSwgR3RrRXZlbnRDb250cm9sbGVyKiBjb250cm9sbGVyKSB7CisgICAgICAgIGF1dG8qIGV2
ZW50ID0gZ3RrX2V2ZW50X2NvbnRyb2xsZXJfZ2V0X2N1cnJlbnRfZXZlbnQoY29udHJvbGxlcik7
CisgICAgICAgIGlmIChwb3B1cE1lbnUtPnR5cGVBaGVhZEZpbmQoa2V5dmFsLCBnZGtfZXZlbnRf
Z2V0X3RpbWUoZXZlbnQpKSkKKyAgICAgICAgICAgIHJldHVybiBHREtfRVZFTlRfU1RPUDsKKyAg
ICAgICAgcmV0dXJuIGd0a19ldmVudF9jb250cm9sbGVyX2tleV9mb3J3YXJkKEdUS19FVkVOVF9D
T05UUk9MTEVSX0tFWShjb250cm9sbGVyKSwgcG9wdXBNZW51LT5tX3RyZWVWaWV3KTsKKyAgICB9
KSwgdGhpcyk7CisgICAgZ3RrX3dpZGdldF9hZGRfY29udHJvbGxlcihtX3BvcHVwLCBjb250cm9s
bGVyKTsKKyNlbHNlCiAgICAgbV9wb3B1cCA9IGd0a193aW5kb3dfbmV3KEdUS19XSU5ET1dfUE9Q
VVApOwogICAgIGdfc2lnbmFsX2Nvbm5lY3QobV9wb3B1cCwgImJ1dHRvbi1wcmVzcy1ldmVudCIs
IEdfQ0FMTEJBQ0soYnV0dG9uUHJlc3NFdmVudENhbGxiYWNrKSwgdGhpcyk7CiAgICAgZ19zaWdu
YWxfY29ubmVjdChtX3BvcHVwLCAia2V5LXByZXNzLWV2ZW50IiwgR19DQUxMQkFDSyhrZXlQcmVz
c0V2ZW50Q2FsbGJhY2spLCB0aGlzKTsKQEAgLTI0MCw2ICsyNjQsNyBAQCB2b2lkIFdlYlBvcHVw
TWVudVByb3h5R3RrOjpjcmVhdGVQb3B1cE1lbnUoY29uc3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4m
IGl0ZW1zLCBpbgogICAgIGd0a193aW5kb3dfc2V0X3Jlc2l6YWJsZShHVEtfV0lORE9XKG1fcG9w
dXApLCBGQUxTRSk7CiAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihtX3BvcHVw
KSwgc3dpbmRvdyk7CiAgICAgZ3RrX3dpZGdldF9zaG93KHN3aW5kb3cpOworI2VuZGlmCiB9CiAK
IHZvaWQgV2ViUG9wdXBNZW51UHJveHlHdGs6OnNob3coKQpAQCAtMjY0LDEyICsyODksMTUgQEAg
dm9pZCBXZWJQb3B1cE1lbnVQcm94eUd0azo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiBy
ZWN0LCBUZXh0RGlyZWN0aW9uLCBkb3UKICAgICBhdXRvKiBjb2x1bW4gPSBndGtfdHJlZV92aWV3
X2dldF9jb2x1bW4oR1RLX1RSRUVfVklFVyhtX3RyZWVWaWV3KSwgQ29sdW1uczo6TGFiZWwpOwog
ICAgIGdpbnQgaXRlbUhlaWdodDsKICAgICBndGtfdHJlZV92aWV3X2NvbHVtbl9jZWxsX2dldF9z
aXplKGNvbHVtbiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgJml0ZW1IZWln
aHQpOworI2lmICFVU0UoR1RLNCkKICAgICBnaW50IHZlcnRpY2FsU2VwYXJhdG9yOwogICAgIGd0
a193aWRnZXRfc3R5bGVfZ2V0KG1fdHJlZVZpZXcsICJ2ZXJ0aWNhbC1zZXBhcmF0b3IiLCAmdmVy
dGljYWxTZXBhcmF0b3IsIG51bGxwdHIpOwogICAgIGl0ZW1IZWlnaHQgKz0gdmVydGljYWxTZXBh
cmF0b3I7CisjZW5kaWYKICAgICBpZiAoIWl0ZW1IZWlnaHQpCiAgICAgICAgIHJldHVybjsKIAor
I2lmICFVU0UoR1RLNCkKICAgICBhdXRvKiB0b3BsZXZlbCA9IGd0a193aWRnZXRfZ2V0X3RvcGxl
dmVsKG1fd2ViVmlldyk7CiAgICAgaWYgKEdUS19JU19XSU5ET1codG9wbGV2ZWwpKSB7CiAgICAg
ICAgIGd0a193aW5kb3dfc2V0X3RyYW5zaWVudF9mb3IoR1RLX1dJTkRPVyhtX3BvcHVwKSwgR1RL
X1dJTkRPVyh0b3BsZXZlbCkpOwpAQCAtMjc3LDE1ICszMDUsMjQgQEAgdm9pZCBXZWJQb3B1cE1l
bnVQcm94eUd0azo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0
aW9uLCBkb3UKICAgICB9CiAgICAgZ3RrX3dpbmRvd19zZXRfYXR0YWNoZWRfdG8oR1RLX1dJTkRP
VyhtX3BvcHVwKSwgbV93ZWJWaWV3KTsKICAgICBndGtfd2luZG93X3NldF9zY3JlZW4oR1RLX1dJ
TkRPVyhtX3BvcHVwKSwgZ3RrX3dpZGdldF9nZXRfc2NyZWVuKG1fd2ViVmlldykpOworI2VuZGlm
CiAKICAgICBhdXRvKiBkaXNwbGF5ID0gZ3RrX3dpZGdldF9nZXRfZGlzcGxheShtX3dlYlZpZXcp
OworI2lmIFVTRShHVEs0KQorICAgIGF1dG8qIG1vbml0b3IgPSBnZGtfZGlzcGxheV9nZXRfbW9u
aXRvcl9hdF9zdXJmYWNlKGRpc3BsYXksIGd0a19uYXRpdmVfZ2V0X3N1cmZhY2UoZ3RrX3dpZGdl
dF9nZXRfbmF0aXZlKG1fd2ViVmlldykpKTsKKyNlbHNlCiAgICAgYXV0byogbW9uaXRvciA9IGdk
a19kaXNwbGF5X2dldF9tb25pdG9yX2F0X3dpbmRvdyhkaXNwbGF5LCBndGtfd2lkZ2V0X2dldF93
aW5kb3cobV93ZWJWaWV3KSk7CisjZW5kaWYKICAgICBHZGtSZWN0YW5nbGUgYXJlYTsKICAgICBn
ZGtfbW9uaXRvcl9nZXRfd29ya2FyZWEobW9uaXRvciwgJmFyZWEpOwogICAgIGludCB3aWR0aCA9
IHN0ZDo6bWluKHJlY3Qud2lkdGgoKSwgYXJlYS53aWR0aCk7CiAgICAgc2l6ZV90IGl0ZW1Db3Vu
dCA9IHN0ZDo6bWluPHNpemVfdD4oaXRlbXMuc2l6ZSgpLCAoYXJlYS5oZWlnaHQgLyAzKSAvIGl0
ZW1IZWlnaHQpOwogCisjaWYgVVNFKEdUSzQpCisgICAgYXV0byogc3dpbmRvdyA9IEdUS19TQ1JP
TExFRF9XSU5ET1coZ3RrX3BvcG92ZXJfZ2V0X2NoaWxkKEdUS19QT1BPVkVSKG1fcG9wdXApKSk7
CisjZWxzZQogICAgIGF1dG8qIHN3aW5kb3cgPSBHVEtfU0NST0xMRURfV0lORE9XKGd0a19iaW5f
Z2V0X2NoaWxkKEdUS19CSU4obV9wb3B1cCkpKTsKKyNlbmRpZgogICAgIC8vIERpc2FibGUgc2Ny
b2xsYmFycyB3aGVuIHRoZXJlJ3Mgb25seSBvbmUgaXRlbSB0byBlbnN1cmUgdGhlIHNjcm9sbGVk
IHdpbmRvdyBkb2Vzbid0IHRha2UgdGhlbSBpbnRvIGFjY291bnQgd2hlbiBjYWxjdWxhdGluZyBp
dHMgbWluaW11bSBzaXplLgogICAgIGd0a19zY3JvbGxlZF93aW5kb3dfc2V0X3BvbGljeShzd2lu
ZG93LCBHVEtfUE9MSUNZX05FVkVSLCBpdGVtQ291bnQgPiAxID8gR1RLX1BPTElDWV9BVVRPTUFU
SUMgOiBHVEtfUE9MSUNZX05FVkVSKTsKICAgICBndGtfd2lkZ2V0X3JlYWxpemUobV90cmVlVmll
dyk7CkBAIC0yOTQsNiArMzMxLDExIEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlHdGs6OnNob3dQ
b3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiwgZG91CiAgICAgZ3Rr
X3dpZGdldF9zZXRfc2l6ZV9yZXF1ZXN0KG1fcG9wdXAsIHdpZHRoLCAtMSk7CiAgICAgZ3RrX3Nj
cm9sbGVkX3dpbmRvd19zZXRfbWluX2NvbnRlbnRfaGVpZ2h0KHN3aW5kb3csIGl0ZW1Db3VudCAq
IGl0ZW1IZWlnaHQpOwogCisjaWYgVVNFKEdUSzQpCisgICAgR2RrUmVjdGFuZ2xlIHdpbmRvd1Jl
Y3QgPSB7IHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpIH07
CisgICAgZ3RrX3BvcG92ZXJfc2V0X3BvaW50aW5nX3RvKEdUS19QT1BPVkVSKG1fcG9wdXApLCAm
d2luZG93UmVjdCk7CisgICAgc2hvdygpOworI2Vsc2UKICNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigz
LCAyNCwgMCkKICAgICBHZGtSZWN0YW5nbGUgd2luZG93UmVjdCA9IHsgcmVjdC54KCksIHJlY3Qu
eSgpLCByZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkgfTsKICAgICBndGtfd2lkZ2V0X3RyYW5z
bGF0ZV9jb29yZGluYXRlcyhtX3dlYlZpZXcsIHRvcGxldmVsLCB3aW5kb3dSZWN0LngsIHdpbmRv
d1JlY3QueSwgJndpbmRvd1JlY3QueCwgJndpbmRvd1JlY3QueSk7CkBAIC0zMzgsNiArMzgwLDcg
QEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eUd0azo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0
JiByZWN0LCBUZXh0RGlyZWN0aW9uLCBkb3UKICAgICAgICBtX2NsaWVudC0+ZmFpbGVkVG9TaG93
UG9wdXBNZW51KCk7CiAgICAgICAgcmV0dXJuOwogICAgIH0KKyNlbmRpZgogfQogCiB2b2lkIFdl
YlBvcHVwTWVudVByb3h5R3RrOjpoaWRlUG9wdXBNZW51KCkKQEAgLTM0NSw2ICszODgsNyBAQCB2
b2lkIFdlYlBvcHVwTWVudVByb3h5R3RrOjpoaWRlUG9wdXBNZW51KCkKICAgICBpZiAoIW1fcG9w
dXApCiAgICAgICAgIHJldHVybjsKIAorI2lmICFVU0UoR1RLNCkKICAgICBpZiAobV9kZXZpY2Up
IHsKICAgICAgICAgZ2RrX3NlYXRfdW5ncmFiKGdka19kZXZpY2VfZ2V0X3NlYXQobV9kZXZpY2Up
KTsKICAgICAgICAgZ3RrX2dyYWJfcmVtb3ZlKG1fcG9wdXApOwpAQCAtMzUyLDYgKzM5Niw3IEBA
IHZvaWQgV2ViUG9wdXBNZW51UHJveHlHdGs6OmhpZGVQb3B1cE1lbnUoKQogICAgICAgICBndGtf
d2luZG93X3NldF9hdHRhY2hlZF90byhHVEtfV0lORE9XKG1fcG9wdXApLCBudWxscHRyKTsKICAg
ICAgICAgbV9kZXZpY2UgPSBudWxscHRyOwogICAgIH0KKyNlbmRpZgogCiAgICAgYWN0aXZhdGVJ
dGVtKFdURjo6bnVsbG9wdCk7CiAKQEAgLTM2MCw4ICs0MDUsMTIgQEAgdm9pZCBXZWJQb3B1cE1l
bnVQcm94eUd0azo6aGlkZVBvcHVwTWVudSgpCiAgICAgICAgIG1fY3VycmVudFNlYXJjaFN0cmlu
ZyA9IG51bGxwdHI7CiAgICAgfQogCisjaWYgVVNFKEdUSzQpCisgICAgZ19jbGVhcl9wb2ludGVy
KCZtX3BvcHVwLCBndGtfd2lkZ2V0X3VucGFyZW50KTsKKyNlbHNlCiAgICAgZ3RrX3dpZGdldF9k
ZXN0cm95KG1fcG9wdXApOwogICAgIG1fcG9wdXAgPSBudWxscHRyOworI2VuZGlmCiB9CiAKIHZv
aWQgV2ViUG9wdXBNZW51UHJveHlHdGs6OmNhbmNlbFRyYWNraW5nKCkKQEAgLTQ1Niw1ICs1MDUs
MyBAQCBib29sIFdlYlBvcHVwTWVudVByb3h5R3RrOjp0eXBlQWhlYWRGaW5kKHVuc2lnbmVkIGtl
eXZhbCwgdWludDMyX3QgdGltZXN0YW1wKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQot
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBN
ZW51UHJveHlHdGsuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQ
cm94eUd0ay5oCmluZGV4IDZjYjc0YmVjYjcyMi4uOTYzNTZkOGM5ZGZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuaApAQCAtMjAs
MTkgKzIwLDIwIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIldlYlBvcHVwTWVudVByb3h5
LmgiCi0jaWYgIVVTRShHVEs0KQogI2luY2x1ZGUgPFdlYkNvcmUvR1VuaXF1ZVB0ckd0ay5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLXR5cGVkZWYgc3RydWN0IF9HTWFpbkxv
b3AgR01haW5Mb29wOwogdHlwZWRlZiBzdHJ1Y3QgX0dka0RldmljZSBHZGtEZXZpY2U7Ci10eXBl
ZGVmIHN0cnVjdCBfR2RrRXZlbnRCdXR0b24gR2RrRXZlbnRCdXR0b247CiB0eXBlZGVmIHN0cnVj
dCBfR3RrVHJlZVBhdGggR3RrVHJlZVBhdGg7CiB0eXBlZGVmIHN0cnVjdCBfR3RrVHJlZVZpZXcg
R3RrVHJlZVZpZXc7CiB0eXBlZGVmIHN0cnVjdCBfR3RrVHJlZVZpZXdDb2x1bW4gR3RrVHJlZVZp
ZXdDb2x1bW47CisjaWYgVVNFKEdUSzQpCit0eXBlZGVmIHN0cnVjdCBfR2RrRXZlbnQgR2RrRXZl
bnQ7CisjZWxzZQogdHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZlbnQ7CisjZW5kaWYKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSW50UmVjdDsKQEAgLTcyLDE0ICs3MywxNyBAQCBw
cml2YXRlOgogICAgIE9wdGlvbmFsPHVuc2lnbmVkPiB0eXBlQWhlYWRGaW5kSW5kZXgodW5zaWdu
ZWQga2V5dmFsLCB1aW50MzJfdCB0aW1lc3RhbXApOwogICAgIGJvb2wgdHlwZUFoZWFkRmluZCh1
bnNpZ25lZCBrZXl2YWwsIHVpbnQzMl90IHRpbWVzdGFtcCk7CiAKKyNpZiAhVVNFKEdUSzQpCiAg
ICAgc3RhdGljIGdib29sZWFuIGJ1dHRvblByZXNzRXZlbnRDYWxsYmFjayhHdGtXaWRnZXQqLCBH
ZGtFdmVudEJ1dHRvbiosIFdlYlBvcHVwTWVudVByb3h5R3RrKik7CiAgICAgc3RhdGljIGdib29s
ZWFuIGtleVByZXNzRXZlbnRDYWxsYmFjayhHdGtXaWRnZXQqLCBHZGtFdmVudCosIFdlYlBvcHVw
TWVudVByb3h5R3RrKik7Ci0gICAgc3RhdGljIHZvaWQgdHJlZVZpZXdSb3dBY3RpdmF0ZWRDYWxs
YmFjayhHdGtUcmVlVmlldyosIEd0a1RyZWVQYXRoKiwgR3RrVHJlZVZpZXdDb2x1bW4qLCBXZWJQ
b3B1cE1lbnVQcm94eUd0ayopOwotICAgIHN0YXRpYyBnYm9vbGVhbiB0cmVlVmlld0J1dHRvblJl
bGVhc2VFdmVudENhbGxiYWNrKEd0a1dpZGdldCosIEdka0V2ZW50QnV0dG9uKiwgV2ViUG9wdXBN
ZW51UHJveHlHdGsqKTsKKyAgICBzdGF0aWMgZ2Jvb2xlYW4gdHJlZVZpZXdCdXR0b25SZWxlYXNl
RXZlbnRDYWxsYmFjayhHdGtXaWRnZXQqLCBHZGtFdmVudCosIFdlYlBvcHVwTWVudVByb3h5R3Rr
Kik7CisjZW5kaWYKIAogICAgIEd0a1dpZGdldCogbV9wb3B1cCB7IG51bGxwdHIgfTsKICAgICBH
dGtXaWRnZXQqIG1fdHJlZVZpZXcgeyBudWxscHRyIH07CisjaWYgIVVTRShHVEs0KQogICAgIEdk
a0RldmljZSogbV9kZXZpY2UgeyBudWxscHRyIH07CisjZW5kaWYKIAogICAgIFZlY3RvcjxHVW5p
cXVlUHRyPEd0a1RyZWVQYXRoPj4gbV9wYXRoczsKICAgICBPcHRpb25hbDx1bnNpZ25lZD4gbV9z
ZWxlY3RlZEl0ZW07CkBAIC05MSw1ICs5NSwzIEBAIHByaXZhdGU6CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKLQotI2VuZGlmCg==
</data>
<flag name="review"
          id="416196"
          type_id="1"
          status="+"
          setter="aperez"
    />
          </attachment>
      

    </bug>

</bugzilla>