<?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>187998</bug_id>
          
          <creation_ts>2018-07-25 04:48:32 -0700</creation_ts>
          <short_desc>[WPE] Implement MouseEvent.buttons</short_desc>
          <delta_ts>2018-09-18 05:04:13 -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>WPE WebKit</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://github.com/WebPlatformForEmbedded/WPEBackend/pull/22</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aperez</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>csaavedra</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1445000</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-07-25 04:48:32 -0700</bug_when>
    <thetext>https://www.w3.org/TR/uievents/#ref-for-dom-mouseevent-buttons-1

This requires new API in WPEBackend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445001</commentid>
    <comment_count>1</comment_count>
      <attachid>345753</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-07-25 04:52:56 -0700</bug_when>
    <thetext>Created attachment 345753
WIP

The patch should include a WPEBackend version bump, it&apos;s WIP because we need a new WPEBackend release with the new API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445074</commentid>
    <comment_count>2</comment_count>
      <attachid>345753</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2018-07-25 10:27:54 -0700</bug_when>
    <thetext>Comment on attachment 345753
WIP

How about other fields from the MouseEvent DOM object? For example, are
keyboard modifiers (Ctrl, Alt, etc) already being filled or would it be
needed to add more fields in the wpe_input_pointer_event struct?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445342</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-07-26 00:42:25 -0700</bug_when>
    <thetext>(In reply to Adrian Perez from comment #2)
&gt; Comment on attachment 345753 [details]
&gt; WIP
&gt; 
&gt; How about other fields from the MouseEvent DOM object? For example, are
&gt; keyboard modifiers (Ctrl, Alt, etc) already being filled or would it be
&gt; needed to add more fields in the wpe_input_pointer_event struct?

The spec doesn&apos;t say keyboard modifiers should be filled in buttons field.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445437</commentid>
    <comment_count>4</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2018-07-26 09:05:42 -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 345753 [details]
&gt; &gt; WIP
&gt; &gt; 
&gt; &gt; How about other fields from the MouseEvent DOM object? For example, are
&gt; &gt; keyboard modifiers (Ctrl, Alt, etc) already being filled or would it be
&gt; &gt; needed to add more fields in the wpe_input_pointer_event struct?
&gt; 
&gt; The spec doesn&apos;t say keyboard modifiers should be filled in buttons field.

The spec mentions that there are *other* fields for the keyboard
modifiers. What I wanted to point out is that the proposed patch
does not handle them, and I was wondering whether other field(s)
in the struct should be added to cover those. I guess that could
be handled in a separate bug+patch.

(FWIW, after re-reading the spec a couple of times, to me is quite
clear that the “MouseEvent.{ctrl,shift,alt,meta}Key” properties
are *mandatory* — nothing in the spec hints at them being optional.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445658</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-07-26 22:52:36 -0700</bug_when>
    <thetext>(In reply to Adrian Perez from comment #4)
&gt; (In reply to Carlos Garcia Campos from comment #3)
&gt; &gt; (In reply to Adrian Perez from comment #2)
&gt; &gt; &gt; Comment on attachment 345753 [details]
&gt; &gt; &gt; WIP
&gt; &gt; &gt; 
&gt; &gt; &gt; How about other fields from the MouseEvent DOM object? For example, are
&gt; &gt; &gt; keyboard modifiers (Ctrl, Alt, etc) already being filled or would it be
&gt; &gt; &gt; needed to add more fields in the wpe_input_pointer_event struct?
&gt; &gt; 
&gt; &gt; The spec doesn&apos;t say keyboard modifiers should be filled in buttons field.
&gt; 
&gt; The spec mentions that there are *other* fields for the keyboard
&gt; modifiers. What I wanted to point out is that the proposed patch
&gt; does not handle them, and I was wondering whether other field(s)
&gt; in the struct should be added to cover those. I guess that could
&gt; be handled in a separate bug+patch.
&gt; 
&gt; (FWIW, after re-reading the spec a couple of times, to me is quite
&gt; clear that the “MouseEvent.{ctrl,shift,alt,meta}Key” properties
&gt; are *mandatory* — nothing in the spec hints at them being optional.)

Ah! other fields. This bug is only about buttons field. I don&apos;t know if the keyborad modifier fields are working in WPE, but it&apos;s definitely out of scope of this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447561</commentid>
    <comment_count>6</comment_count>
      <attachid>346464</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-08-03 02:22:56 -0700</bug_when>
    <thetext>Created attachment 346464
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447563</commentid>
    <comment_count>7</comment_count>
      <attachid>346464</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-08-03 02:30:13 -0700</bug_when>
    <thetext>Comment on attachment 346464
Patch

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

&gt; Tools/WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:94
&gt; +    case 1:
&gt; +        modifier = wpe_input_pointer_modifier_button1;
&gt; +        break;

Can these return the relevant modifier value, and the default clause just return 0? Or, if the compiler complains, have the default clause break and then return by default?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447566</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-08-03 02:38:31 -0700</bug_when>
    <thetext>Committed r234541: &lt;https://trac.webkit.org/changeset/234541&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460538</commentid>
    <comment_count>9</comment_count>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2018-09-18 01:58:27 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #5)
&gt; (In reply to Adrian Perez from comment #4)
&gt; &gt; (FWIW, after re-reading the spec a couple of times, to me is quite
&gt; &gt; clear that the “MouseEvent.{ctrl,shift,alt,meta}Key” properties
&gt; &gt; are *mandatory* — nothing in the spec hints at them being optional.)
&gt; 
&gt; Ah! other fields. This bug is only about buttons field. I don&apos;t know if the
&gt; keyborad modifier fields are working in WPE, but it&apos;s definitely out of
&gt; scope of this bug.

Checking bug 189664, I see that the wkEventModifiers are not being propagated from WTR down to WK. I don&apos;t know what the original intention of the modifiers field in wpe_input_pointer_event was, but I suspect that it was keyboard modifiers, not pressed mouse buttons, as it&apos;s implemented in this bug&apos;s patch.

I suppose it&apos;s possible to serialize both pressed buttons and keyboard modifiers in the same modifiers field (it&apos;s 32 bits, after all), so it shouldn&apos;t be much of an issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460558</commentid>
    <comment_count>10</comment_count>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2018-09-18 05:04:13 -0700</bug_when>
    <thetext>Implemented in bug 189697.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345753</attachid>
            <date>2018-07-25 04:52:56 -0700</date>
            <delta_ts>2018-08-03 02:22:56 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>wpe-mouse-buttons-wip.diff</filename>
            <type>text/plain</type>
            <size>10509</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKaW5kZXggN2Nl
YWY2Njk3YjIuLjJmMzdiZmE2YWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93
cGUvV2ViRXZlbnRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93cGUvV2Vi
RXZlbnRGYWN0b3J5LmNwcApAQCAtOTQsNiArOTQsMzEgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJF
dmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXli
b2EKICAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLCB3YWxsVGltZUZvckV2ZW50VGlt
ZShldmVudC0+dGltZSkpOwogfQogCitzdGF0aWMgaW5saW5lIHNob3J0IHByZXNzZWRNb3VzZUJ1
dHRvbnModWludDhfdCBtb2RpZmllcnMpCit7CisgICAgLy8gTW91c2VFdmVudC5idXR0b25zCisg
ICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3VpZXZlbnRzLyNyZWYtZm9yLWRvbS1tb3VzZWV2
ZW50LWJ1dHRvbnMtMQorCisgICAgLy8gMCBNVVNUIGluZGljYXRlIG5vIGJ1dHRvbiBpcyBjdXJy
ZW50bHkgYWN0aXZlLgorICAgIHNob3J0IGJ1dHRvbnMgPSAwOworCisgICAgLy8gMSBNVVNUIGlu
ZGljYXRlIHRoZSBwcmltYXJ5IGJ1dHRvbiBvZiB0aGUgZGV2aWNlIChpbiBnZW5lcmFsLCB0aGUg
bGVmdCBidXR0b24gb3IgdGhlIG9ubHkgYnV0dG9uIG9uCisgICAgLy8gc2luZ2xlLWJ1dHRvbiBk
ZXZpY2VzLCB1c2VkIHRvIGFjdGl2YXRlIGEgdXNlciBpbnRlcmZhY2UgY29udHJvbCBvciBzZWxl
Y3QgdGV4dCkuCisgICAgaWYgKG1vZGlmaWVycyAmIHdwZV9pbnB1dF9wb2ludGVyX21vZGlmaWVy
X2J1dHRvbjEpCisgICAgICAgIGJ1dHRvbnMgfD0gMTsKKworICAgIC8vIDIgTVVTVCBpbmRpY2F0
ZSB0aGUgc2Vjb25kYXJ5IGJ1dHRvbiAoaW4gZ2VuZXJhbCwgdGhlIHJpZ2h0IGJ1dHRvbiwgb2Z0
ZW4gdXNlZCB0byBkaXNwbGF5IGEgY29udGV4dCBtZW51KSwKKyAgICAvLyBpZiBwcmVzZW50Lgor
ICAgIGlmIChtb2RpZmllcnMgJiB3cGVfaW5wdXRfcG9pbnRlcl9tb2RpZmllcl9idXR0b24yKQor
ICAgICAgICBidXR0b25zIHw9IDI7CisKKyAgICAvLyA0IE1VU1QgaW5kaWNhdGUgdGhlIGF1eGls
aWFyeSBidXR0b24gKGluIGdlbmVyYWwsIHRoZSBtaWRkbGUgYnV0dG9uLCBvZnRlbiBjb21iaW5l
ZCB3aXRoIGEgbW91c2Ugd2hlZWwpLgorICAgIGlmIChtb2RpZmllcnMgJiB3cGVfaW5wdXRfcG9p
bnRlcl9tb2RpZmllcl9idXR0b24zKQorICAgICAgICBidXR0b25zIHw9IDQ7CisKKyAgICByZXR1
cm4gYnV0dG9uczsKK30KKwogV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdl
Yk1vdXNlRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50KiBldmVudCwgZmxvYXQg
ZGV2aWNlU2NhbGVGYWN0b3IpCiB7CiAgICAgV2ViRXZlbnQ6OlR5cGUgdHlwZSA9IFdlYkV2ZW50
OjpOb1R5cGU7CkBAIC0xMjgsNyArMTUzLDcgQEAgV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rv
cnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW4KICAg
ICAvLyBGSVhNRTogUHJvcGVyIGJ1dHRvbiBzdXBwb3J0LiBNb2RpZmllcnMuIGRlbHRhWC9ZL1ou
IENsaWNrIGNvdW50LgogICAgIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKGV2ZW50LT54LCBl
dmVudC0+eSk7CiAgICAgcG9zaXRpb24uc2NhbGUoMSAvIGRldmljZVNjYWxlRmFjdG9yKTsKLSAg
ICByZXR1cm4gV2ViTW91c2VFdmVudCh0eXBlLCBidXR0b24sIDAsIHBvc2l0aW9uLCBwb3NpdGlv
biwKKyAgICByZXR1cm4gV2ViTW91c2VFdmVudCh0eXBlLCBidXR0b24sIHByZXNzZWRNb3VzZUJ1
dHRvbnMoZXZlbnQtPm1vZGlmaWVycyksIHBvc2l0aW9uLCBwb3NpdGlvbiwKICAgICAgICAgMCwg
MCwgMCwgY2xpY2tDb3VudCwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIHdh
bGxUaW1lRm9yRXZlbnRUaW1lKGV2ZW50LT50aW1lKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAKaW5kZXggOTIxZTE3ZmM1
MjIuLjA4MTdmMDIxYmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
d3BlL1BhZ2VDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
d3BlL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtMjAyLDEzICsyMDIsMTQgQEAgdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6ZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmIHRv
dWNoRXZlbnQsIGIKICAgICBzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQgcG9pbnRlckV2
ZW50IHsKICAgICAgICAgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9udWxsLCB0b3VjaFBv
aW50LT50aW1lLAogICAgICAgICB0b3VjaFBvaW50LT54LCB0b3VjaFBvaW50LT55LAotICAgICAg
ICAxLCAwCisgICAgICAgIDEsIDAsIDAKICAgICB9OwogCiAgICAgc3dpdGNoICh0b3VjaFBvaW50
LT50eXBlKSB7CiAgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9kb3duOgogICAg
ICAgICBwb2ludGVyRXZlbnQudHlwZSA9IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfYnV0
dG9uOwogICAgICAgICBwb2ludGVyRXZlbnQuc3RhdGUgPSAxOworICAgICAgICBwb2ludGVyRXZl
bnQubW9kaWZpZXJzIHw9IHdwZV9pbnB1dF9wb2ludGVyX21vZGlmaWVyX2J1dHRvbjE7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfbW90aW9uOgog
ICAgICAgICBwb2ludGVyRXZlbnQudHlwZSA9IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVf
bW90aW9uOwpAQCAtMjE3LDYgKzIxOCw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRvbmVXaXRo
VG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiB0b3VjaEV2ZW50LCBiCiAgICAg
Y2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV91cDoKICAgICAgICAgcG9pbnRlckV2ZW50
LnR5cGUgPSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX2J1dHRvbjsKICAgICAgICAgcG9p
bnRlckV2ZW50LnN0YXRlID0gMDsKKyAgICAgICAgcG9pbnRlckV2ZW50Lm1vZGlmaWVycyAmPSB+
d3BlX2lucHV0X3BvaW50ZXJfbW9kaWZpZXJfYnV0dG9uMTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX251bGw6CiAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9FdmVudFNl
bmRlclByb3h5LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaApp
bmRleCBmNmUzNGU0NmJhMy4uODI0Y2MyMjJhZWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvRXZlbnRTZW5kZXJQcm94eS5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
RXZlbnRTZW5kZXJQcm94eS5oCkBAIC0xNDEsNiArMTQxLDcgQEAgcHJpdmF0ZToKICNlbGlmIFBM
QVRGT1JNKFdQRSkKICAgICBzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogbV92aWV3QmFja2VuZDsK
ICAgICB1aW50MzJfdCBtX2J1dHRvblN0YXRlOworICAgIHVpbnQ4X3QgbV9tb3VzZUJ1dHRvbnND
dXJyZW50bHlEb3duIHsgMCB9OwogICAgIFZlY3RvcjxzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2
ZW50X3Jhdz4gbV90b3VjaEV2ZW50czsKICAgICBIYXNoU2V0PHVuc2lnbmVkLCBEZWZhdWx0SGFz
aDx1bnNpZ25lZD46Okhhc2gsIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8dW5z
aWduZWQ+PiBtX3VwZGF0ZWRUb3VjaEV2ZW50czsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci93cGUvRXZlbnRTZW5kZXJQcm94eVdQRS5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNwcAppbmRleCBhYWIxMWU3NTUx
NS4uYmI3MzY1YWQxMWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0V2
ZW50U2VuZGVyUHJveHlXUEUuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0V2
ZW50U2VuZGVyUHJveHlXUEUuY3BwCkBAIC03MCw3ICs3MCw3IEBAIEV2ZW50U2VuZGVyUHJveHk6
On5FdmVudFNlbmRlclByb3h5KCkKIHsKIH0KIAotdW5zaWduZWQgc2VuZGVyQnV0dG9uVG9XUEVC
dXR0b24odW5zaWduZWQgc2VuZGVyQnV0dG9uKQorc3RhdGljIHVuc2lnbmVkIHNlbmRlckJ1dHRv
blRvV1BFQnV0dG9uKHVuc2lnbmVkIHNlbmRlckJ1dHRvbikKIHsKICAgICAvLyBUZXN0cyB1c2lu
ZyB0aGUgRXZlbnRTZW5kZXIgaGF2ZSBhIGRpZmZlcmVudCBudW1iZXJpbmcgb3JkZXJpbmcgdGhh
biB0aGUgb25lCiAgICAgLy8gdGhhdCB0aGUgV1BFIHBvcnQgZXhwZWN0cy4gU2h1ZmZsZSB0aGVz
ZSBoZXJlLgpAQCAtODYsNiArODYsMzMgQEAgdW5zaWduZWQgc2VuZGVyQnV0dG9uVG9XUEVCdXR0
b24odW5zaWduZWQgc2VuZGVyQnV0dG9uKQogICAgIH0KIH0KIAorc3RhdGljIHVpbnQ4X3QgbW9k
aWZpZXJGb3JCdXR0b24odW5zaWduZWQgYnV0dG9uKQoreworICAgIHVpbnQ4X3QgbW9kaWZpZXIg
PSAwOworCisgICAgc3dpdGNoIChidXR0b24pIHsKKyAgICBjYXNlIDE6CisgICAgICAgIG1vZGlm
aWVyID0gd3BlX2lucHV0X3BvaW50ZXJfbW9kaWZpZXJfYnV0dG9uMTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSAyOgorICAgICAgICBtb2RpZmllciA9IHdwZV9pbnB1dF9wb2ludGVyX21vZGlm
aWVyX2J1dHRvbjI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgMzoKKyAgICAgICAgbW9kaWZp
ZXIgPSB3cGVfaW5wdXRfcG9pbnRlcl9tb2RpZmllcl9idXR0b24zOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIDQ6CisgICAgICAgIG1vZGlmaWVyID0gd3BlX2lucHV0X3BvaW50ZXJfbW9kaWZp
ZXJfYnV0dG9uNDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSA1OgorICAgICAgICBtb2RpZmll
ciA9IHdwZV9pbnB1dF9wb2ludGVyX21vZGlmaWVyX2J1dHRvbjU7CisgICAgICAgIGJyZWFrOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVybiBtb2RpZmll
cjsKK30KKwogdm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZURvd24odW5zaWduZWQgYnV0dG9u
LCBXS0V2ZW50TW9kaWZpZXJzIHdrTW9kaWZpZXJzKQogewogICAgIG1fY2xpY2tCdXR0b24gPSBi
dXR0b247CkBAIC05Myw3ICsxMjAsMTAgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZURv
d24odW5zaWduZWQgYnV0dG9uLCBXS0V2ZW50TW9kaWZpZXJzIHdrTW9kaWZpZXJzKQogICAgIG1f
Y2xpY2tUaW1lID0gbV90aW1lOwogICAgIG1fYnV0dG9uU3RhdGUgPSBCdXR0b25QcmVzc2VkOwog
Ci0gICAgc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50IGV2ZW50IHsgd3BlX2lucHV0X3Bv
aW50ZXJfZXZlbnRfdHlwZV9idXR0b24sIHN0YXRpY19jYXN0PHVpbnQzMl90PihtX3RpbWUpLCBz
dGF0aWNfY2FzdDxpbnQ+KG1fcG9zaXRpb24ueCksIHN0YXRpY19jYXN0PGludD4obV9wb3NpdGlv
bi55KSwgc2VuZGVyQnV0dG9uVG9XUEVCdXR0b24oYnV0dG9uKSwgbV9idXR0b25TdGF0ZX07Cisg
ICAgYXV0byB3cGVCdXR0b24gPSBzZW5kZXJCdXR0b25Ub1dQRUJ1dHRvbihidXR0b24pOworICAg
IG1fbW91c2VCdXR0b25zQ3VycmVudGx5RG93biB8PSBtb2RpZmllckZvckJ1dHRvbih3cGVCdXR0
b24pOworCisgICAgc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50IGV2ZW50IHsgd3BlX2lu
cHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9idXR0b24sIHN0YXRpY19jYXN0PHVpbnQzMl90PihtX3Rp
bWUpLCBzdGF0aWNfY2FzdDxpbnQ+KG1fcG9zaXRpb24ueCksIHN0YXRpY19jYXN0PGludD4obV9w
b3NpdGlvbi55KSwgd3BlQnV0dG9uLCBtX2J1dHRvblN0YXRlLCBtX21vdXNlQnV0dG9uc0N1cnJl
bnRseURvd24gfTsKICAgICB3cGVfdmlld19iYWNrZW5kX2Rpc3BhdGNoX3BvaW50ZXJfZXZlbnQo
bV92aWV3QmFja2VuZCwgJmV2ZW50KTsKIH0KIApAQCAtMTAyLDcgKzEzMiwxMCBAQCB2b2lkIEV2
ZW50U2VuZGVyUHJveHk6Om1vdXNlVXAodW5zaWduZWQgYnV0dG9uLCBXS0V2ZW50TW9kaWZpZXJz
IHdrTW9kaWZpZXJzKQogICAgIG1fYnV0dG9uU3RhdGUgPSBCdXR0b25SZWxlYXNlZDsKICAgICBt
X2NsaWNrQnV0dG9uID0ga1dLRXZlbnRNb3VzZUJ1dHRvbk5vQnV0dG9uOwogCi0gICAgc3RydWN0
IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50IGV2ZW50IHsgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRf
dHlwZV9idXR0b24sIHN0YXRpY19jYXN0PHVpbnQzMl90PihtX3RpbWUpLCBzdGF0aWNfY2FzdDxp
bnQ+KG1fcG9zaXRpb24ueCksIHN0YXRpY19jYXN0PGludD4obV9wb3NpdGlvbi55KSwgc2VuZGVy
QnV0dG9uVG9XUEVCdXR0b24oYnV0dG9uKSwgbV9idXR0b25TdGF0ZX07CisgICAgYXV0byB3cGVC
dXR0b24gPSBzZW5kZXJCdXR0b25Ub1dQRUJ1dHRvbihidXR0b24pOworICAgIG1fbW91c2VCdXR0
b25zQ3VycmVudGx5RG93biAmPSB+bW9kaWZpZXJGb3JCdXR0b24od3BlQnV0dG9uKTsKKworICAg
IHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudCBldmVudCB7IHdwZV9pbnB1dF9wb2ludGVy
X2V2ZW50X3R5cGVfYnV0dG9uLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4obV90aW1lKSwgc3RhdGlj
X2Nhc3Q8aW50PihtX3Bvc2l0aW9uLngpLCBzdGF0aWNfY2FzdDxpbnQ+KG1fcG9zaXRpb24ueSks
IHdwZUJ1dHRvbiwgbV9idXR0b25TdGF0ZSwgbV9tb3VzZUJ1dHRvbnNDdXJyZW50bHlEb3duIH07
CiAgICAgd3BlX3ZpZXdfYmFja2VuZF9kaXNwYXRjaF9wb2ludGVyX2V2ZW50KG1fdmlld0JhY2tl
bmQsICZldmVudCk7CiB9CiAKQEAgLTExMSw3ICsxNDQsNyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJv
eHk6Om1vdXNlTW92ZVRvKGRvdWJsZSB4LCBkb3VibGUgeSkKICAgICBtX3Bvc2l0aW9uLnggPSB4
OwogICAgIG1fcG9zaXRpb24ueSA9IHk7CiAKLSAgICBzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJf
ZXZlbnQgZXZlbnQgeyB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX21vdGlvbiwgc3RhdGlj
X2Nhc3Q8dWludDMyX3Q+KG1fdGltZSksIHN0YXRpY19jYXN0PGludD4obV9wb3NpdGlvbi54KSwg
c3RhdGljX2Nhc3Q8aW50PihtX3Bvc2l0aW9uLnkpLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4obV9j
bGlja0J1dHRvbiksIG1fYnV0dG9uU3RhdGV9OworICAgIHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRl
cl9ldmVudCBldmVudCB7IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbW90aW9uLCBzdGF0
aWNfY2FzdDx1aW50MzJfdD4obV90aW1lKSwgc3RhdGljX2Nhc3Q8aW50PihtX3Bvc2l0aW9uLngp
LCBzdGF0aWNfY2FzdDxpbnQ+KG1fcG9zaXRpb24ueSksIHN0YXRpY19jYXN0PHVpbnQzMl90Piht
X2NsaWNrQnV0dG9uKSwgbV9idXR0b25TdGF0ZSwgbV9tb3VzZUJ1dHRvbnNDdXJyZW50bHlEb3du
IH07CiAgICAgd3BlX3ZpZXdfYmFja2VuZF9kaXNwYXRjaF9wb2ludGVyX2V2ZW50KG1fdmlld0Jh
Y2tlbmQsICZldmVudCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9iYWNrZW5kcy9XaW5k
b3dWaWV3QmFja2VuZC5jcHAgYi9Ub29scy93cGUvYmFja2VuZHMvV2luZG93Vmlld0JhY2tlbmQu
Y3BwCmluZGV4IGYxZTZiZDU5ZTJhLi45ODYwYjcwZTdhNCAxMDA2NDQKLS0tIGEvVG9vbHMvd3Bl
L2JhY2tlbmRzL1dpbmRvd1ZpZXdCYWNrZW5kLmNwcAorKysgYi9Ub29scy93cGUvYmFja2VuZHMv
V2luZG93Vmlld0JhY2tlbmQuY3BwCkBAIC0xMzAsOCArMTMwLDEwIEBAIGNvbnN0IHN0cnVjdCB3
bF9wb2ludGVyX2xpc3RlbmVyIFdpbmRvd1ZpZXdCYWNrZW5kOjpzX3BvaW50ZXJMaXN0ZW5lciA9
IHsKICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd2xfcG9pbnRlciosIHVpbnQzMl90IC8qc2Vy
aWFsKi8sIHN0cnVjdCB3bF9zdXJmYWNlKiBzdXJmYWNlLCB3bF9maXhlZF90LCB3bF9maXhlZF90
KQogICAgIHsKICAgICAgICAgYXV0byYgd2luZG93ID0gKnN0YXRpY19jYXN0PFdpbmRvd1ZpZXdC
YWNrZW5kKj4oZGF0YSk7Ci0gICAgICAgIGlmICh3aW5kb3cubV9zdXJmYWNlID09IHN1cmZhY2Up
CisgICAgICAgIGlmICh3aW5kb3cubV9zdXJmYWNlID09IHN1cmZhY2UpIHsKICAgICAgICAgICAg
IHdpbmRvdy5tX3NlYXREYXRhLnBvaW50ZXIudGFyZ2V0ID0gc3VyZmFjZTsKKyAgICAgICAgICAg
IHdpbmRvdy5tX3NlYXREYXRhLnBvaW50ZXIubW9kaWZpZXJzID0gMDsKKyAgICAgICAgfQogICAg
IH0sCiAgICAgLy8gbGVhdmUKICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd2xfcG9pbnRlcios
IHVpbnQzMl90IC8qc2VyaWFsKi8sIHN0cnVjdCB3bF9zdXJmYWNlKiBzdXJmYWNlKQpAQCAtMTY2
LDkgKzE2OCwzNSBAQCBjb25zdCBzdHJ1Y3Qgd2xfcG9pbnRlcl9saXN0ZW5lciBXaW5kb3dWaWV3
QmFja2VuZDo6c19wb2ludGVyTGlzdGVuZXIgPSB7CiAgICAgICAgIHdpbmRvdy5tX3NlYXREYXRh
LnBvaW50ZXIuYnV0dG9uID0gISFzdGF0ZSA/IGJ1dHRvbiA6IDA7CiAgICAgICAgIHdpbmRvdy5t
X3NlYXREYXRhLnBvaW50ZXIuc3RhdGUgPSBzdGF0ZTsKIAorICAgICAgICB1aW50OF90IG1vZGlm
aWVyID0gMDsKKyAgICAgICAgc3dpdGNoIChidXR0b24pIHsKKyAgICAgICAgY2FzZSAxOgorICAg
ICAgICAgICAgbW9kaWZpZXIgPSB3cGVfaW5wdXRfcG9pbnRlcl9tb2RpZmllcl9idXR0b24xOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIG1vZGlmaWVy
ID0gd3BlX2lucHV0X3BvaW50ZXJfbW9kaWZpZXJfYnV0dG9uMjsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBtb2RpZmllciA9IHdwZV9pbnB1dF9wb2lu
dGVyX21vZGlmaWVyX2J1dHRvbjM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0
OgorICAgICAgICAgICAgbW9kaWZpZXIgPSB3cGVfaW5wdXRfcG9pbnRlcl9tb2RpZmllcl9idXR0
b240OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNToKKyAgICAgICAgICAgIG1v
ZGlmaWVyID0gd3BlX2lucHV0X3BvaW50ZXJfbW9kaWZpZXJfYnV0dG9uNTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KworICAgICAgICBpZiAoc3RhdGUpCisgICAgICAgICAgICB3aW5kb3cubV9zZWF0RGF0YS5wb2lu
dGVyLm1vZGlmaWVycyB8PSBtb2RpZmllcjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgd2lu
ZG93Lm1fc2VhdERhdGEucG9pbnRlci5tb2RpZmllcnMgJj0gfm1vZGlmaWVyOworCiAgICAgICAg
IGlmICh3aW5kb3cubV9zZWF0RGF0YS5wb2ludGVyLnRhcmdldCkgewogICAgICAgICAgICAgc3Ry
dWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50IGV2ZW50ID0geyB3cGVfaW5wdXRfcG9pbnRlcl9l
dmVudF90eXBlX2J1dHRvbiwKLSAgICAgICAgICAgICAgICB0aW1lLCB3aW5kb3cubV9zZWF0RGF0
YS5wb2ludGVyLmNvb3Jkcy5maXJzdCwgd2luZG93Lm1fc2VhdERhdGEucG9pbnRlci5jb29yZHMu
c2Vjb25kLCBidXR0b24sIHN0YXRlIH07CisgICAgICAgICAgICAgICAgdGltZSwgd2luZG93Lm1f
c2VhdERhdGEucG9pbnRlci5jb29yZHMuZmlyc3QsIHdpbmRvdy5tX3NlYXREYXRhLnBvaW50ZXIu
Y29vcmRzLnNlY29uZCwgYnV0dG9uLCBzdGF0ZSwgd2luZG93Lm1fc2VhdERhdGEucG9pbnRlci5t
b2RpZmllcnMgfTsKICAgICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaElucHV0UG9pbnRlckV2ZW50
KCZldmVudCk7CiAgICAgICAgIH0KICAgICB9LApkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2JhY2tl
bmRzL1dpbmRvd1ZpZXdCYWNrZW5kLmggYi9Ub29scy93cGUvYmFja2VuZHMvV2luZG93Vmlld0Jh
Y2tlbmQuaAppbmRleCAzZjEzNGE5MzlmMS4uY2M3ZTY0NTJmMWEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L3dwZS9iYWNrZW5kcy9XaW5kb3dWaWV3QmFja2VuZC5oCisrKyBiL1Rvb2xzL3dwZS9iYWNrZW5k
cy9XaW5kb3dWaWV3QmFja2VuZC5oCkBAIC02NSw2ICs2NSw3IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICBzdGQ6OnBhaXI8aW50LCBpbnQ+IGNvb3JkcyB7IDAsIDAgfTsKICAgICAgICAgICAgIHVp
bnQzMl90IGJ1dHRvbiB7IDAgfTsKICAgICAgICAgICAgIHVpbnQzMl90IHN0YXRlIHsgMCB9Owor
ICAgICAgICAgICAgdWludDhfdCBtb2RpZmllcnMgeyAwIH07CiAgICAgICAgIH0gcG9pbnRlcjsK
IAogICAgICAgICBzdHJ1Y3QgewoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346464</attachid>
            <date>2018-08-03 02:22:56 -0700</date>
            <delta_ts>2018-08-03 02:30:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wpe-mouse-buttons.diff</filename>
            <type>text/plain</type>
            <size>19895</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggODNhZWRiZGRlNTQuLjVjZDA1YmNhNzJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDE4LTA4LTAzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KKworICAgICAgICBbV1BFXSBJbXBsZW1lbnQgTW91c2VFdmVudC5idXR0b25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODc5OTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXNzIGJ1dHRvbnMg
Y3VycmVudGx5IHByZXNzZWQgdG8gV2ViTW91c2VFdmVudC4KKworICAgICAgICAqIFNoYXJlZC93
cGUvV2ViRXZlbnRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6cHJlc3NlZE1vdXNlQnV0
dG9ucyk6IEhlbHBlciB0byBnZXQgdGhlIHByZXNzZWQgYnV0dG9ucyBtYXNrIGZvciB0aGUgV1BF
IG1vZGlmaWVycy4KKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJN
b3VzZUV2ZW50KTogVXNlIHByZXNzZWRNb3VzZUJ1dHRvbnMoKS4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGll
bnRJbXBsOjpkb25lV2l0aFRvdWNoRXZlbnQpOiBVcGRhdGUgdGhlIGV2ZW50IG1vZGlmaWVycy4K
KwogMjAxOC0wOC0wMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW1dQRV0gVXNlIFdQRSBrZXkgc3ltYm9scyBhbmQgbmV3IEFQSSBpbnN0ZWFk
IG9mIHhrYmNvbW1vbiBhbmQgdGhlIGtleSBtYXBwZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
d3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKaW5kZXggZjM5NzZjMjlmNjEuLjJhMmY1MTlmODc4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5LmNwcApAQCAtODEs
NiArODEsMzEgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktl
eWJvYXJkRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2EKICAgICAgICAgd2FsbFRpbWVGb3JF
dmVudFRpbWUoZXZlbnQtPnRpbWUpKTsKIH0KIAorc3RhdGljIGlubGluZSBzaG9ydCBwcmVzc2Vk
TW91c2VCdXR0b25zKHVpbnQzMl90IG1vZGlmaWVycykKK3sKKyAgICAvLyBNb3VzZUV2ZW50LmJ1
dHRvbnMKKyAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvdWlldmVudHMvI3JlZi1mb3ItZG9t
LW1vdXNlZXZlbnQtYnV0dG9ucy0xCisKKyAgICAvLyAwIE1VU1QgaW5kaWNhdGUgbm8gYnV0dG9u
IGlzIGN1cnJlbnRseSBhY3RpdmUuCisgICAgc2hvcnQgYnV0dG9ucyA9IDA7CisKKyAgICAvLyAx
IE1VU1QgaW5kaWNhdGUgdGhlIHByaW1hcnkgYnV0dG9uIG9mIHRoZSBkZXZpY2UgKGluIGdlbmVy
YWwsIHRoZSBsZWZ0IGJ1dHRvbiBvciB0aGUgb25seSBidXR0b24gb24KKyAgICAvLyBzaW5nbGUt
YnV0dG9uIGRldmljZXMsIHVzZWQgdG8gYWN0aXZhdGUgYSB1c2VyIGludGVyZmFjZSBjb250cm9s
IG9yIHNlbGVjdCB0ZXh0KS4KKyAgICBpZiAobW9kaWZpZXJzICYgd3BlX2lucHV0X3BvaW50ZXJf
bW9kaWZpZXJfYnV0dG9uMSkKKyAgICAgICAgYnV0dG9ucyB8PSAxOworCisgICAgLy8gMiBNVVNU
IGluZGljYXRlIHRoZSBzZWNvbmRhcnkgYnV0dG9uIChpbiBnZW5lcmFsLCB0aGUgcmlnaHQgYnV0
dG9uLCBvZnRlbiB1c2VkIHRvIGRpc3BsYXkgYSBjb250ZXh0IG1lbnUpLAorICAgIC8vIGlmIHBy
ZXNlbnQuCisgICAgaWYgKG1vZGlmaWVycyAmIHdwZV9pbnB1dF9wb2ludGVyX21vZGlmaWVyX2J1
dHRvbjIpCisgICAgICAgIGJ1dHRvbnMgfD0gMjsKKworICAgIC8vIDQgTVVTVCBpbmRpY2F0ZSB0
aGUgYXV4aWxpYXJ5IGJ1dHRvbiAoaW4gZ2VuZXJhbCwgdGhlIG1pZGRsZSBidXR0b24sIG9mdGVu
IGNvbWJpbmVkIHdpdGggYSBtb3VzZSB3aGVlbCkuCisgICAgaWYgKG1vZGlmaWVycyAmIHdwZV9p
bnB1dF9wb2ludGVyX21vZGlmaWVyX2J1dHRvbjMpCisgICAgICAgIGJ1dHRvbnMgfD0gNDsKKwor
ICAgIHJldHVybiBidXR0b25zOworfQorCiBXZWJNb3VzZUV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6
Y3JlYXRlV2ViTW91c2VFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQqIGV2ZW50
LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKIHsKICAgICBXZWJFdmVudDo6VHlwZSB0eXBlID0g
V2ViRXZlbnQ6Ok5vVHlwZTsKQEAgLTExNSw3ICsxNDAsNyBAQCBXZWJNb3VzZUV2ZW50IFdlYkV2
ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJf
ZXZlbgogICAgIC8vIEZJWE1FOiBQcm9wZXIgYnV0dG9uIHN1cHBvcnQuIE1vZGlmaWVycy4gZGVs
dGFYL1kvWi4gQ2xpY2sgY291bnQuCiAgICAgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24oZXZl
bnQtPngsIGV2ZW50LT55KTsKICAgICBwb3NpdGlvbi5zY2FsZSgxIC8gZGV2aWNlU2NhbGVGYWN0
b3IpOwotICAgIHJldHVybiBXZWJNb3VzZUV2ZW50KHR5cGUsIGJ1dHRvbiwgMCwgcG9zaXRpb24s
IHBvc2l0aW9uLAorICAgIHJldHVybiBXZWJNb3VzZUV2ZW50KHR5cGUsIGJ1dHRvbiwgcHJlc3Nl
ZE1vdXNlQnV0dG9ucyhldmVudC0+bW9kaWZpZXJzKSwgcG9zaXRpb24sIHBvc2l0aW9uLAogICAg
ICAgICAwLCAwLCAwLCBjbGlja0NvdW50LCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJz
PigwKSwgd2FsbFRpbWVGb3JFdmVudFRpbWUoZXZlbnQtPnRpbWUpKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcAppbmRleCBl
NzY3NWViZTQxYy4uZDg3ZjJmZGJhZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwCkBAIC0yMDIsMTMgKzIwMiwxNCBAQCB2b2lk
IFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aFRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hF
dmVudCYgdG91Y2hFdmVudCwgYgogICAgIHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudCBw
b2ludGVyRXZlbnQgewogICAgICAgICB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX251bGws
IHRvdWNoUG9pbnQtPnRpbWUsCiAgICAgICAgIHRvdWNoUG9pbnQtPngsIHRvdWNoUG9pbnQtPnks
Ci0gICAgICAgIDEsIDAKKyAgICAgICAgMSwgMCwgMAogICAgIH07CiAKICAgICBzd2l0Y2ggKHRv
dWNoUG9pbnQtPnR5cGUpIHsKICAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX2Rv
d246CiAgICAgICAgIHBvaW50ZXJFdmVudC50eXBlID0gd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRf
dHlwZV9idXR0b247CiAgICAgICAgIHBvaW50ZXJFdmVudC5zdGF0ZSA9IDE7CisgICAgICAgIHBv
aW50ZXJFdmVudC5tb2RpZmllcnMgfD0gd3BlX2lucHV0X3BvaW50ZXJfbW9kaWZpZXJfYnV0dG9u
MTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9t
b3Rpb246CiAgICAgICAgIHBvaW50ZXJFdmVudC50eXBlID0gd3BlX2lucHV0X3BvaW50ZXJfZXZl
bnRfdHlwZV9tb3Rpb247CkBAIC0yMTcsNiArMjE4LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6
ZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmIHRvdWNoRXZlbnQs
IGIKICAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX3VwOgogICAgICAgICBwb2lu
dGVyRXZlbnQudHlwZSA9IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfYnV0dG9uOwogICAg
ICAgICBwb2ludGVyRXZlbnQuc3RhdGUgPSAwOworICAgICAgICBwb2ludGVyRXZlbnQubW9kaWZp
ZXJzICY9IH53cGVfaW5wdXRfcG9pbnRlcl9tb2RpZmllcl9idXR0b24xOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbnVsbDoKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggMDE2MWRhZTQxMGIuLjZjYmZiMDE5N2RlIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIw
MTgtMDgtMDMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisg
ICAgICAgIFtXUEVdIEltcGxlbWVudCBNb3VzZUV2ZW50LmJ1dHRvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Nzk5OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhc3MgbW9kaWZpZXJzIHRvIG1vdXNl
IGV2ZW50cy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvRXZlbnRTZW5kZXJQcm94eS5o
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvd3BlL0V2ZW50U2VuZGVyUHJveHlXUEUuY3Bw
OgorICAgICAgICAoV1RSOjpzZW5kZXJCdXR0b25Ub1dQRUJ1dHRvbik6CisgICAgICAgIChXVFI6
Om1vZGlmaWVyRm9yQnV0dG9uKToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6bW91
c2VEb3duKToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6bW91c2VVcCk6CisgICAg
ICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6Om1vdXNlTW92ZVRvKToKKyAgICAgICAgKFdUUjo6
RXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeSk6CisgICAgICAgIChXVFI6OndrRXZlbnRN
b2RpZmllcnNUb1dQRSk6CisgICAgICAgIChXVFI6OndwZUtleVN5bUZvcktleVJlZik6CisgICAg
ICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6OmtleURvd24pOgorICAgICAgICAoV1RSOjpFdmVu
dFNlbmRlclByb3h5OjpwcmVwYXJlQW5kRGlzcGF0Y2hUb3VjaEV2ZW50KToKKyAgICAgICAgKiB3
cGUvYmFja2VuZHMvV2luZG93Vmlld0JhY2tlbmQuY3BwOgorICAgICAgICAoV1BFVG9vbGluZ0Jh
Y2tlbmRzOjpXaW5kb3dWaWV3QmFja2VuZDo6aGFuZGxlS2V5RXZlbnQpOgorICAgICAgICAoV1BF
VG9vbGluZ0JhY2tlbmRzOjpXaW5kb3dWaWV3QmFja2VuZDo6bW9kaWZpZXJzIGNvbnN0KToKKyAg
ICAgICAgKiB3cGUvYmFja2VuZHMvV2luZG93Vmlld0JhY2tlbmQuaDoKKwogMjAxOC0wOC0wMyAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQ
RV0gVXNlIFdQRSBrZXkgc3ltYm9scyBhbmQgbmV3IEFQSSBpbnN0ZWFkIG9mIHhrYmNvbW1vbiBh
bmQgdGhlIGtleSBtYXBwZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvRXZl
bnRTZW5kZXJQcm94eS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9FdmVudFNlbmRlclByb3h5
LmgKaW5kZXggZjZlMzRlNDZiYTMuLjlkMWU2MGIwNDZmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0V2ZW50U2VuZGVyUHJveHkuaApAQCAtMTQxLDYgKzE0MSw3IEBAIHByaXZhdGU6CiAjZWxp
ZiBQTEFURk9STShXUEUpCiAgICAgc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIG1fdmlld0JhY2tl
bmQ7CiAgICAgdWludDMyX3QgbV9idXR0b25TdGF0ZTsKKyAgICB1aW50MzJfdCBtX21vdXNlQnV0
dG9uc0N1cnJlbnRseURvd24geyAwIH07CiAgICAgVmVjdG9yPHN0cnVjdCB3cGVfaW5wdXRfdG91
Y2hfZXZlbnRfcmF3PiBtX3RvdWNoRXZlbnRzOwogICAgIEhhc2hTZXQ8dW5zaWduZWQsIERlZmF1
bHRIYXNoPHVuc2lnbmVkPjo6SGFzaCwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0
czx1bnNpZ25lZD4+IG1fdXBkYXRlZFRvdWNoRXZlbnRzOwogI2VuZGlmCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvd3BlL0V2ZW50U2VuZGVyUHJveHlXUEUuY3BwCmluZGV4IDFkNjJm
MmJiNjZhLi41NGIxM2VjNmJjZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93
cGUvRXZlbnRTZW5kZXJQcm94eVdQRS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93
cGUvRXZlbnRTZW5kZXJQcm94eVdQRS5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgRXZlbnRTZW5kZXJQ
cm94eTo6fkV2ZW50U2VuZGVyUHJveHkoKQogewogfQogCi11bnNpZ25lZCBzZW5kZXJCdXR0b25U
b1dQRUJ1dHRvbih1bnNpZ25lZCBzZW5kZXJCdXR0b24pCitzdGF0aWMgdW5zaWduZWQgc2VuZGVy
QnV0dG9uVG9XUEVCdXR0b24odW5zaWduZWQgc2VuZGVyQnV0dG9uKQogewogICAgIC8vIFRlc3Rz
IHVzaW5nIHRoZSBFdmVudFNlbmRlciBoYXZlIGEgZGlmZmVyZW50IG51bWJlcmluZyBvcmRlcmlu
ZyB0aGFuIHRoZSBvbmUKICAgICAvLyB0aGF0IHRoZSBXUEUgcG9ydCBleHBlY3RzLiBTaHVmZmxl
IHRoZXNlIGhlcmUuCkBAIC04NCw2ICs4NCwzMyBAQCB1bnNpZ25lZCBzZW5kZXJCdXR0b25Ub1dQ
RUJ1dHRvbih1bnNpZ25lZCBzZW5kZXJCdXR0b24pCiAgICAgfQogfQogCitzdGF0aWMgdWludDMy
X3QgbW9kaWZpZXJGb3JCdXR0b24odW5zaWduZWQgYnV0dG9uKQoreworICAgIHVpbnQzMl90IG1v
ZGlmaWVyID0gMDsKKworICAgIHN3aXRjaCAoYnV0dG9uKSB7CisgICAgY2FzZSAxOgorICAgICAg
ICBtb2RpZmllciA9IHdwZV9pbnB1dF9wb2ludGVyX21vZGlmaWVyX2J1dHRvbjE7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgMjoKKyAgICAgICAgbW9kaWZpZXIgPSB3cGVfaW5wdXRfcG9pbnRl
cl9tb2RpZmllcl9idXR0b24yOworICAgICAgICBicmVhazsKKyAgICBjYXNlIDM6CisgICAgICAg
IG1vZGlmaWVyID0gd3BlX2lucHV0X3BvaW50ZXJfbW9kaWZpZXJfYnV0dG9uMzsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSA0OgorICAgICAgICBtb2RpZmllciA9IHdwZV9pbnB1dF9wb2ludGVy
X21vZGlmaWVyX2J1dHRvbjQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgNToKKyAgICAgICAg
bW9kaWZpZXIgPSB3cGVfaW5wdXRfcG9pbnRlcl9tb2RpZmllcl9idXR0b241OworICAgICAgICBi
cmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4g
bW9kaWZpZXI7Cit9CisKIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VEb3duKHVuc2lnbmVk
IGJ1dHRvbiwgV0tFdmVudE1vZGlmaWVycyB3a01vZGlmaWVycykKIHsKICAgICBtX2NsaWNrQnV0
dG9uID0gYnV0dG9uOwpAQCAtOTEsNyArMTE4LDEwIEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6
bW91c2VEb3duKHVuc2lnbmVkIGJ1dHRvbiwgV0tFdmVudE1vZGlmaWVycyB3a01vZGlmaWVycykK
ICAgICBtX2NsaWNrVGltZSA9IG1fdGltZTsKICAgICBtX2J1dHRvblN0YXRlID0gQnV0dG9uUHJl
c3NlZDsKIAotICAgIHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudCBldmVudCB7IHdwZV9p
bnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfYnV0dG9uLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4obV90
aW1lKSwgc3RhdGljX2Nhc3Q8aW50PihtX3Bvc2l0aW9uLngpLCBzdGF0aWNfY2FzdDxpbnQ+KG1f
cG9zaXRpb24ueSksIHNlbmRlckJ1dHRvblRvV1BFQnV0dG9uKGJ1dHRvbiksIG1fYnV0dG9uU3Rh
dGV9OworICAgIGF1dG8gd3BlQnV0dG9uID0gc2VuZGVyQnV0dG9uVG9XUEVCdXR0b24oYnV0dG9u
KTsKKyAgICBtX21vdXNlQnV0dG9uc0N1cnJlbnRseURvd24gfD0gbW9kaWZpZXJGb3JCdXR0b24o
d3BlQnV0dG9uKTsKKworICAgIHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudCBldmVudCB7
IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfYnV0dG9uLCBzdGF0aWNfY2FzdDx1aW50MzJf
dD4obV90aW1lKSwgc3RhdGljX2Nhc3Q8aW50PihtX3Bvc2l0aW9uLngpLCBzdGF0aWNfY2FzdDxp
bnQ+KG1fcG9zaXRpb24ueSksIHdwZUJ1dHRvbiwgbV9idXR0b25TdGF0ZSwgbV9tb3VzZUJ1dHRv
bnNDdXJyZW50bHlEb3duIH07CiAgICAgd3BlX3ZpZXdfYmFja2VuZF9kaXNwYXRjaF9wb2ludGVy
X2V2ZW50KG1fdmlld0JhY2tlbmQsICZldmVudCk7CiB9CiAKQEAgLTEwMCw3ICsxMzAsMTAgQEAg
dm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVVwKHVuc2lnbmVkIGJ1dHRvbiwgV0tFdmVudE1v
ZGlmaWVycyB3a01vZGlmaWVycykKICAgICBtX2J1dHRvblN0YXRlID0gQnV0dG9uUmVsZWFzZWQ7
CiAgICAgbV9jbGlja0J1dHRvbiA9IGtXS0V2ZW50TW91c2VCdXR0b25Ob0J1dHRvbjsKIAotICAg
IHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudCBldmVudCB7IHdwZV9pbnB1dF9wb2ludGVy
X2V2ZW50X3R5cGVfYnV0dG9uLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4obV90aW1lKSwgc3RhdGlj
X2Nhc3Q8aW50PihtX3Bvc2l0aW9uLngpLCBzdGF0aWNfY2FzdDxpbnQ+KG1fcG9zaXRpb24ueSks
IHNlbmRlckJ1dHRvblRvV1BFQnV0dG9uKGJ1dHRvbiksIG1fYnV0dG9uU3RhdGV9OworICAgIGF1
dG8gd3BlQnV0dG9uID0gc2VuZGVyQnV0dG9uVG9XUEVCdXR0b24oYnV0dG9uKTsKKyAgICBtX21v
dXNlQnV0dG9uc0N1cnJlbnRseURvd24gJj0gfm1vZGlmaWVyRm9yQnV0dG9uKHdwZUJ1dHRvbik7
CisKKyAgICBzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQgZXZlbnQgeyB3cGVfaW5wdXRf
cG9pbnRlcl9ldmVudF90eXBlX2J1dHRvbiwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1fdGltZSks
IHN0YXRpY19jYXN0PGludD4obV9wb3NpdGlvbi54KSwgc3RhdGljX2Nhc3Q8aW50PihtX3Bvc2l0
aW9uLnkpLCB3cGVCdXR0b24sIG1fYnV0dG9uU3RhdGUsIG1fbW91c2VCdXR0b25zQ3VycmVudGx5
RG93biB9OwogICAgIHdwZV92aWV3X2JhY2tlbmRfZGlzcGF0Y2hfcG9pbnRlcl9ldmVudChtX3Zp
ZXdCYWNrZW5kLCAmZXZlbnQpOwogfQogCkBAIC0xMDksNyArMTQyLDcgQEAgdm9pZCBFdmVudFNl
bmRlclByb3h5Ojptb3VzZU1vdmVUbyhkb3VibGUgeCwgZG91YmxlIHkpCiAgICAgbV9wb3NpdGlv
bi54ID0geDsKICAgICBtX3Bvc2l0aW9uLnkgPSB5OwogCi0gICAgc3RydWN0IHdwZV9pbnB1dF9w
b2ludGVyX2V2ZW50IGV2ZW50IHsgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9tb3Rpb24s
IHN0YXRpY19jYXN0PHVpbnQzMl90PihtX3RpbWUpLCBzdGF0aWNfY2FzdDxpbnQ+KG1fcG9zaXRp
b24ueCksIHN0YXRpY19jYXN0PGludD4obV9wb3NpdGlvbi55KSwgc3RhdGljX2Nhc3Q8dWludDMy
X3Q+KG1fY2xpY2tCdXR0b24pLCBtX2J1dHRvblN0YXRlfTsKKyAgICBzdHJ1Y3Qgd3BlX2lucHV0
X3BvaW50ZXJfZXZlbnQgZXZlbnQgeyB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX21vdGlv
biwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1fdGltZSksIHN0YXRpY19jYXN0PGludD4obV9wb3Np
dGlvbi54KSwgc3RhdGljX2Nhc3Q8aW50PihtX3Bvc2l0aW9uLnkpLCBzdGF0aWNfY2FzdDx1aW50
MzJfdD4obV9jbGlja0J1dHRvbiksIG1fYnV0dG9uU3RhdGUsIG1fbW91c2VCdXR0b25zQ3VycmVu
dGx5RG93biB9OwogICAgIHdwZV92aWV3X2JhY2tlbmRfZGlzcGF0Y2hfcG9pbnRlcl9ldmVudCht
X3ZpZXdCYWNrZW5kLCAmZXZlbnQpOwogfQogCkBAIC0xMjAsMTEgKzE1MywxMSBAQCB2b2lkIEV2
ZW50U2VuZGVyUHJveHk6Om1vdXNlU2Nyb2xsQnkoaW50IGhvcml6b250YWwsIGludCB2ZXJ0aWNh
bCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGhvcml6b250YWwpIHsKLSAgICAgICAgc3Ry
dWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50IGV2ZW50ID0geyB3cGVfaW5wdXRfYXhpc19ldmVudF90
eXBlX21vdGlvbiwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1fdGltZSksIHN0YXRpY19jYXN0PGlu
dD4obV9wb3NpdGlvbi54KSwgc3RhdGljX2Nhc3Q8aW50PihtX3Bvc2l0aW9uLnkpLCBIb3Jpem9u
dGFsU2Nyb2xsLCBob3Jpem9udGFsfTsKKyAgICAgICAgc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2
ZW50IGV2ZW50ID0geyB3cGVfaW5wdXRfYXhpc19ldmVudF90eXBlX21vdGlvbiwgc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KG1fdGltZSksIHN0YXRpY19jYXN0PGludD4obV9wb3NpdGlvbi54KSwgc3Rh
dGljX2Nhc3Q8aW50PihtX3Bvc2l0aW9uLnkpLCBIb3Jpem9udGFsU2Nyb2xsLCBob3Jpem9udGFs
LCAwfTsKICAgICAgICAgd3BlX3ZpZXdfYmFja2VuZF9kaXNwYXRjaF9heGlzX2V2ZW50KG1fdmll
d0JhY2tlbmQsICZldmVudCk7CiAgICAgfQogICAgIGlmICh2ZXJ0aWNhbCkgewotICAgICAgICBz
dHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQgZXZlbnQgPSAgeyB3cGVfaW5wdXRfYXhpc19ldmVu
dF90eXBlX21vdGlvbiwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1fdGltZSksIHN0YXRpY19jYXN0
PGludD4obV9wb3NpdGlvbi54KSwgc3RhdGljX2Nhc3Q8aW50PihtX3Bvc2l0aW9uLnkpLCBWZXJ0
aWNhbFNjcm9sbCwgdmVydGljYWx9OworICAgICAgICBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZl
bnQgZXZlbnQgPSAgeyB3cGVfaW5wdXRfYXhpc19ldmVudF90eXBlX21vdGlvbiwgc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KG1fdGltZSksIHN0YXRpY19jYXN0PGludD4obV9wb3NpdGlvbi54KSwgc3Rh
dGljX2Nhc3Q8aW50PihtX3Bvc2l0aW9uLnkpLCBWZXJ0aWNhbFNjcm9sbCwgdmVydGljYWwsIDB9
OwogICAgICAgICB3cGVfdmlld19iYWNrZW5kX2Rpc3BhdGNoX2F4aXNfZXZlbnQobV92aWV3QmFj
a2VuZCwgJmV2ZW50KTsKICAgICB9CiB9CkBAIC0xNDMsOSArMTc2LDkgQEAgdm9pZCBFdmVudFNl
bmRlclByb3h5OjpsZWFwRm9yd2FyZChpbnQgbWlsbGlzZWNvbmRzKQogICAgIG1fdGltZSArPSBt
aWxsaXNlY29uZHMgLyAxMDAwLjA7CiB9CiAKLXN0YXRpYyB1aW50OF90IHdrRXZlbnRNb2RpZmll
cnNUb1dQRShXS0V2ZW50TW9kaWZpZXJzIHdrTW9kaWZpZXJzKQorc3RhdGljIHVpbnQzMl90IHdr
RXZlbnRNb2RpZmllcnNUb1dQRShXS0V2ZW50TW9kaWZpZXJzIHdrTW9kaWZpZXJzKQogewotICAg
IHVpbnQ4X3QgbW9kaWZpZXJzID0gMDsKKyAgICB1aW50MzJfdCBtb2RpZmllcnMgPSAwOwogICAg
IGlmICh3a01vZGlmaWVycyAmIGtXS0V2ZW50TW9kaWZpZXJzU2hpZnRLZXkpCiAgICAgICAgIG1v
ZGlmaWVycyB8PSAgd3BlX2lucHV0X2tleWJvYXJkX21vZGlmaWVyX3NoaWZ0OwogICAgIGlmICh3
a01vZGlmaWVycyAmIGtXS0V2ZW50TW9kaWZpZXJzQ29udHJvbEtleSkKQEAgLTE1OCw3ICsxOTEs
NyBAQCBzdGF0aWMgdWludDhfdCB3a0V2ZW50TW9kaWZpZXJzVG9XUEUoV0tFdmVudE1vZGlmaWVy
cyB3a01vZGlmaWVycykKICAgICByZXR1cm4gbW9kaWZpZXJzOwogfQogCi1zdGF0aWMgdWludDMy
X3Qgd3BlS2V5U3ltRm9yS2V5UmVmKFdLU3RyaW5nUmVmIGtleVJlZiwgdW5zaWduZWQgbG9jYXRp
b24sIHVpbnQ4X3QqIG1vZGlmaWVycykKK3N0YXRpYyB1aW50MzJfdCB3cGVLZXlTeW1Gb3JLZXlS
ZWYoV0tTdHJpbmdSZWYga2V5UmVmLCB1bnNpZ25lZCBsb2NhdGlvbiwgdWludDMyX3QqIG1vZGlm
aWVycykKIHsKICAgICBpZiAobG9jYXRpb24gPT0gRE9NS2V5TG9jYXRpb25OdW1wYWQpIHsKICAg
ICAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoa2V5UmVmLCAibGVmdEFycm93
IikpCkBAIC0yNjgsNyArMzAxLDcgQEAgc3RhdGljIHVpbnQzMl90IHdwZUtleVN5bUZvcktleVJl
ZihXS1N0cmluZ1JlZiBrZXlSZWYsIHVuc2lnbmVkIGxvY2F0aW9uLCB1aW50OF8KIAogdm9pZCBF
dmVudFNlbmRlclByb3h5OjprZXlEb3duKFdLU3RyaW5nUmVmIGtleVJlZiwgV0tFdmVudE1vZGlm
aWVycyB3a01vZGlmaWVycywgdW5zaWduZWQgbG9jYXRpb24pCiB7Ci0gICAgdWludDhfdCBtb2Rp
ZmllcnMgPSB3a0V2ZW50TW9kaWZpZXJzVG9XUEUod2tNb2RpZmllcnMpOworICAgIHVpbnQzMl90
IG1vZGlmaWVycyA9IHdrRXZlbnRNb2RpZmllcnNUb1dQRSh3a01vZGlmaWVycyk7CiAgICAgdWlu
dDMyX3Qga2V5U3ltID0gd3BlS2V5U3ltRm9yS2V5UmVmKGtleVJlZiwgbG9jYXRpb24sICZtb2Rp
ZmllcnMpOwogICAgIC8vIEZJWE1FOiB3ZSBkb24ndCBoYXZlIGEgd2F5IHRvIGdldCBoYXJkd2Fy
ZSBrZXkgY29kZSBpbiBXUEUuCiAgICAgc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCBl
dmVudCB7IHN0YXRpY19jYXN0PHVpbnQzMl90PihtX3RpbWUpLCBrZXlTeW0sIDAsIHRydWUsIG1v
ZGlmaWVyc307CkBAIC0zMjYsNyArMzU5LDcgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5OjpyZW1v
dmVVcGRhdGVkVG91Y2hFdmVudHMoKQogdm9pZCBFdmVudFNlbmRlclByb3h5OjpwcmVwYXJlQW5k
RGlzcGF0Y2hUb3VjaEV2ZW50KGVudW0gd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGUgZXZlbnRU
eXBlKQogewogICAgIGF1dG8gdXBkYXRlZEV2ZW50cyA9IGdldFVwZGF0ZWRUb3VjaEV2ZW50cygp
OwotICAgIHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnQgZXZlbnQgPSB7IHVwZGF0ZWRFdmVu
dHMuZGF0YSgpLCB1cGRhdGVkRXZlbnRzLnNpemUoKSwgZXZlbnRUeXBlLCAwLCBzdGF0aWNfY2Fz
dDx1aW50MzJfdD4obV90aW1lKSB9OworICAgIHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnQg
ZXZlbnQgPSB7IHVwZGF0ZWRFdmVudHMuZGF0YSgpLCB1cGRhdGVkRXZlbnRzLnNpemUoKSwgZXZl
bnRUeXBlLCAwLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4obV90aW1lKSwgMCB9OwogICAgIHdwZV92
aWV3X2JhY2tlbmRfZGlzcGF0Y2hfdG91Y2hfZXZlbnQobV92aWV3QmFja2VuZCwgJmV2ZW50KTsK
ICAgICBpZiAoZXZlbnRUeXBlID09IHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX3VwKQogICAg
ICAgICByZW1vdmVVcGRhdGVkVG91Y2hFdmVudHMoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9i
YWNrZW5kcy9XaW5kb3dWaWV3QmFja2VuZC5jcHAgYi9Ub29scy93cGUvYmFja2VuZHMvV2luZG93
Vmlld0JhY2tlbmQuY3BwCmluZGV4IGVmNWFmNDgzOWU5Li5hYjIxZTVhZTI2OSAxMDA2NDQKLS0t
IGEvVG9vbHMvd3BlL2JhY2tlbmRzL1dpbmRvd1ZpZXdCYWNrZW5kLmNwcAorKysgYi9Ub29scy93
cGUvYmFja2VuZHMvV2luZG93Vmlld0JhY2tlbmQuY3BwCkBAIC0xMjksOCArMTI5LDEwIEBAIGNv
bnN0IHN0cnVjdCB3bF9wb2ludGVyX2xpc3RlbmVyIFdpbmRvd1ZpZXdCYWNrZW5kOjpzX3BvaW50
ZXJMaXN0ZW5lciA9IHsKICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd2xfcG9pbnRlciosIHVp
bnQzMl90IC8qc2VyaWFsKi8sIHN0cnVjdCB3bF9zdXJmYWNlKiBzdXJmYWNlLCB3bF9maXhlZF90
LCB3bF9maXhlZF90KQogICAgIHsKICAgICAgICAgYXV0byYgd2luZG93ID0gKnN0YXRpY19jYXN0
PFdpbmRvd1ZpZXdCYWNrZW5kKj4oZGF0YSk7Ci0gICAgICAgIGlmICh3aW5kb3cubV9zdXJmYWNl
ID09IHN1cmZhY2UpCisgICAgICAgIGlmICh3aW5kb3cubV9zdXJmYWNlID09IHN1cmZhY2UpIHsK
ICAgICAgICAgICAgIHdpbmRvdy5tX3NlYXREYXRhLnBvaW50ZXIudGFyZ2V0ID0gc3VyZmFjZTsK
KyAgICAgICAgICAgIHdpbmRvdy5tX3NlYXREYXRhLnBvaW50ZXIubW9kaWZpZXJzID0gMDsKKyAg
ICAgICAgfQogICAgIH0sCiAgICAgLy8gbGVhdmUKICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qg
d2xfcG9pbnRlciosIHVpbnQzMl90IC8qc2VyaWFsKi8sIHN0cnVjdCB3bF9zdXJmYWNlKiBzdXJm
YWNlKQpAQCAtMTQ5LDcgKzE1MSw3IEBAIGNvbnN0IHN0cnVjdCB3bF9wb2ludGVyX2xpc3RlbmVy
IFdpbmRvd1ZpZXdCYWNrZW5kOjpzX3BvaW50ZXJMaXN0ZW5lciA9IHsKIAogICAgICAgICBpZiAo
d2luZG93Lm1fc2VhdERhdGEucG9pbnRlci50YXJnZXQpIHsKICAgICAgICAgICAgIHN0cnVjdCB3
cGVfaW5wdXRfcG9pbnRlcl9ldmVudCBldmVudCA9IHsgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRf
dHlwZV9tb3Rpb24sCi0gICAgICAgICAgICAgICAgdGltZSwgeCwgeSwgd2luZG93Lm1fc2VhdERh
dGEucG9pbnRlci5idXR0b24sIHdpbmRvdy5tX3NlYXREYXRhLnBvaW50ZXIuc3RhdGUgfTsKKyAg
ICAgICAgICAgICAgICB0aW1lLCB4LCB5LCB3aW5kb3cubV9zZWF0RGF0YS5wb2ludGVyLmJ1dHRv
biwgd2luZG93Lm1fc2VhdERhdGEucG9pbnRlci5zdGF0ZSwgd2luZG93Lm1vZGlmaWVycygpIH07
CiAgICAgICAgICAgICB3aW5kb3cuZGlzcGF0Y2hJbnB1dFBvaW50ZXJFdmVudCgmZXZlbnQpOwog
ICAgICAgICB9CiAgICAgfSwKQEAgLTE2NSw5ICsxNjcsMzUgQEAgY29uc3Qgc3RydWN0IHdsX3Bv
aW50ZXJfbGlzdGVuZXIgV2luZG93Vmlld0JhY2tlbmQ6OnNfcG9pbnRlckxpc3RlbmVyID0gewog
ICAgICAgICB3aW5kb3cubV9zZWF0RGF0YS5wb2ludGVyLmJ1dHRvbiA9ICEhc3RhdGUgPyBidXR0
b24gOiAwOwogICAgICAgICB3aW5kb3cubV9zZWF0RGF0YS5wb2ludGVyLnN0YXRlID0gc3RhdGU7
CiAKKyAgICAgICAgdWludDMyX3QgbW9kaWZpZXIgPSAwOworICAgICAgICBzd2l0Y2ggKGJ1dHRv
bikgeworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICBtb2RpZmllciA9IHdwZV9pbnB1dF9w
b2ludGVyX21vZGlmaWVyX2J1dHRvbjE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAyOgorICAgICAgICAgICAgbW9kaWZpZXIgPSB3cGVfaW5wdXRfcG9pbnRlcl9tb2RpZmllcl9i
dXR0b24yOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAg
IG1vZGlmaWVyID0gd3BlX2lucHV0X3BvaW50ZXJfbW9kaWZpZXJfYnV0dG9uMzsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICBtb2RpZmllciA9IHdwZV9p
bnB1dF9wb2ludGVyX21vZGlmaWVyX2J1dHRvbjQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSA1OgorICAgICAgICAgICAgbW9kaWZpZXIgPSB3cGVfaW5wdXRfcG9pbnRlcl9tb2Rp
Zmllcl9idXR0b241OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdGF0ZSkKKyAgICAgICAg
ICAgIHdpbmRvdy5tX3NlYXREYXRhLnBvaW50ZXIubW9kaWZpZXJzIHw9IG1vZGlmaWVyOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICB3aW5kb3cubV9zZWF0RGF0YS5wb2ludGVyLm1vZGlmaWVy
cyAmPSB+bW9kaWZpZXI7CisKICAgICAgICAgaWYgKHdpbmRvdy5tX3NlYXREYXRhLnBvaW50ZXIu
dGFyZ2V0KSB7CiAgICAgICAgICAgICBzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQgZXZl
bnQgPSB7IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfYnV0dG9uLAotICAgICAgICAgICAg
ICAgIHRpbWUsIHdpbmRvdy5tX3NlYXREYXRhLnBvaW50ZXIuY29vcmRzLmZpcnN0LCB3aW5kb3cu
bV9zZWF0RGF0YS5wb2ludGVyLmNvb3Jkcy5zZWNvbmQsIGJ1dHRvbiwgc3RhdGUgfTsKKyAgICAg
ICAgICAgICAgICB0aW1lLCB3aW5kb3cubV9zZWF0RGF0YS5wb2ludGVyLmNvb3Jkcy5maXJzdCwg
d2luZG93Lm1fc2VhdERhdGEucG9pbnRlci5jb29yZHMuc2Vjb25kLCBidXR0b24sIHN0YXRlLCB3
aW5kb3cubW9kaWZpZXJzKCkgfTsKICAgICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaElucHV0UG9p
bnRlckV2ZW50KCZldmVudCk7CiAgICAgICAgIH0KICAgICB9LApAQCAtMTc3LDcgKzIwNSw3IEBA
IGNvbnN0IHN0cnVjdCB3bF9wb2ludGVyX2xpc3RlbmVyIFdpbmRvd1ZpZXdCYWNrZW5kOjpzX3Bv
aW50ZXJMaXN0ZW5lciA9IHsKICAgICAgICAgYXV0byYgd2luZG93ID0gKnN0YXRpY19jYXN0PFdp
bmRvd1ZpZXdCYWNrZW5kKj4oZGF0YSk7CiAgICAgICAgIGlmICh3aW5kb3cubV9zZWF0RGF0YS5w
b2ludGVyLnRhcmdldCkgewogICAgICAgICAgICAgc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50
IGV2ZW50ID0geyB3cGVfaW5wdXRfYXhpc19ldmVudF90eXBlX21vdGlvbiwKLSAgICAgICAgICAg
ICAgICB0aW1lLCB3aW5kb3cubV9zZWF0RGF0YS5wb2ludGVyLmNvb3Jkcy5maXJzdCwgd2luZG93
Lm1fc2VhdERhdGEucG9pbnRlci5jb29yZHMuc2Vjb25kLCBheGlzLCAtd2xfZml4ZWRfdG9faW50
KHZhbHVlKSB9OworICAgICAgICAgICAgICAgIHRpbWUsIHdpbmRvdy5tX3NlYXREYXRhLnBvaW50
ZXIuY29vcmRzLmZpcnN0LCB3aW5kb3cubV9zZWF0RGF0YS5wb2ludGVyLmNvb3Jkcy5zZWNvbmQs
IGF4aXMsIC13bF9maXhlZF90b19pbnQodmFsdWUpLCB3aW5kb3cubW9kaWZpZXJzKCkgfTsKICAg
ICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaElucHV0QXhpc0V2ZW50KCZldmVudCk7CiAgICAgICAg
IH0KICAgICB9LApAQCAtMzI1LDcgKzM1Myw3IEBAIGNvbnN0IHN0cnVjdCB3bF90b3VjaF9saXN0
ZW5lciBXaW5kb3dWaWV3QmFja2VuZDo6c190b3VjaExpc3RlbmVyID0gewogICAgICAgICBtZW1j
cHkoJnNlYXREYXRhLnRvdWNoLnBvaW50c1tpZF0sICZyYXdFdmVudCwgc2l6ZW9mKHN0cnVjdCB3
cGVfaW5wdXRfdG91Y2hfZXZlbnRfcmF3KSk7CiAKICAgICAgICAgc3RydWN0IHdwZV9pbnB1dF90
b3VjaF9ldmVudCBldmVudCA9IHsgc2VhdERhdGEudG91Y2gucG9pbnRzLCAxMCwKLSAgICAgICAg
ICAgIHJhd0V2ZW50LnR5cGUsIHJhd0V2ZW50LmlkLCByYXdFdmVudC50aW1lIH07CisgICAgICAg
ICAgICByYXdFdmVudC50eXBlLCByYXdFdmVudC5pZCwgcmF3RXZlbnQudGltZSwgd2luZG93Lm1v
ZGlmaWVycygpIH07CiAgICAgICAgIHdpbmRvdy5kaXNwYXRjaElucHV0VG91Y2hFdmVudCgmZXZl
bnQpOwogICAgIH0sCiAgICAgLy8gdXAKQEAgLTM0Myw3ICszNzEsNyBAQCBjb25zdCBzdHJ1Y3Qg
d2xfdG91Y2hfbGlzdGVuZXIgV2luZG93Vmlld0JhY2tlbmQ6OnNfdG91Y2hMaXN0ZW5lciA9IHsK
ICAgICAgICAgbWVtY3B5KCZzZWF0RGF0YS50b3VjaC5wb2ludHNbaWRdLCAmcmF3RXZlbnQsIHNp
emVvZihzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50X3JhdykpOwogCiAgICAgICAgIHN0cnVj
dCB3cGVfaW5wdXRfdG91Y2hfZXZlbnQgZXZlbnQgPSB7IHNlYXREYXRhLnRvdWNoLnBvaW50cywg
MTAsCi0gICAgICAgICAgICByYXdFdmVudC50eXBlLCByYXdFdmVudC5pZCwgcmF3RXZlbnQudGlt
ZSB9OworICAgICAgICAgICAgcmF3RXZlbnQudHlwZSwgcmF3RXZlbnQuaWQsIHJhd0V2ZW50LnRp
bWUsIHdpbmRvdy5tb2RpZmllcnMoKSB9OwogICAgICAgICB3aW5kb3cuZGlzcGF0Y2hJbnB1dFRv
dWNoRXZlbnQoJmV2ZW50KTsKIAogICAgICAgICBtZW1zZXQoJnNlYXREYXRhLnRvdWNoLnBvaW50
c1tpZF0sIDB4MDAsIHNpemVvZihzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50X3JhdykpOwpA
QCAtMzYxLDcgKzM4OSw3IEBAIGNvbnN0IHN0cnVjdCB3bF90b3VjaF9saXN0ZW5lciBXaW5kb3dW
aWV3QmFja2VuZDo6c190b3VjaExpc3RlbmVyID0gewogICAgICAgICBtZW1jcHkoJnNlYXREYXRh
LnRvdWNoLnBvaW50c1tpZF0sICZyYXdFdmVudCwgc2l6ZW9mKHN0cnVjdCB3cGVfaW5wdXRfdG91
Y2hfZXZlbnRfcmF3KSk7CiAKICAgICAgICAgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudCBl
dmVudCA9IHsgc2VhdERhdGEudG91Y2gucG9pbnRzLCAxMCwKLSAgICAgICAgICAgIHJhd0V2ZW50
LnR5cGUsIHJhd0V2ZW50LmlkLCByYXdFdmVudC50aW1lIH07CisgICAgICAgICAgICByYXdFdmVu
dC50eXBlLCByYXdFdmVudC5pZCwgcmF3RXZlbnQudGltZSwgd2luZG93Lm1vZGlmaWVycygpIH07
CiAgICAgICAgIHdpbmRvdy5kaXNwYXRjaElucHV0VG91Y2hFdmVudCgmZXZlbnQpOwogICAgIH0s
CiAgICAgLy8gZnJhbWUKQEAgLTY2MCw5ICs2ODgsMTcgQEAgdm9pZCBXaW5kb3dWaWV3QmFja2Vu
ZDo6aGFuZGxlS2V5RXZlbnQodWludDMyX3Qga2V5LCB1aW50MzJfdCBzdGF0ZSwgdWludDMyX3Qg
dGkKICAgICB9CiAKICAgICBpZiAobV9zZWF0RGF0YS5rZXlib2FyZC50YXJnZXQpIHsKLSAgICAg
ICAgc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCBldmVudCA9IHsgdGltZSwga2V5c3lt
LCBrZXksICEhc3RhdGUsIHhrYi5tb2RpZmllcnMgfTsKKyAgICAgICAgc3RydWN0IHdwZV9pbnB1
dF9rZXlib2FyZF9ldmVudCBldmVudCA9IHsgdGltZSwga2V5c3ltLCBrZXksICEhc3RhdGUsIG1v
ZGlmaWVycygpIH07CiAgICAgICAgIGRpc3BhdGNoSW5wdXRLZXlib2FyZEV2ZW50KCZldmVudCk7
CiAgICAgfQogfQogCit1aW50MzJfdCBXaW5kb3dWaWV3QmFja2VuZDo6bW9kaWZpZXJzKCkgY29u
c3QKK3sKKyAgICB1aW50MzJfdCBtYXNrID0gbV9zZWF0RGF0YS54a2IubW9kaWZpZXJzOworICAg
IGlmIChtX3NlYXREYXRhLnBvaW50ZXIub2JqZWN0KQorICAgICAgICBtYXNrIHw9IG1fc2VhdERh
dGEucG9pbnRlci5tb2RpZmllcnM7CisgICAgcmV0dXJuIG1hc2s7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdQRVRvb2xpbmdCYWNrZW5kcwpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2JhY2tlbmRzL1dp
bmRvd1ZpZXdCYWNrZW5kLmggYi9Ub29scy93cGUvYmFja2VuZHMvV2luZG93Vmlld0JhY2tlbmQu
aAppbmRleCAxMzRmZTdjMmIyMy4uN2FlYjgyYTMyMTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL3dwZS9i
YWNrZW5kcy9XaW5kb3dWaWV3QmFja2VuZC5oCisrKyBiL1Rvb2xzL3dwZS9iYWNrZW5kcy9XaW5k
b3dWaWV3QmFja2VuZC5oCkBAIC01Nyw2ICs1Nyw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGNv
bnN0IHN0cnVjdCB6eGRnX3RvcGxldmVsX3Y2X2xpc3RlbmVyIHNfeGRnVG9wbGV2ZWxMaXN0ZW5l
cjsKIAogICAgIHZvaWQgaGFuZGxlS2V5RXZlbnQodWludDMyX3Qga2V5LCB1aW50MzJfdCBzdGF0
ZSwgdWludDMyX3QgdGltZSk7CisgICAgdWludDMyX3QgbW9kaWZpZXJzKCkgY29uc3Q7CiAKICAg
ICBzdHJ1Y3QgU2VhdERhdGEgewogICAgICAgICBzdHJ1Y3QgewpAQCAtNjUsNiArNjYsNyBAQCBw
cml2YXRlOgogICAgICAgICAgICAgc3RkOjpwYWlyPGludCwgaW50PiBjb29yZHMgeyAwLCAwIH07
CiAgICAgICAgICAgICB1aW50MzJfdCBidXR0b24geyAwIH07CiAgICAgICAgICAgICB1aW50MzJf
dCBzdGF0ZSB7IDAgfTsKKyAgICAgICAgICAgIHVpbnQzMl90IG1vZGlmaWVycyB7IDAgfTsKICAg
ICAgICAgfSBwb2ludGVyOwogCiAgICAgICAgIHN0cnVjdCB7CkBAIC04Nyw3ICs4OSw3IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICAgICAgeGtiX21vZF9pbmRleF90IGFsdCB7IDAgfTsKICAgICAg
ICAgICAgICAgICB4a2JfbW9kX2luZGV4X3Qgc2hpZnQgeyAwIH07CiAgICAgICAgICAgICB9IGlu
ZGV4ZXM7Ci0gICAgICAgICAgICB1aW50OF90IG1vZGlmaWVycyB7IDAgfTsKKyAgICAgICAgICAg
IHVpbnQzMl90IG1vZGlmaWVycyB7IDAgfTsKICAgICAgICAgICAgIHN0cnVjdCB4a2JfY29tcG9z
ZV90YWJsZSogY29tcG9zZVRhYmxlIHsgbnVsbHB0ciB9OwogICAgICAgICAgICAgc3RydWN0IHhr
Yl9jb21wb3NlX3N0YXRlKiBjb21wb3NlU3RhdGUgeyBudWxscHRyIH07CiAgICAgICAgIH0geGti
Owo=
</data>
<flag name="review"
          id="364326"
          type_id="1"
          status="+"
          setter="zan"
    />
          </attachment>
      

    </bug>

</bugzilla>