<?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>221226</bug_id>
          
          <creation_ts>2021-02-01 14:00:24 -0800</creation_ts>
          <short_desc>Add scaffolding to request image extraction after a delay when hovering over images</short_desc>
          <delta_ts>2021-02-02 14:26:15 -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>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>hi</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1724405</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-01 14:00:24 -0800</bug_when>
    <thetext>More work towards image extraction (accessibility).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724425</commentid>
    <comment_count>1</comment_count>
      <attachid>418930</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-01 14:51:28 -0800</bug_when>
    <thetext>Created attachment 418930
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724487</commentid>
    <comment_count>2</comment_count>
      <attachid>418930</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-02-01 17:51:30 -0800</bug_when>
    <thetext>Comment on attachment 418930
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:7141
&gt; +    m_elementsWithExtractedImages.add(element);

When are items removed (other than page navigation)?  What would happen if I hover over the same element twice?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724491</commentid>
    <comment_count>3</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-01 18:01:44 -0800</bug_when>
    <thetext>(In reply to Devin Rousso from comment #2)
&gt; Comment on attachment 418930 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=418930&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:7141
&gt; &gt; +    m_elementsWithExtractedImages.add(element);
&gt; 
&gt; When are items removed (other than page navigation)?  What would happen if I
&gt; hover over the same element twice?

This is answered in the ChangeLog (essentially, we won&apos;t attempt to re-request image extraction when hovering over an element again).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724747</commentid>
    <comment_count>4</comment_count>
      <attachid>418930</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-02-02 10:25:05 -0800</bug_when>
    <thetext>Comment on attachment 418930
Patch

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

r=me

&gt; Source/WebCore/page/EventHandler.cpp:1884
&gt; +    if (m_imageExtractionTimer.isActive())
&gt; +        m_imageExtractionTimer.restart();

As we discussed offline, we should probably not start the timer for synthetic mouse events (such as on iOS).

&gt; Source/WebCore/page/EventHandler.cpp:2515
&gt; +    if (targetElement &amp;&amp; is&lt;RenderImage&gt;(targetElement-&gt;renderer()))

NIT: i usually prefer to use member variables instead of parameters once the parameter is assigned to the member variable.

&gt;&gt;&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:7141
&gt;&gt;&gt; +    m_elementsWithExtractedImages.add(element);
&gt;&gt; 
&gt;&gt; When are items removed (other than page navigation)?  What would happen if I hover over the same element twice?
&gt; 
&gt; This is answered in the ChangeLog (essentially, we won&apos;t attempt to re-request image extraction when hovering over an element again).

My apologies I totally missed that 😅</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724770</commentid>
    <comment_count>5</comment_count>
      <attachid>418930</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-02 11:03:40 -0800</bug_when>
    <thetext>Comment on attachment 418930
Patch

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

Thanks for the review!

&gt;&gt; Source/WebCore/page/EventHandler.cpp:1884
&gt;&gt; +        m_imageExtractionTimer.restart();
&gt; 
&gt; As we discussed offline, we should probably not start the timer for synthetic mouse events (such as on iOS).

👍🏻

Will guard the two timer activations with checks for `syntheticClickType() == NoTap`.

&gt;&gt; Source/WebCore/page/EventHandler.cpp:2515
&gt;&gt; +    if (targetElement &amp;&amp; is&lt;RenderImage&gt;(targetElement-&gt;renderer()))
&gt; 
&gt; NIT: i usually prefer to use member variables instead of parameters once the parameter is assigned to the member variable.

Sounds good — changed to check `m_elementUnderMouse` instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724801</commentid>
    <comment_count>6</comment_count>
      <attachid>419043</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-02 11:56:48 -0800</bug_when>
    <thetext>Created attachment 419043
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724889</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-02 14:25:39 -0800</bug_when>
    <thetext>Committed r272236: &lt;https://trac.webkit.org/changeset/272236&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 419043.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724890</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-02 14:26:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/73898785&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418930</attachid>
            <date>2021-02-01 14:51:28 -0800</date>
            <delta_ts>2021-02-02 10:25:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221226-20210201145127.patch</filename>
            <type>text/plain</type>
            <size>20488</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjM1ZGM0YWQxNjQ0N2Qz
ZTk5ZGRmY2Y5NTcyNzBmMGFkZmE4ZTcyYy4uY2U0NWQzYWYzODk0NmQ3MTVkYmE1MzAzZWQ2Zjg4
ZDNlYjQ4NjkwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTAyLTAxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzY2FmZm9s
ZGluZyB0byByZXF1ZXN0IGltYWdlIGV4dHJhY3Rpb24gYWZ0ZXIgYSBkZWxheSB3aGVuIGhvdmVy
aW5nIG92ZXIgaW1hZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjEyMjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBTZWUgY29tbWVudHMgYmVsb3cuIFRoZXJlIHNob3VsZCBiZSBubyBjaGFuZ2VzIGlu
IGJlaGF2aW9yICh5ZXQpLCBhbHRob3VnaCB0aGlzIGluZnJhc3RydWN0dXJlIHdpbGwgZXZlbnR1
YWxseQorICAgICAgICBzZXJ2aWNlIGEgbmV3IGFjY2Vzc2liaWxpdHkgZmVhdHVyZSBpbiBzdWJz
ZXF1ZW50IHBhdGNoZXMuCisKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKToKKworICAg
ICAgICBBZGRzIGEgbmV3IGhvb2sgdG8gaW5mb3JtIHRoZSBjbGllbnQgbGF5ZXIgd2hlbiB3ZSBz
aG91bGQgY29uc2lkZXIgcmVxdWVzdGluZyBpbWFnZSBleHRyYWN0aW9uIGZvciBhIGhvdmVyZWQK
KyAgICAgICAgZWxlbWVudC4gU2VlIFdlYktpdCBjaGFuZ2VzIGZvciBtb3JlIGluZm9ybWF0aW9u
LgorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6Om1vdXNlTW92ZWQp
OgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp1cGRhdGVNb3VzZUV2ZW50VGFyZ2V0
Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmltYWdlRXh0cmFjdGlvblRp
bWVyRmlyZWQpOgorCisgICAgICAgIEFkZCBhIG1lY2hhbmlzbSB0byBjYWxsIGludG8gdGhlIGFi
b3ZlIGNocm9tZSBjbGllbnQgaG9vayB3aGVuIHRoZSB1c2VyIGhhcyBob3ZlcmVkIHRoZWlyIG1v
dXNlIGN1cnNvciBvdmVyIGFuCisgICAgICAgIGltYWdlIChlLmcuIGBpbWdgIG9yIGBwaWN0dXJl
YCBlbGVtZW50KSBmb3IgYXQgbGVhc3QgMjUwIG1zIHdpdGhvdXQgbW92aW5nLgorCisgICAgICAg
ICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKwogMjAyMS0wMi0wMSAgU2FhbSBCYXJhdGkgIDxzYmFy
YXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBMYXppbHkgY3JlYXRlIG1fd2luZG93Q2xvc2VXYXRj
aHBvaW50cyBzbyB3ZSBkb24ndCBtaXN0YWtlbmx5IHRoaW5rIHdlIGhhdmUgYSBmcmFtZSB3aGVu
IHJlLWFzc29jaWF0aW5nIGEgZG9jdW1lbnQgdG8gYSBnaXZlbiBjYWNoZWQgZnJhbWUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggMzYyMmI4ZTRhN2YyM2NlZDc5NTkyNmYyNzIwMmIyZjYxNjJmZGJhMy4uMDQxZTAwNmQ3
MWNhNzNjY2ZiNGJmNTZmZGNmMjUyZjM3MmI0MjNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBA
QAorMjAyMS0wMi0wMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBZGQgc2NhZmZvbGRpbmcgdG8gcmVxdWVzdCBpbWFnZSBleHRyYWN0aW9uIGFmdGVy
IGEgZGVsYXkgd2hlbiBob3ZlcmluZyBvdmVyIGltYWdlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMjI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV29yayB0b3dhcmRzIGFsbG93aW5nIGNsaWVudHMg
dG8gZXh0cmFjdCBpbWFnZSBkYXRhIHdoZW4gaG92ZXJpbmcgb3ZlciByZW5kZXJlZCBpbWFnZSBl
bGVtZW50cywgZm9yIG5ldworICAgICAgICBhY2Nlc3NpYmlsaXR5LXJlbGF0ZWQgZmVhdHVyZXMu
IFNlZSBjaGFuZ2VzIGJlbG93IGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZXF1ZXN0SW1hZ2VFeHRy
YWN0aW9uKToKKworICAgICAgICBMZWF2ZSB0aGlzIG1ldGhvZCBzdHViIHVuaW1wbGVtZW50ZWQg
Zm9yIHRoZSB0aW1lIGJlaW5nLgorCisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoK
KyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudDo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbik6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW06CisgICAgICAgIChXZWJL
aXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKToKKworICAgICAgICBB
ZGQgcGx1bWJpbmcgdG8gYWxsb3cgdGhlIHdlYiBwcm9jZXNzIHRvIGFzeW5jaHJvbm91c2x5IHJl
cXVlc3QgaW1hZ2UgZXh0cmFjdGlvbiBkYXRhIGZyb20gdGhlIFVJIHByb2Nlc3MuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbik6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmRpZENvbW1pdExvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXF1
ZXN0SW1hZ2VFeHRyYWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oOgorCisgICAgICAgIEFkZCBhIHdlYWsgc2V0IG9mIGVsZW1lbnRzIHRoYXQgd2UndmUgYXR0
ZW1wdGVkIHRvIGV4dHJhY3QsIHNvIHRoYXQgd2Ugd29uJ3QgZW5kIHVwIGV4dHJhY3RpbmcgZWxl
bWVudHMgbW9yZQorICAgICAgICB0aGFuIG9uY2UuIEFsdGhvdWdoIHRoaXMgc2V0IHRoaXMgY3Vy
cmVudGx5IG9ubHkgY2xlYXJlZCB1cG9uIG5hdmlnYXRpb24sIHRoaXMgc2hvdWxkIGV2ZW50dWFs
bHkgYmUgdXBkYXRlZCB3aGVuCisgICAgICAgIChmb3IgaW5zdGFuY2UpIGFuIGVsZW1lbnQncyBp
bWFnZSBzb3VyY2UgY2hhbmdlcywgc3VjaCB0aGF0IHdlIGNhbiByZS1leHRyYWN0IHRoZSBuZXcg
aW1hZ2UgZGF0YSBpZiBuZWVkZWQuCisKIDIwMjEtMDItMDEgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgY3Jvc3MtcGxhdGZvcm0gaGVscGVy
IG1ldGhvZCB0byBnZW5lcmF0ZSBzaGFyZWFibGUgYml0bWFwcyBmcm9tIHJlbmRlcmVkIGltYWdl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggMGQ3OTU3ZDAzOWY2NjgzOWJhNmMw
MWMwNjk3MjIwNDE3NGFkZTc3OC4uNjcwMWEyZGUwNzQwMjg0MzVhNGJmNzM2YmZiNmZmMjlhMDQ4
ZmRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC01NTQsNiArNTU0LDEwIEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2hhbmdlVW5pdmVyc2FsQWNjZXNzWm9vbUZvY3Vz
KGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0JikgeyB9CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShJTUFHRV9FWFRSQUNUSU9OKQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0SW1hZ2VFeHRyYWN0
aW9uKEVsZW1lbnQmKSB7IH0KKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+Q2hy
b21lQ2xpZW50KCkgPSBkZWZhdWx0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cAppbmRleCAxNTg5Yjk1NjMyODNhZDUwOWI3Njg3ODliYjI3YzI0OGI2MTg2ZTdiLi5jMWJhZThi
MTczZmRkOTJjMjk4ZTExYTE4ZjY3MWJkMDhkYzJkM2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwCkBAIC0zMjEsNiArMzIxLDkgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50
TG9vcEhhbmRsZU1vdXNlRHJhZ2dlZChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHQK
IEV2ZW50SGFuZGxlcjo6RXZlbnRIYW5kbGVyKEZyYW1lJiBmcmFtZSkKICAgICA6IG1fZnJhbWUo
ZnJhbWUpCiAgICAgLCBtX2hvdmVyVGltZXIoKnRoaXMsICZFdmVudEhhbmRsZXI6OmhvdmVyVGlt
ZXJGaXJlZCkKKyNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyAgICAsIG1faW1hZ2VFeHRy
YWN0aW9uVGltZXIoKnRoaXMsICZFdmVudEhhbmRsZXI6OmltYWdlRXh0cmFjdGlvblRpbWVyRmly
ZWQsIDI1MF9tcykKKyNlbmRpZgogICAgICwgbV9hdXRvc2Nyb2xsQ29udHJvbGxlcihtYWtlVW5p
cXVlPEF1dG9zY3JvbGxDb250cm9sbGVyPigpKQogI2lmICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5U
UykKICAgICAsIG1fZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIoKnRoaXMsICZFdmVudEhhbmRsZXI6
OmZha2VNb3VzZU1vdmVFdmVudFRpbWVyRmlyZWQpCkBAIC0zNjAsNiArMzYzLDkgQEAgdm9pZCBF
dmVudEhhbmRsZXI6OmNsZWFyKCkKICNlbmRpZgogI2lmIEVOQUJMRShDVVJTT1JfVklTSUJJTElU
WSkKICAgICBjYW5jZWxBdXRvSGlkZUN1cnNvclRpbWVyKCk7CisjZW5kaWYKKyNpZiBFTkFCTEUo
SU1BR0VfRVhUUkFDVElPTikKKyAgICBtX2ltYWdlRXh0cmFjdGlvblRpbWVyLnN0b3AoKTsKICNl
bmRpZgogICAgIG1fcmVzaXplTGF5ZXIgPSBudWxscHRyOwogICAgIG1fZWxlbWVudFVuZGVyTW91
c2UgPSBudWxscHRyOwpAQCAtMTg3Miw2ICsxODc4LDEyIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpt
b3VzZU1vdmVkKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQpCiAKICAgICBoaXRUZXN0
UmVzdWx0LnNldFRvTm9uVXNlckFnZW50U2hhZG93QW5jZXN0b3IoKTsKICAgICBwYWdlLT5jaHJv
bWUoKS5tb3VzZURpZE1vdmVPdmVyRWxlbWVudChoaXRUZXN0UmVzdWx0LCBldmVudC5tb2RpZmll
ckZsYWdzKCkpOworCisjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisgICAgaWYgKG1faW1h
Z2VFeHRyYWN0aW9uVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9pbWFnZUV4dHJhY3Rpb25U
aW1lci5yZXN0YXJ0KCk7CisjZW5kaWYKKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTI0
OTksNiArMjUxMSwxMyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6dXBkYXRlTW91c2VFdmVudFRhcmdl
dE5vZGUoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBOb2RlKgogCiAgICAgbV9lbGVtZW50
VW5kZXJNb3VzZSA9IHRhcmdldEVsZW1lbnQ7CiAKKyNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElP
TikKKyAgICBpZiAodGFyZ2V0RWxlbWVudCAmJiBpczxSZW5kZXJJbWFnZT4odGFyZ2V0RWxlbWVu
dC0+cmVuZGVyZXIoKSkpCisgICAgICAgIG1faW1hZ2VFeHRyYWN0aW9uVGltZXIucmVzdGFydCgp
OworICAgIGVsc2UKKyAgICAgICAgbV9pbWFnZUV4dHJhY3Rpb25UaW1lci5zdG9wKCk7CisjZW5k
aWYKKwogICAgIEFTU0VSVF9JTVBMSUVTKG1fZWxlbWVudFVuZGVyTW91c2UsICZtX2VsZW1lbnRV
bmRlck1vdXNlLT5kb2N1bWVudCgpID09IG1fZnJhbWUuZG9jdW1lbnQoKSk7CiAgICAgQVNTRVJU
X0lNUExJRVMobV9sYXN0RWxlbWVudFVuZGVyTW91c2UsICZtX2xhc3RFbGVtZW50VW5kZXJNb3Vz
ZS0+ZG9jdW1lbnQoKSA9PSBtX2ZyYW1lLmRvY3VtZW50KCkpOwogCkBAIC0yNTU0LDggKzI1NzMs
MTIgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZU1vdXNlRXZlbnRUYXJnZXROb2RlKGNvbnN0
IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgTm9kZSoKICAgICAgICAgfQogCiAgICAgICAgIC8vIEV2
ZW50IGhhbmRsaW5nIG1heSBoYXZlIG1vdmVkIHRoZSBlbGVtZW50IHRvIGEgZGlmZmVyZW50IGRv
Y3VtZW50LgotICAgICAgICBpZiAobV9lbGVtZW50VW5kZXJNb3VzZSAmJiAmbV9lbGVtZW50VW5k
ZXJNb3VzZS0+ZG9jdW1lbnQoKSAhPSBtX2ZyYW1lLmRvY3VtZW50KCkpCisgICAgICAgIGlmICht
X2VsZW1lbnRVbmRlck1vdXNlICYmICZtX2VsZW1lbnRVbmRlck1vdXNlLT5kb2N1bWVudCgpICE9
IG1fZnJhbWUuZG9jdW1lbnQoKSkgeworI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorICAg
ICAgICAgICAgbV9pbWFnZUV4dHJhY3Rpb25UaW1lci5zdG9wKCk7CisjZW5kaWYKICAgICAgICAg
ICAgIG1fZWxlbWVudFVuZGVyTW91c2UgPSBudWxscHRyOworICAgICAgICB9CiAKICAgICAgICAg
bV9sYXN0RWxlbWVudFVuZGVyTW91c2UgPSBtX2VsZW1lbnRVbmRlck1vdXNlOwogICAgIH0KQEAg
LTMzMjIsNiArMzM0NSwyMSBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6aG92ZXJUaW1lckZpcmVkKCkK
ICAgICB9CiB9CiAKKyNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKwordm9pZCBFdmVudEhh
bmRsZXI6OmltYWdlRXh0cmFjdGlvblRpbWVyRmlyZWQoKQoreworICAgIGlmICghbV9lbGVtZW50
VW5kZXJNb3VzZSB8fCAhaXM8UmVuZGVySW1hZ2U+KG1fZWxlbWVudFVuZGVyTW91c2UtPnJlbmRl
cmVyKCkpKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgaWYgKGF1dG8qIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKSkKKyAgICAgICAg
cGFnZS0+Y2hyb21lKCkuY2xpZW50KCkucmVxdWVzdEltYWdlRXh0cmFjdGlvbigqbV9lbGVtZW50
VW5kZXJNb3VzZSk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKwog
Ym9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZUFjY2Vzc0tleShjb25zdCBQbGF0Zm9ybUtleWJvYXJk
RXZlbnQmIGV2ZW50KQogewogICAgIC8vIEZJWE1FOiBJZ25vcmluZyB0aGUgc3RhdGUgb2YgU2hp
ZnQga2V5IGlzIHdoYXQgbmVpdGhlciBJRSBub3IgRmlyZWZveCBkby4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5oCmluZGV4IDFiMTc1ZGE3OTNjNmM1MTJkMTA0OTlmZTkxZjBmNThjMTlhNzc5
ZWEuLmY3NWY3NjdkMjk2NDI3Yjg3YTc3YjcyNzY1MTBhZTM5ODdmNDNkMzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuaApAQCAtMzg3LDYgKzM4NywxMCBAQCBwcml2YXRlOgogCiAgICAg
dm9pZCBob3ZlclRpbWVyRmlyZWQoKTsKIAorI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQor
ICAgIHZvaWQgaW1hZ2VFeHRyYWN0aW9uVGltZXJGaXJlZCgpOworI2VuZGlmCisKICAgICBib29s
IGxvZ2ljYWxTY3JvbGxPdmVyZmxvdyhTY3JvbGxMb2dpY2FsRGlyZWN0aW9uLCBTY3JvbGxHcmFu
dWxhcml0eSwgTm9kZSogc3RhcnRpbmdOb2RlID0gbnVsbHB0cik7CiAgICAgCiAgICAgYm9vbCBz
aG91bGRTd2FwU2Nyb2xsRGlyZWN0aW9uKGNvbnN0IEhpdFRlc3RSZXN1bHQmLCBjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmKSBjb25zdDsKQEAgLTUzMCw2ICs1MzQsOSBAQCBwcml2YXRlOgogICAg
IEZyYW1lJiBtX2ZyYW1lOwogICAgIFJlZlB0cjxOb2RlPiBtX21vdXNlUHJlc3NOb2RlOwogICAg
IFRpbWVyIG1faG92ZXJUaW1lcjsKKyNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyAgICBE
ZWZlcnJhYmxlT25lU2hvdFRpbWVyIG1faW1hZ2VFeHRyYWN0aW9uVGltZXI7CisjZW5kaWYKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8QXV0b3Njcm9sbENvbnRyb2xsZXI+IG1fYXV0b3Njcm9sbENvbnRy
b2xsZXI7CiAgICAgUmVuZGVyTGF5ZXIqIG1fcmVzaXplTGF5ZXIgeyBudWxscHRyIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmluZGV4IDY5ZWVjMGFm
M2IxODRlMDU3ODAzMjRkMTE3NDZjZGNkNjE2N2M1YTMuLjM5OWFiODcwMGQ3NTE5OTk4MWYxMTIx
YTIwMDEyNGUyYmU0OGI1NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwuaApAQCAtODksNiArODksMTAgQEAgY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb247CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOworCisj
aWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCitzdHJ1Y3QgSW1hZ2VFeHRyYWN0aW9uUmVzdWx0
OworI2VuZGlmCiB9CiAKIEBwcm90b2NvbCBXZWJWaWV3SW1wbERlbGVnYXRlCkBAIC01NzUsNiAr
NTc5LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGZvcmNlUmVxdWVzdENhbmRpZGF0ZXNGb3JUZXN0
aW5nKCk7CiAgICAgYm9vbCBzaG91bGRSZXF1ZXN0Q2FuZGlkYXRlcygpIGNvbnN0OwogCisjaWYg
RU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisgICAgdm9pZCByZXF1ZXN0SW1hZ2VFeHRyYWN0aW9u
KGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJik+JiYpOworI2VuZGlmCisKICAgICBib29s
IHdpbmRvd0lzRnJvbnRXaW5kb3dVbmRlck1vdXNlKE5TRXZlbnQgKik7CiAKICAgICB2b2lkIHNl
dFJlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFnZXIoYm9vbCByZXF1aXJl
c1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyKSB7IG1fcmVxdWlyZXNVc2VyQWN0
aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlciA9IHJlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRp
bmdDb250cm9sc01hbmFnZXI7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwubW0KaW5kZXggNTlkYzA1NzA2OGM0YWU5NmYzODU2ZmQxZDE3ODIyYjA3NzRkNTIx
Yy4uNTkwMzI0MDNhOWI4YThiMjU0MjM2NWVkYmI4NjViZjc0NzFjYjZmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTEzNCw2ICsxMzQsMTAg
QEAKICNpbXBvcnQgPHd0Zi9jb2NvYS9WZWN0b3JDb2NvYS5oPgogI2ltcG9ydCA8d3RmL3RleHQv
U3RyaW5nQ29uY2F0ZW5hdGUuaD4KIAorI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorI2lt
cG9ydCA8V2ViQ29yZS9JbWFnZUV4dHJhY3Rpb25SZXN1bHQuaD4KKyNlbmRpZgorCiAjaWYgSEFW
RShUT1VDSF9CQVIpICYmIEVOQUJMRShXRUJfUExBWUJBQ0tfQ09OVFJPTFNfTUFOQUdFUikKIFNP
RlRfTElOS19GUkFNRVdPUksoQVZLaXQpCiBTT0ZUX0xJTktfQ0xBU1MoQVZLaXQsIEFWVG91Y2hC
YXJQbGF5YmFja0NvbnRyb2xzUHJvdmlkZXIpCkBAIC01NTgyLDYgKzU1ODYsMTYgQEAgYm9vbCBX
ZWJWaWV3SW1wbDo6ZWZmZWN0aXZlVXNlckludGVyZmFjZUxldmVsSXNFbGV2YXRlZCgpCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCisjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisKK3ZvaWQg
V2ViVmlld0ltcGw6OnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oY29uc3QgU2hhcmVhYmxlQml0bWFw
OjpIYW5kbGUmIGltYWdlRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJbWFnZUV4dHJhY3Rp
b25SZXN1bHQmJik+JiYgY29tcGxldGlvbikKK3sKKyAgICBVTlVTRURfUEFSQU0oaW1hZ2VEYXRh
KTsKKyAgICBjb21wbGV0aW9uKHsgfSk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhU
UkFDVElPTikKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShN
QUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggNTExY2U4NTRkYTlhMjM5
MWNlNmUyNjk3Yzc1OTdlMDgzMTMzYmU0Yy4uNjQyYmEwOTc3NWIwZWRmNzJhMzM0MGI1NDA2NmM0
OGNlOTgxNmI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtNTksNiAr
NTksMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3Rvck92ZXJsYXkuaD4KICNlbmRpZgog
CisjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZUV4
dHJhY3Rpb25SZXN1bHQuaD4KKyNlbmRpZgorCiBPQkpDX0NMQVNTIENBTGF5ZXI7CiBPQkpDX0NM
QVNTIE5TRmlsZVdyYXBwZXI7CiBPQkpDX0NMQVNTIE5TTWVudTsKQEAgLTUwNyw2ICs1MTEsMTAg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBoYXNTYWZlQnJvd3NpbmdXYXJuaW5nKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBzZXRNb3VzZUV2ZW50UG9s
aWN5KFdlYkNvcmU6Ok1vdXNlRXZlbnRQb2xpY3kpIHsgfQorCisjaWYgRU5BQkxFKElNQUdFX0VY
VFJBQ1RJT04pCisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oY29uc3Qg
U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
OkltYWdlRXh0cmFjdGlvblJlc3VsdCYmKT4mJiBjb21wbGV0aW9uKSB7IGNvbXBsZXRpb24oeyB9
KTsgfQorI2VuZGlmCiAgICAgCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgdm9pZCBk
aWRQZXJmb3JtSW1tZWRpYXRlQWN0aW9uSGl0VGVzdChjb25zdCBXZWJIaXRUZXN0UmVzdWx0RGF0
YSYsIGJvb2wgY29udGVudFByZXZlbnRzRGVmYXVsdCwgQVBJOjpPYmplY3QqKSA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA3ZDMxY2FhODk2MDExYmU3
N2IyYzE0Y2RjMTE3ZjY0NmNkM2E3NGY0Li4xNzhiZjkwNmZiMzM0MDJiZTZiYmY3M2Q0NDEzNGUz
ODE0YzQ2NTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAg
LTgzMDEsNiArODMwMSwxNSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvdWxkQWxsb3dEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhGcmFtZUlkZW50aWZpZXIgZgogfQogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKwordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVl
c3RJbWFnZUV4dHJhY3Rpb24oY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlRGF0
YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQm
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgcGFnZUNsaWVudCgpLnJlcXVlc3RJbWFn
ZUV4dHJhY3Rpb24oaW1hZ2VEYXRhLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisK
KyNlbmRpZgorCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Np
b24odWludDY0X3QgcmVxdWVzdElELCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZykKIHsKICAg
ICBpZiAoIWlzUmVxdWVzdElEVmFsaWQocmVxdWVzdElEKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKaW5kZXggZDBlZTY3ODJjZGQ4YzcwOTI3NDEyYzQ5MjIyNzBmYmIzZmVm
NTYxMS4uNGQ1ZmRiZmUzNDA0Yzg1MGZjYzFiODUyZWRiOTI5NDUyYjMzNmZiMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTI3MSw2ICsyNzEsMTAgQEAgc3RydWN0
IFRleHRDaGVja2luZ1Jlc3VsdDsKIHN0cnVjdCBWaWV3cG9ydEF0dHJpYnV0ZXM7CiBzdHJ1Y3Qg
V2luZG93RmVhdHVyZXM7CiAKKyNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKK3N0cnVjdCBJ
bWFnZUV4dHJhY3Rpb25SZXN1bHQ7CisjZW5kaWYKKwogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNz
IFJlY3RFZGdlczsKIHVzaW5nIEZsb2F0Qm94RXh0ZW50ID0gUmVjdEVkZ2VzPGZsb2F0PjsKIH0K
QEAgLTE2MTEsNiArMTYxNSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaG91bGRBbGxvd0Rldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJh
bWVJbmZvRGF0YSYmLCBib29sIG1heVByb21wdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlKT4mJik7CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorICAgIHZvaWQgcmVxdWVzdEltYWdl
RXh0cmFjdGlvbihjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYpPiYmKTsKKyNlbmRpZgor
CiAgICAgc3RhdGljIFdlYlBhZ2VQcm94eSogbm9uRXBoZW1lcmFsV2ViUGFnZVByb3h5KCk7CiAK
ICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGY0MDM0Njk4YTNlY2ViNTZkOTcz
NWViZGRkN2NkM2M0NGJlOTI2MTEuLjI1ODc4NzhkMDIyODA1YTJkYzU0ZjM2MWY3OGVhNTBmOGEz
MTUyZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4KQEAgLTIzOSw2ICsyMzksMTAgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsK
ICAgICBDb21wb3NpdGlvbldhc0NhbmNlbGVkKCkKICAgICBTZXRIYXNIYWRTZWxlY3Rpb25DaGFu
Z2VzRnJvbVVzZXJJbnRlcmFjdGlvbihib29sIGhhc0hhZFVzZXJTZWxlY3Rpb25DaGFuZ2VzKQog
CisjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisgICAgUmVxdWVzdEltYWdlRXh0cmFjdGlv
bihXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGltYWdlRGF0YSkgLT4gKHN0cnVjdCBX
ZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQgcmVzdWx0KSBBc3luYworI2VuZGlmCisKICNp
ZiBIQVZFKFRPVUNIX0JBUikKICAgICBTZXRJc1RvdWNoQmFyVXBkYXRlU3VwcmVzc2VkRm9ySGlk
ZGVuQ29udGVudEVkaXRhYmxlKGJvb2wgaXNUb3VjaEJhclVwZGF0ZVN1cHJlc3NlZCkKICAgICBT
ZXRJc05ldmVyUmljaGx5RWRpdGFibGVGb3JUb3VjaEJhcihib29sIGlzTmV2ZXJSaWNobHlFZGl0
YWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50
SW1wbE1hYy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFj
LmgKaW5kZXggOTQ5YmUwYTc2NzI2ZmQ5ZDUwZWM1NGViOTA0ZDU4OTA1Nzg2ODNhNS4uY2U5ZjYw
YTFmNDJkNDExZTczN2I5OTVhMzU5MjExMDkxMTEyMDNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKQEAgLTEzMCw2ICsxMzAsMTAgQEAg
cHJpdmF0ZToKIAogICAgIHZvaWQgZG9uZVdpdGhLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXli
b2FyZEV2ZW50JiwgYm9vbCB3YXNFdmVudEhhbmRsZWQpIG92ZXJyaWRlOwogCisjaWYgRU5BQkxF
KElNQUdFX0VYVFJBQ1RJT04pCisgICAgdm9pZCByZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGNvbnN0
IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3Jl
OjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJik+JiYpIG92ZXJyaWRlOworI2VuZGlmCisKICAgICBS
ZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IGNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94
eSYpIG92ZXJyaWRlOwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIFJlZjxXZWJDb250
ZXh0TWVudVByb3h5PiBjcmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSYsIENvbnRl
eHRNZW51Q29udGV4dERhdGEmJiwgY29uc3QgVXNlckRhdGEmKSBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQppbmRleCBiNTY4
ZTkyNGI1ZWM5YTU3ZDM3MWYzZjUwYWVkNWEyYzAzNDA2M2UyLi43ZTE4OTA4NDc5MmMyNjgzODgy
YzdmNGFlM2RjZDA2YjE1M2YxYWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCkBAIC00ODEsNiArNDgxLDE1IEBAIHZvaWQgUGFnZUNs
aWVudEltcGw6OmRvbmVXaXRoS2V5RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYg
ZXZlbnQsIGJvb2wKICAgICBtX2ltcGwtPmRvbmVXaXRoS2V5RXZlbnQoZXZlbnQubmF0aXZlRXZl
bnQoKSwgZXZlbnRXYXNIYW5kbGVkKTsKIH0KIAorI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9O
KQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGNvbnN0IFNo
YXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
SW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYpPiYmIGNvbXBsZXRpb24pCit7CisgICAgbV9pbXBsLT5y
ZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGltYWdlRGF0YSwgV1RGTW92ZShjb21wbGV0aW9uKSk7Cit9
CisKKyNlbmRpZgorCiBSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IFBhZ2VDbGllbnRJbXBsOjpj
cmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UpCiB7CiAgICAgcmV0dXJuIFdl
YlBvcHVwTWVudVByb3h5TWFjOjpjcmVhdGUobV92aWV3LCBwYWdlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKaW5kZXggYzYxMjhlY2M5YzI0MzA1ZWEwMzdkZTU0MzlmOTFhZjY3NTg1MTI5Yi4uMDQ0
ZTMxYTQwOTdhMTdhOWEyNjA0MTEwN2VjZjY0MzA4NjE3YmE4ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKQEAgLTE0MzEsNCArMTQzMSwxMyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2hhbmdl
VW5pdmVyc2FsQWNjZXNzWm9vbUZvY3VzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHZpZQogfQog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKwordm9pZCBXZWJDaHJvbWVD
bGllbnQ6OnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBt
X3BhZ2UucmVxdWVzdEltYWdlRXh0cmFjdGlvbihlbGVtZW50KTsKK30KKworI2VuZGlmCisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDIwYjBkY2IyMTUxYTlm
OTFjY2I4OTQ0ZmRmYjNlYmY2NzcyZWViNGMuLjljNDFiYjRiNTJlYzAyZjc3NGZjOWE0NTUyYWRh
MTAwMzljYjBiMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTQxNCw2ICs0MTQsMTAgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGNoYW5nZVVuaXZlcnNhbEFjY2Vzc1pvb21Gb2N1cyhjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOwogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyAgICB2b2lkIHJlcXVlc3RJbWFnZUV4dHJh
Y3Rpb24oV2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOworI2VuZGlmCisKICAgICBtdXRhYmxlIGJv
b2wgbV9jYWNoZWRNYWluRnJhbWVIYXNIb3Jpem9udGFsU2Nyb2xsYmFyIHsgZmFsc2UgfTsKICAg
ICBtdXRhYmxlIGJvb2wgbV9jYWNoZWRNYWluRnJhbWVIYXNWZXJ0aWNhbFNjcm9sbGJhciB7IGZh
bHNlIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
aW5kZXggZTcwMjkyYzQ0ZGMzNzU0ZmYyZWNiNjk2M2Q2OGEwNTNmZjAxOGY5Ny4uYzI5ZDg1MGQw
ZGEzNTJjZGQ3MGI5MTM2ZWYyMGU5NGI4ZmRiNzNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM0Nyw2ICszNDcsMTAgQEAKICNlbmRpZgog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNpbmNsdWRlIDxXZWJDb3Jl
L0ltYWdlRXh0cmFjdGlvblJlc3VsdC5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewog
dXNpbmcgbmFtZXNwYWNlIEpTQzsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNjA2Miw2
ICs2MDY2LDEwIEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ29tbWl0TG9hZChXZWJGcmFtZSogZnJhbWUp
CiAgICAgQVNTRVJUKCFmcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLnN0YXRlTWFjaGluZSgp
LmNyZWF0aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQoKSk7CiAgICAgdW5mcmVlemVMYXllclRyZWUo
TGF5ZXJUcmVlRnJlZXplUmVhc29uOjpQcm9jZXNzU3dhcCk7CiAKKyNpZiBFTkFCTEUoSU1BR0Vf
RVhUUkFDVElPTikKKyAgICBtX2VsZW1lbnRzV2l0aEV4dHJhY3RlZEltYWdlcy5jbGVhcigpOwor
I2VuZGlmCisKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGNsZWFy
TG9hZGVkU3VicmVzb3VyY2VEb21haW5zKCk7CiAjZW5kaWYKQEAgLTcxMTksNiArNzEyNywzNiBA
QCB2b2lkIFdlYlBhZ2U6OnJlbW92ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihNZWRpYVNlc3Np
b25JZGVudGlmaWVyIGlkZW50aWZpZXIpCiB9CiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1VTQUdF
KQogCisjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisKK3ZvaWQgV2ViUGFnZTo6cmVxdWVz
dEltYWdlRXh0cmFjdGlvbihXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50KQoreworICAgIGlmICht
X2VsZW1lbnRzV2l0aEV4dHJhY3RlZEltYWdlcy5jb250YWlucyhlbGVtZW50KSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgYXV0byogcmVuZGVySW1hZ2UgPSBlbGVtZW50LnJlbmRlcmVyKCk7Cisg
ICAgaWYgKCFpczxSZW5kZXJJbWFnZT4ocmVuZGVySW1hZ2UpKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX2VsZW1lbnRzV2l0aEV4dHJhY3RlZEltYWdlcy5hZGQoZWxlbWVudCk7CisKKyAgICBh
dXRvIGJpdG1hcCA9IHNoYXJlYWJsZUJpdG1hcChkb3duY2FzdDxSZW5kZXJJbWFnZT4oKnJlbmRl
ckltYWdlKSk7CisgICAgaWYgKCFiaXRtYXApCisgICAgICAgIHJldHVybjsKKworICAgIFNoYXJl
YWJsZUJpdG1hcDo6SGFuZGxlIGJpdG1hcEhhbmRsZTsKKyAgICBiaXRtYXAtPmNyZWF0ZUhhbmRs
ZShiaXRtYXBIYW5kbGUpOworICAgIGlmIChiaXRtYXBIYW5kbGUuaXNOdWxsKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpSZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdURk1vdmUoYml0bWFwSGFuZGxlKSksIFt3ZWFrRWxl
bWVudCA9IG1ha2VXZWFrUHRyKGVsZW1lbnQpXSAoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYgcmVz
dWx0KSB7CisgICAgICAgIFVOVVNFRF9QQVJBTShyZXN1bHQpOworICAgICAgICBVTlVTRURfUEFS
QU0od2Vha0VsZW1lbnQpOworICAgIH0pOworfQorCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VY
VFJBQ1RJT04pCisKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogdm9pZCBXZWJQYWdlOjph
bmltYXRpb25EaWRGaW5pc2hGb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQmKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGNiZjQ5ZTY1ZDc1
ZTViZjZmYjlkYjAyMTE4YzBmNmJkNDhiNDlkMmUuLjMwOWVkZjRiYzFiZGI3N2ExZmE3MGYyZTAy
MWZmYjQ5MzgyNjdkOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKQEAgLTEzNjcsNiArMTM2NywxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVNZWRp
YVVzYWdlTWFuYWdlclNlc3Npb24oV2ViQ29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllcik7CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorICAgIHZvaWQgcmVxdWVzdElt
YWdlRXh0cmFjdGlvbihXZWJDb3JlOjpFbGVtZW50Jik7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JN
KFdJTikKICAgICB1aW50NjRfdCBuYXRpdmVXaW5kb3dIYW5kbGUoKSB7IHJldHVybiBtX25hdGl2
ZVdpbmRvd0hhbmRsZTsgfQogI2VuZGlmCkBAIC0yMjEyLDYgKzIyMTYsMTAgQEAgcHJpdmF0ZToK
ICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eT4gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk7CiAjZW5kaWYK
KworI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorICAgIFdlYWtIYXNoU2V0PFdlYkNvcmU6
OkVsZW1lbnQ+IG1fZWxlbWVudHNXaXRoRXh0cmFjdGVkSW1hZ2VzOworI2VuZGlmCiB9OwogCiAj
aWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCg==
</data>
<flag name="review"
          id="437040"
          type_id="1"
          status="+"
          setter="hi"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419043</attachid>
            <date>2021-02-02 11:56:48 -0800</date>
            <delta_ts>2021-02-02 14:25:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221226-20210202115647.patch</filename>
            <type>text/plain</type>
            <size>20579</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjM1ZGM0YWQxNjQ0N2Qz
ZTk5ZGRmY2Y5NTcyNzBmMGFkZmE4ZTcyYy4uNzM1Y2ZjY2U4ZmY4MTI1YjgzZWYyMTc5ZGZiZDUw
ZjQ1YjlkNmUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTAyLTAxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzY2FmZm9s
ZGluZyB0byByZXF1ZXN0IGltYWdlIGV4dHJhY3Rpb24gYWZ0ZXIgYSBkZWxheSB3aGVuIGhvdmVy
aW5nIG92ZXIgaW1hZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjEyMjYKKworICAgICAgICBSZXZpZXdlZCBieSBEZXZpbiBSb3Vzc28uCisKKyAg
ICAgICAgU2VlIGNvbW1lbnRzIGJlbG93LiBUaGVyZSBzaG91bGQgYmUgbm8gY2hhbmdlcyBpbiBi
ZWhhdmlvciAoeWV0KSwgYWx0aG91Z2ggdGhpcyBpbmZyYXN0cnVjdHVyZSB3aWxsIGV2ZW50dWFs
bHkKKyAgICAgICAgc2VydmljZSBhIG5ldyBhY2Nlc3NpYmlsaXR5IGZlYXR1cmUgaW4gc3Vic2Vx
dWVudCBwYXRjaGVzLgorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudDo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbik6CisKKyAgICAg
ICAgQWRkcyBhIG5ldyBob29rIHRvIGluZm9ybSB0aGUgY2xpZW50IGxheWVyIHdoZW4gd2Ugc2hv
dWxkIGNvbnNpZGVyIHJlcXVlc3RpbmcgaW1hZ2UgZXh0cmFjdGlvbiBmb3IgYSBob3ZlcmVkCisg
ICAgICAgIGVsZW1lbnQuIFNlZSBXZWJLaXQgY2hhbmdlcyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4K
KworICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxl
cjo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjptb3VzZU1vdmVkKToK
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dXBkYXRlTW91c2VFdmVudFRhcmdldE5v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjppbWFnZUV4dHJhY3Rpb25UaW1l
ckZpcmVkKToKKworICAgICAgICBBZGQgYSBtZWNoYW5pc20gdG8gY2FsbCBpbnRvIHRoZSBhYm92
ZSBjaHJvbWUgY2xpZW50IGhvb2sgd2hlbiB0aGUgdXNlciBoYXMgaG92ZXJlZCB0aGVpciBtb3Vz
ZSBjdXJzb3Igb3ZlciBhbgorICAgICAgICBpbWFnZSAoZS5nLiBgaW1nYCBvciBgcGljdHVyZWAg
ZWxlbWVudCkgZm9yIGF0IGxlYXN0IDI1MCBtcyB3aXRob3V0IG1vdmluZy4KKworICAgICAgICAq
IHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisKIDIwMjEtMDItMDEgIFNhYW0gQmFyYXRpICA8c2JhcmF0
aUBhcHBsZS5jb20+CiAKICAgICAgICAgTGF6aWx5IGNyZWF0ZSBtX3dpbmRvd0Nsb3NlV2F0Y2hw
b2ludHMgc28gd2UgZG9uJ3QgbWlzdGFrZW5seSB0aGluayB3ZSBoYXZlIGEgZnJhbWUgd2hlbiBy
ZS1hc3NvY2lhdGluZyBhIGRvY3VtZW50IHRvIGEgZ2l2ZW4gY2FjaGVkIGZyYW1lCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDM2MjJiOGU0YTdmMjNjZWQ3OTU5MjZmMjcyMDJiMmY2MTYyZmRiYTMuLjllYzExZmEyNjhi
YjMxNWYxNTEwM2JjZWQ5MDg0MjJlYzY1ZDQxMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAK
KzIwMjEtMDItMDEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIHNjYWZmb2xkaW5nIHRvIHJlcXVlc3QgaW1hZ2UgZXh0cmFjdGlvbiBhZnRlciBh
IGRlbGF5IHdoZW4gaG92ZXJpbmcgb3ZlciBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTIyNgorCisgICAgICAgIFJldmlld2VkIGJ5IERl
dmluIFJvdXNzby4KKworICAgICAgICBXb3JrIHRvd2FyZHMgYWxsb3dpbmcgY2xpZW50cyB0byBl
eHRyYWN0IGltYWdlIGRhdGEgd2hlbiBob3ZlcmluZyBvdmVyIHJlbmRlcmVkIGltYWdlIGVsZW1l
bnRzLCBmb3IgbmV3CisgICAgICAgIGFjY2Vzc2liaWxpdHktcmVsYXRlZCBmZWF0dXJlcy4gU2Vl
IGNoYW5nZXMgYmVsb3cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnJlcXVlc3RJbWFnZUV4dHJhY3Rp
b24pOgorCisgICAgICAgIExlYXZlIHRoaXMgbWV0aG9kIHN0dWIgdW5pbXBsZW1lbnRlZCBmb3Ig
dGhlIHRpbWUgYmVpbmcuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50OjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24pOgorCisgICAgICAgIEFkZCBw
bHVtYmluZyB0byBhbGxvdyB0aGUgd2ViIHByb2Nlc3MgdG8gYXN5bmNocm9ub3VzbHkgcmVxdWVz
dCBpbWFnZSBleHRyYWN0aW9uIGRhdGEgZnJvbSB0aGUgVUkgcHJvY2Vzcy4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6ZGlkQ29tbWl0TG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVlc3RJ
bWFnZUV4dHJhY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6
CisKKyAgICAgICAgQWRkIGEgd2VhayBzZXQgb2YgZWxlbWVudHMgdGhhdCB3ZSd2ZSBhdHRlbXB0
ZWQgdG8gZXh0cmFjdCwgc28gdGhhdCB3ZSB3b24ndCBlbmQgdXAgZXh0cmFjdGluZyBlbGVtZW50
cyBtb3JlCisgICAgICAgIHRoYW4gb25jZS4gQWx0aG91Z2ggdGhpcyBzZXQgdGhpcyBjdXJyZW50
bHkgb25seSBjbGVhcmVkIHVwb24gbmF2aWdhdGlvbiwgdGhpcyBzaG91bGQgZXZlbnR1YWxseSBi
ZSB1cGRhdGVkIHdoZW4KKyAgICAgICAgKGZvciBpbnN0YW5jZSkgYW4gZWxlbWVudCdzIGltYWdl
IHNvdXJjZSBjaGFuZ2VzLCBzdWNoIHRoYXQgd2UgY2FuIHJlLWV4dHJhY3QgdGhlIG5ldyBpbWFn
ZSBkYXRhIGlmIG5lZWRlZC4KKwogMjAyMS0wMi0wMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBjcm9zcy1wbGF0Zm9ybSBoZWxwZXIgbWV0
aG9kIHRvIGdlbmVyYXRlIHNoYXJlYWJsZSBiaXRtYXBzIGZyb20gcmVuZGVyZWQgaW1hZ2VzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAwZDc5NTdkMDM5ZjY2ODM5YmE2YzAxYzA2
OTcyMjA0MTc0YWRlNzc4Li42NzAxYTJkZTA3NDAyODQzNWE0YmY3MzZiZmI2ZmYyOWEwNDhmZGI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTU1NCw2ICs1NTQsMTAgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBjaGFuZ2VVbml2ZXJzYWxBY2Nlc3Nab29tRm9jdXMoY29u
c3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKSB7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKElN
QUdFX0VYVFJBQ1RJT04pCisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RJbWFnZUV4dHJhY3Rpb24o
RWxlbWVudCYpIHsgfQorI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5DaHJvbWVD
bGllbnQoKSA9IGRlZmF1bHQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmlu
ZGV4IDE1ODliOTU2MzI4M2FkNTA5Yjc2ODc4OWJiMjdjMjQ4YjYxODZlN2IuLjg5YTc1ODY4OGM0
YThlODQwZDAzZGMzZTM2OGQzNTliNDI4ZTA3NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKQEAgLTMyMSw2ICszMjEsOSBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZXZlbnRMb29w
SGFuZGxlTW91c2VEcmFnZ2VkKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdAogRXZl
bnRIYW5kbGVyOjpFdmVudEhhbmRsZXIoRnJhbWUmIGZyYW1lKQogICAgIDogbV9mcmFtZShmcmFt
ZSkKICAgICAsIG1faG92ZXJUaW1lcigqdGhpcywgJkV2ZW50SGFuZGxlcjo6aG92ZXJUaW1lckZp
cmVkKQorI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorICAgICwgbV9pbWFnZUV4dHJhY3Rp
b25UaW1lcigqdGhpcywgJkV2ZW50SGFuZGxlcjo6aW1hZ2VFeHRyYWN0aW9uVGltZXJGaXJlZCwg
MjUwX21zKQorI2VuZGlmCiAgICAgLCBtX2F1dG9zY3JvbGxDb250cm9sbGVyKG1ha2VVbmlxdWU8
QXV0b3Njcm9sbENvbnRyb2xsZXI+KCkpCiAjaWYgIUVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQog
ICAgICwgbV9mYWtlTW91c2VNb3ZlRXZlbnRUaW1lcigqdGhpcywgJkV2ZW50SGFuZGxlcjo6ZmFr
ZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZCkKQEAgLTM2MCw2ICszNjMsOSBAQCB2b2lkIEV2ZW50
SGFuZGxlcjo6Y2xlYXIoKQogI2VuZGlmCiAjaWYgRU5BQkxFKENVUlNPUl9WSVNJQklMSVRZKQog
ICAgIGNhbmNlbEF1dG9IaWRlQ3Vyc29yVGltZXIoKTsKKyNlbmRpZgorI2lmIEVOQUJMRShJTUFH
RV9FWFRSQUNUSU9OKQorICAgIG1faW1hZ2VFeHRyYWN0aW9uVGltZXIuc3RvcCgpOwogI2VuZGlm
CiAgICAgbV9yZXNpemVMYXllciA9IG51bGxwdHI7CiAgICAgbV9lbGVtZW50VW5kZXJNb3VzZSA9
IG51bGxwdHI7CkBAIC0xODcyLDYgKzE4NzgsMTIgQEAgYm9vbCBFdmVudEhhbmRsZXI6Om1vdXNl
TW92ZWQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCkKIAogICAgIGhpdFRlc3RSZXN1
bHQuc2V0VG9Ob25Vc2VyQWdlbnRTaGFkb3dBbmNlc3RvcigpOwogICAgIHBhZ2UtPmNocm9tZSgp
Lm1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGhpdFRlc3RSZXN1bHQsIGV2ZW50Lm1vZGlmaWVyRmxh
Z3MoKSk7CisKKyNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyAgICBpZiAoZXZlbnQuc3lu
dGhldGljQ2xpY2tUeXBlKCkgPT0gTm9UYXAgJiYgbV9pbWFnZUV4dHJhY3Rpb25UaW1lci5pc0Fj
dGl2ZSgpKQorICAgICAgICBtX2ltYWdlRXh0cmFjdGlvblRpbWVyLnJlc3RhcnQoKTsKKyNlbmRp
ZgorCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMjQ5OSw2ICsyNTExLDE1IEBAIHZvaWQg
RXZlbnRIYW5kbGVyOjp1cGRhdGVNb3VzZUV2ZW50VGFyZ2V0Tm9kZShjb25zdCBBdG9tU3RyaW5n
JiBldmVudFR5cGUsIE5vZGUqCiAKICAgICBtX2VsZW1lbnRVbmRlck1vdXNlID0gdGFyZ2V0RWxl
bWVudDsKIAorI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorICAgIGlmIChwbGF0Zm9ybU1v
dXNlRXZlbnQuc3ludGhldGljQ2xpY2tUeXBlKCkgPT0gTm9UYXApIHsKKyAgICAgICAgaWYgKG1f
ZWxlbWVudFVuZGVyTW91c2UgJiYgaXM8UmVuZGVySW1hZ2U+KG1fZWxlbWVudFVuZGVyTW91c2Ut
PnJlbmRlcmVyKCkpKQorICAgICAgICAgICAgbV9pbWFnZUV4dHJhY3Rpb25UaW1lci5yZXN0YXJ0
KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1faW1hZ2VFeHRyYWN0aW9uVGltZXIuc3Rv
cCgpOworICAgIH0KKyNlbmRpZgorCiAgICAgQVNTRVJUX0lNUExJRVMobV9lbGVtZW50VW5kZXJN
b3VzZSwgJm1fZWxlbWVudFVuZGVyTW91c2UtPmRvY3VtZW50KCkgPT0gbV9mcmFtZS5kb2N1bWVu
dCgpKTsKICAgICBBU1NFUlRfSU1QTElFUyhtX2xhc3RFbGVtZW50VW5kZXJNb3VzZSwgJm1fbGFz
dEVsZW1lbnRVbmRlck1vdXNlLT5kb2N1bWVudCgpID09IG1fZnJhbWUuZG9jdW1lbnQoKSk7CiAK
QEAgLTI1NTQsOCArMjU3NSwxMiBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6dXBkYXRlTW91c2VFdmVu
dFRhcmdldE5vZGUoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBOb2RlKgogICAgICAgICB9
CiAKICAgICAgICAgLy8gRXZlbnQgaGFuZGxpbmcgbWF5IGhhdmUgbW92ZWQgdGhlIGVsZW1lbnQg
dG8gYSBkaWZmZXJlbnQgZG9jdW1lbnQuCi0gICAgICAgIGlmIChtX2VsZW1lbnRVbmRlck1vdXNl
ICYmICZtX2VsZW1lbnRVbmRlck1vdXNlLT5kb2N1bWVudCgpICE9IG1fZnJhbWUuZG9jdW1lbnQo
KSkKKyAgICAgICAgaWYgKG1fZWxlbWVudFVuZGVyTW91c2UgJiYgJm1fZWxlbWVudFVuZGVyTW91
c2UtPmRvY3VtZW50KCkgIT0gbV9mcmFtZS5kb2N1bWVudCgpKSB7CisjaWYgRU5BQkxFKElNQUdF
X0VYVFJBQ1RJT04pCisgICAgICAgICAgICBtX2ltYWdlRXh0cmFjdGlvblRpbWVyLnN0b3AoKTsK
KyNlbmRpZgogICAgICAgICAgICAgbV9lbGVtZW50VW5kZXJNb3VzZSA9IG51bGxwdHI7CisgICAg
ICAgIH0KIAogICAgICAgICBtX2xhc3RFbGVtZW50VW5kZXJNb3VzZSA9IG1fZWxlbWVudFVuZGVy
TW91c2U7CiAgICAgfQpAQCAtMzMyMiw2ICszMzQ3LDE5IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpo
b3ZlclRpbWVyRmlyZWQoKQogICAgIH0KIH0KIAorI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9O
KQorCit2b2lkIEV2ZW50SGFuZGxlcjo6aW1hZ2VFeHRyYWN0aW9uVGltZXJGaXJlZCgpCit7Cisg
ICAgaWYgKCFtX2VsZW1lbnRVbmRlck1vdXNlIHx8ICFpczxSZW5kZXJJbWFnZT4obV9lbGVtZW50
VW5kZXJNb3VzZS0+cmVuZGVyZXIoKSkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChhdXRv
KiBwYWdlID0gbV9mcmFtZS5wYWdlKCkpCisgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgp
LnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oKm1fZWxlbWVudFVuZGVyTW91c2UpOworfQorCisjZW5k
aWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisKIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5k
bGVBY2Nlc3NLZXkoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBldmVudCkKIHsKICAgICAv
LyBGSVhNRTogSWdub3JpbmcgdGhlIHN0YXRlIG9mIFNoaWZ0IGtleSBpcyB3aGF0IG5laXRoZXIg
SUUgbm9yIEZpcmVmb3ggZG8uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRleCAxYjE3
NWRhNzkzYzZjNTEyZDEwNDk5ZmU5MWYwZjU4YzE5YTc3OWVhLi5mNzVmNzY3ZDI5NjQyN2I4N2E3
N2I3Mjc2NTEwYWUzOTg3ZjQzZDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKQEAg
LTM4Nyw2ICszODcsMTAgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgaG92ZXJUaW1lckZpcmVkKCk7
CiAKKyNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyAgICB2b2lkIGltYWdlRXh0cmFjdGlv
blRpbWVyRmlyZWQoKTsKKyNlbmRpZgorCiAgICAgYm9vbCBsb2dpY2FsU2Nyb2xsT3ZlcmZsb3co
U2Nyb2xsTG9naWNhbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIE5vZGUqIHN0YXJ0aW5n
Tm9kZSA9IG51bGxwdHIpOwogICAgIAogICAgIGJvb2wgc2hvdWxkU3dhcFNjcm9sbERpcmVjdGlv
bihjb25zdCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3Q7
CkBAIC01MzAsNiArNTM0LDkgQEAgcHJpdmF0ZToKICAgICBGcmFtZSYgbV9mcmFtZTsKICAgICBS
ZWZQdHI8Tm9kZT4gbV9tb3VzZVByZXNzTm9kZTsKICAgICBUaW1lciBtX2hvdmVyVGltZXI7Cisj
aWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisgICAgRGVmZXJyYWJsZU9uZVNob3RUaW1lciBt
X2ltYWdlRXh0cmFjdGlvblRpbWVyOworI2VuZGlmCiAgICAgc3RkOjp1bmlxdWVfcHRyPEF1dG9z
Y3JvbGxDb250cm9sbGVyPiBtX2F1dG9zY3JvbGxDb250cm9sbGVyOwogICAgIFJlbmRlckxheWVy
KiBtX3Jlc2l6ZUxheWVyIHsgbnVsbHB0ciB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwuaAppbmRleCA2OWVlYzBhZjNiMTg0ZTA1NzgwMzI0ZDExNzQ2Y2Rj
ZDYxNjdjNWEzLi4zOTlhYjg3MDBkNzUxOTk5ODFmMTEyMWEyMDAxMjRlMmJlNDhiNTU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTg5LDYgKzg5
LDEwIEBAIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBz
dHJ1Y3QgU2hhcmVEYXRhV2l0aFBhcnNlZFVSTDsKKworI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNU
SU9OKQorc3RydWN0IEltYWdlRXh0cmFjdGlvblJlc3VsdDsKKyNlbmRpZgogfQogCiBAcHJvdG9j
b2wgV2ViVmlld0ltcGxEZWxlZ2F0ZQpAQCAtNTc1LDYgKzU3OSwxMCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBmb3JjZVJlcXVlc3RDYW5kaWRhdGVzRm9yVGVzdGluZygpOwogICAgIGJvb2wgc2hvdWxk
UmVxdWVzdENhbmRpZGF0ZXMoKSBjb25zdDsKIAorI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9O
KQorICAgIHZvaWQgcmVxdWVzdEltYWdlRXh0cmFjdGlvbihjb25zdCBTaGFyZWFibGVCaXRtYXA6
OkhhbmRsZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9u
UmVzdWx0JiYpPiYmKTsKKyNlbmRpZgorCiAgICAgYm9vbCB3aW5kb3dJc0Zyb250V2luZG93VW5k
ZXJNb3VzZShOU0V2ZW50ICopOwogCiAgICAgdm9pZCBzZXRSZXF1aXJlc1VzZXJBY3Rpb25Gb3JF
ZGl0aW5nQ29udHJvbHNNYW5hZ2VyKGJvb2wgcmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0Nv
bnRyb2xzTWFuYWdlcikgeyBtX3JlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01h
bmFnZXIgPSByZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDU5ZGMw
NTcwNjhjNGFlOTZmMzg1NmZkMWQxNzgyMmIwNzc0ZDUyMWMuLjU5MDMyNDAzYTliOGE4YjI1NDIz
NjVlZGJiODY1YmY3NDcxY2I2ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tCkBAIC0xMzQsNiArMTM0LDEwIEBACiAjaW1wb3J0IDx3dGYvY29jb2Ev
VmVjdG9yQ29jb2EuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg+CiAK
KyNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyNpbXBvcnQgPFdlYkNvcmUvSW1hZ2VFeHRy
YWN0aW9uUmVzdWx0Lmg+CisjZW5kaWYKKwogI2lmIEhBVkUoVE9VQ0hfQkFSKSAmJiBFTkFCTEUo
V0VCX1BMQVlCQUNLX0NPTlRST0xTX01BTkFHRVIpCiBTT0ZUX0xJTktfRlJBTUVXT1JLKEFWS2l0
KQogU09GVF9MSU5LX0NMQVNTKEFWS2l0LCBBVlRvdWNoQmFyUGxheWJhY2tDb250cm9sc1Byb3Zp
ZGVyKQpAQCAtNTU4Miw2ICs1NTg2LDE2IEBAIGJvb2wgV2ViVmlld0ltcGw6OmVmZmVjdGl2ZVVz
ZXJJbnRlcmZhY2VMZXZlbElzRWxldmF0ZWQoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorI2lm
IEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorCit2b2lkIFdlYlZpZXdJbXBsOjpyZXF1ZXN0SW1h
Z2VFeHRyYWN0aW9uKGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYpPiYmIGNvbXBsZXRp
b24pCit7CisgICAgVU5VU0VEX1BBUkFNKGltYWdlRGF0YSk7CisgICAgY29tcGxldGlvbih7IH0p
OworfQorCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UGFnZUNsaWVudC5oCmluZGV4IDUxMWNlODU0ZGE5YTIzOTFjZTZlMjY5N2M3NTk3ZTA4MzEzM2Jl
NGMuLjY0MmJhMDk3NzViMGVkZjcyYTMzNDBiNTQwNjZjNDhjZTk4MTZiNTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTU5LDYgKzU5LDEwIEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9JbnNwZWN0b3JPdmVybGF5Lmg+CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTUFHRV9FWFRS
QUNUSU9OKQorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VFeHRyYWN0aW9uUmVzdWx0Lmg+CisjZW5k
aWYKKwogT0JKQ19DTEFTUyBDQUxheWVyOwogT0JKQ19DTEFTUyBOU0ZpbGVXcmFwcGVyOwogT0JK
Q19DTEFTUyBOU01lbnU7CkBAIC01MDcsNiArNTExLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGJvb2wgaGFzU2FmZUJyb3dzaW5nV2FybmluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0TW91c2VFdmVudFBvbGljeShXZWJDb3JlOjpNb3VzZUV2ZW50
UG9saWN5KSB7IH0KKworI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxl
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQm
Jik+JiYgY29tcGxldGlvbikgeyBjb21wbGV0aW9uKHsgfSk7IH0KKyNlbmRpZgogICAgIAogI2lm
IFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybUltbWVkaWF0ZUFjdGlv
bkhpdFRlc3QoY29uc3QgV2ViSGl0VGVzdFJlc3VsdERhdGEmLCBib29sIGNvbnRlbnRQcmV2ZW50
c0RlZmF1bHQsIEFQSTo6T2JqZWN0KikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKaW5kZXggN2QzMWNhYTg5NjAxMWJlNzdiMmMxNGNkYzExN2Y2NDZjZDNhNzRm
NC4uMTc4YmY5MDZmYjMzNDAyYmU2YmJmNzNkNDQxMzRlMzgxNGM0NjUyMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC04MzAxLDYgKzgzMDEsMTUgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nl
c3MoRnJhbWVJZGVudGlmaWVyIGYKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKElNQUdFX0VYVFJB
Q1RJT04pCisKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGNvbnN0
IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQoreworICAgIHBhZ2VDbGllbnQoKS5yZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGltYWdlRGF0YSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCisjZW5kaWYKKwogdm9pZCBXZWJQYWdl
UHJveHk6OnJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwg
Y29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcpCiB7CiAgICAgaWYgKCFpc1JlcXVlc3RJRFZhbGlk
KHJlcXVlc3RJRCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGQw
ZWU2NzgyY2RkOGM3MDkyNzQxMmM0OTIyMjcwZmJiM2ZlZjU2MTEuLjRkNWZkYmZlMzQwNGM4NTBm
Y2MxYjg1MmVkYjkyOTQ1MmIzMzZmYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCkBAIC0yNzEsNiArMjcxLDEwIEBAIHN0cnVjdCBUZXh0Q2hlY2tpbmdSZXN1bHQ7CiBz
dHJ1Y3QgVmlld3BvcnRBdHRyaWJ1dGVzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogCisjaWYg
RU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCitzdHJ1Y3QgSW1hZ2VFeHRyYWN0aW9uUmVzdWx0Owor
I2VuZGlmCisKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBSZWN0RWRnZXM7CiB1c2luZyBGbG9h
dEJveEV4dGVudCA9IFJlY3RFZGdlczxmbG9hdD47CiB9CkBAIC0xNjExLDYgKzE2MTUsMTAgQEAg
cHVibGljOgogICAgIHZvaWQgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2VzcyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgYm9vbCBtYXlQ
cm9tcHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU1BR0Vf
RVhUUkFDVElPTikKKyAgICB2b2lkIHJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oY29uc3QgU2hhcmVh
YmxlQml0bWFwOjpIYW5kbGUmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkltYWdl
RXh0cmFjdGlvblJlc3VsdCYmKT4mJik7CisjZW5kaWYKKwogICAgIHN0YXRpYyBXZWJQYWdlUHJv
eHkqIG5vbkVwaGVtZXJhbFdlYlBhZ2VQcm94eSgpOwogCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRf
RUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbgppbmRleCBmNDAzNDY5OGEzZWNlYjU2ZDk3MzVlYmRkZDdjZDNjNDRiZTkyNjExLi4y
NTg3ODc4ZDAyMjgwNWEyZGM1NGYzNjFmNzhlYTUwZjhhMzE1MmU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMzksNiArMjM5
LDEwIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgQ29tcG9zaXRpb25XYXNDYW5j
ZWxlZCgpCiAgICAgU2V0SGFzSGFkU2VsZWN0aW9uQ2hhbmdlc0Zyb21Vc2VySW50ZXJhY3Rpb24o
Ym9vbCBoYXNIYWRVc2VyU2VsZWN0aW9uQ2hhbmdlcykKIAorI2lmIEVOQUJMRShJTUFHRV9FWFRS
QUNUSU9OKQorICAgIFJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oV2ViS2l0OjpTaGFyZWFibGVCaXRt
YXA6OkhhbmRsZSBpbWFnZURhdGEpIC0+IChzdHJ1Y3QgV2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9u
UmVzdWx0IHJlc3VsdCkgQXN5bmMKKyNlbmRpZgorCiAjaWYgSEFWRShUT1VDSF9CQVIpCiAgICAg
U2V0SXNUb3VjaEJhclVwZGF0ZVN1cHJlc3NlZEZvckhpZGRlbkNvbnRlbnRFZGl0YWJsZShib29s
IGlzVG91Y2hCYXJVcGRhdGVTdXByZXNzZWQpCiAgICAgU2V0SXNOZXZlclJpY2hseUVkaXRhYmxl
Rm9yVG91Y2hCYXIoYm9vbCBpc05ldmVyUmljaGx5RWRpdGFibGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCmluZGV4IDk0OWJlMGE3NjcyNmZk
OWQ1MGVjNTRlYjkwNGQ1ODkwNTc4NjgzYTUuLmNlOWY2MGExZjQyZDQxMWU3MzdiOTk1YTM1OTIx
MTA5MTExMjAzZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbE1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xp
ZW50SW1wbE1hYy5oCkBAIC0xMzAsNiArMTMwLDEwIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRv
bmVXaXRoS2V5RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYsIGJvb2wgd2FzRXZl
bnRIYW5kbGVkKSBvdmVycmlkZTsKIAorI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorICAg
IHZvaWQgcmVxdWVzdEltYWdlRXh0cmFjdGlvbihjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRs
ZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uUmVzdWx0
JiYpPiYmKSBvdmVycmlkZTsKKyNlbmRpZgorCiAgICAgUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5
PiBjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsKICNpZiBFTkFC
TEUoQ09OVEVYVF9NRU5VUykKICAgICBSZWY8V2ViQ29udGV4dE1lbnVQcm94eT4gY3JlYXRlQ29u
dGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkmLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYsIGNv
bnN0IFVzZXJEYXRhJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGxNYWMubW0KaW5kZXggYjU2OGU5MjRiNWVjOWE1N2QzNzFmM2Y1MGFl
ZDVhMmMwMzQwNjNlMi4uN2UxODkwODQ3OTJjMjY4Mzg4MmM3ZjRhZTNkY2QwNmIxNTNmMWFjNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5t
bQpAQCAtNDgxLDYgKzQ4MSwxNSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aEtleUV2
ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmIGV2ZW50LCBib29sCiAgICAgbV9pbXBs
LT5kb25lV2l0aEtleUV2ZW50KGV2ZW50Lm5hdGl2ZUV2ZW50KCksIGV2ZW50V2FzSGFuZGxlZCk7
CiB9CiAKKyNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKwordm9pZCBQYWdlQ2xpZW50SW1w
bDo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbihjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYg
aW1hZ2VEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEltYWdlRXh0cmFjdGlvblJlc3VsdCYm
KT4mJiBjb21wbGV0aW9uKQoreworICAgIG1faW1wbC0+cmVxdWVzdEltYWdlRXh0cmFjdGlvbihp
bWFnZURhdGEsIFdURk1vdmUoY29tcGxldGlvbikpOworfQorCisjZW5kaWYKKwogUmVmUHRyPFdl
YlBvcHVwTWVudVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlUG9wdXBNZW51UHJveHkoV2Vi
UGFnZVByb3h5JiBwYWdlKQogewogICAgIHJldHVybiBXZWJQb3B1cE1lbnVQcm94eU1hYzo6Y3Jl
YXRlKG1fdmlldywgcGFnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGM2MTI4ZWNjOWMy
NDMwNWVhMDM3ZGU1NDM5ZjkxYWY2NzU4NTEyOWIuLjA0NGUzMWE0MDk3YTE3YTlhMjYwNDExMDdl
Y2Y2NDMwODYxN2JhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0xNDMxLDQgKzE0MzEs
MTMgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNoYW5nZVVuaXZlcnNhbEFjY2Vzc1pvb21Gb2N1
cyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2aWUKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKElN
QUdFX0VYVFJBQ1RJT04pCisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0SW1hZ2VFeHRy
YWN0aW9uKEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgbV9wYWdlLnJlcXVlc3RJbWFnZUV4dHJh
Y3Rpb24oZWxlbWVudCk7Cit9CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaAppbmRleCAyMGIwZGNiMjE1MWE5ZjkxY2NiODk0NGZkZmIzZWJmNjc3MmVl
YjRjLi45YzQxYmI0YjUyZWMwMmY3NzRmYzlhNDU1MmFkYTEwMDM5Y2IwYjBjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCkBAIC00MTQsNiArNDE0LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBjaGFuZ2VV
bml2ZXJzYWxBY2Nlc3Nab29tRm9jdXMoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKSBmaW5hbDsKICNlbmRpZgogCisjaWYgRU5BQkxFKElNQUdFX0VYVFJB
Q1RJT04pCisgICAgdm9pZCByZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNvcmU6OkVsZW1lbnQm
KSBmaW5hbDsKKyNlbmRpZgorCiAgICAgbXV0YWJsZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFz
SG9yaXpvbnRhbFNjcm9sbGJhciB7IGZhbHNlIH07CiAgICAgbXV0YWJsZSBib29sIG1fY2FjaGVk
TWFpbkZyYW1lSGFzVmVydGljYWxTY3JvbGxiYXIgeyBmYWxzZSB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGU3MDI5MmM0NGRjMzc1NGZm
MmVjYjY5NjNkNjhhMDUzZmYwMThmOTcuLmMyOWQ4NTBkMGRhMzUyY2RkNzBiOTEzNmVmMjBlOTRi
OGZkYjczZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCkBAIC0zNDcsNiArMzQ3LDEwIEBACiAjZW5kaWYKICNlbmRpZgogCisjaWYgRU5BQkxFKElN
QUdFX0VYVFJBQ1RJT04pCisjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZUV4dHJhY3Rpb25SZXN1bHQu
aD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTYwNjIsNiArNjA2NiwxMCBAQCB2b2lkIFdlYlBh
Z2U6OmRpZENvbW1pdExvYWQoV2ViRnJhbWUqIGZyYW1lKQogICAgIEFTU0VSVCghZnJhbWUtPmNv
cmVGcmFtZSgpLT5sb2FkZXIoKS5zdGF0ZU1hY2hpbmUoKS5jcmVhdGluZ0luaXRpYWxFbXB0eURv
Y3VtZW50KCkpOwogICAgIHVuZnJlZXplTGF5ZXJUcmVlKExheWVyVHJlZUZyZWV6ZVJlYXNvbjo6
UHJvY2Vzc1N3YXApOwogCisjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisgICAgbV9lbGVt
ZW50c1dpdGhFeHRyYWN0ZWRJbWFnZXMuY2xlYXIoKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBjbGVhckxvYWRlZFN1YnJlc291cmNlRG9tYWlu
cygpOwogI2VuZGlmCkBAIC03MTE5LDYgKzcxMjcsMzYgQEAgdm9pZCBXZWJQYWdlOjpyZW1vdmVN
ZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oTWVkaWFTZXNzaW9uSWRlbnRpZmllciBpZGVudGlmaWVy
KQogfQogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9VU0FHRSkKIAorI2lmIEVOQUJMRShJTUFHRV9F
WFRSQUNUSU9OKQorCit2b2lkIFdlYlBhZ2U6OnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oV2ViQ29y
ZTo6RWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBpZiAobV9lbGVtZW50c1dpdGhFeHRyYWN0ZWRJ
bWFnZXMuY29udGFpbnMoZWxlbWVudCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIHJl
bmRlckltYWdlID0gZWxlbWVudC5yZW5kZXJlcigpOworICAgIGlmICghaXM8UmVuZGVySW1hZ2U+
KHJlbmRlckltYWdlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9lbGVtZW50c1dpdGhFeHRy
YWN0ZWRJbWFnZXMuYWRkKGVsZW1lbnQpOworCisgICAgYXV0byBiaXRtYXAgPSBzaGFyZWFibGVC
aXRtYXAoZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCpyZW5kZXJJbWFnZSkpOworICAgIGlmICghYml0
bWFwKQorICAgICAgICByZXR1cm47CisKKyAgICBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBiaXRt
YXBIYW5kbGU7CisgICAgYml0bWFwLT5jcmVhdGVIYW5kbGUoYml0bWFwSGFuZGxlKTsKKyAgICBp
ZiAoYml0bWFwSGFuZGxlLmlzTnVsbCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBzZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdEltYWdlRXh0cmFjdGlv
bihXVEZNb3ZlKGJpdG1hcEhhbmRsZSkpLCBbd2Vha0VsZW1lbnQgPSBtYWtlV2Vha1B0cihlbGVt
ZW50KV0gKEltYWdlRXh0cmFjdGlvblJlc3VsdCYmIHJlc3VsdCkgeworICAgICAgICBVTlVTRURf
UEFSQU0ocmVzdWx0KTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKHdlYWtFbGVtZW50KTsKKyAgICB9
KTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorCiAjaWYgIVBMQVRG
T1JNKElPU19GQU1JTFkpCiAKIHZvaWQgV2ViUGFnZTo6YW5pbWF0aW9uRGlkRmluaXNoRm9yRWxl
bWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50JikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBjYmY0OWU2NWQ3NWU1YmY2ZmI5ZGIwMjExOGMwZjZiZDQ4
YjQ5ZDJlLi4zMDllZGY0YmMxYmRiNzdhMWZhNzBmMmUwMjFmZmI0OTM4MjY3ZDk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMzY3LDYgKzEzNjcs
MTAgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU1B
R0VfRVhUUkFDVElPTikKKyAgICB2b2lkIHJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oV2ViQ29yZTo6
RWxlbWVudCYpOworI2VuZGlmCisKICNpZiBQTEFURk9STShXSU4pCiAgICAgdWludDY0X3QgbmF0
aXZlV2luZG93SGFuZGxlKCkgeyByZXR1cm4gbV9uYXRpdmVXaW5kb3dIYW5kbGU7IH0KICNlbmRp
ZgpAQCAtMjIxMiw2ICsyMjE2LDEwIEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk+IG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OwogI2VuZGlmCisKKyNpZiBFTkFCTEUoSU1BR0VfRVhU
UkFDVElPTikKKyAgICBXZWFrSGFzaFNldDxXZWJDb3JlOjpFbGVtZW50PiBtX2VsZW1lbnRzV2l0
aEV4dHJhY3RlZEltYWdlczsKKyNlbmRpZgogfTsKIAogI2lmICFQTEFURk9STShJT1NfRkFNSUxZ
KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>