<?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>233105</bug_id>
          
          <creation_ts>2021-11-14 12:40:32 -0800</creation_ts>
          <short_desc>[Model] [macOS] Add support for interaction on macOS</short_desc>
          <delta_ts>2021-11-17 23:58:36 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>dino</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1814898</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-14 12:40:32 -0800</bug_when>
    <thetext>[Model] [macOS] Add support for interaction on macOS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814899</commentid>
    <comment_count>1</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-14 12:41:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/80079386&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814901</commentid>
    <comment_count>2</comment_count>
      <attachid>444189</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-14 12:51:45 -0800</bug_when>
    <thetext>Created attachment 444189
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814920</commentid>
    <comment_count>3</comment_count>
      <attachid>444189</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-11-14 15:59:40 -0800</bug_when>
    <thetext>Comment on attachment 444189
Patch

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

&gt; Source/WebCore/Modules/model-element/ModelPlayer.h:45
&gt; +    virtual void didReceiveMouseEvent(const String&amp;, const LayoutPoint&amp;, const MonotonicTime&amp;) = 0;

I think this would be a bit nicer if it took a PlatformMouseEvent instead of this adhoc set, though I can&apos;t remember the best way to do this (e.g. how to go from a WebCore::Event to WebCore::PlatformMouseEvent, or better yet, just bypass the WebCore::Event stage altogether).

Perhaps Tim or Wenson know, as I bet drag-and-drop has to do things like that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814961</commentid>
    <comment_count>4</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-14 23:50:19 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #3)
&gt; Comment on attachment 444189 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=444189&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/model-element/ModelPlayer.h:45
&gt; &gt; +    virtual void didReceiveMouseEvent(const String&amp;, const LayoutPoint&amp;, const MonotonicTime&amp;) = 0;
&gt; 
&gt; I think this would be a bit nicer if it took a PlatformMouseEvent instead of
&gt; this adhoc set, though I can&apos;t remember the best way to do this (e.g. how to
&gt; go from a WebCore::Event to WebCore::PlatformMouseEvent, or better yet, just
&gt; bypass the WebCore::Event stage altogether).

We currently do everything through defaultEventHandler() which is using an Event. If someone can recommend a way to do this with a different approach, maybe we can forgo using Event. Note however that it&apos;s important that an Event has been dispatched through the DOM so we can check whether preventDefault() was called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814963</commentid>
    <comment_count>5</comment_count>
      <attachid>444212</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-14 23:52:29 -0800</bug_when>
    <thetext>Created attachment 444212
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814967</commentid>
    <comment_count>6</comment_count>
      <attachid>444214</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-15 00:02:09 -0800</bug_when>
    <thetext>Created attachment 444214
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814968</commentid>
    <comment_count>7</comment_count>
      <attachid>444215</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-15 00:13:11 -0800</bug_when>
    <thetext>Created attachment 444215
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815236</commentid>
    <comment_count>8</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-15 14:57:01 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #3)
&gt; Comment on attachment 444189 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=444189&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/model-element/ModelPlayer.h:45
&gt; &gt; +    virtual void didReceiveMouseEvent(const String&amp;, const LayoutPoint&amp;, const MonotonicTime&amp;) = 0;
&gt; 
&gt; I think this would be a bit nicer if it took a PlatformMouseEvent instead of
&gt; this adhoc set, though I can&apos;t remember the best way to do this (e.g. how to
&gt; go from a WebCore::Event to WebCore::PlatformMouseEvent, or better yet, just
&gt; bypass the WebCore::Event stage altogether).
&gt; 
&gt; Perhaps Tim or Wenson know, as I bet drag-and-drop has to do things like
&gt; that.

So for drag and drop, we trigger the platform drag using a PlatformMouseEvent, which we obtain from MouseEventWithHitTestResults in EventHandler. It&apos;s a bit tricky in this case though, since we&apos;re already inside `defaultEventHandler()` which just takes WebCore::Event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815374</commentid>
    <comment_count>9</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-16 00:01:32 -0800</bug_when>
    <thetext>Sam, how would you like to move forward?

I using MouseEvent is a good way to implement this feature, notably because we need to know whether the Web content has called preventDefault() to cancel the default behavior.

As for the ModelPlayer interface, we could pass in the MouseEvent directly.

