<?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>184533</bug_id>
          
          <creation_ts>2018-04-12 05:12:43 -0700</creation_ts>
          <short_desc>[GStreamer] Convert GStreamerUtilities in GStreamerCommon and include the GStreamer smart pointer traits</short_desc>
          <delta_ts>2018-04-13 01:51:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Xabier Rodríguez Calvar">calvaris</reporter>
          <assigned_to name="Xabier Rodríguez Calvar">calvaris</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1413984</commentid>
    <comment_count>0</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-04-12 05:12:43 -0700</bug_when>
    <thetext>[GStreamer] Convert GStreamerUtilities in GStreamerCommon and include the GStreamer smart pointer traits</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413985</commentid>
    <comment_count>1</comment_count>
      <attachid>337789</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-04-12 05:19:38 -0700</bug_when>
    <thetext>Created attachment 337789
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413988</commentid>
    <comment_count>2</comment_count>
      <attachid>337789</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-04-12 05:26:47 -0700</bug_when>
    <thetext>Comment on attachment 337789
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +

Why the rename? I&apos;m not sure I get the new name Common, common to what?

&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp:24
&gt; +#include &quot;GStreamerCommon.h&quot;

The header is already guarded, so it can be moved right after config.h as suggested by the style guidelines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414323</commentid>
    <comment_count>3</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-04-13 00:01:49 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #2)
&gt; Why the rename? I&apos;m not sure I get the new name Common, common to what?

Because I want to include the smart pointer headers there and that way is no longer a utility file, but something highly recommendable.

&gt; &gt; Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp:24
&gt; &gt; +#include &quot;GStreamerCommon.h&quot;
&gt; 
&gt; The header is already guarded, so it can be moved right after config.h as
&gt; suggested by the style guidelines.

