<?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>207113</bug_id>
          
          <creation_ts>2020-02-03 05:53:48 -0800</creation_ts>
          <short_desc>[GTK] Mouse wheel events on horizontal scrollbar not correctly handled when AC mode is forced</short_desc>
          <delta_ts>2020-07-31 03:57:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aperez</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1613913</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-02-03 05:53:48 -0800</bug_when>
    <thetext>When scrolling with the mouse over an horizontal srollbar we invert the axis to scroll horizontally. When AC mode is forced this doesn&apos;t happen because async scrolling doesn&apos;t use EventHandler::handleWheelEvent() which is where the axis are inverted. I&apos;m not sure this is easy to fix, we should move the axis inversion to EventDispatcher.cpp, but that&apos;s happening in a secondary thread and we would need to perform a hit test to check if the mouse is over an horizontal scrollbar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625993</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-03-05 01:35:24 -0800</bug_when>
    <thetext>I&apos;ve checked other browsers and they don&apos;t invert the axis when scrolling on an horizontal scrollbar, so mayb it&apos;s easier to simply stop doing so in GTK port as well. You can still use SHIFT + wheel to scroll horizontally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626017</commentid>
    <comment_count>2</comment_count>
      <attachid>392555</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-03-05 04:15:54 -0800</bug_when>
    <thetext>Created attachment 392555
Patch

