<?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>230784</bug_id>
          
          <creation_ts>2021-09-24 23:09:31 -0700</creation_ts>
          <short_desc>Promote WKPreferences._fullScreenEnabled to API</short_desc>
          <delta_ts>2021-11-12 15:46:59 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=233076</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Peng Liu">peng.liu6</reporter>
          <assigned_to name="Peng Liu">peng.liu6</assigned_to>
          <cc>darin</cc>
    
    <cc>jer.noble</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1797133</commentid>
    <comment_count>0</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-09-24 23:09:31 -0700</bug_when>
    <thetext>Promote WKPreferences._fullScreenEnabled to API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797136</commentid>
    <comment_count>1</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-09-24 23:16:11 -0700</bug_when>
    <thetext>&lt;rdar://83255308&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797137</commentid>
    <comment_count>2</comment_count>
      <attachid>439239</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-09-24 23:18:09 -0700</bug_when>
    <thetext>Created attachment 439239
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797526</commentid>
    <comment_count>3</comment_count>
      <attachid>439363</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-09-27 09:40:18 -0700</bug_when>
    <thetext>Created attachment 439363
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799170</commentid>
    <comment_count>4</comment_count>
      <attachid>439820</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-09-30 22:19:53 -0700</bug_when>
    <thetext>Created attachment 439820
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813900</commentid>
    <comment_count>5</comment_count>
      <attachid>443901</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-11-10 20:35:12 -0800</bug_when>
    <thetext>Created attachment 443901
[fast-cq] Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814118</commentid>
    <comment_count>6</comment_count>
      <attachid>443901</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-11-11 10:57:58 -0800</bug_when>
    <thetext>Comment on attachment 443901
[fast-cq] Patch

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

R=me with a nit:

&gt; Source/WebKit/UIProcess/Cocoa/FullscreenClient.h:-40
&gt; -#if PLATFORM(MAC)
&gt; -@class NSView;
&gt; -using WKFullscreenClientView = NSView;
&gt; -#else
&gt;  @class WKWebView;
&gt;  using WKFullscreenClientView = WKWebView;
&gt; -#endif

Nit: it seems like we could just get rid of WKFullscreenClientView entirely and just use WKWebView everywhere, no?

&gt; Source/WebKit/UIProcess/Cocoa/FullscreenClient.mm:66
&gt; -        [m_delegate.get() _webViewWillEnterFullscreen:m_webView];
&gt; +        [m_delegate.get() _webViewWillEnterFullscreen:static_cast&lt;NSView *&gt;(m_webView)];

Nit: not sure why this was is necessary; can&apos;t we just #include &quot;WKWebView.h&quot; here and get the cast for free?

&gt; Source/WebKit/UIProcess/WebFullScreenManagerProxy.h:77
&gt; +    enum class FullscreenState : uint8_t {
&gt; +        NotInFullscreen,
&gt; +        EnteringFullscreen,
&gt; +        InFullscreen,
&gt; +        ExitingFullscreen,
&gt; +    };
&gt; +    FullscreenState fullscreenState() const { return m_fullscreenState; }
&gt; +

Oooh, I just added something very similar to this inside WebKitTestRunner, with almost exactly the same values. Once this lands, I could get rid of that enum and adopt this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814147</commentid>
    <comment_count>7</comment_count>
      <attachid>443901</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-11-11 11:53:27 -0800</bug_when>
    <thetext>Comment on attachment 443901
[fast-cq] Patch

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

&gt; Source/WebKit/UIProcess/WebFullScreenManagerProxy.h:75
&gt; +    enum class FullscreenState : uint8_t {
&gt; +        NotInFullscreen,
&gt; +        EnteringFullscreen,
&gt; +        InFullscreen,
&gt; +        ExitingFullscreen,
&gt; +    };

Is there some way to keep this clear, but avoid saying Fullscreen twice every time we use any of these values?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814148</commentid>
    <comment_count>8</comment_count>
      <attachid>443901</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-11-11 11:53:59 -0800</bug_when>
    <thetext>Comment on attachment 443901
[fast-cq] Patch

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

&gt;&gt; Source/WebKit/UIProcess/WebFullScreenManagerProxy.h:75
&gt;&gt; +    };
&gt; 
&gt; Is there some way to keep this clear, but avoid saying Fullscreen twice every time we use any of these values?

Like maybe we can use &quot;NotIn&quot;, &quot;Entering&quot;, &quot;In&quot;, and &quot;Exiting&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814157</commentid>
    <comment_count>9</comment_count>
      <attachid>443901</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-11-11 12:22:05 -0800</bug_when>
    <thetext>Comment on attachment 443901
[fast-cq] Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/WebFullScreenManagerProxy.h:75
&gt;&gt;&gt; +    };
&gt;&gt; 
&gt;&gt; Is there some way to keep this clear, but avoid saying Fullscreen twice every time we use any of these values?
&gt; 
&gt; Like maybe we can use &quot;NotIn&quot;, &quot;Entering&quot;, &quot;In&quot;, and &quot;Exiting&quot;.

Maybe &quot;NotActive&quot;, &quot;Entering&quot;, &quot;Active&quot;, and &quot;Exiting&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814630</commentid>
    <comment_count>10</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-11-12 14:13:14 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #8)
&gt; Comment on attachment 443901 [details]
&gt; [fast-cq] Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=443901&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/UIProcess/WebFullScreenManagerProxy.h:75
&gt; &gt;&gt; +    };
&gt; &gt; 
&gt; &gt; Is there some way to keep this clear, but avoid saying Fullscreen twice every time we use any of these values?
&gt; 
&gt; Like maybe we can use &quot;NotIn&quot;, &quot;Entering&quot;, &quot;In&quot;, and &quot;Exiting&quot;.

I will make this change in a follow-up patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814631</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-12 14:14:35 -0800</bug_when>
    <thetext>Committed r285741 (244200@main): &lt;https://commits.webkit.org/244200@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443901.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439239</attachid>
            <date>2021-09-24 23:18:09 -0700</date>
            <delta_ts>2021-09-27 09:40:17 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-230784-20210924231809.patch</filename>
            <type>text/plain</type>
            <size>31988</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyOTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNkMWE1NDNkMjhiOWU1MWMz
