<?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>234629</bug_id>
          
          <creation_ts>2021-12-22 22:49:19 -0800</creation_ts>
          <short_desc>[GTK] Implement form validation with gtk3 widgets in the UI process</short_desc>
          <delta_ts>2022-01-17 16:51:24 -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>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>167579</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="ChangSeok Oh">changseok</reporter>
          <assigned_to name="ChangSeok Oh">changseok</assigned_to>
          <cc>alex</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1826495</commentid>
    <comment_count>0</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2021-12-22 22:49:19 -0800</bug_when>
    <thetext>SSIA.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826500</commentid>
    <comment_count>1</comment_count>
      <attachid>447863</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2021-12-22 23:38:10 -0800</bug_when>
    <thetext>Created attachment 447863
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826501</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-12-22 23:39:17 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826515</commentid>
    <comment_count>3</comment_count>
      <attachid>447863</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-12-23 01:44:16 -0800</bug_when>
    <thetext>Comment on attachment 447863
Patch

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

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:249
&gt; +#include &quot;WebKitWebViewBasePrivate.h&quot;

Why do we need this here?

&gt; Source/WebKit/UIProcess/WebValidationBubble.h:37
&gt; +class WebValidationBubble : public RefCounted&lt;WebValidationBubble&gt;, public CanMakeWeakPtr&lt;WebValidationBubble&gt; {

Why is this refcounted and can make weak at the same time?

&gt; Source/WebKit/UIProcess/gtk/WebValidationBubbleGtk.cpp:48
&gt; +    , m_webView(webView)

We don&apos;t need this member since we are using gtk_popover_get_relative_to

&gt; Source/WebKit/UIProcess/gtk/WebValidationBubbleGtk.cpp:50
&gt; +    webkitWebViewBaseSetShouldNotifyFocusEvents(WEBKIT_WEB_VIEW_BASE(webView), false);

Ok, I guess this is the reason why we want this in the WebKit layer. I think we could simply this by calling this from the caller, right before creating the validation bubble. Then we add a callback to WebCore::ValidationBubble to be called when the popup is dismissed and we use it to set this to false again.

&gt; Source/WebKit/UIProcess/gtk/WebValidationBubbleGtk.cpp:56
&gt; +    const char* format = &quot;&lt;span font=&apos;%f&apos;&gt;%s&lt;/span&gt;&quot;;
&gt; +    GUniquePtr&lt;gchar&gt; markup(g_markup_printf_escaped(format, m_fontSize, message.utf8().data()));

I don&apos;t think we need the local variable for format, just use the literal in the g_markup_printf_escaped

&gt; Source/WebKit/UIProcess/gtk/WebValidationBubbleGtk.cpp:75
&gt; +    m_popover = gtk_popover_new(webView);
&gt; +    gtk_popover_set_modal(GTK_POPOVER(m_popover), FALSE);
&gt; +    gtk_popover_set_position(GTK_POPOVER(m_popover), GTK_POS_TOP);
&gt; +    gtk_popover_set_constrain_to(GTK_POPOVER(m_popover), GTK_POPOVER_CONSTRAINT_NONE);

What&apos;s the plan for GTK4? Will you reuse this file just adding ifdefs? You should add ifdefs now in any case to not break the gtk4 build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827212</commentid>
    <comment_count>4</comment_count>
      <attachid>447863</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2021-12-29 17:53:21 -0800</bug_when>
    <thetext>Comment on attachment 447863
Patch

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

&gt;&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:249
&gt;&gt; +#include &quot;WebKitWebViewBasePrivate.h&quot;
&gt; 
&gt; Why do we need this here?

Removed.

&gt;&gt; Source/WebKit/UIProcess/WebValidationBubble.h:37
&gt;&gt; +class WebValidationBubble : public RefCounted&lt;WebValidationBubble&gt;, public CanMakeWeakPtr&lt;WebValidationBubble&gt; {
&gt; 
&gt; Why is this refcounted and can make weak at the same time?

This class is removed. We reuse WebCore::ValidationBubble as the mac port does.

&gt;&gt; Source/WebKit/UIProcess/gtk/WebValidationBubbleGtk.cpp:48
&gt;&gt; +    , m_webView(webView)
&gt; 
&gt; We don&apos;t need this member since we are using gtk_popover_get_relative_to

We use WebCore::ValidationBubble now so we initialize m_view of ValidationBubble instead.

&gt;&gt; Source/WebKit/UIProcess/gtk/WebValidationBubbleGtk.cpp:50
&gt;&gt; +    webkitWebViewBaseSetShouldNotifyFocusEvents(WEBKIT_WEB_VIEW_BASE(webView), false);
&gt; 
&gt; Ok, I guess this is the reason why we want this in the WebKit layer. I think we could simply this by calling this from the caller, right before creating the validation bubble. Then we add a callback to WebCore::ValidationBubble to be called when the popup is dismissed and we use it to set this to false again.

If we add a callback to WebCore::ValidationBubble, we don&apos;t need the call from the caller in my opinion. We can simply call the callback here instead. Please let me know if you don&apos;t like it.

&gt;&gt; Source/WebKit/UIProcess/gtk/WebValidationBubbleGtk.cpp:56
&gt;&gt; +    GUniquePtr&lt;gchar&gt; markup(g_markup_printf_escaped(format, m_fontSize, message.utf8().data()));
&gt; 
&gt; I don&apos;t think we need the local variable for format, just use the literal in the g_markup_printf_escaped

Done.

&gt;&gt; Source/WebKit/UIProcess/gtk/WebValidationBubbleGtk.cpp:75
&gt;&gt; +    gtk_popover_set_constrain_to(GTK_POPOVER(m_popover), GTK_POPOVER_CONSTRAINT_NONE);
&gt; 
&gt; What&apos;s the plan for GTK4? Will you reuse this file just adding ifdefs? You should add ifdefs now in any case to not break the gtk4 build.

I hide this code with ifdefs for gtk4 temporarily and install pageConfiguration.validationMessageClient for gtk3 only. So, gtk4 uses the shadow dom validation bubble until we land a patch for gtk4.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827213</commentid>
    <comment_count>5</comment_count>
      <attachid>448085</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2021-12-29 17:54:26 -0800</bug_when>
    <thetext>Created attachment 448085
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827214</commentid>
    <comment_count>6</comment_count>
      <attachid>448086</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2021-12-29 18:03:01 -0800</bug_when>
    <thetext>Created attachment 448086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831179</commentid>
    <comment_count>7</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2022-01-15 04:28:12 -0800</bug_when>
    <thetext>Would anyone review this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831427</commentid>
    <comment_count>8</comment_count>
      <attachid>448086</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-01-17 00:43:04 -0800</bug_when>
    <thetext>Comment on attachment 448086
Patch

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

&gt; Source/WebCore/platform/gtk/ValidationBubbleGtk.cpp:39
&gt; +static const float horizontalMargin = 5;
&gt; +static const float verticalMargin = 5;
&gt; +static const float maxLabelWidthChars = 40;

I think it&apos;s ok to use the numbers directly for these, the same way you do for  minimum font size or label lines.

&gt; Source/WebCore/platform/gtk/ValidationBubbleGtk.cpp:94
&gt; +    GtkWidget* webView = gtk_popover_get_relative_to(GTK_POPOVER(m_popover));

We keep the web view as m_webView. So either don&apos;t keep it and get it always with gtk_popover_get_relative_to(), or just use the member, no?

&gt; Source/WebCore/platform/gtk/ValidationBubbleGtk.cpp:98
&gt; +    if (m_shouldNotifyFocusEventsCallback)

This should not be optional.

&gt; Source/WebCore/platform/gtk/ValidationBubbleGtk.cpp:106
&gt; +    if (m_shouldNotifyFocusEventsCallback)

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831570</commentid>
    <comment_count>9</comment_count>
      <attachid>448086</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2022-01-17 14:36:03 -0800</bug_when>
    <thetext>Comment on attachment 448086
Patch

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

Thanks for your review. I will come up with the gtk4 support soon.

&gt;&gt; Source/WebCore/platform/gtk/ValidationBubbleGtk.cpp:39
&gt;&gt; +static const float maxLabelWidthChars = 40;
&gt; 
&gt; I think it&apos;s ok to use the numbers directly for these, the same way you do for  minimum font size or label lines.

O.K. &quot;static const float minFontSize = 11&quot; is appended here.

&gt;&gt; Source/WebCore/platform/gtk/ValidationBubbleGtk.cpp:94
&gt;&gt; +    GtkWidget* webView = gtk_popover_get_relative_to(GTK_POPOVER(m_popover));
&gt; 
&gt; We keep the web view as m_webView. So either don&apos;t keep it and get it always with gtk_popover_get_relative_to(), or just use the member, no?

This line is removed. We use the member cached, instead.

&gt;&gt; Source/WebCore/platform/gtk/ValidationBubbleGtk.cpp:98
&gt;&gt; +    if (m_shouldNotifyFocusEventsCallback)
&gt; 
&gt; This should not be optional.

Done.

&gt;&gt; Source/WebCore/platform/gtk/ValidationBubbleGtk.cpp:106
&gt;&gt; +    if (m_shouldNotifyFocusEventsCallback)
&gt; 
&gt; Ditto.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831573</commentid>
    <comment_count>10</comment_count>
      <attachid>449350</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2022-01-17 14:43:08 -0800</bug_when>
    <thetext>Created attachment 449350
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831578</commentid>
    <comment_count>11</comment_count>
      <attachid>449352</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2022-01-17 15:30:51 -0800</bug_when>
    <thetext>Created attachment 449352
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831588</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-17 16:51:19 -0800</bug_when>
    <thetext>Committed r288104 (246118@main): &lt;https://commits.webkit.org/246118@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 449352.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447863</attachid>
            <date>2021-12-22 23:38:10 -0800</date>
            <delta_ts>2021-12-29 17:54:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234629-20211223023809.patch</filename>
            <type>text/plain</type>
            <size>19768</size>
            <attacher name="ChangSeok Oh">changseok</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MjY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk0OTU1MTlmZTk5YzNjZDFl
Y2U0MTI2NjI0MjdiODAxYmFmZWRlZDguLjZiZTc1NWIyNTdmZWRiZWU2MmU1ZjRhZDNlMTgzNTRi
OTRlYjUwYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMjEtMTItMjIgIENoYW5nU2Vv
ayBPaCAgPGNoYW5nc2Vva0B3ZWJraXQub3JnPgorCisgICAgICAgIFtHVEtdIEltcGxlbWVudCBm
b3JtIHZhbGlkYXRpb24gd2l0aCBndGszIHdpZGdldHMgaW4gdGhlIFVJIHByb2Nlc3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDYyOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIHJl
LWltcGxlbWVudHMgZm9ybSB2YWxpZGF0aW9uIHdpdGggZ3RrMyB3aWRnZXRzIGluIHRoZSBVSSBw
cm9jZXNzLgorICAgICAgICBUaGUgY3VycmVudCBmb3JtIHZhbGlkYXRpb24gaXMgaW1wbGVtZW50
ZWQgYnkgdXNpbmcgSFRNTCBpbiB0aGUgd2ViIHByb2Nlc3MuCisgICAgICAgIFRoZSBvdmVyYWxs
IGRlc2lnbiBpcyBzaW1pbGFyIHRvIHRoYXQgb2YgbWFjIHBvcnQgYnV0IHRoZSBndGsgcG9ydCB1
c2VzCisgICAgICAgIFdlYlZhbGlkYXRpb25CdWJibGUgaW5zdGVhZCBvZiBWYWxpZGF0aW9uQnVi
YmxlIHRvIGFkaGVyZSB0byB0aGUgY29kZSBib3VuZGFyeQorICAgICAgICBiZXR3ZWVuIFVJIGFu
ZCB3ZWIgcHJvY2Vzc2VzIGFuZCBhY2Nlc3Mgd2VidmlldydzIHByaXZhdGUgQVBJLgorICAgICAg
ICBUaGlzIGNoYW5nZSBkb2VzIG5vdCBzdXBwb3J0IGd0azQgeWV0LiBBIGZvbGxvdy11cCBwYXRj
aCB3aWxsIGFkZCB0aGUgZ3RrNCBzdXBwb3J0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNh
dXNlIGV4aXN0aW5nIHRlc3RzIGNvdmVyIHRoaXMgY2hhbmdlLgorCisgICAgICAgICogU291cmNl
c0dUSy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlVmFsaWRhdGlvbkJ1YmJs
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhpZGVWYWxpZGF0aW9u
TWVzc2FnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlZhbGlkYXRpb25CdWJibGUuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlZhbGlk
YXRpb25CdWJibGU6Om1lc3NhZ2UgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJWYWxpZGF0
aW9uQnViYmxlOjpmb250U2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZhbGlkYXRp
b25CdWJibGU6OldlYlZhbGlkYXRpb25CdWJibGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsv
V2ViUGFnZVByb3h5R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzaG93
VmFsaWRhdGlvbk1lc3NhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViVmFsaWRhdGlv
bkJ1YmJsZUd0ay5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJWYWxpZGF0aW9uQnVi
YmxlR3RrOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWYWxpZGF0aW9uQnViYmxlR3Rr
OjpXZWJWYWxpZGF0aW9uQnViYmxlR3RrKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmFsaWRhdGlv
bkJ1YmJsZUd0azo6fldlYlZhbGlkYXRpb25CdWJibGVHdGspOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWYWxpZGF0aW9uQnViYmxlR3RrOjppbnZhbGlkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VmFsaWRhdGlvbkJ1YmJsZUd0azo6c2hvd1JlbGF0aXZlVG8pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9ndGsvV2ViVmFsaWRhdGlvbkJ1YmJsZUd0ay5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fYXBwSGlnaGxpZ2h0
c1Zpc2libGUpOgorCiAyMDIxLTEyLTIwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KIAogICAgICAgICBJbXByb3ZlIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5IGxvZ2dpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CmluZGV4IGYyMTI0NmYwMGMxOGYyMzgxZmNlZTcz
MTdmOTY0OWYxYjY2MWUzNDIuLjg4YTk0NTM1M2NiNGNjMDVjNzA2NzA4NmUyMjFiZmVlZWEwYTMw
ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKKysrIGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzR1RLLnR4dApAQCAtMjc3LDYgKzI3Nyw3IEBAIFVJUHJvY2Vzcy9ndGsv
V2ViUG9wdXBNZW51UHJveHlHdGsuY3BwCiBVSVByb2Nlc3MvZ3RrL1dlYlByZWZlcmVuY2VzR3Rr
LmNwcAogVUlQcm9jZXNzL2d0ay9XZWJUZXh0Q2hlY2tlci5jcHAKIFVJUHJvY2Vzcy9ndGsvV2Vi
VGV4dENoZWNrZXJDbGllbnQuY3BwCitVSVByb2Nlc3MvZ3RrL1dlYlZhbGlkYXRpb25CdWJibGVH
dGsuY3BwCiAKIFVJUHJvY2Vzcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJQcm94eVNvdXAuY3BwCiBV
SVByb2Nlc3Mvc291cC9XZWJQcm9jZXNzUG9vbFNvdXAuY3BwCkBAIC00MTMsNiArNDE0LDggQEAg
V2ViUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1dlYkluc3BlY3RvclVJR3RrLmNwcAogCiBXZWJQcm9j
ZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHAKIAorV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5jcHAKKwogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9nbGliL1dlYkVkaXRvckNsaWVudEdMaWIuY3BwCiAKIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkNvbnRleHRNZW51Q2xpZW50R3RrLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcApp
bmRleCAxYTkxYzdkNzg3ZjdkM2I4OGEyZjBmY2JkNDhlYjcyZmU2YmY1MzJjLi44YWUwMTcxNzNi
ZTJlNGM1MDY4ZDhkN2E0ODcyM2JmYmMwZjBmOWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtNDQsNiArNDQsNyBAQAog
I2luY2x1ZGUgIldlYktpdFdlYlZpZXdQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbmNsdWRlICJXZWJWYWxpZGF0aW9u
QnViYmxlR3RrLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DYWlyb1V0aWxpdGllcy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvQ3Vyc29yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ET01QYXN0ZUFjY2Vzcy5o
PgpAQCAtMjkzLDYgKzI5NCwxMSBAQCBSZWZQdHI8V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bk
b3duPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlRGF0YUxpc3RTdWdnZXN0aW9ucwogfQogI2VuZGlm
CiAKK1JlZjxXZWJWYWxpZGF0aW9uQnViYmxlPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlVmFsaWRh
dGlvbkJ1YmJsZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdlYlZhbGlkYXRpb25CdWJi
bGU6OlNldHRpbmdzJiBzZXR0aW5ncykKK3sKKyAgICByZXR1cm4gV2ViVmFsaWRhdGlvbkJ1YmJs
ZUd0azo6Y3JlYXRlKG1fdmlld1dpZGdldCwgbWVzc2FnZSwgc2V0dGluZ3MpOworfQorCiB2b2lk
IFBhZ2VDbGllbnRJbXBsOjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExh
eWVyVHJlZUNvbnRleHQmIGxheWVyVHJlZUNvbnRleHQpCiB7CiAgICAgd2Via2l0V2ViVmlld0Jh
c2VFbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKFdFQktJVF9XRUJfVklFV19CQVNFKG1f
dmlld1dpZGdldCksIGxheWVyVHJlZUNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oCmluZGV4IDk5ZDA5N2FiZGVmYjFlODMyZDNm
NmZjZDdiZWY5MjM0YmUxY2EwYTkuLmZkOTgxMmU3NDIzYTE4MWVjYjk1ZDg4ZGQ1MjZmNTVkZTcw
ODI0MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNs
aWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGll
bnRJbXBsLmgKQEAgLTEwMSw2ICsxMDEsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShEQVRBTElT
VF9FTEVNRU5UKQogICAgIFJlZlB0cjxXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24+IGNy
ZWF0ZURhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bihXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsK
ICNlbmRpZgorICAgIFJlZjxXZWJWYWxpZGF0aW9uQnViYmxlPiBjcmVhdGVWYWxpZGF0aW9uQnVi
YmxlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgV2ViVmFsaWRhdGlvbkJ1YmJsZTo6U2V0
dGluZ3MmKSBmaW5hbDsKICAgICB2b2lkIHNlbGVjdGlvbkRpZENoYW5nZSgpIG92ZXJyaWRlOwog
ICAgIFJlZlB0cjxWaWV3U25hcHNob3Q+IHRha2VWaWV3U25hcHNob3Qoc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpJbnRSZWN0PiYmKSBvdmVycmlkZTsKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDViNTI5ZmZkOGMyMmQ2ZGUwMzJj
Yzg5ZWE3MDliMTJjMzc4YjEzNDAuLmFkMGE3M2RiYzJjMjE2NzZhNTMxNjEyYjQ1ZjVhNjg3NzU5
MjhkNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTM2LDYgKzM2LDcg
QEAKICNpbmNsdWRlICJXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uaCIKICNpbmNsdWRl
ICJXZWJEYXRlVGltZVBpY2tlci5oIgogI2luY2x1ZGUgIldlYlBvcHVwTWVudVByb3h5LmgiCisj
aW5jbHVkZSAiV2ViVmFsaWRhdGlvbkJ1YmJsZS5oIgogI2luY2x1ZGUgIldpbmRvd0tpbmQuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0FjdGl2aXR5U3RhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Fs
dGVybmF0aXZlVGV4dENsaWVudC5oPgpAQCAtMzg5LDYgKzM5MCw4IEBAIHB1YmxpYzoKIAogI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgIHZpcnR1YWwgUmVmPFdlYkNvcmU6OlZhbGlkYXRpb25CdWJi
bGU+IGNyZWF0ZVZhbGlkYXRpb25CdWJibGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBX
ZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlOjpTZXR0aW5ncyYpID0gMDsKKyNlbGlmIFBMQVRGT1JN
KEdUSykKKyAgICB2aXJ0dWFsIFJlZjxXZWJWYWxpZGF0aW9uQnViYmxlPiBjcmVhdGVWYWxpZGF0
aW9uQnViYmxlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgV2ViVmFsaWRhdGlvbkJ1YmJs
ZTo6U2V0dGluZ3MmKSA9IDA7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYmI2ZTZhYTYwOTk3YTBmN2Y0
YjUwNzE1YzVmNjAxNTZiZjI4YjE5Yi4uMzM2OWZjYjIyYWQzYjYxNTg3NTE4YjQ4NTNjYmJlMjM4
NTEyNmVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0y
NDYsNiArMjQ2LDcgQEAKIAogI2lmIFBMQVRGT1JNKEdUSykKICNpbmNsdWRlICJHdGtTZXR0aW5n
c01hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL1NlbGVjdGlvbkRhdGEuaD4KICNlbmRpZgogCkBAIC05ODk0LDcgKzk4OTUs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbihX
ZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RAogCiB2b2lkIFdlYlBhZ2VQcm94eTo6aGlkZVZh
bGlkYXRpb25NZXNzYWdlKCkKIHsKLSNpZiBQTEFURk9STShDT0NPQSkKKyNpZiBQTEFURk9STShD
T0NPQSkgfHwgUExBVEZPUk0oR1RLKQogICAgIG1fdmFsaWRhdGlvbkJ1YmJsZSA9IG51bGxwdHI7
CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNzk5
OTcwZGVkNmE0MjI2YjZhM2Y4ZDNhM2QzNzk4NWNmNGEwMmEzMS4uNWVkNGY4ZjhmOTc3Nzg1MGY5
MGY1MjUzZWVkMTFlNDk0YWM4Njc0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKQEAgLTgwLDYgKzgwLDcgQEAKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgogI2lu
Y2x1ZGUgIldlYlVSTFNjaGVtZUhhbmRsZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiV2ViVW5k
b1N0ZXBJRC5oIgorI2luY2x1ZGUgIldlYlZhbGlkYXRpb25CdWJibGUuaCIKICNpbmNsdWRlICJX
ZWJzaXRlUG9saWNpZXNEYXRhLmgiCiAjaW5jbHVkZSAiV2luZG93S2luZC5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgpAQCAtMTYyMiw2ICsxNjIzLDggQEAgcHVibGljOgog
ICAgIHZvaWQgaGlkZVZhbGlkYXRpb25NZXNzYWdlKCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZSogdmFsaWRhdGlvbkJ1YmJsZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdmFsaWRhdGlvbkJ1YmJsZS5nZXQoKTsgfSAvLyBGb3IgdGVzdGluZy4KKyNlbGlm
IFBMQVRGT1JNKEdUSykKKyAgICBXZWJWYWxpZGF0aW9uQnViYmxlKiB2YWxpZGF0aW9uQnViYmxl
KCkgY29uc3QgeyByZXR1cm4gbV92YWxpZGF0aW9uQnViYmxlLmdldCgpOyB9CiAjZW5kaWYKIAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0yODc5LDYgKzI4ODIsOCBAQCBwcml2YXRlOgog
I2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgUmVmUHRyPFdlYkNvcmU6OlZhbGlkYXRp
b25CdWJibGU+IG1fdmFsaWRhdGlvbkJ1YmJsZTsKKyNlbGlmIFBMQVRGT1JNKEdUSykKKyAgICBS
ZWZQdHI8V2ViVmFsaWRhdGlvbkJ1YmJsZT4gbV92YWxpZGF0aW9uQnViYmxlOwogI2VuZGlmCiAK
ICAgICBib29sIG1fYXJlQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnNTdXNwZW5kZWQgeyBm
YWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCmluZGV4IDJmMjYxMzk1NWIwYWRiZjcyNmZhOTc4OGQxYjc0MGY2Mzg2NGM0YmEuLmVi
MzNlNWQ4ZjJkNzMzNzUzZWQ0NTFhYjEzZGM1ZmU0Mzc4NTI0NWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTU3LDcgKzU3LDcg
QEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBBY2Nlc3NpYmlsaXR5U2NyZWVuVG9S
b290VmlldyhXZWJDb3JlOjpJbnRQb2ludCBzY3JlZW5Qb2ludCkgLT4gKFdlYkNvcmU6OkludFBv
aW50IHdpbmRvd1BvaW50KSBTeW5jaHJvbm91cwogICAgIFJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5
U2NyZWVuKFdlYkNvcmU6OkludFJlY3QgcmVjdCkgLT4gKFdlYkNvcmU6OkludFJlY3Qgc2NyZWVu
RnJhbWUpIFN5bmNocm9ub3VzCiAKLSNpZiBQTEFURk9STShDT0NPQSkKKyNpZiBQTEFURk9STShD
T0NPQSkgfHwgUExBVEZPUk0oR1RLKQogICAgIFNob3dWYWxpZGF0aW9uTWVzc2FnZShXZWJDb3Jl
OjpJbnRSZWN0IGFuY2hvclJlY3QsIFN0cmluZyBtZXNzYWdlKQogICAgIEhpZGVWYWxpZGF0aW9u
TWVzc2FnZSgpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlZhbGlkYXRpb25CdWJibGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlZhbGlkYXRp
b25CdWJibGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NDBkNzI0YTI2YTAxYmE4YTJjMzRmY2Q4NTM3Mzc5NWIy
ZTY0MTY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVmFs
aWRhdGlvbkJ1YmJsZS5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CitjbGFzcyBJbnRSZWN0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgV2ViVmFsaWRhdGlvbkJ1YmJsZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlZhbGlkYXRpb25C
dWJibGU+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2ViVmFsaWRhdGlvbkJ1YmJsZT4geworcHVi
bGljOgorICAgIHN0cnVjdCBTZXR0aW5ncyB7CisgICAgICAgIGRvdWJsZSBtaW5pbXVtRm9udFNp
emUgeyAwIH07CisgICAgfTsKKworICAgIHZpcnR1YWwgfldlYlZhbGlkYXRpb25CdWJibGUoKSA9
IGRlZmF1bHQ7CisKKyAgICBjb25zdCBTdHJpbmcmIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBt
X21lc3NhZ2U7IH0KKyAgICBkb3VibGUgZm9udFNpemUoKSBjb25zdCB7IHJldHVybiBtX2ZvbnRT
aXplOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgc2hvd1JlbGF0aXZlVG8oY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgYW5jaG9yUmVjdCkgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgZXhwbGljaXQgV2Vi
VmFsaWRhdGlvbkJ1YmJsZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFNldHRpbmdzJiBz
ZXR0aW5ncykKKyAgICAgICAgOiBtX21lc3NhZ2UobWVzc2FnZSkKKyAgICAgICAgLCBtX2ZvbnRT
aXplKHN0ZDo6bWF4KHNldHRpbmdzLm1pbmltdW1Gb250U2l6ZSwgMTEuMCkpCisgICAgeworICAg
IH0KKworICAgIFN0cmluZyBtX21lc3NhZ2U7CisgICAgZG91YmxlIG1fZm9udFNpemUgeyAwIH07
Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUGFn
ZVByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQYWdlUHJveHlH
dGsuY3BwCmluZGV4IDkxZWYyMTdiOWQyZDgxNWJmMDVhYTdhNTAwYmU0MmVmZTAzM2VkNzYuLjMw
NWUyNWU0ZWJjNDVmYTBmMDQwOGEwOWY3YzE4YTY2Y2QyOGUyZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQYWdlUHJveHlHdGsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQYWdlUHJveHlHdGsuY3BwCkBAIC04NSw2ICs4NSwxMiBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0Vtb2ppUGlja2VyKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIGNhcmV0UmVjdCwgQ29tcGxldGlvbgogICAgIHdlYmtpdFdlYlZpZXdCYXNlU2hvd0Vtb2pp
Q2hvb3NlcihXRUJLSVRfV0VCX1ZJRVdfQkFTRSh2aWV3V2lkZ2V0KCkpLCBjYXJldFJlY3QsIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnNob3dW
YWxpZGF0aW9uTWVzc2FnZShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBhbmNob3JDbGllbnRSZWN0
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgbV92YWxpZGF0aW9uQnViYmxlID0gcGFn
ZUNsaWVudCgpLmNyZWF0ZVZhbGlkYXRpb25CdWJibGUobWVzc2FnZSwgeyBtX3ByZWZlcmVuY2Vz
LT5taW5pbXVtRm9udFNpemUoKSB9KTsKKyAgICBtX3ZhbGlkYXRpb25CdWJibGUtPnNob3dSZWxh
dGl2ZVRvKGFuY2hvckNsaWVudFJlY3QpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2VuZE1l
c3NhZ2VUb1dlYlZpZXdXaXRoUmVwbHkoVXNlck1lc3NhZ2UmJiBtZXNzYWdlLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFVzZXJNZXNzYWdlJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IGlmICghV0VCS0lUX0lTX1dFQl9WSUVXKHZpZXdXaWRnZXQoKSkpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJWYWxpZGF0aW9uQnViYmxlR3RrLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJWYWxpZGF0aW9uQnViYmxlR3RrLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kZWU2NDZiOTMxZWE1MDI4NWVhODVhNjY1NDM2ODhmOTk0ZDU1NWJiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlZhbGlkYXRpb25CdWJi
bGVHdGsuY3BwCkBAIC0wLDAgKzEsMTEyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJW
YWxpZGF0aW9uQnViYmxlR3RrLmgiCisKKyNpbmNsdWRlICJXZWJLaXRXZWJWaWV3QmFzZVByaXZh
dGUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KKyNpbmNsdWRlIDxnbGliLmg+Cisj
aW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIGNvbnN0IGZsb2F0IGhvcml6
b250YWxNYXJnaW4gPSA1Oworc3RhdGljIGNvbnN0IGZsb2F0IHZlcnRpY2FsTWFyZ2luID0gNTsK
K3N0YXRpYyBjb25zdCBmbG9hdCBtYXhMYWJlbFdpZHRoQ2hhcnMgPSA0MDsKKworUmVmPFdlYlZh
bGlkYXRpb25CdWJibGVHdGs+IFdlYlZhbGlkYXRpb25CdWJibGVHdGs6OmNyZWF0ZShHdGtXaWRn
ZXQqIHdlYlZpZXcsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU2V0dGluZ3MmIHNldHRp
bmdzKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlZhbGlkYXRpb25CdWJibGVHdGso
d2ViVmlldywgbWVzc2FnZSwgc2V0dGluZ3MpKTsKK30KKworV2ViVmFsaWRhdGlvbkJ1YmJsZUd0
azo6V2ViVmFsaWRhdGlvbkJ1YmJsZUd0ayhHdGtXaWRnZXQqIHdlYlZpZXcsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU2V0dGluZ3MmIHNldHRpbmdzKQorICAgIDogV2ViVmFsaWRhdGlv
bkJ1YmJsZShtZXNzYWdlLCBzZXR0aW5ncykKKyAgICAsIG1fd2ViVmlldyh3ZWJWaWV3KQorewor
ICAgIHdlYmtpdFdlYlZpZXdCYXNlU2V0U2hvdWxkTm90aWZ5Rm9jdXNFdmVudHMoV0VCS0lUX1dF
Ql9WSUVXX0JBU0Uod2ViVmlldyksIGZhbHNlKTsKKworICAgIEd0a1dpZGdldCogbGFiZWwgPSBn
dGtfbGFiZWxfbmV3KG51bGxwdHIpOworCisgICAgLy8gaHR0cHM6Ly9kb2NzLmd0ay5vcmcvUGFu
Z28vcGFuZ29fbWFya3VwLmh0bWwKKyAgICBjb25zdCBjaGFyKiBmb3JtYXQgPSAiPHNwYW4gZm9u
dD0nJWYnPiVzPC9zcGFuPiI7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gbWFya3VwKGdfbWFya3Vw
X3ByaW50Zl9lc2NhcGVkKGZvcm1hdCwgbV9mb250U2l6ZSwgbWVzc2FnZS51dGY4KCkuZGF0YSgp
KSk7CisgICAgZ3RrX2xhYmVsX3NldF9tYXJrdXAoR1RLX0xBQkVMKGxhYmVsKSwgbWFya3VwLmdl
dCgpKTsKKworICAgIGd0a193aWRnZXRfc2V0X2hhbGlnbihsYWJlbCwgR1RLX0FMSUdOX1NUQVJU
KTsKKyAgICBndGtfd2lkZ2V0X3NldF92YWxpZ24obGFiZWwsIEdUS19BTElHTl9DRU5URVIpOwor
CisgICAgZ3RrX3dpZGdldF9zZXRfbWFyZ2luX3RvcChsYWJlbCwgdmVydGljYWxNYXJnaW4pOwor
ICAgIGd0a193aWRnZXRfc2V0X21hcmdpbl9ib3R0b20obGFiZWwsIHZlcnRpY2FsTWFyZ2luKTsK
KyAgICBndGtfd2lkZ2V0X3NldF9tYXJnaW5fc3RhcnQobGFiZWwsIGhvcml6b250YWxNYXJnaW4p
OworICAgIGd0a193aWRnZXRfc2V0X21hcmdpbl9lbmQobGFiZWwsIGhvcml6b250YWxNYXJnaW4p
OworCisgICAgZ3RrX2xhYmVsX3NldF9lbGxpcHNpemUoR1RLX0xBQkVMKGxhYmVsKSwgUEFOR09f
RUxMSVBTSVpFX0VORCk7CisgICAgZ3RrX2xhYmVsX3NldF9saW5lX3dyYXAoR1RLX0xBQkVMKGxh
YmVsKSwgVFJVRSk7CisgICAgZ3RrX2xhYmVsX3NldF9saW5lcyhHVEtfTEFCRUwobGFiZWwpLCA0
KTsKKyAgICBndGtfbGFiZWxfc2V0X21heF93aWR0aF9jaGFycyhHVEtfTEFCRUwobGFiZWwpLCBt
YXhMYWJlbFdpZHRoQ2hhcnMpOworCisgICAgbV9wb3BvdmVyID0gZ3RrX3BvcG92ZXJfbmV3KHdl
YlZpZXcpOworICAgIGd0a19wb3BvdmVyX3NldF9tb2RhbChHVEtfUE9QT1ZFUihtX3BvcG92ZXIp
LCBGQUxTRSk7CisgICAgZ3RrX3BvcG92ZXJfc2V0X3Bvc2l0aW9uKEdUS19QT1BPVkVSKG1fcG9w
b3ZlciksIEdUS19QT1NfVE9QKTsKKyAgICBndGtfcG9wb3Zlcl9zZXRfY29uc3RyYWluX3RvKEdU
S19QT1BPVkVSKG1fcG9wb3ZlciksIEdUS19QT1BPVkVSX0NPTlNUUkFJTlRfTk9ORSk7CisKKyAg
ICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKG1fcG9wb3ZlciksIGxhYmVsKTsKKyAg
ICBndGtfd2lkZ2V0X3Nob3cobGFiZWwpOworCisgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVk
KG1fcG9wb3ZlciwgImNsb3NlZCIsIEdfQ0FMTEJBQ0soK1tdKFdlYlZhbGlkYXRpb25CdWJibGVH
dGsqIHZhbGlkYXRpb25CdWJibGUpIHsKKyAgICAgICAgdmFsaWRhdGlvbkJ1YmJsZS0+aW52YWxp
ZGF0ZSgpOworICAgIH0pLCB0aGlzKTsKK30KKworV2ViVmFsaWRhdGlvbkJ1YmJsZUd0azo6fldl
YlZhbGlkYXRpb25CdWJibGVHdGsoKQoreworICAgIGludmFsaWRhdGUoKTsKK30KKwordm9pZCBX
ZWJWYWxpZGF0aW9uQnViYmxlR3RrOjppbnZhbGlkYXRlKCkKK3sKKyAgICBpZiAoIW1fcG9wb3Zl
cikKKyAgICAgICAgcmV0dXJuOworCisgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9i
eV9kYXRhKG1fcG9wb3ZlciwgdGhpcyk7CisKKyAgICBHdGtXaWRnZXQqIHdlYlZpZXcgPSBndGtf
cG9wb3Zlcl9nZXRfcmVsYXRpdmVfdG8oR1RLX1BPUE9WRVIobV9wb3BvdmVyKSk7CisgICAgZ3Rr
X3dpZGdldF9kZXN0cm95KG1fcG9wb3Zlcik7CisgICAgbV9wb3BvdmVyID0gbnVsbHB0cjsKKwor
ICAgIHdlYmtpdFdlYlZpZXdCYXNlU2V0U2hvdWxkTm90aWZ5Rm9jdXNFdmVudHMoV0VCS0lUX1dF
Ql9WSUVXX0JBU0Uod2ViVmlldyksIHRydWUpOworfQorCit2b2lkIFdlYlZhbGlkYXRpb25CdWJi
bGVHdGs6OnNob3dSZWxhdGl2ZVRvKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGFuY2hvclJlY3Qp
Cit7CisgICAgR2RrUmVjdGFuZ2xlIHJlY3QoYW5jaG9yUmVjdCk7CisgICAgZ3RrX3BvcG92ZXJf
c2V0X3BvaW50aW5nX3RvKEdUS19QT1BPVkVSKG1fcG9wb3ZlciksICZyZWN0KTsKKworICAgIGd0
a19wb3BvdmVyX3BvcHVwKEdUS19QT1BPVkVSKG1fcG9wb3ZlcikpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJW
YWxpZGF0aW9uQnViYmxlR3RrLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViVmFs
aWRhdGlvbkJ1YmJsZUd0ay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxMzMxMTcxYTE0NzJlOWEyZjdkNGE4M2M0
Yzk1ODZkNmIzZDI5NWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9ndGsvV2ViVmFsaWRhdGlvbkJ1YmJsZUd0ay5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJXZWJWYWxpZGF0aW9uQnViYmxlLmgiCisKKyNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViVmFsaWRhdGlvbkJ1YmJsZUd0ayBmaW5hbCA6IHB1YmxpYyBXZWJWYWxp
ZGF0aW9uQnViYmxlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYlZhbGlkYXRpb25CdWJi
bGVHdGs+IGNyZWF0ZShHdGtXaWRnZXQqLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTZXR0aW5ncyYp
OworCisgICAgfldlYlZhbGlkYXRpb25CdWJibGVHdGsoKTsKKworICAgIHZvaWQgc2hvd1JlbGF0
aXZlVG8oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgYW5jaG9yUmVjdCk7CisKK3ByaXZhdGU6Cisg
ICAgV2ViVmFsaWRhdGlvbkJ1YmJsZUd0ayhHdGtXaWRnZXQqLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBTZXR0aW5ncyYpOworCisgICAgdm9pZCBpbnZhbGlkYXRlKCk7CisKKyAgICBHdGtXaWRnZXQq
IG1fd2ViVmlldzsKKyAgICBHdGtXaWRnZXQqIG1fcG9wb3ZlciB7IG51bGxwdHIgfTsKK307CisK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXgg
OTQyZWRjNjIzYTRlNjUzYmIxODhhZWUwNTA2NDRhM2Y0YTAzMmU4OS4uNjJjODVjNWQ4ZTI3N2Fh
ODQwZTI3OTRkMWNhYzE0OTE4Yzk2OTQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTYxMSw3ICs2MTEsNyBAQCBXZWJQYWdlOjpXZWJQYWdl
KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFt
ZXRlcnMpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoU3ludGhlc2lzQ2xpZW50ID0gbWFr
ZVVuaXF1ZTxXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQ+KCp0aGlzKTsKICNlbmRpZgogCi0jaWYg
UExBVEZPUk0oQ09DT0EpCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKICAg
ICBwYWdlQ29uZmlndXJhdGlvbi52YWxpZGF0aW9uTWVzc2FnZUNsaWVudCA9IG1ha2VVbmlxdWU8
V2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQ+KCp0aGlzKTsKICNlbmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448085</attachid>
            <date>2021-12-29 17:54:26 -0800</date>
            <delta_ts>2021-12-29 18:02:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234629-20211229205425.patch</filename>
            <type>text/plain</type>
            <size>19637</size>
            <attacher name="ChangSeok Oh">changseok</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzkyMGYzYmZiNDcwOTEz
MGM1OGZlMjEyYTIwODZhZjk2ZDcwMGVjOC4uOTljZDA3MjgwN2I0YjFkYTFhNWVmNzNmYTliYzA0
OTkxMGE0YTk5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTEyLTI5ICBDaGFu
Z1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Via2l0Lm9yZz4KKworICAgICAgICBbR1RLXSBJbXBsZW1l
bnQgZm9ybSB2YWxpZGF0aW9uIHdpdGggZ3RrMyB3aWRnZXRzIGluIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ2MjkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5n
ZSByZS1pbXBsZW1lbnRzIGZvcm0gdmFsaWRhdGlvbiB3aXRoIGd0azMgd2lkZ2V0cyBpbiB0aGUg
VUkgcHJvY2Vzcy4KKyAgICAgICAgVGhlIGN1cnJlbnQgZm9ybSB2YWxpZGF0aW9uIGlzIGltcGxl
bWVudGVkIGJ5IHVzaW5nIHNoYWRvdyBET00gaW4gdGhlIHdlYiBwcm9jZXNzLgorICAgICAgICBU
aGUgb3ZlcmFsbCBkZXNpZ24gaXMgc2ltaWxhciB0byB0aGF0IG9mIG1hYyBwb3J0IGJ1dCB0aGUg
Z3RrIHBvcnQgYWRkcworICAgICAgICBhIGNhbGxiYWNrIG9mIHdlYmtpdFdlYlZpZXdCYXNlU2V0
U2hvdWxkTm90aWZ5Rm9jdXNFdmVudHMgdG8gV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZQorICAg
ICAgICB0byBzdXBwcmVzcyBhIGZvY3VzIGV2ZW50IHRyaWdnZXJlZCBieSB0aGUgcG9wb3ZlciB3
aWRnZXQuIE90aGVyd2lzZSwgdGhlIG5hdGl2ZQorICAgICAgICBidWJibGUgZG9lcyBub3QgZGlz
cGxheSBwcm9wZXJseS4KKyAgICAgICAgVGhpcyBjaGFuZ2UgZG9lcyBub3Qgc3VwcG9ydCBndGs0
IHlldC4gQSBmb2xsb3ctdXAgcGF0Y2ggd2lsbCBhZGQgdGhlIGd0azQgc3VwcG9ydC4KKworICAg
ICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSBleGlzdGluZyB0ZXN0cyBjb3ZlciB0aGlzIGNoYW5n
ZS4KKworICAgICAgICAqIFNvdXJjZXNHVEsudHh0OgorICAgICAgICAqIHBsYXRmb3JtL1ZhbGlk
YXRpb25CdWJibGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkYXRpb25CdWJibGU6OmNyZWF0
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1ZhbGlkYXRpb25CdWJibGVHdGsuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkYXRpb25CdWJibGU6OlZhbGlkYXRpb25CdWJibGUp
OgorICAgICAgICAoV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZTo6flZhbGlkYXRpb25CdWJibGUp
OgorICAgICAgICAoV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZTo6aW52YWxpZGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlOjpzaG93UmVsYXRpdmVUbyk6CisKIDIwMjEt
MTItMjMgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJ
T04oQ29udGFpbm1lbnQpIG51bGxwdHIgZGVyZWYgaW4gUmVuZGVyQm94OjpzdHlsZURpZENoYW5n
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCAxZjNmNDk1YWEzN2YyOWQxNjA3YTdiZDIxYTg1NjQwMDZlMThkZDM3Li5m
Yjg5ZGRkMDI4ZTRhOGRlN2JhNTgyZmI3NzllNjE4ZDVmNWIwZGU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM1IEBACisyMDIxLTEyLTI5ICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Via2l0Lm9y
Zz4KKworICAgICAgICBbR1RLXSBJbXBsZW1lbnQgZm9ybSB2YWxpZGF0aW9uIHdpdGggZ3RrMyB3
aWRnZXRzIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzQ2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSByZS1pbXBsZW1lbnRzIGZvcm0gdmFsaWRhdGlv
biB3aXRoIGd0azMgd2lkZ2V0cyBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgVGhlIGN1cnJl
bnQgZm9ybSB2YWxpZGF0aW9uIGlzIGltcGxlbWVudGVkIGJ5IHVzaW5nIHNoYWRvdyBET00gaW4g
dGhlIHdlYiBwcm9jZXNzLgorICAgICAgICBUaGUgb3ZlcmFsbCBkZXNpZ24gaXMgc2ltaWxhciB0
byB0aGF0IG9mIG1hYyBwb3J0IGJ1dCB0aGUgZ3RrIHBvcnQgYWRkcworICAgICAgICBhIGNhbGxi
YWNrIG9mIHdlYmtpdFdlYlZpZXdCYXNlU2V0U2hvdWxkTm90aWZ5Rm9jdXNFdmVudHMgdG8gV2Vi
Q29yZTo6VmFsaWRhdGlvbkJ1YmJsZQorICAgICAgICB0byBzdXBwcmVzcyBhIGZvY3VzIGV2ZW50
IHRyaWdnZXJlZCBieSB0aGUgcG9wb3ZlciB3aWRnZXQuIE90aGVyd2lzZSwgdGhlIG5hdGl2ZQor
ICAgICAgICBidWJibGUgZG9lcyBub3QgZGlzcGxheSBwcm9wZXJseS4KKyAgICAgICAgVGhpcyBj
aGFuZ2UgZG9lcyBub3Qgc3VwcG9ydCBndGs0IHlldC4gQSBmb2xsb3ctdXAgcGF0Y2ggd2lsbCBh
ZGQgdGhlIGd0azQgc3VwcG9ydC4KKyAgICAgICAgVG8gYXZvaWQgY29tcGxhaW50cyBmcm9tIHRo
ZSBndGs0IEVXUywgd2UgZ3VhcmQgaW1wbGVtZW50YXRpb24gb2YgVmFsaWRhdGlvbkJ1YmJsZUd0
aworICAgICAgICB0ZW1wb3JhcmlseSBhbmQgaW5zdGFsbCBwYWdlQ29uZmlndXJhdGlvbi52YWxp
ZGF0aW9uTWVzc2FnZUNsaWVudCBmb3IgZ3RrMyBvbmx5LgorICAgICAgICBUaGUgZ3RrNCBrZWVw
cyB1c2luZyB0aGUgc2hhZG93IERPTSBidWJibGUgdW50aWwgaGF2aW5nIG5hdGl2ZSBidWJibGUg
c3VwcG9ydC4KKworICAgICAgICAqIFNvdXJjZXNHVEsudHh0OgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6OmNyZWF0ZVZhbGlkYXRpb25CdWJibGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z3RrL1BhZ2VDbGllbnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpoaWRlVmFsaWRhdGlvbk1lc3NhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViUGFnZVByb3h5R3RrLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzaG93VmFsaWRhdGlvbk1lc3NhZ2UpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
bV9hcHBIaWdobGlnaHRzVmlzaWJsZSk6CisKIDIwMjEtMTItMjMgIFNpaHVpIExpdSAgPHNpaHVp
X2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgRG9uJ3QgY3JlYXRlIExvY2FsU3RvcmFnZSBkYXRh
YmFzZSBmb3IgcmVhZCBpZiBpdCBkb2VzIG5vdCBleGlzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvU291cmNlc0dUSy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dAppbmRl
eCA0OTE3ODZiNTFkM2VjYWFiMGEwNjE4MzFhZTA2ZTc0NTk4OWNmMzBkLi5lYWQwMTE2NTc1MTQ2
Zjk5MTFhYTExODgxZGFlN2ZhNTVhMTU0MGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzR1RLLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dApAQCAtMTM2
LDYgKzEzNiw3IEBAIHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZVNjcm9sbGJhci5jcHAKIHBsYXRm
b3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5jcHAKIHBsYXRmb3JtL2d0ay9TZWxlY3Rpb25EYXRh
LmNwcAogcGxhdGZvcm0vZ3RrL1RoZW1lR3RrLmNwcAorcGxhdGZvcm0vZ3RrL1ZhbGlkYXRpb25C
dWJibGVHdGsuY3BwCiBwbGF0Zm9ybS9ndGsvV2lkZ2V0R3RrLmNwcAogCiBwbGF0Zm9ybS90ZXh0
L0h5cGhlbmF0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmFs
aWRhdGlvbkJ1YmJsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmFsaWRhdGlvbkJ1YmJs
ZS5oCmluZGV4IDkyNDhkODFkODgxMjE3ODc0ZjFmNGNkMWI2YWE0YzQ2MWIyZGRiMmYuLjY2ZjIz
OTYyYzc4YjRlMjMzY2QwYjA3M2U5YzZkODQxNzM1NWY3NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1ZhbGlkYXRpb25CdWJibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9WYWxpZGF0aW9uQnViYmxlLmgKQEAgLTQ5LDYgKzQ5LDggQEAgdXNpbmcgUGxhdGZv
cm1WaWV3ID0gTlNWaWV3OwogI2VsaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIE9CSkNfQ0xBU1Mg
VUlWaWV3OwogdXNpbmcgUGxhdGZvcm1WaWV3ID0gVUlWaWV3OworI2VsaWYgUExBVEZPUk0oR1RL
KQordXNpbmcgUGxhdGZvcm1WaWV3ID0gR3RrV2lkZ2V0OwogI2Vsc2UKIHVzaW5nIFBsYXRmb3Jt
VmlldyA9IHZvaWQ7CiAjZW5kaWYKQEAgLTYxLDEwICs2MywxOCBAQCBwdWJsaWM6CiAgICAgICAg
IGRvdWJsZSBtaW5pbXVtRm9udFNpemUgeyAwIH07CiAgICAgfTsKIAorI2lmIFBMQVRGT1JNKEdU
SykKKyAgICB1c2luZyBTaG91bGROb3RpZnlGb2N1c0V2ZW50c0NhbGxiYWNrID0gRnVuY3Rpb248
dm9pZChQbGF0Zm9ybVZpZXcqLCBib29sIHNob3VsZE5vdGlmeUZvY3VzRXZlbnRzKT47CisgICAg
c3RhdGljIFJlZjxWYWxpZGF0aW9uQnViYmxlPiBjcmVhdGUoUGxhdGZvcm1WaWV3KiB2aWV3LCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFNldHRpbmdzJiBzZXR0aW5ncywgU2hvdWxkTm90
aWZ5Rm9jdXNFdmVudHNDYWxsYmFjayYmIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgVmFsaWRhdGlvbkJ1YmJsZSh2aWV3LCBtZXNzYWdlLCBzZXR0aW5ncywg
V1RGTW92ZShjYWxsYmFjaykpKTsKKyAgICB9CisjZWxzZQogICAgIHN0YXRpYyBSZWY8VmFsaWRh
dGlvbkJ1YmJsZT4gY3JlYXRlKFBsYXRmb3JtVmlldyogdmlldywgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3MpCiAgICAgewogICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBWYWxpZGF0aW9uQnViYmxlKHZpZXcsIG1lc3NhZ2UsIHNldHRpbmdzKSk7CiAg
ICAgfQorI2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9SVCB+VmFsaWRhdGlvbkJ1YmJsZSgpOwog
CkBAIC03OSw3ICs4OSwxMiBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKKyNpZiBQTEFU
Rk9STShHVEspCisgICAgV0VCQ09SRV9FWFBPUlQgVmFsaWRhdGlvbkJ1YmJsZShQbGF0Zm9ybVZp
ZXcqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFNldHRpbmdzJiwgU2hvdWxkTm90aWZ5
Rm9jdXNFdmVudHNDYWxsYmFjayYmKTsKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKKyNlbHNlCiAg
ICAgV0VCQ09SRV9FWFBPUlQgVmFsaWRhdGlvbkJ1YmJsZShQbGF0Zm9ybVZpZXcqLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFNldHRpbmdzJik7CisjZW5kaWYKIAogICAgIFBsYXRmb3Jt
VmlldyogbV92aWV3OwogICAgIFN0cmluZyBtX21lc3NhZ2U7CkBAIC05MSw2ICsxMDYsOSBAQCBw
cml2YXRlOgogICAgIFJldGFpblB0cjxXZWJWYWxpZGF0aW9uQnViYmxlVGFwUmVjb2duaXplcj4g
bV90YXBSZWNvZ25pemVyOwogICAgIFJldGFpblB0cjxXZWJWYWxpZGF0aW9uQnViYmxlRGVsZWdh
dGU+IG1fcG9wb3ZlckRlbGVnYXRlOwogICAgIFdlYWtPYmpDUHRyPFVJVmlld0NvbnRyb2xsZXI+
IG1fcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyOworI2VsaWYgUExBVEZPUk0oR1RLKQorICAgIEd0
a1dpZGdldCogbV9wb3BvdmVyIHsgbnVsbHB0ciB9OworICAgIFNob3VsZE5vdGlmeUZvY3VzRXZl
bnRzQ2FsbGJhY2sgbV9zaG91bGROb3RpZnlGb2N1c0V2ZW50c0NhbGxiYWNrIHsgbnVsbHB0ciB9
OwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
VmFsaWRhdGlvbkJ1YmJsZUd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvVmFs
aWRhdGlvbkJ1YmJsZUd0ay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQ4NmUwMGNjZWVkYjRhM2Y5MzcyMmEy
NmUzNDk5N2JmNTFmZjAwOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9WYWxpZGF0aW9uQnViYmxlR3RrLmNwcApAQCAtMCwwICsxLDExOCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiVmFsaWRhdGlvbkJ1YmJsZS5oIgorCisjaWYgUExBVEZPUk0oR1RL
KQorCisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitzdGF0aWMgY29uc3QgZmxvYXQgaG9yaXpvbnRhbE1hcmdpbiA9IDU7CitzdGF0aWMgY29uc3Qg
ZmxvYXQgdmVydGljYWxNYXJnaW4gPSA1Oworc3RhdGljIGNvbnN0IGZsb2F0IG1heExhYmVsV2lk
dGhDaGFycyA9IDQwOworCitWYWxpZGF0aW9uQnViYmxlOjpWYWxpZGF0aW9uQnViYmxlKEd0a1dp
ZGdldCogd2ViVmlldywgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTZXR0aW5ncyYgc2V0
dGluZ3MsIFNob3VsZE5vdGlmeUZvY3VzRXZlbnRzQ2FsbGJhY2smJiBjYWxsYmFjaykKKyAgICA6
IG1fdmlldyh3ZWJWaWV3KQorICAgICwgbV9tZXNzYWdlKG1lc3NhZ2UpCisgICAgLCBtX2ZvbnRT
aXplKHN0ZDo6bWF4KHNldHRpbmdzLm1pbmltdW1Gb250U2l6ZSwgMTEuMCkpCisgICAgLCBtX3No
b3VsZE5vdGlmeUZvY3VzRXZlbnRzQ2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpCit7CisjaWYg
IVVTRShHVEs0KQorICAgIGlmIChtX3Nob3VsZE5vdGlmeUZvY3VzRXZlbnRzQ2FsbGJhY2spCisg
ICAgICAgIG1fc2hvdWxkTm90aWZ5Rm9jdXNFdmVudHNDYWxsYmFjayh3ZWJWaWV3LCBmYWxzZSk7
CisKKyAgICBHdGtXaWRnZXQqIGxhYmVsID0gZ3RrX2xhYmVsX25ldyhudWxscHRyKTsKKworICAg
IC8vIGh0dHBzOi8vZG9jcy5ndGsub3JnL1BhbmdvL3BhbmdvX21hcmt1cC5odG1sCisgICAgR1Vu
aXF1ZVB0cjxnY2hhcj4gbWFya3VwKGdfbWFya3VwX3ByaW50Zl9lc2NhcGVkKCI8c3BhbiBmb250
PSclZic+JXM8L3NwYW4+IiwgbV9mb250U2l6ZSwgbWVzc2FnZS51dGY4KCkuZGF0YSgpKSk7Cisg
ICAgZ3RrX2xhYmVsX3NldF9tYXJrdXAoR1RLX0xBQkVMKGxhYmVsKSwgbWFya3VwLmdldCgpKTsK
KworICAgIGd0a193aWRnZXRfc2V0X2hhbGlnbihsYWJlbCwgR1RLX0FMSUdOX1NUQVJUKTsKKyAg
ICBndGtfd2lkZ2V0X3NldF92YWxpZ24obGFiZWwsIEdUS19BTElHTl9DRU5URVIpOworCisgICAg
Z3RrX3dpZGdldF9zZXRfbWFyZ2luX3RvcChsYWJlbCwgdmVydGljYWxNYXJnaW4pOworICAgIGd0
a193aWRnZXRfc2V0X21hcmdpbl9ib3R0b20obGFiZWwsIHZlcnRpY2FsTWFyZ2luKTsKKyAgICBn
dGtfd2lkZ2V0X3NldF9tYXJnaW5fc3RhcnQobGFiZWwsIGhvcml6b250YWxNYXJnaW4pOworICAg
IGd0a193aWRnZXRfc2V0X21hcmdpbl9lbmQobGFiZWwsIGhvcml6b250YWxNYXJnaW4pOworCisg
ICAgZ3RrX2xhYmVsX3NldF9lbGxpcHNpemUoR1RLX0xBQkVMKGxhYmVsKSwgUEFOR09fRUxMSVBT
SVpFX0VORCk7CisgICAgZ3RrX2xhYmVsX3NldF9saW5lX3dyYXAoR1RLX0xBQkVMKGxhYmVsKSwg
VFJVRSk7CisgICAgZ3RrX2xhYmVsX3NldF9saW5lcyhHVEtfTEFCRUwobGFiZWwpLCA0KTsKKyAg
ICBndGtfbGFiZWxfc2V0X21heF93aWR0aF9jaGFycyhHVEtfTEFCRUwobGFiZWwpLCBtYXhMYWJl
bFdpZHRoQ2hhcnMpOworCisgICAgbV9wb3BvdmVyID0gZ3RrX3BvcG92ZXJfbmV3KHdlYlZpZXcp
OworICAgIGd0a19wb3BvdmVyX3NldF9tb2RhbChHVEtfUE9QT1ZFUihtX3BvcG92ZXIpLCBGQUxT
RSk7CisgICAgZ3RrX3BvcG92ZXJfc2V0X3Bvc2l0aW9uKEdUS19QT1BPVkVSKG1fcG9wb3Zlciks
IEdUS19QT1NfVE9QKTsKKyAgICBndGtfcG9wb3Zlcl9zZXRfY29uc3RyYWluX3RvKEdUS19QT1BP
VkVSKG1fcG9wb3ZlciksIEdUS19QT1BPVkVSX0NPTlNUUkFJTlRfTk9ORSk7CisKKyAgICBndGtf
Y29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKG1fcG9wb3ZlciksIGxhYmVsKTsKKyAgICBndGtf
d2lkZ2V0X3Nob3cobGFiZWwpOworCisgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKG1fcG9w
b3ZlciwgImNsb3NlZCIsIEdfQ0FMTEJBQ0soK1tdKFZhbGlkYXRpb25CdWJibGUqIHZhbGlkYXRp
b25CdWJibGUpIHsKKyAgICAgICAgdmFsaWRhdGlvbkJ1YmJsZS0+aW52YWxpZGF0ZSgpOworICAg
IH0pLCB0aGlzKTsKKyNlbmRpZgorfQorCitWYWxpZGF0aW9uQnViYmxlOjp+VmFsaWRhdGlvbkJ1
YmJsZSgpCit7CisgICAgaW52YWxpZGF0ZSgpOworfQorCit2b2lkIFZhbGlkYXRpb25CdWJibGU6
OmludmFsaWRhdGUoKQoreworI2lmICFVU0UoR1RLNCkKKyAgICBpZiAoIW1fcG9wb3ZlcikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9kYXRh
KG1fcG9wb3ZlciwgdGhpcyk7CisKKyAgICBHdGtXaWRnZXQqIHdlYlZpZXcgPSBndGtfcG9wb3Zl
cl9nZXRfcmVsYXRpdmVfdG8oR1RLX1BPUE9WRVIobV9wb3BvdmVyKSk7CisgICAgZ3RrX3dpZGdl
dF9kZXN0cm95KG1fcG9wb3Zlcik7CisgICAgbV9wb3BvdmVyID0gbnVsbHB0cjsKKworICAgIGlm
IChtX3Nob3VsZE5vdGlmeUZvY3VzRXZlbnRzQ2FsbGJhY2spCisgICAgICAgIG1fc2hvdWxkTm90
aWZ5Rm9jdXNFdmVudHNDYWxsYmFjayh3ZWJWaWV3LCB0cnVlKTsKKyNlbmRpZgorfQorCit2b2lk
IFZhbGlkYXRpb25CdWJibGU6OnNob3dSZWxhdGl2ZVRvKGNvbnN0IEludFJlY3QmIGFuY2hvclJl
Y3QpCit7CisjaWYgIVVTRShHVEs0KQorICAgIEdka1JlY3RhbmdsZSByZWN0KGFuY2hvclJlY3Qp
OworICAgIGd0a19wb3BvdmVyX3NldF9wb2ludGluZ190byhHVEtfUE9QT1ZFUihtX3BvcG92ZXIp
LCAmcmVjdCk7CisKKyAgICBndGtfcG9wb3Zlcl9wb3B1cChHVEtfUE9QT1ZFUihtX3BvcG92ZXIp
KTsKKyNlbmRpZgorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQTEFU
Rk9STShHVEspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0IGIvU291
cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAppbmRleCBmMjEyNDZmMDBjMThmMjM4MWZjZWU3MzE3
Zjk2NDlmMWI2NjFlMzQyLi42N2Y4MDQxMGU4YzlkZjk2NDdkNzZiMzc3NWNmYmNmZmM3ZDNiNjc2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0dUSy50eHQKQEAgLTQxMyw2ICs0MTMsOCBAQCBXZWJQcm9jZXNzL0luc3Bl
Y3Rvci9ndGsvV2ViSW5zcGVjdG9yVUlHdGsuY3BwCiAKIFdlYlByb2Nlc3MvTWVkaWFDYWNoZS9X
ZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcAogCitXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmNwcAorCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L2dsaWIvV2ViRWRpdG9yQ2xpZW50R0xpYi5jcHAKIAogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9ndGsvV2ViQ29udGV4dE1lbnVDbGllbnRHdGsuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IDFhOTFjN2Q3ODdm
N2QzYjg4YTJmMGZjYmQ0OGViNzJmZTZiZjUzMmMuLmI4OTUzOGJhOGEyMWRhZDc5MDg4MDcyZWRm
YTExZDJhYTFkZjIwNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvUGFnZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvUGFnZUNsaWVudEltcGwuY3BwCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9HdGtVdGlsaXRpZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZWZQdHJDYWlyby5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmFsaWRh
dGlvbkJ1YmJsZS5oPgogI2luY2x1ZGUgPHd0Zi9Db21waWxlci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTI5Myw2
ICsyOTQsMTMgQEAgUmVmUHRyPFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bj4gUGFnZUNs
aWVudEltcGw6OmNyZWF0ZURhdGFMaXN0U3VnZ2VzdGlvbnMKIH0KICNlbmRpZgogCitSZWY8VmFs
aWRhdGlvbkJ1YmJsZT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZVZhbGlkYXRpb25CdWJibGUoY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBWYWxpZGF0aW9uQnViYmxlOjpTZXR0aW5ncyYgc2V0
dGluZ3MpCit7CisgICAgcmV0dXJuIFZhbGlkYXRpb25CdWJibGU6OmNyZWF0ZShtX3ZpZXdXaWRn
ZXQsIG1lc3NhZ2UsIHNldHRpbmdzLCBbXShHdGtXaWRnZXQqIHdlYlZpZXcsIGJvb2wgc2hvdWxk
Tm90aWZ5Rm9jdXNFdmVudHMpIHsKKyAgICAgICAgd2Via2l0V2ViVmlld0Jhc2VTZXRTaG91bGRO
b3RpZnlGb2N1c0V2ZW50cyhXRUJLSVRfV0VCX1ZJRVdfQkFTRSh3ZWJWaWV3KSwgc2hvdWxkTm90
aWZ5Rm9jdXNFdmVudHMpOworICAgIH0pOworfQorCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjplbnRl
ckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmIGxheWVy
VHJlZUNvbnRleHQpCiB7CiAgICAgd2Via2l0V2ViVmlld0Jhc2VFbnRlckFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdNb2RlKFdFQktJVF9XRUJfVklFV19CQVNFKG1fdmlld1dpZGdldCksIGxheWVyVHJl
ZUNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9Q
YWdlQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xp
ZW50SW1wbC5oCmluZGV4IDk5ZDA5N2FiZGVmYjFlODMyZDNmNmZjZDdiZWY5MjM0YmUxY2EwYTku
LmNlODczYmRmYmU3MTk0YmUzYjg3MzM4NjAwNDdiZGNjN2QyZTdjN2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTEwMSw2ICsx
MDEsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQogICAgIFJlZlB0
cjxXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24+IGNyZWF0ZURhdGFMaXN0U3VnZ2VzdGlv
bnNEcm9wZG93bihXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsKICNlbmRpZgorICAgIFJlZjxXZWJD
b3JlOjpWYWxpZGF0aW9uQnViYmxlPiBjcmVhdGVWYWxpZGF0aW9uQnViYmxlKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZTo6U2V0dGluZ3MmKSBm
aW5hbDsKICAgICB2b2lkIHNlbGVjdGlvbkRpZENoYW5nZSgpIG92ZXJyaWRlOwogICAgIFJlZlB0
cjxWaWV3U25hcHNob3Q+IHRha2VWaWV3U25hcHNob3Qoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJ
bnRSZWN0PiYmKSBvdmVycmlkZTsKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDViNTI5ZmZkOGMyMmQ2ZGUwMzJjYzg5ZWE3MDli
MTJjMzc4YjEzNDAuLmIxNGU0MTEzMjUyOWNlZmRjODQ5NWUzOGY3NTVjNTA0YjA3NDFiMzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTM4Nyw3ICszODcsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBSZWZQdHI8V2ViRGF0ZVRpbWVQaWNrZXI+IGNyZWF0ZURhdGVUaW1l
UGlja2VyKFdlYlBhZ2VQcm94eSYpID0gMDsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ09DT0Ep
CisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKICAgICB2aXJ0dWFsIFJlZjxX
ZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlPiBjcmVhdGVWYWxpZGF0aW9uQnViYmxlKGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZTo6U2V0dGluZ3Mm
KSA9IDA7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
aW5kZXggYjc5MDMyOTUyMjFkNzFkOTc5ZjQ4YjZkNjZmNmZhYTc3NTEyN2IwMi4uOTg1ZTFkZmNm
NjI2ODFkYTExNWU5YWQzMzQ5ZGYwN2YxN2I1ZTIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCkBAIC05OTAyLDcgKzk5MDIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6c2V0VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbihXZWJDb3JlOjpVc2VySW50ZXJmYWNl
TGF5b3V0RAogCiB2b2lkIFdlYlBhZ2VQcm94eTo6aGlkZVZhbGlkYXRpb25NZXNzYWdlKCkKIHsK
LSNpZiBQTEFURk9STShDT0NPQSkKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RL
KQogICAgIG1fdmFsaWRhdGlvbkJ1YmJsZSA9IG51bGxwdHI7CiAjZW5kaWYKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNjZiNDEyNjkxY2Y3NDQ3MTE0NDgwMTRk
NTg5OTM3ZjY5ZjY4OTdlMC4uZDJjZmI5NzI1ZjIyMGZlNjJjOTM5YjMwMTcyZDMwMjY2ODA2MDNh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE2MjEsNyArMTYy
MSw3IEBAIHB1YmxpYzoKICAgICAvLyBGb3JtIHZhbGlkYXRpb24gbWVzc2FnZXMuCiAgICAgdm9p
ZCBzaG93VmFsaWRhdGlvbk1lc3NhZ2UoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgYW5jaG9yQ2xp
ZW50UmVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKICAgICB2b2lkIGhpZGVWYWxpZGF0aW9u
TWVzc2FnZSgpOwotI2lmIFBMQVRGT1JNKENPQ09BKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQ
TEFURk9STShHVEspCiAgICAgV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZSogdmFsaWRhdGlvbkJ1
YmJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsaWRhdGlvbkJ1YmJsZS5nZXQoKTsgfSAvLyBGb3Ig
dGVzdGluZy4KICNlbmRpZgogCkBAIC0yODc5LDcgKzI4NzksNyBAQCBwcml2YXRlOgogI2lmIEVO
QUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQogICAgIFJlZlB0cjxXZWJEYXRlVGltZVBp
Y2tlcj4gbV9kYXRlVGltZVBpY2tlcjsKICNlbmRpZgotI2lmIFBMQVRGT1JNKENPQ09BKQorI2lm
IFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspCiAgICAgUmVmUHRyPFdlYkNvcmU6OlZh
bGlkYXRpb25CdWJibGU+IG1fdmFsaWRhdGlvbkJ1YmJsZTsKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggOTQyYzkz
ZGQyZjkyNjkyNWRjODQzZmRhNzk2ODQ0ZDQ4NzEyOTAwNS4uNzZlMTU4N2VhZWUzZGRhODc4NjAw
ZTM1MjIyZjUxNjFhMjBhOTcwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNTcsNyArNTcsNyBAQCBtZXNzYWdlcyAtPiBXZWJQ
YWdlUHJveHkgewogICAgIEFjY2Vzc2liaWxpdHlTY3JlZW5Ub1Jvb3RWaWV3KFdlYkNvcmU6Oklu
dFBvaW50IHNjcmVlblBvaW50KSAtPiAoV2ViQ29yZTo6SW50UG9pbnQgd2luZG93UG9pbnQpIFN5
bmNocm9ub3VzCiAgICAgUm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4oV2ViQ29yZTo6SW50
UmVjdCByZWN0KSAtPiAoV2ViQ29yZTo6SW50UmVjdCBzY3JlZW5GcmFtZSkgU3luY2hyb25vdXMK
IAotI2lmIFBMQVRGT1JNKENPQ09BKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShH
VEspCiAgICAgU2hvd1ZhbGlkYXRpb25NZXNzYWdlKFdlYkNvcmU6OkludFJlY3QgYW5jaG9yUmVj
dCwgU3RyaW5nIG1lc3NhZ2UpCiAgICAgSGlkZVZhbGlkYXRpb25NZXNzYWdlKCkKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBhZ2VQcm94eUd0ay5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUGFnZVByb3h5R3RrLmNwcAppbmRl
eCA5MWVmMjE3YjlkMmQ4MTViZjA1YWE3YTUwMGJlNDJlZmUwMzNlZDc2Li4zMDVlMjVlNGViYzQ1
ZmEwZjA0MDhhMDlmN2MxOGE2NmNkMjhlMmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9ndGsvV2ViUGFnZVByb3h5R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9ndGsvV2ViUGFnZVByb3h5R3RrLmNwcApAQCAtODUsNiArODUsMTIgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnNob3dFbW9qaVBpY2tlcihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjYXJldFJl
Y3QsIENvbXBsZXRpb24KICAgICB3ZWJraXRXZWJWaWV3QmFzZVNob3dFbW9qaUNob29zZXIoV0VC
S0lUX1dFQl9WSUVXX0JBU0Uodmlld1dpZGdldCgpKSwgY2FyZXRSZWN0LCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpzaG93VmFsaWRhdGlvbk1l
c3NhZ2UoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgYW5jaG9yQ2xpZW50UmVjdCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKQoreworICAgIG1fdmFsaWRhdGlvbkJ1YmJsZSA9IHBhZ2VDbGllbnQoKS5j
cmVhdGVWYWxpZGF0aW9uQnViYmxlKG1lc3NhZ2UsIHsgbV9wcmVmZXJlbmNlcy0+bWluaW11bUZv
bnRTaXplKCkgfSk7CisgICAgbV92YWxpZGF0aW9uQnViYmxlLT5zaG93UmVsYXRpdmVUbyhhbmNo
b3JDbGllbnRSZWN0KTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnNlbmRNZXNzYWdlVG9XZWJW
aWV3V2l0aFJlcGx5KFVzZXJNZXNzYWdlJiYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChVc2VyTWVzc2FnZSYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIVdFQktJ
VF9JU19XRUJfVklFVyh2aWV3V2lkZ2V0KCkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDk0MmVkYzYyM2E0ZTY1M2JiMTg4YWVlMDUwNjQ0
YTNmNGEwMzJlODkuLjY1NTVjMTgxNDE1MmY4ZDE2ZDVkOWE1ZTg3MjA3ZWY5Yjc1NmQ2NWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC02MTEs
NyArNjExLDcgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgIHBhZ2VDb25maWd1cmF0aW9u
LnNwZWVjaFN5bnRoZXNpc0NsaWVudCA9IG1ha2VVbmlxdWU8V2ViU3BlZWNoU3ludGhlc2lzQ2xp
ZW50PigqdGhpcyk7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKQorI2lmIFBMQVRGT1JN
KENPQ09BKSB8fCAoUExBVEZPUk0oR1RLKSAmJiAhVVNFKEdUSzQpKQogICAgIHBhZ2VDb25maWd1
cmF0aW9uLnZhbGlkYXRpb25NZXNzYWdlQ2xpZW50ID0gbWFrZVVuaXF1ZTxXZWJWYWxpZGF0aW9u
TWVzc2FnZUNsaWVudD4oKnRoaXMpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmYzNlNGQ4OTNhOTJmYmYx
MWI1ZWU1ODVmNDgxMWEwYWRkNTIzNDYxLi41YTk3MDFlOTk2MTFmNmZmMDQwMTI4ZTZkOWVmMjQ3
MTI4NGY2YzdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTItMjkgIENoYW5nU2VvayBP
aCAgPGNoYW5nc2Vva0B3ZWJraXQub3JnPgorCisgICAgICAgIFtHVEtdIEltcGxlbWVudCBmb3Jt
IHZhbGlkYXRpb24gd2l0aCBndGszIHdpZGdldHMgaW4gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDYyOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHNraXAgZmFzdC9mb3Jt
cy92YWxpZGF0aW9uLW1lc3NhZ2UtY2xvbmUuaHRtbCBmb3Igbm93LiBBbHRob3VnaCB0aGlzIHBh
dGNoCisgICAgICAgIGltcGxlbWVudHMgYSB2YWxpZGF0aW9uIGJ1YmJsZSB3aXRoIGEgbmF0aXZl
IHdpZGdldCwgcmVsYXRlZCB0ZXN0cyBjYW5ub3QgYmUgZW5hYmxlZAorICAgICAgICBkdWUgdG8g
bWlzc2luZyBKUyBBUElzIGZvciB0aGUgVUkgc2NyaXB0IGNvbnRyb2xsZXIgKGUuZy4sIGNvbnRl
bnRzT2ZVc2VySW50ZXJmYWNlSXRlbSkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4
cGVjdGF0aW9uczogU2tpcCBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1jbG9uZS5odG1s
CisKIDIwMjEtMTItMjMgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFJFR1JFU1NJT04oQ29udGFpbm1lbnQpIG51bGxwdHIgZGVyZWYgaW4gUmVuZGVyQm94OjpzdHls
ZURpZENoYW5nZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCBhOWQ1NGFlZmVmZGVjYWI5MjMxZjBjYzdjNGJmZjYzYmQ2MjJmZGQwLi43NTk4YzBhNDkxOWJi
MmRjMDYwYzljMjAwODlhZTdkNmNlNGYwMzUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtNjg3LDYgKzY4Nyw3IEBAIHdlYmtpdC5vcmcvYi8xNjc1Nzkg
ZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2Utb24tY2hlY2tib3guaHRtbCBbIFNraXAgXQog
d2Via2l0Lm9yZy9iLzE2NzU3OSBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1vbi1saXN0
Ym94Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNjc1NzkgZmFzdC9mb3Jtcy92YWxpZGF0
aW9uLW1lc3NhZ2Utb24tbWVudWxpc3QuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE2NzU3
OSBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1vbi1yYWRpby5odG1sIFsgU2tpcCBdCit3
ZWJraXQub3JnL2IvMTY3NTc5IGZhc3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNzYWdlLWNsb25lLmh0
bWwgWyBTa2lwIF0KIAogd2Via2l0Lm9yZy9iLzEzNzA5NiBzdmcvVzNDLVNWRy0xLjEvdGV4dC1h
bHRnbHlwaC0wMS1iLnN2ZyBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzEzNzA5NiBzdmcvY3Vz
dG9tL2FsdGdseXBoLnN2ZyBbIEZhaWx1cmUgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448086</attachid>
            <date>2021-12-29 18:03:01 -0800</date>
            <delta_ts>2022-01-17 00:43:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234629-20211229210300.patch</filename>
            <type>text/plain</type>
            <size>19636</size>
            <attacher name="ChangSeok Oh">changseok</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzkyMGYzYmZiNDcwOTEz
MGM1OGZlMjEyYTIwODZhZjk2ZDcwMGVjOC4uOTljZDA3MjgwN2I0YjFkYTFhNWVmNzNmYTliYzA0
OTkxMGE0YTk5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTEyLTI5ICBDaGFu
Z1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Via2l0Lm9yZz4KKworICAgICAgICBbR1RLXSBJbXBsZW1l
bnQgZm9ybSB2YWxpZGF0aW9uIHdpdGggZ3RrMyB3aWRnZXRzIGluIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ2MjkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5n
ZSByZS1pbXBsZW1lbnRzIGZvcm0gdmFsaWRhdGlvbiB3aXRoIGd0azMgd2lkZ2V0cyBpbiB0aGUg
VUkgcHJvY2Vzcy4KKyAgICAgICAgVGhlIGN1cnJlbnQgZm9ybSB2YWxpZGF0aW9uIGlzIGltcGxl
bWVudGVkIGJ5IHVzaW5nIHNoYWRvdyBET00gaW4gdGhlIHdlYiBwcm9jZXNzLgorICAgICAgICBU
aGUgb3ZlcmFsbCBkZXNpZ24gaXMgc2ltaWxhciB0byB0aGF0IG9mIG1hYyBwb3J0IGJ1dCB0aGUg
Z3RrIHBvcnQgYWRkcworICAgICAgICBhIGNhbGxiYWNrIG9mIHdlYmtpdFdlYlZpZXdCYXNlU2V0
U2hvdWxkTm90aWZ5Rm9jdXNFdmVudHMgdG8gV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZQorICAg
ICAgICB0byBzdXBwcmVzcyBhIGZvY3VzIGV2ZW50IHRyaWdnZXJlZCBieSB0aGUgcG9wb3ZlciB3
aWRnZXQuIE90aGVyd2lzZSwgdGhlIG5hdGl2ZQorICAgICAgICBidWJibGUgZG9lcyBub3QgZGlz
cGxheSBwcm9wZXJseS4KKyAgICAgICAgVGhpcyBjaGFuZ2UgZG9lcyBub3Qgc3VwcG9ydCBndGs0
IHlldC4gQSBmb2xsb3ctdXAgcGF0Y2ggd2lsbCBhZGQgdGhlIGd0azQgc3VwcG9ydC4KKworICAg
ICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSBleGlzdGluZyB0ZXN0cyBjb3ZlciB0aGlzIGNoYW5n
ZS4KKworICAgICAgICAqIFNvdXJjZXNHVEsudHh0OgorICAgICAgICAqIHBsYXRmb3JtL1ZhbGlk
YXRpb25CdWJibGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkYXRpb25CdWJibGU6OmNyZWF0
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1ZhbGlkYXRpb25CdWJibGVHdGsuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkYXRpb25CdWJibGU6OlZhbGlkYXRpb25CdWJibGUp
OgorICAgICAgICAoV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZTo6flZhbGlkYXRpb25CdWJibGUp
OgorICAgICAgICAoV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZTo6aW52YWxpZGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlOjpzaG93UmVsYXRpdmVUbyk6CisKIDIwMjEt
MTItMjMgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJ
T04oQ29udGFpbm1lbnQpIG51bGxwdHIgZGVyZWYgaW4gUmVuZGVyQm94OjpzdHlsZURpZENoYW5n
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCAxZjNmNDk1YWEzN2YyOWQxNjA3YTdiZDIxYTg1NjQwMDZlMThkZDM3Li5m
Yjg5ZGRkMDI4ZTRhOGRlN2JhNTgyZmI3NzllNjE4ZDVmNWIwZGU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM1IEBACisyMDIxLTEyLTI5ICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Via2l0Lm9y
Zz4KKworICAgICAgICBbR1RLXSBJbXBsZW1lbnQgZm9ybSB2YWxpZGF0aW9uIHdpdGggZ3RrMyB3
aWRnZXRzIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzQ2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSByZS1pbXBsZW1lbnRzIGZvcm0gdmFsaWRhdGlv
biB3aXRoIGd0azMgd2lkZ2V0cyBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgVGhlIGN1cnJl
bnQgZm9ybSB2YWxpZGF0aW9uIGlzIGltcGxlbWVudGVkIGJ5IHVzaW5nIHNoYWRvdyBET00gaW4g
dGhlIHdlYiBwcm9jZXNzLgorICAgICAgICBUaGUgb3ZlcmFsbCBkZXNpZ24gaXMgc2ltaWxhciB0
byB0aGF0IG9mIG1hYyBwb3J0IGJ1dCB0aGUgZ3RrIHBvcnQgYWRkcworICAgICAgICBhIGNhbGxi
YWNrIG9mIHdlYmtpdFdlYlZpZXdCYXNlU2V0U2hvdWxkTm90aWZ5Rm9jdXNFdmVudHMgdG8gV2Vi
Q29yZTo6VmFsaWRhdGlvbkJ1YmJsZQorICAgICAgICB0byBzdXBwcmVzcyBhIGZvY3VzIGV2ZW50
IHRyaWdnZXJlZCBieSB0aGUgcG9wb3ZlciB3aWRnZXQuIE90aGVyd2lzZSwgdGhlIG5hdGl2ZQor
ICAgICAgICBidWJibGUgZG9lcyBub3QgZGlzcGxheSBwcm9wZXJseS4KKyAgICAgICAgVGhpcyBj
aGFuZ2UgZG9lcyBub3Qgc3VwcG9ydCBndGs0IHlldC4gQSBmb2xsb3ctdXAgcGF0Y2ggd2lsbCBh
ZGQgdGhlIGd0azQgc3VwcG9ydC4KKyAgICAgICAgVG8gYXZvaWQgY29tcGxhaW50cyBmcm9tIHRo
ZSBndGs0IEVXUywgd2UgZ3VhcmQgaW1wbGVtZW50YXRpb24gb2YgVmFsaWRhdGlvbkJ1YmJsZUd0
aworICAgICAgICB0ZW1wb3JhcmlseSBhbmQgaW5zdGFsbCBwYWdlQ29uZmlndXJhdGlvbi52YWxp
ZGF0aW9uTWVzc2FnZUNsaWVudCBmb3IgZ3RrMyBvbmx5LgorICAgICAgICBUaGUgZ3RrNCBrZWVw
cyB1c2luZyB0aGUgc2hhZG93IERPTSBidWJibGUgdW50aWwgaGF2aW5nIG5hdGl2ZSBidWJibGUg
c3VwcG9ydC4KKworICAgICAgICAqIFNvdXJjZXNHVEsudHh0OgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6OmNyZWF0ZVZhbGlkYXRpb25CdWJibGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z3RrL1BhZ2VDbGllbnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpoaWRlVmFsaWRhdGlvbk1lc3NhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViUGFnZVByb3h5R3RrLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzaG93VmFsaWRhdGlvbk1lc3NhZ2UpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
bV9hcHBIaWdobGlnaHRzVmlzaWJsZSk6CisKIDIwMjEtMTItMjMgIFNpaHVpIExpdSAgPHNpaHVp
X2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgRG9uJ3QgY3JlYXRlIExvY2FsU3RvcmFnZSBkYXRh
YmFzZSBmb3IgcmVhZCBpZiBpdCBkb2VzIG5vdCBleGlzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvU291cmNlc0dUSy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dAppbmRl
eCA0OTE3ODZiNTFkM2VjYWFiMGEwNjE4MzFhZTA2ZTc0NTk4OWNmMzBkLi5lYWQwMTE2NTc1MTQ2
Zjk5MTFhYTExODgxZGFlN2ZhNTVhMTU0MGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzR1RLLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dApAQCAtMTM2
LDYgKzEzNiw3IEBAIHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZVNjcm9sbGJhci5jcHAKIHBsYXRm
b3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5jcHAKIHBsYXRmb3JtL2d0ay9TZWxlY3Rpb25EYXRh
LmNwcAogcGxhdGZvcm0vZ3RrL1RoZW1lR3RrLmNwcAorcGxhdGZvcm0vZ3RrL1ZhbGlkYXRpb25C
dWJibGVHdGsuY3BwCiBwbGF0Zm9ybS9ndGsvV2lkZ2V0R3RrLmNwcAogCiBwbGF0Zm9ybS90ZXh0
L0h5cGhlbmF0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmFs
aWRhdGlvbkJ1YmJsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmFsaWRhdGlvbkJ1YmJs
ZS5oCmluZGV4IDkyNDhkODFkODgxMjE3ODc0ZjFmNGNkMWI2YWE0YzQ2MWIyZGRiMmYuLjY2ZjIz
OTYyYzc4YjRlMjMzY2QwYjA3M2U5YzZkODQxNzM1NWY3NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1ZhbGlkYXRpb25CdWJibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9WYWxpZGF0aW9uQnViYmxlLmgKQEAgLTQ5LDYgKzQ5LDggQEAgdXNpbmcgUGxhdGZv
cm1WaWV3ID0gTlNWaWV3OwogI2VsaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIE9CSkNfQ0xBU1Mg
VUlWaWV3OwogdXNpbmcgUGxhdGZvcm1WaWV3ID0gVUlWaWV3OworI2VsaWYgUExBVEZPUk0oR1RL
KQordXNpbmcgUGxhdGZvcm1WaWV3ID0gR3RrV2lkZ2V0OwogI2Vsc2UKIHVzaW5nIFBsYXRmb3Jt
VmlldyA9IHZvaWQ7CiAjZW5kaWYKQEAgLTYxLDEwICs2MywxOCBAQCBwdWJsaWM6CiAgICAgICAg
IGRvdWJsZSBtaW5pbXVtRm9udFNpemUgeyAwIH07CiAgICAgfTsKIAorI2lmIFBMQVRGT1JNKEdU
SykKKyAgICB1c2luZyBTaG91bGROb3RpZnlGb2N1c0V2ZW50c0NhbGxiYWNrID0gRnVuY3Rpb248
dm9pZChQbGF0Zm9ybVZpZXcqLCBib29sIHNob3VsZE5vdGlmeUZvY3VzRXZlbnRzKT47CisgICAg
c3RhdGljIFJlZjxWYWxpZGF0aW9uQnViYmxlPiBjcmVhdGUoUGxhdGZvcm1WaWV3KiB2aWV3LCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFNldHRpbmdzJiBzZXR0aW5ncywgU2hvdWxkTm90
aWZ5Rm9jdXNFdmVudHNDYWxsYmFjayYmIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgVmFsaWRhdGlvbkJ1YmJsZSh2aWV3LCBtZXNzYWdlLCBzZXR0aW5ncywg
V1RGTW92ZShjYWxsYmFjaykpKTsKKyAgICB9CisjZWxzZQogICAgIHN0YXRpYyBSZWY8VmFsaWRh
dGlvbkJ1YmJsZT4gY3JlYXRlKFBsYXRmb3JtVmlldyogdmlldywgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3MpCiAgICAgewogICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBWYWxpZGF0aW9uQnViYmxlKHZpZXcsIG1lc3NhZ2UsIHNldHRpbmdzKSk7CiAg
ICAgfQorI2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9SVCB+VmFsaWRhdGlvbkJ1YmJsZSgpOwog
CkBAIC03OSw3ICs4OSwxMiBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKKyNpZiBQTEFU
Rk9STShHVEspCisgICAgV0VCQ09SRV9FWFBPUlQgVmFsaWRhdGlvbkJ1YmJsZShQbGF0Zm9ybVZp
ZXcqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFNldHRpbmdzJiwgU2hvdWxkTm90aWZ5
Rm9jdXNFdmVudHNDYWxsYmFjayYmKTsKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKKyNlbHNlCiAg
ICAgV0VCQ09SRV9FWFBPUlQgVmFsaWRhdGlvbkJ1YmJsZShQbGF0Zm9ybVZpZXcqLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFNldHRpbmdzJik7CisjZW5kaWYKIAogICAgIFBsYXRmb3Jt
VmlldyogbV92aWV3OwogICAgIFN0cmluZyBtX21lc3NhZ2U7CkBAIC05MSw2ICsxMDYsOSBAQCBw
cml2YXRlOgogICAgIFJldGFpblB0cjxXZWJWYWxpZGF0aW9uQnViYmxlVGFwUmVjb2duaXplcj4g
bV90YXBSZWNvZ25pemVyOwogICAgIFJldGFpblB0cjxXZWJWYWxpZGF0aW9uQnViYmxlRGVsZWdh
dGU+IG1fcG9wb3ZlckRlbGVnYXRlOwogICAgIFdlYWtPYmpDUHRyPFVJVmlld0NvbnRyb2xsZXI+
IG1fcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyOworI2VsaWYgUExBVEZPUk0oR1RLKQorICAgIEd0
a1dpZGdldCogbV9wb3BvdmVyIHsgbnVsbHB0ciB9OworICAgIFNob3VsZE5vdGlmeUZvY3VzRXZl
bnRzQ2FsbGJhY2sgbV9zaG91bGROb3RpZnlGb2N1c0V2ZW50c0NhbGxiYWNrIHsgbnVsbHB0ciB9
OwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
VmFsaWRhdGlvbkJ1YmJsZUd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvVmFs
aWRhdGlvbkJ1YmJsZUd0ay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjhjMjY5YTEzZDY4OTZlZGEwY2Q1Y2I4
MWY4NTc5YzMwMDNlMWE3MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9WYWxpZGF0aW9uQnViYmxlR3RrLmNwcApAQCAtMCwwICsxLDExOCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiVmFsaWRhdGlvbkJ1YmJsZS5oIgorCisjaWYgUExBVEZPUk0oR1RL
KQorCisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitzdGF0aWMgY29uc3QgZmxvYXQgaG9yaXpvbnRhbE1hcmdpbiA9IDU7CitzdGF0aWMgY29uc3Qg
ZmxvYXQgdmVydGljYWxNYXJnaW4gPSA1Oworc3RhdGljIGNvbnN0IGZsb2F0IG1heExhYmVsV2lk
dGhDaGFycyA9IDQwOworCitWYWxpZGF0aW9uQnViYmxlOjpWYWxpZGF0aW9uQnViYmxlKEd0a1dp
ZGdldCogd2ViVmlldywgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTZXR0aW5ncyYgc2V0
dGluZ3MsIFNob3VsZE5vdGlmeUZvY3VzRXZlbnRzQ2FsbGJhY2smJiBjYWxsYmFjaykKKyAgICA6
IG1fdmlldyh3ZWJWaWV3KQorICAgICwgbV9tZXNzYWdlKG1lc3NhZ2UpCisgICAgLCBtX2ZvbnRT
aXplKHN0ZDo6bWF4KHNldHRpbmdzLm1pbmltdW1Gb250U2l6ZSwgMTEuMCkpCisgICAgLCBtX3No
b3VsZE5vdGlmeUZvY3VzRXZlbnRzQ2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpCit7CisjaWYg
IVVTRShHVEs0KQorICAgIEd0a1dpZGdldCogbGFiZWwgPSBndGtfbGFiZWxfbmV3KG51bGxwdHIp
OworCisgICAgLy8gaHR0cHM6Ly9kb2NzLmd0ay5vcmcvUGFuZ28vcGFuZ29fbWFya3VwLmh0bWwK
KyAgICBHVW5pcXVlUHRyPGdjaGFyPiBtYXJrdXAoZ19tYXJrdXBfcHJpbnRmX2VzY2FwZWQoIjxz
cGFuIGZvbnQ9JyVmJz4lczwvc3Bhbj4iLCBtX2ZvbnRTaXplLCBtZXNzYWdlLnV0ZjgoKS5kYXRh
KCkpKTsKKyAgICBndGtfbGFiZWxfc2V0X21hcmt1cChHVEtfTEFCRUwobGFiZWwpLCBtYXJrdXAu
Z2V0KCkpOworCisgICAgZ3RrX3dpZGdldF9zZXRfaGFsaWduKGxhYmVsLCBHVEtfQUxJR05fU1RB
UlQpOworICAgIGd0a193aWRnZXRfc2V0X3ZhbGlnbihsYWJlbCwgR1RLX0FMSUdOX0NFTlRFUik7
CisKKyAgICBndGtfd2lkZ2V0X3NldF9tYXJnaW5fdG9wKGxhYmVsLCB2ZXJ0aWNhbE1hcmdpbik7
CisgICAgZ3RrX3dpZGdldF9zZXRfbWFyZ2luX2JvdHRvbShsYWJlbCwgdmVydGljYWxNYXJnaW4p
OworICAgIGd0a193aWRnZXRfc2V0X21hcmdpbl9zdGFydChsYWJlbCwgaG9yaXpvbnRhbE1hcmdp
bik7CisgICAgZ3RrX3dpZGdldF9zZXRfbWFyZ2luX2VuZChsYWJlbCwgaG9yaXpvbnRhbE1hcmdp
bik7CisKKyAgICBndGtfbGFiZWxfc2V0X2VsbGlwc2l6ZShHVEtfTEFCRUwobGFiZWwpLCBQQU5H
T19FTExJUFNJWkVfRU5EKTsKKyAgICBndGtfbGFiZWxfc2V0X2xpbmVfd3JhcChHVEtfTEFCRUwo
bGFiZWwpLCBUUlVFKTsKKyAgICBndGtfbGFiZWxfc2V0X2xpbmVzKEdUS19MQUJFTChsYWJlbCks
IDQpOworICAgIGd0a19sYWJlbF9zZXRfbWF4X3dpZHRoX2NoYXJzKEdUS19MQUJFTChsYWJlbCks
IG1heExhYmVsV2lkdGhDaGFycyk7CisKKyAgICBtX3BvcG92ZXIgPSBndGtfcG9wb3Zlcl9uZXco
d2ViVmlldyk7CisgICAgZ3RrX3BvcG92ZXJfc2V0X21vZGFsKEdUS19QT1BPVkVSKG1fcG9wb3Zl
ciksIEZBTFNFKTsKKyAgICBndGtfcG9wb3Zlcl9zZXRfcG9zaXRpb24oR1RLX1BPUE9WRVIobV9w
b3BvdmVyKSwgR1RLX1BPU19UT1ApOworICAgIGd0a19wb3BvdmVyX3NldF9jb25zdHJhaW5fdG8o
R1RLX1BPUE9WRVIobV9wb3BvdmVyKSwgR1RLX1BPUE9WRVJfQ09OU1RSQUlOVF9OT05FKTsKKwor
ICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIobV9wb3BvdmVyKSwgbGFiZWwpOwor
ICAgIGd0a193aWRnZXRfc2hvdyhsYWJlbCk7CisKKyAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBw
ZWQobV9wb3BvdmVyLCAiY2xvc2VkIiwgR19DQUxMQkFDSygrW10oVmFsaWRhdGlvbkJ1YmJsZSog
dmFsaWRhdGlvbkJ1YmJsZSkgeworICAgICAgICB2YWxpZGF0aW9uQnViYmxlLT5pbnZhbGlkYXRl
KCk7CisgICAgfSksIHRoaXMpOworI2VuZGlmCit9CisKK1ZhbGlkYXRpb25CdWJibGU6On5WYWxp
ZGF0aW9uQnViYmxlKCkKK3sKKyAgICBpbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQgVmFsaWRhdGlv
bkJ1YmJsZTo6aW52YWxpZGF0ZSgpCit7CisjaWYgIVVTRShHVEs0KQorICAgIGlmICghbV9wb3Bv
dmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0
X2J5X2RhdGEobV9wb3BvdmVyLCB0aGlzKTsKKworICAgIEd0a1dpZGdldCogd2ViVmlldyA9IGd0
a19wb3BvdmVyX2dldF9yZWxhdGl2ZV90byhHVEtfUE9QT1ZFUihtX3BvcG92ZXIpKTsKKyAgICBn
dGtfd2lkZ2V0X2Rlc3Ryb3kobV9wb3BvdmVyKTsKKyAgICBtX3BvcG92ZXIgPSBudWxscHRyOwor
CisgICAgaWYgKG1fc2hvdWxkTm90aWZ5Rm9jdXNFdmVudHNDYWxsYmFjaykKKyAgICAgICAgbV9z
aG91bGROb3RpZnlGb2N1c0V2ZW50c0NhbGxiYWNrKHdlYlZpZXcsIHRydWUpOworI2VuZGlmCit9
CisKK3ZvaWQgVmFsaWRhdGlvbkJ1YmJsZTo6c2hvd1JlbGF0aXZlVG8oY29uc3QgSW50UmVjdCYg
YW5jaG9yUmVjdCkKK3sKKyNpZiAhVVNFKEdUSzQpCisgICAgaWYgKG1fc2hvdWxkTm90aWZ5Rm9j
dXNFdmVudHNDYWxsYmFjaykKKyAgICAgICAgbV9zaG91bGROb3RpZnlGb2N1c0V2ZW50c0NhbGxi
YWNrKG1fdmlldywgZmFsc2UpOworCisgICAgR2RrUmVjdGFuZ2xlIHJlY3QoYW5jaG9yUmVjdCk7
CisgICAgZ3RrX3BvcG92ZXJfc2V0X3BvaW50aW5nX3RvKEdUS19QT1BPVkVSKG1fcG9wb3Zlciks
ICZyZWN0KTsKKworICAgIGd0a19wb3BvdmVyX3BvcHVwKEdUS19QT1BPVkVSKG1fcG9wb3Zlcikp
OworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBMQVRG
T1JNKEdUSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQgYi9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CmluZGV4IGYyMTI0NmYwMGMxOGYyMzgxZmNlZTczMTdm
OTY0OWYxYjY2MWUzNDIuLjY3ZjgwNDEwZThjOWRmOTY0N2Q3NmIzNzc1Y2ZiY2ZmYzdkM2I2NzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKKysrIGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzR1RLLnR4dApAQCAtNDEzLDYgKzQxMyw4IEBAIFdlYlByb2Nlc3MvSW5zcGVj
dG9yL2d0ay9XZWJJbnNwZWN0b3JVSUd0ay5jcHAKIAogV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dl
Yk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuY3BwCiAKK1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuY3BwCisKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvZ2xpYi9XZWJFZGl0b3JDbGllbnRHTGliLmNwcAogCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L2d0ay9XZWJDb250ZXh0TWVudUNsaWVudEd0ay5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKaW5kZXggMWE5MWM3ZDc4N2Y3
ZDNiODhhMmYwZmNiZDQ4ZWI3MmZlNmJmNTMyYy4uYjg5NTM4YmE4YTIxZGFkNzkwODgwNzJlZGZh
MTFkMmFhMWRmMjA3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9QYWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L0d0a1V0aWxpdGllcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1JlZlB0ckNhaXJvLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9WYWxpZGF0
aW9uQnViYmxlLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBpbGVyLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMjkzLDYg
KzI5NCwxMyBAQCBSZWZQdHI8V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duPiBQYWdlQ2xp
ZW50SW1wbDo6Y3JlYXRlRGF0YUxpc3RTdWdnZXN0aW9ucwogfQogI2VuZGlmCiAKK1JlZjxWYWxp
ZGF0aW9uQnViYmxlPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlVmFsaWRhdGlvbkJ1YmJsZShjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFZhbGlkYXRpb25CdWJibGU6OlNldHRpbmdzJiBzZXR0
aW5ncykKK3sKKyAgICByZXR1cm4gVmFsaWRhdGlvbkJ1YmJsZTo6Y3JlYXRlKG1fdmlld1dpZGdl
dCwgbWVzc2FnZSwgc2V0dGluZ3MsIFtdKEd0a1dpZGdldCogd2ViVmlldywgYm9vbCBzaG91bGRO
b3RpZnlGb2N1c0V2ZW50cykgeworICAgICAgICB3ZWJraXRXZWJWaWV3QmFzZVNldFNob3VsZE5v
dGlmeUZvY3VzRXZlbnRzKFdFQktJVF9XRUJfVklFV19CQVNFKHdlYlZpZXcpLCBzaG91bGROb3Rp
ZnlGb2N1c0V2ZW50cyk7CisgICAgfSk7Cit9CisKIHZvaWQgUGFnZUNsaWVudEltcGw6OmVudGVy
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgbGF5ZXJU
cmVlQ29udGV4dCkKIHsKICAgICB3ZWJraXRXZWJWaWV3QmFzZUVudGVyQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUoV0VCS0lUX1dFQl9WSUVXX0JBU0UobV92aWV3V2lkZ2V0KSwgbGF5ZXJUcmVl
Q29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1Bh
Z2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGll
bnRJbXBsLmgKaW5kZXggOTlkMDk3YWJkZWZiMWU4MzJkM2Y2ZmNkN2JlZjkyMzRiZTFjYTBhOS4u
Y2U4NzNiZGZiZTcxOTRiZTNiODczMzg2MDA0N2JkY2M3ZDJlN2M3ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaApAQCAtMTAxLDYgKzEw
MSw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCiAgICAgUmVmUHRy
PFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bj4gY3JlYXRlRGF0YUxpc3RTdWdnZXN0aW9u
c0Ryb3Bkb3duKFdlYlBhZ2VQcm94eSYpIG92ZXJyaWRlOwogI2VuZGlmCisgICAgUmVmPFdlYkNv
cmU6OlZhbGlkYXRpb25CdWJibGU+IGNyZWF0ZVZhbGlkYXRpb25CdWJibGUoY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBXZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlOjpTZXR0aW5ncyYpIGZp
bmFsOwogICAgIHZvaWQgc2VsZWN0aW9uRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAgICAgUmVmUHRy
PFZpZXdTbmFwc2hvdD4gdGFrZVZpZXdTbmFwc2hvdChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Oklu
dFJlY3Q+JiYpIG92ZXJyaWRlOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggNWI1MjlmZmQ4YzIyZDZkZTAzMmNjODllYTcwOWIx
MmMzNzhiMTM0MC4uYjE0ZTQxMTMyNTI5Y2VmZGM4NDk1ZTM4Zjc1NWM1MDRiMDc0MWIzMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMzg3LDcgKzM4Nyw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIFJlZlB0cjxXZWJEYXRlVGltZVBpY2tlcj4gY3JlYXRlRGF0ZVRpbWVQ
aWNrZXIoV2ViUGFnZVByb3h5JikgPSAwOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkK
KyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKQogICAgIHZpcnR1YWwgUmVmPFdl
YkNvcmU6OlZhbGlkYXRpb25CdWJibGU+IGNyZWF0ZVZhbGlkYXRpb25CdWJibGUoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBXZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlOjpTZXR0aW5ncyYp
ID0gMDsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApp
bmRleCBiNzkwMzI5NTIyMWQ3MWQ5NzlmNDhiNmQ2NmY2ZmFhNzc1MTI3YjAyLi45ODVlMWRmY2Y2
MjY4MWRhMTE1ZTlhZDMzNDlkZjA3ZjE3YjVlMjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTk5MDIsNyArOTkwMiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpzZXRVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VM
YXlvdXRECiAKIHZvaWQgV2ViUGFnZVByb3h5OjpoaWRlVmFsaWRhdGlvbk1lc3NhZ2UoKQogewot
I2lmIFBMQVRGT1JNKENPQ09BKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEsp
CiAgICAgbV92YWxpZGF0aW9uQnViYmxlID0gbnVsbHB0cjsKICNlbmRpZgogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA2NmI0MTI2OTFjZjc0NDcxMTQ0ODAxNGQ1
ODk5MzdmNjlmNjg5N2UwLi5kMmNmYjk3MjVmMjIwZmU2MmM5MzliMzAxNzJkMzAyNjY4MDYwM2E1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTYyMSw3ICsxNjIx
LDcgQEAgcHVibGljOgogICAgIC8vIEZvcm0gdmFsaWRhdGlvbiBtZXNzYWdlcy4KICAgICB2b2lk
IHNob3dWYWxpZGF0aW9uTWVzc2FnZShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBhbmNob3JDbGll
bnRSZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogICAgIHZvaWQgaGlkZVZhbGlkYXRpb25N
ZXNzYWdlKCk7Ci0jaWYgUExBVEZPUk0oQ09DT0EpCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBM
QVRGT1JNKEdUSykKICAgICBXZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlKiB2YWxpZGF0aW9uQnVi
YmxlKCkgY29uc3QgeyByZXR1cm4gbV92YWxpZGF0aW9uQnViYmxlLmdldCgpOyB9IC8vIEZvciB0
ZXN0aW5nLgogI2VuZGlmCiAKQEAgLTI4NzksNyArMjg3OSw3IEBAIHByaXZhdGU6CiAjaWYgRU5B
QkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCiAgICAgUmVmUHRyPFdlYkRhdGVUaW1lUGlj
a2VyPiBtX2RhdGVUaW1lUGlja2VyOwogI2VuZGlmCi0jaWYgUExBVEZPUk0oQ09DT0EpCisjaWYg
UExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKICAgICBSZWZQdHI8V2ViQ29yZTo6VmFs
aWRhdGlvbkJ1YmJsZT4gbV92YWxpZGF0aW9uQnViYmxlOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA5NDJjOTNk
ZDJmOTI2OTI1ZGM4NDNmZGE3OTY4NDRkNDg3MTI5MDA1Li43NmUxNTg3ZWFlZTNkZGE4Nzg2MDBl
MzUyMjJmNTE2MWEyMGE5NzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC01Nyw3ICs1Nyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBh
Z2VQcm94eSB7CiAgICAgQWNjZXNzaWJpbGl0eVNjcmVlblRvUm9vdFZpZXcoV2ViQ29yZTo6SW50
UG9pbnQgc2NyZWVuUG9pbnQpIC0+IChXZWJDb3JlOjpJbnRQb2ludCB3aW5kb3dQb2ludCkgU3lu
Y2hyb25vdXMKICAgICBSb290Vmlld1RvQWNjZXNzaWJpbGl0eVNjcmVlbihXZWJDb3JlOjpJbnRS
ZWN0IHJlY3QpIC0+IChXZWJDb3JlOjpJbnRSZWN0IHNjcmVlbkZyYW1lKSBTeW5jaHJvbm91cwog
Ci0jaWYgUExBVEZPUk0oQ09DT0EpCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdU
SykKICAgICBTaG93VmFsaWRhdGlvbk1lc3NhZ2UoV2ViQ29yZTo6SW50UmVjdCBhbmNob3JSZWN0
LCBTdHJpbmcgbWVzc2FnZSkKICAgICBIaWRlVmFsaWRhdGlvbk1lc3NhZ2UoKQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUGFnZVByb3h5R3RrLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQYWdlUHJveHlHdGsuY3BwCmluZGV4
IDkxZWYyMTdiOWQyZDgxNWJmMDVhYTdhNTAwYmU0MmVmZTAzM2VkNzYuLjMwNWUyNWU0ZWJjNDVm
YTBmMDQwOGEwOWY3YzE4YTY2Y2QyOGUyZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2d0ay9XZWJQYWdlUHJveHlHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2d0ay9XZWJQYWdlUHJveHlHdGsuY3BwCkBAIC04NSw2ICs4NSwxMiBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6c2hvd0Vtb2ppUGlja2VyKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNhcmV0UmVj
dCwgQ29tcGxldGlvbgogICAgIHdlYmtpdFdlYlZpZXdCYXNlU2hvd0Vtb2ppQ2hvb3NlcihXRUJL
SVRfV0VCX1ZJRVdfQkFTRSh2aWV3V2lkZ2V0KCkpLCBjYXJldFJlY3QsIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnNob3dWYWxpZGF0aW9uTWVz
c2FnZShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBhbmNob3JDbGllbnRSZWN0LCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpCit7CisgICAgbV92YWxpZGF0aW9uQnViYmxlID0gcGFnZUNsaWVudCgpLmNy
ZWF0ZVZhbGlkYXRpb25CdWJibGUobWVzc2FnZSwgeyBtX3ByZWZlcmVuY2VzLT5taW5pbXVtRm9u
dFNpemUoKSB9KTsKKyAgICBtX3ZhbGlkYXRpb25CdWJibGUtPnNob3dSZWxhdGl2ZVRvKGFuY2hv
ckNsaWVudFJlY3QpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2VuZE1lc3NhZ2VUb1dlYlZp
ZXdXaXRoUmVwbHkoVXNlck1lc3NhZ2UmJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFVzZXJNZXNzYWdlJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghV0VCS0lU
X0lTX1dFQl9WSUVXKHZpZXdXaWRnZXQoKSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggOTQyZWRjNjIzYTRlNjUzYmIxODhhZWUwNTA2NDRh
M2Y0YTAzMmU4OS4uNjU1NWMxODE0MTUyZjhkMTZkNWQ5YTVlODcyMDdlZjliNzU2ZDY1ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTYxMSw3
ICs2MTEsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24u
c3BlZWNoU3ludGhlc2lzQ2xpZW50ID0gbWFrZVVuaXF1ZTxXZWJTcGVlY2hTeW50aGVzaXNDbGll
bnQ+KCp0aGlzKTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ09DT0EpCisjaWYgUExBVEZPUk0o
Q09DT0EpIHx8IChQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkpCiAgICAgcGFnZUNvbmZpZ3Vy
YXRpb24udmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQgPSBtYWtlVW5pcXVlPFdlYlZhbGlkYXRpb25N
ZXNzYWdlQ2xpZW50PigqdGhpcyk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZjM2U0ZDg5M2E5MmZiZjEx
YjVlZTU4NWY0ODExYTBhZGQ1MjM0NjEuLjVhOTcwMWU5OTYxMWY2ZmYwNDAxMjhlNmQ5ZWYyNDcx
Mjg0ZjZjN2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0xMi0yOSAgQ2hhbmdTZW9rIE9o
ICA8Y2hhbmdzZW9rQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0dUS10gSW1wbGVtZW50IGZvcm0g
dmFsaWRhdGlvbiB3aXRoIGd0azMgd2lkZ2V0cyBpbiB0aGUgVUkgcHJvY2VzcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NjI5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ugc2tpcCBmYXN0L2Zvcm1z
L3ZhbGlkYXRpb24tbWVzc2FnZS1jbG9uZS5odG1sIGZvciBub3cuIEFsdGhvdWdoIHRoaXMgcGF0
Y2gKKyAgICAgICAgaW1wbGVtZW50cyBhIHZhbGlkYXRpb24gYnViYmxlIHdpdGggYSBuYXRpdmUg
d2lkZ2V0LCByZWxhdGVkIHRlc3RzIGNhbm5vdCBiZSBlbmFibGVkCisgICAgICAgIGR1ZSB0byBt
aXNzaW5nIEpTIEFQSXMgZm9yIHRoZSBVSSBzY3JpcHQgY29udHJvbGxlciAoZS5nLiwgY29udGVu
dHNPZlVzZXJJbnRlcmZhY2VJdGVtKS4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zOiBTa2lwIGZhc3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNzYWdlLWNsb25lLmh0bWwK
KwogMjAyMS0xMi0yMyAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UkVHUkVTU0lPTihDb250YWlubWVudCkgbnVsbHB0ciBkZXJlZiBpbiBSZW5kZXJCb3g6OnN0eWxl
RGlkQ2hhbmdlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IGE5ZDU0YWVmZWZkZWNhYjkyMzFmMGNjN2M0YmZmNjNiZDYyMmZkZDAuLjc1OThjMGE0OTE5YmIy
ZGMwNjBjOWMyMDA4OWFlN2Q2Y2U0ZjAzNTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9U
ZXN0RXhwZWN0YXRpb25zCkBAIC02ODcsNiArNjg3LDcgQEAgd2Via2l0Lm9yZy9iLzE2NzU3OSBm
YXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1vbi1jaGVja2JveC5odG1sIFsgU2tpcCBdCiB3
ZWJraXQub3JnL2IvMTY3NTc5IGZhc3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNzYWdlLW9uLWxpc3Ri
b3guaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE2NzU3OSBmYXN0L2Zvcm1zL3ZhbGlkYXRp
b24tbWVzc2FnZS1vbi1tZW51bGlzdC5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTY3NTc5
IGZhc3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNzYWdlLW9uLXJhZGlvLmh0bWwgWyBTa2lwIF0KK3dl
YmtpdC5vcmcvYi8xNjc1NzkgZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2UtY2xvbmUuaHRt
bCBbIFNraXAgXQogCiB3ZWJraXQub3JnL2IvMTM3MDk2IHN2Zy9XM0MtU1ZHLTEuMS90ZXh0LWFs
dGdseXBoLTAxLWIuc3ZnIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTM3MDk2IHN2Zy9jdXN0
b20vYWx0Z2x5cGguc3ZnIFsgRmFpbHVyZSBdCg==
</data>
<flag name="review"
          id="473880"
          type_id="1"
          status="+"
          setter="cgarcia"
    />
    <flag name="commit-queue"
          id="475357"
          type_id="3"
          status="-"
          setter="cgarcia"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449350</attachid>
            <date>2022-01-17 14:43:08 -0800</date>
            <delta_ts>2022-01-17 15:18:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234629-20220117174307.patch</filename>
            <type>text/plain</type>
            <size>19522</size>
            <attacher name="ChangSeok Oh">changseok</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWNjMDBiZmZkNmRmOWZm
YTg5YTZkMjg3YjFkZGUyYjc3NmRmYjM1NC4uOTE3MjViOWI0NmY1NGYwMWMyNTBjNGU1NzUyNzVh
YzA5MmRkMjUyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIyLTAxLTE3ICBDaGFu
Z1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Via2l0Lm9yZz4KKworICAgICAgICBbR1RLXSBJbXBsZW1l
bnQgZm9ybSB2YWxpZGF0aW9uIHdpdGggZ3RrMyB3aWRnZXRzIGluIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ2MjkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBDYXJsb3MgR2FyY2lhIENhbXBvcy4KKworICAgICAgICBUaGlz
IGNoYW5nZSByZS1pbXBsZW1lbnRzIGZvcm0gdmFsaWRhdGlvbiB3aXRoIGd0azMgd2lkZ2V0cyBp
biB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgVGhlIGN1cnJlbnQgZm9ybSB2YWxpZGF0aW9uIGlz
IGltcGxlbWVudGVkIGJ5IHVzaW5nIHNoYWRvdyBET00gaW4gdGhlIHdlYiBwcm9jZXNzLgorICAg
ICAgICBUaGUgb3ZlcmFsbCBkZXNpZ24gaXMgc2ltaWxhciB0byB0aGF0IG9mIG1hYyBwb3J0IGJ1
dCB0aGUgZ3RrIHBvcnQgYWRkcworICAgICAgICBhIGNhbGxiYWNrIG9mIHdlYmtpdFdlYlZpZXdC
YXNlU2V0U2hvdWxkTm90aWZ5Rm9jdXNFdmVudHMgdG8gV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJs
ZQorICAgICAgICB0byBzdXBwcmVzcyBhIGZvY3VzIGV2ZW50IHRyaWdnZXJlZCBieSB0aGUgcG9w
b3ZlciB3aWRnZXQuIE90aGVyd2lzZSwgdGhlIG5hdGl2ZQorICAgICAgICBidWJibGUgZG9lcyBu
b3QgZGlzcGxheSBwcm9wZXJseS4KKyAgICAgICAgVGhpcyBjaGFuZ2UgZG9lcyBub3Qgc3VwcG9y
dCBndGs0IHlldC4gQSBmb2xsb3ctdXAgcGF0Y2ggd2lsbCBhZGQgdGhlIGd0azQgc3VwcG9ydC4K
KworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSBleGlzdGluZyB0ZXN0cyBjb3ZlciB0aGlz
IGNoYW5nZS4KKworICAgICAgICAqIFNvdXJjZXNHVEsudHh0OgorICAgICAgICAqIHBsYXRmb3Jt
L1ZhbGlkYXRpb25CdWJibGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkYXRpb25CdWJibGU6
OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1ZhbGlkYXRpb25CdWJibGVHdGsuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkYXRpb25CdWJibGU6OlZhbGlkYXRpb25C
dWJibGUpOgorICAgICAgICAoV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZTo6flZhbGlkYXRpb25C
dWJibGUpOgorICAgICAgICAoV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZTo6aW52YWxpZGF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlOjpzaG93UmVsYXRpdmVUbyk6CisK
IDIwMjItMDEtMTcgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZy
YWN0aW9uYWwgdGQgd2lkdGggaXMgbm90IHJlbmRlcmluZyBjb3JyZWN0bHkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
YmZmMWIwZDBlNzljNGUwNzMwNzZiZWJkMjg0ZmJmOTc5ZjI0MGY1OS4uNzkzNTViOTM5NTZlMDM0
NTRjMTY2Y2E1Y2QzY2Y5MzNhMjE1YWIyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAy
Mi0wMS0xNyAgQ2hhbmdTZW9rIE9oICA8Y2hhbmdzZW9rQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
W0dUS10gSW1wbGVtZW50IGZvcm0gdmFsaWRhdGlvbiB3aXRoIGd0azMgd2lkZ2V0cyBpbiB0aGUg
VUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM0NjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9zIEdhcmNpYSBDYW1wb3MuCisK
KyAgICAgICAgVGhpcyBjaGFuZ2UgcmUtaW1wbGVtZW50cyBmb3JtIHZhbGlkYXRpb24gd2l0aCBn
dGszIHdpZGdldHMgaW4gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIFRoZSBjdXJyZW50IGZvcm0g
dmFsaWRhdGlvbiBpcyBpbXBsZW1lbnRlZCBieSB1c2luZyBzaGFkb3cgRE9NIGluIHRoZSB3ZWIg
cHJvY2Vzcy4KKyAgICAgICAgVGhlIG92ZXJhbGwgZGVzaWduIGlzIHNpbWlsYXIgdG8gdGhhdCBv
ZiBtYWMgcG9ydCBidXQgdGhlIGd0ayBwb3J0IGFkZHMKKyAgICAgICAgYSBjYWxsYmFjayBvZiB3
ZWJraXRXZWJWaWV3QmFzZVNldFNob3VsZE5vdGlmeUZvY3VzRXZlbnRzIHRvIFdlYkNvcmU6OlZh
bGlkYXRpb25CdWJibGUKKyAgICAgICAgdG8gc3VwcHJlc3MgYSBmb2N1cyBldmVudCB0cmlnZ2Vy
ZWQgYnkgdGhlIHBvcG92ZXIgd2lkZ2V0LiBPdGhlcndpc2UsIHRoZSBuYXRpdmUKKyAgICAgICAg
YnViYmxlIGRvZXMgbm90IGRpc3BsYXkgcHJvcGVybHkuCisgICAgICAgIFRoaXMgY2hhbmdlIGRv
ZXMgbm90IHN1cHBvcnQgZ3RrNCB5ZXQuIEEgZm9sbG93LXVwIHBhdGNoIHdpbGwgYWRkIHRoZSBn
dGs0IHN1cHBvcnQuCisgICAgICAgIFRvIGF2b2lkIGNvbXBsYWludHMgZnJvbSB0aGUgZ3RrNCBF
V1MsIHdlIGd1YXJkIGltcGxlbWVudGF0aW9uIG9mIFZhbGlkYXRpb25CdWJibGVHdGsKKyAgICAg
ICAgdGVtcG9yYXJpbHkgYW5kIGluc3RhbGwgcGFnZUNvbmZpZ3VyYXRpb24udmFsaWRhdGlvbk1l
c3NhZ2VDbGllbnQgZm9yIGd0azMgb25seS4KKyAgICAgICAgVGhlIGd0azQga2VlcHMgdXNpbmcg
dGhlIHNoYWRvdyBET00gYnViYmxlIHVudGlsIGhhdmluZyBuYXRpdmUgYnViYmxlIHN1cHBvcnQu
CisKKyAgICAgICAgKiBTb3VyY2VzR1RLLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpj
cmVhdGVWYWxpZGF0aW9uQnViYmxlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9QYWdl
Q2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6aGlkZVZhbGlkYXRpb25NZXNzYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYlBhZ2VQcm94eUd0ay5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2hvd1ZhbGlkYXRpb25NZXNzYWdlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fYXBwSGln
aGxpZ2h0c1Zpc2libGUpOgorCiAyMDIyLTAxLTE3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBNYWtlIFNlcnZpY2VXb3JrZXJDbGllbnQuaWQgYSBVVUlEIGlu
c3RlYWQgb2YgYSBzdHJpbmcgZGVyaXZlZCBmcm9tIGEgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNHVEsudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlc0dUSy50eHQKaW5kZXggMWViNTA1N2ZhYzY2ZTBlZGVmYjNlNzNi
YWYxNzkyZWEwMWQ0YTE1OC4uYjVmOGQ4NGYwOGJhNGI4ZDYzMThjYzg2NDgyYTE0N2UwNWRhM2Q0
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0dUSy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvU291cmNlc0dUSy50eHQKQEAgLTEzNCw2ICsxMzQsNyBAQCBwbGF0Zm9ybS9ndGsv
UmVuZGVyVGhlbWVTY3JvbGxiYXIuY3BwCiBwbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsu
Y3BwCiBwbGF0Zm9ybS9ndGsvU2VsZWN0aW9uRGF0YS5jcHAKIHBsYXRmb3JtL2d0ay9UaGVtZUd0
ay5jcHAKK3BsYXRmb3JtL2d0ay9WYWxpZGF0aW9uQnViYmxlR3RrLmNwcAogcGxhdGZvcm0vZ3Rr
L1dpZGdldEd0ay5jcHAKIAogcGxhdGZvcm0vdGV4dC9IeXBoZW5hdGlvbi5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZhbGlkYXRpb25CdWJibGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1ZhbGlkYXRpb25CdWJibGUuaAppbmRleCA5MjQ4ZDgxZDg4MTIxNzg3
NGYxZjRjZDFiNmFhNGM0NjFiMmRkYjJmLi42NmYyMzk2MmM3OGI0ZTIzM2NkMGIwNzNlOWM2ZDg0
MTczNTVmNzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WYWxpZGF0aW9u
QnViYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmFsaWRhdGlvbkJ1YmJsZS5o
CkBAIC00OSw2ICs0OSw4IEBAIHVzaW5nIFBsYXRmb3JtVmlldyA9IE5TVmlldzsKICNlbGlmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiBPQkpDX0NMQVNTIFVJVmlldzsKIHVzaW5nIFBsYXRmb3JtVmll
dyA9IFVJVmlldzsKKyNlbGlmIFBMQVRGT1JNKEdUSykKK3VzaW5nIFBsYXRmb3JtVmlldyA9IEd0
a1dpZGdldDsKICNlbHNlCiB1c2luZyBQbGF0Zm9ybVZpZXcgPSB2b2lkOwogI2VuZGlmCkBAIC02
MSwxMCArNjMsMTggQEAgcHVibGljOgogICAgICAgICBkb3VibGUgbWluaW11bUZvbnRTaXplIHsg
MCB9OwogICAgIH07CiAKKyNpZiBQTEFURk9STShHVEspCisgICAgdXNpbmcgU2hvdWxkTm90aWZ5
Rm9jdXNFdmVudHNDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoUGxhdGZvcm1WaWV3KiwgYm9vbCBz
aG91bGROb3RpZnlGb2N1c0V2ZW50cyk+OworICAgIHN0YXRpYyBSZWY8VmFsaWRhdGlvbkJ1YmJs
ZT4gY3JlYXRlKFBsYXRmb3JtVmlldyogdmlldywgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBTZXR0aW5ncyYgc2V0dGluZ3MsIFNob3VsZE5vdGlmeUZvY3VzRXZlbnRzQ2FsbGJhY2smJiBj
YWxsYmFjaykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZhbGlkYXRpb25C
dWJibGUodmlldywgbWVzc2FnZSwgc2V0dGluZ3MsIFdURk1vdmUoY2FsbGJhY2spKSk7CisgICAg
fQorI2Vsc2UKICAgICBzdGF0aWMgUmVmPFZhbGlkYXRpb25CdWJibGU+IGNyZWF0ZShQbGF0Zm9y
bVZpZXcqIHZpZXcsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU2V0dGluZ3MmIHNldHRp
bmdzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVmFsaWRhdGlvbkJ1YmJs
ZSh2aWV3LCBtZXNzYWdlLCBzZXR0aW5ncykpOwogICAgIH0KKyNlbmRpZgogCiAgICAgV0VCQ09S
RV9FWFBPUlQgflZhbGlkYXRpb25CdWJibGUoKTsKIApAQCAtNzksNyArODksMTIgQEAgcHVibGlj
OgogI2VuZGlmCiAKIHByaXZhdGU6CisjaWYgUExBVEZPUk0oR1RLKQorICAgIFdFQkNPUkVfRVhQ
T1JUIFZhbGlkYXRpb25CdWJibGUoUGxhdGZvcm1WaWV3KiwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBjb25zdCBTZXR0aW5ncyYsIFNob3VsZE5vdGlmeUZvY3VzRXZlbnRzQ2FsbGJhY2smJik7Cisg
ICAgdm9pZCBpbnZhbGlkYXRlKCk7CisjZWxzZQogICAgIFdFQkNPUkVfRVhQT1JUIFZhbGlkYXRp
b25CdWJibGUoUGxhdGZvcm1WaWV3KiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTZXR0
aW5ncyYpOworI2VuZGlmCiAKICAgICBQbGF0Zm9ybVZpZXcqIG1fdmlldzsKICAgICBTdHJpbmcg
bV9tZXNzYWdlOwpAQCAtOTEsNiArMTA2LDkgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8V2Vi
VmFsaWRhdGlvbkJ1YmJsZVRhcFJlY29nbml6ZXI+IG1fdGFwUmVjb2duaXplcjsKICAgICBSZXRh
aW5QdHI8V2ViVmFsaWRhdGlvbkJ1YmJsZURlbGVnYXRlPiBtX3BvcG92ZXJEZWxlZ2F0ZTsKICAg
ICBXZWFrT2JqQ1B0cjxVSVZpZXdDb250cm9sbGVyPiBtX3ByZXNlbnRpbmdWaWV3Q29udHJvbGxl
cjsKKyNlbGlmIFBMQVRGT1JNKEdUSykKKyAgICBHdGtXaWRnZXQqIG1fcG9wb3ZlciB7IG51bGxw
dHIgfTsKKyAgICBTaG91bGROb3RpZnlGb2N1c0V2ZW50c0NhbGxiYWNrIG1fc2hvdWxkTm90aWZ5
Rm9jdXNFdmVudHNDYWxsYmFjayB7IG51bGxwdHIgfTsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1ZhbGlkYXRpb25CdWJibGVHdGsuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1ZhbGlkYXRpb25CdWJibGVHdGsuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjNjN2JlNGE0OTYwNGYyZWE5NDI4NzAyZDhkOTRlNzY2ZGNjYjY2MjAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvVmFsaWRhdGlvbkJ1YmJsZUd0
ay5jcHAKQEAgLTAsMCArMSwxMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgSWdhbGlh
IFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlZhbGlkYXRp
b25CdWJibGUuaCIKKworI2lmIFBMQVRGT1JNKEdUSykKKworI2luY2x1ZGUgPGdsaWIuaD4KKyNp
bmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIGNvbnN0IGZsb2F0IGhvcml6
b250YWxNYXJnaW4gPSA1Oworc3RhdGljIGNvbnN0IGZsb2F0IHZlcnRpY2FsTWFyZ2luID0gNTsK
K3N0YXRpYyBjb25zdCBmbG9hdCBtYXhMYWJlbFdpZHRoQ2hhcnMgPSA0MDsKK3N0YXRpYyBjb25z
dCBmbG9hdCBtaW5Gb250U2l6ZSA9IDExOworCitWYWxpZGF0aW9uQnViYmxlOjpWYWxpZGF0aW9u
QnViYmxlKEd0a1dpZGdldCogd2ViVmlldywgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBT
ZXR0aW5ncyYgc2V0dGluZ3MsIFNob3VsZE5vdGlmeUZvY3VzRXZlbnRzQ2FsbGJhY2smJiBjYWxs
YmFjaykKKyAgICA6IG1fdmlldyh3ZWJWaWV3KQorICAgICwgbV9tZXNzYWdlKG1lc3NhZ2UpCisg
ICAgLCBtX2ZvbnRTaXplKHN0ZDo6bWF4KHNldHRpbmdzLm1pbmltdW1Gb250U2l6ZSwgbWluRm9u
dFNpemUpKQorICAgICwgbV9zaG91bGROb3RpZnlGb2N1c0V2ZW50c0NhbGxiYWNrKFdURk1vdmUo
Y2FsbGJhY2spKQoreworI2lmICFVU0UoR1RLNCkKKyAgICBHdGtXaWRnZXQqIGxhYmVsID0gZ3Rr
X2xhYmVsX25ldyhudWxscHRyKTsKKworICAgIC8vIGh0dHBzOi8vZG9jcy5ndGsub3JnL1Bhbmdv
L3BhbmdvX21hcmt1cC5odG1sCisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gbWFya3VwKGdfbWFya3Vw
X3ByaW50Zl9lc2NhcGVkKCI8c3BhbiBmb250PSclZic+JXM8L3NwYW4+IiwgbV9mb250U2l6ZSwg
bWVzc2FnZS51dGY4KCkuZGF0YSgpKSk7CisgICAgZ3RrX2xhYmVsX3NldF9tYXJrdXAoR1RLX0xB
QkVMKGxhYmVsKSwgbWFya3VwLmdldCgpKTsKKworICAgIGd0a193aWRnZXRfc2V0X2hhbGlnbihs
YWJlbCwgR1RLX0FMSUdOX1NUQVJUKTsKKyAgICBndGtfd2lkZ2V0X3NldF92YWxpZ24obGFiZWws
IEdUS19BTElHTl9DRU5URVIpOworCisgICAgZ3RrX3dpZGdldF9zZXRfbWFyZ2luX3RvcChsYWJl
bCwgdmVydGljYWxNYXJnaW4pOworICAgIGd0a193aWRnZXRfc2V0X21hcmdpbl9ib3R0b20obGFi
ZWwsIHZlcnRpY2FsTWFyZ2luKTsKKyAgICBndGtfd2lkZ2V0X3NldF9tYXJnaW5fc3RhcnQobGFi
ZWwsIGhvcml6b250YWxNYXJnaW4pOworICAgIGd0a193aWRnZXRfc2V0X21hcmdpbl9lbmQobGFi
ZWwsIGhvcml6b250YWxNYXJnaW4pOworCisgICAgZ3RrX2xhYmVsX3NldF9lbGxpcHNpemUoR1RL
X0xBQkVMKGxhYmVsKSwgUEFOR09fRUxMSVBTSVpFX0VORCk7CisgICAgZ3RrX2xhYmVsX3NldF9s
aW5lX3dyYXAoR1RLX0xBQkVMKGxhYmVsKSwgVFJVRSk7CisgICAgZ3RrX2xhYmVsX3NldF9saW5l
cyhHVEtfTEFCRUwobGFiZWwpLCA0KTsKKyAgICBndGtfbGFiZWxfc2V0X21heF93aWR0aF9jaGFy
cyhHVEtfTEFCRUwobGFiZWwpLCBtYXhMYWJlbFdpZHRoQ2hhcnMpOworCisgICAgbV9wb3BvdmVy
ID0gZ3RrX3BvcG92ZXJfbmV3KHdlYlZpZXcpOworICAgIGd0a19wb3BvdmVyX3NldF9tb2RhbChH
VEtfUE9QT1ZFUihtX3BvcG92ZXIpLCBGQUxTRSk7CisgICAgZ3RrX3BvcG92ZXJfc2V0X3Bvc2l0
aW9uKEdUS19QT1BPVkVSKG1fcG9wb3ZlciksIEdUS19QT1NfVE9QKTsKKyAgICBndGtfcG9wb3Zl
cl9zZXRfY29uc3RyYWluX3RvKEdUS19QT1BPVkVSKG1fcG9wb3ZlciksIEdUS19QT1BPVkVSX0NP
TlNUUkFJTlRfTk9ORSk7CisKKyAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKG1f
cG9wb3ZlciksIGxhYmVsKTsKKyAgICBndGtfd2lkZ2V0X3Nob3cobGFiZWwpOworCisgICAgZ19z
aWduYWxfY29ubmVjdF9zd2FwcGVkKG1fcG9wb3ZlciwgImNsb3NlZCIsIEdfQ0FMTEJBQ0soK1td
KFZhbGlkYXRpb25CdWJibGUqIHZhbGlkYXRpb25CdWJibGUpIHsKKyAgICAgICAgdmFsaWRhdGlv
bkJ1YmJsZS0+aW52YWxpZGF0ZSgpOworICAgIH0pLCB0aGlzKTsKKyNlbmRpZgorfQorCitWYWxp
ZGF0aW9uQnViYmxlOjp+VmFsaWRhdGlvbkJ1YmJsZSgpCit7CisgICAgaW52YWxpZGF0ZSgpOwor
fQorCit2b2lkIFZhbGlkYXRpb25CdWJibGU6OmludmFsaWRhdGUoKQoreworI2lmICFVU0UoR1RL
NCkKKyAgICBpZiAoIW1fcG9wb3ZlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgZ19zaWduYWxf
aGFuZGxlcnNfZGlzY29ubmVjdF9ieV9kYXRhKG1fcG9wb3ZlciwgdGhpcyk7CisKKyAgICBndGtf
d2lkZ2V0X2Rlc3Ryb3kobV9wb3BvdmVyKTsKKyAgICBtX3BvcG92ZXIgPSBudWxscHRyOworCisg
ICAgbV9zaG91bGROb3RpZnlGb2N1c0V2ZW50c0NhbGxiYWNrKG1fdmlldywgdHJ1ZSk7CisjZW5k
aWYKK30KKwordm9pZCBWYWxpZGF0aW9uQnViYmxlOjpzaG93UmVsYXRpdmVUbyhjb25zdCBJbnRS
ZWN0JiBhbmNob3JSZWN0KQoreworI2lmICFVU0UoR1RLNCkKKyAgICBtX3Nob3VsZE5vdGlmeUZv
Y3VzRXZlbnRzQ2FsbGJhY2sobV92aWV3LCBmYWxzZSk7CisKKyAgICBHZGtSZWN0YW5nbGUgcmVj
dChhbmNob3JSZWN0KTsKKyAgICBndGtfcG9wb3Zlcl9zZXRfcG9pbnRpbmdfdG8oR1RLX1BPUE9W
RVIobV9wb3BvdmVyKSwgJnJlY3QpOworCisgICAgZ3RrX3BvcG92ZXJfcG9wdXAoR1RLX1BPUE9W
RVIobV9wb3BvdmVyKSk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gUExBVEZPUk0oR1RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
R1RLLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKaW5kZXggZjIxMjQ2ZjAwYzE4
ZjIzODFmY2VlNzMxN2Y5NjQ5ZjFiNjYxZTM0Mi4uNjdmODA0MTBlOGM5ZGY5NjQ3ZDc2YjM3NzVj
ZmJjZmZjN2QzYjY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CkBAIC00MTMsNiArNDEzLDggQEAgV2Vi
UHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1dlYkluc3BlY3RvclVJR3RrLmNwcAogCiBXZWJQcm9jZXNz
L01lZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHAKIAorV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5jcHAKKwogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9nbGliL1dlYkVkaXRvckNsaWVudEdMaWIuY3BwCiAKIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkNvbnRleHRNZW51Q2xpZW50R3RrLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcAppbmRl
eCAxYTkxYzdkNzg3ZjdkM2I4OGEyZjBmY2JkNDhlYjcyZmU2YmY1MzJjLi5iODk1MzhiYThhMjFk
YWQ3OTA4ODA3MmVkZmExMWQyYWExZGYyMDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtNTEsNiArNTEsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvR3RrVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBs
ZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVmUHRyQ2Fpcm8uaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1ZhbGlkYXRpb25CdWJibGUuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGlsZXIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CkBAIC0yOTMsNiArMjk0LDEzIEBAIFJlZlB0cjxXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJv
cGRvd24+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVEYXRhTGlzdFN1Z2dlc3Rpb25zCiB9CiAjZW5k
aWYKIAorUmVmPFZhbGlkYXRpb25CdWJibGU+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVWYWxpZGF0
aW9uQnViYmxlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgVmFsaWRhdGlvbkJ1YmJsZTo6
U2V0dGluZ3MmIHNldHRpbmdzKQoreworICAgIHJldHVybiBWYWxpZGF0aW9uQnViYmxlOjpjcmVh
dGUobV92aWV3V2lkZ2V0LCBtZXNzYWdlLCBzZXR0aW5ncywgW10oR3RrV2lkZ2V0KiB3ZWJWaWV3
LCBib29sIHNob3VsZE5vdGlmeUZvY3VzRXZlbnRzKSB7CisgICAgICAgIHdlYmtpdFdlYlZpZXdC
YXNlU2V0U2hvdWxkTm90aWZ5Rm9jdXNFdmVudHMoV0VCS0lUX1dFQl9WSUVXX0JBU0Uod2ViVmll
dyksIHNob3VsZE5vdGlmeUZvY3VzRXZlbnRzKTsKKyAgICB9KTsKK30KKwogdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVD
b250ZXh0JiBsYXllclRyZWVDb250ZXh0KQogewogICAgIHdlYmtpdFdlYlZpZXdCYXNlRW50ZXJB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShXRUJLSVRfV0VCX1ZJRVdfQkFTRShtX3ZpZXdXaWRn
ZXQpLCBsYXllclRyZWVDb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvUGFnZUNsaWVudEltcGwuaAppbmRleCA5OWQwOTdhYmRlZmIxZTgzMmQzZjZmY2Q3YmVm
OTIzNGJlMWNhMGE5Li5jZTg3M2JkZmJlNzE5NGJlM2I4NzMzODYwMDQ3YmRjYzdkMmU3YzdlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBs
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5o
CkBAIC0xMDEsNiArMTAxLDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVO
VCkKICAgICBSZWZQdHI8V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duPiBjcmVhdGVEYXRh
TGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24oV2ViUGFnZVByb3h5Jikgb3ZlcnJpZGU7CiAjZW5kaWYK
KyAgICBSZWY8V2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZT4gY3JlYXRlVmFsaWRhdGlvbkJ1YmJs
ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdlYkNvcmU6OlZhbGlkYXRpb25CdWJibGU6
OlNldHRpbmdzJikgZmluYWw7CiAgICAgdm9pZCBzZWxlY3Rpb25EaWRDaGFuZ2UoKSBvdmVycmlk
ZTsKICAgICBSZWZQdHI8Vmlld1NuYXBzaG90PiB0YWtlVmlld1NuYXBzaG90KHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6SW50UmVjdD4mJikgb3ZlcnJpZGU7CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9S
VCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCA4MmQ5ZGNmYTU2YTljODlm
YzNkZjFhOGZmMzY3ZDg0MzMyNDUyMDk5Li41MTY5ZDcxZjU4NDBiMWEyYWM0MzI0OTY4M2FlMzhh
ZGU3YmIxMThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0zODcsNyAr
Mzg3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVmUHRyPFdlYkRhdGVUaW1lUGlja2VyPiBj
cmVhdGVEYXRlVGltZVBpY2tlcihXZWJQYWdlUHJveHkmKSA9IDA7CiAjZW5kaWYKIAotI2lmIFBM
QVRGT1JNKENPQ09BKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspCiAgICAg
dmlydHVhbCBSZWY8V2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZT4gY3JlYXRlVmFsaWRhdGlvbkJ1
YmJsZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdlYkNvcmU6OlZhbGlkYXRpb25CdWJi
bGU6OlNldHRpbmdzJikgPSAwOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCmluZGV4IDYwMjczYzEwMGJkNWFjOGYwZTZjN2U3NGE1NjkyNTdiYzlmN2Nj
NDQuLmY0YjMxMGZhY2I3ZDEwNDVmNDNiYjU2ZmRmMDMyMzNhNmRlN2I2NzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtOTkxMyw3ICs5OTEzLDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnNldFVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oV2ViQ29yZTo6
VXNlckludGVyZmFjZUxheW91dEQKIAogdm9pZCBXZWJQYWdlUHJveHk6OmhpZGVWYWxpZGF0aW9u
TWVzc2FnZSgpCiB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8
IFBMQVRGT1JNKEdUSykKICAgICBtX3ZhbGlkYXRpb25CdWJibGUgPSBudWxscHRyOwogI2VuZGlm
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDk1YjVhNzM2ZDAx
MWM3OGQwMWM3OGFhNTBjZDNlYTQzNmQ5YTY4YmUuLjk1OWY2NTE1ZWJkM2NiYjQ3NWMwYWUwZGJl
ODM5YmE5YjRmYjlmYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBA
IC0xNjEwLDcgKzE2MTAsNyBAQCBwdWJsaWM6CiAgICAgLy8gRm9ybSB2YWxpZGF0aW9uIG1lc3Nh
Z2VzLgogICAgIHZvaWQgc2hvd1ZhbGlkYXRpb25NZXNzYWdlKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIGFuY2hvckNsaWVudFJlY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CiAgICAgdm9pZCBo
aWRlVmFsaWRhdGlvbk1lc3NhZ2UoKTsKLSNpZiBQTEFURk9STShDT0NPQSkKKyNpZiBQTEFURk9S
TShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKQogICAgIFdlYkNvcmU6OlZhbGlkYXRpb25CdWJibGUq
IHZhbGlkYXRpb25CdWJibGUoKSBjb25zdCB7IHJldHVybiBtX3ZhbGlkYXRpb25CdWJibGUuZ2V0
KCk7IH0gLy8gRm9yIHRlc3RpbmcuCiAjZW5kaWYKIApAQCAtMjg2NSw3ICsyODY1LDcgQEAgcHJp
dmF0ZToKICNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKICAgICBSZWZQdHI8
V2ViRGF0ZVRpbWVQaWNrZXI+IG1fZGF0ZVRpbWVQaWNrZXI7CiAjZW5kaWYKLSNpZiBQTEFURk9S
TShDT0NPQSkKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKQogICAgIFJlZlB0
cjxXZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlPiBtX3ZhbGlkYXRpb25CdWJibGU7CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CmluZGV4IDFmMDAwMWQwNWFhZjEzNDM2MzhlMGVlNzk4NWJmOTdkNDU4NzMzNTguLmIxNzAzZjY3
YjA0MjY3YzA1MGIwNWY3YjQ3Y2Y3MjUxOWM3NjIyZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTU3LDcgKzU3LDcgQEAgbWVz
c2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBBY2Nlc3NpYmlsaXR5U2NyZWVuVG9Sb290Vmll
dyhXZWJDb3JlOjpJbnRQb2ludCBzY3JlZW5Qb2ludCkgLT4gKFdlYkNvcmU6OkludFBvaW50IHdp
bmRvd1BvaW50KSBTeW5jaHJvbm91cwogICAgIFJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2NyZWVu
KFdlYkNvcmU6OkludFJlY3QgcmVjdCkgLT4gKFdlYkNvcmU6OkludFJlY3Qgc2NyZWVuRnJhbWUp
IFN5bmNocm9ub3VzCiAKLSNpZiBQTEFURk9STShDT0NPQSkKKyNpZiBQTEFURk9STShDT0NPQSkg
fHwgUExBVEZPUk0oR1RLKQogICAgIFNob3dWYWxpZGF0aW9uTWVzc2FnZShXZWJDb3JlOjpJbnRS
ZWN0IGFuY2hvclJlY3QsIFN0cmluZyBtZXNzYWdlKQogICAgIEhpZGVWYWxpZGF0aW9uTWVzc2Fn
ZSgpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQ
YWdlUHJveHlHdGsuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBhZ2VQcm94
eUd0ay5jcHAKaW5kZXggOTFlZjIxN2I5ZDJkODE1YmYwNWFhN2E1MDBiZTQyZWZlMDMzZWQ3Ni4u
MzA1ZTI1ZTRlYmM0NWZhMGYwNDA4YTA5ZjdjMThhNjZjZDI4ZTJlNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBhZ2VQcm94eUd0ay5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBhZ2VQcm94eUd0ay5jcHAKQEAgLTg1LDYgKzg1LDEy
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzaG93RW1vamlQaWNrZXIoY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgY2FyZXRSZWN0LCBDb21wbGV0aW9uCiAgICAgd2Via2l0V2ViVmlld0Jhc2VTaG93RW1v
amlDaG9vc2VyKFdFQktJVF9XRUJfVklFV19CQVNFKHZpZXdXaWRnZXQoKSksIGNhcmV0UmVjdCwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6c2hv
d1ZhbGlkYXRpb25NZXNzYWdlKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGFuY2hvckNsaWVudFJl
Y3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBtX3ZhbGlkYXRpb25CdWJibGUgPSBw
YWdlQ2xpZW50KCkuY3JlYXRlVmFsaWRhdGlvbkJ1YmJsZShtZXNzYWdlLCB7IG1fcHJlZmVyZW5j
ZXMtPm1pbmltdW1Gb250U2l6ZSgpIH0pOworICAgIG1fdmFsaWRhdGlvbkJ1YmJsZS0+c2hvd1Jl
bGF0aXZlVG8oYW5jaG9yQ2xpZW50UmVjdCk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpzZW5k
TWVzc2FnZVRvV2ViVmlld1dpdGhSZXBseShVc2VyTWVzc2FnZSYmIG1lc3NhZ2UsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoVXNlck1lc3NhZ2UmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgaWYgKCFXRUJLSVRfSVNfV0VCX1ZJRVcodmlld1dpZGdldCgpKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBiYjY1Y2Q5NDE5ZWY5Nzc3
YzU5MzBlM2UxMzQwMDcwYzFiZmNhYzVmLi4zN2Y4ZDVlOWZlYTlmYWRlZTI5YmVkYmNkNDg4MjFj
MzUzYTRiYTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcApAQCAtNjA5LDcgKzYwOSw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIg
cGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICBwYWdl
Q29uZmlndXJhdGlvbi5zcGVlY2hTeW50aGVzaXNDbGllbnQgPSBtYWtlVW5pcXVlPFdlYlNwZWVj
aFN5bnRoZXNpc0NsaWVudD4oKnRoaXMpOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkK
KyNpZiBQTEFURk9STShDT0NPQSkgfHwgKFBMQVRGT1JNKEdUSykgJiYgIVVTRShHVEs0KSkKICAg
ICBwYWdlQ29uZmlndXJhdGlvbi52YWxpZGF0aW9uTWVzc2FnZUNsaWVudCA9IG1ha2VVbmlxdWU8
V2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQ+KCp0aGlzKTsKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDEy
NGI3MDA4YzY0ZWE5OTJhMmQ0ZjE0MTNhOGE3OTg1OTY4NTVmMC4uY2U1YzMwZDBkNGVlMmEzNTVl
MDY4OTA2OTdkOTAyNDdhMGFkY2I0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIyLTAxLTE3
ICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Via2l0Lm9yZz4KKworICAgICAgICBbR1RLXSBJ
bXBsZW1lbnQgZm9ybSB2YWxpZGF0aW9uIHdpdGggZ3RrMyB3aWRnZXRzIGluIHRoZSBVSSBwcm9j
ZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ2
MjkKKworICAgICAgICBSZXZpZXdlZCBieSBDYXJsb3MgR2FyY2lhIENhbXBvcy4KKworICAgICAg
ICBXZSBza2lwIGZhc3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNzYWdlLWNsb25lLmh0bWwgZm9yIG5v
dy4gQWx0aG91Z2ggdGhpcyBwYXRjaAorICAgICAgICBpbXBsZW1lbnRzIGEgdmFsaWRhdGlvbiBi
dWJibGUgd2l0aCBhIG5hdGl2ZSB3aWRnZXQsIHJlbGF0ZWQgdGVzdHMgY2Fubm90IGJlIGVuYWJs
ZWQKKyAgICAgICAgZHVlIHRvIG1pc3NpbmcgSlMgQVBJcyBmb3IgdGhlIFVJIHNjcmlwdCBjb250
cm9sbGVyIChlLmcuLCBjb250ZW50c09mVXNlckludGVyZmFjZUl0ZW0pLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6IFNraXAgZmFzdC9mb3Jtcy92YWxpZGF0aW9u
LW1lc3NhZ2UtY2xvbmUuaHRtbAorCiAyMDIyLTAxLTE3ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBGcmFjdGlvbmFsIHRkIHdpZHRoIGlzIG5vdCByZW5kZXJpbmcg
Y29ycmVjdGx5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IGJmYTFmNTEzZDAwNWZlZWJlNTU5YjhlODQwN2ViY2RhZjdhZDJiNmQuLmEyOTc2ODcyOGZkZmJm
YmMyNGJlMTljNWNhZDZiNzI4ZGNjY2NjN2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9U
ZXN0RXhwZWN0YXRpb25zCkBAIC02NjAsNiArNjYwLDcgQEAgd2Via2l0Lm9yZy9iLzE2NzU3OSBm
YXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1vbi1jaGVja2JveC5odG1sIFsgU2tpcCBdCiB3
ZWJraXQub3JnL2IvMTY3NTc5IGZhc3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNzYWdlLW9uLWxpc3Ri
b3guaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE2NzU3OSBmYXN0L2Zvcm1zL3ZhbGlkYXRp
b24tbWVzc2FnZS1vbi1tZW51bGlzdC5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTY3NTc5
IGZhc3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNzYWdlLW9uLXJhZGlvLmh0bWwgWyBTa2lwIF0KK3dl
YmtpdC5vcmcvYi8xNjc1NzkgZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2UtY2xvbmUuaHRt
bCBbIFNraXAgXQogCiB3ZWJraXQub3JnL2IvMTM3MDk2IHN2Zy9XM0MtU1ZHLTEuMS90ZXh0LWFs
dGdseXBoLTAxLWIuc3ZnIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTM3MDk2IHN2Zy9jdXN0
b20vYWx0Z2x5cGguc3ZnIFsgRmFpbHVyZSBdCg==
</data>
<flag name="commit-queue"
          id="475402"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449352</attachid>
            <date>2022-01-17 15:30:51 -0800</date>
            <delta_ts>2022-01-17 16:51:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234629-20220117183051.patch</filename>
            <type>text/plain</type>
            <size>19523</size>
            <attacher name="ChangSeok Oh">changseok</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWNjMDBiZmZkNmRmOWZm
YTg5YTZkMjg3YjFkZGUyYjc3NmRmYjM1NC4uOTE3MjViOWI0NmY1NGYwMWMyNTBjNGU1NzUyNzVh
YzA5MmRkMjUyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIyLTAxLTE3ICBDaGFu
Z1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Via2l0Lm9yZz4KKworICAgICAgICBbR1RLXSBJbXBsZW1l
bnQgZm9ybSB2YWxpZGF0aW9uIHdpdGggZ3RrMyB3aWRnZXRzIGluIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ2MjkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBDYXJsb3MgR2FyY2lhIENhbXBvcy4KKworICAgICAgICBUaGlz
IGNoYW5nZSByZS1pbXBsZW1lbnRzIGZvcm0gdmFsaWRhdGlvbiB3aXRoIGd0azMgd2lkZ2V0cyBp
biB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgVGhlIGN1cnJlbnQgZm9ybSB2YWxpZGF0aW9uIGlz
IGltcGxlbWVudGVkIGJ5IHVzaW5nIHNoYWRvdyBET00gaW4gdGhlIHdlYiBwcm9jZXNzLgorICAg
ICAgICBUaGUgb3ZlcmFsbCBkZXNpZ24gaXMgc2ltaWxhciB0byB0aGF0IG9mIG1hYyBwb3J0IGJ1
dCB0aGUgZ3RrIHBvcnQgYWRkcworICAgICAgICBhIGNhbGxiYWNrIG9mIHdlYmtpdFdlYlZpZXdC
YXNlU2V0U2hvdWxkTm90aWZ5Rm9jdXNFdmVudHMgdG8gV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJs
ZQorICAgICAgICB0byBzdXBwcmVzcyBhIGZvY3VzIGV2ZW50IHRyaWdnZXJlZCBieSB0aGUgcG9w
b3ZlciB3aWRnZXQuIE90aGVyd2lzZSwgdGhlIG5hdGl2ZQorICAgICAgICBidWJibGUgZG9lcyBu
b3QgZGlzcGxheSBwcm9wZXJseS4KKyAgICAgICAgVGhpcyBjaGFuZ2UgZG9lcyBub3Qgc3VwcG9y
dCBndGs0IHlldC4gQSBmb2xsb3ctdXAgcGF0Y2ggd2lsbCBhZGQgdGhlIGd0azQgc3VwcG9ydC4K
KworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSBleGlzdGluZyB0ZXN0cyBjb3ZlciB0aGlz
IGNoYW5nZS4KKworICAgICAgICAqIFNvdXJjZXNHVEsudHh0OgorICAgICAgICAqIHBsYXRmb3Jt
L1ZhbGlkYXRpb25CdWJibGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkYXRpb25CdWJibGU6
OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1ZhbGlkYXRpb25CdWJibGVHdGsuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkYXRpb25CdWJibGU6OlZhbGlkYXRpb25C
dWJibGUpOgorICAgICAgICAoV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZTo6flZhbGlkYXRpb25C
dWJibGUpOgorICAgICAgICAoV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZTo6aW52YWxpZGF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlOjpzaG93UmVsYXRpdmVUbyk6CisK
IDIwMjItMDEtMTcgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZy
YWN0aW9uYWwgdGQgd2lkdGggaXMgbm90IHJlbmRlcmluZyBjb3JyZWN0bHkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
YmZmMWIwZDBlNzljNGUwNzMwNzZiZWJkMjg0ZmJmOTc5ZjI0MGY1OS4uNzkzNTViOTM5NTZlMDM0
NTRjMTY2Y2E1Y2QzY2Y5MzNhMjE1YWIyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAy
Mi0wMS0xNyAgQ2hhbmdTZW9rIE9oICA8Y2hhbmdzZW9rQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
W0dUS10gSW1wbGVtZW50IGZvcm0gdmFsaWRhdGlvbiB3aXRoIGd0azMgd2lkZ2V0cyBpbiB0aGUg
VUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM0NjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9zIEdhcmNpYSBDYW1wb3MuCisK
KyAgICAgICAgVGhpcyBjaGFuZ2UgcmUtaW1wbGVtZW50cyBmb3JtIHZhbGlkYXRpb24gd2l0aCBn
dGszIHdpZGdldHMgaW4gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIFRoZSBjdXJyZW50IGZvcm0g
dmFsaWRhdGlvbiBpcyBpbXBsZW1lbnRlZCBieSB1c2luZyBzaGFkb3cgRE9NIGluIHRoZSB3ZWIg
cHJvY2Vzcy4KKyAgICAgICAgVGhlIG92ZXJhbGwgZGVzaWduIGlzIHNpbWlsYXIgdG8gdGhhdCBv
ZiBtYWMgcG9ydCBidXQgdGhlIGd0ayBwb3J0IGFkZHMKKyAgICAgICAgYSBjYWxsYmFjayBvZiB3
ZWJraXRXZWJWaWV3QmFzZVNldFNob3VsZE5vdGlmeUZvY3VzRXZlbnRzIHRvIFdlYkNvcmU6OlZh
bGlkYXRpb25CdWJibGUKKyAgICAgICAgdG8gc3VwcHJlc3MgYSBmb2N1cyBldmVudCB0cmlnZ2Vy
ZWQgYnkgdGhlIHBvcG92ZXIgd2lkZ2V0LiBPdGhlcndpc2UsIHRoZSBuYXRpdmUKKyAgICAgICAg
YnViYmxlIGRvZXMgbm90IGRpc3BsYXkgcHJvcGVybHkuCisgICAgICAgIFRoaXMgY2hhbmdlIGRv
ZXMgbm90IHN1cHBvcnQgZ3RrNCB5ZXQuIEEgZm9sbG93LXVwIHBhdGNoIHdpbGwgYWRkIHRoZSBn
dGs0IHN1cHBvcnQuCisgICAgICAgIFRvIGF2b2lkIGNvbXBsYWludHMgZnJvbSB0aGUgZ3RrNCBF
V1MsIHdlIGd1YXJkIGltcGxlbWVudGF0aW9uIG9mIFZhbGlkYXRpb25CdWJibGVHdGsKKyAgICAg
ICAgdGVtcG9yYXJpbHkgYW5kIGluc3RhbGwgcGFnZUNvbmZpZ3VyYXRpb24udmFsaWRhdGlvbk1l
c3NhZ2VDbGllbnQgZm9yIGd0azMgb25seS4KKyAgICAgICAgVGhlIGd0azQga2VlcHMgdXNpbmcg
dGhlIHNoYWRvdyBET00gYnViYmxlIHVudGlsIGhhdmluZyBuYXRpdmUgYnViYmxlIHN1cHBvcnQu
CisKKyAgICAgICAgKiBTb3VyY2VzR1RLLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpj
cmVhdGVWYWxpZGF0aW9uQnViYmxlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9QYWdl
Q2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6aGlkZVZhbGlkYXRpb25NZXNzYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYlBhZ2VQcm94eUd0ay5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2hvd1ZhbGlkYXRpb25NZXNzYWdlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fYXBwSGln
aGxpZ2h0c1Zpc2libGUpOgorCiAyMDIyLTAxLTE3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBNYWtlIFNlcnZpY2VXb3JrZXJDbGllbnQuaWQgYSBVVUlEIGlu
c3RlYWQgb2YgYSBzdHJpbmcgZGVyaXZlZCBmcm9tIGEgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNHVEsudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlc0dUSy50eHQKaW5kZXggMWViNTA1N2ZhYzY2ZTBlZGVmYjNlNzNi
YWYxNzkyZWEwMWQ0YTE1OC4uYjVmOGQ4NGYwOGJhNGI4ZDYzMThjYzg2NDgyYTE0N2UwNWRhM2Q0
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0dUSy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvU291cmNlc0dUSy50eHQKQEAgLTEzNCw2ICsxMzQsNyBAQCBwbGF0Zm9ybS9ndGsv
UmVuZGVyVGhlbWVTY3JvbGxiYXIuY3BwCiBwbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsu
Y3BwCiBwbGF0Zm9ybS9ndGsvU2VsZWN0aW9uRGF0YS5jcHAKIHBsYXRmb3JtL2d0ay9UaGVtZUd0
ay5jcHAKK3BsYXRmb3JtL2d0ay9WYWxpZGF0aW9uQnViYmxlR3RrLmNwcAogcGxhdGZvcm0vZ3Rr
L1dpZGdldEd0ay5jcHAKIAogcGxhdGZvcm0vdGV4dC9IeXBoZW5hdGlvbi5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZhbGlkYXRpb25CdWJibGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1ZhbGlkYXRpb25CdWJibGUuaAppbmRleCA5MjQ4ZDgxZDg4MTIxNzg3
NGYxZjRjZDFiNmFhNGM0NjFiMmRkYjJmLi42NmYyMzk2MmM3OGI0ZTIzM2NkMGIwNzNlOWM2ZDg0
MTczNTVmNzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WYWxpZGF0aW9u
QnViYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmFsaWRhdGlvbkJ1YmJsZS5o
CkBAIC00OSw2ICs0OSw4IEBAIHVzaW5nIFBsYXRmb3JtVmlldyA9IE5TVmlldzsKICNlbGlmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiBPQkpDX0NMQVNTIFVJVmlldzsKIHVzaW5nIFBsYXRmb3JtVmll
dyA9IFVJVmlldzsKKyNlbGlmIFBMQVRGT1JNKEdUSykKK3VzaW5nIFBsYXRmb3JtVmlldyA9IEd0
a1dpZGdldDsKICNlbHNlCiB1c2luZyBQbGF0Zm9ybVZpZXcgPSB2b2lkOwogI2VuZGlmCkBAIC02
MSwxMCArNjMsMTggQEAgcHVibGljOgogICAgICAgICBkb3VibGUgbWluaW11bUZvbnRTaXplIHsg
MCB9OwogICAgIH07CiAKKyNpZiBQTEFURk9STShHVEspCisgICAgdXNpbmcgU2hvdWxkTm90aWZ5
Rm9jdXNFdmVudHNDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoUGxhdGZvcm1WaWV3KiwgYm9vbCBz
aG91bGROb3RpZnlGb2N1c0V2ZW50cyk+OworICAgIHN0YXRpYyBSZWY8VmFsaWRhdGlvbkJ1YmJs
ZT4gY3JlYXRlKFBsYXRmb3JtVmlldyogdmlldywgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBTZXR0aW5ncyYgc2V0dGluZ3MsIFNob3VsZE5vdGlmeUZvY3VzRXZlbnRzQ2FsbGJhY2smJiBj
YWxsYmFjaykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZhbGlkYXRpb25C
dWJibGUodmlldywgbWVzc2FnZSwgc2V0dGluZ3MsIFdURk1vdmUoY2FsbGJhY2spKSk7CisgICAg
fQorI2Vsc2UKICAgICBzdGF0aWMgUmVmPFZhbGlkYXRpb25CdWJibGU+IGNyZWF0ZShQbGF0Zm9y
bVZpZXcqIHZpZXcsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU2V0dGluZ3MmIHNldHRp
bmdzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVmFsaWRhdGlvbkJ1YmJs
ZSh2aWV3LCBtZXNzYWdlLCBzZXR0aW5ncykpOwogICAgIH0KKyNlbmRpZgogCiAgICAgV0VCQ09S
RV9FWFBPUlQgflZhbGlkYXRpb25CdWJibGUoKTsKIApAQCAtNzksNyArODksMTIgQEAgcHVibGlj
OgogI2VuZGlmCiAKIHByaXZhdGU6CisjaWYgUExBVEZPUk0oR1RLKQorICAgIFdFQkNPUkVfRVhQ
T1JUIFZhbGlkYXRpb25CdWJibGUoUGxhdGZvcm1WaWV3KiwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBjb25zdCBTZXR0aW5ncyYsIFNob3VsZE5vdGlmeUZvY3VzRXZlbnRzQ2FsbGJhY2smJik7Cisg
ICAgdm9pZCBpbnZhbGlkYXRlKCk7CisjZWxzZQogICAgIFdFQkNPUkVfRVhQT1JUIFZhbGlkYXRp
b25CdWJibGUoUGxhdGZvcm1WaWV3KiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTZXR0
aW5ncyYpOworI2VuZGlmCiAKICAgICBQbGF0Zm9ybVZpZXcqIG1fdmlldzsKICAgICBTdHJpbmcg
bV9tZXNzYWdlOwpAQCAtOTEsNiArMTA2LDkgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8V2Vi
VmFsaWRhdGlvbkJ1YmJsZVRhcFJlY29nbml6ZXI+IG1fdGFwUmVjb2duaXplcjsKICAgICBSZXRh
aW5QdHI8V2ViVmFsaWRhdGlvbkJ1YmJsZURlbGVnYXRlPiBtX3BvcG92ZXJEZWxlZ2F0ZTsKICAg
ICBXZWFrT2JqQ1B0cjxVSVZpZXdDb250cm9sbGVyPiBtX3ByZXNlbnRpbmdWaWV3Q29udHJvbGxl
cjsKKyNlbGlmIFBMQVRGT1JNKEdUSykKKyAgICBHdGtXaWRnZXQqIG1fcG9wb3ZlciB7IG51bGxw
dHIgfTsKKyAgICBTaG91bGROb3RpZnlGb2N1c0V2ZW50c0NhbGxiYWNrIG1fc2hvdWxkTm90aWZ5
Rm9jdXNFdmVudHNDYWxsYmFjayB7IG51bGxwdHIgfTsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1ZhbGlkYXRpb25CdWJibGVHdGsuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1ZhbGlkYXRpb25CdWJibGVHdGsuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQ2ZjlmYTA1OWIzNzkwNWQ2YTE0ZjgwMGNjMjI4Nzc5NzhmN2RlZjAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvVmFsaWRhdGlvbkJ1YmJsZUd0
ay5jcHAKQEAgLTAsMCArMSwxMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgSWdhbGlh
IFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlZhbGlkYXRp
b25CdWJibGUuaCIKKworI2lmIFBMQVRGT1JNKEdUSykKKworI2luY2x1ZGUgPGdsaWIuaD4KKyNp
bmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIGNvbnN0IGZsb2F0IGhvcml6
b250YWxNYXJnaW4gPSA1Oworc3RhdGljIGNvbnN0IGZsb2F0IHZlcnRpY2FsTWFyZ2luID0gNTsK
K3N0YXRpYyBjb25zdCBmbG9hdCBtYXhMYWJlbFdpZHRoQ2hhcnMgPSA0MDsKK3N0YXRpYyBjb25z
dCBkb3VibGUgbWluRm9udFNpemUgPSAxMTsKKworVmFsaWRhdGlvbkJ1YmJsZTo6VmFsaWRhdGlv
bkJ1YmJsZShHdGtXaWRnZXQqIHdlYlZpZXcsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
U2V0dGluZ3MmIHNldHRpbmdzLCBTaG91bGROb3RpZnlGb2N1c0V2ZW50c0NhbGxiYWNrJiYgY2Fs
bGJhY2spCisgICAgOiBtX3ZpZXcod2ViVmlldykKKyAgICAsIG1fbWVzc2FnZShtZXNzYWdlKQor
ICAgICwgbV9mb250U2l6ZShzdGQ6Om1heChzZXR0aW5ncy5taW5pbXVtRm9udFNpemUsIG1pbkZv
bnRTaXplKSkKKyAgICAsIG1fc2hvdWxkTm90aWZ5Rm9jdXNFdmVudHNDYWxsYmFjayhXVEZNb3Zl
KGNhbGxiYWNrKSkKK3sKKyNpZiAhVVNFKEdUSzQpCisgICAgR3RrV2lkZ2V0KiBsYWJlbCA9IGd0
a19sYWJlbF9uZXcobnVsbHB0cik7CisKKyAgICAvLyBodHRwczovL2RvY3MuZ3RrLm9yZy9QYW5n
by9wYW5nb19tYXJrdXAuaHRtbAorICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG1hcmt1cChnX21hcmt1
cF9wcmludGZfZXNjYXBlZCgiPHNwYW4gZm9udD0nJWYnPiVzPC9zcGFuPiIsIG1fZm9udFNpemUs
IG1lc3NhZ2UudXRmOCgpLmRhdGEoKSkpOworICAgIGd0a19sYWJlbF9zZXRfbWFya3VwKEdUS19M
QUJFTChsYWJlbCksIG1hcmt1cC5nZXQoKSk7CisKKyAgICBndGtfd2lkZ2V0X3NldF9oYWxpZ24o
bGFiZWwsIEdUS19BTElHTl9TVEFSVCk7CisgICAgZ3RrX3dpZGdldF9zZXRfdmFsaWduKGxhYmVs
LCBHVEtfQUxJR05fQ0VOVEVSKTsKKworICAgIGd0a193aWRnZXRfc2V0X21hcmdpbl90b3AobGFi
ZWwsIHZlcnRpY2FsTWFyZ2luKTsKKyAgICBndGtfd2lkZ2V0X3NldF9tYXJnaW5fYm90dG9tKGxh
YmVsLCB2ZXJ0aWNhbE1hcmdpbik7CisgICAgZ3RrX3dpZGdldF9zZXRfbWFyZ2luX3N0YXJ0KGxh
YmVsLCBob3Jpem9udGFsTWFyZ2luKTsKKyAgICBndGtfd2lkZ2V0X3NldF9tYXJnaW5fZW5kKGxh
YmVsLCBob3Jpem9udGFsTWFyZ2luKTsKKworICAgIGd0a19sYWJlbF9zZXRfZWxsaXBzaXplKEdU
S19MQUJFTChsYWJlbCksIFBBTkdPX0VMTElQU0laRV9FTkQpOworICAgIGd0a19sYWJlbF9zZXRf
bGluZV93cmFwKEdUS19MQUJFTChsYWJlbCksIFRSVUUpOworICAgIGd0a19sYWJlbF9zZXRfbGlu
ZXMoR1RLX0xBQkVMKGxhYmVsKSwgNCk7CisgICAgZ3RrX2xhYmVsX3NldF9tYXhfd2lkdGhfY2hh
cnMoR1RLX0xBQkVMKGxhYmVsKSwgbWF4TGFiZWxXaWR0aENoYXJzKTsKKworICAgIG1fcG9wb3Zl
ciA9IGd0a19wb3BvdmVyX25ldyh3ZWJWaWV3KTsKKyAgICBndGtfcG9wb3Zlcl9zZXRfbW9kYWwo
R1RLX1BPUE9WRVIobV9wb3BvdmVyKSwgRkFMU0UpOworICAgIGd0a19wb3BvdmVyX3NldF9wb3Np
dGlvbihHVEtfUE9QT1ZFUihtX3BvcG92ZXIpLCBHVEtfUE9TX1RPUCk7CisgICAgZ3RrX3BvcG92
ZXJfc2V0X2NvbnN0cmFpbl90byhHVEtfUE9QT1ZFUihtX3BvcG92ZXIpLCBHVEtfUE9QT1ZFUl9D
T05TVFJBSU5UX05PTkUpOworCisgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUiht
X3BvcG92ZXIpLCBsYWJlbCk7CisgICAgZ3RrX3dpZGdldF9zaG93KGxhYmVsKTsKKworICAgIGdf
c2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZChtX3BvcG92ZXIsICJjbG9zZWQiLCBHX0NBTExCQUNLKCtb
XShWYWxpZGF0aW9uQnViYmxlKiB2YWxpZGF0aW9uQnViYmxlKSB7CisgICAgICAgIHZhbGlkYXRp
b25CdWJibGUtPmludmFsaWRhdGUoKTsKKyAgICB9KSwgdGhpcyk7CisjZW5kaWYKK30KKworVmFs
aWRhdGlvbkJ1YmJsZTo6flZhbGlkYXRpb25CdWJibGUoKQoreworICAgIGludmFsaWRhdGUoKTsK
K30KKwordm9pZCBWYWxpZGF0aW9uQnViYmxlOjppbnZhbGlkYXRlKCkKK3sKKyNpZiAhVVNFKEdU
SzQpCisgICAgaWYgKCFtX3BvcG92ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGdfc2lnbmFs
X2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZGF0YShtX3BvcG92ZXIsIHRoaXMpOworCisgICAgZ3Rr
X3dpZGdldF9kZXN0cm95KG1fcG9wb3Zlcik7CisgICAgbV9wb3BvdmVyID0gbnVsbHB0cjsKKwor
ICAgIG1fc2hvdWxkTm90aWZ5Rm9jdXNFdmVudHNDYWxsYmFjayhtX3ZpZXcsIHRydWUpOworI2Vu
ZGlmCit9CisKK3ZvaWQgVmFsaWRhdGlvbkJ1YmJsZTo6c2hvd1JlbGF0aXZlVG8oY29uc3QgSW50
UmVjdCYgYW5jaG9yUmVjdCkKK3sKKyNpZiAhVVNFKEdUSzQpCisgICAgbV9zaG91bGROb3RpZnlG
b2N1c0V2ZW50c0NhbGxiYWNrKG1fdmlldywgZmFsc2UpOworCisgICAgR2RrUmVjdGFuZ2xlIHJl
Y3QoYW5jaG9yUmVjdCk7CisgICAgZ3RrX3BvcG92ZXJfc2V0X3BvaW50aW5nX3RvKEdUS19QT1BP
VkVSKG1fcG9wb3ZlciksICZyZWN0KTsKKworICAgIGd0a19wb3BvdmVyX3BvcHVwKEdUS19QT1BP
VkVSKG1fcG9wb3ZlcikpOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIFBMQVRGT1JNKEdUSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNl
c0dUSy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CmluZGV4IGYyMTI0NmYwMGMx
OGYyMzgxZmNlZTczMTdmOTY0OWYxYjY2MWUzNDIuLjY3ZjgwNDEwZThjOWRmOTY0N2Q3NmIzNzc1
Y2ZiY2ZmYzdkM2I2NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dApAQCAtNDEzLDYgKzQxMyw4IEBAIFdl
YlByb2Nlc3MvSW5zcGVjdG9yL2d0ay9XZWJJbnNwZWN0b3JVSUd0ay5jcHAKIAogV2ViUHJvY2Vz
cy9NZWRpYUNhY2hlL1dlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuY3BwCiAKK1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuY3BwCisKIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvZ2xpYi9XZWJFZGl0b3JDbGllbnRHTGliLmNwcAogCiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJDb250ZXh0TWVudUNsaWVudEd0ay5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKaW5k
ZXggMWE5MWM3ZDc4N2Y3ZDNiODhhMmYwZmNiZDQ4ZWI3MmZlNmJmNTMyYy4uYjg5NTM4YmE4YTIx
ZGFkNzkwODgwNzJlZGZhMTFkMmFhMWRmMjA3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTUxLDYgKzUxLDcgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL0d0a1V0aWxpdGllcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1w
bGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlZlB0ckNhaXJvLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9WYWxpZGF0aW9uQnViYmxlLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBpbGVyLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgpAQCAtMjkzLDYgKzI5NCwxMyBAQCBSZWZQdHI8V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ry
b3Bkb3duPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlRGF0YUxpc3RTdWdnZXN0aW9ucwogfQogI2Vu
ZGlmCiAKK1JlZjxWYWxpZGF0aW9uQnViYmxlPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlVmFsaWRh
dGlvbkJ1YmJsZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFZhbGlkYXRpb25CdWJibGU6
OlNldHRpbmdzJiBzZXR0aW5ncykKK3sKKyAgICByZXR1cm4gVmFsaWRhdGlvbkJ1YmJsZTo6Y3Jl
YXRlKG1fdmlld1dpZGdldCwgbWVzc2FnZSwgc2V0dGluZ3MsIFtdKEd0a1dpZGdldCogd2ViVmll
dywgYm9vbCBzaG91bGROb3RpZnlGb2N1c0V2ZW50cykgeworICAgICAgICB3ZWJraXRXZWJWaWV3
QmFzZVNldFNob3VsZE5vdGlmeUZvY3VzRXZlbnRzKFdFQktJVF9XRUJfVklFV19CQVNFKHdlYlZp
ZXcpLCBzaG91bGROb3RpZnlGb2N1c0V2ZW50cyk7CisgICAgfSk7Cit9CisKIHZvaWQgUGFnZUNs
aWVudEltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVl
Q29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dCkKIHsKICAgICB3ZWJraXRXZWJWaWV3QmFzZUVudGVy
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoV0VCS0lUX1dFQl9WSUVXX0JBU0UobV92aWV3V2lk
Z2V0KSwgbGF5ZXJUcmVlQ29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggOTlkMDk3YWJkZWZiMWU4MzJkM2Y2ZmNkN2Jl
ZjkyMzRiZTFjYTBhOS4uY2U4NzNiZGZiZTcxOTRiZTNiODczMzg2MDA0N2JkY2M3ZDJlN2M3ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwu
aApAQCAtMTAxLDYgKzEwMSw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1F
TlQpCiAgICAgUmVmUHRyPFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bj4gY3JlYXRlRGF0
YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duKFdlYlBhZ2VQcm94eSYpIG92ZXJyaWRlOwogI2VuZGlm
CisgICAgUmVmPFdlYkNvcmU6OlZhbGlkYXRpb25CdWJibGU+IGNyZWF0ZVZhbGlkYXRpb25CdWJi
bGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxl
OjpTZXR0aW5ncyYpIGZpbmFsOwogICAgIHZvaWQgc2VsZWN0aW9uRGlkQ2hhbmdlKCkgb3ZlcnJp
ZGU7CiAgICAgUmVmUHRyPFZpZXdTbmFwc2hvdD4gdGFrZVZpZXdTbmFwc2hvdChzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OkludFJlY3Q+JiYpIG92ZXJyaWRlOwogI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggODJkOWRjZmE1NmE5Yzg5
ZmMzZGYxYThmZjM2N2Q4NDMzMjQ1MjA5OS4uNTE2OWQ3MWY1ODQwYjFhMmFjNDMyNDk2ODNhZTM4
YWRlN2JiMTE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMzg3LDcg
KzM4Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlZlB0cjxXZWJEYXRlVGltZVBpY2tlcj4g
Y3JlYXRlRGF0ZVRpbWVQaWNrZXIoV2ViUGFnZVByb3h5JikgPSAwOwogI2VuZGlmCiAKLSNpZiBQ
TEFURk9STShDT0NPQSkKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKQogICAg
IHZpcnR1YWwgUmVmPFdlYkNvcmU6OlZhbGlkYXRpb25CdWJibGU+IGNyZWF0ZVZhbGlkYXRpb25C
dWJibGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXZWJDb3JlOjpWYWxpZGF0aW9uQnVi
YmxlOjpTZXR0aW5ncyYpID0gMDsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAppbmRleCA2MDI3M2MxMDBiZDVhYzhmMGU2YzdlNzRhNTY5MjU3YmM5Zjdj
YzQ0Li5mNGIzMTBmYWNiN2QxMDQ1ZjQzYmI1NmZkZjAzMjMzYTZkZTdiNjc3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTk5MTMsNyArOTkxMyw3IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpzZXRVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKFdlYkNvcmU6
OlVzZXJJbnRlcmZhY2VMYXlvdXRECiAKIHZvaWQgV2ViUGFnZVByb3h5OjpoaWRlVmFsaWRhdGlv
bk1lc3NhZ2UoKQogewotI2lmIFBMQVRGT1JNKENPQ09BKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8
fCBQTEFURk9STShHVEspCiAgICAgbV92YWxpZGF0aW9uQnViYmxlID0gbnVsbHB0cjsKICNlbmRp
ZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA5NWI1YTczNmQw
MTFjNzhkMDFjNzhhYTUwY2QzZWE0MzZkOWE2OGJlLi45NTlmNjUxNWViZDNjYmI0NzVjMGFlMGRi
ZTgzOWJhOWI0ZmI5ZmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApA
QCAtMTYxMCw3ICsxNjEwLDcgQEAgcHVibGljOgogICAgIC8vIEZvcm0gdmFsaWRhdGlvbiBtZXNz
YWdlcy4KICAgICB2b2lkIHNob3dWYWxpZGF0aW9uTWVzc2FnZShjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiBhbmNob3JDbGllbnRSZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogICAgIHZvaWQg
aGlkZVZhbGlkYXRpb25NZXNzYWdlKCk7Ci0jaWYgUExBVEZPUk0oQ09DT0EpCisjaWYgUExBVEZP
Uk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKICAgICBXZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxl
KiB2YWxpZGF0aW9uQnViYmxlKCkgY29uc3QgeyByZXR1cm4gbV92YWxpZGF0aW9uQnViYmxlLmdl
dCgpOyB9IC8vIEZvciB0ZXN0aW5nLgogI2VuZGlmCiAKQEAgLTI4NjUsNyArMjg2NSw3IEBAIHBy
aXZhdGU6CiAjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCiAgICAgUmVmUHRy
PFdlYkRhdGVUaW1lUGlja2VyPiBtX2RhdGVUaW1lUGlja2VyOwogI2VuZGlmCi0jaWYgUExBVEZP
Uk0oQ09DT0EpCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKICAgICBSZWZQ
dHI8V2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZT4gbV92YWxpZGF0aW9uQnViYmxlOwogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgppbmRleCAxZjAwMDFkMDVhYWYxMzQzNjM4ZTBlZTc5ODViZjk3ZDQ1ODczMzU4Li5iMTcwM2Y2
N2IwNDI2N2MwNTBiMDVmN2I0N2NmNzI1MTljNzYyMmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC01Nyw3ICs1Nyw3IEBAIG1l
c3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgQWNjZXNzaWJpbGl0eVNjcmVlblRvUm9vdFZp
ZXcoV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuUG9pbnQpIC0+IChXZWJDb3JlOjpJbnRQb2ludCB3
aW5kb3dQb2ludCkgU3luY2hyb25vdXMKICAgICBSb290Vmlld1RvQWNjZXNzaWJpbGl0eVNjcmVl
bihXZWJDb3JlOjpJbnRSZWN0IHJlY3QpIC0+IChXZWJDb3JlOjpJbnRSZWN0IHNjcmVlbkZyYW1l
KSBTeW5jaHJvbm91cwogCi0jaWYgUExBVEZPUk0oQ09DT0EpCisjaWYgUExBVEZPUk0oQ09DT0Ep
IHx8IFBMQVRGT1JNKEdUSykKICAgICBTaG93VmFsaWRhdGlvbk1lc3NhZ2UoV2ViQ29yZTo6SW50
UmVjdCBhbmNob3JSZWN0LCBTdHJpbmcgbWVzc2FnZSkKICAgICBIaWRlVmFsaWRhdGlvbk1lc3Nh
Z2UoKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2Vi
UGFnZVByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQYWdlUHJv
eHlHdGsuY3BwCmluZGV4IDkxZWYyMTdiOWQyZDgxNWJmMDVhYTdhNTAwYmU0MmVmZTAzM2VkNzYu
LjMwNWUyNWU0ZWJjNDVmYTBmMDQwOGEwOWY3YzE4YTY2Y2QyOGUyZTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQYWdlUHJveHlHdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQYWdlUHJveHlHdGsuY3BwCkBAIC04NSw2ICs4NSwx
MiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0Vtb2ppUGlja2VyKGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIGNhcmV0UmVjdCwgQ29tcGxldGlvbgogICAgIHdlYmtpdFdlYlZpZXdCYXNlU2hvd0Vt
b2ppQ2hvb3NlcihXRUJLSVRfV0VCX1ZJRVdfQkFTRSh2aWV3V2lkZ2V0KCkpLCBjYXJldFJlY3Qs
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnNo
b3dWYWxpZGF0aW9uTWVzc2FnZShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBhbmNob3JDbGllbnRS
ZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgbV92YWxpZGF0aW9uQnViYmxlID0g
cGFnZUNsaWVudCgpLmNyZWF0ZVZhbGlkYXRpb25CdWJibGUobWVzc2FnZSwgeyBtX3ByZWZlcmVu
Y2VzLT5taW5pbXVtRm9udFNpemUoKSB9KTsKKyAgICBtX3ZhbGlkYXRpb25CdWJibGUtPnNob3dS
ZWxhdGl2ZVRvKGFuY2hvckNsaWVudFJlY3QpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2Vu
ZE1lc3NhZ2VUb1dlYlZpZXdXaXRoUmVwbHkoVXNlck1lc3NhZ2UmJiBtZXNzYWdlLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFVzZXJNZXNzYWdlJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewog
ICAgIGlmICghV0VCS0lUX0lTX1dFQl9WSUVXKHZpZXdXaWRnZXQoKSkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYmI2NWNkOTQxOWVmOTc3
N2M1OTMwZTNlMTM0MDA3MGMxYmZjYWM1Zi4uMzdmOGQ1ZTlmZWE5ZmFkZWUyOWJlZGJjZDQ4ODIx
YzM1M2E0YmE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKQEAgLTYwOSw3ICs2MDksNyBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgcGFn
ZUNvbmZpZ3VyYXRpb24uc3BlZWNoU3ludGhlc2lzQ2xpZW50ID0gbWFrZVVuaXF1ZTxXZWJTcGVl
Y2hTeW50aGVzaXNDbGllbnQ+KCp0aGlzKTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ09DT0Ep
CisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IChQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkpCiAg
ICAgcGFnZUNvbmZpZ3VyYXRpb24udmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQgPSBtYWtlVW5pcXVl
PFdlYlZhbGlkYXRpb25NZXNzYWdlQ2xpZW50PigqdGhpcyk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQx
MjRiNzAwOGM2NGVhOTkyYTJkNGYxNDEzYThhNzk4NTk2ODU1ZjAuLmNlNWMzMGQwZDRlZTJhMzU1
ZTA2ODkwNjk3ZDkwMjQ3YTBhZGNiNDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMi0wMS0x
NyAgQ2hhbmdTZW9rIE9oICA8Y2hhbmdzZW9rQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0dUS10g
SW1wbGVtZW50IGZvcm0gdmFsaWRhdGlvbiB3aXRoIGd0azMgd2lkZ2V0cyBpbiB0aGUgVUkgcHJv
Y2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0
NjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9zIEdhcmNpYSBDYW1wb3MuCisKKyAgICAg
ICAgV2Ugc2tpcCBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1jbG9uZS5odG1sIGZvciBu
b3cuIEFsdGhvdWdoIHRoaXMgcGF0Y2gKKyAgICAgICAgaW1wbGVtZW50cyBhIHZhbGlkYXRpb24g
YnViYmxlIHdpdGggYSBuYXRpdmUgd2lkZ2V0LCByZWxhdGVkIHRlc3RzIGNhbm5vdCBiZSBlbmFi
bGVkCisgICAgICAgIGR1ZSB0byBtaXNzaW5nIEpTIEFQSXMgZm9yIHRoZSBVSSBzY3JpcHQgY29u
dHJvbGxlciAoZS5nLiwgY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtKS4KKworICAgICAgICAq
IHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOiBTa2lwIGZhc3QvZm9ybXMvdmFsaWRhdGlv
bi1tZXNzYWdlLWNsb25lLmh0bWwKKwogMjAyMi0wMS0xNyAgQWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgRnJhY3Rpb25hbCB0ZCB3aWR0aCBpcyBub3QgcmVuZGVyaW5n
IGNvcnJlY3RseQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCBiZmExZjUxM2QwMDVmZWViZTU1OWI4ZTg0MDdlYmNkYWY3YWQyYjZkLi5hMjk3Njg3MjhmZGZi
ZmJjMjRiZTE5YzVjYWQ2YjcyOGRjY2NjYzdmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtNjYwLDYgKzY2MCw3IEBAIHdlYmtpdC5vcmcvYi8xNjc1Nzkg
ZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2Utb24tY2hlY2tib3guaHRtbCBbIFNraXAgXQog
d2Via2l0Lm9yZy9iLzE2NzU3OSBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1vbi1saXN0
Ym94Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNjc1NzkgZmFzdC9mb3Jtcy92YWxpZGF0
aW9uLW1lc3NhZ2Utb24tbWVudWxpc3QuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE2NzU3
OSBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1vbi1yYWRpby5odG1sIFsgU2tpcCBdCit3
ZWJraXQub3JnL2IvMTY3NTc5IGZhc3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNzYWdlLWNsb25lLmh0
bWwgWyBTa2lwIF0KIAogd2Via2l0Lm9yZy9iLzEzNzA5NiBzdmcvVzNDLVNWRy0xLjEvdGV4dC1h
bHRnbHlwaC0wMS1iLnN2ZyBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzEzNzA5NiBzdmcvY3Vz
dG9tL2FsdGdseXBoLnN2ZyBbIEZhaWx1cmUgXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>