I&apos;m happy to rework this patch, but would like to get some actionable feedback to improve it as it&apos;s blocking further work I&apos;d like to do with &lt;model&gt; interaction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815704</commentid>
    <comment_count>10</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-11-16 16:18:40 -0800</bug_when>
    <thetext>(In reply to Antoine Quint from comment #9)
&gt; Sam, how would you like to move forward?
&gt; 
&gt; I using MouseEvent is a good way to implement this feature, notably because
&gt; we need to know whether the Web content has called preventDefault() to
&gt; cancel the default behavior.
&gt; 
&gt; As for the ModelPlayer interface, we could pass in the MouseEvent directly.
&gt; 
&gt; I&apos;m happy to rework this patch, but would like to get some actionable
&gt; feedback to improve it as it&apos;s blocking further work I&apos;d like to do with
&gt; &lt;model&gt; interaction.

Go with what you have for now. We can refactor to use Platform stuff in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815933</commentid>
    <comment_count>11</comment_count>
      <attachid>444520</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-17 07:32:16 -0800</bug_when>
    <thetext>Created attachment 444520
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815939</commentid>
    <comment_count>12</comment_count>
      <attachid>444520</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-17 08:00:54 -0800</bug_when>
    <thetext>Comment on attachment 444520
Patch

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

&gt; Source/WebCore/Modules/model-element/HTMLModelElement.cpp:325
&gt; +    auto frame = document().frame();

IIRC best practice™ is to wrap local variables in Ref or RefPtr unless it&apos;s only passed into trivial functions (https://www.mail-archive.com/webkit-dev@lists.webkit.org/msg29670.html). Not precisely sure what constitutes &quot;trivial&quot; though :/

I think in this case it&apos;s technically safe because nothing below has the potential to trigger layout, but it&apos;s probably still better to make this `RefPtr frame`.

&gt; Source/WebCore/Modules/model-element/HTMLModelElement.cpp:334
&gt; +        m_modelPlayer-&gt;handleMouseDown(event.pageLocation(), event.timeStamp());

I would double check that `pageLocation()` does the right thing in subframes.

&gt; Source/WebCore/Modules/model-element/HTMLModelElement.cpp:351
&gt; +    auto frame = document().frame();

Ditto (`RefPtr frame`).

&gt; Source/WebKit/UIProcess/Cocoa/ModelElementControllerCocoa.mm:199
&gt; +    auto iterator = m_inlinePreviews.find(uuid);
&gt; +    if (iterator != m_inlinePreviews.end())
&gt; +        return iterator-&gt;value;
&gt; +    return nullptr;

Nit - I think the body of this function can simply be `return m_inlinePreviews.get(uuid);`

&gt; Source/WebKit/UIProcess/WebPageProxy.h:598
&gt; +    void handleMouseDownForModelElement(const String&amp;, const WebCore::LayoutPoint&amp;, const MonotonicTime);
&gt; +    void handleMouseMoveForModelElement(const String&amp;, const WebCore::LayoutPoint&amp;, const MonotonicTime);
&gt; +    void handleMouseUpForModelElement(const String&amp;, const WebCore::LayoutPoint&amp;, const MonotonicTime);

Nit - I don&apos;t think we usually go out of our way to mark pass-by-value arguments as const? Though it&apos;s fine as well, if you prefer to keep it.

&gt; Source/WebKit/WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm:184
&gt; +        page-&gt;send(Messages::WebPageProxy::HandleMouseDownForModelElement((String)[m_inlinePreview uuid].UUIDString, locationInPageCoordinates, timestamp));

Nit - I think you can omit the (String) here.

&gt; Source/WebKit/WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm:190
&gt; +        page-&gt;send(Messages::WebPageProxy::HandleMouseMoveForModelElement((String)[m_inlinePreview uuid].UUIDString, locationInPageCoordinates, timestamp));

Ditto.

&gt; Source/WebKit/WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm:196
&gt; +        page-&gt;send(Messages::WebPageProxy::HandleMouseUpForModelElement((String)[m_inlinePreview uuid].UUIDString, locationInPageCoordinates, timestamp));

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816042</commentid>
    <comment_count>13</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-17 11:53:40 -0800</bug_when>
    <thetext>Thanks for the comments Wenson, I&apos;m addressing all of those in the patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816043</commentid>
    <comment_count>14</comment_count>
      <attachid>444545</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-17 11:53:57 -0800</bug_when>
    <thetext>Created attachment 444545
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816333</commentid>
    <comment_count>15</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-17 23:58:36 -0800</bug_when>
    <thetext>Committed r285986 (244383@main): &lt;https://commits.webkit.org/244383@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444189</attachid>
            <date>2021-11-14 12:51:45 -0800</date>
            <delta_ts>2021-11-14 23:52:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>233105.patch</filename>
            <type>text/plain</type>
            <size>15402</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0NmNkZjE0YTA0NGEuLmE4YzM5ODEyOTlhNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI2IEBACisyMDIxLTExLTE0ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQu
b3JnPgorCisgICAgICAgIFtNb2RlbF0gW21hY09TXSBBZGQgc3VwcG9ydCBmb3IgaW50ZXJhY3Rp
b24gb24gbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMzEwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODAwNzkzODY+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FwdHVyZSBtb3VzZSBldmVu
dHMgYWZ0ZXIgdGhlIG1vdXNlIGJ1dHRvbiBpcyBwcmVzc2VkIG92ZXIgYSA8bW9kZWw+IGVsZW1l
bnQsCisgICAgICAgIHVubGVzcyBwcmV2ZW50RGVmYXVsdCgpIGlzIGNhbGxlZCwgYW5kIGZvcndh
cmQgdGhvc2UgZXZlbnRzIHRocm91Z2ggTW9kZWxQbGF5ZXIKKyAgICAgICAgdG8gdGhlIFVJIHBy
b2Nlc3MuCisKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50OjpkZWZhdWx0RXZlbnRI
YW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6OmRyYWdEaWRTdGFy
dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50OjpkcmFnRGlkQ2hhbmdlKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6OmRyYWdEaWRFbmQpOgorICAgICAg
ICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50Lmg6CisgICAgICAgICog
TW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmg6CisgICAgICAgICogTW9kdWxlcy9t
b2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RHVtbXlNb2RlbFBsYXllcjo6ZGlkUmVjZWl2ZU1vdXNlRXZlbnQpOgorICAgICAgICAqIE1v
ZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmg6CisKIDIwMjEtMTEt
MTIgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1dlYiBB
bmltYXRpb25zXSBBY2NlbGVyYXRlZCBhbmltYXRpb25zIHdpdGggYSBzaW5nbGUga2V5ZnJhbWUg
ZG9uJ3QgYWNjb3VudCBmb3IgcHJpb3IgZm9yd2FyZC1maWxsaW5nIGFuaW1hdGlvbnMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxF
bGVtZW50LmNwcAppbmRleCAxYjhlZTI2NTc0N2EuLjRlMDZmNzRhYTMxNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVt
ZW50LmNwcApAQCAtMzIsNiArMzIsOCBAQAogI2luY2x1ZGUgIkRPTVByb21pc2VQcm94eS5oIgog
I2luY2x1ZGUgIkVsZW1lbnRDaGlsZEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVudElubGlu
ZXMuaCIKKyNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgog
I2luY2x1ZGUgIkhUTUxTb3VyY2VFbGVtZW50LmgiCkBAIC00MCw2ICs0Miw4IEBACiAjaW5jbHVk
ZSAiTW9kZWwuaCIKICNpbmNsdWRlICJNb2RlbFBsYXllci5oIgogI2luY2x1ZGUgIk1vZGVsUGxh
eWVyUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oIgogI2lu
Y2x1ZGUgIlJlbmRlck1vZGVsLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4K
QEAgLTI5Nyw2ICszMDEsNzMgQEAgdm9pZCBIVE1MTW9kZWxFbGVtZW50OjplbnRlckZ1bGxzY3Jl
ZW4oKQogI2VuZGlmCiB9CiAKKy8vIE1BUks6IC0gSW50ZXJhY3Rpb24gc3VwcG9ydC4KKwordm9p
ZCBIVE1MTW9kZWxFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVudCkKK3sK
KyAgICBpZiAoIW1fbW9kZWxQbGF5ZXIgfHwgIW1fbW9kZWxQbGF5ZXItPnN1cHBvcnRzTW91c2VJ
bnRlcmFjdGlvbigpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHR5cGUgPSBldmVudC50
eXBlKCk7CisgICAgaWYgKHR5cGUgIT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ICYmIHR5
cGUgIT0gZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50ICYmIHR5cGUgIT0gZXZlbnROYW1lcygp
Lm1vdXNldXBFdmVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKGlzPE1vdXNlRXZl
bnQ+KGV2ZW50KSk7CisgICAgYXV0byYgbW91c2VFdmVudCA9IGRvd25jYXN0PE1vdXNlRXZlbnQ+
KGV2ZW50KTsKKworICAgIGlmIChtb3VzZUV2ZW50LmJ1dHRvbigpICE9IExlZnRCdXR0b24pCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmICh0eXBlID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25F
dmVudCAmJiAhbV9pc0RyYWdnaW5nICYmICFldmVudC5kZWZhdWx0UHJldmVudGVkKCkpCisgICAg
ICAgIGRyYWdEaWRTdGFydChtb3VzZUV2ZW50KTsKKyAgICBlbHNlIGlmICh0eXBlID09IGV2ZW50
TmFtZXMoKS5tb3VzZW1vdmVFdmVudCAmJiBtX2lzRHJhZ2dpbmcpCisgICAgICAgIGRyYWdEaWRD
aGFuZ2UobW91c2VFdmVudCk7CisgICAgZWxzZSBpZiAodHlwZSA9PSBldmVudE5hbWVzKCkubW91
c2V1cEV2ZW50ICYmIG1faXNEcmFnZ2luZykKKyAgICAgICAgZHJhZ0RpZEVuZChtb3VzZUV2ZW50
KTsKK30KKwordm9pZCBIVE1MTW9kZWxFbGVtZW50OjpkcmFnRGlkU3RhcnQoTW91c2VFdmVudCYg
ZXZlbnQpCit7CisgICAgQVNTRVJUKCFtX2lzRHJhZ2dpbmcpOworCisgICAgYXV0byBmcmFtZSA9
IGRvY3VtZW50KCkuZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm47CisK
KyAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuc2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50
KHRoaXMpOworICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAgbV9pc0RyYWdnaW5n
ID0gdHJ1ZTsKKworICAgIGlmIChtX21vZGVsUGxheWVyKQorICAgICAgICBtX21vZGVsUGxheWVy
LT5kaWRSZWNlaXZlTW91c2VFdmVudChldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQsIGV2ZW50
LmNsaWVudExvY2F0aW9uKCksIGV2ZW50LnRpbWVTdGFtcCgpKTsKK30KKwordm9pZCBIVE1MTW9k
ZWxFbGVtZW50OjpkcmFnRGlkQ2hhbmdlKE1vdXNlRXZlbnQmIGV2ZW50KQoreworICAgIEFTU0VS
VChtX2lzRHJhZ2dpbmcpOworCisgICAgZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKKworICAg
IGlmIChtX21vZGVsUGxheWVyKQorICAgICAgICBtX21vZGVsUGxheWVyLT5kaWRSZWNlaXZlTW91
c2VFdmVudChldmVudE5hbWVzKCkubW91c2Vtb3ZlRXZlbnQsIGV2ZW50LmNsaWVudExvY2F0aW9u
KCksIGV2ZW50LnRpbWVTdGFtcCgpKTsKK30KKwordm9pZCBIVE1MTW9kZWxFbGVtZW50OjpkcmFn
RGlkRW5kKE1vdXNlRXZlbnQmIGV2ZW50KQoreworICAgIEFTU0VSVChtX2lzRHJhZ2dpbmcpOwor
CisgICAgYXV0byBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQor
ICAgICAgICByZXR1cm47CisKKyAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuc2V0Q2FwdHVyaW5n
TW91c2VFdmVudHNFbGVtZW50KG51bGxwdHIpOworICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVk
KCk7CisgICAgbV9pc0RyYWdnaW5nID0gZmFsc2U7CisKKyAgICBpZiAobV9tb2RlbFBsYXllcikK
KyAgICAgICAgbV9tb2RlbFBsYXllci0+ZGlkUmVjZWl2ZU1vdXNlRXZlbnQoZXZlbnROYW1lcygp
Lm1vdXNldXBFdmVudCwgZXZlbnQuY2xpZW50TG9jYXRpb24oKSwgZXZlbnQudGltZVN0YW1wKCkp
OworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTU9ERUxfRUxFTUVOVCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5o
CmluZGV4IDM3ODAzMjllYTM5NS4uMmFkNDNlYWE5MDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmgKQEAgLTM5
LDggKzM5LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRXZlbnQ7CiBjbGFz
cyBNb2RlbDsKIGNsYXNzIE1vZGVsUGxheWVyOworY2xhc3MgTW91c2VFdmVudDsKIAogdGVtcGxh
dGU8dHlwZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZVByb3h5V2l0aFJlc29sdmVDYWxs
YmFjazsKIApAQCAtOTAsMTIgKzkyLDE4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGaW5pc2hM
b2FkaW5nKE1vZGVsUGxheWVyJikgZmluYWw7CiAgICAgdm9pZCBkaWRGYWlsTG9hZGluZyhNb2Rl
bFBsYXllciYsIGNvbnN0IFJlc291cmNlRXJyb3ImKSBmaW5hbDsKIAorICAgIHZvaWQgZGVmYXVs
dEV2ZW50SGFuZGxlcihFdmVudCYpIGZpbmFsOworICAgIHZvaWQgZHJhZ0RpZFN0YXJ0KE1vdXNl
RXZlbnQmKTsKKyAgICB2b2lkIGRyYWdEaWRDaGFuZ2UoTW91c2VFdmVudCYpOworICAgIHZvaWQg
ZHJhZ0RpZEVuZChNb3VzZUV2ZW50Jik7CisKICAgICBVUkwgbV9zb3VyY2VVUkw7CiAgICAgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+IG1fcmVzb3VyY2U7CiAgICAgUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4gbV9kYXRhOwogICAgIFJlZlB0cjxNb2RlbD4gbV9tb2RlbDsKICAg
ICBVbmlxdWVSZWY8UmVhZHlQcm9taXNlPiBtX3JlYWR5UHJvbWlzZTsKICAgICBib29sIG1fZGF0
YUNvbXBsZXRlIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNEcmFnZ2luZyB7IGZhbHNlIH07CiAK
ICAgICBSZWZQdHI8TW9kZWxQbGF5ZXI+IG1fbW9kZWxQbGF5ZXI7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5jcHAKaW5kZXgg
MTUxM2EyZDBiMjlhLi44ODM4ZDY2MTY1Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmNwcApAQCAtMzAsNCArMzAsOSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIE1vZGVsUGxheWVyOjp+TW9kZWxQbGF5ZXIoKSA9IGRlZmF1
bHQ7CiAKK2Jvb2wgTW9kZWxQbGF5ZXI6OnN1cHBvcnRzTW91c2VJbnRlcmFjdGlvbigpCit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5oCmluZGV4IDNiYWIyZjc5M2M2OS4uZmQ3MDY3OGJm
NTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9k
ZWxQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9k
ZWxQbGF5ZXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUg
IkxheW91dFBvaW50LmgiCiAjaW5jbHVkZSAiTGF5b3V0U2l6ZS5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtTGF5ZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNDAsNiArNDEsOCBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChNb2RlbCYsIExheW91dFNpemUpID0gMDsK
ICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIGxheWVyKCkgPSAwOworICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c01vdXNlSW50ZXJhY3Rpb24oKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZU1vdXNlRXZlbnQoY29uc3QgU3RyaW5nJiwgY29uc3QgTGF5b3V0UG9pbnQmLCBjb25zdCBNb25v
dG9uaWNUaW1lJikgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwCmlu
ZGV4IDQyMjgzYTY2YjFjZC4uOWQxOGJmNjI1MzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5
ZXIuY3BwCkBAIC01NCw0ICs1NCw4IEBAIFBsYXRmb3JtTGF5ZXIqIER1bW15TW9kZWxQbGF5ZXI6
OmxheWVyKCkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAordm9pZCBEdW1teU1vZGVsUGxheWVy
OjpkaWRSZWNlaXZlTW91c2VFdmVudChjb25zdCBTdHJpbmcmLCBjb25zdCBMYXlvdXRQb2ludCYs
IGNvbnN0IE1vbm90b25pY1RpbWUmKQoreworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIu
aAppbmRleCBlZTU3Mzk2ZDE4YzUuLmRiYjcwOTFmYzZlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBs
YXllci5oCkBAIC00MSw4ICs0MSw5IEBAIHByaXZhdGU6CiAgICAgRHVtbXlNb2RlbFBsYXllcihN
b2RlbFBsYXllckNsaWVudCYpOwogCiAgICAgLy8gTW9kZWxQbGF5ZXIgb3ZlcnJpZGVzLgotICAg
IHZpcnR1YWwgdm9pZCBsb2FkKE1vZGVsJiwgTGF5b3V0U2l6ZSkgb3ZlcnJpZGU7Ci0gICAgdmly
dHVhbCBQbGF0Zm9ybUxheWVyKiBsYXllcigpIG92ZXJyaWRlOworICAgIHZvaWQgbG9hZChNb2Rl
bCYsIExheW91dFNpemUpIG92ZXJyaWRlOworICAgIFBsYXRmb3JtTGF5ZXIqIGxheWVyKCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlTW91c2VFdmVudChjb25zdCBTdHJpbmcmLCBjb25z
dCBMYXlvdXRQb2ludCYsIGNvbnN0IE1vbm90b25pY1RpbWUmKSBvdmVycmlkZTsKIAogICAgIFdl
YWtQdHI8TW9kZWxQbGF5ZXJDbGllbnQ+IG1fY2xpZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggM2Y5OTM5
MWJiOTM3Li44NmE1YmQwYjQ3M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMTEt
MTQgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW01vZGVs
XSBbbWFjT1NdIEFkZCBzdXBwb3J0IGZvciBpbnRlcmFjdGlvbiBvbiBtYWNPUworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMTA1CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS84MDA3OTM4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBGb3J3YXJkIG1vdXNlIGV2ZW50cyBjYXB0dXJlZCBpbiB0aGUgV2Vi
IHByb2Nlc3MgdG8gdGhlIG1hdGNoaW5nIEFTVklubGluZVByZXZpZXcuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvTW9kZWxFbGVtZW50Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAo
V2ViS2l0OjpNb2RlbEVsZW1lbnRDb250cm9sbGVyOjptb2RlbEVsZW1lbnREaWRSZWNlaXZlTW91
c2VFdmVudCk6CisgICAgICAgICogVUlQcm9jZXNzL01vZGVsRWxlbWVudENvbnRyb2xsZXIuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5Ojptb2RlbEVsZW1lbnREaWRSZWNlaXZlTW91c2VFdmVudCk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJ
bmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL01vZGVsL21h
Yy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5tbToKKyAgICAgICAgKFdlYktpdDo6QVJL
aXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OnN1cHBvcnRzTW91c2VJbnRlcmFjdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjpkaWRSZWNlaXZl
TW91c2VFdmVudCk6CisKIDIwMjEtMTEtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCBwYXJ0aWFsIHJldmVydCBvZiByMjg1NTY1IHRvIHJl
c29sdmUgYSBQTFQ1IHJlZ3Jlc3Npb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9Nb2RlbEVsZW1lbnRDb250cm9sbGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Nb2RlbEVsZW1lbnRDb250cm9sbGVyQ29jb2EubW0KaW5kZXggNGU1
ODQ3ZGMyMzQ0Li45NTQwYTQ3YzgwOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL01vZGVsRWxlbWVudENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Nb2RlbEVsZW1lbnRDb250cm9sbGVyQ29jb2EubW0KQEAgLTQy
LDYgKzQyLDkgQEAKICNlbmRpZgogCiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX01B
QykKKyNpbXBvcnQgPFdlYkNvcmUvRXZlbnROYW1lcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9MYXlv
dXRQb2ludC5oPgorI2ltcG9ydCA8V2ViQ29yZS9MYXlvdXRVbml0Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1Jlc291cmNlRXJyb3IuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL1N5c3RlbVByZXZpZXdT
UEkuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC0xODgsNiArMTkxLDI2IEBAIHZv
aWQgTW9kZWxFbGVtZW50Q29udHJvbGxlcjo6bW9kZWxFbGVtZW50RGlkQ3JlYXRlUHJldmlldyhV
UkwgZmlsZVVSTCwgU3RyaW5nIHV1CiAgICAgfSkuZ2V0KCldOwogfQogCit2b2lkIE1vZGVsRWxl
bWVudENvbnRyb2xsZXI6Om1vZGVsRWxlbWVudERpZFJlY2VpdmVNb3VzZUV2ZW50KGNvbnN0IFN0
cmluZyYgdXVpZCwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBXZWJDb3JlOjpMYXlvdXRQb2lu
dCYgbG9jYXRpb24sIGNvbnN0IE1vbm90b25pY1RpbWUmIHRpbWVzdGFtcCkKK3sKKyAgICBhdXRv
IGl0ZXJhdG9yID0gbV9pbmxpbmVQcmV2aWV3cy5maW5kKHV1aWQpOworICAgIGlmIChpdGVyYXRv
ciA9PSBtX2lubGluZVByZXZpZXdzLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRv
IHByZXZpZXcgPSBpdGVyYXRvci0+dmFsdWU7CisgICAgYXV0byBjZ0xvY2F0aW9uID0gQ0dQb2lu
dE1ha2UobG9jYXRpb24ueCgpLnRvRmxvYXQoKSwgbG9jYXRpb24ueSgpLnRvRmxvYXQoKSk7Cisg
ICAgYXV0byB0aW1lSW50ZXJ2YWwgPSB0aW1lc3RhbXAuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1
ZSgpOworICAgIGF1dG8mIGV2ZW50TmFtZXMgPSBXZWJDb3JlOjpldmVudE5hbWVzKCk7CisgICAg
aWYgKHR5cGUgPT0gZXZlbnROYW1lcy5tb3VzZWRvd25FdmVudCkKKyAgICAgICAgW3ByZXZpZXcg
bW91c2VEb3duQXRMb2NhdGlvbjpjZ0xvY2F0aW9uIHRpbWVzdGFtcDp0aW1lSW50ZXJ2YWxdOwor
ICAgIGVsc2UgaWYgKHR5cGUgPT0gZXZlbnROYW1lcy5tb3VzZW1vdmVFdmVudCkKKyAgICAgICAg
W3ByZXZpZXcgbW91c2VEcmFnZ2VkQXRMb2NhdGlvbjpjZ0xvY2F0aW9uIHRpbWVzdGFtcDp0aW1l
SW50ZXJ2YWxdOworICAgIGVsc2UgaWYgKHR5cGUgPT0gZXZlbnROYW1lcy5tb3VzZXVwRXZlbnQp
CisgICAgICAgIFtwcmV2aWV3IG1vdXNlVXBBdExvY2F0aW9uOmNnTG9jYXRpb24gdGltZXN0YW1w
OnRpbWVJbnRlcnZhbF07CisgICAgZWxzZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
K30KKwogI2VuZGlmCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01v
ZGVsRWxlbWVudENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01vZGVsRWxl
bWVudENvbnRyb2xsZXIuaAppbmRleCBiMzhkZDE4M2I0ODcuLmQwNGUzMjg1MDVmMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTW9kZWxFbGVtZW50Q29udHJvbGxlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01vZGVsRWxlbWVudENvbnRyb2xsZXIuaApAQCAt
NTMsNiArNTMsNyBAQCBwdWJsaWM6CiAjZW5kaWYKICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BS
RVZJRVdfTUFDKQogICAgIHZvaWQgbW9kZWxFbGVtZW50RGlkQ3JlYXRlUHJldmlldyhVUkwsIFN0
cmluZywgV2ViQ29yZTo6RmxvYXRTaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVk
PHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQzMl90PiwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4pPiYm
KTsKKyAgICB2b2lkIG1vZGVsRWxlbWVudERpZFJlY2VpdmVNb3VzZUV2ZW50KGNvbnN0IFN0cmlu
ZyYgdXVpZCwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBXZWJDb3JlOjpMYXlvdXRQb2ludCYs
IGNvbnN0IE1vbm90b25pY1RpbWUmKTsKICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZjlmNzdlMGU2ZmFjLi40MjY2ZWFlNzA2
ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTA4MzMs
NiArMTA4MzMsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6Om1vZGVsRWxlbWVudERpZENyZWF0ZVBy
ZXZpZXcoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXUKIHsKICAgICBtb2RlbEVsZW1l
bnRDb250cm9sbGVyKCktPm1vZGVsRWxlbWVudERpZENyZWF0ZVByZXZpZXcodXJsLCB1dWlkLCBz
aXplLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CisKK3ZvaWQgV2ViUGFnZVByb3h5
Ojptb2RlbEVsZW1lbnREaWRSZWNlaXZlTW91c2VFdmVudChjb25zdCBTdHJpbmcmIHV1aWQsIGNv
bnN0IFN0cmluZyYgdHlwZSwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmIGxvY2F0aW9uLCBj
b25zdCBNb25vdG9uaWNUaW1lJiB0aW1lc3RhbXApCit7CisgICAgbW9kZWxFbGVtZW50Q29udHJv
bGxlcigpLT5tb2RlbEVsZW1lbnREaWRSZWNlaXZlTW91c2VFdmVudCh1dWlkLCB0eXBlLCBsb2Nh
dGlvbiwgdGltZXN0YW1wKTsKK30KICNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBmMDFmMzU0YWU3OGMuLjY2NGM3
MTg2NzhhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTU5Myw2
ICs1OTMsNyBAQCBwdWJsaWM6CiAjZW5kaWYKICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJ
RVdfTUFDKQogICAgIHZvaWQgbW9kZWxFbGVtZW50RGlkQ3JlYXRlUHJldmlldyhjb25zdCBVUkwm
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKEV4cGVjdGVkPHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQzMl90PiwgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIG1vZGVsRWxlbWVudERpZFJlY2VpdmVNb3Vz
ZUV2ZW50KGNvbnN0IFN0cmluZyYgdXVpZCwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBXZWJD
b3JlOjpMYXlvdXRQb2ludCYsIGNvbnN0IE1vbm90b25pY1RpbWUmKTsKICNlbmRpZgogCiAjaWYg
RU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYjNkYzhkMjAxY2QzLi5mMTU3OWE2ZWIwNDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KQEAgLTU4OCw2ICs1ODgsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlm
CiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX01BQykKICAgICBNb2RlbEVsZW1lbnRE
aWRDcmVhdGVQcmV2aWV3KFVSTCB1cmwsIFN0cmluZyB1dWlkLCBXZWJDb3JlOjpGbG9hdFNpemUg
c2l6ZSkgLT4gKEV4cGVjdGVkPHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQzMl90PiwgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvcj4gcmVzdWx0KSBBc3luYworICAgIE1vZGVsRWxlbWVudERpZFJlY2VpdmVN
b3VzZUV2ZW50KFN0cmluZyB1dWlkLCBTdHJpbmcgdHlwZSwgV2ViQ29yZTo6TGF5b3V0UG9pbnQg
bG9jYXRpb24sIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQogI2VuZGlmCiAKICAgICByZXF1ZXN0
UGVybWlzc2lvbihzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbiwgc3RydWN0IFdl
YkNvcmU6OlBlcm1pc3Npb25EZXNjcmlwdG9yIGRlc2NyaXB0b3IpIC0+IChlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6UGVybWlzc2lvblN0YXRlIHN0YXRlKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
ci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZp
ZXdNb2RlbFBsYXllci5oCmluZGV4IDRmMDIwNzBjNDI2NS4uMTdlNzE2NmQyMTY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmll
d01vZGVsUGxheWVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9B
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5oCkBAIC00Nyw4ICs0NywxMCBAQCBwcml2YXRl
OgogICAgIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyKFdlYlBhZ2UmLCBXZWJDb3JlOjpN
b2RlbFBsYXllckNsaWVudCYpOwogCiAgICAgLy8gV2ViQ29yZTo6TW9kZWxQbGF5ZXIgb3ZlcnJp
ZGVzLgotICAgIHZpcnR1YWwgdm9pZCBsb2FkKFdlYkNvcmU6Ok1vZGVsJiwgV2ViQ29yZTo6TGF5
b3V0U2l6ZSkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBsYXllcigpIG92
ZXJyaWRlOworICAgIHZvaWQgbG9hZChXZWJDb3JlOjpNb2RlbCYsIFdlYkNvcmU6OkxheW91dFNp
emUpIG92ZXJyaWRlOworICAgIFBsYXRmb3JtTGF5ZXIqIGxheWVyKCkgb3ZlcnJpZGU7CisgICAg
Ym9vbCBzdXBwb3J0c01vdXNlSW50ZXJhY3Rpb24oKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVNb3VzZUV2ZW50KGNvbnN0IFN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkxheW91dFBvaW50
JiwgY29uc3QgTW9ub3RvbmljVGltZSYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBjcmVhdGVGaWxl
KFdlYkNvcmU6Ok1vZGVsJik7CiAgICAgdm9pZCBjbGVhckZpbGUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQ
bGF5ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5l
UHJldmlld01vZGVsUGxheWVyLm1tCmluZGV4IDJkZjI0NTFhZmMzMS4uNjA3MmRiM2JlNWY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5l
UHJldmlld01vZGVsUGxheWVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2Rl
bC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW0KQEAgLTE3Miw2ICsxNzIsMjAg
QEAgUGxhdGZvcm1MYXllciogQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OmxheWVyKCkK
ICAgICByZXR1cm4gW21faW5saW5lUHJldmlldyBsYXllcl07CiB9CiAKK2Jvb2wgQVJLaXRJbmxp
bmVQcmV2aWV3TW9kZWxQbGF5ZXI6OnN1cHBvcnRzTW91c2VJbnRlcmFjdGlvbigpCit7CisjaWYg
RU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX01BQykKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbmRp
ZgorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBBUktpdElubGluZVByZXZpZXdNb2RlbFBs
YXllcjo6ZGlkUmVjZWl2ZU1vdXNlRXZlbnQoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBMYXlv
dXRQb2ludCYgbG9jYXRpb24sIGNvbnN0IE1vbm90b25pY1RpbWUmIHRpbWVzdGFtcCkKK3sKKyAg
ICBpZiAobV9wYWdlKQorICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6TW9kZWxFbGVtZW50RGlkUmVjZWl2ZU1vdXNlRXZlbnQoKFN0cmluZylbbV9pbmxpbmVQcmV2
aWV3IHV1aWRdLlVVSURTdHJpbmcsIHR5cGUsIGxvY2F0aW9uLCB0aW1lc3RhbXApKTsKK30KKwog
fQogCiAjZW5kaWYK
</data>
<flag name="commit-queue"
          id="469153"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444212</attachid>
            <date>2021-11-14 23:52:29 -0800</date>
            <delta_ts>2021-11-15 00:29:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>233105.patch</filename>
            <type>text/plain</type>
            <size>15393</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0NmNkZjE0YTA0NGEuLmE4YzM5ODEyOTlhNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI2IEBACisyMDIxLTExLTE0ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQu
b3JnPgorCisgICAgICAgIFtNb2RlbF0gW21hY09TXSBBZGQgc3VwcG9ydCBmb3IgaW50ZXJhY3Rp
b24gb24gbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMzEwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODAwNzkzODY+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FwdHVyZSBtb3VzZSBldmVu
dHMgYWZ0ZXIgdGhlIG1vdXNlIGJ1dHRvbiBpcyBwcmVzc2VkIG92ZXIgYSA8bW9kZWw+IGVsZW1l
bnQsCisgICAgICAgIHVubGVzcyBwcmV2ZW50RGVmYXVsdCgpIGlzIGNhbGxlZCwgYW5kIGZvcndh
cmQgdGhvc2UgZXZlbnRzIHRocm91Z2ggTW9kZWxQbGF5ZXIKKyAgICAgICAgdG8gdGhlIFVJIHBy
b2Nlc3MuCisKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50OjpkZWZhdWx0RXZlbnRI
YW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6OmRyYWdEaWRTdGFy
dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50OjpkcmFnRGlkQ2hhbmdlKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6OmRyYWdEaWRFbmQpOgorICAgICAg
ICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50Lmg6CisgICAgICAgICog
TW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmg6CisgICAgICAgICogTW9kdWxlcy9t
b2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RHVtbXlNb2RlbFBsYXllcjo6ZGlkUmVjZWl2ZU1vdXNlRXZlbnQpOgorICAgICAgICAqIE1v
ZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmg6CisKIDIwMjEtMTEt
MTIgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1dlYiBB
bmltYXRpb25zXSBBY2NlbGVyYXRlZCBhbmltYXRpb25zIHdpdGggYSBzaW5nbGUga2V5ZnJhbWUg
ZG9uJ3QgYWNjb3VudCBmb3IgcHJpb3IgZm9yd2FyZC1maWxsaW5nIGFuaW1hdGlvbnMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxF
bGVtZW50LmNwcAppbmRleCAxYjhlZTI2NTc0N2EuLjRlMDZmNzRhYTMxNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVt
ZW50LmNwcApAQCAtMzIsNiArMzIsOCBAQAogI2luY2x1ZGUgIkRPTVByb21pc2VQcm94eS5oIgog
I2luY2x1ZGUgIkVsZW1lbnRDaGlsZEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVudElubGlu
ZXMuaCIKKyNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgog
I2luY2x1ZGUgIkhUTUxTb3VyY2VFbGVtZW50LmgiCkBAIC00MCw2ICs0Miw4IEBACiAjaW5jbHVk
ZSAiTW9kZWwuaCIKICNpbmNsdWRlICJNb2RlbFBsYXllci5oIgogI2luY2x1ZGUgIk1vZGVsUGxh
eWVyUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oIgogI2lu
Y2x1ZGUgIlJlbmRlck1vZGVsLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4K
QEAgLTI5Nyw2ICszMDEsNzMgQEAgdm9pZCBIVE1MTW9kZWxFbGVtZW50OjplbnRlckZ1bGxzY3Jl
ZW4oKQogI2VuZGlmCiB9CiAKKy8vIE1BUks6IC0gSW50ZXJhY3Rpb24gc3VwcG9ydC4KKwordm9p
ZCBIVE1MTW9kZWxFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVudCkKK3sK
KyAgICBpZiAoIW1fbW9kZWxQbGF5ZXIgfHwgIW1fbW9kZWxQbGF5ZXItPnN1cHBvcnRzTW91c2VJ
bnRlcmFjdGlvbigpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHR5cGUgPSBldmVudC50
eXBlKCk7CisgICAgaWYgKHR5cGUgIT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ICYmIHR5
cGUgIT0gZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50ICYmIHR5cGUgIT0gZXZlbnROYW1lcygp
Lm1vdXNldXBFdmVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKGlzPE1vdXNlRXZl
bnQ+KGV2ZW50KSk7CisgICAgYXV0byYgbW91c2VFdmVudCA9IGRvd25jYXN0PE1vdXNlRXZlbnQ+
KGV2ZW50KTsKKworICAgIGlmIChtb3VzZUV2ZW50LmJ1dHRvbigpICE9IExlZnRCdXR0b24pCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmICh0eXBlID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25F
dmVudCAmJiAhbV9pc0RyYWdnaW5nICYmICFldmVudC5kZWZhdWx0UHJldmVudGVkKCkpCisgICAg
ICAgIGRyYWdEaWRTdGFydChtb3VzZUV2ZW50KTsKKyAgICBlbHNlIGlmICh0eXBlID09IGV2ZW50
TmFtZXMoKS5tb3VzZW1vdmVFdmVudCAmJiBtX2lzRHJhZ2dpbmcpCisgICAgICAgIGRyYWdEaWRD
aGFuZ2UobW91c2VFdmVudCk7CisgICAgZWxzZSBpZiAodHlwZSA9PSBldmVudE5hbWVzKCkubW91
c2V1cEV2ZW50ICYmIG1faXNEcmFnZ2luZykKKyAgICAgICAgZHJhZ0RpZEVuZChtb3VzZUV2ZW50
KTsKK30KKwordm9pZCBIVE1MTW9kZWxFbGVtZW50OjpkcmFnRGlkU3RhcnQoTW91c2VFdmVudCYg
ZXZlbnQpCit7CisgICAgQVNTRVJUKCFtX2lzRHJhZ2dpbmcpOworCisgICAgYXV0byBmcmFtZSA9
IGRvY3VtZW50KCkuZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm47CisK
KyAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuc2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50
KHRoaXMpOworICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAgbV9pc0RyYWdnaW5n
ID0gdHJ1ZTsKKworICAgIGlmIChtX21vZGVsUGxheWVyKQorICAgICAgICBtX21vZGVsUGxheWVy
LT5kaWRSZWNlaXZlTW91c2VFdmVudChldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQsIGV2ZW50
LmNsaWVudExvY2F0aW9uKCksIGV2ZW50LnRpbWVTdGFtcCgpKTsKK30KKwordm9pZCBIVE1MTW9k
ZWxFbGVtZW50OjpkcmFnRGlkQ2hhbmdlKE1vdXNlRXZlbnQmIGV2ZW50KQoreworICAgIEFTU0VS
VChtX2lzRHJhZ2dpbmcpOworCisgICAgZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKKworICAg
IGlmIChtX21vZGVsUGxheWVyKQorICAgICAgICBtX21vZGVsUGxheWVyLT5kaWRSZWNlaXZlTW91
c2VFdmVudChldmVudE5hbWVzKCkubW91c2Vtb3ZlRXZlbnQsIGV2ZW50LmNsaWVudExvY2F0aW9u
KCksIGV2ZW50LnRpbWVTdGFtcCgpKTsKK30KKwordm9pZCBIVE1MTW9kZWxFbGVtZW50OjpkcmFn
RGlkRW5kKE1vdXNlRXZlbnQmIGV2ZW50KQoreworICAgIEFTU0VSVChtX2lzRHJhZ2dpbmcpOwor
CisgICAgYXV0byBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQor
ICAgICAgICByZXR1cm47CisKKyAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuc2V0Q2FwdHVyaW5n
TW91c2VFdmVudHNFbGVtZW50KG51bGxwdHIpOworICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVk
KCk7CisgICAgbV9pc0RyYWdnaW5nID0gZmFsc2U7CisKKyAgICBpZiAobV9tb2RlbFBsYXllcikK
KyAgICAgICAgbV9tb2RlbFBsYXllci0+ZGlkUmVjZWl2ZU1vdXNlRXZlbnQoZXZlbnROYW1lcygp
Lm1vdXNldXBFdmVudCwgZXZlbnQuY2xpZW50TG9jYXRpb24oKSwgZXZlbnQudGltZVN0YW1wKCkp
OworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTU9ERUxfRUxFTUVOVCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5o
CmluZGV4IDM3ODAzMjllYTM5NS4uMmFkNDNlYWE5MDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmgKQEAgLTM5
LDggKzM5LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRXZlbnQ7CiBjbGFz
cyBNb2RlbDsKIGNsYXNzIE1vZGVsUGxheWVyOworY2xhc3MgTW91c2VFdmVudDsKIAogdGVtcGxh
dGU8dHlwZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZVByb3h5V2l0aFJlc29sdmVDYWxs
YmFjazsKIApAQCAtOTAsMTIgKzkyLDE4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGaW5pc2hM
b2FkaW5nKE1vZGVsUGxheWVyJikgZmluYWw7CiAgICAgdm9pZCBkaWRGYWlsTG9hZGluZyhNb2Rl
bFBsYXllciYsIGNvbnN0IFJlc291cmNlRXJyb3ImKSBmaW5hbDsKIAorICAgIHZvaWQgZGVmYXVs
dEV2ZW50SGFuZGxlcihFdmVudCYpIGZpbmFsOworICAgIHZvaWQgZHJhZ0RpZFN0YXJ0KE1vdXNl
RXZlbnQmKTsKKyAgICB2b2lkIGRyYWdEaWRDaGFuZ2UoTW91c2VFdmVudCYpOworICAgIHZvaWQg
ZHJhZ0RpZEVuZChNb3VzZUV2ZW50Jik7CisKICAgICBVUkwgbV9zb3VyY2VVUkw7CiAgICAgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+IG1fcmVzb3VyY2U7CiAgICAgUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4gbV9kYXRhOwogICAgIFJlZlB0cjxNb2RlbD4gbV9tb2RlbDsKICAg
ICBVbmlxdWVSZWY8UmVhZHlQcm9taXNlPiBtX3JlYWR5UHJvbWlzZTsKICAgICBib29sIG1fZGF0
YUNvbXBsZXRlIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNEcmFnZ2luZyB7IGZhbHNlIH07CiAK
ICAgICBSZWZQdHI8TW9kZWxQbGF5ZXI+IG1fbW9kZWxQbGF5ZXI7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5jcHAKaW5kZXgg
MTUxM2EyZDBiMjlhLi44ODM4ZDY2MTY1Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmNwcApAQCAtMzAsNCArMzAsOSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIE1vZGVsUGxheWVyOjp+TW9kZWxQbGF5ZXIoKSA9IGRlZmF1
bHQ7CiAKK2Jvb2wgTW9kZWxQbGF5ZXI6OnN1cHBvcnRzTW91c2VJbnRlcmFjdGlvbigpCit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5oCmluZGV4IDNiYWIyZjc5M2M2OS4uMzBkODhhNDRl
MWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9k
ZWxQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9k
ZWxQbGF5ZXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUg
IkxheW91dFBvaW50LmgiCiAjaW5jbHVkZSAiTGF5b3V0U2l6ZS5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtTGF5ZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNDAsNiArNDEsOCBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChNb2RlbCYsIExheW91dFNpemUpID0gMDsK
ICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIGxheWVyKCkgPSAwOworICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c01vdXNlSW50ZXJhY3Rpb24oKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZU1vdXNlRXZlbnQoY29uc3QgU3RyaW5nJiwgY29uc3QgTGF5b3V0UG9pbnQmLCBjb25zdCBNb25v
dG9uaWNUaW1lKSA9IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5jcHAKaW5k
ZXggNDIyODNhNjZiMWNkLi5jNjFmMTU1N2QxYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXll
ci5jcHAKQEAgLTU0LDQgKzU0LDggQEAgUGxhdGZvcm1MYXllciogRHVtbXlNb2RlbFBsYXllcjo6
bGF5ZXIoKQogICAgIHJldHVybiBudWxscHRyOwogfQogCit2b2lkIER1bW15TW9kZWxQbGF5ZXI6
OmRpZFJlY2VpdmVNb3VzZUV2ZW50KGNvbnN0IFN0cmluZyYsIGNvbnN0IExheW91dFBvaW50Jiwg
Y29uc3QgTW9ub3RvbmljVGltZSkKK3sKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmgK
aW5kZXggZWU1NzM5NmQxOGM1Li40ODhmZjg2OTI2MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5
ZXIuaApAQCAtNDEsOCArNDEsOSBAQCBwcml2YXRlOgogICAgIER1bW15TW9kZWxQbGF5ZXIoTW9k
ZWxQbGF5ZXJDbGllbnQmKTsKIAogICAgIC8vIE1vZGVsUGxheWVyIG92ZXJyaWRlcy4KLSAgICB2
aXJ0dWFsIHZvaWQgbG9hZChNb2RlbCYsIExheW91dFNpemUpIG92ZXJyaWRlOwotICAgIHZpcnR1
YWwgUGxhdGZvcm1MYXllciogbGF5ZXIoKSBvdmVycmlkZTsKKyAgICB2b2lkIGxvYWQoTW9kZWwm
LCBMYXlvdXRTaXplKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybUxheWVyKiBsYXllcigpIG92ZXJy
aWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZU1vdXNlRXZlbnQoY29uc3QgU3RyaW5nJiwgY29uc3Qg
TGF5b3V0UG9pbnQmLCBjb25zdCBNb25vdG9uaWNUaW1lKSBvdmVycmlkZTsKIAogICAgIFdlYWtQ
dHI8TW9kZWxQbGF5ZXJDbGllbnQ+IG1fY2xpZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggM2Y5OTM5MWJi
OTM3Li44NmE1YmQwYjQ3M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMTEtMTQg
IEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW01vZGVsXSBb
bWFjT1NdIEFkZCBzdXBwb3J0IGZvciBpbnRlcmFjdGlvbiBvbiBtYWNPUworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMTA1CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84MDA3OTM4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBGb3J3YXJkIG1vdXNlIGV2ZW50cyBjYXB0dXJlZCBpbiB0aGUgV2ViIHBy
b2Nlc3MgdG8gdGhlIG1hdGNoaW5nIEFTVklubGluZVByZXZpZXcuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvTW9kZWxFbGVtZW50Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoV2Vi
S2l0OjpNb2RlbEVsZW1lbnRDb250cm9sbGVyOjptb2RlbEVsZW1lbnREaWRSZWNlaXZlTW91c2VF
dmVudCk6CisgICAgICAgICogVUlQcm9jZXNzL01vZGVsRWxlbWVudENvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5Ojptb2RlbEVsZW1lbnREaWRSZWNlaXZlTW91c2VFdmVudCk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxp
bmVQcmV2aWV3TW9kZWxQbGF5ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL01vZGVsL21hYy9B
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5tbToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJ
bmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OnN1cHBvcnRzTW91c2VJbnRlcmFjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjpkaWRSZWNlaXZlTW91
c2VFdmVudCk6CisKIDIwMjEtMTEtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCBwYXJ0aWFsIHJldmVydCBvZiByMjg1NTY1IHRvIHJlc29s
dmUgYSBQTFQ1IHJlZ3Jlc3Npb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9Nb2RlbEVsZW1lbnRDb250cm9sbGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9Nb2RlbEVsZW1lbnRDb250cm9sbGVyQ29jb2EubW0KaW5kZXggNGU1ODQ3
ZGMyMzQ0Li45YjIxYjFkZWEyNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL01vZGVsRWxlbWVudENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Nb2RlbEVsZW1lbnRDb250cm9sbGVyQ29jb2EubW0KQEAgLTQyLDYg
KzQyLDkgQEAKICNlbmRpZgogCiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX01BQykK
KyNpbXBvcnQgPFdlYkNvcmUvRXZlbnROYW1lcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9MYXlvdXRQ
b2ludC5oPgorI2ltcG9ydCA8V2ViQ29yZS9MYXlvdXRVbml0Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1Jlc291cmNlRXJyb3IuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL1N5c3RlbVByZXZpZXdTUEku
aD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC0xODgsNiArMTkxLDI2IEBAIHZvaWQg
TW9kZWxFbGVtZW50Q29udHJvbGxlcjo6bW9kZWxFbGVtZW50RGlkQ3JlYXRlUHJldmlldyhVUkwg
ZmlsZVVSTCwgU3RyaW5nIHV1CiAgICAgfSkuZ2V0KCldOwogfQogCit2b2lkIE1vZGVsRWxlbWVu
dENvbnRyb2xsZXI6Om1vZGVsRWxlbWVudERpZFJlY2VpdmVNb3VzZUV2ZW50KGNvbnN0IFN0cmlu
ZyYgdXVpZCwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBXZWJDb3JlOjpMYXlvdXRQb2ludCYg
bG9jYXRpb24sIGNvbnN0IE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQoreworICAgIGF1dG8gaXRl
cmF0b3IgPSBtX2lubGluZVByZXZpZXdzLmZpbmQodXVpZCk7CisgICAgaWYgKGl0ZXJhdG9yID09
IG1faW5saW5lUHJldmlld3MuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gcHJl
dmlldyA9IGl0ZXJhdG9yLT52YWx1ZTsKKyAgICBhdXRvIGNnTG9jYXRpb24gPSBDR1BvaW50TWFr
ZShsb2NhdGlvbi54KCkudG9GbG9hdCgpLCBsb2NhdGlvbi55KCkudG9GbG9hdCgpKTsKKyAgICBh
dXRvIHRpbWVJbnRlcnZhbCA9IHRpbWVzdGFtcC5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCk7
CisgICAgYXV0byYgZXZlbnROYW1lcyA9IFdlYkNvcmU6OmV2ZW50TmFtZXMoKTsKKyAgICBpZiAo
dHlwZSA9PSBldmVudE5hbWVzLm1vdXNlZG93bkV2ZW50KQorICAgICAgICBbcHJldmlldyBtb3Vz
ZURvd25BdExvY2F0aW9uOmNnTG9jYXRpb24gdGltZXN0YW1wOnRpbWVJbnRlcnZhbF07CisgICAg
ZWxzZSBpZiAodHlwZSA9PSBldmVudE5hbWVzLm1vdXNlbW92ZUV2ZW50KQorICAgICAgICBbcHJl
dmlldyBtb3VzZURyYWdnZWRBdExvY2F0aW9uOmNnTG9jYXRpb24gdGltZXN0YW1wOnRpbWVJbnRl
cnZhbF07CisgICAgZWxzZSBpZiAodHlwZSA9PSBldmVudE5hbWVzLm1vdXNldXBFdmVudCkKKyAg
ICAgICAgW3ByZXZpZXcgbW91c2VVcEF0TG9jYXRpb246Y2dMb2NhdGlvbiB0aW1lc3RhbXA6dGlt
ZUludGVydmFsXTsKKyAgICBlbHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQor
CiAjZW5kaWYKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTW9kZWxF
bGVtZW50Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTW9kZWxFbGVtZW50
Q29udHJvbGxlci5oCmluZGV4IGIzOGRkMTgzYjQ4Ny4uZDg3MTAzNGNiMmU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Nb2RlbEVsZW1lbnRDb250cm9sbGVyLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTW9kZWxFbGVtZW50Q29udHJvbGxlci5oCkBAIC01Myw2
ICs1Myw3IEBAIHB1YmxpYzoKICNlbmRpZgogI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklF
V19NQUMpCiAgICAgdm9pZCBtb2RlbEVsZW1lbnREaWRDcmVhdGVQcmV2aWV3KFVSTCwgU3RyaW5n
LCBXZWJDb3JlOjpGbG9hdFNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8c3Rk
OjpwYWlyPFN0cmluZywgdWludDMyX3Q+LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPik+JiYpOwor
ICAgIHZvaWQgbW9kZWxFbGVtZW50RGlkUmVjZWl2ZU1vdXNlRXZlbnQoY29uc3QgU3RyaW5nJiB1
dWlkLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFdlYkNvcmU6OkxheW91dFBvaW50JiwgY29u
c3QgTW9ub3RvbmljVGltZSk7CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGY5Zjc3ZTBlNmZhYy4uZTFlZWZhYThhZWQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEwODMzLDYgKzEw
ODMzLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojptb2RlbEVsZW1lbnREaWRDcmVhdGVQcmV2aWV3
KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHV1CiB7CiAgICAgbW9kZWxFbGVtZW50Q29u
dHJvbGxlcigpLT5tb2RlbEVsZW1lbnREaWRDcmVhdGVQcmV2aWV3KHVybCwgdXVpZCwgc2l6ZSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6bW9k
ZWxFbGVtZW50RGlkUmVjZWl2ZU1vdXNlRXZlbnQoY29uc3QgU3RyaW5nJiB1dWlkLCBjb25zdCBT
dHJpbmcmIHR5cGUsIGNvbnN0IFdlYkNvcmU6OkxheW91dFBvaW50JiBsb2NhdGlvbiwgY29uc3Qg
TW9ub3RvbmljVGltZSB0aW1lc3RhbXApCit7CisgICAgbW9kZWxFbGVtZW50Q29udHJvbGxlcigp
LT5tb2RlbEVsZW1lbnREaWRSZWNlaXZlTW91c2VFdmVudCh1dWlkLCB0eXBlLCBsb2NhdGlvbiwg
dGltZXN0YW1wKTsKK30KICNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBmMDFmMzU0YWU3OGMuLjY3OTg2NGZhNDFl
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTU5Myw2ICs1OTMs
NyBAQCBwdWJsaWM6CiAjZW5kaWYKICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfTUFD
KQogICAgIHZvaWQgbW9kZWxFbGVtZW50RGlkQ3JlYXRlUHJldmlldyhjb25zdCBVUkwmLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEV4cGVjdGVkPHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQzMl90PiwgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIG1vZGVsRWxlbWVudERpZFJlY2VpdmVNb3VzZUV2ZW50
KGNvbnN0IFN0cmluZyYgdXVpZCwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBXZWJDb3JlOjpM
YXlvdXRQb2ludCYsIGNvbnN0IE1vbm90b25pY1RpbWUpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUo
QVBQTEVfUEFZX0FNU19VSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgppbmRleCBiM2RjOGQyMDFjZDMuLmYxNTc5YTZlYjA0NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAt
NTg4LDYgKzU4OCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYKICNpZiBF
TkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfTUFDKQogICAgIE1vZGVsRWxlbWVudERpZENyZWF0
ZVByZXZpZXcoVVJMIHVybCwgU3RyaW5nIHV1aWQsIFdlYkNvcmU6OkZsb2F0U2l6ZSBzaXplKSAt
PiAoRXhwZWN0ZWQ8c3RkOjpwYWlyPFN0cmluZywgdWludDMyX3Q+LCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yPiByZXN1bHQpIEFzeW5jCisgICAgTW9kZWxFbGVtZW50RGlkUmVjZWl2ZU1vdXNlRXZl
bnQoU3RyaW5nIHV1aWQsIFN0cmluZyB0eXBlLCBXZWJDb3JlOjpMYXlvdXRQb2ludCBsb2NhdGlv
biwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXApCiAjZW5kaWYKIAogICAgIHJlcXVlc3RQZXJtaXNz
aW9uKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luLCBzdHJ1Y3QgV2ViQ29yZTo6
UGVybWlzc2lvbkRlc2NyaXB0b3IgZGVzY3JpcHRvcikgLT4gKGVudW06dWludDhfdCBXZWJDb3Jl
OjpQZXJtaXNzaW9uU3RhdGUgc3RhdGUpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVs
UGxheWVyLmgKaW5kZXggNGYwMjA3MGM0MjY1Li4xMDhhYmQ3NGE2NDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQ
bGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5s
aW5lUHJldmlld01vZGVsUGxheWVyLmgKQEAgLTQ3LDggKzQ3LDEwIEBAIHByaXZhdGU6CiAgICAg
QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIoV2ViUGFnZSYsIFdlYkNvcmU6Ok1vZGVsUGxh
eWVyQ2xpZW50Jik7CiAKICAgICAvLyBXZWJDb3JlOjpNb2RlbFBsYXllciBvdmVycmlkZXMuCi0g
ICAgdmlydHVhbCB2b2lkIGxvYWQoV2ViQ29yZTo6TW9kZWwmLCBXZWJDb3JlOjpMYXlvdXRTaXpl
KSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIGxheWVyKCkgb3ZlcnJpZGU7
CisgICAgdm9pZCBsb2FkKFdlYkNvcmU6Ok1vZGVsJiwgV2ViQ29yZTo6TGF5b3V0U2l6ZSkgb3Zl
cnJpZGU7CisgICAgUGxhdGZvcm1MYXllciogbGF5ZXIoKSBvdmVycmlkZTsKKyAgICBib29sIHN1
cHBvcnRzTW91c2VJbnRlcmFjdGlvbigpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZU1v
dXNlRXZlbnQoY29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmLCBjb25z
dCBNb25vdG9uaWNUaW1lKSBvdmVycmlkZTsKIAogICAgIHZvaWQgY3JlYXRlRmlsZShXZWJDb3Jl
OjpNb2RlbCYpOwogICAgIHZvaWQgY2xlYXJGaWxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1t
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZpZXdN
b2RlbFBsYXllci5tbQppbmRleCAyZGYyNDUxYWZjMzEuLmQ1YThiNWNiYzBjMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZpZXdN
b2RlbFBsYXllci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FS
S2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1tCkBAIC0xNzIsNiArMTcyLDIwIEBAIFBsYXRm
b3JtTGF5ZXIqIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjpsYXllcigpCiAgICAgcmV0
dXJuIFttX2lubGluZVByZXZpZXcgbGF5ZXJdOwogfQogCitib29sIEFSS2l0SW5saW5lUHJldmll
d01vZGVsUGxheWVyOjpzdXBwb3J0c01vdXNlSW50ZXJhY3Rpb24oKQoreworI2lmIEVOQUJMRShB
UktJVF9JTkxJTkVfUFJFVklFV19NQUMpCisgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OmRp
ZFJlY2VpdmVNb3VzZUV2ZW50KGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgTGF5b3V0UG9pbnQm
IGxvY2F0aW9uLCBjb25zdCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCkKK3sKKyAgICBpZiAobV9w
YWdlKQorICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TW9kZWxF
bGVtZW50RGlkUmVjZWl2ZU1vdXNlRXZlbnQoKFN0cmluZylbbV9pbmxpbmVQcmV2aWV3IHV1aWRd
LlVVSURTdHJpbmcsIHR5cGUsIGxvY2F0aW9uLCB0aW1lc3RhbXApKTsKK30KKwogfQogCiAjZW5k
aWYK
</data>
<flag name="commit-queue"
          id="469182"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444214</attachid>
            <date>2021-11-15 00:02:09 -0800</date>
            <delta_ts>2021-11-15 00:20:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>233105.patch</filename>
            <type>text/plain</type>
            <size>15571</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0NmNkZjE0YTA0NGEuLmE4YzM5ODEyOTlhNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI2IEBACisyMDIxLTExLTE0ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQu
b3JnPgorCisgICAgICAgIFtNb2RlbF0gW21hY09TXSBBZGQgc3VwcG9ydCBmb3IgaW50ZXJhY3Rp
b24gb24gbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMzEwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODAwNzkzODY+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FwdHVyZSBtb3VzZSBldmVu
dHMgYWZ0ZXIgdGhlIG1vdXNlIGJ1dHRvbiBpcyBwcmVzc2VkIG92ZXIgYSA8bW9kZWw+IGVsZW1l
bnQsCisgICAgICAgIHVubGVzcyBwcmV2ZW50RGVmYXVsdCgpIGlzIGNhbGxlZCwgYW5kIGZvcndh
cmQgdGhvc2UgZXZlbnRzIHRocm91Z2ggTW9kZWxQbGF5ZXIKKyAgICAgICAgdG8gdGhlIFVJIHBy
b2Nlc3MuCisKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50OjpkZWZhdWx0RXZlbnRI
YW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6OmRyYWdEaWRTdGFy
dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50OjpkcmFnRGlkQ2hhbmdlKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6OmRyYWdEaWRFbmQpOgorICAgICAg
ICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50Lmg6CisgICAgICAgICog
TW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmg6CisgICAgICAgICogTW9kdWxlcy9t
b2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RHVtbXlNb2RlbFBsYXllcjo6ZGlkUmVjZWl2ZU1vdXNlRXZlbnQpOgorICAgICAgICAqIE1v
ZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmg6CisKIDIwMjEtMTEt
MTIgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1dlYiBB
bmltYXRpb25zXSBBY2NlbGVyYXRlZCBhbmltYXRpb25zIHdpdGggYSBzaW5nbGUga2V5ZnJhbWUg
ZG9uJ3QgYWNjb3VudCBmb3IgcHJpb3IgZm9yd2FyZC1maWxsaW5nIGFuaW1hdGlvbnMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxF
bGVtZW50LmNwcAppbmRleCAxYjhlZTI2NTc0N2EuLjRlMDZmNzRhYTMxNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVt
ZW50LmNwcApAQCAtMzIsNiArMzIsOCBAQAogI2luY2x1ZGUgIkRPTVByb21pc2VQcm94eS5oIgog
I2luY2x1ZGUgIkVsZW1lbnRDaGlsZEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVudElubGlu
ZXMuaCIKKyNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgog
I2luY2x1ZGUgIkhUTUxTb3VyY2VFbGVtZW50LmgiCkBAIC00MCw2ICs0Miw4IEBACiAjaW5jbHVk
ZSAiTW9kZWwuaCIKICNpbmNsdWRlICJNb2RlbFBsYXllci5oIgogI2luY2x1ZGUgIk1vZGVsUGxh
eWVyUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oIgogI2lu
Y2x1ZGUgIlJlbmRlck1vZGVsLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4K
QEAgLTI5Nyw2ICszMDEsNzMgQEAgdm9pZCBIVE1MTW9kZWxFbGVtZW50OjplbnRlckZ1bGxzY3Jl
ZW4oKQogI2VuZGlmCiB9CiAKKy8vIE1BUks6IC0gSW50ZXJhY3Rpb24gc3VwcG9ydC4KKwordm9p
ZCBIVE1MTW9kZWxFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVudCkKK3sK
KyAgICBpZiAoIW1fbW9kZWxQbGF5ZXIgfHwgIW1fbW9kZWxQbGF5ZXItPnN1cHBvcnRzTW91c2VJ
bnRlcmFjdGlvbigpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHR5cGUgPSBldmVudC50
eXBlKCk7CisgICAgaWYgKHR5cGUgIT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ICYmIHR5
cGUgIT0gZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50ICYmIHR5cGUgIT0gZXZlbnROYW1lcygp
Lm1vdXNldXBFdmVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKGlzPE1vdXNlRXZl
bnQ+KGV2ZW50KSk7CisgICAgYXV0byYgbW91c2VFdmVudCA9IGRvd25jYXN0PE1vdXNlRXZlbnQ+
KGV2ZW50KTsKKworICAgIGlmIChtb3VzZUV2ZW50LmJ1dHRvbigpICE9IExlZnRCdXR0b24pCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmICh0eXBlID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25F
dmVudCAmJiAhbV9pc0RyYWdnaW5nICYmICFldmVudC5kZWZhdWx0UHJldmVudGVkKCkpCisgICAg
ICAgIGRyYWdEaWRTdGFydChtb3VzZUV2ZW50KTsKKyAgICBlbHNlIGlmICh0eXBlID09IGV2ZW50
TmFtZXMoKS5tb3VzZW1vdmVFdmVudCAmJiBtX2lzRHJhZ2dpbmcpCisgICAgICAgIGRyYWdEaWRD
aGFuZ2UobW91c2VFdmVudCk7CisgICAgZWxzZSBpZiAodHlwZSA9PSBldmVudE5hbWVzKCkubW91
c2V1cEV2ZW50ICYmIG1faXNEcmFnZ2luZykKKyAgICAgICAgZHJhZ0RpZEVuZChtb3VzZUV2ZW50
KTsKK30KKwordm9pZCBIVE1MTW9kZWxFbGVtZW50OjpkcmFnRGlkU3RhcnQoTW91c2VFdmVudCYg
ZXZlbnQpCit7CisgICAgQVNTRVJUKCFtX2lzRHJhZ2dpbmcpOworCisgICAgYXV0byBmcmFtZSA9
IGRvY3VtZW50KCkuZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm47CisK
KyAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuc2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50
KHRoaXMpOworICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAgbV9pc0RyYWdnaW5n
ID0gdHJ1ZTsKKworICAgIGlmIChtX21vZGVsUGxheWVyKQorICAgICAgICBtX21vZGVsUGxheWVy
LT5kaWRSZWNlaXZlTW91c2VFdmVudChldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQsIGV2ZW50
LmNsaWVudExvY2F0aW9uKCksIGV2ZW50LnRpbWVTdGFtcCgpKTsKK30KKwordm9pZCBIVE1MTW9k
ZWxFbGVtZW50OjpkcmFnRGlkQ2hhbmdlKE1vdXNlRXZlbnQmIGV2ZW50KQoreworICAgIEFTU0VS
VChtX2lzRHJhZ2dpbmcpOworCisgICAgZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKKworICAg
IGlmIChtX21vZGVsUGxheWVyKQorICAgICAgICBtX21vZGVsUGxheWVyLT5kaWRSZWNlaXZlTW91
c2VFdmVudChldmVudE5hbWVzKCkubW91c2Vtb3ZlRXZlbnQsIGV2ZW50LmNsaWVudExvY2F0aW9u
KCksIGV2ZW50LnRpbWVTdGFtcCgpKTsKK30KKwordm9pZCBIVE1MTW9kZWxFbGVtZW50OjpkcmFn
RGlkRW5kKE1vdXNlRXZlbnQmIGV2ZW50KQoreworICAgIEFTU0VSVChtX2lzRHJhZ2dpbmcpOwor
CisgICAgYXV0byBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQor
ICAgICAgICByZXR1cm47CisKKyAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuc2V0Q2FwdHVyaW5n
TW91c2VFdmVudHNFbGVtZW50KG51bGxwdHIpOworICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVk
KCk7CisgICAgbV9pc0RyYWdnaW5nID0gZmFsc2U7CisKKyAgICBpZiAobV9tb2RlbFBsYXllcikK
KyAgICAgICAgbV9tb2RlbFBsYXllci0+ZGlkUmVjZWl2ZU1vdXNlRXZlbnQoZXZlbnROYW1lcygp
Lm1vdXNldXBFdmVudCwgZXZlbnQuY2xpZW50TG9jYXRpb24oKSwgZXZlbnQudGltZVN0YW1wKCkp
OworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTU9ERUxfRUxFTUVOVCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5o
CmluZGV4IDM3ODAzMjllYTM5NS4uMmFkNDNlYWE5MDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmgKQEAgLTM5
LDggKzM5LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRXZlbnQ7CiBjbGFz
cyBNb2RlbDsKIGNsYXNzIE1vZGVsUGxheWVyOworY2xhc3MgTW91c2VFdmVudDsKIAogdGVtcGxh
dGU8dHlwZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZVByb3h5V2l0aFJlc29sdmVDYWxs
YmFjazsKIApAQCAtOTAsMTIgKzkyLDE4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGaW5pc2hM
b2FkaW5nKE1vZGVsUGxheWVyJikgZmluYWw7CiAgICAgdm9pZCBkaWRGYWlsTG9hZGluZyhNb2Rl
bFBsYXllciYsIGNvbnN0IFJlc291cmNlRXJyb3ImKSBmaW5hbDsKIAorICAgIHZvaWQgZGVmYXVs
dEV2ZW50SGFuZGxlcihFdmVudCYpIGZpbmFsOworICAgIHZvaWQgZHJhZ0RpZFN0YXJ0KE1vdXNl
RXZlbnQmKTsKKyAgICB2b2lkIGRyYWdEaWRDaGFuZ2UoTW91c2VFdmVudCYpOworICAgIHZvaWQg
ZHJhZ0RpZEVuZChNb3VzZUV2ZW50Jik7CisKICAgICBVUkwgbV9zb3VyY2VVUkw7CiAgICAgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+IG1fcmVzb3VyY2U7CiAgICAgUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4gbV9kYXRhOwogICAgIFJlZlB0cjxNb2RlbD4gbV9tb2RlbDsKICAg
ICBVbmlxdWVSZWY8UmVhZHlQcm9taXNlPiBtX3JlYWR5UHJvbWlzZTsKICAgICBib29sIG1fZGF0
YUNvbXBsZXRlIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNEcmFnZ2luZyB7IGZhbHNlIH07CiAK
ICAgICBSZWZQdHI8TW9kZWxQbGF5ZXI+IG1fbW9kZWxQbGF5ZXI7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5jcHAKaW5kZXgg
MTUxM2EyZDBiMjlhLi44ODM4ZDY2MTY1Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmNwcApAQCAtMzAsNCArMzAsOSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIE1vZGVsUGxheWVyOjp+TW9kZWxQbGF5ZXIoKSA9IGRlZmF1
bHQ7CiAKK2Jvb2wgTW9kZWxQbGF5ZXI6OnN1cHBvcnRzTW91c2VJbnRlcmFjdGlvbigpCit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5oCmluZGV4IDNiYWIyZjc5M2M2OS4uMjk2NzAzZjg2
YzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9k
ZWxQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9k
ZWxQbGF5ZXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUg
IkxheW91dFBvaW50LmgiCiAjaW5jbHVkZSAiTGF5b3V0U2l6ZS5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtTGF5ZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtMzIsNiArMzMsNyBAQAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNb2RlbDsKK2NsYXNzIE1vbm90b25pY1RpbWU7
CiAKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIE1vZGVsUGxheWVyIDogcHVibGljIFJlZkNvdW50ZWQ8
TW9kZWxQbGF5ZXI+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTQwLDYgKzQy
LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGxvYWQoTW9kZWwmLCBMYXlvdXRTaXpl
KSA9IDA7CiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBsYXllcigpID0gMDsKKyAgICB2aXJ0
dWFsIGJvb2wgc3VwcG9ydHNNb3VzZUludGVyYWN0aW9uKCk7CisgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVNb3VzZUV2ZW50KGNvbnN0IFN0cmluZyYsIGNvbnN0IExheW91dFBvaW50JiwgY29u
c3QgTW9ub3RvbmljVGltZSkgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIu
Y3BwCmluZGV4IDQyMjgzYTY2YjFjZC4uYzYxZjE1NTdkMWIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9k
ZWxQbGF5ZXIuY3BwCkBAIC01NCw0ICs1NCw4IEBAIFBsYXRmb3JtTGF5ZXIqIER1bW15TW9kZWxQ
bGF5ZXI6OmxheWVyKCkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAordm9pZCBEdW1teU1vZGVs
UGxheWVyOjpkaWRSZWNlaXZlTW91c2VFdmVudChjb25zdCBTdHJpbmcmLCBjb25zdCBMYXlvdXRQ
b2ludCYsIGNvbnN0IE1vbm90b25pY1RpbWUpCit7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBs
YXllci5oCmluZGV4IGVlNTczOTZkMThjNS4uNDg4ZmY4NjkyNjA1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1v
ZGVsUGxheWVyLmgKQEAgLTQxLDggKzQxLDkgQEAgcHJpdmF0ZToKICAgICBEdW1teU1vZGVsUGxh
eWVyKE1vZGVsUGxheWVyQ2xpZW50Jik7CiAKICAgICAvLyBNb2RlbFBsYXllciBvdmVycmlkZXMu
Ci0gICAgdmlydHVhbCB2b2lkIGxvYWQoTW9kZWwmLCBMYXlvdXRTaXplKSBvdmVycmlkZTsKLSAg
ICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIGxheWVyKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBsb2Fk
KE1vZGVsJiwgTGF5b3V0U2l6ZSkgb3ZlcnJpZGU7CisgICAgUGxhdGZvcm1MYXllciogbGF5ZXIo
KSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNb3VzZUV2ZW50KGNvbnN0IFN0cmluZyYs
IGNvbnN0IExheW91dFBvaW50JiwgY29uc3QgTW9ub3RvbmljVGltZSkgb3ZlcnJpZGU7CiAKICAg
ICBXZWFrUHRyPE1vZGVsUGxheWVyQ2xpZW50PiBtX2NsaWVudDsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNm
OTkzOTFiYjkzNy4uODZhNWJkMGI0NzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIx
LTExLTE0ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtN
b2RlbF0gW21hY09TXSBBZGQgc3VwcG9ydCBmb3IgaW50ZXJhY3Rpb24gb24gbWFjT1MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzEwNQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vODAwNzkzODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRm9yd2FyZCBtb3VzZSBldmVudHMgY2FwdHVyZWQgaW4gdGhl
IFdlYiBwcm9jZXNzIHRvIHRoZSBtYXRjaGluZyBBU1ZJbmxpbmVQcmV2aWV3LgorCisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL01vZGVsRWxlbWVudENvbnRyb2xsZXJDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6TW9kZWxFbGVtZW50Q29udHJvbGxlcjo6bW9kZWxFbGVtZW50RGlkUmVjZWl2
ZU1vdXNlRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Nb2RlbEVsZW1lbnRDb250cm9sbGVy
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6bW9kZWxFbGVtZW50RGlkUmVjZWl2ZU1vdXNlRXZlbnQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvTW9kZWwvbWFjL0FS
S2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Nb2Rl
bC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW06CisgICAgICAgIChXZWJLaXQ6
OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjpzdXBwb3J0c01vdXNlSW50ZXJhY3Rpb24p
OgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6ZGlkUmVj
ZWl2ZU1vdXNlRXZlbnQpOgorCiAyMDIxLTExLTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcGFydGlhbCByZXZlcnQgb2YgcjI4NTU2NSB0
byByZXNvbHZlIGEgUExUNSByZWdyZXNzaW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvTW9kZWxFbGVtZW50Q29udHJvbGxlckNvY29hLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvTW9kZWxFbGVtZW50Q29udHJvbGxlckNvY29hLm1tCmluZGV4
IDRlNTg0N2RjMjM0NC4uOWIyMWIxZGVhMjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9Nb2RlbEVsZW1lbnRDb250cm9sbGVyQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTW9kZWxFbGVtZW50Q29udHJvbGxlckNvY29hLm1tCkBA
IC00Miw2ICs0Miw5IEBACiAjZW5kaWYKIAogI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklF
V19NQUMpCisjaW1wb3J0IDxXZWJDb3JlL0V2ZW50TmFtZXMuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
TGF5b3V0UG9pbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTGF5b3V0VW5pdC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9TeXN0ZW1QcmV2
aWV3U1BJLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgpAQCAtMTg4LDYgKzE5MSwyNiBA
QCB2b2lkIE1vZGVsRWxlbWVudENvbnRyb2xsZXI6Om1vZGVsRWxlbWVudERpZENyZWF0ZVByZXZp
ZXcoVVJMIGZpbGVVUkwsIFN0cmluZyB1dQogICAgIH0pLmdldCgpXTsKIH0KIAordm9pZCBNb2Rl
bEVsZW1lbnRDb250cm9sbGVyOjptb2RlbEVsZW1lbnREaWRSZWNlaXZlTW91c2VFdmVudChjb25z
dCBTdHJpbmcmIHV1aWQsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgV2ViQ29yZTo6TGF5b3V0
UG9pbnQmIGxvY2F0aW9uLCBjb25zdCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCkKK3sKKyAgICBh
dXRvIGl0ZXJhdG9yID0gbV9pbmxpbmVQcmV2aWV3cy5maW5kKHV1aWQpOworICAgIGlmIChpdGVy
YXRvciA9PSBtX2lubGluZVByZXZpZXdzLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBh
dXRvIHByZXZpZXcgPSBpdGVyYXRvci0+dmFsdWU7CisgICAgYXV0byBjZ0xvY2F0aW9uID0gQ0dQ
b2ludE1ha2UobG9jYXRpb24ueCgpLnRvRmxvYXQoKSwgbG9jYXRpb24ueSgpLnRvRmxvYXQoKSk7
CisgICAgYXV0byB0aW1lSW50ZXJ2YWwgPSB0aW1lc3RhbXAuc2Vjb25kc1NpbmNlRXBvY2goKS52
YWx1ZSgpOworICAgIGF1dG8mIGV2ZW50TmFtZXMgPSBXZWJDb3JlOjpldmVudE5hbWVzKCk7Cisg
ICAgaWYgKHR5cGUgPT0gZXZlbnROYW1lcy5tb3VzZWRvd25FdmVudCkKKyAgICAgICAgW3ByZXZp
ZXcgbW91c2VEb3duQXRMb2NhdGlvbjpjZ0xvY2F0aW9uIHRpbWVzdGFtcDp0aW1lSW50ZXJ2YWxd
OworICAgIGVsc2UgaWYgKHR5cGUgPT0gZXZlbnROYW1lcy5tb3VzZW1vdmVFdmVudCkKKyAgICAg
ICAgW3ByZXZpZXcgbW91c2VEcmFnZ2VkQXRMb2NhdGlvbjpjZ0xvY2F0aW9uIHRpbWVzdGFtcDp0
aW1lSW50ZXJ2YWxdOworICAgIGVsc2UgaWYgKHR5cGUgPT0gZXZlbnROYW1lcy5tb3VzZXVwRXZl
bnQpCisgICAgICAgIFtwcmV2aWV3IG1vdXNlVXBBdExvY2F0aW9uOmNnTG9jYXRpb24gdGltZXN0
YW1wOnRpbWVJbnRlcnZhbF07CisgICAgZWxzZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKK30KKwogI2VuZGlmCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L01vZGVsRWxlbWVudENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01vZGVs
RWxlbWVudENvbnRyb2xsZXIuaAppbmRleCBiMzhkZDE4M2I0ODcuLmQ4NzEwMzRjYjJlNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTW9kZWxFbGVtZW50Q29udHJvbGxlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01vZGVsRWxlbWVudENvbnRyb2xsZXIuaApA
QCAtNTMsNiArNTMsNyBAQCBwdWJsaWM6CiAjZW5kaWYKICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5F
X1BSRVZJRVdfTUFDKQogICAgIHZvaWQgbW9kZWxFbGVtZW50RGlkQ3JlYXRlUHJldmlldyhVUkws
IFN0cmluZywgV2ViQ29yZTo6RmxvYXRTaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVj
dGVkPHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQzMl90PiwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4p
PiYmKTsKKyAgICB2b2lkIG1vZGVsRWxlbWVudERpZFJlY2VpdmVNb3VzZUV2ZW50KGNvbnN0IFN0
cmluZyYgdXVpZCwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBXZWJDb3JlOjpMYXlvdXRQb2lu
dCYsIGNvbnN0IE1vbm90b25pY1RpbWUpOwogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBmOWY3N2UwZTZmYWMuLmUxZWVmYWE4
YWVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMDgz
Myw2ICsxMDgzMywxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bW9kZWxFbGVtZW50RGlkQ3JlYXRl
UHJldmlldyhjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1dQogewogICAgIG1vZGVsRWxl
bWVudENvbnRyb2xsZXIoKS0+bW9kZWxFbGVtZW50RGlkQ3JlYXRlUHJldmlldyh1cmwsIHV1aWQs
IHNpemUsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KKwordm9pZCBXZWJQYWdlUHJv
eHk6Om1vZGVsRWxlbWVudERpZFJlY2VpdmVNb3VzZUV2ZW50KGNvbnN0IFN0cmluZyYgdXVpZCwg
Y29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBXZWJDb3JlOjpMYXlvdXRQb2ludCYgbG9jYXRpb24s
IGNvbnN0IE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQoreworICAgIG1vZGVsRWxlbWVudENvbnRy
b2xsZXIoKS0+bW9kZWxFbGVtZW50RGlkUmVjZWl2ZU1vdXNlRXZlbnQodXVpZCwgdHlwZSwgbG9j
YXRpb24sIHRpbWVzdGFtcCk7Cit9CiAjZW5kaWYKIAogI2lmICFQTEFURk9STShDT0NPQSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZjAxZjM1NGFlNzhjLi42Nzk4
NjRmYTQxZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC01OTMs
NiArNTkzLDcgQEAgcHVibGljOgogI2VuZGlmCiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVW
SUVXX01BQykKICAgICB2b2lkIG1vZGVsRWxlbWVudERpZENyZWF0ZVByZXZpZXcoY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChFeHBlY3RlZDxzdGQ6OnBhaXI8U3RyaW5nLCB1aW50MzJfdD4sIFdlYkNvcmU6
OlJlc291cmNlRXJyb3I+KT4mJik7CisgICAgdm9pZCBtb2RlbEVsZW1lbnREaWRSZWNlaXZlTW91
c2VFdmVudChjb25zdCBTdHJpbmcmIHV1aWQsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgV2Vi
Q29yZTo6TGF5b3V0UG9pbnQmLCBjb25zdCBNb25vdG9uaWNUaW1lKTsKICNlbmRpZgogCiAjaWYg
RU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYjNkYzhkMjAxY2QzLi5mMTU3OWE2ZWIwNDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KQEAgLTU4OCw2ICs1ODgsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlm
CiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX01BQykKICAgICBNb2RlbEVsZW1lbnRE
aWRDcmVhdGVQcmV2aWV3KFVSTCB1cmwsIFN0cmluZyB1dWlkLCBXZWJDb3JlOjpGbG9hdFNpemUg
c2l6ZSkgLT4gKEV4cGVjdGVkPHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQzMl90PiwgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvcj4gcmVzdWx0KSBBc3luYworICAgIE1vZGVsRWxlbWVudERpZFJlY2VpdmVN
b3VzZUV2ZW50KFN0cmluZyB1dWlkLCBTdHJpbmcgdHlwZSwgV2ViQ29yZTo6TGF5b3V0UG9pbnQg
bG9jYXRpb24sIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQogI2VuZGlmCiAKICAgICByZXF1ZXN0
UGVybWlzc2lvbihzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbiwgc3RydWN0IFdl
YkNvcmU6OlBlcm1pc3Npb25EZXNjcmlwdG9yIGRlc2NyaXB0b3IpIC0+IChlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6UGVybWlzc2lvblN0YXRlIHN0YXRlKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
ci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZp
ZXdNb2RlbFBsYXllci5oCmluZGV4IDRmMDIwNzBjNDI2NS4uMTA4YWJkNzRhNjQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmll
d01vZGVsUGxheWVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9B
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5oCkBAIC00Nyw4ICs0NywxMCBAQCBwcml2YXRl
OgogICAgIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyKFdlYlBhZ2UmLCBXZWJDb3JlOjpN
b2RlbFBsYXllckNsaWVudCYpOwogCiAgICAgLy8gV2ViQ29yZTo6TW9kZWxQbGF5ZXIgb3ZlcnJp
ZGVzLgotICAgIHZpcnR1YWwgdm9pZCBsb2FkKFdlYkNvcmU6Ok1vZGVsJiwgV2ViQ29yZTo6TGF5
b3V0U2l6ZSkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBsYXllcigpIG92
ZXJyaWRlOworICAgIHZvaWQgbG9hZChXZWJDb3JlOjpNb2RlbCYsIFdlYkNvcmU6OkxheW91dFNp
emUpIG92ZXJyaWRlOworICAgIFBsYXRmb3JtTGF5ZXIqIGxheWVyKCkgb3ZlcnJpZGU7CisgICAg
Ym9vbCBzdXBwb3J0c01vdXNlSW50ZXJhY3Rpb24oKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVNb3VzZUV2ZW50KGNvbnN0IFN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkxheW91dFBvaW50
JiwgY29uc3QgTW9ub3RvbmljVGltZSkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGNyZWF0ZUZpbGUo
V2ViQ29yZTo6TW9kZWwmKTsKICAgICB2b2lkIGNsZWFyRmlsZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBs
YXllci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQ
cmV2aWV3TW9kZWxQbGF5ZXIubW0KaW5kZXggMmRmMjQ1MWFmYzMxLi5kNWE4YjVjYmMwYzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQ
cmV2aWV3TW9kZWxQbGF5ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVs
L21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5tbQpAQCAtMTcyLDYgKzE3MiwyMCBA
QCBQbGF0Zm9ybUxheWVyKiBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6bGF5ZXIoKQog
ICAgIHJldHVybiBbbV9pbmxpbmVQcmV2aWV3IGxheWVyXTsKIH0KIAorYm9vbCBBUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllcjo6c3VwcG9ydHNNb3VzZUludGVyYWN0aW9uKCkKK3sKKyNpZiBF
TkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfTUFDKQorICAgIHJldHVybiB0cnVlOworI2VuZGlm
CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxh
eWVyOjpkaWRSZWNlaXZlTW91c2VFdmVudChjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IExheW91
dFBvaW50JiBsb2NhdGlvbiwgY29uc3QgTW9ub3RvbmljVGltZSB0aW1lc3RhbXApCit7CisgICAg
aWYgKG1fcGFnZSkKKyAgICAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
Ok1vZGVsRWxlbWVudERpZFJlY2VpdmVNb3VzZUV2ZW50KChTdHJpbmcpW21faW5saW5lUHJldmll
dyB1dWlkXS5VVUlEU3RyaW5nLCB0eXBlLCBsb2NhdGlvbiwgdGltZXN0YW1wKSk7Cit9CisKIH0K
IAogI2VuZGlmCg==
</data>
<flag name="commit-queue"
          id="469181"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444215</attachid>
            <date>2021-11-15 00:13:11 -0800</date>
            <delta_ts>2021-11-17 07:32:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>233105.patch</filename>
            <type>text/plain</type>
            <size>15536</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0NmNkZjE0YTA0NGEuLmE4YzM5ODEyOTlhNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI2IEBACisyMDIxLTExLTE0ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQu
b3JnPgorCisgICAgICAgIFtNb2RlbF0gW21hY09TXSBBZGQgc3VwcG9ydCBmb3IgaW50ZXJhY3Rp
b24gb24gbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMzEwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODAwNzkzODY+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FwdHVyZSBtb3VzZSBldmVu
dHMgYWZ0ZXIgdGhlIG1vdXNlIGJ1dHRvbiBpcyBwcmVzc2VkIG92ZXIgYSA8bW9kZWw+IGVsZW1l
bnQsCisgICAgICAgIHVubGVzcyBwcmV2ZW50RGVmYXVsdCgpIGlzIGNhbGxlZCwgYW5kIGZvcndh
cmQgdGhvc2UgZXZlbnRzIHRocm91Z2ggTW9kZWxQbGF5ZXIKKyAgICAgICAgdG8gdGhlIFVJIHBy
b2Nlc3MuCisKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50OjpkZWZhdWx0RXZlbnRI
YW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6OmRyYWdEaWRTdGFy
dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50OjpkcmFnRGlkQ2hhbmdlKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6OmRyYWdEaWRFbmQpOgorICAgICAg
ICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50Lmg6CisgICAgICAgICog
TW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmg6CisgICAgICAgICogTW9kdWxlcy9t
b2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RHVtbXlNb2RlbFBsYXllcjo6ZGlkUmVjZWl2ZU1vdXNlRXZlbnQpOgorICAgICAgICAqIE1v
ZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmg6CisKIDIwMjEtMTEt
MTIgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1dlYiBB
bmltYXRpb25zXSBBY2NlbGVyYXRlZCBhbmltYXRpb25zIHdpdGggYSBzaW5nbGUga2V5ZnJhbWUg
ZG9uJ3QgYWNjb3VudCBmb3IgcHJpb3IgZm9yd2FyZC1maWxsaW5nIGFuaW1hdGlvbnMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxF
bGVtZW50LmNwcAppbmRleCAxYjhlZTI2NTc0N2EuLjRlMDZmNzRhYTMxNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVt
ZW50LmNwcApAQCAtMzIsNiArMzIsOCBAQAogI2luY2x1ZGUgIkRPTVByb21pc2VQcm94eS5oIgog
I2luY2x1ZGUgIkVsZW1lbnRDaGlsZEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVudElubGlu
ZXMuaCIKKyNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgog
I2luY2x1ZGUgIkhUTUxTb3VyY2VFbGVtZW50LmgiCkBAIC00MCw2ICs0Miw4IEBACiAjaW5jbHVk
ZSAiTW9kZWwuaCIKICNpbmNsdWRlICJNb2RlbFBsYXllci5oIgogI2luY2x1ZGUgIk1vZGVsUGxh
eWVyUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oIgogI2lu
Y2x1ZGUgIlJlbmRlck1vZGVsLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4K
QEAgLTI5Nyw2ICszMDEsNzMgQEAgdm9pZCBIVE1MTW9kZWxFbGVtZW50OjplbnRlckZ1bGxzY3Jl
ZW4oKQogI2VuZGlmCiB9CiAKKy8vIE1BUks6IC0gSW50ZXJhY3Rpb24gc3VwcG9ydC4KKwordm9p
ZCBIVE1MTW9kZWxFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVudCkKK3sK
KyAgICBpZiAoIW1fbW9kZWxQbGF5ZXIgfHwgIW1fbW9kZWxQbGF5ZXItPnN1cHBvcnRzTW91c2VJ
bnRlcmFjdGlvbigpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHR5cGUgPSBldmVudC50
eXBlKCk7CisgICAgaWYgKHR5cGUgIT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ICYmIHR5
cGUgIT0gZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50ICYmIHR5cGUgIT0gZXZlbnROYW1lcygp
Lm1vdXNldXBFdmVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKGlzPE1vdXNlRXZl
bnQ+KGV2ZW50KSk7CisgICAgYXV0byYgbW91c2VFdmVudCA9IGRvd25jYXN0PE1vdXNlRXZlbnQ+
KGV2ZW50KTsKKworICAgIGlmIChtb3VzZUV2ZW50LmJ1dHRvbigpICE9IExlZnRCdXR0b24pCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmICh0eXBlID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25F
dmVudCAmJiAhbV9pc0RyYWdnaW5nICYmICFldmVudC5kZWZhdWx0UHJldmVudGVkKCkpCisgICAg
ICAgIGRyYWdEaWRTdGFydChtb3VzZUV2ZW50KTsKKyAgICBlbHNlIGlmICh0eXBlID09IGV2ZW50
TmFtZXMoKS5tb3VzZW1vdmVFdmVudCAmJiBtX2lzRHJhZ2dpbmcpCisgICAgICAgIGRyYWdEaWRD
aGFuZ2UobW91c2VFdmVudCk7CisgICAgZWxzZSBpZiAodHlwZSA9PSBldmVudE5hbWVzKCkubW91
c2V1cEV2ZW50ICYmIG1faXNEcmFnZ2luZykKKyAgICAgICAgZHJhZ0RpZEVuZChtb3VzZUV2ZW50
KTsKK30KKwordm9pZCBIVE1MTW9kZWxFbGVtZW50OjpkcmFnRGlkU3RhcnQoTW91c2VFdmVudCYg
ZXZlbnQpCit7CisgICAgQVNTRVJUKCFtX2lzRHJhZ2dpbmcpOworCisgICAgYXV0byBmcmFtZSA9
IGRvY3VtZW50KCkuZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm47CisK
KyAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuc2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50
KHRoaXMpOworICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAgbV9pc0RyYWdnaW5n
ID0gdHJ1ZTsKKworICAgIGlmIChtX21vZGVsUGxheWVyKQorICAgICAgICBtX21vZGVsUGxheWVy
LT5kaWRSZWNlaXZlTW91c2VFdmVudChldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQsIGV2ZW50
LmNsaWVudExvY2F0aW9uKCksIGV2ZW50LnRpbWVTdGFtcCgpKTsKK30KKwordm9pZCBIVE1MTW9k
ZWxFbGVtZW50OjpkcmFnRGlkQ2hhbmdlKE1vdXNlRXZlbnQmIGV2ZW50KQoreworICAgIEFTU0VS
VChtX2lzRHJhZ2dpbmcpOworCisgICAgZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKKworICAg
IGlmIChtX21vZGVsUGxheWVyKQorICAgICAgICBtX21vZGVsUGxheWVyLT5kaWRSZWNlaXZlTW91
c2VFdmVudChldmVudE5hbWVzKCkubW91c2Vtb3ZlRXZlbnQsIGV2ZW50LmNsaWVudExvY2F0aW9u
KCksIGV2ZW50LnRpbWVTdGFtcCgpKTsKK30KKwordm9pZCBIVE1MTW9kZWxFbGVtZW50OjpkcmFn
RGlkRW5kKE1vdXNlRXZlbnQmIGV2ZW50KQoreworICAgIEFTU0VSVChtX2lzRHJhZ2dpbmcpOwor
CisgICAgYXV0byBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQor
ICAgICAgICByZXR1cm47CisKKyAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuc2V0Q2FwdHVyaW5n
TW91c2VFdmVudHNFbGVtZW50KG51bGxwdHIpOworICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVk
KCk7CisgICAgbV9pc0RyYWdnaW5nID0gZmFsc2U7CisKKyAgICBpZiAobV9tb2RlbFBsYXllcikK
KyAgICAgICAgbV9tb2RlbFBsYXllci0+ZGlkUmVjZWl2ZU1vdXNlRXZlbnQoZXZlbnROYW1lcygp
Lm1vdXNldXBFdmVudCwgZXZlbnQuY2xpZW50TG9jYXRpb24oKSwgZXZlbnQudGltZVN0YW1wKCkp
OworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTU9ERUxfRUxFTUVOVCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5o
CmluZGV4IDM3ODAzMjllYTM5NS4uMmFkNDNlYWE5MDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmgKQEAgLTM5
LDggKzM5LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRXZlbnQ7CiBjbGFz
cyBNb2RlbDsKIGNsYXNzIE1vZGVsUGxheWVyOworY2xhc3MgTW91c2VFdmVudDsKIAogdGVtcGxh
dGU8dHlwZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZVByb3h5V2l0aFJlc29sdmVDYWxs
YmFjazsKIApAQCAtOTAsMTIgKzkyLDE4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGaW5pc2hM
b2FkaW5nKE1vZGVsUGxheWVyJikgZmluYWw7CiAgICAgdm9pZCBkaWRGYWlsTG9hZGluZyhNb2Rl
bFBsYXllciYsIGNvbnN0IFJlc291cmNlRXJyb3ImKSBmaW5hbDsKIAorICAgIHZvaWQgZGVmYXVs
dEV2ZW50SGFuZGxlcihFdmVudCYpIGZpbmFsOworICAgIHZvaWQgZHJhZ0RpZFN0YXJ0KE1vdXNl
RXZlbnQmKTsKKyAgICB2b2lkIGRyYWdEaWRDaGFuZ2UoTW91c2VFdmVudCYpOworICAgIHZvaWQg
ZHJhZ0RpZEVuZChNb3VzZUV2ZW50Jik7CisKICAgICBVUkwgbV9zb3VyY2VVUkw7CiAgICAgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+IG1fcmVzb3VyY2U7CiAgICAgUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4gbV9kYXRhOwogICAgIFJlZlB0cjxNb2RlbD4gbV9tb2RlbDsKICAg
ICBVbmlxdWVSZWY8UmVhZHlQcm9taXNlPiBtX3JlYWR5UHJvbWlzZTsKICAgICBib29sIG1fZGF0
YUNvbXBsZXRlIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNEcmFnZ2luZyB7IGZhbHNlIH07CiAK
ICAgICBSZWZQdHI8TW9kZWxQbGF5ZXI+IG1fbW9kZWxQbGF5ZXI7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5jcHAKaW5kZXgg
MTUxM2EyZDBiMjlhLi44ODM4ZDY2MTY1Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmNwcApAQCAtMzAsNCArMzAsOSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIE1vZGVsUGxheWVyOjp+TW9kZWxQbGF5ZXIoKSA9IGRlZmF1
bHQ7CiAKK2Jvb2wgTW9kZWxQbGF5ZXI6OnN1cHBvcnRzTW91c2VJbnRlcmFjdGlvbigpCit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5oCmluZGV4IDNiYWIyZjc5M2M2OS4uZWZhN2UyODY2
M2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9k
ZWxQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9k
ZWxQbGF5ZXIuaApAQCAtMjUsOSArMjUsMTEgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRl
ICJMYXlvdXRQb2ludC5oIgogI2luY2x1ZGUgIkxheW91dFNpemUuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybUxheWVyLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvTW9u
b3RvbmljVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQwLDYgKzQyLDggQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGxvYWQoTW9kZWwmLCBMYXlvdXRTaXplKSA9IDA7
CiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBsYXllcigpID0gMDsKKyAgICB2aXJ0dWFsIGJv
b2wgc3VwcG9ydHNNb3VzZUludGVyYWN0aW9uKCk7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNb3VzZUV2ZW50KGNvbnN0IFN0cmluZyYsIGNvbnN0IExheW91dFBvaW50JiwgY29uc3QgTW9u
b3RvbmljVGltZSkgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwCmlu
ZGV4IDQyMjgzYTY2YjFjZC4uYzYxZjE1NTdkMWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5
ZXIuY3BwCkBAIC01NCw0ICs1NCw4IEBAIFBsYXRmb3JtTGF5ZXIqIER1bW15TW9kZWxQbGF5ZXI6
OmxheWVyKCkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAordm9pZCBEdW1teU1vZGVsUGxheWVy
OjpkaWRSZWNlaXZlTW91c2VFdmVudChjb25zdCBTdHJpbmcmLCBjb25zdCBMYXlvdXRQb2ludCYs
IGNvbnN0IE1vbm90b25pY1RpbWUpCit7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5o
CmluZGV4IGVlNTczOTZkMThjNS4uNDg4ZmY4NjkyNjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxh
eWVyLmgKQEAgLTQxLDggKzQxLDkgQEAgcHJpdmF0ZToKICAgICBEdW1teU1vZGVsUGxheWVyKE1v
ZGVsUGxheWVyQ2xpZW50Jik7CiAKICAgICAvLyBNb2RlbFBsYXllciBvdmVycmlkZXMuCi0gICAg
dmlydHVhbCB2b2lkIGxvYWQoTW9kZWwmLCBMYXlvdXRTaXplKSBvdmVycmlkZTsKLSAgICB2aXJ0
dWFsIFBsYXRmb3JtTGF5ZXIqIGxheWVyKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBsb2FkKE1vZGVs
JiwgTGF5b3V0U2l6ZSkgb3ZlcnJpZGU7CisgICAgUGxhdGZvcm1MYXllciogbGF5ZXIoKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNb3VzZUV2ZW50KGNvbnN0IFN0cmluZyYsIGNvbnN0
IExheW91dFBvaW50JiwgY29uc3QgTW9ub3RvbmljVGltZSkgb3ZlcnJpZGU7CiAKICAgICBXZWFr
UHRyPE1vZGVsUGxheWVyQ2xpZW50PiBtX2NsaWVudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNmOTkzOTFi
YjkzNy4uODZhNWJkMGI0NzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTExLTE0
ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtNb2RlbF0g
W21hY09TXSBBZGQgc3VwcG9ydCBmb3IgaW50ZXJhY3Rpb24gb24gbWFjT1MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzEwNQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODAwNzkzODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRm9yd2FyZCBtb3VzZSBldmVudHMgY2FwdHVyZWQgaW4gdGhlIFdlYiBw
cm9jZXNzIHRvIHRoZSBtYXRjaGluZyBBU1ZJbmxpbmVQcmV2aWV3LgorCisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL01vZGVsRWxlbWVudENvbnRyb2xsZXJDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6TW9kZWxFbGVtZW50Q29udHJvbGxlcjo6bW9kZWxFbGVtZW50RGlkUmVjZWl2ZU1vdXNl
RXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Nb2RlbEVsZW1lbnRDb250cm9sbGVyLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6bW9kZWxFbGVtZW50RGlkUmVjZWl2ZU1vdXNlRXZlbnQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5s
aW5lUHJldmlld01vZGVsUGxheWVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Nb2RlbC9tYWMv
QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW06CisgICAgICAgIChXZWJLaXQ6OkFSS2l0
SW5saW5lUHJldmlld01vZGVsUGxheWVyOjpzdXBwb3J0c01vdXNlSW50ZXJhY3Rpb24pOgorICAg
ICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6ZGlkUmVjZWl2ZU1v
dXNlRXZlbnQpOgorCiAyMDIxLTExLTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcGFydGlhbCByZXZlcnQgb2YgcjI4NTU2NSB0byByZXNv
bHZlIGEgUExUNSByZWdyZXNzaW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvTW9kZWxFbGVtZW50Q29udHJvbGxlckNvY29hLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvTW9kZWxFbGVtZW50Q29udHJvbGxlckNvY29hLm1tCmluZGV4IDRlNTg0
N2RjMjM0NC4uNjFkOTIyZjY0NGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9Nb2RlbEVsZW1lbnRDb250cm9sbGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvTW9kZWxFbGVtZW50Q29udHJvbGxlckNvY29hLm1tCkBAIC00Miw5
ICs0MiwxMyBAQAogI2VuZGlmCiAKICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfTUFD
KQorI2ltcG9ydCA8V2ViQ29yZS9FdmVudE5hbWVzLmg+CisjaW1wb3J0IDxXZWJDb3JlL0xheW91
dFBvaW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0xheW91dFVuaXQuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUmVzb3VyY2VFcnJvci5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvU3lzdGVtUHJldmlld1NQ
SS5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9Nb25vdG9uaWNU
aW1lLmg+CiAjZW5kaWYKIAogU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLKEFzc2V0Vmlld2Vy
KTsKQEAgLTE4OCw2ICsxOTIsMjYgQEAgdm9pZCBNb2RlbEVsZW1lbnRDb250cm9sbGVyOjptb2Rl
bEVsZW1lbnREaWRDcmVhdGVQcmV2aWV3KFVSTCBmaWxlVVJMLCBTdHJpbmcgdXUKICAgICB9KS5n
ZXQoKV07CiB9CiAKK3ZvaWQgTW9kZWxFbGVtZW50Q29udHJvbGxlcjo6bW9kZWxFbGVtZW50RGlk
UmVjZWl2ZU1vdXNlRXZlbnQoY29uc3QgU3RyaW5nJiB1dWlkLCBjb25zdCBTdHJpbmcmIHR5cGUs
IGNvbnN0IFdlYkNvcmU6OkxheW91dFBvaW50JiBsb2NhdGlvbiwgY29uc3QgTW9ub3RvbmljVGlt
ZSB0aW1lc3RhbXApCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1faW5saW5lUHJldmlld3MuZmlu
ZCh1dWlkKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9pbmxpbmVQcmV2aWV3cy5lbmQoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgYXV0byBwcmV2aWV3ID0gaXRlcmF0b3ItPnZhbHVlOworICAg
IGF1dG8gY2dMb2NhdGlvbiA9IENHUG9pbnRNYWtlKGxvY2F0aW9uLngoKS50b0Zsb2F0KCksIGxv
Y2F0aW9uLnkoKS50b0Zsb2F0KCkpOworICAgIGF1dG8gdGltZUludGVydmFsID0gdGltZXN0YW1w
LnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKTsKKyAgICBhdXRvJiBldmVudE5hbWVzID0gV2Vi
Q29yZTo6ZXZlbnROYW1lcygpOworICAgIGlmICh0eXBlID09IGV2ZW50TmFtZXMubW91c2Vkb3du
RXZlbnQpCisgICAgICAgIFtwcmV2aWV3IG1vdXNlRG93bkF0TG9jYXRpb246Y2dMb2NhdGlvbiB0
aW1lc3RhbXA6dGltZUludGVydmFsXTsKKyAgICBlbHNlIGlmICh0eXBlID09IGV2ZW50TmFtZXMu
bW91c2Vtb3ZlRXZlbnQpCisgICAgICAgIFtwcmV2aWV3IG1vdXNlRHJhZ2dlZEF0TG9jYXRpb246
Y2dMb2NhdGlvbiB0aW1lc3RhbXA6dGltZUludGVydmFsXTsKKyAgICBlbHNlIGlmICh0eXBlID09
IGV2ZW50TmFtZXMubW91c2V1cEV2ZW50KQorICAgICAgICBbcHJldmlldyBtb3VzZVVwQXRMb2Nh
dGlvbjpjZ0xvY2F0aW9uIHRpbWVzdGFtcDp0aW1lSW50ZXJ2YWxdOworICAgIGVsc2UKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKICNlbmRpZgogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Nb2RlbEVsZW1lbnRDb250cm9sbGVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Nb2RlbEVsZW1lbnRDb250cm9sbGVyLmgKaW5kZXggYjM4ZGQxODNi
NDg3Li5kODcxMDM0Y2IyZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01v
ZGVsRWxlbWVudENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Nb2Rl
bEVsZW1lbnRDb250cm9sbGVyLmgKQEAgLTUzLDYgKzUzLDcgQEAgcHVibGljOgogI2VuZGlmCiAj
aWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX01BQykKICAgICB2b2lkIG1vZGVsRWxlbWVu
dERpZENyZWF0ZVByZXZpZXcoVVJMLCBTdHJpbmcsIFdlYkNvcmU6OkZsb2F0U2l6ZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxzdGQ6OnBhaXI8U3RyaW5nLCB1aW50MzJfdD4sIFdl
YkNvcmU6OlJlc291cmNlRXJyb3I+KT4mJik7CisgICAgdm9pZCBtb2RlbEVsZW1lbnREaWRSZWNl
aXZlTW91c2VFdmVudChjb25zdCBTdHJpbmcmIHV1aWQsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29u
c3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmLCBjb25zdCBNb25vdG9uaWNUaW1lKTsKICNlbmRpZgog
CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXgg
ZjlmNzdlMGU2ZmFjLi5lMWVlZmFhOGFlZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcApAQCAtMTA4MzMsNiArMTA4MzMsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6
Om1vZGVsRWxlbWVudERpZENyZWF0ZVByZXZpZXcoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgdXUKIHsKICAgICBtb2RlbEVsZW1lbnRDb250cm9sbGVyKCktPm1vZGVsRWxlbWVudERpZENy
ZWF0ZVByZXZpZXcodXJsLCB1dWlkLCBzaXplLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
CiB9CisKK3ZvaWQgV2ViUGFnZVByb3h5Ojptb2RlbEVsZW1lbnREaWRSZWNlaXZlTW91c2VFdmVu
dChjb25zdCBTdHJpbmcmIHV1aWQsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgV2ViQ29yZTo6
TGF5b3V0UG9pbnQmIGxvY2F0aW9uLCBjb25zdCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCkKK3sK
KyAgICBtb2RlbEVsZW1lbnRDb250cm9sbGVyKCktPm1vZGVsRWxlbWVudERpZFJlY2VpdmVNb3Vz
ZUV2ZW50KHV1aWQsIHR5cGUsIGxvY2F0aW9uLCB0aW1lc3RhbXApOworfQogI2VuZGlmCiAKICNp
ZiAhUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmlu
ZGV4IGYwMWYzNTRhZTc4Yy4uNjc5ODY0ZmE0MWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaApAQCAtNTkzLDYgKzU5Myw3IEBAIHB1YmxpYzoKICNlbmRpZgogI2lmIEVO
QUJMRShBUktJVF9JTkxJTkVfUFJFVklFV19NQUMpCiAgICAgdm9pZCBtb2RlbEVsZW1lbnREaWRD
cmVhdGVQcmV2aWV3KGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8c3RkOjpwYWlyPFN0cmlu
ZywgdWludDMyX3Q+LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPik+JiYpOworICAgIHZvaWQgbW9k
ZWxFbGVtZW50RGlkUmVjZWl2ZU1vdXNlRXZlbnQoY29uc3QgU3RyaW5nJiB1dWlkLCBjb25zdCBT
dHJpbmcmIHR5cGUsIGNvbnN0IFdlYkNvcmU6OkxheW91dFBvaW50JiwgY29uc3QgTW9ub3Rvbmlj
VGltZSk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGIzZGM4
ZDIwMWNkMy4uZjE1NzlhNmViMDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC01ODgsNiArNTg4LDcgQEAgbWVzc2FnZXMgLT4g
V2ViUGFnZVByb3h5IHsKICNlbmRpZgogI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFV19N
QUMpCiAgICAgTW9kZWxFbGVtZW50RGlkQ3JlYXRlUHJldmlldyhVUkwgdXJsLCBTdHJpbmcgdXVp
ZCwgV2ViQ29yZTo6RmxvYXRTaXplIHNpemUpIC0+IChFeHBlY3RlZDxzdGQ6OnBhaXI8U3RyaW5n
LCB1aW50MzJfdD4sIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAgICBN
b2RlbEVsZW1lbnREaWRSZWNlaXZlTW91c2VFdmVudChTdHJpbmcgdXVpZCwgU3RyaW5nIHR5cGUs
IFdlYkNvcmU6OkxheW91dFBvaW50IGxvY2F0aW9uLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCkK
ICNlbmRpZgogCiAgICAgcmVxdWVzdFBlcm1pc3Npb24oc3RydWN0IFdlYkNvcmU6OkNsaWVudE9y
aWdpbiBvcmlnaW4sIHN0cnVjdCBXZWJDb3JlOjpQZXJtaXNzaW9uRGVzY3JpcHRvciBkZXNjcmlw
dG9yKSAtPiAoZW51bTp1aW50OF90IFdlYkNvcmU6OlBlcm1pc3Npb25TdGF0ZSBzdGF0ZSkgQXN5
bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJ
bmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2Rl
bC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaAppbmRleCA0ZjAyMDcwYzQyNjUu
LjEwOGFiZDc0YTY0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVs
L21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaApAQCAt
NDcsOCArNDcsMTAgQEAgcHJpdmF0ZToKICAgICBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
cihXZWJQYWdlJiwgV2ViQ29yZTo6TW9kZWxQbGF5ZXJDbGllbnQmKTsKIAogICAgIC8vIFdlYkNv
cmU6Ok1vZGVsUGxheWVyIG92ZXJyaWRlcy4KLSAgICB2aXJ0dWFsIHZvaWQgbG9hZChXZWJDb3Jl
OjpNb2RlbCYsIFdlYkNvcmU6OkxheW91dFNpemUpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUGxh
dGZvcm1MYXllciogbGF5ZXIoKSBvdmVycmlkZTsKKyAgICB2b2lkIGxvYWQoV2ViQ29yZTo6TW9k
ZWwmLCBXZWJDb3JlOjpMYXlvdXRTaXplKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybUxheWVyKiBs
YXllcigpIG92ZXJyaWRlOworICAgIGJvb2wgc3VwcG9ydHNNb3VzZUludGVyYWN0aW9uKCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlTW91c2VFdmVudChjb25zdCBTdHJpbmcmLCBjb25z
dCBXZWJDb3JlOjpMYXlvdXRQb2ludCYsIGNvbnN0IE1vbm90b25pY1RpbWUpIG92ZXJyaWRlOwog
CiAgICAgdm9pZCBjcmVhdGVGaWxlKFdlYkNvcmU6Ok1vZGVsJik7CiAgICAgdm9pZCBjbGVhckZp
bGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJL
aXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1tCmluZGV4IDJkZjI0NTFh
ZmMzMS4uZDVhOGI1Y2JjMGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIu
bW0KQEAgLTE3Miw2ICsxNzIsMjAgQEAgUGxhdGZvcm1MYXllciogQVJLaXRJbmxpbmVQcmV2aWV3
TW9kZWxQbGF5ZXI6OmxheWVyKCkKICAgICByZXR1cm4gW21faW5saW5lUHJldmlldyBsYXllcl07
CiB9CiAKK2Jvb2wgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OnN1cHBvcnRzTW91c2VJ
bnRlcmFjdGlvbigpCit7CisjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX01BQykKKyAg
ICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBBUktp
dElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6ZGlkUmVjZWl2ZU1vdXNlRXZlbnQoY29uc3QgU3Ry
aW5nJiB0eXBlLCBjb25zdCBMYXlvdXRQb2ludCYgbG9jYXRpb24sIGNvbnN0IE1vbm90b25pY1Rp
bWUgdGltZXN0YW1wKQoreworICAgIGlmIChtX3BhZ2UpCisgICAgICAgIG1fcGFnZS0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpNb2RlbEVsZW1lbnREaWRSZWNlaXZlTW91c2VFdmVudCgo
U3RyaW5nKVttX2lubGluZVByZXZpZXcgdXVpZF0uVVVJRFN0cmluZywgdHlwZSwgbG9jYXRpb24s
IHRpbWVzdGFtcCkpOworfQorCiB9CiAKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444520</attachid>
            <date>2021-11-17 07:32:16 -0800</date>
            <delta_ts>2021-11-17 08:00:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233105-20211117163215.patch</filename>
            <type>text/plain</type>
            <size>23993</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjhjOTc2NjFjMjU2ZGM1
ODRlZGJjNDY1ZGUwYzE1MThmYzIyZDI2MC4uNzhjYmNiZTFkZmJkZTc2NGJjZDY0Y2E3MTMwN2Ez
OTUzMjAyNmY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTExLTE3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtNb2RlbF0gW21hY09T
XSBBZGQgc3VwcG9ydCBmb3IgaW50ZXJhY3Rpb24gb24gbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzEwNQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vODAwNzkzODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ2FwdHVyZSBtb3VzZSBldmVudHMgYWZ0ZXIgdGhlIG1vdXNlIGJ1dHRvbiBpcyBw
cmVzc2VkIG92ZXIgYSA8bW9kZWw+IGVsZW1lbnQsCisgICAgICAgIHVubGVzcyBwcmV2ZW50RGVm
YXVsdCgpIGlzIGNhbGxlZCwgYW5kIGZvcndhcmQgdGhvc2UgZXZlbnRzIHRocm91Z2ggTW9kZWxQ
bGF5ZXIKKyAgICAgICAgdG8gdGhlIFVJIHByb2Nlc3MuCisKKyAgICAgICAgKiBNb2R1bGVzL21v
ZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TW9kZWxFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNb2RlbEVsZW1lbnQ6OmRyYWdEaWRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9k
ZWxFbGVtZW50OjpkcmFnRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVs
ZW1lbnQ6OmRyYWdEaWRFbmQpOgorICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1M
TW9kZWxFbGVtZW50Lmg6CisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxh
eWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vZGVsUGxheWVyOjpzdXBwb3J0c01vdXNlSW50
ZXJhY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5o
OgorICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkR1bW15TW9kZWxQbGF5ZXI6OmhhbmRsZU1vdXNlRG93
bik6CisgICAgICAgIChXZWJDb3JlOjpEdW1teU1vZGVsUGxheWVyOjpoYW5kbGVNb3VzZU1vdmUp
OgorICAgICAgICAoV2ViQ29yZTo6RHVtbXlNb2RlbFBsYXllcjo6aGFuZGxlTW91c2VVcCk6Cisg
ICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuaDoK
KyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbFBs
YXllci5oOgorICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtp
dE1vZGVsUGxheWVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2NlbmVLaXRNb2RlbFBsYXllcjo6
aGFuZGxlTW91c2VEb3duKToKKyAgICAgICAgKFdlYkNvcmU6OlNjZW5lS2l0TW9kZWxQbGF5ZXI6
OmhhbmRsZU1vdXNlTW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY2VuZUtpdE1vZGVsUGxheWVy
OjpoYW5kbGVNb3VzZVVwKToKKwogMjAyMS0xMS0xNyAgQW50b2luZSBRdWludCAgPGdyYW91dHNA
d2Via2l0Lm9yZz4KIAogICAgICAgICBbTW9kZWxdIENyZWF0ZSBpT1MgTW9kZWxQbGF5ZXIgaW1w
bGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDFhZjA5ZGU5Mjg3ZjZlOGEwMTJkNTRlYjQ3MzFjZWNl
ZmNjMWY3Yy4uNjRjN2Y5OWYwOWZmY2IwZTE0OGZmZjgxNGNmYTY3YjgzYTY0N2QzOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzNyBAQAorMjAyMS0xMS0xNyAgQW50b2luZSBRdWludCAgPGdyYW91dHNA
d2Via2l0Lm9yZz4KKworICAgICAgICBbTW9kZWxdIFttYWNPU10gQWRkIHN1cHBvcnQgZm9yIGlu
dGVyYWN0aW9uIG9uIG1hY09TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzMxMDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgwMDc5Mzg2PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvcndhcmQgbW91
c2UgZXZlbnRzIGNhcHR1cmVkIGluIHRoZSBXZWIgcHJvY2VzcyB0byB0aGUgbWF0Y2hpbmcgQVNW
SW5saW5lUHJldmlldy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Nb2RlbEVsZW1lbnRD
b250cm9sbGVyQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok1vZGVsRWxlbWVudENvbnRyb2xs
ZXI6OnByZXZpZXdGb3JVVUlEKToKKyAgICAgICAgKFdlYktpdDo6TW9kZWxFbGVtZW50Q29udHJv
bGxlcjo6aGFuZGxlTW91c2VEb3duRm9yTW9kZWxFbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6
TW9kZWxFbGVtZW50Q29udHJvbGxlcjo6aGFuZGxlTW91c2VNb3ZlRm9yTW9kZWxFbGVtZW50KToK
KyAgICAgICAgKFdlYktpdDo6TW9kZWxFbGVtZW50Q29udHJvbGxlcjo6aGFuZGxlTW91c2VVcEZv
ck1vZGVsRWxlbWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL01vZGVsRWxlbWVudENvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpoYW5kbGVNb3VzZURvd25Gb3JNb2RlbEVsZW1lbnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZU1vdXNlTW92ZUZvck1vZGVsRWxlbWVu
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFuZGxlTW91c2VVcEZvck1vZGVs
RWxlbWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vz
cy9Nb2RlbC9pb3MvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1MuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL01vZGVsL2lvcy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUy5t
bToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1M6Omhh
bmRsZU1vdXNlRG93bik6CisgICAgICAgIChXZWJLaXQ6OkFSS2l0SW5saW5lUHJldmlld01vZGVs
UGxheWVySU9TOjpoYW5kbGVNb3VzZU1vdmUpOgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllcklPUzo6aGFuZGxlTW91c2VVcCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1h
Yy5tbToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6
OnN1cHBvcnRzTW91c2VJbnRlcmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OkFSS2l0SW5saW5l
UHJldmlld01vZGVsUGxheWVyTWFjOjpoYW5kbGVNb3VzZURvd24pOgorICAgICAgICAoV2ViS2l0
OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYzo6aGFuZGxlTW91c2VNb3ZlKToKKyAg
ICAgICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OmhhbmRsZU1v
dXNlVXApOgorCiAyMDIxLTExLTE3ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3Jn
PgogCiAgICAgICAgIFtNb2RlbF0gQ3JlYXRlIGlPUyBNb2RlbFBsYXllciBpbXBsZW1lbnRhdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxN
b2RlbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hU
TUxNb2RlbEVsZW1lbnQuY3BwCmluZGV4IDdlOTdjNTUxNWNlYjNjY2ZiODcxYjI5MzFjMDZiODU3
ZmEzYzNkY2EuLjBiZDI1ZjQyYWI2ZmE1MzNmNjk2MGI3ZDZjM2ZlMzVlZWQxYmM5ZjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1v
ZGVsRWxlbWVudC5jcHAKQEAgLTMzLDYgKzMzLDggQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkVsZW1lbnRDaGlsZEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVudElubGlu
ZXMuaCIKKyNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgi
CiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJDQS5o
IgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgpAQCAtNDMsNyArNDUsOSBAQAogI2luY2x1ZGUgIk1v
ZGVsLmgiCiAjaW5jbHVkZSAiTW9kZWxQbGF5ZXIuaCIKICNpbmNsdWRlICJNb2RlbFBsYXllclBy
b3ZpZGVyLmgiCisjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgog
I2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyTW9k
ZWxPYmplY3QuaCIKQEAgLTI4OSw2ICsyOTMsNzMgQEAgdm9pZCBIVE1MTW9kZWxFbGVtZW50Ojpl
bnRlckZ1bGxzY3JlZW4oKQogICAgIG1fbW9kZWxQbGF5ZXItPmVudGVyRnVsbHNjcmVlbigpOwog
fQogCisvLyBNQVJLOiAtIEludGVyYWN0aW9uIHN1cHBvcnQuCisKK3ZvaWQgSFRNTE1vZGVsRWxl
bWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCit7CisgICAgaWYgKCFtX21v
ZGVsUGxheWVyIHx8ICFtX21vZGVsUGxheWVyLT5zdXBwb3J0c01vdXNlSW50ZXJhY3Rpb24oKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byB0eXBlID0gZXZlbnQudHlwZSgpOworICAgIGlm
ICh0eXBlICE9IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCAmJiB0eXBlICE9IGV2ZW50TmFt
ZXMoKS5tb3VzZW1vdmVFdmVudCAmJiB0eXBlICE9IGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQp
CisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVChpczxNb3VzZUV2ZW50PihldmVudCkpOwor
ICAgIGF1dG8mIG1vdXNlRXZlbnQgPSBkb3duY2FzdDxNb3VzZUV2ZW50PihldmVudCk7CisKKyAg
ICBpZiAobW91c2VFdmVudC5idXR0b24oKSAhPSBMZWZ0QnV0dG9uKQorICAgICAgICByZXR1cm47
CisKKyAgICBpZiAodHlwZSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgJiYgIW1faXNE
cmFnZ2luZyAmJiAhZXZlbnQuZGVmYXVsdFByZXZlbnRlZCgpKQorICAgICAgICBkcmFnRGlkU3Rh
cnQobW91c2VFdmVudCk7CisgICAgZWxzZSBpZiAodHlwZSA9PSBldmVudE5hbWVzKCkubW91c2Vt
b3ZlRXZlbnQgJiYgbV9pc0RyYWdnaW5nKQorICAgICAgICBkcmFnRGlkQ2hhbmdlKG1vdXNlRXZl
bnQpOworICAgIGVsc2UgaWYgKHR5cGUgPT0gZXZlbnROYW1lcygpLm1vdXNldXBFdmVudCAmJiBt
X2lzRHJhZ2dpbmcpCisgICAgICAgIGRyYWdEaWRFbmQobW91c2VFdmVudCk7Cit9CisKK3ZvaWQg
SFRNTE1vZGVsRWxlbWVudDo6ZHJhZ0RpZFN0YXJ0KE1vdXNlRXZlbnQmIGV2ZW50KQoreworICAg
IEFTU0VSVCghbV9pc0RyYWdnaW5nKTsKKworICAgIGF1dG8gZnJhbWUgPSBkb2N1bWVudCgpLmZy
YW1lKCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZnJhbWUtPmV2
ZW50SGFuZGxlcigpLnNldENhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudCh0aGlzKTsKKyAgICBl
dmVudC5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgIG1faXNEcmFnZ2luZyA9IHRydWU7CisKKyAg
ICBpZiAobV9tb2RlbFBsYXllcikKKyAgICAgICAgbV9tb2RlbFBsYXllci0+aGFuZGxlTW91c2VE
b3duKGV2ZW50LnBhZ2VMb2NhdGlvbigpLCBldmVudC50aW1lU3RhbXAoKSk7Cit9CisKK3ZvaWQg
SFRNTE1vZGVsRWxlbWVudDo6ZHJhZ0RpZENoYW5nZShNb3VzZUV2ZW50JiBldmVudCkKK3sKKyAg
ICBBU1NFUlQobV9pc0RyYWdnaW5nKTsKKworICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7
CisKKyAgICBpZiAobV9tb2RlbFBsYXllcikKKyAgICAgICAgbV9tb2RlbFBsYXllci0+aGFuZGxl
TW91c2VNb3ZlKGV2ZW50LnBhZ2VMb2NhdGlvbigpLCBldmVudC50aW1lU3RhbXAoKSk7Cit9CisK
K3ZvaWQgSFRNTE1vZGVsRWxlbWVudDo6ZHJhZ0RpZEVuZChNb3VzZUV2ZW50JiBldmVudCkKK3sK
KyAgICBBU1NFUlQobV9pc0RyYWdnaW5nKTsKKworICAgIGF1dG8gZnJhbWUgPSBkb2N1bWVudCgp
LmZyYW1lKCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZnJhbWUt
PmV2ZW50SGFuZGxlcigpLnNldENhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudChudWxscHRyKTsK
KyAgICBldmVudC5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgIG1faXNEcmFnZ2luZyA9IGZhbHNl
OworCisgICAgaWYgKG1fbW9kZWxQbGF5ZXIpCisgICAgICAgIG1fbW9kZWxQbGF5ZXItPmhhbmRs
ZU1vdXNlVXAoZXZlbnQucGFnZUxvY2F0aW9uKCksIGV2ZW50LnRpbWVTdGFtcCgpKTsKK30KKwog
fQogCiAjZW5kaWYgLy8gRU5BQkxFKE1PREVMX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuaAppbmRleCA2
OTQ3OGMyNzQ4MTU3NDU5MWIxM2E0ZGRlNmQ5OWNjMDAxYWE5MGMzLi5mZWViY2M1OTMwNmM1ZjI0
NWI5NDMwMTYzNDQzMGQ3NTk0ZWU2YzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmgKQEAgLTQwLDggKzQwLDEw
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRXZlbnQ7CiBjbGFzcyBNb2RlbDsK
IGNsYXNzIE1vZGVsUGxheWVyOworY2xhc3MgTW91c2VFdmVudDsKIAogdGVtcGxhdGU8dHlwZW5h
bWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZVByb3h5V2l0aFJlc29sdmVDYWxsYmFjazsKIApA
QCAtOTIsMTIgKzk0LDE4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGYWlsTG9hZGluZyhNb2Rl
bFBsYXllciYsIGNvbnN0IFJlc291cmNlRXJyb3ImKSBmaW5hbDsKICAgICBHcmFwaGljc0xheWVy
OjpQbGF0Zm9ybUxheWVySUQgcGxhdGZvcm1MYXllcklEKCkgZmluYWw7CiAKKyAgICB2b2lkIGRl
ZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmKSBmaW5hbDsKKyAgICB2b2lkIGRyYWdEaWRTdGFydChN
b3VzZUV2ZW50Jik7CisgICAgdm9pZCBkcmFnRGlkQ2hhbmdlKE1vdXNlRXZlbnQmKTsKKyAgICB2
b2lkIGRyYWdEaWRFbmQoTW91c2VFdmVudCYpOworCiAgICAgVVJMIG1fc291cmNlVVJMOwogICAg
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiBtX3Jlc291cmNlOwogICAg
IFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1fZGF0YTsKICAgICBSZWZQdHI8TW9kZWw+IG1fbW9kZWw7
CiAgICAgVW5pcXVlUmVmPFJlYWR5UHJvbWlzZT4gbV9yZWFkeVByb21pc2U7CiAgICAgYm9vbCBt
X2RhdGFDb21wbGV0ZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzRHJhZ2dpbmcgeyBmYWxzZSB9
OwogCiAgICAgUmVmUHRyPE1vZGVsUGxheWVyPiBtX21vZGVsUGxheWVyOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXIuY3BwCmlu
ZGV4IDE1MTNhMmQwYjI5YWRiNjVhNzUyMTliMDNiNGVkNzY1NzI0NzA1ZjcuLjg4MzhkNjYxNjVj
YzA3YjcwZjU3NThkMTNmNjU4ZGQ1YzZjYmIxM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmNwcApAQCAtMzAsNCArMzAsOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIE1vZGVsUGxheWVyOjp+TW9kZWxQbGF5ZXIoKSA9IGRl
ZmF1bHQ7CiAKK2Jvb2wgTW9kZWxQbGF5ZXI6OnN1cHBvcnRzTW91c2VJbnRlcmFjdGlvbigpCit7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5oCmluZGV4IGU3MTI5ZGRjOTE0MDI0N2M1NDU1
YjI5ZWFkMDc5ZGE3NWRkMmZlYTMuLjllNzQwNDJjY2Q4MzQxYWMxYWE1Zjc5OTU0OTgyMGE4ZjRm
YjdhZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9N
b2RlbFBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9N
b2RlbFBsYXllci5oCkBAIC0yNSw5ICsyNSwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1
ZGUgIkxheW91dFBvaW50LmgiCiAjaW5jbHVkZSAiTGF5b3V0U2l6ZS5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtTGF5ZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9N
b25vdG9uaWNUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDEsNiArNDMsMTEg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsb2FkKE1vZGVsJiwgTGF5b3V0U2l6ZSkgPSAw
OwogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogbGF5ZXIoKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGVudGVyRnVsbHNjcmVlbigpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNNb3Vz
ZUludGVyYWN0aW9uKCk7CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZU1vdXNlRG93bihjb25zdCBM
YXlvdXRQb2ludCYsIGNvbnN0IE1vbm90b25pY1RpbWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
aGFuZGxlTW91c2VNb3ZlKGNvbnN0IExheW91dFBvaW50JiwgY29uc3QgTW9ub3RvbmljVGltZSkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVNb3VzZVVwKGNvbnN0IExheW91dFBvaW50Jiwg
Y29uc3QgTW9ub3RvbmljVGltZSkgPSAwOworCiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBs
YXllci5jcHAKaW5kZXggODI0NjYxNjFlZGY1ODZlM2U0NTg4YmM0Yjk0MzUwNmQwNDliMWQ3OS4u
ZWQxMGZkYzMzNzhmZmM0MGJiZDA5MWUxMTIzM2ZiODg0YmY0NGU3YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1t
eU1vZGVsUGxheWVyLmNwcApAQCAtNTgsNCArNTgsMTYgQEAgdm9pZCBEdW1teU1vZGVsUGxheWVy
OjplbnRlckZ1bGxzY3JlZW4oKQogewogfQogCit2b2lkIER1bW15TW9kZWxQbGF5ZXI6OmhhbmRs
ZU1vdXNlRG93bihjb25zdCBMYXlvdXRQb2ludCYsIGNvbnN0IE1vbm90b25pY1RpbWUpCit7Cit9
CisKK3ZvaWQgRHVtbXlNb2RlbFBsYXllcjo6aGFuZGxlTW91c2VNb3ZlKGNvbnN0IExheW91dFBv
aW50JiwgY29uc3QgTW9ub3RvbmljVGltZSkKK3sKK30KKwordm9pZCBEdW1teU1vZGVsUGxheWVy
OjpoYW5kbGVNb3VzZVVwKGNvbnN0IExheW91dFBvaW50JiwgY29uc3QgTW9ub3RvbmljVGltZSkK
K3sKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVt
ZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9k
ZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmgKaW5kZXggODM4ZWJlY2Y4ZDIxMGIw
MzVkMTY4NDVhNzA3MTZmOTIyNzkwNmU4MS4uMGNhMWM4MmRkOGYzNmRkYWUzMWMzNjQ3YjJmMTVh
MzYzNjRhNmVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVt
ZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5oCkBAIC00NCw2ICs0NCw5IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBsb2FkKE1vZGVsJiwgTGF5b3V0U2l6ZSkgb3ZlcnJpZGU7CiAg
ICAgUGxhdGZvcm1MYXllciogbGF5ZXIoKSBvdmVycmlkZTsKICAgICB2b2lkIGVudGVyRnVsbHNj
cmVlbigpIG92ZXJyaWRlOworICAgIHZvaWQgaGFuZGxlTW91c2VEb3duKGNvbnN0IExheW91dFBv
aW50JiwgY29uc3QgTW9ub3RvbmljVGltZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBoYW5kbGVNb3Vz
ZU1vdmUoY29uc3QgTGF5b3V0UG9pbnQmLCBjb25zdCBNb25vdG9uaWNUaW1lKSBvdmVycmlkZTsK
KyAgICB2b2lkIGhhbmRsZU1vdXNlVXAoY29uc3QgTGF5b3V0UG9pbnQmLCBjb25zdCBNb25vdG9u
aWNUaW1lKSBvdmVycmlkZTsKIAogICAgIFdlYWtQdHI8TW9kZWxQbGF5ZXJDbGllbnQ+IG1fY2xp
ZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVu
dC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbFBsYXllci5oCmluZGV4IDRhYzNk
YWI5ZGQ1M2ZlODVlZmUwNTMwZTY4MTJjMTQwNDhmNjRlM2YuLjU5MmQxMzlhYjA0YWYyMTM0OTI3
NTZjMGEwNjQzNWQ1ZTFkMTU2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5
ZXIuaApAQCAtNTgsNiArNTgsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgbG9hZChNb2RlbCYsIExh
eW91dFNpemUpIG92ZXJyaWRlOwogICAgIENBTGF5ZXIgKmxheWVyKCkgb3ZlcnJpZGU7CiAgICAg
dm9pZCBlbnRlckZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKKyAgICB2b2lkIGhhbmRsZU1vdXNlRG93
bihjb25zdCBMYXlvdXRQb2ludCYsIGNvbnN0IE1vbm90b25pY1RpbWUpIG92ZXJyaWRlOworICAg
IHZvaWQgaGFuZGxlTW91c2VNb3ZlKGNvbnN0IExheW91dFBvaW50JiwgY29uc3QgTW9ub3Rvbmlj
VGltZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBoYW5kbGVNb3VzZVVwKGNvbnN0IExheW91dFBvaW50
JiwgY29uc3QgTW9ub3RvbmljVGltZSkgb3ZlcnJpZGU7CiAKICAgICAvLyBTY2VuZUtpdE1vZGVs
TG9hZGVyQ2xpZW50IG92ZXJyaWRlcy4KICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGlu
ZyhTY2VuZUtpdE1vZGVsTG9hZGVyJiwgUmVmPFNjZW5lS2l0TW9kZWw+KSBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9T
Y2VuZUtpdE1vZGVsUGxheWVyLm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVt
ZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIubW0KaW5kZXggNjk2OTZjOWU2OTE2ODU5
YTAxZWEzZGE3ZDdjNDQ3MDU4ZmZlM2Y1OS4uNzIzYTFjMzQ5MGQwZjg0MDg2YjY1N2Q3MzQ2MTg5
NDJjNGU4NDJmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVt
ZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIubW0KQEAg
LTc2LDYgKzc2LDE4IEBAIHZvaWQgU2NlbmVLaXRNb2RlbFBsYXllcjo6ZW50ZXJGdWxsc2NyZWVu
KCkKIHsKIH0KIAordm9pZCBTY2VuZUtpdE1vZGVsUGxheWVyOjpoYW5kbGVNb3VzZURvd24oY29u
c3QgTGF5b3V0UG9pbnQmLCBjb25zdCBNb25vdG9uaWNUaW1lKQoreworfQorCit2b2lkIFNjZW5l
S2l0TW9kZWxQbGF5ZXI6OmhhbmRsZU1vdXNlTW92ZShjb25zdCBMYXlvdXRQb2ludCYsIGNvbnN0
IE1vbm90b25pY1RpbWUpCit7Cit9CisKK3ZvaWQgU2NlbmVLaXRNb2RlbFBsYXllcjo6aGFuZGxl
TW91c2VVcChjb25zdCBMYXlvdXRQb2ludCYsIGNvbnN0IE1vbm90b25pY1RpbWUpCit7Cit9CisK
IC8vIE1BUks6IC0gU2NlbmVLaXRNb2RlbExvYWRlckNsaWVudCBvdmVycmlkZXMuCiAKIHZvaWQg
U2NlbmVLaXRNb2RlbFBsYXllcjo6ZGlkRmluaXNoTG9hZGluZyhTY2VuZUtpdE1vZGVsTG9hZGVy
JiBsb2FkZXIsIFJlZjxTY2VuZUtpdE1vZGVsPiBtb2RlbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL01vZGVsRWxlbWVudENvbnRyb2xsZXJDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01vZGVsRWxlbWVudENvbnRyb2xsZXJDb2NvYS5t
bQppbmRleCA0ZTU4NDdkYzIzNDQzMzA5ZjcwNjk1MDIxMTEwNmU4YjQzOTIwNDkwLi4xNTJkNjBi
YmUyMjYyMzVjYjRlODM0NDhlMjUwODZlM2EyOGI3ZmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Nb2RlbEVsZW1lbnRDb250cm9sbGVyQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTW9kZWxFbGVtZW50Q29udHJvbGxlckNvY29h
Lm1tCkBAIC00Miw5ICs0MiwxMiBAQAogI2VuZGlmCiAKICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5F
X1BSRVZJRVdfTUFDKQorI2ltcG9ydCA8V2ViQ29yZS9MYXlvdXRQb2ludC5oPgorI2ltcG9ydCA8
V2ViQ29yZS9MYXlvdXRVbml0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4K
ICNpbXBvcnQgPHBhbC9zcGkvbWFjL1N5c3RlbVByZXZpZXdTUEkuaD4KICNpbXBvcnQgPHd0Zi9N
YWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2VuZGlmCiAKIFNP
RlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhBc3NldFZpZXdlcik7CkBAIC0xODgsNiArMTkxLDMy
IEBAIHZvaWQgTW9kZWxFbGVtZW50Q29udHJvbGxlcjo6bW9kZWxFbGVtZW50RGlkQ3JlYXRlUHJl
dmlldyhVUkwgZmlsZVVSTCwgU3RyaW5nIHV1CiAgICAgfSkuZ2V0KCldOwogfQogCitSZXRhaW5Q
dHI8QVNWSW5saW5lUHJldmlldz4gTW9kZWxFbGVtZW50Q29udHJvbGxlcjo6cHJldmlld0ZvclVV
SUQoY29uc3QgU3RyaW5nJiB1dWlkKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX2lubGluZVBy
ZXZpZXdzLmZpbmQodXVpZCk7CisgICAgaWYgKGl0ZXJhdG9yICE9IG1faW5saW5lUHJldmlld3Mu
ZW5kKCkpCisgICAgICAgIHJldHVybiBpdGVyYXRvci0+dmFsdWU7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK3ZvaWQgTW9kZWxFbGVtZW50Q29udHJvbGxlcjo6aGFuZGxlTW91c2VEb3duRm9y
TW9kZWxFbGVtZW50KGNvbnN0IFN0cmluZyYgdXVpZCwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9p
bnQmIGxvY2F0aW9uSW5QYWdlQ29vcmRpbmF0ZXMsIGNvbnN0IE1vbm90b25pY1RpbWUgdGltZXN0
YW1wKQoreworICAgIGlmIChhdXRvIHByZXZpZXcgPSBwcmV2aWV3Rm9yVVVJRCh1dWlkKSkKKyAg
ICAgICAgW3ByZXZpZXcgbW91c2VEb3duQXRMb2NhdGlvbjpDR1BvaW50TWFrZShsb2NhdGlvbklu
UGFnZUNvb3JkaW5hdGVzLngoKS50b0Zsb2F0KCksIGxvY2F0aW9uSW5QYWdlQ29vcmRpbmF0ZXMu
eSgpLnRvRmxvYXQoKSkgdGltZXN0YW1wOnRpbWVzdGFtcC5zZWNvbmRzU2luY2VFcG9jaCgpLnZh
bHVlKCldOworfQorCit2b2lkIE1vZGVsRWxlbWVudENvbnRyb2xsZXI6OmhhbmRsZU1vdXNlTW92
ZUZvck1vZGVsRWxlbWVudChjb25zdCBTdHJpbmcmIHV1aWQsIGNvbnN0IFdlYkNvcmU6OkxheW91
dFBvaW50JiBsb2NhdGlvbkluUGFnZUNvb3JkaW5hdGVzLCBjb25zdCBNb25vdG9uaWNUaW1lIHRp
bWVzdGFtcCkKK3sKKyAgICBpZiAoYXV0byBwcmV2aWV3ID0gcHJldmlld0ZvclVVSUQodXVpZCkp
CisgICAgICAgIFtwcmV2aWV3IG1vdXNlRHJhZ2dlZEF0TG9jYXRpb246Q0dQb2ludE1ha2UobG9j
YXRpb25JblBhZ2VDb29yZGluYXRlcy54KCkudG9GbG9hdCgpLCBsb2NhdGlvbkluUGFnZUNvb3Jk
aW5hdGVzLnkoKS50b0Zsb2F0KCkpIHRpbWVzdGFtcDp0aW1lc3RhbXAuc2Vjb25kc1NpbmNlRXBv
Y2goKS52YWx1ZSgpXTsKK30KKwordm9pZCBNb2RlbEVsZW1lbnRDb250cm9sbGVyOjpoYW5kbGVN
b3VzZVVwRm9yTW9kZWxFbGVtZW50KGNvbnN0IFN0cmluZyYgdXVpZCwgY29uc3QgV2ViQ29yZTo6
TGF5b3V0UG9pbnQmIGxvY2F0aW9uSW5QYWdlQ29vcmRpbmF0ZXMsIGNvbnN0IE1vbm90b25pY1Rp
bWUgdGltZXN0YW1wKQoreworICAgIGlmIChhdXRvIHByZXZpZXcgPSBwcmV2aWV3Rm9yVVVJRCh1
dWlkKSkKKyAgICAgICAgW3ByZXZpZXcgbW91c2VVcEF0TG9jYXRpb246Q0dQb2ludE1ha2UobG9j
YXRpb25JblBhZ2VDb29yZGluYXRlcy54KCkudG9GbG9hdCgpLCBsb2NhdGlvbkluUGFnZUNvb3Jk
aW5hdGVzLnkoKS50b0Zsb2F0KCkpIHRpbWVzdGFtcDp0aW1lc3RhbXAuc2Vjb25kc1NpbmNlRXBv
Y2goKS52YWx1ZSgpXTsKK30KKwogI2VuZGlmCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL01vZGVsRWxlbWVudENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL01vZGVsRWxlbWVudENvbnRyb2xsZXIuaAppbmRleCBiMzhkZDE4M2I0ODdjMDVkNGFk
YjJhNTlmYTYwODRiMzI4MWVlNjA1Li4zYWEzOWExZjEyOGM5NjRlNGUxNDBhZDg5OThlNzFlN2Vl
ZmI3NzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Nb2RlbEVsZW1lbnRD
b250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTW9kZWxFbGVtZW50Q29u
dHJvbGxlci5oCkBAIC01MywxMSArNTMsMTUgQEAgcHVibGljOgogI2VuZGlmCiAjaWYgRU5BQkxF
KEFSS0lUX0lOTElORV9QUkVWSUVXX01BQykKICAgICB2b2lkIG1vZGVsRWxlbWVudERpZENyZWF0
ZVByZXZpZXcoVVJMLCBTdHJpbmcsIFdlYkNvcmU6OkZsb2F0U2l6ZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeHBlY3RlZDxzdGQ6OnBhaXI8U3RyaW5nLCB1aW50MzJfdD4sIFdlYkNvcmU6OlJl
c291cmNlRXJyb3I+KT4mJik7CisgICAgdm9pZCBoYW5kbGVNb3VzZURvd25Gb3JNb2RlbEVsZW1l
bnQoY29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmLCBjb25zdCBNb25v
dG9uaWNUaW1lKTsKKyAgICB2b2lkIGhhbmRsZU1vdXNlTW92ZUZvck1vZGVsRWxlbWVudChjb25z
dCBTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpMYXlvdXRQb2ludCYsIGNvbnN0IE1vbm90b25pY1Rp
bWUpOworICAgIHZvaWQgaGFuZGxlTW91c2VVcEZvck1vZGVsRWxlbWVudChjb25zdCBTdHJpbmcm
LCBjb25zdCBXZWJDb3JlOjpMYXlvdXRQb2ludCYsIGNvbnN0IE1vbm90b25pY1RpbWUpOwogI2Vu
ZGlmCiAKIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5JiBtX3dlYlBhZ2VQcm94eTsKICNpZiBF
TkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfTUFDKQorICAgIFJldGFpblB0cjxBU1ZJbmxpbmVQ
cmV2aWV3PiBwcmV2aWV3Rm9yVVVJRChjb25zdCBTdHJpbmcmKTsKICAgICBIYXNoTWFwPFN0cmlu
ZywgUmV0YWluUHRyPEFTVklubGluZVByZXZpZXc+PiBtX2lubGluZVByZXZpZXdzOwogI2VuZGlm
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNzRjMzAx
ZDQ0ZjQyNTBlNGE2M2Y5Mzg3ZGIwMGQ5MDMxNDU2Yjc1MS4uMzU5YWM5YTc2YmRmZGQ5M2RmMTYx
MTk3ODY4Y2U2ODI0ODUyNjIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCkBAIC0xMDgzNiw2ICsxMDgzNiwyMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bW9kZWxF
bGVtZW50RGlkQ3JlYXRlUHJldmlldyhjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1dQog
ewogICAgIG1vZGVsRWxlbWVudENvbnRyb2xsZXIoKS0+bW9kZWxFbGVtZW50RGlkQ3JlYXRlUHJl
dmlldyh1cmwsIHV1aWQsIHNpemUsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KKwor
dm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZU1vdXNlRG93bkZvck1vZGVsRWxlbWVudChjb25zdCBT
dHJpbmcmIHV1aWQsIGNvbnN0IFdlYkNvcmU6OkxheW91dFBvaW50JiBsb2NhdGlvbkluUGFnZUNv
b3JkaW5hdGVzLCBjb25zdCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCkKK3sKKyAgICBtb2RlbEVs
ZW1lbnRDb250cm9sbGVyKCktPmhhbmRsZU1vdXNlRG93bkZvck1vZGVsRWxlbWVudCh1dWlkLCBs
b2NhdGlvbkluUGFnZUNvb3JkaW5hdGVzLCB0aW1lc3RhbXApOworfQorCit2b2lkIFdlYlBhZ2VQ
cm94eTo6aGFuZGxlTW91c2VNb3ZlRm9yTW9kZWxFbGVtZW50KGNvbnN0IFN0cmluZyYgdXVpZCwg
Y29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmIGxvY2F0aW9uSW5QYWdlQ29vcmRpbmF0ZXMsIGNv
bnN0IE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQoreworICAgIG1vZGVsRWxlbWVudENvbnRyb2xs
ZXIoKS0+aGFuZGxlTW91c2VNb3ZlRm9yTW9kZWxFbGVtZW50KHV1aWQsIGxvY2F0aW9uSW5QYWdl
Q29vcmRpbmF0ZXMsIHRpbWVzdGFtcCk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVN
b3VzZVVwRm9yTW9kZWxFbGVtZW50KGNvbnN0IFN0cmluZyYgdXVpZCwgY29uc3QgV2ViQ29yZTo6
TGF5b3V0UG9pbnQmIGxvY2F0aW9uSW5QYWdlQ29vcmRpbmF0ZXMsIGNvbnN0IE1vbm90b25pY1Rp
bWUgdGltZXN0YW1wKQoreworICAgIG1vZGVsRWxlbWVudENvbnRyb2xsZXIoKS0+aGFuZGxlTW91
c2VVcEZvck1vZGVsRWxlbWVudCh1dWlkLCBsb2NhdGlvbkluUGFnZUNvb3JkaW5hdGVzLCB0aW1l
c3RhbXApOworfQogI2VuZGlmCiAKICNpZiAhUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGYwMWYzNTRhZTc4Y2I0YWZhYjE4MzVmODE5YTE0
NTg5YzQwODkyMTUuLjNiZmMxZjE2ZTczZjEyMTc0Y2UyYmU1OGQ4Y2E4NDUxYWE4ZjNlNDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC01OTMsNiArNTkzLDkgQEAg
cHVibGljOgogI2VuZGlmCiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX01BQykKICAg
ICB2b2lkIG1vZGVsRWxlbWVudERpZENyZWF0ZVByZXZpZXcoY29uc3QgVVJMJiwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eHBlY3RlZDxzdGQ6OnBhaXI8U3RyaW5nLCB1aW50MzJfdD4sIFdlYkNvcmU6OlJlc291cmNlRXJy
b3I+KT4mJik7CisgICAgdm9pZCBoYW5kbGVNb3VzZURvd25Gb3JNb2RlbEVsZW1lbnQoY29uc3Qg
U3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmLCBjb25zdCBNb25vdG9uaWNUaW1l
KTsKKyAgICB2b2lkIGhhbmRsZU1vdXNlTW92ZUZvck1vZGVsRWxlbWVudChjb25zdCBTdHJpbmcm
LCBjb25zdCBXZWJDb3JlOjpMYXlvdXRQb2ludCYsIGNvbnN0IE1vbm90b25pY1RpbWUpOworICAg
IHZvaWQgaGFuZGxlTW91c2VVcEZvck1vZGVsRWxlbWVudChjb25zdCBTdHJpbmcmLCBjb25zdCBX
ZWJDb3JlOjpMYXlvdXRQb2ludCYsIGNvbnN0IE1vbm90b25pY1RpbWUpOwogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBiM2RjOGQyMDFjZDM2YWI0YzJkMDJkYmI2
ODE4ZTVlZGQwNDIwNjFjLi43MDIxMGZlZDZmMjRkMzE3YWUxZGVlNDgyNDE5NTcxZjNhOTNjZDY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCkBAIC01ODgsNiArNTg4LDkgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRp
ZgogI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFV19NQUMpCiAgICAgTW9kZWxFbGVtZW50
RGlkQ3JlYXRlUHJldmlldyhVUkwgdXJsLCBTdHJpbmcgdXVpZCwgV2ViQ29yZTo6RmxvYXRTaXpl
IHNpemUpIC0+IChFeHBlY3RlZDxzdGQ6OnBhaXI8U3RyaW5nLCB1aW50MzJfdD4sIFdlYkNvcmU6
OlJlc291cmNlRXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAgICBIYW5kbGVNb3VzZURvd25Gb3JNb2Rl
bEVsZW1lbnQoU3RyaW5nIHV1aWQsIFdlYkNvcmU6OkxheW91dFBvaW50IGxvY2F0aW9uSW5QYWdl
Q29vcmRpbmF0ZXMsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQorICAgIEhhbmRsZU1vdXNlTW92
ZUZvck1vZGVsRWxlbWVudChTdHJpbmcgdXVpZCwgV2ViQ29yZTo6TGF5b3V0UG9pbnQgbG9jYXRp
b25JblBhZ2VDb29yZGluYXRlcywgTW9ub3RvbmljVGltZSB0aW1lc3RhbXApCisgICAgSGFuZGxl
TW91c2VVcEZvck1vZGVsRWxlbWVudChTdHJpbmcgdXVpZCwgV2ViQ29yZTo6TGF5b3V0UG9pbnQg
bG9jYXRpb25JblBhZ2VDb29yZGluYXRlcywgTW9ub3RvbmljVGltZSB0aW1lc3RhbXApCiAjZW5k
aWYKIAogICAgIHJlcXVlc3RQZXJtaXNzaW9uKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4g
b3JpZ2luLCBzdHJ1Y3QgV2ViQ29yZTo6UGVybWlzc2lvbkRlc2NyaXB0b3IgZGVzY3JpcHRvcikg
LT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpQZXJtaXNzaW9uU3RhdGUgc3RhdGUpIEFzeW5jCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvaW9zL0FSS2l0SW5saW5l
UHJldmlld01vZGVsUGxheWVySU9TLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwv
aW9zL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLmgKaW5kZXggOTdmYjY3Njg2NzVl
YzY3ZjM1ZWM1ZGUzMzU5YTMzNTVkMGU5NGNhMC4uYmYzYTkxOWU5NjEwMjhkMmM5ZmMzNDE5ZDEw
NzkyZmI0ZjRiMTBiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVs
L2lvcy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9Nb2RlbC9pb3MvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1Mu
aApAQCAtNDMsNiArNDMsOSBAQCBwcml2YXRlOgogCiAgICAgLy8gV2ViQ29yZTo6TW9kZWxQbGF5
ZXIgb3ZlcnJpZGVzLgogICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CisgICAg
dm9pZCBoYW5kbGVNb3VzZURvd24oY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmLCBjb25zdCBN
b25vdG9uaWNUaW1lKSBvdmVycmlkZTsKKyAgICB2b2lkIGhhbmRsZU1vdXNlTW92ZShjb25zdCBX
ZWJDb3JlOjpMYXlvdXRQb2ludCYsIGNvbnN0IE1vbm90b25pY1RpbWUpIG92ZXJyaWRlOworICAg
IHZvaWQgaGFuZGxlTW91c2VVcChjb25zdCBXZWJDb3JlOjpMYXlvdXRQb2ludCYsIGNvbnN0IE1v
bm90b25pY1RpbWUpIG92ZXJyaWRlOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL01vZGVsL2lvcy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUy5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9pb3MvQVJLaXRJbmxpbmVQcmV2aWV3
TW9kZWxQbGF5ZXJJT1MubW0KaW5kZXggZWRlMTQ1YTUxZDJmNDA5MjEzMDAwNTQ3YTE4MTA4YTAy
ZDE1N2ZkNy4uYThmOTE5NDM3YzIxNTExY2M4MzA3NjA0MWZiYjEwMjczNjg0NDBhMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL2lvcy9BUktpdElubGluZVByZXZp
ZXdNb2RlbFBsYXllcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwv
aW9zL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLm1tCkBAIC01OSw2ICs1OSwyMCBA
QCB2b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TOjplbnRlckZ1bGxzY3JlZW4o
KQogICAgICAgICBwYWdlKCktPnRha2VNb2RlbEVsZW1lbnRGdWxsc2NyZWVuKGxheWVySWQpOwog
fQogCit2b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TOjpoYW5kbGVNb3VzZURv
d24oY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmLCBjb25zdCBNb25vdG9uaWNUaW1lKQorewor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIEFSS2l0SW5saW5lUHJldmlld01v
ZGVsUGxheWVySU9TOjpoYW5kbGVNb3VzZU1vdmUoY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQm
LCBjb25zdCBNb25vdG9uaWNUaW1lKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQog
Cit2b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TOjpoYW5kbGVNb3VzZVVwKGNv
bnN0IFdlYkNvcmU6OkxheW91dFBvaW50JiwgY29uc3QgTW9ub3RvbmljVGltZSkKK3sKKyAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVy
TWFjLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJl
dmlld01vZGVsUGxheWVyTWFjLmgKaW5kZXggM2I1NTliYzIzNDg4MGY4YTQyODBkMTVkNTU0OTRk
Yjg2MmE1MjYxMy4uYzI2MDdiMGU1YWVhNDA4MTNiOGU2YzI1ZTZmYWUxZTIzZDFiYTE4NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVBy
ZXZpZXdNb2RlbFBsYXllck1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2Rl
bC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMuaApAQCAtNTAsNiArNTAsMTAg
QEAgcHJpdmF0ZToKICAgICAvLyBXZWJDb3JlOjpNb2RlbFBsYXllciBvdmVycmlkZXMuCiAgICAg
dm9pZCBsb2FkKFdlYkNvcmU6Ok1vZGVsJiwgV2ViQ29yZTo6TGF5b3V0U2l6ZSkgb3ZlcnJpZGU7
CiAgICAgUGxhdGZvcm1MYXllciogbGF5ZXIoKSBvdmVycmlkZTsKKyAgICBib29sIHN1cHBvcnRz
TW91c2VJbnRlcmFjdGlvbigpIG92ZXJyaWRlOworICAgIHZvaWQgaGFuZGxlTW91c2VEb3duKGNv
bnN0IFdlYkNvcmU6OkxheW91dFBvaW50JiwgY29uc3QgTW9ub3RvbmljVGltZSkgb3ZlcnJpZGU7
CisgICAgdm9pZCBoYW5kbGVNb3VzZU1vdmUoY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmLCBj
b25zdCBNb25vdG9uaWNUaW1lKSBvdmVycmlkZTsKKyAgICB2b2lkIGhhbmRsZU1vdXNlVXAoY29u
c3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmLCBjb25zdCBNb25vdG9uaWNUaW1lKSBvdmVycmlkZTsK
IAogICAgIHZvaWQgY3JlYXRlRmlsZShXZWJDb3JlOjpNb2RlbCYpOwogICAgIHZvaWQgY2xlYXJG
aWxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FS
S2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5tbQppbmRleCA3
YzdjM2ZiOGRhMWFmZjA5ZGFhYzAxMGEzNTJhZmFkOWU3MmRhZTczLi5kMWJiNTM2MGM4Y2U2Mjg1
ZmM5N2ZlYzJlMjZhMjQ1MGY2Njg5YTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9k
ZWxQbGF5ZXJNYWMubW0KQEAgLTE3MCw2ICsxNzAsMzIgQEAgUGxhdGZvcm1MYXllciogQVJLaXRJ
bmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OmxheWVyKCkKICAgICByZXR1cm4gW21faW5saW5l
UHJldmlldyBsYXllcl07CiB9CiAKK2Jvb2wgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJN
YWM6OnN1cHBvcnRzTW91c2VJbnRlcmFjdGlvbigpCit7CisjaWYgRU5BQkxFKEFSS0lUX0lOTElO
RV9QUkVWSUVXX01BQykKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxz
ZTsKK30KKwordm9pZCBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYzo6aGFuZGxlTW91
c2VEb3duKGNvbnN0IExheW91dFBvaW50JiBsb2NhdGlvbkluUGFnZUNvb3JkaW5hdGVzLCBjb25z
dCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCkKK3sKKyAgICBpZiAoYXV0byogcGFnZSA9IHRoaXMt
PnBhZ2UoKSkKKyAgICAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpIYW5k
bGVNb3VzZURvd25Gb3JNb2RlbEVsZW1lbnQoKFN0cmluZylbbV9pbmxpbmVQcmV2aWV3IHV1aWRd
LlVVSURTdHJpbmcsIGxvY2F0aW9uSW5QYWdlQ29vcmRpbmF0ZXMsIHRpbWVzdGFtcCkpOworfQor
Cit2b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjOjpoYW5kbGVNb3VzZU1vdmUo
Y29uc3QgTGF5b3V0UG9pbnQmIGxvY2F0aW9uSW5QYWdlQ29vcmRpbmF0ZXMsIGNvbnN0IE1vbm90
b25pY1RpbWUgdGltZXN0YW1wKQoreworICAgIGlmIChhdXRvKiBwYWdlID0gdGhpcy0+cGFnZSgp
KQorICAgICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkhhbmRsZU1vdXNl
TW92ZUZvck1vZGVsRWxlbWVudCgoU3RyaW5nKVttX2lubGluZVByZXZpZXcgdXVpZF0uVVVJRFN0
cmluZywgbG9jYXRpb25JblBhZ2VDb29yZGluYXRlcywgdGltZXN0YW1wKSk7Cit9CisKK3ZvaWQg
QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OmhhbmRsZU1vdXNlVXAoY29uc3QgTGF5
b3V0UG9pbnQmIGxvY2F0aW9uSW5QYWdlQ29vcmRpbmF0ZXMsIGNvbnN0IE1vbm90b25pY1RpbWUg
dGltZXN0YW1wKQoreworICAgIGlmIChhdXRvKiBwYWdlID0gdGhpcy0+cGFnZSgpKQorICAgICAg
ICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkhhbmRsZU1vdXNlVXBGb3JNb2Rl
bEVsZW1lbnQoKFN0cmluZylbbV9pbmxpbmVQcmV2aWV3IHV1aWRdLlVVSURTdHJpbmcsIGxvY2F0
aW9uSW5QYWdlQ29vcmRpbmF0ZXMsIHRpbWVzdGFtcCkpOworfQorCiB9CiAKICNlbmRpZgo=
</data>
<flag name="review"
          id="469563"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444545</attachid>
            <date>2021-11-17 11:53:57 -0800</date>
            <delta_ts>2021-11-17 11:53:57 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-233105-20211117205355.patch</filename>
            <type>text/plain</type>
            <size>25134</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjhjOTc2NjFjMjU2ZGM1
ODRlZGJjNDY1ZGUwYzE1MThmYzIyZDI2MC4uMGJlNWY3NjhiNDdiY2U5NDBlZDc3M2FjMjc5MzBk
Y2M1ODUwZGY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTExLTE3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtNb2RlbF0gW21hY09T
XSBBZGQgc3VwcG9ydCBmb3IgaW50ZXJhY3Rpb24gb24gbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzEwNQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vODAwNzkzODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisg
ICAgICAgIENhcHR1cmUgbW91c2UgZXZlbnRzIGFmdGVyIHRoZSBtb3VzZSBidXR0b24gaXMgcHJl
c3NlZCBvdmVyIGEgPG1vZGVsPiBlbGVtZW50LAorICAgICAgICB1bmxlc3MgcHJldmVudERlZmF1
bHQoKSBpcyBjYWxsZWQsIGFuZCBmb3J3YXJkIHRob3NlIGV2ZW50cyB0aHJvdWdoIE1vZGVsUGxh
eWVyCisgICAgICAgIHRvIHRoZSBVSSBwcm9jZXNzLgorCisgICAgICAgICogTW9kdWxlcy9tb2Rl
bC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1v
ZGVsRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TW9kZWxFbGVtZW50OjpkcmFnRGlkU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVs
RWxlbWVudDo6ZHJhZ0RpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVt
ZW50OjpkcmFnRGlkRW5kKToKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1v
ZGVsRWxlbWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2RlbFBsYXllcjo6c3VwcG9ydHNNb3VzZUludGVy
YWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXIuaDoK
KyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEdW1teU1vZGVsUGxheWVyOjpoYW5kbGVNb3VzZURvd24p
OgorICAgICAgICAoV2ViQ29yZTo6RHVtbXlNb2RlbFBsYXllcjo6aGFuZGxlTW91c2VNb3ZlKToK
KyAgICAgICAgKFdlYkNvcmU6OkR1bW15TW9kZWxQbGF5ZXI6OmhhbmRsZU1vdXNlVXApOgorICAg
ICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmg6Cisg
ICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5
ZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRN
b2RlbFBsYXllci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjZW5lS2l0TW9kZWxQbGF5ZXI6Omhh
bmRsZU1vdXNlRG93bik6CisgICAgICAgIChXZWJDb3JlOjpTY2VuZUtpdE1vZGVsUGxheWVyOjpo
YW5kbGVNb3VzZU1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6U2NlbmVLaXRNb2RlbFBsYXllcjo6
aGFuZGxlTW91c2VVcCk6CisKIDIwMjEtMTEtMTcgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgW01vZGVsXSBDcmVhdGUgaU9TIE1vZGVsUGxheWVyIGltcGxl
bWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBlOTU1YzRkMzViZmFiZjA1YzU1NmIxZmM1
NGJjZTBjMmY0NmYzOWZlLi5lMzdiYTMxNTNjMTk1ZTRhODU1YTY3NDU3NjYxM2U3ZDJmNmM0ODUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0xMS0xNyAgQW50b2lu
ZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KKworICAgICAgICBbTW9kZWxdIFttYWNPU10g
QWRkIHN1cHBvcnQgZm9yIGludGVyYWN0aW9uIG9uIG1hY09TCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMxMDUKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzgwMDc5Mzg2PgorCisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAg
ICAgICBBZGQgbmV3IEFSUUwgU1BJcy4KKworICAgICAgICAqIHBhbC9zcGkvbWFjL1N5c3RlbVBy
ZXZpZXdTUEkuaDoKKwogMjAyMS0xMS0xNiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5j
b20+CiAKICAgICAgICAgW0FwcGxlIFBheV0gaGFuZGxlIHVua25vd24gc2V0dXAgZmVhdHVyZXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggNDFhZjA5ZGU5Mjg3ZjZlOGEwMTJkNTRlYjQ3MzFjZWNlZmNjMWY3Yy4uNDkz
NWFkZjFiNTNkMWNiNGNlMjMxMGEyYmI3YjI3ZDhkYWNmODAyNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNyBAQAorMjAyMS0xMS0xNyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4K
KworICAgICAgICBbTW9kZWxdIFttYWNPU10gQWRkIHN1cHBvcnQgZm9yIGludGVyYWN0aW9uIG9u
IG1hY09TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzMxMDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgwMDc5Mzg2PgorCisgICAgICAgIFJldmll
d2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICBGb3J3YXJkIG1vdXNlIGV2ZW50cyBjYXB0
dXJlZCBpbiB0aGUgV2ViIHByb2Nlc3MgdG8gdGhlIG1hdGNoaW5nIEFTVklubGluZVByZXZpZXcu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTW9kZWxFbGVtZW50Q29udHJvbGxlckNvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpNb2RlbEVsZW1lbnRDb250cm9sbGVyOjpwcmV2aWV3Rm9y
VVVJRCk6CisgICAgICAgIChXZWJLaXQ6Ok1vZGVsRWxlbWVudENvbnRyb2xsZXI6OmhhbmRsZU1v
dXNlRG93bkZvck1vZGVsRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6Ok1vZGVsRWxlbWVudENv
bnRyb2xsZXI6OmhhbmRsZU1vdXNlTW92ZUZvck1vZGVsRWxlbWVudCk6CisgICAgICAgIChXZWJL
aXQ6Ok1vZGVsRWxlbWVudENvbnRyb2xsZXI6OmhhbmRsZU1vdXNlVXBGb3JNb2RlbEVsZW1lbnQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Nb2RlbEVsZW1lbnRDb250cm9sbGVyLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6aGFuZGxlTW91c2VEb3duRm9yTW9kZWxFbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpoYW5kbGVNb3VzZU1vdmVGb3JNb2RlbEVsZW1lbnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZU1vdXNlVXBGb3JNb2RlbEVsZW1lbnQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvTW9kZWwvaW9zL0FS
S2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9N
b2RlbC9pb3MvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1MubW06CisgICAgICAgIChX
ZWJLaXQ6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TOjpoYW5kbGVNb3VzZURvd24p
OgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUzo6aGFu
ZGxlTW91c2VNb3ZlKToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQ
bGF5ZXJJT1M6OmhhbmRsZU1vdXNlVXApOgorICAgICAgICAqIFdlYlByb2Nlc3MvTW9kZWwvbWFj
L0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMubW06CisgICAgICAg
IChXZWJLaXQ6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjOjpzdXBwb3J0c01vdXNl
SW50ZXJhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBs
YXllck1hYzo6aGFuZGxlTW91c2VEb3duKToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQ
cmV2aWV3TW9kZWxQbGF5ZXJNYWM6OmhhbmRsZU1vdXNlTW92ZSk6CisgICAgICAgIChXZWJLaXQ6
OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjOjpoYW5kbGVNb3VzZVVwKToKKwogMjAy
MS0xMS0xNyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBb
TW9kZWxdIENyZWF0ZSBpT1MgTW9kZWxQbGF5ZXIgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50
LmNwcAppbmRleCA3ZTk3YzU1MTVjZWIzY2NmYjg3MWIyOTMxYzA2Yjg1N2ZhM2MzZGNhLi40ZmE2
ZGU5M2IwZTQ2N2ZhZjU3YmE0ZDIxNmE4OGY3MDgzN2QyOWFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3Bw
CkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFbGVt
ZW50Q2hpbGRJdGVyYXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnRJbmxpbmVzLmgiCisjaW5jbHVk
ZSAiRXZlbnRIYW5kbGVyLmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkdy
YXBoaWNzTGF5ZXIuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyQ0EuaCIKICNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKQEAgLTQzLDcgKzQ1LDkgQEAKICNpbmNsdWRlICJNb2RlbC5oIgogI2luY2x1
ZGUgIk1vZGVsUGxheWVyLmgiCiAjaW5jbHVkZSAiTW9kZWxQbGF5ZXJQcm92aWRlci5oIgorI2lu
Y2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5k
ZXJMYXllckJhY2tpbmcuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllck1vZGVsT2JqZWN0LmgiCkBA
IC0yODksNiArMjkzLDczIEBAIHZvaWQgSFRNTE1vZGVsRWxlbWVudDo6ZW50ZXJGdWxsc2NyZWVu
KCkKICAgICBtX21vZGVsUGxheWVyLT5lbnRlckZ1bGxzY3JlZW4oKTsKIH0KIAorLy8gTUFSSzog
LSBJbnRlcmFjdGlvbiBzdXBwb3J0LgorCit2b2lkIEhUTUxNb2RlbEVsZW1lbnQ6OmRlZmF1bHRF
dmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50KQoreworICAgIGlmICghbV9tb2RlbFBsYXllciB8fCAh
bV9tb2RlbFBsYXllci0+c3VwcG9ydHNNb3VzZUludGVyYWN0aW9uKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGF1dG8gdHlwZSA9IGV2ZW50LnR5cGUoKTsKKyAgICBpZiAodHlwZSAhPSBldmVu
dE5hbWVzKCkubW91c2Vkb3duRXZlbnQgJiYgdHlwZSAhPSBldmVudE5hbWVzKCkubW91c2Vtb3Zl
RXZlbnQgJiYgdHlwZSAhPSBldmVudE5hbWVzKCkubW91c2V1cEV2ZW50KQorICAgICAgICByZXR1
cm47CisKKyAgICBBU1NFUlQoaXM8TW91c2VFdmVudD4oZXZlbnQpKTsKKyAgICBhdXRvJiBtb3Vz
ZUV2ZW50ID0gZG93bmNhc3Q8TW91c2VFdmVudD4oZXZlbnQpOworCisgICAgaWYgKG1vdXNlRXZl
bnQuYnV0dG9uKCkgIT0gTGVmdEJ1dHRvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHR5
cGUgPT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ICYmICFtX2lzRHJhZ2dpbmcgJiYgIWV2
ZW50LmRlZmF1bHRQcmV2ZW50ZWQoKSkKKyAgICAgICAgZHJhZ0RpZFN0YXJ0KG1vdXNlRXZlbnQp
OworICAgIGVsc2UgaWYgKHR5cGUgPT0gZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50ICYmIG1f
aXNEcmFnZ2luZykKKyAgICAgICAgZHJhZ0RpZENoYW5nZShtb3VzZUV2ZW50KTsKKyAgICBlbHNl
IGlmICh0eXBlID09IGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQgJiYgbV9pc0RyYWdnaW5nKQor
ICAgICAgICBkcmFnRGlkRW5kKG1vdXNlRXZlbnQpOworfQorCit2b2lkIEhUTUxNb2RlbEVsZW1l
bnQ6OmRyYWdEaWRTdGFydChNb3VzZUV2ZW50JiBldmVudCkKK3sKKyAgICBBU1NFUlQoIW1faXNE
cmFnZ2luZyk7CisKKyAgICBSZWZQdHIgZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7CisgICAg
aWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigp
LnNldENhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudCh0aGlzKTsKKyAgICBldmVudC5zZXREZWZh
dWx0SGFuZGxlZCgpOworICAgIG1faXNEcmFnZ2luZyA9IHRydWU7CisKKyAgICBpZiAobV9tb2Rl
bFBsYXllcikKKyAgICAgICAgbV9tb2RlbFBsYXllci0+aGFuZGxlTW91c2VEb3duKGV2ZW50LnBh
Z2VMb2NhdGlvbigpLCBldmVudC50aW1lU3RhbXAoKSk7Cit9CisKK3ZvaWQgSFRNTE1vZGVsRWxl
bWVudDo6ZHJhZ0RpZENoYW5nZShNb3VzZUV2ZW50JiBldmVudCkKK3sKKyAgICBBU1NFUlQobV9p
c0RyYWdnaW5nKTsKKworICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7CisKKyAgICBpZiAo
bV9tb2RlbFBsYXllcikKKyAgICAgICAgbV9tb2RlbFBsYXllci0+aGFuZGxlTW91c2VNb3ZlKGV2
ZW50LnBhZ2VMb2NhdGlvbigpLCBldmVudC50aW1lU3RhbXAoKSk7Cit9CisKK3ZvaWQgSFRNTE1v
ZGVsRWxlbWVudDo6ZHJhZ0RpZEVuZChNb3VzZUV2ZW50JiBldmVudCkKK3sKKyAgICBBU1NFUlQo
bV9pc0RyYWdnaW5nKTsKKworICAgIFJlZlB0ciBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKTsK
KyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBmcmFtZS0+ZXZlbnRIYW5k
bGVyKCkuc2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50KG51bGxwdHIpOworICAgIGV2ZW50
LnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAgbV9pc0RyYWdnaW5nID0gZmFsc2U7CisKKyAgICBp
ZiAobV9tb2RlbFBsYXllcikKKyAgICAgICAgbV9tb2RlbFBsYXllci0+aGFuZGxlTW91c2VVcChl
dmVudC5wYWdlTG9jYXRpb24oKSwgZXZlbnQudGltZVN0YW1wKCkpOworfQorCiB9CiAKICNlbmRp
ZiAvLyBFTkFCTEUoTU9ERUxfRUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oCmluZGV4IDY5NDc4YzI3NDgx
NTc0NTkxYjEzYTRkZGU2ZDk5Y2MwMDFhYTkwYzMuLmZlZWJjYzU5MzA2YzVmMjQ1Yjk0MzAxNjM0
NDMwZDc1OTRlZTZjNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwt
ZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
b2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuaApAQCAtNDAsOCArNDAsMTAgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBFdmVudDsKIGNsYXNzIE1vZGVsOwogY2xhc3MgTW9k
ZWxQbGF5ZXI7CitjbGFzcyBNb3VzZUV2ZW50OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBl
PiBjbGFzcyBET01Qcm9taXNlUHJveHlXaXRoUmVzb2x2ZUNhbGxiYWNrOwogCkBAIC05MiwxMiAr
OTQsMTggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEZhaWxMb2FkaW5nKE1vZGVsUGxheWVyJiwg
Y29uc3QgUmVzb3VyY2VFcnJvciYpIGZpbmFsOwogICAgIEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3Jt
TGF5ZXJJRCBwbGF0Zm9ybUxheWVySUQoKSBmaW5hbDsKIAorICAgIHZvaWQgZGVmYXVsdEV2ZW50
SGFuZGxlcihFdmVudCYpIGZpbmFsOworICAgIHZvaWQgZHJhZ0RpZFN0YXJ0KE1vdXNlRXZlbnQm
KTsKKyAgICB2b2lkIGRyYWdEaWRDaGFuZ2UoTW91c2VFdmVudCYpOworICAgIHZvaWQgZHJhZ0Rp
ZEVuZChNb3VzZUV2ZW50Jik7CisKICAgICBVUkwgbV9zb3VyY2VVUkw7CiAgICAgQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+IG1fcmVzb3VyY2U7CiAgICAgUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gbV9kYXRhOwogICAgIFJlZlB0cjxNb2RlbD4gbV9tb2RlbDsKICAgICBVbmlx
dWVSZWY8UmVhZHlQcm9taXNlPiBtX3JlYWR5UHJvbWlzZTsKICAgICBib29sIG1fZGF0YUNvbXBs
ZXRlIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNEcmFnZ2luZyB7IGZhbHNlIH07CiAKICAgICBS
ZWZQdHI8TW9kZWxQbGF5ZXI+IG1fbW9kZWxQbGF5ZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5jcHAKaW5kZXggMTUxM2Ey
ZDBiMjlhZGI2NWE3NTIxOWIwM2I0ZWQ3NjU3MjQ3MDVmNy4uODgzOGQ2NjE2NWNjMDdiNzBmNTc1
OGQxM2Y2NThkZDVjNmNiYjEzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
b2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXIuY3BwCkBAIC0zMCw0ICszMCw5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogTW9kZWxQbGF5ZXI6On5Nb2RlbFBsYXllcigpID0gZGVmYXVsdDsKIAor
Ym9vbCBNb2RlbFBsYXllcjo6c3VwcG9ydHNNb3VzZUludGVyYWN0aW9uKCkKK3sKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9k
ZWwtZWxlbWVudC9Nb2RlbFBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1l
bGVtZW50L01vZGVsUGxheWVyLmgKaW5kZXggZTcxMjlkZGM5MTQwMjQ3YzU0NTViMjllYWQwNzlk
YTc1ZGQyZmVhMy4uNjc1YTQwZjI4ZGNlNmViNTNkNWZiNDE5MGY3YWI1NzYxNTc0NjcxNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVy
LmgKQEAgLTI1LDkgKzI1LDExIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiTGF5b3V0
UG9pbnQuaCIKICNpbmNsdWRlICJMYXlvdXRTaXplLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1MYXll
ci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL01vbm90b25pY1Rp
bWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MSw2ICs0MywxMSBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGxvYWQoTW9kZWwmLCBMYXlvdXRTaXplKSA9IDA7CiAgICAgdmly
dHVhbCBQbGF0Zm9ybUxheWVyKiBsYXllcigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJG
dWxsc2NyZWVuKCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c01vdXNlSW50ZXJhY3Rp
b24oKTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlTW91c2VEb3duKGNvbnN0IExheW91dFBvaW50
JiwgTW9ub3RvbmljVGltZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVNb3VzZU1vdmUo
Y29uc3QgTGF5b3V0UG9pbnQmLCBNb25vdG9uaWNUaW1lKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGhhbmRsZU1vdXNlVXAoY29uc3QgTGF5b3V0UG9pbnQmLCBNb25vdG9uaWNUaW1lKSA9IDA7CisK
IH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVu
dC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9k
ZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmNwcAppbmRleCA4MjQ2NjE2MWVkZjU4
NmUzZTQ1ODhiYzRiOTQzNTA2ZDA0OWIxZDc5Li42ODc0ODQwZmI4ZTllMDYwZTEzNTAxY2Y5NmMx
OTZkODZkNjI1ODIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVs
ZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwCkBAIC01OCw0ICs1
OCwxNiBAQCB2b2lkIER1bW15TW9kZWxQbGF5ZXI6OmVudGVyRnVsbHNjcmVlbigpCiB7CiB9CiAK
K3ZvaWQgRHVtbXlNb2RlbFBsYXllcjo6aGFuZGxlTW91c2VEb3duKGNvbnN0IExheW91dFBvaW50
JiwgTW9ub3RvbmljVGltZSkKK3sKK30KKwordm9pZCBEdW1teU1vZGVsUGxheWVyOjpoYW5kbGVN
b3VzZU1vdmUoY29uc3QgTGF5b3V0UG9pbnQmLCBNb25vdG9uaWNUaW1lKQoreworfQorCit2b2lk
IER1bW15TW9kZWxQbGF5ZXI6OmhhbmRsZU1vdXNlVXAoY29uc3QgTGF5b3V0UG9pbnQmLCBNb25v
dG9uaWNUaW1lKQoreworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuaAppbmRleCA4Mzhl
YmVjZjhkMjEwYjAzNWQxNjg0NWE3MDcxNmY5MjI3OTA2ZTgxLi4zYmIxYjg4ZDEyZjM5ZTg0MzQy
Y2I1NTEyNDdkYWY1MDc3MzdmZjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmgKQEAgLTQ0
LDYgKzQ0LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxvYWQoTW9kZWwmLCBMYXlvdXRTaXplKSBv
dmVycmlkZTsKICAgICBQbGF0Zm9ybUxheWVyKiBsYXllcigpIG92ZXJyaWRlOwogICAgIHZvaWQg
ZW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBoYW5kbGVNb3VzZURvd24oY29u
c3QgTGF5b3V0UG9pbnQmLCBNb25vdG9uaWNUaW1lKSBvdmVycmlkZTsKKyAgICB2b2lkIGhhbmRs
ZU1vdXNlTW92ZShjb25zdCBMYXlvdXRQb2ludCYsIE1vbm90b25pY1RpbWUpIG92ZXJyaWRlOwor
ICAgIHZvaWQgaGFuZGxlTW91c2VVcChjb25zdCBMYXlvdXRQb2ludCYsIE1vbm90b25pY1RpbWUp
IG92ZXJyaWRlOwogCiAgICAgV2Vha1B0cjxNb2RlbFBsYXllckNsaWVudD4gbV9jbGllbnQ7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5l
a2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwt
ZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLmgKaW5kZXggNGFjM2RhYjlkZDUz
ZmU4NWVmZTA1MzBlNjgxMmMxNDA0OGY2NGUzZi4uOWI0ZjFkZjg3OTNmNzYzNmQwMjVjYTQ0MzAy
YzFhMWM4NWQ4MWI3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1l
bGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbFBsYXllci5oCkBA
IC01OCw2ICs1OCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsb2FkKE1vZGVsJiwgTGF5b3V0U2l6
ZSkgb3ZlcnJpZGU7CiAgICAgQ0FMYXllciAqbGF5ZXIoKSBvdmVycmlkZTsKICAgICB2b2lkIGVu
dGVyRnVsbHNjcmVlbigpIG92ZXJyaWRlOworICAgIHZvaWQgaGFuZGxlTW91c2VEb3duKGNvbnN0
IExheW91dFBvaW50JiwgTW9ub3RvbmljVGltZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBoYW5kbGVN
b3VzZU1vdmUoY29uc3QgTGF5b3V0UG9pbnQmLCBNb25vdG9uaWNUaW1lKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGhhbmRsZU1vdXNlVXAoY29uc3QgTGF5b3V0UG9pbnQmLCBNb25vdG9uaWNUaW1lKSBv
dmVycmlkZTsKIAogICAgIC8vIFNjZW5lS2l0TW9kZWxMb2FkZXJDbGllbnQgb3ZlcnJpZGVzLgog
ICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFNjZW5lS2l0TW9kZWxMb2FkZXImLCBS
ZWY8U2NlbmVLaXRNb2RlbD4pIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIubW0gYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2Rl
bFBsYXllci5tbQppbmRleCA2OTY5NmM5ZTY5MTY4NTlhMDFlYTNkYTdkN2M0NDcwNThmZmUzZjU5
Li43NzZjNjhmYzZmNTFmOTY3YzhkNDM3M2YyZDAwYmQ2NDllMTA0MmI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2Rl
bFBsYXllci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2Nl
bmVraXQvU2NlbmVLaXRNb2RlbFBsYXllci5tbQpAQCAtNzYsNiArNzYsMTggQEAgdm9pZCBTY2Vu
ZUtpdE1vZGVsUGxheWVyOjplbnRlckZ1bGxzY3JlZW4oKQogewogfQogCit2b2lkIFNjZW5lS2l0
TW9kZWxQbGF5ZXI6OmhhbmRsZU1vdXNlRG93bihjb25zdCBMYXlvdXRQb2ludCYsIE1vbm90b25p
Y1RpbWUpCit7Cit9CisKK3ZvaWQgU2NlbmVLaXRNb2RlbFBsYXllcjo6aGFuZGxlTW91c2VNb3Zl
KGNvbnN0IExheW91dFBvaW50JiwgTW9ub3RvbmljVGltZSkKK3sKK30KKwordm9pZCBTY2VuZUtp
dE1vZGVsUGxheWVyOjpoYW5kbGVNb3VzZVVwKGNvbnN0IExheW91dFBvaW50JiwgTW9ub3Rvbmlj
VGltZSkKK3sKK30KKwogLy8gTUFSSzogLSBTY2VuZUtpdE1vZGVsTG9hZGVyQ2xpZW50IG92ZXJy
aWRlcy4KIAogdm9pZCBTY2VuZUtpdE1vZGVsUGxheWVyOjpkaWRGaW5pc2hMb2FkaW5nKFNjZW5l
S2l0TW9kZWxMb2FkZXImIGxvYWRlciwgUmVmPFNjZW5lS2l0TW9kZWw+IG1vZGVsKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL1N5c3RlbVByZXZpZXdTUEkuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9TeXN0ZW1QcmV2aWV3U1BJLmgKaW5kZXgg
YzJmMmUwZDVlYWRjZWViMDAwOTRjMDNhYWYxN2UzMjlhMDU2NWFmYy4uNjBhYmNmNzc2OGIyNGRj
YzM2OTljOTU1ZmM0NzdkYzcwYTg2ZWVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvbWFjL1N5c3RlbVByZXZpZXdTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL3NwaS9tYWMvU3lzdGVtUHJldmlld1NQSS5oCkBAIC00OCw2ICs0OCwxMCBAQCBOU19BU1NV
TUVfTk9OTlVMTF9CRUdJTgogLSAodm9pZClwcmVwYXJlUHJldmlld09mRmlsZUF0VVJMOihOU1VS
TCAqKXVybCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNFcnJvciAqIF9OdWxsYWJsZSBl
cnJvcikpaGFuZGxlcjsKIC0gKHZvaWQpc2V0UmVtb3RlQ29udGV4dDoodWludDMyX3QpY29udGV4
dElkOwogCistICh2b2lkKW1vdXNlRG93bkF0TG9jYXRpb246KENHUG9pbnQpbG9jYXRpb24gdGlt
ZXN0YW1wOihOU1RpbWVJbnRlcnZhbCl0aW1lc3RhbXA7CistICh2b2lkKW1vdXNlRHJhZ2dlZEF0
TG9jYXRpb246KENHUG9pbnQpbG9jYXRpb24gdGltZXN0YW1wOihOU1RpbWVJbnRlcnZhbCl0aW1l
c3RhbXA7CistICh2b2lkKW1vdXNlVXBBdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uIHRpbWVz
dGFtcDooTlNUaW1lSW50ZXJ2YWwpdGltZXN0YW1wOworCiBAZW5kCiAKICNlbmRpZiAvLyBFTkFC
TEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvTW9kZWxFbGVtZW50Q29udHJvbGxlckNvY29hLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvTW9kZWxFbGVtZW50Q29udHJvbGxlckNvY29hLm1tCmluZGV4
IDRlNTg0N2RjMjM0NDMzMDlmNzA2OTUwMjExMTA2ZThiNDM5MjA0OTAuLjc3YmFiZjc2NTY1YTJi
YWFlODFkMGRhNGE0ODU4M2Y3NjViNGUyZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL01vZGVsRWxlbWVudENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Nb2RlbEVsZW1lbnRDb250cm9sbGVyQ29jb2EubW0KQEAg
LTQyLDkgKzQyLDEyIEBACiAjZW5kaWYKIAogI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklF
V19NQUMpCisjaW1wb3J0IDxXZWJDb3JlL0xheW91dFBvaW50Lmg+CisjaW1wb3J0IDxXZWJDb3Jl
L0xheW91dFVuaXQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2ltcG9y
dCA8cGFsL3NwaS9tYWMvU3lzdGVtUHJldmlld1NQSS5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJl
YWQuaD4KKyNpbXBvcnQgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjZW5kaWYKIAogU09GVF9MSU5L
X1BSSVZBVEVfRlJBTUVXT1JLKEFzc2V0Vmlld2VyKTsKQEAgLTE4OCw2ICsxOTEsMjkgQEAgdm9p
ZCBNb2RlbEVsZW1lbnRDb250cm9sbGVyOjptb2RlbEVsZW1lbnREaWRDcmVhdGVQcmV2aWV3KFVS
TCBmaWxlVVJMLCBTdHJpbmcgdXUKICAgICB9KS5nZXQoKV07CiB9CiAKK1JldGFpblB0cjxBU1ZJ
bmxpbmVQcmV2aWV3PiBNb2RlbEVsZW1lbnRDb250cm9sbGVyOjpwcmV2aWV3Rm9yVVVJRChjb25z
dCBTdHJpbmcmIHV1aWQpCit7CisgICAgcmV0dXJuIG1faW5saW5lUHJldmlld3MuZ2V0KHV1aWQp
OworfQorCit2b2lkIE1vZGVsRWxlbWVudENvbnRyb2xsZXI6OmhhbmRsZU1vdXNlRG93bkZvck1v
ZGVsRWxlbWVudChjb25zdCBTdHJpbmcmIHV1aWQsIGNvbnN0IFdlYkNvcmU6OkxheW91dFBvaW50
JiBsb2NhdGlvbkluUGFnZUNvb3JkaW5hdGVzLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCkKK3sK
KyAgICBpZiAoYXV0byBwcmV2aWV3ID0gcHJldmlld0ZvclVVSUQodXVpZCkpCisgICAgICAgIFtw
cmV2aWV3IG1vdXNlRG93bkF0TG9jYXRpb246Q0dQb2ludE1ha2UobG9jYXRpb25JblBhZ2VDb29y
ZGluYXRlcy54KCkudG9GbG9hdCgpLCBsb2NhdGlvbkluUGFnZUNvb3JkaW5hdGVzLnkoKS50b0Zs
b2F0KCkpIHRpbWVzdGFtcDp0aW1lc3RhbXAuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpXTsK
K30KKwordm9pZCBNb2RlbEVsZW1lbnRDb250cm9sbGVyOjpoYW5kbGVNb3VzZU1vdmVGb3JNb2Rl
bEVsZW1lbnQoY29uc3QgU3RyaW5nJiB1dWlkLCBjb25zdCBXZWJDb3JlOjpMYXlvdXRQb2ludCYg
bG9jYXRpb25JblBhZ2VDb29yZGluYXRlcywgTW9ub3RvbmljVGltZSB0aW1lc3RhbXApCit7Cisg
ICAgaWYgKGF1dG8gcHJldmlldyA9IHByZXZpZXdGb3JVVUlEKHV1aWQpKQorICAgICAgICBbcHJl
dmlldyBtb3VzZURyYWdnZWRBdExvY2F0aW9uOkNHUG9pbnRNYWtlKGxvY2F0aW9uSW5QYWdlQ29v
cmRpbmF0ZXMueCgpLnRvRmxvYXQoKSwgbG9jYXRpb25JblBhZ2VDb29yZGluYXRlcy55KCkudG9G
bG9hdCgpKSB0aW1lc3RhbXA6dGltZXN0YW1wLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKV07
Cit9CisKK3ZvaWQgTW9kZWxFbGVtZW50Q29udHJvbGxlcjo6aGFuZGxlTW91c2VVcEZvck1vZGVs
RWxlbWVudChjb25zdCBTdHJpbmcmIHV1aWQsIGNvbnN0IFdlYkNvcmU6OkxheW91dFBvaW50JiBs
b2NhdGlvbkluUGFnZUNvb3JkaW5hdGVzLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCkKK3sKKyAg
ICBpZiAoYXV0byBwcmV2aWV3ID0gcHJldmlld0ZvclVVSUQodXVpZCkpCisgICAgICAgIFtwcmV2
aWV3IG1vdXNlVXBBdExvY2F0aW9uOkNHUG9pbnRNYWtlKGxvY2F0aW9uSW5QYWdlQ29vcmRpbmF0
ZXMueCgpLnRvRmxvYXQoKSwgbG9jYXRpb25JblBhZ2VDb29yZGluYXRlcy55KCkudG9GbG9hdCgp
KSB0aW1lc3RhbXA6dGltZXN0YW1wLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKV07Cit9CisK
ICNlbmRpZgogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Nb2RlbEVs
ZW1lbnRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Nb2RlbEVsZW1lbnRD
b250cm9sbGVyLmgKaW5kZXggYjM4ZGQxODNiNDg3YzA1ZDRhZGIyYTU5ZmE2MDg0YjMyODFlZTYw
NS4uZjFmOTU4NjcwYjY1OTU5MTY3ZWUyZDg2MWNjYTQ0MzA4ZTFjOGM1YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTW9kZWxFbGVtZW50Q29udHJvbGxlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL01vZGVsRWxlbWVudENvbnRyb2xsZXIuaApAQCAtNTMsMTEg
KzUzLDE1IEBAIHB1YmxpYzoKICNlbmRpZgogI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklF
V19NQUMpCiAgICAgdm9pZCBtb2RlbEVsZW1lbnREaWRDcmVhdGVQcmV2aWV3KFVSTCwgU3RyaW5n
LCBXZWJDb3JlOjpGbG9hdFNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8c3Rk
OjpwYWlyPFN0cmluZywgdWludDMyX3Q+LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPik+JiYpOwor
ICAgIHZvaWQgaGFuZGxlTW91c2VEb3duRm9yTW9kZWxFbGVtZW50KGNvbnN0IFN0cmluZyYsIGNv
bnN0IFdlYkNvcmU6OkxheW91dFBvaW50JiwgTW9ub3RvbmljVGltZSk7CisgICAgdm9pZCBoYW5k
bGVNb3VzZU1vdmVGb3JNb2RlbEVsZW1lbnQoY29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6
TGF5b3V0UG9pbnQmLCBNb25vdG9uaWNUaW1lKTsKKyAgICB2b2lkIGhhbmRsZU1vdXNlVXBGb3JN
b2RlbEVsZW1lbnQoY29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmLCBN
b25vdG9uaWNUaW1lKTsKICNlbmRpZgogCiBwcml2YXRlOgogICAgIFdlYlBhZ2VQcm94eSYgbV93
ZWJQYWdlUHJveHk7CiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX01BQykKKyAgICBS
ZXRhaW5QdHI8QVNWSW5saW5lUHJldmlldz4gcHJldmlld0ZvclVVSUQoY29uc3QgU3RyaW5nJik7
CiAgICAgSGFzaE1hcDxTdHJpbmcsIFJldGFpblB0cjxBU1ZJbmxpbmVQcmV2aWV3Pj4gbV9pbmxp
bmVQcmV2aWV3czsKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCmluZGV4IDc0YzMwMWQ0NGY0MjUwZTRhNjNmOTM4N2RiMDBkOTAzMTQ1NmI3NTEuLjg1
M2YyODlmN2I1MTlmNmE0OGZlMmIzYjhmZDdmOTcxMDViYWExNDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTA4MzYsNiArMTA4MzYsMjEgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6Om1vZGVsRWxlbWVudERpZENyZWF0ZVByZXZpZXcoY29uc3QgVVJMJiB1cmws
IGNvbnN0IFN0cmluZyYgdXUKIHsKICAgICBtb2RlbEVsZW1lbnRDb250cm9sbGVyKCktPm1vZGVs
RWxlbWVudERpZENyZWF0ZVByZXZpZXcodXJsLCB1dWlkLCBzaXplLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVNb3VzZURvd25Gb3JN
b2RlbEVsZW1lbnQoY29uc3QgU3RyaW5nJiB1dWlkLCBjb25zdCBXZWJDb3JlOjpMYXlvdXRQb2lu
dCYgbG9jYXRpb25JblBhZ2VDb29yZGluYXRlcywgTW9ub3RvbmljVGltZSB0aW1lc3RhbXApCit7
CisgICAgbW9kZWxFbGVtZW50Q29udHJvbGxlcigpLT5oYW5kbGVNb3VzZURvd25Gb3JNb2RlbEVs
ZW1lbnQodXVpZCwgbG9jYXRpb25JblBhZ2VDb29yZGluYXRlcywgdGltZXN0YW1wKTsKK30KKwor
dm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZU1vdXNlTW92ZUZvck1vZGVsRWxlbWVudChjb25zdCBT
dHJpbmcmIHV1aWQsIGNvbnN0IFdlYkNvcmU6OkxheW91dFBvaW50JiBsb2NhdGlvbkluUGFnZUNv
b3JkaW5hdGVzLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCkKK3sKKyAgICBtb2RlbEVsZW1lbnRD
b250cm9sbGVyKCktPmhhbmRsZU1vdXNlTW92ZUZvck1vZGVsRWxlbWVudCh1dWlkLCBsb2NhdGlv
bkluUGFnZUNvb3JkaW5hdGVzLCB0aW1lc3RhbXApOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6
aGFuZGxlTW91c2VVcEZvck1vZGVsRWxlbWVudChjb25zdCBTdHJpbmcmIHV1aWQsIGNvbnN0IFdl
YkNvcmU6OkxheW91dFBvaW50JiBsb2NhdGlvbkluUGFnZUNvb3JkaW5hdGVzLCBNb25vdG9uaWNU
aW1lIHRpbWVzdGFtcCkKK3sKKyAgICBtb2RlbEVsZW1lbnRDb250cm9sbGVyKCktPmhhbmRsZU1v
dXNlVXBGb3JNb2RlbEVsZW1lbnQodXVpZCwgbG9jYXRpb25JblBhZ2VDb29yZGluYXRlcywgdGlt
ZXN0YW1wKTsKK30KICNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBmMDFmMzU0YWU3OGNiNGFmYWIxODM1ZjgxOWEx
NDU4OWM0MDg5MjE1Li5hZjAzOTk3MzBiMjUxZmUwZGFhZDU4MjJmNzkwNWJiNjg5MTllMWI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNTkzLDYgKzU5Myw5IEBA
IHB1YmxpYzoKICNlbmRpZgogI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFV19NQUMpCiAg
ICAgdm9pZCBtb2RlbEVsZW1lbnREaWRDcmVhdGVQcmV2aWV3KGNvbnN0IFVSTCYsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
RXhwZWN0ZWQ8c3RkOjpwYWlyPFN0cmluZywgdWludDMyX3Q+LCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yPik+JiYpOworICAgIHZvaWQgaGFuZGxlTW91c2VEb3duRm9yTW9kZWxFbGVtZW50KGNvbnN0
IFN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkxheW91dFBvaW50JiwgTW9ub3RvbmljVGltZSk7Cisg
ICAgdm9pZCBoYW5kbGVNb3VzZU1vdmVGb3JNb2RlbEVsZW1lbnQoY29uc3QgU3RyaW5nJiwgY29u
c3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmLCBNb25vdG9uaWNUaW1lKTsKKyAgICB2b2lkIGhhbmRs
ZU1vdXNlVXBGb3JNb2RlbEVsZW1lbnQoY29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6TGF5
b3V0UG9pbnQmLCBNb25vdG9uaWNUaW1lKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKEFQUExFX1BB
WV9BTVNfVUkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4KaW5kZXggYjNkYzhkMjAxY2QzNmFiNGMyZDAyZGJiNjgxOGU1ZWRkMDQyMDYxYy4u
NzAyMTBmZWQ2ZjI0ZDMxN2FlMWRlZTQ4MjQxOTU3MWYzYTkzY2Q2NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNTg4LDYgKzU4
OCw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYKICNpZiBFTkFCTEUoQVJL
SVRfSU5MSU5FX1BSRVZJRVdfTUFDKQogICAgIE1vZGVsRWxlbWVudERpZENyZWF0ZVByZXZpZXco
VVJMIHVybCwgU3RyaW5nIHV1aWQsIFdlYkNvcmU6OkZsb2F0U2l6ZSBzaXplKSAtPiAoRXhwZWN0
ZWQ8c3RkOjpwYWlyPFN0cmluZywgdWludDMyX3Q+LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiBy
ZXN1bHQpIEFzeW5jCisgICAgSGFuZGxlTW91c2VEb3duRm9yTW9kZWxFbGVtZW50KFN0cmluZyB1
dWlkLCBXZWJDb3JlOjpMYXlvdXRQb2ludCBsb2NhdGlvbkluUGFnZUNvb3JkaW5hdGVzLCBNb25v
dG9uaWNUaW1lIHRpbWVzdGFtcCkKKyAgICBIYW5kbGVNb3VzZU1vdmVGb3JNb2RlbEVsZW1lbnQo
U3RyaW5nIHV1aWQsIFdlYkNvcmU6OkxheW91dFBvaW50IGxvY2F0aW9uSW5QYWdlQ29vcmRpbmF0
ZXMsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQorICAgIEhhbmRsZU1vdXNlVXBGb3JNb2RlbEVs
ZW1lbnQoU3RyaW5nIHV1aWQsIFdlYkNvcmU6OkxheW91dFBvaW50IGxvY2F0aW9uSW5QYWdlQ29v
cmRpbmF0ZXMsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQogI2VuZGlmCiAKICAgICByZXF1ZXN0
UGVybWlzc2lvbihzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbiwgc3RydWN0IFdl
YkNvcmU6OlBlcm1pc3Npb25EZXNjcmlwdG9yIGRlc2NyaXB0b3IpIC0+IChlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6UGVybWlzc2lvblN0YXRlIHN0YXRlKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL2lvcy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
cklPUy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL2lvcy9BUktpdElubGluZVBy
ZXZpZXdNb2RlbFBsYXllcklPUy5oCmluZGV4IDk3ZmI2NzY4Njc1ZWM2N2YzNWVjNWRlMzM1OWEz
MzU1ZDBlOTRjYTAuLjFjZTA3MGI2YTBlZjM1MGVkMGM0YmIwYWI1YjIwODAzOWM4NGIxYjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9pb3MvQVJLaXRJbmxpbmVQ
cmV2aWV3TW9kZWxQbGF5ZXJJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9k
ZWwvaW9zL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLmgKQEAgLTQzLDYgKzQzLDkg
QEAgcHJpdmF0ZToKIAogICAgIC8vIFdlYkNvcmU6Ok1vZGVsUGxheWVyIG92ZXJyaWRlcy4KICAg
ICB2b2lkIGVudGVyRnVsbHNjcmVlbigpIG92ZXJyaWRlOworICAgIHZvaWQgaGFuZGxlTW91c2VE
b3duKGNvbnN0IFdlYkNvcmU6OkxheW91dFBvaW50JiwgTW9ub3RvbmljVGltZSkgb3ZlcnJpZGU7
CisgICAgdm9pZCBoYW5kbGVNb3VzZU1vdmUoY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmLCBN
b25vdG9uaWNUaW1lKSBvdmVycmlkZTsKKyAgICB2b2lkIGhhbmRsZU1vdXNlVXAoY29uc3QgV2Vi
Q29yZTo6TGF5b3V0UG9pbnQmLCBNb25vdG9uaWNUaW1lKSBvdmVycmlkZTsKIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9pb3MvQVJLaXRJbmxpbmVQ
cmV2aWV3TW9kZWxQbGF5ZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwv
aW9zL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLm1tCmluZGV4IGVkZTE0NWE1MWQy
ZjQwOTIxMzAwMDU0N2ExODEwOGEwMmQxNTdmZDcuLjNlYzZlZmM0ZGUxZWI1MzRkMTkwYjI1YWQw
NzA2NjcwYjI2ZTM4YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2Rl
bC9pb3MvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL01vZGVsL2lvcy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklP
Uy5tbQpAQCAtNTksNiArNTksMjAgQEAgdm9pZCBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
cklPUzo6ZW50ZXJGdWxsc2NyZWVuKCkKICAgICAgICAgcGFnZSgpLT50YWtlTW9kZWxFbGVtZW50
RnVsbHNjcmVlbihsYXllcklkKTsKIH0KIAordm9pZCBBUktpdElubGluZVByZXZpZXdNb2RlbFBs
YXllcklPUzo6aGFuZGxlTW91c2VEb3duKGNvbnN0IFdlYkNvcmU6OkxheW91dFBvaW50JiwgTW9u
b3RvbmljVGltZSkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBBUktp
dElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUzo6aGFuZGxlTW91c2VNb3ZlKGNvbnN0IFdlYkNv
cmU6OkxheW91dFBvaW50JiwgTW9ub3RvbmljVGltZSkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKIH0KIAordm9pZCBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUzo6aGFuZGxl
TW91c2VVcChjb25zdCBXZWJDb3JlOjpMYXlvdXRQb2ludCYsIE1vbm90b25pY1RpbWUpCit7Cisg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK30KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBs
YXllck1hYy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllck1hYy5oCmluZGV4IDNiNTU5YmMyMzQ4ODBmOGE0MjgwZDE1ZDU1
NDk0ZGI4NjJhNTI2MTMuLjY3MzE5MTZjNzQ4ZGRiYzVhNzM4Mzg3NmM3Yjk0ZWFkYTA3NTBlMDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxp
bmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLmgKQEAgLTUwLDYgKzUw
LDEwIEBAIHByaXZhdGU6CiAgICAgLy8gV2ViQ29yZTo6TW9kZWxQbGF5ZXIgb3ZlcnJpZGVzLgog
ICAgIHZvaWQgbG9hZChXZWJDb3JlOjpNb2RlbCYsIFdlYkNvcmU6OkxheW91dFNpemUpIG92ZXJy
aWRlOwogICAgIFBsYXRmb3JtTGF5ZXIqIGxheWVyKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBzdXBw
b3J0c01vdXNlSW50ZXJhY3Rpb24oKSBvdmVycmlkZTsKKyAgICB2b2lkIGhhbmRsZU1vdXNlRG93
bihjb25zdCBXZWJDb3JlOjpMYXlvdXRQb2ludCYsIE1vbm90b25pY1RpbWUpIG92ZXJyaWRlOwor
ICAgIHZvaWQgaGFuZGxlTW91c2VNb3ZlKGNvbnN0IFdlYkNvcmU6OkxheW91dFBvaW50JiwgTW9u
b3RvbmljVGltZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBoYW5kbGVNb3VzZVVwKGNvbnN0IFdlYkNv
cmU6OkxheW91dFBvaW50JiwgTW9ub3RvbmljVGltZSkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGNy
ZWF0ZUZpbGUoV2ViQ29yZTo6TW9kZWwmKTsKICAgICB2b2lkIGNsZWFyRmlsZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZp
ZXdNb2RlbFBsYXllck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMv
QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMubW0KaW5kZXggN2M3YzNmYjhkYTFhZmYw
OWRhYWMwMTBhMzUyYWZhZDllNzJkYWU3My4uNDU1MjY1Mzc2NDJjNWNjNzE0MWM1NGY1NzUxZTI5
NWFlZWYzM2ViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21h
Yy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLm1t
CkBAIC0xNzAsNiArMTcwLDMyIEBAIFBsYXRmb3JtTGF5ZXIqIEFSS2l0SW5saW5lUHJldmlld01v
ZGVsUGxheWVyTWFjOjpsYXllcigpCiAgICAgcmV0dXJuIFttX2lubGluZVByZXZpZXcgbGF5ZXJd
OwogfQogCitib29sIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjOjpzdXBwb3J0c01v
dXNlSW50ZXJhY3Rpb24oKQoreworI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFV19NQUMp
CisgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQg
QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OmhhbmRsZU1vdXNlRG93bihjb25zdCBM
YXlvdXRQb2ludCYgbG9jYXRpb25JblBhZ2VDb29yZGluYXRlcywgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXApCit7CisgICAgaWYgKGF1dG8qIHBhZ2UgPSB0aGlzLT5wYWdlKCkpCisgICAgICAgIHBh
Z2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6SGFuZGxlTW91c2VEb3duRm9yTW9kZWxF
bGVtZW50KFttX2lubGluZVByZXZpZXcgdXVpZF0uVVVJRFN0cmluZywgbG9jYXRpb25JblBhZ2VD
b29yZGluYXRlcywgdGltZXN0YW1wKSk7Cit9CisKK3ZvaWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9k
ZWxQbGF5ZXJNYWM6OmhhbmRsZU1vdXNlTW92ZShjb25zdCBMYXlvdXRQb2ludCYgbG9jYXRpb25J
blBhZ2VDb29yZGluYXRlcywgTW9ub3RvbmljVGltZSB0aW1lc3RhbXApCit7CisgICAgaWYgKGF1
dG8qIHBhZ2UgPSB0aGlzLT5wYWdlKCkpCisgICAgICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6SGFuZGxlTW91c2VNb3ZlRm9yTW9kZWxFbGVtZW50KFttX2lubGluZVByZXZp
ZXcgdXVpZF0uVVVJRFN0cmluZywgbG9jYXRpb25JblBhZ2VDb29yZGluYXRlcywgdGltZXN0YW1w
KSk7Cit9CisKK3ZvaWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OmhhbmRsZU1v
dXNlVXAoY29uc3QgTGF5b3V0UG9pbnQmIGxvY2F0aW9uSW5QYWdlQ29vcmRpbmF0ZXMsIE1vbm90
b25pY1RpbWUgdGltZXN0YW1wKQoreworICAgIGlmIChhdXRvKiBwYWdlID0gdGhpcy0+cGFnZSgp
KQorICAgICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkhhbmRsZU1vdXNl
VXBGb3JNb2RlbEVsZW1lbnQoW21faW5saW5lUHJldmlldyB1dWlkXS5VVUlEU3RyaW5nLCBsb2Nh
dGlvbkluUGFnZUNvb3JkaW5hdGVzLCB0aW1lc3RhbXApKTsKK30KKwogfQogCiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>