NjdjMGY3NmZjYTZjZTljMDg0YTYwM2IuLjlhZmQzNWY0ZmM5OWZkYjY3NzhjMDdlZjMyNjIyY2Vm
Njc3OWQ2MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjEtMDktMjQgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBQcm9tb3RlIFdLUHJlZmVyZW5jZXMu
X2Z1bGxTY3JlZW5FbmFibGVkIHRvIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNzg0CisgICAgICAgIDxyZGFyOi8vODMyNTUzMDg+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
bWFjL1dLUGFnZVByaXZhdGVNYWMubW06CisgICAgICAgIChXS1BhZ2VTZXRGdWxsc2NyZWVuRGVs
ZWdhdGUpOgorICAgICAgICAoV0tQYWdlR2V0RnVsbHNjcmVlbkRlbGVnYXRlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLRnVsbHNjcmVlbkRlbGVnYXRlLmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGdWxsc2NyZWVuRGVsZWdhdGUu
aC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dL
UHJlZmVyZW5jZXMgZnVsbFNjcmVlbkVuYWJsZWRdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNl
cyBzZXRGdWxsU2NyZWVuRW5hYmxlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToK
KyAgICAgICAgKC1bV0tXZWJWaWV3IHNldEZ1bGxzY3JlZW5EZWxlZ2F0ZTpdKToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IGZ1bGxzY3JlZW5EZWxlZ2F0ZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcg
aXNJbkZ1bGxzY3JlZW5dKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRGdWxsc2NyZWVuRGVs
ZWdhdGU6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZnVsbHNjcmVlbkRlbGVnYXRlXSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGdWxsc2NyZWVuRGVsZWdhdGUuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVudC5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9GdWxsc2NyZWVuQ2xpZW50Lm1tOgorICAgICAgICAoV2ViS2l0OjpGdWxs
c2NyZWVuQ2xpZW50OjpkZWxlZ2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OkZ1bGxzY3JlZW5DbGll
bnQ6Ol9kZWxlZ2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OkZ1bGxzY3JlZW5DbGllbnQ6OnNldERl
bGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6RnVsbHNjcmVlbkNsaWVudDo6X3NldERlbGVnYXRl
KToKKyAgICAgICAgKFdlYktpdDo6RnVsbHNjcmVlbkNsaWVudDo6d2lsbEVudGVyRnVsbHNjcmVl
bik6CisgICAgICAgIChXZWJLaXQ6OkZ1bGxzY3JlZW5DbGllbnQ6OmRpZEVudGVyRnVsbHNjcmVl
bik6CisgICAgICAgIChXZWJLaXQ6OkZ1bGxzY3JlZW5DbGllbnQ6OndpbGxFeGl0RnVsbHNjcmVl
bik6CisgICAgICAgIChXZWJLaXQ6OkZ1bGxzY3JlZW5DbGllbnQ6OmRpZEV4aXRGdWxsc2NyZWVu
KToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMS0w
OS0yMiAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCAobWFudWFsbHkpIHJldmVydGluZyByMjgyODU2LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL21hYy9XS1BhZ2VQcml2YXRlTWFjLmgKaW5kZXggNDg4OWNi
ZDYwNTI4ZmQ5NWY4ZTJlM2U3M2Q1YzkzOTZiZWVkZTk2MC4uOWM2MWEyNDdjNjdmYmQwNzYyYzcz
Y2ZhY2NkN2YyNzM1MGVlY2E5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5oCkBAIC01Niw5ICs1Niw5IEBAIGV4dGVybiAi
QyIgewogV0tfRVhQT1JUIGlkIDxfV0tPYnNlcnZhYmxlUGFnZVN0YXRlPiBXS1BhZ2VDcmVhdGVP
YnNlcnZhYmxlU3RhdGUoV0tQYWdlUmVmIHBhZ2UpIE5TX1JFVFVSTlNfUkVUQUlORUQ7CiBXS19F
WFBPUlQgX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKldLUGFnZUdldE9iamVjdFJlZ2lzdHJ5KFdL
UGFnZVJlZiBwYWdlKTsKIAotQHByb3RvY29sIF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZTsKLVdLX0VY
UE9SVCB2b2lkIFdLUGFnZVNldEZ1bGxzY3JlZW5EZWxlZ2F0ZShXS1BhZ2VSZWYgcGFnZSwgaWQg
PF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4pOwotV0tfRVhQT1JUIGlkIDxfV0tGdWxsc2NyZWVuRGVs
ZWdhdGU+IFdLUGFnZUdldEZ1bGxzY3JlZW5EZWxlZ2F0ZShXS1BhZ2VSZWYgcGFnZSk7CitAcHJv
dG9jb2wgV0tGdWxsc2NyZWVuRGVsZWdhdGU7CitXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRGdWxs
c2NyZWVuRGVsZWdhdGUoV0tQYWdlUmVmIHBhZ2UsIGlkIDxXS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4p
OworV0tfRVhQT1JUIGlkIDxXS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4gV0tQYWdlR2V0RnVsbHNjcmVl
bkRlbGVnYXRlKFdLUGFnZVJlZiBwYWdlKTsKIAogQGNsYXNzIFdLTmF2aWdhdGlvbjsKIFdLX0VY
UE9SVCBXS05hdmlnYXRpb24gKldLUGFnZUxvYWRVUkxSZXF1ZXN0UmV0dXJuaW5nTmF2aWdhdGlv
bihXS1BhZ2VSZWYgcGFnZSwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5tbQppbmRl
eCAzYTZmNGM1OTI2MmNlNmQwZWVhMjQwYzZkMmZiNzllYjE3ODZjNDdiLi5mMjA4OGIzNzA0ZTBi
ZDAwYTcxOGVjN2RhOTEwYTRkNWIxZTk2YTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5tbQpAQCAtMTY1LDE0ICsxNjUs
MTQgQEAgYm9vbCBXS1BhZ2VJc1BsYXlpbmdWaWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuKFdLUGFn
ZVJlZiBwYWdlUmVmKQogfQogI2VuZGlmCiAKLXZvaWQgV0tQYWdlU2V0RnVsbHNjcmVlbkRlbGVn
YXRlKFdLUGFnZVJlZiBwYWdlLCBpZCA8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPiBkZWxlZ2F0ZSkK
K3ZvaWQgV0tQYWdlU2V0RnVsbHNjcmVlbkRlbGVnYXRlKFdLUGFnZVJlZiBwYWdlLCBpZCA8V0tG
dWxsc2NyZWVuRGVsZWdhdGU+IGRlbGVnYXRlKQogewogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQ
SSkKICAgICBkb3duY2FzdDxXZWJLaXQ6OkZ1bGxzY3JlZW5DbGllbnQ+KFdlYktpdDo6dG9JbXBs
KHBhZ2UpLT5mdWxsc2NyZWVuQ2xpZW50KCkpLnNldERlbGVnYXRlKGRlbGVnYXRlKTsKICNlbmRp
ZgogfQogCi1pZCA8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPiBXS1BhZ2VHZXRGdWxsc2NyZWVuRGVs
ZWdhdGUoV0tQYWdlUmVmIHBhZ2UpCitpZCA8V0tGdWxsc2NyZWVuRGVsZWdhdGU+IFdLUGFnZUdl
dEZ1bGxzY3JlZW5EZWxlZ2F0ZShXS1BhZ2VSZWYgcGFnZSkKIHsKICNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCiAgICAgcmV0dXJuIGRvd25jYXN0PFdlYktpdDo6RnVsbHNjcmVlbkNsaWVudD4o
V2ViS2l0Ojp0b0ltcGwocGFnZSktPmZ1bGxzY3JlZW5DbGllbnQoKSkuZGVsZWdhdGUoKS5hdXRv
cmVsZWFzZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLRnVsbHNjcmVlbkRlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tGdWxsc2NyZWVuRGVsZWdhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YmFlZjNiOGU2M2QyMDQzNGQ2
NDNhNmE2MjdjMjZkZmY5NjhiMmU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLRnVsbHNjcmVlbkRlbGVnYXRlLmgKQEAgLTAsMCArMSw2MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKK0Bwcm90b2NvbCBXS0Z1bGxzY3JlZW5EZWxl
Z2F0ZSA8TlNPYmplY3Q+CisKK0BvcHRpb25hbAorCisjaWYgVEFSR0VUX09TX0lQSE9ORQorLSAo
dm9pZCl3ZWJWaWV3V2lsbEVudGVyRWxlbWVudEZ1bGxzY3JlZW46KFdLV2ViVmlldyAqKXdlYlZp
ZXc7CistICh2b2lkKXdlYlZpZXdEaWRFbnRlckVsZW1lbnRGdWxsc2NyZWVuOihXS1dlYlZpZXcg
Kil3ZWJWaWV3OworLSAodm9pZCl3ZWJWaWV3V2lsbEV4aXRFbGVtZW50RnVsbHNjcmVlbjooV0tX
ZWJWaWV3ICopd2ViVmlldzsKKy0gKHZvaWQpd2ViVmlld0RpZEV4aXRFbGVtZW50RnVsbHNjcmVl
bjooV0tXZWJWaWV3ICopd2ViVmlldzsKKyNlbHNlCistICh2b2lkKXdlYlZpZXdXaWxsRW50ZXJG
dWxsc2NyZWVuOihOU1ZpZXcgKil3ZWJWaWV3OworLSAodm9pZCl3ZWJWaWV3RGlkRW50ZXJGdWxs
c2NyZWVuOihOU1ZpZXcgKil3ZWJWaWV3OworLSAodm9pZCl3ZWJWaWV3V2lsbEV4aXRGdWxsc2Ny
ZWVuOihOU1ZpZXcgKil3ZWJWaWV3OworLSAodm9pZCl3ZWJWaWV3RGlkRXhpdEZ1bGxzY3JlZW46
KE5TVmlldyAqKXdlYlZpZXc7CisjZW5kaWYKKworLy8gRklYTUU6IHJlbW92ZSB0aGlzIGFmdGVy
IFNhZmFyaSBhZG9wdHMgdGhlIG5ldyBBUEkKKyNpZiBUQVJHRVRfT1NfSVBIT05FCistICh2b2lk
KV93ZWJWaWV3V2lsbEVudGVyRWxlbWVudEZ1bGxzY3JlZW46KFdLV2ViVmlldyAqKXdlYlZpZXc7
CistICh2b2lkKV93ZWJWaWV3RGlkRW50ZXJFbGVtZW50RnVsbHNjcmVlbjooV0tXZWJWaWV3ICop
d2ViVmlldzsKKy0gKHZvaWQpX3dlYlZpZXdXaWxsRXhpdEVsZW1lbnRGdWxsc2NyZWVuOihXS1dl
YlZpZXcgKil3ZWJWaWV3OworLSAodm9pZClfd2ViVmlld0RpZEV4aXRFbGVtZW50RnVsbHNjcmVl
bjooV0tXZWJWaWV3ICopd2ViVmlldzsKKyNlbHNlCistICh2b2lkKV93ZWJWaWV3V2lsbEVudGVy
RnVsbHNjcmVlbjooTlNWaWV3ICopd2ViVmlldzsKKy0gKHZvaWQpX3dlYlZpZXdEaWRFbnRlckZ1
bGxzY3JlZW46KE5TVmlldyAqKXdlYlZpZXc7CistICh2b2lkKV93ZWJWaWV3V2lsbEV4aXRGdWxs
c2NyZWVuOihOU1ZpZXcgKil3ZWJWaWV3OworLSAodm9pZClfd2ViVmlld0RpZEV4aXRGdWxsc2Ny
ZWVuOihOU1ZpZXcgKil3ZWJWaWV3OworI2VuZGlmCisKK0BlbmQKKworLy8gRklYTUU6IHJlbW92
ZSB0aGlzIGFmdGVyIFNhZmFyaSBhZG9wdHMgdGhlIG5ldyBBUEkKKy8vIFdLX0NMQVNTX0RFUFJF
Q0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tGdWxsc2NyZWVuRGVsZWdhdGUiLCBtYWNvcygxMC4x
MywgV0tfTUFDX1RCQSksIGlvcygxMS4zLCBXS19JT1NfVEJBKSkKK0Bwcm90b2NvbCBfV0tGdWxs
c2NyZWVuRGVsZWdhdGUgPFdLRnVsbHNjcmVlbkRlbGVnYXRlPgorQGVuZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgKaW5kZXggZTBjZTE3
YmQzNmYyNTMyN2E3MGQ4NzM1OTEwYTFiNmE3NGU2M2MzYS4uNGM1YzExOTE1NDRhMGI4MTljMGFi
NWUwNGQ0NjdiM2YxYWZjNGUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCkBAIC02NCw2ICs2NCwxMCBAQCBXS19DTEFTU19BVkFJ
TEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKICovCiBAcHJvcGVydHkgKG5vbmF0b21pYywg
Z2V0dGVyPWlzVGV4dEludGVyYWN0aW9uRW5hYmxlZCkgQk9PTCB0ZXh0SW50ZXJhY3Rpb25FbmFi
bGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMyksIGlvcygxNC41KSk7CiAKKy8qISBAYWJz
dHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBmdWxsc2NyZWVuIHN1cHBv
cnQgaXMgZW5hYmxlZC4KKyovCitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBmdWxsU2NyZWVu
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworCiBAZW5kCiAKIEBpbnRlcmZhY2UgV0tQcmVmZXJlbmNlcyAoV0tEZXByZWNhdGVkKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5j
ZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5t
bQppbmRleCA3MTY0Zjg4NjAwNzhlMjA3MWFiOGM1ZmQ0NjY4OGYzNGRmYWFhZjIyLi42NDFkMjk4
M2VmMzVlMjI2ZjE4ZTcxZTZkMTQ1OGQ0YWRkZTUwMWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQpAQCAtMTUzLDYgKzE1Mywx
NiBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBfcHJlZmVyZW5jZXMt
PnNldFRleHRJbnRlcmFjdGlvbkVuYWJsZWQodGV4dEludGVyYWN0aW9uRW5hYmxlZCk7CiB9CiAK
Ky0gKEJPT0wpZnVsbFNjcmVlbkVuYWJsZWQKK3sKKyAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5m
dWxsU2NyZWVuRW5hYmxlZCgpOworfQorCistICh2b2lkKXNldEZ1bGxTY3JlZW5FbmFibGVkOihC
T09MKWZ1bGxTY3JlZW5FbmFibGVkCit7CisgICAgX3ByZWZlcmVuY2VzLT5zZXRGdWxsU2NyZWVu
RW5hYmxlZChmdWxsU2NyZWVuRW5hYmxlZCk7Cit9CisKICNwcmFnbWEgbWFyayBPUyBYLXNwZWNp
ZmljIG1ldGhvZHMKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggNTA2
MDNhMWI5ZjJmNzg5YjU2MGMwM2ZkYmNiYTk0NzVlNDk0YzJmYy4uOWE3N2RhZTZiODkxNTRlNDVi
MTQwMzY1ZjY2YTAxZDIwYmU1MDY4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTEwNyw2ICsxMDcs
NyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tQaXRjaENvcnJlY3Rpb25BbGdvcml0
aG0pIHsKIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBjb25maWd1cmVkIG9uIHRoZSBXS1dlYnNp
dGVEYXRhU3RvcmUuCiAvLyBGSVhNRTogVGhpcyBwcm9wZXJ0eSBzaG91bGQgbm90IGhhdmUgdGhl
IHZlcmIgImlzIiBpbiBpdC4KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE9mZmxp
bmVBcHBsaWNhdGlvbkNhY2hlSXNFbmFibGVkOikgQk9PTCBfb2ZmbGluZUFwcGxpY2F0aW9uQ2Fj
aGVJc0VuYWJsZWQ7CisvLyBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRGdWxsU2Ny
ZWVuRW5hYmxlZDopIEJPT0wgX2Z1bGxTY3JlZW5FbmFibGVkIFdLX0FQSV9ERVBSRUNBVEVEX1dJ
VEhfUkVQTEFDRU1FTlQoInNpdGVTcGVjaWZpY1F1aXJrc0VuYWJsZWQiLCBtYWNvcygxMC4xMSwg
V0tfTUFDX1RCQSksIGlvcyg5LjAsIFdLX0lPU19UQkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldEZ1bGxTY3JlZW5FbmFibGVkOikgQk9PTCBfZnVsbFNjcmVlbkVuYWJsZWQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldFNob3VsZFN1cHByZXNzS2V5Ym9hcmRJbnB1dER1cmluZ1Byb3Zp
c2lvbmFsTmF2aWdhdGlvbjopIEJPT0wgX3Nob3VsZFN1cHByZXNzS2V5Ym9hcmRJbnB1dER1cmlu
Z1Byb3Zpc2lvbmFsTmF2aWdhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpLCBp
b3MoMTAuMykpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dzUGljdHVy
ZUluUGljdHVyZU1lZGlhUGxheWJhY2s6KSBCT09MIF9hbGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVk
aWFQbGF5YmFjayBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaAppbmRleCA5MTZh
NWY2YmFkMWNmNTNmNzIxMzMxYTkyMzI1MDMyODM0M2E1ZmQ4Li5lMWRiMDAzOGNiYThhZmFjMTBh
MDAwODA5N2ZhNWY0OTFjNDA5NDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5oCkBAIC00Nyw2ICs0Nyw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JF
R0lOCiAKIEBwcm90b2NvbCBXS05hdmlnYXRpb25EZWxlZ2F0ZTsKIEBwcm90b2NvbCBXS1VJRGVs
ZWdhdGU7CitAcHJvdG9jb2wgV0tGdWxsc2NyZWVuRGVsZWdhdGU7CiAKIC8qIQogIEEgV0tXZWJW
aWV3IG9iamVjdCBkaXNwbGF5cyBpbnRlcmFjdGl2ZSBXZWIgY29udGVudC4KQEAgLTM3NSw2ICsz
NzYsMTMgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tNZWRpYUNhcHR1cmVTdGF0ZSkg
ewogLSAodm9pZClyZXF1ZXN0TWVkaWFQbGF5YmFja1N0YXRlOih2b2lkICheKShXS01lZGlhUGxh
eWJhY2tTdGF0ZSkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBM
QUNFTUVOVCgicmVxdWVzdE1lZGlhUGxheWJhY2tTdGF0ZVdpdGhDb21wbGV0aW9uSGFuZGxlcjoi
LCBtYWNvcygxMS4zLCAxMi4wKSwgaW9zKDE0LjUsIDE1LjApKTsKICNlbmRpZgogCisvKiEgQGFi
c3RyYWN0CisgQHBhcmFtCisgQGRpc2N1c3Npb24KKyAqLworQHByb3BlcnR5IChudWxsYWJsZSwg
bm9uYXRvbWljLCB3ZWFrKSBpZDxXS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4gZnVsbHNjcmVlbkRlbGVn
YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgaXNJbkZ1bGxzY3JlZW4gV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSk7CisKIC8qISBAYWJzdHJhY3QgVGhlIHN0
YXRlIG9mIGNhbWVyYSBjYXB0dXJlIG9uIGEgd2ViIHBhZ2UuCiAgQGRpc2N1c3Npb24gQGxpbmsg
V0tXZWJWaWV3IEAvbGluayBpcyBrZXktdmFsdWUgb2JzZXJ2aW5nIChLVk8pIGNvbXBsaWFudAog
IGZvciB0aGlzIHByb3BlcnR5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0KaW5kZXggYWE0NjkwZWJmYTQ3NWNmYzQ4ODEwNGFhN2I1MGQwMjlkMTQx
MDZjYi4uZDZlNGM1MmYxYTJmMDFkYjlmMTQxMGY0MTk4NmIyOGYwZjFlZWRhMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC02Niw2ICs2
Niw3IEBACiAjaW1wb3J0ICJXS0ZpbmRDb25maWd1cmF0aW9uLmgiCiAjaW1wb3J0ICJXS0ZpbmRS
ZXN1bHRJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tGcmFtZUluZm9Qcml2YXRlLmgiCisjaW1wb3J0
ICJXS0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oIgogI2ltcG9ydCAiV0tIaXN0b3J5RGVsZWdhdGVQcml2
YXRlLmgiCiAjaW1wb3J0ICJXS0xheW91dE1vZGUuaCIKICNpbXBvcnQgIldLTlNEYXRhLmgiCkBA
IC03OCw4ICs3OSw4IEBACiAjaW1wb3J0ICJXS1NhZmVCcm93c2luZ1dhcm5pbmcuaCIKICNpbXBv
cnQgIldLU2hhcmVkQVBJQ2FzdC5oIgogI2ltcG9ydCAiV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24u
aCIKLSNpbXBvcnQgPFdlYktpdC9XS1VJRGVsZWdhdGUuaD4KLSNpbXBvcnQgPFdlYktpdC9XS1VJ
RGVsZWdhdGVQcml2YXRlLmg+CisjaW1wb3J0ICJXS1VJRGVsZWdhdGUuaCIKKyNpbXBvcnQgIldL
VUlEZWxlZ2F0ZVByaXZhdGUuaCIKICNpbXBvcnQgIldLVXNlckNvbnRlbnRDb250cm9sbGVySW50
ZXJuYWwuaCIKICNpbXBvcnQgIldLV2ViVmlld0NvbmZpZ3VyYXRpb25JbnRlcm5hbC5oIgogI2lt
cG9ydCAiV0tXZWJWaWV3Q29udGVudFByb3ZpZGVyLmgiCkBAIC0xMDYsNyArMTA3LDYgQEAKICNp
bXBvcnQgIl9XS0ZpbmREZWxlZ2F0ZS5oIgogI2ltcG9ydCAiX1dLRnJhbWVIYW5kbGVJbnRlcm5h
bC5oIgogI2ltcG9ydCAiX1dLRnJhbWVUcmVlTm9kZUludGVybmFsLmgiCi0jaW1wb3J0ICJfV0tG
dWxsc2NyZWVuRGVsZWdhdGUuaCIKICNpbXBvcnQgIl9XS0hpdFRlc3RSZXN1bHRJbnRlcm5hbC5o
IgogI2ltcG9ydCAiX1dLSW5wdXREZWxlZ2F0ZS5oIgogI2ltcG9ydCAiX1dLSW5zcGVjdG9ySW50
ZXJuYWwuaCIKQEAgLTEwMzksNiArMTAzOSwzMiBAQCBzdGF0aWMgV0tNZWRpYVBsYXliYWNrU3Rh
dGUgdG9XS01lZGlhUGxheWJhY2tTdGF0ZShXZWJLaXQ6Ok1lZGlhUGxheWJhY2tTdGF0ZSBtZQog
ICAgIH0pOwogfQogCistICh2b2lkKXNldEZ1bGxzY3JlZW5EZWxlZ2F0ZTooaWQ8V0tGdWxsc2Ny
ZWVuRGVsZWdhdGU+KWRlbGVnYXRlCit7CisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAg
IGlmIChpczxXZWJLaXQ6OkZ1bGxzY3JlZW5DbGllbnQ+KF9wYWdlLT5mdWxsc2NyZWVuQ2xpZW50
KCkpKQorICAgICAgICBkb3duY2FzdDxXZWJLaXQ6OkZ1bGxzY3JlZW5DbGllbnQ+KF9wYWdlLT5m
dWxsc2NyZWVuQ2xpZW50KCkpLnNldERlbGVnYXRlKGRlbGVnYXRlKTsKKyNlbmRpZgorfQorCist
IChpZDxXS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4pZnVsbHNjcmVlbkRlbGVnYXRlCit7CisjaWYgRU5B
QkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIGlmIChpczxXZWJLaXQ6OkZ1bGxzY3JlZW5DbGllbnQ+
KF9wYWdlLT5mdWxsc2NyZWVuQ2xpZW50KCkpKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8V2Vi
S2l0OjpGdWxsc2NyZWVuQ2xpZW50PihfcGFnZS0+ZnVsbHNjcmVlbkNsaWVudCgpKS5kZWxlZ2F0
ZSgpLmF1dG9yZWxlYXNlKCk7CisjZW5kaWYKKyAgICByZXR1cm4gbmlsOworfQorCistIChCT09M
KWlzSW5GdWxsc2NyZWVuCit7CisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIHJldHVy
biBfcGFnZS0+ZnVsbFNjcmVlbk1hbmFnZXIoKSAmJiBfcGFnZS0+ZnVsbFNjcmVlbk1hbmFnZXIo
KS0+aXNGdWxsU2NyZWVuKCk7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQor
CiAtIChXS01lZGlhQ2FwdHVyZVN0YXRlKWNhbWVyYUNhcHR1cmVTdGF0ZQogewogICAgIGF1dG8g
c3RhdGUgPSBfcGFnZS0+cmVwb3J0ZWRNZWRpYVN0YXRlKCk7CkBAIC0zNTQ1LDIzICszNTcxLDI2
IEBAIHN0YXRpYyBpbmxpbmUgT3B0aW9uU2V0PFdlYktpdDo6RmluZE9wdGlvbnM+IHRvRmluZE9w
dGlvbnMoX1dLRmluZE9wdGlvbnMgd2tGaW5kCiAjZW5kaWYKIH0KIAorLy8gRklYTUU6IFJlbW92
ZSB0aGlzIGFmdGVyIFNhZmFyaSBhZG9wdHMgdGhlIG5ldyBBUEkKIC0gKHZvaWQpX3NldEZ1bGxz
Y3JlZW5EZWxlZ2F0ZTooaWQ8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPilkZWxlZ2F0ZQogewogI2lm
IEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBpZiAoaXM8V2ViS2l0OjpGdWxsc2NyZWVuQ2xp
ZW50PihfcGFnZS0+ZnVsbHNjcmVlbkNsaWVudCgpKSkKLSAgICAgICAgZG93bmNhc3Q8V2ViS2l0
OjpGdWxsc2NyZWVuQ2xpZW50PihfcGFnZS0+ZnVsbHNjcmVlbkNsaWVudCgpKS5zZXREZWxlZ2F0
ZShkZWxlZ2F0ZSk7CisgICAgICAgIGRvd25jYXN0PFdlYktpdDo6RnVsbHNjcmVlbkNsaWVudD4o
X3BhZ2UtPmZ1bGxzY3JlZW5DbGllbnQoKSkuX3NldERlbGVnYXRlKGRlbGVnYXRlKTsKICNlbmRp
ZgogfQogCisvLyBGSVhNRTogUmVtb3ZlIHRoaXMgYWZ0ZXIgU2FmYXJpIGFkb3B0cyB0aGUgbmV3
IEFQSQogLSAoaWQ8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPilfZnVsbHNjcmVlbkRlbGVnYXRlCiB7
CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIGlmIChpczxXZWJLaXQ6OkZ1bGxzY3Jl
ZW5DbGllbnQ+KF9wYWdlLT5mdWxsc2NyZWVuQ2xpZW50KCkpKQotICAgICAgICByZXR1cm4gZG93
bmNhc3Q8V2ViS2l0OjpGdWxsc2NyZWVuQ2xpZW50PihfcGFnZS0+ZnVsbHNjcmVlbkNsaWVudCgp
KS5kZWxlZ2F0ZSgpLmF1dG9yZWxlYXNlKCk7CisgICAgICAgIHJldHVybiBkb3duY2FzdDxXZWJL
aXQ6OkZ1bGxzY3JlZW5DbGllbnQ+KF9wYWdlLT5mdWxsc2NyZWVuQ2xpZW50KCkpLl9kZWxlZ2F0
ZSgpLmF1dG9yZWxlYXNlKCk7CiAjZW5kaWYKICAgICByZXR1cm4gbmlsOwogfQogCisvLyBGSVhN
RTogUmVtb3ZlIHRoaXMgYWZ0ZXIgU2FmYXJpIGFkb3B0cyB0aGUgbmV3IEFQSQogLSAoQk9PTClf
aXNJbkZ1bGxzY3JlZW4KIHsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRnVsbHNjcmVlbkRlbGVnYXRl
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRnVsbHNjcmVlbkRlbGVn
YXRlLmgKaW5kZXggZmViNTc5MDQzYjg1NTY5YmU4ODhlMWMxNmY0MDEzOGNhNWMyYWFiOS4uMWRl
ZGQ2Njc5MTE1MWZmYjhjNGIwZWM5MWQxN2EyZTBhNzE3N2RiNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGdWxsc2NyZWVuRGVsZWdhdGUu
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yMywyMyArMjMsNCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICov
CiAKLSNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KLQotV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMyksIGlvcygxMS4zKSkKLUBwcm90b2NvbCBfV0tGdWxsc2NyZWVuRGVsZWdhdGUg
PE5TT2JqZWN0PgotCi1Ab3B0aW9uYWwKLQotI2lmIFRBUkdFVF9PU19JUEhPTkUKLS0gKHZvaWQp
X3dlYlZpZXdXaWxsRW50ZXJFbGVtZW50RnVsbHNjcmVlbjooV0tXZWJWaWV3ICopd2ViVmlldzsK
LS0gKHZvaWQpX3dlYlZpZXdEaWRFbnRlckVsZW1lbnRGdWxsc2NyZWVuOihXS1dlYlZpZXcgKil3
ZWJWaWV3OwotLSAodm9pZClfd2ViVmlld1dpbGxFeGl0RWxlbWVudEZ1bGxzY3JlZW46KFdLV2Vi
VmlldyAqKXdlYlZpZXc7Ci0tICh2b2lkKV93ZWJWaWV3RGlkRXhpdEVsZW1lbnRGdWxsc2NyZWVu
OihXS1dlYlZpZXcgKil3ZWJWaWV3OwotI2Vsc2UKLS0gKHZvaWQpX3dlYlZpZXdXaWxsRW50ZXJG
dWxsc2NyZWVuOihOU1ZpZXcgKil3ZWJWaWV3OwotLSAodm9pZClfd2ViVmlld0RpZEVudGVyRnVs
bHNjcmVlbjooTlNWaWV3ICopd2ViVmlldzsKLS0gKHZvaWQpX3dlYlZpZXdXaWxsRXhpdEZ1bGxz
Y3JlZW46KE5TVmlldyAqKXdlYlZpZXc7Ci0tICh2b2lkKV93ZWJWaWV3RGlkRXhpdEZ1bGxzY3Jl
ZW46KE5TVmlldyAqKXdlYlZpZXc7Ci0jZW5kaWYKLQotQGVuZAorI2ltcG9ydCA8V2ViS2l0L1dL
RnVsbHNjcmVlbkRlbGVnYXRlLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9GdWxsc2NyZWVuQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9GdWxsc2NyZWVuQ2xpZW50LmgKaW5kZXggZDUzYzJlZmRlNjA4NDAxYTU5NjdiZGJiYmI3MDli
Y2Q5OTJkYmFjMy4uYWU1N2ZkYWY2YjE2M2ZhNzcxMjMyZTFiNGFmYTA5MDY2ZDA0YTBiMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0Z1bGxzY3JlZW5DbGllbnQuaApA
QCAtMzksNiArMzksNyBAQCB1c2luZyBXS0Z1bGxzY3JlZW5DbGllbnRWaWV3ID0gTlNWaWV3Owog
dXNpbmcgV0tGdWxsc2NyZWVuQ2xpZW50VmlldyA9IFdLV2ViVmlldzsKICNlbmRpZgogCitAcHJv
dG9jb2wgV0tGdWxsc2NyZWVuRGVsZWdhdGU7CiBAcHJvdG9jb2wgX1dLRnVsbHNjcmVlbkRlbGVn
YXRlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTUwLDggKzUxLDExIEBAIHB1YmxpYzoKIAog
ICAgIGJvb2wgaXNUeXBlKEFQSTo6RnVsbHNjcmVlbkNsaWVudDo6VHlwZSB0YXJnZXQpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHRhcmdldCA9PSBBUEk6OkZ1bGxzY3JlZW5DbGllbnQ6OldlYktp
dFR5cGU7IH07CiAKLSAgICBSZXRhaW5QdHI8aWQ8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPj4gZGVs
ZWdhdGUoKTsKLSAgICB2b2lkIHNldERlbGVnYXRlKGlkPF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4p
OworICAgIFJldGFpblB0cjxpZDxXS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4+IGRlbGVnYXRlKCk7Cisg
ICAgdm9pZCBzZXREZWxlZ2F0ZShpZDxXS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4pOworCisgICAgUmV0
YWluUHRyPGlkPF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4+IF9kZWxlZ2F0ZSgpOworICAgIHZvaWQg
X3NldERlbGVnYXRlKGlkPF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4pOwogCiAgICAgdm9pZCB3aWxs
RW50ZXJGdWxsc2NyZWVuKFdlYlBhZ2VQcm94eSopIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkRW50
ZXJGdWxsc2NyZWVuKFdlYlBhZ2VQcm94eSopIG92ZXJyaWRlOwpAQCAtNjAsNyArNjQsOCBAQCBw
dWJsaWM6CiAKIHByaXZhdGU6CiAgICAgV0tGdWxsc2NyZWVuQ2xpZW50VmlldyAqbV93ZWJWaWV3
OwotICAgIFdlYWtPYmpDUHRyPGlkIDxfV0tGdWxsc2NyZWVuRGVsZWdhdGU+ID4gbV9kZWxlZ2F0
ZTsKKyAgICBXZWFrT2JqQ1B0cjxpZCA8V0tGdWxsc2NyZWVuRGVsZWdhdGU+ID4gbV9kZWxlZ2F0
ZTsKKyAgICBXZWFrT2JqQ1B0cjxpZCA8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPiA+IG1fZGVwcmVj
YXRlZERlbGVnYXRlOwogCiAgICAgc3RydWN0IHsKICNpZiBQTEFURk9STShNQUMpCkBAIC03NSw2
ICs4MCwyMCBAQCBwcml2YXRlOgogICAgICAgICBib29sIHdlYlZpZXdEaWRFeGl0RWxlbWVudEZ1
bGxzY3JlZW4gOiAxOwogI2VuZGlmCiAgICAgfSBtX2RlbGVnYXRlTWV0aG9kczsKKworICAgIHN0
cnVjdCB7CisjaWYgUExBVEZPUk0oTUFDKQorICAgICAgICBib29sIHdlYlZpZXdXaWxsRW50ZXJG
dWxsc2NyZWVuIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVuIDog
MTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3V2lsbEV4aXRGdWxsc2NyZWVuIDogMTsKKyAgICAgICAg
Ym9vbCB3ZWJWaWV3RGlkRXhpdEZ1bGxzY3JlZW4gOiAxOworI2Vsc2UKKyAgICAgICAgYm9vbCB3
ZWJWaWV3V2lsbEVudGVyRWxlbWVudEZ1bGxzY3JlZW4gOiAxOworICAgICAgICBib29sIHdlYlZp
ZXdEaWRFbnRlckVsZW1lbnRGdWxsc2NyZWVuIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3V2ls
bEV4aXRFbGVtZW50RnVsbHNjcmVlbiA6IDE7CisgICAgICAgIGJvb2wgd2ViVmlld0RpZEV4aXRF
bGVtZW50RnVsbHNjcmVlbiA6IDE7CisjZW5kaWYKKyAgICB9IG1fZGVwcmVjYXRlZERlbGVnYXRl
TWV0aG9kczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVudC5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL0Z1bGxzY3JlZW5DbGllbnQubW0KaW5kZXggYzJmYmM3NWQ2M2M2
NmIyMmM4ZTZiOGE0NDY5YzhlNDNjZjI1NDhkMy4uOGY4OTg0NWE4OGVkNDUyOTVkMmI4YTUwMWMx
OTIyZjgxMmU5YzkxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
RnVsbHNjcmVlbkNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9G
dWxsc2NyZWVuQ2xpZW50Lm1tCkBAIC0yNiw2ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIK
ICNpbXBvcnQgIkZ1bGxzY3JlZW5DbGllbnQuaCIKIAorI2ltcG9ydCAiV0tGdWxsc2NyZWVuRGVs
ZWdhdGUuaCIKICNpbXBvcnQgIl9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oIgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKQEAgLTM1LDI1ICszNiw0NyBAQCBGdWxsc2NyZWVuQ2xpZW50OjpGdWxsc2NyZWVu
Q2xpZW50KFdLRnVsbHNjcmVlbkNsaWVudFZpZXcgKndlYlZpZXcpCiB7CiB9CiAKLVJldGFpblB0
cjxpZCA8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPj4gRnVsbHNjcmVlbkNsaWVudDo6ZGVsZWdhdGUo
KQorUmV0YWluUHRyPGlkIDxXS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4+IEZ1bGxzY3JlZW5DbGllbnQ6
OmRlbGVnYXRlKCkKIHsKICAgICByZXR1cm4gbV9kZWxlZ2F0ZS5nZXQoKTsKIH0KIAotdm9pZCBG
dWxsc2NyZWVuQ2xpZW50OjpzZXREZWxlZ2F0ZShpZCA8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPiBk
ZWxlZ2F0ZSkKK1JldGFpblB0cjxpZCA8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPj4gRnVsbHNjcmVl
bkNsaWVudDo6X2RlbGVnYXRlKCkKK3sKKyAgICByZXR1cm4gbV9kZXByZWNhdGVkRGVsZWdhdGUu
Z2V0KCk7Cit9CisKK3ZvaWQgRnVsbHNjcmVlbkNsaWVudDo6c2V0RGVsZWdhdGUoaWQgPFdLRnVs
bHNjcmVlbkRlbGVnYXRlPiBkZWxlZ2F0ZSkKIHsKICAgICBtX2RlbGVnYXRlID0gZGVsZWdhdGU7
CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dpbGxF
bnRlckZ1bGxzY3JlZW4gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihf
d2ViVmlld1dpbGxFbnRlckZ1bGxzY3JlZW46KV07Ci0gICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld0RpZEVudGVyRnVsbHNjcmVlbiA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVuOildOwotICAgIG1fZGVsZWdhdGVNZXRo
b2RzLndlYlZpZXdXaWxsRXhpdEZ1bGxzY3JlZW4gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3Rvcihfd2ViVmlld1dpbGxFeGl0RnVsbHNjcmVlbjopXTsKLSAgICBtX2RlbGVn
YXRlTWV0aG9kcy53ZWJWaWV3RGlkRXhpdEZ1bGxzY3JlZW4gPSBbZGVsZWdhdGUgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuOildOworICAgIG1f
ZGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxsRW50ZXJGdWxsc2NyZWVuID0gW2RlbGVnYXRlIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlld1dpbGxFbnRlckZ1bGxzY3JlZW46KV07
CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEVudGVyRnVsbHNjcmVlbiA9IFtkZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXdEaWRFbnRlckZ1bGxzY3Jl
ZW46KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dpbGxFeGl0RnVsbHNjcmVlbiA9
IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXdXaWxsRXhpdEZ1
bGxzY3JlZW46KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEV4aXRGdWxsc2Ny
ZWVuID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlld0RpZEV4
aXRGdWxsc2NyZWVuOildOworI2Vsc2UKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2ls
bEVudGVyRWxlbWVudEZ1bGxzY3JlZW4gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3Rvcih3ZWJWaWV3V2lsbEVudGVyRWxlbWVudEZ1bGxzY3JlZW46KV07CisgICAgbV9kZWxl
Z2F0ZU1ldGhvZHMud2ViVmlld0RpZEVudGVyRWxlbWVudEZ1bGxzY3JlZW4gPSBbZGVsZWdhdGUg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3RGlkRW50ZXJFbGVtZW50RnVsbHNj
cmVlbjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2lsbEV4aXRFbGVtZW50RnVs
bHNjcmVlbiA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXdX
aWxsRXhpdEVsZW1lbnRGdWxsc2NyZWVuOildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZp
ZXdEaWRFeGl0RWxlbWVudEZ1bGxzY3JlZW4gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3Rvcih3ZWJWaWV3RGlkRXhpdEVsZW1lbnRGdWxsc2NyZWVuOildOworI2VuZGlmCit9
CisKK3ZvaWQgRnVsbHNjcmVlbkNsaWVudDo6X3NldERlbGVnYXRlKGlkIDxfV0tGdWxsc2NyZWVu
RGVsZWdhdGU+IGRlbGVnYXRlKQoreworICAgIG1fZGVwcmVjYXRlZERlbGVnYXRlID0gZGVsZWdh
dGU7CisKKyNpZiBQTEFURk9STShNQUMpCisgICAgbV9kZXByZWNhdGVkRGVsZWdhdGVNZXRob2Rz
LndlYlZpZXdXaWxsRW50ZXJGdWxsc2NyZWVuID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoX3dlYlZpZXdXaWxsRW50ZXJGdWxsc2NyZWVuOildOworICAgIG1fZGVwcmVj
YXRlZERlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVuID0gW2RlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdEaWRFbnRlckZ1bGxzY3JlZW46
KV07CisgICAgbV9kZXByZWNhdGVkRGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxsRXhpdEZ1bGxz
Y3JlZW4gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld1dp
bGxFeGl0RnVsbHNjcmVlbjopXTsKKyAgICBtX2RlcHJlY2F0ZWREZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld0RpZEV4aXRGdWxsc2NyZWVuID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoX3dlYlZpZXdEaWRFeGl0RnVsbHNjcmVlbjopXTsKICNlbHNlCi0gICAgbV9kZWxlZ2F0
ZU1ldGhvZHMud2ViVmlld1dpbGxFbnRlckVsZW1lbnRGdWxsc2NyZWVuID0gW2RlbGVnYXRlIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdXaWxsRW50ZXJFbGVtZW50RnVsbHNj
cmVlbjopXTsKLSAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRW50ZXJFbGVtZW50RnVs
bHNjcmVlbiA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3
RGlkRW50ZXJFbGVtZW50RnVsbHNjcmVlbjopXTsKLSAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3V2lsbEV4aXRFbGVtZW50RnVsbHNjcmVlbiA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKF93ZWJWaWV3V2lsbEV4aXRFbGVtZW50RnVsbHNjcmVlbjopXTsKLSAgICBt
X2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRXhpdEVsZW1lbnRGdWxsc2NyZWVuID0gW2RlbGVn
YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdEaWRFeGl0RWxlbWVudEZ1
bGxzY3JlZW46KV07CisgICAgbV9kZXByZWNhdGVkRGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxs
RW50ZXJFbGVtZW50RnVsbHNjcmVlbiA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3V2lsbEVudGVyRWxlbWVudEZ1bGxzY3JlZW46KV07CisgICAgbV9kZXBy
ZWNhdGVkRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRFbnRlckVsZW1lbnRGdWxsc2NyZWVuID0g
W2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdEaWRFbnRlckVs
ZW1lbnRGdWxsc2NyZWVuOildOworICAgIG1fZGVwcmVjYXRlZERlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3V2lsbEV4aXRFbGVtZW50RnVsbHNjcmVlbiA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKF93ZWJWaWV3V2lsbEV4aXRFbGVtZW50RnVsbHNjcmVlbjopXTsKKyAgICBt
X2RlcHJlY2F0ZWREZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEV4aXRFbGVtZW50RnVsbHNjcmVl
biA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3RGlkRXhp
dEVsZW1lbnRGdWxsc2NyZWVuOildOwogI2VuZGlmCiB9CiAKQEAgLTYxLDEwICs4NCwxNiBAQCB2
b2lkIEZ1bGxzY3JlZW5DbGllbnQ6OndpbGxFbnRlckZ1bGxzY3JlZW4oV2ViUGFnZVByb3h5KikK
IHsKICNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdX
aWxsRW50ZXJGdWxsc2NyZWVuKQotICAgICAgICBbbV9kZWxlZ2F0ZS5nZXQoKSBfd2ViVmlld1dp
bGxFbnRlckZ1bGxzY3JlZW46bV93ZWJWaWV3XTsKKyAgICAgICAgW21fZGVsZWdhdGUuZ2V0KCkg
d2ViVmlld1dpbGxFbnRlckZ1bGxzY3JlZW46bV93ZWJWaWV3XTsKKworICAgIGlmIChtX2RlcHJl
Y2F0ZWREZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dpbGxFbnRlckZ1bGxzY3JlZW4pCisgICAgICAg
IFttX2RlcHJlY2F0ZWREZWxlZ2F0ZS5nZXQoKSBfd2ViVmlld1dpbGxFbnRlckZ1bGxzY3JlZW46
bV93ZWJWaWV3XTsKICNlbHNlCiAgICAgaWYgKG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxs
RW50ZXJFbGVtZW50RnVsbHNjcmVlbikKLSAgICAgICAgW21fZGVsZWdhdGUuZ2V0KCkgX3dlYlZp
ZXdXaWxsRW50ZXJFbGVtZW50RnVsbHNjcmVlbjptX3dlYlZpZXddOworICAgICAgICBbbV9kZWxl
Z2F0ZS5nZXQoKSB3ZWJWaWV3V2lsbEVudGVyRWxlbWVudEZ1bGxzY3JlZW46bV93ZWJWaWV3XTsK
KworICAgIGlmIChtX2RlcHJlY2F0ZWREZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dpbGxFbnRlckVs
ZW1lbnRGdWxsc2NyZWVuKQorICAgICAgICBbbV9kZXByZWNhdGVkRGVsZWdhdGUuZ2V0KCkgX3dl
YlZpZXdXaWxsRW50ZXJFbGVtZW50RnVsbHNjcmVlbjptX3dlYlZpZXddOwogI2VuZGlmCiB9CiAK
QEAgLTcyLDEwICsxMDEsMTYgQEAgdm9pZCBGdWxsc2NyZWVuQ2xpZW50OjpkaWRFbnRlckZ1bGxz
Y3JlZW4oV2ViUGFnZVByb3h5KikKIHsKICNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKG1fZGVs
ZWdhdGVNZXRob2RzLndlYlZpZXdEaWRFbnRlckZ1bGxzY3JlZW4pCi0gICAgICAgIFttX2RlbGVn
YXRlLmdldCgpIF93ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVuOm1fd2ViVmlld107CisgICAgICAg
IFttX2RlbGVnYXRlLmdldCgpIHdlYlZpZXdEaWRFbnRlckZ1bGxzY3JlZW46bV93ZWJWaWV3XTsK
KworICAgIGlmIChtX2RlcHJlY2F0ZWREZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEVudGVyRnVs
bHNjcmVlbikKKyAgICAgICAgW21fZGVwcmVjYXRlZERlbGVnYXRlLmdldCgpIF93ZWJWaWV3RGlk
RW50ZXJGdWxsc2NyZWVuOm1fd2ViVmlld107CiAjZWxzZQogICAgIGlmIChtX2RlbGVnYXRlTWV0
aG9kcy53ZWJWaWV3RGlkRW50ZXJFbGVtZW50RnVsbHNjcmVlbikKLSAgICAgICAgW21fZGVsZWdh
dGUuZ2V0KCkgX3dlYlZpZXdEaWRFbnRlckVsZW1lbnRGdWxsc2NyZWVuOm1fd2ViVmlld107Cisg
ICAgICAgIFttX2RlbGVnYXRlLmdldCgpIHdlYlZpZXdEaWRFbnRlckVsZW1lbnRGdWxsc2NyZWVu
Om1fd2ViVmlld107CisKKyAgICBpZiAobV9kZXByZWNhdGVkRGVsZWdhdGVNZXRob2RzLndlYlZp
ZXdEaWRFbnRlckVsZW1lbnRGdWxsc2NyZWVuKQorICAgICAgICBbbV9kZXByZWNhdGVkRGVsZWdh
dGUuZ2V0KCkgX3dlYlZpZXdEaWRFbnRlckVsZW1lbnRGdWxsc2NyZWVuOm1fd2ViVmlld107CiAj
ZW5kaWYKIH0KIApAQCAtODMsMTAgKzExOCwxNiBAQCB2b2lkIEZ1bGxzY3JlZW5DbGllbnQ6Ondp
bGxFeGl0RnVsbHNjcmVlbihXZWJQYWdlUHJveHkqKQogewogI2lmIFBMQVRGT1JNKE1BQykKICAg
ICBpZiAobV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dpbGxFeGl0RnVsbHNjcmVlbikKLSAgICAg
ICAgW21fZGVsZWdhdGUuZ2V0KCkgX3dlYlZpZXdXaWxsRXhpdEZ1bGxzY3JlZW46bV93ZWJWaWV3
XTsKKyAgICAgICAgW21fZGVsZWdhdGUuZ2V0KCkgd2ViVmlld1dpbGxFeGl0RnVsbHNjcmVlbjpt
X3dlYlZpZXddOworCisgICAgaWYgKG1fZGVwcmVjYXRlZERlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
V2lsbEV4aXRGdWxsc2NyZWVuKQorICAgICAgICBbbV9kZXByZWNhdGVkRGVsZWdhdGUuZ2V0KCkg
X3dlYlZpZXdXaWxsRXhpdEZ1bGxzY3JlZW46bV93ZWJWaWV3XTsKICNlbHNlCiAgICAgaWYgKG1f
ZGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxsRXhpdEVsZW1lbnRGdWxsc2NyZWVuKQotICAgICAg
ICBbbV9kZWxlZ2F0ZS5nZXQoKSBfd2ViVmlld1dpbGxFeGl0RWxlbWVudEZ1bGxzY3JlZW46bV93
ZWJWaWV3XTsKKyAgICAgICAgW21fZGVsZWdhdGUuZ2V0KCkgd2ViVmlld1dpbGxFeGl0RWxlbWVu
dEZ1bGxzY3JlZW46bV93ZWJWaWV3XTsKKworICAgIGlmIChtX2RlcHJlY2F0ZWREZWxlZ2F0ZU1l
dGhvZHMud2ViVmlld1dpbGxFeGl0RWxlbWVudEZ1bGxzY3JlZW4pCisgICAgICAgIFttX2RlcHJl
Y2F0ZWREZWxlZ2F0ZS5nZXQoKSBfd2ViVmlld1dpbGxFeGl0RWxlbWVudEZ1bGxzY3JlZW46bV93
ZWJWaWV3XTsKICNlbmRpZgogfQogCkBAIC05NCwxMCArMTM1LDE2IEBAIHZvaWQgRnVsbHNjcmVl
bkNsaWVudDo6ZGlkRXhpdEZ1bGxzY3JlZW4oV2ViUGFnZVByb3h5KikKIHsKICNpZiBQTEFURk9S
TShNQUMpCiAgICAgaWYgKG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRFeGl0RnVsbHNjcmVl
bikKLSAgICAgICAgW21fZGVsZWdhdGUuZ2V0KCkgX3dlYlZpZXdEaWRFeGl0RnVsbHNjcmVlbjpt
X3dlYlZpZXddOworICAgICAgICBbbV9kZWxlZ2F0ZS5nZXQoKSB3ZWJWaWV3RGlkRXhpdEZ1bGxz
Y3JlZW46bV93ZWJWaWV3XTsKKworICAgIGlmIChtX2RlcHJlY2F0ZWREZWxlZ2F0ZU1ldGhvZHMu
d2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuKQorICAgICAgICBbbV9kZXByZWNhdGVkRGVsZWdhdGUu
Z2V0KCkgX3dlYlZpZXdEaWRFeGl0RnVsbHNjcmVlbjptX3dlYlZpZXddOwogI2Vsc2UKICAgICBp
ZiAobV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEV4aXRFbGVtZW50RnVsbHNjcmVlbikKLSAg
ICAgICAgW21fZGVsZWdhdGUuZ2V0KCkgX3dlYlZpZXdEaWRFeGl0RWxlbWVudEZ1bGxzY3JlZW46
bV93ZWJWaWV3XTsKKyAgICAgICAgW21fZGVsZWdhdGUuZ2V0KCkgd2ViVmlld0RpZEV4aXRFbGVt
ZW50RnVsbHNjcmVlbjptX3dlYlZpZXddOworCisgICAgaWYgKG1fZGVwcmVjYXRlZERlbGVnYXRl
TWV0aG9kcy53ZWJWaWV3RGlkRXhpdEVsZW1lbnRGdWxsc2NyZWVuKQorICAgICAgICBbbV9kZXBy
ZWNhdGVkRGVsZWdhdGUuZ2V0KCkgX3dlYlZpZXdEaWRFeGl0RWxlbWVudEZ1bGxzY3JlZW46bV93
ZWJWaWV3XTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA0YzMyOThlNmUwYTk2NzQ3Y2VmMGEyYmExMTM1MzQzY2Mz
M2QyMWJhLi5mNDZiM2MwOTdhYjIwZWYzNTlmOWE4ZjMzNTZjODU1Njg1YTE3MWE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ0Myw2
ICs0NDMsNyBAQAogCQkxQ0JCRTRBMDE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUNCQkU0OUUxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMUNCQkU0QTExOUI2NkM1MzAwNkI3RDgxIC8qIFdlYklu
c3BlY3RvclVJTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFDQkJFNDlGMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3Nh
Z2VzLmggKi87IH07CiAJCTFDRjE4RjNGMjZCQjVEOTUwMDRCMTcyMiAvKiBMb2dJbml0aWFsaXph
dGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
Q0YxOEYzRTI2QkI1RDkwMDA0QjE3MjIgLyogTG9nSW5pdGlhbGl6YXRpb24uY3BwICovOyB9Owor
CQkxRDA2Q0JGQzI2RkU2OTE4MDA3NDg3RDggLyogV0tGdWxsc2NyZWVuRGVsZWdhdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEMDZDQkZCMjZGRTY5
MTgwMDc0ODdEOCAvKiBXS0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFENEQ3MzcwMjNBOUU1NDcwMDcxN0EyNSAv
KiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM2QjIzQTlERjU1MDA3
MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICov
OyB9OwogCQkxRDRENzM3MTIzQTlFNTYyMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUQ0RDczNkMyM0E5REY2MDAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyTWVzc2FnZXMuaCAqLzsgfTsKIAkJMUQ0RDczNzYyM0E5RUQxODAwNzE3QTI1IC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM3NTIzQTlFQjY4MDA3MTdBMjUgLyog
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLzsgfTsKQEAgLTMw
OTEsNiArMzA5Miw3IEBACiAJCTFEMDUzMEQzMjU5MTYyQzkwMEU0MzZGNyAvKiBXZWJLaXQtbWFj
b3MucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9ICJXZWJLaXQtbWFjb3MucGxpc3QiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxRDA1MzBENDI1OTE2MkM5MDBFNDM2RjcgLyogV2ViS2l0LXdh
dGNob3MucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9ICJXZWJLaXQtd2F0Y2hvcy5wbGlzdCI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMDUzMEQ1MjU5MTk0MTUwMEU0MzZGNyAvKiBnZW5l
cmF0ZS1mZWF0dXJlLWZsYWdzLXBsaXN0LnNoICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQuc2g7IHBhdGggPSAiZ2VuZXJhdGUtZmVh
dHVyZS1mbGFncy1wbGlzdC5zaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEMDZD
QkZCMjZGRTY5MTgwMDc0ODdEOCAvKiBXS0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXS0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxRDBCNjYxOTI2MjRDMTE4MDBGOTcxMkYgLyogV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTWVkaWFLZXlTeXN0ZW1D
bGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDBCNjYxQTI2MjRDMTk2
MDBGOTcxMkYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuY3BwOyBwYXRoID0gRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxRDBFQ0VBQTIzRkM4NTg0MDBEMTcyRjYgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNv
Y29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29h
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjYxMyw2ICs2NjE1LDcgQEAKIAkJ
MUE0M0U4MjYxODhGMzhFMjAwOUU0RDMwIC8qIERlcHJlY2F0ZWQgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUNENzhFMTE4MURCN0U1QUQwMDE0QTJERSAv
KiBfV0tGdWxsc2NyZWVuRGVsZWdhdGUuaCAqLywKIAkJCQkxQUZCNEM3MDFBREYxNTVEMDBCMzMz
MzkgLyogX1dLV2Vic2l0ZURhdGFTdG9yZS5oICovLAogCQkJCTFBRkI0QzZGMUFERjE1NUQwMEIz
MzMzOSAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlLm1tICovLAogCQkJCTFBNEE5M0I2MUFFQjA4RUEw
MDE1MEU5QyAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaCAqLywKQEAgLTgxNzIsNyAr
ODE3NSw2IEBACiAJCQkJNUMxMjFFODgyNDEwMjkwRDAwNDg2RjlCIC8qIF9XS0ZyYW1lVHJlZU5v
ZGUuaCAqLywKIAkJCQk1QzEyMUU4NjI0MTAyOTBEMDA0ODZGOUIgLyogX1dLRnJhbWVUcmVlTm9k
ZS5tbSAqLywKIAkJCQk1QzEyMUU4NzI0MTAyOTBEMDA0ODZGOUIgLyogX1dLRnJhbWVUcmVlTm9k
ZUludGVybmFsLmggKi8sCi0JCQkJQ0Q3OEUxMTgxREI3RTVBRDAwMTRBMkRFIC8qIF9XS0Z1bGxz
Y3JlZW5EZWxlZ2F0ZS5oICovLAogCQkJCTYzRkFCRTE5MUU5NzBENjUwMDMwMTFENSAvKiBfV0tH
ZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLmggKi8sCiAJCQkJNjNDMzJDMjQxRTk4MTBE
OTAwNjk5QkQwIC8qIF9XS0dlb2xvY2F0aW9uUG9zaXRpb24uaCAqLywKIAkJCQk2M0MzMkMyMzFF
OTgxMEQ5MDA2OTlCRDAgLyogX1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5tbSAqLywKQEAgLTgzMzks
NiArODM0MSw3IEBACiAJCQkJMUE0RDY2NDkxOEEzMDMwRTAwRDgyRTIxIC8qIFdLRnJhbWVJbmZv
Lm1tICovLAogCQkJCTJERjlFRUU3MUE3ODI0NTUwMEI2Q0ZCRSAvKiBXS0ZyYW1lSW5mb0ludGVy
bmFsLmggKi8sCiAJCQkJMUE2RkEyMUQxQkQwNDM1QjAwQUFBNjUwIC8qIFdLRnJhbWVJbmZvUHJp
dmF0ZS5oICovLAorCQkJCTFEMDZDQkZCMjZGRTY5MTgwMDc0ODdEOCAvKiBXS0Z1bGxzY3JlZW5E
ZWxlZ2F0ZS5oICovLAogCQkJCTFBNDIyRjhBMThCMjlCNTQwMEQ4Q0Q5NiAvKiBXS0hpc3RvcnlE
ZWxlZ2F0ZVByaXZhdGUuaCAqLywKIAkJCQk1MUQxMjQ4NDFFNzM0QUUzMDAyQjI4MjAgLyogV0tI
VFRQQ29va2llU3RvcmUuaCAqLywKIAkJCQk1MUQxMjQ4NTFFNzM0QUUzMDAyQjI4MjAgLyogV0tI
VFRQQ29va2llU3RvcmUubW0gKi8sCkBAIC0xMzA2OSw2ICsxMzA3Miw3IEBACiAJCQkJMkQzQTY1
RTcxQTdDM0FBNzAwQ0FDNjM3IC8qIFdLRnJhbWVJbmZvUmVmLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQ0I5RjZBNTExMjNERDBEMDBBMTM3RTAgLyogV0tGcmFtZVBvbGljeUxpc3RlbmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlFMUFFQTIyRjE0Njg3QkRCMDA4MDQ1NjkgLyogV0tGdWxsS2V5Ym9h
cmRBY2Nlc3NXYXRjaGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkxRDA2Q0JGQzI2RkU2OTE4MDA3
NDg3RDggLyogV0tGdWxsc2NyZWVuRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzI4
MzFEMjAxQkQ3OUQwMEU2RTc0NSAvKiBXS0Z1bGxzY3JlZW5TdGFja1ZpZXcuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUNEMEM2ODMxMjAxRkQxMDEwMEE1OTQwOSAvKiBXS0Z1bGxTY3JlZW5WaWV3Q29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDQTg1QzkxMzJBQkE0RTAwRTk2MURGIC8q
IFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGVlZjhhZGI3NTdmYjM1
MjEwMmI4MjA1NmU4Y2VhODI0ZGY3ZjU1NDQuLjY4NDQwYjdiOGM4YzliOTY0M2IzNmQzN2Q0M2M3
Yjk1NWY1M2EzOGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wOS0yNCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZA
YXBwbGUuY29tPgorCisgICAgICAgIFByb21vdGUgV0tQcmVmZXJlbmNlcy5fZnVsbFNjcmVlbkVu
YWJsZWQgdG8gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzA3ODQKKyAgICAgICAgPHJkYXI6Ly84MzI1NTMwOD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL21hYy9BcHBEZWxl
Z2F0ZS5tOgorICAgICAgICAoLVtCcm93c2VyQXBwRGVsZWdhdGUgZGVmYXVsdENvbmZpZ3VyYXRp
b25dKToKKwogMjAyMS0wOS0yMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFBDTSBzaG91bGQgaW5jbHVkZSB0aGUgYnVuZGxlIElEIG9mIHRo
ZSBhcHAgZnJvbSB3aGljaCBpdCBvcmlnaW5hdGVkCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJv
d3Nlci9tYWMvQXBwRGVsZWdhdGUubSBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9BcHBEZWxlZ2F0
ZS5tCmluZGV4IDc1ZDY5MWRlMjZiZmE5ZjNlZGMyMGM1MzMwMGI3YTMxNDliNzM5ZGEuLjQ1Zjk4
ZDE2Zjg2ZTU0YjVjYTcxNzU1YmRmOGM0YjViYzg1NDQ0ZjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01p
bmlCcm93c2VyL21hYy9BcHBEZWxlZ2F0ZS5tCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9B
cHBEZWxlZ2F0ZS5tCkBAIC0xNDAsNyArMTQwLDcgQEAgLSAoV0tXZWJWaWV3Q29uZmlndXJhdGlv
biAqKWRlZmF1bHRDb25maWd1cmF0aW9uCiAgICAgICAgICAgICBbY29uZmlndXJhdGlvbi5wcmVm
ZXJlbmNlcyBfc2V0RW5hYmxlZDplbmFibGVkIGZvckludGVybmFsRGVidWdGZWF0dXJlOmZlYXR1
cmVdOwogICAgICAgICB9CiAKLSAgICAgICAgY29uZmlndXJhdGlvbi5wcmVmZXJlbmNlcy5fZnVs
bFNjcmVlbkVuYWJsZWQgPSBZRVM7CisgICAgICAgIGNvbmZpZ3VyYXRpb24ucHJlZmVyZW5jZXMu
ZnVsbFNjcmVlbkVuYWJsZWQgPSBZRVM7CiAgICAgICAgIGNvbmZpZ3VyYXRpb24ucHJlZmVyZW5j
ZXMuX2FsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrID0gWUVTOwogICAgICAgICBj
b25maWd1cmF0aW9uLnByZWZlcmVuY2VzLl9kZXZlbG9wZXJFeHRyYXNFbmFibGVkID0gWUVTOwog
ICAgICAgICBjb25maWd1cmF0aW9uLnByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFi
bGVkID0gWUVTOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439363</attachid>
            <date>2021-09-27 09:40:18 -0700</date>
            <delta_ts>2021-09-30 22:19:51 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-230784-20210927094017.patch</filename>
            <type>text/plain</type>
            <size>31263</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyOTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNkMWE1NDNkMjhiOWU1MWMz