Horizontal scrolling with mouse wheel is still broken with async scrolling, but because it doesn&apos;t seem to be handling those events correctly (it doesn&apos;t work when using Shift + wheel either), so I&apos;ll file another bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626018</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-03-05 04:16:56 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626026</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-03-05 05:05:23 -0800</bug_when>
    <thetext>Ok, it works with async scrolling, but only in the main frame (due to bug #208635) and the right/left direction is swapped (that&apos;s another bug)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626035</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-03-05 06:07:10 -0800</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #4)
&gt; Ok, it works with async scrolling, but only in the main frame (due to bug
&gt; #208635) and the right/left direction is swapped (that&apos;s another bug)

See bug #208638</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676348</commentid>
    <comment_count>6</comment_count>
      <attachid>405562</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-07-30 04:16:45 -0700</bug_when>
    <thetext>Created attachment 405562
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676372</commentid>
    <comment_count>7</comment_count>
      <attachid>405562</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-07-30 07:35:54 -0700</bug_when>
    <thetext>Comment on attachment 405562
Patch

Really nice patch, I like it that it actually simplifies the code :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676788</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-07-31 03:57:26 -0700</bug_when>
    <thetext>Committed r265138: &lt;https://trac.webkit.org/changeset/265138&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392555</attachid>
            <date>2020-03-05 04:15:54 -0800</date>
            <delta_ts>2020-07-30 04:16:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wkgtk-invert-scroll-direction.diff</filename>
            <type>text/plain</type>
            <size>26775</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmZmYzYjk2ZDAxZmIuLjkzNmFiYjgwMDk1OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE4IEBACisyMDIwLTAzLTA1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBNb3VzZSB3aGVlbCBldmVudHMgb24gaG9yaXpv
bnRhbCBzY3JvbGxiYXIgbm90IGNvcnJlY3RseSBoYW5kbGVkIHdoZW4gQUMgbW9kZSBpcyBmb3Jj
ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzEx
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92
ZSBHVEsgc3BlY2lmaWMgY29kZSB0byBpbnZlcnQgc2Nyb2xsIGRpcmVjdGlvbiBvZiB3aGVlbCBl
dmVudHMuCisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpzaG91bGRTd2FwU2Nyb2xsRGlyZWN0aW9uIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9Tb3VyY2VzR0xpYi50eHQ6CisgICAgICAgICogcGxhdGZvcm0v
Z2xpYi9FdmVudEhhbmRsZXJHTGliLmNwcDogUmVtb3ZlZC4KKwogMjAyMC0wMy0wNCAgWXVzdWtl
IFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFB1dCBhbGwgZ2VuZXJhdGVk
IEpTQ2VsbHMgaW4gV2ViQ29yZSBpbnRvIElzb1N1YnNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKaW5kZXggYWNjNTI3OTQ2NTlkLi40ODM0M2ZhZTUxYjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTI3MDMsMTUgKzI3MDMsNiBAQCBib29sIEV2ZW50
SGFuZGxlcjo6aXNJbnNpZGVTY3JvbGxiYXIoY29uc3QgSW50UG9pbnQmIHdpbmRvd1BvaW50KSBj
b25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotI2lmICFVU0UoR0xJQikKLQotYm9vbCBFdmVu
dEhhbmRsZXI6OnNob3VsZFN3YXBTY3JvbGxEaXJlY3Rpb24oY29uc3QgSGl0VGVzdFJlc3VsdCYs
IGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGZhbHNlOwot
fQotCi0jZW5kaWYKLQogI2lmICFQTEFURk9STShNQUMpCiAKIHZvaWQgRXZlbnRIYW5kbGVyOjpw
bGF0Zm9ybVByZXBhcmVGb3JXaGVlbEV2ZW50cyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBj
b25zdCBIaXRUZXN0UmVzdWx0JiwgUmVmUHRyPEVsZW1lbnQ+JiwgUmVmUHRyPENvbnRhaW5lck5v
ZGU+JiwgV2Vha1B0cjxTY3JvbGxhYmxlQXJlYT4mLCBib29sJikKQEAgLTI4NTIsMjAgKzI4NDMs
MTcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiBldmVudCkKICAgICAgICAgbV9mcmFtZS5wYWdlKCktPnJlc2V0TGF0Y2hpbmdT
dGF0ZSgpOwogI2VuZGlmCiAKLSAgICAvLyBGSVhNRTogSXQgc2hvdWxkIG5vdCBiZSBuZWNlc3Nh
cnkgdG8gZG8gdGhpcyBtdXRhdGlvbiBoZXJlLgotICAgIC8vIEluc3RlYWQsIHRoZSBoYW5kbGVy
cyBzaG91bGQga25vdyBjb252ZXJ0IHZlcnRpY2FsIHNjcm9sbHMgYXBwcm9wcmlhdGVseS4KLSAg
ICBQbGF0Zm9ybVdoZWVsRXZlbnQgYWRqdXN0ZWRFdmVudCA9IHNob3VsZFN3YXBTY3JvbGxEaXJl
Y3Rpb24ocmVzdWx0LCBldmVudCkgPyBldmVudC5jb3B5U3dhcHBpbmdEaXJlY3Rpb24oKSA6IGV2
ZW50OwotICAgIHBsYXRmb3JtUmVjb3JkV2hlZWxFdmVudChhZGp1c3RlZEV2ZW50KTsKKyAgICBw
bGF0Zm9ybVJlY29yZFdoZWVsRXZlbnQoZXZlbnQpOwogCiAgICAgaWYgKGVsZW1lbnQpIHsKICAg
ICAgICAgaWYgKGlzT3ZlcldpZGdldCkgewogICAgICAgICAgICAgaWYgKFdlYWtQdHI8V2lkZ2V0
PiB3aWRnZXQgPSB3aWRnZXRGb3JFbGVtZW50KCplbGVtZW50KSkgewogICAgICAgICAgICAgICAg
IGlmICh3aWRnZXREaWRIYW5kbGVXaGVlbEV2ZW50KGV2ZW50LCAqd2lkZ2V0LmdldCgpKSkKLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRlV2lkZ2V0V2hlZWxFdmVudChhZGp1c3Rl
ZEV2ZW50LCB3aWRnZXQsIHNjcm9sbGFibGVBcmVhLCBzY3JvbGxhYmxlQ29udGFpbmVyLmdldCgp
KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRlV2lkZ2V0V2hlZWxFdmVudChl
dmVudCwgd2lkZ2V0LCBzY3JvbGxhYmxlQXJlYSwgc2Nyb2xsYWJsZUNvbnRhaW5lci5nZXQoKSk7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoIWVsZW1lbnQtPmRpc3Bh
dGNoV2hlZWxFdmVudChhZGp1c3RlZEV2ZW50KSkgeworICAgICAgICBpZiAoIWVsZW1lbnQtPmRp
c3BhdGNoV2hlZWxFdmVudChldmVudCkpIHsKICAgICAgICAgICAgIG1faXNIYW5kbGluZ1doZWVs
RXZlbnQgPSBmYWxzZTsKICAgICAgICAgICAgIGlmIChzY3JvbGxhYmxlQXJlYSAmJiBzY3JvbGxh
YmxlQXJlYS0+c2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUoKSkgewogICAgICAgICAgICAg
ICAgIC8vIFdlYiBkZXZlbG9wZXIgaXMgY29udHJvbGxpbmcgc2Nyb2xsaW5nLCBzbyBkb24ndCBh
dHRlbXB0IHRvIGxhdGNoLgpAQCAtMjg3Myw3ICsyODYxLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6
OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCkKICAgICAg
ICAgICAgICAgICBzY3JvbGxhYmxlQXJlYS0+c2V0U2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3Rh
dGUoZmFsc2UpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBwbGF0Zm9ybU5vdGlmeUlm
RW5kR2VzdHVyZShhZGp1c3RlZEV2ZW50LCBzY3JvbGxhYmxlQXJlYSk7CisgICAgICAgICAgICBw
bGF0Zm9ybU5vdGlmeUlmRW5kR2VzdHVyZShldmVudCwgc2Nyb2xsYWJsZUFyZWEpOwogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CkBAIC0yODgxLDggKzI4NjksOCBA
QCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmIGV2ZW50KQogICAgIGlmIChzY3JvbGxhYmxlQXJlYSkKICAgICAgICAgc2Nyb2xsYWJs
ZUFyZWEtPnNldFNjcm9sbFNob3VsZENsZWFyTGF0Y2hlZFN0YXRlKGZhbHNlKTsKIAotICAgIGJv
b2wgaGFuZGxlZEV2ZW50ID0gcGxhdGZvcm1Db21wbGV0ZVdoZWVsRXZlbnQoYWRqdXN0ZWRFdmVu
dCwgc2Nyb2xsYWJsZUNvbnRhaW5lci5nZXQoKSwgc2Nyb2xsYWJsZUFyZWEpOwotICAgIHBsYXRm
b3JtTm90aWZ5SWZFbmRHZXN0dXJlKGFkanVzdGVkRXZlbnQsIHNjcm9sbGFibGVBcmVhKTsKKyAg
ICBib29sIGhhbmRsZWRFdmVudCA9IHBsYXRmb3JtQ29tcGxldGVXaGVlbEV2ZW50KGV2ZW50LCBz
Y3JvbGxhYmxlQ29udGFpbmVyLmdldCgpLCBzY3JvbGxhYmxlQXJlYSk7CisgICAgcGxhdGZvcm1O
b3RpZnlJZkVuZEdlc3R1cmUoZXZlbnQsIHNjcm9sbGFibGVBcmVhKTsKICAgICByZXR1cm4gaGFu
ZGxlZEV2ZW50OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Tb3Vy
Y2VzR0xpYi50eHQgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Tb3VyY2VzR0xpYi50eHQKaW5k
ZXggYjYyMjU5ZWJjYjQ3Li5lMjRkY2NhYzkxY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1NvdXJjZXNHTGliLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
b3VyY2VzR0xpYi50eHQKQEAgLTIzLDcgKzIzLDYgQEAKIAogcGxhdGZvcm0vYXVkaW8vZ2xpYi9B
dWRpb0J1c0dMaWIuY3BwCiAKLXBsYXRmb3JtL2dsaWIvRXZlbnRIYW5kbGVyR0xpYi5jcHAKIHBs
YXRmb3JtL2dsaWIvRmlsZU1vbml0b3JHTGliLmNwcAogcGxhdGZvcm0vZ2xpYi9LZXllZERlY29k
ZXJHbGliLmNwcAogcGxhdGZvcm0vZ2xpYi9LZXllZEVuY29kZXJHbGliLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FdmVudEhhbmRsZXJHTGliLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRXZlbnRIYW5kbGVyR0xpYi5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlM2Q2MGRhY2NhMy4uMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRXZlbnRIYW5kbGVyR0xpYi5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSw3NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2IFphY2sgUnVz
aW4gPHphY2tAa2RlLm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IElnYWxpYSBTLkwu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKLQotI2luY2x1ZGUgIkZvY3VzQ29u
dHJvbGxlci5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiRnJhbWVWaWV3LmgiCi0j
aW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgotI2luY2x1ZGUgIk1vdXNlRXZlbnRXaXRoSGl0VGVz
dFJlc3VsdHMuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgIlBhZ2Uu
aCIKLSNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKLSNpbmNsdWRlICJQbGF0Zm9y
bVdoZWVsRXZlbnQuaCIKLSNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKLQotI2lmIEVOQUJMRShE
UkFHX1NVUFBPUlQpCi0jaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgiCi0jZW5kaWYKLQotI2lmIFBM
QVRGT1JNKEdUSykKLSNpbmNsdWRlICJTY3JvbGxiYXIuaCIKLSNlbmRpZgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLS8vIEdUSysgbXVzdCBzY3JvbGwgaG9yaXpvbnRhbGx5IGlmIHRoZSBtb3Vz
ZSBwb2ludGVyIGlzIG9uIHRvcCBvZiB0aGUKLS8vIGhvcml6b250YWwgc2Nyb2xsYmFyIHdoaWxl
IHNjcm9sbGluZyB3aXRoIHRoZSB3aGVlbDsgd2UgbmVlZCB0bwotLy8gYWRkIHRoZSBkZWx0YXMg
YW5kIHRpY2tzIGhlcmUgc28gdGhhdCB0aGlzIGJlaGF2aW9yIGlzIGNvbnNpc3RlbnQKLS8vIGZv
ciBzdHlsZWQgc2Nyb2xsYmFycy4KLWJvb2wgRXZlbnRIYW5kbGVyOjpzaG91bGRTd2FwU2Nyb2xs
RGlyZWN0aW9uKGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JiBldmVudCkgY29uc3QKLXsKLSNpZiBQTEFURk9STShHVEspCi0gICAgRnJhbWVWaWV3
KiB2aWV3ID0gbV9mcmFtZS52aWV3KCk7Ci0gICAgU2Nyb2xsYmFyKiBzY3JvbGxiYXIgPSB2aWV3
ID8gdmlldy0+c2Nyb2xsYmFyQXRQb2ludChldmVudC5wb3NpdGlvbigpKSA6IG51bGxwdHI7Ci0g
ICAgaWYgKCFzY3JvbGxiYXIpCi0gICAgICAgIHNjcm9sbGJhciA9IHJlc3VsdC5zY3JvbGxiYXIo
KTsKLSAgICBpZiAoIXNjcm9sbGJhcikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgLy8g
VGhlIGRpcmVjdGlvbnMgYXJlIGFscmVhZHkgc3dhcHBlZCB3aGVuIHNoaWZ0IGtleSBpcyBwcmVz
c2VkLCBidXQgd2hlbiBzY3JvbGxpbmcKLSAgICAvLyBvdmVyIHNjcm9sbGJhcnMgd2UgYWx3YXlz
IHdhbnQgdG8gZm9sbG93IHRoZSBzY3JvbGxiYXIgZGlyZWN0aW9uLgotICAgIHJldHVybiBzY3Jv
bGxiYXItPm9yaWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbFNjcm9sbGJhciA/ICFldmVudC5zaGlm
dEtleSgpIDogZXZlbnQuc2hpZnRLZXkoKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHJlc3Vs
dCk7Ci0gICAgVU5VU0VEX1BBUkFNKGV2ZW50KTsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
IHJldHVybiBmYWxzZTsKLSNlbmRpZgotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE0Mzk0OGEyNDRhNi4u
NDNkMjNhY2ZiZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTAzLTA1ICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBN
b3VzZSB3aGVlbCBldmVudHMgb24gaG9yaXpvbnRhbCBzY3JvbGxiYXIgbm90IGNvcnJlY3RseSBo
YW5kbGVkIHdoZW4gQUMgbW9kZSBpcyBmb3JjZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzExMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIGRpcmVjdGlvbiBzd2FwIHRvIHRoZSBVSSBw
cm9jZXNzIGJlZm9yZSBwYXNzaW5nIHRoZSBldmVudCB0byB0aGUgd2ViCisgICAgICAgIHByb2Nl
c3MuIFdlYkhpdFRlc3RSZXN1bHREYXRhOjppc1Njcm9sbGJhciBpcyBub3cgYW4gZW51bSB3aXRo
IHZhbHVlcyBObywgVmVydHRpY2FsLCBIb3Jpem9udGFsLiBXaGVuIGEgd2hlZWwKKyAgICAgICAg
ZXZlbnQgaXMgcmVjZWl2ZWQgaW4gdGhlIHdpZGdldCB3ZSBjaGVjayB3aGV0aGVyIHdlIHNob3Vs
ZCBpbnZlcnQgdGhlIGRpcmVjdGlvbiBvciBub3QsIGFuZCBwYXNzIHRoYXQgdG8KKyAgICAgICAg
TmF0aXZlV2ViV2hlZWxFdmVudCBhbmQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2
ZW50KCkuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL2dsaWIvV2ViS2l0SGl0VGVzdFJlc3VsdC5j
cHA6CisgICAgICAgICh3ZWJraXRIaXRUZXN0UmVzdWx0Q3JlYXRlKToKKyAgICAgICAgKHdlYmtp
dEhpdFRlc3RSZXN1bHRDb21wYXJlKToKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZlV2ViV2hlZWxF
dmVudC5oOgorICAgICAgICAoV2ViS2l0OjpOYXRpdmVXZWJXaGVlbEV2ZW50OjpzaG91bGRJbnZl
cnREaXJlY3Rpb24gY29uc3QpOgorICAgICAgICAqIFNoYXJlZC9XZWJIaXRUZXN0UmVzdWx0RGF0
YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkhpdFRlc3RSZXN1bHREYXRhOjpXZWJIaXRUZXN0
UmVzdWx0RGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYkhpdFRlc3RSZXN1bHREYXRhOjplbmNv
ZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJIaXRUZXN0UmVzdWx0RGF0YTo6ZGVjb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvV2ViSGl0VGVzdFJlc3VsdERhdGEuaDoKKyAgICAgICAgKiBT
aGFyZWQvZ3RrL05hdGl2ZVdlYldoZWVsRXZlbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
YXRpdmVXZWJXaGVlbEV2ZW50OjpOYXRpdmVXZWJXaGVlbEV2ZW50KToKKyAgICAgICAgKiBTaGFy
ZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFj
dG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudCk6CisgICAgICAgICogU2hhcmVkL2d0ay9XZWJFdmVu
dEZhY3RvcnkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUhpdFRlc3RSZXN1bHQuaDoK
KyAgICAgICAgKEFQSTo6SGl0VGVzdFJlc3VsdDo6aXNTY3JvbGxiYXIgY29uc3QpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAgICAgKHdlYmtp
dFdlYlZpZXdNb3VzZVRhcmdldENoYW5nZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYlZpZXdCYXNlLmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlSGFuZGxl
V2hlZWxFdmVudCk6CisgICAgICAgICh3ZWJraXRXZWJWaWV3QmFzZVNldE1vdXNlSXNPdmVyU2Ny
b2xsYmFyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVBy
aXZhdGUuaDoKKwogMjAyMC0wMy0wNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjU3NjY3KTogW1VOSVhdIFRlc3RzIGh0
dHAvdGVzdHMvaW5jcmVtZW50YWwvc3BsaXQtaGV4LWVudGl0aWVzLnBsIGFuZCBodHRwL3Rlc3Rz
L21pc2MvbGFyZ2UtanMtcHJvZ3JhbS5waHAgYXJlIGNyYXNoaW5nCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRIaXRUZXN0UmVzdWx0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FQSS9nbGliL1dlYktpdEhpdFRlc3RSZXN1bHQuY3BwCmluZGV4IDNm
OGE2YmNkNTE5MS4uYjYzMDIxOGMwZjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BUEkvZ2xpYi9XZWJLaXRIaXRUZXN0UmVzdWx0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BUEkvZ2xpYi9XZWJLaXRIaXRUZXN0UmVzdWx0LmNwcApAQCAtMjM4LDcgKzIzOCw3IEBA
IFdlYktpdEhpdFRlc3RSZXN1bHQqIHdlYmtpdEhpdFRlc3RSZXN1bHRDcmVhdGUoY29uc3QgV2Vi
SGl0VGVzdFJlc3VsdERhdGEmIGhpdFRlCiAgICAgaWYgKGhpdFRlc3RSZXN1bHQuaXNDb250ZW50
RWRpdGFibGUpCiAgICAgICAgIGNvbnRleHQgfD0gV0VCS0lUX0hJVF9URVNUX1JFU1VMVF9DT05U
RVhUX0VESVRBQkxFOwogCi0gICAgaWYgKGhpdFRlc3RSZXN1bHQuaXNTY3JvbGxiYXIpCisgICAg
aWYgKGhpdFRlc3RSZXN1bHQuaXNTY3JvbGxiYXIgIT0gV2ViSGl0VGVzdFJlc3VsdERhdGE6Oklz
U2Nyb2xsYmFyOjpObykKICAgICAgICAgY29udGV4dCB8PSBXRUJLSVRfSElUX1RFU1RfUkVTVUxU
X0NPTlRFWFRfU0NST0xMQkFSOwogCiAgICAgaWYgKGhpdFRlc3RSZXN1bHQuaXNTZWxlY3RlZCkK
QEAgLTI2Miw4ICsyNjIsOSBAQCBzdGF0aWMgYm9vbCBzdHJpbmdJc0VxdWFsVG9DU3RyaW5nKGNv
bnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBDU3RyaW5nJiBjU3RyaW5nKQogYm9vbCB3ZWJraXRI
aXRUZXN0UmVzdWx0Q29tcGFyZShXZWJLaXRIaXRUZXN0UmVzdWx0KiBoaXRUZXN0UmVzdWx0LCBj
b25zdCBXZWJIaXRUZXN0UmVzdWx0RGF0YSYgd2ViSGl0VGVzdFJlc3VsdCkKIHsKICAgICBXZWJL
aXRIaXRUZXN0UmVzdWx0UHJpdmF0ZSogcHJpdiA9IGhpdFRlc3RSZXN1bHQtPnByaXY7CisgICAg
Ym9vbCBpc1Njcm9sbGJhciA9IHdlYkhpdFRlc3RSZXN1bHQuaXNTY3JvbGxiYXIgIT0gV2ViSGl0
VGVzdFJlc3VsdERhdGE6OklzU2Nyb2xsYmFyOjpObzsKICAgICByZXR1cm4gd2ViSGl0VGVzdFJl
c3VsdC5pc0NvbnRlbnRFZGl0YWJsZSA9PSB3ZWJraXRfaGl0X3Rlc3RfcmVzdWx0X2NvbnRleHRf
aXNfZWRpdGFibGUoaGl0VGVzdFJlc3VsdCkKLSAgICAgICAgJiYgd2ViSGl0VGVzdFJlc3VsdC5p
c1Njcm9sbGJhciA9PSB3ZWJraXRfaGl0X3Rlc3RfcmVzdWx0X2NvbnRleHRfaXNfc2Nyb2xsYmFy
KGhpdFRlc3RSZXN1bHQpCisgICAgICAgICYmIGlzU2Nyb2xsYmFyID09IHdlYmtpdF9oaXRfdGVz
dF9yZXN1bHRfY29udGV4dF9pc19zY3JvbGxiYXIoaGl0VGVzdFJlc3VsdCkKICAgICAgICAgJiYg
d2ViSGl0VGVzdFJlc3VsdC5pc1NlbGVjdGVkID09IHdlYmtpdF9oaXRfdGVzdF9yZXN1bHRfY29u
dGV4dF9pc19zZWxlY3Rpb24oaGl0VGVzdFJlc3VsdCkKICAgICAgICAgJiYgc3RyaW5nSXNFcXVh
bFRvQ1N0cmluZyh3ZWJIaXRUZXN0UmVzdWx0LmFic29sdXRlTGlua1VSTCwgcHJpdi0+bGlua1VS
SSkKICAgICAgICAgJiYgc3RyaW5nSXNFcXVhbFRvQ1N0cmluZyh3ZWJIaXRUZXN0UmVzdWx0Lmxp
bmtUaXRsZSwgcHJpdi0+bGlua1RpdGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZlV2Vi
V2hlZWxFdmVudC5oCmluZGV4IDE0OGQ3MDkwMDljMy4uOTY3NTRmNjYwNzM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oCkBAIC01NCw4ICs1NCw4IEBAIHB1
YmxpYzoKICAgICBOYXRpdmVXZWJXaGVlbEV2ZW50KE5TRXZlbnQgKiwgTlNWaWV3ICopOwogI2Vs
aWYgUExBVEZPUk0oR1RLKQogICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQoY29uc3QgTmF0aXZlV2Vi
V2hlZWxFdmVudCYpOwotICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQoR2RrRXZlbnQqKTsKLSAgICBO
YXRpdmVXZWJXaGVlbEV2ZW50KEdka0V2ZW50KiwgV2ViV2hlZWxFdmVudDo6UGhhc2UsIFdlYldo
ZWVsRXZlbnQ6OlBoYXNlIG1vbWVudHVtUGhhc2UpOworICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQo
R2RrRXZlbnQqLCBib29sIHNob3VsZEludmVydERpcmVjdGlvbik7CisgICAgTmF0aXZlV2ViV2hl
ZWxFdmVudChHZGtFdmVudCosIGJvb2wgc2hvdWxkSW52ZXJ0RGlyZWN0aW9uLCBXZWJXaGVlbEV2
ZW50OjpQaGFzZSwgV2ViV2hlZWxFdmVudDo6UGhhc2UgbW9tZW50dW1QaGFzZSk7CiAjZWxpZiBV
U0UoTElCV1BFKQogICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9heGlz
X2V2ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOwogI2VsaWYgUExBVEZPUk0oV0lOKQpA
QCAtNjYsNiArNjYsNyBAQCBwdWJsaWM6CiAgICAgTlNFdmVudCogbmF0aXZlRXZlbnQoKSBjb25z
dCB7IHJldHVybiBtX25hdGl2ZUV2ZW50LmdldCgpOyB9CiAjZWxpZiBQTEFURk9STShHVEspCiAg
ICAgR2RrRXZlbnQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVFdmVudC5n
ZXQoKTsgfQorICAgIGJvb2wgc2hvdWxkSW52ZXJ0RGlyZWN0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9zaG91bGRJbnZlcnREaXJlY3Rpb247IH0KICNlbGlmIFBMQVRGT1JNKFdJTikKICAgICBjb25z
dCBNU0cqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gJm1fbmF0aXZlRXZlbnQ7IH0KICNl
bHNlCkBAIC03Nyw2ICs3OCw3IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPE5TRXZlbnQ+IG1f
bmF0aXZlRXZlbnQ7CiAjZWxpZiBQTEFURk9STShHVEspCiAgICAgR1VuaXF1ZVB0cjxHZGtFdmVu
dD4gbV9uYXRpdmVFdmVudDsKKyAgICBib29sIG1fc2hvdWxkSW52ZXJ0RGlyZWN0aW9uIHsgZmFs
c2UgfTsKICNlbGlmIFBMQVRGT1JNKFdJTikKICAgICBNU0cgbV9uYXRpdmVFdmVudDsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViSGl0VGVzdFJlc3VsdERhdGEu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViSGl0VGVzdFJlc3VsdERhdGEuY3BwCmluZGV4
IGE4MDU0MmI4MjFiMC4uMDg1MDgzMzUwZTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJIaXRUZXN0UmVzdWx0RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViSGl0VGVzdFJlc3VsdERhdGEuY3BwCkBAIC00OCw3ICs0OCw3IEBAIFdlYkhpdFRlc3RSZXN1
bHREYXRhOjpXZWJIaXRUZXN0UmVzdWx0RGF0YShjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0
JiBoaXRUZXN0CiAgICAgLCBsaW5rU3VnZ2VzdGVkRmlsZW5hbWUoaGl0VGVzdFJlc3VsdC5saW5r
U3VnZ2VzdGVkRmlsZW5hbWUoKSkKICAgICAsIGlzQ29udGVudEVkaXRhYmxlKGhpdFRlc3RSZXN1
bHQuaXNDb250ZW50RWRpdGFibGUoKSkKICAgICAsIGVsZW1lbnRCb3VuZGluZ0JveChlbGVtZW50
Qm91bmRpbmdCb3hJbldpbmRvd0Nvb3JkaW5hdGVzKGhpdFRlc3RSZXN1bHQpKQotICAgICwgaXNT
Y3JvbGxiYXIoaGl0VGVzdFJlc3VsdC5zY3JvbGxiYXIoKSkKKyAgICAsIGlzU2Nyb2xsYmFyKElz
U2Nyb2xsYmFyOjpObykKICAgICAsIGlzU2VsZWN0ZWQoaGl0VGVzdFJlc3VsdC5pc1NlbGVjdGVk
KCkpCiAgICAgLCBpc1RleHROb2RlKGhpdFRlc3RSZXN1bHQuaW5uZXJOb2RlKCkgJiYgaGl0VGVz
dFJlc3VsdC5pbm5lck5vZGUoKS0+aXNUZXh0Tm9kZSgpKQogICAgICwgaXNPdmVyVGV4dEluc2lk
ZUZvcm1Db250cm9sRWxlbWVudChoaXRUZXN0UmVzdWx0LmlzT3ZlclRleHRJbnNpZGVGb3JtQ29u
dHJvbEVsZW1lbnQoKSkKQEAgLTU2LDYgKzU2LDggQEAgV2ViSGl0VGVzdFJlc3VsdERhdGE6Oldl
YkhpdFRlc3RSZXN1bHREYXRhKGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmIGhpdFRlc3QK
ICAgICAsIHRvb2xUaXBUZXh0KHRvb2xUaXBUZXh0KQogICAgICwgaW1hZ2VTaXplKDApCiB7Cisg
ICAgaWYgKGF1dG8qIHNjcm9sbGJhciA9IGhpdFRlc3RSZXN1bHQuc2Nyb2xsYmFyKCkpCisgICAg
ICAgIGlzU2Nyb2xsYmFyID0gc2Nyb2xsYmFyLT5vcmllbnRhdGlvbigpID09IEhvcml6b250YWxT
Y3JvbGxiYXIgPyBJc1Njcm9sbGJhcjo6SG9yaXpvbnRhbCA6IElzU2Nyb2xsYmFyOjpWZXJ0aWNh
bDsKIH0KIAogV2ViSGl0VGVzdFJlc3VsdERhdGE6OldlYkhpdFRlc3RSZXN1bHREYXRhKGNvbnN0
IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmIGhpdFRlc3RSZXN1bHQsIGJvb2wgaW5jbHVkZUltYWdl
KQpAQCAtNjgsMTMgKzcwLDE2IEBAIFdlYkhpdFRlc3RSZXN1bHREYXRhOjpXZWJIaXRUZXN0UmVz
dWx0RGF0YShjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0JiBoaXRUZXN0CiAgICAgLCBsaW5r
U3VnZ2VzdGVkRmlsZW5hbWUoaGl0VGVzdFJlc3VsdC5saW5rU3VnZ2VzdGVkRmlsZW5hbWUoKSkK
ICAgICAsIGlzQ29udGVudEVkaXRhYmxlKGhpdFRlc3RSZXN1bHQuaXNDb250ZW50RWRpdGFibGUo
KSkKICAgICAsIGVsZW1lbnRCb3VuZGluZ0JveChlbGVtZW50Qm91bmRpbmdCb3hJbldpbmRvd0Nv
b3JkaW5hdGVzKGhpdFRlc3RSZXN1bHQpKQotICAgICwgaXNTY3JvbGxiYXIoaGl0VGVzdFJlc3Vs
dC5zY3JvbGxiYXIoKSkKKyAgICAsIGlzU2Nyb2xsYmFyKElzU2Nyb2xsYmFyOjpObykKICAgICAs
IGlzU2VsZWN0ZWQoaGl0VGVzdFJlc3VsdC5pc1NlbGVjdGVkKCkpCiAgICAgLCBpc1RleHROb2Rl
KGhpdFRlc3RSZXN1bHQuaW5uZXJOb2RlKCkgJiYgaGl0VGVzdFJlc3VsdC5pbm5lck5vZGUoKS0+
aXNUZXh0Tm9kZSgpKQogICAgICwgaXNPdmVyVGV4dEluc2lkZUZvcm1Db250cm9sRWxlbWVudCho
aXRUZXN0UmVzdWx0LmlzT3ZlclRleHRJbnNpZGVGb3JtQ29udHJvbEVsZW1lbnQoKSkKICAgICAs
IGlzRG93bmxvYWRhYmxlTWVkaWEoaGl0VGVzdFJlc3VsdC5pc0Rvd25sb2FkYWJsZU1lZGlhKCkp
CiAgICAgLCBpbWFnZVNpemUoMCkKIHsKKyAgICBpZiAoYXV0byogc2Nyb2xsYmFyID0gaGl0VGVz
dFJlc3VsdC5zY3JvbGxiYXIoKSkKKyAgICAgICAgaXNTY3JvbGxiYXIgPSBzY3JvbGxiYXItPm9y
aWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbFNjcm9sbGJhciA/IElzU2Nyb2xsYmFyOjpIb3Jpem9u
dGFsIDogSXNTY3JvbGxiYXI6OlZlcnRpY2FsOworCiAgICAgaWYgKCFpbmNsdWRlSW1hZ2UpCiAg
ICAgICAgIHJldHVybjsKIApAQCAtMTAzLDcgKzEwOCw3IEBAIHZvaWQgV2ViSGl0VGVzdFJlc3Vs
dERhdGE6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8
PCBsaW5rU3VnZ2VzdGVkRmlsZW5hbWU7CiAgICAgZW5jb2RlciA8PCBpc0NvbnRlbnRFZGl0YWJs
ZTsKICAgICBlbmNvZGVyIDw8IGVsZW1lbnRCb3VuZGluZ0JveDsKLSAgICBlbmNvZGVyIDw8IGlz
U2Nyb2xsYmFyOworICAgIGVuY29kZXIuZW5jb2RlRW51bShpc1Njcm9sbGJhcik7CiAgICAgZW5j
b2RlciA8PCBpc1NlbGVjdGVkOwogICAgIGVuY29kZXIgPDwgaXNUZXh0Tm9kZTsKICAgICBlbmNv
ZGVyIDw8IGlzT3ZlclRleHRJbnNpZGVGb3JtQ29udHJvbEVsZW1lbnQ7CkBAIC0xMzcsNyArMTQy
LDcgQEAgYm9vbCBXZWJIaXRUZXN0UmVzdWx0RGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVj
b2RlciwgV2ViSGl0VGVzdFJlc3VsdERhdGEmIGgKICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2Rl
KGhpdFRlc3RSZXN1bHREYXRhLmxpbmtTdWdnZXN0ZWRGaWxlbmFtZSkKICAgICAgICAgfHwgIWRl
Y29kZXIuZGVjb2RlKGhpdFRlc3RSZXN1bHREYXRhLmlzQ29udGVudEVkaXRhYmxlKQogICAgICAg
ICB8fCAhZGVjb2Rlci5kZWNvZGUoaGl0VGVzdFJlc3VsdERhdGEuZWxlbWVudEJvdW5kaW5nQm94
KQotICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUoaGl0VGVzdFJlc3VsdERhdGEuaXNTY3JvbGxi
YXIpCisgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZUVudW0oaGl0VGVzdFJlc3VsdERhdGEuaXNT
Y3JvbGxiYXIpCiAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShoaXRUZXN0UmVzdWx0RGF0YS5p
c1NlbGVjdGVkKQogICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUoaGl0VGVzdFJlc3VsdERhdGEu
aXNUZXh0Tm9kZSkKICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKGhpdFRlc3RSZXN1bHREYXRh
LmlzT3ZlclRleHRJbnNpZGVGb3JtQ29udHJvbEVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0RGF0YS5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViSGl0VGVzdFJlc3VsdERhdGEuaAppbmRleCAwYzFlZjQxMzhmNTMuLjY2ZmY5ZTVlYTU4
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViSGl0VGVzdFJlc3VsdERhdGEu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0RGF0YS5oCkBAIC01
Myw3ICs1Myw4IEBAIHN0cnVjdCBXZWJIaXRUZXN0UmVzdWx0RGF0YSB7CiAgICAgU3RyaW5nIGxp
bmtTdWdnZXN0ZWRGaWxlbmFtZTsKICAgICBib29sIGlzQ29udGVudEVkaXRhYmxlOwogICAgIFdl
YkNvcmU6OkludFJlY3QgZWxlbWVudEJvdW5kaW5nQm94OwotICAgIGJvb2wgaXNTY3JvbGxiYXI7
CisgICAgZW51bSBjbGFzcyBJc1Njcm9sbGJhciB7IE5vLCBWZXJ0aWNhbCwgSG9yaXpvbnRhbCB9
OworICAgIElzU2Nyb2xsYmFyIGlzU2Nyb2xsYmFyOwogICAgIGJvb2wgaXNTZWxlY3RlZDsKICAg
ICBib29sIGlzVGV4dE5vZGU7CiAgICAgYm9vbCBpc092ZXJUZXh0SW5zaWRlRm9ybUNvbnRyb2xF
bGVtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL05hdGl2ZVdlYldo
ZWVsRXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL05hdGl2ZVdlYldoZWVs
RXZlbnRHdGsuY3BwCmluZGV4IDVjYWYzZDIzYWIxNi4uZmNhYWNkNGZjY2YwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvTmF0aXZlV2ViV2hlZWxFdmVudEd0ay5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL05hdGl2ZVdlYldoZWVsRXZlbnRHdGsuY3BwCkBA
IC0zMSwyMSArMzEsMjQgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLU5hdGl2ZVdlYldoZWVs
RXZlbnQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQoR2RrRXZlbnQqIGV2ZW50KQotICAgIDogV2ViV2hl
ZWxFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoZXZlbnQpKQorTmF0
aXZlV2ViV2hlZWxFdmVudDo6TmF0aXZlV2ViV2hlZWxFdmVudChHZGtFdmVudCogZXZlbnQsIGJv
b2wgc2hvdWxkSW52ZXJ0RGlyZWN0aW9uKQorICAgIDogV2ViV2hlZWxFdmVudChXZWJFdmVudEZh
Y3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoZXZlbnQsIHNob3VsZEludmVydERpcmVjdGlvbikp
CiAgICAgLCBtX25hdGl2ZUV2ZW50KGdka19ldmVudF9jb3B5KGV2ZW50KSkKKyAgICAsIG1fc2hv
dWxkSW52ZXJ0RGlyZWN0aW9uKHNob3VsZEludmVydERpcmVjdGlvbikKIHsKIH0KIAotTmF0aXZl
V2ViV2hlZWxFdmVudDo6TmF0aXZlV2ViV2hlZWxFdmVudChHZGtFdmVudCogZXZlbnQsIFdlYldo
ZWVsRXZlbnQ6OlBoYXNlIHBoYXNlLCBXZWJXaGVlbEV2ZW50OjpQaGFzZSBtb21lbnR1bVBoYXNl
KQotICAgIDogV2ViV2hlZWxFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZl
bnQoZXZlbnQsIHBoYXNlLCBtb21lbnR1bVBoYXNlKSkKK05hdGl2ZVdlYldoZWVsRXZlbnQ6Ok5h
dGl2ZVdlYldoZWVsRXZlbnQoR2RrRXZlbnQqIGV2ZW50LCBib29sIHNob3VsZEludmVydERpcmVj
dGlvbiwgV2ViV2hlZWxFdmVudDo6UGhhc2UgcGhhc2UsIFdlYldoZWVsRXZlbnQ6OlBoYXNlIG1v
bWVudHVtUGhhc2UpCisgICAgOiBXZWJXaGVlbEV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRl
V2ViV2hlZWxFdmVudChldmVudCwgc2hvdWxkSW52ZXJ0RGlyZWN0aW9uLCBwaGFzZSwgbW9tZW50
dW1QaGFzZSkpCiAgICAgLCBtX25hdGl2ZUV2ZW50KGdka19ldmVudF9jb3B5KGV2ZW50KSkKKyAg
ICAsIG1fc2hvdWxkSW52ZXJ0RGlyZWN0aW9uKHNob3VsZEludmVydERpcmVjdGlvbikKIHsKIH0K
IAogTmF0aXZlV2ViV2hlZWxFdmVudDo6TmF0aXZlV2ViV2hlZWxFdmVudChjb25zdCBOYXRpdmVX
ZWJXaGVlbEV2ZW50JiBldmVudCkKLSAgICA6IFdlYldoZWVsRXZlbnQoV2ViRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJXaGVlbEV2ZW50KGV2ZW50Lm5hdGl2ZUV2ZW50KCksIGV2ZW50LnBoYXNlKCks
IGV2ZW50Lm1vbWVudHVtUGhhc2UoKSkpCisgICAgOiBXZWJXaGVlbEV2ZW50KFdlYkV2ZW50RmFj
dG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChldmVudC5uYXRpdmVFdmVudCgpLCBldmVudC5zaG91
bGRJbnZlcnREaXJlY3Rpb24oKSwgZXZlbnQucGhhc2UoKSwgZXZlbnQubW9tZW50dW1QaGFzZSgp
KSkKICAgICAsIG1fbmF0aXZlRXZlbnQoZ2RrX2V2ZW50X2NvcHkoZXZlbnQubmF0aXZlRXZlbnQo
KSkpCisgICAgLCBtX3Nob3VsZEludmVydERpcmVjdGlvbihldmVudC5zaG91bGRJbnZlcnREaXJl
Y3Rpb24oKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dl
YkV2ZW50RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvV2ViRXZlbnRGYWN0
b3J5LmNwcAppbmRleCBhNTIwYWYwYzdjMGYuLmE1YWE4ZmRhMTI2ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAKQEAgLTE5MCwxNSArMTkwLDE1IEBA
IFdlYk1vdXNlRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KGNvbnN0
IEdka0V2ZW50KiBldmVudCwgaW50IGN1CiAgICAgICAgIHdhbGxUaW1lRm9yRXZlbnQoZXZlbnQp
KTsKIH0KIAotV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZl
bnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50KQorV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6
OmNyZWF0ZVdlYldoZWVsRXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50LCBib29sIHNob3VsZElu
dmVydERpcmVjdGlvbikKIHsKICAgICBXZWJXaGVlbEV2ZW50OjpQaGFzZSBwaGFzZSA9IGdka19l
dmVudF9pc19zY3JvbGxfc3RvcF9ldmVudChldmVudCkgPwogICAgICAgICBXZWJXaGVlbEV2ZW50
OjpQaGFzZTo6UGhhc2VFbmRlZCA6CiAgICAgICAgIFdlYldoZWVsRXZlbnQ6OlBoYXNlOjpQaGFz
ZUNoYW5nZWQ7Ci0gICAgcmV0dXJuIGNyZWF0ZVdlYldoZWVsRXZlbnQoZXZlbnQsIHBoYXNlLCBX
ZWJXaGVlbEV2ZW50OjpQaGFzZTo6UGhhc2VOb25lKTsKKyAgICByZXR1cm4gY3JlYXRlV2ViV2hl
ZWxFdmVudChldmVudCwgc2hvdWxkSW52ZXJ0RGlyZWN0aW9uLCBwaGFzZSwgV2ViV2hlZWxFdmVu
dDo6UGhhc2U6OlBoYXNlTm9uZSk7CiB9CiAKLVdlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJXaGVlbEV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCwgV2ViV2hlZWxFdmVu
dDo6UGhhc2UgcGhhc2UsIFdlYldoZWVsRXZlbnQ6OlBoYXNlIG1vbWVudHVtUGhhc2UpCitXZWJX
aGVlbEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChjb25zdCBHZGtF
dmVudCogZXZlbnQsIGJvb2wgc2hvdWxkSW52ZXJ0RGlyZWN0aW9uLCBXZWJXaGVlbEV2ZW50OjpQ
aGFzZSBwaGFzZSwgV2ViV2hlZWxFdmVudDo6UGhhc2UgbW9tZW50dW1QaGFzZSkKIHsKICAgICBG
bG9hdFNpemUgd2hlZWxUaWNrcyA9IEZsb2F0U2l6ZSgwLCAwKTsKICAgICBkb3VibGUgeCwgeTsK
QEAgLTIxMSwyMiArMjExLDIyIEBAIFdlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVh
dGVXZWJXaGVlbEV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCwgV2ViV2hlCiAgICAgICAgIGRp
cmVjdGlvbiA9IEdES19TQ1JPTExfU01PT1RIOwogICAgICAgICBkb3VibGUgZGVsdGFYLCBkZWx0
YVk7CiAgICAgICAgIGlmIChnZGtfZXZlbnRfZ2V0X3Njcm9sbF9kZWx0YXMoZXZlbnQsICZkZWx0
YVgsICZkZWx0YVkpKQotICAgICAgICAgICAgd2hlZWxUaWNrcyA9IEZsb2F0U2l6ZSgtZGVsdGFY
LCAtZGVsdGFZKTsKKyAgICAgICAgICAgIHdoZWVsVGlja3MgPSBzaG91bGRJbnZlcnREaXJlY3Rp
b24gPyBGbG9hdFNpemUoLWRlbHRhWSwgLWRlbHRhWCkgOiBGbG9hdFNpemUoLWRlbHRhWCwgLWRl
bHRhWSk7CiAgICAgfQogCiAgICAgaWYgKHdoZWVsVGlja3MuaXNaZXJvKCkpIHsKICAgICAgICAg
c3dpdGNoIChkaXJlY3Rpb24pIHsKICAgICAgICAgY2FzZSBHREtfU0NST0xMX1VQOgotICAgICAg
ICAgICAgd2hlZWxUaWNrcyA9IEZsb2F0U2l6ZSgwLCAxKTsKKyAgICAgICAgICAgIHdoZWVsVGlj
a3MgPSBzaG91bGRJbnZlcnREaXJlY3Rpb24gPyBGbG9hdFNpemUoMSwgMCkgOiBGbG9hdFNpemUo
MCwgMSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHREtfU0NST0xMX0RPV046
Ci0gICAgICAgICAgICB3aGVlbFRpY2tzID0gRmxvYXRTaXplKDAsIC0xKTsKKyAgICAgICAgICAg
IHdoZWVsVGlja3MgPSBzaG91bGRJbnZlcnREaXJlY3Rpb24gPyBGbG9hdFNpemUoLTEsIDApIDog
RmxvYXRTaXplKDAsIC0xKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdES19T
Q1JPTExfTEVGVDoKLSAgICAgICAgICAgIHdoZWVsVGlja3MgPSBGbG9hdFNpemUoMSwgMCk7Cisg
ICAgICAgICAgICB3aGVlbFRpY2tzID0gc2hvdWxkSW52ZXJ0RGlyZWN0aW9uID8gIEZsb2F0U2l6
ZSgwLCAxKSA6IEZsb2F0U2l6ZSgxLCAwKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIEdES19TQ1JPTExfUklHSFQ6Ci0gICAgICAgICAgICB3aGVlbFRpY2tzID0gRmxvYXRTaXpl
KC0xLCAwKTsKKyAgICAgICAgICAgIHdoZWVsVGlja3MgPSBzaG91bGRJbnZlcnREaXJlY3Rpb24g
PyBGbG9hdFNpemUoMCwgLTEpIDogRmxvYXRTaXplKC0xLCAwKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIEdES19TQ1JPTExfU01PT1RIOgogICAgICAgICAgICAgYnJlYWs7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmgKaW5kZXggNDI3MThlMjU4
MDVhLi4yMWE2NjZiMzE1NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9X
ZWJFdmVudEZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvV2ViRXZlbnRG
YWN0b3J5LmgKQEAgLTM1LDggKzM1LDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJF
dmVudEZhY3RvcnkgewogcHVibGljOgogICAgIHN0YXRpYyBXZWJNb3VzZUV2ZW50IGNyZWF0ZVdl
Yk1vdXNlRXZlbnQoY29uc3QgR2RrRXZlbnQqLCBpbnQsIE9wdGlvbmFsPFdlYkNvcmU6OkludFBv
aW50Pik7Ci0gICAgc3RhdGljIFdlYldoZWVsRXZlbnQgY3JlYXRlV2ViV2hlZWxFdmVudChjb25z
dCBHZGtFdmVudCopOwotICAgIHN0YXRpYyBXZWJXaGVlbEV2ZW50IGNyZWF0ZVdlYldoZWVsRXZl
bnQoY29uc3QgR2RrRXZlbnQqLCBXZWJXaGVlbEV2ZW50OjpQaGFzZSwgV2ViV2hlZWxFdmVudDo6
UGhhc2UgbW9tZW50dW1QaGFzZSk7CisgICAgc3RhdGljIFdlYldoZWVsRXZlbnQgY3JlYXRlV2Vi
V2hlZWxFdmVudChjb25zdCBHZGtFdmVudCosIGJvb2wgc2hvdWxkSW52ZXJ0RGlyZWN0aW9uKTsK
KyAgICBzdGF0aWMgV2ViV2hlZWxFdmVudCBjcmVhdGVXZWJXaGVlbEV2ZW50KGNvbnN0IEdka0V2
ZW50KiwgYm9vbCBzaG91bGRJbnZlcnREaXJlY3Rpb24sIFdlYldoZWVsRXZlbnQ6OlBoYXNlLCBX
ZWJXaGVlbEV2ZW50OjpQaGFzZSBtb21lbnR1bVBoYXNlKTsKICAgICBzdGF0aWMgV2ViS2V5Ym9h
cmRFdmVudCBjcmVhdGVXZWJLZXlib2FyZEV2ZW50KGNvbnN0IEdka0V2ZW50KiwgY29uc3QgU3Ry
aW5nJiwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6
OkNvbXBvc2l0aW9uVW5kZXJsaW5lPj4mJiwgT3B0aW9uYWw8RWRpdGluZ1JhbmdlPiYmLCBWZWN0
b3I8U3RyaW5nPiYmIGNvbW1hbmRzKTsKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHN0
YXRpYyBXZWJUb3VjaEV2ZW50IGNyZWF0ZVdlYlRvdWNoRXZlbnQoY29uc3QgR2RrRXZlbnQqLCBW
ZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElIaXRUZXN0UmVzdWx0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJSGl0VGVzdFJlc3VsdC5oCmluZGV4IDMwNjIyYjQ4NjY0Ny4uN2RlNzM4OWVi
YWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSGl0VGVzdFJl
c3VsdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIaXRUZXN0UmVzdWx0
LmgKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogCiAgICAgV2ViQ29yZTo6SW50UmVjdCBlbGVt
ZW50Qm91bmRpbmdCb3goKSBjb25zdCB7IHJldHVybiBtX2RhdGEuZWxlbWVudEJvdW5kaW5nQm94
OyB9CiAKLSAgICBib29sIGlzU2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmlzU2Ny
b2xsYmFyOyB9CisgICAgYm9vbCBpc1Njcm9sbGJhcigpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5p
c1Njcm9sbGJhciAhPSBXZWJLaXQ6OldlYkhpdFRlc3RSZXN1bHREYXRhOjpJc1Njcm9sbGJhcjo6
Tm87IH0KIAogICAgIGJvb2wgaXNTZWxlY3RlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5pc1Nl
bGVjdGVkOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0V2ViVmlldy5jcHAKaW5kZXggYTRhYTdjOWQ3NTM0Li5jNjFhMzVmM2ZhMGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCkBA
IC0yNDg4LDYgKzI0ODgsNyBAQCB2b2lkIHdlYmtpdFdlYlZpZXdNb3VzZVRhcmdldENoYW5nZWQo
V2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgV2ViSGl0VGVzdFJlcwogewogI2lmIFBMQVRG
T1JNKEdUSykKICAgICB3ZWJraXRXZWJWaWV3QmFzZVNldFRvb2x0aXBBcmVhKFdFQktJVF9XRUJf
VklFV19CQVNFKHdlYlZpZXcpLCBoaXRUZXN0UmVzdWx0LmVsZW1lbnRCb3VuZGluZ0JveCk7Cisg
ICAgd2Via2l0V2ViVmlld0Jhc2VTZXRNb3VzZUlzT3ZlclNjcm9sbGJhcihXRUJLSVRfV0VCX1ZJ
RVdfQkFTRSh3ZWJWaWV3KSwgaGl0VGVzdFJlc3VsdC5pc1Njcm9sbGJhcik7CiAjZW5kaWYKIAog
ICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiBwcml2ID0gd2ViVmlldy0+cHJpdjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAK
aW5kZXggNmM2MjgyYjBjMTA3Li4yYjA1Zjc1ODFiMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCkBAIC0xODQsNiAr
MTg0LDcgQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUgewogICAgIENsaWNrQ291
bnRlciBjbGlja0NvdW50ZXI7CiAgICAgQ1N0cmluZyB0b29sdGlwVGV4dDsKICAgICBJbnRSZWN0
IHRvb2x0aXBBcmVhOworICAgIFdlYkhpdFRlc3RSZXN1bHREYXRhOjpJc1Njcm9sbGJhciBtb3Vz
ZUlzT3ZlclNjcm9sbGJhcjsKICAgICBHUmVmUHRyPEF0a09iamVjdD4gYWNjZXNzaWJsZTsKICAg
ICBHdGtXaWRnZXQqIGRpYWxvZyB7IG51bGxwdHIgfTsKICAgICBHdGtXaWRnZXQqIGluc3BlY3Rv
clZpZXcgeyBudWxscHRyIH07CkBAIC05MTYsMTAgKzkxNywxOCBAQCBzdGF0aWMgdm9pZCB3ZWJr
aXRXZWJWaWV3QmFzZUhhbmRsZVdoZWVsRXZlbnQoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdC
YXNlLCBHZAogCiAgICAgV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlKiBwcml2ID0gd2ViVmlld0Jh
c2UtPnByaXY7CiAgICAgQVNTRVJUKCFwcml2LT5kaWFsb2cpOworICAgIGJvb2wgc2hvdWxkSW52
ZXJ0RGlyZWN0aW9uID0gZmFsc2U7CisgICAgaWYgKHByaXYtPm1vdXNlSXNPdmVyU2Nyb2xsYmFy
ICE9IFdlYkhpdFRlc3RSZXN1bHREYXRhOjpJc1Njcm9sbGJhcjo6Tm8pIHsKKyAgICAgICAgLy8g
VGhlIGRpcmVjdGlvbnMgYXJlIGFscmVhZHkgc3dhcHBlZCB3aGVuIHNoaWZ0IGtleSBpcyBwcmVz
c2VkLCBidXQgd2hlbiBzY3JvbGxpbmcgb3ZlciBzY3JvbGxiYXJzIHdlIGFsd2F5cyB3YW50IHRv
IGZvbGxvdyB0aGUgc2Nyb2xsYmFyIGRpcmVjdGlvbi4KKyAgICAgICAgR2RrTW9kaWZpZXJUeXBl
IHN0YXRlOworICAgICAgICBnZGtfZXZlbnRfZ2V0X3N0YXRlKGV2ZW50LCAmc3RhdGUpOworICAg
ICAgICBib29sIGlzU2hpZnRQcmVzc2VkID0gc3RhdGUgJiBHREtfU0hJRlRfTUFTSzsKKyAgICAg
ICAgc2hvdWxkSW52ZXJ0RGlyZWN0aW9uID0gcHJpdi0+bW91c2VJc092ZXJTY3JvbGxiYXIgPT0g
V2ViSGl0VGVzdFJlc3VsdERhdGE6OklzU2Nyb2xsYmFyOjpIb3Jpem9udGFsID8gIWlzU2hpZnRQ
cmVzc2VkIDogaXNTaGlmdFByZXNzZWQ7CisgICAgfQogICAgIGlmIChwaGFzZSkKLSAgICAgICAg
cHJpdi0+cGFnZVByb3h5LT5oYW5kbGVXaGVlbEV2ZW50KE5hdGl2ZVdlYldoZWVsRXZlbnQoZXZl
bnQsIHBoYXNlLnZhbHVlKCksIG1vbWVudHVtLnZhbHVlT3IoV2ViV2hlZWxFdmVudDo6UGhhc2U6
OlBoYXNlTm9uZSkpKTsKKyAgICAgICAgcHJpdi0+cGFnZVByb3h5LT5oYW5kbGVXaGVlbEV2ZW50
KE5hdGl2ZVdlYldoZWVsRXZlbnQoZXZlbnQsIHNob3VsZEludmVydERpcmVjdGlvbiwgcGhhc2Uu
dmFsdWUoKSwgbW9tZW50dW0udmFsdWVPcihXZWJXaGVlbEV2ZW50OjpQaGFzZTo6UGhhc2VOb25l
KSkpOwogICAgIGVsc2UKLSAgICAgICAgcHJpdi0+cGFnZVByb3h5LT5oYW5kbGVXaGVlbEV2ZW50
KE5hdGl2ZVdlYldoZWVsRXZlbnQoZXZlbnQpKTsKKyAgICAgICAgcHJpdi0+cGFnZVByb3h5LT5o
YW5kbGVXaGVlbEV2ZW50KE5hdGl2ZVdlYldoZWVsRXZlbnQoZXZlbnQsIHNob3VsZEludmVydERp
cmVjdGlvbikpOwogfQogCiBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0V2ViVmlld0Jhc2VTY3JvbGxF
dmVudChHdGtXaWRnZXQqIHdpZGdldCwgR2RrRXZlbnRTY3JvbGwqIGV2ZW50KQpAQCAtMTUyOCw2
ICsxNTM3LDExIEBAIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VTZXRUb29sdGlwQXJlYShXZWJLaXRX
ZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIGNvbnN0IEludFJlCiAgICAgd2ViVmlld0Jhc2UtPnBy
aXYtPnRvb2x0aXBBcmVhID0gdG9vbHRpcEFyZWE7CiB9CiAKK3ZvaWQgd2Via2l0V2ViVmlld0Jh
c2VTZXRNb3VzZUlzT3ZlclNjcm9sbGJhcihXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2Us
IFdlYkhpdFRlc3RSZXN1bHREYXRhOjpJc1Njcm9sbGJhciBpc1Njcm9sbGJhcikKK3sKKyAgICB3
ZWJWaWV3QmFzZS0+cHJpdi0+bW91c2VJc092ZXJTY3JvbGxiYXIgPSBpc1Njcm9sbGJhcjsKK30K
KwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiBEcmFnQW5kRHJvcEhhbmRsZXImIHdlYmtpdFdl
YlZpZXdCYXNlRHJhZ0FuZERyb3BIYW5kbGVyKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFz
ZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViVmlld0Jhc2VQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oCmluZGV4IGRmYzAyZGE4NDQwMS4uYWExMDI4ZjRjNWM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZp
ZXdCYXNlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViVmlld0Jhc2VQcml2YXRlLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJWaWV3
R2VzdHVyZUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJWaWV3U25hcHNob3RTdG9yZS5oIgogI2lu
Y2x1ZGUgIldlYkNvbnRleHRNZW51UHJveHlHdGsuaCIKKyNpbmNsdWRlICJXZWJIaXRUZXN0UmVz
dWx0RGF0YS5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvclByb3h5LmgiCiAjaW5jbHVkZSAiV2Vi
S2l0SW5wdXRNZXRob2RDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld0Jhc2UuaCIK
QEAgLTQ2LDYgKzQ3LDcgQEAgV2ViS2l0OjpXZWJQYWdlUHJveHkqIHdlYmtpdFdlYlZpZXdCYXNl
R2V0UGFnZShXZWJLaXRXZWJWaWV3QmFzZSopOwogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUNyZWF0
ZVdlYlBhZ2UoV2ViS2l0V2ViVmlld0Jhc2UqLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4m
Jik7CiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU2V0VG9vbHRpcFRleHQoV2ViS2l0V2ViVmlld0Jh
c2UqLCBjb25zdCBjaGFyKik7CiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU2V0VG9vbHRpcEFyZWEo
V2ViS2l0V2ViVmlld0Jhc2UqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Cit2b2lkIHdlYmtp
dFdlYlZpZXdCYXNlU2V0TW91c2VJc092ZXJTY3JvbGxiYXIoV2ViS2l0V2ViVmlld0Jhc2UqLCBX
ZWJLaXQ6OldlYkhpdFRlc3RSZXN1bHREYXRhOjpJc1Njcm9sbGJhcik7CiB2b2lkIHdlYmtpdFdl
YlZpZXdCYXNlRm9yd2FyZE5leHRLZXlFdmVudChXZWJLaXRXZWJWaWV3QmFzZSopOwogdm9pZCB3
ZWJraXRXZWJWaWV3QmFzZUZvcndhcmROZXh0V2hlZWxFdmVudChXZWJLaXRXZWJWaWV3QmFzZSop
Owogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUNoaWxkTW92ZVJlc2l6ZShXZWJLaXRXZWJWaWV3QmFz
ZSosIEd0a1dpZGdldCosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405562</attachid>
            <date>2020-07-30 04:16:45 -0700</date>
            <delta_ts>2020-07-30 07:35:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-invert-scroll.diff</filename>
            <type>text/plain</type>
            <size>19986</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiMWZjYTdkZTM3NzUuLjMyN2ZjNWZhZDQ5YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE4IEBACisyMDIwLTA3LTMwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBNb3VzZSB3aGVlbCBldmVudHMgb24gaG9yaXpv
bnRhbCBzY3JvbGxiYXIgbm90IGNvcnJlY3RseSBoYW5kbGVkIHdoZW4gQUMgbW9kZSBpcyBmb3Jj
ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzEx
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92
ZSBHVEsgc3BlY2lmaWMgY29kZSB0byBpbnZlcnQgc2Nyb2xsIGRpcmVjdGlvbiBvZiB3aGVlbCBl
dmVudHMuCisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpzaG91bGRTd2FwU2Nyb2xsRGlyZWN0aW9uIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9Tb3VyY2VzR0xpYi50eHQ6CisgICAgICAgICogcGxhdGZvcm0v
Z2xpYi9FdmVudEhhbmRsZXJHTGliLmNwcDogUmVtb3ZlZC4KKwogMjAyMC0wNy0zMCAgQnJhZHkg
RWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVmYWN0b3IgSElEIGdhbWVw
YWQgY29kZSB0byBiZSBtdWNoIGxlc3MgZnJhZ2lsZSBhbmQgbXVjaCBlYXNpZXIgdG8gaGFjayBv
bi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA5Njc1NTgxZjkzZjguLjZj
OTZkODZhOTJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMjc3Miwx
NSArMjc3Miw2IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjppc0luc2lkZVNjcm9sbGJhcihjb25zdCBJ
bnRQb2ludCYgd2luZG93UG9pbnQpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0jaWYg
IVVTRShHTElCKQotCi1ib29sIEV2ZW50SGFuZGxlcjo6c2hvdWxkU3dhcFNjcm9sbERpcmVjdGlv
bihjb25zdCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3QK
LXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLSNlbmRpZgotCiB2b2lkIEV2ZW50SGFuZGxlcjo6
Y2xlYXJMYXRjaGVkU3RhdGVUaW1lckZpcmVkKCkKIHsKICAgICBMT0coU2Nyb2xsTGF0Y2hpbmcs
ICJFdmVudEhhbmRsZXIgJXAgY2xlYXJMYXRjaGVkU3RhdGVUaW1lckZpcmVkKCkiLCB0aGlzKTsK
QEAgLTI5MzEsMjAgKzI5MjIsMTcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZl
bnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCkKICAgICAgICAgbV9mcmFtZS5wYWdl
KCktPnJlc2V0TGF0Y2hpbmdTdGF0ZSgpOwogI2VuZGlmCiAKLSAgICAvLyBGSVhNRTogSXQgc2hv
dWxkIG5vdCBiZSBuZWNlc3NhcnkgdG8gZG8gdGhpcyBtdXRhdGlvbiBoZXJlLgotICAgIC8vIElu
c3RlYWQsIHRoZSBoYW5kbGVycyBzaG91bGQga25vdyBjb252ZXJ0IHZlcnRpY2FsIHNjcm9sbHMg
YXBwcm9wcmlhdGVseS4KLSAgICBQbGF0Zm9ybVdoZWVsRXZlbnQgYWRqdXN0ZWRFdmVudCA9IHNo
b3VsZFN3YXBTY3JvbGxEaXJlY3Rpb24ocmVzdWx0LCBldmVudCkgPyBldmVudC5jb3B5U3dhcHBp
bmdEaXJlY3Rpb24oKSA6IGV2ZW50OwotICAgIHJlY29yZFdoZWVsRXZlbnRGb3JEZWx0YUZpbHRl
cihhZGp1c3RlZEV2ZW50KTsKKyAgICByZWNvcmRXaGVlbEV2ZW50Rm9yRGVsdGFGaWx0ZXIoZXZl
bnQpOwogCiAgICAgaWYgKGVsZW1lbnQpIHsKICAgICAgICAgaWYgKGlzT3ZlcldpZGdldCkgewog
ICAgICAgICAgICAgaWYgKFdlYWtQdHI8V2lkZ2V0PiB3aWRnZXQgPSB3aWRnZXRGb3JFbGVtZW50
KCplbGVtZW50KSkgewogICAgICAgICAgICAgICAgIGlmIChwYXNzV2hlZWxFdmVudFRvV2lkZ2V0
KGV2ZW50LCAqd2lkZ2V0LmdldCgpKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBs
ZXRlV2lkZ2V0V2hlZWxFdmVudChhZGp1c3RlZEV2ZW50LCB3aWRnZXQsIHNjcm9sbGFibGVBcmVh
LCBzY3JvbGxhYmxlQ29udGFpbmVyLmdldCgpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGNvbXBsZXRlV2lkZ2V0V2hlZWxFdmVudChldmVudCwgd2lkZ2V0LCBzY3JvbGxhYmxlQXJlYSwg
c2Nyb2xsYWJsZUNvbnRhaW5lci5nZXQoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAot
ICAgICAgICBpZiAoIWVsZW1lbnQtPmRpc3BhdGNoV2hlZWxFdmVudChhZGp1c3RlZEV2ZW50KSkg
eworICAgICAgICBpZiAoIWVsZW1lbnQtPmRpc3BhdGNoV2hlZWxFdmVudChldmVudCkpIHsKICAg
ICAgICAgICAgIG1faXNIYW5kbGluZ1doZWVsRXZlbnQgPSBmYWxzZTsKICAgICAgICAgICAgIGlm
IChzY3JvbGxhYmxlQXJlYSAmJiBzY3JvbGxhYmxlQXJlYS0+c2Nyb2xsU2hvdWxkQ2xlYXJMYXRj
aGVkU3RhdGUoKSkgewogICAgICAgICAgICAgICAgIC8vIFdlYiBkZXZlbG9wZXIgaXMgY29udHJv
bGxpbmcgc2Nyb2xsaW5nLCBzbyBkb24ndCBhdHRlbXB0IHRvIGxhdGNoLgpAQCAtMjk1Miw3ICsy
OTQwLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50JiBldmVudCkKICAgICAgICAgICAgICAgICBzY3JvbGxhYmxlQXJlYS0+c2V0
U2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUoZmFsc2UpOwogICAgICAgICAgICAgfQogCi0g
ICAgICAgICAgICBwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXAoYWRqdXN0ZWRFdmVudCwg
c2Nyb2xsYWJsZUFyZWEpOworICAgICAgICAgICAgcHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxT
bmFwKGV2ZW50LCBzY3JvbGxhYmxlQXJlYSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgfQogICAgIH0KQEAgLTI5NjAsOCArMjk0OCw4IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpo
YW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQpCiAgICAgaWYg
KHNjcm9sbGFibGVBcmVhKQogICAgICAgICBzY3JvbGxhYmxlQXJlYS0+c2V0U2Nyb2xsU2hvdWxk
Q2xlYXJMYXRjaGVkU3RhdGUoZmFsc2UpOwogCi0gICAgYm9vbCBoYW5kbGVkRXZlbnQgPSBwcm9j
ZXNzV2hlZWxFdmVudEZvclNjcm9sbGluZyhhZGp1c3RlZEV2ZW50LCBzY3JvbGxhYmxlQ29udGFp
bmVyLmdldCgpLCBzY3JvbGxhYmxlQXJlYSk7Ci0gICAgcHJvY2Vzc1doZWVsRXZlbnRGb3JTY3Jv
bGxTbmFwKGFkanVzdGVkRXZlbnQsIHNjcm9sbGFibGVBcmVhKTsKKyAgICBib29sIGhhbmRsZWRF
dmVudCA9IHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGV2ZW50LCBzY3JvbGxhYmxlQ29u
dGFpbmVyLmdldCgpLCBzY3JvbGxhYmxlQXJlYSk7CisgICAgcHJvY2Vzc1doZWVsRXZlbnRGb3JT
Y3JvbGxTbmFwKGV2ZW50LCBzY3JvbGxhYmxlQXJlYSk7CiAgICAgcmV0dXJuIGhhbmRsZWRFdmVu
dDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU291cmNlc0dMaWIu
dHh0IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU291cmNlc0dMaWIudHh0CmluZGV4IGI2MjI1
OWViY2I0Ny4uZTI0ZGNjYWM5MWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Tb3VyY2VzR0xpYi50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU291cmNlc0dM
aWIudHh0CkBAIC0yMyw3ICsyMyw2IEBACiAKIHBsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNH
TGliLmNwcAogCi1wbGF0Zm9ybS9nbGliL0V2ZW50SGFuZGxlckdMaWIuY3BwCiBwbGF0Zm9ybS9n
bGliL0ZpbGVNb25pdG9yR0xpYi5jcHAKIHBsYXRmb3JtL2dsaWIvS2V5ZWREZWNvZGVyR2xpYi5j
cHAKIHBsYXRmb3JtL2dsaWIvS2V5ZWRFbmNvZGVyR2xpYi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRXZlbnRIYW5kbGVyR0xpYi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9nbGliL0V2ZW50SGFuZGxlckdMaWIuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmZTNkNjBkYWNjYTMuLjAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9nbGliL0V2ZW50SGFuZGxlckdMaWIuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsNzYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBaYWNrIFJ1c2luIDx6YWNr
QGtkZS5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBJZ2FsaWEgUy5MLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCi0KLSNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIu
aCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1ZGUg
IktleWJvYXJkRXZlbnQuaCIKLSNpbmNsdWRlICJNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRz
LmgiCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlICJQYWdlLmgiCi0jaW5j
bHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2
ZW50LmgiCi0jaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCi0KLSNpZiBFTkFCTEUoRFJBR19TVVBQ
T1JUKQotI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgotI2VuZGlmCi0KLSNpZiBQTEFURk9STShH
VEspCi0jaW5jbHVkZSAiU2Nyb2xsYmFyLmgiCi0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi0vLyBHVEsrIG11c3Qgc2Nyb2xsIGhvcml6b250YWxseSBpZiB0aGUgbW91c2UgcG9pbnRl
ciBpcyBvbiB0b3Agb2YgdGhlCi0vLyBob3Jpem9udGFsIHNjcm9sbGJhciB3aGlsZSBzY3JvbGxp
bmcgd2l0aCB0aGUgd2hlZWw7IHdlIG5lZWQgdG8KLS8vIGFkZCB0aGUgZGVsdGFzIGFuZCB0aWNr
cyBoZXJlIHNvIHRoYXQgdGhpcyBiZWhhdmlvciBpcyBjb25zaXN0ZW50Ci0vLyBmb3Igc3R5bGVk
IHNjcm9sbGJhcnMuCi1ib29sIEV2ZW50SGFuZGxlcjo6c2hvdWxkU3dhcFNjcm9sbERpcmVjdGlv
bihjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
ZXZlbnQpIGNvbnN0Ci17Ci0jaWYgUExBVEZPUk0oR1RLKQotICAgIEZyYW1lVmlldyogdmlldyA9
IG1fZnJhbWUudmlldygpOwotICAgIFNjcm9sbGJhciogc2Nyb2xsYmFyID0gdmlldyA/IHZpZXct
PnNjcm9sbGJhckF0UG9pbnQoZXZlbnQucG9zaXRpb24oKSkgOiBudWxscHRyOwotICAgIGlmICgh
c2Nyb2xsYmFyKQotICAgICAgICBzY3JvbGxiYXIgPSByZXN1bHQuc2Nyb2xsYmFyKCk7Ci0gICAg
aWYgKCFzY3JvbGxiYXIpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIC8vIFRoZSBkaXJl
Y3Rpb25zIGFyZSBhbHJlYWR5IHN3YXBwZWQgd2hlbiBzaGlmdCBrZXkgaXMgcHJlc3NlZCwgYnV0
IHdoZW4gc2Nyb2xsaW5nCi0gICAgLy8gb3ZlciBzY3JvbGxiYXJzIHdlIGFsd2F5cyB3YW50IHRv
IGZvbGxvdyB0aGUgc2Nyb2xsYmFyIGRpcmVjdGlvbi4KLSAgICByZXR1cm4gc2Nyb2xsYmFyLT5v
cmllbnRhdGlvbigpID09IEhvcml6b250YWxTY3JvbGxiYXIgPyAhZXZlbnQuc2hpZnRLZXkoKSA6
IGV2ZW50LnNoaWZ0S2V5KCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShyZXN1bHQpOwotICAg
IFVOVVNFRF9QQVJBTShldmVudCk7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
ZmFsc2U7Ci0jZW5kaWYKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2MDUyYjM0YWU2ZWMuLmZlNjY4OGQz
MWRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMC0wNy0zMCAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gTW91c2Ugd2hl
ZWwgZXZlbnRzIG9uIGhvcml6b250YWwgc2Nyb2xsYmFyIG5vdCBjb3JyZWN0bHkgaGFuZGxlZCB3
aGVuIEFDIG1vZGUgaXMgZm9yY2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDcxMTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBNb3ZlIHRoZSBkaXJlY3Rpb24gc3dhcCB0byB0aGUgVUkgcHJvY2VzcyBi
ZWZvcmUgcGFzc2luZyB0aGUgZXZlbnQgdG8gdGhlIHdlYgorICAgICAgICBwcm9jZXNzLiBXZWJI
aXRUZXN0UmVzdWx0RGF0YTo6aXNTY3JvbGxiYXIgaXMgbm93IGFuIGVudW0gd2l0aCB2YWx1ZXMg
Tm8sIFZlcnR0aWNhbCwgSG9yaXpvbnRhbC4gV2hlbiBhIHdoZWVsCisgICAgICAgIGV2ZW50IGlz
IHJlY2VpdmVkIGluIHRoZSB3aWRnZXQgd2UgY2hlY2sgd2hldGhlciB3ZSBzaG91bGQgaW52ZXJ0
IHRoZSBkaXJlY3Rpb24gb3Igbm90LgorCisgICAgICAgICogU2hhcmVkL0FQSS9nbGliL1dlYktp
dEhpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAod2Via2l0SGl0VGVzdFJlc3VsdENyZWF0ZSk6
CisgICAgICAgICh3ZWJraXRIaXRUZXN0UmVzdWx0Q29tcGFyZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkhpdFRlc3RSZXN1bHREYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSGl0VGVzdFJl
c3VsdERhdGE6OldlYkhpdFRlc3RSZXN1bHREYXRhKToKKyAgICAgICAgKiBTaGFyZWQvV2ViSGl0
VGVzdFJlc3VsdERhdGEuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUhpdFRlc3RSZXN1
bHQuaDoKKyAgICAgICAgKEFQSTo6SGl0VGVzdFJlc3VsdDo6aXNTY3JvbGxiYXIgY29uc3QpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAgICAg
KHdlYmtpdFdlYlZpZXdNb3VzZVRhcmdldENoYW5nZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcDoKKyAgICAgICAgKHNob3VsZEludmVydERpcmVj
dGlvbkZvclNjcm9sbEV2ZW50KToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlU2Nyb2xsRXZl
bnQpOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VTY3JvbGwpOgorICAgICAgICAod2Via2l0
V2ViVmlld0Jhc2VTZXRNb3VzZUlzT3ZlclNjcm9sbGJhcik6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmg6CisKIDIwMjAtMDctMTUgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEs0XSBF
bmFibGUgQVBJIHRlc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xp
Yi9XZWJLaXRIaXRUZXN0UmVzdWx0LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9nbGli
L1dlYktpdEhpdFRlc3RSZXN1bHQuY3BwCmluZGV4IDNmOGE2YmNkNTE5MS4uYjYzMDIxOGMwZjA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRIaXRUZXN0
UmVzdWx0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRIaXRU
ZXN0UmVzdWx0LmNwcApAQCAtMjM4LDcgKzIzOCw3IEBAIFdlYktpdEhpdFRlc3RSZXN1bHQqIHdl
YmtpdEhpdFRlc3RSZXN1bHRDcmVhdGUoY29uc3QgV2ViSGl0VGVzdFJlc3VsdERhdGEmIGhpdFRl
CiAgICAgaWYgKGhpdFRlc3RSZXN1bHQuaXNDb250ZW50RWRpdGFibGUpCiAgICAgICAgIGNvbnRl
eHQgfD0gV0VCS0lUX0hJVF9URVNUX1JFU1VMVF9DT05URVhUX0VESVRBQkxFOwogCi0gICAgaWYg
KGhpdFRlc3RSZXN1bHQuaXNTY3JvbGxiYXIpCisgICAgaWYgKGhpdFRlc3RSZXN1bHQuaXNTY3Jv
bGxiYXIgIT0gV2ViSGl0VGVzdFJlc3VsdERhdGE6OklzU2Nyb2xsYmFyOjpObykKICAgICAgICAg
Y29udGV4dCB8PSBXRUJLSVRfSElUX1RFU1RfUkVTVUxUX0NPTlRFWFRfU0NST0xMQkFSOwogCiAg
ICAgaWYgKGhpdFRlc3RSZXN1bHQuaXNTZWxlY3RlZCkKQEAgLTI2Miw4ICsyNjIsOSBAQCBzdGF0
aWMgYm9vbCBzdHJpbmdJc0VxdWFsVG9DU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25z
dCBDU3RyaW5nJiBjU3RyaW5nKQogYm9vbCB3ZWJraXRIaXRUZXN0UmVzdWx0Q29tcGFyZShXZWJL
aXRIaXRUZXN0UmVzdWx0KiBoaXRUZXN0UmVzdWx0LCBjb25zdCBXZWJIaXRUZXN0UmVzdWx0RGF0
YSYgd2ViSGl0VGVzdFJlc3VsdCkKIHsKICAgICBXZWJLaXRIaXRUZXN0UmVzdWx0UHJpdmF0ZSog
cHJpdiA9IGhpdFRlc3RSZXN1bHQtPnByaXY7CisgICAgYm9vbCBpc1Njcm9sbGJhciA9IHdlYkhp
dFRlc3RSZXN1bHQuaXNTY3JvbGxiYXIgIT0gV2ViSGl0VGVzdFJlc3VsdERhdGE6OklzU2Nyb2xs
YmFyOjpObzsKICAgICByZXR1cm4gd2ViSGl0VGVzdFJlc3VsdC5pc0NvbnRlbnRFZGl0YWJsZSA9
PSB3ZWJraXRfaGl0X3Rlc3RfcmVzdWx0X2NvbnRleHRfaXNfZWRpdGFibGUoaGl0VGVzdFJlc3Vs
dCkKLSAgICAgICAgJiYgd2ViSGl0VGVzdFJlc3VsdC5pc1Njcm9sbGJhciA9PSB3ZWJraXRfaGl0
X3Rlc3RfcmVzdWx0X2NvbnRleHRfaXNfc2Nyb2xsYmFyKGhpdFRlc3RSZXN1bHQpCisgICAgICAg
ICYmIGlzU2Nyb2xsYmFyID09IHdlYmtpdF9oaXRfdGVzdF9yZXN1bHRfY29udGV4dF9pc19zY3Jv
bGxiYXIoaGl0VGVzdFJlc3VsdCkKICAgICAgICAgJiYgd2ViSGl0VGVzdFJlc3VsdC5pc1NlbGVj
dGVkID09IHdlYmtpdF9oaXRfdGVzdF9yZXN1bHRfY29udGV4dF9pc19zZWxlY3Rpb24oaGl0VGVz
dFJlc3VsdCkKICAgICAgICAgJiYgc3RyaW5nSXNFcXVhbFRvQ1N0cmluZyh3ZWJIaXRUZXN0UmVz
dWx0LmFic29sdXRlTGlua1VSTCwgcHJpdi0+bGlua1VSSSkKICAgICAgICAgJiYgc3RyaW5nSXNF
cXVhbFRvQ1N0cmluZyh3ZWJIaXRUZXN0UmVzdWx0LmxpbmtUaXRsZSwgcHJpdi0+bGlua1RpdGxl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViSGl0VGVzdFJlc3VsdERhdGEu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViSGl0VGVzdFJlc3VsdERhdGEuY3BwCmluZGV4
IDY1NTg4ZTU3NGFhNS4uZjcxNjhiOTgxNzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJIaXRUZXN0UmVzdWx0RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViSGl0VGVzdFJlc3VsdERhdGEuY3BwCkBAIC00OCw3ICs0OCw3IEBAIFdlYkhpdFRlc3RSZXN1
bHREYXRhOjpXZWJIaXRUZXN0UmVzdWx0RGF0YShjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0
JiBoaXRUZXN0CiAgICAgLCBsaW5rU3VnZ2VzdGVkRmlsZW5hbWUoaGl0VGVzdFJlc3VsdC5saW5r
U3VnZ2VzdGVkRmlsZW5hbWUoKSkKICAgICAsIGlzQ29udGVudEVkaXRhYmxlKGhpdFRlc3RSZXN1
bHQuaXNDb250ZW50RWRpdGFibGUoKSkKICAgICAsIGVsZW1lbnRCb3VuZGluZ0JveChlbGVtZW50
Qm91bmRpbmdCb3hJbldpbmRvd0Nvb3JkaW5hdGVzKGhpdFRlc3RSZXN1bHQpKQotICAgICwgaXNT
Y3JvbGxiYXIoaGl0VGVzdFJlc3VsdC5zY3JvbGxiYXIoKSkKKyAgICAsIGlzU2Nyb2xsYmFyKElz
U2Nyb2xsYmFyOjpObykKICAgICAsIGlzU2VsZWN0ZWQoaGl0VGVzdFJlc3VsdC5pc1NlbGVjdGVk
KCkpCiAgICAgLCBpc1RleHROb2RlKGhpdFRlc3RSZXN1bHQuaW5uZXJOb2RlKCkgJiYgaGl0VGVz
dFJlc3VsdC5pbm5lck5vZGUoKS0+aXNUZXh0Tm9kZSgpKQogICAgICwgaXNPdmVyVGV4dEluc2lk
ZUZvcm1Db250cm9sRWxlbWVudChoaXRUZXN0UmVzdWx0LmlzT3ZlclRleHRJbnNpZGVGb3JtQ29u
dHJvbEVsZW1lbnQoKSkKQEAgLTU2LDYgKzU2LDggQEAgV2ViSGl0VGVzdFJlc3VsdERhdGE6Oldl
YkhpdFRlc3RSZXN1bHREYXRhKGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmIGhpdFRlc3QK
ICAgICAsIHRvb2xUaXBUZXh0KHRvb2xUaXBUZXh0KQogICAgICwgaW1hZ2VTaXplKDApCiB7Cisg
ICAgaWYgKGF1dG8qIHNjcm9sbGJhciA9IGhpdFRlc3RSZXN1bHQuc2Nyb2xsYmFyKCkpCisgICAg
ICAgIGlzU2Nyb2xsYmFyID0gc2Nyb2xsYmFyLT5vcmllbnRhdGlvbigpID09IEhvcml6b250YWxT
Y3JvbGxiYXIgPyBJc1Njcm9sbGJhcjo6SG9yaXpvbnRhbCA6IElzU2Nyb2xsYmFyOjpWZXJ0aWNh
bDsKIH0KIAogV2ViSGl0VGVzdFJlc3VsdERhdGE6OldlYkhpdFRlc3RSZXN1bHREYXRhKGNvbnN0
IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmIGhpdFRlc3RSZXN1bHQsIGJvb2wgaW5jbHVkZUltYWdl
KQpAQCAtNjgsMTMgKzcwLDE2IEBAIFdlYkhpdFRlc3RSZXN1bHREYXRhOjpXZWJIaXRUZXN0UmVz
dWx0RGF0YShjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0JiBoaXRUZXN0CiAgICAgLCBsaW5r
U3VnZ2VzdGVkRmlsZW5hbWUoaGl0VGVzdFJlc3VsdC5saW5rU3VnZ2VzdGVkRmlsZW5hbWUoKSkK
ICAgICAsIGlzQ29udGVudEVkaXRhYmxlKGhpdFRlc3RSZXN1bHQuaXNDb250ZW50RWRpdGFibGUo
KSkKICAgICAsIGVsZW1lbnRCb3VuZGluZ0JveChlbGVtZW50Qm91bmRpbmdCb3hJbldpbmRvd0Nv
b3JkaW5hdGVzKGhpdFRlc3RSZXN1bHQpKQotICAgICwgaXNTY3JvbGxiYXIoaGl0VGVzdFJlc3Vs
dC5zY3JvbGxiYXIoKSkKKyAgICAsIGlzU2Nyb2xsYmFyKElzU2Nyb2xsYmFyOjpObykKICAgICAs
IGlzU2VsZWN0ZWQoaGl0VGVzdFJlc3VsdC5pc1NlbGVjdGVkKCkpCiAgICAgLCBpc1RleHROb2Rl
KGhpdFRlc3RSZXN1bHQuaW5uZXJOb2RlKCkgJiYgaGl0VGVzdFJlc3VsdC5pbm5lck5vZGUoKS0+
aXNUZXh0Tm9kZSgpKQogICAgICwgaXNPdmVyVGV4dEluc2lkZUZvcm1Db250cm9sRWxlbWVudCho
aXRUZXN0UmVzdWx0LmlzT3ZlclRleHRJbnNpZGVGb3JtQ29udHJvbEVsZW1lbnQoKSkKICAgICAs
IGlzRG93bmxvYWRhYmxlTWVkaWEoaGl0VGVzdFJlc3VsdC5pc0Rvd25sb2FkYWJsZU1lZGlhKCkp
CiAgICAgLCBpbWFnZVNpemUoMCkKIHsKKyAgICBpZiAoYXV0byogc2Nyb2xsYmFyID0gaGl0VGVz
dFJlc3VsdC5zY3JvbGxiYXIoKSkKKyAgICAgICAgaXNTY3JvbGxiYXIgPSBzY3JvbGxiYXItPm9y
aWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbFNjcm9sbGJhciA/IElzU2Nyb2xsYmFyOjpIb3Jpem9u
dGFsIDogSXNTY3JvbGxiYXI6OlZlcnRpY2FsOworCiAgICAgaWYgKCFpbmNsdWRlSW1hZ2UpCiAg
ICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViSGl0
VGVzdFJlc3VsdERhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHRE
YXRhLmgKaW5kZXggYTg2NTFkMDlhYWY4Li4xMDQ2MmI0Y2ZlYTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHREYXRhLmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViSGl0VGVzdFJlc3VsdERhdGEuaApAQCAtMTcsOCArMTcsNyBAQAogICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAotI2lmbmRlZiBXZWJIaXRUZXN0UmVzdWx0
RGF0YV9oCi0jZGVmaW5lIFdlYkhpdFRlc3RSZXN1bHREYXRhX2gKKyNwcmFnbWEgb25jZQogCiAj
aW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCkBAIC0yNiw2
ICsyNSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFBvaW50Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlT3ZlcmxheS5oPgorI2luY2x1
ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC01Myw3
ICs1Myw4IEBAIHN0cnVjdCBXZWJIaXRUZXN0UmVzdWx0RGF0YSB7CiAgICAgU3RyaW5nIGxpbmtT
dWdnZXN0ZWRGaWxlbmFtZTsKICAgICBib29sIGlzQ29udGVudEVkaXRhYmxlOwogICAgIFdlYkNv
cmU6OkludFJlY3QgZWxlbWVudEJvdW5kaW5nQm94OwotICAgIGJvb2wgaXNTY3JvbGxiYXI7Cisg
ICAgZW51bSBjbGFzcyBJc1Njcm9sbGJhciB7IE5vLCBWZXJ0aWNhbCwgSG9yaXpvbnRhbCB9Owor
ICAgIElzU2Nyb2xsYmFyIGlzU2Nyb2xsYmFyOwogICAgIGJvb2wgaXNTZWxlY3RlZDsKICAgICBi
b29sIGlzVGV4dE5vZGU7CiAgICAgYm9vbCBpc092ZXJUZXh0SW5zaWRlRm9ybUNvbnRyb2xFbGVt
ZW50OwpAQCAtOTAsNCArOTEsMTUgQEAgc3RydWN0IFdlYkhpdFRlc3RSZXN1bHREYXRhIHsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBXZWJIaXRUZXN0UmVzdWx0RGF0YV9o
CituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6
OldlYkhpdFRlc3RSZXN1bHREYXRhOjpJc1Njcm9sbGJhcj4geworICAgIHVzaW5nIHZhbHVlcyA9
IEVudW1WYWx1ZXM8CisgICAgV2ViS2l0OjpXZWJIaXRUZXN0UmVzdWx0RGF0YTo6SXNTY3JvbGxi
YXIsCisgICAgV2ViS2l0OjpXZWJIaXRUZXN0UmVzdWx0RGF0YTo6SXNTY3JvbGxiYXI6Ok5vLAor
ICAgIFdlYktpdDo6V2ViSGl0VGVzdFJlc3VsdERhdGE6OklzU2Nyb2xsYmFyOjpWZXJ0aWNhbCwK
KyAgICBXZWJLaXQ6OldlYkhpdFRlc3RSZXN1bHREYXRhOjpJc1Njcm9sbGJhcjo6SG9yaXpvbnRh
bAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIaXRUZXN0UmVzdWx0LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJSGl0VGVzdFJlc3VsdC5oCmluZGV4IDMwNjIyYjQ4NjY0Ny4uN2RlNzM4
OWViYWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSGl0VGVz
dFJlc3VsdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIaXRUZXN0UmVz
dWx0LmgKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogCiAgICAgV2ViQ29yZTo6SW50UmVjdCBl
bGVtZW50Qm91bmRpbmdCb3goKSBjb25zdCB7IHJldHVybiBtX2RhdGEuZWxlbWVudEJvdW5kaW5n
Qm94OyB9CiAKLSAgICBib29sIGlzU2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmlz
U2Nyb2xsYmFyOyB9CisgICAgYm9vbCBpc1Njcm9sbGJhcigpIGNvbnN0IHsgcmV0dXJuIG1fZGF0
YS5pc1Njcm9sbGJhciAhPSBXZWJLaXQ6OldlYkhpdFRlc3RSZXN1bHREYXRhOjpJc1Njcm9sbGJh
cjo6Tm87IH0KIAogICAgIGJvb2wgaXNTZWxlY3RlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5p
c1NlbGVjdGVkOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0V2ViVmlldy5jcHAKaW5kZXggY2FmOGVmZTg4MWY2Li5kNmZjM2YzYTkzZDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3Bw
CkBAIC0yNTY1LDYgKzI1NjUsNyBAQCB2b2lkIHdlYmtpdFdlYlZpZXdNb3VzZVRhcmdldENoYW5n
ZWQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgV2ViSGl0VGVzdFJlcwogewogI2lmIFBM
QVRGT1JNKEdUSykKICAgICB3ZWJraXRXZWJWaWV3QmFzZVNldFRvb2x0aXBBcmVhKFdFQktJVF9X
RUJfVklFV19CQVNFKHdlYlZpZXcpLCBoaXRUZXN0UmVzdWx0LmVsZW1lbnRCb3VuZGluZ0JveCk7
CisgICAgd2Via2l0V2ViVmlld0Jhc2VTZXRNb3VzZUlzT3ZlclNjcm9sbGJhcihXRUJLSVRfV0VC
X1ZJRVdfQkFTRSh3ZWJWaWV3KSwgaGl0VGVzdFJlc3VsdC5pc1Njcm9sbGJhcik7CiAjZW5kaWYK
IAogICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiBwcml2ID0gd2ViVmlldy0+cHJpdjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5j
cHAKaW5kZXggMWU3MjA2NWNmOTZhLi41ZDAxZGFiNWMxNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCkBAIC0yNjgs
NiArMjY4LDcgQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUgewogI2VuZGlmCiAg
ICAgQ1N0cmluZyB0b29sdGlwVGV4dDsKICAgICBJbnRSZWN0IHRvb2x0aXBBcmVhOworICAgIFdl
YkhpdFRlc3RSZXN1bHREYXRhOjpJc1Njcm9sbGJhciBtb3VzZUlzT3ZlclNjcm9sbGJhcjsKICAg
ICBHUmVmUHRyPEF0a09iamVjdD4gYWNjZXNzaWJsZTsKICAgICBHdGtXaWRnZXQqIGRpYWxvZyB7
IG51bGxwdHIgfTsKICAgICBHdGtXaWRnZXQqIGluc3BlY3RvclZpZXcgeyBudWxscHRyIH07CkBA
IC0xMjA3LDYgKzEyMDgsMjEgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VCdXR0b25S
ZWxlYXNlZChXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIGludAogfQogI2VuZGlmCiAK
K3N0YXRpYyBib29sIHNob3VsZEludmVydERpcmVjdGlvbkZvclNjcm9sbEV2ZW50KFdlYkhpdFRl
c3RSZXN1bHREYXRhOjpJc1Njcm9sbGJhciBpc1Njcm9sbGJhciwgYm9vbCBpc1NoaWZ0UHJlc3Nl
ZCkKK3sKKyAgICAvLyBTaGlmdCtXaGVlbCBzY3JvbGxzIGluIHRoZSBwZXJwZW5kaWN1bGFyIGRp
cmVjdGlvbiwgdW5sZXNzIHdlIGFyZSBvdmVyIGEgc2Nyb2xsYmFyCisgICAgLy8gaW4gd2hpY2gg
Y2FzZSB3ZSBhbHdheXMgd2FudCB0byBmb2xsb3cgdGhlIHNjcm9sbGJhciBkaXJlY3Rpb24uCisg
ICAgc3dpdGNoIChpc1Njcm9sbGJhcikgeworICAgIGNhc2UgV2ViSGl0VGVzdFJlc3VsdERhdGE6
OklzU2Nyb2xsYmFyOjpObzoKKyAgICAgICAgcmV0dXJuIGlzU2hpZnRQcmVzc2VkOworICAgIGNh
c2UgV2ViSGl0VGVzdFJlc3VsdERhdGE6OklzU2Nyb2xsYmFyOjpIb3Jpem9udGFsOgorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIFdlYkhpdFRlc3RSZXN1bHREYXRhOjpJc1Njcm9sbGJh
cjo6VmVydGljYWw6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogI2lmICFVU0UoR1RLNCkKIHN0YXRpYyB2b2lkIHdl
YmtpdFdlYlZpZXdCYXNlSGFuZGxlV2hlZWxFdmVudChXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmll
d0Jhc2UsIEdka0V2ZW50KiBldmVudCwgT3B0aW9uYWw8V2ViV2hlZWxFdmVudDo6UGhhc2U+IHBo
YXNlID0gV1RGOjpudWxsb3B0LCBPcHRpb25hbDxXZWJXaGVlbEV2ZW50OjpQaGFzZT4gbW9tZW50
dW0gPSBXVEY6Om51bGxvcHQpCiB7CkBAIC0xMjMzLDggKzEyNDksNyBAQCBzdGF0aWMgZ2Jvb2xl
YW4gd2Via2l0V2ViVmlld0Jhc2VTY3JvbGxFdmVudChHdGtXaWRnZXQqIHdpZGdldCwgR2RrRXZl
bnRTY3JvbGwqCiAgICAgaWYgKHByaXYtPmRpYWxvZykKICAgICAgICAgcmV0dXJuIEdES19FVkVO
VF9QUk9QQUdBVEU7CiAKLSAgICAvLyBTaGlmdCtXaGVlbCBzY3JvbGxzIGluIHRoZSBwZXJwZW5k
aWN1bGFyIGRpcmVjdGlvbi4KLSAgICBpZiAoZXZlbnQtPnN0YXRlICYgR0RLX1NISUZUX01BU0sp
IHsKKyAgICBpZiAoc2hvdWxkSW52ZXJ0RGlyZWN0aW9uRm9yU2Nyb2xsRXZlbnQocHJpdi0+bW91
c2VJc092ZXJTY3JvbGxiYXIsIGV2ZW50LT5zdGF0ZSAmIEdES19TSElGVF9NQVNLKSkgewogICAg
ICAgICBzd2l0Y2ggKGV2ZW50LT5kaXJlY3Rpb24pIHsKICAgICAgICAgY2FzZSBHREtfU0NST0xM
X1VQOgogICAgICAgICAgICAgZXZlbnQtPmRpcmVjdGlvbiA9IEdES19TQ1JPTExfTEVGVDsKQEAg
LTEyNjksOCArMTI4NCw3IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRXZWJWaWV3QmFzZVNjcm9s
bChXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIGRvdWJsZSBkCiAKICAgICBhdXRvKiBl
dmVudCA9IGd0a19ldmVudF9jb250cm9sbGVyX2dldF9jdXJyZW50X2V2ZW50KGNvbnRyb2xsZXIp
OwogCi0gICAgLy8gU2hpZnQrV2hlZWwgc2Nyb2xscyBpbiB0aGUgcGVycGVuZGljdWxhciBkaXJl
Y3Rpb24uCi0gICAgaWYgKGdka19ldmVudF9nZXRfbW9kaWZpZXJfc3RhdGUoZXZlbnQpICYgR0RL
X1NISUZUX01BU0spCisgICAgaWYgKHNob3VsZEludmVydERpcmVjdGlvbkZvclNjcm9sbEV2ZW50
KHByaXYtPm1vdXNlSXNPdmVyU2Nyb2xsYmFyLCBnZGtfZXZlbnRfZ2V0X21vZGlmaWVyX3N0YXRl
KGV2ZW50KSAmIEdES19TSElGVF9NQVNLKSkKICAgICAgICAgc3RkOjpzd2FwKGRlbHRhWCwgZGVs
dGFZKTsKIAogICAgIHByaXYtPnBhZ2VQcm94eS0+aGFuZGxlV2hlZWxFdmVudChOYXRpdmVXZWJX
aGVlbEV2ZW50KGV2ZW50LCBwcml2LT5sYXN0TW90aW9uRXZlbnQgPyBJbnRQb2ludChwcml2LT5s
YXN0TW90aW9uRXZlbnQtPnBvc2l0aW9uKSA6IEludFBvaW50KCksIEZsb2F0U2l6ZSgtZGVsdGFY
LCAtZGVsdGFZKSkpOwpAQCAtMjA2Niw2ICsyMDgwLDExIEBAIHZvaWQgd2Via2l0V2ViVmlld0Jh
c2VTZXRUb29sdGlwQXJlYShXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIGNvbnN0IElu
dFJlCiAgICAgd2ViVmlld0Jhc2UtPnByaXYtPnRvb2x0aXBBcmVhID0gdG9vbHRpcEFyZWE7CiB9
CiAKK3ZvaWQgd2Via2l0V2ViVmlld0Jhc2VTZXRNb3VzZUlzT3ZlclNjcm9sbGJhcihXZWJLaXRX
ZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIFdlYkhpdFRlc3RSZXN1bHREYXRhOjpJc1Njcm9sbGJh
ciBpc1Njcm9sbGJhcikKK3sKKyAgICB3ZWJWaWV3QmFzZS0+cHJpdi0+bW91c2VJc092ZXJTY3Jv
bGxiYXIgPSBpc1Njcm9sbGJhcjsKK30KKwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiB2b2lk
IHdlYmtpdFdlYlZpZXdCYXNlU3RhcnREcmFnKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFz
ZSwgU2VsZWN0aW9uRGF0YSYmIHNlbGVjdGlvbkRhdGEsIE9wdGlvblNldDxEcmFnT3BlcmF0aW9u
PiBkcmFnT3BlcmF0aW9uTWFzaywgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4mJiBpbWFnZSkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmll
d0Jhc2VQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YlZpZXdCYXNlUHJpdmF0ZS5oCmluZGV4IDFkZGExZmNmNWJhMC4uZDA5YWVhNDVkOTRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNl
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Vmlld0Jhc2VQcml2YXRlLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJWaWV3R2VzdHVy
ZUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJWaWV3U25hcHNob3RTdG9yZS5oIgogI2luY2x1ZGUg
IldlYkNvbnRleHRNZW51UHJveHlHdGsuaCIKKyNpbmNsdWRlICJXZWJIaXRUZXN0UmVzdWx0RGF0
YS5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViS2l0SW5w
dXRNZXRob2RDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld0Jhc2UuaCIKQEAgLTQ4
LDYgKzQ5LDcgQEAgV2ViS2l0OjpXZWJQYWdlUHJveHkqIHdlYmtpdFdlYlZpZXdCYXNlR2V0UGFn
ZShXZWJLaXRXZWJWaWV3QmFzZSopOwogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUNyZWF0ZVdlYlBh
Z2UoV2ViS2l0V2ViVmlld0Jhc2UqLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CiB2
b2lkIHdlYmtpdFdlYlZpZXdCYXNlU2V0VG9vbHRpcFRleHQoV2ViS2l0V2ViVmlld0Jhc2UqLCBj
b25zdCBjaGFyKik7CiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU2V0VG9vbHRpcEFyZWEoV2ViS2l0
V2ViVmlld0Jhc2UqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Cit2b2lkIHdlYmtpdFdlYlZp
ZXdCYXNlU2V0TW91c2VJc092ZXJTY3JvbGxiYXIoV2ViS2l0V2ViVmlld0Jhc2UqLCBXZWJLaXQ6
OldlYkhpdFRlc3RSZXN1bHREYXRhOjpJc1Njcm9sbGJhcik7CiB2b2lkIHdlYmtpdFdlYlZpZXdC
YXNlRm9yd2FyZE5leHRLZXlFdmVudChXZWJLaXRXZWJWaWV3QmFzZSopOwogdm9pZCB3ZWJraXRX
ZWJWaWV3QmFzZUZvcndhcmROZXh0V2hlZWxFdmVudChXZWJLaXRXZWJWaWV3QmFzZSopOwogdm9p
ZCB3ZWJraXRXZWJWaWV3QmFzZUNoaWxkTW92ZVJlc2l6ZShXZWJLaXRXZWJWaWV3QmFzZSosIEd0
a1dpZGdldCosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsK
</data>
<flag name="review"
          id="420956"
          type_id="1"
          status="+"
          setter="aperez"
    />
          </attachment>
      

    </bug>

</bugzilla>