The style checker didn&apos;t mention it :/ Could I fix this during landing if you find the rest ok?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414328</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-04-13 00:21:05 -0700</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #3)
&gt; (In reply to Carlos Garcia Campos from comment #2)
&gt; &gt; Why the rename? I&apos;m not sure I get the new name Common, common to what?
&gt; 
&gt; Because I want to include the smart pointer headers there and that way is no
&gt; longer a utility file, but something highly recommendable.

And smart pointers are not utilities? I find the rename confusing and unnecessary, but I won&apos;t oppose if it makes sense for others.

&gt; &gt; &gt; Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp:24
&gt; &gt; &gt; +#include &quot;GStreamerCommon.h&quot;
&gt; &gt; 
&gt; &gt; The header is already guarded, so it can be moved right after config.h as
&gt; &gt; suggested by the style guidelines.
&gt; 
&gt; The style checker didn&apos;t mention it :/ Could I fix this during landing if
&gt; you find the rest ok?

Sure, it&apos;s just a nit, I didn&apos;t mean to r- this patch at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414338</commentid>
    <comment_count>5</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-04-13 00:44:03 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #4)
&gt; And smart pointers are not utilities? I find the rename confusing and
&gt; unnecessary, but I won&apos;t oppose if it makes sense for others.

Smart pointers are utilities but if you use a smart pointer without the proper deleter/ref/unref declared, you get trouble. For that you need to declare the proper deleter/ref/unref that happens to be in the G*PtrGStreamer.h files. I want to give the impression that is file is not just about utilities that you can use or not, it is something that you should include. That&apos;s why went thru the pain of changing the name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414340</commentid>
    <comment_count>6</comment_count>
      <attachid>337872</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-04-13 01:03:32 -0700</bug_when>
    <thetext>Created attachment 337872
Patch

Style fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414345</commentid>
    <comment_count>7</comment_count>
      <attachid>337872</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-13 01:50:50 -0700</bug_when>
    <thetext>Comment on attachment 337872
Patch

Clearing flags on attachment: 337872

Committed r230625: &lt;https://trac.webkit.org/changeset/230625&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414346</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-13 01:50:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414347</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-13 01:51:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/39407508&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337789</attachid>
            <date>2018-04-12 05:19:38 -0700</date>
            <delta_ts>2018-04-13 01:03:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184533-20180412141936.patch</filename>
            <type>text/plain</type>
            <size>60187</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTk1ZWU3YmFkODY3ODE4
MDBjZWFhYWE0NzRkYzU1YTBjODIwZWY0My4uMWViOWYxN2FmYjhiOTUzYTI5Y2MzNWUzYmY3ZTg3
MGJhMWVlODA0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE4LTA0LTEyICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dT
dHJlYW1lcl0gQ29udmVydCBHU3RyZWFtZXJVdGlsaXRpZXMgaW4gR1N0cmVhbWVyQ29tbW9uIGFu
ZCBpbmNsdWRlIHRoZSBHU3RyZWFtZXIgc21hcnQgcG9pbnRlciB0cmFpdHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDUzMworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZWQgR1N0cmVhbWVyVXRp
bGl0aWVzKiBmaWxlcyBpbnRvIEdTdHJlYW1lckNvbW1vbiogYW5kCisgICAgICAgIG1vZGlmaWVk
IGZpbGVzIGluY2x1ZGluZyB0aGVtIGFjY29yZGluZ2x5LiBJbmNsdWRlCisgICAgICAgIEdSZWZQ
dHJHU3RyZWFtZXIuaCBhbmQgR1VuaXF1ZVB0ckdTdHJlYW1lci5oIGluIEdTdHJlYW1lckNvbW1v
bi5oCisgICAgICAgIHRvIGF2b2lkIHByb2JsZW1zIGRlc3Ryb3lpbmcgb2JqZWN0cyB3aGVuIHRo
b3NlIGZpbGVzIGFyZQorICAgICAgICBmb3Jnb3R0ZW4gdG8gYmUgaW5jbHVkZWQuCisKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHA6CisgICAgICAgICogcGxhdGZv
cm0vR1N0cmVhbWVyLmNtYWtlOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9X
ZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5jcHA6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVy
VXRpbGl0aWVzLmNwcC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0
cmVhbWVyQ29tbW9uLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRpbGl0aWVzLmguCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8uY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVy
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFTYW1wbGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNhbXBsZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UZXh0Q29tYmluZXJHU3RyZWFtZXIuY3BwOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVh
bWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2
YXRlQmFzZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVz
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1l
ckVNRVV0aWxpdGllcy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9l
bWUvV2ViS2l0Q2xlYXJLZXlEZWNyeXB0b3JHU3RyZWFtZXIuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHRv
ckdTdHJlYW1lci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21z
ZS9BcHBlbmRQaXBlbGluZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9BcHBlbmRQaXBlbGluZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJNU0UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1T
RS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvUGxheWJhY2tQ
aXBlbGluZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9T
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291cmNlR1N0cmVhbWVyLmNwcDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291cmNlR1N0
cmVhbWVyLmg6CisKIDIwMTgtMDQtMTIgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFy
aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBmaXggR1N0cmVhbWVyIGJ1aWxk
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBmMTZjODBjNTlkZTE0ZjU2NGNjOTdkOWFmZGFkN2QwNDdjMTQ1MGMwLi43
ODk2OWQ1MDJjNTE0YTE4NjdjMmVhYjFjNDBiZjUyZmVmMTE2ZTc3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIwIEBACisyMDE4LTA0LTEyICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlz
QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl0gQ29udmVydCBHU3RyZWFtZXJVdGls
aXRpZXMgaW4gR1N0cmVhbWVyQ29tbW9uIGFuZCBpbmNsdWRlIHRoZSBHU3RyZWFtZXIgc21hcnQg
cG9pbnRlciB0cmFpdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4NDUzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlbmFtZWQgR1N0cmVhbWVyVXRpbGl0aWVzKiBmaWxlcyBpbnRvIEdTdHJlYW1lckNv
bW1vbiogYW5kCisgICAgICAgIG1vZGlmaWVkIGZpbGVzIGluY2x1ZGluZyB0aGVtIGFjY29yZGlu
Z2x5LiBJbmNsdWRlCisgICAgICAgIEdSZWZQdHJHU3RyZWFtZXIuaCBhbmQgR1VuaXF1ZVB0ckdT
dHJlYW1lci5oIGluIEdTdHJlYW1lckNvbW1vbi5oCisgICAgICAgIHRvIGF2b2lkIHByb2JsZW1z
IGRlc3Ryb3lpbmcgb2JqZWN0cyB3aGVuIHRob3NlIGZpbGVzIGFyZQorICAgICAgICBmb3Jnb3R0
ZW4gdG8gYmUgaW5jbHVkZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NQ
b29sR3RrLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NQb29sV1BFLmNw
cDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwOgorCiAyMDE4
LTA0LTExICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBB
ZGQgYSBtZWNoYW5pc20gZm9yIGhvbGRpbmcgV2ktRmkgYXNzZXJ0aW9ucwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmluZGV4IDViYjJiMDM2
YjZkYTFhMjE0YmE2MGExMWY2MDQxNGRlMTY2Y2M1ZGUuLjJjNzQxMGRmZDc0N2IwNjQ4M2I1M2Ji
MTFjYTcxY2FmODRmYmQ1MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvQ29udGV4dC5jcHAKQEAgLTg1LDcgKzg1LDcgQEAKICNlbmRpZgogCiAjaWYgVVNF
KEdTVFJFQU1FUikKLSNpbmNsdWRlICJHU3RyZWFtZXJVdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJH
U3RyZWFtZXJDb21tb24uaCIKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR1N0cmVhbWVyLmNtYWtlIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vR1N0cmVhbWVyLmNtYWtlCmluZGV4IGUxZWMyMzNkMGI4MDY3OTA1Y2U2MmE0
NGEwNTJiNmVjZjY2ZTVjNzQuLjNkNWE2ZTAwMjVhNTJiYjdiN2E2ZjcxZDM0NzE5ZjJiZGMyYzhl
NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dTdHJlYW1lci5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HU3RyZWFtZXIuY21ha2UKQEAgLTgsNyArOCw3
IEBAIGlmIChFTkFCTEVfVklERU8gT1IgRU5BQkxFX1dFQl9BVURJTykKICAgICBsaXN0KEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1
ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHAKLSAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5jcHAKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0dzdEFsbG9jYXRvckZhc3RNYWxsb2MuY3BwCiAgICAgICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAog
ICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0
cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5j
cHAKaW5kZXggNzc4ZGJkNmRlOThiN2Y2ZjJmYmY1ZTZlYjI5NWQwNGYxYmMwMWMxZi4uYTA0NmQx
ODVlN2UyZTg0OTE1NzgzYTY3ZGZlNzNhY2FlZDU0NjUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVh
bWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2Vi
S2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0yNSw4ICsyNSw3IEBACiAKICNpbmNs
dWRlICJBdWRpb0J1cy5oIgogI2luY2x1ZGUgIkF1ZGlvSU9DYWxsYmFjay5oIgotI2luY2x1ZGUg
IkdSZWZQdHJHU3RyZWFtZXIuaCIKLSNpbmNsdWRlICJHU3RyZWFtZXJVdGlsaXRpZXMuaCIKKyNp
bmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIKICNpbmNsdWRlIDxnc3QvYXBwL2dzdGFwcHNyYy5o
PgogI2luY2x1ZGUgPGdzdC9hdWRpby9hdWRpby1pbmZvLmg+CiAjaW5jbHVkZSA8Z3N0L3BidXRp
bHMvbWlzc2luZy1wbHVnaW5zLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdT
dHJlYW1lci5oCmluZGV4IDM0ZTE5OTBmYWIyMDkxMTFjMjAwMmEyYTk3ZmRlYmQxNzE1YzkxMDYu
LmNhMDU5NTg1ZmJiZDk4MjQzNTM2OTc0NGQ5MjhjNGRiOWRlYTNhOGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0
ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC0yOCw3ICsyOCw3IEBACiAjaWYg
RU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spCiAK
ICNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZS5oIgotI2luY2x1ZGUgIkdSZWZQdHJHU3RyZWFt
ZXIuaCIKKyNpbmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIKICNpbmNsdWRlICJUcmFja1ByaXZh
dGVCYXNlR1N0cmVhbWVyLmgiCiAjaW5jbHVkZSA8Z3N0L2dzdC5oPgogI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwNDIwNmMy
OTVmZmUwODhhMWU4MjU2MDM2YzNmMjFiOTFjMjg2OTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNw
cApAQCAtMCwwICsxLDMyNSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTUsIDIw
MTYgSWdhbGlhIFMuTAorICogIENvcHlyaWdodCAoQykgMjAxNSwgMjAxNiBNZXRyb2xvZ2ljYWwg
R3JvdXAgQi5WLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl
IFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpZiBVU0UoR1NUUkVBTUVSKQorI2luY2x1ZGUgIkdTdHJlYW1lckNvbW1v
bi5oIgorCisjaW5jbHVkZSAiR3N0QWxsb2NhdG9yRmFzdE1hbGxvYy5oIgorI2luY2x1ZGUgIklu
dFNpemUuaCIKKyNpbmNsdWRlIDxnc3QvYXVkaW8vYXVkaW8taW5mby5oPgorI2luY2x1ZGUgPGdz
dC9nc3QuaD4KKyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HTGliVXRpbGl0
aWVzLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgorCisjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKSAmJiBVU0UoR1NUUkVBTUVSX01QRUdUUykKKyNkZWZpbmUgR1NUX1VTRV9VTlNU
QUJMRV9BUEkKKyNpbmNsdWRlIDxnc3QvbXBlZ3RzL21wZWd0cy5oPgorI3VuZGVmIEdTVF9VU0Vf
VU5TVEFCTEVfQVBJCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjb25zdCBjaGFy
KiB3ZWJraXRHc3RNYXBJbmZvUXVhcmtTdHJpbmcgPSAid2Via2l0LWdzdC1tYXAtaW5mbyI7CisK
K0dzdFBhZCogd2Via2l0R3N0R2hvc3RQYWRGcm9tU3RhdGljVGVtcGxhdGUoR3N0U3RhdGljUGFk
VGVtcGxhdGUqIHN0YXRpY1BhZFRlbXBsYXRlLCBjb25zdCBnY2hhciogbmFtZSwgR3N0UGFkKiB0
YXJnZXQpCit7CisgICAgR3N0UGFkKiBwYWQ7CisgICAgR3N0UGFkVGVtcGxhdGUqIHBhZFRlbXBs
YXRlID0gZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0KHN0YXRpY1BhZFRlbXBsYXRlKTsKKwor
ICAgIGlmICh0YXJnZXQpCisgICAgICAgIHBhZCA9IGdzdF9naG9zdF9wYWRfbmV3X2Zyb21fdGVt
cGxhdGUobmFtZSwgdGFyZ2V0LCBwYWRUZW1wbGF0ZSk7CisgICAgZWxzZQorICAgICAgICBwYWQg
PSBnc3RfZ2hvc3RfcGFkX25ld19ub190YXJnZXRfZnJvbV90ZW1wbGF0ZShuYW1lLCBwYWRUZW1w
bGF0ZSk7CisKKyAgICBnc3Rfb2JqZWN0X3VucmVmKHBhZFRlbXBsYXRlKTsKKworICAgIHJldHVy
biBwYWQ7Cit9CisKKyNpZiBFTkFCTEUoVklERU8pCitib29sIGdldFZpZGVvU2l6ZUFuZEZvcm1h
dEZyb21DYXBzKEdzdENhcHMqIGNhcHMsIFdlYkNvcmU6OkludFNpemUmIHNpemUsIEdzdFZpZGVv
Rm9ybWF0JiBmb3JtYXQsIGludCYgcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciwgaW50JiBwaXhl
bEFzcGVjdFJhdGlvRGVub21pbmF0b3IsIGludCYgc3RyaWRlKQoreworICAgIGlmICghZG9DYXBz
SGF2ZVR5cGUoY2FwcywgR1NUX1ZJREVPX0NBUFNfVFlQRV9QUkVGSVgpKSB7CisgICAgICAgIEdT
VF9XQVJOSU5HKCJGYWlsZWQgdG8gZ2V0IHRoZSB2aWRlbyBzaXplIGFuZCBmb3JtYXQsIHRoZXNl
IGFyZSBub3QgYSB2aWRlbyBjYXBzIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisK
KyAgICBpZiAoYXJlRW5jcnlwdGVkQ2FwcyhjYXBzKSkgeworICAgICAgICBHc3RTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSA9IGdzdF9jYXBzX2dldF9zdHJ1Y3R1cmUoY2FwcywgMCk7CisgICAgICAgIGZv
cm1hdCA9IEdTVF9WSURFT19GT1JNQVRfRU5DT0RFRDsKKyAgICAgICAgc3RyaWRlID0gMDsKKyAg
ICAgICAgaW50IHdpZHRoID0gMCwgaGVpZ2h0ID0gMDsKKyAgICAgICAgZ3N0X3N0cnVjdHVyZV9n
ZXRfaW50KHN0cnVjdHVyZSwgIndpZHRoIiwgJndpZHRoKTsKKyAgICAgICAgZ3N0X3N0cnVjdHVy
ZV9nZXRfaW50KHN0cnVjdHVyZSwgImhlaWdodCIsICZoZWlnaHQpOworICAgICAgICBpZiAoIWdz
dF9zdHJ1Y3R1cmVfZ2V0X2ZyYWN0aW9uKHN0cnVjdHVyZSwgInBpeGVsLWFzcGVjdC1yYXRpbyIs
ICZwaXhlbEFzcGVjdFJhdGlvTnVtZXJhdG9yLCAmcGl4ZWxBc3BlY3RSYXRpb0Rlbm9taW5hdG9y
KSkgeworICAgICAgICAgICAgcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciA9IDE7CisgICAgICAg
ICAgICBwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0b3IgPSAxOworICAgICAgICB9CisKKyAgICAg
ICAgc2l6ZS5zZXRXaWR0aCh3aWR0aCk7CisgICAgICAgIHNpemUuc2V0SGVpZ2h0KGhlaWdodCk7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgR3N0VmlkZW9JbmZvIGluZm87CisgICAgICAgIGdzdF92
aWRlb19pbmZvX2luaXQoJmluZm8pOworICAgICAgICBpZiAoIWdzdF92aWRlb19pbmZvX2Zyb21f
Y2FwcygmaW5mbywgY2FwcykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAg
Zm9ybWF0ID0gR1NUX1ZJREVPX0lORk9fRk9STUFUKCZpbmZvKTsKKyAgICAgICAgc2l6ZS5zZXRX
aWR0aChHU1RfVklERU9fSU5GT19XSURUSCgmaW5mbykpOworICAgICAgICBzaXplLnNldEhlaWdo
dChHU1RfVklERU9fSU5GT19IRUlHSFQoJmluZm8pKTsKKyAgICAgICAgcGl4ZWxBc3BlY3RSYXRp
b051bWVyYXRvciA9IEdTVF9WSURFT19JTkZPX1BBUl9OKCZpbmZvKTsKKyAgICAgICAgcGl4ZWxB
c3BlY3RSYXRpb0Rlbm9taW5hdG9yID0gR1NUX1ZJREVPX0lORk9fUEFSX0QoJmluZm8pOworICAg
ICAgICBzdHJpZGUgPSBHU1RfVklERU9fSU5GT19QTEFORV9TVFJJREUoJmluZm8sIDApOworICAg
IH0KKworICAgIHJldHVybiB0cnVlOworfQorCitzdGQ6Om9wdGlvbmFsPEZsb2F0U2l6ZT4gZ2V0
VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoY29uc3QgR3N0Q2FwcyogY2FwcykKK3sKKyAgICBpZiAo
IWRvQ2Fwc0hhdmVUeXBlKGNhcHMsIEdTVF9WSURFT19DQVBTX1RZUEVfUFJFRklYKSkgeworICAg
ICAgICBHU1RfV0FSTklORygiRmFpbGVkIHRvIGdldCB0aGUgdmlkZW8gcmVzb2x1dGlvbiwgdGhl
c2UgYXJlIG5vdCBhIHZpZGVvIGNhcHMiKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KyAgICB9CisKKyAgICBpbnQgd2lkdGggPSAwLCBoZWlnaHQgPSAwOworICAgIGludCBwaXhlbEFz
cGVjdFJhdGlvTnVtZXJhdG9yID0gMSwgcGl4ZWxBc3BlY3RSYXRpb0Rlbm9taW5hdG9yID0gMTsK
KworICAgIGlmIChhcmVFbmNyeXB0ZWRDYXBzKGNhcHMpKSB7CisgICAgICAgIEdzdFN0cnVjdHVy
ZSogc3RydWN0dXJlID0gZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZShjYXBzLCAwKTsKKyAgICAgICAg
Z3N0X3N0cnVjdHVyZV9nZXRfaW50KHN0cnVjdHVyZSwgIndpZHRoIiwgJndpZHRoKTsKKyAgICAg
ICAgZ3N0X3N0cnVjdHVyZV9nZXRfaW50KHN0cnVjdHVyZSwgImhlaWdodCIsICZoZWlnaHQpOwor
ICAgICAgICBnc3Rfc3RydWN0dXJlX2dldF9mcmFjdGlvbihzdHJ1Y3R1cmUsICJwaXhlbC1hc3Bl
Y3QtcmF0aW8iLCAmcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciwgJnBpeGVsQXNwZWN0UmF0aW9E
ZW5vbWluYXRvcik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgR3N0VmlkZW9JbmZvIGluZm87Cisg
ICAgICAgIGdzdF92aWRlb19pbmZvX2luaXQoJmluZm8pOworICAgICAgICBpZiAoIWdzdF92aWRl
b19pbmZvX2Zyb21fY2FwcygmaW5mbywgY2FwcykpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIHdpZHRoID0gR1NUX1ZJREVPX0lORk9fV0lEVEgoJmluZm8pOwor
ICAgICAgICBoZWlnaHQgPSBHU1RfVklERU9fSU5GT19IRUlHSFQoJmluZm8pOworICAgICAgICBw
aXhlbEFzcGVjdFJhdGlvTnVtZXJhdG9yID0gR1NUX1ZJREVPX0lORk9fUEFSX04oJmluZm8pOwor
ICAgICAgICBwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0b3IgPSBHU1RfVklERU9fSU5GT19QQVJf
RCgmaW5mbyk7CisgICAgfQorCisgICAgcmV0dXJuIHN0ZDo6bWFrZV9vcHRpb25hbChGbG9hdFNp
emUod2lkdGgsIGhlaWdodCAqIChzdGF0aWNfY2FzdDxmbG9hdD4ocGl4ZWxBc3BlY3RSYXRpb051
bWVyYXRvcikgLyBzdGF0aWNfY2FzdDxmbG9hdD4ocGl4ZWxBc3BlY3RSYXRpb0Rlbm9taW5hdG9y
KSkpKTsKK30KKworYm9vbCBnZXRTYW1wbGVWaWRlb0luZm8oR3N0U2FtcGxlKiBzYW1wbGUsIEdz
dFZpZGVvSW5mbyYgdmlkZW9JbmZvKQoreworICAgIGlmICghR1NUX0lTX1NBTVBMRShzYW1wbGUp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBHc3RDYXBzKiBjYXBzID0gZ3N0X3NhbXBs
ZV9nZXRfY2FwcyhzYW1wbGUpOworICAgIGlmICghY2FwcykKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgZ3N0X3ZpZGVvX2luZm9faW5pdCgmdmlkZW9JbmZvKTsKKyAgICBpZiAoIWdzdF92
aWRlb19pbmZvX2Zyb21fY2FwcygmdmlkZW9JbmZvLCBjYXBzKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisjZW5kaWYKKworR3N0QnVmZmVyKiBjcmVhdGVH
c3RCdWZmZXIoR3N0QnVmZmVyKiBidWZmZXIpCit7CisgICAgZ3NpemUgYnVmZmVyU2l6ZSA9IGdz
dF9idWZmZXJfZ2V0X3NpemUoYnVmZmVyKTsKKyAgICBHc3RCdWZmZXIqIG5ld0J1ZmZlciA9IGdz
dF9idWZmZXJfbmV3X2FuZF9hbGxvYyhidWZmZXJTaXplKTsKKworICAgIGlmICghbmV3QnVmZmVy
KQorICAgICAgICByZXR1cm4gMDsKKworICAgIGdzdF9idWZmZXJfY29weV9pbnRvKG5ld0J1ZmZl
ciwgYnVmZmVyLCBzdGF0aWNfY2FzdDxHc3RCdWZmZXJDb3B5RmxhZ3M+KEdTVF9CVUZGRVJfQ09Q
WV9NRVRBREFUQSksIDAsIGJ1ZmZlclNpemUpOworICAgIHJldHVybiBuZXdCdWZmZXI7Cit9CisK
K0dzdEJ1ZmZlciogY3JlYXRlR3N0QnVmZmVyRm9yRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQg
bGVuZ3RoKQoreworICAgIEdzdEJ1ZmZlciogYnVmZmVyID0gZ3N0X2J1ZmZlcl9uZXdfYW5kX2Fs
bG9jKGxlbmd0aCk7CisKKyAgICBnc3RfYnVmZmVyX2ZpbGwoYnVmZmVyLCAwLCBkYXRhLCBsZW5n
dGgpOworCisgICAgcmV0dXJuIGJ1ZmZlcjsKK30KKworY29uc3QgY2hhciogY2Fwc01lZGlhVHlw
ZShjb25zdCBHc3RDYXBzKiBjYXBzKQoreworICAgIEFTU0VSVChjYXBzKTsKKyAgICBHc3RTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSA9IGdzdF9jYXBzX2dldF9zdHJ1Y3R1cmUoY2FwcywgMCk7CisgICAg
aWYgKCFzdHJ1Y3R1cmUpIHsKKyAgICAgICAgR1NUX1dBUk5JTkcoImNhcHMgYXJlIGVtcHR5Iik7
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyNpZiBFTkFCTEUoRU5DUllQVEVEX01F
RElBKQorICAgIGlmIChnc3Rfc3RydWN0dXJlX2hhc19uYW1lKHN0cnVjdHVyZSwgImFwcGxpY2F0
aW9uL3gtY2VuYyIpKQorICAgICAgICByZXR1cm4gZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0
cnVjdHVyZSwgIm9yaWdpbmFsLW1lZGlhLXR5cGUiKTsKKyNlbmRpZgorICAgIHJldHVybiBnc3Rf
c3RydWN0dXJlX2dldF9uYW1lKHN0cnVjdHVyZSk7Cit9CisKK2Jvb2wgZG9DYXBzSGF2ZVR5cGUo
Y29uc3QgR3N0Q2FwcyogY2FwcywgY29uc3QgY2hhciogdHlwZSkKK3sKKyAgICBjb25zdCBjaGFy
KiBtZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGNhcHMpOworICAgIGlmICghbWVkaWFUeXBlKSB7
CisgICAgICAgIEdTVF9XQVJOSU5HKCJGYWlsZWQgdG8gZ2V0IE1lZGlhVHlwZSIpOworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiBnX3N0cl9oYXNfcHJlZml4KG1lZGlh
VHlwZSwgdHlwZSk7Cit9CisKK2Jvb2wgYXJlRW5jcnlwdGVkQ2Fwcyhjb25zdCBHc3RDYXBzKiBj
YXBzKQoreworICAgIEFTU0VSVChjYXBzKTsKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQor
ICAgIEdzdFN0cnVjdHVyZSogc3RydWN0dXJlID0gZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZShjYXBz
LCAwKTsKKyAgICBpZiAoIXN0cnVjdHVyZSkgeworICAgICAgICBHU1RfV0FSTklORygiY2FwcyBh
cmUgZW1wdHkiKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gZ3N0
X3N0cnVjdHVyZV9oYXNfbmFtZShzdHJ1Y3R1cmUsICJhcHBsaWNhdGlvbi94LWNlbmMiKTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKGNhcHMpOworICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgor
fQorCitjaGFyKiBnZXRHc3RCdWZmZXJEYXRhUG9pbnRlcihHc3RCdWZmZXIqIGJ1ZmZlcikKK3sK
KyAgICBHc3RNaW5pT2JqZWN0KiBtaW5pT2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxHc3RNaW5p
T2JqZWN0Kj4oYnVmZmVyKTsKKyAgICBHc3RNYXBJbmZvKiBtYXBJbmZvID0gc3RhdGljX2Nhc3Q8
R3N0TWFwSW5mbyo+KGdzdF9taW5pX29iamVjdF9nZXRfcWRhdGEobWluaU9iamVjdCwgZ19xdWFy
a19mcm9tX3N0YXRpY19zdHJpbmcod2Via2l0R3N0TWFwSW5mb1F1YXJrU3RyaW5nKSkpOworICAg
IHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihtYXBJbmZvLT5kYXRhKTsKK30KKwordm9p
ZCBtYXBHc3RCdWZmZXIoR3N0QnVmZmVyKiBidWZmZXIsIHVpbnQzMl90IGZsYWdzKQoreworICAg
IEdzdE1hcEluZm8qIG1hcEluZm8gPSBzdGF0aWNfY2FzdDxHc3RNYXBJbmZvKj4oZmFzdE1hbGxv
YyhzaXplb2YoR3N0TWFwSW5mbykpKTsKKyAgICBpZiAoIWdzdF9idWZmZXJfbWFwKGJ1ZmZlciwg
bWFwSW5mbywgc3RhdGljX2Nhc3Q8R3N0TWFwRmxhZ3M+KGZsYWdzKSkpIHsKKyAgICAgICAgZmFz
dEZyZWUobWFwSW5mbyk7CisgICAgICAgIGdzdF9idWZmZXJfdW5yZWYoYnVmZmVyKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIEdzdE1pbmlPYmplY3QqIG1pbmlPYmplY3QgPSByZWlu
dGVycHJldF9jYXN0PEdzdE1pbmlPYmplY3QqPihidWZmZXIpOworICAgIGdzdF9taW5pX29iamVj
dF9zZXRfcWRhdGEobWluaU9iamVjdCwgZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcod2Via2l0
R3N0TWFwSW5mb1F1YXJrU3RyaW5nKSwgbWFwSW5mbywgbnVsbHB0cik7Cit9CisKK3ZvaWQgdW5t
YXBHc3RCdWZmZXIoR3N0QnVmZmVyKiBidWZmZXIpCit7CisgICAgR3N0TWluaU9iamVjdCogbWlu
aU9iamVjdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0TWluaU9iamVjdCo+KGJ1ZmZlcik7CisgICAg
R3N0TWFwSW5mbyogbWFwSW5mbyA9IHN0YXRpY19jYXN0PEdzdE1hcEluZm8qPihnc3RfbWluaV9v
YmplY3Rfc3RlYWxfcWRhdGEobWluaU9iamVjdCwgZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmco
d2Via2l0R3N0TWFwSW5mb1F1YXJrU3RyaW5nKSkpOworCisgICAgaWYgKCFtYXBJbmZvKQorICAg
ICAgICByZXR1cm47CisKKyAgICBnc3RfYnVmZmVyX3VubWFwKGJ1ZmZlciwgbWFwSW5mbyk7Cisg
ICAgZmFzdEZyZWUobWFwSW5mbyk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IGV4dHJhY3RHU3RyZWFt
ZXJPcHRpb25zRnJvbUNvbW1hbmRMaW5lKCkKK3sKKyAgICBHVW5pcXVlT3V0UHRyPGNoYXI+IGNv
bnRlbnRzOworICAgIGdzaXplIGxlbmd0aDsKKyAgICBpZiAoIWdfZmlsZV9nZXRfY29udGVudHMo
Ii9wcm9jL3NlbGYvY21kbGluZSIsICZjb250ZW50cy5vdXRQdHIoKSwgJmxlbmd0aCwgbnVsbHB0
cikpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBWZWN0b3I8U3RyaW5nPiBvcHRpb25zOwor
ICAgIGF1dG8gb3B0aW9uc1N0cmluZyA9IFN0cmluZzo6ZnJvbVVURjgoY29udGVudHMuZ2V0KCks
IGxlbmd0aCk7CisgICAgb3B0aW9uc1N0cmluZy5zcGxpdCgnXDAnLCBmYWxzZSwgWyZvcHRpb25z
XShTdHJpbmdWaWV3IGl0ZW0pIHsKKyAgICAgICAgaWYgKGl0ZW0uc3RhcnRzV2l0aCgiLS1nc3Qi
KSkKKyAgICAgICAgICAgIG9wdGlvbnMuYXBwZW5kKGl0ZW0udG9TdHJpbmcoKSk7CisgICAgfSk7
CisgICAgcmV0dXJuIG9wdGlvbnM7Cit9CisKK2Jvb2wgaW5pdGlhbGl6ZUdTdHJlYW1lcihzdGQ6
Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYmIG9wdGlvbnMpCit7CisgICAgc3RhdGljIHN0ZDo6
b25jZV9mbGFnIG9uY2VGbGFnOworICAgIHN0YXRpYyBib29sIGlzR1N0cmVhbWVySW5pdGlhbGl6
ZWQ7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtvcHRpb25zID0gV1RGTW92ZShvcHRp
b25zKV0geworICAgICAgICBpc0dTdHJlYW1lckluaXRpYWxpemVkID0gZmFsc2U7CisKKyNpZiBF
TkFCTEUoVklERU8pIHx8IEVOQUJMRShXRUJfQVVESU8pCisgICAgICAgIFZlY3RvcjxTdHJpbmc+
IHBhcmFtZXRlcnMgPSBvcHRpb25zLnZhbHVlX29yKGV4dHJhY3RHU3RyZWFtZXJPcHRpb25zRnJv
bUNvbW1hbmRMaW5lKCkpOworICAgICAgICBjaGFyKiogYXJndiA9IGdfbmV3MChjaGFyKiwgcGFy
YW1ldGVycy5zaXplKCkgKyAyKTsKKyAgICAgICAgaW50IGFyZ2MgPSBwYXJhbWV0ZXJzLnNpemUo
KSArIDE7CisgICAgICAgIGFyZ3ZbMF0gPSBnX3N0cmR1cChnZXRDdXJyZW50RXhlY3V0YWJsZU5h
bWUoKS5kYXRhKCkpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGFyYW1ldGVy
cy5zaXplKCk7IGkrKykKKyAgICAgICAgICAgIGFyZ3ZbaSArIDFdID0gZ19zdHJkdXAocGFyYW1l
dGVyc1tpXS51dGY4KCkuZGF0YSgpKTsKKworICAgICAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4g
ZXJyb3I7CisgICAgICAgIGlzR1N0cmVhbWVySW5pdGlhbGl6ZWQgPSBnc3RfaW5pdF9jaGVjaygm
YXJnYywgJmFyZ3YsICZlcnJvci5vdXRQdHIoKSk7CisgICAgICAgIEFTU0VSVF9XSVRIX01FU1NB
R0UoaXNHU3RyZWFtZXJJbml0aWFsaXplZCwgIkdTdHJlYW1lciBpbml0aWFsaXphdGlvbiBmYWls
ZWQ6ICVzIiwgZXJyb3IgPyBlcnJvci0+bWVzc2FnZSA6ICJ1bmtub3duIGVycm9yIG9jY3VycmVk
Iik7CisgICAgICAgIGdfc3RyZnJlZXYoYXJndik7CisKKyAgICAgICAgaWYgKGlzRmFzdE1hbGxv
Y0VuYWJsZWQoKSkgeworICAgICAgICAgICAgY29uc3QgY2hhciogZGlzYWJsZUZhc3RNYWxsb2Mg
PSBnZXRlbnYoIldFQktJVF9HU1RfRElTQUJMRV9GQVNUX01BTExPQyIpOworICAgICAgICAgICAg
aWYgKCFkaXNhYmxlRmFzdE1hbGxvYyB8fCAhc3RyY21wKGRpc2FibGVGYXN0TWFsbG9jLCAiMCIp
KQorICAgICAgICAgICAgICAgIGdzdF9hbGxvY2F0b3Jfc2V0X2RlZmF1bHQoR1NUX0FMTE9DQVRP
UihnX29iamVjdF9uZXcoZ3N0X2FsbG9jYXRvcl9mYXN0X21hbGxvY19nZXRfdHlwZSgpLCBudWxs
cHRyKSkpOworICAgICAgICB9CisKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmIFVTRShHU1RS
RUFNRVJfTVBFR1RTKQorICAgICAgICBpZiAoaXNHU3RyZWFtZXJJbml0aWFsaXplZCkKKyAgICAg
ICAgICAgIGdzdF9tcGVndHNfaW5pdGlhbGl6ZSgpOworI2VuZGlmCisjZW5kaWYKKyAgICB9KTsK
KyAgICByZXR1cm4gaXNHU3RyZWFtZXJJbml0aWFsaXplZDsKK30KKwordW5zaWduZWQgZ2V0R3N0
UGxheUZsYWcoY29uc3QgY2hhciogbmljaykKK3sKKyAgICBzdGF0aWMgR0ZsYWdzQ2xhc3MqIGZs
YWdzQ2xhc3MgPSBzdGF0aWNfY2FzdDxHRmxhZ3NDbGFzcyo+KGdfdHlwZV9jbGFzc19yZWYoZ190
eXBlX2Zyb21fbmFtZSgiR3N0UGxheUZsYWdzIikpKTsKKyAgICBBU1NFUlQoZmxhZ3NDbGFzcyk7
CisKKyAgICBHRmxhZ3NWYWx1ZSogZmxhZyA9IGdfZmxhZ3NfZ2V0X3ZhbHVlX2J5X25pY2soZmxh
Z3NDbGFzcywgbmljayk7CisgICAgaWYgKCFmbGFnKQorICAgICAgICByZXR1cm4gMDsKKworICAg
IHJldHVybiBmbGFnLT52YWx1ZTsKK30KKworLy8gQ29udmVydCBhIE1lZGlhVGltZSBpbiBzZWNv
bmRzIHRvIGEgR3N0Q2xvY2tUaW1lLiBOb3RlIHRoYXQgd2UgY2FuIGdldCBNZWRpYVRpbWUgb2Jq
ZWN0cyB3aXRoIGEgdGltZSBzY2FsZSB0aGF0IGlzbid0IGEgR1NUX1NFQ09ORCwgc2luY2UgdGhl
eSBjYW4gY29tZSB0bworLy8gdXMgdGhyb3VnaCB0aGUgaW50ZXJuYWwgdGVzdGluZyBBUEksIHRo
ZSBET00gYW5kIGludGVybmFsbHkuIEl0IHdvdWxkIGJlIG5pY2UgdG8gYXNzZXJ0IHRoZSBmb3Jt
YXQgb2YgdGhlIGluY29taW5nIHRpbWUsIGJ1dCBhbGwgdGhlIG1lZGlhIEFQSXMgYXNzdW1lIHRp
bWUKKy8vIGlzIHBhc3NlZCBhcm91bmQgaW4gZnJhY3Rpb25hbCBzZWNvbmRzLCBzbyB3ZSdsbCBq
dXN0IGhhdmUgdG8gYXNzdW1lIHRoZSBzYW1lLgordWludDY0X3QgdG9Hc3RVbnNpZ25lZDY0VGlt
ZShjb25zdCBNZWRpYVRpbWUmIG1lZGlhVGltZSkKK3sKKyAgICBNZWRpYVRpbWUgdGltZSA9IG1l
ZGlhVGltZS50b1RpbWVTY2FsZShHU1RfU0VDT05EKTsKKyAgICBpZiAodGltZS5pc0ludmFsaWQo
KSkKKyAgICAgICAgcmV0dXJuIEdTVF9DTE9DS19USU1FX05PTkU7CisgICAgcmV0dXJuIHRpbWUu
dGltZVZhbHVlKCk7Cit9CisKK2Jvb2wgZ3N0UmVnaXN0cnlIYXNFbGVtZW50Rm9yTWVkaWFUeXBl
KEdMaXN0KiBlbGVtZW50RmFjdG9yaWVzLCBjb25zdCBjaGFyKiBjYXBzU3RyaW5nKQoreworICAg
IEdSZWZQdHI8R3N0Q2Fwcz4gY2FwcyA9IGFkb3B0R1JlZihnc3RfY2Fwc19mcm9tX3N0cmluZyhj
YXBzU3RyaW5nKSk7CisgICAgR0xpc3QqIGNhbmRpZGF0ZXMgPSBnc3RfZWxlbWVudF9mYWN0b3J5
X2xpc3RfZmlsdGVyKGVsZW1lbnRGYWN0b3JpZXMsIGNhcHMuZ2V0KCksIEdTVF9QQURfU0lOSywg
ZmFsc2UpOworICAgIGJvb2wgcmVzdWx0ID0gY2FuZGlkYXRlczsKKworICAgIGdzdF9wbHVnaW5f
ZmVhdHVyZV9saXN0X2ZyZWUoY2FuZGlkYXRlcyk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwor
fQorCisjZW5kaWYgLy8gVVNFKEdTVFJFQU1FUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yNTkyNTVlNzQxZTQxNWEzMTRhMTIzZDM0ZDAxODhhZDQ2OTBlNjRkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dT
dHJlYW1lckNvbW1vbi5oCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAy
MDEyLCAyMDE1LCAyMDE2IElnYWxpYSBTLkwKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTUsIDIwMTYg
TWV0cm9sb2dpY2FsIEdyb3VwIEIuVi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
ICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0
ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgVVNFKEdTVFJFQU1FUikKKyNpbmNsdWRlICJGbG9hdFNpemUu
aCIKKyNpbmNsdWRlICJHUmVmUHRyR1N0cmVhbWVyLmgiCisjaW5jbHVkZSAiR1VuaXF1ZVB0ckdT
dHJlYW1lci5oIgorI2luY2x1ZGUgPGdzdC9nc3QuaD4KKyNpbmNsdWRlIDxnc3QvdmlkZW8vdmlk
ZW8tZm9ybWF0Lmg+CisjaW5jbHVkZSA8Z3N0L3ZpZGVvL3ZpZGVvLWluZm8uaD4KKyNpbmNsdWRl
IDx3dGYvTWVkaWFUaW1lLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSW50U2l6
ZTsKKworaW5saW5lIGJvb2wgd2Via2l0R3N0Q2hlY2tWZXJzaW9uKGd1aW50IG1ham9yLCBndWlu
dCBtaW5vciwgZ3VpbnQgbWljcm8pCit7CisgICAgZ3VpbnQgY3VycmVudE1ham9yLCBjdXJyZW50
TWlub3IsIGN1cnJlbnRNaWNybywgY3VycmVudE5hbm87CisgICAgZ3N0X3ZlcnNpb24oJmN1cnJl
bnRNYWpvciwgJmN1cnJlbnRNaW5vciwgJmN1cnJlbnRNaWNybywgJmN1cnJlbnROYW5vKTsKKwor
ICAgIGlmIChjdXJyZW50TWFqb3IgPCBtYWpvcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGlmIChjdXJyZW50TWFqb3IgPiBtYWpvcikKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBp
ZiAoY3VycmVudE1pbm9yIDwgbWlub3IpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAo
Y3VycmVudE1pbm9yID4gbWlub3IpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKGN1
cnJlbnRNaWNybyA8IG1pY3JvKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKworI2RlZmluZSBHU1RfVklERU9fQ0FQU19UWVBFX1BSRUZJWCAgInZpZGVvLyIK
KyNkZWZpbmUgR1NUX0FVRElPX0NBUFNfVFlQRV9QUkVGSVggICJhdWRpby8iCisjZGVmaW5lIEdT
VF9URVhUX0NBUFNfVFlQRV9QUkVGSVggICAidGV4dC8iCisKK0dzdFBhZCogd2Via2l0R3N0R2hv
c3RQYWRGcm9tU3RhdGljVGVtcGxhdGUoR3N0U3RhdGljUGFkVGVtcGxhdGUqLCBjb25zdCBnY2hh
ciogbmFtZSwgR3N0UGFkKiB0YXJnZXQpOworI2lmIEVOQUJMRShWSURFTykKK2Jvb2wgZ2V0Vmlk
ZW9TaXplQW5kRm9ybWF0RnJvbUNhcHMoR3N0Q2FwcyosIFdlYkNvcmU6OkludFNpemUmLCBHc3RW
aWRlb0Zvcm1hdCYsIGludCYgcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciwgaW50JiBwaXhlbEFz
cGVjdFJhdGlvRGVub21pbmF0b3IsIGludCYgc3RyaWRlKTsKK3N0ZDo6b3B0aW9uYWw8RmxvYXRT
aXplPiBnZXRWaWRlb1Jlc29sdXRpb25Gcm9tQ2Fwcyhjb25zdCBHc3RDYXBzKik7Citib29sIGdl
dFNhbXBsZVZpZGVvSW5mbyhHc3RTYW1wbGUqLCBHc3RWaWRlb0luZm8mKTsKKyNlbmRpZgorR3N0
QnVmZmVyKiBjcmVhdGVHc3RCdWZmZXIoR3N0QnVmZmVyKik7CitHc3RCdWZmZXIqIGNyZWF0ZUdz
dEJ1ZmZlckZvckRhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCk7CitjaGFyKiBnZXRH
c3RCdWZmZXJEYXRhUG9pbnRlcihHc3RCdWZmZXIqKTsKK2NvbnN0IGNoYXIqIGNhcHNNZWRpYVR5
cGUoY29uc3QgR3N0Q2FwcyopOworYm9vbCBkb0NhcHNIYXZlVHlwZShjb25zdCBHc3RDYXBzKiwg
Y29uc3QgY2hhciopOworYm9vbCBhcmVFbmNyeXB0ZWRDYXBzKGNvbnN0IEdzdENhcHMqKTsKK3Zv
aWQgbWFwR3N0QnVmZmVyKEdzdEJ1ZmZlciosIHVpbnQzMl90KTsKK3ZvaWQgdW5tYXBHc3RCdWZm
ZXIoR3N0QnVmZmVyKik7CitWZWN0b3I8U3RyaW5nPiBleHRyYWN0R1N0cmVhbWVyT3B0aW9uc0Zy
b21Db21tYW5kTGluZSgpOworYm9vbCBpbml0aWFsaXplR1N0cmVhbWVyKHN0ZDo6b3B0aW9uYWw8
VmVjdG9yPFN0cmluZz4+JiYgPSBzdGQ6Om51bGxvcHQpOwordW5zaWduZWQgZ2V0R3N0UGxheUZs
YWcoY29uc3QgY2hhciogbmljayk7Cit1aW50NjRfdCB0b0dzdFVuc2lnbmVkNjRUaW1lKGNvbnN0
IE1lZGlhVGltZSYpOworCitpbmxpbmUgR3N0Q2xvY2tUaW1lIHRvR3N0Q2xvY2tUaW1lKGNvbnN0
IE1lZGlhVGltZSAmbWVkaWFUaW1lKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxHc3RDbG9j
a1RpbWU+KHRvR3N0VW5zaWduZWQ2NFRpbWUobWVkaWFUaW1lKSk7Cit9CisKK2Jvb2wgZ3N0UmVn
aXN0cnlIYXNFbGVtZW50Rm9yTWVkaWFUeXBlKEdMaXN0KiBlbGVtZW50RmFjdG9yaWVzLCBjb25z
dCBjaGFyKiBjYXBzU3RyaW5nKTsKK30KKworI2lmbmRlZiBHU1RfQlVGRkVSX0RUU19PUl9QVFMK
KyNkZWZpbmUgR1NUX0JVRkZFUl9EVFNfT1JfUFRTKGJ1ZmZlcikgKEdTVF9CVUZGRVJfRFRTX0lT
X1ZBTElEKGJ1ZmZlcikgPyBHU1RfQlVGRkVSX0RUUyhidWZmZXIpIDogR1NUX0JVRkZFUl9QVFMo
YnVmZmVyKSkKKyNlbmRpZgorI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRpbGl0
aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3Ry
ZWFtZXJVdGlsaXRpZXMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOTM1NDcw
MDEyYjI1NzgyZmMxODZkOWZhM2ViMWY4ZTE2ZDAwNWZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzI2
ICswLDAgQEAKLS8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDEyLCAyMDE1LCAyMDE2IElnYWxpYSBT
LkwKLSAqICBDb3B5cmlnaHQgKEMpIDIwMTUsIDIwMTYgTWV0cm9sb2dpY2FsIEdyb3VwIEIuVi4K
LSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQot
ICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJv
c3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
Ci0jaWYgVVNFKEdTVFJFQU1FUikKLSNpbmNsdWRlICJHU3RyZWFtZXJVdGlsaXRpZXMuaCIKLQot
I2luY2x1ZGUgIkdSZWZQdHJHU3RyZWFtZXIuaCIKLSNpbmNsdWRlICJHc3RBbGxvY2F0b3JGYXN0
TWFsbG9jLmgiCi0jaW5jbHVkZSAiSW50U2l6ZS5oIgotI2luY2x1ZGUgPGdzdC9hdWRpby9hdWRp
by1pbmZvLmg+Ci0jaW5jbHVkZSA8Z3N0L2dzdC5oPgotI2luY2x1ZGUgPG11dGV4PgotI2luY2x1
ZGUgPHd0Zi9nbGliL0dMaWJVdGlsaXRpZXMuaD4KLSNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVl
UHRyLmg+Ci0KLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmIFVTRShHU1RSRUFNRVJfTVBFR1RT
KQotI2RlZmluZSBHU1RfVVNFX1VOU1RBQkxFX0FQSQotI2luY2x1ZGUgPGdzdC9tcGVndHMvbXBl
Z3RzLmg+Ci0jdW5kZWYgR1NUX1VTRV9VTlNUQUJMRV9BUEkKLSNlbmRpZgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLWNvbnN0IGNoYXIqIHdlYmtpdEdzdE1hcEluZm9RdWFya1N0cmluZyA9ICJ3
ZWJraXQtZ3N0LW1hcC1pbmZvIjsKLQotR3N0UGFkKiB3ZWJraXRHc3RHaG9zdFBhZEZyb21TdGF0
aWNUZW1wbGF0ZShHc3RTdGF0aWNQYWRUZW1wbGF0ZSogc3RhdGljUGFkVGVtcGxhdGUsIGNvbnN0
IGdjaGFyKiBuYW1lLCBHc3RQYWQqIHRhcmdldCkKLXsKLSAgICBHc3RQYWQqIHBhZDsKLSAgICBH
c3RQYWRUZW1wbGF0ZSogcGFkVGVtcGxhdGUgPSBnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXQo
c3RhdGljUGFkVGVtcGxhdGUpOwotCi0gICAgaWYgKHRhcmdldCkKLSAgICAgICAgcGFkID0gZ3N0
X2dob3N0X3BhZF9uZXdfZnJvbV90ZW1wbGF0ZShuYW1lLCB0YXJnZXQsIHBhZFRlbXBsYXRlKTsK
LSAgICBlbHNlCi0gICAgICAgIHBhZCA9IGdzdF9naG9zdF9wYWRfbmV3X25vX3RhcmdldF9mcm9t
X3RlbXBsYXRlKG5hbWUsIHBhZFRlbXBsYXRlKTsKLQotICAgIGdzdF9vYmplY3RfdW5yZWYocGFk
VGVtcGxhdGUpOwotCi0gICAgcmV0dXJuIHBhZDsKLX0KLQotI2lmIEVOQUJMRShWSURFTykKLWJv
b2wgZ2V0VmlkZW9TaXplQW5kRm9ybWF0RnJvbUNhcHMoR3N0Q2FwcyogY2FwcywgV2ViQ29yZTo6
SW50U2l6ZSYgc2l6ZSwgR3N0VmlkZW9Gb3JtYXQmIGZvcm1hdCwgaW50JiBwaXhlbEFzcGVjdFJh
dGlvTnVtZXJhdG9yLCBpbnQmIHBpeGVsQXNwZWN0UmF0aW9EZW5vbWluYXRvciwgaW50JiBzdHJp
ZGUpCi17Ci0gICAgaWYgKCFkb0NhcHNIYXZlVHlwZShjYXBzLCBHU1RfVklERU9fQ0FQU19UWVBF
X1BSRUZJWCkpIHsKLSAgICAgICAgR1NUX1dBUk5JTkcoIkZhaWxlZCB0byBnZXQgdGhlIHZpZGVv
IHNpemUgYW5kIGZvcm1hdCwgdGhlc2UgYXJlIG5vdCBhIHZpZGVvIGNhcHMiKTsKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIGlmIChhcmVFbmNyeXB0ZWRDYXBzKGNhcHMpKSB7
Ci0gICAgICAgIEdzdFN0cnVjdHVyZSogc3RydWN0dXJlID0gZ3N0X2NhcHNfZ2V0X3N0cnVjdHVy
ZShjYXBzLCAwKTsKLSAgICAgICAgZm9ybWF0ID0gR1NUX1ZJREVPX0ZPUk1BVF9FTkNPREVEOwot
ICAgICAgICBzdHJpZGUgPSAwOwotICAgICAgICBpbnQgd2lkdGggPSAwLCBoZWlnaHQgPSAwOwot
ICAgICAgICBnc3Rfc3RydWN0dXJlX2dldF9pbnQoc3RydWN0dXJlLCAid2lkdGgiLCAmd2lkdGgp
OwotICAgICAgICBnc3Rfc3RydWN0dXJlX2dldF9pbnQoc3RydWN0dXJlLCAiaGVpZ2h0IiwgJmhl
aWdodCk7Ci0gICAgICAgIGlmICghZ3N0X3N0cnVjdHVyZV9nZXRfZnJhY3Rpb24oc3RydWN0dXJl
LCAicGl4ZWwtYXNwZWN0LXJhdGlvIiwgJnBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IsICZwaXhl
bEFzcGVjdFJhdGlvRGVub21pbmF0b3IpKSB7Ci0gICAgICAgICAgICBwaXhlbEFzcGVjdFJhdGlv
TnVtZXJhdG9yID0gMTsKLSAgICAgICAgICAgIHBpeGVsQXNwZWN0UmF0aW9EZW5vbWluYXRvciA9
IDE7Ci0gICAgICAgIH0KLQotICAgICAgICBzaXplLnNldFdpZHRoKHdpZHRoKTsKLSAgICAgICAg
c2l6ZS5zZXRIZWlnaHQoaGVpZ2h0KTsKLSAgICB9IGVsc2UgewotICAgICAgICBHc3RWaWRlb0lu
Zm8gaW5mbzsKLSAgICAgICAgZ3N0X3ZpZGVvX2luZm9faW5pdCgmaW5mbyk7Ci0gICAgICAgIGlm
ICghZ3N0X3ZpZGVvX2luZm9fZnJvbV9jYXBzKCZpbmZvLCBjYXBzKSkKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgICAgICBmb3JtYXQgPSBHU1RfVklERU9fSU5GT19GT1JNQVQoJmlu
Zm8pOwotICAgICAgICBzaXplLnNldFdpZHRoKEdTVF9WSURFT19JTkZPX1dJRFRIKCZpbmZvKSk7
Ci0gICAgICAgIHNpemUuc2V0SGVpZ2h0KEdTVF9WSURFT19JTkZPX0hFSUdIVCgmaW5mbykpOwot
ICAgICAgICBwaXhlbEFzcGVjdFJhdGlvTnVtZXJhdG9yID0gR1NUX1ZJREVPX0lORk9fUEFSX04o
JmluZm8pOwotICAgICAgICBwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0b3IgPSBHU1RfVklERU9f
SU5GT19QQVJfRCgmaW5mbyk7Ci0gICAgICAgIHN0cmlkZSA9IEdTVF9WSURFT19JTkZPX1BMQU5F
X1NUUklERSgmaW5mbywgMCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXN0ZDo6
b3B0aW9uYWw8RmxvYXRTaXplPiBnZXRWaWRlb1Jlc29sdXRpb25Gcm9tQ2Fwcyhjb25zdCBHc3RD
YXBzKiBjYXBzKQotewotICAgIGlmICghZG9DYXBzSGF2ZVR5cGUoY2FwcywgR1NUX1ZJREVPX0NB
UFNfVFlQRV9QUkVGSVgpKSB7Ci0gICAgICAgIEdTVF9XQVJOSU5HKCJGYWlsZWQgdG8gZ2V0IHRo
ZSB2aWRlbyByZXNvbHV0aW9uLCB0aGVzZSBhcmUgbm90IGEgdmlkZW8gY2FwcyIpOwotICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIH0KLQotICAgIGludCB3aWR0aCA9IDAsIGhlaWdo
dCA9IDA7Ci0gICAgaW50IHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IgPSAxLCBwaXhlbEFzcGVj
dFJhdGlvRGVub21pbmF0b3IgPSAxOwotCi0gICAgaWYgKGFyZUVuY3J5cHRlZENhcHMoY2Fwcykp
IHsKLSAgICAgICAgR3N0U3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBnc3RfY2Fwc19nZXRfc3RydWN0
dXJlKGNhcHMsIDApOwotICAgICAgICBnc3Rfc3RydWN0dXJlX2dldF9pbnQoc3RydWN0dXJlLCAi
d2lkdGgiLCAmd2lkdGgpOwotICAgICAgICBnc3Rfc3RydWN0dXJlX2dldF9pbnQoc3RydWN0dXJl
LCAiaGVpZ2h0IiwgJmhlaWdodCk7Ci0gICAgICAgIGdzdF9zdHJ1Y3R1cmVfZ2V0X2ZyYWN0aW9u
KHN0cnVjdHVyZSwgInBpeGVsLWFzcGVjdC1yYXRpbyIsICZwaXhlbEFzcGVjdFJhdGlvTnVtZXJh
dG9yLCAmcGl4ZWxBc3BlY3RSYXRpb0Rlbm9taW5hdG9yKTsKLSAgICB9IGVsc2UgewotICAgICAg
ICBHc3RWaWRlb0luZm8gaW5mbzsKLSAgICAgICAgZ3N0X3ZpZGVvX2luZm9faW5pdCgmaW5mbyk7
Ci0gICAgICAgIGlmICghZ3N0X3ZpZGVvX2luZm9fZnJvbV9jYXBzKCZpbmZvLCBjYXBzKSkKLSAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgd2lkdGggPSBHU1RfVklE
RU9fSU5GT19XSURUSCgmaW5mbyk7Ci0gICAgICAgIGhlaWdodCA9IEdTVF9WSURFT19JTkZPX0hF
SUdIVCgmaW5mbyk7Ci0gICAgICAgIHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IgPSBHU1RfVklE
RU9fSU5GT19QQVJfTigmaW5mbyk7Ci0gICAgICAgIHBpeGVsQXNwZWN0UmF0aW9EZW5vbWluYXRv
ciA9IEdTVF9WSURFT19JTkZPX1BBUl9EKCZpbmZvKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gc3Rk
OjptYWtlX29wdGlvbmFsKEZsb2F0U2l6ZSh3aWR0aCwgaGVpZ2h0ICogKHN0YXRpY19jYXN0PGZs
b2F0PihwaXhlbEFzcGVjdFJhdGlvTnVtZXJhdG9yKSAvIHN0YXRpY19jYXN0PGZsb2F0PihwaXhl
bEFzcGVjdFJhdGlvRGVub21pbmF0b3IpKSkpOwotfQotCi1ib29sIGdldFNhbXBsZVZpZGVvSW5m
byhHc3RTYW1wbGUqIHNhbXBsZSwgR3N0VmlkZW9JbmZvJiB2aWRlb0luZm8pCi17Ci0gICAgaWYg
KCFHU1RfSVNfU0FNUExFKHNhbXBsZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIEdz
dENhcHMqIGNhcHMgPSBnc3Rfc2FtcGxlX2dldF9jYXBzKHNhbXBsZSk7Ci0gICAgaWYgKCFjYXBz
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBnc3RfdmlkZW9faW5mb19pbml0KCZ2aWRl
b0luZm8pOwotICAgIGlmICghZ3N0X3ZpZGVvX2luZm9fZnJvbV9jYXBzKCZ2aWRlb0luZm8sIGNh
cHMpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLSNlbmRp
ZgotCi1Hc3RCdWZmZXIqIGNyZWF0ZUdzdEJ1ZmZlcihHc3RCdWZmZXIqIGJ1ZmZlcikKLXsKLSAg
ICBnc2l6ZSBidWZmZXJTaXplID0gZ3N0X2J1ZmZlcl9nZXRfc2l6ZShidWZmZXIpOwotICAgIEdz
dEJ1ZmZlciogbmV3QnVmZmVyID0gZ3N0X2J1ZmZlcl9uZXdfYW5kX2FsbG9jKGJ1ZmZlclNpemUp
OwotCi0gICAgaWYgKCFuZXdCdWZmZXIpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgZ3N0X2J1
ZmZlcl9jb3B5X2ludG8obmV3QnVmZmVyLCBidWZmZXIsIHN0YXRpY19jYXN0PEdzdEJ1ZmZlckNv
cHlGbGFncz4oR1NUX0JVRkZFUl9DT1BZX01FVEFEQVRBKSwgMCwgYnVmZmVyU2l6ZSk7Ci0gICAg
cmV0dXJuIG5ld0J1ZmZlcjsKLX0KLQotR3N0QnVmZmVyKiBjcmVhdGVHc3RCdWZmZXJGb3JEYXRh
KGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCi17Ci0gICAgR3N0QnVmZmVyKiBidWZmZXIg
PSBnc3RfYnVmZmVyX25ld19hbmRfYWxsb2MobGVuZ3RoKTsKLQotICAgIGdzdF9idWZmZXJfZmls
bChidWZmZXIsIDAsIGRhdGEsIGxlbmd0aCk7Ci0KLSAgICByZXR1cm4gYnVmZmVyOwotfQotCi1j
b25zdCBjaGFyKiBjYXBzTWVkaWFUeXBlKGNvbnN0IEdzdENhcHMqIGNhcHMpCi17Ci0gICAgQVNT
RVJUKGNhcHMpOwotICAgIEdzdFN0cnVjdHVyZSogc3RydWN0dXJlID0gZ3N0X2NhcHNfZ2V0X3N0
cnVjdHVyZShjYXBzLCAwKTsKLSAgICBpZiAoIXN0cnVjdHVyZSkgewotICAgICAgICBHU1RfV0FS
TklORygiY2FwcyBhcmUgZW1wdHkiKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQot
I2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCi0gICAgaWYgKGdzdF9zdHJ1Y3R1cmVfaGFzX25h
bWUoc3RydWN0dXJlLCAiYXBwbGljYXRpb24veC1jZW5jIikpCi0gICAgICAgIHJldHVybiBnc3Rf
c3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAib3JpZ2luYWwtbWVkaWEtdHlwZSIpOwot
I2VuZGlmCi0gICAgcmV0dXJuIGdzdF9zdHJ1Y3R1cmVfZ2V0X25hbWUoc3RydWN0dXJlKTsKLX0K
LQotYm9vbCBkb0NhcHNIYXZlVHlwZShjb25zdCBHc3RDYXBzKiBjYXBzLCBjb25zdCBjaGFyKiB0
eXBlKQotewotICAgIGNvbnN0IGNoYXIqIG1lZGlhVHlwZSA9IGNhcHNNZWRpYVR5cGUoY2Fwcyk7
Ci0gICAgaWYgKCFtZWRpYVR5cGUpIHsKLSAgICAgICAgR1NUX1dBUk5JTkcoIkZhaWxlZCB0byBn
ZXQgTWVkaWFUeXBlIik7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgcmV0dXJu
IGdfc3RyX2hhc19wcmVmaXgobWVkaWFUeXBlLCB0eXBlKTsKLX0KLQotYm9vbCBhcmVFbmNyeXB0
ZWRDYXBzKGNvbnN0IEdzdENhcHMqIGNhcHMpCi17Ci0gICAgQVNTRVJUKGNhcHMpOwotI2lmIEVO
QUJMRShFTkNSWVBURURfTUVESUEpCi0gICAgR3N0U3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBnc3Rf
Y2Fwc19nZXRfc3RydWN0dXJlKGNhcHMsIDApOwotICAgIGlmICghc3RydWN0dXJlKSB7Ci0gICAg
ICAgIEdTVF9XQVJOSU5HKCJjYXBzIGFyZSBlbXB0eSIpOwotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgfQotICAgIHJldHVybiBnc3Rfc3RydWN0dXJlX2hhc19uYW1lKHN0cnVjdHVyZSwgImFw
cGxpY2F0aW9uL3gtY2VuYyIpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oY2Fwcyk7Ci0gICAg
cmV0dXJuIGZhbHNlOwotI2VuZGlmCi19Ci0KLWNoYXIqIGdldEdzdEJ1ZmZlckRhdGFQb2ludGVy
KEdzdEJ1ZmZlciogYnVmZmVyKQotewotICAgIEdzdE1pbmlPYmplY3QqIG1pbmlPYmplY3QgPSBy
ZWludGVycHJldF9jYXN0PEdzdE1pbmlPYmplY3QqPihidWZmZXIpOwotICAgIEdzdE1hcEluZm8q
IG1hcEluZm8gPSBzdGF0aWNfY2FzdDxHc3RNYXBJbmZvKj4oZ3N0X21pbmlfb2JqZWN0X2dldF9x
ZGF0YShtaW5pT2JqZWN0LCBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyh3ZWJraXRHc3RNYXBJ
bmZvUXVhcmtTdHJpbmcpKSk7Ci0gICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1h
cEluZm8tPmRhdGEpOwotfQotCi12b2lkIG1hcEdzdEJ1ZmZlcihHc3RCdWZmZXIqIGJ1ZmZlciwg
dWludDMyX3QgZmxhZ3MpCi17Ci0gICAgR3N0TWFwSW5mbyogbWFwSW5mbyA9IHN0YXRpY19jYXN0
PEdzdE1hcEluZm8qPihmYXN0TWFsbG9jKHNpemVvZihHc3RNYXBJbmZvKSkpOwotICAgIGlmICgh
Z3N0X2J1ZmZlcl9tYXAoYnVmZmVyLCBtYXBJbmZvLCBzdGF0aWNfY2FzdDxHc3RNYXBGbGFncz4o
ZmxhZ3MpKSkgewotICAgICAgICBmYXN0RnJlZShtYXBJbmZvKTsKLSAgICAgICAgZ3N0X2J1ZmZl
cl91bnJlZihidWZmZXIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgR3N0TWluaU9i
amVjdCogbWluaU9iamVjdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0TWluaU9iamVjdCo+KGJ1ZmZl
cik7Ci0gICAgZ3N0X21pbmlfb2JqZWN0X3NldF9xZGF0YShtaW5pT2JqZWN0LCBnX3F1YXJrX2Zy
b21fc3RhdGljX3N0cmluZyh3ZWJraXRHc3RNYXBJbmZvUXVhcmtTdHJpbmcpLCBtYXBJbmZvLCBu
dWxscHRyKTsKLX0KLQotdm9pZCB1bm1hcEdzdEJ1ZmZlcihHc3RCdWZmZXIqIGJ1ZmZlcikKLXsK
LSAgICBHc3RNaW5pT2JqZWN0KiBtaW5pT2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxHc3RNaW5p
T2JqZWN0Kj4oYnVmZmVyKTsKLSAgICBHc3RNYXBJbmZvKiBtYXBJbmZvID0gc3RhdGljX2Nhc3Q8
R3N0TWFwSW5mbyo+KGdzdF9taW5pX29iamVjdF9zdGVhbF9xZGF0YShtaW5pT2JqZWN0LCBnX3F1
YXJrX2Zyb21fc3RhdGljX3N0cmluZyh3ZWJraXRHc3RNYXBJbmZvUXVhcmtTdHJpbmcpKSk7Ci0K
LSAgICBpZiAoIW1hcEluZm8pCi0gICAgICAgIHJldHVybjsKLQotICAgIGdzdF9idWZmZXJfdW5t
YXAoYnVmZmVyLCBtYXBJbmZvKTsKLSAgICBmYXN0RnJlZShtYXBJbmZvKTsKLX0KLQotVmVjdG9y
PFN0cmluZz4gZXh0cmFjdEdTdHJlYW1lck9wdGlvbnNGcm9tQ29tbWFuZExpbmUoKQotewotICAg
IEdVbmlxdWVPdXRQdHI8Y2hhcj4gY29udGVudHM7Ci0gICAgZ3NpemUgbGVuZ3RoOwotICAgIGlm
ICghZ19maWxlX2dldF9jb250ZW50cygiL3Byb2Mvc2VsZi9jbWRsaW5lIiwgJmNvbnRlbnRzLm91
dFB0cigpLCAmbGVuZ3RoLCBudWxscHRyKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLQotICAgIFZl
Y3RvcjxTdHJpbmc+IG9wdGlvbnM7Ci0gICAgYXV0byBvcHRpb25zU3RyaW5nID0gU3RyaW5nOjpm
cm9tVVRGOChjb250ZW50cy5nZXQoKSwgbGVuZ3RoKTsKLSAgICBvcHRpb25zU3RyaW5nLnNwbGl0
KCdcMCcsIGZhbHNlLCBbJm9wdGlvbnNdKFN0cmluZ1ZpZXcgaXRlbSkgewotICAgICAgICBpZiAo
aXRlbS5zdGFydHNXaXRoKCItLWdzdCIpKQotICAgICAgICAgICAgb3B0aW9ucy5hcHBlbmQoaXRl
bS50b1N0cmluZygpKTsKLSAgICB9KTsKLSAgICByZXR1cm4gb3B0aW9uczsKLX0KLQotYm9vbCBp
bml0aWFsaXplR1N0cmVhbWVyKHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiYgb3B0aW9u
cykKLXsKLSAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7Ci0gICAgc3RhdGljIGJv
b2wgaXNHU3RyZWFtZXJJbml0aWFsaXplZDsKLSAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywg
W29wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpXSB7Ci0gICAgICAgIGlzR1N0cmVhbWVySW5pdGlh
bGl6ZWQgPSBmYWxzZTsKLQotI2lmIEVOQUJMRShWSURFTykgfHwgRU5BQkxFKFdFQl9BVURJTykK
LSAgICAgICAgVmVjdG9yPFN0cmluZz4gcGFyYW1ldGVycyA9IG9wdGlvbnMudmFsdWVfb3IoZXh0
cmFjdEdTdHJlYW1lck9wdGlvbnNGcm9tQ29tbWFuZExpbmUoKSk7Ci0gICAgICAgIGNoYXIqKiBh
cmd2ID0gZ19uZXcwKGNoYXIqLCBwYXJhbWV0ZXJzLnNpemUoKSArIDIpOwotICAgICAgICBpbnQg
YXJnYyA9IHBhcmFtZXRlcnMuc2l6ZSgpICsgMTsKLSAgICAgICAgYXJndlswXSA9IGdfc3RyZHVw
KGdldEN1cnJlbnRFeGVjdXRhYmxlTmFtZSgpLmRhdGEoKSk7Ci0gICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBwYXJhbWV0ZXJzLnNpemUoKTsgaSsrKQotICAgICAgICAgICAgYXJndltp
ICsgMV0gPSBnX3N0cmR1cChwYXJhbWV0ZXJzW2ldLnV0ZjgoKS5kYXRhKCkpOwotCi0gICAgICAg
IEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKLSAgICAgICAgaXNHU3RyZWFtZXJJbml0aWFs
aXplZCA9IGdzdF9pbml0X2NoZWNrKCZhcmdjLCAmYXJndiwgJmVycm9yLm91dFB0cigpKTsKLSAg
ICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShpc0dTdHJlYW1lckluaXRpYWxpemVkLCAiR1N0cmVh
bWVyIGluaXRpYWxpemF0aW9uIGZhaWxlZDogJXMiLCBlcnJvciA/IGVycm9yLT5tZXNzYWdlIDog
InVua25vd24gZXJyb3Igb2NjdXJyZWQiKTsKLSAgICAgICAgZ19zdHJmcmVldihhcmd2KTsKLQot
ICAgICAgICBpZiAoaXNGYXN0TWFsbG9jRW5hYmxlZCgpKSB7Ci0gICAgICAgICAgICBjb25zdCBj
aGFyKiBkaXNhYmxlRmFzdE1hbGxvYyA9IGdldGVudigiV0VCS0lUX0dTVF9ESVNBQkxFX0ZBU1Rf
TUFMTE9DIik7Ci0gICAgICAgICAgICBpZiAoIWRpc2FibGVGYXN0TWFsbG9jIHx8ICFzdHJjbXAo
ZGlzYWJsZUZhc3RNYWxsb2MsICIwIikpCi0gICAgICAgICAgICAgICAgZ3N0X2FsbG9jYXRvcl9z
ZXRfZGVmYXVsdChHU1RfQUxMT0NBVE9SKGdfb2JqZWN0X25ldyhnc3RfYWxsb2NhdG9yX2Zhc3Rf
bWFsbG9jX2dldF90eXBlKCksIG51bGxwdHIpKSk7Ci0gICAgICAgIH0KLQotI2lmIEVOQUJMRShW
SURFT19UUkFDSykgJiYgVVNFKEdTVFJFQU1FUl9NUEVHVFMpCi0gICAgICAgIGlmIChpc0dTdHJl
YW1lckluaXRpYWxpemVkKQotICAgICAgICAgICAgZ3N0X21wZWd0c19pbml0aWFsaXplKCk7Ci0j
ZW5kaWYKLSNlbmRpZgotICAgIH0pOwotICAgIHJldHVybiBpc0dTdHJlYW1lckluaXRpYWxpemVk
OwotfQotCi11bnNpZ25lZCBnZXRHc3RQbGF5RmxhZyhjb25zdCBjaGFyKiBuaWNrKQotewotICAg
IHN0YXRpYyBHRmxhZ3NDbGFzcyogZmxhZ3NDbGFzcyA9IHN0YXRpY19jYXN0PEdGbGFnc0NsYXNz
Kj4oZ190eXBlX2NsYXNzX3JlZihnX3R5cGVfZnJvbV9uYW1lKCJHc3RQbGF5RmxhZ3MiKSkpOwot
ICAgIEFTU0VSVChmbGFnc0NsYXNzKTsKLQotICAgIEdGbGFnc1ZhbHVlKiBmbGFnID0gZ19mbGFn
c19nZXRfdmFsdWVfYnlfbmljayhmbGFnc0NsYXNzLCBuaWNrKTsKLSAgICBpZiAoIWZsYWcpCi0g
ICAgICAgIHJldHVybiAwOwotCi0gICAgcmV0dXJuIGZsYWctPnZhbHVlOwotfQotCi0vLyBDb252
ZXJ0IGEgTWVkaWFUaW1lIGluIHNlY29uZHMgdG8gYSBHc3RDbG9ja1RpbWUuIE5vdGUgdGhhdCB3
ZSBjYW4gZ2V0IE1lZGlhVGltZSBvYmplY3RzIHdpdGggYSB0aW1lIHNjYWxlIHRoYXQgaXNuJ3Qg
YSBHU1RfU0VDT05ELCBzaW5jZSB0aGV5IGNhbiBjb21lIHRvCi0vLyB1cyB0aHJvdWdoIHRoZSBp
bnRlcm5hbCB0ZXN0aW5nIEFQSSwgdGhlIERPTSBhbmQgaW50ZXJuYWxseS4gSXQgd291bGQgYmUg
bmljZSB0byBhc3NlcnQgdGhlIGZvcm1hdCBvZiB0aGUgaW5jb21pbmcgdGltZSwgYnV0IGFsbCB0
aGUgbWVkaWEgQVBJcyBhc3N1bWUgdGltZQotLy8gaXMgcGFzc2VkIGFyb3VuZCBpbiBmcmFjdGlv
bmFsIHNlY29uZHMsIHNvIHdlJ2xsIGp1c3QgaGF2ZSB0byBhc3N1bWUgdGhlIHNhbWUuCi11aW50
NjRfdCB0b0dzdFVuc2lnbmVkNjRUaW1lKGNvbnN0IE1lZGlhVGltZSYgbWVkaWFUaW1lKQotewot
ICAgIE1lZGlhVGltZSB0aW1lID0gbWVkaWFUaW1lLnRvVGltZVNjYWxlKEdTVF9TRUNPTkQpOwot
ICAgIGlmICh0aW1lLmlzSW52YWxpZCgpKQotICAgICAgICByZXR1cm4gR1NUX0NMT0NLX1RJTUVf
Tk9ORTsKLSAgICByZXR1cm4gdGltZS50aW1lVmFsdWUoKTsKLX0KLQotYm9vbCBnc3RSZWdpc3Ry
eUhhc0VsZW1lbnRGb3JNZWRpYVR5cGUoR0xpc3QqIGVsZW1lbnRGYWN0b3JpZXMsIGNvbnN0IGNo
YXIqIGNhcHNTdHJpbmcpCi17Ci0gICAgR1JlZlB0cjxHc3RDYXBzPiBjYXBzID0gYWRvcHRHUmVm
KGdzdF9jYXBzX2Zyb21fc3RyaW5nKGNhcHNTdHJpbmcpKTsKLSAgICBHTGlzdCogY2FuZGlkYXRl
cyA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbGlzdF9maWx0ZXIoZWxlbWVudEZhY3RvcmllcywgY2Fw
cy5nZXQoKSwgR1NUX1BBRF9TSU5LLCBmYWxzZSk7Ci0gICAgYm9vbCByZXN1bHQgPSBjYW5kaWRh
dGVzOwotCi0gICAgZ3N0X3BsdWdpbl9mZWF0dXJlX2xpc3RfZnJlZShjYW5kaWRhdGVzKTsKLSAg
ICByZXR1cm4gcmVzdWx0OwotfQotCi19Ci0KLSNlbmRpZiAvLyBVU0UoR1NUUkVBTUVSKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJl
YW1lclV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0dTdHJlYW1lclV0aWxpdGllcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk
MTQ5NGYwYjQ4YWQ1NWJmNzVmNzk4MWRjZDA5NTdkODIyMzk5ZmVjLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMuaAorKysgL2Rldi9udWxsCkBAIC0x
LDg5ICswLDAgQEAKLS8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDEyLCAyMDE1LCAyMDE2IElnYWxp
YSBTLkwKLSAqICBDb3B5cmlnaHQgKEMpIDIwMTUsIDIwMTYgTWV0cm9sb2dpY2FsIEdyb3VwIEIu
Vi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2Fy
ZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
IEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0KLSNwcmFnbWEgb25jZQotCi0KLSNp
ZiBVU0UoR1NUUkVBTUVSKQotI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgotI2luY2x1ZGUgPGdzdC9n
c3QuaD4KLSNpbmNsdWRlIDxnc3QvdmlkZW8vdmlkZW8tZm9ybWF0Lmg+Ci0jaW5jbHVkZSA8Z3N0
L3ZpZGVvL3ZpZGVvLWluZm8uaD4KLSNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+Ci0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSW50U2l6ZTsKLQotaW5saW5lIGJvb2wgd2Via2l0R3N0
Q2hlY2tWZXJzaW9uKGd1aW50IG1ham9yLCBndWludCBtaW5vciwgZ3VpbnQgbWljcm8pCi17Ci0g
ICAgZ3VpbnQgY3VycmVudE1ham9yLCBjdXJyZW50TWlub3IsIGN1cnJlbnRNaWNybywgY3VycmVu
dE5hbm87Ci0gICAgZ3N0X3ZlcnNpb24oJmN1cnJlbnRNYWpvciwgJmN1cnJlbnRNaW5vciwgJmN1
cnJlbnRNaWNybywgJmN1cnJlbnROYW5vKTsKLQotICAgIGlmIChjdXJyZW50TWFqb3IgPCBtYWpv
cikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChjdXJyZW50TWFqb3IgPiBtYWpvcikK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoY3VycmVudE1pbm9yIDwgbWlub3IpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoY3VycmVudE1pbm9yID4gbWlub3IpCi0gICAg
ICAgIHJldHVybiB0cnVlOwotCi0gICAgaWYgKGN1cnJlbnRNaWNybyA8IG1pY3JvKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotI2RlZmluZSBHU1RfVklE
RU9fQ0FQU19UWVBFX1BSRUZJWCAgInZpZGVvLyIKLSNkZWZpbmUgR1NUX0FVRElPX0NBUFNfVFlQ
RV9QUkVGSVggICJhdWRpby8iCi0jZGVmaW5lIEdTVF9URVhUX0NBUFNfVFlQRV9QUkVGSVggICAi
dGV4dC8iCi0KLUdzdFBhZCogd2Via2l0R3N0R2hvc3RQYWRGcm9tU3RhdGljVGVtcGxhdGUoR3N0
U3RhdGljUGFkVGVtcGxhdGUqLCBjb25zdCBnY2hhciogbmFtZSwgR3N0UGFkKiB0YXJnZXQpOwot
I2lmIEVOQUJMRShWSURFTykKLWJvb2wgZ2V0VmlkZW9TaXplQW5kRm9ybWF0RnJvbUNhcHMoR3N0
Q2FwcyosIFdlYkNvcmU6OkludFNpemUmLCBHc3RWaWRlb0Zvcm1hdCYsIGludCYgcGl4ZWxBc3Bl
Y3RSYXRpb051bWVyYXRvciwgaW50JiBwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0b3IsIGludCYg
c3RyaWRlKTsKLXN0ZDo6b3B0aW9uYWw8RmxvYXRTaXplPiBnZXRWaWRlb1Jlc29sdXRpb25Gcm9t
Q2Fwcyhjb25zdCBHc3RDYXBzKik7Ci1ib29sIGdldFNhbXBsZVZpZGVvSW5mbyhHc3RTYW1wbGUq
LCBHc3RWaWRlb0luZm8mKTsKLSNlbmRpZgotR3N0QnVmZmVyKiBjcmVhdGVHc3RCdWZmZXIoR3N0
QnVmZmVyKik7Ci1Hc3RCdWZmZXIqIGNyZWF0ZUdzdEJ1ZmZlckZvckRhdGEoY29uc3QgY2hhciog
ZGF0YSwgaW50IGxlbmd0aCk7Ci1jaGFyKiBnZXRHc3RCdWZmZXJEYXRhUG9pbnRlcihHc3RCdWZm
ZXIqKTsKLWNvbnN0IGNoYXIqIGNhcHNNZWRpYVR5cGUoY29uc3QgR3N0Q2FwcyopOwotYm9vbCBk
b0NhcHNIYXZlVHlwZShjb25zdCBHc3RDYXBzKiwgY29uc3QgY2hhciopOwotYm9vbCBhcmVFbmNy
eXB0ZWRDYXBzKGNvbnN0IEdzdENhcHMqKTsKLXZvaWQgbWFwR3N0QnVmZmVyKEdzdEJ1ZmZlcios
IHVpbnQzMl90KTsKLXZvaWQgdW5tYXBHc3RCdWZmZXIoR3N0QnVmZmVyKik7Ci1WZWN0b3I8U3Ry
aW5nPiBleHRyYWN0R1N0cmVhbWVyT3B0aW9uc0Zyb21Db21tYW5kTGluZSgpOwotYm9vbCBpbml0
aWFsaXplR1N0cmVhbWVyKHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiYgPSBzdGQ6Om51
bGxvcHQpOwotdW5zaWduZWQgZ2V0R3N0UGxheUZsYWcoY29uc3QgY2hhciogbmljayk7Ci11aW50
NjRfdCB0b0dzdFVuc2lnbmVkNjRUaW1lKGNvbnN0IE1lZGlhVGltZSYpOwotCi1pbmxpbmUgR3N0
Q2xvY2tUaW1lIHRvR3N0Q2xvY2tUaW1lKGNvbnN0IE1lZGlhVGltZSAmbWVkaWFUaW1lKQotewot
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxHc3RDbG9ja1RpbWU+KHRvR3N0VW5zaWduZWQ2NFRpbWUo
bWVkaWFUaW1lKSk7Ci19Ci0KLWJvb2wgZ3N0UmVnaXN0cnlIYXNFbGVtZW50Rm9yTWVkaWFUeXBl
KEdMaXN0KiBlbGVtZW50RmFjdG9yaWVzLCBjb25zdCBjaGFyKiBjYXBzU3RyaW5nKTsKLX0KLQot
I2lmbmRlZiBHU1RfQlVGRkVSX0RUU19PUl9QVFMKLSNkZWZpbmUgR1NUX0JVRkZFUl9EVFNfT1Jf
UFRTKGJ1ZmZlcikgKEdTVF9CVUZGRVJfRFRTX0lTX1ZBTElEKGJ1ZmZlcikgPyBHU1RfQlVGRkVS
X0RUUyhidWZmZXIpIDogR1NUX0JVRkZFUl9QVFMoYnVmZmVyKSkKLSNlbmRpZgotI2VuZGlmIC8v
IFVTRShHU1RSRUFNRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lci5oCmluZGV4IGQzZTA0ZjZiNzI0YWNk
ZDhhNTE3YWUyZWZkNGNhYjk5ZTY5YWY0OTUuLmI2NDQ5YTdiYzZjNGQ1MjdiOWY4N2MyYWFlYzIy
YzhhNDhhZDA3ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lci5oCkBAIC0yNCw3ICsyNCw3IEBACiAK
ICNpbmNsdWRlICJCaXRtYXBJbWFnZS5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgotI2luY2x1
ZGUgIkdSZWZQdHJHU3RyZWFtZXIuaCIKKyNpbmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIKIAog
I2luY2x1ZGUgPGdzdC9nc3QuaD4KICNpbmNsdWRlIDxnc3QvdmlkZW8vdmlkZW8tZnJhbWUuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9J
bWFnZUdTdHJlYW1lckNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcAppbmRleCBjM2ViMzJiNjM5NDMwYzNi
ZjMyZjUyYmIxNTA4OGRjZTUwZDFhMDNiLi5hM2Q1YTU1MjYwMjljYjkzMzUzODJkZTRjMWNhOTkw
ZjJhM2VkNzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8uY3BwCkBAIC0yMiw3
ICsyMiw3IEBACiAKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFNRVIpCiAKLSNpbmNs
dWRlICJHU3RyZWFtZXJVdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIK
IAogI2luY2x1ZGUgPGNhaXJvLmg+CiAjaW5jbHVkZSA8Z3N0L2dzdC5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFj
a1ByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGFkMjg0
NTIyMjJjNWFiYTU0MTFlZjBkMzIwNDRiNDhjOTgwMWMyZWUuLjk4MjcwOTU3ZDE5MjcxODM4ZWY0
YzVlYjZlYTE3YzQxYmQ2OGI2Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUg
IkluYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaCIKIAotI2luY2x1ZGUgIkdTdHJlYW1l
clV0aWxpdGllcy5oIgorI2luY2x1ZGUgIkdTdHJlYW1lckNvbW1vbi5oIgogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgogI2luY2x1ZGUgPGdzdC9nc3QuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9J
bmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oCmlu
ZGV4IGFmN2FhNjM2Y2RhNjBiMTE1ZTYwYzE5OWQ1Y2Q0YjkzYWI1OGEwMzEuLmU1NzM1YjQyOWYz
MjdmYzZiYzI5ZTdiZjI4MjUxNGNmZDViYjZmMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVh
bWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0lu
YmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYg
RU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spCiAK
LSNpbmNsdWRlICJHUmVmUHRyR1N0cmVhbWVyLmgiCisjaW5jbHVkZSAiR1N0cmVhbWVyQ29tbW9u
LmgiCiAjaW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgIlRyYWNr
UHJpdmF0ZUJhc2VHU3RyZWFtZXIuaCIKICNpbmNsdWRlIDxnc3QvZ3N0Lmg+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDFmOTMzZjQ3MmIw
ZmI4YjFkOGFjNGRiYzUyYTRkMzNlMjAwYjQ5MDAuLjc4NGM5NjE3ZGIzN2E4ZTg3Y2UyN2MzZDRi
N2JkYTc5NjU5YzZkOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0Uo
R1NUUkVBTUVSKQogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgotI2luY2x1ZGUgIkdTdHJlYW1l
clV0aWxpdGllcy5oIgorI2luY2x1ZGUgIkdTdHJlYW1lckNvbW1vbi5oIgogI2luY2x1ZGUgIkhU
VFBIZWFkZXJOYW1lcy5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRl
ICJNZWRpYVBsYXllci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5oCmluZGV4IGI3OWQ0M2NkYWVlMmMyZDk0ODZkYmU4ODY5MmQxMzAzMjdhMDg4NzQuLmI3
ODA0NjE0OGQ5YTk1OGM1MzAzOTU5NzA1YTllNDkxMDU5MDljYzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTI2LDcgKzI2LDcgQEAKIAogI2lm
IEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikKIAotI2luY2x1ZGUgIkdSZWZQdHJHU3Ry
ZWFtZXIuaCIKKyNpbmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIKICNpbmNsdWRlICJNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgiCiAKICNpbmNsdWRlIDxnbGliLmg+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKaW5kZXgg
YTQ4YWNhYWRlZjY2ZmJiYjI1YWIxMTgyZWY2ODRhMTZjZGJiYTVkNS4uZmFkYjYwYTQwODg1NzAy
YTUzM2E1ZTdjODAwNzA1ZjA3YjI4MDZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYg
RU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKQogCi0jaW5jbHVkZSAiR1N0cmVhbWVyVXRp
bGl0aWVzLmgiCisjaW5jbHVkZSAiR1N0cmVhbWVyQ29tbW9uLmgiCiAjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW1hZ2VHU3RyZWFtZXIuaCIKICNpbmNsdWRlICJJbWFn
ZU9yaWVudGF0aW9uLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2UuaAppbmRleCBhNzk5ZjBmMjA4NTM1MWJmYTllODAyMzE5NTI0NzMwMTNmMTBm
ZTUzLi41MmVjYTA3YjVlMjc5MGM5NTI1MDEyNGU0ZDI2MmQwM2M3OGM1YjE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgKQEAgLTI1LDcg
KzI1LDcgQEAKICNkZWZpbmUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZV9oCiAjaWYg
RU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKQogCi0jaW5jbHVkZSAiR1JlZlB0ckdTdHJl
YW1lci5oIgorI2luY2x1ZGUgIkdTdHJlYW1lckNvbW1vbi5oIgogI2luY2x1ZGUgIk1haW5UaHJl
YWROb3RpZmllci5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZS5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtTGF5ZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVNhbXBsZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTYW1wbGVHU3RyZWFtZXIuY3BwCmlu
ZGV4IGQwYWY1NDFmYjExYTJkMTIxYmFmZGEzMWFlNTA3NjdkNjBmNzhjYzkuLjhhNzY2MWIzN2I1
OWRjNTg2YmZhMWU4NTQyN2JmOWNiZGYwM2U1YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNhbXBsZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU2FtcGxl
R1N0cmVhbWVyLmNwcApAQCAtMjEsNyArMjEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIk1lZGlhU2FtcGxlR1N0cmVhbWVyLmgiCiAKLSNpbmNsdWRlICJHU3RyZWFtZXJVdGls
aXRpZXMuaCIKKyNpbmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIKIAogI2lmIEVOQUJMRShWSURF
TykgJiYgVVNFKEdTVFJFQU1FUikKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU2FtcGxlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTYW1wbGVHU3RyZWFtZXIuaApp
bmRleCA1NzJmZWU5ODFiMzQ2ZDQzZmFlYmIzYzU4M2U0ZGY1YmFjYWE0NzAzLi4yYjE1NmU5N2Yy
YjBmOTVhOGY1MzAwMDliODVmMWUyYjExZGQ4MzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTYW1wbGVHU3RyZWFtZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTYW1wbGVH
U3RyZWFtZXIuaApAQCAtMjMsNyArMjMsNyBAQAogI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEdT
VFJFQU1FUikKIAogI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgotI2luY2x1ZGUgIkdSZWZQdHJHU3Ry
ZWFtZXIuaCIKKyNpbmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIKICNpbmNsdWRlICJNZWRpYVNh
bXBsZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVGV4dENvbWJpbmVy
R1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9UZXh0Q29tYmluZXJHU3RyZWFtZXIuY3BwCmluZGV4IDkyMTllMzFkOGRiNjg3ZmY0Njc0OGQ4
MDIyZTFlMTk5MzZkNmQzMTEuLmRjMTk3OTJmOTlhMzEwMzhmZGQ3NjJkYzViZTE4ZjdlZGVmMTQy
ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9UZXh0Q29tYmluZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9UZXh0Q29tYmluZXJHU3RyZWFtZXIuY3BwCkBAIC0yOCw3ICsy
OCw3IEBACiAKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFNRVIpICYmIEVOQUJMRShW
SURFT19UUkFDSykKIAotI2luY2x1ZGUgIkdSZWZQdHJHU3RyZWFtZXIuaCIKKyNpbmNsdWRlICJH
U3RyZWFtZXJDb21tb24uaCIKIAogc3RhdGljIEdzdFN0YXRpY1BhZFRlbXBsYXRlIHNpbmtUZW1w
bGF0ZSA9CiAgICAgR1NUX1NUQVRJQ19QQURfVEVNUExBVEUoInNpbmtfJXUiLCBHU1RfUEFEX1NJ
TkssIEdTVF9QQURfUkVRVUVTVCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0
cmVhbWVyLmNwcAppbmRleCA1ZjUxNTlmNGMxM2I3MWJlYWVkMzNlZjNiMTIwMzJhZmE0MzI4MDll
Li4yNTRkYTc4ZGEwYzhjMjAwZGMyOGE0MGU3MjBmZjU5MmMzYzZjMGE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFz
ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAK
ICNpbmNsdWRlICJUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmgiCiAKLSNpbmNsdWRlICJHU3Ry
ZWFtZXJVdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIKICNpbmNsdWRl
ICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiVHJhY2tQcml2YXRlQmFzZS5oIgogI2luY2x1ZGUgPGds
aWItb2JqZWN0Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuaApp
bmRleCBmMTIxNWMxYjBkMzljMzg3YzJjMGYwZWY1YmM1MWIxNmJmZWY0NWM4Li4yNTA2ZmQ2Mjk4
ODg5YmY3YjBmZjdkZmQ0ZWRlYzRhYWM0ZDU1YzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1By
aXZhdGVCYXNlR1N0cmVhbWVyLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShWSURF
TykgJiYgVVNFKEdTVFJFQU1FUikgJiYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSAi
R1JlZlB0ckdTdHJlYW1lci5oIgorI2luY2x1ZGUgIkdTdHJlYW1lckNvbW1vbi5oIgogI2luY2x1
ZGUgIk1haW5UaHJlYWROb3RpZmllci5oIgogI2luY2x1ZGUgPGdzdC9nc3QuaD4KICNpbmNsdWRl
IDx3dGYvTG9jay5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcAppbmRleCA2NjYz
YmZiZTBmMzRhZWQ5YmMyOWNiZWI0MTJlNjEzN2NjYjI5YTY1Li4xNjRlN2E0MDU0ODUyODMyYWFk
M2YxODJjOThhZTQ5ZmIzMmQxMmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNw
cApAQCAtMzAsOCArMzAsNyBAQAogI2luY2x1ZGUgIlZpZGVvU2lua0dTdHJlYW1lci5oIgogCiAj
aWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKQotI2luY2x1ZGUgIkdSZWZQdHJHU3Ry
ZWFtZXIuaCIKLSNpbmNsdWRlICJHU3RyZWFtZXJVdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJHU3Ry
ZWFtZXJDb21tb24uaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSA8Z2xpYi5oPgog
I2luY2x1ZGUgPGdzdC9nc3QuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0
cmVhbWVyLmgKaW5kZXggMjc0ZTU2OTA5YmM1MzA0ZjI2Nzk4M2ZmMDM4NGRjNDY0NWNhZGY3NC4u
NGMyN2ZiNmI2NDNjZjA1NjY2OWNhMTc3MDU3OTc4Zjc1YTNjMWRiZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRl
R1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lm
IEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikgJiYgRU5BQkxFKFZJREVPX1RSQUNLKQog
Ci0jaW5jbHVkZSAiR1JlZlB0ckdTdHJlYW1lci5oIgorI2luY2x1ZGUgIkdTdHJlYW1lckNvbW1v
bi5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuaCIKICNpbmNsdWRlICJW
aWRlb1RyYWNrUHJpdmF0ZS5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3Ry
ZWFtZXIuY3BwCmluZGV4IGYwODAzMGVkMTA5NTVlYjljNzJhZTIyZWY3NDgyYWQwMDA4MTliNzMu
LmEzOTNmMTQxOTZiOWRjMmQxNmZlOWMzZGVjZjFlNzAyNWNkZmU2NTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VH
U3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0yMiw5ICsyMiw3IEBACiAKICNp
ZiBFTkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFNRVIpCiAKLSNpbmNsdWRlICJHUmVmUHRyR1N0
cmVhbWVyLmgiCi0jaW5jbHVkZSAiR1N0cmVhbWVyVXRpbGl0aWVzLmgiCi0jaW5jbHVkZSAiR1Vu
aXF1ZVB0ckdTdHJlYW1lci5oIgorI2luY2x1ZGUgIkdTdHJlYW1lckNvbW1vbi5oIgogI2luY2x1
ZGUgIkhUVFBIZWFkZXJOYW1lcy5oIgogI2luY2x1ZGUgIk1haW5UaHJlYWROb3RpZmllci5oIgog
I2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVN
RVV0aWxpdGllcy5jcHAKaW5kZXggMWNhOTIzOTBiNTBhZTE4MWI2NGYwM2I2ZGQzZDcyNjNjNTE1
MTZkZC4uMGFhODgwY2M5NmZiNDBhNzIyOTU4ZGE4NzZmZDZhZTk2NzliYWY0MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFt
ZXJFTUVVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmNwcApAQCAtMjIsOCArMjIsNiBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdTdHJlYW1lckVNRVV0aWxpdGllcy5o
IgogCi0jaW5jbHVkZSAiR1JlZlB0ckdTdHJlYW1lci5oIgotCiAjaWYgRU5BQkxFKEVOQ1JZUFRF
RF9NRURJQSkgJiYgVVNFKEdTVFJFQU1FUikKIAogR1NUX0RFQlVHX0NBVEVHT1JZX0VYVEVSTih3
ZWJraXRfbWVkaWFfcGxheWVyX2RlYnVnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVN
RVV0aWxpdGllcy5oCmluZGV4IGNkYTVmNmRhNDE0MTNiMTcyMjA5YjU0YzNhNzI4ODBiYmRmMDQ5
MzYuLjU0MTBjYjIyOTZhMzIyNWQyYzE1YTgzMTUwNWMxZjdmNDQ4YTIwMjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVy
RU1FVXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaApAQCAtMjMsNiArMjMsNyBAQAogCiAj
aWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkgJiYgVVNFKEdTVFJFQU1FUikKIAorI2luY2x1ZGUg
IkdTdHJlYW1lckNvbW1vbi5oIgogI2luY2x1ZGUgPGdzdC9nc3QuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDbGVhcktleURlY3J5cHRvckdTdHJlYW1lci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktp
dENsZWFyS2V5RGVjcnlwdG9yR1N0cmVhbWVyLmNwcAppbmRleCA3NjU0MjU4ZWE3MWMxMzllMmE2
YjFiMDg4NzMyNmUzYzIxNjU2ZTA2Li5iZDhmYzI0YmIzMGMyMGZkZjZjNDcyZWNmNGFmNWZlNmJi
Mzc2MzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvZW1lL1dlYktpdENsZWFyS2V5RGVjcnlwdG9yR1N0cmVhbWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENsZWFyS2V5
RGVjcnlwdG9yR1N0cmVhbWVyLmNwcApAQCAtMjQsNyArMjQsNiBAQAogCiAjaWYgRU5BQkxFKEVO
Q1JZUFRFRF9NRURJQSkgJiYgVVNFKEdTVFJFQU1FUikKIAotI2luY2x1ZGUgIkdSZWZQdHJHU3Ry
ZWFtZXIuaCIKICNpbmNsdWRlICJHU3RyZWFtZXJFTUVVdGlsaXRpZXMuaCIKICNpbmNsdWRlIDxn
Y3J5cHQuaD4KICNpbmNsdWRlIDxnc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENv
bW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlw
dG9yR1N0cmVhbWVyLmNwcAppbmRleCA4N2IxZjBjMTdhMTZjMzA5Y2I1MjhiZDJjY2U1Njg1MmYz
ZGMwZWJmLi5mNDIwYWY5M2UwZmM3OTk2MzVmNTcwYjYxNzcwZDBiZjc3ZjI0NzNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktp
dENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlwdGlv
bkRlY3J5cHRvckdTdHJlYW1lci5jcHAKQEAgLTI1LDggKzI1LDcgQEAKIAogI2lmIEVOQUJMRShF
TkNSWVBURURfTUVESUEpICYmIFVTRShHU1RSRUFNRVIpCiAKLSNpbmNsdWRlICJHUmVmUHRyR1N0
cmVhbWVyLmgiCi0jaW5jbHVkZSAiR1VuaXF1ZVB0ckdTdHJlYW1lci5oIgorI2luY2x1ZGUgIkdT
dHJlYW1lckNvbW1vbi5oIgogI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KICNpbmNsdWRlIDx3
dGYvUnVuTG9vcC5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwCmluZGV4IDlj
ZDNjZjY0ZDVmMWUyNjM1MWUxYmU3YzdlMmMyZmM2Y2UxM2Y3YWMuLmMyNTA4Yzc1YzlmOTVjNmZj
YTQ4OWJlOWE5YjY0MDhlZDhmOTNhMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUu
Y3BwCkBAIC0yNCwxMCArMjQsOSBAQAogI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1F
UikgJiYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAogI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRl
R1N0cmVhbWVyLmgiCi0jaW5jbHVkZSAiR1JlZlB0ckdTdHJlYW1lci5oIgorI2luY2x1ZGUgIkdT
dHJlYW1lckNvbW1vbi5oIgogI2luY2x1ZGUgIkdTdHJlYW1lckVNRVV0aWxpdGllcy5oIgogI2lu
Y2x1ZGUgIkdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb24uaCIKLSNpbmNsdWRlICJHU3RyZWFtZXJV
dGlsaXRpZXMuaCIKICNpbmNsdWRlICJNZWRpYVNhbXBsZUdTdHJlYW1lci5oIgogI2luY2x1ZGUg
IkluYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaCIKICNpbmNsdWRlICJNZWRpYURlc2Ny
aXB0aW9uLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmgKaW5kZXggZjI4OTM1YTA2Yzgz
MGY4NzcxOTRhNDEyMzAzYmEzN2ZiNDEyZTNjMC4uODMzMDQ2NjFiNDgyYTljYjkyN2QzYzcwZWUw
YTc0OWQ4OTUzMjQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuaApAQCAtMjIsOCAr
MjIsNyBAQAogCiAjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKSAmJiBFTkFCTEUo
TUVESUFfU09VUkNFKQogCi0jaW5jbHVkZSAiR1JlZlB0ckdTdHJlYW1lci5oIgotI2luY2x1ZGUg
IkdVbmlxdWVQdHJHU3RyZWFtZXIuaCIKKyNpbmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIKICNp
bmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuaCIKICNpbmNsdWRlICJNZWRp
YVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRS5oIgogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVz
Y3JpcHRpb24uY3BwCmluZGV4IDljOGQ2MjQ5Y2E0MjMxYjRmZjQ4ZjU0OWY2ZmUxYmFiN2MwOTAy
YTMuLjJiNzY2YmEzNjcxYjJiN2E1OGZkZTExY2NjZGYwMzU4MjA3Yzg2OGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVy
TWVkaWFEZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAtMjAsOCAr
MjAsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiR1N0cmVhbWVyTWVkaWFE
ZXNjcmlwdGlvbi5oIgotI2luY2x1ZGUgIkdTdHJlYW1lclV0aWxpdGllcy5oIgotI2luY2x1ZGUg
IkdVbmlxdWVQdHJHU3RyZWFtZXIuaCIKKyNpbmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIKIAog
I2luY2x1ZGUgPGdzdC9wYnV0aWxzL3BidXRpbHMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9t
aWNTdHJpbmcuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0
aW9uLmgKaW5kZXggNjM1ZWJjN2EyOTNhOGZhOGVhYzc2ZjFiMTc3ZjQ2ZTJlOTdjMGY0Ni4uODVh
ODlhYWQ4MjQ4YTRiOTdhNTQwZmU2NmI4NjMyMmY1OWNkMTY2YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURl
c2NyaXB0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmgKQEAgLTIyLDcgKzIyLDcgQEAKIAog
I2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikgJiYgRU5BQkxFKE1FRElBX1NPVVJD
RSkKIAotI2luY2x1ZGUgIkdSZWZQdHJHU3RyZWFtZXIuaCIKKyNpbmNsdWRlICJHU3RyZWFtZXJD
b21tb24uaCIKICNpbmNsdWRlICJNZWRpYURlc2NyaXB0aW9uLmgiCiAKICNpbmNsdWRlIDxnc3Qv
Z3N0Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lck1TRS5jcHAKaW5kZXggMjc1YmMyZGE5MjQ2ODE5OWYwMjVmNGViZThmZTFkMGI1MzZj
YjkxYy4uYTMwODExZjY1ODIyMzQ2N2JhYmIyYWY2NTAxZWIwOGMxNjkzNjRlYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNw
cApAQCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVkZSAiQXBwZW5kUGlwZWxpbmUuaCIKICNpbmNs
dWRlICJBdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5oIgotI2luY2x1ZGUgIkdTdHJlYW1lclV0
aWxpdGllcy5oIgorI2luY2x1ZGUgIkdTdHJlYW1lckNvbW1vbi5oIgogI2luY2x1ZGUgIkluYmFu
ZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5
LmgiCiAjaW5jbHVkZSAiTWVkaWFEZXNjcmlwdGlvbi5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJNU0UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmgKaW5kZXggMTgxZTQzMjkxYmI2
ZDA5Y2JkMzc3ZDNjYzFhNDdmYTU2ODRkYzI4OC4uMzY5ODk2ZmU2ODdjOWI3MGQ2NmYxYzA0NTA0
Y2I4Zjc1MWUxMDVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lck1TRS5oCkBAIC0yNiw3ICsyNiw3IEBACiAKICNpZiBFTkFCTEUoVklE
RU8pICYmIFVTRShHU1RSRUFNRVIpICYmIEVOQUJMRShNRURJQV9TT1VSQ0UpIAogCi0jaW5jbHVk
ZSAiR1JlZlB0ckdTdHJlYW1lci5oIgorI2luY2x1ZGUgIkdTdHJlYW1lckNvbW1vbi5oIgogI2lu
Y2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIgogI2luY2x1ZGUgIk1lZGlhU2Ft
cGxlLmgiCiAjaW5jbHVkZSAiTWVkaWFTb3VyY2VHU3RyZWFtZXIuaCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFTb3VyY2VD
bGllbnRHU3RyZWFtZXJNU0UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0UuaAppbmRleCA1MTY3ZDVk
ZmZkNzQ3MzQ2YTk5ZjJjNjJkNWNhNjNjMzIxYzEyMmY1Li4xMjc5MDNjYzM3NWQ1NzcxNjdhNmI0
NGNiN2M4ZDk3N2VlOGExMDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNv
dXJjZUNsaWVudEdTdHJlYW1lck1TRS5oCkBAIC0yMiw3ICsyMiw3IEBACiAKICNpZiBFTkFCTEUo
VklERU8pICYmIFVTRShHU1RSRUFNRVIpICYmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAKLSNpbmNs
dWRlICJHUmVmUHRyR1N0cmVhbWVyLmgiCisjaW5jbHVkZSAiR1N0cmVhbWVyQ29tbW9uLmgiCiAj
aW5jbHVkZSAiTWVkaWFTb3VyY2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiTWVkaWFTb3VyY2VQcml2
YXRlQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
UGxheWJhY2tQaXBlbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL1BsYXliYWNrUGlwZWxpbmUuY3BwCmluZGV4IDViMWUzOThiMzk0ZTk4MjQx
MzI3MjQ5NzdhZWY5MmYwNjRlYzAxNjUuLmRkNjVkMGVhNGUyMTA3Yzc1ZWY1ZmU2Zjc2ZTRjNjQ1
YzJiNjkzODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvUGxheWJhY2tQaXBlbGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9QbGF5YmFja1BpcGVsaW5lLmNwcApAQCAtMjUs
OSArMjUsOCBAQAogI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikgJiYgRU5BQkxF
KE1FRElBX1NPVVJDRSkKIAogI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmgi
CisjaW5jbHVkZSAiR1N0cmVhbWVyQ29tbW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFTYW1wbGVHU3Ry
ZWFtZXIuaCIKLSNpbmNsdWRlICJHU3RyZWFtZXJVdGlsaXRpZXMuaCIKLSNpbmNsdWRlICJHVW5p
cXVlUHRyR1N0cmVhbWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFTYW1wbGUuaCIKICNpbmNsdWRlICJT
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmgiCiAjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZh
dGVHU3RyZWFtZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDY5YTI2NDU4ZTZmYjNmZmJkMTE1NjcxY2ZiZDI1YWFi
NTQ5NTkzNTIuLmQ0MDkyNDE2M2VhM2U0YmVkYWQxOWVhNzUzNmQ5ZDg4NmFjYzBjYTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNw
cApAQCAtMzgsNyArMzgsNyBAQAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIFVTRShHU1RS
RUFNRVIpCiAKICNpbmNsdWRlICJDb250ZW50VHlwZS5oIgotI2luY2x1ZGUgIkdTdHJlYW1lclV0
aWxpdGllcy5oIgorI2luY2x1ZGUgIkdTdHJlYW1lckNvbW1vbi5oIgogI2luY2x1ZGUgIk1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5oIgogI2luY2x1ZGUgIk1lZGlhU2FtcGxlLmgiCiAj
aW5jbHVkZSAiTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0UuaCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvV2ViS2l0TWVkaWFT
b3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggMmE2ZmQ5YWM1
MzNjMTA4NjEzOTc5YjFjOWMwZDA3YzM1ZDcwNjc5MC4uZDMyZmJhM2VjZGUwZWIxOWM3NmFjZDlm
ZWQ1ZTVjZGQ0ZmRkOTI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9XZWJLaXRNZWRp
YVNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpZiBFTkFCTEUoVklERU8p
ICYmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIFVTRShHU1RSRUFNRVIpCiAKICNpbmNsdWRlICJB
dWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5oIgotI2luY2x1ZGUgIkdTdHJlYW1lclV0aWxpdGll
cy5oIgorI2luY2x1ZGUgIkdTdHJlYW1lckNvbW1vbi5oIgogI2luY2x1ZGUgIk1lZGlhRGVzY3Jp
cHRpb24uaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuaCIKICNp
bmNsdWRlICJNZWRpYVNhbXBsZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9XZWJLaXRNZWRp
YVNvdXJjZUdTdHJlYW1lci5oCmluZGV4IDc5MDg2MDU0YzM3Njk3MmY5YmYyYWRlYzcyZDBhZWEw
Y2ViNjc5NDkuLjZjNDVlYjY4NzNlY2JkOTUyZTU3MDk3OWZmOWMxNGY5N2VlODgzZWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvV2Vi
S2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291cmNlR1N0cmVhbWVyLmgKQEAgLTI1
LDcgKzI1LDcgQEAKIAogI2lmIEVOQUJMRShWSURFTykgJiYgRU5BQkxFKE1FRElBX1NPVVJDRSkg
JiYgVVNFKEdTVFJFQU1FUikKIAotI2luY2x1ZGUgIkdSZWZQdHJHU3RyZWFtZXIuaCIKKyNpbmNs
dWRlICJHU3RyZWFtZXJDb21tb24uaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1
ZGUgIk1lZGlhU291cmNlLmgiCiAjaW5jbHVkZSAiTWVkaWFTb3VyY2VQcml2YXRlLmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc1Bvb2xHdGsuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NQb29sR3RrLmNwcAppbmRl
eCAwOGFkM2VmMWUzYjRjZjUxNjIwMGI3MTA1ZDkzOTk1Njg3MDE3NzdhLi5lNjJjODJhYjAxOTg2
MDAyNThkNWI3OTk5MmIxMTBiNjJkMWFjNmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc1Bvb2xHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2d0ay9XZWJQcm9jZXNzUG9vbEd0ay5jcHAKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNs
dWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SZW1v
dGVJbnNwZWN0b3JTZXJ2ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL0dTdHJlYW1lclV0aWxpdGllcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
R1N0cmVhbWVyQ29tbW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU2NoZW1lUmVnaXN0cnkuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9H
VW5pcXVlUHRyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93cGUvV2Vi
UHJvY2Vzc1Bvb2xXUEUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd3BlL1dlYlByb2Nl
c3NQb29sV1BFLmNwcAppbmRleCA5ZDk5NzRmNmFjYzk3M2YyMTYzODM4NTNkYTM0ZDViZTRkNzk1
N2ExLi4yYzk5ZTYzMTQ3M2FkY2E4MDExZjY5MDlkM2E5ZGEyOTI4OTU0MGU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc1Bvb2xXUEUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dwZS9XZWJQcm9jZXNzUG9vbFdQRS5jcHAKQEAgLTM2
LDcgKzM2LDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9SZW1vdGVJbnNwZWN0b3JTZXJ2ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0ZpbGVTeXN0ZW0uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0dTdHJlYW1lclV0aWxpdGllcy5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvR1N0cmVhbWVyQ29tbW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9O
b3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2NoZW1lUmVnaXN0cnkuaD4KICNp
bmNsdWRlIDxjc3RkbGliPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL3Nv
dXAvV2ViUHJvY2Vzc1NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL3NvdXAvV2Vi
UHJvY2Vzc1NvdXAuY3BwCmluZGV4IGFjYWY4MzZkYzljZGE1MDA2MzI1YWIwMWMzYjU0YjIyNzFh
MjQ0MTguLjA5MzkxOWViMTcxNzZjMjM0YzYxODViNjRhOGZiNjg4NjdkNGVlYzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHAKQEAgLTI4
LDcgKzI4LDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAKICNpbmNsdWRlICJXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9HU3RyZWFtZXJVdGls
aXRpZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dTdHJlYW1lckNvbW1vbi5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvTWVtb3J5Q2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU291cE5ldHdvcmtTZXNzaW9uLmg+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337872</attachid>
            <date>2018-04-13 01:03:32 -0700</date>
            <delta_ts>2018-04-13 01:50:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184533-20180413100330.patch</filename>
            <type>text/plain</type>
            <size>60170</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWNjZDYzMjUzOWU4N2Y1
MzMzZmRhMzQ5NzY1Njk4MTgyZjFmMjBmYS4uOGNiNmQ2ZGFhNzJiZjFkZWU3ZmYxNDZlYzgzZDVk
ZmJhMmEzMzk2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE4LTA0LTEzICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dT
dHJlYW1lcl0gQ29udmVydCBHU3RyZWFtZXJVdGlsaXRpZXMgaW4gR1N0cmVhbWVyQ29tbW9uIGFu
ZCBpbmNsdWRlIHRoZSBHU3RyZWFtZXIgc21hcnQgcG9pbnRlciB0cmFpdHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDUzMworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZWQgR1N0cmVhbWVyVXRp
bGl0aWVzKiBmaWxlcyBpbnRvIEdTdHJlYW1lckNvbW1vbiogYW5kCisgICAgICAgIG1vZGlmaWVk
IGZpbGVzIGluY2x1ZGluZyB0aGVtIGFjY29yZGluZ2x5LiBJbmNsdWRlCisgICAgICAgIEdSZWZQ
dHJHU3RyZWFtZXIuaCBhbmQgR1VuaXF1ZVB0ckdTdHJlYW1lci5oIGluIEdTdHJlYW1lckNvbW1v
bi5oCisgICAgICAgIHRvIGF2b2lkIHByb2JsZW1zIGRlc3Ryb3lpbmcgb2JqZWN0cyB3aGVuIHRo
b3NlIGZpbGVzIGFyZQorICAgICAgICBmb3Jnb3R0ZW4gdG8gYmUgaW5jbHVkZWQuCisKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHA6CisgICAgICAgICogcGxhdGZv
cm0vR1N0cmVhbWVyLmNtYWtlOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9X
ZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5jcHA6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVy
VXRpbGl0aWVzLmNwcC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0
cmVhbWVyQ29tbW9uLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRpbGl0aWVzLmguCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8uY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVy
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFTYW1wbGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNhbXBsZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UZXh0Q29tYmluZXJHU3RyZWFtZXIuY3BwOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVh
bWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2
YXRlQmFzZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVz
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1l
ckVNRVV0aWxpdGllcy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9l
bWUvV2ViS2l0Q2xlYXJLZXlEZWNyeXB0b3JHU3RyZWFtZXIuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHRv
ckdTdHJlYW1lci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21z
ZS9BcHBlbmRQaXBlbGluZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9BcHBlbmRQaXBlbGluZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJNU0UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1T
RS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvUGxheWJhY2tQ
aXBlbGluZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9T
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291cmNlR1N0cmVhbWVyLmNwcDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291cmNlR1N0
cmVhbWVyLmg6CisKIDIwMTgtMDQtMTIgIENocmlzdG9waGVyIFJlaWQgIDxjaHJpcy5yZWlkQHNv
bnkuY29tPgogCiAgICAgICAgIFtDdXJsXSBGaXggY2xhbmcgYnVpbGQgZXJyb3IgaW4gQ3VybENv
bnRleHQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBlMTQxZjZhYWQxMDU2NWZmMjU4ZjU3YjdmMmU5OTE2ZDhm
MzRiMTAuLmE4MWNiZWIyYjcwZmZlYTdmZDU3NzAyNDc5OWQ4MzJhMGY5Y2I4OTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjAgQEAKKzIwMTgtMDQtMTMgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8
Y2FsdmFyaXNAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXSBDb252ZXJ0IEdTdHJl
YW1lclV0aWxpdGllcyBpbiBHU3RyZWFtZXJDb21tb24gYW5kIGluY2x1ZGUgdGhlIEdTdHJlYW1l
ciBzbWFydCBwb2ludGVyIHRyYWl0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTg0NTMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVuYW1lZCBHU3RyZWFtZXJVdGlsaXRpZXMqIGZpbGVzIGludG8gR1N0
cmVhbWVyQ29tbW9uKiBhbmQKKyAgICAgICAgbW9kaWZpZWQgZmlsZXMgaW5jbHVkaW5nIHRoZW0g
YWNjb3JkaW5nbHkuIEluY2x1ZGUKKyAgICAgICAgR1JlZlB0ckdTdHJlYW1lci5oIGFuZCBHVW5p
cXVlUHRyR1N0cmVhbWVyLmggaW4gR1N0cmVhbWVyQ29tbW9uLmgKKyAgICAgICAgdG8gYXZvaWQg
cHJvYmxlbXMgZGVzdHJveWluZyBvYmplY3RzIHdoZW4gdGhvc2UgZmlsZXMgYXJlCisgICAgICAg
IGZvcmdvdHRlbiB0byBiZSBpbmNsdWRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2Vi
UHJvY2Vzc1Bvb2xHdGsuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc1Bv
b2xXUEUuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHA6
CisKIDIwMTgtMDQtMTIgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAg
IEZpeCB0aGUgTU9CSUxFX1dJRkkgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAppbmRleCA1YmIyYjAzNmI2ZGExYTIxNGJhNjBhMTFm
NjA0MTRkZTE2NmNjNWRlLi4yYzc0MTBkZmQ3NDdiMDY0ODNiNTNiYjExY2E3MWNhZjg0ZmJkNTM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQu
Y3BwCkBAIC04NSw3ICs4NSw3IEBACiAjZW5kaWYKIAogI2lmIFVTRShHU1RSRUFNRVIpCi0jaW5j
bHVkZSAiR1N0cmVhbWVyVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiR1N0cmVhbWVyQ29tbW9uLmgi
CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0dTdHJlYW1lci5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dTdHJl
YW1lci5jbWFrZQppbmRleCBlMWVjMjMzZDBiODA2NzkwNWNlNjJhNDRhMDUyYjZlY2Y2NmU1Yzc0
Li4zZDVhNmUwMDI1YTUyYmI3YjdhNmY3MWQzNDcxOWYyYmRjMmM4ZTVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HU3RyZWFtZXIuY21ha2UKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vR1N0cmVhbWVyLmNtYWtlCkBAIC04LDcgKzgsNyBAQCBpZiAoRU5BQkxFX1ZJ
REVPIE9SIEVOQUJMRV9XRUJfQVVESU8pCiAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VT
CiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdT
dHJlYW1lci5jcHAKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJH
U3RyZWFtZXIuY3BwCi0gICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFt
ZXJVdGlsaXRpZXMuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3Ry
ZWFtZXJDb21tb24uY3BwCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9Hc3RB
bGxvY2F0b3JGYXN0TWFsbG9jLmNwcAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKICAgICAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJB
dWRpb1NvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9n
c3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDc3OGRiZDZk
ZTk4YjdmNmYyZmJmNWU2ZWIyOTVkMDRmMWJjMDFjMWYuLmEwNDZkMTg1ZTdlMmU4NDkxNTc4M2E2
N2RmZTczYWNhZWQ1NDY1MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNl
R1N0cmVhbWVyLmNwcApAQCAtMjUsOCArMjUsNyBAQAogCiAjaW5jbHVkZSAiQXVkaW9CdXMuaCIK
ICNpbmNsdWRlICJBdWRpb0lPQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJHUmVmUHRyR1N0cmVhbWVy
LmgiCi0jaW5jbHVkZSAiR1N0cmVhbWVyVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiR1N0cmVhbWVy
Q29tbW9uLmgiCiAjaW5jbHVkZSA8Z3N0L2FwcC9nc3RhcHBzcmMuaD4KICNpbmNsdWRlIDxnc3Qv
YXVkaW8vYXVkaW8taW5mby5oPgogI2luY2x1ZGUgPGdzdC9wYnV0aWxzL21pc3NpbmctcGx1Z2lu
cy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuaAppbmRleCAz
NGUxOTkwZmFiMjA5MTExYzIwMDJhMmE5N2ZkZWJkMTcxNWM5MTA2Li5jYTA1OTU4NWZiYmQ5ODI0
MzUzNjk3NDRkOTI4YzRkYjlkZWEzYThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1By
aXZhdGVHU3RyZWFtZXIuaApAQCAtMjgsNyArMjgsNyBAQAogI2lmIEVOQUJMRShWSURFTykgJiYg
VVNFKEdTVFJFQU1FUikgJiYgRU5BQkxFKFZJREVPX1RSQUNLKQogCiAjaW5jbHVkZSAiQXVkaW9U
cmFja1ByaXZhdGUuaCIKLSNpbmNsdWRlICJHUmVmUHRyR1N0cmVhbWVyLmgiCisjaW5jbHVkZSAi
R1N0cmVhbWVyQ29tbW9uLmgiCiAjaW5jbHVkZSAiVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5o
IgogI2luY2x1ZGUgPGdzdC9nc3QuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1l
ckNvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
R1N0cmVhbWVyQ29tbW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNTE0ZmUzNDI4ZGU1Mjg5OGQ0YTA3ZjZi
YzY4YTBjMWQ5NmVkZTM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5jcHAKQEAgLTAsMCArMSwzMjUg
QEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDEyLCAyMDE1LCAyMDE2IElnYWxpYSBTLkwKKyAq
ICBDb3B5cmlnaHQgKEMpIDIwMTUsIDIwMTYgTWV0cm9sb2dpY2FsIEdyb3VwIEIuVi4KKyAqCisg
KiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rvbiwg
TUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkdTdHJlYW1lckNvbW1vbi5oIgorCisjaWYgVVNFKEdTVFJFQU1FUikKKworI2luY2x1ZGUg
IkdzdEFsbG9jYXRvckZhc3RNYWxsb2MuaCIKKyNpbmNsdWRlICJJbnRTaXplLmgiCisjaW5jbHVk
ZSA8Z3N0L2F1ZGlvL2F1ZGlvLWluZm8uaD4KKyNpbmNsdWRlIDxnc3QvZ3N0Lmg+CisjaW5jbHVk
ZSA8bXV0ZXg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR0xpYlV0aWxpdGllcy5oPgorI2luY2x1ZGUg
PHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworI2lmIEVOQUJMRShWSURFT19UUkFDSykgJiYgVVNF
KEdTVFJFQU1FUl9NUEVHVFMpCisjZGVmaW5lIEdTVF9VU0VfVU5TVEFCTEVfQVBJCisjaW5jbHVk
ZSA8Z3N0L21wZWd0cy9tcGVndHMuaD4KKyN1bmRlZiBHU1RfVVNFX1VOU1RBQkxFX0FQSQorI2Vu
ZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY29uc3QgY2hhciogd2Via2l0R3N0TWFwSW5m
b1F1YXJrU3RyaW5nID0gIndlYmtpdC1nc3QtbWFwLWluZm8iOworCitHc3RQYWQqIHdlYmtpdEdz
dEdob3N0UGFkRnJvbVN0YXRpY1RlbXBsYXRlKEdzdFN0YXRpY1BhZFRlbXBsYXRlKiBzdGF0aWNQ
YWRUZW1wbGF0ZSwgY29uc3QgZ2NoYXIqIG5hbWUsIEdzdFBhZCogdGFyZ2V0KQoreworICAgIEdz
dFBhZCogcGFkOworICAgIEdzdFBhZFRlbXBsYXRlKiBwYWRUZW1wbGF0ZSA9IGdzdF9zdGF0aWNf
cGFkX3RlbXBsYXRlX2dldChzdGF0aWNQYWRUZW1wbGF0ZSk7CisKKyAgICBpZiAodGFyZ2V0KQor
ICAgICAgICBwYWQgPSBnc3RfZ2hvc3RfcGFkX25ld19mcm9tX3RlbXBsYXRlKG5hbWUsIHRhcmdl
dCwgcGFkVGVtcGxhdGUpOworICAgIGVsc2UKKyAgICAgICAgcGFkID0gZ3N0X2dob3N0X3BhZF9u
ZXdfbm9fdGFyZ2V0X2Zyb21fdGVtcGxhdGUobmFtZSwgcGFkVGVtcGxhdGUpOworCisgICAgZ3N0
X29iamVjdF91bnJlZihwYWRUZW1wbGF0ZSk7CisKKyAgICByZXR1cm4gcGFkOworfQorCisjaWYg
RU5BQkxFKFZJREVPKQorYm9vbCBnZXRWaWRlb1NpemVBbmRGb3JtYXRGcm9tQ2FwcyhHc3RDYXBz
KiBjYXBzLCBXZWJDb3JlOjpJbnRTaXplJiBzaXplLCBHc3RWaWRlb0Zvcm1hdCYgZm9ybWF0LCBp
bnQmIHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IsIGludCYgcGl4ZWxBc3BlY3RSYXRpb0Rlbm9t
aW5hdG9yLCBpbnQmIHN0cmlkZSkKK3sKKyAgICBpZiAoIWRvQ2Fwc0hhdmVUeXBlKGNhcHMsIEdT
VF9WSURFT19DQVBTX1RZUEVfUFJFRklYKSkgeworICAgICAgICBHU1RfV0FSTklORygiRmFpbGVk
IHRvIGdldCB0aGUgdmlkZW8gc2l6ZSBhbmQgZm9ybWF0LCB0aGVzZSBhcmUgbm90IGEgdmlkZW8g
Y2FwcyIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKGFyZUVuY3J5
cHRlZENhcHMoY2FwcykpIHsKKyAgICAgICAgR3N0U3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBnc3Rf
Y2Fwc19nZXRfc3RydWN0dXJlKGNhcHMsIDApOworICAgICAgICBmb3JtYXQgPSBHU1RfVklERU9f
Rk9STUFUX0VOQ09ERUQ7CisgICAgICAgIHN0cmlkZSA9IDA7CisgICAgICAgIGludCB3aWR0aCA9
IDAsIGhlaWdodCA9IDA7CisgICAgICAgIGdzdF9zdHJ1Y3R1cmVfZ2V0X2ludChzdHJ1Y3R1cmUs
ICJ3aWR0aCIsICZ3aWR0aCk7CisgICAgICAgIGdzdF9zdHJ1Y3R1cmVfZ2V0X2ludChzdHJ1Y3R1
cmUsICJoZWlnaHQiLCAmaGVpZ2h0KTsKKyAgICAgICAgaWYgKCFnc3Rfc3RydWN0dXJlX2dldF9m
cmFjdGlvbihzdHJ1Y3R1cmUsICJwaXhlbC1hc3BlY3QtcmF0aW8iLCAmcGl4ZWxBc3BlY3RSYXRp
b051bWVyYXRvciwgJnBpeGVsQXNwZWN0UmF0aW9EZW5vbWluYXRvcikpIHsKKyAgICAgICAgICAg
IHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IgPSAxOworICAgICAgICAgICAgcGl4ZWxBc3BlY3RS
YXRpb0Rlbm9taW5hdG9yID0gMTsKKyAgICAgICAgfQorCisgICAgICAgIHNpemUuc2V0V2lkdGgo
d2lkdGgpOworICAgICAgICBzaXplLnNldEhlaWdodChoZWlnaHQpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIEdzdFZpZGVvSW5mbyBpbmZvOworICAgICAgICBnc3RfdmlkZW9faW5mb19pbml0KCZp
bmZvKTsKKyAgICAgICAgaWYgKCFnc3RfdmlkZW9faW5mb19mcm9tX2NhcHMoJmluZm8sIGNhcHMp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGZvcm1hdCA9IEdTVF9WSURF
T19JTkZPX0ZPUk1BVCgmaW5mbyk7CisgICAgICAgIHNpemUuc2V0V2lkdGgoR1NUX1ZJREVPX0lO
Rk9fV0lEVEgoJmluZm8pKTsKKyAgICAgICAgc2l6ZS5zZXRIZWlnaHQoR1NUX1ZJREVPX0lORk9f
SEVJR0hUKCZpbmZvKSk7CisgICAgICAgIHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IgPSBHU1Rf
VklERU9fSU5GT19QQVJfTigmaW5mbyk7CisgICAgICAgIHBpeGVsQXNwZWN0UmF0aW9EZW5vbWlu
YXRvciA9IEdTVF9WSURFT19JTkZPX1BBUl9EKCZpbmZvKTsKKyAgICAgICAgc3RyaWRlID0gR1NU
X1ZJREVPX0lORk9fUExBTkVfU1RSSURFKCZpbmZvLCAwKTsKKyAgICB9CisKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKworc3RkOjpvcHRpb25hbDxGbG9hdFNpemU+IGdldFZpZGVvUmVzb2x1dGlvbkZy
b21DYXBzKGNvbnN0IEdzdENhcHMqIGNhcHMpCit7CisgICAgaWYgKCFkb0NhcHNIYXZlVHlwZShj
YXBzLCBHU1RfVklERU9fQ0FQU19UWVBFX1BSRUZJWCkpIHsKKyAgICAgICAgR1NUX1dBUk5JTkco
IkZhaWxlZCB0byBnZXQgdGhlIHZpZGVvIHJlc29sdXRpb24sIHRoZXNlIGFyZSBub3QgYSB2aWRl
byBjYXBzIik7CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorCisgICAgaW50
IHdpZHRoID0gMCwgaGVpZ2h0ID0gMDsKKyAgICBpbnQgcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRv
ciA9IDEsIHBpeGVsQXNwZWN0UmF0aW9EZW5vbWluYXRvciA9IDE7CisKKyAgICBpZiAoYXJlRW5j
cnlwdGVkQ2FwcyhjYXBzKSkgeworICAgICAgICBHc3RTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGdz
dF9jYXBzX2dldF9zdHJ1Y3R1cmUoY2FwcywgMCk7CisgICAgICAgIGdzdF9zdHJ1Y3R1cmVfZ2V0
X2ludChzdHJ1Y3R1cmUsICJ3aWR0aCIsICZ3aWR0aCk7CisgICAgICAgIGdzdF9zdHJ1Y3R1cmVf
Z2V0X2ludChzdHJ1Y3R1cmUsICJoZWlnaHQiLCAmaGVpZ2h0KTsKKyAgICAgICAgZ3N0X3N0cnVj
dHVyZV9nZXRfZnJhY3Rpb24oc3RydWN0dXJlLCAicGl4ZWwtYXNwZWN0LXJhdGlvIiwgJnBpeGVs
QXNwZWN0UmF0aW9OdW1lcmF0b3IsICZwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0b3IpOworICAg
IH0gZWxzZSB7CisgICAgICAgIEdzdFZpZGVvSW5mbyBpbmZvOworICAgICAgICBnc3RfdmlkZW9f
aW5mb19pbml0KCZpbmZvKTsKKyAgICAgICAgaWYgKCFnc3RfdmlkZW9faW5mb19mcm9tX2NhcHMo
JmluZm8sIGNhcHMpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICB3aWR0aCA9IEdTVF9WSURFT19JTkZPX1dJRFRIKCZpbmZvKTsKKyAgICAgICAgaGVpZ2h0ID0g
R1NUX1ZJREVPX0lORk9fSEVJR0hUKCZpbmZvKTsKKyAgICAgICAgcGl4ZWxBc3BlY3RSYXRpb051
bWVyYXRvciA9IEdTVF9WSURFT19JTkZPX1BBUl9OKCZpbmZvKTsKKyAgICAgICAgcGl4ZWxBc3Bl
Y3RSYXRpb0Rlbm9taW5hdG9yID0gR1NUX1ZJREVPX0lORk9fUEFSX0QoJmluZm8pOworICAgIH0K
KworICAgIHJldHVybiBzdGQ6Om1ha2Vfb3B0aW9uYWwoRmxvYXRTaXplKHdpZHRoLCBoZWlnaHQg
KiAoc3RhdGljX2Nhc3Q8ZmxvYXQ+KHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IpIC8gc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KHBpeGVsQXNwZWN0UmF0aW9EZW5vbWluYXRvcikpKSk7Cit9CisKK2Jvb2wg
Z2V0U2FtcGxlVmlkZW9JbmZvKEdzdFNhbXBsZSogc2FtcGxlLCBHc3RWaWRlb0luZm8mIHZpZGVv
SW5mbykKK3sKKyAgICBpZiAoIUdTVF9JU19TQU1QTEUoc2FtcGxlKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgR3N0Q2FwcyogY2FwcyA9IGdzdF9zYW1wbGVfZ2V0X2NhcHMoc2FtcGxl
KTsKKyAgICBpZiAoIWNhcHMpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGdzdF92aWRl
b19pbmZvX2luaXQoJnZpZGVvSW5mbyk7CisgICAgaWYgKCFnc3RfdmlkZW9faW5mb19mcm9tX2Nh
cHMoJnZpZGVvSW5mbywgY2FwcykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVy
biB0cnVlOworfQorI2VuZGlmCisKK0dzdEJ1ZmZlciogY3JlYXRlR3N0QnVmZmVyKEdzdEJ1ZmZl
ciogYnVmZmVyKQoreworICAgIGdzaXplIGJ1ZmZlclNpemUgPSBnc3RfYnVmZmVyX2dldF9zaXpl
KGJ1ZmZlcik7CisgICAgR3N0QnVmZmVyKiBuZXdCdWZmZXIgPSBnc3RfYnVmZmVyX25ld19hbmRf
YWxsb2MoYnVmZmVyU2l6ZSk7CisKKyAgICBpZiAoIW5ld0J1ZmZlcikKKyAgICAgICAgcmV0dXJu
IDA7CisKKyAgICBnc3RfYnVmZmVyX2NvcHlfaW50byhuZXdCdWZmZXIsIGJ1ZmZlciwgc3RhdGlj
X2Nhc3Q8R3N0QnVmZmVyQ29weUZsYWdzPihHU1RfQlVGRkVSX0NPUFlfTUVUQURBVEEpLCAwLCBi
dWZmZXJTaXplKTsKKyAgICByZXR1cm4gbmV3QnVmZmVyOworfQorCitHc3RCdWZmZXIqIGNyZWF0
ZUdzdEJ1ZmZlckZvckRhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKK3sKKyAgICBH
c3RCdWZmZXIqIGJ1ZmZlciA9IGdzdF9idWZmZXJfbmV3X2FuZF9hbGxvYyhsZW5ndGgpOworCisg
ICAgZ3N0X2J1ZmZlcl9maWxsKGJ1ZmZlciwgMCwgZGF0YSwgbGVuZ3RoKTsKKworICAgIHJldHVy
biBidWZmZXI7Cit9CisKK2NvbnN0IGNoYXIqIGNhcHNNZWRpYVR5cGUoY29uc3QgR3N0Q2Fwcyog
Y2FwcykKK3sKKyAgICBBU1NFUlQoY2Fwcyk7CisgICAgR3N0U3RydWN0dXJlKiBzdHJ1Y3R1cmUg
PSBnc3RfY2Fwc19nZXRfc3RydWN0dXJlKGNhcHMsIDApOworICAgIGlmICghc3RydWN0dXJlKSB7
CisgICAgICAgIEdTVF9XQVJOSU5HKCJjYXBzIGFyZSBlbXB0eSIpOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICB9CisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICBpZiAoZ3N0
X3N0cnVjdHVyZV9oYXNfbmFtZShzdHJ1Y3R1cmUsICJhcHBsaWNhdGlvbi94LWNlbmMiKSkKKyAg
ICAgICAgcmV0dXJuIGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJvcmlnaW5h
bC1tZWRpYS10eXBlIik7CisjZW5kaWYKKyAgICByZXR1cm4gZ3N0X3N0cnVjdHVyZV9nZXRfbmFt
ZShzdHJ1Y3R1cmUpOworfQorCitib29sIGRvQ2Fwc0hhdmVUeXBlKGNvbnN0IEdzdENhcHMqIGNh
cHMsIGNvbnN0IGNoYXIqIHR5cGUpCit7CisgICAgY29uc3QgY2hhciogbWVkaWFUeXBlID0gY2Fw
c01lZGlhVHlwZShjYXBzKTsKKyAgICBpZiAoIW1lZGlhVHlwZSkgeworICAgICAgICBHU1RfV0FS
TklORygiRmFpbGVkIHRvIGdldCBNZWRpYVR5cGUiKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKyAgICByZXR1cm4gZ19zdHJfaGFzX3ByZWZpeChtZWRpYVR5cGUsIHR5cGUpOworfQor
Citib29sIGFyZUVuY3J5cHRlZENhcHMoY29uc3QgR3N0Q2FwcyogY2FwcykKK3sKKyAgICBBU1NF
UlQoY2Fwcyk7CisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICBHc3RTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSA9IGdzdF9jYXBzX2dldF9zdHJ1Y3R1cmUoY2FwcywgMCk7CisgICAgaWYgKCFz
dHJ1Y3R1cmUpIHsKKyAgICAgICAgR1NUX1dBUk5JTkcoImNhcHMgYXJlIGVtcHR5Iik7CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIGdzdF9zdHJ1Y3R1cmVfaGFzX25h
bWUoc3RydWN0dXJlLCAiYXBwbGljYXRpb24veC1jZW5jIik7CisjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTShjYXBzKTsKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKworY2hhciogZ2V0R3N0
QnVmZmVyRGF0YVBvaW50ZXIoR3N0QnVmZmVyKiBidWZmZXIpCit7CisgICAgR3N0TWluaU9iamVj
dCogbWluaU9iamVjdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0TWluaU9iamVjdCo+KGJ1ZmZlcik7
CisgICAgR3N0TWFwSW5mbyogbWFwSW5mbyA9IHN0YXRpY19jYXN0PEdzdE1hcEluZm8qPihnc3Rf
bWluaV9vYmplY3RfZ2V0X3FkYXRhKG1pbmlPYmplY3QsIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3Ry
aW5nKHdlYmtpdEdzdE1hcEluZm9RdWFya1N0cmluZykpKTsKKyAgICByZXR1cm4gcmVpbnRlcnBy
ZXRfY2FzdDxjaGFyKj4obWFwSW5mby0+ZGF0YSk7Cit9CisKK3ZvaWQgbWFwR3N0QnVmZmVyKEdz
dEJ1ZmZlciogYnVmZmVyLCB1aW50MzJfdCBmbGFncykKK3sKKyAgICBHc3RNYXBJbmZvKiBtYXBJ
bmZvID0gc3RhdGljX2Nhc3Q8R3N0TWFwSW5mbyo+KGZhc3RNYWxsb2Moc2l6ZW9mKEdzdE1hcElu
Zm8pKSk7CisgICAgaWYgKCFnc3RfYnVmZmVyX21hcChidWZmZXIsIG1hcEluZm8sIHN0YXRpY19j
YXN0PEdzdE1hcEZsYWdzPihmbGFncykpKSB7CisgICAgICAgIGZhc3RGcmVlKG1hcEluZm8pOwor
ICAgICAgICBnc3RfYnVmZmVyX3VucmVmKGJ1ZmZlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBHc3RNaW5pT2JqZWN0KiBtaW5pT2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxHc3RN
aW5pT2JqZWN0Kj4oYnVmZmVyKTsKKyAgICBnc3RfbWluaV9vYmplY3Rfc2V0X3FkYXRhKG1pbmlP
YmplY3QsIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKHdlYmtpdEdzdE1hcEluZm9RdWFya1N0
cmluZyksIG1hcEluZm8sIG51bGxwdHIpOworfQorCit2b2lkIHVubWFwR3N0QnVmZmVyKEdzdEJ1
ZmZlciogYnVmZmVyKQoreworICAgIEdzdE1pbmlPYmplY3QqIG1pbmlPYmplY3QgPSByZWludGVy
cHJldF9jYXN0PEdzdE1pbmlPYmplY3QqPihidWZmZXIpOworICAgIEdzdE1hcEluZm8qIG1hcElu
Zm8gPSBzdGF0aWNfY2FzdDxHc3RNYXBJbmZvKj4oZ3N0X21pbmlfb2JqZWN0X3N0ZWFsX3FkYXRh
KG1pbmlPYmplY3QsIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKHdlYmtpdEdzdE1hcEluZm9R
dWFya1N0cmluZykpKTsKKworICAgIGlmICghbWFwSW5mbykKKyAgICAgICAgcmV0dXJuOworCisg
ICAgZ3N0X2J1ZmZlcl91bm1hcChidWZmZXIsIG1hcEluZm8pOworICAgIGZhc3RGcmVlKG1hcElu
Zm8pOworfQorCitWZWN0b3I8U3RyaW5nPiBleHRyYWN0R1N0cmVhbWVyT3B0aW9uc0Zyb21Db21t
YW5kTGluZSgpCit7CisgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBjb250ZW50czsKKyAgICBnc2l6
ZSBsZW5ndGg7CisgICAgaWYgKCFnX2ZpbGVfZ2V0X2NvbnRlbnRzKCIvcHJvYy9zZWxmL2NtZGxp
bmUiLCAmY29udGVudHMub3V0UHRyKCksICZsZW5ndGgsIG51bGxwdHIpKQorICAgICAgICByZXR1
cm4geyB9OworCisgICAgVmVjdG9yPFN0cmluZz4gb3B0aW9uczsKKyAgICBhdXRvIG9wdGlvbnNT
dHJpbmcgPSBTdHJpbmc6OmZyb21VVEY4KGNvbnRlbnRzLmdldCgpLCBsZW5ndGgpOworICAgIG9w
dGlvbnNTdHJpbmcuc3BsaXQoJ1wwJywgZmFsc2UsIFsmb3B0aW9uc10oU3RyaW5nVmlldyBpdGVt
KSB7CisgICAgICAgIGlmIChpdGVtLnN0YXJ0c1dpdGgoIi0tZ3N0IikpCisgICAgICAgICAgICBv
cHRpb25zLmFwcGVuZChpdGVtLnRvU3RyaW5nKCkpOworICAgIH0pOworICAgIHJldHVybiBvcHRp
b25zOworfQorCitib29sIGluaXRpYWxpemVHU3RyZWFtZXIoc3RkOjpvcHRpb25hbDxWZWN0b3I8
U3RyaW5nPj4mJiBvcHRpb25zKQoreworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxh
ZzsKKyAgICBzdGF0aWMgYm9vbCBpc0dTdHJlYW1lckluaXRpYWxpemVkOworICAgIHN0ZDo6Y2Fs
bF9vbmNlKG9uY2VGbGFnLCBbb3B0aW9ucyA9IFdURk1vdmUob3B0aW9ucyldIHsKKyAgICAgICAg
aXNHU3RyZWFtZXJJbml0aWFsaXplZCA9IGZhbHNlOworCisjaWYgRU5BQkxFKFZJREVPKSB8fCBF
TkFCTEUoV0VCX0FVRElPKQorICAgICAgICBWZWN0b3I8U3RyaW5nPiBwYXJhbWV0ZXJzID0gb3B0
aW9ucy52YWx1ZV9vcihleHRyYWN0R1N0cmVhbWVyT3B0aW9uc0Zyb21Db21tYW5kTGluZSgpKTsK
KyAgICAgICAgY2hhcioqIGFyZ3YgPSBnX25ldzAoY2hhciosIHBhcmFtZXRlcnMuc2l6ZSgpICsg
Mik7CisgICAgICAgIGludCBhcmdjID0gcGFyYW1ldGVycy5zaXplKCkgKyAxOworICAgICAgICBh
cmd2WzBdID0gZ19zdHJkdXAoZ2V0Q3VycmVudEV4ZWN1dGFibGVOYW1lKCkuZGF0YSgpKTsKKyAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBhcmFtZXRlcnMuc2l6ZSgpOyBpKyspCisg
ICAgICAgICAgICBhcmd2W2kgKyAxXSA9IGdfc3RyZHVwKHBhcmFtZXRlcnNbaV0udXRmOCgpLmRh
dGEoKSk7CisKKyAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOworICAgICAgICBp
c0dTdHJlYW1lckluaXRpYWxpemVkID0gZ3N0X2luaXRfY2hlY2soJmFyZ2MsICZhcmd2LCAmZXJy
b3Iub3V0UHRyKCkpOworICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKGlzR1N0cmVhbWVySW5p
dGlhbGl6ZWQsICJHU3RyZWFtZXIgaW5pdGlhbGl6YXRpb24gZmFpbGVkOiAlcyIsIGVycm9yID8g
ZXJyb3ItPm1lc3NhZ2UgOiAidW5rbm93biBlcnJvciBvY2N1cnJlZCIpOworICAgICAgICBnX3N0
cmZyZWV2KGFyZ3YpOworCisgICAgICAgIGlmIChpc0Zhc3RNYWxsb2NFbmFibGVkKCkpIHsKKyAg
ICAgICAgICAgIGNvbnN0IGNoYXIqIGRpc2FibGVGYXN0TWFsbG9jID0gZ2V0ZW52KCJXRUJLSVRf
R1NUX0RJU0FCTEVfRkFTVF9NQUxMT0MiKTsKKyAgICAgICAgICAgIGlmICghZGlzYWJsZUZhc3RN
YWxsb2MgfHwgIXN0cmNtcChkaXNhYmxlRmFzdE1hbGxvYywgIjAiKSkKKyAgICAgICAgICAgICAg
ICBnc3RfYWxsb2NhdG9yX3NldF9kZWZhdWx0KEdTVF9BTExPQ0FUT1IoZ19vYmplY3RfbmV3KGdz
dF9hbGxvY2F0b3JfZmFzdF9tYWxsb2NfZ2V0X3R5cGUoKSwgbnVsbHB0cikpKTsKKyAgICAgICAg
fQorCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBVU0UoR1NUUkVBTUVSX01QRUdUUykKKyAg
ICAgICAgaWYgKGlzR1N0cmVhbWVySW5pdGlhbGl6ZWQpCisgICAgICAgICAgICBnc3RfbXBlZ3Rz
X2luaXRpYWxpemUoKTsKKyNlbmRpZgorI2VuZGlmCisgICAgfSk7CisgICAgcmV0dXJuIGlzR1N0
cmVhbWVySW5pdGlhbGl6ZWQ7Cit9CisKK3Vuc2lnbmVkIGdldEdzdFBsYXlGbGFnKGNvbnN0IGNo
YXIqIG5pY2spCit7CisgICAgc3RhdGljIEdGbGFnc0NsYXNzKiBmbGFnc0NsYXNzID0gc3RhdGlj
X2Nhc3Q8R0ZsYWdzQ2xhc3MqPihnX3R5cGVfY2xhc3NfcmVmKGdfdHlwZV9mcm9tX25hbWUoIkdz
dFBsYXlGbGFncyIpKSk7CisgICAgQVNTRVJUKGZsYWdzQ2xhc3MpOworCisgICAgR0ZsYWdzVmFs
dWUqIGZsYWcgPSBnX2ZsYWdzX2dldF92YWx1ZV9ieV9uaWNrKGZsYWdzQ2xhc3MsIG5pY2spOwor
ICAgIGlmICghZmxhZykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gZmxhZy0+dmFs
dWU7Cit9CisKKy8vIENvbnZlcnQgYSBNZWRpYVRpbWUgaW4gc2Vjb25kcyB0byBhIEdzdENsb2Nr
VGltZS4gTm90ZSB0aGF0IHdlIGNhbiBnZXQgTWVkaWFUaW1lIG9iamVjdHMgd2l0aCBhIHRpbWUg
c2NhbGUgdGhhdCBpc24ndCBhIEdTVF9TRUNPTkQsIHNpbmNlIHRoZXkgY2FuIGNvbWUgdG8KKy8v
IHVzIHRocm91Z2ggdGhlIGludGVybmFsIHRlc3RpbmcgQVBJLCB0aGUgRE9NIGFuZCBpbnRlcm5h
bGx5LiBJdCB3b3VsZCBiZSBuaWNlIHRvIGFzc2VydCB0aGUgZm9ybWF0IG9mIHRoZSBpbmNvbWlu
ZyB0aW1lLCBidXQgYWxsIHRoZSBtZWRpYSBBUElzIGFzc3VtZSB0aW1lCisvLyBpcyBwYXNzZWQg
YXJvdW5kIGluIGZyYWN0aW9uYWwgc2Vjb25kcywgc28gd2UnbGwganVzdCBoYXZlIHRvIGFzc3Vt
ZSB0aGUgc2FtZS4KK3VpbnQ2NF90IHRvR3N0VW5zaWduZWQ2NFRpbWUoY29uc3QgTWVkaWFUaW1l
JiBtZWRpYVRpbWUpCit7CisgICAgTWVkaWFUaW1lIHRpbWUgPSBtZWRpYVRpbWUudG9UaW1lU2Nh
bGUoR1NUX1NFQ09ORCk7CisgICAgaWYgKHRpbWUuaXNJbnZhbGlkKCkpCisgICAgICAgIHJldHVy
biBHU1RfQ0xPQ0tfVElNRV9OT05FOworICAgIHJldHVybiB0aW1lLnRpbWVWYWx1ZSgpOworfQor
Citib29sIGdzdFJlZ2lzdHJ5SGFzRWxlbWVudEZvck1lZGlhVHlwZShHTGlzdCogZWxlbWVudEZh
Y3RvcmllcywgY29uc3QgY2hhciogY2Fwc1N0cmluZykKK3sKKyAgICBHUmVmUHRyPEdzdENhcHM+
IGNhcHMgPSBhZG9wdEdSZWYoZ3N0X2NhcHNfZnJvbV9zdHJpbmcoY2Fwc1N0cmluZykpOworICAg
IEdMaXN0KiBjYW5kaWRhdGVzID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9saXN0X2ZpbHRlcihlbGVt
ZW50RmFjdG9yaWVzLCBjYXBzLmdldCgpLCBHU1RfUEFEX1NJTkssIGZhbHNlKTsKKyAgICBib29s
IHJlc3VsdCA9IGNhbmRpZGF0ZXM7CisKKyAgICBnc3RfcGx1Z2luX2ZlYXR1cmVfbGlzdF9mcmVl
KGNhbmRpZGF0ZXMpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30KKworI2VuZGlmIC8vIFVT
RShHU1RSRUFNRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjU5MjU1ZTc0
MWU0MTVhMzE0YTEyM2QzNGQwMTg4YWQ0NjkwZTY0ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uaApA
QCAtMCwwICsxLDkwIEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNSwgMjAxNiBJ
Z2FsaWEgUy5MCisgKiAgQ29weXJpZ2h0IChDKSAyMDE1LCAyMDE2IE1ldHJvbG9naWNhbCBHcm91
cCBCLlYuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
ICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vu
c2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29m
dHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIFVTRShHU1RSRUFNRVIpCisjaW5jbHVkZSAiRmxvYXRTaXplLmgiCisjaW5jbHVkZSAiR1Jl
ZlB0ckdTdHJlYW1lci5oIgorI2luY2x1ZGUgIkdVbmlxdWVQdHJHU3RyZWFtZXIuaCIKKyNpbmNs
dWRlIDxnc3QvZ3N0Lmg+CisjaW5jbHVkZSA8Z3N0L3ZpZGVvL3ZpZGVvLWZvcm1hdC5oPgorI2lu
Y2x1ZGUgPGdzdC92aWRlby92aWRlby1pbmZvLmg+CisjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEludFNpemU7CisKK2lubGluZSBib29s
IHdlYmtpdEdzdENoZWNrVmVyc2lvbihndWludCBtYWpvciwgZ3VpbnQgbWlub3IsIGd1aW50IG1p
Y3JvKQoreworICAgIGd1aW50IGN1cnJlbnRNYWpvciwgY3VycmVudE1pbm9yLCBjdXJyZW50TWlj
cm8sIGN1cnJlbnROYW5vOworICAgIGdzdF92ZXJzaW9uKCZjdXJyZW50TWFqb3IsICZjdXJyZW50
TWlub3IsICZjdXJyZW50TWljcm8sICZjdXJyZW50TmFubyk7CisKKyAgICBpZiAoY3VycmVudE1h
am9yIDwgbWFqb3IpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoY3VycmVudE1ham9y
ID4gbWFqb3IpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKGN1cnJlbnRNaW5vciA8
IG1pbm9yKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGN1cnJlbnRNaW5vciA+IG1p
bm9yKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChjdXJyZW50TWljcm8gPCBtaWNy
bykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKKyNkZWZp
bmUgR1NUX1ZJREVPX0NBUFNfVFlQRV9QUkVGSVggICJ2aWRlby8iCisjZGVmaW5lIEdTVF9BVURJ
T19DQVBTX1RZUEVfUFJFRklYICAiYXVkaW8vIgorI2RlZmluZSBHU1RfVEVYVF9DQVBTX1RZUEVf
UFJFRklYICAgInRleHQvIgorCitHc3RQYWQqIHdlYmtpdEdzdEdob3N0UGFkRnJvbVN0YXRpY1Rl
bXBsYXRlKEdzdFN0YXRpY1BhZFRlbXBsYXRlKiwgY29uc3QgZ2NoYXIqIG5hbWUsIEdzdFBhZCog
dGFyZ2V0KTsKKyNpZiBFTkFCTEUoVklERU8pCitib29sIGdldFZpZGVvU2l6ZUFuZEZvcm1hdEZy
b21DYXBzKEdzdENhcHMqLCBXZWJDb3JlOjpJbnRTaXplJiwgR3N0VmlkZW9Gb3JtYXQmLCBpbnQm
IHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IsIGludCYgcGl4ZWxBc3BlY3RSYXRpb0Rlbm9taW5h
dG9yLCBpbnQmIHN0cmlkZSk7CitzdGQ6Om9wdGlvbmFsPEZsb2F0U2l6ZT4gZ2V0VmlkZW9SZXNv
bHV0aW9uRnJvbUNhcHMoY29uc3QgR3N0Q2FwcyopOworYm9vbCBnZXRTYW1wbGVWaWRlb0luZm8o
R3N0U2FtcGxlKiwgR3N0VmlkZW9JbmZvJik7CisjZW5kaWYKK0dzdEJ1ZmZlciogY3JlYXRlR3N0
QnVmZmVyKEdzdEJ1ZmZlciopOworR3N0QnVmZmVyKiBjcmVhdGVHc3RCdWZmZXJGb3JEYXRhKGNv
bnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpOworY2hhciogZ2V0R3N0QnVmZmVyRGF0YVBvaW50
ZXIoR3N0QnVmZmVyKik7Citjb25zdCBjaGFyKiBjYXBzTWVkaWFUeXBlKGNvbnN0IEdzdENhcHMq
KTsKK2Jvb2wgZG9DYXBzSGF2ZVR5cGUoY29uc3QgR3N0Q2FwcyosIGNvbnN0IGNoYXIqKTsKK2Jv
b2wgYXJlRW5jcnlwdGVkQ2Fwcyhjb25zdCBHc3RDYXBzKik7Cit2b2lkIG1hcEdzdEJ1ZmZlcihH
c3RCdWZmZXIqLCB1aW50MzJfdCk7Cit2b2lkIHVubWFwR3N0QnVmZmVyKEdzdEJ1ZmZlciopOwor
VmVjdG9yPFN0cmluZz4gZXh0cmFjdEdTdHJlYW1lck9wdGlvbnNGcm9tQ29tbWFuZExpbmUoKTsK
K2Jvb2wgaW5pdGlhbGl6ZUdTdHJlYW1lcihzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYm
ID0gc3RkOjpudWxsb3B0KTsKK3Vuc2lnbmVkIGdldEdzdFBsYXlGbGFnKGNvbnN0IGNoYXIqIG5p
Y2spOwordWludDY0X3QgdG9Hc3RVbnNpZ25lZDY0VGltZShjb25zdCBNZWRpYVRpbWUmKTsKKwor
aW5saW5lIEdzdENsb2NrVGltZSB0b0dzdENsb2NrVGltZShjb25zdCBNZWRpYVRpbWUgJm1lZGlh
VGltZSkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8R3N0Q2xvY2tUaW1lPih0b0dzdFVuc2ln
bmVkNjRUaW1lKG1lZGlhVGltZSkpOworfQorCitib29sIGdzdFJlZ2lzdHJ5SGFzRWxlbWVudEZv
ck1lZGlhVHlwZShHTGlzdCogZWxlbWVudEZhY3RvcmllcywgY29uc3QgY2hhciogY2Fwc1N0cmlu
Zyk7Cit9CisKKyNpZm5kZWYgR1NUX0JVRkZFUl9EVFNfT1JfUFRTCisjZGVmaW5lIEdTVF9CVUZG
RVJfRFRTX09SX1BUUyhidWZmZXIpIChHU1RfQlVGRkVSX0RUU19JU19WQUxJRChidWZmZXIpID8g
R1NUX0JVRkZFUl9EVFMoYnVmZmVyKSA6IEdTVF9CVUZGRVJfUFRTKGJ1ZmZlcikpCisjZW5kaWYK
KyNlbmRpZiAvLyBVU0UoR1NUUkVBTUVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRpbGl0aWVzLmNw
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTkzNTQ3MDAxMmIyNTc4MmZjMTg2ZDlm
YTNlYjFmOGUxNmQwMDVmZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVh
bWVyVXRpbGl0aWVzLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDMyNiArMCwwIEBACi0vKgotICog
IENvcHlyaWdodCAoQykgMjAxMiwgMjAxNSwgMjAxNiBJZ2FsaWEgUy5MCi0gKiAgQ29weXJpZ2h0
IChDKSAyMDE1LCAyMDE2IE1ldHJvbG9naWNhbCBHcm91cCBCLlYuCi0gKgotICogIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAq
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICog
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0x
MzAxICBVU0EKLSAqLwotCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIFVTRShHU1RSRUFN
RVIpCi0jaW5jbHVkZSAiR1N0cmVhbWVyVXRpbGl0aWVzLmgiCi0KLSNpbmNsdWRlICJHUmVmUHRy
R1N0cmVhbWVyLmgiCi0jaW5jbHVkZSAiR3N0QWxsb2NhdG9yRmFzdE1hbGxvYy5oIgotI2luY2x1
ZGUgIkludFNpemUuaCIKLSNpbmNsdWRlIDxnc3QvYXVkaW8vYXVkaW8taW5mby5oPgotI2luY2x1
ZGUgPGdzdC9nc3QuaD4KLSNpbmNsdWRlIDxtdXRleD4KLSNpbmNsdWRlIDx3dGYvZ2xpYi9HTGli
VXRpbGl0aWVzLmg+Ci0jaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgotCi0jaWYgRU5B
QkxFKFZJREVPX1RSQUNLKSAmJiBVU0UoR1NUUkVBTUVSX01QRUdUUykKLSNkZWZpbmUgR1NUX1VT
RV9VTlNUQUJMRV9BUEkKLSNpbmNsdWRlIDxnc3QvbXBlZ3RzL21wZWd0cy5oPgotI3VuZGVmIEdT
VF9VU0VfVU5TVEFCTEVfQVBJCi0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jb25z
dCBjaGFyKiB3ZWJraXRHc3RNYXBJbmZvUXVhcmtTdHJpbmcgPSAid2Via2l0LWdzdC1tYXAtaW5m
byI7Ci0KLUdzdFBhZCogd2Via2l0R3N0R2hvc3RQYWRGcm9tU3RhdGljVGVtcGxhdGUoR3N0U3Rh
dGljUGFkVGVtcGxhdGUqIHN0YXRpY1BhZFRlbXBsYXRlLCBjb25zdCBnY2hhciogbmFtZSwgR3N0
UGFkKiB0YXJnZXQpCi17Ci0gICAgR3N0UGFkKiBwYWQ7Ci0gICAgR3N0UGFkVGVtcGxhdGUqIHBh
ZFRlbXBsYXRlID0gZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0KHN0YXRpY1BhZFRlbXBsYXRl
KTsKLQotICAgIGlmICh0YXJnZXQpCi0gICAgICAgIHBhZCA9IGdzdF9naG9zdF9wYWRfbmV3X2Zy
b21fdGVtcGxhdGUobmFtZSwgdGFyZ2V0LCBwYWRUZW1wbGF0ZSk7Ci0gICAgZWxzZQotICAgICAg
ICBwYWQgPSBnc3RfZ2hvc3RfcGFkX25ld19ub190YXJnZXRfZnJvbV90ZW1wbGF0ZShuYW1lLCBw
YWRUZW1wbGF0ZSk7Ci0KLSAgICBnc3Rfb2JqZWN0X3VucmVmKHBhZFRlbXBsYXRlKTsKLQotICAg
IHJldHVybiBwYWQ7Ci19Ci0KLSNpZiBFTkFCTEUoVklERU8pCi1ib29sIGdldFZpZGVvU2l6ZUFu
ZEZvcm1hdEZyb21DYXBzKEdzdENhcHMqIGNhcHMsIFdlYkNvcmU6OkludFNpemUmIHNpemUsIEdz
dFZpZGVvRm9ybWF0JiBmb3JtYXQsIGludCYgcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciwgaW50
JiBwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0b3IsIGludCYgc3RyaWRlKQotewotICAgIGlmICgh
ZG9DYXBzSGF2ZVR5cGUoY2FwcywgR1NUX1ZJREVPX0NBUFNfVFlQRV9QUkVGSVgpKSB7Ci0gICAg
ICAgIEdTVF9XQVJOSU5HKCJGYWlsZWQgdG8gZ2V0IHRoZSB2aWRlbyBzaXplIGFuZCBmb3JtYXQs
IHRoZXNlIGFyZSBub3QgYSB2aWRlbyBjYXBzIik7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICB9Ci0KLSAgICBpZiAoYXJlRW5jcnlwdGVkQ2FwcyhjYXBzKSkgewotICAgICAgICBHc3RTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSA9IGdzdF9jYXBzX2dldF9zdHJ1Y3R1cmUoY2FwcywgMCk7Ci0gICAg
ICAgIGZvcm1hdCA9IEdTVF9WSURFT19GT1JNQVRfRU5DT0RFRDsKLSAgICAgICAgc3RyaWRlID0g
MDsKLSAgICAgICAgaW50IHdpZHRoID0gMCwgaGVpZ2h0ID0gMDsKLSAgICAgICAgZ3N0X3N0cnVj
dHVyZV9nZXRfaW50KHN0cnVjdHVyZSwgIndpZHRoIiwgJndpZHRoKTsKLSAgICAgICAgZ3N0X3N0
cnVjdHVyZV9nZXRfaW50KHN0cnVjdHVyZSwgImhlaWdodCIsICZoZWlnaHQpOwotICAgICAgICBp
ZiAoIWdzdF9zdHJ1Y3R1cmVfZ2V0X2ZyYWN0aW9uKHN0cnVjdHVyZSwgInBpeGVsLWFzcGVjdC1y
YXRpbyIsICZwaXhlbEFzcGVjdFJhdGlvTnVtZXJhdG9yLCAmcGl4ZWxBc3BlY3RSYXRpb0Rlbm9t
aW5hdG9yKSkgewotICAgICAgICAgICAgcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciA9IDE7Ci0g
ICAgICAgICAgICBwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0b3IgPSAxOwotICAgICAgICB9Ci0K
LSAgICAgICAgc2l6ZS5zZXRXaWR0aCh3aWR0aCk7Ci0gICAgICAgIHNpemUuc2V0SGVpZ2h0KGhl
aWdodCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgR3N0VmlkZW9JbmZvIGluZm87Ci0gICAgICAg
IGdzdF92aWRlb19pbmZvX2luaXQoJmluZm8pOwotICAgICAgICBpZiAoIWdzdF92aWRlb19pbmZv
X2Zyb21fY2FwcygmaW5mbywgY2FwcykpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAg
ICAgICAgZm9ybWF0ID0gR1NUX1ZJREVPX0lORk9fRk9STUFUKCZpbmZvKTsKLSAgICAgICAgc2l6
ZS5zZXRXaWR0aChHU1RfVklERU9fSU5GT19XSURUSCgmaW5mbykpOwotICAgICAgICBzaXplLnNl
dEhlaWdodChHU1RfVklERU9fSU5GT19IRUlHSFQoJmluZm8pKTsKLSAgICAgICAgcGl4ZWxBc3Bl
Y3RSYXRpb051bWVyYXRvciA9IEdTVF9WSURFT19JTkZPX1BBUl9OKCZpbmZvKTsKLSAgICAgICAg
cGl4ZWxBc3BlY3RSYXRpb0Rlbm9taW5hdG9yID0gR1NUX1ZJREVPX0lORk9fUEFSX0QoJmluZm8p
OwotICAgICAgICBzdHJpZGUgPSBHU1RfVklERU9fSU5GT19QTEFORV9TVFJJREUoJmluZm8sIDAp
OwotICAgIH0KLQotICAgIHJldHVybiB0cnVlOwotfQotCi1zdGQ6Om9wdGlvbmFsPEZsb2F0U2l6
ZT4gZ2V0VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoY29uc3QgR3N0Q2FwcyogY2FwcykKLXsKLSAg
ICBpZiAoIWRvQ2Fwc0hhdmVUeXBlKGNhcHMsIEdTVF9WSURFT19DQVBTX1RZUEVfUFJFRklYKSkg
ewotICAgICAgICBHU1RfV0FSTklORygiRmFpbGVkIHRvIGdldCB0aGUgdmlkZW8gcmVzb2x1dGlv
biwgdGhlc2UgYXJlIG5vdCBhIHZpZGVvIGNhcHMiKTsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKLSAgICB9Ci0KLSAgICBpbnQgd2lkdGggPSAwLCBoZWlnaHQgPSAwOwotICAgIGludCBw
aXhlbEFzcGVjdFJhdGlvTnVtZXJhdG9yID0gMSwgcGl4ZWxBc3BlY3RSYXRpb0Rlbm9taW5hdG9y
ID0gMTsKLQotICAgIGlmIChhcmVFbmNyeXB0ZWRDYXBzKGNhcHMpKSB7Ci0gICAgICAgIEdzdFN0
cnVjdHVyZSogc3RydWN0dXJlID0gZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZShjYXBzLCAwKTsKLSAg
ICAgICAgZ3N0X3N0cnVjdHVyZV9nZXRfaW50KHN0cnVjdHVyZSwgIndpZHRoIiwgJndpZHRoKTsK
LSAgICAgICAgZ3N0X3N0cnVjdHVyZV9nZXRfaW50KHN0cnVjdHVyZSwgImhlaWdodCIsICZoZWln
aHQpOwotICAgICAgICBnc3Rfc3RydWN0dXJlX2dldF9mcmFjdGlvbihzdHJ1Y3R1cmUsICJwaXhl
bC1hc3BlY3QtcmF0aW8iLCAmcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciwgJnBpeGVsQXNwZWN0
UmF0aW9EZW5vbWluYXRvcik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgR3N0VmlkZW9JbmZvIGlu
Zm87Ci0gICAgICAgIGdzdF92aWRlb19pbmZvX2luaXQoJmluZm8pOwotICAgICAgICBpZiAoIWdz
dF92aWRlb19pbmZvX2Zyb21fY2FwcygmaW5mbywgY2FwcykpCi0gICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwotCi0gICAgICAgIHdpZHRoID0gR1NUX1ZJREVPX0lORk9fV0lEVEgoJmlu
Zm8pOwotICAgICAgICBoZWlnaHQgPSBHU1RfVklERU9fSU5GT19IRUlHSFQoJmluZm8pOwotICAg
ICAgICBwaXhlbEFzcGVjdFJhdGlvTnVtZXJhdG9yID0gR1NUX1ZJREVPX0lORk9fUEFSX04oJmlu
Zm8pOwotICAgICAgICBwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0b3IgPSBHU1RfVklERU9fSU5G
T19QQVJfRCgmaW5mbyk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHN0ZDo6bWFrZV9vcHRpb25hbChG
bG9hdFNpemUod2lkdGgsIGhlaWdodCAqIChzdGF0aWNfY2FzdDxmbG9hdD4ocGl4ZWxBc3BlY3RS
YXRpb051bWVyYXRvcikgLyBzdGF0aWNfY2FzdDxmbG9hdD4ocGl4ZWxBc3BlY3RSYXRpb0Rlbm9t
aW5hdG9yKSkpKTsKLX0KLQotYm9vbCBnZXRTYW1wbGVWaWRlb0luZm8oR3N0U2FtcGxlKiBzYW1w
bGUsIEdzdFZpZGVvSW5mbyYgdmlkZW9JbmZvKQotewotICAgIGlmICghR1NUX0lTX1NBTVBMRShz
YW1wbGUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBHc3RDYXBzKiBjYXBzID0gZ3N0
X3NhbXBsZV9nZXRfY2FwcyhzYW1wbGUpOwotICAgIGlmICghY2FwcykKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgZ3N0X3ZpZGVvX2luZm9faW5pdCgmdmlkZW9JbmZvKTsKLSAgICBpZiAo
IWdzdF92aWRlb19pbmZvX2Zyb21fY2FwcygmdmlkZW9JbmZvLCBjYXBzKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0jZW5kaWYKLQotR3N0QnVmZmVyKiBj
cmVhdGVHc3RCdWZmZXIoR3N0QnVmZmVyKiBidWZmZXIpCi17Ci0gICAgZ3NpemUgYnVmZmVyU2l6
ZSA9IGdzdF9idWZmZXJfZ2V0X3NpemUoYnVmZmVyKTsKLSAgICBHc3RCdWZmZXIqIG5ld0J1ZmZl
ciA9IGdzdF9idWZmZXJfbmV3X2FuZF9hbGxvYyhidWZmZXJTaXplKTsKLQotICAgIGlmICghbmV3
QnVmZmVyKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIGdzdF9idWZmZXJfY29weV9pbnRvKG5l
d0J1ZmZlciwgYnVmZmVyLCBzdGF0aWNfY2FzdDxHc3RCdWZmZXJDb3B5RmxhZ3M+KEdTVF9CVUZG
RVJfQ09QWV9NRVRBREFUQSksIDAsIGJ1ZmZlclNpemUpOwotICAgIHJldHVybiBuZXdCdWZmZXI7
Ci19Ci0KLUdzdEJ1ZmZlciogY3JlYXRlR3N0QnVmZmVyRm9yRGF0YShjb25zdCBjaGFyKiBkYXRh
LCBpbnQgbGVuZ3RoKQotewotICAgIEdzdEJ1ZmZlciogYnVmZmVyID0gZ3N0X2J1ZmZlcl9uZXdf
YW5kX2FsbG9jKGxlbmd0aCk7Ci0KLSAgICBnc3RfYnVmZmVyX2ZpbGwoYnVmZmVyLCAwLCBkYXRh
LCBsZW5ndGgpOwotCi0gICAgcmV0dXJuIGJ1ZmZlcjsKLX0KLQotY29uc3QgY2hhciogY2Fwc01l
ZGlhVHlwZShjb25zdCBHc3RDYXBzKiBjYXBzKQotewotICAgIEFTU0VSVChjYXBzKTsKLSAgICBH
c3RTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGdzdF9jYXBzX2dldF9zdHJ1Y3R1cmUoY2FwcywgMCk7
Ci0gICAgaWYgKCFzdHJ1Y3R1cmUpIHsKLSAgICAgICAgR1NUX1dBUk5JTkcoImNhcHMgYXJlIGVt
cHR5Iik7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSNpZiBFTkFCTEUoRU5DUllQ
VEVEX01FRElBKQotICAgIGlmIChnc3Rfc3RydWN0dXJlX2hhc19uYW1lKHN0cnVjdHVyZSwgImFw
cGxpY2F0aW9uL3gtY2VuYyIpKQotICAgICAgICByZXR1cm4gZ3N0X3N0cnVjdHVyZV9nZXRfc3Ry
aW5nKHN0cnVjdHVyZSwgIm9yaWdpbmFsLW1lZGlhLXR5cGUiKTsKLSNlbmRpZgotICAgIHJldHVy
biBnc3Rfc3RydWN0dXJlX2dldF9uYW1lKHN0cnVjdHVyZSk7Ci19Ci0KLWJvb2wgZG9DYXBzSGF2
ZVR5cGUoY29uc3QgR3N0Q2FwcyogY2FwcywgY29uc3QgY2hhciogdHlwZSkKLXsKLSAgICBjb25z
dCBjaGFyKiBtZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGNhcHMpOwotICAgIGlmICghbWVkaWFU
eXBlKSB7Ci0gICAgICAgIEdTVF9XQVJOSU5HKCJGYWlsZWQgdG8gZ2V0IE1lZGlhVHlwZSIpOwot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiBnX3N0cl9oYXNfcHJlZml4
KG1lZGlhVHlwZSwgdHlwZSk7Ci19Ci0KLWJvb2wgYXJlRW5jcnlwdGVkQ2Fwcyhjb25zdCBHc3RD
YXBzKiBjYXBzKQotewotICAgIEFTU0VSVChjYXBzKTsKLSNpZiBFTkFCTEUoRU5DUllQVEVEX01F
RElBKQotICAgIEdzdFN0cnVjdHVyZSogc3RydWN0dXJlID0gZ3N0X2NhcHNfZ2V0X3N0cnVjdHVy
ZShjYXBzLCAwKTsKLSAgICBpZiAoIXN0cnVjdHVyZSkgewotICAgICAgICBHU1RfV0FSTklORygi
Y2FwcyBhcmUgZW1wdHkiKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICByZXR1
cm4gZ3N0X3N0cnVjdHVyZV9oYXNfbmFtZShzdHJ1Y3R1cmUsICJhcHBsaWNhdGlvbi94LWNlbmMi
KTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGNhcHMpOwotICAgIHJldHVybiBmYWxzZTsKLSNl
bmRpZgotfQotCi1jaGFyKiBnZXRHc3RCdWZmZXJEYXRhUG9pbnRlcihHc3RCdWZmZXIqIGJ1ZmZl
cikKLXsKLSAgICBHc3RNaW5pT2JqZWN0KiBtaW5pT2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxH
c3RNaW5pT2JqZWN0Kj4oYnVmZmVyKTsKLSAgICBHc3RNYXBJbmZvKiBtYXBJbmZvID0gc3RhdGlj
X2Nhc3Q8R3N0TWFwSW5mbyo+KGdzdF9taW5pX29iamVjdF9nZXRfcWRhdGEobWluaU9iamVjdCwg
Z19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcod2Via2l0R3N0TWFwSW5mb1F1YXJrU3RyaW5nKSkp
OwotICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihtYXBJbmZvLT5kYXRhKTsKLX0K
LQotdm9pZCBtYXBHc3RCdWZmZXIoR3N0QnVmZmVyKiBidWZmZXIsIHVpbnQzMl90IGZsYWdzKQot
ewotICAgIEdzdE1hcEluZm8qIG1hcEluZm8gPSBzdGF0aWNfY2FzdDxHc3RNYXBJbmZvKj4oZmFz
dE1hbGxvYyhzaXplb2YoR3N0TWFwSW5mbykpKTsKLSAgICBpZiAoIWdzdF9idWZmZXJfbWFwKGJ1
ZmZlciwgbWFwSW5mbywgc3RhdGljX2Nhc3Q8R3N0TWFwRmxhZ3M+KGZsYWdzKSkpIHsKLSAgICAg
ICAgZmFzdEZyZWUobWFwSW5mbyk7Ci0gICAgICAgIGdzdF9idWZmZXJfdW5yZWYoYnVmZmVyKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIEdzdE1pbmlPYmplY3QqIG1pbmlPYmplY3Qg
PSByZWludGVycHJldF9jYXN0PEdzdE1pbmlPYmplY3QqPihidWZmZXIpOwotICAgIGdzdF9taW5p
X29iamVjdF9zZXRfcWRhdGEobWluaU9iamVjdCwgZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmco
d2Via2l0R3N0TWFwSW5mb1F1YXJrU3RyaW5nKSwgbWFwSW5mbywgbnVsbHB0cik7Ci19Ci0KLXZv
aWQgdW5tYXBHc3RCdWZmZXIoR3N0QnVmZmVyKiBidWZmZXIpCi17Ci0gICAgR3N0TWluaU9iamVj
dCogbWluaU9iamVjdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0TWluaU9iamVjdCo+KGJ1ZmZlcik7
Ci0gICAgR3N0TWFwSW5mbyogbWFwSW5mbyA9IHN0YXRpY19jYXN0PEdzdE1hcEluZm8qPihnc3Rf
bWluaV9vYmplY3Rfc3RlYWxfcWRhdGEobWluaU9iamVjdCwgZ19xdWFya19mcm9tX3N0YXRpY19z
dHJpbmcod2Via2l0R3N0TWFwSW5mb1F1YXJrU3RyaW5nKSkpOwotCi0gICAgaWYgKCFtYXBJbmZv
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBnc3RfYnVmZmVyX3VubWFwKGJ1ZmZlciwgbWFwSW5m
byk7Ci0gICAgZmFzdEZyZWUobWFwSW5mbyk7Ci19Ci0KLVZlY3RvcjxTdHJpbmc+IGV4dHJhY3RH
U3RyZWFtZXJPcHRpb25zRnJvbUNvbW1hbmRMaW5lKCkKLXsKLSAgICBHVW5pcXVlT3V0UHRyPGNo
YXI+IGNvbnRlbnRzOwotICAgIGdzaXplIGxlbmd0aDsKLSAgICBpZiAoIWdfZmlsZV9nZXRfY29u
dGVudHMoIi9wcm9jL3NlbGYvY21kbGluZSIsICZjb250ZW50cy5vdXRQdHIoKSwgJmxlbmd0aCwg
bnVsbHB0cikpCi0gICAgICAgIHJldHVybiB7IH07Ci0KLSAgICBWZWN0b3I8U3RyaW5nPiBvcHRp
b25zOwotICAgIGF1dG8gb3B0aW9uc1N0cmluZyA9IFN0cmluZzo6ZnJvbVVURjgoY29udGVudHMu
Z2V0KCksIGxlbmd0aCk7Ci0gICAgb3B0aW9uc1N0cmluZy5zcGxpdCgnXDAnLCBmYWxzZSwgWyZv
cHRpb25zXShTdHJpbmdWaWV3IGl0ZW0pIHsKLSAgICAgICAgaWYgKGl0ZW0uc3RhcnRzV2l0aCgi
LS1nc3QiKSkKLSAgICAgICAgICAgIG9wdGlvbnMuYXBwZW5kKGl0ZW0udG9TdHJpbmcoKSk7Ci0g
ICAgfSk7Ci0gICAgcmV0dXJuIG9wdGlvbnM7Ci19Ci0KLWJvb2wgaW5pdGlhbGl6ZUdTdHJlYW1l
cihzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYmIG9wdGlvbnMpCi17Ci0gICAgc3RhdGlj
IHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwotICAgIHN0YXRpYyBib29sIGlzR1N0cmVhbWVySW5p
dGlhbGl6ZWQ7Ci0gICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtvcHRpb25zID0gV1RGTW92
ZShvcHRpb25zKV0gewotICAgICAgICBpc0dTdHJlYW1lckluaXRpYWxpemVkID0gZmFsc2U7Ci0K
LSNpZiBFTkFCTEUoVklERU8pIHx8IEVOQUJMRShXRUJfQVVESU8pCi0gICAgICAgIFZlY3RvcjxT
dHJpbmc+IHBhcmFtZXRlcnMgPSBvcHRpb25zLnZhbHVlX29yKGV4dHJhY3RHU3RyZWFtZXJPcHRp
b25zRnJvbUNvbW1hbmRMaW5lKCkpOwotICAgICAgICBjaGFyKiogYXJndiA9IGdfbmV3MChjaGFy
KiwgcGFyYW1ldGVycy5zaXplKCkgKyAyKTsKLSAgICAgICAgaW50IGFyZ2MgPSBwYXJhbWV0ZXJz
LnNpemUoKSArIDE7Ci0gICAgICAgIGFyZ3ZbMF0gPSBnX3N0cmR1cChnZXRDdXJyZW50RXhlY3V0
YWJsZU5hbWUoKS5kYXRhKCkpOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGFy
YW1ldGVycy5zaXplKCk7IGkrKykKLSAgICAgICAgICAgIGFyZ3ZbaSArIDFdID0gZ19zdHJkdXAo
cGFyYW1ldGVyc1tpXS51dGY4KCkuZGF0YSgpKTsKLQotICAgICAgICBHVW5pcXVlT3V0UHRyPEdF
cnJvcj4gZXJyb3I7Ci0gICAgICAgIGlzR1N0cmVhbWVySW5pdGlhbGl6ZWQgPSBnc3RfaW5pdF9j
aGVjaygmYXJnYywgJmFyZ3YsICZlcnJvci5vdXRQdHIoKSk7Ci0gICAgICAgIEFTU0VSVF9XSVRI
X01FU1NBR0UoaXNHU3RyZWFtZXJJbml0aWFsaXplZCwgIkdTdHJlYW1lciBpbml0aWFsaXphdGlv
biBmYWlsZWQ6ICVzIiwgZXJyb3IgPyBlcnJvci0+bWVzc2FnZSA6ICJ1bmtub3duIGVycm9yIG9j
Y3VycmVkIik7Ci0gICAgICAgIGdfc3RyZnJlZXYoYXJndik7Ci0KLSAgICAgICAgaWYgKGlzRmFz
dE1hbGxvY0VuYWJsZWQoKSkgewotICAgICAgICAgICAgY29uc3QgY2hhciogZGlzYWJsZUZhc3RN
YWxsb2MgPSBnZXRlbnYoIldFQktJVF9HU1RfRElTQUJMRV9GQVNUX01BTExPQyIpOwotICAgICAg
ICAgICAgaWYgKCFkaXNhYmxlRmFzdE1hbGxvYyB8fCAhc3RyY21wKGRpc2FibGVGYXN0TWFsbG9j
LCAiMCIpKQotICAgICAgICAgICAgICAgIGdzdF9hbGxvY2F0b3Jfc2V0X2RlZmF1bHQoR1NUX0FM
TE9DQVRPUihnX29iamVjdF9uZXcoZ3N0X2FsbG9jYXRvcl9mYXN0X21hbGxvY19nZXRfdHlwZSgp
LCBudWxscHRyKSkpOwotICAgICAgICB9Ci0KLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmIFVT
RShHU1RSRUFNRVJfTVBFR1RTKQotICAgICAgICBpZiAoaXNHU3RyZWFtZXJJbml0aWFsaXplZCkK
LSAgICAgICAgICAgIGdzdF9tcGVndHNfaW5pdGlhbGl6ZSgpOwotI2VuZGlmCi0jZW5kaWYKLSAg
ICB9KTsKLSAgICByZXR1cm4gaXNHU3RyZWFtZXJJbml0aWFsaXplZDsKLX0KLQotdW5zaWduZWQg
Z2V0R3N0UGxheUZsYWcoY29uc3QgY2hhciogbmljaykKLXsKLSAgICBzdGF0aWMgR0ZsYWdzQ2xh
c3MqIGZsYWdzQ2xhc3MgPSBzdGF0aWNfY2FzdDxHRmxhZ3NDbGFzcyo+KGdfdHlwZV9jbGFzc19y
ZWYoZ190eXBlX2Zyb21fbmFtZSgiR3N0UGxheUZsYWdzIikpKTsKLSAgICBBU1NFUlQoZmxhZ3ND
bGFzcyk7Ci0KLSAgICBHRmxhZ3NWYWx1ZSogZmxhZyA9IGdfZmxhZ3NfZ2V0X3ZhbHVlX2J5X25p
Y2soZmxhZ3NDbGFzcywgbmljayk7Ci0gICAgaWYgKCFmbGFnKQotICAgICAgICByZXR1cm4gMDsK
LQotICAgIHJldHVybiBmbGFnLT52YWx1ZTsKLX0KLQotLy8gQ29udmVydCBhIE1lZGlhVGltZSBp
biBzZWNvbmRzIHRvIGEgR3N0Q2xvY2tUaW1lLiBOb3RlIHRoYXQgd2UgY2FuIGdldCBNZWRpYVRp
bWUgb2JqZWN0cyB3aXRoIGEgdGltZSBzY2FsZSB0aGF0IGlzbid0IGEgR1NUX1NFQ09ORCwgc2lu
Y2UgdGhleSBjYW4gY29tZSB0bwotLy8gdXMgdGhyb3VnaCB0aGUgaW50ZXJuYWwgdGVzdGluZyBB
UEksIHRoZSBET00gYW5kIGludGVybmFsbHkuIEl0IHdvdWxkIGJlIG5pY2UgdG8gYXNzZXJ0IHRo
ZSBmb3JtYXQgb2YgdGhlIGluY29taW5nIHRpbWUsIGJ1dCBhbGwgdGhlIG1lZGlhIEFQSXMgYXNz
dW1lIHRpbWUKLS8vIGlzIHBhc3NlZCBhcm91bmQgaW4gZnJhY3Rpb25hbCBzZWNvbmRzLCBzbyB3
ZSdsbCBqdXN0IGhhdmUgdG8gYXNzdW1lIHRoZSBzYW1lLgotdWludDY0X3QgdG9Hc3RVbnNpZ25l
ZDY0VGltZShjb25zdCBNZWRpYVRpbWUmIG1lZGlhVGltZSkKLXsKLSAgICBNZWRpYVRpbWUgdGlt
ZSA9IG1lZGlhVGltZS50b1RpbWVTY2FsZShHU1RfU0VDT05EKTsKLSAgICBpZiAodGltZS5pc0lu
dmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIEdTVF9DTE9DS19USU1FX05PTkU7Ci0gICAgcmV0dXJu
IHRpbWUudGltZVZhbHVlKCk7Ci19Ci0KLWJvb2wgZ3N0UmVnaXN0cnlIYXNFbGVtZW50Rm9yTWVk
aWFUeXBlKEdMaXN0KiBlbGVtZW50RmFjdG9yaWVzLCBjb25zdCBjaGFyKiBjYXBzU3RyaW5nKQot
ewotICAgIEdSZWZQdHI8R3N0Q2Fwcz4gY2FwcyA9IGFkb3B0R1JlZihnc3RfY2Fwc19mcm9tX3N0
cmluZyhjYXBzU3RyaW5nKSk7Ci0gICAgR0xpc3QqIGNhbmRpZGF0ZXMgPSBnc3RfZWxlbWVudF9m
YWN0b3J5X2xpc3RfZmlsdGVyKGVsZW1lbnRGYWN0b3JpZXMsIGNhcHMuZ2V0KCksIEdTVF9QQURf
U0lOSywgZmFsc2UpOwotICAgIGJvb2wgcmVzdWx0ID0gY2FuZGlkYXRlczsKLQotICAgIGdzdF9w
bHVnaW5fZmVhdHVyZV9saXN0X2ZyZWUoY2FuZGlkYXRlcyk7Ci0gICAgcmV0dXJuIHJlc3VsdDsK
LX0KLQotfQotCi0jZW5kaWYgLy8gVVNFKEdTVFJFQU1FUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGls
aXRpZXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDE0OTRmMGI0OGFkNTViZjc1
Zjc5ODFkY2QwOTU3ZDgyMjM5OWZlYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
R1N0cmVhbWVyVXRpbGl0aWVzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi0vKgot
ICogIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNSwgMjAxNiBJZ2FsaWEgUy5MCi0gKiAgQ29weXJp
Z2h0IChDKSAyMDE1LCAyMDE2IE1ldHJvbG9naWNhbCBHcm91cCBCLlYuCi0gKgotICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
LSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgot
ICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjEx
MC0xMzAxICBVU0EKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotCi0jaWYgVVNFKEdTVFJFQU1FUikK
LSNpbmNsdWRlICJGbG9hdFNpemUuaCIKLSNpbmNsdWRlIDxnc3QvZ3N0Lmg+Ci0jaW5jbHVkZSA8
Z3N0L3ZpZGVvL3ZpZGVvLWZvcm1hdC5oPgotI2luY2x1ZGUgPGdzdC92aWRlby92aWRlby1pbmZv
Lmg+Ci0jaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWNsYXNzIEludFNpemU7Ci0KLWlubGluZSBib29sIHdlYmtpdEdzdENoZWNrVmVyc2lvbihndWlu
dCBtYWpvciwgZ3VpbnQgbWlub3IsIGd1aW50IG1pY3JvKQotewotICAgIGd1aW50IGN1cnJlbnRN
YWpvciwgY3VycmVudE1pbm9yLCBjdXJyZW50TWljcm8sIGN1cnJlbnROYW5vOwotICAgIGdzdF92
ZXJzaW9uKCZjdXJyZW50TWFqb3IsICZjdXJyZW50TWlub3IsICZjdXJyZW50TWljcm8sICZjdXJy
ZW50TmFubyk7Ci0KLSAgICBpZiAoY3VycmVudE1ham9yIDwgbWFqb3IpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICBpZiAoY3VycmVudE1ham9yID4gbWFqb3IpCi0gICAgICAgIHJldHVybiB0
cnVlOwotCi0gICAgaWYgKGN1cnJlbnRNaW5vciA8IG1pbm9yKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgaWYgKGN1cnJlbnRNaW5vciA+IG1pbm9yKQotICAgICAgICByZXR1cm4gdHJ1ZTsK
LQotICAgIGlmIChjdXJyZW50TWljcm8gPCBtaWNybykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLSNkZWZpbmUgR1NUX1ZJREVPX0NBUFNfVFlQRV9QUkVG
SVggICJ2aWRlby8iCi0jZGVmaW5lIEdTVF9BVURJT19DQVBTX1RZUEVfUFJFRklYICAiYXVkaW8v
IgotI2RlZmluZSBHU1RfVEVYVF9DQVBTX1RZUEVfUFJFRklYICAgInRleHQvIgotCi1Hc3RQYWQq
IHdlYmtpdEdzdEdob3N0UGFkRnJvbVN0YXRpY1RlbXBsYXRlKEdzdFN0YXRpY1BhZFRlbXBsYXRl
KiwgY29uc3QgZ2NoYXIqIG5hbWUsIEdzdFBhZCogdGFyZ2V0KTsKLSNpZiBFTkFCTEUoVklERU8p
Ci1ib29sIGdldFZpZGVvU2l6ZUFuZEZvcm1hdEZyb21DYXBzKEdzdENhcHMqLCBXZWJDb3JlOjpJ
bnRTaXplJiwgR3N0VmlkZW9Gb3JtYXQmLCBpbnQmIHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3Is
IGludCYgcGl4ZWxBc3BlY3RSYXRpb0Rlbm9taW5hdG9yLCBpbnQmIHN0cmlkZSk7Ci1zdGQ6Om9w
dGlvbmFsPEZsb2F0U2l6ZT4gZ2V0VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoY29uc3QgR3N0Q2Fw
cyopOwotYm9vbCBnZXRTYW1wbGVWaWRlb0luZm8oR3N0U2FtcGxlKiwgR3N0VmlkZW9JbmZvJik7
Ci0jZW5kaWYKLUdzdEJ1ZmZlciogY3JlYXRlR3N0QnVmZmVyKEdzdEJ1ZmZlciopOwotR3N0QnVm
ZmVyKiBjcmVhdGVHc3RCdWZmZXJGb3JEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgp
OwotY2hhciogZ2V0R3N0QnVmZmVyRGF0YVBvaW50ZXIoR3N0QnVmZmVyKik7Ci1jb25zdCBjaGFy
KiBjYXBzTWVkaWFUeXBlKGNvbnN0IEdzdENhcHMqKTsKLWJvb2wgZG9DYXBzSGF2ZVR5cGUoY29u
c3QgR3N0Q2FwcyosIGNvbnN0IGNoYXIqKTsKLWJvb2wgYXJlRW5jcnlwdGVkQ2Fwcyhjb25zdCBH
c3RDYXBzKik7Ci12b2lkIG1hcEdzdEJ1ZmZlcihHc3RCdWZmZXIqLCB1aW50MzJfdCk7Ci12b2lk
IHVubWFwR3N0QnVmZmVyKEdzdEJ1ZmZlciopOwotVmVjdG9yPFN0cmluZz4gZXh0cmFjdEdTdHJl
YW1lck9wdGlvbnNGcm9tQ29tbWFuZExpbmUoKTsKLWJvb2wgaW5pdGlhbGl6ZUdTdHJlYW1lcihz
dGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYmID0gc3RkOjpudWxsb3B0KTsKLXVuc2lnbmVk
IGdldEdzdFBsYXlGbGFnKGNvbnN0IGNoYXIqIG5pY2spOwotdWludDY0X3QgdG9Hc3RVbnNpZ25l
ZDY0VGltZShjb25zdCBNZWRpYVRpbWUmKTsKLQotaW5saW5lIEdzdENsb2NrVGltZSB0b0dzdENs
b2NrVGltZShjb25zdCBNZWRpYVRpbWUgJm1lZGlhVGltZSkKLXsKLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8R3N0Q2xvY2tUaW1lPih0b0dzdFVuc2lnbmVkNjRUaW1lKG1lZGlhVGltZSkpOwotfQot
Ci1ib29sIGdzdFJlZ2lzdHJ5SGFzRWxlbWVudEZvck1lZGlhVHlwZShHTGlzdCogZWxlbWVudEZh
Y3RvcmllcywgY29uc3QgY2hhciogY2Fwc1N0cmluZyk7Ci19Ci0KLSNpZm5kZWYgR1NUX0JVRkZF
Ul9EVFNfT1JfUFRTCi0jZGVmaW5lIEdTVF9CVUZGRVJfRFRTX09SX1BUUyhidWZmZXIpIChHU1Rf
QlVGRkVSX0RUU19JU19WQUxJRChidWZmZXIpID8gR1NUX0JVRkZFUl9EVFMoYnVmZmVyKSA6IEdT
VF9CVUZGRVJfUFRTKGJ1ZmZlcikpCi0jZW5kaWYKLSNlbmRpZiAvLyBVU0UoR1NUUkVBTUVSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0lt
YWdlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvSW1hZ2VHU3RyZWFtZXIuaAppbmRleCBkM2UwNGY2YjcyNGFjZGQ4YTUxN2FlMmVmZDRjYWI5
OWU2OWFmNDk1Li5iNjQ0OWE3YmM2YzRkNTI3YjlmODdjMmFhZWMyMmM4YTQ4YWQwN2UwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VH
U3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvSW1hZ2VHU3RyZWFtZXIuaApAQCAtMjQsNyArMjQsNyBAQAogCiAjaW5jbHVkZSAiQml0bWFw
SW1hZ2UuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKLSNpbmNsdWRlICJHUmVmUHRyR1N0cmVh
bWVyLmgiCisjaW5jbHVkZSAiR1N0cmVhbWVyQ29tbW9uLmgiCiAKICNpbmNsdWRlIDxnc3QvZ3N0
Lmg+CiAjaW5jbHVkZSA8Z3N0L3ZpZGVvL3ZpZGVvLWZyYW1lLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWly
by5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VH
U3RyZWFtZXJDYWlyby5jcHAKaW5kZXggYzNlYjMyYjYzOTQzMGMzYmYzMmY1MmJiMTUwODhkY2U1
MGQxYTAzYi4uYTNkNWE1NTI2MDI5Y2I5MzM1MzgyZGU0YzFjYTk5MGYyYTNlZDczZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0
cmVhbWVyQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcApAQCAtMjIsNyArMjIsNyBAQAogCiAjaWYg
RU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKQogCi0jaW5jbHVkZSAiR1N0cmVhbWVyVXRp
bGl0aWVzLmgiCisjaW5jbHVkZSAiR1N0cmVhbWVyQ29tbW9uLmgiCiAKICNpbmNsdWRlIDxjYWly
by5oPgogI2luY2x1ZGUgPGdzdC9nc3QuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRU
ZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBhZDI4NDUyMjIyYzVhYmE1NDExZWYw
ZDMyMDQ0YjQ4Yzk4MDFjMmVlLi45ODI3MDk1N2QxOTI3MTgzOGVmNGM1ZWI2ZWExN2M0MWJkNjhi
NmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3Ry
ZWFtZXIuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlR1N0cmVhbWVyLmgiCiAKLSNpbmNsdWRlICJHU3RyZWFtZXJVdGlsaXRpZXMuaCIKKyNp
bmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSA8Z2xpYi1vYmplY3QuaD4KICNpbmNsdWRlIDxnc3QvZ3N0Lmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaAppbmRleCBhZjdhYTYzNmNkYTYw
YjExNWU2MGMxOTlkNWNkNGI5M2FiNThhMDMxLi5lNTczNWI0MjlmMzI3ZmM2YmMyOWU3YmYyODI1
MTRjZmQ1YmI2ZjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2
YXRlR1N0cmVhbWVyLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShWSURFTykgJiYg
VVNFKEdTVFJFQU1FUikgJiYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSAiR1JlZlB0
ckdTdHJlYW1lci5oIgorI2luY2x1ZGUgIkdTdHJlYW1lckNvbW1vbi5oIgogI2luY2x1ZGUgIklu
YmFuZFRleHRUcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVCYXNlR1N0cmVh
bWVyLmgiCiAjaW5jbHVkZSA8Z3N0L2dzdC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCAxZjkzM2Y0NzJiMGZiOGIxZDhhYzRkYmM1MmE0
ZDMzZTIwMGI0OTAwLi43ODRjOTYxN2RiMzdhOGU4N2NlMjdjM2Q0YjdiZGE3OTY1OWM2ZDhjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAt
MjksNyArMjksNyBAQAogI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikKIAogI2lu
Y2x1ZGUgIkZpbGVTeXN0ZW0uaCIKLSNpbmNsdWRlICJHU3RyZWFtZXJVdGlsaXRpZXMuaCIKKyNp
bmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIKICNpbmNsdWRlICJIVFRQSGVhZGVyTmFtZXMuaCIK
ICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCBiNzlk
NDNjZGFlZTJjMmQ5NDg2ZGJlODg2OTJkMTMwMzI3YTA4ODc0Li5iNzgwNDYxNDhkOWE5NThjNTMw
Mzk1OTcwNWE5ZTQ5MTA1OTA5Y2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5oCkBAIC0yNiw3ICsyNiw3IEBACiAKICNpZiBFTkFCTEUoVklERU8pICYm
IFVTRShHU1RSRUFNRVIpCiAKLSNpbmNsdWRlICJHUmVmUHRyR1N0cmVhbWVyLmgiCisjaW5jbHVk
ZSAiR1N0cmVhbWVyQ29tbW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5oIgogCiAjaW5jbHVkZSA8Z2xpYi5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCmluZGV4IGE0OGFjYWFkZWY2NmZiYmIy
NWFiMTE4MmVmNjg0YTE2Y2RiYmE1ZDUuLmZhZGI2MGE0MDg4NTcwMmE1MzNhNWU3YzgwMDcwNWYw
N2IyODA2ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyQmFzZS5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShWSURFTykgJiYg
VVNFKEdTVFJFQU1FUikKIAotI2luY2x1ZGUgIkdTdHJlYW1lclV0aWxpdGllcy5oIgorI2luY2x1
ZGUgIkdTdHJlYW1lckNvbW1vbi5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIkltYWdlR1N0cmVhbWVyLmgiCiAjaW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgKaW5k
ZXggYTc5OWYwZjIwODUzNTFiZmE5ZTgwMjMxOTUyNDczMDEzZjEwZmU1My4uNTJlY2EwN2I1ZTI3
OTBjOTUyNTAxMjRlNGQyNjJkMDNjNzhjNWIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJh
c2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oCkBAIC0yNSw3ICsyNSw3IEBACiAjZGVmaW5l
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2VfaAogI2lmIEVOQUJMRShWSURFTykgJiYg
VVNFKEdTVFJFQU1FUikKIAotI2luY2x1ZGUgIkdSZWZQdHJHU3RyZWFtZXIuaCIKKyNpbmNsdWRl
ICJHU3RyZWFtZXJDb21tb24uaCIKICNpbmNsdWRlICJNYWluVGhyZWFkTm90aWZpZXIuaCIKICNp
bmNsdWRlICJNZWRpYVBsYXllclByaXZhdGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFTYW1wbGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhU2FtcGxlR1N0cmVhbWVyLmNwcAppbmRleCBkMGFmNTQxZmIxMWEy
ZDEyMWJhZmRhMzFhZTUwNzY3ZDYwZjc4Y2M5Li44YTc2NjFiMzdiNTlkYzU4NmJmYTFlODU0Mjdi
ZjljYmRmMDNlNWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFTYW1wbGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNhbXBsZUdTdHJlYW1lci5jcHAKQEAg
LTIxLDcgKzIxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJNZWRpYVNhbXBs
ZUdTdHJlYW1lci5oIgogCi0jaW5jbHVkZSAiR1N0cmVhbWVyVXRpbGl0aWVzLmgiCisjaW5jbHVk
ZSAiR1N0cmVhbWVyQ29tbW9uLmgiCiAKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFN
RVIpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVNhbXBsZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhU2FtcGxlR1N0cmVhbWVyLmgKaW5kZXggNTcyZmVlOTgxYjM0
NmQ0M2ZhZWJiM2M1ODNlNGRmNWJhY2FhNDcwMy4uMmIxNTZlOTdmMmIwZjk1YThmNTMwMDA5Yjg1
ZjFlMmIxMWRkODM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhU2FtcGxlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU2FtcGxlR1N0cmVhbWVyLmgKQEAgLTIz
LDcgKzIzLDcgQEAKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFNRVIpCiAKICNpbmNs
dWRlICJGbG9hdFNpemUuaCIKLSNpbmNsdWRlICJHUmVmUHRyR1N0cmVhbWVyLmgiCisjaW5jbHVk
ZSAiR1N0cmVhbWVyQ29tbW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFTYW1wbGUuaCIKICNpbmNsdWRl
IDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RleHRDb21iaW5lckdTdHJlYW1lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVGV4dENvbWJpbmVyR1N0
cmVhbWVyLmNwcAppbmRleCA5MjE5ZTMxZDhkYjY4N2ZmNDY3NDhkODAyMmUxZTE5OTM2ZDZkMzEx
Li5kYzE5NzkyZjk5YTMxMDM4ZmRkNzYyZGM1YmUxOGY3ZWRlZjE0Mjg5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVGV4dENvbWJpbmVyR1N0
cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvVGV4dENvbWJpbmVyR1N0cmVhbWVyLmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaWYgRU5B
QkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spCiAKLSNp
bmNsdWRlICJHUmVmUHRyR1N0cmVhbWVyLmgiCisjaW5jbHVkZSAiR1N0cmVhbWVyQ29tbW9uLmgi
CiAKIHN0YXRpYyBHc3RTdGF0aWNQYWRUZW1wbGF0ZSBzaW5rVGVtcGxhdGUgPQogICAgIEdTVF9T
VEFUSUNfUEFEX1RFTVBMQVRFKCJzaW5rXyV1IiwgR1NUX1BBRF9TSU5LLCBHU1RfUEFEX1JFUVVF
U1QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAKaW5kZXgg
NWY1MTU5ZjRjMTNiNzFiZWFlZDMzZWYzYjEyMDMyYWZhNDMyODA5ZS4uMjU0ZGE3OGRhMGM4YzIw
MGRjMjhhNDBlNzIwZmY1OTJjM2M2YzBhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZh
dGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMjksNyArMjksNyBAQAogCiAjaW5jbHVkZSAiVHJhY2tQ
cml2YXRlQmFzZUdTdHJlYW1lci5oIgogCi0jaW5jbHVkZSAiR1N0cmVhbWVyVXRpbGl0aWVzLmgi
CisjaW5jbHVkZSAiR1N0cmVhbWVyQ29tbW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2lu
Y2x1ZGUgIlRyYWNrUHJpdmF0ZUJhc2UuaCIKICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNr
UHJpdmF0ZUJhc2VHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmgKaW5kZXggZjEyMTVjMWIwZDM5
YzM4N2MyYzBmMGVmNWJjNTFiMTZiZmVmNDVjOC4uMjUwNmZkNjI5ODg4OWJmN2IwZmY3ZGZkNGVk
ZWM0YWFjNGQ1NWM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFN
RVIpICYmIEVOQUJMRShWSURFT19UUkFDSykKIAotI2luY2x1ZGUgIkdSZWZQdHJHU3RyZWFtZXIu
aCIKKyNpbmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIKICNpbmNsdWRlICJNYWluVGhyZWFkTm90
aWZpZXIuaCIKICNpbmNsdWRlIDxnc3QvZ3N0Lmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRl
b1NpbmtHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKaW5kZXggNjY2M2JmYmUwZjM0YWVkOWJjMjlj
YmViNDEyZTYxMzdjY2IyOWE2NS4uMTY0ZTdhNDA1NDg1MjgzMmFhZDNmMTgyYzk4YWU0OWZiMzJk
MTJjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKQEAgLTMwLDggKzMwLDcg
QEAKICNpbmNsdWRlICJWaWRlb1NpbmtHU3RyZWFtZXIuaCIKIAogI2lmIEVOQUJMRShWSURFTykg
JiYgVVNFKEdTVFJFQU1FUikKLSNpbmNsdWRlICJHUmVmUHRyR1N0cmVhbWVyLmgiCi0jaW5jbHVk
ZSAiR1N0cmVhbWVyVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiR1N0cmVhbWVyQ29tbW9uLmgiCiAj
aW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgPGdsaWIuaD4KICNpbmNsdWRlIDxnc3QvZ3N0
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDI3
NGU1NjkwOWJjNTMwNGYyNjc5ODNmZjAzODRkYzQ2NDVjYWRmNzQuLjRjMjdmYjZiNjQzY2YwNTY2
NjljYTE3NzA1Nzk3OGY3NWEzYzFkYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJp
dmF0ZUdTdHJlYW1lci5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoVklERU8pICYm
IFVTRShHU1RSRUFNRVIpICYmIEVOQUJMRShWSURFT19UUkFDSykKIAotI2luY2x1ZGUgIkdSZWZQ
dHJHU3RyZWFtZXIuaCIKKyNpbmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIKICNpbmNsdWRlICJU
cmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmgiCiAjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGUu
aCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCBm
MDgwMzBlZDEwOTU1ZWI5YzcyYWUyMmVmNzQ4MmFkMDAwODE5YjczLi5hMzkzZjE0MTk2YjlkYzJk
MTZmZTljM2RlY2YxZTcwMjVjZGZlNjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291
cmNlR1N0cmVhbWVyLmNwcApAQCAtMjIsOSArMjIsNyBAQAogCiAjaWYgRU5BQkxFKFZJREVPKSAm
JiBVU0UoR1NUUkVBTUVSKQogCi0jaW5jbHVkZSAiR1JlZlB0ckdTdHJlYW1lci5oIgotI2luY2x1
ZGUgIkdTdHJlYW1lclV0aWxpdGllcy5oIgotI2luY2x1ZGUgIkdVbmlxdWVQdHJHU3RyZWFtZXIu
aCIKKyNpbmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIKICNpbmNsdWRlICJIVFRQSGVhZGVyTmFt
ZXMuaCIKICNpbmNsdWRlICJNYWluVGhyZWFkTm90aWZpZXIuaCIKICNpbmNsdWRlICJNZWRpYVBs
YXllci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuY3BwCmlu
ZGV4IDFjYTkyMzkwYjUwYWUxODFiNjRmMDNiNmRkM2Q3MjYzYzUxNTE2ZGQuLjBhYTg4MGNjOTZm
YjQwYTcyMjk1OGRhODc2ZmQ2YWU5Njc5YmFmNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0dT
dHJlYW1lckVNRVV0aWxpdGllcy5jcHAKQEAgLTIyLDggKzIyLDYgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJHU3RyZWFtZXJFTUVVdGlsaXRpZXMuaCIKIAotI2luY2x1ZGUgIkdS
ZWZQdHJHU3RyZWFtZXIuaCIKLQogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpICYmIFVTRShH
U1RSRUFNRVIpCiAKIEdTVF9ERUJVR19DQVRFR09SWV9FWFRFUk4od2Via2l0X21lZGlhX3BsYXll
cl9kZWJ1Zyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAppbmRl
eCBjZGE1ZjZkYTQxNDEzYjE3MjIwOWI1NGMzYTcyODgwYmJkZjA0OTM2Li41NDEwY2IyMjk2YTMy
MjVkMmMxNWE4MzE1MDVjMWY3ZjQ0OGEyMDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVh
bWVyRU1FVXRpbGl0aWVzLmgKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2lmIEVOQUJMRShFTkNSWVBU
RURfTUVESUEpICYmIFVTRShHU1RSRUFNRVIpCiAKKyNpbmNsdWRlICJHU3RyZWFtZXJDb21tb24u
aCIKICNpbmNsdWRlIDxnc3QvZ3N0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9lbWUvV2ViS2l0Q2xlYXJLZXlEZWNyeXB0b3JHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDbGVhcktleURlY3J5cHRv
ckdTdHJlYW1lci5jcHAKaW5kZXggNzY1NDI1OGVhNzFjMTM5ZTJhNmIxYjA4ODczMjZlM2MyMTY1
NmUwNi4uYmQ4ZmMyNGJiMzBjMjBmZGY2YzQ3MmVjZjRhZjVmZTZiYjM3NjM5ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRD
bGVhcktleURlY3J5cHRvckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDbGVhcktleURlY3J5cHRvckdTdHJlYW1l
ci5jcHAKQEAgLTI0LDcgKzI0LDYgQEAKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpICYm
IFVTRShHU1RSRUFNRVIpCiAKLSNpbmNsdWRlICJHUmVmUHRyR1N0cmVhbWVyLmgiCiAjaW5jbHVk
ZSAiR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSA8Z2NyeXB0Lmg+CiAjaW5jbHVk
ZSA8Z3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVj
cnlwdG9yR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAK
aW5kZXggODdiMWYwYzE3YTE2YzMwOWNiNTI4YmQyY2NlNTY4NTJmM2RjMGViZi4uZjQyMGFmOTNl
MGZjNzk5NjM1ZjU3MGI2MTc3MGQwYmY3N2YyNDczZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9u
RGVjcnlwdG9yR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFt
ZXIuY3BwCkBAIC0yNSw4ICsyNSw3IEBACiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKSAm
JiBVU0UoR1NUUkVBTUVSKQogCi0jaW5jbHVkZSAiR1JlZlB0ckdTdHJlYW1lci5oIgotI2luY2x1
ZGUgIkdVbmlxdWVQdHJHU3RyZWFtZXIuaCIKKyNpbmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIK
ICNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21z
ZS9BcHBlbmRQaXBlbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcAppbmRleCA5Y2QzY2Y2NGQ1ZjFlMjYzNTFl
MWJlN2M3ZTJjMmZjNmNlMTNmN2FjLi5jMjUwOGM3NWM5Zjk1YzZmY2E0ODliZTlhOWI2NDA4ZWQ4
ZjkzYTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcApAQCAtMjQsMTAgKzI0
LDkgQEAKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFNRVIpICYmIEVOQUJMRShNRURJ
QV9TT1VSQ0UpCiAKICNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5oIgotI2lu
Y2x1ZGUgIkdSZWZQdHJHU3RyZWFtZXIuaCIKKyNpbmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIK
ICNpbmNsdWRlICJHU3RyZWFtZXJFTUVVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJHU3RyZWFtZXJN
ZWRpYURlc2NyaXB0aW9uLmgiCi0jaW5jbHVkZSAiR1N0cmVhbWVyVXRpbGl0aWVzLmgiCiAjaW5j
bHVkZSAiTWVkaWFTYW1wbGVHU3RyZWFtZXIuaCIKICNpbmNsdWRlICJJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlR1N0cmVhbWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFEZXNjcmlwdGlvbi5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBl
bmRQaXBlbGluZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9BcHBlbmRQaXBlbGluZS5oCmluZGV4IGYyODkzNWEwNmM4MzBmODc3MTk0YTQxMjMwM2Jh
MzdmYjQxMmUzYzAuLjgzMzA0NjYxYjQ4MmE5Y2I5MjdkM2M3MGVlMGE3NDlkODk1MzI0MGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
QXBwZW5kUGlwZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmgKQEAgLTIyLDggKzIyLDcgQEAKIAogI2lmIEVO
QUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikgJiYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAot
I2luY2x1ZGUgIkdSZWZQdHJHU3RyZWFtZXIuaCIKLSNpbmNsdWRlICJHVW5pcXVlUHRyR1N0cmVh
bWVyLmgiCisjaW5jbHVkZSAiR1N0cmVhbWVyQ29tbW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmgiCiAjaW5jbHVkZSAiTWVkaWFTb3VyY2VDbGllbnRHU3Ry
ZWFtZXJNU0UuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L0dTdHJlYW1lck1lZGlhRGVzY3JpcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcAppbmRl
eCA5YzhkNjI0OWNhNDIzMWI0ZmY0OGY1NDlmNmZlMWJhYjdjMDkwMmEzLi4yYjc2NmJhMzY3MWIy
YjdhNThmZGUxMWNjY2RmMDM1ODIwN2M4NjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
R1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAKQEAgLTIwLDggKzIwLDcgQEAKIAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb24uaCIKLSNp
bmNsdWRlICJHU3RyZWFtZXJVdGlsaXRpZXMuaCIKLSNpbmNsdWRlICJHVW5pcXVlUHRyR1N0cmVh
bWVyLmgiCisjaW5jbHVkZSAiR1N0cmVhbWVyQ29tbW9uLmgiCiAKICNpbmNsdWRlIDxnc3QvcGJ1
dGlscy9wYnV0aWxzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dT
dHJlYW1lck1lZGlhRGVzY3JpcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5oCmluZGV4IDYzNWVi
YzdhMjkzYThmYThlYWM3NmYxYjE3N2Y0NmUyZTk3YzBmNDYuLjg1YTg5YWFkODI0OGE0Yjk3YTU0
MGZlNjZiODYzMjJmNTljZDE2NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVy
TWVkaWFEZXNjcmlwdGlvbi5oCkBAIC0yMiw3ICsyMiw3IEBACiAKICNpZiBFTkFCTEUoVklERU8p
ICYmIFVTRShHU1RSRUFNRVIpICYmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAKLSNpbmNsdWRlICJH
UmVmUHRyR1N0cmVhbWVyLmgiCisjaW5jbHVkZSAiR1N0cmVhbWVyQ29tbW9uLmgiCiAjaW5jbHVk
ZSAiTWVkaWFEZXNjcmlwdGlvbi5oIgogCiAjaW5jbHVkZSA8Z3N0L2dzdC5oPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwCmlu
ZGV4IDI3NWJjMmRhOTI0NjgxOTlmMDI1ZjRlYmU4ZmUxZDBiNTM2Y2I5MWMuLmEzMDgxMWY2NTgy
MjM0NjdiYWJiMmFmNjUwMWViMDhjMTY5MzY0ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyTVNFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5jcHAKQEAgLTMwLDcgKzMwLDcg
QEAKIAogI2luY2x1ZGUgIkFwcGVuZFBpcGVsaW5lLmgiCiAjaW5jbHVkZSAiQXVkaW9UcmFja1By
aXZhdGVHU3RyZWFtZXIuaCIKLSNpbmNsdWRlICJHU3RyZWFtZXJVdGlsaXRpZXMuaCIKKyNpbmNs
dWRlICJHU3RyZWFtZXJDb21tb24uaCIKICNpbmNsdWRlICJJbmJhbmRUZXh0VHJhY2tQcml2YXRl
R1N0cmVhbWVyLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1l
ZGlhRGVzY3JpcHRpb24uaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lck1TRS5oCmluZGV4IDE4MWU0MzI5MWJiNmQwOWNiZDM3N2QzY2MxYTQ3
ZmE1Njg0ZGMyODguLjM2OTg5NmZlNjg3YzliNzBkNjZmMWMwNDUwNGNiOGY3NTFlMTA1YzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJN
U0UuaApAQCAtMjYsNyArMjYsNyBAQAogCiAjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVB
TUVSKSAmJiBFTkFCTEUoTUVESUFfU09VUkNFKSAKIAotI2luY2x1ZGUgIkdSZWZQdHJHU3RyZWFt
ZXIuaCIKKyNpbmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIKICNpbmNsdWRlICJNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuaCIKICNpbmNsdWRlICJNZWRpYVNhbXBsZS5oIgogI2luY2x1ZGUg
Ik1lZGlhU291cmNlR1N0cmVhbWVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNF
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlh
U291cmNlQ2xpZW50R1N0cmVhbWVyTVNFLmgKaW5kZXggNTE2N2Q1ZGZmZDc0NzM0NmE5OWYyYzYy
ZDVjYTYzYzMyMWMxMjJmNS4uMTI3OTAzY2MzNzVkNTc3MTY3YTZiNDRjYjdjOGQ5NzdlZThhMTA4
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9NZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFt
ZXJNU0UuaApAQCAtMjIsNyArMjIsNyBAQAogCiAjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NU
UkVBTUVSKSAmJiBFTkFCTEUoTUVESUFfU09VUkNFKQogCi0jaW5jbHVkZSAiR1JlZlB0ckdTdHJl
YW1lci5oIgorI2luY2x1ZGUgIkdTdHJlYW1lckNvbW1vbi5oIgogI2luY2x1ZGUgIk1lZGlhU291
cmNlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIk1lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5oIgogI2lu
Y2x1ZGUgIldlYktpdE1lZGlhU291cmNlR1N0cmVhbWVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1BsYXliYWNrUGlwZWxpbmUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9QbGF5
YmFja1BpcGVsaW5lLmNwcAppbmRleCA1YjFlMzk4YjM5NGU5ODI0MTMyNzI0OTc3YWVmOTJmMDY0
ZWMwMTY1Li5kZDY1ZDBlYTRlMjEwN2M3NWVmNWZlNmY3NmU0YzY0NWMyYjY5Mzg0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1BsYXli
YWNrUGlwZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvUGxheWJhY2tQaXBlbGluZS5jcHAKQEAgLTI1LDkgKzI1LDggQEAKICNpZiBF
TkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFNRVIpICYmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAK
ICNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5oIgorI2luY2x1ZGUgIkdTdHJl
YW1lckNvbW1vbi5oIgogI2luY2x1ZGUgIk1lZGlhU2FtcGxlR1N0cmVhbWVyLmgiCi0jaW5jbHVk
ZSAiR1N0cmVhbWVyVXRpbGl0aWVzLmgiCi0jaW5jbHVkZSAiR1VuaXF1ZVB0ckdTdHJlYW1lci5o
IgogI2luY2x1ZGUgIk1lZGlhU2FtcGxlLmgiCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lci5oIgogI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNw
cAppbmRleCA2OWEyNjQ1OGU2ZmIzZmZiZDExNTY3MWNmYmQyNWFhYjU0OTU5MzUyLi5kNDA5MjQx
NjNlYTNlNGJlZGFkMTllYTc1MzZkOWQ4ODZhY2MwY2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTM4LDcgKzM4LDcg
QEAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoR1NUUkVBTUVSKQogCiAjaW5jbHVk
ZSAiQ29udGVudFR5cGUuaCIKLSNpbmNsdWRlICJHU3RyZWFtZXJVdGlsaXRpZXMuaCIKKyNpbmNs
dWRlICJHU3RyZWFtZXJDb21tb24uaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJNU0UuaCIKICNpbmNsdWRlICJNZWRpYVNhbXBsZS5oIgogI2luY2x1ZGUgIk1lZGlhU291
cmNlQ2xpZW50R1N0cmVhbWVyTVNFLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291cmNlR1N0cmVhbWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvV2ViS2l0
TWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDJhNmZkOWFjNTMzYzEwODYxMzk3OWIxYzlj
MGQwN2MzNWQ3MDY3OTAuLmQzMmZiYTNlY2RlMGViMTljNzZhY2Q5ZmVkNWU1Y2RkNGZkZDkyNmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9t
c2UvV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIu
Y3BwCkBAIC0yOSw3ICsyOSw3IEBACiAjaWYgRU5BQkxFKFZJREVPKSAmJiBFTkFCTEUoTUVESUFf
U09VUkNFKSAmJiBVU0UoR1NUUkVBTUVSKQogCiAjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGVH
U3RyZWFtZXIuaCIKLSNpbmNsdWRlICJHU3RyZWFtZXJVdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJH
U3RyZWFtZXJDb21tb24uaCIKICNpbmNsdWRlICJNZWRpYURlc2NyaXB0aW9uLmgiCiAjaW5jbHVk
ZSAiTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmgiCiAjaW5jbHVkZSAiTWVkaWFTYW1w
bGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9tc2UvV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIu
aAppbmRleCA3OTA4NjA1NGMzNzY5NzJmOWJmMmFkZWM3MmQwYWVhMGNlYjY3OTQ5Li42YzQ1ZWI2
ODczZWNiZDk1MmU1NzA5NzlmZjljMTRmOTdlZTg4M2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291cmNlR1N0
cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNp
ZiBFTkFCTEUoVklERU8pICYmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIFVTRShHU1RSRUFNRVIp
CiAKLSNpbmNsdWRlICJHUmVmUHRyR1N0cmVhbWVyLmgiCisjaW5jbHVkZSAiR1N0cmVhbWVyQ29t
bW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVNvdXJjZS5o
IgogI2luY2x1ZGUgIk1lZGlhU291cmNlUHJpdmF0ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NQb29sR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2d0ay9XZWJQcm9jZXNzUG9vbEd0ay5jcHAKaW5kZXggMDhhZDNlZjFlM2I0Y2Y1
MTYyMDBiNzEwNWQ5Mzk5NTY4NzAxNzc3YS4uZTYyYzgyYWIwMTk4NjAwMjU4ZDViNzk5OTJiMTEw
YjYyZDFhYzZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBy
b2Nlc3NQb29sR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUHJv
Y2Vzc1Bvb2xHdGsuY3BwCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01l
c3NhZ2VzLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUmVtb3RlSW5zcGVjdG9yU2VydmVy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9H
U3RyZWFtZXJVdGlsaXRpZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dTdHJlYW1lckNvbW1vbi5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1NjaGVtZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NQb29sV1BFLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dwZS9XZWJQcm9jZXNzUG9vbFdQRS5jcHAKaW5k
ZXggOWQ5OTc0ZjZhY2M5NzNmMjE2MzgzODUzZGEzNGQ1YmU0ZDc5NTdhMS4uMmM5OWU2MzE0NzNh
ZGNhODAxMWY2OTA5ZDNhOWRhMjkyODk1NDBlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NQb29sV1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy93cGUvV2ViUHJvY2Vzc1Bvb2xXUEUuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAjaW5j
bHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUmVt
b3RlSW5zcGVjdG9yU2VydmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9HU3RyZWFtZXJVdGlsaXRpZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0dTdHJlYW1lckNvbW1vbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NjaGVtZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8Y3N0ZGxpYj4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3Vw
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcApp
bmRleCBhY2FmODM2ZGM5Y2RhNTAwNjMyNWFiMDFjM2I1NGIyMjcxYTI0NDE4Li4wOTM5MTllYjE3
MTc2YzIzNGM2MTg1YjY0YThmYjY4ODY3ZDRlZWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5j
bHVkZSAiV2ViUHJvY2Vzcy5oIgogCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvR1N0cmVhbWVyVXRpbGl0aWVzLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9HU3RyZWFtZXJDb21tb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lbW9yeUNh
Y2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NvdXBOZXR3b3JrU2Vzc2lvbi5oPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>