NjdjMGY3NmZjYTZjZTljMDg0YTYwM2IuLjlhZmQzNWY0ZmM5OWZkYjY3NzhjMDdlZjMyNjIyY2Vm
Njc3OWQ2MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjEtMDktMjQgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBQcm9tb3RlIFdLUHJlZmVyZW5jZXMu
X2Z1bGxTY3JlZW5FbmFibGVkIHRvIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNzg0CisgICAgICAgIDxyZGFyOi8vODMyNTUzMDg+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
bWFjL1dLUGFnZVByaXZhdGVNYWMubW06CisgICAgICAgIChXS1BhZ2VTZXRGdWxsc2NyZWVuRGVs
ZWdhdGUpOgorICAgICAgICAoV0tQYWdlR2V0RnVsbHNjcmVlbkRlbGVnYXRlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLRnVsbHNjcmVlbkRlbGVnYXRlLmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGdWxsc2NyZWVuRGVsZWdhdGUu
aC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dL
UHJlZmVyZW5jZXMgZnVsbFNjcmVlbkVuYWJsZWRdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNl
cyBzZXRGdWxsU2NyZWVuRW5hYmxlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToK
KyAgICAgICAgKC1bV0tXZWJWaWV3IHNldEZ1bGxzY3JlZW5EZWxlZ2F0ZTpdKToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IGZ1bGxzY3JlZW5EZWxlZ2F0ZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcg
aXNJbkZ1bGxzY3JlZW5dKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRGdWxsc2NyZWVuRGVs
ZWdhdGU6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZnVsbHNjcmVlbkRlbGVnYXRlXSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGdWxsc2NyZWVuRGVsZWdhdGUuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVudC5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9GdWxsc2NyZWVuQ2xpZW50Lm1tOgorICAgICAgICAoV2ViS2l0OjpGdWxs
c2NyZWVuQ2xpZW50OjpkZWxlZ2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OkZ1bGxzY3JlZW5DbGll
bnQ6Ol9kZWxlZ2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OkZ1bGxzY3JlZW5DbGllbnQ6OnNldERl
bGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6RnVsbHNjcmVlbkNsaWVudDo6X3NldERlbGVnYXRl
KToKKyAgICAgICAgKFdlYktpdDo6RnVsbHNjcmVlbkNsaWVudDo6d2lsbEVudGVyRnVsbHNjcmVl
bik6CisgICAgICAgIChXZWJLaXQ6OkZ1bGxzY3JlZW5DbGllbnQ6OmRpZEVudGVyRnVsbHNjcmVl
bik6CisgICAgICAgIChXZWJLaXQ6OkZ1bGxzY3JlZW5DbGllbnQ6OndpbGxFeGl0RnVsbHNjcmVl
bik6CisgICAgICAgIChXZWJLaXQ6OkZ1bGxzY3JlZW5DbGllbnQ6OmRpZEV4aXRGdWxsc2NyZWVu
KToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMS0w
OS0yMiAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCAobWFudWFsbHkpIHJldmVydGluZyByMjgyODU2LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL21hYy9XS1BhZ2VQcml2YXRlTWFjLmgKaW5kZXggNDg4OWNi
ZDYwNTI4ZmQ5NWY4ZTJlM2U3M2Q1YzkzOTZiZWVkZTk2MC4uOWM2MWEyNDdjNjdmYmQwNzYyYzcz
Y2ZhY2NkN2YyNzM1MGVlY2E5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5oCkBAIC01Niw5ICs1Niw5IEBAIGV4dGVybiAi
QyIgewogV0tfRVhQT1JUIGlkIDxfV0tPYnNlcnZhYmxlUGFnZVN0YXRlPiBXS1BhZ2VDcmVhdGVP
YnNlcnZhYmxlU3RhdGUoV0tQYWdlUmVmIHBhZ2UpIE5TX1JFVFVSTlNfUkVUQUlORUQ7CiBXS19F
WFBPUlQgX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKldLUGFnZUdldE9iamVjdFJlZ2lzdHJ5KFdL
UGFnZVJlZiBwYWdlKTsKIAotQHByb3RvY29sIF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZTsKLVdLX0VY
UE9SVCB2b2lkIFdLUGFnZVNldEZ1bGxzY3JlZW5EZWxlZ2F0ZShXS1BhZ2VSZWYgcGFnZSwgaWQg
PF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4pOwotV0tfRVhQT1JUIGlkIDxfV0tGdWxsc2NyZWVuRGVs
ZWdhdGU+IFdLUGFnZUdldEZ1bGxzY3JlZW5EZWxlZ2F0ZShXS1BhZ2VSZWYgcGFnZSk7CitAcHJv
dG9jb2wgV0tGdWxsc2NyZWVuRGVsZWdhdGU7CitXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRGdWxs
c2NyZWVuRGVsZWdhdGUoV0tQYWdlUmVmIHBhZ2UsIGlkIDxXS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4p
OworV0tfRVhQT1JUIGlkIDxXS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4gV0tQYWdlR2V0RnVsbHNjcmVl
bkRlbGVnYXRlKFdLUGFnZVJlZiBwYWdlKTsKIAogQGNsYXNzIFdLTmF2aWdhdGlvbjsKIFdLX0VY
UE9SVCBXS05hdmlnYXRpb24gKldLUGFnZUxvYWRVUkxSZXF1ZXN0UmV0dXJuaW5nTmF2aWdhdGlv
bihXS1BhZ2VSZWYgcGFnZSwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5tbQppbmRl
eCAzYTZmNGM1OTI2MmNlNmQwZWVhMjQwYzZkMmZiNzllYjE3ODZjNDdiLi5mMjA4OGIzNzA0ZTBi
ZDAwYTcxOGVjN2RhOTEwYTRkNWIxZTk2YTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5tbQpAQCAtMTY1LDE0ICsxNjUs
MTQgQEAgYm9vbCBXS1BhZ2VJc1BsYXlpbmdWaWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuKFdLUGFn
ZVJlZiBwYWdlUmVmKQogfQogI2VuZGlmCiAKLXZvaWQgV0tQYWdlU2V0RnVsbHNjcmVlbkRlbGVn
YXRlKFdLUGFnZVJlZiBwYWdlLCBpZCA8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPiBkZWxlZ2F0ZSkK
K3ZvaWQgV0tQYWdlU2V0RnVsbHNjcmVlbkRlbGVnYXRlKFdLUGFnZVJlZiBwYWdlLCBpZCA8V0tG
dWxsc2NyZWVuRGVsZWdhdGU+IGRlbGVnYXRlKQogewogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQ
SSkKICAgICBkb3duY2FzdDxXZWJLaXQ6OkZ1bGxzY3JlZW5DbGllbnQ+KFdlYktpdDo6dG9JbXBs
KHBhZ2UpLT5mdWxsc2NyZWVuQ2xpZW50KCkpLnNldERlbGVnYXRlKGRlbGVnYXRlKTsKICNlbmRp
ZgogfQogCi1pZCA8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPiBXS1BhZ2VHZXRGdWxsc2NyZWVuRGVs
ZWdhdGUoV0tQYWdlUmVmIHBhZ2UpCitpZCA8V0tGdWxsc2NyZWVuRGVsZWdhdGU+IFdLUGFnZUdl
dEZ1bGxzY3JlZW5EZWxlZ2F0ZShXS1BhZ2VSZWYgcGFnZSkKIHsKICNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCiAgICAgcmV0dXJuIGRvd25jYXN0PFdlYktpdDo6RnVsbHNjcmVlbkNsaWVudD4o
V2ViS2l0Ojp0b0ltcGwocGFnZSktPmZ1bGxzY3JlZW5DbGllbnQoKSkuZGVsZWdhdGUoKS5hdXRv
cmVsZWFzZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLRnVsbHNjcmVlbkRlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tGdWxsc2NyZWVuRGVsZWdhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjM5NTgxMWQxZWNjMTExZWUy
MmZiMjM3NmE3N2UwYmNiM2RkZDE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLRnVsbHNjcmVlbkRlbGVnYXRlLmgKQEAgLTAsMCArMSw2MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKK0Bwcm90b2NvbCBXS0Z1bGxzY3JlZW5EZWxl
Z2F0ZSA8TlNPYmplY3Q+CisKK0BvcHRpb25hbAorCisjaWYgVEFSR0VUX09TX0lQSE9ORQorLSAo
dm9pZCl3ZWJWaWV3V2lsbEVudGVyRWxlbWVudEZ1bGxzY3JlZW46KFdLV2ViVmlldyAqKXdlYlZp
ZXc7CistICh2b2lkKXdlYlZpZXdEaWRFbnRlckVsZW1lbnRGdWxsc2NyZWVuOihXS1dlYlZpZXcg
Kil3ZWJWaWV3OworLSAodm9pZCl3ZWJWaWV3V2lsbEV4aXRFbGVtZW50RnVsbHNjcmVlbjooV0tX
ZWJWaWV3ICopd2ViVmlldzsKKy0gKHZvaWQpd2ViVmlld0RpZEV4aXRFbGVtZW50RnVsbHNjcmVl
bjooV0tXZWJWaWV3ICopd2ViVmlldzsKKyNlbHNlCistICh2b2lkKXdlYlZpZXdXaWxsRW50ZXJF
bGVtZW50RnVsbHNjcmVlbjooTlNWaWV3ICopd2ViVmlldzsKKy0gKHZvaWQpd2ViVmlld0RpZEVu
dGVyRWxlbWVudEZ1bGxzY3JlZW46KE5TVmlldyAqKXdlYlZpZXc7CistICh2b2lkKXdlYlZpZXdX
aWxsRXhpdEVsZW1lbnRGdWxsc2NyZWVuOihOU1ZpZXcgKil3ZWJWaWV3OworLSAodm9pZCl3ZWJW
aWV3RGlkRXhpdEVsZW1lbnRGdWxsc2NyZWVuOihOU1ZpZXcgKil3ZWJWaWV3OworI2VuZGlmCisK
Ky8vIEZJWE1FOiByZW1vdmUgdGhpcyBhZnRlciBTYWZhcmkgYWRvcHRzIHRoZSBuZXcgQVBJCisj
aWYgVEFSR0VUX09TX0lQSE9ORQorLSAodm9pZClfd2ViVmlld1dpbGxFbnRlckVsZW1lbnRGdWxs
c2NyZWVuOihXS1dlYlZpZXcgKil3ZWJWaWV3OworLSAodm9pZClfd2ViVmlld0RpZEVudGVyRWxl
bWVudEZ1bGxzY3JlZW46KFdLV2ViVmlldyAqKXdlYlZpZXc7CistICh2b2lkKV93ZWJWaWV3V2ls
bEV4aXRFbGVtZW50RnVsbHNjcmVlbjooV0tXZWJWaWV3ICopd2ViVmlldzsKKy0gKHZvaWQpX3dl
YlZpZXdEaWRFeGl0RWxlbWVudEZ1bGxzY3JlZW46KFdLV2ViVmlldyAqKXdlYlZpZXc7CisjZWxz
ZQorLSAodm9pZClfd2ViVmlld1dpbGxFbnRlckZ1bGxzY3JlZW46KE5TVmlldyAqKXdlYlZpZXc7
CistICh2b2lkKV93ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVuOihOU1ZpZXcgKil3ZWJWaWV3Owor
LSAodm9pZClfd2ViVmlld1dpbGxFeGl0RnVsbHNjcmVlbjooTlNWaWV3ICopd2ViVmlldzsKKy0g
KHZvaWQpX3dlYlZpZXdEaWRFeGl0RnVsbHNjcmVlbjooTlNWaWV3ICopd2ViVmlldzsKKyNlbmRp
ZgorCitAZW5kCisKKy8vIEZJWE1FOiByZW1vdmUgdGhpcyBhZnRlciBTYWZhcmkgYWRvcHRzIHRo
ZSBuZXcgQVBJCisvLyBXS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLRnVs
bHNjcmVlbkRlbGVnYXRlIiwgbWFjb3MoMTAuMTMsIFdLX01BQ19UQkEpLCBpb3MoMTEuMywgV0tf
SU9TX1RCQSkpCitAcHJvdG9jb2wgX1dLRnVsbHNjcmVlbkRlbGVnYXRlIDxXS0Z1bGxzY3JlZW5E
ZWxlZ2F0ZT4KK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmVmZXJlbmNlcy5oCmluZGV4IGUwY2UxN2JkMzZmMjUzMjdhNzBkODczNTkxMGExYjZhNzRl
NjNjM2EuLjRjNWMxMTkxNTQ0YTBiODE5YzBhYjVlMDRkNDY3YjNmMWFmYzRlMGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaApAQCAt
NjQsNiArNjQsMTAgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkp
CiAqLwogQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1pc1RleHRJbnRlcmFjdGlvbkVuYWJs
ZWQpIEJPT0wgdGV4dEludGVyYWN0aW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEx
LjMpLCBpb3MoMTQuNSkpOwogCisvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0
aW5nIHdoZXRoZXIgZnVsbHNjcmVlbiBzdXBwb3J0IGlzIGVuYWJsZWQuCisqLworQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgZnVsbFNjcmVlbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwogQGVuZAogCiBAaW50ZXJmYWNlIFdL
UHJlZmVyZW5jZXMgKFdLRGVwcmVjYXRlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KaW5kZXggNzE2NGY4ODYwMDc4ZTIwNzFhYjhj
NWZkNDY2ODhmMzRkZmFhYWYyMi4uNjQxZDI5ODNlZjM1ZTIyNmYxOGU3MWU2ZDE0NThkNGFkZGU1
MDFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
ZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
ZmVyZW5jZXMubW0KQEAgLTE1Myw2ICsxNTMsMTYgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAgICAgX3ByZWZlcmVuY2VzLT5zZXRUZXh0SW50ZXJhY3Rpb25FbmFibGVkKHRl
eHRJbnRlcmFjdGlvbkVuYWJsZWQpOwogfQogCistIChCT09MKWZ1bGxTY3JlZW5FbmFibGVkCit7
CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+ZnVsbFNjcmVlbkVuYWJsZWQoKTsKK30KKworLSAo
dm9pZClzZXRGdWxsU2NyZWVuRW5hYmxlZDooQk9PTClmdWxsU2NyZWVuRW5hYmxlZAoreworICAg
IF9wcmVmZXJlbmNlcy0+c2V0RnVsbFNjcmVlbkVuYWJsZWQoZnVsbFNjcmVlbkVuYWJsZWQpOwor
fQorCiAjcHJhZ21hIG1hcmsgT1MgWC1zcGVjaWZpYyBtZXRob2RzCiAKICNpZiBQTEFURk9STShN
QUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVm
ZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
ZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDUwNjAzYTFiOWYyZjc4OWI1NjBjMDNmZGJjYmE5NDc1
ZTQ5NGMyZmMuLjlhNzdkYWU2Yjg5MTU0ZTQ1YjE0MDM2NWY2NmEwMWQyMGJlNTA2OGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVu
Y2VzUHJpdmF0ZS5oCkBAIC0xMDcsNiArMTA3LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdl
ciwgX1dLUGl0Y2hDb3JyZWN0aW9uQWxnb3JpdGhtKSB7CiAvLyBGSVhNRTogVGhpcyBzaG91bGQg
YmUgY29uZmlndXJlZCBvbiB0aGUgV0tXZWJzaXRlRGF0YVN0b3JlLgogLy8gRklYTUU6IFRoaXMg
cHJvcGVydHkgc2hvdWxkIG5vdCBoYXZlIHRoZSB2ZXJiICJpcyIgaW4gaXQuCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRPZmZsaW5lQXBwbGljYXRpb25DYWNoZUlzRW5hYmxlZDop
IEJPT0wgX29mZmxpbmVBcHBsaWNhdGlvbkNhY2hlSXNFbmFibGVkOworLy8gQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0RnVsbFNjcmVlbkVuYWJsZWQ6KSBCT09MIF9mdWxsU2NyZWVu
RW5hYmxlZCBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJzaXRlU3BlY2lmaWNR
dWlya3NFbmFibGVkIiwgbWFjb3MoMTAuMTEsIFdLX01BQ19UQkEpLCBpb3MoOS4wLCBXS19JT1Nf
VEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRGdWxsU2NyZWVuRW5hYmxl
ZDopIEJPT0wgX2Z1bGxTY3JlZW5FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEp
LCBpb3MoOS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaG91bGRTdXBw
cmVzc0tleWJvYXJkSW5wdXREdXJpbmdQcm92aXNpb25hbE5hdmlnYXRpb246KSBCT09MIF9zaG91
bGRTdXBwcmVzc0tleWJvYXJkSW5wdXREdXJpbmdQcm92aXNpb25hbE5hdmlnYXRpb24gV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSwgaW9zKDEwLjMpKTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldEFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrOikgQk9P
TCBfYWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMyksIGlvcygxMS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3LmgKaW5kZXggOTE2YTVmNmJhZDFjZjUzZjcyMTMzMWE5MjMyNTAzMjgz
NDNhNWZkOC4uZTFkYjAwMzhjYmE4YWZhYzEwYTAwMDgwOTdmYTVmNDkxYzQwOTQ0OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaApAQCAtNDcsNiAr
NDcsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiBAcHJvdG9jb2wgV0tOYXZpZ2F0aW9u
RGVsZWdhdGU7CiBAcHJvdG9jb2wgV0tVSURlbGVnYXRlOworQHByb3RvY29sIFdLRnVsbHNjcmVl
bkRlbGVnYXRlOwogCiAvKiEKICBBIFdLV2ViVmlldyBvYmplY3QgZGlzcGxheXMgaW50ZXJhY3Rp
dmUgV2ViIGNvbnRlbnQuCkBAIC0zNzUsNiArMzc2LDEzIEBAIHR5cGVkZWYgTlNfRU5VTShOU0lu
dGVnZXIsIFdLTWVkaWFDYXB0dXJlU3RhdGUpIHsKIC0gKHZvaWQpcmVxdWVzdE1lZGlhUGxheWJh
Y2tTdGF0ZToodm9pZCAoXikoV0tNZWRpYVBsYXliYWNrU3RhdGUpKWNvbXBsZXRpb25IYW5kbGVy
IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoInJlcXVlc3RNZWRpYVBsYXliYWNr
U3RhdGVXaXRoQ29tcGxldGlvbkhhbmRsZXI6IiwgbWFjb3MoMTEuMywgMTIuMCksIGlvcygxNC41
LCAxNS4wKSk7CiAjZW5kaWYKIAorLyohIEBhYnN0cmFjdAorIEBwYXJhbQorIEBkaXNjdXNzaW9u
CisgKi8KK0Bwcm9wZXJ0eSAobnVsbGFibGUsIG5vbmF0b21pYywgd2VhaykgaWQ8V0tGdWxsc2Ny
ZWVuRGVsZWdhdGU+IGZ1bGxzY3JlZW5EZWxlZ2F0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBCT09MIGlzSW5GdWxsc2NyZWVuIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSkpOworCiAvKiEgQGFic3RyYWN0IFRoZSBzdGF0ZSBvZiBjYW1lcmEgY2FwdHVyZSBvbiBhIHdl
YiBwYWdlLgogIEBkaXNjdXNzaW9uIEBsaW5rIFdLV2ViVmlldyBAL2xpbmsgaXMga2V5LXZhbHVl
IG9ic2VydmluZyAoS1ZPKSBjb21wbGlhbnQKICBmb3IgdGhpcyBwcm9wZXJ0eS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IGFhNDY5MGVi
ZmE0NzVjZmM0ODgxMDRhYTdiNTBkMDI5ZDE0MTA2Y2IuLmQ2ZTRjNTJmMWEyZjAxZGI5ZjE0MTBm
NDE5ODZiMjhmMGYxZWVkYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQpAQCAtNjYsNiArNjYsNyBAQAogI2ltcG9ydCAiV0tGaW5kQ29uZmln
dXJhdGlvbi5oIgogI2ltcG9ydCAiV0tGaW5kUmVzdWx0SW50ZXJuYWwuaCIKICNpbXBvcnQgIldL
RnJhbWVJbmZvUHJpdmF0ZS5oIgorI2ltcG9ydCAiV0tGdWxsc2NyZWVuRGVsZWdhdGUuaCIKICNp
bXBvcnQgIldLSGlzdG9yeURlbGVnYXRlUHJpdmF0ZS5oIgogI2ltcG9ydCAiV0tMYXlvdXRNb2Rl
LmgiCiAjaW1wb3J0ICJXS05TRGF0YS5oIgpAQCAtNzgsOCArNzksOCBAQAogI2ltcG9ydCAiV0tT
YWZlQnJvd3NpbmdXYXJuaW5nLmgiCiAjaW1wb3J0ICJXS1NoYXJlZEFQSUNhc3QuaCIKICNpbXBv
cnQgIldLU25hcHNob3RDb25maWd1cmF0aW9uLmgiCi0jaW1wb3J0IDxXZWJLaXQvV0tVSURlbGVn
YXRlLmg+Ci0jaW1wb3J0IDxXZWJLaXQvV0tVSURlbGVnYXRlUHJpdmF0ZS5oPgorI2ltcG9ydCAi
V0tVSURlbGVnYXRlLmgiCisjaW1wb3J0ICJXS1VJRGVsZWdhdGVQcml2YXRlLmgiCiAjaW1wb3J0
ICJXS1VzZXJDb250ZW50Q29udHJvbGxlckludGVybmFsLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdD
b25maWd1cmF0aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLV2ViVmlld0NvbnRlbnRQcm92aWRl
ci5oIgpAQCAtMTA2LDcgKzEwNyw2IEBACiAjaW1wb3J0ICJfV0tGaW5kRGVsZWdhdGUuaCIKICNp
bXBvcnQgIl9XS0ZyYW1lSGFuZGxlSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0ZyYW1lVHJlZU5v
ZGVJbnRlcm5hbC5oIgotI2ltcG9ydCAiX1dLRnVsbHNjcmVlbkRlbGVnYXRlLmgiCiAjaW1wb3J0
ICJfV0tIaXRUZXN0UmVzdWx0SW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0lucHV0RGVsZWdhdGUu
aCIKICNpbXBvcnQgIl9XS0luc3BlY3RvckludGVybmFsLmgiCkBAIC0xMDM5LDYgKzEwMzksMzIg
QEAgc3RhdGljIFdLTWVkaWFQbGF5YmFja1N0YXRlIHRvV0tNZWRpYVBsYXliYWNrU3RhdGUoV2Vi
S2l0OjpNZWRpYVBsYXliYWNrU3RhdGUgbWUKICAgICB9KTsKIH0KIAorLSAodm9pZClzZXRGdWxs
c2NyZWVuRGVsZWdhdGU6KGlkPFdLRnVsbHNjcmVlbkRlbGVnYXRlPilkZWxlZ2F0ZQoreworI2lm
IEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICBpZiAoaXM8V2ViS2l0OjpGdWxsc2NyZWVuQ2xp
ZW50PihfcGFnZS0+ZnVsbHNjcmVlbkNsaWVudCgpKSkKKyAgICAgICAgZG93bmNhc3Q8V2ViS2l0
OjpGdWxsc2NyZWVuQ2xpZW50PihfcGFnZS0+ZnVsbHNjcmVlbkNsaWVudCgpKS5zZXREZWxlZ2F0
ZShkZWxlZ2F0ZSk7CisjZW5kaWYKK30KKworLSAoaWQ8V0tGdWxsc2NyZWVuRGVsZWdhdGU+KWZ1
bGxzY3JlZW5EZWxlZ2F0ZQoreworI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICBpZiAo
aXM8V2ViS2l0OjpGdWxsc2NyZWVuQ2xpZW50PihfcGFnZS0+ZnVsbHNjcmVlbkNsaWVudCgpKSkK
KyAgICAgICAgcmV0dXJuIGRvd25jYXN0PFdlYktpdDo6RnVsbHNjcmVlbkNsaWVudD4oX3BhZ2Ut
PmZ1bGxzY3JlZW5DbGllbnQoKSkuZGVsZWdhdGUoKS5hdXRvcmVsZWFzZSgpOworI2VuZGlmCisg
ICAgcmV0dXJuIG5pbDsKK30KKworLSAoQk9PTClpc0luRnVsbHNjcmVlbgoreworI2lmIEVOQUJM
RShGVUxMU0NSRUVOX0FQSSkKKyAgICByZXR1cm4gX3BhZ2UtPmZ1bGxTY3JlZW5NYW5hZ2VyKCkg
JiYgX3BhZ2UtPmZ1bGxTY3JlZW5NYW5hZ2VyKCktPmlzRnVsbFNjcmVlbigpOworI2Vsc2UKKyAg
ICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogLSAoV0tNZWRpYUNhcHR1cmVTdGF0ZSljYW1l
cmFDYXB0dXJlU3RhdGUKIHsKICAgICBhdXRvIHN0YXRlID0gX3BhZ2UtPnJlcG9ydGVkTWVkaWFT
dGF0ZSgpOwpAQCAtMzU0NSwyMyArMzU3MSwyNiBAQCBzdGF0aWMgaW5saW5lIE9wdGlvblNldDxX
ZWJLaXQ6OkZpbmRPcHRpb25zPiB0b0ZpbmRPcHRpb25zKF9XS0ZpbmRPcHRpb25zIHdrRmluZAog
I2VuZGlmCiB9CiAKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBhZnRlciBTYWZhcmkgYWRvcHRzIHRo
ZSBuZXcgQVBJCiAtICh2b2lkKV9zZXRGdWxsc2NyZWVuRGVsZWdhdGU6KGlkPF9XS0Z1bGxzY3Jl
ZW5EZWxlZ2F0ZT4pZGVsZWdhdGUKIHsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAg
aWYgKGlzPFdlYktpdDo6RnVsbHNjcmVlbkNsaWVudD4oX3BhZ2UtPmZ1bGxzY3JlZW5DbGllbnQo
KSkpCi0gICAgICAgIGRvd25jYXN0PFdlYktpdDo6RnVsbHNjcmVlbkNsaWVudD4oX3BhZ2UtPmZ1
bGxzY3JlZW5DbGllbnQoKSkuc2V0RGVsZWdhdGUoZGVsZWdhdGUpOworICAgICAgICBkb3duY2Fz
dDxXZWJLaXQ6OkZ1bGxzY3JlZW5DbGllbnQ+KF9wYWdlLT5mdWxsc2NyZWVuQ2xpZW50KCkpLl9z
ZXREZWxlZ2F0ZShkZWxlZ2F0ZSk7CiAjZW5kaWYKIH0KIAorLy8gRklYTUU6IFJlbW92ZSB0aGlz
IGFmdGVyIFNhZmFyaSBhZG9wdHMgdGhlIG5ldyBBUEkKIC0gKGlkPF9XS0Z1bGxzY3JlZW5EZWxl
Z2F0ZT4pX2Z1bGxzY3JlZW5EZWxlZ2F0ZQogewogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkK
ICAgICBpZiAoaXM8V2ViS2l0OjpGdWxsc2NyZWVuQ2xpZW50PihfcGFnZS0+ZnVsbHNjcmVlbkNs
aWVudCgpKSkKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PFdlYktpdDo6RnVsbHNjcmVlbkNsaWVu
dD4oX3BhZ2UtPmZ1bGxzY3JlZW5DbGllbnQoKSkuZGVsZWdhdGUoKS5hdXRvcmVsZWFzZSgpOwor
ICAgICAgICByZXR1cm4gZG93bmNhc3Q8V2ViS2l0OjpGdWxsc2NyZWVuQ2xpZW50PihfcGFnZS0+
ZnVsbHNjcmVlbkNsaWVudCgpKS5fZGVsZWdhdGUoKS5hdXRvcmVsZWFzZSgpOwogI2VuZGlmCiAg
ICAgcmV0dXJuIG5pbDsKIH0KIAorLy8gRklYTUU6IFJlbW92ZSB0aGlzIGFmdGVyIFNhZmFyaSBh
ZG9wdHMgdGhlIG5ldyBBUEkKIC0gKEJPT0wpX2lzSW5GdWxsc2NyZWVuCiB7CiAjaWYgRU5BQkxF
KEZVTExTQ1JFRU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oCmluZGV4IGZlYjU3OTA0M2I4NTU2OWJl
ODg4ZTFjMTZmNDAxMzhjYTVjMmFhYjkuLjFkZWRkNjY3OTExNTFmZmI4YzRiMGVjOTFkMTdhMmUw
YTcxNzdkYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tGdWxsc2NyZWVuRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRnVsbHNjcmVlbkRlbGVnYXRlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNi0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsMjMgKzIzLDQgQEAKICAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0
aW9uLmg+Ci0KLVdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMykpCi1AcHJv
dG9jb2wgX1dLRnVsbHNjcmVlbkRlbGVnYXRlIDxOU09iamVjdD4KLQotQG9wdGlvbmFsCi0KLSNp
ZiBUQVJHRVRfT1NfSVBIT05FCi0tICh2b2lkKV93ZWJWaWV3V2lsbEVudGVyRWxlbWVudEZ1bGxz
Y3JlZW46KFdLV2ViVmlldyAqKXdlYlZpZXc7Ci0tICh2b2lkKV93ZWJWaWV3RGlkRW50ZXJFbGVt
ZW50RnVsbHNjcmVlbjooV0tXZWJWaWV3ICopd2ViVmlldzsKLS0gKHZvaWQpX3dlYlZpZXdXaWxs
RXhpdEVsZW1lbnRGdWxsc2NyZWVuOihXS1dlYlZpZXcgKil3ZWJWaWV3OwotLSAodm9pZClfd2Vi
Vmlld0RpZEV4aXRFbGVtZW50RnVsbHNjcmVlbjooV0tXZWJWaWV3ICopd2ViVmlldzsKLSNlbHNl
Ci0tICh2b2lkKV93ZWJWaWV3V2lsbEVudGVyRnVsbHNjcmVlbjooTlNWaWV3ICopd2ViVmlldzsK
LS0gKHZvaWQpX3dlYlZpZXdEaWRFbnRlckZ1bGxzY3JlZW46KE5TVmlldyAqKXdlYlZpZXc7Ci0t
ICh2b2lkKV93ZWJWaWV3V2lsbEV4aXRGdWxsc2NyZWVuOihOU1ZpZXcgKil3ZWJWaWV3OwotLSAo
dm9pZClfd2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuOihOU1ZpZXcgKil3ZWJWaWV3OwotI2VuZGlm
Ci0KLUBlbmQKKyNpbXBvcnQgPFdlYktpdC9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVudC5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVudC5oCmluZGV4IGQ1
M2MyZWZkZTYwODQwMWE1OTY3YmRiYmJiNzA5YmNkOTkyZGJhYzMuLjg0NjU2ODY5MDRlZDQ4MWFj
NjBkMmUzNzIzZGVmZmVhMTlkY2M5ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL0Z1bGxzY3JlZW5DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9GdWxsc2NyZWVuQ2xpZW50LmgKQEAgLTM5LDYgKzM5LDcgQEAgdXNpbmcgV0tGdWxs
c2NyZWVuQ2xpZW50VmlldyA9IE5TVmlldzsKIHVzaW5nIFdLRnVsbHNjcmVlbkNsaWVudFZpZXcg
PSBXS1dlYlZpZXc7CiAjZW5kaWYKIAorQHByb3RvY29sIFdLRnVsbHNjcmVlbkRlbGVnYXRlOwog
QHByb3RvY29sIF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBA
IC01MCw4ICs1MSwxMSBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzVHlwZShBUEk6OkZ1bGxzY3Jl
ZW5DbGllbnQ6OlR5cGUgdGFyZ2V0KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0YXJnZXQgPT0g
QVBJOjpGdWxsc2NyZWVuQ2xpZW50OjpXZWJLaXRUeXBlOyB9OwogCi0gICAgUmV0YWluUHRyPGlk
PF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4+IGRlbGVnYXRlKCk7Ci0gICAgdm9pZCBzZXREZWxlZ2F0
ZShpZDxfV0tGdWxsc2NyZWVuRGVsZWdhdGU+KTsKKyAgICBSZXRhaW5QdHI8aWQ8V0tGdWxsc2Ny
ZWVuRGVsZWdhdGU+PiBkZWxlZ2F0ZSgpOworICAgIHZvaWQgc2V0RGVsZWdhdGUoaWQ8V0tGdWxs
c2NyZWVuRGVsZWdhdGU+KTsKKworICAgIFJldGFpblB0cjxpZDxfV0tGdWxsc2NyZWVuRGVsZWdh
dGU+PiBfZGVsZWdhdGUoKTsKKyAgICB2b2lkIF9zZXREZWxlZ2F0ZShpZDxfV0tGdWxsc2NyZWVu
RGVsZWdhdGU+KTsKIAogICAgIHZvaWQgd2lsbEVudGVyRnVsbHNjcmVlbihXZWJQYWdlUHJveHkq
KSBvdmVycmlkZTsKICAgICB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbihXZWJQYWdlUHJveHkqKSBv
dmVycmlkZTsKQEAgLTYwLDcgKzY0LDE1IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBXS0Z1
bGxzY3JlZW5DbGllbnRWaWV3ICptX3dlYlZpZXc7Ci0gICAgV2Vha09iakNQdHI8aWQgPF9XS0Z1
bGxzY3JlZW5EZWxlZ2F0ZT4gPiBtX2RlbGVnYXRlOworICAgIFdlYWtPYmpDUHRyPGlkIDxXS0Z1
bGxzY3JlZW5EZWxlZ2F0ZT4gPiBtX2RlbGVnYXRlOworICAgIFdlYWtPYmpDUHRyPGlkIDxfV0tG
dWxsc2NyZWVuRGVsZWdhdGU+ID4gbV9kZXByZWNhdGVkRGVsZWdhdGU7CisKKyAgICBzdHJ1Y3Qg
eworICAgICAgICBib29sIHdlYlZpZXdXaWxsRW50ZXJFbGVtZW50RnVsbHNjcmVlbiA6IDE7Cisg
ICAgICAgIGJvb2wgd2ViVmlld0RpZEVudGVyRWxlbWVudEZ1bGxzY3JlZW4gOiAxOworICAgICAg
ICBib29sIHdlYlZpZXdXaWxsRXhpdEVsZW1lbnRGdWxsc2NyZWVuIDogMTsKKyAgICAgICAgYm9v
bCB3ZWJWaWV3RGlkRXhpdEVsZW1lbnRGdWxsc2NyZWVuIDogMTsKKyAgICB9IG1fZGVsZWdhdGVN
ZXRob2RzOwogCiAgICAgc3RydWN0IHsKICNpZiBQTEFURk9STShNQUMpCkBAIC03NCw3ICs4Niw3
IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgd2ViVmlld1dpbGxFeGl0RWxlbWVudEZ1bGxzY3Jl
ZW4gOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRFeGl0RWxlbWVudEZ1bGxzY3JlZW4gOiAx
OwogI2VuZGlmCi0gICAgfSBtX2RlbGVnYXRlTWV0aG9kczsKKyAgICB9IG1fZGVwcmVjYXRlZERl
bGVnYXRlTWV0aG9kczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVudC5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0Z1bGxzY3JlZW5DbGllbnQubW0KaW5kZXggYzJmYmM3
NWQ2M2M2NmIyMmM4ZTZiOGE0NDY5YzhlNDNjZjI1NDhkMy4uNTgzZWQyMjQ3MmYxZDQ3N2Q3Yjhl
ZDQ5NDZiNzJjMzc3ZjBhNzZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvRnVsbHNjcmVlbkNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9GdWxsc2NyZWVuQ2xpZW50Lm1tCkBAIC0yNiw2ICsyNiw3IEBACiAjaW1wb3J0ICJjb25m
aWcuaCIKICNpbXBvcnQgIkZ1bGxzY3JlZW5DbGllbnQuaCIKIAorI2ltcG9ydCAiV0tGdWxsc2Ny
ZWVuRGVsZWdhdGUuaCIKICNpbXBvcnQgIl9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oIgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTM1LDY5ICszNiw5NiBAQCBGdWxsc2NyZWVuQ2xpZW50OjpGdWxs
c2NyZWVuQ2xpZW50KFdLRnVsbHNjcmVlbkNsaWVudFZpZXcgKndlYlZpZXcpCiB7CiB9CiAKLVJl
dGFpblB0cjxpZCA8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPj4gRnVsbHNjcmVlbkNsaWVudDo6ZGVs
ZWdhdGUoKQorUmV0YWluUHRyPGlkIDxXS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4+IEZ1bGxzY3JlZW5D
bGllbnQ6OmRlbGVnYXRlKCkKIHsKICAgICByZXR1cm4gbV9kZWxlZ2F0ZS5nZXQoKTsKIH0KIAot
dm9pZCBGdWxsc2NyZWVuQ2xpZW50OjpzZXREZWxlZ2F0ZShpZCA8X1dLRnVsbHNjcmVlbkRlbGVn
YXRlPiBkZWxlZ2F0ZSkKK1JldGFpblB0cjxpZCA8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPj4gRnVs
bHNjcmVlbkNsaWVudDo6X2RlbGVnYXRlKCkKK3sKKyAgICByZXR1cm4gbV9kZXByZWNhdGVkRGVs
ZWdhdGUuZ2V0KCk7Cit9CisKK3ZvaWQgRnVsbHNjcmVlbkNsaWVudDo6c2V0RGVsZWdhdGUoaWQg
PFdLRnVsbHNjcmVlbkRlbGVnYXRlPiBkZWxlZ2F0ZSkKIHsKICAgICBtX2RlbGVnYXRlID0gZGVs
ZWdhdGU7CiAKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2lsbEVudGVyRWxlbWVudEZ1
bGxzY3JlZW4gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3
V2lsbEVudGVyRWxlbWVudEZ1bGxzY3JlZW46KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld0RpZEVudGVyRWxlbWVudEZ1bGxzY3JlZW4gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3Rvcih3ZWJWaWV3RGlkRW50ZXJFbGVtZW50RnVsbHNjcmVlbjopXTsKKyAgICBt
X2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2lsbEV4aXRFbGVtZW50RnVsbHNjcmVlbiA9IFtkZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXdXaWxsRXhpdEVsZW1lbnRG
dWxsc2NyZWVuOildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRFeGl0RWxlbWVu
dEZ1bGxzY3JlZW4gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJW
aWV3RGlkRXhpdEVsZW1lbnRGdWxsc2NyZWVuOildOworfQorCit2b2lkIEZ1bGxzY3JlZW5DbGll
bnQ6Ol9zZXREZWxlZ2F0ZShpZCA8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPiBkZWxlZ2F0ZSkKK3sK
KyAgICBtX2RlcHJlY2F0ZWREZWxlZ2F0ZSA9IGRlbGVnYXRlOworCiAjaWYgUExBVEZPUk0oTUFD
KQotICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxsRW50ZXJGdWxsc2NyZWVuID0gW2Rl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdXaWxsRW50ZXJGdWxs
c2NyZWVuOildOwotICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRFbnRlckZ1bGxzY3Jl
ZW4gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0RpZEVu
dGVyRnVsbHNjcmVlbjopXTsKLSAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2lsbEV4aXRG
dWxsc2NyZWVuID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZp
ZXdXaWxsRXhpdEZ1bGxzY3JlZW46KV07Ci0gICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0Rp
ZEV4aXRGdWxsc2NyZWVuID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
X3dlYlZpZXdEaWRFeGl0RnVsbHNjcmVlbjopXTsKKyAgICBtX2RlcHJlY2F0ZWREZWxlZ2F0ZU1l
dGhvZHMud2ViVmlld1dpbGxFbnRlckZ1bGxzY3JlZW4gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld1dpbGxFbnRlckZ1bGxzY3JlZW46KV07CisgICAgbV9k
ZXByZWNhdGVkRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRFbnRlckZ1bGxzY3JlZW4gPSBbZGVs
ZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0RpZEVudGVyRnVsbHNj
cmVlbjopXTsKKyAgICBtX2RlcHJlY2F0ZWREZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dpbGxFeGl0
RnVsbHNjcmVlbiA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJW
aWV3V2lsbEV4aXRGdWxsc2NyZWVuOildOworICAgIG1fZGVwcmVjYXRlZERlbGVnYXRlTWV0aG9k
cy53ZWJWaWV3RGlkRXhpdEZ1bGxzY3JlZW4gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3Rvcihfd2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuOildOwogI2Vsc2UKLSAgICBtX2Rl
bGVnYXRlTWV0aG9kcy53ZWJWaWV3V2lsbEVudGVyRWxlbWVudEZ1bGxzY3JlZW4gPSBbZGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld1dpbGxFbnRlckVsZW1lbnRG
dWxsc2NyZWVuOildOwotICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRFbnRlckVsZW1l
bnRGdWxsc2NyZWVuID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dl
YlZpZXdEaWRFbnRlckVsZW1lbnRGdWxsc2NyZWVuOildOwotICAgIG1fZGVsZWdhdGVNZXRob2Rz
LndlYlZpZXdXaWxsRXhpdEVsZW1lbnRGdWxsc2NyZWVuID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdXaWxsRXhpdEVsZW1lbnRGdWxsc2NyZWVuOildOwot
ICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRFeGl0RWxlbWVudEZ1bGxzY3JlZW4gPSBb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0RpZEV4aXRFbGVt
ZW50RnVsbHNjcmVlbjopXTsKKyAgICBtX2RlcHJlY2F0ZWREZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d1dpbGxFbnRlckVsZW1lbnRGdWxsc2NyZWVuID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoX3dlYlZpZXdXaWxsRW50ZXJFbGVtZW50RnVsbHNjcmVlbjopXTsKKyAgICBt
X2RlcHJlY2F0ZWREZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEVudGVyRWxlbWVudEZ1bGxzY3Jl
ZW4gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0RpZEVu
dGVyRWxlbWVudEZ1bGxzY3JlZW46KV07CisgICAgbV9kZXByZWNhdGVkRGVsZWdhdGVNZXRob2Rz
LndlYlZpZXdXaWxsRXhpdEVsZW1lbnRGdWxsc2NyZWVuID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdXaWxsRXhpdEVsZW1lbnRGdWxsc2NyZWVuOildOwor
ICAgIG1fZGVwcmVjYXRlZERlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRXhpdEVsZW1lbnRGdWxs
c2NyZWVuID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdE
aWRFeGl0RWxlbWVudEZ1bGxzY3JlZW46KV07CiAjZW5kaWYKIH0KIAogdm9pZCBGdWxsc2NyZWVu
Q2xpZW50Ojp3aWxsRW50ZXJGdWxsc2NyZWVuKFdlYlBhZ2VQcm94eSopCiB7CisgICAgaWYgKG1f
ZGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxsRW50ZXJFbGVtZW50RnVsbHNjcmVlbikKKyAgICAg
ICAgW21fZGVsZWdhdGUuZ2V0KCkgd2ViVmlld1dpbGxFbnRlckVsZW1lbnRGdWxsc2NyZWVuOm1f
d2ViVmlld107CisKICNpZiBQTEFURk9STShNQUMpCi0gICAgaWYgKG1fZGVsZWdhdGVNZXRob2Rz
LndlYlZpZXdXaWxsRW50ZXJGdWxsc2NyZWVuKQotICAgICAgICBbbV9kZWxlZ2F0ZS5nZXQoKSBf
d2ViVmlld1dpbGxFbnRlckZ1bGxzY3JlZW46bV93ZWJWaWV3XTsKKyAgICBpZiAobV9kZXByZWNh
dGVkRGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxsRW50ZXJGdWxsc2NyZWVuKQorICAgICAgICBb
bV9kZXByZWNhdGVkRGVsZWdhdGUuZ2V0KCkgX3dlYlZpZXdXaWxsRW50ZXJGdWxsc2NyZWVuOm1f
d2ViVmlld107CiAjZWxzZQotICAgIGlmIChtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2lsbEVu
dGVyRWxlbWVudEZ1bGxzY3JlZW4pCi0gICAgICAgIFttX2RlbGVnYXRlLmdldCgpIF93ZWJWaWV3
V2lsbEVudGVyRWxlbWVudEZ1bGxzY3JlZW46bV93ZWJWaWV3XTsKKyAgICBpZiAobV9kZXByZWNh
dGVkRGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxsRW50ZXJFbGVtZW50RnVsbHNjcmVlbikKKyAg
ICAgICAgW21fZGVwcmVjYXRlZERlbGVnYXRlLmdldCgpIF93ZWJWaWV3V2lsbEVudGVyRWxlbWVu
dEZ1bGxzY3JlZW46bV93ZWJWaWV3XTsKICNlbmRpZgogfQogCiB2b2lkIEZ1bGxzY3JlZW5DbGll
bnQ6OmRpZEVudGVyRnVsbHNjcmVlbihXZWJQYWdlUHJveHkqKQogeworICAgIGlmIChtX2RlbGVn
YXRlTWV0aG9kcy53ZWJWaWV3RGlkRW50ZXJFbGVtZW50RnVsbHNjcmVlbikKKyAgICAgICAgW21f
ZGVsZWdhdGUuZ2V0KCkgd2ViVmlld0RpZEVudGVyRWxlbWVudEZ1bGxzY3JlZW46bV93ZWJWaWV3
XTsKKwogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBpZiAobV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d0RpZEVudGVyRnVsbHNjcmVlbikKLSAgICAgICAgW21fZGVsZWdhdGUuZ2V0KCkgX3dlYlZpZXdE
aWRFbnRlckZ1bGxzY3JlZW46bV93ZWJWaWV3XTsKKyAgICBpZiAobV9kZXByZWNhdGVkRGVsZWdh
dGVNZXRob2RzLndlYlZpZXdEaWRFbnRlckZ1bGxzY3JlZW4pCisgICAgICAgIFttX2RlcHJlY2F0
ZWREZWxlZ2F0ZS5nZXQoKSBfd2ViVmlld0RpZEVudGVyRnVsbHNjcmVlbjptX3dlYlZpZXddOwog
I2Vsc2UKLSAgICBpZiAobV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEVudGVyRWxlbWVudEZ1
bGxzY3JlZW4pCi0gICAgICAgIFttX2RlbGVnYXRlLmdldCgpIF93ZWJWaWV3RGlkRW50ZXJFbGVt
ZW50RnVsbHNjcmVlbjptX3dlYlZpZXddOworICAgIGlmIChtX2RlcHJlY2F0ZWREZWxlZ2F0ZU1l
dGhvZHMud2ViVmlld0RpZEVudGVyRWxlbWVudEZ1bGxzY3JlZW4pCisgICAgICAgIFttX2RlcHJl
Y2F0ZWREZWxlZ2F0ZS5nZXQoKSBfd2ViVmlld0RpZEVudGVyRWxlbWVudEZ1bGxzY3JlZW46bV93
ZWJWaWV3XTsKICNlbmRpZgogfQogCiB2b2lkIEZ1bGxzY3JlZW5DbGllbnQ6OndpbGxFeGl0RnVs
bHNjcmVlbihXZWJQYWdlUHJveHkqKQogeworICAgIGlmIChtX2RlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3V2lsbEV4aXRFbGVtZW50RnVsbHNjcmVlbikKKyAgICAgICAgW21fZGVsZWdhdGUuZ2V0KCkg
d2ViVmlld1dpbGxFeGl0RWxlbWVudEZ1bGxzY3JlZW46bV93ZWJWaWV3XTsKKwogI2lmIFBMQVRG
T1JNKE1BQykKLSAgICBpZiAobV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dpbGxFeGl0RnVsbHNj
cmVlbikKLSAgICAgICAgW21fZGVsZWdhdGUuZ2V0KCkgX3dlYlZpZXdXaWxsRXhpdEZ1bGxzY3Jl
ZW46bV93ZWJWaWV3XTsKKyAgICBpZiAobV9kZXByZWNhdGVkRGVsZWdhdGVNZXRob2RzLndlYlZp
ZXdXaWxsRXhpdEZ1bGxzY3JlZW4pCisgICAgICAgIFttX2RlcHJlY2F0ZWREZWxlZ2F0ZS5nZXQo
KSBfd2ViVmlld1dpbGxFeGl0RnVsbHNjcmVlbjptX3dlYlZpZXddOwogI2Vsc2UKLSAgICBpZiAo
bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dpbGxFeGl0RWxlbWVudEZ1bGxzY3JlZW4pCi0gICAg
ICAgIFttX2RlbGVnYXRlLmdldCgpIF93ZWJWaWV3V2lsbEV4aXRFbGVtZW50RnVsbHNjcmVlbjpt
X3dlYlZpZXddOworICAgIGlmIChtX2RlcHJlY2F0ZWREZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dp
bGxFeGl0RWxlbWVudEZ1bGxzY3JlZW4pCisgICAgICAgIFttX2RlcHJlY2F0ZWREZWxlZ2F0ZS5n
ZXQoKSBfd2ViVmlld1dpbGxFeGl0RWxlbWVudEZ1bGxzY3JlZW46bV93ZWJWaWV3XTsKICNlbmRp
ZgogfQogCiB2b2lkIEZ1bGxzY3JlZW5DbGllbnQ6OmRpZEV4aXRGdWxsc2NyZWVuKFdlYlBhZ2VQ
cm94eSopCiB7CisgICAgaWYgKG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRFeGl0RWxlbWVu
dEZ1bGxzY3JlZW4pCisgICAgICAgIFttX2RlbGVnYXRlLmdldCgpIHdlYlZpZXdEaWRFeGl0RWxl
bWVudEZ1bGxzY3JlZW46bV93ZWJWaWV3XTsKKwogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBpZiAo
bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuKQotICAgICAgICBbbV9k
ZWxlZ2F0ZS5nZXQoKSBfd2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuOm1fd2ViVmlld107CisgICAg
aWYgKG1fZGVwcmVjYXRlZERlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRXhpdEZ1bGxzY3JlZW4p
CisgICAgICAgIFttX2RlcHJlY2F0ZWREZWxlZ2F0ZS5nZXQoKSBfd2ViVmlld0RpZEV4aXRGdWxs
c2NyZWVuOm1fd2ViVmlld107CiAjZWxzZQotICAgIGlmIChtX2RlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3RGlkRXhpdEVsZW1lbnRGdWxsc2NyZWVuKQotICAgICAgICBbbV9kZWxlZ2F0ZS5nZXQoKSBf
d2ViVmlld0RpZEV4aXRFbGVtZW50RnVsbHNjcmVlbjptX3dlYlZpZXddOworICAgIGlmIChtX2Rl
cHJlY2F0ZWREZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEV4aXRFbGVtZW50RnVsbHNjcmVlbikK
KyAgICAgICAgW21fZGVwcmVjYXRlZERlbGVnYXRlLmdldCgpIF93ZWJWaWV3RGlkRXhpdEVsZW1l
bnRGdWxsc2NyZWVuOm1fd2ViVmlld107CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNGMzMjk4ZTZlMGE5Njc0N2Nl
ZjBhMmJhMTEzNTM0M2NjMzNkMjFiYS4uZjQ2YjNjMDk3YWIyMGVmMzU5ZjlhOGYzMzU2Yzg1NTY4
NWExNzFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC00NDMsNiArNDQzLDcgQEAKIAkJMUNCQkU0QTAxOUI2NkM1MzAwNkI3RDgxIC8q
IFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQkJFNDlFMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJ
bnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTFDQkJFNEExMTlCNjZDNTMw
MDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0JCRTQ5RjE5QjY2QzUzMDA2QjdEODEgLyogV2Vi
SW5zcGVjdG9yVUlNZXNzYWdlcy5oICovOyB9OwogCQkxQ0YxOEYzRjI2QkI1RDk1MDA0QjE3MjIg
LyogTG9nSW5pdGlhbGl6YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUNGMThGM0UyNkJCNUQ5MDAwNEIxNzIyIC8qIExvZ0luaXRpYWxpemF0
aW9uLmNwcCAqLzsgfTsKKwkJMUQwNkNCRkMyNkZFNjkxODAwNzQ4N0Q4IC8qIFdLRnVsbHNjcmVl
bkRlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxRDA2Q0JGQjI2RkU2OTE4MDA3NDg3RDggLyogV0tGdWxsc2NyZWVuRGVsZWdhdGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDRENzM3MDIz
QTlFNTQ3MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0
RDczNkIyM0E5REY1NTAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMUQ0RDczNzEyM0E5RTU2MjAwNzE3QTI1IC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3MzZDMjNBOURGNjAwMDcxN0EyNSAvKiBSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CiAJCTFENEQ3Mzc2MjNBOUVEMTgw
MDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNzUyM0E5
RUI2ODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVz
LmggKi87IH07CkBAIC0zMDkxLDYgKzMwOTIsNyBAQAogCQkxRDA1MzBEMzI1OTE2MkM5MDBFNDM2
RjcgLyogV2ViS2l0LW1hY29zLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSAiV2ViS2l0LW1hY29zLnBs
aXN0Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQwNTMwRDQyNTkxNjJDOTAwRTQz
NkY3IC8qIFdlYktpdC13YXRjaG9zLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSAiV2ViS2l0LXdhdGNo
b3MucGxpc3QiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDA1MzBENTI1OTE5NDE1
MDBFNDM2RjcgLyogZ2VuZXJhdGUtZmVhdHVyZS1mbGFncy1wbGlzdC5zaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnNoOyBwYXRo
ID0gImdlbmVyYXRlLWZlYXR1cmUtZmxhZ3MtcGxpc3Quc2giOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxRDA2Q0JGQjI2RkU2OTE4MDA3NDg3RDggLyogV0tGdWxsc2NyZWVuRGVsZWdh
dGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tGdWxsc2NyZWVuRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUQwQjY2MTkyNjI0QzExODAwRjk3MTJGIC8qIFdlYk1lZGlhS2V5
U3lzdGVtQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
Yk1lZGlhS2V5U3lzdGVtQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUQwQjY2MUEyNjI0QzE5NjAwRjk3MTJGIC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDsgcGF0aCA9IEVuY3J5cHRlZE1l
ZGlhL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQwRUNFQUEyM0ZDODU4NDAwRDE3MkY2IC8qIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHlDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlbW90ZU1lZGlh
UGxheWVyUHJveHlDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY2MTMs
NiArNjYxNSw3IEBACiAJCTFBNDNFODI2MTg4RjM4RTIwMDlFNEQzMCAvKiBEZXByZWNhdGVkICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlDRDc4RTExODFE
QjdFNUFEMDAxNEEyREUgLyogX1dLRnVsbHNjcmVlbkRlbGVnYXRlLmggKi8sCiAJCQkJMUFGQjRD
NzAxQURGMTU1RDAwQjMzMzM5IC8qIF9XS1dlYnNpdGVEYXRhU3RvcmUuaCAqLywKIAkJCQkxQUZC
NEM2RjFBREYxNTVEMDBCMzMzMzkgLyogX1dLV2Vic2l0ZURhdGFTdG9yZS5tbSAqLywKIAkJCQkx
QTRBOTNCNjFBRUIwOEVBMDAxNTBFOUMgLyogX1dLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmgg
Ki8sCkBAIC04MTcyLDcgKzgxNzUsNiBAQAogCQkJCTVDMTIxRTg4MjQxMDI5MEQwMDQ4NkY5QiAv
KiBfV0tGcmFtZVRyZWVOb2RlLmggKi8sCiAJCQkJNUMxMjFFODYyNDEwMjkwRDAwNDg2RjlCIC8q
IF9XS0ZyYW1lVHJlZU5vZGUubW0gKi8sCiAJCQkJNUMxMjFFODcyNDEwMjkwRDAwNDg2RjlCIC8q
IF9XS0ZyYW1lVHJlZU5vZGVJbnRlcm5hbC5oICovLAotCQkJCUNENzhFMTE4MURCN0U1QUQwMDE0
QTJERSAvKiBfV0tGdWxsc2NyZWVuRGVsZWdhdGUuaCAqLywKIAkJCQk2M0ZBQkUxOTFFOTcwRDY1
MDAzMDExRDUgLyogX1dLR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlci5oICovLAogCQkJ
CTYzQzMyQzI0MUU5ODEwRDkwMDY5OUJEMCAvKiBfV0tHZW9sb2NhdGlvblBvc2l0aW9uLmggKi8s
CiAJCQkJNjNDMzJDMjMxRTk4MTBEOTAwNjk5QkQwIC8qIF9XS0dlb2xvY2F0aW9uUG9zaXRpb24u
bW0gKi8sCkBAIC04MzM5LDYgKzgzNDEsNyBAQAogCQkJCTFBNEQ2NjQ5MThBMzAzMEUwMEQ4MkUy
MSAvKiBXS0ZyYW1lSW5mby5tbSAqLywKIAkJCQkyREY5RUVFNzFBNzgyNDU1MDBCNkNGQkUgLyog
V0tGcmFtZUluZm9JbnRlcm5hbC5oICovLAogCQkJCTFBNkZBMjFEMUJEMDQzNUIwMEFBQTY1MCAv
KiBXS0ZyYW1lSW5mb1ByaXZhdGUuaCAqLywKKwkJCQkxRDA2Q0JGQjI2RkU2OTE4MDA3NDg3RDgg
LyogV0tGdWxsc2NyZWVuRGVsZWdhdGUuaCAqLywKIAkJCQkxQTQyMkY4QTE4QjI5QjU0MDBEOENE
OTYgLyogV0tIaXN0b3J5RGVsZWdhdGVQcml2YXRlLmggKi8sCiAJCQkJNTFEMTI0ODQxRTczNEFF
MzAwMkIyODIwIC8qIFdLSFRUUENvb2tpZVN0b3JlLmggKi8sCiAJCQkJNTFEMTI0ODUxRTczNEFF
MzAwMkIyODIwIC8qIFdLSFRUUENvb2tpZVN0b3JlLm1tICovLApAQCAtMTMwNjksNiArMTMwNzIs
NyBAQAogCQkJCTJEM0E2NUU3MUE3QzNBQTcwMENBQzYzNyAvKiBXS0ZyYW1lSW5mb1JlZi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkNCOUY2QTUxMTIzREQwRDAwQTEzN0UwIC8qIFdLRnJhbWVQb2xp
Y3lMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFBRUEyMkYxNDY4N0JEQjAwODA0NTY5
IC8qIFdLRnVsbEtleWJvYXJkQWNjZXNzV2F0Y2hlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUQw
NkNCRkMyNkZFNjkxODAwNzQ4N0Q4IC8qIFdLRnVsbHNjcmVlbkRlbGVnYXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDREMyODMxRDIwMUJENzlEMDBFNkU3NDUgLyogV0tGdWxsc2NyZWVuU3RhY2tW
aWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDBDNjgzMTIwMUZEMTAxMDBBNTk0MDkgLyogV0tG
dWxsU2NyZWVuVmlld0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQ0E4NUM5MTMy
QUJBNEUwMEU5NjFERiAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCBlZWY4YWRiNzU3ZmIzNTIxMDJiODIwNTZlOGNlYTgyNGRmN2Y1NTQ0Li42ODQ0MGI3YjhjOGM5
Yjk2NDNiMzZkMzdkNDNjN2I5NTVmNTNhMzhhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDktMjQgIFBlbmcg
TGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBQcm9tb3RlIFdLUHJlZmVyZW5j
ZXMuX2Z1bGxTY3JlZW5FbmFibGVkIHRvIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNzg0CisgICAgICAgIDxyZGFyOi8vODMyNTUzMDg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNaW5pQnJv
d3Nlci9tYWMvQXBwRGVsZWdhdGUubToKKyAgICAgICAgKC1bQnJvd3NlckFwcERlbGVnYXRlIGRl
ZmF1bHRDb25maWd1cmF0aW9uXSk6CisKIDIwMjEtMDktMjIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBQQ00gc2hvdWxkIGluY2x1ZGUgdGhl
IGJ1bmRsZSBJRCBvZiB0aGUgYXBwIGZyb20gd2hpY2ggaXQgb3JpZ2luYXRlZApkaWZmIC0tZ2l0
IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0FwcERlbGVnYXRlLm0gYi9Ub29scy9NaW5pQnJvd3Nl
ci9tYWMvQXBwRGVsZWdhdGUubQppbmRleCA3NWQ2OTFkZTI2YmZhOWYzZWRjMjBjNTMzMDBiN2Ez
MTQ5YjczOWRhLi40NWY5OGQxNmY4NmU1NGI1Y2E3MTc1NWJkZjhjNGI1YmM4NTQ0NGY0IDEwMDY0
NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQXBwRGVsZWdhdGUubQorKysgYi9Ub29scy9N
aW5pQnJvd3Nlci9tYWMvQXBwRGVsZWdhdGUubQpAQCAtMTQwLDcgKzE0MCw3IEBAIC0gKFdLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gKilkZWZhdWx0Q29uZmlndXJhdGlvbgogICAgICAgICAgICAgW2Nv
bmZpZ3VyYXRpb24ucHJlZmVyZW5jZXMgX3NldEVuYWJsZWQ6ZW5hYmxlZCBmb3JJbnRlcm5hbERl
YnVnRmVhdHVyZTpmZWF0dXJlXTsKICAgICAgICAgfQogCi0gICAgICAgIGNvbmZpZ3VyYXRpb24u
cHJlZmVyZW5jZXMuX2Z1bGxTY3JlZW5FbmFibGVkID0gWUVTOworICAgICAgICBjb25maWd1cmF0
aW9uLnByZWZlcmVuY2VzLmZ1bGxTY3JlZW5FbmFibGVkID0gWUVTOwogICAgICAgICBjb25maWd1
cmF0aW9uLnByZWZlcmVuY2VzLl9hbGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayA9
IFlFUzsKICAgICAgICAgY29uZmlndXJhdGlvbi5wcmVmZXJlbmNlcy5fZGV2ZWxvcGVyRXh0cmFz
RW5hYmxlZCA9IFlFUzsKICAgICAgICAgY29uZmlndXJhdGlvbi5wcmVmZXJlbmNlcy5fbW9ja0Nh
cHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439820</attachid>
            <date>2021-09-30 22:19:53 -0700</date>
            <delta_ts>2021-11-10 20:35:10 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-230784-20210930221952.patch</filename>
            <type>text/plain</type>
            <size>15618</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyOTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNkMWE1NDNkMjhiOWU1MWMz
NjdjMGY3NmZjYTZjZTljMDg0YTYwM2IuLjJiYjY5MDVjYTBkYTZmZmNjMTE2YmYwY2RmMDdjMTRm
Y2ViYzRjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMDktMzAgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBQcm9tb3RlIFdLUHJlZmVyZW5jZXMu
X2Z1bGxTY3JlZW5FbmFibGVkIHRvIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNzg0CisgICAgICAgIDxyZGFyOi8vODMyNTUzMDg+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgZnVsbFNjcmVlbkVu
YWJsZWRdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBzZXRGdWxsU2NyZWVuRW5hYmxlZDpd
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcg
ZnVsbHNjcmVlblN0YXRlXSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL0Z1bGxzY3JlZW5D
bGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVudC5tbToK
KyAgICAgICAgKFdlYktpdDo6RnVsbHNjcmVlbkNsaWVudDo6d2lsbEVudGVyRnVsbHNjcmVlbik6
CisgICAgICAgIChXZWJLaXQ6OkZ1bGxzY3JlZW5DbGllbnQ6OmRpZEVudGVyRnVsbHNjcmVlbik6
CisgICAgICAgIChXZWJLaXQ6OkZ1bGxzY3JlZW5DbGllbnQ6OndpbGxFeGl0RnVsbHNjcmVlbik6
CisgICAgICAgIChXZWJLaXQ6OkZ1bGxzY3JlZW5DbGllbnQ6OmRpZEV4aXRGdWxsc2NyZWVuKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVu
TWFuYWdlclByb3h5Ojp3aWxsRW50ZXJGdWxsU2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkRW50ZXJGdWxsU2NyZWVuKToKKyAgICAgICAgKFdl
YktpdDo6V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6d2lsbEV4aXRGdWxsU2NyZWVuKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkRXhpdEZ1bGxTY3Jl
ZW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Lmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmZ1bGxzY3JlZW5TdGF0
ZSBjb25zdCk6CisKIDIwMjEtMDktMjIgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgKG1hbnVhbGx5KSByZXZlcnRpbmcgcjI4Mjg1Ni4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVu
Y2VzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5o
CmluZGV4IGUwY2UxN2JkMzZmMjUzMjdhNzBkODczNTkxMGExYjZhNzRlNjNjM2EuLjRjNWMxMTkx
NTQ0YTBiODE5YzBhYjVlMDRkNDY3YjNmMWFmYzRlMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaApAQCAtNjQsNiArNjQsMTAgQEAg
V0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiAqLwogQHByb3BlcnR5
IChub25hdG9taWMsIGdldHRlcj1pc1RleHRJbnRlcmFjdGlvbkVuYWJsZWQpIEJPT0wgdGV4dElu
dGVyYWN0aW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjMpLCBpb3MoMTQuNSkp
OwogCisvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgZnVs
bHNjcmVlbiBzdXBwb3J0IGlzIGVuYWJsZWQuCisqLworQHByb3BlcnR5IChub25hdG9taWMpIEJP
T0wgZnVsbFNjcmVlbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKKwogQGVuZAogCiBAaW50ZXJmYWNlIFdLUHJlZmVyZW5jZXMgKFdL
RGVwcmVjYXRlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1ByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJlZmVyZW5jZXMubW0KaW5kZXggNzE2NGY4ODYwMDc4ZTIwNzFhYjhjNWZkNDY2ODhmMzRkZmFh
YWYyMi4uNjQxZDI5ODNlZjM1ZTIyNmYxOGU3MWU2ZDE0NThkNGFkZGU1MDFlMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KQEAg
LTE1Myw2ICsxNTMsMTYgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAg
X3ByZWZlcmVuY2VzLT5zZXRUZXh0SW50ZXJhY3Rpb25FbmFibGVkKHRleHRJbnRlcmFjdGlvbkVu
YWJsZWQpOwogfQogCistIChCT09MKWZ1bGxTY3JlZW5FbmFibGVkCit7CisgICAgcmV0dXJuIF9w
cmVmZXJlbmNlcy0+ZnVsbFNjcmVlbkVuYWJsZWQoKTsKK30KKworLSAodm9pZClzZXRGdWxsU2Ny
ZWVuRW5hYmxlZDooQk9PTClmdWxsU2NyZWVuRW5hYmxlZAoreworICAgIF9wcmVmZXJlbmNlcy0+
c2V0RnVsbFNjcmVlbkVuYWJsZWQoZnVsbFNjcmVlbkVuYWJsZWQpOworfQorCiAjcHJhZ21hIG1h
cmsgT1MgWC1zcGVjaWZpYyBtZXRob2RzCiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3LmgKaW5kZXggOTE2YTVmNmJhZDFj
ZjUzZjcyMTMzMWE5MjMyNTAzMjgzNDNhNWZkOC4uMzM4NTRjMjgyYmQ0NmU3ZDhlODI5MGZjMDYz
OWE4OTNjOGE3NDJmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcuaApAQCAtNzQsNiArNzQsMTMgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwg
V0tNZWRpYUNhcHR1cmVTdGF0ZSkgewogICAgIFdLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZCwKIH0g
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAordHlwZWRlZiBOU19F
TlVNKE5TSW50ZWdlciwgV0tGdWxsc2NyZWVuU3RhdGUpIHsKKyAgICBXS0Z1bGxzY3JlZW5TdGF0
ZU5vdEluRnVsbHNjcmVlbiwKKyAgICBXS0Z1bGxzY3JlZW5TdGF0ZUVudGVyaW5nRnVsbHNjcmVl
biwKKyAgICBXS0Z1bGxzY3JlZW5TdGF0ZUluRnVsbHNjcmVlbiwKKyAgICBXS0Z1bGxzY3JlZW5T
dGF0ZUV4aXRpbmdGdWxsc2NyZWVuLAorfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCiAvKiEgQGFic3RyYWN0IEEgY29weSBvZiB0aGUgY29u
ZmlndXJhdGlvbiB3aXRoIHdoaWNoIHRoZSB3ZWIgdmlldyB3YXMKICBpbml0aWFsaXplZC4gKi8K
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiAqY29uZmlndXJhdGlvbjsKQEAgLTYwNCw2ICs2MTEsOSBAQCBUaGUgdW5pZm9ybSB0eXBl
IGlkZW50aWZpZXIga1VUVHlwZVdlYkFyY2hpdmUgY2FuIGJlIHVzZWQgZ2V0IHRoZSByZWxhdGVk
IHBhc3RlYgogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxfcmVzZXR0YWJsZSwgY29weSkgTlND
b2xvciAqdW5kZXJQYWdlQmFja2dyb3VuZENvbG9yIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIu
MCkpOwogI2VuZGlmCiAKKy8qISAqLworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBX
S0Z1bGxzY3JlZW5TdGF0ZSBmdWxsc2NyZWVuU3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwogQGVuZAogCiAjaWYgIVRBUkdFVF9PU19J
UEhPTkUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CmluZGV4IGFhNDY5MGViZmE0NzVjZmM0ODgxMDRhYTdiNTBkMDI5ZDE0MTA2Y2IuLjI5OWJhNmQ2
ZTgzZjk2NDMyOTZhMGE3NjE5MmUxNmU3MzZhZGE1YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNzAsNyArNzAsNyBAQAogI2ltcG9y
dCAiV0tMYXlvdXRNb2RlLmgiCiAjaW1wb3J0ICJXS05TRGF0YS5oIgogI2ltcG9ydCAiV0tOU1VS
TEV4dHJhcy5oIgotI2ltcG9ydCA8V2ViS2l0L1dLTmF2aWdhdGlvbkRlbGVnYXRlLmg+CisjaW1w
b3J0ICJXS05hdmlnYXRpb25EZWxlZ2F0ZS5oIgogI2ltcG9ydCAiV0tOYXZpZ2F0aW9uSW50ZXJu
YWwuaCIKICNpbXBvcnQgIldLUERGQ29uZmlndXJhdGlvbi5oIgogI2ltcG9ydCAiV0tQcmVmZXJl
bmNlc0ludGVybmFsLmgiCkBAIC03OCw4ICs3OCw4IEBACiAjaW1wb3J0ICJXS1NhZmVCcm93c2lu
Z1dhcm5pbmcuaCIKICNpbXBvcnQgIldLU2hhcmVkQVBJQ2FzdC5oIgogI2ltcG9ydCAiV0tTbmFw
c2hvdENvbmZpZ3VyYXRpb24uaCIKLSNpbXBvcnQgPFdlYktpdC9XS1VJRGVsZWdhdGUuaD4KLSNp
bXBvcnQgPFdlYktpdC9XS1VJRGVsZWdhdGVQcml2YXRlLmg+CisjaW1wb3J0ICJXS1VJRGVsZWdh
dGUuaCIKKyNpbXBvcnQgIldLVUlEZWxlZ2F0ZVByaXZhdGUuaCIKICNpbXBvcnQgIldLVXNlckNv
bnRlbnRDb250cm9sbGVySW50ZXJuYWwuaCIKICNpbXBvcnQgIldLV2ViVmlld0NvbmZpZ3VyYXRp
b25JbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJWaWV3Q29udGVudFByb3ZpZGVyLmgiCkBAIC0x
Nzg5LDYgKzE3ODksMzUgQEAgc3RhdGljIF9XS1NlbGVjdGlvbkF0dHJpYnV0ZXMgc2VsZWN0aW9u
QXR0cmlidXRlcyhjb25zdCBXZWJLaXQ6OkVkaXRvclN0YXRlJiBlZGkKICAgICByZXR1cm4gTk87
CiB9CiAKKy0gKFdLRnVsbHNjcmVlblN0YXRlKWZ1bGxzY3JlZW5TdGF0ZQoreworI2lmIEVOQUJM
RShGVUxMU0NSRUVOX0FQSSkKKyAgICBhdXRvKiBmdWxsc2NyZWVuTWFuYWdlciA9IF9wYWdlLT5m
dWxsU2NyZWVuTWFuYWdlcigpOworICAgIGlmICghZnVsbHNjcmVlbk1hbmFnZXIpCisgICAgICAg
IHJldHVybiBXS0Z1bGxzY3JlZW5TdGF0ZU5vdEluRnVsbHNjcmVlbjsKKworICAgIFdLRnVsbHNj
cmVlblN0YXRlIHN0YXRlID0gV0tGdWxsc2NyZWVuU3RhdGVOb3RJbkZ1bGxzY3JlZW47CisgICAg
c3dpdGNoIChmdWxsc2NyZWVuTWFuYWdlci0+ZnVsbHNjcmVlblN0YXRlKCkpIHsKKyAgICBjYXNl
IFdlYktpdDo6V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6RnVsbHNjcmVlblN0YXRlOjpFbnRl
cmluZ0Z1bGxzY3JlZW46CisgICAgICAgIHN0YXRlID0gV0tGdWxsc2NyZWVuU3RhdGVFbnRlcmlu
Z0Z1bGxzY3JlZW47CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJGdWxsU2Ny
ZWVuTWFuYWdlclByb3h5OjpGdWxsc2NyZWVuU3RhdGU6OkluRnVsbHNjcmVlbjoKKyAgICAgICAg
c3RhdGUgPSBXS0Z1bGxzY3JlZW5TdGF0ZUluRnVsbHNjcmVlbjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OkZ1bGxzY3JlZW5TdGF0
ZTo6RXhpdGluZ0Z1bGxzY3JlZW46CisgICAgICAgIHN0YXRlID0gV0tGdWxsc2NyZWVuU3RhdGVF
eGl0aW5nRnVsbHNjcmVlbjsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
c3RhdGUgPSBXS0Z1bGxzY3JlZW5TdGF0ZU5vdEluRnVsbHNjcmVlbjsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorCisgICAgcmV0dXJuIHN0YXRlOworI2Vsc2UKKyAgICByZXR1cm4gV0tGdWxsc2Ny
ZWVuU3RhdGVOb3RJbkZ1bGxzY3JlZW47CisjZW5kaWYKK30KKwogQGVuZAogCiAjcHJhZ21hIG1h
cmsgLQpAQCAtMzU0NSw2ICszNTc0LDcgQEAgc3RhdGljIGlubGluZSBPcHRpb25TZXQ8V2ViS2l0
OjpGaW5kT3B0aW9ucz4gdG9GaW5kT3B0aW9ucyhfV0tGaW5kT3B0aW9ucyB3a0ZpbmQKICNlbmRp
ZgogfQogCisvLyBGSVhNRTogUmVtb3ZlIHRoaXMgYWZ0ZXIgU2FmYXJpIGFkb3B0cyB0aGUgbmV3
IEFQSQogLSAodm9pZClfc2V0RnVsbHNjcmVlbkRlbGVnYXRlOihpZDxfV0tGdWxsc2NyZWVuRGVs
ZWdhdGU+KWRlbGVnYXRlCiB7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQpAQCAtMzU1Myw2
ICszNTgzLDcgQEAgc3RhdGljIGlubGluZSBPcHRpb25TZXQ8V2ViS2l0OjpGaW5kT3B0aW9ucz4g
dG9GaW5kT3B0aW9ucyhfV0tGaW5kT3B0aW9ucyB3a0ZpbmQKICNlbmRpZgogfQogCisvLyBGSVhN
RTogUmVtb3ZlIHRoaXMgYWZ0ZXIgU2FmYXJpIGFkb3B0cyB0aGUgbmV3IEFQSQogLSAoaWQ8X1dL
RnVsbHNjcmVlbkRlbGVnYXRlPilfZnVsbHNjcmVlbkRlbGVnYXRlCiB7CiAjaWYgRU5BQkxFKEZV
TExTQ1JFRU5fQVBJKQpAQCAtMzU2Miw2ICszNTkzLDcgQEAgc3RhdGljIGlubGluZSBPcHRpb25T
ZXQ8V2ViS2l0OjpGaW5kT3B0aW9ucz4gdG9GaW5kT3B0aW9ucyhfV0tGaW5kT3B0aW9ucyB3a0Zp
bmQKICAgICByZXR1cm4gbmlsOwogfQogCisvLyBGSVhNRTogUmVtb3ZlIHRoaXMgYWZ0ZXIgU2Fm
YXJpIGFkb3B0cyB0aGUgbmV3IEFQSQogLSAoQk9PTClfaXNJbkZ1bGxzY3JlZW4KIHsKICNpZiBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9GdWxsc2NyZWVuQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9GdWxsc2NyZWVuQ2xpZW50LmgKaW5kZXggZDUzYzJlZmRlNjA4NDAxYTU5NjdiZGJiYmI3MDli
Y2Q5OTJkYmFjMy4uYTAwZDFmMTI4MjhmZGUwN2I1MzM0NzY4OTQ3NjJlMmNjYjNjNDY5ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0Z1bGxzY3JlZW5DbGllbnQuaApA
QCAtMzEsMTMgKzMxLDggQEAKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0
Zi9XZWFrT2JqQ1B0ci5oPgogCi0jaWYgUExBVEZPUk0oTUFDKQotQGNsYXNzIE5TVmlldzsKLXVz
aW5nIFdLRnVsbHNjcmVlbkNsaWVudFZpZXcgPSBOU1ZpZXc7Ci0jZWxzZQogQGNsYXNzIFdLV2Vi
VmlldzsKIHVzaW5nIFdLRnVsbHNjcmVlbkNsaWVudFZpZXcgPSBXS1dlYlZpZXc7Ci0jZW5kaWYK
IAogQHByb3RvY29sIF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVudC5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL0Z1bGxzY3JlZW5DbGllbnQubW0KaW5kZXggYzJmYmM3NWQ2M2M2
NmIyMmM4ZTZiOGE0NDY5YzhlNDNjZjI1NDhkMy4uMWU5M2FlYmE2YWJkZTk5NjdlMWQyNGE2MjRm
MWEzYzdlNzE3Y2YxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
RnVsbHNjcmVlbkNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9G
dWxsc2NyZWVuQ2xpZW50Lm1tCkBAIC01OSw5ICs1OSwxMSBAQCB2b2lkIEZ1bGxzY3JlZW5DbGll
bnQ6OnNldERlbGVnYXRlKGlkIDxfV0tGdWxsc2NyZWVuRGVsZWdhdGU+IGRlbGVnYXRlKQogCiB2
b2lkIEZ1bGxzY3JlZW5DbGllbnQ6OndpbGxFbnRlckZ1bGxzY3JlZW4oV2ViUGFnZVByb3h5KikK
IHsKKyAgICBbbV93ZWJWaWV3IHdpbGxDaGFuZ2VWYWx1ZUZvcktleTpAImZ1bGxzY3JlZW5TdGF0
ZSJdOworICAgIFttX3dlYlZpZXcgZGlkQ2hhbmdlVmFsdWVGb3JLZXk6QCJmdWxsc2NyZWVuU3Rh
dGUiXTsKICNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKG1fZGVsZWdhdGVNZXRob2RzLndlYlZp
ZXdXaWxsRW50ZXJGdWxsc2NyZWVuKQotICAgICAgICBbbV9kZWxlZ2F0ZS5nZXQoKSBfd2ViVmll
d1dpbGxFbnRlckZ1bGxzY3JlZW46bV93ZWJWaWV3XTsKKyAgICAgICAgW21fZGVsZWdhdGUuZ2V0
KCkgX3dlYlZpZXdXaWxsRW50ZXJGdWxsc2NyZWVuOnN0YXRpY19jYXN0PE5TVmlldyAqPihtX3dl
YlZpZXcpXTsKICNlbHNlCiAgICAgaWYgKG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxsRW50
ZXJFbGVtZW50RnVsbHNjcmVlbikKICAgICAgICAgW21fZGVsZWdhdGUuZ2V0KCkgX3dlYlZpZXdX
aWxsRW50ZXJFbGVtZW50RnVsbHNjcmVlbjptX3dlYlZpZXddOwpAQCAtNzAsOSArNzIsMTEgQEAg
dm9pZCBGdWxsc2NyZWVuQ2xpZW50Ojp3aWxsRW50ZXJGdWxsc2NyZWVuKFdlYlBhZ2VQcm94eSop
CiAKIHZvaWQgRnVsbHNjcmVlbkNsaWVudDo6ZGlkRW50ZXJGdWxsc2NyZWVuKFdlYlBhZ2VQcm94
eSopCiB7CisgICAgW21fd2ViVmlldyB3aWxsQ2hhbmdlVmFsdWVGb3JLZXk6QCJmdWxsc2NyZWVu
U3RhdGUiXTsKKyAgICBbbV93ZWJWaWV3IGRpZENoYW5nZVZhbHVlRm9yS2V5OkAiZnVsbHNjcmVl
blN0YXRlIl07CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGlmIChtX2RlbGVnYXRlTWV0aG9kcy53
ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVuKQotICAgICAgICBbbV9kZWxlZ2F0ZS5nZXQoKSBfd2Vi
Vmlld0RpZEVudGVyRnVsbHNjcmVlbjptX3dlYlZpZXddOworICAgICAgICBbbV9kZWxlZ2F0ZS5n
ZXQoKSBfd2ViVmlld0RpZEVudGVyRnVsbHNjcmVlbjpzdGF0aWNfY2FzdDxOU1ZpZXcgKj4obV93
ZWJWaWV3KV07CiAjZWxzZQogICAgIGlmIChtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRW50
ZXJFbGVtZW50RnVsbHNjcmVlbikKICAgICAgICAgW21fZGVsZWdhdGUuZ2V0KCkgX3dlYlZpZXdE
aWRFbnRlckVsZW1lbnRGdWxsc2NyZWVuOm1fd2ViVmlld107CkBAIC04MSw5ICs4NSwxMSBAQCB2
b2lkIEZ1bGxzY3JlZW5DbGllbnQ6OmRpZEVudGVyRnVsbHNjcmVlbihXZWJQYWdlUHJveHkqKQog
CiB2b2lkIEZ1bGxzY3JlZW5DbGllbnQ6OndpbGxFeGl0RnVsbHNjcmVlbihXZWJQYWdlUHJveHkq
KQogeworICAgIFttX3dlYlZpZXcgd2lsbENoYW5nZVZhbHVlRm9yS2V5OkAiZnVsbHNjcmVlblN0
YXRlIl07CisgICAgW21fd2ViVmlldyBkaWRDaGFuZ2VWYWx1ZUZvcktleTpAImZ1bGxzY3JlZW5T
dGF0ZSJdOwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAobV9kZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld1dpbGxFeGl0RnVsbHNjcmVlbikKLSAgICAgICAgW21fZGVsZWdhdGUuZ2V0KCkgX3dlYlZp
ZXdXaWxsRXhpdEZ1bGxzY3JlZW46bV93ZWJWaWV3XTsKKyAgICAgICAgW21fZGVsZWdhdGUuZ2V0
KCkgX3dlYlZpZXdXaWxsRXhpdEZ1bGxzY3JlZW46c3RhdGljX2Nhc3Q8TlNWaWV3ICo+KG1fd2Vi
VmlldyldOwogI2Vsc2UKICAgICBpZiAobV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dpbGxFeGl0
RWxlbWVudEZ1bGxzY3JlZW4pCiAgICAgICAgIFttX2RlbGVnYXRlLmdldCgpIF93ZWJWaWV3V2ls
bEV4aXRFbGVtZW50RnVsbHNjcmVlbjptX3dlYlZpZXddOwpAQCAtOTIsOSArOTgsMTEgQEAgdm9p
ZCBGdWxsc2NyZWVuQ2xpZW50Ojp3aWxsRXhpdEZ1bGxzY3JlZW4oV2ViUGFnZVByb3h5KikKIAog
dm9pZCBGdWxsc2NyZWVuQ2xpZW50OjpkaWRFeGl0RnVsbHNjcmVlbihXZWJQYWdlUHJveHkqKQog
eworICAgIFttX3dlYlZpZXcgd2lsbENoYW5nZVZhbHVlRm9yS2V5OkAiZnVsbHNjcmVlblN0YXRl
Il07CisgICAgW21fd2ViVmlldyBkaWRDaGFuZ2VWYWx1ZUZvcktleTpAImZ1bGxzY3JlZW5TdGF0
ZSJdOwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAobV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d0RpZEV4aXRGdWxsc2NyZWVuKQotICAgICAgICBbbV9kZWxlZ2F0ZS5nZXQoKSBfd2ViVmlld0Rp
ZEV4aXRGdWxsc2NyZWVuOm1fd2ViVmlld107CisgICAgICAgIFttX2RlbGVnYXRlLmdldCgpIF93
ZWJWaWV3RGlkRXhpdEZ1bGxzY3JlZW46c3RhdGljX2Nhc3Q8TlNWaWV3ICo+KG1fd2ViVmlldyld
OwogI2Vsc2UKICAgICBpZiAobV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEV4aXRFbGVtZW50
RnVsbHNjcmVlbikKICAgICAgICAgW21fZGVsZWdhdGUuZ2V0KCkgX3dlYlZpZXdEaWRFeGl0RWxl
bWVudEZ1bGxzY3JlZW46bV93ZWJWaWV3XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwubW0KaW5kZXggOWFhYjdmYjY4NmJmNmU1NmFiNTM2MmNkN2ZkZjJkYzk5
OWY0YjVjNS4uN2NhMTI2MTkxOGUzZWViNzA5ZDA3OTM4ZDM0YjRmNzQ5Y2FiMGFjNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTE1MzcsNyAr
MTUzNyw3IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChOU1ZpZXcgPFdlYlZpZXdJbXBsRGVs
ZWdhdGU+ICp2aWV3LCBXS1dlYlZpZXcgKm91dGVyV2ViCiAgICAgdmlldy5sYXllckNvbnRlbnRz
UGxhY2VtZW50ID0gTlNWaWV3TGF5ZXJDb250ZW50c1BsYWNlbWVudFRvcExlZnQ7CiAKICNpZiBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgbV9wYWdlLT5zZXRGdWxsc2NyZWVuQ2xpZW50KG1h
a2VVbmlxdWU8V2ViS2l0OjpGdWxsc2NyZWVuQ2xpZW50Pih2aWV3KSk7CisgICAgbV9wYWdlLT5z
ZXRGdWxsc2NyZWVuQ2xpZW50KG1ha2VVbmlxdWU8V2ViS2l0OjpGdWxsc2NyZWVuQ2xpZW50Pihv
dXRlcldlYlZpZXcpKTsKICNlbmRpZgogCiAjaWYgSEFWRShOU1NDUk9MTFZJRVdfU0VQQVJBVE9S
X1RSQUNLSU5HX0FEQVBURVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwCmluZGV4IDc3ZjFlMDIxMTU3M2UyOWQxYmU0MDM0
NjQ5MTg4M2FhMDQ0ODAwNzIuLmNhYzQ0MjY3M2E5ODMxOTdjODhkNTMxODM3ZmQ3MWNmN2ZiZGEx
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHkuY3BwCkBAIC01NiwxMiArNTYsMTQgQEAgV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eTo6fldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkoKQogCiB2b2lkIFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHk6OndpbGxFbnRlckZ1bGxTY3JlZW4oKQogeworICAgIG1fZnVsbHNjcmVlblN0
YXRlID0gRnVsbHNjcmVlblN0YXRlOjpFbnRlcmluZ0Z1bGxzY3JlZW47CiAgICAgbV9wYWdlLmZ1
bGxzY3JlZW5DbGllbnQoKS53aWxsRW50ZXJGdWxsc2NyZWVuKCZtX3BhZ2UpOwogICAgIG1fcGFn
ZS5zZW5kKE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6V2lsbEVudGVyRnVsbFNjcmVl
bigpKTsKIH0KIAogdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpkaWRFbnRlckZ1bGxT
Y3JlZW4oKQogeworICAgIG1fZnVsbHNjcmVlblN0YXRlID0gRnVsbHNjcmVlblN0YXRlOjpJbkZ1
bGxzY3JlZW47CiAgICAgbV9wYWdlLmZ1bGxzY3JlZW5DbGllbnQoKS5kaWRFbnRlckZ1bGxzY3Jl
ZW4oJm1fcGFnZSk7CiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5h
Z2VyOjpEaWRFbnRlckZ1bGxTY3JlZW4oKSk7CiAKQEAgLTczLDYgKzc1LDcgQEAgdm9pZCBXZWJG
dWxsU2NyZWVuTWFuYWdlclByb3h5OjpkaWRFbnRlckZ1bGxTY3JlZW4oKQogCiB2b2lkIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHk6OndpbGxFeGl0RnVsbFNjcmVlbigpCiB7CisgICAgbV9mdWxs
c2NyZWVuU3RhdGUgPSBGdWxsc2NyZWVuU3RhdGU6OkV4aXRpbmdGdWxsc2NyZWVuOwogICAgIG1f
cGFnZS5mdWxsc2NyZWVuQ2xpZW50KCkud2lsbEV4aXRGdWxsc2NyZWVuKCZtX3BhZ2UpOwogICAg
IG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6V2lsbEV4aXRGdWxs
U2NyZWVuKCkpOwogfQpAQCAtOTIsNiArOTUsNyBAQCB2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHk6OmNsb3NlV2l0aENhbGxiYWNrKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjbwog
CiB2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmRpZEV4aXRGdWxsU2NyZWVuKCkKIHsK
KyAgICBtX2Z1bGxzY3JlZW5TdGF0ZSA9IEZ1bGxzY3JlZW5TdGF0ZTo6Tm90SW5GdWxsc2NyZWVu
OwogICAgIG1fcGFnZS5mdWxsc2NyZWVuQ2xpZW50KCkuZGlkRXhpdEZ1bGxzY3JlZW4oJm1fcGFn
ZSk7CiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpEaWRF
eGl0RnVsbFNjcmVlbigpKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaAppbmRleCBlYzlmODY2YjdiNmRhMjA5MzdjOGJh
NTFhYjVlYzAzZWEyNWM3NzlkLi4wNzM1ZDEyNjFkZDI0MjQwMjE0MjU5NWU5ODVhOWQwMmE0NzE1
YmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1h
bmFnZXJQcm94eS5oCkBAIC02Nyw2ICs2NywxNCBAQCBwdWJsaWM6CiAgICAgYm9vbCBibG9ja3NS
ZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9tUGljdHVyZUluUGljdHVyZSgpIGNvbnN0OwogICAgIHZvaWQg
Y2xvc2UoKTsKIAorICAgIGVudW0gY2xhc3MgRnVsbHNjcmVlblN0YXRlIDogdWludDhfdCB7Cisg
ICAgICAgIE5vdEluRnVsbHNjcmVlbiwKKyAgICAgICAgRW50ZXJpbmdGdWxsc2NyZWVuLAorICAg
ICAgICBJbkZ1bGxzY3JlZW4sCisgICAgICAgIEV4aXRpbmdGdWxsc2NyZWVuLAorICAgIH07Cisg
ICAgRnVsbHNjcmVlblN0YXRlIGZ1bGxzY3JlZW5TdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnVs
bHNjcmVlblN0YXRlOyB9CisKICAgICB2b2lkIHdpbGxFbnRlckZ1bGxTY3JlZW4oKTsKICAgICB2
b2lkIGRpZEVudGVyRnVsbFNjcmVlbigpOwogICAgIHZvaWQgd2lsbEV4aXRGdWxsU2NyZWVuKCk7
CkBAIC05NCw2ICsxMDIsNyBAQCBwcml2YXRlOgogCiAgICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7
CiAgICAgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eUNsaWVudCYgbV9jbGllbnQ7CisgICAgRnVs
bHNjcmVlblN0YXRlIG1fZnVsbHNjcmVlblN0YXRlIHsgRnVsbHNjcmVlblN0YXRlOjpOb3RJbkZ1
bGxzY3JlZW4gfTsKICAgICBib29sIG1fYmxvY2tzUmV0dXJuVG9GdWxsc2NyZWVuRnJvbVBpY3R1
cmVJblBpY3R1cmUgeyBmYWxzZSB9OwogICAgIFZlY3RvcjxDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+PiBtX2Nsb3NlQ29tcGxldGlvbkhhbmRsZXJzOwogfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlZWY4YWRiNzU3ZmIzNTIxMDJiODIwNTZl
OGNlYTgyNGRmN2Y1NTQ0Li4xYmY3YzgwMTQ4ZjE2OGVkYjJiNmNlMjgwM2QyOTA4MWJjNTAyM2Qx
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMjEtMDktMzAgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4K
KworICAgICAgICBQcm9tb3RlIFdLUHJlZmVyZW5jZXMuX2Z1bGxTY3JlZW5FbmFibGVkIHRvIEFQ
SQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNzg0
CisgICAgICAgIDxyZGFyOi8vODMyNTUzMDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9tYWMvQXBwRGVsZWdhdGUubToKKyAg
ICAgICAgKC1bQnJvd3NlckFwcERlbGVnYXRlIGRlZmF1bHRDb25maWd1cmF0aW9uXSk6CisKIDIw
MjEtMDktMjIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBQQ00gc2hvdWxkIGluY2x1ZGUgdGhlIGJ1bmRsZSBJRCBvZiB0aGUgYXBwIGZyb20g
d2hpY2ggaXQgb3JpZ2luYXRlZApkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Fw
cERlbGVnYXRlLm0gYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQXBwRGVsZWdhdGUubQppbmRleCA3
NWQ2OTFkZTI2YmZhOWYzZWRjMjBjNTMzMDBiN2EzMTQ5YjczOWRhLi40NWY5OGQxNmY4NmU1NGI1
Y2E3MTc1NWJkZjhjNGI1YmM4NTQ0NGY0IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9t
YWMvQXBwRGVsZWdhdGUubQorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQXBwRGVsZWdhdGUu
bQpAQCAtMTQwLDcgKzE0MCw3IEBAIC0gKFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKilkZWZhdWx0
Q29uZmlndXJhdGlvbgogICAgICAgICAgICAgW2NvbmZpZ3VyYXRpb24ucHJlZmVyZW5jZXMgX3Nl
dEVuYWJsZWQ6ZW5hYmxlZCBmb3JJbnRlcm5hbERlYnVnRmVhdHVyZTpmZWF0dXJlXTsKICAgICAg
ICAgfQogCi0gICAgICAgIGNvbmZpZ3VyYXRpb24ucHJlZmVyZW5jZXMuX2Z1bGxTY3JlZW5FbmFi
bGVkID0gWUVTOworICAgICAgICBjb25maWd1cmF0aW9uLnByZWZlcmVuY2VzLmZ1bGxTY3JlZW5F
bmFibGVkID0gWUVTOwogICAgICAgICBjb25maWd1cmF0aW9uLnByZWZlcmVuY2VzLl9hbGxvd3NQ
aWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayA9IFlFUzsKICAgICAgICAgY29uZmlndXJhdGlv
bi5wcmVmZXJlbmNlcy5fZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCA9IFlFUzsKICAgICAgICAgY29u
ZmlndXJhdGlvbi5wcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443901</attachid>
            <date>2021-11-10 20:35:12 -0800</date>
            <delta_ts>2021-11-12 14:14:36 -0800</delta_ts>
            <desc>[fast-cq] Patch</desc>
            <filename>bug-230784-20211110203511.patch</filename>
            <type>text/plain</type>
            <size>16535</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NjA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE1MzE3MTMyODE0NTRiMDA0
YjJlOTQzYTYyZjVhYTVkMjM2ZWM5YzguLjBlZDNlOWQ2MjYxM2YzMGM5OWM3MzM2NjE4MDQzODJj
NTBmYjc4N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMTEtMTAgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBQcm9tb3RlIFdLUHJlZmVyZW5jZXMu
X2Z1bGxTY3JlZW5FbmFibGVkIHRvIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNzg0CisgICAgICAgIDxyZGFyOi8vODMyNTUzMDg+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgaXNFbGVtZW50RnVs
bHNjcmVlbkVuYWJsZWRdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBzZXRFbGVtZW50RnVs
bHNjcmVlbkVuYWJsZWQ6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IGZ1bGxzY3JlZW5TdGF0ZV0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9GdWxsc2NyZWVuQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL0Z1bGxz
Y3JlZW5DbGllbnQubW06CisgICAgICAgIChXZWJLaXQ6OkZ1bGxzY3JlZW5DbGllbnQ6OndpbGxF
bnRlckZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpGdWxsc2NyZWVuQ2xpZW50OjpkaWRF
bnRlckZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpGdWxsc2NyZWVuQ2xpZW50Ojp3aWxs
RXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpGdWxsc2NyZWVuQ2xpZW50OjpkaWRF
eGl0RnVsbHNjcmVlbik6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6d2lsbEVudGVyRnVsbFNjcmVlbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmRpZEVudGVyRnVsbFNjcmVl
bik6CisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OndpbGxFeGl0
RnVsbFNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6
OmRpZEV4aXRGdWxsU2NyZWVuKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1h
bmFnZXJQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
OjpmdWxsc2NyZWVuU3RhdGUgY29uc3QpOgorCiAyMDIxLTExLTEwICBQZXIgQXJuZSBWb2xsYW4g
PHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU11bR1BVUF0gUmVtb3ZlIGFjY2Vz
cyB0byBzeXNjdGwgcHJvcGVydGllcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgKaW5kZXggYzliMDc0Mzk3NTliM2MwNGZlZmYwMzI0ZjRh
M2Y1NWUzYWJhODUwNS4uZGQ1MjNkODg5YzRhNmYxNGY4OTBiN2U4MTIxNjg2NjExMGJiM2FkMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5j
ZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNl
cy5oCkBAIC03MCw2ICs3MCwxMSBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBp
b3MoOC4wKSkKICAqLwogQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1pc1NpdGVTcGVjaWZp
Y1F1aXJrc01vZGVFbmFibGVkKSBCT09MIHNpdGVTcGVjaWZpY1F1aXJrc01vZGVFbmFibGVkIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKKy8q
ISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBGdWxsc2NyZWVu
IEFQSSBpcyBlbmFibGVkLgorIEBkaXNjdXNzaW9uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIE5PLiBX
ZSBjYW4gc2V0IGl0IHRvIFlFUyB0byBlbmFibGUgc3VwcG9ydCBmb3IgdGhlIGZ1bGxzY3JlZW4g
QVBJLgorICovCitAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPWlzRWxlbWVudEZ1bGxzY3Jl
ZW5FbmFibGVkKSBCT09MIGVsZW1lbnRGdWxsc2NyZWVuRW5hYmxlZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCiBAZW5kCiAKIEBpbnRlcmZh
Y2UgV0tQcmVmZXJlbmNlcyAoV0tEZXByZWNhdGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQppbmRleCA5YmNmN2VkYWYwNmMxOGI2
ZDdkOWVmZTU3MDdjMGI5ZjVmNDRlNWNiLi44OWUxYTFhYmY3YjkxYjdkZGNlOGU2NTM1ZTZmZGIx
MmJjNjZhNzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmVmZXJlbmNlcy5tbQpAQCAtMTYzLDYgKzE2MywxNiBAQCBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKICAgICBfcHJlZmVyZW5jZXMtPnNldE5lZWRzU2l0ZVNwZWNpZmljUXVp
cmtzKGVuYWJsZWQpOwogfQogCistIChCT09MKWlzRWxlbWVudEZ1bGxzY3JlZW5FbmFibGVkCit7
CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+ZnVsbFNjcmVlbkVuYWJsZWQoKTsKK30KKworLSAo
dm9pZClzZXRFbGVtZW50RnVsbHNjcmVlbkVuYWJsZWQ6KEJPT0wpZWxlbWVudEZ1bGxzY3JlZW5F
bmFibGVkCit7CisgICAgX3ByZWZlcmVuY2VzLT5zZXRGdWxsU2NyZWVuRW5hYmxlZChlbGVtZW50
RnVsbHNjcmVlbkVuYWJsZWQpOworfQorCiAjcHJhZ21hIG1hcmsgT1MgWC1zcGVjaWZpYyBtZXRo
b2RzCiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3LmgKaW5kZXggOTE2YTVmNmJhZDFjZjUzZjcyMTMzMWE5MjMyNTAzMjgz
NDNhNWZkOC4uZWQ0OGVhM2MzMjQ4MjUxNjE0NmZlNTlkZWZkNDNlZjExYmQ2NzgyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaApAQCAtNzQsNiAr
NzQsMTMgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tNZWRpYUNhcHR1cmVTdGF0ZSkg
ewogICAgIFdLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZCwKIH0gV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMi4wKSwgaW9zKDE1LjApKTsKIAordHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tGdWxs
c2NyZWVuU3RhdGUpIHsKKyAgICBXS0Z1bGxzY3JlZW5TdGF0ZU5vdEluRnVsbHNjcmVlbiwKKyAg
ICBXS0Z1bGxzY3JlZW5TdGF0ZUVudGVyaW5nRnVsbHNjcmVlbiwKKyAgICBXS0Z1bGxzY3JlZW5T
dGF0ZUluRnVsbHNjcmVlbiwKKyAgICBXS0Z1bGxzY3JlZW5TdGF0ZUV4aXRpbmdGdWxsc2NyZWVu
LAorfSBOU19TV0lGVF9OQU1FKFdLV2ViVmlldy5GdWxsc2NyZWVuU3RhdGUpIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKIC8qISBAYWJzdHJh
Y3QgQSBjb3B5IG9mIHRoZSBjb25maWd1cmF0aW9uIHdpdGggd2hpY2ggdGhlIHdlYiB2aWV3IHdh
cwogIGluaXRpYWxpemVkLiAqLwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5
KSBXS1dlYlZpZXdDb25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uOwpAQCAtNjA0LDYgKzYxMSwx
NiBAQCBUaGUgdW5pZm9ybSB0eXBlIGlkZW50aWZpZXIga1VUVHlwZVdlYkFyY2hpdmUgY2FuIGJl
IHVzZWQgZ2V0IHRoZSByZWxhdGVkIHBhc3RlYgogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxf
cmVzZXR0YWJsZSwgY29weSkgTlNDb2xvciAqdW5kZXJQYWdlQmFja2dyb3VuZENvbG9yIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTIuMCkpOwogI2VuZGlmCiAKKy8qISBAYWJzdHJhY3QgQSBXS1dl
YlZpZXcncyBmdWxsc2NyZWVuIHN0YXRlLgorIEBkaXNjdXNzaW9uIEBsaW5rIFdLV2ViVmlldyBA
bGluayBpcyBrZXktdmFsdWUgb2JzZXJ2aW5nIChLVk8pIGNvbXBsaWFudCBmb3IgdGhpcyBwcm9w
ZXJ0eS4gV2hlbiBhbiBlbGVtZW50CisgaW4gdGhlIFdLV2ViVmlldyBlbnRlcnMgZnVsbHNjcmVl
biwgV2ViS2l0IHdpbGwgcmVwbGFjZSB0aGUgV0tXZWJWaWV3IGluIHRoZSBhcHBsaWNhdGlvbiB2
aWV3IGhpZXJhcmNoeSB3aXRoCisgYSAicGxhY2Vob2xkZXIiIHZpZXcsIGFuZCBtb3ZlIHRoZSBX
S1dlYlZpZXcgaW50byBhIGZ1bGxzY3JlZW4gd2luZG93LiBXaGVuIHRoZSBlbGVtZW50IGV4aXRz
IGZ1bGxzY3JlZW4gbGF0ZXIsCisgdGhlIFdLV2ViVmlldyB3aWxsIGJlIG1vdmVkIGJhY2sgaW50
byB0aGUgYXBwbGljYXRpb24gdmlldyBoaWVyYXJjaHkuIEFuIGFwcGxpY2F0aW9uIG1heSBuZWVk
IHRvIGFkanVzdC9yZXN0b3JlCisgaXRzIG5hdGl2ZSBVSSBjb21wb25lbnRzIHdoZW4gdGhlIGZ1
bGxzY3JlZW4gc3RhdGUgY2hhbmdlcy4gVGhlIGFwcGxpY2F0aW9uIHNob3VsZCBvYnNlcnZlIHRo
ZSBmdWxsc2NyZWVuU3RhdGUKKyBwcm9wZXJ0eSBvZiBXS1dlYlZpZXcgaW4gb3JkZXIgdG8gcmVj
ZWl2ZSBub3RpZmljYXRpb25zIHJlZ2FyZGluZyB0aGUgZnVsbHNjcmVlbiBzdGF0ZSBjaGFuZ2Uu
CisgKi8KK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tGdWxsc2NyZWVuU3RhdGUg
ZnVsbHNjcmVlblN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CisKIEBlbmQKIAogI2lmICFUQVJHRVRfT1NfSVBIT05FCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCBhMjU2NGRmMmE1
YWIxNzAxMDU5MjNlNWU3ZGU5ZDRiODM2MzQwODllLi43MWRiYTMyZjdlYmYzZjBmMTI5Mzc2YTNj
OGVmZjk1YTI5MTM4MmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0KQEAgLTcwLDcgKzcwLDcgQEAKICNpbXBvcnQgIldLTGF5b3V0TW9kZS5o
IgogI2ltcG9ydCAiV0tOU0RhdGEuaCIKICNpbXBvcnQgIldLTlNVUkxFeHRyYXMuaCIKLSNpbXBv
cnQgPFdlYktpdC9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oPgorI2ltcG9ydCAiV0tOYXZpZ2F0aW9u
RGVsZWdhdGUuaCIKICNpbXBvcnQgIldLTmF2aWdhdGlvbkludGVybmFsLmgiCiAjaW1wb3J0ICJX
S1BERkNvbmZpZ3VyYXRpb24uaCIKICNpbXBvcnQgIldLUHJlZmVyZW5jZXNJbnRlcm5hbC5oIgpA
QCAtNzgsOCArNzgsOCBAQAogI2ltcG9ydCAiV0tTYWZlQnJvd3NpbmdXYXJuaW5nLmgiCiAjaW1w
b3J0ICJXS1NoYXJlZEFQSUNhc3QuaCIKICNpbXBvcnQgIldLU25hcHNob3RDb25maWd1cmF0aW9u
LmgiCi0jaW1wb3J0IDxXZWJLaXQvV0tVSURlbGVnYXRlLmg+Ci0jaW1wb3J0IDxXZWJLaXQvV0tV
SURlbGVnYXRlUHJpdmF0ZS5oPgorI2ltcG9ydCAiV0tVSURlbGVnYXRlLmgiCisjaW1wb3J0ICJX
S1VJRGVsZWdhdGVQcml2YXRlLmgiCiAjaW1wb3J0ICJXS1VzZXJDb250ZW50Q29udHJvbGxlcklu
dGVybmFsLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdDb25maWd1cmF0aW9uSW50ZXJuYWwuaCIKICNp
bXBvcnQgIldLV2ViVmlld0NvbnRlbnRQcm92aWRlci5oIgpAQCAtMTc5MSw2ICsxNzkxLDM1IEBA
IHN0YXRpYyBfV0tTZWxlY3Rpb25BdHRyaWJ1dGVzIHNlbGVjdGlvbkF0dHJpYnV0ZXMoY29uc3Qg
V2ViS2l0OjpFZGl0b3JTdGF0ZSYgZWRpCiAgICAgcmV0dXJuIE5POwogfQogCistIChXS0Z1bGxz
Y3JlZW5TdGF0ZSlmdWxsc2NyZWVuU3RhdGUKK3sKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CisgICAgYXV0byogZnVsbHNjcmVlbk1hbmFnZXIgPSBfcGFnZS0+ZnVsbFNjcmVlbk1hbmFnZXIo
KTsKKyAgICBpZiAoIWZ1bGxzY3JlZW5NYW5hZ2VyKQorICAgICAgICByZXR1cm4gV0tGdWxsc2Ny
ZWVuU3RhdGVOb3RJbkZ1bGxzY3JlZW47CisKKyAgICBXS0Z1bGxzY3JlZW5TdGF0ZSBzdGF0ZSA9
IFdLRnVsbHNjcmVlblN0YXRlTm90SW5GdWxsc2NyZWVuOworICAgIHN3aXRjaCAoZnVsbHNjcmVl
bk1hbmFnZXItPmZ1bGxzY3JlZW5TdGF0ZSgpKSB7CisgICAgY2FzZSBXZWJLaXQ6OldlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHk6OkZ1bGxzY3JlZW5TdGF0ZTo6RW50ZXJpbmdGdWxsc2NyZWVuOgor
ICAgICAgICBzdGF0ZSA9IFdLRnVsbHNjcmVlblN0YXRlRW50ZXJpbmdGdWxsc2NyZWVuOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6
RnVsbHNjcmVlblN0YXRlOjpJbkZ1bGxzY3JlZW46CisgICAgICAgIHN0YXRlID0gV0tGdWxsc2Ny
ZWVuU3RhdGVJbkZ1bGxzY3JlZW47CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpGdWxsc2NyZWVuU3RhdGU6OkV4aXRpbmdGdWxsc2Ny
ZWVuOgorICAgICAgICBzdGF0ZSA9IFdLRnVsbHNjcmVlblN0YXRlRXhpdGluZ0Z1bGxzY3JlZW47
CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHN0YXRlID0gV0tGdWxsc2Ny
ZWVuU3RhdGVOb3RJbkZ1bGxzY3JlZW47CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJl
dHVybiBzdGF0ZTsKKyNlbHNlCisgICAgcmV0dXJuIFdLRnVsbHNjcmVlblN0YXRlTm90SW5GdWxs
c2NyZWVuOworI2VuZGlmCit9CisKIEBlbmQKIAogI3ByYWdtYSBtYXJrIC0KQEAgLTM1NjUsNiAr
MzU5NCw3IEBAIHN0YXRpYyBpbmxpbmUgT3B0aW9uU2V0PFdlYktpdDo6RmluZE9wdGlvbnM+IHRv
RmluZE9wdGlvbnMoX1dLRmluZE9wdGlvbnMgd2tGaW5kCiAjZW5kaWYKIH0KIAorLy8gRklYTUU6
IFJlbW92ZSB0aGlzIGFmdGVyIFNhZmFyaSBhZG9wdHMgdGhlIG5ldyBBUEkKIC0gKHZvaWQpX3Nl
dEZ1bGxzY3JlZW5EZWxlZ2F0ZTooaWQ8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPilkZWxlZ2F0ZQog
ewogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKQEAgLTM1NzMsNiArMzYwMyw3IEBAIHN0YXRp
YyBpbmxpbmUgT3B0aW9uU2V0PFdlYktpdDo6RmluZE9wdGlvbnM+IHRvRmluZE9wdGlvbnMoX1dL
RmluZE9wdGlvbnMgd2tGaW5kCiAjZW5kaWYKIH0KIAorLy8gRklYTUU6IFJlbW92ZSB0aGlzIGFm
dGVyIFNhZmFyaSBhZG9wdHMgdGhlIG5ldyBBUEkKIC0gKGlkPF9XS0Z1bGxzY3JlZW5EZWxlZ2F0
ZT4pX2Z1bGxzY3JlZW5EZWxlZ2F0ZQogewogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKQEAg
LTM1ODIsNiArMzYxMyw3IEBAIHN0YXRpYyBpbmxpbmUgT3B0aW9uU2V0PFdlYktpdDo6RmluZE9w
dGlvbnM+IHRvRmluZE9wdGlvbnMoX1dLRmluZE9wdGlvbnMgd2tGaW5kCiAgICAgcmV0dXJuIG5p
bDsKIH0KIAorLy8gRklYTUU6IFJlbW92ZSB0aGlzIGFmdGVyIFNhZmFyaSBhZG9wdHMgdGhlIG5l
dyBBUEkKIC0gKEJPT0wpX2lzSW5GdWxsc2NyZWVuCiB7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5f
QVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVl
bkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVu
dC5oCmluZGV4IGQ1M2MyZWZkZTYwODQwMWE1OTY3YmRiYmJiNzA5YmNkOTkyZGJhYzMuLmEwMGQx
ZjEyODI4ZmRlMDdiNTMzNDc2ODk0NzYyZTJjY2IzYzQ2OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL0Z1bGxzY3JlZW5DbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9GdWxsc2NyZWVuQ2xpZW50LmgKQEAgLTMxLDEzICszMSw4IEBA
CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4K
IAotI2lmIFBMQVRGT1JNKE1BQykKLUBjbGFzcyBOU1ZpZXc7Ci11c2luZyBXS0Z1bGxzY3JlZW5D
bGllbnRWaWV3ID0gTlNWaWV3OwotI2Vsc2UKIEBjbGFzcyBXS1dlYlZpZXc7CiB1c2luZyBXS0Z1
bGxzY3JlZW5DbGllbnRWaWV3ID0gV0tXZWJWaWV3OwotI2VuZGlmCiAKIEBwcm90b2NvbCBfV0tG
dWxsc2NyZWVuRGVsZWdhdGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL0Z1bGxzY3JlZW5DbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9GdWxsc2NyZWVuQ2xpZW50Lm1tCmluZGV4IGMyZmJjNzVkNjNjNjZiMjJjOGU2YjhhNDQ2OWM4
ZTQzY2YyNTQ4ZDMuLjFlOTNhZWJhNmFiZGU5OTY3ZTFkMjRhNjI0ZjFhM2M3ZTcxN2NmMTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0Z1bGxzY3JlZW5DbGllbnQu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVudC5t
bQpAQCAtNTksOSArNTksMTEgQEAgdm9pZCBGdWxsc2NyZWVuQ2xpZW50OjpzZXREZWxlZ2F0ZShp
ZCA8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPiBkZWxlZ2F0ZSkKIAogdm9pZCBGdWxsc2NyZWVuQ2xp
ZW50Ojp3aWxsRW50ZXJGdWxsc2NyZWVuKFdlYlBhZ2VQcm94eSopCiB7CisgICAgW21fd2ViVmll
dyB3aWxsQ2hhbmdlVmFsdWVGb3JLZXk6QCJmdWxsc2NyZWVuU3RhdGUiXTsKKyAgICBbbV93ZWJW
aWV3IGRpZENoYW5nZVZhbHVlRm9yS2V5OkAiZnVsbHNjcmVlblN0YXRlIl07CiAjaWYgUExBVEZP
Uk0oTUFDKQogICAgIGlmIChtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2lsbEVudGVyRnVsbHNj
cmVlbikKLSAgICAgICAgW21fZGVsZWdhdGUuZ2V0KCkgX3dlYlZpZXdXaWxsRW50ZXJGdWxsc2Ny
ZWVuOm1fd2ViVmlld107CisgICAgICAgIFttX2RlbGVnYXRlLmdldCgpIF93ZWJWaWV3V2lsbEVu
dGVyRnVsbHNjcmVlbjpzdGF0aWNfY2FzdDxOU1ZpZXcgKj4obV93ZWJWaWV3KV07CiAjZWxzZQog
ICAgIGlmIChtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2lsbEVudGVyRWxlbWVudEZ1bGxzY3Jl
ZW4pCiAgICAgICAgIFttX2RlbGVnYXRlLmdldCgpIF93ZWJWaWV3V2lsbEVudGVyRWxlbWVudEZ1
bGxzY3JlZW46bV93ZWJWaWV3XTsKQEAgLTcwLDkgKzcyLDExIEBAIHZvaWQgRnVsbHNjcmVlbkNs
aWVudDo6d2lsbEVudGVyRnVsbHNjcmVlbihXZWJQYWdlUHJveHkqKQogCiB2b2lkIEZ1bGxzY3Jl
ZW5DbGllbnQ6OmRpZEVudGVyRnVsbHNjcmVlbihXZWJQYWdlUHJveHkqKQogeworICAgIFttX3dl
YlZpZXcgd2lsbENoYW5nZVZhbHVlRm9yS2V5OkAiZnVsbHNjcmVlblN0YXRlIl07CisgICAgW21f
d2ViVmlldyBkaWRDaGFuZ2VWYWx1ZUZvcktleTpAImZ1bGxzY3JlZW5TdGF0ZSJdOwogI2lmIFBM
QVRGT1JNKE1BQykKICAgICBpZiAobV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEVudGVyRnVs
bHNjcmVlbikKLSAgICAgICAgW21fZGVsZWdhdGUuZ2V0KCkgX3dlYlZpZXdEaWRFbnRlckZ1bGxz
Y3JlZW46bV93ZWJWaWV3XTsKKyAgICAgICAgW21fZGVsZWdhdGUuZ2V0KCkgX3dlYlZpZXdEaWRF
bnRlckZ1bGxzY3JlZW46c3RhdGljX2Nhc3Q8TlNWaWV3ICo+KG1fd2ViVmlldyldOwogI2Vsc2UK
ICAgICBpZiAobV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEVudGVyRWxlbWVudEZ1bGxzY3Jl
ZW4pCiAgICAgICAgIFttX2RlbGVnYXRlLmdldCgpIF93ZWJWaWV3RGlkRW50ZXJFbGVtZW50RnVs
bHNjcmVlbjptX3dlYlZpZXddOwpAQCAtODEsOSArODUsMTEgQEAgdm9pZCBGdWxsc2NyZWVuQ2xp
ZW50OjpkaWRFbnRlckZ1bGxzY3JlZW4oV2ViUGFnZVByb3h5KikKIAogdm9pZCBGdWxsc2NyZWVu
Q2xpZW50Ojp3aWxsRXhpdEZ1bGxzY3JlZW4oV2ViUGFnZVByb3h5KikKIHsKKyAgICBbbV93ZWJW
aWV3IHdpbGxDaGFuZ2VWYWx1ZUZvcktleTpAImZ1bGxzY3JlZW5TdGF0ZSJdOworICAgIFttX3dl
YlZpZXcgZGlkQ2hhbmdlVmFsdWVGb3JLZXk6QCJmdWxsc2NyZWVuU3RhdGUiXTsKICNpZiBQTEFU
Rk9STShNQUMpCiAgICAgaWYgKG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxsRXhpdEZ1bGxz
Y3JlZW4pCi0gICAgICAgIFttX2RlbGVnYXRlLmdldCgpIF93ZWJWaWV3V2lsbEV4aXRGdWxsc2Ny
ZWVuOm1fd2ViVmlld107CisgICAgICAgIFttX2RlbGVnYXRlLmdldCgpIF93ZWJWaWV3V2lsbEV4
aXRGdWxsc2NyZWVuOnN0YXRpY19jYXN0PE5TVmlldyAqPihtX3dlYlZpZXcpXTsKICNlbHNlCiAg
ICAgaWYgKG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxsRXhpdEVsZW1lbnRGdWxsc2NyZWVu
KQogICAgICAgICBbbV9kZWxlZ2F0ZS5nZXQoKSBfd2ViVmlld1dpbGxFeGl0RWxlbWVudEZ1bGxz
Y3JlZW46bV93ZWJWaWV3XTsKQEAgLTkyLDkgKzk4LDExIEBAIHZvaWQgRnVsbHNjcmVlbkNsaWVu
dDo6d2lsbEV4aXRGdWxsc2NyZWVuKFdlYlBhZ2VQcm94eSopCiAKIHZvaWQgRnVsbHNjcmVlbkNs
aWVudDo6ZGlkRXhpdEZ1bGxzY3JlZW4oV2ViUGFnZVByb3h5KikKIHsKKyAgICBbbV93ZWJWaWV3
IHdpbGxDaGFuZ2VWYWx1ZUZvcktleTpAImZ1bGxzY3JlZW5TdGF0ZSJdOworICAgIFttX3dlYlZp
ZXcgZGlkQ2hhbmdlVmFsdWVGb3JLZXk6QCJmdWxsc2NyZWVuU3RhdGUiXTsKICNpZiBQTEFURk9S
TShNQUMpCiAgICAgaWYgKG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRFeGl0RnVsbHNjcmVl
bikKLSAgICAgICAgW21fZGVsZWdhdGUuZ2V0KCkgX3dlYlZpZXdEaWRFeGl0RnVsbHNjcmVlbjpt
X3dlYlZpZXddOworICAgICAgICBbbV9kZWxlZ2F0ZS5nZXQoKSBfd2ViVmlld0RpZEV4aXRGdWxs
c2NyZWVuOnN0YXRpY19jYXN0PE5TVmlldyAqPihtX3dlYlZpZXcpXTsKICNlbHNlCiAgICAgaWYg
KG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRFeGl0RWxlbWVudEZ1bGxzY3JlZW4pCiAgICAg
ICAgIFttX2RlbGVnYXRlLmdldCgpIF93ZWJWaWV3RGlkRXhpdEVsZW1lbnRGdWxsc2NyZWVuOm1f
d2ViVmlld107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1t
CmluZGV4IDA5YWQzOThiY2FiNmQ0MmY0MDhhN2ZiOGY0ODYyOGYyYzEwYjQxYjUuLjRhOTcwMGEw
ZjAzYTNlMjE4MTJhMTI2M2M1MTIzZDc1ODg1MDFjYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0xNTM3LDcgKzE1MzcsNyBAQCBXZWJWaWV3
SW1wbDo6V2ViVmlld0ltcGwoTlNWaWV3IDxXZWJWaWV3SW1wbERlbGVnYXRlPiAqdmlldywgV0tX
ZWJWaWV3ICpvdXRlcldlYgogICAgIHZpZXcubGF5ZXJDb250ZW50c1BsYWNlbWVudCA9IE5TVmll
d0xheWVyQ29udGVudHNQbGFjZW1lbnRUb3BMZWZ0OwogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5f
QVBJKQotICAgIG1fcGFnZS0+c2V0RnVsbHNjcmVlbkNsaWVudChtYWtlVW5pcXVlPFdlYktpdDo6
RnVsbHNjcmVlbkNsaWVudD4odmlldykpOworICAgIG1fcGFnZS0+c2V0RnVsbHNjcmVlbkNsaWVu
dChtYWtlVW5pcXVlPFdlYktpdDo6RnVsbHNjcmVlbkNsaWVudD4ob3V0ZXJXZWJWaWV3KSk7CiAj
ZW5kaWYKIAogI2lmIEhBVkUoTlNTQ1JPTExWSUVXX1NFUEFSQVRPUl9UUkFDS0lOR19BREFQVEVS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5LmNwcAppbmRleCA3N2YxZTAyMTE1NzNlMjlkMWJlNDAzNDY0OTE4ODNhYTA0NDgwMDcy
Li5jYWM0NDI2NzNhOTgzMTk3Yzg4ZDUzMTgzN2ZkNzFjZjdmYmRhMTdkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcApA
QCAtNTYsMTIgKzU2LDE0IEBAIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6On5XZWJGdWxsU2Ny
ZWVuTWFuYWdlclByb3h5KCkKIAogdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Ojp3aWxs
RW50ZXJGdWxsU2NyZWVuKCkKIHsKKyAgICBtX2Z1bGxzY3JlZW5TdGF0ZSA9IEZ1bGxzY3JlZW5T
dGF0ZTo6RW50ZXJpbmdGdWxsc2NyZWVuOwogICAgIG1fcGFnZS5mdWxsc2NyZWVuQ2xpZW50KCku
d2lsbEVudGVyRnVsbHNjcmVlbigmbV9wYWdlKTsKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6
V2ViRnVsbFNjcmVlbk1hbmFnZXI6OldpbGxFbnRlckZ1bGxTY3JlZW4oKSk7CiB9CiAKIHZvaWQg
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkRW50ZXJGdWxsU2NyZWVuKCkKIHsKKyAgICBt
X2Z1bGxzY3JlZW5TdGF0ZSA9IEZ1bGxzY3JlZW5TdGF0ZTo6SW5GdWxsc2NyZWVuOwogICAgIG1f
cGFnZS5mdWxsc2NyZWVuQ2xpZW50KCkuZGlkRW50ZXJGdWxsc2NyZWVuKCZtX3BhZ2UpOwogICAg
IG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6RGlkRW50ZXJGdWxs
U2NyZWVuKCkpOwogCkBAIC03Myw2ICs3NSw3IEBAIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eTo6ZGlkRW50ZXJGdWxsU2NyZWVuKCkKIAogdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5Ojp3aWxsRXhpdEZ1bGxTY3JlZW4oKQogeworICAgIG1fZnVsbHNjcmVlblN0YXRlID0gRnVs
bHNjcmVlblN0YXRlOjpFeGl0aW5nRnVsbHNjcmVlbjsKICAgICBtX3BhZ2UuZnVsbHNjcmVlbkNs
aWVudCgpLndpbGxFeGl0RnVsbHNjcmVlbigmbV9wYWdlKTsKICAgICBtX3BhZ2Uuc2VuZChNZXNz
YWdlczo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6OldpbGxFeGl0RnVsbFNjcmVlbigpKTsKIH0KQEAg
LTkyLDYgKzk1LDcgQEAgdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpjbG9zZVdpdGhD
YWxsYmFjayhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY28KIAogdm9pZCBXZWJGdWxsU2Ny
ZWVuTWFuYWdlclByb3h5OjpkaWRFeGl0RnVsbFNjcmVlbigpCiB7CisgICAgbV9mdWxsc2NyZWVu
U3RhdGUgPSBGdWxsc2NyZWVuU3RhdGU6Ok5vdEluRnVsbHNjcmVlbjsKICAgICBtX3BhZ2UuZnVs
bHNjcmVlbkNsaWVudCgpLmRpZEV4aXRGdWxsc2NyZWVuKCZtX3BhZ2UpOwogICAgIG1fcGFnZS5z
ZW5kKE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6RGlkRXhpdEZ1bGxTY3JlZW4oKSk7
CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVu
TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5LmgKaW5kZXggZWM5Zjg2NmI3YjZkYTIwOTM3YzhiYTUxYWI1ZWMwM2VhMjVjNzc5
ZC4uMDczNWQxMjYxZGQyNDI0MDIxNDI1OTVlOTg1YTlkMDJhNDcxNWJlMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAt
NjcsNiArNjcsMTQgQEAgcHVibGljOgogICAgIGJvb2wgYmxvY2tzUmV0dXJuVG9GdWxsc2NyZWVu
RnJvbVBpY3R1cmVJblBpY3R1cmUoKSBjb25zdDsKICAgICB2b2lkIGNsb3NlKCk7CiAKKyAgICBl
bnVtIGNsYXNzIEZ1bGxzY3JlZW5TdGF0ZSA6IHVpbnQ4X3QgeworICAgICAgICBOb3RJbkZ1bGxz
Y3JlZW4sCisgICAgICAgIEVudGVyaW5nRnVsbHNjcmVlbiwKKyAgICAgICAgSW5GdWxsc2NyZWVu
LAorICAgICAgICBFeGl0aW5nRnVsbHNjcmVlbiwKKyAgICB9OworICAgIEZ1bGxzY3JlZW5TdGF0
ZSBmdWxsc2NyZWVuU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Z1bGxzY3JlZW5TdGF0ZTsgfQor
CiAgICAgdm9pZCB3aWxsRW50ZXJGdWxsU2NyZWVuKCk7CiAgICAgdm9pZCBkaWRFbnRlckZ1bGxT
Y3JlZW4oKTsKICAgICB2b2lkIHdpbGxFeGl0RnVsbFNjcmVlbigpOwpAQCAtOTQsNiArMTAyLDcg
QEAgcHJpdmF0ZToKIAogICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOwogICAgIFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHlDbGllbnQmIG1fY2xpZW50OworICAgIEZ1bGxzY3JlZW5TdGF0ZSBtX2Z1
bGxzY3JlZW5TdGF0ZSB7IEZ1bGxzY3JlZW5TdGF0ZTo6Tm90SW5GdWxsc2NyZWVuIH07CiAgICAg
Ym9vbCBtX2Jsb2Nrc1JldHVyblRvRnVsbHNjcmVlbkZyb21QaWN0dXJlSW5QaWN0dXJlIHsgZmFs
c2UgfTsKICAgICBWZWN0b3I8Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPj4gbV9jbG9zZUNvbXBs
ZXRpb25IYW5kbGVyczsKIH07CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggMjUwYTNiOTUyMzcxMTgxMjQyZGMwNTQ0M2FkMDAyMjAxNTI1MjM3Yy4u
MzY5YmIxMDYzNWU5MmYxYzA2M2YxYjJmYzJkYTFmNDJjMTU0MWYxOCAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIx
LTExLTEwICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgUHJvbW90
ZSBXS1ByZWZlcmVuY2VzLl9mdWxsU2NyZWVuRW5hYmxlZCB0byBBUEkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDc4NAorICAgICAgICA8cmRhcjov
LzgzMjU1MzA4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogTWluaUJyb3dzZXIvbWFjL0FwcERlbGVnYXRlLm06CisgICAgICAgICgtW0Jyb3dzZXJB
cHBEZWxlZ2F0ZSBkZWZhdWx0Q29uZmlndXJhdGlvbl0pOgorCiAyMDIxLTExLTEwICBDb21taXQg
UXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBy
ZXZlcnRpbmcgcjI4NTYwMy4KZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9BcHBE
ZWxlZ2F0ZS5tIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0FwcERlbGVnYXRlLm0KaW5kZXggOGEz
MmJkOTI4ZTFhNGQzNjBjNzkxNTI5YWUyMDZiNTZkODAxYzU3MS4uZGU2ZjAzMDNlNjIzZWNhNWYy
MDIxZTk0ZGYxYzFhMDZkNTIwNjAyYSAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvbWFj
L0FwcERlbGVnYXRlLm0KKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0FwcERlbGVnYXRlLm0K
QEAgLTE0NSw3ICsxNDUsNyBAQCAtIChXS1dlYlZpZXdDb25maWd1cmF0aW9uICopZGVmYXVsdENv
bmZpZ3VyYXRpb24KICAgICAgICAgICAgIFtjb25maWd1cmF0aW9uLnByZWZlcmVuY2VzIF9zZXRF
bmFibGVkOmVuYWJsZWQgZm9ySW50ZXJuYWxEZWJ1Z0ZlYXR1cmU6ZmVhdHVyZV07CiAgICAgICAg
IH0KIAotICAgICAgICBjb25maWd1cmF0aW9uLnByZWZlcmVuY2VzLl9mdWxsU2NyZWVuRW5hYmxl
ZCA9IFlFUzsKKyAgICAgICAgY29uZmlndXJhdGlvbi5wcmVmZXJlbmNlcy5lbGVtZW50RnVsbHNj
cmVlbkVuYWJsZWQgPSBZRVM7CiAgICAgICAgIGNvbmZpZ3VyYXRpb24ucHJlZmVyZW5jZXMuX2Fs
bG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrID0gWUVTOwogICAgICAgICBjb25maWd1
cmF0aW9uLnByZWZlcmVuY2VzLl9kZXZlbG9wZXJFeHRyYXNFbmFibGVkID0gWUVTOwogICAgICAg
ICBjb25maWd1cmF0aW9uLnByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0g
WUVTOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>