<?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>209676</bug_id>
          
          <creation_ts>2020-03-27 12:21:50 -0700</creation_ts>
          <short_desc>[Cocoa] Sleep disabling should be performed in the UI process</short_desc>
          <delta_ts>2020-04-03 12:33:57 -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>WebKit Misc.</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>
          
          <blocked>209981</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Per Arne Vollan">pvollan</reporter>
          <assigned_to name="Per Arne Vollan">pvollan</assigned_to>
          <cc>annulen</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1634950</commentid>
    <comment_count>0</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-27 12:21:50 -0700</bug_when>
    <thetext>Since sleep disabling is causing communication with the power management service, it should be performed in the UI process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634991</commentid>
    <comment_count>1</comment_count>
      <attachid>394756</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-27 14:03:22 -0700</bug_when>
    <thetext>Created attachment 394756
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635001</commentid>
    <comment_count>2</comment_count>
      <attachid>394758</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-27 14:37:18 -0700</bug_when>
    <thetext>Created attachment 394758
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635011</commentid>
    <comment_count>3</comment_count>
      <attachid>394762</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-27 14:56:34 -0700</bug_when>
    <thetext>Created attachment 394762
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635016</commentid>
    <comment_count>4</comment_count>
      <attachid>394762</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-03-27 15:09:39 -0700</bug_when>
    <thetext>Comment on attachment 394762
Patch

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

Started reviewing. Didn’t finish yet, but some initial comments.

&gt; Source/WebCore/platform/SleepDisabler.cpp:39
&gt; +void setSleepDisablerClient(std::unique_ptr&lt;SleepDisablerClient&gt;&amp;&amp; client)

It seems puzzling that the function body is in SleepDisabler.cpp but the function is declared in SleepDisablerClient.h. That’s not great long term for future code maintainability even though it might be handy for sharing a file-local sleepDisablerClient() function.

&gt; Source/WebCore/platform/SleepDisabler.cpp:42
&gt; +    auto&amp; c = sleepDisablerClient();
&gt; +    c = WTFMove(client);

Why the local variable? Why name it &quot;c&quot;?

    sleepDisablerClient() = WTFMove(client);

&gt; Source/WebCore/platform/SleepDisabler.cpp:54
&gt; +        sleepDisablerClient()-&gt;didCreateSleepDisabler(reinterpret_cast&lt;uintptr_t&gt;(this), reason, type == Type::Display);

This is not a good pattern. We do not want to expose pointers across process boundaries. Instead we should use the normal ObjectIdentifier pattern we use elsewhere.

&gt; Source/WebCore/platform/SleepDisabler.h:32
&gt; +class SleepDisabler : public PAL::SleepDisabler {

I don’t understand why this class both derives from PAL::SleepDisabler, and also stores a pointer to a PAL::SleepDisabler. Doesn’t make logical sense to me.

&gt; Source/WebCore/platform/SleepDisabler.h:34
&gt; +    WEBCORE_EXPORT static std::unique_ptr&lt;SleepDisabler&gt; create(const char*, PAL::SleepDisabler::Type);

This design pattern is not needed for unique_ptr. Instead we should provide a public constructor; the caller should use makeUnique&lt;SleepDisabler&gt;.

This pattern is for classes where the constructor can’t do all the necessary work, such as classes that need an adoptRef to safely make a Ref&lt;&gt; or have some work that has to be done with function calls after the constructor is called.

&gt; Source/WebCore/platform/SleepDisablerClient.h:37
&gt; +    virtual ~SleepDisablerClient() { };
&gt; +    virtual void didCreateSleepDisabler(uintptr_t, const String&amp;, bool) { };
&gt; +    virtual void didDestroySleepDisabler(uintptr_t) { };

No semicolons needed.

Could didCreate/Destroy be pure virtual functions instead of function sixth empty bodies?

Need to document what the arguments are with argument names.

&gt; Source/WebCore/testing/Internals.h:968
&gt; +    uint64_t createSleepDisabler(const String&amp; reason, bool display);
&gt; +    bool destroySleepDisabler(uint64_t identifier);

Seems like a really peculiar pattern to expose pointers through the internals object. This seems to be the first time we have ever done this. Why not just generate incrementing identifiers instead of using the pointer? For one thing, they could then just be 32-bit integers instead of 64-bit ones.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635183</commentid>
    <comment_count>5</comment_count>
      <attachid>394817</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-28 08:30:23 -0700</bug_when>
    <thetext>Created attachment 394817
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635184</commentid>
    <comment_count>6</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-28 08:31:16 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #4)
&gt; Comment on attachment 394762 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=394762&amp;action=review
&gt; 
&gt; Started reviewing. Didn’t finish yet, but some initial comments.
&gt; 
&gt; &gt; Source/WebCore/platform/SleepDisabler.cpp:39
&gt; &gt; +void setSleepDisablerClient(std::unique_ptr&lt;SleepDisablerClient&gt;&amp;&amp; client)
&gt; 
&gt; It seems puzzling that the function body is in SleepDisabler.cpp but the
&gt; function is declared in SleepDisablerClient.h. That’s not great long term
&gt; for future code maintainability even though it might be handy for sharing a
&gt; file-local sleepDisablerClient() function.
&gt; 
&gt; &gt; Source/WebCore/platform/SleepDisabler.cpp:42
&gt; &gt; +    auto&amp; c = sleepDisablerClient();
&gt; &gt; +    c = WTFMove(client);
&gt; 
&gt; Why the local variable? Why name it &quot;c&quot;?
&gt; 
&gt;     sleepDisablerClient() = WTFMove(client);
&gt; 
&gt; &gt; Source/WebCore/platform/SleepDisabler.cpp:54
&gt; &gt; +        sleepDisablerClient()-&gt;didCreateSleepDisabler(reinterpret_cast&lt;uintptr_t&gt;(this), reason, type == Type::Display);
&gt; 
&gt; This is not a good pattern. We do not want to expose pointers across process
&gt; boundaries. Instead we should use the normal ObjectIdentifier pattern we use
&gt; elsewhere.
&gt; 
&gt; &gt; Source/WebCore/platform/SleepDisabler.h:32
&gt; &gt; +class SleepDisabler : public PAL::SleepDisabler {
&gt; 
&gt; I don’t understand why this class both derives from PAL::SleepDisabler, and
&gt; also stores a pointer to a PAL::SleepDisabler. Doesn’t make logical sense to
&gt; me.
&gt; 
&gt; &gt; Source/WebCore/platform/SleepDisabler.h:34
&gt; &gt; +    WEBCORE_EXPORT static std::unique_ptr&lt;SleepDisabler&gt; create(const char*, PAL::SleepDisabler::Type);
&gt; 
&gt; This design pattern is not needed for unique_ptr. Instead we should provide
&gt; a public constructor; the caller should use makeUnique&lt;SleepDisabler&gt;.
&gt; 
&gt; This pattern is for classes where the constructor can’t do all the necessary
&gt; work, such as classes that need an adoptRef to safely make a Ref&lt;&gt; or have
&gt; some work that has to be done with function calls after the constructor is
&gt; called.
&gt; 
&gt; &gt; Source/WebCore/platform/SleepDisablerClient.h:37
&gt; &gt; +    virtual ~SleepDisablerClient() { };
&gt; &gt; +    virtual void didCreateSleepDisabler(uintptr_t, const String&amp;, bool) { };
&gt; &gt; +    virtual void didDestroySleepDisabler(uintptr_t) { };
&gt; 
&gt; No semicolons needed.
&gt; 
&gt; Could didCreate/Destroy be pure virtual functions instead of function sixth
&gt; empty bodies?
&gt; 
&gt; Need to document what the arguments are with argument names.
&gt; 
&gt; &gt; Source/WebCore/testing/Internals.h:968
&gt; &gt; +    uint64_t createSleepDisabler(const String&amp; reason, bool display);
&gt; &gt; +    bool destroySleepDisabler(uint64_t identifier);
&gt; 
&gt; Seems like a really peculiar pattern to expose pointers through the
&gt; internals object. This seems to be the first time we have ever done this.
&gt; Why not just generate incrementing identifiers instead of using the pointer?
&gt; For one thing, they could then just be 32-bit integers instead of 64-bit
&gt; ones.

Thanks for reviewing! The latest patch should address all of the issues above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635187</commentid>
    <comment_count>7</comment_count>
      <attachid>394818</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-28 09:00:11 -0700</bug_when>
    <thetext>Created attachment 394818
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635195</commentid>
    <comment_count>8</comment_count>
      <attachid>394822</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-28 09:29:13 -0700</bug_when>
    <thetext>Created attachment 394822
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635198</commentid>
    <comment_count>9</comment_count>
      <attachid>394823</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-28 09:38:40 -0700</bug_when>
    <thetext>Created attachment 394823
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635201</commentid>
    <comment_count>10</comment_count>
      <attachid>394824</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-28 09:48:53 -0700</bug_when>
    <thetext>Created attachment 394824
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635252</commentid>
    <comment_count>11</comment_count>
      <attachid>394824</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-03-28 16:49:09 -0700</bug_when>
    <thetext>Comment on attachment 394824
Patch

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

Looks good

&gt; Source/WebCore/platform/SleepDisablerClient.h:32
&gt; +#include &quot;SleepDisablerIdentifier.h&quot;
&gt; +
&gt; +#include &lt;pal/system/SleepDisabler.h&gt;
&gt; +#include &lt;wtf/ObjectIdentifier.h&gt;
&gt; +#include &lt;wtf/text/WTFString.h&gt;

Seems like this is too many includes. &lt;wtf/Forward.h&gt; should be all we need for a const String&amp; argument. I don’t see any reason we’d need the ObjectIdentifer.h or SleepDisabler.h include. Might need to include &lt;memory&gt; so we can use std::unique_ptr.

Also, headers should have one paragraph of includes, not two.

&gt; Source/WebCore/testing/Internals.cpp:5570
&gt; +    static unsigned identifier = 0;

This is a pretty good name. I also like the name &quot;lastUsedIdentifier&quot; for globals like this one.

&gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:1797
&gt; +    return m_sleepDisablers.size() &gt; 0;

This should use !isEmpty() instead of size() &gt; 0.

&gt; Source/WebKit/UIProcess/WebProcessProxy.h:382
&gt; +    bool hasSleepDisabler();

This should be const.

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm:225
&gt; +    return _page ? _page-&gt;process().hasSleepDisabler() : false;

This can use &amp;&amp;, which I think is clearer than ? : false.

&gt; Source/WebKit/WebProcess/GPU/media/RemoteLegacyCDM.cpp:33
&gt; +#include &quot;GPUProcessConnection.h&quot;
&gt; +
&gt;  #include &quot;RemoteLegacyCDMFactory.h&quot;

New include should not be in a separate paragraph.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635253</commentid>
    <comment_count>12</comment_count>
      <attachid>394824</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-03-28 16:50:27 -0700</bug_when>
    <thetext>Comment on attachment 394824
Patch

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

&gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:1788
&gt; +void WebProcessProxy::didCreateSleepDisabler(SleepDisablerIdentifier identifier, const String&amp; reason, bool display)
&gt; +{
&gt; +    auto sleepDisabler = makeUnique&lt;WebCore::SleepDisabler&gt;(reason.utf8().data(), display ? PAL::SleepDisabler::Type::Display : PAL::SleepDisabler::Type::System);
&gt; +    m_sleepDisablers.add(identifier, WTFMove(sleepDisabler));
&gt; +}

Oh, this needs a MESSAGE_CHECK that the identifier is a good one, I think.

&gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:1793
&gt; +void WebProcessProxy::didDestroySleepDisabler(SleepDisablerIdentifier identifier)
&gt; +{
&gt; +    m_sleepDisablers.remove(identifier);
&gt; +}

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635489</commentid>
    <comment_count>13</comment_count>
      <attachid>394914</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-30 07:15:41 -0700</bug_when>
    <thetext>Created attachment 394914
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635492</commentid>
    <comment_count>14</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-30 07:16:53 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #12)
&gt; Comment on attachment 394824 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=394824&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:1788
&gt; &gt; +void WebProcessProxy::didCreateSleepDisabler(SleepDisablerIdentifier identifier, const String&amp; reason, bool display)
&gt; &gt; +{
&gt; &gt; +    auto sleepDisabler = makeUnique&lt;WebCore::SleepDisabler&gt;(reason.utf8().data(), display ? PAL::SleepDisabler::Type::Display : PAL::SleepDisabler::Type::System);
&gt; &gt; +    m_sleepDisablers.add(identifier, WTFMove(sleepDisabler));
&gt; &gt; +}
&gt; 
&gt; Oh, this needs a MESSAGE_CHECK that the identifier is a good one, I think.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:1793
&gt; &gt; +void WebProcessProxy::didDestroySleepDisabler(SleepDisablerIdentifier identifier)
&gt; &gt; +{
&gt; &gt; +    m_sleepDisablers.remove(identifier);
&gt; &gt; +}
&gt; 
&gt; Ditto.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635493</commentid>
    <comment_count>15</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-30 07:18:12 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #11)
&gt; Comment on attachment 394824 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=394824&amp;action=review
&gt; 
&gt; Looks good
&gt; 
&gt; &gt; Source/WebCore/platform/SleepDisablerClient.h:32
&gt; &gt; +#include &quot;SleepDisablerIdentifier.h&quot;
&gt; &gt; +
&gt; &gt; +#include &lt;pal/system/SleepDisabler.h&gt;
&gt; &gt; +#include &lt;wtf/ObjectIdentifier.h&gt;
&gt; &gt; +#include &lt;wtf/text/WTFString.h&gt;
&gt; 
&gt; Seems like this is too many includes. &lt;wtf/Forward.h&gt; should be all we need
&gt; for a const String&amp; argument. I don’t see any reason we’d need the
&gt; ObjectIdentifer.h or SleepDisabler.h include. Might need to include &lt;memory&gt;
&gt; so we can use std::unique_ptr.
&gt; 
&gt; Also, headers should have one paragraph of includes, not two.
&gt; 

Fixed.

&gt; &gt; Source/WebCore/testing/Internals.cpp:5570
&gt; &gt; +    static unsigned identifier = 0;
&gt; 
&gt; This is a pretty good name. I also like the name &quot;lastUsedIdentifier&quot; for
&gt; globals like this one.
&gt; 

Fixed.

&gt; &gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:1797
&gt; &gt; +    return m_sleepDisablers.size() &gt; 0;
&gt; 
&gt; This should use !isEmpty() instead of size() &gt; 0.
&gt; 

Done.

&gt; &gt; Source/WebKit/UIProcess/WebProcessProxy.h:382
&gt; &gt; +    bool hasSleepDisabler();
&gt; 
&gt; This should be const.
&gt; 

Fixed.

&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm:225
&gt; &gt; +    return _page ? _page-&gt;process().hasSleepDisabler() : false;
&gt; 
&gt; This can use &amp;&amp;, which I think is clearer than ? : false.
&gt; 

Fixed.

&gt; &gt; Source/WebKit/WebProcess/GPU/media/RemoteLegacyCDM.cpp:33
&gt; &gt; +#include &quot;GPUProcessConnection.h&quot;
&gt; &gt; +
&gt; &gt;  #include &quot;RemoteLegacyCDMFactory.h&quot;
&gt; 
&gt; New include should not be in a separate paragraph.

Done.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635502</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-30 07:48:44 -0700</bug_when>
    <thetext>Committed r259200: &lt;https://trac.webkit.org/changeset/259200&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 394914.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635503</commentid>
    <comment_count>17</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-30 07:49:11 -0700</bug_when>
    <thetext>&lt;rdar://problem/61055348&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635575</commentid>
    <comment_count>18</comment_count>
      <attachid>394914</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-03-30 10:29:30 -0700</bug_when>
    <thetext>Comment on attachment 394914
Patch

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

&gt; Source/WebCore/platform/SleepDisabler.h:31
&gt; +#include &lt;pal/system/SleepDisabler.h&gt;
&gt; +#include &lt;wtf/ObjectIdentifier.h&gt;

Still don’t think these includes are needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635617</commentid>
    <comment_count>19</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-30 11:35:20 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635618</commentid>
    <comment_count>20</comment_count>
      <attachid>394938</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-30 11:35:22 -0700</bug_when>
    <thetext>Created attachment 394938
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635621</commentid>
    <comment_count>21</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-30 11:40:50 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635622</commentid>
    <comment_count>22</comment_count>
      <attachid>394939</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-30 11:40:52 -0700</bug_when>
    <thetext>Created attachment 394939
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635625</commentid>
    <comment_count>23</comment_count>
      <attachid>394940</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-30 11:46:29 -0700</bug_when>
    <thetext>Created attachment 394940
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635641</commentid>
    <comment_count>24</comment_count>
      <attachid>394946</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-30 12:18:19 -0700</bug_when>
    <thetext>Created attachment 394946
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635655</commentid>
    <comment_count>25</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-30 12:39:35 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #18)
&gt; Comment on attachment 394914 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=394914&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/SleepDisabler.h:31
&gt; &gt; +#include &lt;pal/system/SleepDisabler.h&gt;
&gt; &gt; +#include &lt;wtf/ObjectIdentifier.h&gt;
&gt; 
&gt; Still don’t think these includes are needed.

Thanks! Removed &lt;wtf/ObjectIdentifier.h&gt;, but kept &lt;pal/system/SleepDisabler.h&gt;, since this was needed for the type argument (PAL::SleepDisabler::Type) in the WebCore::SleepDisabler constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635659</commentid>
    <comment_count>26</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-30 12:58:23 -0700</bug_when>
    <thetext>Committed r259219: &lt;https://trac.webkit.org/changeset/259219/webkit&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394756</attachid>
            <date>2020-03-27 14:03:22 -0700</date>
            <delta_ts>2020-03-27 14:37:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209676-20200327140320.patch</filename>
            <type>text/plain</type>
            <size>40464</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTEzNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDIwLTAzLTI3ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFNsZWVwIGRp
c2FibGluZyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW5jZSBzbGVlcCBkaXNhYmxp
bmcgaXMgY2F1c2luZyBjb21tdW5pY2F0aW9uIHdpdGggdGhlIHBvd2VyIG1hbmFnZW1lbnQgc2Vy
dmljZSwgaXQgc2hvdWxkIGJlIHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAg
VGhpcyBwYXRjaCBmaXhlcyB0aGlzIGJ5IGNyZWF0aW5nIGEgc2xlZXAgZGlzYWJsZXIgY2xpZW50
LCB3aGljaCB3aWxsIG5vdGlmeSB0aGUgVUkgcHJvY2VzcyB3aGVuIGEgc2xlZXAgZGlzYWJsZXIg
aXMgYmVpbmcKKyAgICAgICAgY3JlYXRlZCBhbmQgZGVzdHJveWVkLiBJbiByZXNwb25zZSB0byB0
aGVzZSBtZXNzYWdlcywgdGhlIFVJIHByb2Nlc3Mgd2lsbCBwZXJmb3JtIHRoZSBhY3R1YWwgc2xl
ZXAgZGlzYWJsaW5nIGFuZCBlbmFibGluZy4KKyAgICAgICAgQSBuZXcgc2xlZXAgZGlzYWJsZXIg
Y2xhc3MgaXMgY3JlYXRlZCB3aGljaCB3cmFwcyB0aGUgUEFMIHNsZWVwIGRpc2FibGVyLCBhbmQg
bm90aWZpZXMgdGhlIHNsZWVwIGRpc2FibGVyIGNsaWVudCB3aGVuIHNldC4KKyAgICAgICAgSWYg
dGhlIHNsZWVwIGRpc2FibGVyIGNsaWVudCBpcyBzZXQsIGEgUEFMIHNsZWVwIGRpc2FibGVyIGlu
c3RhbmNlIHdpbGwgbm90IGJlIGNyZWF0ZWQgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcywgc2lu
Y2UgdGhpcworICAgICAgICB3aWxsIHRoZW4gaGFwcGVuIGluIHRoZSBVSSBwcm9jZXNzLgorCisg
ICAgICAgIEFQSSB0ZXN0OiBXZWJLaXQuU2xlZXBEaXNhYmxlcgorCisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVTbGVl
cERpc2FibGluZyk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU2xlZXBEaXNhYmxlci5oOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TbGVlcERpc2FibGVyLm1tOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OnNsZWVwRGlzYWJsZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0U2xlZXBEaXNhYmxlckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTbGVlcERpc2Fi
bGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2xlZXBEaXNhYmxlcjo6U2xlZXBEaXNh
Ymxlcik6CisgICAgICAgIChXZWJDb3JlOjpTbGVlcERpc2FibGVyOjp+U2xlZXBEaXNhYmxlcik6
CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU2xlZXBEaXNhYmxlckNsaWVudC5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJDbGllbnQ6On5TbGVlcERpc2FibGVyQ2xp
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJDbGllbnQ6OmRpZENyZWF0ZVNs
ZWVwRGlzYWJsZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2xlZXBEaXNhYmxlckNsaWVudDo6ZGlk
RGVzdHJveVNsZWVwRGlzYWJsZXIpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6Y3JlYXRlU2xlZXBEaXNhYmxlcik6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmRlc3Ryb3lTbGVlcERpc2FibGVyKToKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsczo6Y3JlYXRlU2xlZXBEaXNhYmxlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6
OmRlc3Ryb3lTbGVlcERpc2FibGVyKToKKwogMjAyMC0wMy0yNyAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtTdHJlc3NHQ10gQVNTRVJUSU9OIEZBSUxFRDogbV93
cmFwcGVyIHVuZGVyIFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXI6OmRpc3BhdGNoRXJyb3IKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzk4Niw2ICszOTg2LDkgQEAKIAkJQzEw
NURBNjQwRjNBQTZCODAwMURENDRGIC8qIFRleHRFbmNvZGluZ0RldGVjdG9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTA1REE2MzBGM0FBNkI4MDAx
REQ0NEYgLyogVGV4dEVuY29kaW5nRGV0ZWN0b3IuaCAqLzsgfTsKIAkJQzExQTlFQ0UyMTQwM0E1
QzAwQ0ZCMjBBIC8qIFN3aXRjaGluZ0dQVUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzExQTlFQ0QyMTQwM0E1QzAwQ0ZCMjBBIC8qIFN3aXRj
aGluZ0dQVUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUMxNDkzODA3MjIzNDU1MUEwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNDkz
ODA1MjIzNDI3MTkwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDMTQ5RDU0OTI0MkU4NUVG
MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMxNDlENTQ4MjQyRTg1QTUwMDNFQkIxMiAvKiBTbGVlcERpc2Fi
bGVyLm1tICovOyB9OworCQlDMTQ5RDU0QTI0MkU4NjUxMDAzRUJCMTIgLyogU2xlZXBEaXNhYmxl
ckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzE0OUQ1NDcyNDJFODVBNDAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXJDbGllbnQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDMTQ5RDU0RDI0MkU5
MjkyMDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzE0OUQ1NDUyNDJFODVBNDAwM0VCQjEyIC8qIFNsZWVwRGlz
YWJsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlDMTY5MkREMjIzRDIzQUJEMDA2RTg4RjcgLyogU3lzdGVtQmF0dGVyeS5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNjkyREQxMjNEMjNBQkQwMDZF
ODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5Lm1tICovOyB9OwogCQlDMTY5MkRENTIzRDIzRTA4MDA2RTg4
RjcgLyogU3lzdGVtQmF0dGVyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzE2OTJERDQyM0QyM0FFMDAwNkU4OEY3IC8qIFN5c3RlbUJhdHRlcnkuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMUUxRDIz
NjIwM0RGMTU0MDA1ODQ2NjUgLyogU2NyZWVuUHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzFFMUQyMzUyMDNERjE1NDAwNTg0NjY1IC8q
IFNjcmVlblByb3BlcnRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtMTM1ODIsNiArMTM1ODUsOSBAQAogCQlDMTFBOUVDRDIxNDAzQTVDMDBD
RkIyMEEgLyogU3dpdGNoaW5nR1BVQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN3aXRjaGluZ0dQ
VUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTFBOUVEMjIxNDA1NzhC
MDBDRkIyMEEgLyogU3dpdGNoaW5nR1BVQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN3
aXRjaGluZ0dQVUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNDkz
ODA1MjIzNDI3MTkwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU3BlZWNoU3ludGhlc2lzQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUMxNDlENTQ1MjQyRTg1QTQwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNsZWVwRGlzYWJsZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQzE0OUQ1NDcyNDJFODVBNDAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXJD
bGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2xlZXBEaXNhYmxlckNs
aWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMTQ5RDU0ODI0MkU4NUE1MDAz
RUJCMTIgLyogU2xlZXBEaXNhYmxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFNsZWVwRGlzYWJsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUMxNjkyREQxMjNEMjNBQkQwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gU3lzdGVtQmF0dGVyeS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQzE2OTJERDQyM0QyM0FFMDAwNkU4OEY3IC8qIFN5c3RlbUJhdHRlcnkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU3lzdGVtQmF0dGVyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMUUx
RDIzNTIwM0RGMTU0MDA1ODQ2NjUgLyogU2NyZWVuUHJvcGVydGllcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTY3JlZW5Qcm9wZXJ0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzI4
Niw2ICsyMzI5Miw5IEBACiAJCQkJMEU3MDU4RjMxQkM1Q0NENzAwNDVBNTA3IC8qIFNlYXJjaFBv
cHVwTWVudUNvY29hLmggKi8sCiAJCQkJMEU3MDU4RUQxQkM1QkMxOTAwNDVBNTA3IC8qIFNlYXJj
aFBvcHVwTWVudUNvY29hLm1tICovLAogCQkJCTFBNEE5NTUxMEI0RURDRkYwMDJEOEMzQyAvKiBT
aGFyZWRCdWZmZXJDb2NvYS5tbSAqLywKKwkJCQlDMTQ5RDU0NTI0MkU4NUE0MDAzRUJCMTIgLyog
U2xlZXBEaXNhYmxlci5oICovLAorCQkJCUMxNDlENTQ4MjQyRTg1QTUwMDNFQkIxMiAvKiBTbGVl
cERpc2FibGVyLm1tICovLAorCQkJCUMxNDlENTQ3MjQyRTg1QTQwMDNFQkIxMiAvKiBTbGVlcERp
c2FibGVyQ2xpZW50LmggKi8sCiAJCQkJQzE2OTJERDQyM0QyM0FFMDAwNkU4OEY3IC8qIFN5c3Rl
bUJhdHRlcnkuaCAqLywKIAkJCQlDMTY5MkREMTIzRDIzQUJEMDA2RTg4RjcgLyogU3lzdGVtQmF0
dGVyeS5tbSAqLywKIAkJCQk1RDU5NzVCMTE5NjM1RjExMDBEMDA4NzggLyogU3lzdGVtVmVyc2lv
bi5oICovLApAQCAtMzI3MTYsNiArMzI3MjUsOCBAQAogCQkJCTk0NDRDQkQ2MUQ4NjBDOEIwMDcz
QTA3NCAvKiBTaXplc0F0dHJpYnV0ZVBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTQ0NENC
RDQxRDg2MEM4QjAwNzNBMDc0IC8qIFNpemVzQ2FsY1BhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDlFOTExQ0QwRUY4NkQ0NzAwOUQwQ0FGIC8qIFNrZXdUcmFuc2Zvcm1PcGVyYXRpb24uaCBp
biBIZWFkZXJzICovLAorCQkJCUMxNDlENTREMjQyRTkyOTIwMDNFQkIxMiAvKiBTbGVlcERpc2Fi
bGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlDMTQ5RDU0QTI0MkU4NjUxMDAzRUJCMTIgLyogU2xl
ZXBEaXNhYmxlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE1MEY5RjExMkI2RTBFNzAw
MDhDODYwIC8qIFNsaWRlclRodW1iRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUI1MzJF
QTQxQkE5Mjg1NzAwMzhBODI3IC8qIFNsb3RBc3NpZ25tZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0QjZGQTZGNDBDMzlFNDhDMDAwODcwMTEgLyogU21hcnRSZXBsYWNlLmggaW4gSGVhZGVycyAq
LywKQEAgLTM0MDk3LDYgKzM0MTA4LDcgQEAKIAkJCQk0M0I4NUVENDE4Q0JFQzUyMDBFMzFBRjQg
LyogU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTI2QUEwRjlFMThEMkExOEIwMDQxOTM4MSAvKiBTZWxlY3RvclBzZXVk
b0VsZW1lbnRUeXBlTWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDRDU4REZEMUY5NTY1QTgw
MDExMjc5MSAvKiBTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMTQ5RDU0OTI0MkU4
NUVGMDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUzOEYx
MEE4MUY5MDIyQTQwMDUxMDJDRSAvKiBTb2Z0TGlua0xpYnhzbHQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQ0RDOEI1QUExODA0N0ZGMTAwMTZFNjg1IC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgzM0M3Q0EwQTJDRjA2QjAwRDU3NjY0IC8qIFNW
R05hbWVzLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5Miw3IEBACiAj
aW5jbHVkZSAiU2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1
ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTbGVlcERpc2FibGVyLmgiCiAjaW5jbHVkZSAi
VGltZVJhbmdlcy5oIgogI2luY2x1ZGUgIlVzZXJDb250ZW50Q29udHJvbGxlci5oIgogI2luY2x1
ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCkBAIC05OSw3ICsxMDAsNiBAQAogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL1VpbnQ4QXJyYXkuaD4KICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVk
ZSA8cGFsL1Nlc3Npb25JRC5oPgotI2luY2x1ZGUgPHBhbC9zeXN0ZW0vU2xlZXBEaXNhYmxlci5o
PgogI2luY2x1ZGUgPHd0Zi9BbGdvcml0aG1zLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lu
bGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KQEAgLTY5NDYsNyArNjk0Niw3IEBA
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlU2xlZXBEaXNhYmwKICAgICBlbHNlIGlmIChz
aG91bGREaXNhYmxlU2xlZXAgIT0gU2xlZXBUeXBlOjpOb25lKSB7CiAgICAgICAgIGF1dG8gdHlw
ZSA9IHNob3VsZERpc2FibGVTbGVlcCA9PSBTbGVlcFR5cGU6OkRpc3BsYXkgPyBQQUw6OlNsZWVw
RGlzYWJsZXI6OlR5cGU6OkRpc3BsYXkgOiBQQUw6OlNsZWVwRGlzYWJsZXI6OlR5cGU6OlN5c3Rl
bTsKICAgICAgICAgaWYgKCFtX3NsZWVwRGlzYWJsZXIgfHwgbV9zbGVlcERpc2FibGVyLT50eXBl
KCkgIT0gdHlwZSkKLSAgICAgICAgICAgIG1fc2xlZXBEaXNhYmxlciA9IFBBTDo6U2xlZXBEaXNh
Ymxlcjo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViQ29yZTogSFRNTE1lZGlhRWxlbWVudCBwbGF5YmFj
ayIsIHR5cGUpOworICAgICAgICAgICAgbV9zbGVlcERpc2FibGVyID0gU2xlZXBEaXNhYmxlcjo6
Y3JlYXRlKCJjb20uYXBwbGUuV2ViQ29yZTogSFRNTE1lZGlhRWxlbWVudCBwbGF5YmFjayIsIHR5
cGUpOwogICAgIH0KIAogICAgIGlmIChtX3BsYXllcikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1NsZWVwRGlzYWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9TbGVlcERpc2FibGVyLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2xlZXBEaXNhYmxlci5oCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JN
KENPQ09BKQorCisjaW5jbHVkZSA8cGFsL3N5c3RlbS9TbGVlcERpc2FibGVyLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2xlZXBEaXNhYmxlciA6IHB1YmxpYyBQQUw6OlNsZWVw
RGlzYWJsZXIgeworcHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8U2xlZXBEaXNhYmxlcj4gY3JlYXRlKGNvbnN0IGNoYXIqLCBQQUw6OlNsZWVwRGlzYWJs
ZXI6OlR5cGUpOworICAgIHZpcnR1YWwgflNsZWVwRGlzYWJsZXIoKTsKKworcHJpdmF0ZToKKyAg
ICBTbGVlcERpc2FibGVyKGNvbnN0IGNoYXIqLCBQQUw6OlNsZWVwRGlzYWJsZXI6OlR5cGUpOwor
CisgICAgc3RkOjp1bmlxdWVfcHRyPFBBTDo6U2xlZXBEaXNhYmxlcj4gbV9zbGVlcERpc2FibGVy
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09D
T0EpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TbGVlcERpc2FibGVyLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1NsZWVwRGlzYWJs
ZXIubW0JKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2xl
ZXBEaXNhYmxlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNsZWVwRGlzYWJsZXIuaCIKKworI2lu
Y2x1ZGUgIlNsZWVwRGlzYWJsZXJDbGllbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNsZWVwRGlzYWJsZXJDbGllbnQ+JiBzbGVlcERpc2FibGVy
Q2xpZW50KCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjp1bmlxdWVfcHRyPFNs
ZWVwRGlzYWJsZXJDbGllbnQ+PiBjbGllbnQ7CisgICAgcmV0dXJuIGNsaWVudC5nZXQoKTsKK30K
Kwordm9pZCBzZXRTbGVlcERpc2FibGVyQ2xpZW50KHN0ZDo6dW5pcXVlX3B0cjxTbGVlcERpc2Fi
bGVyQ2xpZW50PiYmIGNsaWVudCkKK3sKKyAgICBhdXRvJiBjID0gc2xlZXBEaXNhYmxlckNsaWVu
dCgpOworICAgIGMgPSBXVEZNb3ZlKGNsaWVudCk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxTbGVl
cERpc2FibGVyPiBTbGVlcERpc2FibGVyOjpjcmVhdGUoY29uc3QgY2hhciogcmVhc29uLCBUeXBl
IHR5cGUpCit7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxTbGVlcERpc2FibGVyPihuZXcg
U2xlZXBEaXNhYmxlcihyZWFzb24sIHR5cGUpKTsKK30KKworU2xlZXBEaXNhYmxlcjo6U2xlZXBE
aXNhYmxlcihjb25zdCBjaGFyKiByZWFzb24sIFR5cGUgdHlwZSkKKyAgICA6IFBBTDo6U2xlZXBE
aXNhYmxlcihyZWFzb24sIHR5cGUpCit7CisgICAgaWYgKHNsZWVwRGlzYWJsZXJDbGllbnQoKSkg
eworICAgICAgICBzbGVlcERpc2FibGVyQ2xpZW50KCktPmRpZENyZWF0ZVNsZWVwRGlzYWJsZXIo
cmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHRoaXMpLCByZWFzb24sIHR5cGUgPT0gVHlwZTo6
RGlzcGxheSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3NsZWVwRGlzYWJsZXIg
PSBQQUw6OlNsZWVwRGlzYWJsZXI6OmNyZWF0ZShyZWFzb24sIHR5cGUpOworfQorCitTbGVlcERp
c2FibGVyOjp+U2xlZXBEaXNhYmxlcigpCit7CisgICAgaWYgKHNsZWVwRGlzYWJsZXJDbGllbnQo
KSkKKyAgICAgICAgc2xlZXBEaXNhYmxlckNsaWVudCgpLT5kaWREZXN0cm95U2xlZXBEaXNhYmxl
cihyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4odGhpcykpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TbGVlcERpc2Fi
bGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
U2xlZXBEaXNhYmxlckNsaWVudC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1NsZWVwRGlzYWJsZXJDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDQyIEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlIDxwYWwvc3lzdGVtL1NsZWVwRGlzYWJsZXIuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBTbGVlcERpc2FibGVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TbGVlcERpc2Fi
bGVyQ2xpZW50KCkgeyB9OworICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVTbGVlcERpc2FibGVy
KHVpbnRwdHJfdCwgY29uc3QgU3RyaW5nJiwgYm9vbCkgeyB9OworICAgIHZpcnR1YWwgdm9pZCBk
aWREZXN0cm95U2xlZXBEaXNhYmxlcih1aW50cHRyX3QpIHsgfTsKK307CisKK1dFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0U2xlZXBEaXNhYmxlckNsaWVudChzdGQ6OnVuaXF1ZV9wdHI8U2xlZXBEaXNh
YmxlckNsaWVudD4mJik7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTU0Nyw2ICs1NTQ3
LDE2IEBAIGJvb2wgSW50ZXJuYWxzOjppc1JlbW90ZVVJQXBwRm9yQWNjZXNzaWIKIHsKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CisKK3VpbnQ2NF90IEludGVybmFsczo6Y3JlYXRlU2xlZXBEaXNhYmxl
cihjb25zdCBTdHJpbmcmIHJlYXNvbiwgYm9vbCBkaXNwbGF5KQoreworICAgIHJldHVybiAwOwor
fQorCitib29sIEludGVybmFsczo6ZGVzdHJveVNsZWVwRGlzYWJsZXIodWludDY0X3QgaWRlbnRp
ZmllcikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CiAjZW5kaWYKIAogU3RyaW5nIEludGVybmFs
czo6bWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbikKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAkocmV2aXNpb24gMjU5MDQ1KQorKysgU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiAr
NDcsMTAgQEAKICNpbmNsdWRlICJNZWRpYUVsZW1lbnRTZXNzaW9uLmgiCiAjZW5kaWYKIAorI2lm
IFBMQVRGT1JNKENPQ09BKQorI2ltcG9ydCA8V2ViQ29yZS9TbGVlcERpc2FibGVyLmg+CisjZW5k
aWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBbmltYXRpb25UaW1lbGluZTsKQEAg
LTk2MCw2ICs5NjQsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzUmVtb3RlVUlBcHBGb3JBY2Nl
c3NpYmlsaXR5KCk7CiAKKyAgICB1aW50NjRfdCBjcmVhdGVTbGVlcERpc2FibGVyKGNvbnN0IFN0
cmluZyYgcmVhc29uLCBib29sIGRpc3BsYXkpOworICAgIGJvb2wgZGVzdHJveVNsZWVwRGlzYWJs
ZXIodWludDY0X3QgaWRlbnRpZmllcik7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJu
YWxzKERvY3VtZW50Jik7CiAgICAgRG9jdW1lbnQqIGNvbnRleHREb2N1bWVudCgpIGNvbnN0OwpA
QCAtOTgxLDYgKzk4OCwxMCBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEluc3Bl
Y3RvclN0dWJGcm9udGVuZD4gbV9pbnNwZWN0b3JGcm9udGVuZDsKICAgICBSZWZQdHI8Q2FjaGVT
dG9yYWdlQ29ubmVjdGlvbj4gbV9jYWNoZVN0b3JhZ2VDb25uZWN0aW9uOworCisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
OlNsZWVwRGlzYWJsZXI+PiBtX3NsZWVwRGlzYWJsZXJzOworI2VuZGlmCiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCShy
ZXZpc2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTg2Miw0ICs4NjIsNyBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5
IHsKICAgICBib29sZWFuIHN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpOwogCiAgICAgYm9vbGVh
biBpc1JlbW90ZVVJQXBwRm9yQWNjZXNzaWJpbGl0eSgpOworCisgICAgdW5zaWduZWQgbG9uZyBs
b25nIGNyZWF0ZVNsZWVwRGlzYWJsZXIoRE9NU3RyaW5nIHJlYXNvbiwgYm9vbGVhbiBkaXNwbGF5
KTsKKyAgICBib29sZWFuIGRlc3Ryb3lTbGVlcERpc2FibGVyKHVuc2lnbmVkIGxvbmcgbG9uZyBp
ZGVudGlmaWVyKTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5tbQkocmV2
aXNpb24gMjU5MDQ1KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMubW0JKHdv
cmtpbmcgY29weSkKQEAgLTEyMSw0ICsxMjEsMTcgQEAgYm9vbCBJbnRlcm5hbHM6OmlzUmVtb3Rl
VUlBcHBGb3JBY2Nlc3NpYgogI2VuZGlmCiB9CiAKK3VpbnQ2NF90IEludGVybmFsczo6Y3JlYXRl
U2xlZXBEaXNhYmxlcihjb25zdCBTdHJpbmcmIHJlYXNvbiwgYm9vbCBkaXNwbGF5KQoreworICAg
IGF1dG8gc2xlZXBEaXNhYmxlciA9IFdlYkNvcmU6OlNsZWVwRGlzYWJsZXI6OmNyZWF0ZShyZWFz
b24udXRmOCgpLmRhdGEoKSwgZGlzcGxheSA/IFBBTDo6U2xlZXBEaXNhYmxlcjo6VHlwZTo6RGlz
cGxheSA6IFBBTDo6U2xlZXBEaXNhYmxlcjo6VHlwZTo6U3lzdGVtKTsKKyAgICBhdXRvIGlkZW50
aWZpZXIgPSByZWludGVycHJldF9jYXN0PHVpbnQ2NF90PihzbGVlcERpc2FibGVyLmdldCgpKTsK
KyAgICBtX3NsZWVwRGlzYWJsZXJzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKHNsZWVwRGlzYWJs
ZXIpKTsKKyAgICByZXR1cm4gaWRlbnRpZmllcjsKK30KKworYm9vbCBJbnRlcm5hbHM6OmRlc3Ry
b3lTbGVlcERpc2FibGVyKHVpbnQ2NF90IGlkZW50aWZpZXIpCit7CisgICAgcmV0dXJuIG1fc2xl
ZXBEaXNhYmxlcnMucmVtb3ZlKGlkZW50aWZpZXIpOworfQorCiB9CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2
aXNpb24gMjU5MTM3KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwzMiBAQAorMjAyMC0wMy0yNyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBh
cHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBTbGVlcCBkaXNhYmxpbmcgc2hvdWxkIGJlIHBl
cmZvcm1lZCBpbiB0aGUgVUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA5Njc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU2luY2Ugc2xlZXAgZGlzYWJsaW5nIGlzIGNhdXNpbmcgY29tbXVu
aWNhdGlvbiB3aXRoIHRoZSBwb3dlciBtYW5hZ2VtZW50IHNlcnZpY2UsIGl0IHNob3VsZCBiZSBw
ZXJmb3JtZWQgaW4gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIFRoZSBVSSBwcm9jZXNzIHdpbGwg
YmUgbm90aWZpZWQgYnkgdGhlIFdlYkNvbnRldG4gcHJvY2VzcyBhYm91dCBzbGVlcCBkaXNhYmxl
cnMgYmVpbmcgY3JlYXRlZCBhbmQgZGVzdHJveWVkLCBhbmQgd2lsbCBwZXJmb3JtCisgICAgICAg
IHRoZSBhY3R1YWwgc2xlZXAgZGlzYWJsaW5nIGFuZCBlbmFibGluZy4KKworICAgICAgICAqIFNv
dXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlRm9yVGVzdGluZy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3VGVzdGluZy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9oYXNTbGVlcERpc2FibGVyXSk6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZENyZWF0ZVNsZWVwRGlzYWJsZXIpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZERlc3Ryb3lTbGVlcERpc2FibGVy
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpoYXNTbGVlcERpc2FibGVyKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFs
aXplV2ViUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJTbGVlcERpc2Fi
bGVyQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViU2xlZXBE
aXNhYmxlckNsaWVudC5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlNsZWVwRGlzYWJs
ZXJDbGllbnQ6OmRpZENyZWF0ZVNsZWVwRGlzYWJsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJT
bGVlcERpc2FibGVyQ2xpZW50OjpkaWREZXN0cm95U2xlZXBEaXNhYmxlcik6CisKIDIwMjAtMDMt
MjcgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNr
ZWQgc2hvdWxkIHZhbGlkYXRlIGl0cyBwYXJhbWV0ZXJzCkluZGV4OiBTb3VyY2UvV2ViS2l0L1Nv
dXJjZXNDb2NvYS50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0CShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTU1Nyw2ICs1NTcsNyBAQCBXZWJQcm9jZXNzL2NvY29hL1BsYXli
YWNrU2Vzc2lvbk1hbmFnZXIuCiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmNwcAogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCiBXZWJQ
cm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorV2ViUHJvY2Vzcy9jb2NvYS9XZWJTbGVl
cERpc2FibGVyQ2xpZW50Lm1tCiAKIFdlYlByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2
aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbQogCkluZGV4OiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAkocmV2aXNpb24gMjU5MDQ1KQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTYw
LDYgKzYwLDEwIEBACiAjaW5jbHVkZSAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgogI2VuZGlmCiAK
KyNpZiBQTEFURk9STShDT0NPQSkKKyNpbXBvcnQgPFdlYkNvcmUvU2xlZXBEaXNhYmxlci5oPgor
I2VuZGlmCisKIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgTmF2aWdhdGlvbjsKIGNsYXNzIFBhZ2VD
b25maWd1cmF0aW9uOwpAQCAtMzc4LDYgKzM4MiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBncHVQ
cm9jZXNzQ3Jhc2hlZCgpOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBib29s
IGhhc1NsZWVwRGlzYWJsZXIoKTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgV2ViUHJvY2Vz
c1Byb3h5KFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFTdG9yZSosIElzUHJld2FybWVkKTsK
IApAQCAtNDc1LDYgKzQ4MywxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgc2VuZE1lc3NhZ2VUb1dl
YkNvbnRleHRXaXRoUmVwbHkoVXNlck1lc3NhZ2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChV
c2VyTWVzc2FnZSYmKT4mJik7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZv
aWQgZGlkQ3JlYXRlU2xlZXBEaXNhYmxlcih1aW50NjRfdCBpZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIHJlYXNvbiwgYm9vbCBkaXNwbGF5KTsKKyAgICB2b2lkIGRpZERlc3Ryb3lTbGVlcERpc2Fi
bGVyKHVpbnQ2NF90IGlkZW50aWZpZXIpOworI2VuZGlmCisKICAgICBlbnVtIGNsYXNzIElzV2Vh
ayB7IE5vLCBZZXMgfTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBXZWFrT3JTdHJv
bmdQdHIgewogICAgIHB1YmxpYzoKQEAgLTU4MCw2ICs1OTMsMTAgQEAgcHJpdmF0ZToKICAgICAg
ICAgV2Vha0hhc2hTZXQ8V2ViUHJvY2Vzc1Byb3h5PiBjbGllbnRQcm9jZXNzZXM7CiAgICAgfTsK
ICAgICBPcHRpb25hbDxTZXJ2aWNlV29ya2VySW5mb3JtYXRpb24+IG1fc2VydmljZVdvcmtlcklu
Zm9ybWF0aW9uOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgSGFzaE1hcDx1aW50NjRfdCwg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNsZWVwRGlzYWJsZXI+PiBtX3NsZWVwRGlzYWJsZXJz
OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4JKHJldmlz
aW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtODAsNCArODAsOSBAQCBtZXNzYWdlcyAtPiBX
ZWJQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2CiAgICAgU2VuZE1lc3NhZ2VUb1dlYkNvbnRleHQo
c3RydWN0IFdlYktpdDo6VXNlck1lc3NhZ2UgdXNlck1lc3NhZ2UpCiAgICAgU2VuZE1lc3NhZ2VU
b1dlYkNvbnRleHRXaXRoUmVwbHkoc3RydWN0IFdlYktpdDo6VXNlck1lc3NhZ2UgdXNlck1lc3Nh
Z2UpIC0+IChzdHJ1Y3QgV2ViS2l0OjpVc2VyTWVzc2FnZSByZXBseU1lc3NhZ2UpIEFzeW5jCiAj
ZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIERpZENyZWF0ZVNsZWVwRGlzYWJsZXIo
dWludDY0X3QgaWRlbnRpZmllciwgU3RyaW5nIHJlYXNvbiwgYm9vbCBkaXNwbGF5KQorICAgIERp
ZERlc3Ryb3lTbGVlcERpc2FibGVyKHVpbnQ2NF90IGlkZW50aWZpZXIpCisjZW5kaWYKIH0KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9y
VGVzdGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3Rpbmcu
aAkod29ya2luZyBjb3B5KQpAQCAtNjQsNCArNjQsNSBAQAogKyAodm9pZClfc2V0QXBwbGljYXRp
b25CdW5kbGVJZGVudGlmaWVyOihOU1N0cmluZyAqKWJ1bmRsZUlkZW50aWZpZXI7CiArICh2b2lk
KV9jbGVhckFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllclRlc3RpbmdPdmVycmlkZTsKIAorLSAo
Qk9PTClfaGFzU2xlZXBEaXNhYmxlcjsKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCShyZXZpc2lvbiAy
NTkwNDUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVz
dGluZy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjIwLDQgKzIyMCw5IEBAICsgKHZvaWQpX2NsZWFy
QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWUKICAgICBXZWJDb3JlOjpjbGVhckFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllclRlc3RpbmdPdmVycmlkZSgpOwogfQogCistIChCT09MKV9oYXNTbGVl
cERpc2FibGVyCit7CisgICAgcmV0dXJuIF9wYWdlID8gX3BhZ2UtPnByb2Nlc3MoKS5oYXNTbGVl
cERpc2FibGVyKCkgOiBmYWxzZTsKK30KKwogQGVuZApJbmRleDogU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0JKHJldmlzaW9u
IDI1OTA0NSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94
eUNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNDgsNCArMjQ4LDIwIEBAIHZvaWQgV2ViUHJv
Y2Vzc1Byb3h5Ojp1bmJsb2NrUHJlZmVyZW5jZVMKIH0KICNlbmRpZgogCit2b2lkIFdlYlByb2Nl
c3NQcm94eTo6ZGlkQ3JlYXRlU2xlZXBEaXNhYmxlcih1aW50NjRfdCBpZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIHJlYXNvbiwgYm9vbCBkaXNwbGF5KQoreworICAgIGF1dG8gc2xlZXBEaXNhYmxl
ciA9IFdlYkNvcmU6OlNsZWVwRGlzYWJsZXI6OmNyZWF0ZShyZWFzb24udXRmOCgpLmRhdGEoKSwg
ZGlzcGxheSA/IFBBTDo6U2xlZXBEaXNhYmxlcjo6VHlwZTo6RGlzcGxheSA6IFBBTDo6U2xlZXBE
aXNhYmxlcjo6VHlwZTo6U3lzdGVtKTsKKyAgICBtX3NsZWVwRGlzYWJsZXJzLmFkZChpZGVudGlm
aWVyLCBXVEZNb3ZlKHNsZWVwRGlzYWJsZXIpKTsKK30KKwordm9pZCBXZWJQcm9jZXNzUHJveHk6
OmRpZERlc3Ryb3lTbGVlcERpc2FibGVyKHVpbnQ2NF90IGlkZW50aWZpZXIpCit7CisgICAgbV9z
bGVlcERpc2FibGVycy5yZW1vdmUoaWRlbnRpZmllcik7Cit9CisKK2Jvb2wgV2ViUHJvY2Vzc1By
b3h5OjpoYXNTbGVlcERpc2FibGVyKCkKK3sKKyAgICByZXR1cm4gbV9zbGVlcERpc2FibGVycy5z
aXplKCkgPiAwOworfQorCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQ5Nzks
NiArNDk3OSw4IEBACiAJCUMxNDkzODAyMjIzNDFDNjAwMDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50
aGVzaXNDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNDkzODAzMjIzNDFERjcwMDBDRDcwNyAv
KiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU3Bl
ZWNoU3ludGhlc2lzQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE0
OTM4MEEyMjM4NTNCRTAwMENENzA3IC8qIFdlYlNwZWVjaFN5bnRoZXNpc1ZvaWNlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYlNwZWVjaFN5bnRoZXNpc1ZvaWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMxNDlENTUyMjQyRTlCMzEwMDNFQkIxMiAvKiBXZWJTbGVlcERpc2FibGVyQ2xp
ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViU2xlZXBE
aXNhYmxlckNsaWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzE0OUQ1NTMy
NDJFOUIzMjAwM0VCQjEyIC8qIFdlYlNsZWVwRGlzYWJsZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2xlZXBEaXNhYmxlckNsaWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDMTVDQkIzMzIzRjM0QzM4MDAzMDBDQzcgLyogUHJlZmVyZW5j
ZU9ic2VydmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJlZmVyZW5jZU9ic2VydmVyLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTgxNzM1RTIwNTgzOUY2MDBERkRBNjUg
LyogRHJhd2luZ0FyZWFNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRHJhd2luZ0FyZWFNYWMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTgxNzM2MDIwNTg0MjQ3MDBERkRB
NjUgLyogRGlzcGxheUxpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheUxpbmsuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgzMTgsNiArODMyMCw4IEBACiAJCQkJNTJENUExQjQx
QzU3NDlGMjAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gKi8sCiAJCQkJRUNB
NjgwRDcxRTY5MERGODAwNzMxRDIwIC8qIFdlYlByb2Nlc3NDb2NvYS5oICovLAogCQkJCTdDNkU3
MEY5MThCMkQ0QTAwMEYyNEUyRSAvKiBXZWJQcm9jZXNzQ29jb2EubW0gKi8sCisJCQkJQzE0OUQ1
NTMyNDJFOUIzMjAwM0VCQjEyIC8qIFdlYlNsZWVwRGlzYWJsZXJDbGllbnQuaCAqLywKKwkJCQlD
MTQ5RDU1MjI0MkU5QjMxMDAzRUJCMTIgLyogV2ViU2xlZXBEaXNhYmxlckNsaWVudC5tbSAqLywK
IAkJCSk7CiAJCQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpJbmRl
eDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29h
Lm1tCShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
V2ViUHJvY2Vzc0NvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niw3IEBACiAjaW1w
b3J0ICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNz
RGF0YVN0b3JlUGFyYW1ldGVycy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMu
aCIKKyNpbXBvcnQgIldlYlNsZWVwRGlzYWJsZXJDbGllbnQuaCIKICNpbXBvcnQgIldlYnNpdGVE
YXRhU3RvcmVQYXJhbWV0ZXJzLmgiCiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9Db25maWdGaWxl
Lmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9PcHRpb25zLmg+CkBAIC02MywxMCArNjQsMTIg
QEAKICNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9NZW1vcnlSZWxlYXNlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05TU2Nyb2xsZXJJbXBEZXRhaWxz
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1BlcmZvcm1hbmNlTG9nZ2luZy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Q
aWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGlj
YXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU1dDb250ZXh0TWFuYWdlci5oPgorI2lt
cG9ydCA8V2ViQ29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VUSVV0aWxp
dGllcy5oPgogI2ltcG9ydCA8YWxnb3JpdGhtPgogI2ltcG9ydCA8ZGlzcGF0Y2gvZGlzcGF0Y2gu
aD4KQEAgLTEzMSwxMSArMTM0LDYgQEAKICNpbXBvcnQgPG9zL3N0YXRlX3ByaXZhdGUuaD4KICNl
bmRpZgogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtFeHRl
bnNpb25Db250ZW50RmlsdGVyLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1N5c3RlbUJhdHRlcnkuaD4K
LSNlbmRpZgotCiAjaWYgSEFWRShDU0NIRUNLRklYRElTQUJMRSkKIGV4dGVybiAiQyIgdm9pZCBf
Q1NDaGVja0ZpeERpc2FibGUoKTsKICNlbmRpZgpAQCAtMzE4LDYgKzMxNiw4IEBAIHZvaWQgV2Vi
UHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHIKICAgICAgICAgc2V0VmVjdG9yT2ZVVFR5
cGVJdGVtKFdURk1vdmUocGFyYW1ldGVycy52ZWN0b3JPZlVUVHlwZUl0ZW0pKTsKICAgICB9CiAj
ZW5kaWYKKworICAgIFdlYkNvcmU6OnNldFNsZWVwRGlzYWJsZXJDbGllbnQobWFrZVVuaXF1ZTxX
ZWJTbGVlcERpc2FibGVyQ2xpZW50PigpKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9y
bVNldFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0
ZXJzJiYgcGFyYW1ldGVycykKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJTbGVlcERpc2FibGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1dlYlNsZWVwRGlzYWJsZXJDbGllbnQuaAkobm9uZXhpc3RlbnQpCisrKyBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViU2xlZXBEaXNhYmxlckNsaWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNvcmUvU2xlZXBE
aXNhYmxlckNsaWVudC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViU2xlZXBE
aXNhYmxlckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpTbGVlcERpc2FibGVyQ2xpZW50IHsKKyAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB2b2lkIGRpZENyZWF0ZVNs
ZWVwRGlzYWJsZXIodWludHB0cl90LCBjb25zdCBTdHJpbmcmLCBib29sKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGRpZERlc3Ryb3lTbGVlcERpc2FibGVyKHVpbnRwdHJfdCkgb3ZlcnJpZGU7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJTbGVlcERpc2FibGVyQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJTbGVlcERpc2FibGVyQ2xpZW50Lm1tCShub25leGlzdGVu
dCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJTbGVlcERpc2FibGVyQ2xp
ZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViU2xlZXBEaXNhYmxlckNsaWVudC5oIgorCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2lu
Y2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgewor
Cit2b2lkIFdlYlNsZWVwRGlzYWJsZXJDbGllbnQ6OmRpZENyZWF0ZVNsZWVwRGlzYWJsZXIodWlu
dHB0cl90IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBib29sIGRpc3BsYXkpCit7
CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpEaWRDcmVhdGVTbGVlcERpc2FibGVyKGlk
ZW50aWZpZXIsIHJlYXNvbiwgZGlzcGxheSksIDApOworfQorCit2b2lkIFdlYlNsZWVwRGlzYWJs
ZXJDbGllbnQ6OmRpZERlc3Ryb3lTbGVlcERpc2FibGVyKHVpbnRwdHJfdCBpZGVudGlmaWVyKQor
eworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6RGlkRGVzdHJveVNsZWVwRGlzYWJsZXIo
aWRlbnRpZmllciksIDApOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFRvb2xz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTEz
MikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisy
MDIwLTAzLTI3ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAg
ICBbQ29jb2FdIFNsZWVwIGRpc2FibGluZyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBw
cm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDk2NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1NsZWVwRGlzYWJsZXIubW06IEFk
ZGVkLgorICAgICAgICAoVEVTVCk6CisKIDIwMjAtMDMtMjcgIFBoaWxpcHBlIE5vcm1hbmQgIDxw
bm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtGbGF0cGFrIFNES10gQWxsb3cgcGFzc2lu
ZyBnc3QtYnVpbGQgTWVzb24gb3B0aW9ucwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJl
dmlzaW9uIDI1OTA0NSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC04ODMsNiArODgzLDcgQEAK
IAkJQzBDNUQzQzYxNDU5OTEyOTAwQTgwMkE2IC8qIEdldEJhY2tpbmdTY2FsZUZhY3Rvcl9CdW5k
bGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMEM1
RDNCRDE0NTk4QjZGMDBBODAyQTYgLyogR2V0QmFja2luZ1NjYWxlRmFjdG9yX0J1bmRsZS5tbSAq
LzsgfTsKIAkJQzEzRDgyRDkyNDE2RjEzMjAwQTYyNzkzIC8qIEVuYWJsZUFjY2Vzc2liaWxpdHku
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTNEODJE
ODI0MTZGMTMyMDBBNjI3OTMgLyogRW5hYmxlQWNjZXNzaWJpbGl0eS5tbSAqLzsgfTsKIAkJQzE0
NUNDMEMyM0RBNUExRjAwM0E1RUVCIC8qIE1pbWVUeXBlcy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNDVDQzBCMjNEQTVBMEYwMDNBNUVFQiAvKiBN
aW1lVHlwZXMubW0gKi87IH07CisJCUMxNDlENTUwMjQyRTk4REYwMDNFQkIxMiAvKiBTbGVlcERp
c2FibGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzE0OUQ1NEYyNDJFOTg0NDAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIubW0gKi87IH07CiAJCUMx
NUNCQjMwMjNGMUZGMUEwMDMwMENDNyAvKiBCYWNrbGlnaHRMZXZlbE5vdGlmaWNhdGlvbi5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNUNCQjJGMjNG
MUZGMUEwMDMwMENDNyAvKiBCYWNrbGlnaHRMZXZlbE5vdGlmaWNhdGlvbi5tbSAqLzsgfTsKIAkJ
QzE1Q0JCM0YyM0ZCMTc3QTAwMzAwQ0M3IC8qIFByZWZlcmVuY2VDaGFuZ2VzLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE1Q0JCM0UyM0ZCMTc3QTAw
MzAwQ0M3IC8qIFByZWZlcmVuY2VDaGFuZ2VzLm1tICovOyB9OwogCQlDMTY5MkRDQTIzRDEwREFF
MDA2RTg4RjcgLyogQmF0dGVyeS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEMxNjkyREM5MjNEMTBEQUUwMDZFODhGNyAvKiBCYXR0ZXJ5Lm1tICovOyB9
OwpAQCAtMjQ1OCw2ICsyNDU5LDcgQEAKIAkJQzBDNUQzQkQxNDU5OEI2RjAwQTgwMkE2IC8qIEdl
dEJhY2tpbmdTY2FsZUZhY3Rvcl9CdW5kbGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBHZXRCYWNraW5nU2NhbGVGYWN0b3JfQnVuZGxlLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDMTNEODJEODI0MTZGMTMyMDBBNjI3OTMgLyogRW5hYmxlQWNj
ZXNzaWJpbGl0eS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEVuYWJsZUFjY2Vzc2liaWxpdHku
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNDVDQzBCMjNEQTVBMEYwMDNBNUVF
QiAvKiBNaW1lVHlwZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBNaW1lVHlwZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMxNDlENTRGMjQy
RTk4NDQwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gU2xlZXBEaXNhYmxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQzE1Q0JCMkYyM0YxRkYxQTAwMzAwQ0M3IC8qIEJhY2tsaWdodExldmVsTm90aWZp
Y2F0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQmFja2xpZ2h0TGV2ZWxOb3RpZmljYXRp
b24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNUNCQjNFMjNGQjE3N0EwMDMw
MENDNyAvKiBQcmVmZXJlbmNlQ2hhbmdlcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFByZWZlcmVuY2VDaGFuZ2VzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDMTY5MkRDOTIzRDEwREFFMDA2RTg4RjcgLyogQmF0dGVyeS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IEJhdHRlcnkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
OTIxLDYgKzI5MjMsNyBAQAogCQkJCUMxNDVDQzBCMjNEQTVBMEYwMDNBNUVFQiAvKiBNaW1lVHlw
ZXMubW0gKi8sCiAJCQkJRTMyNUM5MDYyM0UzODcwMjAwQkM3RDNCIC8qIFBpY3R1cmVJblBpY3R1
cmVTdXBwb3J0Lm1tICovLAogCQkJCUMxNUNCQjNFMjNGQjE3N0EwMDMwMENDNyAvKiBQcmVmZXJl
bmNlQ2hhbmdlcy5tbSAqLywKKwkJCQlDMTQ5RDU0RjI0MkU5ODQ0MDAzRUJCMTIgLyogU2xlZXBE
aXNhYmxlci5tbSAqLywKIAkJCQlDMTk0RTMxQzI0MDlERjQzMDAyOTM5RUQgLyogVVRJRnJvbU1J
TUVUeXBlLm1tICovLAogCQkJCUUzQ0FBQTRCMjQxNTUwNTEwMENFRDJFMiAvKiBVVElGcm9tVGFn
Lm1tICovLAogCQkJCTBGMTM5RTc1MUE0MjNBNTMwMEY1OTBGNSAvKiBXZWFrT2JqQ1B0ci5tbSAq
LywKQEAgLTUwNTgsNiArNTA2MSw3IEBACiAJCQkJMzdCQ0E2MUMxQjU5NkJBOTAwMjAxMkNBIC8q
IFNob3VsZE9wZW5FeHRlcm5hbFVSTHNJbk5ld1dpbmRvd0FjdGlvbnMubW0gaW4gU291cmNlcyAq
LywKIAkJCQk3QzgzRTBDNTFEMEE2NTQ2MDBGRUJDRjMgLyogU2hyaW5rVG9GaXQubW0gaW4gU291
cmNlcyAqLywKIAkJCQk3Q0NFN0VDRDFBNDExQTdFMDA0NDdDNEMgLyogU2ltcGxpZnlNYXJrdXAu
bW0gaW4gU291cmNlcyAqLywKKwkJCQlDMTQ5RDU1MDI0MkU5OERGMDAzRUJCMTIgLyogU2xlZXBE
aXNhYmxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJERkY3QjZEMURBNDg3QUYwMDgxNDYxNCAv
KiBTbmFwc2hvdFN0b3JlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0RkZBOUUxRUQzQUE4NTAw
RjcxMTFGIC8qIFNuYXBzaG90VmlhUmVuZGVySW5Db250ZXh0Lm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0NDRTdGMTUxQTQxMUFFNjAwNDQ3QzRDIC8qIFNwYWNlYmFyU2Nyb2xsaW5nLmNwcCBpbiBT
b3VyY2VzICovLApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU2xlZXBE
aXNhYmxlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9TbGVlcERpc2FibGVyLm1tCShub25leGlzdGVudCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L1NsZWVwRGlzYWJsZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFdLX0hBVkVfQ19T
UEkKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZp
ZXcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oPgorI2lt
cG9ydCA8d3RmL1RocmVhZGluZy5oPgorCitURVNUKFdlYktpdCwgU2xlZXBEaXNhYmxlcikKK3sK
KyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlv
biBhbGxvY10gaW5pdF0pOworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9
IGFkb3B0V0soVGVzdFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVu
ZGxlVGVzdCgiSW50ZXJuYWxzSW5qZWN0ZWRCdW5kbGVUZXN0IikpOworICAgIGNvbmZpZ3VyYXRp
b24uZ2V0KCkucHJvY2Vzc1Bvb2wgPSAoV0tQcm9jZXNzUG9vbCAqKWNvbnRleHQuZ2V0KCk7Cisg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOworCisgICAgQVNTRVJUX0ZBTFNFKFt3ZWJWaWV3
IF9oYXNTbGVlcERpc2FibGVyXSk7CisKKyAgICBhdXRvIGNyZWF0ZVNsZWVwRGlzYWJsZXIgPSBb
Jl0geworICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlw
dDpAIndpbmRvdy5pbnRlcm5hbHMuY3JlYXRlU2xlZXBEaXNhYmxlcihcIlRlc3REaXNhYmxlclwi
LCB0cnVlKSJdLmxvbmdMb25nVmFsdWU7CisgICAgfTsKKworICAgIGF1dG8gaWRlbnRpZmllciA9
IGNyZWF0ZVNsZWVwRGlzYWJsZXIoKTsKKworICAgIEFTU0VSVF9ORShpZGVudGlmaWVyLCAwKTsK
KworICAgIEFTU0VSVF9UUlVFKFt3ZWJWaWV3IF9oYXNTbGVlcERpc2FibGVyXSk7CisKKyAgICBh
dXRvIGRlc3Ryb3lTbGVlcERpc2FibGVyID0gWyZdIHsKKyAgICAgICAgTlNTdHJpbmcgKmpzID0g
W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cuaW50ZXJuYWxzLmRlc3Ryb3lTbGVl
cERpc2FibGVyKCVsbGQpIiwgaWRlbnRpZmllcl07CisgICAgICAgIHJldHVybiBbd2ViVmlldyBz
dHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OmpzXTsKKyAgICB9OworCisgICAgQVNTRVJUX1RS
VUUoZGVzdHJveVNsZWVwRGlzYWJsZXIoKSk7CisKKyAgICBBU1NFUlRfRkFMU0UoW3dlYlZpZXcg
X2hhc1NsZWVwRGlzYWJsZXJdKTsKK30KKworI2VuZGlmIC8vIFdLX0hBVkVfQ19TUEkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394758</attachid>
            <date>2020-03-27 14:37:18 -0700</date>
            <delta_ts>2020-03-27 14:56:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209676-20200327143717.patch</filename>
            <type>text/plain</type>
            <size>40166</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTE0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDIwLTAzLTI3ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFNsZWVwIGRp
c2FibGluZyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW5jZSBzbGVlcCBkaXNhYmxp
bmcgaXMgY2F1c2luZyBjb21tdW5pY2F0aW9uIHdpdGggdGhlIHBvd2VyIG1hbmFnZW1lbnQgc2Vy
dmljZSwgaXQgc2hvdWxkIGJlIHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAg
VGhpcyBwYXRjaCBmaXhlcyB0aGlzIGJ5IGNyZWF0aW5nIGEgc2xlZXAgZGlzYWJsZXIgY2xpZW50
LCB3aGljaCB3aWxsIG5vdGlmeSB0aGUgVUkgcHJvY2VzcyB3aGVuIGEgc2xlZXAgZGlzYWJsZXIg
aXMgYmVpbmcKKyAgICAgICAgY3JlYXRlZCBhbmQgZGVzdHJveWVkLiBJbiByZXNwb25zZSB0byB0
aGVzZSBtZXNzYWdlcywgdGhlIFVJIHByb2Nlc3Mgd2lsbCBwZXJmb3JtIHRoZSBhY3R1YWwgc2xl
ZXAgZGlzYWJsaW5nIGFuZCBlbmFibGluZy4KKyAgICAgICAgQSBuZXcgc2xlZXAgZGlzYWJsZXIg
Y2xhc3MgaXMgY3JlYXRlZCB3aGljaCB3cmFwcyB0aGUgUEFMIHNsZWVwIGRpc2FibGVyLCBhbmQg
bm90aWZpZXMgdGhlIHNsZWVwIGRpc2FibGVyIGNsaWVudCB3aGVuIHNldC4KKyAgICAgICAgSWYg
dGhlIHNsZWVwIGRpc2FibGVyIGNsaWVudCBpcyBzZXQsIGEgUEFMIHNsZWVwIGRpc2FibGVyIGlu
c3RhbmNlIHdpbGwgbm90IGJlIGNyZWF0ZWQgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcywgc2lu
Y2UgdGhpcworICAgICAgICB3aWxsIHRoZW4gaGFwcGVuIGluIHRoZSBVSSBwcm9jZXNzLgorCisg
ICAgICAgIEFQSSB0ZXN0OiBXZWJLaXQuU2xlZXBEaXNhYmxlcgorCisgICAgICAgICogU291cmNl
cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50Ojp1cGRhdGVTbGVlcERpc2FibGluZyk6CisgICAgICAgICogcGxhdGZvcm0v
U2xlZXBEaXNhYmxlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6c2xlZXBEaXNhYmxl
ckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpzZXRTbGVlcERpc2FibGVyQ2xpZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTbGVlcERpc2FibGVyOjpTbGVlcERpc2FibGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNsZWVw
RGlzYWJsZXI6On5TbGVlcERpc2FibGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TbGVlcERpc2Fi
bGVyLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL1NsZWVwRGlzYWJsZXJDbGllbnQuaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTbGVlcERpc2FibGVyQ2xpZW50Ojp+U2xlZXBEaXNh
YmxlckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTbGVlcERpc2FibGVyQ2xpZW50OjpkaWRD
cmVhdGVTbGVlcERpc2FibGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJDbGll
bnQ6OmRpZERlc3Ryb3lTbGVlcERpc2FibGVyKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmNyZWF0ZVNsZWVwRGlzYWJsZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpkZXN0cm95U2xlZXBEaXNhYmxlcik6Cisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
cy5pZGw6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMubW06CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OmNyZWF0ZVNsZWVwRGlzYWJsZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW50
ZXJuYWxzOjpkZXN0cm95U2xlZXBEaXNhYmxlcik6CisKIDIwMjAtMDMtMjYgIFl1c3VrZSBTdXp1
a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgRW5zdXJlU3RpbGxBbGl2ZVNj
b3BlIHRvIGtlZXAgSlNWYWx1ZXMgYWxpdmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAy
NTkwNDUpCisrKyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MTc5OCw2ICsxNzk4LDcgQEAgcGxhdGZvcm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5jcHAK
IHBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAKIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlckNodW5rUmVh
ZGVyLmNwcAogcGxhdGZvcm0vU2hhcmVkU3RyaW5nSGFzaC5jcHAKK3BsYXRmb3JtL1NsZWVwRGlz
YWJsZXIuY3BwCiBwbGF0Zm9ybS9TdGF0aWNQYXN0ZWJvYXJkLmNwcAogcGxhdGZvcm0vVGhlbWUu
Y3BwCiBwbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjU5MDQ1
KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC0zOTg2LDYgKzM5ODYsOCBAQAogCQlDMTA1REE2NDBGM0FBNkI4MDAx
REQ0NEYgLyogVGV4dEVuY29kaW5nRGV0ZWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxMDVEQTYzMEYzQUE2QjgwMDFERDQ0RiAvKiBUZXh0RW5j
b2RpbmdEZXRlY3Rvci5oICovOyB9OwogCQlDMTFBOUVDRTIxNDAzQTVDMDBDRkIyMEEgLyogU3dp
dGNoaW5nR1BVQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDMTFBOUVDRDIxNDAzQTVDMDBDRkIyMEEgLyogU3dpdGNoaW5nR1BVQ2xpZW50Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzE0OTM4
MDcyMjM0NTUxQTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE0OTM4MDUyMjM0MjcxOTAwMENE
NzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCUMxNDlENTVEMjQyRUE2QjkwMDNFQkIxMiAvKiBTbGVl
cERpc2FibGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMTQ5RDU1QTI0MkVBNEY5MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUMxNDlENTVGMjQyRUE3Qjgw
MDNFQkIxMiAvKiBTbGVlcERpc2FibGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTQ5RDU1QjI0MkVBNEZBMDAzRUJCMTIgLyogU2xlZXBE
aXNhYmxlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUMxNjkyREQyMjNEMjNBQkQwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5Lm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE2OTJERDEyM0Qy
M0FCRDAwNkU4OEY3IC8qIFN5c3RlbUJhdHRlcnkubW0gKi87IH07CiAJCUMxNjkyREQ1MjNEMjNF
MDgwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMTY5MkRENDIzRDIzQUUwMDA2RTg4RjcgLyogU3lzdGVtQmF0
dGVyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUMxRTFEMjM2MjAzREYxNTQwMDU4NDY2NSAvKiBTY3JlZW5Qcm9wZXJ0aWVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMUUxRDIzNTIwM0RGMTU0MDA1
ODQ2NjUgLyogU2NyZWVuUHJvcGVydGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC0xMzU4Miw2ICsxMzU4NCw5IEBACiAJCUMxMUE5RUNEMjE0
MDNBNUMwMENGQjIwQSAvKiBTd2l0Y2hpbmdHUFVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3dp
dGNoaW5nR1BVQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxMUE5RUQy
MjE0MDU3OEIwMENGQjIwQSAvKiBTd2l0Y2hpbmdHUFVDbGllbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU3dpdGNoaW5nR1BVQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQzE0OTM4MDUyMjM0MjcxOTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTcGVlY2hTeW50aGVzaXNDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQzE0OUQ1NTkyNDJFQTRGODAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2xlZXBEaXNhYmxlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMxNDlENTVBMjQyRUE0RjkwMDNFQkIxMiAv
KiBTbGVlcERpc2FibGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNsZWVw
RGlzYWJsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzE0OUQ1NUIyNDJFQTRG
QTAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU2xlZXBEaXNhYmxlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDMTY5MkREMTIzRDIzQUJEMDA2RTg4RjcgLyogU3lzdGVtQmF0dGVyeS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFN5c3RlbUJhdHRlcnkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUMxNjkyREQ0MjNEMjNBRTAwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFN5c3RlbUJhdHRlcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQzFFMUQyMzUyMDNERjE1NDAwNTg0NjY1IC8qIFNjcmVlblByb3BlcnRpZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2NyZWVuUHJvcGVydGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjYyNDUsNiArMjYyNTAsOSBAQAogCQkJCTgzNERGQUNFMUY3REFFNTcwMEMyNzI1QiAvKiBT
aGFyZWRTdHJpbmdIYXNoLmNwcCAqLywKIAkJCQk4MzRERkFDQzFGN0RBRTU2MDBDMjcyNUIgLyog
U2hhcmVkU3RyaW5nSGFzaC5oICovLAogCQkJCTkzMzA5RUEwMDk5RUI3OEMwMDU2RTU4MSAvKiBT
aGFyZWRUaW1lci5oICovLAorCQkJCUMxNDlENTU5MjQyRUE0RjgwMDNFQkIxMiAvKiBTbGVlcERp
c2FibGVyLmNwcCAqLywKKwkJCQlDMTQ5RDU1QTI0MkVBNEY5MDAzRUJCMTIgLyogU2xlZXBEaXNh
Ymxlci5oICovLAorCQkJCUMxNDlENTVCMjQyRUE0RkEwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVy
Q2xpZW50LmggKi8sCiAJCQkJQTMzNEJEODIyMTk0RTQ2MTAwMDBENzdGIC8qIFNTTEtleUdlbmVy
YXRvci5jcHAgKi8sCiAJCQkJRjU4Nzg2NjIwMkRFM0IxMTAxRUE0MTIyIC8qIFNTTEtleUdlbmVy
YXRvci5oICovLAogCQkJCUY0MzNFOTA0MURCQkRCQzIwMEVGMEQxNCAvKiBTdGF0aWNQYXN0ZWJv
YXJkLmNwcCAqLywKQEAgLTMyNzE2LDYgKzMyNzI0LDggQEAKIAkJCQk5NDQ0Q0JENjFEODYwQzhC
MDA3M0EwNzQgLyogU2l6ZXNBdHRyaWJ1dGVQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk0
NDRDQkQ0MUQ4NjBDOEIwMDczQTA3NCAvKiBTaXplc0NhbGNQYXJzZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQ5RTkxMUNEMEVGODZENDcwMDlEMENBRiAvKiBTa2V3VHJhbnNmb3JtT3BlcmF0aW9u
LmggaW4gSGVhZGVycyAqLywKKwkJCQlDMTQ5RDU1RDI0MkVBNkI5MDAzRUJCMTIgLyogU2xlZXBE
aXNhYmxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQzE0OUQ1NUYyNDJFQTdCODAwM0VCQjEyIC8q
IFNsZWVwRGlzYWJsZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNTBGOUYxMTJCNkUw
RTcwMDA4Qzg2MCAvKiBTbGlkZXJUaHVtYkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTlC
NTMyRUE0MUJBOTI4NTcwMDM4QTgyNyAvKiBTbG90QXNzaWdubWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNEI2RkE2RjQwQzM5RTQ4QzAwMDg3MDExIC8qIFNtYXJ0UmVwbGFjZS5oIGluIEhlYWRl
cnMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTkyLDYgKzkyLDcgQEAKICNpbmNsdWRlICJTZWN1cml0eVBv
bGljeS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgor
I2luY2x1ZGUgIlNsZWVwRGlzYWJsZXIuaCIKICNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCiAjaW5j
bHVkZSAiVXNlckNvbnRlbnRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRp
Y2F0b3IuaCIKQEAgLTk5LDcgKzEwMCw2IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVWlu
dDhBcnJheS5oPgogI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+
Ci0jaW5jbHVkZSA8cGFsL3N5c3RlbS9TbGVlcERpc2FibGVyLmg+CiAjaW5jbHVkZSA8d3RmL0Fs
Z29yaXRobXMuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUg
PHd0Zi9MYW5ndWFnZS5oPgpAQCAtNjk0Niw3ICs2OTQ2LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50Ojp1cGRhdGVTbGVlcERpc2FibAogICAgIGVsc2UgaWYgKHNob3VsZERpc2FibGVTbGVlcCAh
PSBTbGVlcFR5cGU6Ok5vbmUpIHsKICAgICAgICAgYXV0byB0eXBlID0gc2hvdWxkRGlzYWJsZVNs
ZWVwID09IFNsZWVwVHlwZTo6RGlzcGxheSA/IFBBTDo6U2xlZXBEaXNhYmxlcjo6VHlwZTo6RGlz
cGxheSA6IFBBTDo6U2xlZXBEaXNhYmxlcjo6VHlwZTo6U3lzdGVtOwogICAgICAgICBpZiAoIW1f
c2xlZXBEaXNhYmxlciB8fCBtX3NsZWVwRGlzYWJsZXItPnR5cGUoKSAhPSB0eXBlKQotICAgICAg
ICAgICAgbV9zbGVlcERpc2FibGVyID0gUEFMOjpTbGVlcERpc2FibGVyOjpjcmVhdGUoImNvbS5h
cHBsZS5XZWJDb3JlOiBIVE1MTWVkaWFFbGVtZW50IHBsYXliYWNrIiwgdHlwZSk7CisgICAgICAg
ICAgICBtX3NsZWVwRGlzYWJsZXIgPSBTbGVlcERpc2FibGVyOjpjcmVhdGUoImNvbS5hcHBsZS5X
ZWJDb3JlOiBIVE1MTWVkaWFFbGVtZW50IHBsYXliYWNrIiwgdHlwZSk7CiAgICAgfQogCiAgICAg
aWYgKG1fcGxheWVyKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxl
ci5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNh
Ymxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTbGVlcERpc2FibGVyLmgiCisKKyNpbmNsdWRl
ICJTbGVlcERpc2FibGVyQ2xpZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxTbGVlcERpc2FibGVyQ2xpZW50PiYgc2xlZXBEaXNhYmxlckNsaWVu
dCgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6dW5pcXVlX3B0cjxTbGVlcERp
c2FibGVyQ2xpZW50Pj4gY2xpZW50OworICAgIHJldHVybiBjbGllbnQuZ2V0KCk7Cit9CisKK3Zv
aWQgc2V0U2xlZXBEaXNhYmxlckNsaWVudChzdGQ6OnVuaXF1ZV9wdHI8U2xlZXBEaXNhYmxlckNs
aWVudD4mJiBjbGllbnQpCit7CisgICAgYXV0byYgYyA9IHNsZWVwRGlzYWJsZXJDbGllbnQoKTsK
KyAgICBjID0gV1RGTW92ZShjbGllbnQpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8U2xlZXBEaXNh
Ymxlcj4gU2xlZXBEaXNhYmxlcjo6Y3JlYXRlKGNvbnN0IGNoYXIqIHJlYXNvbiwgVHlwZSB0eXBl
KQoreworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8U2xlZXBEaXNhYmxlcj4obmV3IFNsZWVw
RGlzYWJsZXIocmVhc29uLCB0eXBlKSk7Cit9CisKK1NsZWVwRGlzYWJsZXI6OlNsZWVwRGlzYWJs
ZXIoY29uc3QgY2hhciogcmVhc29uLCBUeXBlIHR5cGUpCisgICAgOiBQQUw6OlNsZWVwRGlzYWJs
ZXIocmVhc29uLCB0eXBlKQoreworICAgIGlmIChzbGVlcERpc2FibGVyQ2xpZW50KCkpIHsKKyAg
ICAgICAgc2xlZXBEaXNhYmxlckNsaWVudCgpLT5kaWRDcmVhdGVTbGVlcERpc2FibGVyKHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pih0aGlzKSwgcmVhc29uLCB0eXBlID09IFR5cGU6OkRpc3Bs
YXkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9zbGVlcERpc2FibGVyID0gUEFM
OjpTbGVlcERpc2FibGVyOjpjcmVhdGUocmVhc29uLCB0eXBlKTsKK30KKworU2xlZXBEaXNhYmxl
cjo6flNsZWVwRGlzYWJsZXIoKQoreworICAgIGlmIChzbGVlcERpc2FibGVyQ2xpZW50KCkpCisg
ICAgICAgIHNsZWVwRGlzYWJsZXJDbGllbnQoKS0+ZGlkRGVzdHJveVNsZWVwRGlzYWJsZXIocmVp
bnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHRoaXMpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJsZXIuaAkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgUExBVEZPUk0oQ09DT0EpCisKKyNpbmNsdWRlIDxwYWwvc3lzdGVtL1NsZWVwRGlzYWJsZXIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTbGVlcERpc2FibGVyIDogcHVibGlj
IFBBTDo6U2xlZXBEaXNhYmxlciB7CitwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxTbGVlcERpc2FibGVyPiBjcmVhdGUoY29uc3QgY2hhciosIFBBTDo6
U2xlZXBEaXNhYmxlcjo6VHlwZSk7CisgICAgdmlydHVhbCB+U2xlZXBEaXNhYmxlcigpOworCitw
cml2YXRlOgorICAgIFNsZWVwRGlzYWJsZXIoY29uc3QgY2hhciosIFBBTDo6U2xlZXBEaXNhYmxl
cjo6VHlwZSk7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UEFMOjpTbGVlcERpc2FibGVyPiBtX3Ns
ZWVwRGlzYWJsZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQ
TEFURk9STShDT0NPQSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJs
ZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERp
c2FibGVyQ2xpZW50LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2xlZXBEaXNhYmxlckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDIgQEAKKy8q
CisqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisq
CisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisq
CisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPHBhbC9zeXN0ZW0vU2xlZXBEaXNhYmxlci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNsZWVwRGlzYWJs
ZXJDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgflNsZWVwRGlzYWJsZXJDbGllbnQoKSB7
IH07CisgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZVNsZWVwRGlzYWJsZXIodWludHB0cl90LCBj
b25zdCBTdHJpbmcmLCBib29sKSB7IH07CisgICAgdmlydHVhbCB2b2lkIGRpZERlc3Ryb3lTbGVl
cERpc2FibGVyKHVpbnRwdHJfdCkgeyB9OworfTsKKworV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRT
bGVlcERpc2FibGVyQ2xpZW50KHN0ZDo6dW5pcXVlX3B0cjxTbGVlcERpc2FibGVyQ2xpZW50PiYm
KTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAkocmV2aXNpb24gMjU5MDQ1KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NTQ3LDYgKzU1NDcsMTYgQEAgYm9vbCBJ
bnRlcm5hbHM6OmlzUmVtb3RlVUlBcHBGb3JBY2Nlc3NpYgogewogICAgIHJldHVybiBmYWxzZTsK
IH0KKwordWludDY0X3QgSW50ZXJuYWxzOjpjcmVhdGVTbGVlcERpc2FibGVyKGNvbnN0IFN0cmlu
ZyYgcmVhc29uLCBib29sIGRpc3BsYXkpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wgSW50
ZXJuYWxzOjpkZXN0cm95U2xlZXBEaXNhYmxlcih1aW50NjRfdCBpZGVudGlmaWVyKQoreworICAg
IHJldHVybiBmYWxzZTsKK30KICNlbmRpZgogCiBTdHJpbmcgSW50ZXJuYWxzOjptZWRpYU1JTUVU
eXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uKQpJbmRleDogU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oCShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2ICs0NywxMCBAQAogI2lu
Y2x1ZGUgIk1lZGlhRWxlbWVudFNlc3Npb24uaCIKICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09D
T0EpCisjaW1wb3J0IDxXZWJDb3JlL1NsZWVwRGlzYWJsZXIuaD4KKyNlbmRpZgorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFuaW1hdGlvblRpbWVsaW5lOwpAQCAtOTYwLDYgKzk2NCw5
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNSZW1vdGVVSUFwcEZvckFjY2Vzc2liaWxpdHkoKTsK
IAorICAgIHVpbnQ2NF90IGNyZWF0ZVNsZWVwRGlzYWJsZXIoY29uc3QgU3RyaW5nJiByZWFzb24s
IGJvb2wgZGlzcGxheSk7CisgICAgYm9vbCBkZXN0cm95U2xlZXBEaXNhYmxlcih1aW50NjRfdCBp
ZGVudGlmaWVyKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbHMoRG9jdW1lbnQm
KTsKICAgICBEb2N1bWVudCogY29udGV4dERvY3VtZW50KCkgY29uc3Q7CkBAIC05ODEsNiArOTg4
LDEwIEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yU3R1YkZyb250
ZW5kPiBtX2luc3BlY3RvckZyb250ZW5kOwogICAgIFJlZlB0cjxDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uPiBtX2NhY2hlU3RvcmFnZUNvbm5lY3Rpb247CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U2xlZXBEaXNhYmxl
cj4+IG1fc2xlZXBEaXNhYmxlcnM7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwJKHJldmlzaW9uIDI1OTA0
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAkod29ya2luZyBjb3B5
KQpAQCAtODYyLDQgKzg2Miw3IEBAIGVudW0gQ29tcG9zaXRpbmdQb2xpY3kgewogICAgIGJvb2xl
YW4gc3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKCk7CiAKICAgICBib29sZWFuIGlzUmVtb3RlVUlB
cHBGb3JBY2Nlc3NpYmlsaXR5KCk7CisKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgY3JlYXRlU2xl
ZXBEaXNhYmxlcihET01TdHJpbmcgcmVhc29uLCBib29sZWFuIGRpc3BsYXkpOworICAgIGJvb2xl
YW4gZGVzdHJveVNsZWVwRGlzYWJsZXIodW5zaWduZWQgbG9uZyBsb25nIGlkZW50aWZpZXIpOwog
fTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLm1tCShyZXZpc2lvbiAyNTkwNDUp
CisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5tbQkod29ya2luZyBjb3B5KQpA
QCAtMTIxLDQgKzEyMSwxNyBAQCBib29sIEludGVybmFsczo6aXNSZW1vdGVVSUFwcEZvckFjY2Vz
c2liCiAjZW5kaWYKIH0KIAordWludDY0X3QgSW50ZXJuYWxzOjpjcmVhdGVTbGVlcERpc2FibGVy
KGNvbnN0IFN0cmluZyYgcmVhc29uLCBib29sIGRpc3BsYXkpCit7CisgICAgYXV0byBzbGVlcERp
c2FibGVyID0gV2ViQ29yZTo6U2xlZXBEaXNhYmxlcjo6Y3JlYXRlKHJlYXNvbi51dGY4KCkuZGF0
YSgpLCBkaXNwbGF5ID8gUEFMOjpTbGVlcERpc2FibGVyOjpUeXBlOjpEaXNwbGF5IDogUEFMOjpT
bGVlcERpc2FibGVyOjpUeXBlOjpTeXN0ZW0pOworICAgIGF1dG8gaWRlbnRpZmllciA9IHJlaW50
ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KHNsZWVwRGlzYWJsZXIuZ2V0KCkpOworICAgIG1fc2xlZXBE
aXNhYmxlcnMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUoc2xlZXBEaXNhYmxlcikpOworICAgIHJl
dHVybiBpZGVudGlmaWVyOworfQorCitib29sIEludGVybmFsczo6ZGVzdHJveVNsZWVwRGlzYWJs
ZXIodWludDY0X3QgaWRlbnRpZmllcikKK3sKKyAgICByZXR1cm4gbV9zbGVlcERpc2FibGVycy5y
ZW1vdmUoaWRlbnRpZmllcik7Cit9CisKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTkxMzcp
CisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMy
IEBACisyMDIwLTAzLTI3ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbQ29jb2FdIFNsZWVwIGRpc2FibGluZyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRo
ZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDk2NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTaW5jZSBzbGVlcCBkaXNhYmxpbmcgaXMgY2F1c2luZyBjb21tdW5pY2F0aW9uIHdpdGgg
dGhlIHBvd2VyIG1hbmFnZW1lbnQgc2VydmljZSwgaXQgc2hvdWxkIGJlIHBlcmZvcm1lZCBpbiB0
aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgVGhlIFVJIHByb2Nlc3Mgd2lsbCBiZSBub3RpZmllZCBi
eSB0aGUgV2ViQ29udGV0biBwcm9jZXNzIGFib3V0IHNsZWVwIGRpc2FibGVycyBiZWluZyBjcmVh
dGVkIGFuZCBkZXN0cm95ZWQsIGFuZCB3aWxsIHBlcmZvcm0KKyAgICAgICAgdGhlIGFjdHVhbCBz
bGVlcCBkaXNhYmxpbmcgYW5kIGVuYWJsaW5nLgorCisgICAgICAgICogU291cmNlc0NvY29hLnR4
dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0
aW5nLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1t
OgorICAgICAgICAoLVtXS1dlYlZpZXcgX2hhc1NsZWVwRGlzYWJsZXJdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlU2xlZXBEaXNhYmxlcik6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkRGVzdHJveVNsZWVwRGlzYWJsZXIpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Omhhc1NsZWVwRGlzYWJsZXIpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlNsZWVwRGlzYWJsZXJDbGllbnQuaDog
QWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJTbGVlcERpc2FibGVyQ2xpZW50
Lm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViU2xlZXBEaXNhYmxlckNsaWVudDo6ZGlk
Q3JlYXRlU2xlZXBEaXNhYmxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlNsZWVwRGlzYWJsZXJD
bGllbnQ6OmRpZERlc3Ryb3lTbGVlcERpc2FibGVyKToKKwogMjAyMC0wMy0yNyAgRGF2aWQgS2ls
emVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpyZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZCBzaG91bGQgdmFs
aWRhdGUgaXRzIHBhcmFtZXRlcnMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQJKHJldmlzaW9u
IDI1OTA0NSkKKysrIFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtNTU3LDYgKzU1Nyw3IEBAIFdlYlByb2Nlc3MvY29jb2EvUGxheWJhY2tTZXNzaW9uTWFu
YWdlci4KIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCiBXZWJQ
cm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KIFdlYlByb2Nlc3MvY29jb2Ev
V2ViUHJvY2Vzc0NvY29hLm1tCitXZWJQcm9jZXNzL2NvY29hL1dlYlNsZWVwRGlzYWJsZXJDbGll
bnQubW0KIAogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQ29udGVu
dFNlcnZpY2VFbnRyeVBvaW50Lm1tCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oCShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtNjAsNiArNjAsMTAgQEAK
ICNpbmNsdWRlICJMYXllckhvc3RpbmdDb250ZXh0LmgiCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JN
KENPQ09BKQorI2ltcG9ydCA8V2ViQ29yZS9TbGVlcERpc2FibGVyLmg+CisjZW5kaWYKKwogbmFt
ZXNwYWNlIEFQSSB7CiBjbGFzcyBOYXZpZ2F0aW9uOwogY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb247
CkBAIC0zNzgsNiArMzgyLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGdwdVByb2Nlc3NDcmFzaGVk
KCk7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGJvb2wgaGFzU2xlZXBEaXNh
YmxlcigpOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBXZWJQcm9jZXNzUHJveHkoV2ViUHJv
Y2Vzc1Bvb2wmLCBXZWJzaXRlRGF0YVN0b3JlKiwgSXNQcmV3YXJtZWQpOwogCkBAIC00NzUsNiAr
NDgzLDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZW5kTWVzc2FnZVRvV2ViQ29udGV4dFdpdGhS
ZXBseShVc2VyTWVzc2FnZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFVzZXJNZXNzYWdlJiYp
PiYmKTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBkaWRDcmVhdGVT
bGVlcERpc2FibGVyKHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBi
b29sIGRpc3BsYXkpOworICAgIHZvaWQgZGlkRGVzdHJveVNsZWVwRGlzYWJsZXIodWludDY0X3Qg
aWRlbnRpZmllcik7CisjZW5kaWYKKwogICAgIGVudW0gY2xhc3MgSXNXZWFrIHsgTm8sIFllcyB9
OwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWtPclN0cm9uZ1B0ciB7CiAgICAg
cHVibGljOgpAQCAtNTgwLDYgKzU5MywxMCBAQCBwcml2YXRlOgogICAgICAgICBXZWFrSGFzaFNl
dDxXZWJQcm9jZXNzUHJveHk+IGNsaWVudFByb2Nlc3NlczsKICAgICB9OwogICAgIE9wdGlvbmFs
PFNlcnZpY2VXb3JrZXJJbmZvcm1hdGlvbj4gbV9zZXJ2aWNlV29ya2VySW5mb3JtYXRpb247CisK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6U2xlZXBEaXNhYmxlcj4+IG1fc2xlZXBEaXNhYmxlcnM7CisjZW5kaWYKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjU5MDQ1KQor
KysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCSh3
b3JraW5nIGNvcHkpCkBAIC04MCw0ICs4MCw5IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94
eSBMZWdhY3lSZWNlaXYKICAgICBTZW5kTWVzc2FnZVRvV2ViQ29udGV4dChzdHJ1Y3QgV2ViS2l0
OjpVc2VyTWVzc2FnZSB1c2VyTWVzc2FnZSkKICAgICBTZW5kTWVzc2FnZVRvV2ViQ29udGV4dFdp
dGhSZXBseShzdHJ1Y3QgV2ViS2l0OjpVc2VyTWVzc2FnZSB1c2VyTWVzc2FnZSkgLT4gKHN0cnVj
dCBXZWJLaXQ6OlVzZXJNZXNzYWdlIHJlcGx5TWVzc2FnZSkgQXN5bmMKICNlbmRpZgorCisjaWYg
UExBVEZPUk0oQ09DT0EpCisgICAgRGlkQ3JlYXRlU2xlZXBEaXNhYmxlcih1aW50NjRfdCBpZGVu
dGlmaWVyLCBTdHJpbmcgcmVhc29uLCBib29sIGRpc3BsYXkpCisgICAgRGlkRGVzdHJveVNsZWVw
RGlzYWJsZXIodWludDY0X3QgaWRlbnRpZmllcikKKyNlbmRpZgogfQpJbmRleDogU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGVGb3JUZXN0aW5nLmgJKHJldmlzaW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCSh3b3JraW5nIGNv
cHkpCkBAIC02NCw0ICs2NCw1IEBACiArICh2b2lkKV9zZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50
aWZpZXI6KE5TU3RyaW5nICopYnVuZGxlSWRlbnRpZmllcjsKICsgKHZvaWQpX2NsZWFyQXBwbGlj
YXRpb25CdW5kbGVJZGVudGlmaWVyVGVzdGluZ092ZXJyaWRlOwogCistIChCT09MKV9oYXNTbGVl
cERpc2FibGVyOwogQGVuZApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1Rlc3RpbmcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0JKHJldmlzaW9uIDI1OTA0NSkKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMjAsNCArMjIwLDkgQEAgKyAodm9pZClfY2xlYXJBcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZQogICAgIFdlYkNvcmU6OmNsZWFyQXBwbGljYXRpb25CdW5kbGVJZGVudGlm
aWVyVGVzdGluZ092ZXJyaWRlKCk7CiB9CiAKKy0gKEJPT0wpX2hhc1NsZWVwRGlzYWJsZXIKK3sK
KyAgICByZXR1cm4gX3BhZ2UgPyBfcGFnZS0+cHJvY2VzcygpLmhhc1NsZWVwRGlzYWJsZXIoKSA6
IGZhbHNlOworfQorCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJQcm9jZXNzUHJveHlDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQkocmV2aXNpb24gMjU5MDQ1KQorKysg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0JKHdv
cmtpbmcgY29weSkKQEAgLTI0OCw0ICsyNDgsMjAgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnVu
YmxvY2tQcmVmZXJlbmNlUwogfQogI2VuZGlmCiAKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRD
cmVhdGVTbGVlcERpc2FibGVyKHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgcmVh
c29uLCBib29sIGRpc3BsYXkpCit7CisgICAgYXV0byBzbGVlcERpc2FibGVyID0gV2ViQ29yZTo6
U2xlZXBEaXNhYmxlcjo6Y3JlYXRlKHJlYXNvbi51dGY4KCkuZGF0YSgpLCBkaXNwbGF5ID8gUEFM
OjpTbGVlcERpc2FibGVyOjpUeXBlOjpEaXNwbGF5IDogUEFMOjpTbGVlcERpc2FibGVyOjpUeXBl
OjpTeXN0ZW0pOworICAgIG1fc2xlZXBEaXNhYmxlcnMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUo
c2xlZXBEaXNhYmxlcikpOworfQorCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRGVzdHJveVNs
ZWVwRGlzYWJsZXIodWludDY0X3QgaWRlbnRpZmllcikKK3sKKyAgICBtX3NsZWVwRGlzYWJsZXJz
LnJlbW92ZShpZGVudGlmaWVyKTsKK30KKworYm9vbCBXZWJQcm9jZXNzUHJveHk6Omhhc1NsZWVw
RGlzYWJsZXIoKQoreworICAgIHJldHVybiBtX3NsZWVwRGlzYWJsZXJzLnNpemUoKSA+IDA7Cit9
CisKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gMjU5MDQ1KQorKysgU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDk3OSw2ICs0OTc5LDggQEAK
IAkJQzE0OTM4MDIyMjM0MUM2MDAwMENENzA3IC8qIFdlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQzE0OTM4MDMyMjM0MURGNzAwMENENzA3IC8qIFdlYlNwZWVjaFN5
bnRoZXNpc0NsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTcGVlY2hTeW50aGVzaXND
bGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTQ5MzgwQTIyMzg1M0JF
MDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzVm9pY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
U3BlZWNoU3ludGhlc2lzVm9pY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzE0
OUQ1NTIyNDJFOUIzMTAwM0VCQjEyIC8qIFdlYlNsZWVwRGlzYWJsZXJDbGllbnQubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJTbGVlcERpc2FibGVyQ2xpZW50
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMTQ5RDU1MzI0MkU5QjMyMDAzRUJC
MTIgLyogV2ViU2xlZXBEaXNhYmxlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJTbGVlcERpc2FibGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMxNUNCQjMzMjNGMzRDMzgwMDMwMENDNyAvKiBQcmVmZXJlbmNlT2JzZXJ2ZXIubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcmVmZXJlbmNlT2JzZXJ2ZXIubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUMxODE3MzVFMjA1ODM5RjYwMERGREE2NSAvKiBEcmF3aW5nQXJl
YU1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEcmF3aW5nQXJlYU1hYy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxODE3MzYwMjA1ODQyNDcwMERGREE2NSAvKiBEaXNwbGF5
TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtODMxOCw2ICs4MzIwLDggQEAKIAkJCQk1MkQ1QTFCNDFDNTc0OUYyMDBERTM0
QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSAqLywKIAkJCQlFQ0E2ODBENzFFNjkwREY4
MDA3MzFEMjAgLyogV2ViUHJvY2Vzc0NvY29hLmggKi8sCiAJCQkJN0M2RTcwRjkxOEIyRDRBMDAw
RjI0RTJFIC8qIFdlYlByb2Nlc3NDb2NvYS5tbSAqLywKKwkJCQlDMTQ5RDU1MzI0MkU5QjMyMDAz
RUJCMTIgLyogV2ViU2xlZXBEaXNhYmxlckNsaWVudC5oICovLAorCQkJCUMxNDlENTUyMjQyRTlC
MzEwMDNFQkIxMiAvKiBXZWJTbGVlcERpc2FibGVyQ2xpZW50Lm1tICovLAogCQkJKTsKIAkJCXBh
dGggPSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHJldmlzaW9u
IDI1OTA0NSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29j
b2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbXBvcnQgIldlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NEYXRhU3RvcmVQYXJh
bWV0ZXJzLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2ltcG9ydCAi
V2ViU2xlZXBEaXNhYmxlckNsaWVudC5oIgogI2ltcG9ydCAiV2Vic2l0ZURhdGFTdG9yZVBhcmFt
ZXRlcnMuaCIKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0NvbmZpZ0ZpbGUuaD4KICNpbXBvcnQg
PEphdmFTY3JpcHRDb3JlL09wdGlvbnMuaD4KQEAgLTYzLDEwICs2NCwxMiBAQAogI2ltcG9ydCA8
V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL01lbW9yeVJlbGVh
c2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvTlNTY3JvbGxlckltcERldGFpbHMuaD4KKyNpbXBvcnQg
PFdlYkNvcmUvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUGVyZm9ybWFuY2VMb2dnaW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BpY3R1cmVJblBpY3R1
cmVTdXBwb3J0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5o
PgogI2ltcG9ydCA8V2ViQ29yZS9TV0NvbnRleHRNYW5hZ2VyLmg+CisjaW1wb3J0IDxXZWJDb3Jl
L1N5c3RlbUJhdHRlcnkuaD4KICNpbXBvcnQgPFdlYkNvcmUvVVRJVXRpbGl0aWVzLmg+CiAjaW1w
b3J0IDxhbGdvcml0aG0+CiAjaW1wb3J0IDxkaXNwYXRjaC9kaXNwYXRjaC5oPgpAQCAtMTMxLDEx
ICsxMzQsNiBAQAogI2ltcG9ydCA8b3Mvc3RhdGVfcHJpdmF0ZS5oPgogI2VuZGlmCiAKLSNpZiBQ
TEFURk9STShDT0NPQSkKLSNpbXBvcnQgPFdlYkNvcmUvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRG
aWx0ZXIuaD4KLSNpbXBvcnQgPFdlYkNvcmUvU3lzdGVtQmF0dGVyeS5oPgotI2VuZGlmCi0KICNp
ZiBIQVZFKENTQ0hFQ0tGSVhESVNBQkxFKQogZXh0ZXJuICJDIiB2b2lkIF9DU0NoZWNrRml4RGlz
YWJsZSgpOwogI2VuZGlmCkBAIC0zMTgsNiArMzE2LDggQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0
Zm9ybUluaXRpYWxpemVXZWJQcgogICAgICAgICBzZXRWZWN0b3JPZlVUVHlwZUl0ZW0oV1RGTW92
ZShwYXJhbWV0ZXJzLnZlY3Rvck9mVVRUeXBlSXRlbSkpOwogICAgIH0KICNlbmRpZgorCisgICAg
V2ViQ29yZTo6c2V0U2xlZXBEaXNhYmxlckNsaWVudChtYWtlVW5pcXVlPFdlYlNsZWVwRGlzYWJs
ZXJDbGllbnQ+KCkpOwogfQogCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtU2V0V2Vic2l0ZURh
dGFTdG9yZVBhcmFtZXRlcnMoV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMmJiBwYXJhbWV0
ZXJzKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlNsZWVwRGlzYWJs
ZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
V2ViU2xlZXBEaXNhYmxlckNsaWVudC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9XZWJTbGVlcERpc2FibGVyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwzOSBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0
OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8V2ViQ29yZS9TbGVlcERpc2FibGVyQ2xpZW50
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTbGVlcERpc2FibGVyQ2xpZW50
IDogcHVibGljIFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJDbGllbnQgeworICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHZvaWQgZGlkQ3JlYXRlU2xlZXBEaXNhYmxlcih1
aW50cHRyX3QsIGNvbnN0IFN0cmluZyYsIGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkRGVz
dHJveVNsZWVwRGlzYWJsZXIodWludHB0cl90KSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlNsZWVw
RGlzYWJsZXJDbGllbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1dlYlNsZWVwRGlzYWJsZXJDbGllbnQubW0JKG5vbmV4aXN0ZW50KQorKysgU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlNsZWVwRGlzYWJsZXJDbGllbnQubW0JKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw0NCBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
KiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJTbGVlcERpc2Fi
bGVyQ2xpZW50LmgiCisKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiV2ViUHJv
Y2Vzc1Byb3h5TWVzc2FnZXMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViU2xl
ZXBEaXNhYmxlckNsaWVudDo6ZGlkQ3JlYXRlU2xlZXBEaXNhYmxlcih1aW50cHRyX3QgaWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiByZWFzb24sIGJvb2wgZGlzcGxheSkKK3sKKyAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzUHJveHk6OkRpZENyZWF0ZVNsZWVwRGlzYWJsZXIoaWRlbnRpZmllciwgcmVh
c29uLCBkaXNwbGF5KSwgMCk7Cit9CisKK3ZvaWQgV2ViU2xlZXBEaXNhYmxlckNsaWVudDo6ZGlk
RGVzdHJveVNsZWVwRGlzYWJsZXIodWludHB0cl90IGlkZW50aWZpZXIpCit7CisgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6V2ViUHJvY2Vzc1Byb3h5OjpEaWREZXN0cm95U2xlZXBEaXNhYmxlcihpZGVudGlmaWVyKSwg
MCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjU5MTMyKQorKysgVG9vbHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMjcgIFBl
ciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gU2xl
ZXAgZGlzYWJsaW5nIHNob3VsZCBiZSBwZXJmb3JtZWQgaW4gdGhlIFVJIHByb2Nlc3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTY3NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU2xlZXBEaXNhYmxlci5tbTogQWRkZWQuCisgICAgICAg
IChURVNUKToKKwogMjAyMC0wMy0yNyAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW0ZsYXRwYWsgU0RLXSBBbGxvdyBwYXNzaW5nIGdzdC1idWlsZCBN
ZXNvbiBvcHRpb25zCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjU5MDQ1
KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTg4Myw2ICs4ODMsNyBAQAogCQlDMEM1RDNDNjE0
NTk5MTI5MDBBODAyQTYgLyogR2V0QmFja2luZ1NjYWxlRmFjdG9yX0J1bmRsZS5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwQzVEM0JEMTQ1OThCNkYw
MEE4MDJBNiAvKiBHZXRCYWNraW5nU2NhbGVGYWN0b3JfQnVuZGxlLm1tICovOyB9OwogCQlDMTNE
ODJEOTI0MTZGMTMyMDBBNjI3OTMgLyogRW5hYmxlQWNjZXNzaWJpbGl0eS5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxM0Q4MkQ4MjQxNkYxMzIwMEE2
Mjc5MyAvKiBFbmFibGVBY2Nlc3NpYmlsaXR5Lm1tICovOyB9OwogCQlDMTQ1Q0MwQzIzREE1QTFG
MDAzQTVFRUIgLyogTWltZVR5cGVzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzE0NUNDMEIyM0RBNUEwRjAwM0E1RUVCIC8qIE1pbWVUeXBlcy5tbSAq
LzsgfTsKKwkJQzE0OUQ1NTAyNDJFOThERjAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTQ5RDU0RjI0MkU5
ODQ0MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlci5tbSAqLzsgfTsKIAkJQzE1Q0JCMzAyM0YxRkYx
QTAwMzAwQ0M3IC8qIEJhY2tsaWdodExldmVsTm90aWZpY2F0aW9uLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE1Q0JCMkYyM0YxRkYxQTAwMzAwQ0M3
IC8qIEJhY2tsaWdodExldmVsTm90aWZpY2F0aW9uLm1tICovOyB9OwogCQlDMTVDQkIzRjIzRkIx
NzdBMDAzMDBDQzcgLyogUHJlZmVyZW5jZUNoYW5nZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTVDQkIzRTIzRkIxNzdBMDAzMDBDQzcgLyogUHJl
ZmVyZW5jZUNoYW5nZXMubW0gKi87IH07CiAJCUMxNjkyRENBMjNEMTBEQUUwMDZFODhGNyAvKiBC
YXR0ZXJ5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzE2OTJEQzkyM0QxMERBRTAwNkU4OEY3IC8qIEJhdHRlcnkubW0gKi87IH07CkBAIC0yNDU4LDYg
KzI0NTksNyBAQAogCQlDMEM1RDNCRDE0NTk4QjZGMDBBODAyQTYgLyogR2V0QmFja2luZ1NjYWxl
RmFjdG9yX0J1bmRsZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IEdldEJhY2tpbmdTY2FsZUZhY3Rvcl9CdW5kbGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMxM0Q4MkQ4MjQxNkYxMzIwMEE2Mjc5MyAvKiBFbmFibGVBY2Nlc3NpYmlsaXR5Lm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gRW5hYmxlQWNjZXNzaWJpbGl0eS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE0NUNDMEIyM0RBNUEwRjAwM0E1RUVCIC8qIE1pbWVUeXBl
cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1pbWVUeXBlcy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzE0OUQ1NEYyNDJFOTg0NDAwM0VCQjEy
IC8qIFNsZWVwRGlzYWJsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBTbGVlcERpc2FibGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTVD
QkIyRjIzRjFGRjFBMDAzMDBDQzcgLyogQmFja2xpZ2h0TGV2ZWxOb3RpZmljYXRpb24ubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBCYWNrbGlnaHRMZXZlbE5vdGlmaWNhdGlvbi5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE1Q0JCM0UyM0ZCMTc3QTAwMzAwQ0M3IC8qIFByZWZl
cmVuY2VDaGFuZ2VzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
UHJlZmVyZW5jZUNoYW5nZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNjky
REM5MjNEMTBEQUUwMDZFODhGNyAvKiBCYXR0ZXJ5Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
QmF0dGVyeS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI5MjEsNiArMjkyMyw3
IEBACiAJCQkJQzE0NUNDMEIyM0RBNUEwRjAwM0E1RUVCIC8qIE1pbWVUeXBlcy5tbSAqLywKIAkJ
CQlFMzI1QzkwNjIzRTM4NzAyMDBCQzdEM0IgLyogUGljdHVyZUluUGljdHVyZVN1cHBvcnQubW0g
Ki8sCiAJCQkJQzE1Q0JCM0UyM0ZCMTc3QTAwMzAwQ0M3IC8qIFByZWZlcmVuY2VDaGFuZ2VzLm1t
ICovLAorCQkJCUMxNDlENTRGMjQyRTk4NDQwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyLm1tICov
LAogCQkJCUMxOTRFMzFDMjQwOURGNDMwMDI5MzlFRCAvKiBVVElGcm9tTUlNRVR5cGUubW0gKi8s
CiAJCQkJRTNDQUFBNEIyNDE1NTA1MTAwQ0VEMkUyIC8qIFVUSUZyb21UYWcubW0gKi8sCiAJCQkJ
MEYxMzlFNzUxQTQyM0E1MzAwRjU5MEY1IC8qIFdlYWtPYmpDUHRyLm1tICovLApAQCAtNTA1OCw2
ICs1MDYxLDcgQEAKIAkJCQkzN0JDQTYxQzFCNTk2QkE5MDAyMDEyQ0EgLyogU2hvdWxkT3BlbkV4
dGVybmFsVVJMc0luTmV3V2luZG93QWN0aW9ucy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDODNF
MEM1MUQwQTY1NDYwMEZFQkNGMyAvKiBTaHJpbmtUb0ZpdC5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTdDQ0U3RUNEMUE0MTFBN0UwMDQ0N0M0QyAvKiBTaW1wbGlmeU1hcmt1cC5tbSBpbiBTb3VyY2Vz
ICovLAorCQkJCUMxNDlENTUwMjQyRTk4REYwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMkRGRjdCNkQxREE0ODdBRjAwODE0NjE0IC8qIFNuYXBzaG90U3Rv
cmUubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRjRGRkE5RTFFRDNBQTg1MDBGNzExMUYgLyogU25h
cHNob3RWaWFSZW5kZXJJbkNvbnRleHQubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0YxNTFB
NDExQUU2MDA0NDdDNEMgLyogU3BhY2ViYXJTY3JvbGxpbmcuY3BwIGluIFNvdXJjZXMgKi8sCklu
ZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TbGVlcERpc2FibGVyLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1NsZWVwRGlzYWJs
ZXIubW0JKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
U2xlZXBEaXNhYmxlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgV0tfSEFWRV9DX1NQSQorCisjaW1wb3J0
ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9y
dCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmg+CisjaW1wb3J0IDx3dGYvVGhy
ZWFkaW5nLmg+CisKK1RFU1QoV2ViS2l0LCBTbGVlcERpc2FibGVyKQoreworICAgIGF1dG8gY29u
ZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0
XSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhUZXN0
V2ViS2l0QVBJOjpVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbnRl
cm5hbHNJbmplY3RlZEJ1bmRsZVRlc3QiKSk7CisgICAgY29uZmlndXJhdGlvbi5nZXQoKS5wcm9j
ZXNzUG9vbCA9IChXS1Byb2Nlc3NQb29sICopY29udGV4dC5nZXQoKTsKKyAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRk
VG9XaW5kb3c6WUVTXSk7CisKKyAgICBBU1NFUlRfRkFMU0UoW3dlYlZpZXcgX2hhc1NsZWVwRGlz
YWJsZXJdKTsKKworICAgIGF1dG8gY3JlYXRlU2xlZXBEaXNhYmxlciA9IFsmXSB7CisgICAgICAg
IHJldHVybiBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93Lmlu
dGVybmFscy5jcmVhdGVTbGVlcERpc2FibGVyKFwiVGVzdERpc2FibGVyXCIsIHRydWUpIl0ubG9u
Z0xvbmdWYWx1ZTsKKyAgICB9OworCisgICAgYXV0byBpZGVudGlmaWVyID0gY3JlYXRlU2xlZXBE
aXNhYmxlcigpOworCisgICAgQVNTRVJUX05FKGlkZW50aWZpZXIsIDApOworCisgICAgQVNTRVJU
X1RSVUUoW3dlYlZpZXcgX2hhc1NsZWVwRGlzYWJsZXJdKTsKKworICAgIGF1dG8gZGVzdHJveVNs
ZWVwRGlzYWJsZXIgPSBbJl0geworICAgICAgICBOU1N0cmluZyAqanMgPSBbTlNTdHJpbmcgc3Ry
aW5nV2l0aEZvcm1hdDpAIndpbmRvdy5pbnRlcm5hbHMuZGVzdHJveVNsZWVwRGlzYWJsZXIoJWxs
ZCkiLCBpZGVudGlmaWVyXTsKKyAgICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVh
dGluZ0phdmFTY3JpcHQ6anNdOworICAgIH07CisKKyAgICBBU1NFUlRfVFJVRShkZXN0cm95U2xl
ZXBEaXNhYmxlcigpKTsKKworICAgIEFTU0VSVF9GQUxTRShbd2ViVmlldyBfaGFzU2xlZXBEaXNh
Ymxlcl0pOworfQorCisjZW5kaWYgLy8gV0tfSEFWRV9DX1NQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394762</attachid>
            <date>2020-03-27 14:56:34 -0700</date>
            <delta_ts>2020-03-28 08:30:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209676-20200327145633.patch</filename>
            <type>text/plain</type>
            <size>40114</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTE0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDIwLTAzLTI3ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFNsZWVwIGRp
c2FibGluZyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW5jZSBzbGVlcCBkaXNhYmxp
bmcgaXMgY2F1c2luZyBjb21tdW5pY2F0aW9uIHdpdGggdGhlIHBvd2VyIG1hbmFnZW1lbnQgc2Vy
dmljZSwgaXQgc2hvdWxkIGJlIHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAg
VGhpcyBwYXRjaCBmaXhlcyB0aGlzIGJ5IGNyZWF0aW5nIGEgc2xlZXAgZGlzYWJsZXIgY2xpZW50
LCB3aGljaCB3aWxsIG5vdGlmeSB0aGUgVUkgcHJvY2VzcyB3aGVuIGEgc2xlZXAgZGlzYWJsZXIg
aXMgYmVpbmcKKyAgICAgICAgY3JlYXRlZCBhbmQgZGVzdHJveWVkLiBJbiByZXNwb25zZSB0byB0
aGVzZSBtZXNzYWdlcywgdGhlIFVJIHByb2Nlc3Mgd2lsbCBwZXJmb3JtIHRoZSBhY3R1YWwgc2xl
ZXAgZGlzYWJsaW5nIGFuZCBlbmFibGluZy4KKyAgICAgICAgQSBuZXcgc2xlZXAgZGlzYWJsZXIg
Y2xhc3MgaXMgY3JlYXRlZCB3aGljaCB3cmFwcyB0aGUgUEFMIHNsZWVwIGRpc2FibGVyLCBhbmQg
bm90aWZpZXMgdGhlIHNsZWVwIGRpc2FibGVyIGNsaWVudCB3aGVuIHNldC4KKyAgICAgICAgSWYg
dGhlIHNsZWVwIGRpc2FibGVyIGNsaWVudCBpcyBzZXQsIGEgUEFMIHNsZWVwIGRpc2FibGVyIGlu
c3RhbmNlIHdpbGwgbm90IGJlIGNyZWF0ZWQgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcywgc2lu
Y2UgdGhpcworICAgICAgICB3aWxsIHRoZW4gaGFwcGVuIGluIHRoZSBVSSBwcm9jZXNzLgorCisg
ICAgICAgIEFQSSB0ZXN0OiBXZWJLaXQuU2xlZXBEaXNhYmxlcgorCisgICAgICAgICogU291cmNl
cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50Ojp1cGRhdGVTbGVlcERpc2FibGluZyk6CisgICAgICAgICogcGxhdGZvcm0v
U2xlZXBEaXNhYmxlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6c2xlZXBEaXNhYmxl
ckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpzZXRTbGVlcERpc2FibGVyQ2xpZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTbGVlcERpc2FibGVyOjpTbGVlcERpc2FibGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNsZWVw
RGlzYWJsZXI6On5TbGVlcERpc2FibGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TbGVlcERpc2Fi
bGVyLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL1NsZWVwRGlzYWJsZXJDbGllbnQuaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTbGVlcERpc2FibGVyQ2xpZW50Ojp+U2xlZXBEaXNh
YmxlckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTbGVlcERpc2FibGVyQ2xpZW50OjpkaWRD
cmVhdGVTbGVlcERpc2FibGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJDbGll
bnQ6OmRpZERlc3Ryb3lTbGVlcERpc2FibGVyKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmNyZWF0ZVNsZWVwRGlzYWJsZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpkZXN0cm95U2xlZXBEaXNhYmxlcik6Cisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
cy5pZGw6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMubW06CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OmNyZWF0ZVNsZWVwRGlzYWJsZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW50
ZXJuYWxzOjpkZXN0cm95U2xlZXBEaXNhYmxlcik6CisKIDIwMjAtMDMtMjYgIFl1c3VrZSBTdXp1
a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgRW5zdXJlU3RpbGxBbGl2ZVNj
b3BlIHRvIGtlZXAgSlNWYWx1ZXMgYWxpdmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAy
NTkwNDUpCisrKyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MTc5OCw2ICsxNzk4LDcgQEAgcGxhdGZvcm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5jcHAK
IHBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAKIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlckNodW5rUmVh
ZGVyLmNwcAogcGxhdGZvcm0vU2hhcmVkU3RyaW5nSGFzaC5jcHAKK3BsYXRmb3JtL1NsZWVwRGlz
YWJsZXIuY3BwCiBwbGF0Zm9ybS9TdGF0aWNQYXN0ZWJvYXJkLmNwcAogcGxhdGZvcm0vVGhlbWUu
Y3BwCiBwbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjU5MDQ1
KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC0zOTg2LDYgKzM5ODYsOCBAQAogCQlDMTA1REE2NDBGM0FBNkI4MDAx
REQ0NEYgLyogVGV4dEVuY29kaW5nRGV0ZWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxMDVEQTYzMEYzQUE2QjgwMDFERDQ0RiAvKiBUZXh0RW5j
b2RpbmdEZXRlY3Rvci5oICovOyB9OwogCQlDMTFBOUVDRTIxNDAzQTVDMDBDRkIyMEEgLyogU3dp
dGNoaW5nR1BVQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDMTFBOUVDRDIxNDAzQTVDMDBDRkIyMEEgLyogU3dpdGNoaW5nR1BVQ2xpZW50Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzE0OTM4
MDcyMjM0NTUxQTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE0OTM4MDUyMjM0MjcxOTAwMENE
NzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCUMxNDlENTVEMjQyRUE2QjkwMDNFQkIxMiAvKiBTbGVl
cERpc2FibGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMTQ5RDU1QTI0MkVBNEY5MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUMxNDlENTVGMjQyRUE3Qjgw
MDNFQkIxMiAvKiBTbGVlcERpc2FibGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTQ5RDU1QjI0MkVBNEZBMDAzRUJCMTIgLyogU2xlZXBE
aXNhYmxlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUMxNjkyREQyMjNEMjNBQkQwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5Lm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE2OTJERDEyM0Qy
M0FCRDAwNkU4OEY3IC8qIFN5c3RlbUJhdHRlcnkubW0gKi87IH07CiAJCUMxNjkyREQ1MjNEMjNF
MDgwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMTY5MkRENDIzRDIzQUUwMDA2RTg4RjcgLyogU3lzdGVtQmF0
dGVyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUMxRTFEMjM2MjAzREYxNTQwMDU4NDY2NSAvKiBTY3JlZW5Qcm9wZXJ0aWVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMUUxRDIzNTIwM0RGMTU0MDA1
ODQ2NjUgLyogU2NyZWVuUHJvcGVydGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC0xMzU4Miw2ICsxMzU4NCw5IEBACiAJCUMxMUE5RUNEMjE0
MDNBNUMwMENGQjIwQSAvKiBTd2l0Y2hpbmdHUFVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3dp
dGNoaW5nR1BVQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxMUE5RUQy
MjE0MDU3OEIwMENGQjIwQSAvKiBTd2l0Y2hpbmdHUFVDbGllbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU3dpdGNoaW5nR1BVQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQzE0OTM4MDUyMjM0MjcxOTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTcGVlY2hTeW50aGVzaXNDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQzE0OUQ1NTkyNDJFQTRGODAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2xlZXBEaXNhYmxlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMxNDlENTVBMjQyRUE0RjkwMDNFQkIxMiAv
KiBTbGVlcERpc2FibGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNsZWVw
RGlzYWJsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzE0OUQ1NUIyNDJFQTRG
QTAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU2xlZXBEaXNhYmxlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDMTY5MkREMTIzRDIzQUJEMDA2RTg4RjcgLyogU3lzdGVtQmF0dGVyeS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFN5c3RlbUJhdHRlcnkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUMxNjkyREQ0MjNEMjNBRTAwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFN5c3RlbUJhdHRlcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQzFFMUQyMzUyMDNERjE1NDAwNTg0NjY1IC8qIFNjcmVlblByb3BlcnRpZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2NyZWVuUHJvcGVydGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjYyNDUsNiArMjYyNTAsOSBAQAogCQkJCTgzNERGQUNFMUY3REFFNTcwMEMyNzI1QiAvKiBT
aGFyZWRTdHJpbmdIYXNoLmNwcCAqLywKIAkJCQk4MzRERkFDQzFGN0RBRTU2MDBDMjcyNUIgLyog
U2hhcmVkU3RyaW5nSGFzaC5oICovLAogCQkJCTkzMzA5RUEwMDk5RUI3OEMwMDU2RTU4MSAvKiBT
aGFyZWRUaW1lci5oICovLAorCQkJCUMxNDlENTU5MjQyRUE0RjgwMDNFQkIxMiAvKiBTbGVlcERp
c2FibGVyLmNwcCAqLywKKwkJCQlDMTQ5RDU1QTI0MkVBNEY5MDAzRUJCMTIgLyogU2xlZXBEaXNh
Ymxlci5oICovLAorCQkJCUMxNDlENTVCMjQyRUE0RkEwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVy
Q2xpZW50LmggKi8sCiAJCQkJQTMzNEJEODIyMTk0RTQ2MTAwMDBENzdGIC8qIFNTTEtleUdlbmVy
YXRvci5jcHAgKi8sCiAJCQkJRjU4Nzg2NjIwMkRFM0IxMTAxRUE0MTIyIC8qIFNTTEtleUdlbmVy
YXRvci5oICovLAogCQkJCUY0MzNFOTA0MURCQkRCQzIwMEVGMEQxNCAvKiBTdGF0aWNQYXN0ZWJv
YXJkLmNwcCAqLywKQEAgLTMyNzE2LDYgKzMyNzI0LDggQEAKIAkJCQk5NDQ0Q0JENjFEODYwQzhC
MDA3M0EwNzQgLyogU2l6ZXNBdHRyaWJ1dGVQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk0
NDRDQkQ0MUQ4NjBDOEIwMDczQTA3NCAvKiBTaXplc0NhbGNQYXJzZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQ5RTkxMUNEMEVGODZENDcwMDlEMENBRiAvKiBTa2V3VHJhbnNmb3JtT3BlcmF0aW9u
LmggaW4gSGVhZGVycyAqLywKKwkJCQlDMTQ5RDU1RDI0MkVBNkI5MDAzRUJCMTIgLyogU2xlZXBE
aXNhYmxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQzE0OUQ1NUYyNDJFQTdCODAwM0VCQjEyIC8q
IFNsZWVwRGlzYWJsZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNTBGOUYxMTJCNkUw
RTcwMDA4Qzg2MCAvKiBTbGlkZXJUaHVtYkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTlC
NTMyRUE0MUJBOTI4NTcwMDM4QTgyNyAvKiBTbG90QXNzaWdubWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNEI2RkE2RjQwQzM5RTQ4QzAwMDg3MDExIC8qIFNtYXJ0UmVwbGFjZS5oIGluIEhlYWRl
cnMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTkyLDYgKzkyLDcgQEAKICNpbmNsdWRlICJTZWN1cml0eVBv
bGljeS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgor
I2luY2x1ZGUgIlNsZWVwRGlzYWJsZXIuaCIKICNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCiAjaW5j
bHVkZSAiVXNlckNvbnRlbnRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRp
Y2F0b3IuaCIKQEAgLTk5LDcgKzEwMCw2IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVWlu
dDhBcnJheS5oPgogI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+
Ci0jaW5jbHVkZSA8cGFsL3N5c3RlbS9TbGVlcERpc2FibGVyLmg+CiAjaW5jbHVkZSA8d3RmL0Fs
Z29yaXRobXMuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUg
PHd0Zi9MYW5ndWFnZS5oPgpAQCAtNjk0Niw3ICs2OTQ2LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50Ojp1cGRhdGVTbGVlcERpc2FibAogICAgIGVsc2UgaWYgKHNob3VsZERpc2FibGVTbGVlcCAh
PSBTbGVlcFR5cGU6Ok5vbmUpIHsKICAgICAgICAgYXV0byB0eXBlID0gc2hvdWxkRGlzYWJsZVNs
ZWVwID09IFNsZWVwVHlwZTo6RGlzcGxheSA/IFBBTDo6U2xlZXBEaXNhYmxlcjo6VHlwZTo6RGlz
cGxheSA6IFBBTDo6U2xlZXBEaXNhYmxlcjo6VHlwZTo6U3lzdGVtOwogICAgICAgICBpZiAoIW1f
c2xlZXBEaXNhYmxlciB8fCBtX3NsZWVwRGlzYWJsZXItPnR5cGUoKSAhPSB0eXBlKQotICAgICAg
ICAgICAgbV9zbGVlcERpc2FibGVyID0gUEFMOjpTbGVlcERpc2FibGVyOjpjcmVhdGUoImNvbS5h
cHBsZS5XZWJDb3JlOiBIVE1MTWVkaWFFbGVtZW50IHBsYXliYWNrIiwgdHlwZSk7CisgICAgICAg
ICAgICBtX3NsZWVwRGlzYWJsZXIgPSBTbGVlcERpc2FibGVyOjpjcmVhdGUoImNvbS5hcHBsZS5X
ZWJDb3JlOiBIVE1MTWVkaWFFbGVtZW50IHBsYXliYWNrIiwgdHlwZSk7CiAgICAgfQogCiAgICAg
aWYgKG1fcGxheWVyKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxl
ci5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNh
Ymxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTbGVlcERpc2FibGVyLmgiCisKKyNpbmNsdWRl
ICJTbGVlcERpc2FibGVyQ2xpZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxTbGVlcERpc2FibGVyQ2xpZW50PiYgc2xlZXBEaXNhYmxlckNsaWVu
dCgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6dW5pcXVlX3B0cjxTbGVlcERp
c2FibGVyQ2xpZW50Pj4gY2xpZW50OworICAgIHJldHVybiBjbGllbnQuZ2V0KCk7Cit9CisKK3Zv
aWQgc2V0U2xlZXBEaXNhYmxlckNsaWVudChzdGQ6OnVuaXF1ZV9wdHI8U2xlZXBEaXNhYmxlckNs
aWVudD4mJiBjbGllbnQpCit7CisgICAgYXV0byYgYyA9IHNsZWVwRGlzYWJsZXJDbGllbnQoKTsK
KyAgICBjID0gV1RGTW92ZShjbGllbnQpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8U2xlZXBEaXNh
Ymxlcj4gU2xlZXBEaXNhYmxlcjo6Y3JlYXRlKGNvbnN0IGNoYXIqIHJlYXNvbiwgVHlwZSB0eXBl
KQoreworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8U2xlZXBEaXNhYmxlcj4obmV3IFNsZWVw
RGlzYWJsZXIocmVhc29uLCB0eXBlKSk7Cit9CisKK1NsZWVwRGlzYWJsZXI6OlNsZWVwRGlzYWJs
ZXIoY29uc3QgY2hhciogcmVhc29uLCBUeXBlIHR5cGUpCisgICAgOiBQQUw6OlNsZWVwRGlzYWJs
ZXIocmVhc29uLCB0eXBlKQoreworICAgIGlmIChzbGVlcERpc2FibGVyQ2xpZW50KCkpIHsKKyAg
ICAgICAgc2xlZXBEaXNhYmxlckNsaWVudCgpLT5kaWRDcmVhdGVTbGVlcERpc2FibGVyKHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pih0aGlzKSwgcmVhc29uLCB0eXBlID09IFR5cGU6OkRpc3Bs
YXkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9zbGVlcERpc2FibGVyID0gUEFM
OjpTbGVlcERpc2FibGVyOjpjcmVhdGUocmVhc29uLCB0eXBlKTsKK30KKworU2xlZXBEaXNhYmxl
cjo6flNsZWVwRGlzYWJsZXIoKQoreworICAgIGlmIChzbGVlcERpc2FibGVyQ2xpZW50KCkpCisg
ICAgICAgIHNsZWVwRGlzYWJsZXJDbGllbnQoKS0+ZGlkRGVzdHJveVNsZWVwRGlzYWJsZXIocmVp
bnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHRoaXMpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJsZXIuaAkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSA8cGFsL3N5c3RlbS9TbGVlcERpc2FibGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgU2xlZXBEaXNhYmxlciA6IHB1YmxpYyBQQUw6OlNsZWVwRGlzYWJsZXIgewor
cHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U2xlZXBE
aXNhYmxlcj4gY3JlYXRlKGNvbnN0IGNoYXIqLCBQQUw6OlNsZWVwRGlzYWJsZXI6OlR5cGUpOwor
ICAgIHZpcnR1YWwgflNsZWVwRGlzYWJsZXIoKTsKKworcHJpdmF0ZToKKyAgICBTbGVlcERpc2Fi
bGVyKGNvbnN0IGNoYXIqLCBQQUw6OlNsZWVwRGlzYWJsZXI6OlR5cGUpOworCisgICAgc3RkOjp1
bmlxdWVfcHRyPFBBTDo6U2xlZXBEaXNhYmxlcj4gbV9zbGVlcERpc2FibGVyOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBE
aXNhYmxlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Ns
ZWVwRGlzYWJsZXJDbGllbnQuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TbGVlcERpc2FibGVyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MiBA
QAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSA8cGFsL3N5c3RlbS9TbGVlcERpc2FibGVyLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2xlZXBE
aXNhYmxlckNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+U2xlZXBEaXNhYmxlckNsaWVu
dCgpIHsgfTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlU2xlZXBEaXNhYmxlcih1aW50cHRy
X3QsIGNvbnN0IFN0cmluZyYsIGJvb2wpIHsgfTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRGVzdHJv
eVNsZWVwRGlzYWJsZXIodWludHB0cl90KSB7IH07Cit9OworCitXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFNsZWVwRGlzYWJsZXJDbGllbnQoc3RkOjp1bmlxdWVfcHRyPFNsZWVwRGlzYWJsZXJDbGll
bnQ+JiYpOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1NDcsNiArNTU0NywxNiBAQCBi
b29sIEludGVybmFsczo6aXNSZW1vdGVVSUFwcEZvckFjY2Vzc2liCiB7CiAgICAgcmV0dXJuIGZh
bHNlOwogfQorCit1aW50NjRfdCBJbnRlcm5hbHM6OmNyZWF0ZVNsZWVwRGlzYWJsZXIoY29uc3Qg
U3RyaW5nJiByZWFzb24sIGJvb2wgZGlzcGxheSkKK3sKKyAgICByZXR1cm4gMDsKK30KKworYm9v
bCBJbnRlcm5hbHM6OmRlc3Ryb3lTbGVlcERpc2FibGVyKHVpbnQ2NF90IGlkZW50aWZpZXIpCit7
CisgICAgcmV0dXJuIGZhbHNlOworfQogI2VuZGlmCiAKIFN0cmluZyBJbnRlcm5hbHM6Om1lZGlh
TUlNRVR5cGVGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHJldmlzaW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDEwIEBA
CiAjaW5jbHVkZSAiTWVkaWFFbGVtZW50U2Vzc2lvbi5oIgogI2VuZGlmCiAKKyNpZiBQTEFURk9S
TShDT0NPQSkKKyNpbXBvcnQgPFdlYkNvcmUvU2xlZXBEaXNhYmxlci5oPgorI2VuZGlmCisKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQW5pbWF0aW9uVGltZWxpbmU7CkBAIC05NjAsNiAr
OTY0LDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1JlbW90ZVVJQXBwRm9yQWNjZXNzaWJpbGl0
eSgpOwogCisgICAgdWludDY0X3QgY3JlYXRlU2xlZXBEaXNhYmxlcihjb25zdCBTdHJpbmcmIHJl
YXNvbiwgYm9vbCBkaXNwbGF5KTsKKyAgICBib29sIGRlc3Ryb3lTbGVlcERpc2FibGVyKHVpbnQ2
NF90IGlkZW50aWZpZXIpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEludGVybmFscyhEb2N1
bWVudCYpOwogICAgIERvY3VtZW50KiBjb250ZXh0RG9jdW1lbnQoKSBjb25zdDsKQEAgLTk4MSw2
ICs5ODgsMTAgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3JTdHVi
RnJvbnRlbmQ+IG1faW5zcGVjdG9yRnJvbnRlbmQ7CiAgICAgUmVmUHRyPENhY2hlU3RvcmFnZUNv
bm5lY3Rpb24+IG1fY2FjaGVTdG9yYWdlQ29ubmVjdGlvbjsKKworI2lmIFBMQVRGT1JNKENPQ09B
KQorICAgIEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTbGVlcERp
c2FibGVyPj4gbV9zbGVlcERpc2FibGVyczsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAkocmV2aXNpb24g
MjU5MDQ1KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC04NjIsNCArODYyLDcgQEAgZW51bSBDb21wb3NpdGluZ1BvbGljeSB7CiAgICAg
Ym9vbGVhbiBzdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUoKTsKIAogICAgIGJvb2xlYW4gaXNSZW1v
dGVVSUFwcEZvckFjY2Vzc2liaWxpdHkoKTsKKworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBjcmVh
dGVTbGVlcERpc2FibGVyKERPTVN0cmluZyByZWFzb24sIGJvb2xlYW4gZGlzcGxheSk7CisgICAg
Ym9vbGVhbiBkZXN0cm95U2xlZXBEaXNhYmxlcih1bnNpZ25lZCBsb25nIGxvbmcgaWRlbnRpZmll
cik7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMubW0JKHJldmlzaW9uIDI1
OTA0NSkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0xMjEsNCArMTIxLDE3IEBAIGJvb2wgSW50ZXJuYWxzOjppc1JlbW90ZVVJQXBwRm9y
QWNjZXNzaWIKICNlbmRpZgogfQogCit1aW50NjRfdCBJbnRlcm5hbHM6OmNyZWF0ZVNsZWVwRGlz
YWJsZXIoY29uc3QgU3RyaW5nJiByZWFzb24sIGJvb2wgZGlzcGxheSkKK3sKKyAgICBhdXRvIHNs
ZWVwRGlzYWJsZXIgPSBXZWJDb3JlOjpTbGVlcERpc2FibGVyOjpjcmVhdGUocmVhc29uLnV0Zjgo
KS5kYXRhKCksIGRpc3BsYXkgPyBQQUw6OlNsZWVwRGlzYWJsZXI6OlR5cGU6OkRpc3BsYXkgOiBQ
QUw6OlNsZWVwRGlzYWJsZXI6OlR5cGU6OlN5c3RlbSk7CisgICAgYXV0byBpZGVudGlmaWVyID0g
cmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdD4oc2xlZXBEaXNhYmxlci5nZXQoKSk7CisgICAgbV9z
bGVlcERpc2FibGVycy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZShzbGVlcERpc2FibGVyKSk7Cisg
ICAgcmV0dXJuIGlkZW50aWZpZXI7Cit9CisKK2Jvb2wgSW50ZXJuYWxzOjpkZXN0cm95U2xlZXBE
aXNhYmxlcih1aW50NjRfdCBpZGVudGlmaWVyKQoreworICAgIHJldHVybiBtX3NsZWVwRGlzYWJs
ZXJzLnJlbW92ZShpZGVudGlmaWVyKTsKK30KKwogfQpJbmRleDogU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1
OTEzNykKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMzIgQEAKKzIwMjAtMDMtMjcgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29t
PgorCisgICAgICAgIFtDb2NvYV0gU2xlZXAgZGlzYWJsaW5nIHNob3VsZCBiZSBwZXJmb3JtZWQg
aW4gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwOTY3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFNpbmNlIHNsZWVwIGRpc2FibGluZyBpcyBjYXVzaW5nIGNvbW11bmljYXRpb24g
d2l0aCB0aGUgcG93ZXIgbWFuYWdlbWVudCBzZXJ2aWNlLCBpdCBzaG91bGQgYmUgcGVyZm9ybWVk
IGluIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBUaGUgVUkgcHJvY2VzcyB3aWxsIGJlIG5vdGlm
aWVkIGJ5IHRoZSBXZWJDb250ZXRuIHByb2Nlc3MgYWJvdXQgc2xlZXAgZGlzYWJsZXJzIGJlaW5n
IGNyZWF0ZWQgYW5kIGRlc3Ryb3llZCwgYW5kIHdpbGwgcGVyZm9ybQorICAgICAgICB0aGUgYWN0
dWFsIHNsZWVwIGRpc2FibGluZyBhbmQgZW5hYmxpbmcuCisKKyAgICAgICAgKiBTb3VyY2VzQ29j
b2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZv
clRlc3RpbmcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3Rp
bmcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfaGFzU2xlZXBEaXNhYmxlcl0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVTbGVlcERpc2FibGVyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWREZXN0cm95U2xlZXBEaXNhYmxlcik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6aGFzU2xlZXBEaXNhYmxlcik6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlBy
b2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViU2xlZXBEaXNhYmxlckNsaWVu
dC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlNsZWVwRGlzYWJsZXJD
bGllbnQubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJTbGVlcERpc2FibGVyQ2xpZW50
OjpkaWRDcmVhdGVTbGVlcERpc2FibGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2xlZXBEaXNh
YmxlckNsaWVudDo6ZGlkRGVzdHJveVNsZWVwRGlzYWJsZXIpOgorCiAyMDIwLTAzLTI3ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkIHNob3Vs
ZCB2YWxpZGF0ZSBpdHMgcGFyYW1ldGVycwpJbmRleDogU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAkocmV2
aXNpb24gMjU5MDQ1KQorKysgU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC01NTcsNiArNTU3LDcgQEAgV2ViUHJvY2Vzcy9jb2NvYS9QbGF5YmFja1Nlc3Np
b25NYW5hZ2VyLgogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAK
IFdlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQogV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KK1dlYlByb2Nlc3MvY29jb2EvV2ViU2xlZXBEaXNhYmxl
ckNsaWVudC5tbQogCiBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJD
b250ZW50U2VydmljZUVudHJ5UG9pbnQubW0KIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmgJKHJldmlzaW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC02MCw2ICs2MCwx
MCBAQAogI2luY2x1ZGUgIkxheWVySG9zdGluZ0NvbnRleHQuaCIKICNlbmRpZgogCisjaWYgUExB
VEZPUk0oQ09DT0EpCisjaW1wb3J0IDxXZWJDb3JlL1NsZWVwRGlzYWJsZXIuaD4KKyNlbmRpZgor
CiBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIE5hdmlnYXRpb247CiBjbGFzcyBQYWdlQ29uZmlndXJh
dGlvbjsKQEAgLTM3OCw2ICszODIsMTAgQEAgcHVibGljOgogICAgIHZvaWQgZ3B1UHJvY2Vzc0Ny
YXNoZWQoKTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgYm9vbCBoYXNTbGVl
cERpc2FibGVyKCk7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIFdlYlByb2Nlc3NQcm94eShX
ZWJQcm9jZXNzUG9vbCYsIFdlYnNpdGVEYXRhU3RvcmUqLCBJc1ByZXdhcm1lZCk7CiAKQEAgLTQ3
NSw2ICs0ODMsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNlbmRNZXNzYWdlVG9XZWJDb250ZXh0
V2l0aFJlcGx5KFVzZXJNZXNzYWdlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVXNlck1lc3Nh
Z2UmJik+JiYpOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIGRpZENy
ZWF0ZVNsZWVwRGlzYWJsZXIodWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiByZWFz
b24sIGJvb2wgZGlzcGxheSk7CisgICAgdm9pZCBkaWREZXN0cm95U2xlZXBEaXNhYmxlcih1aW50
NjRfdCBpZGVudGlmaWVyKTsKKyNlbmRpZgorCiAgICAgZW51bSBjbGFzcyBJc1dlYWsgeyBObywg
WWVzIH07CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgV2Vha09yU3Ryb25nUHRyIHsK
ICAgICBwdWJsaWM6CkBAIC01ODAsNiArNTkzLDEwIEBAIHByaXZhdGU6CiAgICAgICAgIFdlYWtI
YXNoU2V0PFdlYlByb2Nlc3NQcm94eT4gY2xpZW50UHJvY2Vzc2VzOwogICAgIH07CiAgICAgT3B0
aW9uYWw8U2VydmljZVdvcmtlckluZm9ybWF0aW9uPiBtX3NlcnZpY2VXb3JrZXJJbmZvcm1hdGlv
bjsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpTbGVlcERpc2FibGVyPj4gbV9zbGVlcERpc2FibGVyczsKKyNlbmRp
ZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNTkw
NDUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4JKHdvcmtpbmcgY29weSkKQEAgLTgwLDQgKzgwLDkgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vz
c1Byb3h5IExlZ2FjeVJlY2VpdgogICAgIFNlbmRNZXNzYWdlVG9XZWJDb250ZXh0KHN0cnVjdCBX
ZWJLaXQ6OlVzZXJNZXNzYWdlIHVzZXJNZXNzYWdlKQogICAgIFNlbmRNZXNzYWdlVG9XZWJDb250
ZXh0V2l0aFJlcGx5KHN0cnVjdCBXZWJLaXQ6OlVzZXJNZXNzYWdlIHVzZXJNZXNzYWdlKSAtPiAo
c3RydWN0IFdlYktpdDo6VXNlck1lc3NhZ2UgcmVwbHlNZXNzYWdlKSBBc3luYwogI2VuZGlmCisK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBEaWRDcmVhdGVTbGVlcERpc2FibGVyKHVpbnQ2NF90
IGlkZW50aWZpZXIsIFN0cmluZyByZWFzb24sIGJvb2wgZGlzcGxheSkKKyAgICBEaWREZXN0cm95
U2xlZXBEaXNhYmxlcih1aW50NjRfdCBpZGVudGlmaWVyKQorI2VuZGlmCiB9CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3Rpbmcu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3UHJpdmF0ZUZvclRlc3RpbmcuaAkocmV2aXNpb24gMjU5MDQ1KQorKysgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmgJKHdvcmtp
bmcgY29weSkKQEAgLTY0LDQgKzY0LDUgQEAKICsgKHZvaWQpX3NldEFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllcjooTlNTdHJpbmcgKilidW5kbGVJZGVudGlmaWVyOwogKyAodm9pZClfY2xlYXJB
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJUZXN0aW5nT3ZlcnJpZGU7CiAKKy0gKEJPT0wpX2hh
c1NsZWVwRGlzYWJsZXI7CiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQkocmV2aXNpb24gMjU5MDQ1KQor
KysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0J
KHdvcmtpbmcgY29weSkKQEAgLTIyMCw0ICsyMjAsOSBAQCArICh2b2lkKV9jbGVhckFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllCiAgICAgV2ViQ29yZTo6Y2xlYXJBcHBsaWNhdGlvbkJ1bmRsZUlk
ZW50aWZpZXJUZXN0aW5nT3ZlcnJpZGUoKTsKIH0KIAorLSAoQk9PTClfaGFzU2xlZXBEaXNhYmxl
cgoreworICAgIHJldHVybiBfcGFnZSA/IF9wYWdlLT5wcm9jZXNzKCkuaGFzU2xlZXBEaXNhYmxl
cigpIDogZmFsc2U7Cit9CisKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCShyZXZpc2lvbiAyNTkwNDUp
CisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjQ4LDQgKzI0OCwyMCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94
eTo6dW5ibG9ja1ByZWZlcmVuY2VTCiB9CiAjZW5kaWYKIAordm9pZCBXZWJQcm9jZXNzUHJveHk6
OmRpZENyZWF0ZVNsZWVwRGlzYWJsZXIodWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiByZWFzb24sIGJvb2wgZGlzcGxheSkKK3sKKyAgICBhdXRvIHNsZWVwRGlzYWJsZXIgPSBXZWJD
b3JlOjpTbGVlcERpc2FibGVyOjpjcmVhdGUocmVhc29uLnV0ZjgoKS5kYXRhKCksIGRpc3BsYXkg
PyBQQUw6OlNsZWVwRGlzYWJsZXI6OlR5cGU6OkRpc3BsYXkgOiBQQUw6OlNsZWVwRGlzYWJsZXI6
OlR5cGU6OlN5c3RlbSk7CisgICAgbV9zbGVlcERpc2FibGVycy5hZGQoaWRlbnRpZmllciwgV1RG
TW92ZShzbGVlcERpc2FibGVyKSk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWREZXN0
cm95U2xlZXBEaXNhYmxlcih1aW50NjRfdCBpZGVudGlmaWVyKQoreworICAgIG1fc2xlZXBEaXNh
YmxlcnMucmVtb3ZlKGlkZW50aWZpZXIpOworfQorCitib29sIFdlYlByb2Nlc3NQcm94eTo6aGFz
U2xlZXBEaXNhYmxlcigpCit7CisgICAgcmV0dXJuIG1fc2xlZXBEaXNhYmxlcnMuc2l6ZSgpID4g
MDsKK30KKwogfQpJbmRleDogU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00OTc5LDYgKzQ5Nzks
OCBAQAogCQlDMTQ5MzgwMjIyMzQxQzYwMDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzQ2xp
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDMTQ5MzgwMzIyMzQxREY3MDAwQ0Q3MDcgLyogV2ViU3Bl
ZWNoU3ludGhlc2lzQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNwZWVjaFN5bnRo
ZXNpc0NsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNDkzODBBMjIz
ODUzQkUwMDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50aGVzaXNWb2ljZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJTcGVlY2hTeW50aGVzaXNWb2ljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlDMTQ5RDU1MjI0MkU5QjMxMDAzRUJCMTIgLyogV2ViU2xlZXBEaXNhYmxlckNsaWVudC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlNsZWVwRGlzYWJsZXJD
bGllbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMxNDlENTUzMjQyRTlCMzIw
MDNFQkIxMiAvKiBXZWJTbGVlcERpc2FibGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlNsZWVwRGlzYWJsZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQzE1Q0JCMzMyM0YzNEMzODAwMzAwQ0M3IC8qIFByZWZlcmVuY2VPYnNlcnZl
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFByZWZlcmVuY2VPYnNlcnZlci5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE4MTczNUUyMDU4MzlGNjAwREZEQTY1IC8qIERyYXdp
bmdBcmVhTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERyYXdpbmdBcmVhTWFjLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE4MTczNjAyMDU4NDI0NzAwREZEQTY1IC8qIERp
c3BsYXlMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BsYXlMaW5rLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC04MzE4LDYgKzgzMjAsOCBAQAogCQkJCTUyRDVBMUI0MUM1NzQ5RjIw
MERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tICovLAogCQkJCUVDQTY4MEQ3MUU2
OTBERjgwMDczMUQyMCAvKiBXZWJQcm9jZXNzQ29jb2EuaCAqLywKIAkJCQk3QzZFNzBGOTE4QjJE
NEEwMDBGMjRFMkUgLyogV2ViUHJvY2Vzc0NvY29hLm1tICovLAorCQkJCUMxNDlENTUzMjQyRTlC
MzIwMDNFQkIxMiAvKiBXZWJTbGVlcERpc2FibGVyQ2xpZW50LmggKi8sCisJCQkJQzE0OUQ1NTIy
NDJFOUIzMTAwM0VCQjEyIC8qIFdlYlNsZWVwRGlzYWJsZXJDbGllbnQubW0gKi8sCiAJCQkpOwog
CQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQkocmV2
aXNpb24gMjU5MDQ1KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQAogI2ltcG9ydCAiV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc0RhdGFTdG9y
ZVBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW1w
b3J0ICJXZWJTbGVlcERpc2FibGVyQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJzaXRlRGF0YVN0b3Jl
UGFyYW1ldGVycy5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvQ29uZmlnRmlsZS5oPgogI2lt
cG9ydCA8SmF2YVNjcmlwdENvcmUvT3B0aW9ucy5oPgpAQCAtNjMsMTAgKzY0LDEyIEBACiAjaW1w
b3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWVtb3J5
UmVsZWFzZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9OU1Njcm9sbGVySW1wRGV0YWlscy5oPgorI2lt
cG9ydCA8V2ViQ29yZS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oPgogI2ltcG9ydCA8
V2ViQ29yZS9QZXJmb3JtYW5jZUxvZ2dpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGljdHVyZUlu
UGljdHVyZVN1cHBvcnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hl
Y2tzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NXQ29udGV4dE1hbmFnZXIuaD4KKyNpbXBvcnQgPFdl
YkNvcmUvU3lzdGVtQmF0dGVyeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9VVElVdGlsaXRpZXMuaD4K
ICNpbXBvcnQgPGFsZ29yaXRobT4KICNpbXBvcnQgPGRpc3BhdGNoL2Rpc3BhdGNoLmg+CkBAIC0x
MzEsMTEgKzEzNCw2IEBACiAjaW1wb3J0IDxvcy9zdGF0ZV9wcml2YXRlLmg+CiAjZW5kaWYKIAot
I2lmIFBMQVRGT1JNKENPQ09BKQotI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrRXh0ZW5zaW9uQ29u
dGVudEZpbHRlci5oPgotI2ltcG9ydCA8V2ViQ29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+Ci0jZW5kaWYK
LQogI2lmIEhBVkUoQ1NDSEVDS0ZJWERJU0FCTEUpCiBleHRlcm4gIkMiIHZvaWQgX0NTQ2hlY2tG
aXhEaXNhYmxlKCk7CiAjZW5kaWYKQEAgLTMxOCw2ICszMTYsOCBAQCB2b2lkIFdlYlByb2Nlc3M6
OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByCiAgICAgICAgIHNldFZlY3Rvck9mVVRUeXBlSXRlbShX
VEZNb3ZlKHBhcmFtZXRlcnMudmVjdG9yT2ZVVFR5cGVJdGVtKSk7CiAgICAgfQogI2VuZGlmCisK
KyAgICBXZWJDb3JlOjpzZXRTbGVlcERpc2FibGVyQ2xpZW50KG1ha2VVbmlxdWU8V2ViU2xlZXBE
aXNhYmxlckNsaWVudD4oKSk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRXZWJz
aXRlRGF0YVN0b3JlUGFyYW1ldGVycyhXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyYmIHBh
cmFtZXRlcnMpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViU2xlZXBE
aXNhYmxlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJTbGVlcERpc2FibGVyQ2xpZW50LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlNsZWVwRGlzYWJsZXJDbGllbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDM5IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFy
ZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKyogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJDb3JlL1NsZWVwRGlzYWJsZXJD
bGllbnQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlNsZWVwRGlzYWJsZXJD
bGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6U2xlZXBEaXNhYmxlckNsaWVudCB7CisgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgdm9pZCBkaWRDcmVhdGVTbGVlcERpc2Fi
bGVyKHVpbnRwdHJfdCwgY29uc3QgU3RyaW5nJiwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBk
aWREZXN0cm95U2xlZXBEaXNhYmxlcih1aW50cHRyX3QpIG92ZXJyaWRlOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2Vi
U2xlZXBEaXNhYmxlckNsaWVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvV2ViU2xlZXBEaXNhYmxlckNsaWVudC5tbQkobm9uZXhpc3RlbnQpCisrKyBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViU2xlZXBEaXNhYmxlckNsaWVudC5tbQko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ0IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlNsZWVw
RGlzYWJsZXJDbGllbnQuaCIKKworI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJX
ZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBX
ZWJTbGVlcERpc2FibGVyQ2xpZW50OjpkaWRDcmVhdGVTbGVlcERpc2FibGVyKHVpbnRwdHJfdCBp
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHJlYXNvbiwgYm9vbCBkaXNwbGF5KQoreworICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OldlYlByb2Nlc3NQcm94eTo6RGlkQ3JlYXRlU2xlZXBEaXNhYmxlcihpZGVudGlmaWVy
LCByZWFzb24sIGRpc3BsYXkpLCAwKTsKK30KKwordm9pZCBXZWJTbGVlcERpc2FibGVyQ2xpZW50
OjpkaWREZXN0cm95U2xlZXBEaXNhYmxlcih1aW50cHRyX3QgaWRlbnRpZmllcikKK3sKKyAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpZERlc3Ryb3lTbGVlcERpc2FibGVyKGlkZW50aWZp
ZXIpLCAwKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBUb29scy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTkxMzIpCisrKyBU
b29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0wMy0y
NyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29h
XSBTbGVlcCBkaXNhYmxpbmcgc2hvdWxkIGJlIHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2Vzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5Njc2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TbGVlcERpc2FibGVyLm1tOiBBZGRlZC4KKyAg
ICAgICAgKFRFU1QpOgorCiAyMDIwLTAzLTI3ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbRmxhdHBhayBTREtdIEFsbG93IHBhc3NpbmcgZ3N0LWJ1
aWxkIE1lc29uIG9wdGlvbnMKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAy
NTkwNDUpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtODgzLDYgKzg4Myw3IEBACiAJCUMwQzVE
M0M2MTQ1OTkxMjkwMEE4MDJBNiAvKiBHZXRCYWNraW5nU2NhbGVGYWN0b3JfQnVuZGxlLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzBDNUQzQkQxNDU5
OEI2RjAwQTgwMkE2IC8qIEdldEJhY2tpbmdTY2FsZUZhY3Rvcl9CdW5kbGUubW0gKi87IH07CiAJ
CUMxM0Q4MkQ5MjQxNkYxMzIwMEE2Mjc5MyAvKiBFbmFibGVBY2Nlc3NpYmlsaXR5Lm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzEzRDgyRDgyNDE2RjEz
MjAwQTYyNzkzIC8qIEVuYWJsZUFjY2Vzc2liaWxpdHkubW0gKi87IH07CiAJCUMxNDVDQzBDMjNE
QTVBMUYwMDNBNUVFQiAvKiBNaW1lVHlwZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMTQ1Q0MwQjIzREE1QTBGMDAzQTVFRUIgLyogTWltZVR5cGVz
Lm1tICovOyB9OworCQlDMTQ5RDU1MDI0MkU5OERGMDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlci5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNDlENTRG
MjQyRTk4NDQwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyLm1tICovOyB9OwogCQlDMTVDQkIzMDIz
RjFGRjFBMDAzMDBDQzcgLyogQmFja2xpZ2h0TGV2ZWxOb3RpZmljYXRpb24ubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTVDQkIyRjIzRjFGRjFBMDAz
MDBDQzcgLyogQmFja2xpZ2h0TGV2ZWxOb3RpZmljYXRpb24ubW0gKi87IH07CiAJCUMxNUNCQjNG
MjNGQjE3N0EwMDMwMENDNyAvKiBQcmVmZXJlbmNlQ2hhbmdlcy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNUNCQjNFMjNGQjE3N0EwMDMwMENDNyAv
KiBQcmVmZXJlbmNlQ2hhbmdlcy5tbSAqLzsgfTsKIAkJQzE2OTJEQ0EyM0QxMERBRTAwNkU4OEY3
IC8qIEJhdHRlcnkubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMTY5MkRDOTIzRDEwREFFMDA2RTg4RjcgLyogQmF0dGVyeS5tbSAqLzsgfTsKQEAgLTI0
NTgsNiArMjQ1OSw3IEBACiAJCUMwQzVEM0JEMTQ1OThCNkYwMEE4MDJBNiAvKiBHZXRCYWNraW5n
U2NhbGVGYWN0b3JfQnVuZGxlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gR2V0QmFja2luZ1NjYWxlRmFjdG9yX0J1bmRsZS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQzEzRDgyRDgyNDE2RjEzMjAwQTYyNzkzIC8qIEVuYWJsZUFjY2Vzc2liaWxp
dHkubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBFbmFibGVBY2Nlc3NpYmlsaXR5Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTQ1Q0MwQjIzREE1QTBGMDAzQTVFRUIgLyogTWlt
ZVR5cGVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWltZVR5
cGVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMTQ5RDU0RjI0MkU5ODQ0MDAz
RUJCMTIgLyogU2xlZXBEaXNhYmxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFNsZWVwRGlzYWJsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUMxNUNCQjJGMjNGMUZGMUEwMDMwMENDNyAvKiBCYWNrbGlnaHRMZXZlbE5vdGlmaWNhdGlvbi5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEJhY2tsaWdodExldmVsTm90aWZpY2F0aW9uLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTVDQkIzRTIzRkIxNzdBMDAzMDBDQzcgLyog
UHJlZmVyZW5jZUNoYW5nZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBQcmVmZXJlbmNlQ2hhbmdlcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QzE2OTJEQzkyM0QxMERBRTAwNkU4OEY3IC8qIEJhdHRlcnkubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBCYXR0ZXJ5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjkyMSw2ICsy
OTIzLDcgQEAKIAkJCQlDMTQ1Q0MwQjIzREE1QTBGMDAzQTVFRUIgLyogTWltZVR5cGVzLm1tICov
LAogCQkJCUUzMjVDOTA2MjNFMzg3MDIwMEJDN0QzQiAvKiBQaWN0dXJlSW5QaWN0dXJlU3VwcG9y
dC5tbSAqLywKIAkJCQlDMTVDQkIzRTIzRkIxNzdBMDAzMDBDQzcgLyogUHJlZmVyZW5jZUNoYW5n
ZXMubW0gKi8sCisJCQkJQzE0OUQ1NEYyNDJFOTg0NDAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIu
bW0gKi8sCiAJCQkJQzE5NEUzMUMyNDA5REY0MzAwMjkzOUVEIC8qIFVUSUZyb21NSU1FVHlwZS5t
bSAqLywKIAkJCQlFM0NBQUE0QjI0MTU1MDUxMDBDRUQyRTIgLyogVVRJRnJvbVRhZy5tbSAqLywK
IAkJCQkwRjEzOUU3NTFBNDIzQTUzMDBGNTkwRjUgLyogV2Vha09iakNQdHIubW0gKi8sCkBAIC01
MDU4LDYgKzUwNjEsNyBAQAogCQkJCTM3QkNBNjFDMUI1OTZCQTkwMDIwMTJDQSAvKiBTaG91bGRP
cGVuRXh0ZXJuYWxVUkxzSW5OZXdXaW5kb3dBY3Rpb25zLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
N0M4M0UwQzUxRDBBNjU0NjAwRkVCQ0YzIC8qIFNocmlua1RvRml0Lm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0NDRTdFQ0QxQTQxMUE3RTAwNDQ3QzRDIC8qIFNpbXBsaWZ5TWFya3VwLm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJQzE0OUQ1NTAyNDJFOThERjAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIu
bW0gaW4gU291cmNlcyAqLywKIAkJCQkyREZGN0I2RDFEQTQ4N0FGMDA4MTQ2MTQgLyogU25hcHNo
b3RTdG9yZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBGNEZGQTlFMUVEM0FBODUwMEY3MTExRiAv
KiBTbmFwc2hvdFZpYVJlbmRlckluQ29udGV4dC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3
RjE1MUE0MTFBRTYwMDQ0N0M0QyAvKiBTcGFjZWJhclNjcm9sbGluZy5jcHAgaW4gU291cmNlcyAq
LywKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1NsZWVwRGlzYWJsZXIu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU2xlZXBE
aXNhYmxlci5tbQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9TbGVlcERpc2FibGVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBXS19IQVZFX0NfU1BJCisKKyNp
bXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisj
aW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaD4KKyNpbXBvcnQgPHd0
Zi9UaHJlYWRpbmcuaD4KKworVEVTVChXZWJLaXQsIFNsZWVwRGlzYWJsZXIpCit7CisgICAgYXV0
byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdL
KFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3Qo
IkludGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsKKyAgICBjb25maWd1cmF0aW9uLmdldCgp
LnByb2Nlc3NQb29sID0gKFdLUHJvY2Vzc1Bvb2wgKiljb250ZXh0LmdldCgpOworICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQo
KSBhZGRUb1dpbmRvdzpZRVNdKTsKKworICAgIEFTU0VSVF9GQUxTRShbd2ViVmlldyBfaGFzU2xl
ZXBEaXNhYmxlcl0pOworCisgICAgYXV0byBjcmVhdGVTbGVlcERpc2FibGVyID0gWyZdIHsKKyAg
ICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5k
b3cuaW50ZXJuYWxzLmNyZWF0ZVNsZWVwRGlzYWJsZXIoXCJUZXN0RGlzYWJsZXJcIiwgdHJ1ZSki
XS5sb25nTG9uZ1ZhbHVlOworICAgIH07CisKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBjcmVhdGVT
bGVlcERpc2FibGVyKCk7CisKKyAgICBBU1NFUlRfTkUoaWRlbnRpZmllciwgMCk7CisKKyAgICBB
U1NFUlRfVFJVRShbd2ViVmlldyBfaGFzU2xlZXBEaXNhYmxlcl0pOworCisgICAgYXV0byBkZXN0
cm95U2xlZXBEaXNhYmxlciA9IFsmXSB7CisgICAgICAgIE5TU3RyaW5nICpqcyA9IFtOU1N0cmlu
ZyBzdHJpbmdXaXRoRm9ybWF0OkAid2luZG93LmludGVybmFscy5kZXN0cm95U2xlZXBEaXNhYmxl
ciglbGxkKSIsIGlkZW50aWZpZXJdOworICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlF
dmFsdWF0aW5nSmF2YVNjcmlwdDpqc107CisgICAgfTsKKworICAgIEFTU0VSVF9UUlVFKGRlc3Ry
b3lTbGVlcERpc2FibGVyKCkpOworCisgICAgQVNTRVJUX0ZBTFNFKFt3ZWJWaWV3IF9oYXNTbGVl
cERpc2FibGVyXSk7Cit9CisKKyNlbmRpZiAvLyBXS19IQVZFX0NfU1BJCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394817</attachid>
            <date>2020-03-28 08:30:23 -0700</date>
            <delta_ts>2020-03-28 09:00:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209676-20200328083021.patch</filename>
            <type>text/plain</type>
            <size>46503</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTE1NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDIwLTAzLTI4ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFNsZWVwIGRp
c2FibGluZyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW5jZSBzbGVlcCBkaXNhYmxp
bmcgaXMgY2F1c2luZyBjb21tdW5pY2F0aW9uIHdpdGggdGhlIHBvd2VyIG1hbmFnZW1lbnQgc2Vy
dmljZSwgaXQgc2hvdWxkIGJlIHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAg
VGhpcyBwYXRjaCBmaXhlcyB0aGlzIGJ5IGNyZWF0aW5nIGEgc2xlZXAgZGlzYWJsZXIgY2xpZW50
LCB3aGljaCB3aWxsIG5vdGlmeSB0aGUgVUkgcHJvY2VzcyB3aGVuIGEgc2xlZXAgZGlzYWJsZXIg
aXMgYmVpbmcKKyAgICAgICAgY3JlYXRlZCBhbmQgZGVzdHJveWVkLiBJbiByZXNwb25zZSB0byB0
aGVzZSBtZXNzYWdlcywgdGhlIFVJIHByb2Nlc3Mgd2lsbCBwZXJmb3JtIHRoZSBhY3R1YWwgc2xl
ZXAgZGlzYWJsaW5nIGFuZCBlbmFibGluZy4KKyAgICAgICAgQSBuZXcgc2xlZXAgZGlzYWJsZXIg
Y2xhc3MgaXMgY3JlYXRlZCB3aGljaCB3cmFwcyB0aGUgUEFMIHNsZWVwIGRpc2FibGVyLCBhbmQg
bm90aWZpZXMgdGhlIHNsZWVwIGRpc2FibGVyIGNsaWVudCB3aGVuIHNldC4KKyAgICAgICAgSWYg
dGhlIHNsZWVwIGRpc2FibGVyIGNsaWVudCBpcyBzZXQsIGEgUEFMIHNsZWVwIGRpc2FibGVyIGlu
c3RhbmNlIHdpbGwgbm90IGJlIGNyZWF0ZWQgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcywgc2lu
Y2UgdGhpcworICAgICAgICB3aWxsIHRoZW4gaGFwcGVuIGluIHRoZSBVSSBwcm9jZXNzLgorCisg
ICAgICAgIEFQSSB0ZXN0OiBXZWJLaXQuU2xlZXBEaXNhYmxlcgorCisgICAgICAgICogU291cmNl
cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50Ojp1cGRhdGVTbGVlcERpc2FibGluZyk6CisgICAgICAgICogaHRtbC9IVE1M
TWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vU2xlZXBEaXNhYmxlci5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6U2xlZXBEaXNhYmxlcjo6U2xlZXBEaXNhYmxlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTbGVlcERpc2FibGVyOjp+U2xlZXBEaXNhYmxlcik6CisgICAgICAg
ICogcGxhdGZvcm0vU2xlZXBEaXNhYmxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNs
ZWVwRGlzYWJsZXI6OnR5cGUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1NsZWVwRGlzYWJs
ZXJDbGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnNsZWVwRGlzYWJsZXJDbGll
bnQpOgorICAgICAgICAqIHBsYXRmb3JtL1NsZWVwRGlzYWJsZXJDbGllbnQuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTbGVlcERpc2FibGVyQ2xpZW50Ojp+U2xlZXBEaXNhYmxlckNsaWVu
dCk6CisgICAgICAgICogcGxhdGZvcm0vU2xlZXBEaXNhYmxlcklkZW50aWZpZXIuaDogQWRkZWQu
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50
ZXJuYWxzOjpjcmVhdGVTbGVlcERpc2FibGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
czo6ZGVzdHJveVNsZWVwRGlzYWJsZXIpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDIwLTAzLTI4ICBDb21taXQg
UXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBy
ZXZlcnRpbmcgcjI1OTAzNC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNTkwNDUpCisr
KyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTc5OCw2ICsx
Nzk4LDggQEAgcGxhdGZvcm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5jcHAKIHBsYXRmb3Jt
L1NoYXJlZEJ1ZmZlci5jcHAKIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlckNodW5rUmVhZGVyLmNwcAog
cGxhdGZvcm0vU2hhcmVkU3RyaW5nSGFzaC5jcHAKK3BsYXRmb3JtL1NsZWVwRGlzYWJsZXIuY3Bw
CitwbGF0Zm9ybS9TbGVlcERpc2FibGVyQ2xpZW50LmNwcAogcGxhdGZvcm0vU3RhdGljUGFzdGVi
b2FyZC5jcHAKIHBsYXRmb3JtL1RoZW1lLmNwcAogcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5j
cHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzk4Niw2ICszOTg2LDkg
QEAKIAkJQzEwNURBNjQwRjNBQTZCODAwMURENDRGIC8qIFRleHRFbmNvZGluZ0RldGVjdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTA1REE2MzBG
M0FBNkI4MDAxREQ0NEYgLyogVGV4dEVuY29kaW5nRGV0ZWN0b3IuaCAqLzsgfTsKIAkJQzExQTlF
Q0UyMTQwM0E1QzAwQ0ZCMjBBIC8qIFN3aXRjaGluZ0dQVUNsaWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzExQTlFQ0QyMTQwM0E1QzAwQ0ZCMjBB
IC8qIFN3aXRjaGluZ0dQVUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUMxNDkzODA3MjIzNDU1MUEwMDBDRDcwNyAvKiBTcGVlY2hTeW50
aGVzaXNDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEMxNDkzODA1MjIzNDI3MTkwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDMTQ5RDU1
RDI0MkVBNkI5MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE0OUQ1NUEyNDJFQTRGOTAwM0VCQjEyIC8qIFNs
ZWVwRGlzYWJsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQlDMTQ5RDU1RjI0MkVBN0I4MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlckNsaWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE0OUQ1NUIy
NDJFQTRGQTAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDMTQ5RDU2NzI0MkVCODRBMDAzRUJC
MTIgLyogU2xlZXBEaXNhYmxlcklkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNDlENTY1MjQyRUI3NjUwMDNFQkIxMiAvKiBTbGVlcERp
c2FibGVySWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUMxNjkyREQyMjNEMjNBQkQwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5Lm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE2OTJERDEy
M0QyM0FCRDAwNkU4OEY3IC8qIFN5c3RlbUJhdHRlcnkubW0gKi87IH07CiAJCUMxNjkyREQ1MjNE
MjNFMDgwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTY5MkRENDIzRDIzQUUwMDA2RTg4RjcgLyogU3lzdGVt
QmF0dGVyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUMxRTFEMjM2MjAzREYxNTQwMDU4NDY2NSAvKiBTY3JlZW5Qcm9wZXJ0aWVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMUUxRDIzNTIwM0RGMTU0
MDA1ODQ2NjUgLyogU2NyZWVuUHJvcGVydGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMzU4Miw4ICsxMzU4NSwxMyBAQAogCQlDMTFBOUVD
RDIxNDAzQTVDMDBDRkIyMEEgLyogU3dpdGNoaW5nR1BVQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFN3aXRjaGluZ0dQVUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTFB
OUVEMjIxNDA1NzhCMDBDRkIyMEEgLyogU3dpdGNoaW5nR1BVQ2xpZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFN3aXRjaGluZ0dQVUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMxNDkzODA1MjIzNDI3MTkwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoU3ludGhlc2lzQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUMxNDlENTU5MjQyRUE0RjgwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNsZWVwRGlzYWJsZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMTQ5RDU1QTI0MkVBNEY5MDAzRUJC
MTIgLyogU2xlZXBEaXNhYmxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
bGVlcERpc2FibGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMxNDlENTVCMjQy
RUE0RkEwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNsZWVwRGlzYWJsZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQzE0OUQ1NjUyNDJFQjc2NTAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXJJZGVu
dGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNjkyREQxMjNEMjNBQkQwMDZFODhGNyAvKiBTeXN0
ZW1CYXR0ZXJ5Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU3lzdGVtQmF0dGVyeS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE2OTJERDQyM0QyM0FFMDAwNkU4OEY3IC8qIFN5
c3RlbUJhdHRlcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3lzdGVtQmF0dGVyeS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDMThGQjUxODI0MkY5MzgyMDA3RTk4NzUgLyogU2xlZXBEaXNh
YmxlckNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTbGVlcERpc2FibGVyQ2xpZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzFFMUQyMzUyMDNERjE1NDAwNTg0NjY1
IC8qIFNjcmVlblByb3BlcnRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyZWVuUHJvcGVydGllcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMjAxNUMwOTFCRTZGRTJDMDA4MjIzODkg
LyogRm9udFZhcmlhbnRCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRWYXJpYW50QnVpbGRl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMjBGNEY2NDIxREZCRTVDMDA3MEM0
NUEgLyogV0hMU0xUeXBlUmVmZXJlbmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdITFNMVHlw
ZVJlZmVyZW5jZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjI0NSw2ICsy
NjI1MywxMSBAQAogCQkJCTgzNERGQUNFMUY3REFFNTcwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdI
YXNoLmNwcCAqLywKIAkJCQk4MzRERkFDQzFGN0RBRTU2MDBDMjcyNUIgLyogU2hhcmVkU3RyaW5n
SGFzaC5oICovLAogCQkJCTkzMzA5RUEwMDk5RUI3OEMwMDU2RTU4MSAvKiBTaGFyZWRUaW1lci5o
ICovLAorCQkJCUMxNDlENTU5MjQyRUE0RjgwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyLmNwcCAq
LywKKwkJCQlDMTQ5RDU1QTI0MkVBNEY5MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlci5oICovLAor
CQkJCUMxOEZCNTE4MjQyRjkzODIwMDdFOTg3NSAvKiBTbGVlcERpc2FibGVyQ2xpZW50LmNwcCAq
LywKKwkJCQlDMTQ5RDU1QjI0MkVBNEZBMDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlckNsaWVudC5o
ICovLAorCQkJCUMxNDlENTY1MjQyRUI3NjUwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVySWRlbnRp
Zmllci5oICovLAogCQkJCUEzMzRCRDgyMjE5NEU0NjEwMDAwRDc3RiAvKiBTU0xLZXlHZW5lcmF0
b3IuY3BwICovLAogCQkJCUY1ODc4NjYyMDJERTNCMTEwMUVBNDEyMiAvKiBTU0xLZXlHZW5lcmF0
b3IuaCAqLywKIAkJCQlGNDMzRTkwNDFEQkJEQkMyMDBFRjBEMTQgLyogU3RhdGljUGFzdGVib2Fy
ZC5jcHAgKi8sCkBAIC0zMjcxNiw2ICszMjcyOSw5IEBACiAJCQkJOTQ0NENCRDYxRDg2MEM4QjAw
NzNBMDc0IC8qIFNpemVzQXR0cmlidXRlUGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NDQ0
Q0JENDFEODYwQzhCMDA3M0EwNzQgLyogU2l6ZXNDYWxjUGFyc2VyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0OUU5MTFDRDBFRjg2RDQ3MDA5RDBDQUYgLyogU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5o
IGluIEhlYWRlcnMgKi8sCisJCQkJQzE0OUQ1NUQyNDJFQTZCOTAwM0VCQjEyIC8qIFNsZWVwRGlz
YWJsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUMxNDlENTVGMjQyRUE3QjgwMDNFQkIxMiAvKiBT
bGVlcERpc2FibGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlDMTQ5RDU2NzI0MkVCODRB
MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlcklkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxNTBGOUYxMTJCNkUwRTcwMDA4Qzg2MCAvKiBTbGlkZXJUaHVtYkVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTlCNTMyRUE0MUJBOTI4NTcwMDM4QTgyNyAvKiBTbG90QXNzaWdubWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNEI2RkE2RjQwQzM5RTQ4QzAwMDg3MDExIC8qIFNtYXJ0UmVw
bGFjZS5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAJKHJldmlzaW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyLDYgKzkyLDcgQEAKICNpbmNs
dWRlICJTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
U2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNsZWVwRGlzYWJsZXIuaCIKICNpbmNsdWRlICJUaW1l
UmFuZ2VzLmgiCiAjaW5jbHVkZSAiVXNlckNvbnRlbnRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
VXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKQEAgLTk5LDcgKzEwMCw2IEBACiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvVWludDhBcnJheS5oPgogI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDxw
YWwvU2Vzc2lvbklELmg+Ci0jaW5jbHVkZSA8cGFsL3N5c3RlbS9TbGVlcERpc2FibGVyLmg+CiAj
aW5jbHVkZSA8d3RmL0FsZ29yaXRobXMuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5l
cy5oPgogI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgpAQCAtNjk0Niw3ICs2OTQ2LDcgQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVTbGVlcERpc2FibAogICAgIGVsc2UgaWYgKHNob3Vs
ZERpc2FibGVTbGVlcCAhPSBTbGVlcFR5cGU6Ok5vbmUpIHsKICAgICAgICAgYXV0byB0eXBlID0g
c2hvdWxkRGlzYWJsZVNsZWVwID09IFNsZWVwVHlwZTo6RGlzcGxheSA/IFBBTDo6U2xlZXBEaXNh
Ymxlcjo6VHlwZTo6RGlzcGxheSA6IFBBTDo6U2xlZXBEaXNhYmxlcjo6VHlwZTo6U3lzdGVtOwog
ICAgICAgICBpZiAoIW1fc2xlZXBEaXNhYmxlciB8fCBtX3NsZWVwRGlzYWJsZXItPnR5cGUoKSAh
PSB0eXBlKQotICAgICAgICAgICAgbV9zbGVlcERpc2FibGVyID0gUEFMOjpTbGVlcERpc2FibGVy
OjpjcmVhdGUoImNvbS5hcHBsZS5XZWJDb3JlOiBIVE1MTWVkaWFFbGVtZW50IHBsYXliYWNrIiwg
dHlwZSk7CisgICAgICAgICAgICBtX3NsZWVwRGlzYWJsZXIgPSBtYWtlVW5pcXVlPFNsZWVwRGlz
YWJsZXI+KCJjb20uYXBwbGUuV2ViQ29yZTogSFRNTE1lZGlhRWxlbWVudCBwbGF5YmFjayIsIHR5
cGUpOwogICAgIH0KIAogICAgIGlmIChtX3BsYXllcikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsMTAgKzYzLDYgQEAK
ICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KICNlbmRpZgogCi1uYW1lc3BhY2Ug
UEFMIHsKLWNsYXNzIFNsZWVwRGlzYWJsZXI7Ci19Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgQXVkaW9Tb3VyY2VQcm92aWRlcjsKQEAgLTk0LDYgKzkwLDcgQEAgY2xhc3MgTWVkaWFT
dHJlYW07CiBjbGFzcyBSZW5kZXJNZWRpYTsKIGNsYXNzIFNjcmlwdENvbnRyb2xsZXI7CiBjbGFz
cyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgU2xlZXBEaXNhYmxlcjsKIGNsYXNzIFNv
dXJjZUJ1ZmZlcjsKIGNsYXNzIFRleHRUcmFja0xpc3Q7CiBjbGFzcyBUaW1lUmFuZ2VzOwpAQCAt
MTE2Miw3ICsxMTU5LDcgQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTWVkaWFDb250cm9s
bGVyOwogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xsZXI+IG1fbWVkaWFDb250cm9sbGVyOwogCi0g
ICAgc3RkOjp1bmlxdWVfcHRyPFBBTDo6U2xlZXBEaXNhYmxlcj4gbV9zbGVlcERpc2FibGVyOwor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxTbGVlcERpc2FibGVyPiBtX3NsZWVwRGlzYWJsZXI7CiAKICAg
ICBXZWFrUHRyPGNvbnN0IE1lZGlhUmVzb3VyY2VMb2FkZXI+IG1fbGFzdE1lZGlhUmVzb3VyY2VM
b2FkZXJGb3JUZXN0aW5nOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERp
c2FibGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERp
c2FibGVyLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVl
cERpc2FibGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNsZWVwRGlzYWJsZXIuaCIKKworI2lu
Y2x1ZGUgIlNsZWVwRGlzYWJsZXJDbGllbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitT
bGVlcERpc2FibGVyOjpTbGVlcERpc2FibGVyKGNvbnN0IGNoYXIqIHJlYXNvbiwgUEFMOjpTbGVl
cERpc2FibGVyOjpUeXBlIHR5cGUpCisgICAgOiBtX3R5cGUodHlwZSkKK3sKKyAgICBpZiAoc2xl
ZXBEaXNhYmxlckNsaWVudCgpKSB7CisgICAgICAgIG1faWRlbnRpZmllciA9IFNsZWVwRGlzYWJs
ZXJJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOworICAgICAgICBzbGVlcERpc2FibGVyQ2xpZW50KCkt
PmRpZENyZWF0ZVNsZWVwRGlzYWJsZXIobV9pZGVudGlmaWVyLCByZWFzb24sIHR5cGUgPT0gUEFM
OjpTbGVlcERpc2FibGVyOjpUeXBlOjpEaXNwbGF5KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIG1fcGxhdGZvcm1TbGVlcERpc2FibGVyID0gUEFMOjpTbGVlcERpc2FibGVyOjpjcmVh
dGUocmVhc29uLCB0eXBlKTsKK30KKworU2xlZXBEaXNhYmxlcjo6flNsZWVwRGlzYWJsZXIoKQor
eworICAgIGlmIChzbGVlcERpc2FibGVyQ2xpZW50KCkpCisgICAgICAgIHNsZWVwRGlzYWJsZXJD
bGllbnQoKS0+ZGlkRGVzdHJveVNsZWVwRGlzYWJsZXIobV9pZGVudGlmaWVyKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBE
aXNhYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlz
YWJsZXIuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERp
c2FibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2xlZXBEaXNhYmxlcklkZW50aWZpZXIuaCIKKworI2lu
Y2x1ZGUgPHBhbC9zeXN0ZW0vU2xlZXBEaXNhYmxlci5oPgorI2luY2x1ZGUgPHd0Zi9PYmplY3RJ
ZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2xlZXBEaXNhYmxl
ciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgV0VCQ09SRV9F
WFBPUlQgU2xlZXBEaXNhYmxlcihjb25zdCBjaGFyKiwgUEFMOjpTbGVlcERpc2FibGVyOjpUeXBl
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB+U2xlZXBEaXNhYmxlcigpOworCisgICAgUEFMOjpTbGVl
cERpc2FibGVyOjpUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKworcHJpdmF0
ZToKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UEFMOjpTbGVlcERpc2FibGVyPiBtX3BsYXRmb3JtU2xl
ZXBEaXNhYmxlcjsKKyAgICBTbGVlcERpc2FibGVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7Cisg
ICAgUEFMOjpTbGVlcERpc2FibGVyOjpUeXBlIG1fdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJsZXJDbGll
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJs
ZXJDbGllbnQuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Ns
ZWVwRGlzYWJsZXJDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2xlZXBEaXNhYmxlckNs
aWVudC5oIgorCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworc3RkOjp1bmlxdWVfcHRyPFNsZWVwRGlzYWJsZXJDbGllbnQ+JiBzbGVlcERp
c2FibGVyQ2xpZW50KCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjp1bmlxdWVf
cHRyPFNsZWVwRGlzYWJsZXJDbGllbnQ+PiBjbGllbnQ7CisgICAgcmV0dXJuIGNsaWVudC5nZXQo
KTsKK30KKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxlckNs
aWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJs
ZXJDbGllbnQuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVl
cERpc2FibGVyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NSBAQAorLyoKKyog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiU2xlZXBEaXNhYmxlcklkZW50aWZpZXIuaCIKKworI2luY2x1ZGUgPHBhbC9zeXN0ZW0v
U2xlZXBEaXNhYmxlci5oPgorI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgU2xlZXBEaXNhYmxlckNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+U2xlZXBEaXNh
YmxlckNsaWVudCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVTbGVlcERpc2FibGVy
KFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHJlYXNvbiwgYm9vbCBkaXNw
bGF5KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZERlc3Ryb3lTbGVlcERpc2FibGVyKFNsZWVw
RGlzYWJsZXJJZGVudGlmaWVyKSA9IDA7Cit9OworCitXRUJDT1JFX0VYUE9SVCBzdGQ6OnVuaXF1
ZV9wdHI8U2xlZXBEaXNhYmxlckNsaWVudD4mIHNsZWVwRGlzYWJsZXJDbGllbnQoKTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBE
aXNhYmxlcklkZW50aWZpZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TbGVlcERpc2FibGVySWRlbnRpZmllci5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJsZXJJZGVudGlmaWVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3Rm
L09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIFNsZWVw
RGlzYWJsZXJJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBTbGVlcERpc2FibGVySWRlbnRpZmll
ciA9IE9iamVjdElkZW50aWZpZXI8U2xlZXBEaXNhYmxlcklkZW50aWZpZXJUeXBlPjsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAkocmV2aXNpb24gMjU5MDQ1KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NTY1LDQgKzU1NjUsMTcgQEAgU3RyaW5nIEludGVybmFs
czo6Zm9jdXNSaW5nQ29sb3IoKQogICAgIHJldHVybiBSZW5kZXJUaGVtZTo6c2luZ2xldG9uKCku
Zm9jdXNSaW5nQ29sb3Iob3B0aW9ucykuY3NzVGV4dCgpOwogfQogCit1bnNpZ25lZCBJbnRlcm5h
bHM6OmNyZWF0ZVNsZWVwRGlzYWJsZXIoY29uc3QgU3RyaW5nJiByZWFzb24sIGJvb2wgZGlzcGxh
eSkKK3sKKyAgICBzdGF0aWMgdW5zaWduZWQgaWRlbnRpZmllciA9IDA7CisgICAgYXV0byBzbGVl
cERpc2FibGVyID0gbWFrZVVuaXF1ZTxXZWJDb3JlOjpTbGVlcERpc2FibGVyPihyZWFzb24udXRm
OCgpLmRhdGEoKSwgZGlzcGxheSA/IFBBTDo6U2xlZXBEaXNhYmxlcjo6VHlwZTo6RGlzcGxheSA6
IFBBTDo6U2xlZXBEaXNhYmxlcjo6VHlwZTo6U3lzdGVtKTsKKyAgICBtX3NsZWVwRGlzYWJsZXJz
LmFkZCgrK2lkZW50aWZpZXIsIFdURk1vdmUoc2xlZXBEaXNhYmxlcikpOworICAgIHJldHVybiBp
ZGVudGlmaWVyOworfQorCitib29sIEludGVybmFsczo6ZGVzdHJveVNsZWVwRGlzYWJsZXIodW5z
aWduZWQgaWRlbnRpZmllcikKK3sKKyAgICByZXR1cm4gbV9zbGVlcERpc2FibGVycy5yZW1vdmUo
aWRlbnRpZmllcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaAkocmV2aXNpb24gMjU5MDQ1KQorKysgU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsNyBAQAogI2lu
Y2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKICNpbmNsdWRlICJUZXh0SW5kaWNhdG9yLmgi
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRmxvYXQzMkFycmF5Lmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9TbGVlcERpc2FibGVyLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAKICNpZiBF
TkFCTEUoTUVESUFfU0VTU0lPTikKQEAgLTk2MCw2ICs5NjEsOSBAQCBwdWJsaWM6CiAKICAgICBi
b29sIGlzUmVtb3RlVUlBcHBGb3JBY2Nlc3NpYmlsaXR5KCk7CiAKKyAgICB1bnNpZ25lZCBjcmVh
dGVTbGVlcERpc2FibGVyKGNvbnN0IFN0cmluZyYgcmVhc29uLCBib29sIGRpc3BsYXkpOworICAg
IGJvb2wgZGVzdHJveVNsZWVwRGlzYWJsZXIodW5zaWduZWQgaWRlbnRpZmllcik7CisKIHByaXZh
dGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Jik7CiAgICAgRG9jdW1lbnQqIGNv
bnRleHREb2N1bWVudCgpIGNvbnN0OwpAQCAtOTgxLDYgKzk4NSw4IEBAIHByaXZhdGU6CiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yU3R1YkZyb250ZW5kPiBtX2luc3BlY3RvckZyb250
ZW5kOwogICAgIFJlZlB0cjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBtX2NhY2hlU3RvcmFnZUNv
bm5lY3Rpb247CisKKyAgICBIYXNoTWFwPHVuc2lnbmVkLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6U2xlZXBEaXNhYmxlcj4+IG1fc2xlZXBEaXNhYmxlcnM7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCShyZXZpc2lv
biAyNTkwNDUpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTg2Miw0ICs4NjIsNyBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5IHsKICAg
ICBib29sZWFuIHN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpOwogCiAgICAgYm9vbGVhbiBpc1Jl
bW90ZVVJQXBwRm9yQWNjZXNzaWJpbGl0eSgpOworCisgICAgdW5zaWduZWQgbG9uZyBjcmVhdGVT
bGVlcERpc2FibGVyKERPTVN0cmluZyByZWFzb24sIGJvb2xlYW4gZGlzcGxheSk7CisgICAgYm9v
bGVhbiBkZXN0cm95U2xlZXBEaXNhYmxlcih1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOwogfTsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTkxNTcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDIwLTAzLTI4ICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFNsZWVwIGRpc2Fi
bGluZyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NzYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW5jZSBzbGVlcCBkaXNhYmxpbmcg
aXMgY2F1c2luZyBjb21tdW5pY2F0aW9uIHdpdGggdGhlIHBvd2VyIG1hbmFnZW1lbnQgc2Vydmlj
ZSwgaXQgc2hvdWxkIGJlIHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgVGhl
IFVJIHByb2Nlc3Mgd2lsbCBiZSBub3RpZmllZCBieSB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGFi
b3V0IHNsZWVwIGRpc2FibGVycyBiZWluZyBjcmVhdGVkIGFuZCBkZXN0cm95ZWQsIGFuZCB3aWxs
IHBlcmZvcm0KKyAgICAgICAgdGhlIGFjdHVhbCBzbGVlcCBkaXNhYmxpbmcgYW5kIGVuYWJsaW5n
LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRl
Rm9yVGVzdGluZy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVz
dGluZy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9oYXNTbGVlcERpc2FibGVyXSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlU2xlZXBEaXNhYmxlcik6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQcm94eTo6ZGlkRGVzdHJveVNsZWVwRGlzYWJsZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6Omhhc1NsZWVwRGlzYWJsZXIpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2FjeUNETS5jcHA6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJTbGVlcERpc2FibGVyQ2xpZW50LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlNsZWVwRGlzYWJsZXJDbGllbnQ6OmRpZENyZWF0ZVNsZWVw
RGlzYWJsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJTbGVlcERpc2FibGVyQ2xpZW50OjpkaWRE
ZXN0cm95U2xlZXBEaXNhYmxlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJTbGVlcERpc2Fi
bGVyQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxp
emVXZWJQcm9jZXNzKToKKwogMjAyMC0wMy0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgY29udGVudCBwcm9jZXNzZXMgc2hvdWxkIG5vdCBi
ZSBhYmxlIHRvIGFyYml0cmFyaWx5IHJlcXVlc3QgcGFzdGVib2FyZCBkYXRhIGZyb20gdGhlIFVJ
IHByb2Nlc3MKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAkocmV2aXNpb24gMjU5MDQ1KQorKysgU291cmNlL1dl
YktpdC9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNDc4LDYgKzQ3OCw3IEBAIFVJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ28KIAogV2ViUHJvY2Vzcy9XZWJDb25u
ZWN0aW9uVG9VSVByb2Nlc3MuY3BwCiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCitXZWJQcm9j
ZXNzL1dlYlNsZWVwRGlzYWJsZXJDbGllbnQuY3BwCiAKIC8vIEZJWE1FKDIwNjI2Nik6IEF1dG9t
YXRpb25Qcm90b2NvbE9iamVjdHMuaCdzICJuYW1lc3BhY2UgUHJvdG9jb2wiIGNvbmZsaWN0cyB3
aXRoIG9iamMvcnVudGltZS5oJ3MgInR5cGVkZWYgc3RydWN0IG9iamNfb2JqZWN0IFByb3RvY29s
IgogV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwIEBu
by11bmlmeQpJbmRleDogU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CShy
ZXZpc2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yMjIsNiArMjIyLDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fu
bm90X2JlX2ZvcndhcmRfZGVjbGFyZQogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlck9y
Q2xpZW50RGF0YScsCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVu
dGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVu
dGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyJywKICAg
ICAgICAgJ1dlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXInLAogICAgICAgICAn
V2ViS2l0OjpBY3Rpdml0eVN0YXRlQ2hhbmdlSUQnLAogICAgICAgICAnV2ViS2l0OjpBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXInLApJbmRleDogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNzgxLDYgKzE3ODEsMjIgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZENyZWF0ZUNvbnRl
eHRJbgogfQogI2VuZGlmCiAKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVTbGVlcERp
c2FibGVyKFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
cmVhc29uLCBib29sIGRpc3BsYXkpCit7CisgICAgYXV0byBzbGVlcERpc2FibGVyID0gbWFrZVVu
aXF1ZTxXZWJDb3JlOjpTbGVlcERpc2FibGVyPihyZWFzb24udXRmOCgpLmRhdGEoKSwgZGlzcGxh
eSA/IFBBTDo6U2xlZXBEaXNhYmxlcjo6VHlwZTo6RGlzcGxheSA6IFBBTDo6U2xlZXBEaXNhYmxl
cjo6VHlwZTo6U3lzdGVtKTsKKyAgICBtX3NsZWVwRGlzYWJsZXJzLmFkZChpZGVudGlmaWVyLCBX
VEZNb3ZlKHNsZWVwRGlzYWJsZXIpKTsKK30KKwordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZERl
c3Ryb3lTbGVlcERpc2FibGVyKFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7
CisgICAgbV9zbGVlcERpc2FibGVycy5yZW1vdmUoaWRlbnRpZmllcik7Cit9CisKK2Jvb2wgV2Vi
UHJvY2Vzc1Byb3h5OjpoYXNTbGVlcERpc2FibGVyKCkKK3sKKyAgICByZXR1cm4gbV9zbGVlcERp
c2FibGVycy5zaXplKCkgPiAwOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVm
IE1FU1NBR0VfQ0hFQ0sKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oCShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJh
YmxlRG9tYWluLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRTdHJpbmdIYXNoLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9TbGVlcERpc2FibGVyLmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1
ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtMzc4LDYg
KzM3OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGdwdVByb2Nlc3NDcmFzaGVkKCk7CiAjZW5kaWYK
IAorICAgIGJvb2wgaGFzU2xlZXBEaXNhYmxlcigpOworCiBwcm90ZWN0ZWQ6CiAgICAgV2ViUHJv
Y2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFTdG9yZSosIElzUHJld2FybWVk
KTsKIApAQCAtNDc1LDYgKzQ3OCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZW5kTWVzc2FnZVRv
V2ViQ29udGV4dFdpdGhSZXBseShVc2VyTWVzc2FnZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFVzZXJNZXNzYWdlJiYpPiYmKTsKICNlbmRpZgogCisgICAgdm9pZCBkaWRDcmVhdGVTbGVlcERp
c2FibGVyKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHJl
YXNvbiwgYm9vbCBkaXNwbGF5KTsKKyAgICB2b2lkIGRpZERlc3Ryb3lTbGVlcERpc2FibGVyKFdl
YkNvcmU6OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyKTsKKwogICAgIGVudW0gY2xhc3MgSXNXZWFr
IHsgTm8sIFllcyB9OwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWtPclN0cm9u
Z1B0ciB7CiAgICAgcHVibGljOgpAQCAtNTgwLDYgKzU4Niw4IEBAIHByaXZhdGU6CiAgICAgICAg
IFdlYWtIYXNoU2V0PFdlYlByb2Nlc3NQcm94eT4gY2xpZW50UHJvY2Vzc2VzOwogICAgIH07CiAg
ICAgT3B0aW9uYWw8U2VydmljZVdvcmtlckluZm9ybWF0aW9uPiBtX3NlcnZpY2VXb3JrZXJJbmZv
cm1hdGlvbjsKKworICAgIEhhc2hNYXA8V2ViQ29yZTo6U2xlZXBEaXNhYmxlcklkZW50aWZpZXIs
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTbGVlcERpc2FibGVyPj4gbV9zbGVlcERpc2FibGVy
czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjU5
MDQ1KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2Vz
LmluCSh3b3JraW5nIGNvcHkpCkBAIC04MCw0ICs4MCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nl
c3NQcm94eSBMZWdhY3lSZWNlaXYKICAgICBTZW5kTWVzc2FnZVRvV2ViQ29udGV4dChzdHJ1Y3Qg
V2ViS2l0OjpVc2VyTWVzc2FnZSB1c2VyTWVzc2FnZSkKICAgICBTZW5kTWVzc2FnZVRvV2ViQ29u
dGV4dFdpdGhSZXBseShzdHJ1Y3QgV2ViS2l0OjpVc2VyTWVzc2FnZSB1c2VyTWVzc2FnZSkgLT4g
KHN0cnVjdCBXZWJLaXQ6OlVzZXJNZXNzYWdlIHJlcGx5TWVzc2FnZSkgQXN5bmMKICNlbmRpZgor
CisgICAgRGlkQ3JlYXRlU2xlZXBEaXNhYmxlcihXZWJDb3JlOjpTbGVlcERpc2FibGVySWRlbnRp
ZmllciBpZGVudGlmaWVyLCBTdHJpbmcgcmVhc29uLCBib29sIGRpc3BsYXkpCisgICAgRGlkRGVz
dHJveVNsZWVwRGlzYWJsZXIoV2ViQ29yZTo6U2xlZXBEaXNhYmxlcklkZW50aWZpZXIgaWRlbnRp
ZmllcikKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlRm9yVGVzdGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCShyZXZpc2lvbiAyNTkw
NDUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0
ZUZvclRlc3RpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNjQsNCArNjQsNSBAQAogKyAodm9pZClf
c2V0QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyOihOU1N0cmluZyAqKWJ1bmRsZUlkZW50aWZp
ZXI7CiArICh2b2lkKV9jbGVhckFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllclRlc3RpbmdPdmVy
cmlkZTsKIAorLSAoQk9PTClfaGFzU2xlZXBEaXNhYmxlcjsKIEBlbmQKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1t
CShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3VGVzdGluZy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjIwLDQgKzIyMCw5IEBAICsg
KHZvaWQpX2NsZWFyQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWUKICAgICBXZWJDb3JlOjpjbGVh
ckFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllclRlc3RpbmdPdmVycmlkZSgpOwogfQogCistIChC
T09MKV9oYXNTbGVlcERpc2FibGVyCit7CisgICAgcmV0dXJuIF9wYWdlID8gX3BhZ2UtPnByb2Nl
c3MoKS5oYXNTbGVlcERpc2FibGVyKCkgOiBmYWxzZTsKK30KKwogQGVuZApJbmRleDogU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAy
NTkwNDUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC00OTgzLDYgKzQ5ODMsOCBAQAogCQlDMTgxNzM1RTIwNTgzOUY2
MDBERkRBNjUgLyogRHJhd2luZ0FyZWFNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRHJhd2lu
Z0FyZWFNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTgxNzM2MDIwNTg0
MjQ3MDBERkRBNjUgLyogRGlzcGxheUxpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheUxpbmsu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE4MTczNjIyMDU4NDRBOTAwREZEQTY1
IC8qIERpc3BsYXlMaW5rLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpc3BsYXlMaW5rLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzE4RkI1MUQyNDJGOUY3NjAwN0U5ODc1IC8q
IFdlYlNsZWVwRGlzYWJsZXJDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViU2xlZXBEaXNhYmxlckNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMxOEZCNTFFMjQyRjlGNzcwMDdFOTg3NSAvKiBXZWJTbGVlcERpc2FibGVyQ2xp
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNsZWVwRGlzYWJsZXJD
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzFFMTIzQjkyMEExMTU3MjAw
MjY0NkY0IC8qIFBERkNvbnRleHRNZW51LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBERkNvbnRleHRNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1MTcz
ODgwMTJERjhGNEYwMEVFM0Y0NyAvKiBEcmFnQ29udHJvbGxlckFjdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBEcmFnQ29udHJvbGxlckFjdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDNTIzN0Y1RjEyNDQxQ0EzMDA3ODA0NzIgLyogV2ViRWRpdG9y
Q2xpZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2Vi
RWRpdG9yQ2xpZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODcwMSw2
ICs4NzAzLDggQEAKIAkJCQlCQzAzMkQ5MTEwRjQzN0FGMDA1OEMxNUEgLyogV2ViUHJvY2Vzcy5o
ICovLAogCQkJCUJDMzA2NkI5MTI1QTQzNjMwMEU3MTI3OCAvKiBXZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluICovLAogCQkJCUJDRTBFNDI0MTY4QjdBMjgwMDU3RTY2QSAvKiBXZWJQcm9jZXNzU3VwcGxl
bWVudC5oICovLAorCQkJCUMxOEZCNTFEMjQyRjlGNzYwMDdFOTg3NSAvKiBXZWJTbGVlcERpc2Fi
bGVyQ2xpZW50LmNwcCAqLywKKwkJCQlDMThGQjUxRTI0MkY5Rjc3MDA3RTk4NzUgLyogV2ViU2xl
ZXBEaXNhYmxlckNsaWVudC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBXZWJQcm9jZXNzOwogCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJTbGVlcERpc2FibGVyQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViU2xlZXBEaXNhYmxlckNsaWVudC5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlNsZWVwRGlzYWJsZXJDbGllbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyog
YXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBDT01QVVRFUiwgSU5DLiBPUgorKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViU2xlZXBEaXNhYmxl
ckNsaWVudC5oIgorCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYlByb2Nl
c3NQcm94eU1lc3NhZ2VzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYlNsZWVw
RGlzYWJsZXJDbGllbnQ6OmRpZENyZWF0ZVNsZWVwRGlzYWJsZXIoU2xlZXBEaXNhYmxlcklkZW50
aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiByZWFzb24sIGJvb2wgZGlzcGxheSkKK3sK
KyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpZENyZWF0ZVNsZWVwRGlzYWJsZXIoaWRl
bnRpZmllciwgcmVhc29uLCBkaXNwbGF5KSwgMCk7Cit9CisKK3ZvaWQgV2ViU2xlZXBEaXNhYmxl
ckNsaWVudDo6ZGlkRGVzdHJveVNsZWVwRGlzYWJsZXIoU2xlZXBEaXNhYmxlcklkZW50aWZpZXIg
aWRlbnRpZmllcikKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpZERlc3Ryb3lT
bGVlcERpc2FibGVyKGlkZW50aWZpZXIpLCAwKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU2xlZXBEaXNhYmxlckNsaWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTbGVlcERpc2FibGVy
Q2xpZW50LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlNs
ZWVwRGlzYWJsZXJDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM5IEBACisvKgor
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgor
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgor
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlIDxXZWJDb3JlL1NsZWVwRGlzYWJsZXJDbGllbnQuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFdlYlNsZWVwRGlzYWJsZXJDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6U2xl
ZXBEaXNhYmxlckNsaWVudCB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6
CisgICAgdm9pZCBkaWRDcmVhdGVTbGVlcERpc2FibGVyKFNsZWVwRGlzYWJsZXJJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmLCBib29sKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZERlc3Ryb3lTbGVl
cERpc2FibGVyKFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyKSBvdmVycmlkZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVMZWdhY3lDRE0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNLmNwcAkocmV2aXNpb24gMjU5MDQ1KQorKysg
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVMZWdhY3lDRE0uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
ICYmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElBKQogCisjaW5jbHVkZSAiR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24uaCIKKwogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETUZhY3RvcnkuaCIKICNp
bmNsdWRlICJSZW1vdGVMZWdhY3lDRE1Qcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3Rl
TGVnYWN5Q0RNU2Vzc2lvbi5oIgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC00Niw2ICs0Niw3IEBACiAjaW1wb3J0ICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycy5oIgogI2ltcG9ydCAi
V2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbXBvcnQgIldlYlNsZWVwRGlzYWJsZXJDbGll
bnQuaCIKICNpbXBvcnQgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgiCiAjaW1wb3J0IDxK
YXZhU2NyaXB0Q29yZS9Db25maWdGaWxlLmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9PcHRp
b25zLmg+CkBAIC02MywxMCArNjQsMTIgQEAKICNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVSZWdp
c3RyeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9NZW1vcnlSZWxlYXNlLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL05TU2Nyb2xsZXJJbXBEZXRhaWxzLmg+CisjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtFeHRl
bnNpb25Db250ZW50RmlsdGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BlcmZvcm1hbmNlTG9nZ2lu
Zy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUv
U1dDb250ZXh0TWFuYWdlci5oPgorI2ltcG9ydCA8V2ViQ29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1VUSVV0aWxpdGllcy5oPgogI2ltcG9ydCA8YWxnb3JpdGhtPgogI2lt
cG9ydCA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KQEAgLTEzMSwxMSArMTM0LDYgQEAKICNpbXBvcnQg
PG9zL3N0YXRlX3ByaXZhdGUuaD4KICNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jaW1w
b3J0IDxXZWJDb3JlL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmg+Ci0jaW1wb3J0IDxX
ZWJDb3JlL1N5c3RlbUJhdHRlcnkuaD4KLSNlbmRpZgotCiAjaWYgSEFWRShDU0NIRUNLRklYRElT
QUJMRSkKIGV4dGVybiAiQyIgdm9pZCBfQ1NDaGVja0ZpeERpc2FibGUoKTsKICNlbmRpZgpAQCAt
MzE4LDYgKzMxNiw4IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHIK
ICAgICAgICAgc2V0VmVjdG9yT2ZVVFR5cGVJdGVtKFdURk1vdmUocGFyYW1ldGVycy52ZWN0b3JP
ZlVUVHlwZUl0ZW0pKTsKICAgICB9CiAjZW5kaWYKKworICAgIFdlYkNvcmU6OnNsZWVwRGlzYWJs
ZXJDbGllbnQoKSA9IG1ha2VVbmlxdWU8V2ViU2xlZXBEaXNhYmxlckNsaWVudD4oKTsKIH0KIAog
dm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKFdl
YlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKSW5kZXg6IFRvb2xzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTEzMikK
KysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIw
LTAzLTI3ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBb
Q29jb2FdIFNsZWVwIGRpc2FibGluZyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9j
ZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2
NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1NsZWVwRGlzYWJsZXIubW06IEFkZGVk
LgorICAgICAgICAoVEVTVCk6CisKIDIwMjAtMDMtMjcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9y
bWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtGbGF0cGFrIFNES10gQWxsb3cgcGFzc2luZyBn
c3QtYnVpbGQgTWVzb24gb3B0aW9ucwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlz
aW9uIDI1OTA0NSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC04ODMsNiArODgzLDcgQEAKIAkJ
QzBDNUQzQzYxNDU5OTEyOTAwQTgwMkE2IC8qIEdldEJhY2tpbmdTY2FsZUZhY3Rvcl9CdW5kbGUu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMEM1RDNC
RDE0NTk4QjZGMDBBODAyQTYgLyogR2V0QmFja2luZ1NjYWxlRmFjdG9yX0J1bmRsZS5tbSAqLzsg
fTsKIAkJQzEzRDgyRDkyNDE2RjEzMjAwQTYyNzkzIC8qIEVuYWJsZUFjY2Vzc2liaWxpdHkubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTNEODJEODI0
MTZGMTMyMDBBNjI3OTMgLyogRW5hYmxlQWNjZXNzaWJpbGl0eS5tbSAqLzsgfTsKIAkJQzE0NUND
MEMyM0RBNUExRjAwM0E1RUVCIC8qIE1pbWVUeXBlcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNDVDQzBCMjNEQTVBMEYwMDNBNUVFQiAvKiBNaW1l
VHlwZXMubW0gKi87IH07CisJCUMxNDlENTUwMjQyRTk4REYwMDNFQkIxMiAvKiBTbGVlcERpc2Fi
bGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE0
OUQ1NEYyNDJFOTg0NDAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIubW0gKi87IH07CiAJCUMxNUNC
QjMwMjNGMUZGMUEwMDMwMENDNyAvKiBCYWNrbGlnaHRMZXZlbE5vdGlmaWNhdGlvbi5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNUNCQjJGMjNGMUZG
MUEwMDMwMENDNyAvKiBCYWNrbGlnaHRMZXZlbE5vdGlmaWNhdGlvbi5tbSAqLzsgfTsKIAkJQzE1
Q0JCM0YyM0ZCMTc3QTAwMzAwQ0M3IC8qIFByZWZlcmVuY2VDaGFuZ2VzLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE1Q0JCM0UyM0ZCMTc3QTAwMzAw
Q0M3IC8qIFByZWZlcmVuY2VDaGFuZ2VzLm1tICovOyB9OwogCQlDMTY5MkRDQTIzRDEwREFFMDA2
RTg4RjcgLyogQmF0dGVyeS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEMxNjkyREM5MjNEMTBEQUUwMDZFODhGNyAvKiBCYXR0ZXJ5Lm1tICovOyB9OwpA
QCAtMjQ1OCw2ICsyNDU5LDcgQEAKIAkJQzBDNUQzQkQxNDU5OEI2RjAwQTgwMkE2IC8qIEdldEJh
Y2tpbmdTY2FsZUZhY3Rvcl9CdW5kbGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBHZXRCYWNraW5nU2NhbGVGYWN0b3JfQnVuZGxlLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDMTNEODJEODI0MTZGMTMyMDBBNjI3OTMgLyogRW5hYmxlQWNjZXNz
aWJpbGl0eS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEVuYWJsZUFjY2Vzc2liaWxpdHkubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNDVDQzBCMjNEQTVBMEYwMDNBNUVFQiAv
KiBNaW1lVHlwZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBN
aW1lVHlwZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMxNDlENTRGMjQyRTk4
NDQwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gU2xlZXBEaXNhYmxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQzE1Q0JCMkYyM0YxRkYxQTAwMzAwQ0M3IC8qIEJhY2tsaWdodExldmVsTm90aWZpY2F0
aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQmFja2xpZ2h0TGV2ZWxOb3RpZmljYXRpb24u
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNUNCQjNFMjNGQjE3N0EwMDMwMEND
NyAvKiBQcmVmZXJlbmNlQ2hhbmdlcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFByZWZlcmVuY2VDaGFuZ2VzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDMTY5MkRDOTIzRDEwREFFMDA2RTg4RjcgLyogQmF0dGVyeS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IEJhdHRlcnkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yOTIx
LDYgKzI5MjMsNyBAQAogCQkJCUMxNDVDQzBCMjNEQTVBMEYwMDNBNUVFQiAvKiBNaW1lVHlwZXMu
bW0gKi8sCiAJCQkJRTMyNUM5MDYyM0UzODcwMjAwQkM3RDNCIC8qIFBpY3R1cmVJblBpY3R1cmVT
dXBwb3J0Lm1tICovLAogCQkJCUMxNUNCQjNFMjNGQjE3N0EwMDMwMENDNyAvKiBQcmVmZXJlbmNl
Q2hhbmdlcy5tbSAqLywKKwkJCQlDMTQ5RDU0RjI0MkU5ODQ0MDAzRUJCMTIgLyogU2xlZXBEaXNh
Ymxlci5tbSAqLywKIAkJCQlDMTk0RTMxQzI0MDlERjQzMDAyOTM5RUQgLyogVVRJRnJvbU1JTUVU
eXBlLm1tICovLAogCQkJCUUzQ0FBQTRCMjQxNTUwNTEwMENFRDJFMiAvKiBVVElGcm9tVGFnLm1t
ICovLAogCQkJCTBGMTM5RTc1MUE0MjNBNTMwMEY1OTBGNSAvKiBXZWFrT2JqQ1B0ci5tbSAqLywK
QEAgLTUwNTgsNiArNTA2MSw3IEBACiAJCQkJMzdCQ0E2MUMxQjU5NkJBOTAwMjAxMkNBIC8qIFNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNJbk5ld1dpbmRvd0FjdGlvbnMubW0gaW4gU291cmNlcyAqLywK
IAkJCQk3QzgzRTBDNTFEMEE2NTQ2MDBGRUJDRjMgLyogU2hyaW5rVG9GaXQubW0gaW4gU291cmNl
cyAqLywKIAkJCQk3Q0NFN0VDRDFBNDExQTdFMDA0NDdDNEMgLyogU2ltcGxpZnlNYXJrdXAubW0g
aW4gU291cmNlcyAqLywKKwkJCQlDMTQ5RDU1MDI0MkU5OERGMDAzRUJCMTIgLyogU2xlZXBEaXNh
Ymxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJERkY3QjZEMURBNDg3QUYwMDgxNDYxNCAvKiBT
bmFwc2hvdFN0b3JlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0RkZBOUUxRUQzQUE4NTAwRjcx
MTFGIC8qIFNuYXBzaG90VmlhUmVuZGVySW5Db250ZXh0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
N0NDRTdGMTUxQTQxMUFFNjAwNDQ3QzRDIC8qIFNwYWNlYmFyU2Nyb2xsaW5nLmNwcCBpbiBTb3Vy
Y2VzICovLApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU2xlZXBEaXNh
Ymxlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9T
bGVlcERpc2FibGVyLm1tCShub25leGlzdGVudCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L1NsZWVwRGlzYWJsZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFdLX0hBVkVfQ19TUEkK
KworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcu
aCIKKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oPgorI2ltcG9y
dCA8d3RmL1RocmVhZGluZy5oPgorCitURVNUKFdlYktpdCwgU2xlZXBEaXNhYmxlcikKK3sKKyAg
ICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFk
b3B0V0soVGVzdFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxl
VGVzdCgiSW50ZXJuYWxzSW5qZWN0ZWRCdW5kbGVUZXN0IikpOworICAgIGNvbmZpZ3VyYXRpb24u
Z2V0KCkucHJvY2Vzc1Bvb2wgPSAoV0tQcm9jZXNzUG9vbCAqKWNvbnRleHQuZ2V0KCk7CisgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9u
LmdldCgpIGFkZFRvV2luZG93OllFU10pOworCisgICAgQVNTRVJUX0ZBTFNFKFt3ZWJWaWV3IF9o
YXNTbGVlcERpc2FibGVyXSk7CisKKyAgICBhdXRvIGNyZWF0ZVNsZWVwRGlzYWJsZXIgPSBbJl0g
eworICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpA
IndpbmRvdy5pbnRlcm5hbHMuY3JlYXRlU2xlZXBEaXNhYmxlcihcIlRlc3REaXNhYmxlclwiLCB0
cnVlKSJdLmxvbmdMb25nVmFsdWU7CisgICAgfTsKKworICAgIGF1dG8gaWRlbnRpZmllciA9IGNy
ZWF0ZVNsZWVwRGlzYWJsZXIoKTsKKworICAgIEFTU0VSVF9ORShpZGVudGlmaWVyLCAwKTsKKwor
ICAgIEFTU0VSVF9UUlVFKFt3ZWJWaWV3IF9oYXNTbGVlcERpc2FibGVyXSk7CisKKyAgICBhdXRv
IGRlc3Ryb3lTbGVlcERpc2FibGVyID0gWyZdIHsKKyAgICAgICAgTlNTdHJpbmcgKmpzID0gW05T
U3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cuaW50ZXJuYWxzLmRlc3Ryb3lTbGVlcERp
c2FibGVyKCVsbGQpIiwgaWRlbnRpZmllcl07CisgICAgICAgIHJldHVybiBbd2ViVmlldyBzdHJp
bmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OmpzXTsKKyAgICB9OworCisgICAgQVNTRVJUX1RSVUUo
ZGVzdHJveVNsZWVwRGlzYWJsZXIoKSk7CisKKyAgICBBU1NFUlRfRkFMU0UoW3dlYlZpZXcgX2hh
c1NsZWVwRGlzYWJsZXJdKTsKK30KKworI2VuZGlmIC8vIFdLX0hBVkVfQ19TUEkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394818</attachid>
            <date>2020-03-28 09:00:11 -0700</date>
            <delta_ts>2020-03-28 09:29:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209676-20200328090010.patch</filename>
            <type>text/plain</type>
            <size>47811</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTE1NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDIwLTAzLTI4ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFNsZWVwIGRp
c2FibGluZyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW5jZSBzbGVlcCBkaXNhYmxp
bmcgaXMgY2F1c2luZyBjb21tdW5pY2F0aW9uIHdpdGggdGhlIHBvd2VyIG1hbmFnZW1lbnQgc2Vy
dmljZSwgaXQgc2hvdWxkIGJlIHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAg
VGhpcyBwYXRjaCBmaXhlcyB0aGlzIGJ5IGNyZWF0aW5nIGEgc2xlZXAgZGlzYWJsZXIgY2xpZW50
LCB3aGljaCB3aWxsIG5vdGlmeSB0aGUgVUkgcHJvY2VzcyB3aGVuIGEgc2xlZXAgZGlzYWJsZXIg
aXMgYmVpbmcKKyAgICAgICAgY3JlYXRlZCBhbmQgZGVzdHJveWVkLiBJbiByZXNwb25zZSB0byB0
aGVzZSBtZXNzYWdlcywgdGhlIFVJIHByb2Nlc3Mgd2lsbCBwZXJmb3JtIHRoZSBhY3R1YWwgc2xl
ZXAgZGlzYWJsaW5nIGFuZCBlbmFibGluZy4KKyAgICAgICAgQSBuZXcgc2xlZXAgZGlzYWJsZXIg
Y2xhc3MgaXMgY3JlYXRlZCB3aGljaCB3cmFwcyB0aGUgUEFMIHNsZWVwIGRpc2FibGVyLCBhbmQg
bm90aWZpZXMgdGhlIHNsZWVwIGRpc2FibGVyIGNsaWVudCB3aGVuIHNldC4KKyAgICAgICAgSWYg
dGhlIHNsZWVwIGRpc2FibGVyIGNsaWVudCBpcyBzZXQsIGEgUEFMIHNsZWVwIGRpc2FibGVyIGlu
c3RhbmNlIHdpbGwgbm90IGJlIGNyZWF0ZWQgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcywgc2lu
Y2UgdGhpcworICAgICAgICB3aWxsIHRoZW4gaGFwcGVuIGluIHRoZSBVSSBwcm9jZXNzLgorCisg
ICAgICAgIEFQSSB0ZXN0OiBXZWJLaXQuU2xlZXBEaXNhYmxlcgorCisgICAgICAgICogU291cmNl
cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50Ojp1cGRhdGVTbGVlcERpc2FibGluZyk6CisgICAgICAgICogaHRtbC9IVE1M
TWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vU2xlZXBEaXNhYmxlci5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6U2xlZXBEaXNhYmxlcjo6U2xlZXBEaXNhYmxlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTbGVlcERpc2FibGVyOjp+U2xlZXBEaXNhYmxlcik6CisgICAgICAg
ICogcGxhdGZvcm0vU2xlZXBEaXNhYmxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNs
ZWVwRGlzYWJsZXI6OnR5cGUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1NsZWVwRGlzYWJs
ZXJDbGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnNsZWVwRGlzYWJsZXJDbGll
bnQpOgorICAgICAgICAqIHBsYXRmb3JtL1NsZWVwRGlzYWJsZXJDbGllbnQuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTbGVlcERpc2FibGVyQ2xpZW50Ojp+U2xlZXBEaXNhYmxlckNsaWVu
dCk6CisgICAgICAgICogcGxhdGZvcm0vU2xlZXBEaXNhYmxlcklkZW50aWZpZXIuaDogQWRkZWQu
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50
ZXJuYWxzOjpjcmVhdGVTbGVlcERpc2FibGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
czo6ZGVzdHJveVNsZWVwRGlzYWJsZXIpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDIwLTAzLTI4ICBDb21taXQg
UXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBy
ZXZlcnRpbmcgcjI1OTAzNC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNTkwNDUpCisr
KyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTc5OCw2ICsx
Nzk4LDggQEAgcGxhdGZvcm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZS5jcHAKIHBsYXRmb3Jt
L1NoYXJlZEJ1ZmZlci5jcHAKIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlckNodW5rUmVhZGVyLmNwcAog
cGxhdGZvcm0vU2hhcmVkU3RyaW5nSGFzaC5jcHAKK3BsYXRmb3JtL1NsZWVwRGlzYWJsZXIuY3Bw
CitwbGF0Zm9ybS9TbGVlcERpc2FibGVyQ2xpZW50LmNwcAogcGxhdGZvcm0vU3RhdGljUGFzdGVi
b2FyZC5jcHAKIHBsYXRmb3JtL1RoZW1lLmNwcAogcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5j
cHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzk4Niw2ICszOTg2LDkg
QEAKIAkJQzEwNURBNjQwRjNBQTZCODAwMURENDRGIC8qIFRleHRFbmNvZGluZ0RldGVjdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTA1REE2MzBG
M0FBNkI4MDAxREQ0NEYgLyogVGV4dEVuY29kaW5nRGV0ZWN0b3IuaCAqLzsgfTsKIAkJQzExQTlF
Q0UyMTQwM0E1QzAwQ0ZCMjBBIC8qIFN3aXRjaGluZ0dQVUNsaWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzExQTlFQ0QyMTQwM0E1QzAwQ0ZCMjBB
IC8qIFN3aXRjaGluZ0dQVUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUMxNDkzODA3MjIzNDU1MUEwMDBDRDcwNyAvKiBTcGVlY2hTeW50
aGVzaXNDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEMxNDkzODA1MjIzNDI3MTkwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDMTQ5RDU1
RDI0MkVBNkI5MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE0OUQ1NUEyNDJFQTRGOTAwM0VCQjEyIC8qIFNs
ZWVwRGlzYWJsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQlDMTQ5RDU1RjI0MkVBN0I4MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlckNsaWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE0OUQ1NUIy
NDJFQTRGQTAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDMTQ5RDU2NzI0MkVCODRBMDAzRUJC
MTIgLyogU2xlZXBEaXNhYmxlcklkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNDlENTY1MjQyRUI3NjUwMDNFQkIxMiAvKiBTbGVlcERp
c2FibGVySWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUMxNjkyREQyMjNEMjNBQkQwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5Lm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE2OTJERDEy
M0QyM0FCRDAwNkU4OEY3IC8qIFN5c3RlbUJhdHRlcnkubW0gKi87IH07CiAJCUMxNjkyREQ1MjNE
MjNFMDgwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTY5MkRENDIzRDIzQUUwMDA2RTg4RjcgLyogU3lzdGVt
QmF0dGVyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUMxRTFEMjM2MjAzREYxNTQwMDU4NDY2NSAvKiBTY3JlZW5Qcm9wZXJ0aWVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMUUxRDIzNTIwM0RGMTU0
MDA1ODQ2NjUgLyogU2NyZWVuUHJvcGVydGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMzU4Miw4ICsxMzU4NSwxMyBAQAogCQlDMTFBOUVD
RDIxNDAzQTVDMDBDRkIyMEEgLyogU3dpdGNoaW5nR1BVQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFN3aXRjaGluZ0dQVUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTFB
OUVEMjIxNDA1NzhCMDBDRkIyMEEgLyogU3dpdGNoaW5nR1BVQ2xpZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFN3aXRjaGluZ0dQVUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMxNDkzODA1MjIzNDI3MTkwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoU3ludGhlc2lzQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUMxNDlENTU5MjQyRUE0RjgwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNsZWVwRGlzYWJsZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMTQ5RDU1QTI0MkVBNEY5MDAzRUJC
MTIgLyogU2xlZXBEaXNhYmxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
bGVlcERpc2FibGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMxNDlENTVCMjQy
RUE0RkEwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNsZWVwRGlzYWJsZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQzE0OUQ1NjUyNDJFQjc2NTAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXJJZGVu
dGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNjkyREQxMjNEMjNBQkQwMDZFODhGNyAvKiBTeXN0
ZW1CYXR0ZXJ5Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU3lzdGVtQmF0dGVyeS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE2OTJERDQyM0QyM0FFMDAwNkU4OEY3IC8qIFN5
c3RlbUJhdHRlcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3lzdGVtQmF0dGVyeS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDMThGQjUxODI0MkY5MzgyMDA3RTk4NzUgLyogU2xlZXBEaXNh
YmxlckNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTbGVlcERpc2FibGVyQ2xpZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzFFMUQyMzUyMDNERjE1NDAwNTg0NjY1
IC8qIFNjcmVlblByb3BlcnRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyZWVuUHJvcGVydGllcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMjAxNUMwOTFCRTZGRTJDMDA4MjIzODkg
LyogRm9udFZhcmlhbnRCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRWYXJpYW50QnVpbGRl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMjBGNEY2NDIxREZCRTVDMDA3MEM0
NUEgLyogV0hMU0xUeXBlUmVmZXJlbmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdITFNMVHlw
ZVJlZmVyZW5jZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjI0NSw2ICsy
NjI1MywxMSBAQAogCQkJCTgzNERGQUNFMUY3REFFNTcwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdI
YXNoLmNwcCAqLywKIAkJCQk4MzRERkFDQzFGN0RBRTU2MDBDMjcyNUIgLyogU2hhcmVkU3RyaW5n
SGFzaC5oICovLAogCQkJCTkzMzA5RUEwMDk5RUI3OEMwMDU2RTU4MSAvKiBTaGFyZWRUaW1lci5o
ICovLAorCQkJCUMxNDlENTU5MjQyRUE0RjgwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyLmNwcCAq
LywKKwkJCQlDMTQ5RDU1QTI0MkVBNEY5MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlci5oICovLAor
CQkJCUMxOEZCNTE4MjQyRjkzODIwMDdFOTg3NSAvKiBTbGVlcERpc2FibGVyQ2xpZW50LmNwcCAq
LywKKwkJCQlDMTQ5RDU1QjI0MkVBNEZBMDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlckNsaWVudC5o
ICovLAorCQkJCUMxNDlENTY1MjQyRUI3NjUwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVySWRlbnRp
Zmllci5oICovLAogCQkJCUEzMzRCRDgyMjE5NEU0NjEwMDAwRDc3RiAvKiBTU0xLZXlHZW5lcmF0
b3IuY3BwICovLAogCQkJCUY1ODc4NjYyMDJERTNCMTEwMUVBNDEyMiAvKiBTU0xLZXlHZW5lcmF0
b3IuaCAqLywKIAkJCQlGNDMzRTkwNDFEQkJEQkMyMDBFRjBEMTQgLyogU3RhdGljUGFzdGVib2Fy
ZC5jcHAgKi8sCkBAIC0zMjcxNiw2ICszMjcyOSw5IEBACiAJCQkJOTQ0NENCRDYxRDg2MEM4QjAw
NzNBMDc0IC8qIFNpemVzQXR0cmlidXRlUGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NDQ0
Q0JENDFEODYwQzhCMDA3M0EwNzQgLyogU2l6ZXNDYWxjUGFyc2VyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0OUU5MTFDRDBFRjg2RDQ3MDA5RDBDQUYgLyogU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5o
IGluIEhlYWRlcnMgKi8sCisJCQkJQzE0OUQ1NUQyNDJFQTZCOTAwM0VCQjEyIC8qIFNsZWVwRGlz
YWJsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUMxNDlENTVGMjQyRUE3QjgwMDNFQkIxMiAvKiBT
bGVlcERpc2FibGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlDMTQ5RDU2NzI0MkVCODRB
MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlcklkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxNTBGOUYxMTJCNkUwRTcwMDA4Qzg2MCAvKiBTbGlkZXJUaHVtYkVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTlCNTMyRUE0MUJBOTI4NTcwMDM4QTgyNyAvKiBTbG90QXNzaWdubWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNEI2RkE2RjQwQzM5RTQ4QzAwMDg3MDExIC8qIFNtYXJ0UmVw
bGFjZS5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAJKHJldmlzaW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyLDYgKzkyLDcgQEAKICNpbmNs
dWRlICJTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
U2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNsZWVwRGlzYWJsZXIuaCIKICNpbmNsdWRlICJUaW1l
UmFuZ2VzLmgiCiAjaW5jbHVkZSAiVXNlckNvbnRlbnRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
VXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKQEAgLTk5LDcgKzEwMCw2IEBACiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvVWludDhBcnJheS5oPgogI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDxw
YWwvU2Vzc2lvbklELmg+Ci0jaW5jbHVkZSA8cGFsL3N5c3RlbS9TbGVlcERpc2FibGVyLmg+CiAj
aW5jbHVkZSA8d3RmL0FsZ29yaXRobXMuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5l
cy5oPgogI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgpAQCAtNjk0Niw3ICs2OTQ2LDcgQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVTbGVlcERpc2FibAogICAgIGVsc2UgaWYgKHNob3Vs
ZERpc2FibGVTbGVlcCAhPSBTbGVlcFR5cGU6Ok5vbmUpIHsKICAgICAgICAgYXV0byB0eXBlID0g
c2hvdWxkRGlzYWJsZVNsZWVwID09IFNsZWVwVHlwZTo6RGlzcGxheSA/IFBBTDo6U2xlZXBEaXNh
Ymxlcjo6VHlwZTo6RGlzcGxheSA6IFBBTDo6U2xlZXBEaXNhYmxlcjo6VHlwZTo6U3lzdGVtOwog
ICAgICAgICBpZiAoIW1fc2xlZXBEaXNhYmxlciB8fCBtX3NsZWVwRGlzYWJsZXItPnR5cGUoKSAh
PSB0eXBlKQotICAgICAgICAgICAgbV9zbGVlcERpc2FibGVyID0gUEFMOjpTbGVlcERpc2FibGVy
OjpjcmVhdGUoImNvbS5hcHBsZS5XZWJDb3JlOiBIVE1MTWVkaWFFbGVtZW50IHBsYXliYWNrIiwg
dHlwZSk7CisgICAgICAgICAgICBtX3NsZWVwRGlzYWJsZXIgPSBtYWtlVW5pcXVlPFNsZWVwRGlz
YWJsZXI+KCJjb20uYXBwbGUuV2ViQ29yZTogSFRNTE1lZGlhRWxlbWVudCBwbGF5YmFjayIsIHR5
cGUpOwogICAgIH0KIAogICAgIGlmIChtX3BsYXllcikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsMTAgKzYzLDYgQEAK
ICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KICNlbmRpZgogCi1uYW1lc3BhY2Ug
UEFMIHsKLWNsYXNzIFNsZWVwRGlzYWJsZXI7Ci19Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgQXVkaW9Tb3VyY2VQcm92aWRlcjsKQEAgLTk0LDYgKzkwLDcgQEAgY2xhc3MgTWVkaWFT
dHJlYW07CiBjbGFzcyBSZW5kZXJNZWRpYTsKIGNsYXNzIFNjcmlwdENvbnRyb2xsZXI7CiBjbGFz
cyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgU2xlZXBEaXNhYmxlcjsKIGNsYXNzIFNv
dXJjZUJ1ZmZlcjsKIGNsYXNzIFRleHRUcmFja0xpc3Q7CiBjbGFzcyBUaW1lUmFuZ2VzOwpAQCAt
MTE2Miw3ICsxMTU5LDcgQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTWVkaWFDb250cm9s
bGVyOwogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xsZXI+IG1fbWVkaWFDb250cm9sbGVyOwogCi0g
ICAgc3RkOjp1bmlxdWVfcHRyPFBBTDo6U2xlZXBEaXNhYmxlcj4gbV9zbGVlcERpc2FibGVyOwor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxTbGVlcERpc2FibGVyPiBtX3NsZWVwRGlzYWJsZXI7CiAKICAg
ICBXZWFrUHRyPGNvbnN0IE1lZGlhUmVzb3VyY2VMb2FkZXI+IG1fbGFzdE1lZGlhUmVzb3VyY2VM
b2FkZXJGb3JUZXN0aW5nOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERp
c2FibGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERp
c2FibGVyLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVl
cERpc2FibGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNsZWVwRGlzYWJsZXIuaCIKKworI2lu
Y2x1ZGUgIlNsZWVwRGlzYWJsZXJDbGllbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitT
bGVlcERpc2FibGVyOjpTbGVlcERpc2FibGVyKGNvbnN0IGNoYXIqIHJlYXNvbiwgUEFMOjpTbGVl
cERpc2FibGVyOjpUeXBlIHR5cGUpCisgICAgOiBtX3R5cGUodHlwZSkKK3sKKyAgICBpZiAoc2xl
ZXBEaXNhYmxlckNsaWVudCgpKSB7CisgICAgICAgIG1faWRlbnRpZmllciA9IFNsZWVwRGlzYWJs
ZXJJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOworICAgICAgICBzbGVlcERpc2FibGVyQ2xpZW50KCkt
PmRpZENyZWF0ZVNsZWVwRGlzYWJsZXIobV9pZGVudGlmaWVyLCByZWFzb24sIHR5cGUgPT0gUEFM
OjpTbGVlcERpc2FibGVyOjpUeXBlOjpEaXNwbGF5KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIG1fcGxhdGZvcm1TbGVlcERpc2FibGVyID0gUEFMOjpTbGVlcERpc2FibGVyOjpjcmVh
dGUocmVhc29uLCB0eXBlKTsKK30KKworU2xlZXBEaXNhYmxlcjo6flNsZWVwRGlzYWJsZXIoKQor
eworICAgIGlmIChzbGVlcERpc2FibGVyQ2xpZW50KCkpCisgICAgICAgIHNsZWVwRGlzYWJsZXJD
bGllbnQoKS0+ZGlkRGVzdHJveVNsZWVwRGlzYWJsZXIobV9pZGVudGlmaWVyKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBE
aXNhYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlz
YWJsZXIuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERp
c2FibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2xlZXBEaXNhYmxlcklkZW50aWZpZXIuaCIKKworI2lu
Y2x1ZGUgPHBhbC9zeXN0ZW0vU2xlZXBEaXNhYmxlci5oPgorI2luY2x1ZGUgPHd0Zi9PYmplY3RJ
ZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2xlZXBEaXNhYmxl
ciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgV0VCQ09SRV9F
WFBPUlQgU2xlZXBEaXNhYmxlcihjb25zdCBjaGFyKiwgUEFMOjpTbGVlcERpc2FibGVyOjpUeXBl
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB+U2xlZXBEaXNhYmxlcigpOworCisgICAgUEFMOjpTbGVl
cERpc2FibGVyOjpUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKworcHJpdmF0
ZToKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UEFMOjpTbGVlcERpc2FibGVyPiBtX3BsYXRmb3JtU2xl
ZXBEaXNhYmxlcjsKKyAgICBTbGVlcERpc2FibGVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7Cisg
ICAgUEFMOjpTbGVlcERpc2FibGVyOjpUeXBlIG1fdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJsZXJDbGll
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJs
ZXJDbGllbnQuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Ns
ZWVwRGlzYWJsZXJDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2xlZXBEaXNhYmxlckNs
aWVudC5oIgorCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworc3RkOjp1bmlxdWVfcHRyPFNsZWVwRGlzYWJsZXJDbGllbnQ+JiBzbGVlcERp
c2FibGVyQ2xpZW50KCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjp1bmlxdWVf
cHRyPFNsZWVwRGlzYWJsZXJDbGllbnQ+PiBjbGllbnQ7CisgICAgcmV0dXJuIGNsaWVudC5nZXQo
KTsKK30KKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxlckNs
aWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJs
ZXJDbGllbnQuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVl
cERpc2FibGVyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NSBAQAorLyoKKyog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiU2xlZXBEaXNhYmxlcklkZW50aWZpZXIuaCIKKworI2luY2x1ZGUgPHBhbC9zeXN0ZW0v
U2xlZXBEaXNhYmxlci5oPgorI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgU2xlZXBEaXNhYmxlckNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+U2xlZXBEaXNh
YmxlckNsaWVudCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVTbGVlcERpc2FibGVy
KFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHJlYXNvbiwgYm9vbCBkaXNw
bGF5KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZERlc3Ryb3lTbGVlcERpc2FibGVyKFNsZWVw
RGlzYWJsZXJJZGVudGlmaWVyKSA9IDA7Cit9OworCitXRUJDT1JFX0VYUE9SVCBzdGQ6OnVuaXF1
ZV9wdHI8U2xlZXBEaXNhYmxlckNsaWVudD4mIHNsZWVwRGlzYWJsZXJDbGllbnQoKTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBE
aXNhYmxlcklkZW50aWZpZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TbGVlcERpc2FibGVySWRlbnRpZmllci5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJsZXJJZGVudGlmaWVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3Rm
L09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIFNsZWVw
RGlzYWJsZXJJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBTbGVlcERpc2FibGVySWRlbnRpZmll
ciA9IE9iamVjdElkZW50aWZpZXI8U2xlZXBEaXNhYmxlcklkZW50aWZpZXJUeXBlPjsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAkocmV2aXNpb24gMjU5MDQ1KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NTY1LDQgKzU1NjUsMTcgQEAgU3RyaW5nIEludGVybmFs
czo6Zm9jdXNSaW5nQ29sb3IoKQogICAgIHJldHVybiBSZW5kZXJUaGVtZTo6c2luZ2xldG9uKCku
Zm9jdXNSaW5nQ29sb3Iob3B0aW9ucykuY3NzVGV4dCgpOwogfQogCit1bnNpZ25lZCBJbnRlcm5h
bHM6OmNyZWF0ZVNsZWVwRGlzYWJsZXIoY29uc3QgU3RyaW5nJiByZWFzb24sIGJvb2wgZGlzcGxh
eSkKK3sKKyAgICBzdGF0aWMgdW5zaWduZWQgaWRlbnRpZmllciA9IDA7CisgICAgYXV0byBzbGVl
cERpc2FibGVyID0gbWFrZVVuaXF1ZTxXZWJDb3JlOjpTbGVlcERpc2FibGVyPihyZWFzb24udXRm
OCgpLmRhdGEoKSwgZGlzcGxheSA/IFBBTDo6U2xlZXBEaXNhYmxlcjo6VHlwZTo6RGlzcGxheSA6
IFBBTDo6U2xlZXBEaXNhYmxlcjo6VHlwZTo6U3lzdGVtKTsKKyAgICBtX3NsZWVwRGlzYWJsZXJz
LmFkZCgrK2lkZW50aWZpZXIsIFdURk1vdmUoc2xlZXBEaXNhYmxlcikpOworICAgIHJldHVybiBp
ZGVudGlmaWVyOworfQorCitib29sIEludGVybmFsczo6ZGVzdHJveVNsZWVwRGlzYWJsZXIodW5z
aWduZWQgaWRlbnRpZmllcikKK3sKKyAgICByZXR1cm4gbV9zbGVlcERpc2FibGVycy5yZW1vdmUo
aWRlbnRpZmllcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaAkocmV2aXNpb24gMjU5MDQ1KQorKysgU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogI2lu
Y2x1ZGUgIk9yaWVudGF0aW9uTm90aWZpZXIuaCIKICNpbmNsdWRlICJQYWdlQ29uc29sZUNsaWVu
dC5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlICJTbGVlcERp
c2FibGVyLmgiCiAjaW5jbHVkZSAiVGV4dEluZGljYXRvci5oIgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0Zsb2F0MzJBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgpAQCAtOTYw
LDYgKzk2MSw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNSZW1vdGVVSUFwcEZvckFjY2Vzc2li
aWxpdHkoKTsKIAorICAgIHVuc2lnbmVkIGNyZWF0ZVNsZWVwRGlzYWJsZXIoY29uc3QgU3RyaW5n
JiByZWFzb24sIGJvb2wgZGlzcGxheSk7CisgICAgYm9vbCBkZXN0cm95U2xlZXBEaXNhYmxlcih1
bnNpZ25lZCBpZGVudGlmaWVyKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbHMo
RG9jdW1lbnQmKTsKICAgICBEb2N1bWVudCogY29udGV4dERvY3VtZW50KCkgY29uc3Q7CkBAIC05
ODEsNiArOTg1LDggQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3JT
dHViRnJvbnRlbmQ+IG1faW5zcGVjdG9yRnJvbnRlbmQ7CiAgICAgUmVmUHRyPENhY2hlU3RvcmFn
ZUNvbm5lY3Rpb24+IG1fY2FjaGVTdG9yYWdlQ29ubmVjdGlvbjsKKworICAgIEhhc2hNYXA8dW5z
aWduZWQsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTbGVlcERpc2FibGVyPj4gbV9zbGVlcERp
c2FibGVyczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5pZGwJKHJldmlzaW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAkod29ya2luZyBjb3B5KQpAQCAtODYyLDQgKzg2Miw3IEBA
IGVudW0gQ29tcG9zaXRpbmdQb2xpY3kgewogICAgIGJvb2xlYW4gc3VwcG9ydHNQaWN0dXJlSW5Q
aWN0dXJlKCk7CiAKICAgICBib29sZWFuIGlzUmVtb3RlVUlBcHBGb3JBY2Nlc3NpYmlsaXR5KCk7
CisKKyAgICB1bnNpZ25lZCBsb25nIGNyZWF0ZVNsZWVwRGlzYWJsZXIoRE9NU3RyaW5nIHJlYXNv
biwgYm9vbGVhbiBkaXNwbGF5KTsKKyAgICBib29sZWFuIGRlc3Ryb3lTbGVlcERpc2FibGVyKHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CiB9OwpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTE1
OCkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MzYgQEAKKzIwMjAtMDMtMjggIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgor
CisgICAgICAgIFtDb2NvYV0gU2xlZXAgZGlzYWJsaW5nIHNob3VsZCBiZSBwZXJmb3JtZWQgaW4g
dGhlIFVJIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwOTY3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFNpbmNlIHNsZWVwIGRpc2FibGluZyBpcyBjYXVzaW5nIGNvbW11bmljYXRpb24gd2l0
aCB0aGUgcG93ZXIgbWFuYWdlbWVudCBzZXJ2aWNlLCBpdCBzaG91bGQgYmUgcGVyZm9ybWVkIGlu
IHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBUaGUgVUkgcHJvY2VzcyB3aWxsIGJlIG5vdGlmaWVk
IGJ5IHRoZSBXZWJDb250ZW50IHByb2Nlc3MgYWJvdXQgc2xlZXAgZGlzYWJsZXJzIGJlaW5nIGNy
ZWF0ZWQgYW5kIGRlc3Ryb3llZCwgYW5kIHdpbGwgcGVyZm9ybQorICAgICAgICB0aGUgYWN0dWFs
IHNsZWVwIGRpc2FibGluZyBhbmQgZW5hYmxpbmcuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tOgorICAgICAgICAoLVtXS1dlYlZp
ZXcgX2hhc1NsZWVwRGlzYWJsZXJdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVTbGVl
cERpc2FibGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWREZXN0cm95
U2xlZXBEaXNhYmxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6aGFzU2xl
ZXBEaXNhYmxlcik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJTbGVlcERpc2FibGVyQ2xpZW50LmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlNsZWVwRGlzYWJsZXJDbGllbnQ6OmRpZENyZWF0ZVNsZWVwRGlzYWJsZXIpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJTbGVlcERpc2FibGVyQ2xpZW50OjpkaWREZXN0cm95U2xlZXBE
aXNhYmxlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJTbGVlcERpc2FibGVyQ2xpZW50Lmg6
IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
KToKKwogMjAyMC0wMy0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
IAogICAgICAgICBXZWIgY29udGVudCBwcm9jZXNzZXMgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGFy
Yml0cmFyaWx5IHJlcXVlc3QgcGFzdGVib2FyZCBkYXRhIGZyb20gdGhlIFVJIHByb2Nlc3MKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dAkocmV2aXNpb24gMjU5MDQ1KQorKysgU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtNDc4LDYgKzQ3OCw3IEBAIFVJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlQ28KIAogV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVBy
b2Nlc3MuY3BwCiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCitXZWJQcm9jZXNzL1dlYlNsZWVw
RGlzYWJsZXJDbGllbnQuY3BwCiAKIC8vIEZJWE1FKDIwNjI2Nik6IEF1dG9tYXRpb25Qcm90b2Nv
bE9iamVjdHMuaCdzICJuYW1lc3BhY2UgUHJvdG9jb2wiIGNvbmZsaWN0cyB3aXRoIG9iamMvcnVu
dGltZS5oJ3MgInR5cGVkZWYgc3RydWN0IG9iamNfb2JqZWN0IFByb3RvY29sIgogV2ViUHJvY2Vz
cy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwIEBuby11bmlmeQpJbmRl
eDogU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CShyZXZpc2lvbiAyNTkw
NDUpCisrKyBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CSh3b3JraW5n
IGNvcHkpCkBAIC0yMjIsNiArMjIyLDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2Zvcndh
cmRfZGVjbGFyZQogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50RGF0YScs
CiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyJywKICAg
ICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyJywKKyAg
ICAgICAgJ1dlYkNvcmU6OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNv
cmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpBY3Rp
dml0eVN0YXRlQ2hhbmdlSUQnLAogICAgICAgICAnV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlcklkZW50aWZpZXInLApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwCShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzgxLDYgKzE3
ODEsMjIgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZENyZWF0ZUNvbnRleHRJbgogfQogI2Vu
ZGlmCiAKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVTbGVlcERpc2FibGVyKFNsZWVw
RGlzYWJsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBib29s
IGRpc3BsYXkpCit7CisgICAgYXV0byBzbGVlcERpc2FibGVyID0gbWFrZVVuaXF1ZTxXZWJDb3Jl
OjpTbGVlcERpc2FibGVyPihyZWFzb24udXRmOCgpLmRhdGEoKSwgZGlzcGxheSA/IFBBTDo6U2xl
ZXBEaXNhYmxlcjo6VHlwZTo6RGlzcGxheSA6IFBBTDo6U2xlZXBEaXNhYmxlcjo6VHlwZTo6U3lz
dGVtKTsKKyAgICBtX3NsZWVwRGlzYWJsZXJzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKHNsZWVw
RGlzYWJsZXIpKTsKK30KKwordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZERlc3Ryb3lTbGVlcERp
c2FibGVyKFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgbV9zbGVl
cERpc2FibGVycy5yZW1vdmUoaWRlbnRpZmllcik7Cit9CisKK2Jvb2wgV2ViUHJvY2Vzc1Byb3h5
OjpoYXNTbGVlcERpc2FibGVyKCkKK3sKKyAgICByZXR1cm4gbV9zbGVlcERpc2FibGVycy5zaXpl
KCkgPiAwOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIE1FU1NBR0VfQ0hF
Q0sKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCShyZXZp
c2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUHJv
Y2Vzc0lkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRTdHJpbmdIYXNoLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9TbGVlcERpc2FibGVyLmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHBhbC9TZXNz
aW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtMzc4LDYgKzM3OSw4IEBAIHB1
YmxpYzoKICAgICB2b2lkIGdwdVByb2Nlc3NDcmFzaGVkKCk7CiAjZW5kaWYKIAorICAgIGJvb2wg
aGFzU2xlZXBEaXNhYmxlcigpOworCiBwcm90ZWN0ZWQ6CiAgICAgV2ViUHJvY2Vzc1Byb3h5KFdl
YlByb2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFTdG9yZSosIElzUHJld2FybWVkKTsKIApAQCAtNDc1
LDYgKzQ3OCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZW5kTWVzc2FnZVRvV2ViQ29udGV4dFdp
dGhSZXBseShVc2VyTWVzc2FnZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFVzZXJNZXNzYWdl
JiYpPiYmKTsKICNlbmRpZgogCisgICAgdm9pZCBkaWRDcmVhdGVTbGVlcERpc2FibGVyKFdlYkNv
cmU6OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHJlYXNvbiwgYm9vbCBk
aXNwbGF5KTsKKyAgICB2b2lkIGRpZERlc3Ryb3lTbGVlcERpc2FibGVyKFdlYkNvcmU6OlNsZWVw
RGlzYWJsZXJJZGVudGlmaWVyKTsKKwogICAgIGVudW0gY2xhc3MgSXNXZWFrIHsgTm8sIFllcyB9
OwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWtPclN0cm9uZ1B0ciB7CiAgICAg
cHVibGljOgpAQCAtNTgwLDYgKzU4Niw4IEBAIHByaXZhdGU6CiAgICAgICAgIFdlYWtIYXNoU2V0
PFdlYlByb2Nlc3NQcm94eT4gY2xpZW50UHJvY2Vzc2VzOwogICAgIH07CiAgICAgT3B0aW9uYWw8
U2VydmljZVdvcmtlckluZm9ybWF0aW9uPiBtX3NlcnZpY2VXb3JrZXJJbmZvcm1hdGlvbjsKKwor
ICAgIEhhc2hNYXA8V2ViQ29yZTo6U2xlZXBEaXNhYmxlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpTbGVlcERpc2FibGVyPj4gbV9zbGVlcERpc2FibGVyczsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjU5MDQ1KQorKysgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5n
IGNvcHkpCkBAIC04MCw0ICs4MCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdh
Y3lSZWNlaXYKICAgICBTZW5kTWVzc2FnZVRvV2ViQ29udGV4dChzdHJ1Y3QgV2ViS2l0OjpVc2Vy
TWVzc2FnZSB1c2VyTWVzc2FnZSkKICAgICBTZW5kTWVzc2FnZVRvV2ViQ29udGV4dFdpdGhSZXBs
eShzdHJ1Y3QgV2ViS2l0OjpVc2VyTWVzc2FnZSB1c2VyTWVzc2FnZSkgLT4gKHN0cnVjdCBXZWJL
aXQ6OlVzZXJNZXNzYWdlIHJlcGx5TWVzc2FnZSkgQXN5bmMKICNlbmRpZgorCisgICAgRGlkQ3Jl
YXRlU2xlZXBEaXNhYmxlcihXZWJDb3JlOjpTbGVlcERpc2FibGVySWRlbnRpZmllciBpZGVudGlm
aWVyLCBTdHJpbmcgcmVhc29uLCBib29sIGRpc3BsYXkpCisgICAgRGlkRGVzdHJveVNsZWVwRGlz
YWJsZXIoV2ViQ29yZTo6U2xlZXBEaXNhYmxlcklkZW50aWZpZXIgaWRlbnRpZmllcikKIH0KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9y
VGVzdGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3Rpbmcu
aAkod29ya2luZyBjb3B5KQpAQCAtNjQsNCArNjQsNSBAQAogKyAodm9pZClfc2V0QXBwbGljYXRp
b25CdW5kbGVJZGVudGlmaWVyOihOU1N0cmluZyAqKWJ1bmRsZUlkZW50aWZpZXI7CiArICh2b2lk
KV9jbGVhckFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllclRlc3RpbmdPdmVycmlkZTsKIAorLSAo
Qk9PTClfaGFzU2xlZXBEaXNhYmxlcjsKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCShyZXZpc2lvbiAy
NTkwNDUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVz
dGluZy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjIwLDQgKzIyMCw5IEBAICsgKHZvaWQpX2NsZWFy
QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWUKICAgICBXZWJDb3JlOjpjbGVhckFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllclRlc3RpbmdPdmVycmlkZSgpOwogfQogCistIChCT09MKV9oYXNTbGVl
cERpc2FibGVyCit7CisgICAgcmV0dXJuIF9wYWdlID8gX3BhZ2UtPnByb2Nlc3MoKS5oYXNTbGVl
cERpc2FibGVyKCkgOiBmYWxzZTsKK30KKwogQGVuZApJbmRleDogU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTkwNDUpCisrKyBT
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC00OTgzLDYgKzQ5ODMsOCBAQAogCQlDMTgxNzM1RTIwNTgzOUY2MDBERkRBNjUgLyog
RHJhd2luZ0FyZWFNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRHJhd2luZ0FyZWFNYWMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTgxNzM2MDIwNTg0MjQ3MDBERkRBNjUg
LyogRGlzcGxheUxpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheUxpbmsuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE4MTczNjIyMDU4NDRBOTAwREZEQTY1IC8qIERpc3BsYXlM
aW5rLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpc3BsYXlMaW5rLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQzE4RkI1MUQyNDJGOUY3NjAwN0U5ODc1IC8qIFdlYlNsZWVwRGlz
YWJsZXJDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
U2xlZXBEaXNhYmxlckNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMx
OEZCNTFFMjQyRjlGNzcwMDdFOTg3NSAvKiBXZWJTbGVlcERpc2FibGVyQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNsZWVwRGlzYWJsZXJDbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzFFMTIzQjkyMEExMTU3MjAwMjY0NkY0IC8qIFBE
RkNvbnRleHRNZW51LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBERkNvbnRl
eHRNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1MTczODgwMTJERjhGNEYw
MEVFM0Y0NyAvKiBEcmFnQ29udHJvbGxlckFjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEcmFnQ29udHJvbGxlckFjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDNTIzN0Y1RjEyNDQxQ0EzMDA3ODA0NzIgLyogV2ViRWRpdG9yQ2xpZW50TWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRWRpdG9yQ2xpZW50
TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODcwMSw2ICs4NzAzLDggQEAK
IAkJCQlCQzAzMkQ5MTEwRjQzN0FGMDA1OEMxNUEgLyogV2ViUHJvY2Vzcy5oICovLAogCQkJCUJD
MzA2NkI5MTI1QTQzNjMwMEU3MTI3OCAvKiBXZWJQcm9jZXNzLm1lc3NhZ2VzLmluICovLAogCQkJ
CUJDRTBFNDI0MTY4QjdBMjgwMDU3RTY2QSAvKiBXZWJQcm9jZXNzU3VwcGxlbWVudC5oICovLAor
CQkJCUMxOEZCNTFEMjQyRjlGNzYwMDdFOTg3NSAvKiBXZWJTbGVlcERpc2FibGVyQ2xpZW50LmNw
cCAqLywKKwkJCQlDMThGQjUxRTI0MkY5Rjc3MDA3RTk4NzUgLyogV2ViU2xlZXBEaXNhYmxlckNs
aWVudC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBXZWJQcm9jZXNzOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTbGVlcERpc2Fi
bGVyQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
U2xlZXBEaXNhYmxlckNsaWVudC5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlNsZWVwRGlzYWJsZXJDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNDQgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09N
UFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgorKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViU2xlZXBEaXNhYmxlckNsaWVudC5oIgor
CisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3Nh
Z2VzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYlNsZWVwRGlzYWJsZXJDbGll
bnQ6OmRpZENyZWF0ZVNsZWVwRGlzYWJsZXIoU2xlZXBEaXNhYmxlcklkZW50aWZpZXIgaWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiByZWFzb24sIGJvb2wgZGlzcGxheSkKK3sKKyAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzUHJveHk6OkRpZENyZWF0ZVNsZWVwRGlzYWJsZXIoaWRlbnRpZmllciwgcmVh
c29uLCBkaXNwbGF5KSwgMCk7Cit9CisKK3ZvaWQgV2ViU2xlZXBEaXNhYmxlckNsaWVudDo6ZGlk
RGVzdHJveVNsZWVwRGlzYWJsZXIoU2xlZXBEaXNhYmxlcklkZW50aWZpZXIgaWRlbnRpZmllcikK
K3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpZERlc3Ryb3lTbGVlcERpc2FibGVy
KGlkZW50aWZpZXIpLCAwKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU2xlZXBEaXNhYmxlckNsaWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTbGVlcERpc2FibGVyQ2xpZW50LmgJKG5v
bmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlNsZWVwRGlzYWJsZXJD
bGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM5IEBACisvKgorKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJD
b3JlL1NsZWVwRGlzYWJsZXJDbGllbnQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFdlYlNsZWVwRGlzYWJsZXJDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6U2xlZXBEaXNhYmxlckNs
aWVudCB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgdm9pZCBk
aWRDcmVhdGVTbGVlcERpc2FibGVyKFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmLCBib29sKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZERlc3Ryb3lTbGVlcERpc2FibGVyKFNs
ZWVwRGlzYWJsZXJJZGVudGlmaWVyKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVMZWdh
Y3lDRE0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlTGVnYWN5Q0RNLmNwcAkocmV2aXNpb24gMjU5MDQ1KQorKysgU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVMZWdhY3lDRE0uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShM
RUdBQ1lfRU5DUllQVEVEX01FRElBKQogCisjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24u
aCIKKwogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETUZhY3RvcnkuaCIKICNpbmNsdWRlICJSZW1v
dGVMZWdhY3lDRE1Qcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RNU2Vz
c2lvbi5oIgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVt
b3RlTWVkaWFTZXNzaW9uSGVscGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL2lvcy9SZW1vdGVNZWRpYVNlc3Npb25IZWxwZXIuY3BwCShyZXZp
c2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2lvcy9S
ZW1vdGVNZWRpYVNlc3Npb25IZWxwZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4
IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQogCiAj
aW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVk
ZSAiUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldl
YlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWJhY2tUYXJnZXRDb2NvYS5o
PgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVk
aWFTZXNzaW9uSGVscGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyLmgJKHJldmlzaW9uIDI1OTA0
NSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvaW9zL1JlbW90ZU1lZGlh
U2Vzc2lvbkhlbHBlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQogCiAjaW5jbHVkZSAiTWVz
c2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0Q29u
dGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZXNzaW9uSGVscGVySU9TLmg+CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dl
YlByb2Nlc3NDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC00Niw2ICs0Niw3IEBACiAjaW1wb3J0ICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgi
CiAjaW1wb3J0ICJXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycy5oIgogI2ltcG9ydCAiV2Vi
UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbXBvcnQgIldlYlNsZWVwRGlzYWJsZXJDbGllbnQu
aCIKICNpbXBvcnQgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgiCiAjaW1wb3J0IDxKYXZh
U2NyaXB0Q29yZS9Db25maWdGaWxlLmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9PcHRpb25z
Lmg+CkBAIC02MywxMCArNjQsMTIgQEAKICNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3Ry
eS5oPgogI2ltcG9ydCA8V2ViQ29yZS9NZW1vcnlSZWxlYXNlLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L05TU2Nyb2xsZXJJbXBEZXRhaWxzLmg+CisjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtFeHRlbnNp
b25Db250ZW50RmlsdGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BlcmZvcm1hbmNlTG9nZ2luZy5o
PgogI2ltcG9ydCA8V2ViQ29yZS9QaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU1dD
b250ZXh0TWFuYWdlci5oPgorI2ltcG9ydCA8V2ViQ29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1VUSVV0aWxpdGllcy5oPgogI2ltcG9ydCA8YWxnb3JpdGhtPgogI2ltcG9y
dCA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KQEAgLTEzMSwxMSArMTM0LDYgQEAKICNpbXBvcnQgPG9z
L3N0YXRlX3ByaXZhdGUuaD4KICNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jaW1wb3J0
IDxXZWJDb3JlL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmg+Ci0jaW1wb3J0IDxXZWJD
b3JlL1N5c3RlbUJhdHRlcnkuaD4KLSNlbmRpZgotCiAjaWYgSEFWRShDU0NIRUNLRklYRElTQUJM
RSkKIGV4dGVybiAiQyIgdm9pZCBfQ1NDaGVja0ZpeERpc2FibGUoKTsKICNlbmRpZgpAQCAtMzE4
LDYgKzMxNiw4IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHIKICAg
ICAgICAgc2V0VmVjdG9yT2ZVVFR5cGVJdGVtKFdURk1vdmUocGFyYW1ldGVycy52ZWN0b3JPZlVU
VHlwZUl0ZW0pKTsKICAgICB9CiAjZW5kaWYKKworICAgIFdlYkNvcmU6OnNsZWVwRGlzYWJsZXJD
bGllbnQoKSA9IG1ha2VVbmlxdWU8V2ViU2xlZXBEaXNhYmxlckNsaWVudD4oKTsKIH0KIAogdm9p
ZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKFdlYlBy
b2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKSW5kZXg6IFRvb2xzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTEzMikKKysr
IFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAz
LTI3ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29j
b2FdIFNsZWVwIGRpc2FibGluZyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1NsZWVwRGlzYWJsZXIubW06IEFkZGVkLgor
ICAgICAgICAoVEVTVCk6CisKIDIwMjAtMDMtMjcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFu
ZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtGbGF0cGFrIFNES10gQWxsb3cgcGFzc2luZyBnc3Qt
YnVpbGQgTWVzb24gb3B0aW9ucwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9u
IDI1OTA0NSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC04ODMsNiArODgzLDcgQEAKIAkJQzBD
NUQzQzYxNDU5OTEyOTAwQTgwMkE2IC8qIEdldEJhY2tpbmdTY2FsZUZhY3Rvcl9CdW5kbGUubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMEM1RDNCRDE0
NTk4QjZGMDBBODAyQTYgLyogR2V0QmFja2luZ1NjYWxlRmFjdG9yX0J1bmRsZS5tbSAqLzsgfTsK
IAkJQzEzRDgyRDkyNDE2RjEzMjAwQTYyNzkzIC8qIEVuYWJsZUFjY2Vzc2liaWxpdHkubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTNEODJEODI0MTZG
MTMyMDBBNjI3OTMgLyogRW5hYmxlQWNjZXNzaWJpbGl0eS5tbSAqLzsgfTsKIAkJQzE0NUNDMEMy
M0RBNUExRjAwM0E1RUVCIC8qIE1pbWVUeXBlcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNDVDQzBCMjNEQTVBMEYwMDNBNUVFQiAvKiBNaW1lVHlw
ZXMubW0gKi87IH07CisJCUMxNDlENTUwMjQyRTk4REYwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVy
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE0OUQ1
NEYyNDJFOTg0NDAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIubW0gKi87IH07CiAJCUMxNUNCQjMw
MjNGMUZGMUEwMDMwMENDNyAvKiBCYWNrbGlnaHRMZXZlbE5vdGlmaWNhdGlvbi5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNUNCQjJGMjNGMUZGMUEw
MDMwMENDNyAvKiBCYWNrbGlnaHRMZXZlbE5vdGlmaWNhdGlvbi5tbSAqLzsgfTsKIAkJQzE1Q0JC
M0YyM0ZCMTc3QTAwMzAwQ0M3IC8qIFByZWZlcmVuY2VDaGFuZ2VzLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE1Q0JCM0UyM0ZCMTc3QTAwMzAwQ0M3
IC8qIFByZWZlcmVuY2VDaGFuZ2VzLm1tICovOyB9OwogCQlDMTY5MkRDQTIzRDEwREFFMDA2RTg4
RjcgLyogQmF0dGVyeS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEMxNjkyREM5MjNEMTBEQUUwMDZFODhGNyAvKiBCYXR0ZXJ5Lm1tICovOyB9OwpAQCAt
MjQ1OCw2ICsyNDU5LDcgQEAKIAkJQzBDNUQzQkQxNDU5OEI2RjAwQTgwMkE2IC8qIEdldEJhY2tp
bmdTY2FsZUZhY3Rvcl9CdW5kbGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBHZXRCYWNraW5nU2NhbGVGYWN0b3JfQnVuZGxlLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDMTNEODJEODI0MTZGMTMyMDBBNjI3OTMgLyogRW5hYmxlQWNjZXNzaWJp
bGl0eS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEVuYWJsZUFjY2Vzc2liaWxpdHkubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNDVDQzBCMjNEQTVBMEYwMDNBNUVFQiAvKiBN
aW1lVHlwZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNaW1l
VHlwZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMxNDlENTRGMjQyRTk4NDQw
MDNFQkIxMiAvKiBTbGVlcERpc2FibGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gU2xlZXBEaXNhYmxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQzE1Q0JCMkYyM0YxRkYxQTAwMzAwQ0M3IC8qIEJhY2tsaWdodExldmVsTm90aWZpY2F0aW9u
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQmFja2xpZ2h0TGV2ZWxOb3RpZmljYXRpb24ubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNUNCQjNFMjNGQjE3N0EwMDMwMENDNyAv
KiBQcmVmZXJlbmNlQ2hhbmdlcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFByZWZlcmVuY2VDaGFuZ2VzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDMTY5MkRDOTIzRDEwREFFMDA2RTg4RjcgLyogQmF0dGVyeS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IEJhdHRlcnkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yOTIxLDYg
KzI5MjMsNyBAQAogCQkJCUMxNDVDQzBCMjNEQTVBMEYwMDNBNUVFQiAvKiBNaW1lVHlwZXMubW0g
Ki8sCiAJCQkJRTMyNUM5MDYyM0UzODcwMjAwQkM3RDNCIC8qIFBpY3R1cmVJblBpY3R1cmVTdXBw
b3J0Lm1tICovLAogCQkJCUMxNUNCQjNFMjNGQjE3N0EwMDMwMENDNyAvKiBQcmVmZXJlbmNlQ2hh
bmdlcy5tbSAqLywKKwkJCQlDMTQ5RDU0RjI0MkU5ODQ0MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxl
ci5tbSAqLywKIAkJCQlDMTk0RTMxQzI0MDlERjQzMDAyOTM5RUQgLyogVVRJRnJvbU1JTUVUeXBl
Lm1tICovLAogCQkJCUUzQ0FBQTRCMjQxNTUwNTEwMENFRDJFMiAvKiBVVElGcm9tVGFnLm1tICov
LAogCQkJCTBGMTM5RTc1MUE0MjNBNTMwMEY1OTBGNSAvKiBXZWFrT2JqQ1B0ci5tbSAqLywKQEAg
LTUwNTgsNiArNTA2MSw3IEBACiAJCQkJMzdCQ0E2MUMxQjU5NkJBOTAwMjAxMkNBIC8qIFNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNJbk5ld1dpbmRvd0FjdGlvbnMubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk3QzgzRTBDNTFEMEE2NTQ2MDBGRUJDRjMgLyogU2hyaW5rVG9GaXQubW0gaW4gU291cmNlcyAq
LywKIAkJCQk3Q0NFN0VDRDFBNDExQTdFMDA0NDdDNEMgLyogU2ltcGxpZnlNYXJrdXAubW0gaW4g
U291cmNlcyAqLywKKwkJCQlDMTQ5RDU1MDI0MkU5OERGMDAzRUJCMTIgLyogU2xlZXBEaXNhYmxl
ci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJERkY3QjZEMURBNDg3QUYwMDgxNDYxNCAvKiBTbmFw
c2hvdFN0b3JlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0RkZBOUUxRUQzQUE4NTAwRjcxMTFG
IC8qIFNuYXBzaG90VmlhUmVuZGVySW5Db250ZXh0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0ND
RTdGMTUxQTQxMUFFNjAwNDQ3QzRDIC8qIFNwYWNlYmFyU2Nyb2xsaW5nLmNwcCBpbiBTb3VyY2Vz
ICovLApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU2xlZXBEaXNhYmxl
ci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TbGVl
cERpc2FibGVyLm1tCShub25leGlzdGVudCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L1NsZWVwRGlzYWJsZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFdLX0hBVkVfQ19TUEkKKwor
I2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIK
KyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oPgorI2ltcG9ydCA8
d3RmL1RocmVhZGluZy5oPgorCitURVNUKFdlYktpdCwgU2xlZXBEaXNhYmxlcikKK3sKKyAgICBh
dXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxv
Y10gaW5pdF0pOworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0
V0soVGVzdFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVz
dCgiSW50ZXJuYWxzSW5qZWN0ZWRCdW5kbGVUZXN0IikpOworICAgIGNvbmZpZ3VyYXRpb24uZ2V0
KCkucHJvY2Vzc1Bvb2wgPSAoV0tQcm9jZXNzUG9vbCAqKWNvbnRleHQuZ2V0KCk7CisgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdl
dCgpIGFkZFRvV2luZG93OllFU10pOworCisgICAgQVNTRVJUX0ZBTFNFKFt3ZWJWaWV3IF9oYXNT
bGVlcERpc2FibGVyXSk7CisKKyAgICBhdXRvIGNyZWF0ZVNsZWVwRGlzYWJsZXIgPSBbJl0gewor
ICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndp
bmRvdy5pbnRlcm5hbHMuY3JlYXRlU2xlZXBEaXNhYmxlcihcIlRlc3REaXNhYmxlclwiLCB0cnVl
KSJdLmxvbmdMb25nVmFsdWU7CisgICAgfTsKKworICAgIGF1dG8gaWRlbnRpZmllciA9IGNyZWF0
ZVNsZWVwRGlzYWJsZXIoKTsKKworICAgIEFTU0VSVF9ORShpZGVudGlmaWVyLCAwKTsKKworICAg
IEFTU0VSVF9UUlVFKFt3ZWJWaWV3IF9oYXNTbGVlcERpc2FibGVyXSk7CisKKyAgICBhdXRvIGRl
c3Ryb3lTbGVlcERpc2FibGVyID0gWyZdIHsKKyAgICAgICAgTlNTdHJpbmcgKmpzID0gW05TU3Ry
aW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cuaW50ZXJuYWxzLmRlc3Ryb3lTbGVlcERpc2Fi
bGVyKCVsbGQpIiwgaWRlbnRpZmllcl07CisgICAgICAgIHJldHVybiBbd2ViVmlldyBzdHJpbmdC
eUV2YWx1YXRpbmdKYXZhU2NyaXB0OmpzXTsKKyAgICB9OworCisgICAgQVNTRVJUX1RSVUUoZGVz
dHJveVNsZWVwRGlzYWJsZXIoKSk7CisKKyAgICBBU1NFUlRfRkFMU0UoW3dlYlZpZXcgX2hhc1Ns
ZWVwRGlzYWJsZXJdKTsKK30KKworI2VuZGlmIC8vIFdLX0hBVkVfQ19TUEkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394822</attachid>
            <date>2020-03-28 09:29:13 -0700</date>
            <delta_ts>2020-03-28 09:38:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209676-20200328092912.patch</filename>
            <type>text/plain</type>
            <size>48949</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTE1OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDIwLTAzLTI4ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFNsZWVwIGRp
c2FibGluZyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW5jZSBzbGVlcCBkaXNhYmxp
bmcgaXMgY2F1c2luZyBjb21tdW5pY2F0aW9uIHdpdGggdGhlIHBvd2VyIG1hbmFnZW1lbnQgc2Vy
dmljZSwgaXQgc2hvdWxkIGJlIHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAg
VGhpcyBwYXRjaCBmaXhlcyB0aGlzIGJ5IGNyZWF0aW5nIGEgc2xlZXAgZGlzYWJsZXIgY2xpZW50
LCB3aGljaCB3aWxsIG5vdGlmeSB0aGUgVUkgcHJvY2VzcyB3aGVuIGEgc2xlZXAgZGlzYWJsZXIg
aXMgYmVpbmcKKyAgICAgICAgY3JlYXRlZCBhbmQgZGVzdHJveWVkLiBJbiByZXNwb25zZSB0byB0
aGVzZSBtZXNzYWdlcywgdGhlIFVJIHByb2Nlc3Mgd2lsbCBwZXJmb3JtIHRoZSBhY3R1YWwgc2xl
ZXAgZGlzYWJsaW5nIGFuZCBlbmFibGluZy4KKyAgICAgICAgQSBuZXcgc2xlZXAgZGlzYWJsZXIg
Y2xhc3MgaXMgY3JlYXRlZCB3aGljaCB3cmFwcyB0aGUgUEFMIHNsZWVwIGRpc2FibGVyLCBhbmQg
bm90aWZpZXMgdGhlIHNsZWVwIGRpc2FibGVyIGNsaWVudCB3aGVuIHNldC4KKyAgICAgICAgSWYg
dGhlIHNsZWVwIGRpc2FibGVyIGNsaWVudCBpcyBzZXQsIGEgUEFMIHNsZWVwIGRpc2FibGVyIGlu
c3RhbmNlIHdpbGwgbm90IGJlIGNyZWF0ZWQgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcywgc2lu
Y2UgdGhpcworICAgICAgICB3aWxsIHRoZW4gaGFwcGVuIGluIHRoZSBVSSBwcm9jZXNzLgorCisg
ICAgICAgIEFQSSB0ZXN0OiBXZWJLaXQuU2xlZXBEaXNhYmxlcgorCisgICAgICAgICogSGVhZGVy
cy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZVNsZWVwRGlzYWJs
aW5nKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9TbGVlcERpc2FibGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTbGVlcERp
c2FibGVyOjpTbGVlcERpc2FibGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXI6
On5TbGVlcERpc2FibGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TbGVlcERpc2FibGVyLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6U2xlZXBEaXNhYmxlcjo6dHlwZSBjb25zdCk6CisgICAg
ICAgICogcGxhdGZvcm0vU2xlZXBEaXNhYmxlckNsaWVudC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6c2xlZXBEaXNhYmxlckNsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vU2xlZXBE
aXNhYmxlckNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJD
bGllbnQ6On5TbGVlcERpc2FibGVyQ2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TbGVlcERp
c2FibGVySWRlbnRpZmllci5oOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmNyZWF0ZVNsZWVwRGlzYWJsZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpkZXN0cm95U2xlZXBEaXNhYmxlcik6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5p
ZGw6CisKIDIwMjAtMDMtMjggIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAg
ICAgICAgIE51bGxwdHIgY3Jhc2ggaW4gSW5saW5lVGV4dEJveDo6ZW1waGFzaXNNYXJrRXhpc3Rz
QW5kSXNBYm92ZQpJbmRleDogU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCShyZXZpc2lvbiAyNTkwNDUpCisrKyBT
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xMDA3LDYgKzEw
MDcsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZv
cm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmgKICAgICBwbGF0Zm9ybS9TaGFyZWRC
dWZmZXIuaAogICAgIHBsYXRmb3JtL1NoYXJlZFN0cmluZ0hhc2guaAorICAgIHBsYXRmb3JtL1Ns
ZWVwRGlzYWJsZXIuaAogICAgIHBsYXRmb3JtL1N1ZGRlblRlcm1pbmF0aW9uLmgKICAgICBwbGF0
Zm9ybS9TdXBwbGVtZW50YWJsZS5oCiAgICAgcGxhdGZvcm0vVGhlbWVUeXBlcy5oCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAkocmV2aXNpb24gMjU5MDQ1KQorKysgU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTE3OTgsNiArMTc5OCw4IEBAIHBsYXRmb3JtL1NlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWUuY3BwCiBwbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwCiBwbGF0Zm9y
bS9TaGFyZWRCdWZmZXJDaHVua1JlYWRlci5jcHAKIHBsYXRmb3JtL1NoYXJlZFN0cmluZ0hhc2gu
Y3BwCitwbGF0Zm9ybS9TbGVlcERpc2FibGVyLmNwcAorcGxhdGZvcm0vU2xlZXBEaXNhYmxlckNs
aWVudC5jcHAKIHBsYXRmb3JtL1N0YXRpY1Bhc3RlYm9hcmQuY3BwCiBwbGF0Zm9ybS9UaGVtZS5j
cHAKIHBsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTkwNDUp
CisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdv
cmtpbmcgY29weSkKQEAgLTM5ODYsNiArMzk4Niw5IEBACiAJCUMxMDVEQTY0MEYzQUE2QjgwMDFE
RDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzEwNURBNjMwRjNBQTZCODAwMURENDRGIC8qIFRleHRFbmNv
ZGluZ0RldGVjdG9yLmggKi87IH07CiAJCUMxMUE5RUNFMjE0MDNBNUMwMENGQjIwQSAvKiBTd2l0
Y2hpbmdHUFVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEMxMUE5RUNEMjE0MDNBNUMwMENGQjIwQSAvKiBTd2l0Y2hpbmdHUFVDbGllbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMTQ5Mzgw
NzIyMzQ1NTFBMDAwQ0Q3MDcgLyogU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTQ5MzgwNTIyMzQyNzE5MDAwQ0Q3
MDcgLyogU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQzE0OUQ1NUQyNDJFQTZCOTAwM0VCQjEyIC8qIFNsZWVw
RGlzYWJsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEMxNDlENTVBMjQyRUE0RjkwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQzE0OUQ1NUYyNDJFQTdCODAw
M0VCQjEyIC8qIFNsZWVwRGlzYWJsZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNDlENTVCMjQyRUE0RkEwMDNFQkIxMiAvKiBTbGVlcERp
c2FibGVyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJQzE0OUQ1NjcyNDJFQjg0QTAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXJJZGVudGlm
aWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTQ5
RDU2NTI0MkVCNzY1MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlcklkZW50aWZpZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMTY5MkREMjIzRDIz
QUJEMDA2RTg4RjcgLyogU3lzdGVtQmF0dGVyeS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNjkyREQxMjNEMjNBQkQwMDZFODhGNyAvKiBTeXN0ZW1C
YXR0ZXJ5Lm1tICovOyB9OwogCQlDMTY5MkRENTIzRDIzRTA4MDA2RTg4RjcgLyogU3lzdGVtQmF0
dGVyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE2
OTJERDQyM0QyM0FFMDAwNkU4OEY3IC8qIFN5c3RlbUJhdHRlcnkuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMUUxRDIzNjIwM0RGMTU0MDA1ODQ2
NjUgLyogU2NyZWVuUHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzFFMUQyMzUyMDNERjE1NDAwNTg0NjY1IC8qIFNjcmVlblByb3BlcnRp
ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAt
MTM1ODIsOCArMTM1ODUsMTMgQEAKIAkJQzExQTlFQ0QyMTQwM0E1QzAwQ0ZCMjBBIC8qIFN3aXRj
aGluZ0dQVUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTd2l0Y2hpbmdHUFVDbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzExQTlFRDIyMTQwNTc4QjAwQ0ZCMjBBIC8qIFN3
aXRjaGluZ0dQVUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTd2l0Y2hpbmdHUFVDbGll
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTQ5MzgwNTIyMzQyNzE5MDAw
Q0Q3MDcgLyogU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFN5
bnRoZXNpc0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMTQ5RDU1OTI0
MkVBNEY4MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTbGVlcERpc2FibGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQzE0OUQ1NUEyNDJFQTRGOTAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2xlZXBEaXNhYmxlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDMTQ5RDU1QjI0MkVBNEZBMDAzRUJCMTIgLyogU2xlZXBEaXNh
YmxlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTbGVlcERpc2Fi
bGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMxNDlENTY1MjQyRUI3
NjUwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
bGVlcERpc2FibGVySWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MTY5MkREMTIzRDIzQUJEMDA2RTg4RjcgLyogU3lzdGVtQmF0dGVyeS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFN5c3RlbUJhdHRlcnkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUMxNjkyREQ0MjNEMjNBRTAwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFN5c3RlbUJhdHRlcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzE4RkI1
MTgyNDJGOTM4MjAwN0U5ODc1IC8qIFNsZWVwRGlzYWJsZXJDbGllbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU2xlZXBEaXNhYmxlckNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMxRTFEMjM1MjAzREYxNTQwMDU4NDY2NSAvKiBTY3JlZW5Qcm9wZXJ0aWVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNjcmVlblByb3BlcnRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQzIwMTVDMDkxQkU2RkUyQzAwODIyMzg5IC8qIEZvbnRWYXJpYW50QnVpbGRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGb250VmFyaWFudEJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQzIwRjRGNjQyMURGQkU1QzAwNzBDNDVBIC8qIFdITFNMVHlwZVJlZmVyZW5jZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXSExTTFR5cGVSZWZlcmVuY2UuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjYyNDUsNiArMjYyNTMsMTEgQEAKIAkJCQk4MzRERkFDRTFG
N0RBRTU3MDBDMjcyNUIgLyogU2hhcmVkU3RyaW5nSGFzaC5jcHAgKi8sCiAJCQkJODM0REZBQ0Mx
RjdEQUU1NjAwQzI3MjVCIC8qIFNoYXJlZFN0cmluZ0hhc2guaCAqLywKIAkJCQk5MzMwOUVBMDA5
OUVCNzhDMDA1NkU1ODEgLyogU2hhcmVkVGltZXIuaCAqLywKKwkJCQlDMTQ5RDU1OTI0MkVBNEY4
MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlci5jcHAgKi8sCisJCQkJQzE0OUQ1NUEyNDJFQTRGOTAw
M0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIuaCAqLywKKwkJCQlDMThGQjUxODI0MkY5MzgyMDA3RTk4
NzUgLyogU2xlZXBEaXNhYmxlckNsaWVudC5jcHAgKi8sCisJCQkJQzE0OUQ1NUIyNDJFQTRGQTAw
M0VCQjEyIC8qIFNsZWVwRGlzYWJsZXJDbGllbnQuaCAqLywKKwkJCQlDMTQ5RDU2NTI0MkVCNzY1
MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlcklkZW50aWZpZXIuaCAqLywKIAkJCQlBMzM0QkQ4MjIx
OTRFNDYxMDAwMEQ3N0YgLyogU1NMS2V5R2VuZXJhdG9yLmNwcCAqLywKIAkJCQlGNTg3ODY2MjAy
REUzQjExMDFFQTQxMjIgLyogU1NMS2V5R2VuZXJhdG9yLmggKi8sCiAJCQkJRjQzM0U5MDQxREJC
REJDMjAwRUYwRDE0IC8qIFN0YXRpY1Bhc3RlYm9hcmQuY3BwICovLApAQCAtMzI3MTYsNiArMzI3
MjksOSBAQAogCQkJCTk0NDRDQkQ2MUQ4NjBDOEIwMDczQTA3NCAvKiBTaXplc0F0dHJpYnV0ZVBh
cnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTQ0NENCRDQxRDg2MEM4QjAwNzNBMDc0IC8qIFNp
emVzQ2FsY1BhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlFOTExQ0QwRUY4NkQ0NzAwOUQw
Q0FGIC8qIFNrZXdUcmFuc2Zvcm1PcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUMxNDlE
NTVEMjQyRUE2QjkwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlDMTQ5RDU1RjI0MkVBN0I4MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlckNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQzE0OUQ1NjcyNDJFQjg0QTAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXJJ
ZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTUwRjlGMTEyQjZFMEU3MDAwOEM4NjAg
LyogU2xpZGVyVGh1bWJFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5QjUzMkVBNDFCQTky
ODU3MDAzOEE4MjcgLyogU2xvdEFzc2lnbm1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTRCNkZB
NkY0MEMzOUU0OEMwMDA4NzAxMSAvKiBTbWFydFJlcGxhY2UuaCBpbiBIZWFkZXJzICovLApJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCShyZXZpc2lvbiAyNTkw
NDUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC05Miw2ICs5Miw3IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3kuaCIKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJT
bGVlcERpc2FibGVyLmgiCiAjaW5jbHVkZSAiVGltZVJhbmdlcy5oIgogI2luY2x1ZGUgIlVzZXJD
b250ZW50Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCkBA
IC05OSw3ICsxMDAsNiBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1VpbnQ4QXJyYXkuaD4K
ICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgotI2luY2x1ZGUg
PHBhbC9zeXN0ZW0vU2xlZXBEaXNhYmxlci5oPgogI2luY2x1ZGUgPHd0Zi9BbGdvcml0aG1zLmg+
CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTGFuZ3Vh
Z2UuaD4KQEAgLTY5NDYsNyArNjk0Niw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dXBkYXRl
U2xlZXBEaXNhYmwKICAgICBlbHNlIGlmIChzaG91bGREaXNhYmxlU2xlZXAgIT0gU2xlZXBUeXBl
OjpOb25lKSB7CiAgICAgICAgIGF1dG8gdHlwZSA9IHNob3VsZERpc2FibGVTbGVlcCA9PSBTbGVl
cFR5cGU6OkRpc3BsYXkgPyBQQUw6OlNsZWVwRGlzYWJsZXI6OlR5cGU6OkRpc3BsYXkgOiBQQUw6
OlNsZWVwRGlzYWJsZXI6OlR5cGU6OlN5c3RlbTsKICAgICAgICAgaWYgKCFtX3NsZWVwRGlzYWJs
ZXIgfHwgbV9zbGVlcERpc2FibGVyLT50eXBlKCkgIT0gdHlwZSkKLSAgICAgICAgICAgIG1fc2xl
ZXBEaXNhYmxlciA9IFBBTDo6U2xlZXBEaXNhYmxlcjo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViQ29y
ZTogSFRNTE1lZGlhRWxlbWVudCBwbGF5YmFjayIsIHR5cGUpOworICAgICAgICAgICAgbV9zbGVl
cERpc2FibGVyID0gbWFrZVVuaXF1ZTxTbGVlcERpc2FibGVyPigiY29tLmFwcGxlLldlYkNvcmU6
IEhUTUxNZWRpYUVsZW1lbnQgcGxheWJhY2siLCB0eXBlKTsKICAgICB9CiAKICAgICBpZiAobV9w
bGF5ZXIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAkocmV2aXNp
b24gMjU5MDQ1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTYzLDEwICs2Myw2IEBACiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50
U3RyZWFtLmg+CiAjZW5kaWYKIAotbmFtZXNwYWNlIFBBTCB7Ci1jbGFzcyBTbGVlcERpc2FibGVy
OwotfQotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF1ZGlvU291cmNlUHJvdmlkZXI7
CkBAIC05NCw2ICs5MCw3IEBAIGNsYXNzIE1lZGlhU3RyZWFtOwogY2xhc3MgUmVuZGVyTWVkaWE7
CiBjbGFzcyBTY3JpcHRDb250cm9sbGVyOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsK
K2NsYXNzIFNsZWVwRGlzYWJsZXI7CiBjbGFzcyBTb3VyY2VCdWZmZXI7CiBjbGFzcyBUZXh0VHJh
Y2tMaXN0OwogY2xhc3MgVGltZVJhbmdlczsKQEAgLTExNjIsNyArMTE1OSw3IEBAIHByaXZhdGU6
CiAgICAgZnJpZW5kIGNsYXNzIE1lZGlhQ29udHJvbGxlcjsKICAgICBSZWZQdHI8TWVkaWFDb250
cm9sbGVyPiBtX21lZGlhQ29udHJvbGxlcjsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxQQUw6OlNs
ZWVwRGlzYWJsZXI+IG1fc2xlZXBEaXNhYmxlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U2xlZXBE
aXNhYmxlcj4gbV9zbGVlcERpc2FibGVyOwogCiAgICAgV2Vha1B0cjxjb25zdCBNZWRpYVJlc291
cmNlTG9hZGVyPiBtX2xhc3RNZWRpYVJlc291cmNlTG9hZGVyRm9yVGVzdGluZzsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxlci5jcHAJKG5vbmV4aXN0ZW50KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJTbGVlcERpc2FibGVyLmgiCisKKyNpbmNsdWRlICJTbGVlcERpc2FibGVyQ2xpZW50
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU2xlZXBEaXNhYmxlcjo6U2xlZXBEaXNhYmxl
cihjb25zdCBjaGFyKiByZWFzb24sIFBBTDo6U2xlZXBEaXNhYmxlcjo6VHlwZSB0eXBlKQorICAg
IDogbV90eXBlKHR5cGUpCit7CisgICAgaWYgKHNsZWVwRGlzYWJsZXJDbGllbnQoKSkgeworICAg
ICAgICBtX2lkZW50aWZpZXIgPSBTbGVlcERpc2FibGVySWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsK
KyAgICAgICAgc2xlZXBEaXNhYmxlckNsaWVudCgpLT5kaWRDcmVhdGVTbGVlcERpc2FibGVyKG1f
aWRlbnRpZmllciwgcmVhc29uLCB0eXBlID09IFBBTDo6U2xlZXBEaXNhYmxlcjo6VHlwZTo6RGlz
cGxheSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3BsYXRmb3JtU2xlZXBEaXNh
YmxlciA9IFBBTDo6U2xlZXBEaXNhYmxlcjo6Y3JlYXRlKHJlYXNvbiwgdHlwZSk7Cit9CisKK1Ns
ZWVwRGlzYWJsZXI6On5TbGVlcERpc2FibGVyKCkKK3sKKyAgICBpZiAoc2xlZXBEaXNhYmxlckNs
aWVudCgpKQorICAgICAgICBzbGVlcERpc2FibGVyQ2xpZW50KCktPmRpZERlc3Ryb3lTbGVlcERp
c2FibGVyKG1faWRlbnRpZmllcik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJsZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVyLmgJKG5vbmV4aXN0ZW50KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxlci5oCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNs
ZWVwRGlzYWJsZXJJZGVudGlmaWVyLmgiCisKKyNpbmNsdWRlIDxwYWwvc3lzdGVtL1NsZWVwRGlz
YWJsZXIuaD4KKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFNsZWVwRGlzYWJsZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOworcHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIFNsZWVwRGlzYWJsZXIoY29uc3Qg
Y2hhciosIFBBTDo6U2xlZXBEaXNhYmxlcjo6VHlwZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgflNs
ZWVwRGlzYWJsZXIoKTsKKworICAgIFBBTDo6U2xlZXBEaXNhYmxlcjo6VHlwZSB0eXBlKCkgY29u
c3QgeyByZXR1cm4gbV90eXBlOyB9CisKK3ByaXZhdGU6CisgICAgc3RkOjp1bmlxdWVfcHRyPFBB
TDo6U2xlZXBEaXNhYmxlcj4gbV9wbGF0Zm9ybVNsZWVwRGlzYWJsZXI7CisgICAgU2xlZXBEaXNh
YmxlcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFBBTDo6U2xlZXBEaXNhYmxlcjo6VHlw
ZSBtX3R5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVyQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVyQ2xpZW50LmNwcAkobm9uZXhpc3RlbnQp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVyQ2xpZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlNsZWVwRGlzYWJsZXJDbGllbnQuaCIKKworI2luY2x1ZGUgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0
cjxTbGVlcERpc2FibGVyQ2xpZW50PiYgc2xlZXBEaXNhYmxlckNsaWVudCgpCit7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6dW5pcXVlX3B0cjxTbGVlcERpc2FibGVyQ2xpZW50Pj4g
Y2xpZW50OworICAgIHJldHVybiBjbGllbnQuZ2V0KCk7Cit9CisKK30KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJsZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVyQ2xpZW50LmgJKG5vbmV4aXN0ZW50KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxlckNsaWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyog
YXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBDT01QVVRFUiwgSU5DLiBPUgorKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNsZWVwRGlzYWJsZXJJZGVudGlm
aWVyLmgiCisKKyNpbmNsdWRlIDxwYWwvc3lzdGVtL1NsZWVwRGlzYWJsZXIuaD4KKyNpbmNsdWRl
IDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNsZWVwRGlzYWJsZXJDbGllbnQgewor
cHVibGljOgorICAgIHZpcnR1YWwgflNsZWVwRGlzYWJsZXJDbGllbnQoKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgZGlkQ3JlYXRlU2xlZXBEaXNhYmxlcihTbGVlcERpc2FibGVySWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiByZWFzb24sIGJvb2wgZGlzcGxheSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBkaWREZXN0cm95U2xlZXBEaXNhYmxlcihTbGVlcERpc2FibGVySWRlbnRpZmllcikgPSAwOwor
fTsKKworV0VCQ09SRV9FWFBPUlQgc3RkOjp1bmlxdWVfcHRyPFNsZWVwRGlzYWJsZXJDbGllbnQ+
JiBzbGVlcERpc2FibGVyQ2xpZW50KCk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJsZXJJZGVudGlmaWVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxlcklkZW50aWZpZXIu
aAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVy
SWRlbnRpZmllci5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBTbGVlcERpc2FibGVySWRlbnRpZmllclR5cGUgeyB9
OwordXNpbmcgU2xlZXBEaXNhYmxlcklkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFNsZWVw
RGlzYWJsZXJJZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9uIDI1OTA0NSkKKysrIFNv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTU2
NSw0ICs1NTY1LDE3IEBAIFN0cmluZyBJbnRlcm5hbHM6OmZvY3VzUmluZ0NvbG9yKCkKICAgICBy
ZXR1cm4gUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigpLmZvY3VzUmluZ0NvbG9yKG9wdGlvbnMpLmNz
c1RleHQoKTsKIH0KIAordW5zaWduZWQgSW50ZXJuYWxzOjpjcmVhdGVTbGVlcERpc2FibGVyKGNv
bnN0IFN0cmluZyYgcmVhc29uLCBib29sIGRpc3BsYXkpCit7CisgICAgc3RhdGljIHVuc2lnbmVk
IGlkZW50aWZpZXIgPSAwOworICAgIGF1dG8gc2xlZXBEaXNhYmxlciA9IG1ha2VVbmlxdWU8V2Vi
Q29yZTo6U2xlZXBEaXNhYmxlcj4ocmVhc29uLnV0ZjgoKS5kYXRhKCksIGRpc3BsYXkgPyBQQUw6
OlNsZWVwRGlzYWJsZXI6OlR5cGU6OkRpc3BsYXkgOiBQQUw6OlNsZWVwRGlzYWJsZXI6OlR5cGU6
OlN5c3RlbSk7CisgICAgbV9zbGVlcERpc2FibGVycy5hZGQoKytpZGVudGlmaWVyLCBXVEZNb3Zl
KHNsZWVwRGlzYWJsZXIpKTsKKyAgICByZXR1cm4gaWRlbnRpZmllcjsKK30KKworYm9vbCBJbnRl
cm5hbHM6OmRlc3Ryb3lTbGVlcERpc2FibGVyKHVuc2lnbmVkIGlkZW50aWZpZXIpCit7CisgICAg
cmV0dXJuIG1fc2xlZXBEaXNhYmxlcnMucmVtb3ZlKGlkZW50aWZpZXIpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHJldmlz
aW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJPcmllbnRhdGlvbk5vdGlmaWVy
LmgiCiAjaW5jbHVkZSAiUGFnZUNvbnNvbGVDbGllbnQuaCIKICNpbmNsdWRlICJSZWFsdGltZU1l
ZGlhU291cmNlLmgiCisjaW5jbHVkZSAiU2xlZXBEaXNhYmxlci5oIgogI2luY2x1ZGUgIlRleHRJ
bmRpY2F0b3IuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GbG9hdDMyQXJyYXkuaD4KICNp
bmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KQEAgLTk2MCw2ICs5NjEsOSBAQCBwdWJsaWM6CiAKICAg
ICBib29sIGlzUmVtb3RlVUlBcHBGb3JBY2Nlc3NpYmlsaXR5KCk7CiAKKyAgICB1bnNpZ25lZCBj
cmVhdGVTbGVlcERpc2FibGVyKGNvbnN0IFN0cmluZyYgcmVhc29uLCBib29sIGRpc3BsYXkpOwor
ICAgIGJvb2wgZGVzdHJveVNsZWVwRGlzYWJsZXIodW5zaWduZWQgaWRlbnRpZmllcik7CisKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Jik7CiAgICAgRG9jdW1lbnQq
IGNvbnRleHREb2N1bWVudCgpIGNvbnN0OwpAQCAtOTgxLDYgKzk4NSw4IEBAIHByaXZhdGU6CiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yU3R1YkZyb250ZW5kPiBtX2luc3BlY3RvckZy
b250ZW5kOwogICAgIFJlZlB0cjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBtX2NhY2hlU3RvcmFn
ZUNvbm5lY3Rpb247CisKKyAgICBIYXNoTWFwPHVuc2lnbmVkLCBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
Q29yZTo6U2xlZXBEaXNhYmxlcj4+IG1fc2xlZXBEaXNhYmxlcnM7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCShyZXZp
c2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTg2Miw0ICs4NjIsNyBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5IHsK
ICAgICBib29sZWFuIHN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpOwogCiAgICAgYm9vbGVhbiBp
c1JlbW90ZVVJQXBwRm9yQWNjZXNzaWJpbGl0eSgpOworCisgICAgdW5zaWduZWQgbG9uZyBjcmVh
dGVTbGVlcERpc2FibGVyKERPTVN0cmluZyByZWFzb24sIGJvb2xlYW4gZGlzcGxheSk7CisgICAg
Ym9vbGVhbiBkZXN0cm95U2xlZXBEaXNhYmxlcih1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOwog
fTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTkxNTgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDIwLTAzLTI4ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFNsZWVwIGRp
c2FibGluZyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW5jZSBzbGVlcCBkaXNhYmxp
bmcgaXMgY2F1c2luZyBjb21tdW5pY2F0aW9uIHdpdGggdGhlIHBvd2VyIG1hbmFnZW1lbnQgc2Vy
dmljZSwgaXQgc2hvdWxkIGJlIHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAg
VGhlIFVJIHByb2Nlc3Mgd2lsbCBiZSBub3RpZmllZCBieSB0aGUgV2ViQ29udGVudCBwcm9jZXNz
IGFib3V0IHNsZWVwIGRpc2FibGVycyBiZWluZyBjcmVhdGVkIGFuZCBkZXN0cm95ZWQsIGFuZCB3
aWxsIHBlcmZvcm0KKyAgICAgICAgdGhlIGFjdHVhbCBzbGVlcCBkaXNhYmxpbmcgYW5kIGVuYWJs
aW5nLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICog
U291cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2
YXRlRm9yVGVzdGluZy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
VGVzdGluZy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9oYXNTbGVlcERpc2FibGVyXSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlU2xlZXBEaXNhYmxlcik6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkRGVzdHJveVNsZWVwRGlzYWJsZXIpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Omhhc1NsZWVwRGlzYWJsZXIpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2FjeUNETS5j
cHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvaW9zL1JlbW90ZU1lZGlhU2Vzc2lv
bkhlbHBlci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvaW9zL1JlbW90ZU1l
ZGlhU2Vzc2lvbkhlbHBlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9WaWV3R2Vz
dHVyZUdlb21ldHJ5Q29sbGVjdG9yLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlNsZWVw
RGlzYWJsZXJDbGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViU2xlZXBEaXNh
YmxlckNsaWVudDo6ZGlkQ3JlYXRlU2xlZXBEaXNhYmxlcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlNsZWVwRGlzYWJsZXJDbGllbnQ6OmRpZERlc3Ryb3lTbGVlcERpc2FibGVyKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlNsZWVwRGlzYWJsZXJDbGllbnQuaDogQWRkZWQuCisgICAgICAgICog
V2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDIwLTAzLTI3ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBjb250
ZW50IHByb2Nlc3NlcyBzaG91bGQgbm90IGJlIGFibGUgdG8gYXJiaXRyYXJpbHkgcmVxdWVzdCBw
YXN0ZWJvYXJkIGRhdGEgZnJvbSB0aGUgVUkgcHJvY2VzcwpJbmRleDogU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CShyZXZp
c2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC00NzgsNiArNDc4LDcgQEAgVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmVDbwogCiBXZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAKIFdlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAKK1dlYlByb2Nlc3MvV2ViU2xlZXBEaXNhYmxlckNsaWVudC5jcHAK
IAogLy8gRklYTUUoMjA2MjY2KTogQXV0b21hdGlvblByb3RvY29sT2JqZWN0cy5oJ3MgIm5hbWVz
cGFjZSBQcm90b2NvbCIgY29uZmxpY3RzIHdpdGggb2JqYy9ydW50aW1lLmgncyAidHlwZWRlZiBz
dHJ1Y3Qgb2JqY19vYmplY3QgUHJvdG9jb2wiCiBXZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eS5jcHAgQG5vLXVuaWZ5CkluZGV4OiBTb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkJKHJldmlzaW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkJKHdvcmtpbmcgY29weSkKQEAgLTIyMiw2ICsy
MjIsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlCiAgICAgICAg
ICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhJywKICAgICAgICAgJ1dlYkNvcmU6
OlNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6U2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXInLAorICAgICAgICAnV2ViQ29yZTo6U2xl
ZXBEaXNhYmxlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OkFjdGl2aXR5U3RhdGVDaGFuZ2VJRCcs
CiAgICAgICAgICdXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmll
cicsCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAJ
KHJldmlzaW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3ODEsNiArMTc4MSwyMiBAQCB2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6ZGlkQ3JlYXRlQ29udGV4dEluCiB9CiAjZW5kaWYKIAordm9pZCBXZWJQcm9j
ZXNzUHJveHk6OmRpZENyZWF0ZVNsZWVwRGlzYWJsZXIoU2xlZXBEaXNhYmxlcklkZW50aWZpZXIg
aWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiByZWFzb24sIGJvb2wgZGlzcGxheSkKK3sKKyAgICBh
dXRvIHNsZWVwRGlzYWJsZXIgPSBtYWtlVW5pcXVlPFdlYkNvcmU6OlNsZWVwRGlzYWJsZXI+KHJl
YXNvbi51dGY4KCkuZGF0YSgpLCBkaXNwbGF5ID8gUEFMOjpTbGVlcERpc2FibGVyOjpUeXBlOjpE
aXNwbGF5IDogUEFMOjpTbGVlcERpc2FibGVyOjpUeXBlOjpTeXN0ZW0pOworICAgIG1fc2xlZXBE
aXNhYmxlcnMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUoc2xlZXBEaXNhYmxlcikpOworfQorCit2
b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRGVzdHJveVNsZWVwRGlzYWJsZXIoU2xlZXBEaXNhYmxl
cklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBtX3NsZWVwRGlzYWJsZXJzLnJlbW92ZShp
ZGVudGlmaWVyKTsKK30KKworYm9vbCBXZWJQcm9jZXNzUHJveHk6Omhhc1NsZWVwRGlzYWJsZXIo
KQoreworICAgIHJldHVybiBtX3NsZWVwRGlzYWJsZXJzLnNpemUoKSA+IDA7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgTUVTU0FHRV9DSEVDSwpJbmRleDogU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgJKHJldmlzaW9uIDI1OTA0NSkKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBA
IC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1NoYXJlZFN0cmluZ0hhc2guaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NsZWVwRGlzYWJsZXIuaD4K
ICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CkBAIC0zNzgsNiArMzc5LDggQEAgcHVibGljOgogICAgIHZvaWQgZ3B1
UHJvY2Vzc0NyYXNoZWQoKTsKICNlbmRpZgogCisgICAgYm9vbCBoYXNTbGVlcERpc2FibGVyKCk7
CisKIHByb3RlY3RlZDoKICAgICBXZWJQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmLCBXZWJz
aXRlRGF0YVN0b3JlKiwgSXNQcmV3YXJtZWQpOwogCkBAIC00NzUsNiArNDc4LDkgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHNlbmRNZXNzYWdlVG9XZWJDb250ZXh0V2l0aFJlcGx5KFVzZXJNZXNzYWdl
JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVXNlck1lc3NhZ2UmJik+JiYpOwogI2VuZGlmCiAK
KyAgICB2b2lkIGRpZENyZWF0ZVNsZWVwRGlzYWJsZXIoV2ViQ29yZTo6U2xlZXBEaXNhYmxlcklk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBib29sIGRpc3BsYXkpOworICAgIHZvaWQg
ZGlkRGVzdHJveVNsZWVwRGlzYWJsZXIoV2ViQ29yZTo6U2xlZXBEaXNhYmxlcklkZW50aWZpZXIp
OworCiAgICAgZW51bSBjbGFzcyBJc1dlYWsgeyBObywgWWVzIH07CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gY2xhc3MgV2Vha09yU3Ryb25nUHRyIHsKICAgICBwdWJsaWM6CkBAIC01ODAsNiAr
NTg2LDggQEAgcHJpdmF0ZToKICAgICAgICAgV2Vha0hhc2hTZXQ8V2ViUHJvY2Vzc1Byb3h5PiBj
bGllbnRQcm9jZXNzZXM7CiAgICAgfTsKICAgICBPcHRpb25hbDxTZXJ2aWNlV29ya2VySW5mb3Jt
YXRpb24+IG1fc2VydmljZVdvcmtlckluZm9ybWF0aW9uOworCisgICAgSGFzaE1hcDxXZWJDb3Jl
OjpTbGVlcERpc2FibGVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNsZWVw
RGlzYWJsZXI+PiBtX3NsZWVwRGlzYWJsZXJzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTgwLDQgKzgw
LDcgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdgogICAgIFNlbmRN
ZXNzYWdlVG9XZWJDb250ZXh0KHN0cnVjdCBXZWJLaXQ6OlVzZXJNZXNzYWdlIHVzZXJNZXNzYWdl
KQogICAgIFNlbmRNZXNzYWdlVG9XZWJDb250ZXh0V2l0aFJlcGx5KHN0cnVjdCBXZWJLaXQ6OlVz
ZXJNZXNzYWdlIHVzZXJNZXNzYWdlKSAtPiAoc3RydWN0IFdlYktpdDo6VXNlck1lc3NhZ2UgcmVw
bHlNZXNzYWdlKSBBc3luYwogI2VuZGlmCisKKyAgICBEaWRDcmVhdGVTbGVlcERpc2FibGVyKFdl
YkNvcmU6OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyByZWFzb24s
IGJvb2wgZGlzcGxheSkKKyAgICBEaWREZXN0cm95U2xlZXBEaXNhYmxlcihXZWJDb3JlOjpTbGVl
cERpc2FibGVySWRlbnRpZmllciBpZGVudGlmaWVyKQogfQpJbmRleDogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVG
b3JUZXN0aW5nLmgJKHJldmlzaW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCSh3b3JraW5nIGNvcHkpCkBA
IC02NCw0ICs2NCw1IEBACiArICh2b2lkKV9zZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI6
KE5TU3RyaW5nICopYnVuZGxlSWRlbnRpZmllcjsKICsgKHZvaWQpX2NsZWFyQXBwbGljYXRpb25C
dW5kbGVJZGVudGlmaWVyVGVzdGluZ092ZXJyaWRlOwogCistIChCT09MKV9oYXNTbGVlcERpc2Fi
bGVyOwogQGVuZApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld1Rlc3RpbmcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0JKHJldmlzaW9uIDI1OTA0NSkKKysrIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0yMjAsNCArMjIwLDkgQEAgKyAodm9pZClfY2xlYXJBcHBsaWNhdGlvbkJ1bmRsZUlk
ZW50aWZpZQogICAgIFdlYkNvcmU6OmNsZWFyQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyVGVz
dGluZ092ZXJyaWRlKCk7CiB9CiAKKy0gKEJPT0wpX2hhc1NsZWVwRGlzYWJsZXIKK3sKKyAgICBy
ZXR1cm4gX3BhZ2UgPyBfcGFnZS0+cHJvY2VzcygpLmhhc1NsZWVwRGlzYWJsZXIoKSA6IGZhbHNl
OworfQorCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQ5ODMsNiArNDk4
Myw4IEBACiAJCUMxODE3MzVFMjA1ODM5RjYwMERGREE2NSAvKiBEcmF3aW5nQXJlYU1hYy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBEcmF3aW5nQXJlYU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUMxODE3MzYwMjA1ODQyNDcwMERGREE2NSAvKiBEaXNwbGF5TGluay5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEaXNwbGF5TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDMTgxNzM2MjIwNTg0NEE5MDBERkRBNjUgLyogRGlzcGxheUxpbmsuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gRGlzcGxheUxpbmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
MThGQjUxRDI0MkY5Rjc2MDA3RTk4NzUgLyogV2ViU2xlZXBEaXNhYmxlckNsaWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTbGVlcERpc2FibGVyQ2xpZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzE4RkI1MUUyNDJGOUY3NzAwN0U5
ODc1IC8qIFdlYlNsZWVwRGlzYWJsZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViU2xlZXBEaXNhYmxlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDMUUxMjNCOTIwQTExNTcyMDAyNjQ2RjQgLyogUERGQ29udGV4dE1lbnUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUERGQ29udGV4dE1lbnUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzUxNzM4ODAxMkRGOEY0RjAwRUUzRjQ3IC8qIERyYWdDb250
cm9sbGVyQWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERyYWdDb250
cm9sbGVyQWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1MjM3RjVGMTI0
NDFDQTMwMDc4MDQ3MiAvKiBXZWJFZGl0b3JDbGllbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJFZGl0b3JDbGllbnRNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC04NzAxLDYgKzg3MDMsOCBAQAogCQkJCUJDMDMyRDkxMTBGNDM3
QUYwMDU4QzE1QSAvKiBXZWJQcm9jZXNzLmggKi8sCiAJCQkJQkMzMDY2QjkxMjVBNDM2MzAwRTcx
Mjc4IC8qIFdlYlByb2Nlc3MubWVzc2FnZXMuaW4gKi8sCiAJCQkJQkNFMEU0MjQxNjhCN0EyODAw
NTdFNjZBIC8qIFdlYlByb2Nlc3NTdXBwbGVtZW50LmggKi8sCisJCQkJQzE4RkI1MUQyNDJGOUY3
NjAwN0U5ODc1IC8qIFdlYlNsZWVwRGlzYWJsZXJDbGllbnQuY3BwICovLAorCQkJCUMxOEZCNTFF
MjQyRjlGNzcwMDdFOTg3NSAvKiBXZWJTbGVlcERpc2FibGVyQ2xpZW50LmggKi8sCiAJCQkpOwog
CQkJcGF0aCA9IFdlYlByb2Nlc3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpJbmRleDog
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlNsZWVwRGlzYWJsZXJDbGllbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTbGVlcERpc2FibGVyQ2xpZW50
LmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU2xlZXBE
aXNhYmxlckNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NCBAQAorLyoKKyog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJTbGVlcERpc2FibGVyQ2xpZW50LmgiCisKKyNpbmNsdWRlICJXZWJQcm9j
ZXNzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK3ZvaWQgV2ViU2xlZXBEaXNhYmxlckNsaWVudDo6ZGlkQ3JlYXRlU2xlZXBE
aXNhYmxlcihTbGVlcERpc2FibGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IHJlYXNvbiwgYm9vbCBkaXNwbGF5KQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6
RGlkQ3JlYXRlU2xlZXBEaXNhYmxlcihpZGVudGlmaWVyLCByZWFzb24sIGRpc3BsYXkpLCAwKTsK
K30KKwordm9pZCBXZWJTbGVlcERpc2FibGVyQ2xpZW50OjpkaWREZXN0cm95U2xlZXBEaXNhYmxl
cihTbGVlcERpc2FibGVySWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Oldl
YlByb2Nlc3NQcm94eTo6RGlkRGVzdHJveVNsZWVwRGlzYWJsZXIoaWRlbnRpZmllciksIDApOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJTbGVlcERpc2FibGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlNsZWVwRGlzYWJsZXJDbGllbnQuaAkobm9uZXhpc3RlbnQpCisrKyBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU2xlZXBEaXNhYmxlckNsaWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJl
IG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBDT01QVVRFUiwgSU5DLiBPUgorKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNvcmUvU2xlZXBEaXNhYmxlckNs
aWVudC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViU2xlZXBEaXNhYmxlckNs
aWVudCA6IHB1YmxpYyBXZWJDb3JlOjpTbGVlcERpc2FibGVyQ2xpZW50IHsKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB2b2lkIGRpZENyZWF0ZVNsZWVwRGlzYWJs
ZXIoU2xlZXBEaXNhYmxlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wpIG92ZXJyaWRl
OworICAgIHZvaWQgZGlkRGVzdHJveVNsZWVwRGlzYWJsZXIoU2xlZXBEaXNhYmxlcklkZW50aWZp
ZXIpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2FjeUNETS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVMZWdhY3lDRE0u
Y3BwCShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZUxlZ2FjeUNETS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDggQEAK
IAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVE
SUEpCiAKKyNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgorCiAjaW5jbHVkZSAiUmVt
b3RlTGVnYWN5Q0RNRmFjdG9yeS5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETVByb3h5TWVz
c2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1TZXNzaW9uLmgiCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2lvcy9SZW1vdGVNZWRpYVNlc3Npb25IZWxw
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
aW9zL1JlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlci5jcHAJKHJldmlzaW9uIDI1OTA0NSkKKysrIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvaW9zL1JlbW90ZU1lZGlhU2Vzc2lvbkhl
bHBlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDggQEAKICNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNpbmNsdWRlICJDb25uZWN0aW9u
LmgiCisjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5j
bHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVNlc3Np
b25IZWxwZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvTWVkaWFQbGF5YmFja1RhcmdldENvY29hLmg+CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2lvcy9SZW1vdGVNZWRpYVNlc3Npb25IZWxwZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2lvcy9SZW1v
dGVNZWRpYVNlc3Npb25IZWxwZXIuaAkocmV2aXNpb24gMjU5MDQ1KQorKysgU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYm
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9NZWRpYVNlc3Npb25IZWxwZXJJT1MuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3R2VzdHVyZUdlb21ldHJ5
Q29sbGVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9WaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmNwcAkocmV2aXNpb24gMjU5MDQ1KQor
KysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld0dlc3R1cmVHZW9tZXRyeUNv
bGxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9I
aXRUZXN0UmVzdWx0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZURvY3VtZW50Lmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9SYW5nZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyVmlldy5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvVGV4dEl0ZXJhdG9yLmg+CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQkocmV2aXNpb24gMjU5
MDQ1KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bQkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQAogI2ltcG9ydCAiV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRl
cnMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW1wb3J0ICJXZWJT
bGVlcERpc2FibGVyQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVy
cy5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvQ29uZmlnRmlsZS5oPgogI2ltcG9ydCA8SmF2
YVNjcmlwdENvcmUvT3B0aW9ucy5oPgpAQCAtNjMsMTAgKzY0LDEyIEBACiAjaW1wb3J0IDxXZWJD
b3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWVtb3J5UmVsZWFzZS5o
PgogI2ltcG9ydCA8V2ViQ29yZS9OU1Njcm9sbGVySW1wRGV0YWlscy5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9Q
ZXJmb3JtYW5jZUxvZ2dpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGljdHVyZUluUGljdHVyZVN1
cHBvcnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1NXQ29udGV4dE1hbmFnZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU3lz
dGVtQmF0dGVyeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9VVElVdGlsaXRpZXMuaD4KICNpbXBvcnQg
PGFsZ29yaXRobT4KICNpbXBvcnQgPGRpc3BhdGNoL2Rpc3BhdGNoLmg+CkBAIC0xMzEsMTEgKzEz
NCw2IEBACiAjaW1wb3J0IDxvcy9zdGF0ZV9wcml2YXRlLmg+CiAjZW5kaWYKIAotI2lmIFBMQVRG
T1JNKENPQ09BKQotI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRl
ci5oPgotI2ltcG9ydCA8V2ViQ29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+Ci0jZW5kaWYKLQogI2lmIEhB
VkUoQ1NDSEVDS0ZJWERJU0FCTEUpCiBleHRlcm4gIkMiIHZvaWQgX0NTQ2hlY2tGaXhEaXNhYmxl
KCk7CiAjZW5kaWYKQEAgLTMxOCw2ICszMTYsOCBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3Jt
SW5pdGlhbGl6ZVdlYlByCiAgICAgICAgIHNldFZlY3Rvck9mVVRUeXBlSXRlbShXVEZNb3ZlKHBh
cmFtZXRlcnMudmVjdG9yT2ZVVFR5cGVJdGVtKSk7CiAgICAgfQogI2VuZGlmCisKKyAgICBXZWJD
b3JlOjpzbGVlcERpc2FibGVyQ2xpZW50KCkgPSBtYWtlVW5pcXVlPFdlYlNsZWVwRGlzYWJsZXJD
bGllbnQ+KCk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRXZWJzaXRlRGF0YVN0
b3JlUGFyYW1ldGVycyhXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMp
CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAyNTkxNTgpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxNCBAQAorMjAyMC0wMy0yOCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5j
b20+CisKKyAgICAgICAgW0NvY29hXSBTbGVlcCBkaXNhYmxpbmcgc2hvdWxkIGJlIHBlcmZvcm1l
ZCBpbiB0aGUgVUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA5Njc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TbGVlcERp
c2FibGVyLm1tOiBBZGRlZC4KKyAgICAgICAgKFRFU1QpOgorCiAyMDIwLTAzLTI4ICBDaGFuZ1Nl
b2sgT2ggIDxjaGFuZ3Nlb2tAd2Via2l0Lm9yZz4KIAogICAgICAgICBbR1RLXSBObyBsaWJzeXN0
ZW1kLWRldmVsIGZvciBETkYKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAy
NTkwNDUpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtODgzLDYgKzg4Myw3IEBACiAJCUMwQzVE
M0M2MTQ1OTkxMjkwMEE4MDJBNiAvKiBHZXRCYWNraW5nU2NhbGVGYWN0b3JfQnVuZGxlLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzBDNUQzQkQxNDU5
OEI2RjAwQTgwMkE2IC8qIEdldEJhY2tpbmdTY2FsZUZhY3Rvcl9CdW5kbGUubW0gKi87IH07CiAJ
CUMxM0Q4MkQ5MjQxNkYxMzIwMEE2Mjc5MyAvKiBFbmFibGVBY2Nlc3NpYmlsaXR5Lm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzEzRDgyRDgyNDE2RjEz
MjAwQTYyNzkzIC8qIEVuYWJsZUFjY2Vzc2liaWxpdHkubW0gKi87IH07CiAJCUMxNDVDQzBDMjNE
QTVBMUYwMDNBNUVFQiAvKiBNaW1lVHlwZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMTQ1Q0MwQjIzREE1QTBGMDAzQTVFRUIgLyogTWltZVR5cGVz
Lm1tICovOyB9OworCQlDMTQ5RDU1MDI0MkU5OERGMDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlci5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNDlENTRG
MjQyRTk4NDQwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyLm1tICovOyB9OwogCQlDMTVDQkIzMDIz
RjFGRjFBMDAzMDBDQzcgLyogQmFja2xpZ2h0TGV2ZWxOb3RpZmljYXRpb24ubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTVDQkIyRjIzRjFGRjFBMDAz
MDBDQzcgLyogQmFja2xpZ2h0TGV2ZWxOb3RpZmljYXRpb24ubW0gKi87IH07CiAJCUMxNUNCQjNG
MjNGQjE3N0EwMDMwMENDNyAvKiBQcmVmZXJlbmNlQ2hhbmdlcy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNUNCQjNFMjNGQjE3N0EwMDMwMENDNyAv
KiBQcmVmZXJlbmNlQ2hhbmdlcy5tbSAqLzsgfTsKIAkJQzE2OTJEQ0EyM0QxMERBRTAwNkU4OEY3
IC8qIEJhdHRlcnkubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMTY5MkRDOTIzRDEwREFFMDA2RTg4RjcgLyogQmF0dGVyeS5tbSAqLzsgfTsKQEAgLTI0
NTgsNiArMjQ1OSw3IEBACiAJCUMwQzVEM0JEMTQ1OThCNkYwMEE4MDJBNiAvKiBHZXRCYWNraW5n
U2NhbGVGYWN0b3JfQnVuZGxlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gR2V0QmFja2luZ1NjYWxlRmFjdG9yX0J1bmRsZS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQzEzRDgyRDgyNDE2RjEzMjAwQTYyNzkzIC8qIEVuYWJsZUFjY2Vzc2liaWxp
dHkubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBFbmFibGVBY2Nlc3NpYmlsaXR5Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTQ1Q0MwQjIzREE1QTBGMDAzQTVFRUIgLyogTWlt
ZVR5cGVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWltZVR5
cGVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMTQ5RDU0RjI0MkU5ODQ0MDAz
RUJCMTIgLyogU2xlZXBEaXNhYmxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFNsZWVwRGlzYWJsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUMxNUNCQjJGMjNGMUZGMUEwMDMwMENDNyAvKiBCYWNrbGlnaHRMZXZlbE5vdGlmaWNhdGlvbi5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEJhY2tsaWdodExldmVsTm90aWZpY2F0aW9uLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTVDQkIzRTIzRkIxNzdBMDAzMDBDQzcgLyog
UHJlZmVyZW5jZUNoYW5nZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBQcmVmZXJlbmNlQ2hhbmdlcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QzE2OTJEQzkyM0QxMERBRTAwNkU4OEY3IC8qIEJhdHRlcnkubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBCYXR0ZXJ5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjkyMSw2ICsy
OTIzLDcgQEAKIAkJCQlDMTQ1Q0MwQjIzREE1QTBGMDAzQTVFRUIgLyogTWltZVR5cGVzLm1tICov
LAogCQkJCUUzMjVDOTA2MjNFMzg3MDIwMEJDN0QzQiAvKiBQaWN0dXJlSW5QaWN0dXJlU3VwcG9y
dC5tbSAqLywKIAkJCQlDMTVDQkIzRTIzRkIxNzdBMDAzMDBDQzcgLyogUHJlZmVyZW5jZUNoYW5n
ZXMubW0gKi8sCisJCQkJQzE0OUQ1NEYyNDJFOTg0NDAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIu
bW0gKi8sCiAJCQkJQzE5NEUzMUMyNDA5REY0MzAwMjkzOUVEIC8qIFVUSUZyb21NSU1FVHlwZS5t
bSAqLywKIAkJCQlFM0NBQUE0QjI0MTU1MDUxMDBDRUQyRTIgLyogVVRJRnJvbVRhZy5tbSAqLywK
IAkJCQkwRjEzOUU3NTFBNDIzQTUzMDBGNTkwRjUgLyogV2Vha09iakNQdHIubW0gKi8sCkBAIC01
MDU4LDYgKzUwNjEsNyBAQAogCQkJCTM3QkNBNjFDMUI1OTZCQTkwMDIwMTJDQSAvKiBTaG91bGRP
cGVuRXh0ZXJuYWxVUkxzSW5OZXdXaW5kb3dBY3Rpb25zLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
N0M4M0UwQzUxRDBBNjU0NjAwRkVCQ0YzIC8qIFNocmlua1RvRml0Lm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0NDRTdFQ0QxQTQxMUE3RTAwNDQ3QzRDIC8qIFNpbXBsaWZ5TWFya3VwLm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJQzE0OUQ1NTAyNDJFOThERjAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIu
bW0gaW4gU291cmNlcyAqLywKIAkJCQkyREZGN0I2RDFEQTQ4N0FGMDA4MTQ2MTQgLyogU25hcHNo
b3RTdG9yZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBGNEZGQTlFMUVEM0FBODUwMEY3MTExRiAv
KiBTbmFwc2hvdFZpYVJlbmRlckluQ29udGV4dC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3
RjE1MUE0MTFBRTYwMDQ0N0M0QyAvKiBTcGFjZWJhclNjcm9sbGluZy5jcHAgaW4gU291cmNlcyAq
LywKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1NsZWVwRGlzYWJsZXIu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU2xlZXBE
aXNhYmxlci5tbQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9TbGVlcERpc2FibGVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBXS19IQVZFX0NfU1BJCisKKyNp
bXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisj
aW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaD4KKyNpbXBvcnQgPHd0
Zi9UaHJlYWRpbmcuaD4KKworVEVTVChXZWJLaXQsIFNsZWVwRGlzYWJsZXIpCit7CisgICAgYXV0
byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdL
KFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3Qo
IkludGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsKKyAgICBjb25maWd1cmF0aW9uLmdldCgp
LnByb2Nlc3NQb29sID0gKFdLUHJvY2Vzc1Bvb2wgKiljb250ZXh0LmdldCgpOworICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQo
KSBhZGRUb1dpbmRvdzpZRVNdKTsKKworICAgIEFTU0VSVF9GQUxTRShbd2ViVmlldyBfaGFzU2xl
ZXBEaXNhYmxlcl0pOworCisgICAgYXV0byBjcmVhdGVTbGVlcERpc2FibGVyID0gWyZdIHsKKyAg
ICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5k
b3cuaW50ZXJuYWxzLmNyZWF0ZVNsZWVwRGlzYWJsZXIoXCJUZXN0RGlzYWJsZXJcIiwgdHJ1ZSki
XS5sb25nTG9uZ1ZhbHVlOworICAgIH07CisKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBjcmVhdGVT
bGVlcERpc2FibGVyKCk7CisKKyAgICBBU1NFUlRfTkUoaWRlbnRpZmllciwgMCk7CisKKyAgICBB
U1NFUlRfVFJVRShbd2ViVmlldyBfaGFzU2xlZXBEaXNhYmxlcl0pOworCisgICAgYXV0byBkZXN0
cm95U2xlZXBEaXNhYmxlciA9IFsmXSB7CisgICAgICAgIE5TU3RyaW5nICpqcyA9IFtOU1N0cmlu
ZyBzdHJpbmdXaXRoRm9ybWF0OkAid2luZG93LmludGVybmFscy5kZXN0cm95U2xlZXBEaXNhYmxl
ciglbGxkKSIsIGlkZW50aWZpZXJdOworICAgICAgICByZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlF
dmFsdWF0aW5nSmF2YVNjcmlwdDpqc107CisgICAgfTsKKworICAgIEFTU0VSVF9UUlVFKGRlc3Ry
b3lTbGVlcERpc2FibGVyKCkpOworCisgICAgQVNTRVJUX0ZBTFNFKFt3ZWJWaWV3IF9oYXNTbGVl
cERpc2FibGVyXSk7Cit9CisKKyNlbmRpZiAvLyBXS19IQVZFX0NfU1BJCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394823</attachid>
            <date>2020-03-28 09:38:40 -0700</date>
            <delta_ts>2020-03-28 09:48:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209676-20200328093839.patch</filename>
            <type>text/plain</type>
            <size>49024</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTE1OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDIwLTAzLTI4ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFNsZWVwIGRp
c2FibGluZyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW5jZSBzbGVlcCBkaXNhYmxp
bmcgaXMgY2F1c2luZyBjb21tdW5pY2F0aW9uIHdpdGggdGhlIHBvd2VyIG1hbmFnZW1lbnQgc2Vy
dmljZSwgaXQgc2hvdWxkIGJlIHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAg
VGhpcyBwYXRjaCBmaXhlcyB0aGlzIGJ5IGNyZWF0aW5nIGEgc2xlZXAgZGlzYWJsZXIgY2xpZW50
LCB3aGljaCB3aWxsIG5vdGlmeSB0aGUgVUkgcHJvY2VzcyB3aGVuIGEgc2xlZXAgZGlzYWJsZXIg
aXMgYmVpbmcKKyAgICAgICAgY3JlYXRlZCBhbmQgZGVzdHJveWVkLiBJbiByZXNwb25zZSB0byB0
aGVzZSBtZXNzYWdlcywgdGhlIFVJIHByb2Nlc3Mgd2lsbCBwZXJmb3JtIHRoZSBhY3R1YWwgc2xl
ZXAgZGlzYWJsaW5nIGFuZCBlbmFibGluZy4KKyAgICAgICAgQSBuZXcgc2xlZXAgZGlzYWJsZXIg
Y2xhc3MgaXMgY3JlYXRlZCB3aGljaCB3cmFwcyB0aGUgUEFMIHNsZWVwIGRpc2FibGVyLCBhbmQg
bm90aWZpZXMgdGhlIHNsZWVwIGRpc2FibGVyIGNsaWVudCB3aGVuIHNldC4KKyAgICAgICAgSWYg
dGhlIHNsZWVwIGRpc2FibGVyIGNsaWVudCBpcyBzZXQsIGEgUEFMIHNsZWVwIGRpc2FibGVyIGlu
c3RhbmNlIHdpbGwgbm90IGJlIGNyZWF0ZWQgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcywgc2lu
Y2UgdGhpcworICAgICAgICB3aWxsIHRoZW4gaGFwcGVuIGluIHRoZSBVSSBwcm9jZXNzLgorCisg
ICAgICAgIEFQSSB0ZXN0OiBXZWJLaXQuU2xlZXBEaXNhYmxlcgorCisgICAgICAgICogSGVhZGVy
cy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZVNsZWVwRGlzYWJs
aW5nKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9TbGVlcERpc2FibGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTbGVlcERp
c2FibGVyOjpTbGVlcERpc2FibGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXI6
On5TbGVlcERpc2FibGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TbGVlcERpc2FibGVyLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6U2xlZXBEaXNhYmxlcjo6dHlwZSBjb25zdCk6CisgICAg
ICAgICogcGxhdGZvcm0vU2xlZXBEaXNhYmxlckNsaWVudC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6c2xlZXBEaXNhYmxlckNsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vU2xlZXBE
aXNhYmxlckNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJD
bGllbnQ6On5TbGVlcERpc2FibGVyQ2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TbGVlcERp
c2FibGVySWRlbnRpZmllci5oOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmNyZWF0ZVNsZWVwRGlzYWJsZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpkZXN0cm95U2xlZXBEaXNhYmxlcik6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5p
ZGw6CisKIDIwMjAtMDMtMjggIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAg
ICAgICAgIE51bGxwdHIgY3Jhc2ggaW4gSW5saW5lVGV4dEJveDo6ZW1waGFzaXNNYXJrRXhpc3Rz
QW5kSXNBYm92ZQpJbmRleDogU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCShyZXZpc2lvbiAyNTkwNDUpCisrKyBT
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xMDA3LDYgKzEw
MDcsOSBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZv
cm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmgKICAgICBwbGF0Zm9ybS9TaGFyZWRC
dWZmZXIuaAogICAgIHBsYXRmb3JtL1NoYXJlZFN0cmluZ0hhc2guaAorICAgIHBsYXRmb3JtL1Ns
ZWVwRGlzYWJsZXIuaAorICAgIHBsYXRmb3JtL1NsZWVwRGlzYWJsZXJDbGllbnQuaAorICAgIHBs
YXRmb3JtL1NsZWVwRGlzYWJsZXJJZGVudGlmZXIuaAogICAgIHBsYXRmb3JtL1N1ZGRlblRlcm1p
bmF0aW9uLmgKICAgICBwbGF0Zm9ybS9TdXBwbGVtZW50YWJsZS5oCiAgICAgcGxhdGZvcm0vVGhl
bWVUeXBlcy5oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAkocmV2aXNpb24gMjU5MDQ1KQorKysgU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE3OTgsNiArMTc5OCw4IEBA
IHBsYXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuY3BwCiBwbGF0Zm9ybS9TaGFyZWRC
dWZmZXIuY3BwCiBwbGF0Zm9ybS9TaGFyZWRCdWZmZXJDaHVua1JlYWRlci5jcHAKIHBsYXRmb3Jt
L1NoYXJlZFN0cmluZ0hhc2guY3BwCitwbGF0Zm9ybS9TbGVlcERpc2FibGVyLmNwcAorcGxhdGZv
cm0vU2xlZXBEaXNhYmxlckNsaWVudC5jcHAKIHBsYXRmb3JtL1N0YXRpY1Bhc3RlYm9hcmQuY3Bw
CiBwbGF0Zm9ybS9UaGVtZS5jcHAKIHBsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuY3BwCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTM5ODYsNiArMzk4Niw5IEBACiAJCUMx
MDVEQTY0MEYzQUE2QjgwMDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3Rvci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzEwNURBNjMwRjNBQTZCODAw
MURENDRGIC8qIFRleHRFbmNvZGluZ0RldGVjdG9yLmggKi87IH07CiAJCUMxMUE5RUNFMjE0MDNB
NUMwMENGQjIwQSAvKiBTd2l0Y2hpbmdHUFVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxMUE5RUNEMjE0MDNBNUMwMENGQjIwQSAvKiBTd2l0
Y2hpbmdHUFVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlDMTQ5MzgwNzIyMzQ1NTFBMDAwQ0Q3MDcgLyogU3BlZWNoU3ludGhlc2lzQ2xp
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTQ5
MzgwNTIyMzQyNzE5MDAwQ0Q3MDcgLyogU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQzE0OUQ1NUQyNDJFQTZC
OTAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMxNDlENTVBMjQyRUE0RjkwMDNFQkIxMiAvKiBTbGVlcERpc2Fi
bGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
QzE0OUQ1NUYyNDJFQTdCODAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXJDbGllbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNDlENTVCMjQyRUE0RkEw
MDNFQkIxMiAvKiBTbGVlcERpc2FibGVyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQzE0OUQ1NjcyNDJFQjg0QTAwM0VCQjEyIC8qIFNs
ZWVwRGlzYWJsZXJJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDMTQ5RDU2NTI0MkVCNzY1MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlcklk
ZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlDMTY5MkREMjIzRDIzQUJEMDA2RTg4RjcgLyogU3lzdGVtQmF0dGVyeS5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNjkyREQxMjNEMjNBQkQw
MDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5Lm1tICovOyB9OwogCQlDMTY5MkRENTIzRDIzRTA4MDA2
RTg4RjcgLyogU3lzdGVtQmF0dGVyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzE2OTJERDQyM0QyM0FFMDAwNkU4OEY3IC8qIFN5c3RlbUJhdHRlcnku
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMUUx
RDIzNjIwM0RGMTU0MDA1ODQ2NjUgLyogU2NyZWVuUHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzFFMUQyMzUyMDNERjE1NDAwNTg0NjY1
IC8qIFNjcmVlblByb3BlcnRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtMTM1ODIsOCArMTM1ODUsMTMgQEAKIAkJQzExQTlFQ0QyMTQwM0E1
QzAwQ0ZCMjBBIC8qIFN3aXRjaGluZ0dQVUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTd2l0Y2hp
bmdHUFVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzExQTlFRDIyMTQw
NTc4QjAwQ0ZCMjBBIC8qIFN3aXRjaGluZ0dQVUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTd2l0Y2hpbmdHUFVDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MTQ5MzgwNTIyMzQyNzE5MDAwQ0Q3MDcgLyogU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDMTQ5RDU1OTI0MkVBNEY4MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTbGVlcERpc2FibGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzE0OUQ1NUEyNDJFQTRGOTAwM0VCQjEyIC8qIFNs
ZWVwRGlzYWJsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2xlZXBEaXNh
Ymxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMTQ5RDU1QjI0MkVBNEZBMDAz
RUJCMTIgLyogU2xlZXBEaXNhYmxlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTbGVlcERpc2FibGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUMxNDlENTY1MjQyRUI3NjUwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVySWRlbnRpZmllci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTbGVlcERpc2FibGVySWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDMTY5MkREMTIzRDIzQUJEMDA2RTg4RjcgLyogU3lzdGVtQmF0dGVy
eS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFN5c3RlbUJhdHRlcnkubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUMxNjkyREQ0MjNEMjNBRTAwMDZFODhGNyAvKiBTeXN0ZW1CYXR0
ZXJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN5c3RlbUJhdHRlcnkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQzE4RkI1MTgyNDJGOTM4MjAwN0U5ODc1IC8qIFNsZWVwRGlzYWJsZXJDbGll
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2xlZXBEaXNhYmxlckNsaWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxRTFEMjM1MjAzREYxNTQwMDU4NDY2NSAvKiBTY3Jl
ZW5Qcm9wZXJ0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmVlblByb3BlcnRpZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzIwMTVDMDkxQkU2RkUyQzAwODIyMzg5IC8qIEZvbnRW
YXJpYW50QnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250VmFyaWFudEJ1aWxkZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzIwRjRGNjQyMURGQkU1QzAwNzBDNDVBIC8qIFdI
TFNMVHlwZVJlZmVyZW5jZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXSExTTFR5cGVSZWZlcmVu
Y2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjYyNDUsNiArMjYyNTMsMTEg
QEAKIAkJCQk4MzRERkFDRTFGN0RBRTU3MDBDMjcyNUIgLyogU2hhcmVkU3RyaW5nSGFzaC5jcHAg
Ki8sCiAJCQkJODM0REZBQ0MxRjdEQUU1NjAwQzI3MjVCIC8qIFNoYXJlZFN0cmluZ0hhc2guaCAq
LywKIAkJCQk5MzMwOUVBMDA5OUVCNzhDMDA1NkU1ODEgLyogU2hhcmVkVGltZXIuaCAqLywKKwkJ
CQlDMTQ5RDU1OTI0MkVBNEY4MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlci5jcHAgKi8sCisJCQkJ
QzE0OUQ1NUEyNDJFQTRGOTAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIuaCAqLywKKwkJCQlDMThG
QjUxODI0MkY5MzgyMDA3RTk4NzUgLyogU2xlZXBEaXNhYmxlckNsaWVudC5jcHAgKi8sCisJCQkJ
QzE0OUQ1NUIyNDJFQTRGQTAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXJDbGllbnQuaCAqLywKKwkJ
CQlDMTQ5RDU2NTI0MkVCNzY1MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlcklkZW50aWZpZXIuaCAq
LywKIAkJCQlBMzM0QkQ4MjIxOTRFNDYxMDAwMEQ3N0YgLyogU1NMS2V5R2VuZXJhdG9yLmNwcCAq
LywKIAkJCQlGNTg3ODY2MjAyREUzQjExMDFFQTQxMjIgLyogU1NMS2V5R2VuZXJhdG9yLmggKi8s
CiAJCQkJRjQzM0U5MDQxREJCREJDMjAwRUYwRDE0IC8qIFN0YXRpY1Bhc3RlYm9hcmQuY3BwICov
LApAQCAtMzI3MTYsNiArMzI3MjksOSBAQAogCQkJCTk0NDRDQkQ2MUQ4NjBDOEIwMDczQTA3NCAv
KiBTaXplc0F0dHJpYnV0ZVBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTQ0NENCRDQxRDg2
MEM4QjAwNzNBMDc0IC8qIFNpemVzQ2FsY1BhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlF
OTExQ0QwRUY4NkQ0NzAwOUQwQ0FGIC8qIFNrZXdUcmFuc2Zvcm1PcGVyYXRpb24uaCBpbiBIZWFk
ZXJzICovLAorCQkJCUMxNDlENTVEMjQyRUE2QjkwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlDMTQ5RDU1RjI0MkVBN0I4MDAzRUJCMTIgLyogU2xlZXBEaXNh
YmxlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQzE0OUQ1NjcyNDJFQjg0QTAwM0VCQjEy
IC8qIFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTUwRjlG
MTEyQjZFMEU3MDAwOEM4NjAgLyogU2xpZGVyVGh1bWJFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQk5QjUzMkVBNDFCQTkyODU3MDAzOEE4MjcgLyogU2xvdEFzc2lnbm1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTRCNkZBNkY0MEMzOUU0OEMwMDA4NzAxMSAvKiBTbWFydFJlcGxhY2UuaCBp
biBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5Miw3IEBACiAjaW5jbHVkZSAiU2Vj
dXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jv
b3QuaCIKKyNpbmNsdWRlICJTbGVlcERpc2FibGVyLmgiCiAjaW5jbHVkZSAiVGltZVJhbmdlcy5o
IgogI2luY2x1ZGUgIlVzZXJDb250ZW50Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlVzZXJHZXN0
dXJlSW5kaWNhdG9yLmgiCkBAIC05OSw3ICsxMDAsNiBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL1VpbnQ4QXJyYXkuaD4KICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8cGFsL1Nlc3Np
b25JRC5oPgotI2luY2x1ZGUgPHBhbC9zeXN0ZW0vU2xlZXBEaXNhYmxlci5oPgogI2luY2x1ZGUg
PHd0Zi9BbGdvcml0aG1zLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNp
bmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KQEAgLTY5NDYsNyArNjk0Niw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6dXBkYXRlU2xlZXBEaXNhYmwKICAgICBlbHNlIGlmIChzaG91bGREaXNhYmxl
U2xlZXAgIT0gU2xlZXBUeXBlOjpOb25lKSB7CiAgICAgICAgIGF1dG8gdHlwZSA9IHNob3VsZERp
c2FibGVTbGVlcCA9PSBTbGVlcFR5cGU6OkRpc3BsYXkgPyBQQUw6OlNsZWVwRGlzYWJsZXI6OlR5
cGU6OkRpc3BsYXkgOiBQQUw6OlNsZWVwRGlzYWJsZXI6OlR5cGU6OlN5c3RlbTsKICAgICAgICAg
aWYgKCFtX3NsZWVwRGlzYWJsZXIgfHwgbV9zbGVlcERpc2FibGVyLT50eXBlKCkgIT0gdHlwZSkK
LSAgICAgICAgICAgIG1fc2xlZXBEaXNhYmxlciA9IFBBTDo6U2xlZXBEaXNhYmxlcjo6Y3JlYXRl
KCJjb20uYXBwbGUuV2ViQ29yZTogSFRNTE1lZGlhRWxlbWVudCBwbGF5YmFjayIsIHR5cGUpOwor
ICAgICAgICAgICAgbV9zbGVlcERpc2FibGVyID0gbWFrZVVuaXF1ZTxTbGVlcERpc2FibGVyPigi
Y29tLmFwcGxlLldlYkNvcmU6IEhUTUxNZWRpYUVsZW1lbnQgcGxheWJhY2siLCB0eXBlKTsKICAg
ICB9CiAKICAgICBpZiAobV9wbGF5ZXIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuaAkocmV2aXNpb24gMjU5MDQ1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTYzLDEwICs2Myw2IEBACiAjaW5jbHVk
ZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAjZW5kaWYKIAotbmFtZXNwYWNlIFBBTCB7Ci1j
bGFzcyBTbGVlcERpc2FibGVyOwotfQotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF1
ZGlvU291cmNlUHJvdmlkZXI7CkBAIC05NCw2ICs5MCw3IEBAIGNsYXNzIE1lZGlhU3RyZWFtOwog
Y2xhc3MgUmVuZGVyTWVkaWE7CiBjbGFzcyBTY3JpcHRDb250cm9sbGVyOwogY2xhc3MgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFNsZWVwRGlzYWJsZXI7CiBjbGFzcyBTb3VyY2VCdWZm
ZXI7CiBjbGFzcyBUZXh0VHJhY2tMaXN0OwogY2xhc3MgVGltZVJhbmdlczsKQEAgLTExNjIsNyAr
MTE1OSw3IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIE1lZGlhQ29udHJvbGxlcjsKICAg
ICBSZWZQdHI8TWVkaWFDb250cm9sbGVyPiBtX21lZGlhQ29udHJvbGxlcjsKIAotICAgIHN0ZDo6
dW5pcXVlX3B0cjxQQUw6OlNsZWVwRGlzYWJsZXI+IG1fc2xlZXBEaXNhYmxlcjsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8U2xlZXBEaXNhYmxlcj4gbV9zbGVlcERpc2FibGVyOwogCiAgICAgV2Vha1B0
cjxjb25zdCBNZWRpYVJlc291cmNlTG9hZGVyPiBtX2xhc3RNZWRpYVJlc291cmNlTG9hZGVyRm9y
VGVzdGluZzsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxlci5j
cHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTbGVlcERpc2FibGVyLmgiCisKKyNpbmNsdWRlICJT
bGVlcERpc2FibGVyQ2xpZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU2xlZXBEaXNh
Ymxlcjo6U2xlZXBEaXNhYmxlcihjb25zdCBjaGFyKiByZWFzb24sIFBBTDo6U2xlZXBEaXNhYmxl
cjo6VHlwZSB0eXBlKQorICAgIDogbV90eXBlKHR5cGUpCit7CisgICAgaWYgKHNsZWVwRGlzYWJs
ZXJDbGllbnQoKSkgeworICAgICAgICBtX2lkZW50aWZpZXIgPSBTbGVlcERpc2FibGVySWRlbnRp
Zmllcjo6Z2VuZXJhdGUoKTsKKyAgICAgICAgc2xlZXBEaXNhYmxlckNsaWVudCgpLT5kaWRDcmVh
dGVTbGVlcERpc2FibGVyKG1faWRlbnRpZmllciwgcmVhc29uLCB0eXBlID09IFBBTDo6U2xlZXBE
aXNhYmxlcjo6VHlwZTo6RGlzcGxheSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBt
X3BsYXRmb3JtU2xlZXBEaXNhYmxlciA9IFBBTDo6U2xlZXBEaXNhYmxlcjo6Y3JlYXRlKHJlYXNv
biwgdHlwZSk7Cit9CisKK1NsZWVwRGlzYWJsZXI6On5TbGVlcERpc2FibGVyKCkKK3sKKyAgICBp
ZiAoc2xlZXBEaXNhYmxlckNsaWVudCgpKQorICAgICAgICBzbGVlcERpc2FibGVyQ2xpZW50KCkt
PmRpZERlc3Ryb3lTbGVlcERpc2FibGVyKG1faWRlbnRpZmllcik7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJsZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVyLmgJ
KG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxlci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgIlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyLmgiCisKKyNpbmNsdWRlIDxw
YWwvc3lzdGVtL1NsZWVwRGlzYWJsZXIuaD4KKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmll
ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNsZWVwRGlzYWJsZXIgeworICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIFNs
ZWVwRGlzYWJsZXIoY29uc3QgY2hhciosIFBBTDo6U2xlZXBEaXNhYmxlcjo6VHlwZSk7CisgICAg
V0VCQ09SRV9FWFBPUlQgflNsZWVwRGlzYWJsZXIoKTsKKworICAgIFBBTDo6U2xlZXBEaXNhYmxl
cjo6VHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisKK3ByaXZhdGU6CisgICAg
c3RkOjp1bmlxdWVfcHRyPFBBTDo6U2xlZXBEaXNhYmxlcj4gbV9wbGF0Zm9ybVNsZWVwRGlzYWJs
ZXI7CisgICAgU2xlZXBEaXNhYmxlcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFBBTDo6
U2xlZXBEaXNhYmxlcjo6VHlwZSBtX3R5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVyQ2xpZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVyQ2xpZW50
LmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERpc2Fi
bGVyQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNsZWVwRGlzYWJsZXJDbGllbnQuaCIK
KworI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3N0ZDo6dW5pcXVlX3B0cjxTbGVlcERpc2FibGVyQ2xpZW50PiYgc2xlZXBEaXNhYmxlckNs
aWVudCgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6dW5pcXVlX3B0cjxTbGVl
cERpc2FibGVyQ2xpZW50Pj4gY2xpZW50OworICAgIHJldHVybiBjbGllbnQuZ2V0KCk7Cit9CisK
K30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJsZXJDbGllbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVyQ2xpZW50
LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxl
ckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNs
ZWVwRGlzYWJsZXJJZGVudGlmaWVyLmgiCisKKyNpbmNsdWRlIDxwYWwvc3lzdGVtL1NsZWVwRGlz
YWJsZXIuaD4KKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNsZWVw
RGlzYWJsZXJDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgflNsZWVwRGlzYWJsZXJDbGll
bnQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlU2xlZXBEaXNhYmxlcihTbGVlcERp
c2FibGVySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiByZWFzb24sIGJvb2wgZGlzcGxheSkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBkaWREZXN0cm95U2xlZXBEaXNhYmxlcihTbGVlcERpc2FibGVy
SWRlbnRpZmllcikgPSAwOworfTsKKworV0VCQ09SRV9FWFBPUlQgc3RkOjp1bmlxdWVfcHRyPFNs
ZWVwRGlzYWJsZXJDbGllbnQ+JiBzbGVlcERpc2FibGVyQ2xpZW50KCk7CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJsZXJJ
ZGVudGlmaWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBE
aXNhYmxlcklkZW50aWZpZXIuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TbGVlcERpc2FibGVySWRlbnRpZmllci5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJ
ZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBTbGVlcERpc2FibGVy
SWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgU2xlZXBEaXNhYmxlcklkZW50aWZpZXIgPSBPYmpl
Y3RJZGVudGlmaWVyPFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlz
aW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTU2NSw0ICs1NTY1LDE3IEBAIFN0cmluZyBJbnRlcm5hbHM6OmZvY3Vz
UmluZ0NvbG9yKCkKICAgICByZXR1cm4gUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigpLmZvY3VzUmlu
Z0NvbG9yKG9wdGlvbnMpLmNzc1RleHQoKTsKIH0KIAordW5zaWduZWQgSW50ZXJuYWxzOjpjcmVh
dGVTbGVlcERpc2FibGVyKGNvbnN0IFN0cmluZyYgcmVhc29uLCBib29sIGRpc3BsYXkpCit7Cisg
ICAgc3RhdGljIHVuc2lnbmVkIGlkZW50aWZpZXIgPSAwOworICAgIGF1dG8gc2xlZXBEaXNhYmxl
ciA9IG1ha2VVbmlxdWU8V2ViQ29yZTo6U2xlZXBEaXNhYmxlcj4ocmVhc29uLnV0ZjgoKS5kYXRh
KCksIGRpc3BsYXkgPyBQQUw6OlNsZWVwRGlzYWJsZXI6OlR5cGU6OkRpc3BsYXkgOiBQQUw6OlNs
ZWVwRGlzYWJsZXI6OlR5cGU6OlN5c3RlbSk7CisgICAgbV9zbGVlcERpc2FibGVycy5hZGQoKytp
ZGVudGlmaWVyLCBXVEZNb3ZlKHNsZWVwRGlzYWJsZXIpKTsKKyAgICByZXR1cm4gaWRlbnRpZmll
cjsKK30KKworYm9vbCBJbnRlcm5hbHM6OmRlc3Ryb3lTbGVlcERpc2FibGVyKHVuc2lnbmVkIGlk
ZW50aWZpZXIpCit7CisgICAgcmV0dXJuIG1fc2xlZXBEaXNhYmxlcnMucmVtb3ZlKGlkZW50aWZp
ZXIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmgJKHJldmlzaW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJP
cmllbnRhdGlvbk5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUNvbnNvbGVDbGllbnQuaCIKICNp
bmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgiCisjaW5jbHVkZSAiU2xlZXBEaXNhYmxlci5o
IgogI2luY2x1ZGUgIlRleHRJbmRpY2F0b3IuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9G
bG9hdDMyQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KQEAgLTk2MCw2ICs5NjEs
OSBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzUmVtb3RlVUlBcHBGb3JBY2Nlc3NpYmlsaXR5KCk7
CiAKKyAgICB1bnNpZ25lZCBjcmVhdGVTbGVlcERpc2FibGVyKGNvbnN0IFN0cmluZyYgcmVhc29u
LCBib29sIGRpc3BsYXkpOworICAgIGJvb2wgZGVzdHJveVNsZWVwRGlzYWJsZXIodW5zaWduZWQg
aWRlbnRpZmllcik7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50
Jik7CiAgICAgRG9jdW1lbnQqIGNvbnRleHREb2N1bWVudCgpIGNvbnN0OwpAQCAtOTgxLDYgKzk4
NSw4IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yU3R1YkZyb250
ZW5kPiBtX2luc3BlY3RvckZyb250ZW5kOwogICAgIFJlZlB0cjxDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uPiBtX2NhY2hlU3RvcmFnZUNvbm5lY3Rpb247CisKKyAgICBIYXNoTWFwPHVuc2lnbmVkLCBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U2xlZXBEaXNhYmxlcj4+IG1fc2xlZXBEaXNhYmxlcnM7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsCShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTg2Miw0ICs4NjIsNyBAQCBlbnVtIENv
bXBvc2l0aW5nUG9saWN5IHsKICAgICBib29sZWFuIHN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgp
OwogCiAgICAgYm9vbGVhbiBpc1JlbW90ZVVJQXBwRm9yQWNjZXNzaWJpbGl0eSgpOworCisgICAg
dW5zaWduZWQgbG9uZyBjcmVhdGVTbGVlcERpc2FibGVyKERPTVN0cmluZyByZWFzb24sIGJvb2xl
YW4gZGlzcGxheSk7CisgICAgYm9vbGVhbiBkZXN0cm95U2xlZXBEaXNhYmxlcih1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIpOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTkxNTgpCisrKyBT
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisy
MDIwLTAzLTI4ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAg
ICBbQ29jb2FdIFNsZWVwIGRpc2FibGluZyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBw
cm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDk2NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
aW5jZSBzbGVlcCBkaXNhYmxpbmcgaXMgY2F1c2luZyBjb21tdW5pY2F0aW9uIHdpdGggdGhlIHBv
d2VyIG1hbmFnZW1lbnQgc2VydmljZSwgaXQgc2hvdWxkIGJlIHBlcmZvcm1lZCBpbiB0aGUgVUkg
cHJvY2Vzcy4KKyAgICAgICAgVGhlIFVJIHByb2Nlc3Mgd2lsbCBiZSBub3RpZmllZCBieSB0aGUg
V2ViQ29udGVudCBwcm9jZXNzIGFib3V0IHNsZWVwIGRpc2FibGVycyBiZWluZyBjcmVhdGVkIGFu
ZCBkZXN0cm95ZWQsIGFuZCB3aWxsIHBlcmZvcm0KKyAgICAgICAgdGhlIGFjdHVhbCBzbGVlcCBk
aXNhYmxpbmcgYW5kIGVuYWJsaW5nLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9oYXNT
bGVlcERpc2FibGVyXSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlU2xlZXBEaXNhYmxl
cik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkRGVzdHJveVNsZWVwRGlz
YWJsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Omhhc1NsZWVwRGlzYWJs
ZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUxlZ2FjeUNETS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvaW9z
L1JlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvaW9zL1JlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlci5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9WaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmNwcDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlNsZWVwRGlzYWJsZXJDbGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViU2xlZXBEaXNhYmxlckNsaWVudDo6ZGlkQ3JlYXRlU2xlZXBEaXNhYmxlcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNsZWVwRGlzYWJsZXJDbGllbnQ6OmRpZERlc3Ryb3lTbGVlcERp
c2FibGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlNsZWVwRGlzYWJsZXJDbGllbnQuaDog
QWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3Mp
OgorCiAyMDIwLTAzLTI3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgog
CiAgICAgICAgIFdlYiBjb250ZW50IHByb2Nlc3NlcyBzaG91bGQgbm90IGJlIGFibGUgdG8gYXJi
aXRyYXJpbHkgcmVxdWVzdCBwYXN0ZWJvYXJkIGRhdGEgZnJvbSB0aGUgVUkgcHJvY2VzcwpJbmRl
eDogU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViS2l0L1NvdXJjZXMu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC00NzgsNiArNDc4LDcgQEAgVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmVDbwogCiBXZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJv
Y2Vzcy5jcHAKIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKK1dlYlByb2Nlc3MvV2ViU2xlZXBE
aXNhYmxlckNsaWVudC5jcHAKIAogLy8gRklYTUUoMjA2MjY2KTogQXV0b21hdGlvblByb3RvY29s
T2JqZWN0cy5oJ3MgIm5hbWVzcGFjZSBQcm90b2NvbCIgY29uZmxpY3RzIHdpdGggb2JqYy9ydW50
aW1lLmgncyAidHlwZWRlZiBzdHJ1Y3Qgb2JqY19vYmplY3QgUHJvdG9jb2wiCiBXZWJQcm9jZXNz
L0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5jcHAgQG5vLXVuaWZ5CkluZGV4
OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkJKHJldmlzaW9uIDI1OTA0
NSkKKysrIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkJKHdvcmtpbmcg
Y29weSkKQEAgLTIyMiw2ICsyMjIsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2Fy
ZF9kZWNsYXJlCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhJywK
ICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXInLAogICAg
ICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXInLAorICAg
ICAgICAnV2ViQ29yZTo6U2xlZXBEaXNhYmxlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29y
ZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OkFjdGl2
aXR5U3RhdGVDaGFuZ2VJRCcsCiAgICAgICAgICdXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVySWRlbnRpZmllcicsCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAJKHJldmlzaW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3ODEsNiArMTc4
MSwyMiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlQ29udGV4dEluCiB9CiAjZW5k
aWYKIAordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZENyZWF0ZVNsZWVwRGlzYWJsZXIoU2xlZXBE
aXNhYmxlcklkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiByZWFzb24sIGJvb2wg
ZGlzcGxheSkKK3sKKyAgICBhdXRvIHNsZWVwRGlzYWJsZXIgPSBtYWtlVW5pcXVlPFdlYkNvcmU6
OlNsZWVwRGlzYWJsZXI+KHJlYXNvbi51dGY4KCkuZGF0YSgpLCBkaXNwbGF5ID8gUEFMOjpTbGVl
cERpc2FibGVyOjpUeXBlOjpEaXNwbGF5IDogUEFMOjpTbGVlcERpc2FibGVyOjpUeXBlOjpTeXN0
ZW0pOworICAgIG1fc2xlZXBEaXNhYmxlcnMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUoc2xlZXBE
aXNhYmxlcikpOworfQorCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRGVzdHJveVNsZWVwRGlz
YWJsZXIoU2xlZXBEaXNhYmxlcklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBtX3NsZWVw
RGlzYWJsZXJzLnJlbW92ZShpZGVudGlmaWVyKTsKK30KKworYm9vbCBXZWJQcm9jZXNzUHJveHk6
Omhhc1NsZWVwRGlzYWJsZXIoKQoreworICAgIHJldHVybiBtX3NsZWVwRGlzYWJsZXJzLnNpemUo
KSA+IDA7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgTUVTU0FHRV9DSEVD
SwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgJKHJldmlz
aW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
CSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9j
ZXNzSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZFN0cmluZ0hhc2guaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1NsZWVwRGlzYWJsZXIuaD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8cGFsL1Nlc3Np
b25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0zNzgsNiArMzc5LDggQEAgcHVi
bGljOgogICAgIHZvaWQgZ3B1UHJvY2Vzc0NyYXNoZWQoKTsKICNlbmRpZgogCisgICAgYm9vbCBo
YXNTbGVlcERpc2FibGVyKCk7CisKIHByb3RlY3RlZDoKICAgICBXZWJQcm9jZXNzUHJveHkoV2Vi
UHJvY2Vzc1Bvb2wmLCBXZWJzaXRlRGF0YVN0b3JlKiwgSXNQcmV3YXJtZWQpOwogCkBAIC00NzUs
NiArNDc4LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNlbmRNZXNzYWdlVG9XZWJDb250ZXh0V2l0
aFJlcGx5KFVzZXJNZXNzYWdlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVXNlck1lc3NhZ2Um
Jik+JiYpOwogI2VuZGlmCiAKKyAgICB2b2lkIGRpZENyZWF0ZVNsZWVwRGlzYWJsZXIoV2ViQ29y
ZTo6U2xlZXBEaXNhYmxlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBib29sIGRp
c3BsYXkpOworICAgIHZvaWQgZGlkRGVzdHJveVNsZWVwRGlzYWJsZXIoV2ViQ29yZTo6U2xlZXBE
aXNhYmxlcklkZW50aWZpZXIpOworCiAgICAgZW51bSBjbGFzcyBJc1dlYWsgeyBObywgWWVzIH07
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgV2Vha09yU3Ryb25nUHRyIHsKICAgICBw
dWJsaWM6CkBAIC01ODAsNiArNTg2LDggQEAgcHJpdmF0ZToKICAgICAgICAgV2Vha0hhc2hTZXQ8
V2ViUHJvY2Vzc1Byb3h5PiBjbGllbnRQcm9jZXNzZXM7CiAgICAgfTsKICAgICBPcHRpb25hbDxT
ZXJ2aWNlV29ya2VySW5mb3JtYXRpb24+IG1fc2VydmljZVdvcmtlckluZm9ybWF0aW9uOworCisg
ICAgSGFzaE1hcDxXZWJDb3JlOjpTbGVlcERpc2FibGVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlNsZWVwRGlzYWJsZXI+PiBtX3NsZWVwRGlzYWJsZXJzOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcg
Y29weSkKQEAgLTgwLDQgKzgwLDcgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5IExlZ2Fj
eVJlY2VpdgogICAgIFNlbmRNZXNzYWdlVG9XZWJDb250ZXh0KHN0cnVjdCBXZWJLaXQ6OlVzZXJN
ZXNzYWdlIHVzZXJNZXNzYWdlKQogICAgIFNlbmRNZXNzYWdlVG9XZWJDb250ZXh0V2l0aFJlcGx5
KHN0cnVjdCBXZWJLaXQ6OlVzZXJNZXNzYWdlIHVzZXJNZXNzYWdlKSAtPiAoc3RydWN0IFdlYktp
dDo6VXNlck1lc3NhZ2UgcmVwbHlNZXNzYWdlKSBBc3luYwogI2VuZGlmCisKKyAgICBEaWRDcmVh
dGVTbGVlcERpc2FibGVyKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFN0cmluZyByZWFzb24sIGJvb2wgZGlzcGxheSkKKyAgICBEaWREZXN0cm95U2xlZXBEaXNh
YmxlcihXZWJDb3JlOjpTbGVlcERpc2FibGVySWRlbnRpZmllciBpZGVudGlmaWVyKQogfQpJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JU
ZXN0aW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmgJKHJldmlzaW9uIDI1OTA0NSkKKysrIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5o
CSh3b3JraW5nIGNvcHkpCkBAIC02NCw0ICs2NCw1IEBACiArICh2b2lkKV9zZXRBcHBsaWNhdGlv
bkJ1bmRsZUlkZW50aWZpZXI6KE5TU3RyaW5nICopYnVuZGxlSWRlbnRpZmllcjsKICsgKHZvaWQp
X2NsZWFyQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyVGVzdGluZ092ZXJyaWRlOwogCistIChC
T09MKV9oYXNTbGVlcERpc2FibGVyOwogQGVuZApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0JKHJldmlzaW9uIDI1
OTA0NSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0
aW5nLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMjAsNCArMjIwLDkgQEAgKyAodm9pZClfY2xlYXJB
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZQogICAgIFdlYkNvcmU6OmNsZWFyQXBwbGljYXRpb25C
dW5kbGVJZGVudGlmaWVyVGVzdGluZ092ZXJyaWRlKCk7CiB9CiAKKy0gKEJPT0wpX2hhc1NsZWVw
RGlzYWJsZXIKK3sKKyAgICByZXR1cm4gX3BhZ2UgPyBfcGFnZS0+cHJvY2VzcygpLmhhc1NsZWVw
RGlzYWJsZXIoKSA6IGZhbHNlOworfQorCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1OTA0NSkKKysrIFNv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTQ5ODMsNiArNDk4Myw4IEBACiAJCUMxODE3MzVFMjA1ODM5RjYwMERGREE2NSAvKiBE
cmF3aW5nQXJlYU1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEcmF3aW5nQXJlYU1hYy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxODE3MzYwMjA1ODQyNDcwMERGREE2NSAv
KiBEaXNwbGF5TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5TGluay5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDMTgxNzM2MjIwNTg0NEE5MDBERkRBNjUgLyogRGlzcGxheUxp
bmsuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGlzcGxheUxpbmsuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDMThGQjUxRDI0MkY5Rjc2MDA3RTk4NzUgLyogV2ViU2xlZXBEaXNh
YmxlckNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJT
bGVlcERpc2FibGVyQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzE4
RkI1MUUyNDJGOUY3NzAwN0U5ODc1IC8qIFdlYlNsZWVwRGlzYWJsZXJDbGllbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2xlZXBEaXNhYmxlckNsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMUUxMjNCOTIwQTExNTcyMDAyNjQ2RjQgLyogUERG
Q29udGV4dE1lbnUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUERGQ29udGV4
dE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzUxNzM4ODAxMkRGOEY0RjAw
RUUzRjQ3IC8qIERyYWdDb250cm9sbGVyQWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERyYWdDb250cm9sbGVyQWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUM1MjM3RjVGMTI0NDFDQTMwMDc4MDQ3MiAvKiBXZWJFZGl0b3JDbGllbnRNYWMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJFZGl0b3JDbGllbnRN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04NzAxLDYgKzg3MDMsOCBAQAog
CQkJCUJDMDMyRDkxMTBGNDM3QUYwMDU4QzE1QSAvKiBXZWJQcm9jZXNzLmggKi8sCiAJCQkJQkMz
MDY2QjkxMjVBNDM2MzAwRTcxMjc4IC8qIFdlYlByb2Nlc3MubWVzc2FnZXMuaW4gKi8sCiAJCQkJ
QkNFMEU0MjQxNjhCN0EyODAwNTdFNjZBIC8qIFdlYlByb2Nlc3NTdXBwbGVtZW50LmggKi8sCisJ
CQkJQzE4RkI1MUQyNDJGOUY3NjAwN0U5ODc1IC8qIFdlYlNsZWVwRGlzYWJsZXJDbGllbnQuY3Bw
ICovLAorCQkJCUMxOEZCNTFFMjQyRjlGNzcwMDdFOTg3NSAvKiBXZWJTbGVlcERpc2FibGVyQ2xp
ZW50LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IFdlYlByb2Nlc3M7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlNsZWVwRGlzYWJs
ZXJDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJT
bGVlcERpc2FibGVyQ2xpZW50LmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViU2xlZXBEaXNhYmxlckNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw0NCBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCisqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJTbGVlcERpc2FibGVyQ2xpZW50LmgiCisK
KyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2Fn
ZXMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViU2xlZXBEaXNhYmxlckNsaWVu
dDo6ZGlkQ3JlYXRlU2xlZXBEaXNhYmxlcihTbGVlcERpc2FibGVySWRlbnRpZmllciBpZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIHJlYXNvbiwgYm9vbCBkaXNwbGF5KQoreworICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
OldlYlByb2Nlc3NQcm94eTo6RGlkQ3JlYXRlU2xlZXBEaXNhYmxlcihpZGVudGlmaWVyLCByZWFz
b24sIGRpc3BsYXkpLCAwKTsKK30KKwordm9pZCBXZWJTbGVlcERpc2FibGVyQ2xpZW50OjpkaWRE
ZXN0cm95U2xlZXBEaXNhYmxlcihTbGVlcERpc2FibGVySWRlbnRpZmllciBpZGVudGlmaWVyKQor
eworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6RGlkRGVzdHJveVNsZWVwRGlzYWJsZXIo
aWRlbnRpZmllciksIDApOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTbGVlcERpc2FibGVyQ2xpZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlNsZWVwRGlzYWJsZXJDbGllbnQuaAkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU2xlZXBEaXNhYmxlckNs
aWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNv
cmUvU2xlZXBEaXNhYmxlckNsaWVudC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
V2ViU2xlZXBEaXNhYmxlckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpTbGVlcERpc2FibGVyQ2xp
ZW50IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB2b2lkIGRp
ZENyZWF0ZVNsZWVwRGlzYWJsZXIoU2xlZXBEaXNhYmxlcklkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYsIGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkRGVzdHJveVNsZWVwRGlzYWJsZXIoU2xl
ZXBEaXNhYmxlcklkZW50aWZpZXIpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2Fj
eUNETS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVMZWdhY3lDRE0uY3BwCShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2FjeUNETS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKExF
R0FDWV9FTkNSWVBURURfTUVESUEpCiAKKyNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5o
IgorCiAjaW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeS5oIgogI2luY2x1ZGUgIlJlbW90
ZUxlZ2FjeUNETVByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1TZXNz
aW9uLmgiCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2lvcy9SZW1v
dGVNZWRpYVNlc3Npb25IZWxwZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvaW9zL1JlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlci5jcHAJKHJldmlz
aW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvaW9zL1Jl
bW90ZU1lZGlhU2Vzc2lvbkhlbHBlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDgg
QEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNp
bmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
c01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRl
ICJSZW1vdGVNZWRpYVNlc3Npb25IZWxwZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5YmFja1RhcmdldENvY29hLmg+
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2lvcy9SZW1vdGVNZWRp
YVNlc3Npb25IZWxwZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL2lvcy9SZW1vdGVNZWRpYVNlc3Npb25IZWxwZXIuaAkocmV2aXNpb24gMjU5MDQ1
KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFT
ZXNzaW9uSGVscGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNpbmNsdWRlICJNZXNz
YWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWJhY2tUYXJnZXRDb250
ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlc3Npb25IZWxwZXJJT1MuaD4KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9W
aWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmNwcAko
cmV2aXNpb24gMjU5MDQ1KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmll
d0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9IaXRUZXN0UmVzdWx0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFn
ZURvY3VtZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SYW5nZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVuZGVyVmlldy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEl0ZXJhdG9yLmg+CiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2Nv
YS5tbQkocmV2aXNpb24gMjU5MDQ1KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQAogI2lt
cG9ydCAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vz
c0RhdGFTdG9yZVBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2Vz
LmgiCisjaW1wb3J0ICJXZWJTbGVlcERpc2FibGVyQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJzaXRl
RGF0YVN0b3JlUGFyYW1ldGVycy5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvQ29uZmlnRmls
ZS5oPgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvT3B0aW9ucy5oPgpAQCAtNjMsMTAgKzY0LDEy
IEBACiAjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdlYkNv
cmUvTWVtb3J5UmVsZWFzZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9OU1Njcm9sbGVySW1wRGV0YWls
cy5oPgorI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oPgog
I2ltcG9ydCA8V2ViQ29yZS9QZXJmb3JtYW5jZUxvZ2dpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUv
UGljdHVyZUluUGljdHVyZVN1cHBvcnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NXQ29udGV4dE1hbmFnZXIuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvU3lzdGVtQmF0dGVyeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9VVElVdGls
aXRpZXMuaD4KICNpbXBvcnQgPGFsZ29yaXRobT4KICNpbXBvcnQgPGRpc3BhdGNoL2Rpc3BhdGNo
Lmg+CkBAIC0xMzEsMTEgKzEzNCw2IEBACiAjaW1wb3J0IDxvcy9zdGF0ZV9wcml2YXRlLmg+CiAj
ZW5kaWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKQotI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrRXh0
ZW5zaW9uQ29udGVudEZpbHRlci5oPgotI2ltcG9ydCA8V2ViQ29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+
Ci0jZW5kaWYKLQogI2lmIEhBVkUoQ1NDSEVDS0ZJWERJU0FCTEUpCiBleHRlcm4gIkMiIHZvaWQg
X0NTQ2hlY2tGaXhEaXNhYmxlKCk7CiAjZW5kaWYKQEAgLTMxOCw2ICszMTYsOCBAQCB2b2lkIFdl
YlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByCiAgICAgICAgIHNldFZlY3Rvck9mVVRU
eXBlSXRlbShXVEZNb3ZlKHBhcmFtZXRlcnMudmVjdG9yT2ZVVFR5cGVJdGVtKSk7CiAgICAgfQog
I2VuZGlmCisKKyAgICBXZWJDb3JlOjpzbGVlcERpc2FibGVyQ2xpZW50KCkgPSBtYWtlVW5pcXVl
PFdlYlNsZWVwRGlzYWJsZXJDbGllbnQ+KCk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZv
cm1TZXRXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyhXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1l
dGVycyYmIHBhcmFtZXRlcnMpCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTkxNTgpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0wMy0yOCAgUGVyIEFybmUgVm9sbGFu
ICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBTbGVlcCBkaXNhYmxpbmcg
c2hvdWxkIGJlIHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5Njc2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9TbGVlcERpc2FibGVyLm1tOiBBZGRlZC4KKyAgICAgICAgKFRFU1QpOgorCiAy
MDIwLTAzLTI4ICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBbR1RLXSBObyBsaWJzeXN0ZW1kLWRldmVsIGZvciBETkYKSW5kZXg6IFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCShyZXZpc2lvbiAyNTkwNDUpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtODgzLDYg
Kzg4Myw3IEBACiAJCUMwQzVEM0M2MTQ1OTkxMjkwMEE4MDJBNiAvKiBHZXRCYWNraW5nU2NhbGVG
YWN0b3JfQnVuZGxlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzBDNUQzQkQxNDU5OEI2RjAwQTgwMkE2IC8qIEdldEJhY2tpbmdTY2FsZUZhY3Rvcl9C
dW5kbGUubW0gKi87IH07CiAJCUMxM0Q4MkQ5MjQxNkYxMzIwMEE2Mjc5MyAvKiBFbmFibGVBY2Nl
c3NpYmlsaXR5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzEzRDgyRDgyNDE2RjEzMjAwQTYyNzkzIC8qIEVuYWJsZUFjY2Vzc2liaWxpdHkubW0gKi87
IH07CiAJCUMxNDVDQzBDMjNEQTVBMUYwMDNBNUVFQiAvKiBNaW1lVHlwZXMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTQ1Q0MwQjIzREE1QTBGMDAz
QTVFRUIgLyogTWltZVR5cGVzLm1tICovOyB9OworCQlDMTQ5RDU1MDI0MkU5OERGMDAzRUJCMTIg
LyogU2xlZXBEaXNhYmxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEMxNDlENTRGMjQyRTk4NDQwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyLm1tICov
OyB9OwogCQlDMTVDQkIzMDIzRjFGRjFBMDAzMDBDQzcgLyogQmFja2xpZ2h0TGV2ZWxOb3RpZmlj
YXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
MTVDQkIyRjIzRjFGRjFBMDAzMDBDQzcgLyogQmFja2xpZ2h0TGV2ZWxOb3RpZmljYXRpb24ubW0g
Ki87IH07CiAJCUMxNUNCQjNGMjNGQjE3N0EwMDMwMENDNyAvKiBQcmVmZXJlbmNlQ2hhbmdlcy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNUNCQjNF
MjNGQjE3N0EwMDMwMENDNyAvKiBQcmVmZXJlbmNlQ2hhbmdlcy5tbSAqLzsgfTsKIAkJQzE2OTJE
Q0EyM0QxMERBRTAwNkU4OEY3IC8qIEJhdHRlcnkubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTY5MkRDOTIzRDEwREFFMDA2RTg4RjcgLyogQmF0dGVy
eS5tbSAqLzsgfTsKQEAgLTI0NTgsNiArMjQ1OSw3IEBACiAJCUMwQzVEM0JEMTQ1OThCNkYwMEE4
MDJBNiAvKiBHZXRCYWNraW5nU2NhbGVGYWN0b3JfQnVuZGxlLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gR2V0QmFja2luZ1NjYWxlRmFjdG9yX0J1bmRsZS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzEzRDgyRDgyNDE2RjEzMjAwQTYyNzkzIC8q
IEVuYWJsZUFjY2Vzc2liaWxpdHkubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBFbmFibGVBY2Nl
c3NpYmlsaXR5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTQ1Q0MwQjIzREE1
QTBGMDAzQTVFRUIgLyogTWltZVR5cGVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gTWltZVR5cGVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
MTQ5RDU0RjI0MkU5ODQ0MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlci5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNsZWVwRGlzYWJsZXIubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUMxNUNCQjJGMjNGMUZGMUEwMDMwMENDNyAvKiBCYWNrbGlnaHRM
ZXZlbE5vdGlmaWNhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEJhY2tsaWdodExldmVs
Tm90aWZpY2F0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTVDQkIzRTIz
RkIxNzdBMDAzMDBDQzcgLyogUHJlZmVyZW5jZUNoYW5nZXMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcmVmZXJlbmNlQ2hhbmdlcy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQzE2OTJEQzkyM0QxMERBRTAwNkU4OEY3IC8qIEJhdHRlcnkubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBCYXR0ZXJ5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjkyMSw2ICsyOTIzLDcgQEAKIAkJCQlDMTQ1Q0MwQjIzREE1QTBGMDAzQTVFRUIg
LyogTWltZVR5cGVzLm1tICovLAogCQkJCUUzMjVDOTA2MjNFMzg3MDIwMEJDN0QzQiAvKiBQaWN0
dXJlSW5QaWN0dXJlU3VwcG9ydC5tbSAqLywKIAkJCQlDMTVDQkIzRTIzRkIxNzdBMDAzMDBDQzcg
LyogUHJlZmVyZW5jZUNoYW5nZXMubW0gKi8sCisJCQkJQzE0OUQ1NEYyNDJFOTg0NDAwM0VCQjEy
IC8qIFNsZWVwRGlzYWJsZXIubW0gKi8sCiAJCQkJQzE5NEUzMUMyNDA5REY0MzAwMjkzOUVEIC8q
IFVUSUZyb21NSU1FVHlwZS5tbSAqLywKIAkJCQlFM0NBQUE0QjI0MTU1MDUxMDBDRUQyRTIgLyog
VVRJRnJvbVRhZy5tbSAqLywKIAkJCQkwRjEzOUU3NTFBNDIzQTUzMDBGNTkwRjUgLyogV2Vha09i
akNQdHIubW0gKi8sCkBAIC01MDU4LDYgKzUwNjEsNyBAQAogCQkJCTM3QkNBNjFDMUI1OTZCQTkw
MDIwMTJDQSAvKiBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzSW5OZXdXaW5kb3dBY3Rpb25zLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0M4M0UwQzUxRDBBNjU0NjAwRkVCQ0YzIC8qIFNocmlua1RvRml0
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQ0QxQTQxMUE3RTAwNDQ3QzRDIC8qIFNpbXBs
aWZ5TWFya3VwLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQzE0OUQ1NTAyNDJFOThERjAwM0VCQjEy
IC8qIFNsZWVwRGlzYWJsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkyREZGN0I2RDFEQTQ4N0FG
MDA4MTQ2MTQgLyogU25hcHNob3RTdG9yZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBGNEZGQTlF
MUVEM0FBODUwMEY3MTExRiAvKiBTbmFwc2hvdFZpYVJlbmRlckluQ29udGV4dC5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTdDQ0U3RjE1MUE0MTFBRTYwMDQ0N0M0QyAvKiBTcGFjZWJhclNjcm9sbGlu
Zy5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L1NsZWVwRGlzYWJsZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvU2xlZXBEaXNhYmxlci5tbQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TbGVlcERpc2FibGVyLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBX
S19IQVZFX0NfU1BJCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJU
ZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3Rp
bmcuaD4KKyNpbXBvcnQgPHd0Zi9UaHJlYWRpbmcuaD4KKworVEVTVChXZWJLaXQsIFNsZWVwRGlz
YWJsZXIpCit7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+
IGNvbnRleHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJ
bmplY3RlZEJ1bmRsZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsKKyAgICBj
b25maWd1cmF0aW9uLmdldCgpLnByb2Nlc3NQb29sID0gKFdLUHJvY2Vzc1Bvb2wgKiljb250ZXh0
LmdldCgpOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKKworICAgIEFTU0VSVF9GQUxT
RShbd2ViVmlldyBfaGFzU2xlZXBEaXNhYmxlcl0pOworCisgICAgYXV0byBjcmVhdGVTbGVlcERp
c2FibGVyID0gWyZdIHsKKyAgICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGlu
Z0phdmFTY3JpcHQ6QCJ3aW5kb3cuaW50ZXJuYWxzLmNyZWF0ZVNsZWVwRGlzYWJsZXIoXCJUZXN0
RGlzYWJsZXJcIiwgdHJ1ZSkiXS5sb25nTG9uZ1ZhbHVlOworICAgIH07CisKKyAgICBhdXRvIGlk
ZW50aWZpZXIgPSBjcmVhdGVTbGVlcERpc2FibGVyKCk7CisKKyAgICBBU1NFUlRfTkUoaWRlbnRp
ZmllciwgMCk7CisKKyAgICBBU1NFUlRfVFJVRShbd2ViVmlldyBfaGFzU2xlZXBEaXNhYmxlcl0p
OworCisgICAgYXV0byBkZXN0cm95U2xlZXBEaXNhYmxlciA9IFsmXSB7CisgICAgICAgIE5TU3Ry
aW5nICpqcyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAid2luZG93LmludGVybmFscy5k
ZXN0cm95U2xlZXBEaXNhYmxlciglbGxkKSIsIGlkZW50aWZpZXJdOworICAgICAgICByZXR1cm4g
W3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpqc107CisgICAgfTsKKworICAg
IEFTU0VSVF9UUlVFKGRlc3Ryb3lTbGVlcERpc2FibGVyKCkpOworCisgICAgQVNTRVJUX0ZBTFNF
KFt3ZWJWaWV3IF9oYXNTbGVlcERpc2FibGVyXSk7Cit9CisKKyNlbmRpZiAvLyBXS19IQVZFX0Nf
U1BJCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394824</attachid>
            <date>2020-03-28 09:48:53 -0700</date>
            <delta_ts>2020-03-28 16:49:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209676-20200328094852.patch</filename>
            <type>text/plain</type>
            <size>49025</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTE1OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDIwLTAzLTI4ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFNsZWVwIGRp
c2FibGluZyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW5jZSBzbGVlcCBkaXNhYmxp
bmcgaXMgY2F1c2luZyBjb21tdW5pY2F0aW9uIHdpdGggdGhlIHBvd2VyIG1hbmFnZW1lbnQgc2Vy
dmljZSwgaXQgc2hvdWxkIGJlIHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAg
VGhpcyBwYXRjaCBmaXhlcyB0aGlzIGJ5IGNyZWF0aW5nIGEgc2xlZXAgZGlzYWJsZXIgY2xpZW50
LCB3aGljaCB3aWxsIG5vdGlmeSB0aGUgVUkgcHJvY2VzcyB3aGVuIGEgc2xlZXAgZGlzYWJsZXIg
aXMgYmVpbmcKKyAgICAgICAgY3JlYXRlZCBhbmQgZGVzdHJveWVkLiBJbiByZXNwb25zZSB0byB0
aGVzZSBtZXNzYWdlcywgdGhlIFVJIHByb2Nlc3Mgd2lsbCBwZXJmb3JtIHRoZSBhY3R1YWwgc2xl
ZXAgZGlzYWJsaW5nIGFuZCBlbmFibGluZy4KKyAgICAgICAgQSBuZXcgc2xlZXAgZGlzYWJsZXIg
Y2xhc3MgaXMgY3JlYXRlZCB3aGljaCB3cmFwcyB0aGUgUEFMIHNsZWVwIGRpc2FibGVyLCBhbmQg
bm90aWZpZXMgdGhlIHNsZWVwIGRpc2FibGVyIGNsaWVudCB3aGVuIHNldC4KKyAgICAgICAgSWYg
dGhlIHNsZWVwIGRpc2FibGVyIGNsaWVudCBpcyBzZXQsIGEgUEFMIHNsZWVwIGRpc2FibGVyIGlu
c3RhbmNlIHdpbGwgbm90IGJlIGNyZWF0ZWQgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcywgc2lu
Y2UgdGhpcworICAgICAgICB3aWxsIHRoZW4gaGFwcGVuIGluIHRoZSBVSSBwcm9jZXNzLgorCisg
ICAgICAgIEFQSSB0ZXN0OiBXZWJLaXQuU2xlZXBEaXNhYmxlcgorCisgICAgICAgICogSGVhZGVy
cy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZVNsZWVwRGlzYWJs
aW5nKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9TbGVlcERpc2FibGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTbGVlcERp
c2FibGVyOjpTbGVlcERpc2FibGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXI6
On5TbGVlcERpc2FibGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TbGVlcERpc2FibGVyLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6U2xlZXBEaXNhYmxlcjo6dHlwZSBjb25zdCk6CisgICAg
ICAgICogcGxhdGZvcm0vU2xlZXBEaXNhYmxlckNsaWVudC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6c2xlZXBEaXNhYmxlckNsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vU2xlZXBE
aXNhYmxlckNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJD
bGllbnQ6On5TbGVlcERpc2FibGVyQ2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TbGVlcERp
c2FibGVySWRlbnRpZmllci5oOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmNyZWF0ZVNsZWVwRGlzYWJsZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpkZXN0cm95U2xlZXBEaXNhYmxlcik6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5p
ZGw6CisKIDIwMjAtMDMtMjggIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAg
ICAgICAgIE51bGxwdHIgY3Jhc2ggaW4gSW5saW5lVGV4dEJveDo6ZW1waGFzaXNNYXJrRXhpc3Rz
QW5kSXNBYm92ZQpJbmRleDogU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCShyZXZpc2lvbiAyNTkwNDUpCisrKyBT
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xMDA3LDYgKzEw
MDcsOSBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZv
cm0vU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmgKICAgICBwbGF0Zm9ybS9TaGFyZWRC
dWZmZXIuaAogICAgIHBsYXRmb3JtL1NoYXJlZFN0cmluZ0hhc2guaAorICAgIHBsYXRmb3JtL1Ns
ZWVwRGlzYWJsZXIuaAorICAgIHBsYXRmb3JtL1NsZWVwRGlzYWJsZXJDbGllbnQuaAorICAgIHBs
YXRmb3JtL1NsZWVwRGlzYWJsZXJJZGVudGlmaWVyLmgKICAgICBwbGF0Zm9ybS9TdWRkZW5UZXJt
aW5hdGlvbi5oCiAgICAgcGxhdGZvcm0vU3VwcGxlbWVudGFibGUuaAogICAgIHBsYXRmb3JtL1Ro
ZW1lVHlwZXMuaApJbmRleDogU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQJKHJldmlzaW9uIDI1OTA0NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNzk4LDYgKzE3OTgsOCBA
QCBwbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmNwcAogcGxhdGZvcm0vU2hhcmVk
QnVmZmVyLmNwcAogcGxhdGZvcm0vU2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIuY3BwCiBwbGF0Zm9y
bS9TaGFyZWRTdHJpbmdIYXNoLmNwcAorcGxhdGZvcm0vU2xlZXBEaXNhYmxlci5jcHAKK3BsYXRm
b3JtL1NsZWVwRGlzYWJsZXJDbGllbnQuY3BwCiBwbGF0Zm9ybS9TdGF0aWNQYXN0ZWJvYXJkLmNw
cAogcGxhdGZvcm0vVGhlbWUuY3BwCiBwbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcApJbmRl
eDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkocmV2aXNpb24gMjU5MDQ1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zOTg2LDYgKzM5ODYsOSBAQAogCQlD
MTA1REE2NDBGM0FBNkI4MDAxREQ0NEYgLyogVGV4dEVuY29kaW5nRGV0ZWN0b3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxMDVEQTYzMEYzQUE2Qjgw
MDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3Rvci5oICovOyB9OwogCQlDMTFBOUVDRTIxNDAz
QTVDMDBDRkIyMEEgLyogU3dpdGNoaW5nR1BVQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTFBOUVDRDIxNDAzQTVDMDBDRkIyMEEgLyogU3dp
dGNoaW5nR1BVQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQzE0OTM4MDcyMjM0NTUxQTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0Ns
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE0
OTM4MDUyMjM0MjcxOTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUMxNDlENTVEMjQyRUE2
QjkwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMTQ5RDU1QTI0MkVBNEY5MDAzRUJCMTIgLyogU2xlZXBEaXNh
Ymxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CUMxNDlENTVGMjQyRUE3QjgwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyQ2xpZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTQ5RDU1QjI0MkVBNEZB
MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUMxNDlENTY3MjQyRUI4NEEwMDNFQkIxMiAvKiBT
bGVlcERpc2FibGVySWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzE0OUQ1NjUyNDJFQjc2NTAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXJJ
ZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQzE2OTJERDIyM0QyM0FCRDAwNkU4OEY3IC8qIFN5c3RlbUJhdHRlcnkubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTY5MkREMTIzRDIzQUJE
MDA2RTg4RjcgLyogU3lzdGVtQmF0dGVyeS5tbSAqLzsgfTsKIAkJQzE2OTJERDUyM0QyM0UwODAw
NkU4OEY3IC8qIFN5c3RlbUJhdHRlcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEMxNjkyREQ0MjNEMjNBRTAwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzFF
MUQyMzYyMDNERjE1NDAwNTg0NjY1IC8qIFNjcmVlblByb3BlcnRpZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxRTFEMjM1MjAzREYxNTQwMDU4NDY2
NSAvKiBTY3JlZW5Qcm9wZXJ0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTEzNTgyLDggKzEzNTg1LDEzIEBACiAJCUMxMUE5RUNEMjE0MDNB
NUMwMENGQjIwQSAvKiBTd2l0Y2hpbmdHUFVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3dpdGNo
aW5nR1BVQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxMUE5RUQyMjE0
MDU3OEIwMENGQjIwQSAvKiBTd2l0Y2hpbmdHUFVDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU3dpdGNoaW5nR1BVQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QzE0OTM4MDUyMjM0MjcxOTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTcGVlY2hTeW50aGVzaXNDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQzE0OUQ1NTkyNDJFQTRGODAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2xlZXBEaXNhYmxlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMxNDlENTVBMjQyRUE0RjkwMDNFQkIxMiAvKiBT
bGVlcERpc2FibGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNsZWVwRGlz
YWJsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzE0OUQ1NUIyNDJFQTRGQTAw
M0VCQjEyIC8qIFNsZWVwRGlzYWJsZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2xlZXBEaXNhYmxlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDMTQ5RDU2NTI0MkVCNzY1MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlcklkZW50aWZpZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU2xlZXBEaXNhYmxlcklkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQzE2OTJERDEyM0QyM0FCRDAwNkU4OEY3IC8qIFN5c3RlbUJhdHRl
cnkubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTeXN0ZW1CYXR0ZXJ5Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDMTY5MkRENDIzRDIzQUUwMDA2RTg4RjcgLyogU3lzdGVtQmF0
dGVyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTeXN0ZW1CYXR0ZXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUMxOEZCNTE4MjQyRjkzODIwMDdFOTg3NSAvKiBTbGVlcERpc2FibGVyQ2xp
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNsZWVwRGlzYWJsZXJDbGllbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMUUxRDIzNTIwM0RGMTU0MDA1ODQ2NjUgLyogU2Ny
ZWVuUHJvcGVydGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JlZW5Qcm9wZXJ0aWVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyMDE1QzA5MUJFNkZFMkMwMDgyMjM4OSAvKiBGb250
VmFyaWFudEJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udFZhcmlhbnRCdWlsZGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyMEY0RjY0MjFERkJFNUMwMDcwQzQ1QSAvKiBX
SExTTFR5cGVSZWZlcmVuY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0hMU0xUeXBlUmVmZXJl
bmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI2MjQ1LDYgKzI2MjUzLDEx
IEBACiAJCQkJODM0REZBQ0UxRjdEQUU1NzAwQzI3MjVCIC8qIFNoYXJlZFN0cmluZ0hhc2guY3Bw
ICovLAogCQkJCTgzNERGQUNDMUY3REFFNTYwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmgg
Ki8sCiAJCQkJOTMzMDlFQTAwOTlFQjc4QzAwNTZFNTgxIC8qIFNoYXJlZFRpbWVyLmggKi8sCisJ
CQkJQzE0OUQ1NTkyNDJFQTRGODAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIuY3BwICovLAorCQkJ
CUMxNDlENTVBMjQyRUE0RjkwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyLmggKi8sCisJCQkJQzE4
RkI1MTgyNDJGOTM4MjAwN0U5ODc1IC8qIFNsZWVwRGlzYWJsZXJDbGllbnQuY3BwICovLAorCQkJ
CUMxNDlENTVCMjQyRUE0RkEwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyQ2xpZW50LmggKi8sCisJ
CQkJQzE0OUQ1NjUyNDJFQjc2NTAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyLmgg
Ki8sCiAJCQkJQTMzNEJEODIyMTk0RTQ2MTAwMDBENzdGIC8qIFNTTEtleUdlbmVyYXRvci5jcHAg
Ki8sCiAJCQkJRjU4Nzg2NjIwMkRFM0IxMTAxRUE0MTIyIC8qIFNTTEtleUdlbmVyYXRvci5oICov
LAogCQkJCUY0MzNFOTA0MURCQkRCQzIwMEVGMEQxNCAvKiBTdGF0aWNQYXN0ZWJvYXJkLmNwcCAq
LywKQEAgLTMyNzE2LDYgKzMyNzI5LDkgQEAKIAkJCQk5NDQ0Q0JENjFEODYwQzhCMDA3M0EwNzQg
LyogU2l6ZXNBdHRyaWJ1dGVQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk0NDRDQkQ0MUQ4
NjBDOEIwMDczQTA3NCAvKiBTaXplc0NhbGNQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5
RTkxMUNEMEVGODZENDcwMDlEMENBRiAvKiBTa2V3VHJhbnNmb3JtT3BlcmF0aW9uLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlDMTQ5RDU1RDI0MkVBNkI5MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJQzE0OUQ1NUYyNDJFQTdCODAwM0VCQjEyIC8qIFNsZWVwRGlz
YWJsZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUMxNDlENTY3MjQyRUI4NEEwMDNFQkIx
MiAvKiBTbGVlcERpc2FibGVySWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE1MEY5
RjExMkI2RTBFNzAwMDhDODYwIC8qIFNsaWRlclRodW1iRWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOUI1MzJFQTQxQkE5Mjg1NzAwMzhBODI3IC8qIFNsb3RBc3NpZ25tZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0QjZGQTZGNDBDMzlFNDhDMDAwODcwMTEgLyogU21hcnRSZXBsYWNlLmgg
aW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcAkocmV2aXNpb24gMjU5MDQ1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTIsNiArOTIsNyBAQAogI2luY2x1ZGUgIlNl
Y3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFkb3dS
b290LmgiCisjaW5jbHVkZSAiU2xlZXBEaXNhYmxlci5oIgogI2luY2x1ZGUgIlRpbWVSYW5nZXMu
aCIKICNpbmNsdWRlICJVc2VyQ29udGVudENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJVc2VyR2Vz
dHVyZUluZGljYXRvci5oIgpAQCAtOTksNyArMTAwLDYgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9VaW50OEFycmF5Lmg+CiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPHBhbC9TZXNz
aW9uSUQuaD4KLSNpbmNsdWRlIDxwYWwvc3lzdGVtL1NsZWVwRGlzYWJsZXIuaD4KICNpbmNsdWRl
IDx3dGYvQWxnb3JpdGhtcy5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAj
aW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CkBAIC02OTQ2LDcgKzY5NDYsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnVwZGF0ZVNsZWVwRGlzYWJsCiAgICAgZWxzZSBpZiAoc2hvdWxkRGlzYWJs
ZVNsZWVwICE9IFNsZWVwVHlwZTo6Tm9uZSkgewogICAgICAgICBhdXRvIHR5cGUgPSBzaG91bGRE
aXNhYmxlU2xlZXAgPT0gU2xlZXBUeXBlOjpEaXNwbGF5ID8gUEFMOjpTbGVlcERpc2FibGVyOjpU
eXBlOjpEaXNwbGF5IDogUEFMOjpTbGVlcERpc2FibGVyOjpUeXBlOjpTeXN0ZW07CiAgICAgICAg
IGlmICghbV9zbGVlcERpc2FibGVyIHx8IG1fc2xlZXBEaXNhYmxlci0+dHlwZSgpICE9IHR5cGUp
Ci0gICAgICAgICAgICBtX3NsZWVwRGlzYWJsZXIgPSBQQUw6OlNsZWVwRGlzYWJsZXI6OmNyZWF0
ZSgiY29tLmFwcGxlLldlYkNvcmU6IEhUTUxNZWRpYUVsZW1lbnQgcGxheWJhY2siLCB0eXBlKTsK
KyAgICAgICAgICAgIG1fc2xlZXBEaXNhYmxlciA9IG1ha2VVbmlxdWU8U2xlZXBEaXNhYmxlcj4o
ImNvbS5hcHBsZS5XZWJDb3JlOiBIVE1MTWVkaWFFbGVtZW50IHBsYXliYWNrIiwgdHlwZSk7CiAg
ICAgfQogCiAgICAgaWYgKG1fcGxheWVyKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmgJKHJldmlzaW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MywxMCArNjMsNiBAQAogI2luY2x1
ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogI2VuZGlmCiAKLW5hbWVzcGFjZSBQQUwgewot
Y2xhc3MgU2xlZXBEaXNhYmxlcjsKLX0KLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBB
dWRpb1NvdXJjZVByb3ZpZGVyOwpAQCAtOTQsNiArOTAsNyBAQCBjbGFzcyBNZWRpYVN0cmVhbTsK
IGNsYXNzIFJlbmRlck1lZGlhOwogY2xhc3MgU2NyaXB0Q29udHJvbGxlcjsKIGNsYXNzIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBTbGVlcERpc2FibGVyOwogY2xhc3MgU291cmNlQnVm
ZmVyOwogY2xhc3MgVGV4dFRyYWNrTGlzdDsKIGNsYXNzIFRpbWVSYW5nZXM7CkBAIC0xMTYyLDcg
KzExNTksNyBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBNZWRpYUNvbnRyb2xsZXI7CiAg
ICAgUmVmUHRyPE1lZGlhQ29udHJvbGxlcj4gbV9tZWRpYUNvbnRyb2xsZXI7CiAKLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8UEFMOjpTbGVlcERpc2FibGVyPiBtX3NsZWVwRGlzYWJsZXI7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPFNsZWVwRGlzYWJsZXI+IG1fc2xlZXBEaXNhYmxlcjsKIAogICAgIFdlYWtQ
dHI8Y29uc3QgTWVkaWFSZXNvdXJjZUxvYWRlcj4gbV9sYXN0TWVkaWFSZXNvdXJjZUxvYWRlckZv
clRlc3Rpbmc7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJsZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJsZXIu
Y3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJs
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2xlZXBEaXNhYmxlci5oIgorCisjaW5jbHVkZSAi
U2xlZXBEaXNhYmxlckNsaWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NsZWVwRGlz
YWJsZXI6OlNsZWVwRGlzYWJsZXIoY29uc3QgY2hhciogcmVhc29uLCBQQUw6OlNsZWVwRGlzYWJs
ZXI6OlR5cGUgdHlwZSkKKyAgICA6IG1fdHlwZSh0eXBlKQoreworICAgIGlmIChzbGVlcERpc2Fi
bGVyQ2xpZW50KCkpIHsKKyAgICAgICAgbV9pZGVudGlmaWVyID0gU2xlZXBEaXNhYmxlcklkZW50
aWZpZXI6OmdlbmVyYXRlKCk7CisgICAgICAgIHNsZWVwRGlzYWJsZXJDbGllbnQoKS0+ZGlkQ3Jl
YXRlU2xlZXBEaXNhYmxlcihtX2lkZW50aWZpZXIsIHJlYXNvbiwgdHlwZSA9PSBQQUw6OlNsZWVw
RGlzYWJsZXI6OlR5cGU6OkRpc3BsYXkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
bV9wbGF0Zm9ybVNsZWVwRGlzYWJsZXIgPSBQQUw6OlNsZWVwRGlzYWJsZXI6OmNyZWF0ZShyZWFz
b24sIHR5cGUpOworfQorCitTbGVlcERpc2FibGVyOjp+U2xlZXBEaXNhYmxlcigpCit7CisgICAg
aWYgKHNsZWVwRGlzYWJsZXJDbGllbnQoKSkKKyAgICAgICAgc2xlZXBEaXNhYmxlckNsaWVudCgp
LT5kaWREZXN0cm95U2xlZXBEaXNhYmxlcihtX2lkZW50aWZpZXIpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxlci5o
CShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJsZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJTbGVlcERpc2FibGVySWRlbnRpZmllci5oIgorCisjaW5jbHVkZSA8
cGFsL3N5c3RlbS9TbGVlcERpc2FibGVyLmg+CisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZp
ZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTbGVlcERpc2FibGVyIHsKKyAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBT
bGVlcERpc2FibGVyKGNvbnN0IGNoYXIqLCBQQUw6OlNsZWVwRGlzYWJsZXI6OlR5cGUpOworICAg
IFdFQkNPUkVfRVhQT1JUIH5TbGVlcERpc2FibGVyKCk7CisKKyAgICBQQUw6OlNsZWVwRGlzYWJs
ZXI6OlR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQorCitwcml2YXRlOgorICAg
IHN0ZDo6dW5pcXVlX3B0cjxQQUw6OlNsZWVwRGlzYWJsZXI+IG1fcGxhdGZvcm1TbGVlcERpc2Fi
bGVyOworICAgIFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBQQUw6
OlNsZWVwRGlzYWJsZXI6OlR5cGUgbV90eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxlckNsaWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxlckNsaWVu
dC5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNh
YmxlckNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTbGVlcERpc2FibGVyQ2xpZW50Lmgi
CisKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitzdGQ6OnVuaXF1ZV9wdHI8U2xlZXBEaXNhYmxlckNsaWVudD4mIHNsZWVwRGlzYWJsZXJD
bGllbnQoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6OnVuaXF1ZV9wdHI8U2xl
ZXBEaXNhYmxlckNsaWVudD4+IGNsaWVudDsKKyAgICByZXR1cm4gY2xpZW50LmdldCgpOworfQor
Cit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVyQ2xpZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxlckNsaWVu
dC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJs
ZXJDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ1IEBACisvKgorKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJT
bGVlcERpc2FibGVySWRlbnRpZmllci5oIgorCisjaW5jbHVkZSA8cGFsL3N5c3RlbS9TbGVlcERp
c2FibGVyLmg+CisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTbGVl
cERpc2FibGVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TbGVlcERpc2FibGVyQ2xp
ZW50KCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZVNsZWVwRGlzYWJsZXIoU2xlZXBE
aXNhYmxlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBib29sIGRpc3BsYXkpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRGVzdHJveVNsZWVwRGlzYWJsZXIoU2xlZXBEaXNhYmxl
cklkZW50aWZpZXIpID0gMDsKK307CisKK1dFQkNPUkVfRVhQT1JUIHN0ZDo6dW5pcXVlX3B0cjxT
bGVlcERpc2FibGVyQ2xpZW50PiYgc2xlZXBEaXNhYmxlckNsaWVudCgpOworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVy
SWRlbnRpZmllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVw
RGlzYWJsZXJJZGVudGlmaWVyLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2xlZXBEaXNhYmxlcklkZW50aWZpZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0
SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gU2xlZXBEaXNhYmxl
cklkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyID0gT2Jq
ZWN0SWRlbnRpZmllcjxTbGVlcERpc2FibGVySWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCShyZXZp
c2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTU1NjUsNCArNTU2NSwxNyBAQCBTdHJpbmcgSW50ZXJuYWxzOjpmb2N1
c1JpbmdDb2xvcigpCiAgICAgcmV0dXJuIFJlbmRlclRoZW1lOjpzaW5nbGV0b24oKS5mb2N1c1Jp
bmdDb2xvcihvcHRpb25zKS5jc3NUZXh0KCk7CiB9CiAKK3Vuc2lnbmVkIEludGVybmFsczo6Y3Jl
YXRlU2xlZXBEaXNhYmxlcihjb25zdCBTdHJpbmcmIHJlYXNvbiwgYm9vbCBkaXNwbGF5KQorewor
ICAgIHN0YXRpYyB1bnNpZ25lZCBpZGVudGlmaWVyID0gMDsKKyAgICBhdXRvIHNsZWVwRGlzYWJs
ZXIgPSBtYWtlVW5pcXVlPFdlYkNvcmU6OlNsZWVwRGlzYWJsZXI+KHJlYXNvbi51dGY4KCkuZGF0
YSgpLCBkaXNwbGF5ID8gUEFMOjpTbGVlcERpc2FibGVyOjpUeXBlOjpEaXNwbGF5IDogUEFMOjpT
bGVlcERpc2FibGVyOjpUeXBlOjpTeXN0ZW0pOworICAgIG1fc2xlZXBEaXNhYmxlcnMuYWRkKCsr
aWRlbnRpZmllciwgV1RGTW92ZShzbGVlcERpc2FibGVyKSk7CisgICAgcmV0dXJuIGlkZW50aWZp
ZXI7Cit9CisKK2Jvb2wgSW50ZXJuYWxzOjpkZXN0cm95U2xlZXBEaXNhYmxlcih1bnNpZ25lZCBp
ZGVudGlmaWVyKQoreworICAgIHJldHVybiBtX3NsZWVwRGlzYWJsZXJzLnJlbW92ZShpZGVudGlm
aWVyKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oCShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAi
T3JpZW50YXRpb25Ob3RpZmllci5oIgogI2luY2x1ZGUgIlBhZ2VDb25zb2xlQ2xpZW50LmgiCiAj
aW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgIlNsZWVwRGlzYWJsZXIu
aCIKICNpbmNsdWRlICJUZXh0SW5kaWNhdG9yLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
RmxvYXQzMkFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CkBAIC05NjAsNiArOTYx
LDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1JlbW90ZVVJQXBwRm9yQWNjZXNzaWJpbGl0eSgp
OwogCisgICAgdW5zaWduZWQgY3JlYXRlU2xlZXBEaXNhYmxlcihjb25zdCBTdHJpbmcmIHJlYXNv
biwgYm9vbCBkaXNwbGF5KTsKKyAgICBib29sIGRlc3Ryb3lTbGVlcERpc2FibGVyKHVuc2lnbmVk
IGlkZW50aWZpZXIpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEludGVybmFscyhEb2N1bWVu
dCYpOwogICAgIERvY3VtZW50KiBjb250ZXh0RG9jdW1lbnQoKSBjb25zdDsKQEAgLTk4MSw2ICs5
ODUsOCBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEluc3BlY3RvclN0dWJGcm9u
dGVuZD4gbV9pbnNwZWN0b3JGcm9udGVuZDsKICAgICBSZWZQdHI8Q2FjaGVTdG9yYWdlQ29ubmVj
dGlvbj4gbV9jYWNoZVN0b3JhZ2VDb25uZWN0aW9uOworCisgICAgSGFzaE1hcDx1bnNpZ25lZCwg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNsZWVwRGlzYWJsZXI+PiBtX3NsZWVwRGlzYWJsZXJz
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmlkbAkocmV2aXNpb24gMjU5MDQ1KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC04NjIsNCArODYyLDcgQEAgZW51bSBD
b21wb3NpdGluZ1BvbGljeSB7CiAgICAgYm9vbGVhbiBzdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUo
KTsKIAogICAgIGJvb2xlYW4gaXNSZW1vdGVVSUFwcEZvckFjY2Vzc2liaWxpdHkoKTsKKworICAg
IHVuc2lnbmVkIGxvbmcgY3JlYXRlU2xlZXBEaXNhYmxlcihET01TdHJpbmcgcmVhc29uLCBib29s
ZWFuIGRpc3BsYXkpOworICAgIGJvb2xlYW4gZGVzdHJveVNsZWVwRGlzYWJsZXIodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyKTsKIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjU5MTU4KQorKysg
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzNyBAQAor
MjAyMC0wMy0yOCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0NvY29hXSBTbGVlcCBkaXNhYmxpbmcgc2hvdWxkIGJlIHBlcmZvcm1lZCBpbiB0aGUgVUkg
cHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA5Njc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U2luY2Ugc2xlZXAgZGlzYWJsaW5nIGlzIGNhdXNpbmcgY29tbXVuaWNhdGlvbiB3aXRoIHRoZSBw
b3dlciBtYW5hZ2VtZW50IHNlcnZpY2UsIGl0IHNob3VsZCBiZSBwZXJmb3JtZWQgaW4gdGhlIFVJ
IHByb2Nlc3MuCisgICAgICAgIFRoZSBVSSBwcm9jZXNzIHdpbGwgYmUgbm90aWZpZWQgYnkgdGhl
IFdlYkNvbnRlbnQgcHJvY2VzcyBhYm91dCBzbGVlcCBkaXNhYmxlcnMgYmVpbmcgY3JlYXRlZCBh
bmQgZGVzdHJveWVkLCBhbmQgd2lsbCBwZXJmb3JtCisgICAgICAgIHRoZSBhY3R1YWwgc2xlZXAg
ZGlzYWJsaW5nIGFuZCBlbmFibGluZy4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5OgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfaGFz
U2xlZXBEaXNhYmxlcl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZENyZWF0ZVNsZWVwRGlzYWJs
ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZERlc3Ryb3lTbGVlcERp
c2FibGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpoYXNTbGVlcERpc2Fi
bGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVMZWdhY3lDRE0uY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL2lv
cy9SZW1vdGVNZWRpYVNlc3Npb25IZWxwZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L21lZGlhL2lvcy9SZW1vdGVNZWRpYVNlc3Npb25IZWxwZXIuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJTbGVlcERpc2FibGVyQ2xpZW50LmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlNsZWVwRGlzYWJsZXJDbGllbnQ6OmRpZENyZWF0ZVNsZWVwRGlzYWJsZXIpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJTbGVlcERpc2FibGVyQ2xpZW50OjpkaWREZXN0cm95U2xlZXBE
aXNhYmxlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJTbGVlcERpc2FibGVyQ2xpZW50Lmg6
IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
KToKKwogMjAyMC0wMy0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
IAogICAgICAgICBXZWIgY29udGVudCBwcm9jZXNzZXMgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGFy
Yml0cmFyaWx5IHJlcXVlc3QgcGFzdGVib2FyZCBkYXRhIGZyb20gdGhlIFVJIHByb2Nlc3MKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dAkocmV2aXNpb24gMjU5MDQ1KQorKysgU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtNDc4LDYgKzQ3OCw3IEBAIFVJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlQ28KIAogV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVBy
b2Nlc3MuY3BwCiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCitXZWJQcm9jZXNzL1dlYlNsZWVw
RGlzYWJsZXJDbGllbnQuY3BwCiAKIC8vIEZJWE1FKDIwNjI2Nik6IEF1dG9tYXRpb25Qcm90b2Nv
bE9iamVjdHMuaCdzICJuYW1lc3BhY2UgUHJvdG9jb2wiIGNvbmZsaWN0cyB3aXRoIG9iamMvcnVu
dGltZS5oJ3MgInR5cGVkZWYgc3RydWN0IG9iamNfb2JqZWN0IFByb3RvY29sIgogV2ViUHJvY2Vz
cy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwIEBuby11bmlmeQpJbmRl
eDogU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CShyZXZpc2lvbiAyNTkw
NDUpCisrKyBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CSh3b3JraW5n
IGNvcHkpCkBAIC0yMjIsNiArMjIyLDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2Zvcndh
cmRfZGVjbGFyZQogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50RGF0YScs
CiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyJywKICAg
ICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyJywKKyAg
ICAgICAgJ1dlYkNvcmU6OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNv
cmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpBY3Rp
dml0eVN0YXRlQ2hhbmdlSUQnLAogICAgICAgICAnV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlcklkZW50aWZpZXInLApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwCShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzgxLDYgKzE3
ODEsMjIgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZENyZWF0ZUNvbnRleHRJbgogfQogI2Vu
ZGlmCiAKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVTbGVlcERpc2FibGVyKFNsZWVw
RGlzYWJsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBib29s
IGRpc3BsYXkpCit7CisgICAgYXV0byBzbGVlcERpc2FibGVyID0gbWFrZVVuaXF1ZTxXZWJDb3Jl
OjpTbGVlcERpc2FibGVyPihyZWFzb24udXRmOCgpLmRhdGEoKSwgZGlzcGxheSA/IFBBTDo6U2xl
ZXBEaXNhYmxlcjo6VHlwZTo6RGlzcGxheSA6IFBBTDo6U2xlZXBEaXNhYmxlcjo6VHlwZTo6U3lz
dGVtKTsKKyAgICBtX3NsZWVwRGlzYWJsZXJzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKHNsZWVw
RGlzYWJsZXIpKTsKK30KKwordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZERlc3Ryb3lTbGVlcERp
c2FibGVyKFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgbV9zbGVl
cERpc2FibGVycy5yZW1vdmUoaWRlbnRpZmllcik7Cit9CisKK2Jvb2wgV2ViUHJvY2Vzc1Byb3h5
OjpoYXNTbGVlcERpc2FibGVyKCkKK3sKKyAgICByZXR1cm4gbV9zbGVlcERpc2FibGVycy5zaXpl
KCkgPiAwOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIE1FU1NBR0VfQ0hF
Q0sKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCShyZXZp
c2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUHJv
Y2Vzc0lkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRTdHJpbmdIYXNoLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9TbGVlcERpc2FibGVyLmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHBhbC9TZXNz
aW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtMzc4LDYgKzM3OSw4IEBAIHB1
YmxpYzoKICAgICB2b2lkIGdwdVByb2Nlc3NDcmFzaGVkKCk7CiAjZW5kaWYKIAorICAgIGJvb2wg
aGFzU2xlZXBEaXNhYmxlcigpOworCiBwcm90ZWN0ZWQ6CiAgICAgV2ViUHJvY2Vzc1Byb3h5KFdl
YlByb2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFTdG9yZSosIElzUHJld2FybWVkKTsKIApAQCAtNDc1
LDYgKzQ3OCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZW5kTWVzc2FnZVRvV2ViQ29udGV4dFdp
dGhSZXBseShVc2VyTWVzc2FnZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFVzZXJNZXNzYWdl
JiYpPiYmKTsKICNlbmRpZgogCisgICAgdm9pZCBkaWRDcmVhdGVTbGVlcERpc2FibGVyKFdlYkNv
cmU6OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHJlYXNvbiwgYm9vbCBk
aXNwbGF5KTsKKyAgICB2b2lkIGRpZERlc3Ryb3lTbGVlcERpc2FibGVyKFdlYkNvcmU6OlNsZWVw
RGlzYWJsZXJJZGVudGlmaWVyKTsKKwogICAgIGVudW0gY2xhc3MgSXNXZWFrIHsgTm8sIFllcyB9
OwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWtPclN0cm9uZ1B0ciB7CiAgICAg
cHVibGljOgpAQCAtNTgwLDYgKzU4Niw4IEBAIHByaXZhdGU6CiAgICAgICAgIFdlYWtIYXNoU2V0
PFdlYlByb2Nlc3NQcm94eT4gY2xpZW50UHJvY2Vzc2VzOwogICAgIH07CiAgICAgT3B0aW9uYWw8
U2VydmljZVdvcmtlckluZm9ybWF0aW9uPiBtX3NlcnZpY2VXb3JrZXJJbmZvcm1hdGlvbjsKKwor
ICAgIEhhc2hNYXA8V2ViQ29yZTo6U2xlZXBEaXNhYmxlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpTbGVlcERpc2FibGVyPj4gbV9zbGVlcERpc2FibGVyczsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjU5MDQ1KQorKysgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5n
IGNvcHkpCkBAIC04MCw0ICs4MCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdh
Y3lSZWNlaXYKICAgICBTZW5kTWVzc2FnZVRvV2ViQ29udGV4dChzdHJ1Y3QgV2ViS2l0OjpVc2Vy
TWVzc2FnZSB1c2VyTWVzc2FnZSkKICAgICBTZW5kTWVzc2FnZVRvV2ViQ29udGV4dFdpdGhSZXBs
eShzdHJ1Y3QgV2ViS2l0OjpVc2VyTWVzc2FnZSB1c2VyTWVzc2FnZSkgLT4gKHN0cnVjdCBXZWJL
aXQ6OlVzZXJNZXNzYWdlIHJlcGx5TWVzc2FnZSkgQXN5bmMKICNlbmRpZgorCisgICAgRGlkQ3Jl
YXRlU2xlZXBEaXNhYmxlcihXZWJDb3JlOjpTbGVlcERpc2FibGVySWRlbnRpZmllciBpZGVudGlm
aWVyLCBTdHJpbmcgcmVhc29uLCBib29sIGRpc3BsYXkpCisgICAgRGlkRGVzdHJveVNsZWVwRGlz
YWJsZXIoV2ViQ29yZTo6U2xlZXBEaXNhYmxlcklkZW50aWZpZXIgaWRlbnRpZmllcikKIH0KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9y
VGVzdGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCShyZXZpc2lvbiAyNTkwNDUpCisrKyBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3Rpbmcu
aAkod29ya2luZyBjb3B5KQpAQCAtNjQsNCArNjQsNSBAQAogKyAodm9pZClfc2V0QXBwbGljYXRp
b25CdW5kbGVJZGVudGlmaWVyOihOU1N0cmluZyAqKWJ1bmRsZUlkZW50aWZpZXI7CiArICh2b2lk
KV9jbGVhckFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllclRlc3RpbmdPdmVycmlkZTsKIAorLSAo
Qk9PTClfaGFzU2xlZXBEaXNhYmxlcjsKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCShyZXZpc2lvbiAy
NTkwNDUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVz
dGluZy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjIwLDQgKzIyMCw5IEBAICsgKHZvaWQpX2NsZWFy
QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWUKICAgICBXZWJDb3JlOjpjbGVhckFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllclRlc3RpbmdPdmVycmlkZSgpOwogfQogCistIChCT09MKV9oYXNTbGVl
cERpc2FibGVyCit7CisgICAgcmV0dXJuIF9wYWdlID8gX3BhZ2UtPnByb2Nlc3MoKS5oYXNTbGVl
cERpc2FibGVyKCkgOiBmYWxzZTsKK30KKwogQGVuZApJbmRleDogU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTkwNDUpCisrKyBT
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC00OTgzLDYgKzQ5ODMsOCBAQAogCQlDMTgxNzM1RTIwNTgzOUY2MDBERkRBNjUgLyog
RHJhd2luZ0FyZWFNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRHJhd2luZ0FyZWFNYWMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTgxNzM2MDIwNTg0MjQ3MDBERkRBNjUg
LyogRGlzcGxheUxpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheUxpbmsuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE4MTczNjIyMDU4NDRBOTAwREZEQTY1IC8qIERpc3BsYXlM
aW5rLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpc3BsYXlMaW5rLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQzE4RkI1MUQyNDJGOUY3NjAwN0U5ODc1IC8qIFdlYlNsZWVwRGlz
YWJsZXJDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
U2xlZXBEaXNhYmxlckNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMx
OEZCNTFFMjQyRjlGNzcwMDdFOTg3NSAvKiBXZWJTbGVlcERpc2FibGVyQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNsZWVwRGlzYWJsZXJDbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzFFMTIzQjkyMEExMTU3MjAwMjY0NkY0IC8qIFBE
RkNvbnRleHRNZW51LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBERkNvbnRl
eHRNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1MTczODgwMTJERjhGNEYw
MEVFM0Y0NyAvKiBEcmFnQ29udHJvbGxlckFjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEcmFnQ29udHJvbGxlckFjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDNTIzN0Y1RjEyNDQxQ0EzMDA3ODA0NzIgLyogV2ViRWRpdG9yQ2xpZW50TWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRWRpdG9yQ2xpZW50
TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODcwMSw2ICs4NzAzLDggQEAK
IAkJCQlCQzAzMkQ5MTEwRjQzN0FGMDA1OEMxNUEgLyogV2ViUHJvY2Vzcy5oICovLAogCQkJCUJD
MzA2NkI5MTI1QTQzNjMwMEU3MTI3OCAvKiBXZWJQcm9jZXNzLm1lc3NhZ2VzLmluICovLAogCQkJ
CUJDRTBFNDI0MTY4QjdBMjgwMDU3RTY2QSAvKiBXZWJQcm9jZXNzU3VwcGxlbWVudC5oICovLAor
CQkJCUMxOEZCNTFEMjQyRjlGNzYwMDdFOTg3NSAvKiBXZWJTbGVlcERpc2FibGVyQ2xpZW50LmNw
cCAqLywKKwkJCQlDMThGQjUxRTI0MkY5Rjc3MDA3RTk4NzUgLyogV2ViU2xlZXBEaXNhYmxlckNs
aWVudC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBXZWJQcm9jZXNzOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTbGVlcERpc2Fi
bGVyQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
U2xlZXBEaXNhYmxlckNsaWVudC5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlNsZWVwRGlzYWJsZXJDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNDQgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09N
UFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgorKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViU2xlZXBEaXNhYmxlckNsaWVudC5oIgor
CisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3Nh
Z2VzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYlNsZWVwRGlzYWJsZXJDbGll
bnQ6OmRpZENyZWF0ZVNsZWVwRGlzYWJsZXIoU2xlZXBEaXNhYmxlcklkZW50aWZpZXIgaWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiByZWFzb24sIGJvb2wgZGlzcGxheSkKK3sKKyAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzUHJveHk6OkRpZENyZWF0ZVNsZWVwRGlzYWJsZXIoaWRlbnRpZmllciwgcmVh
c29uLCBkaXNwbGF5KSwgMCk7Cit9CisKK3ZvaWQgV2ViU2xlZXBEaXNhYmxlckNsaWVudDo6ZGlk
RGVzdHJveVNsZWVwRGlzYWJsZXIoU2xlZXBEaXNhYmxlcklkZW50aWZpZXIgaWRlbnRpZmllcikK
K3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpZERlc3Ryb3lTbGVlcERpc2FibGVy
KGlkZW50aWZpZXIpLCAwKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU2xlZXBEaXNhYmxlckNsaWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTbGVlcERpc2FibGVyQ2xpZW50LmgJKG5v
bmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlNsZWVwRGlzYWJsZXJD
bGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM5IEBACisvKgorKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJD
b3JlL1NsZWVwRGlzYWJsZXJDbGllbnQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFdlYlNsZWVwRGlzYWJsZXJDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6U2xlZXBEaXNhYmxlckNs
aWVudCB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgdm9pZCBk
aWRDcmVhdGVTbGVlcERpc2FibGVyKFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmLCBib29sKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZERlc3Ryb3lTbGVlcERpc2FibGVyKFNs
ZWVwRGlzYWJsZXJJZGVudGlmaWVyKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVMZWdh
Y3lDRE0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlTGVnYWN5Q0RNLmNwcAkocmV2aXNpb24gMjU5MDQ1KQorKysgU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVMZWdhY3lDRE0uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShM
RUdBQ1lfRU5DUllQVEVEX01FRElBKQogCisjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24u
aCIKKwogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETUZhY3RvcnkuaCIKICNpbmNsdWRlICJSZW1v
dGVMZWdhY3lDRE1Qcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RNU2Vz
c2lvbi5oIgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVt
b3RlTWVkaWFTZXNzaW9uSGVscGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL2lvcy9SZW1vdGVNZWRpYVNlc3Npb25IZWxwZXIuY3BwCShyZXZp
c2lvbiAyNTkwNDUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2lvcy9S
ZW1vdGVNZWRpYVNlc3Npb25IZWxwZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4
IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQogCiAj
aW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVk
ZSAiUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldl
YlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWJhY2tUYXJnZXRDb2NvYS5o
PgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVk
aWFTZXNzaW9uSGVscGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyLmgJKHJldmlzaW9uIDI1OTA0
NSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvaW9zL1JlbW90ZU1lZGlh
U2Vzc2lvbkhlbHBlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQogCiAjaW5jbHVkZSAiTWVz
c2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0Q29u
dGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZXNzaW9uSGVscGVySU9TLmg+CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Vmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5jcHAJ
KHJldmlzaW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1Zp
ZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICsz
OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvSGl0VGVzdFJlc3VsdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW1h
Z2VEb2N1bWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmFuZ2UuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1JlbmRlclZpZXcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRJdGVyYXRvci5oPgogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29j
b2EubW0JKHJldmlzaW9uIDI1OTA0NSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9XZWJQcm9jZXNzQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDcgQEAKICNp
bXBvcnQgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIldlYlByb2Nl
c3NEYXRhU3RvcmVQYXJhbWV0ZXJzLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHlNZXNzYWdl
cy5oIgorI2ltcG9ydCAiV2ViU2xlZXBEaXNhYmxlckNsaWVudC5oIgogI2ltcG9ydCAiV2Vic2l0
ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0NvbmZpZ0Zp
bGUuaD4KICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL09wdGlvbnMuaD4KQEAgLTYzLDEwICs2NCwx
MiBAQAogI2ltcG9ydCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL01lbW9yeVJlbGVhc2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvTlNTY3JvbGxlckltcERldGFp
bHMuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvUGVyZm9ybWFuY2VMb2dnaW5nLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1BpY3R1cmVJblBpY3R1cmVTdXBwb3J0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBs
aWNhdGlvbkNoZWNrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TV0NvbnRleHRNYW5hZ2VyLmg+Cisj
aW1wb3J0IDxXZWJDb3JlL1N5c3RlbUJhdHRlcnkuaD4KICNpbXBvcnQgPFdlYkNvcmUvVVRJVXRp
bGl0aWVzLmg+CiAjaW1wb3J0IDxhbGdvcml0aG0+CiAjaW1wb3J0IDxkaXNwYXRjaC9kaXNwYXRj
aC5oPgpAQCAtMTMxLDExICsxMzQsNiBAQAogI2ltcG9ydCA8b3Mvc3RhdGVfcHJpdmF0ZS5oPgog
I2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkKLSNpbXBvcnQgPFdlYkNvcmUvTmV0d29ya0V4
dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaD4KLSNpbXBvcnQgPFdlYkNvcmUvU3lzdGVtQmF0dGVyeS5o
PgotI2VuZGlmCi0KICNpZiBIQVZFKENTQ0hFQ0tGSVhESVNBQkxFKQogZXh0ZXJuICJDIiB2b2lk
IF9DU0NoZWNrRml4RGlzYWJsZSgpOwogI2VuZGlmCkBAIC0zMTgsNiArMzE2LDggQEAgdm9pZCBX
ZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcgogICAgICAgICBzZXRWZWN0b3JPZlVU
VHlwZUl0ZW0oV1RGTW92ZShwYXJhbWV0ZXJzLnZlY3Rvck9mVVRUeXBlSXRlbSkpOwogICAgIH0K
ICNlbmRpZgorCisgICAgV2ViQ29yZTo6c2xlZXBEaXNhYmxlckNsaWVudCgpID0gbWFrZVVuaXF1
ZTxXZWJTbGVlcERpc2FibGVyQ2xpZW50PigpOwogfQogCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRm
b3JtU2V0V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMoV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFt
ZXRlcnMmJiBwYXJhbWV0ZXJzKQpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjU5MTU4KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMjggIFBlciBBcm5lIFZvbGxh
biAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gU2xlZXAgZGlzYWJsaW5n
IHNob3VsZCBiZSBwZXJmb3JtZWQgaW4gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTY3NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvU2xlZXBEaXNhYmxlci5tbTogQWRkZWQuCisgICAgICAgIChURVNUKToKKwog
MjAyMC0wMy0yOCAgQ2hhbmdTZW9rIE9oICA8Y2hhbmdzZW9rQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgW0dUS10gTm8gbGlic3lzdGVtZC1kZXZlbCBmb3IgRE5GCkluZGV4OiBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gMjU5MDQ1KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTg4Myw2
ICs4ODMsNyBAQAogCQlDMEM1RDNDNjE0NTk5MTI5MDBBODAyQTYgLyogR2V0QmFja2luZ1NjYWxl
RmFjdG9yX0J1bmRsZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEMwQzVEM0JEMTQ1OThCNkYwMEE4MDJBNiAvKiBHZXRCYWNraW5nU2NhbGVGYWN0b3Jf
QnVuZGxlLm1tICovOyB9OwogCQlDMTNEODJEOTI0MTZGMTMyMDBBNjI3OTMgLyogRW5hYmxlQWNj
ZXNzaWJpbGl0eS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEMxM0Q4MkQ4MjQxNkYxMzIwMEE2Mjc5MyAvKiBFbmFibGVBY2Nlc3NpYmlsaXR5Lm1tICov
OyB9OwogCQlDMTQ1Q0MwQzIzREE1QTFGMDAzQTVFRUIgLyogTWltZVR5cGVzLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE0NUNDMEIyM0RBNUEwRjAw
M0E1RUVCIC8qIE1pbWVUeXBlcy5tbSAqLzsgfTsKKwkJQzE0OUQ1NTAyNDJFOThERjAwM0VCQjEy
IC8qIFNsZWVwRGlzYWJsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDMTQ5RDU0RjI0MkU5ODQ0MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlci5tbSAq
LzsgfTsKIAkJQzE1Q0JCMzAyM0YxRkYxQTAwMzAwQ0M3IC8qIEJhY2tsaWdodExldmVsTm90aWZp
Y2F0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzE1Q0JCMkYyM0YxRkYxQTAwMzAwQ0M3IC8qIEJhY2tsaWdodExldmVsTm90aWZpY2F0aW9uLm1t
ICovOyB9OwogCQlDMTVDQkIzRjIzRkIxNzdBMDAzMDBDQzcgLyogUHJlZmVyZW5jZUNoYW5nZXMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTVDQkIz
RTIzRkIxNzdBMDAzMDBDQzcgLyogUHJlZmVyZW5jZUNoYW5nZXMubW0gKi87IH07CiAJCUMxNjky
RENBMjNEMTBEQUUwMDZFODhGNyAvKiBCYXR0ZXJ5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE2OTJEQzkyM0QxMERBRTAwNkU4OEY3IC8qIEJhdHRl
cnkubW0gKi87IH07CkBAIC0yNDU4LDYgKzI0NTksNyBAQAogCQlDMEM1RDNCRDE0NTk4QjZGMDBB
ODAyQTYgLyogR2V0QmFja2luZ1NjYWxlRmFjdG9yX0J1bmRsZS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdldEJhY2tpbmdTY2FsZUZhY3Rvcl9CdW5kbGUubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxM0Q4MkQ4MjQxNkYxMzIwMEE2Mjc5MyAv
KiBFbmFibGVBY2Nlc3NpYmlsaXR5Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRW5hYmxlQWNj
ZXNzaWJpbGl0eS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE0NUNDMEIyM0RB
NUEwRjAwM0E1RUVCIC8qIE1pbWVUeXBlcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IE1pbWVUeXBlcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QzE0OUQ1NEYyNDJFOTg0NDAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTbGVlcERpc2FibGVyLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDMTVDQkIyRjIzRjFGRjFBMDAzMDBDQzcgLyogQmFja2xpZ2h0
TGV2ZWxOb3RpZmljYXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBCYWNrbGlnaHRMZXZl
bE5vdGlmaWNhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE1Q0JCM0Uy
M0ZCMTc3QTAwMzAwQ0M3IC8qIFByZWZlcmVuY2VDaGFuZ2VzLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJlZmVyZW5jZUNoYW5nZXMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUMxNjkyREM5MjNEMTBEQUUwMDZFODhGNyAvKiBCYXR0ZXJ5Lm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gQmF0dGVyeS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTI5MjEsNiArMjkyMyw3IEBACiAJCQkJQzE0NUNDMEIyM0RBNUEwRjAwM0E1RUVC
IC8qIE1pbWVUeXBlcy5tbSAqLywKIAkJCQlFMzI1QzkwNjIzRTM4NzAyMDBCQzdEM0IgLyogUGlj
dHVyZUluUGljdHVyZVN1cHBvcnQubW0gKi8sCiAJCQkJQzE1Q0JCM0UyM0ZCMTc3QTAwMzAwQ0M3
IC8qIFByZWZlcmVuY2VDaGFuZ2VzLm1tICovLAorCQkJCUMxNDlENTRGMjQyRTk4NDQwMDNFQkIx
MiAvKiBTbGVlcERpc2FibGVyLm1tICovLAogCQkJCUMxOTRFMzFDMjQwOURGNDMwMDI5MzlFRCAv
KiBVVElGcm9tTUlNRVR5cGUubW0gKi8sCiAJCQkJRTNDQUFBNEIyNDE1NTA1MTAwQ0VEMkUyIC8q
IFVUSUZyb21UYWcubW0gKi8sCiAJCQkJMEYxMzlFNzUxQTQyM0E1MzAwRjU5MEY1IC8qIFdlYWtP
YmpDUHRyLm1tICovLApAQCAtNTA1OCw2ICs1MDYxLDcgQEAKIAkJCQkzN0JDQTYxQzFCNTk2QkE5
MDAyMDEyQ0EgLyogU2hvdWxkT3BlbkV4dGVybmFsVVJMc0luTmV3V2luZG93QWN0aW9ucy5tbSBp
biBTb3VyY2VzICovLAogCQkJCTdDODNFMEM1MUQwQTY1NDYwMEZFQkNGMyAvKiBTaHJpbmtUb0Zp
dC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUNEMUE0MTFBN0UwMDQ0N0M0QyAvKiBTaW1w
bGlmeU1hcmt1cC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUMxNDlENTUwMjQyRTk4REYwMDNFQkIx
MiAvKiBTbGVlcERpc2FibGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRGRjdCNkQxREE0ODdB
RjAwODE0NjE0IC8qIFNuYXBzaG90U3RvcmUubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRjRGRkE5
RTFFRDNBQTg1MDBGNzExMUYgLyogU25hcHNob3RWaWFSZW5kZXJJbkNvbnRleHQubW0gaW4gU291
cmNlcyAqLywKIAkJCQk3Q0NFN0YxNTFBNDExQUU2MDA0NDdDNEMgLyogU3BhY2ViYXJTY3JvbGxp
bmcuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9TbGVlcERpc2FibGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L1NsZWVwRGlzYWJsZXIubW0JKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU2xlZXBEaXNhYmxlci5tbQkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYg
V0tfSEFWRV9DX1NQSQorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAi
VGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0
aW5nLmg+CisjaW1wb3J0IDx3dGYvVGhyZWFkaW5nLmg+CisKK1RFU1QoV2ViS2l0LCBTbGVlcERp
c2FibGVyKQoreworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdD
b25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVm
PiBjb250ZXh0ID0gYWRvcHRXSyhUZXN0V2ViS2l0QVBJOjpVdGlsOjpjcmVhdGVDb250ZXh0Rm9y
SW5qZWN0ZWRCdW5kbGVUZXN0KCJJbnRlcm5hbHNJbmplY3RlZEJ1bmRsZVRlc3QiKSk7CisgICAg
Y29uZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbCA9IChXS1Byb2Nlc3NQb29sICopY29udGV4
dC5nZXQoKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CisKKyAgICBBU1NFUlRfRkFM
U0UoW3dlYlZpZXcgX2hhc1NsZWVwRGlzYWJsZXJdKTsKKworICAgIGF1dG8gY3JlYXRlU2xlZXBE
aXNhYmxlciA9IFsmXSB7CisgICAgICAgIHJldHVybiBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRp
bmdKYXZhU2NyaXB0OkAid2luZG93LmludGVybmFscy5jcmVhdGVTbGVlcERpc2FibGVyKFwiVGVz
dERpc2FibGVyXCIsIHRydWUpIl0ubG9uZ0xvbmdWYWx1ZTsKKyAgICB9OworCisgICAgYXV0byBp
ZGVudGlmaWVyID0gY3JlYXRlU2xlZXBEaXNhYmxlcigpOworCisgICAgQVNTRVJUX05FKGlkZW50
aWZpZXIsIDApOworCisgICAgQVNTRVJUX1RSVUUoW3dlYlZpZXcgX2hhc1NsZWVwRGlzYWJsZXJd
KTsKKworICAgIGF1dG8gZGVzdHJveVNsZWVwRGlzYWJsZXIgPSBbJl0geworICAgICAgICBOU1N0
cmluZyAqanMgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIndpbmRvdy5pbnRlcm5hbHMu
ZGVzdHJveVNsZWVwRGlzYWJsZXIoJWxsZCkiLCBpZGVudGlmaWVyXTsKKyAgICAgICAgcmV0dXJu
IFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6anNdOworICAgIH07CisKKyAg
ICBBU1NFUlRfVFJVRShkZXN0cm95U2xlZXBEaXNhYmxlcigpKTsKKworICAgIEFTU0VSVF9GQUxT
RShbd2ViVmlldyBfaGFzU2xlZXBEaXNhYmxlcl0pOworfQorCisjZW5kaWYgLy8gV0tfSEFWRV9D
X1NQSQo=
</data>
<flag name="review"
          id="410260"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394914</attachid>
            <date>2020-03-30 07:15:41 -0700</date>
            <delta_ts>2020-03-30 07:48:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209676-20200330071540.patch</filename>
            <type>text/plain</type>
            <size>49151</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTE5NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDIwLTAzLTMwICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFNsZWVwIGRp
c2FibGluZyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBTaW5jZSBzbGVlcCBkaXNhYmxpbmcg
aXMgY2F1c2luZyBjb21tdW5pY2F0aW9uIHdpdGggdGhlIHBvd2VyIG1hbmFnZW1lbnQgc2Vydmlj
ZSwgaXQgc2hvdWxkIGJlIHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgVGhp
cyBwYXRjaCBmaXhlcyB0aGlzIGJ5IGNyZWF0aW5nIGEgc2xlZXAgZGlzYWJsZXIgY2xpZW50LCB3
aGljaCB3aWxsIG5vdGlmeSB0aGUgVUkgcHJvY2VzcyB3aGVuIGEgc2xlZXAgZGlzYWJsZXIgaXMg
YmVpbmcKKyAgICAgICAgY3JlYXRlZCBhbmQgZGVzdHJveWVkLiBJbiByZXNwb25zZSB0byB0aGVz
ZSBtZXNzYWdlcywgdGhlIFVJIHByb2Nlc3Mgd2lsbCBwZXJmb3JtIHRoZSBhY3R1YWwgc2xlZXAg
ZGlzYWJsaW5nIGFuZCBlbmFibGluZy4KKyAgICAgICAgQSBuZXcgc2xlZXAgZGlzYWJsZXIgY2xh
c3MgaXMgY3JlYXRlZCB3aGljaCB3cmFwcyB0aGUgUEFMIHNsZWVwIGRpc2FibGVyLCBhbmQgbm90
aWZpZXMgdGhlIHNsZWVwIGRpc2FibGVyIGNsaWVudCB3aGVuIHNldC4KKyAgICAgICAgSWYgdGhl
IHNsZWVwIGRpc2FibGVyIGNsaWVudCBpcyBzZXQsIGEgUEFMIHNsZWVwIGRpc2FibGVyIGluc3Rh
bmNlIHdpbGwgbm90IGJlIGNyZWF0ZWQgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcywgc2luY2Ug
dGhpcworICAgICAgICB3aWxsIHRoZW4gaGFwcGVuIGluIHRoZSBVSSBwcm9jZXNzLgorCisgICAg
ICAgIEFQSSB0ZXN0OiBXZWJLaXQuU2xlZXBEaXNhYmxlcgorCisgICAgICAgICogSGVhZGVycy5j
bWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZVNsZWVwRGlzYWJsaW5n
KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9TbGVlcERpc2FibGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTbGVlcERpc2Fi
bGVyOjpTbGVlcERpc2FibGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXI6On5T
bGVlcERpc2FibGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TbGVlcERpc2FibGVyLmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6U2xlZXBEaXNhYmxlcjo6dHlwZSBjb25zdCk6CisgICAgICAg
ICogcGxhdGZvcm0vU2xlZXBEaXNhYmxlckNsaWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6c2xlZXBEaXNhYmxlckNsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vU2xlZXBEaXNh
YmxlckNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJDbGll
bnQ6On5TbGVlcERpc2FibGVyQ2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TbGVlcERpc2Fi
bGVySWRlbnRpZmllci5oOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmNyZWF0ZVNsZWVwRGlzYWJsZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpkZXN0cm95U2xlZXBEaXNhYmxlcik6CisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6
CisKIDIwMjAtMDMtMzAgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAg
ICAgICBNYXJrIFBvaW50ZXIgRXZlbnRzIGFuZCBXZWIgQW5pbWF0aW9ucyBmZWF0dXJlcyBhcyBj
b21wbGV0ZWQgaW4gaHR0cHM6Ly93ZWJraXQub3JnL3N0YXR1cy8KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQkocmV2aXNpb24gMjU5MTk2KQorKysgU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQko
d29ya2luZyBjb3B5KQpAQCAtMTAwOSw2ICsxMDA5LDkgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9G
UkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVW
YWx1ZS5oCiAgICAgcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmgKICAgICBwbGF0Zm9ybS9TaGFyZWRT
dHJpbmdIYXNoLmgKKyAgICBwbGF0Zm9ybS9TbGVlcERpc2FibGVyLmgKKyAgICBwbGF0Zm9ybS9T
bGVlcERpc2FibGVyQ2xpZW50LmgKKyAgICBwbGF0Zm9ybS9TbGVlcERpc2FibGVySWRlbnRpZmll
ci5oCiAgICAgcGxhdGZvcm0vU3VkZGVuVGVybWluYXRpb24uaAogICAgIHBsYXRmb3JtL1N1cHBs
ZW1lbnRhYmxlLmgKICAgICBwbGF0Zm9ybS9UaGVtZVR5cGVzLmgKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CShyZXZpc2lvbiAyNTkxOTYpCisrKyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMTc5OSw2ICsxNzk5LDggQEAgcGxhdGZvcm0vU2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZS5jcHAKIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAKIHBsYXRmb3JtL1NoYXJlZEJ1
ZmZlckNodW5rUmVhZGVyLmNwcAogcGxhdGZvcm0vU2hhcmVkU3RyaW5nSGFzaC5jcHAKK3BsYXRm
b3JtL1NsZWVwRGlzYWJsZXIuY3BwCitwbGF0Zm9ybS9TbGVlcERpc2FibGVyQ2xpZW50LmNwcAog
cGxhdGZvcm0vU3RhdGljUGFzdGVib2FyZC5jcHAKIHBsYXRmb3JtL1RoZW1lLmNwcAogcGxhdGZv
cm0vVGhyZWFkR2xvYmFsRGF0YS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1OTE5NikKKysrIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5
KQpAQCAtMzk4OCw2ICszOTg4LDkgQEAKIAkJQzEwNURBNjQwRjNBQTZCODAwMURENDRGIC8qIFRl
eHRFbmNvZGluZ0RldGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDMTA1REE2MzBGM0FBNkI4MDAxREQ0NEYgLyogVGV4dEVuY29kaW5nRGV0ZWN0
b3IuaCAqLzsgfTsKIAkJQzExQTlFQ0UyMTQwM0E1QzAwQ0ZCMjBBIC8qIFN3aXRjaGluZ0dQVUNs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzEx
QTlFQ0QyMTQwM0E1QzAwQ0ZCMjBBIC8qIFN3aXRjaGluZ0dQVUNsaWVudC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMxNDkzODA3MjIzNDU1MUEw
MDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNDkzODA1MjIzNDI3MTkwMDBDRDcwNyAvKiBTcGVl
Y2hTeW50aGVzaXNDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlDMTQ5RDU1RDI0MkVBNkI5MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE0OUQ1NUEy
NDJFQTRGOTAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDMTQ5RDU1RjI0MkVBN0I4MDAzRUJCMTIgLyog
U2xlZXBEaXNhYmxlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzE0OUQ1NUIyNDJFQTRGQTAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXJDbGll
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlD
MTQ5RDU2NzI0MkVCODRBMDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlcklkZW50aWZpZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNDlENTY1MjQyRUI3
NjUwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVySWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMxNjkyREQyMjNEMjNBQkQwMDZFODhG
NyAvKiBTeXN0ZW1CYXR0ZXJ5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzE2OTJERDEyM0QyM0FCRDAwNkU4OEY3IC8qIFN5c3RlbUJhdHRlcnkubW0g
Ki87IH07CiAJCUMxNjkyREQ1MjNEMjNFMDgwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTY5MkRENDIzRDIz
QUUwMDA2RTg4RjcgLyogU3lzdGVtQmF0dGVyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMxRTFEMjM2MjAzREYxNTQwMDU4NDY2NSAvKiBTY3Jl
ZW5Qcm9wZXJ0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMUUxRDIzNTIwM0RGMTU0MDA1ODQ2NjUgLyogU2NyZWVuUHJvcGVydGllcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMzU4Nyw4ICsx
MzU5MCwxMyBAQAogCQlDMTFBOUVEMjIxNDA1NzhCMDBDRkIyMEEgLyogU3dpdGNoaW5nR1BVQ2xp
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN3aXRjaGluZ0dQVUNsaWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxMzc4NDZCMjQyQkVFQkEwMEU4NkZBOCAvKiBQbGF0
Zm9ybVNjcmVlbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0
Zm9ybVNjcmVlbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNDkzODA1MjIz
NDI3MTkwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3BlZWNoU3ludGhlc2lzQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMx
NDlENTU5MjQyRUE0RjgwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNsZWVwRGlzYWJsZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDMTQ5RDU1QTI0MkVBNEY5MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTbGVlcERpc2FibGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMxNDlENTVCMjQyRUE0RkEwMDNFQkIxMiAvKiBT
bGVlcERpc2FibGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNs
ZWVwRGlzYWJsZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzE0OUQ1
NjUyNDJFQjc2NTAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMxNjkyREQxMjNEMjNBQkQwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gU3lzdGVtQmF0dGVyeS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQzE2OTJERDQyM0QyM0FFMDAwNkU4OEY3IC8qIFN5c3RlbUJhdHRlcnkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3lzdGVtQmF0dGVyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlDMThGQjUxODI0MkY5MzgyMDA3RTk4NzUgLyogU2xlZXBEaXNhYmxlckNsaWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTbGVlcERpc2FibGVyQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQzFFMUQyMzUyMDNERjE1NDAwNTg0NjY1IC8qIFNjcmVlblByb3BlcnRp
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyZWVuUHJvcGVydGllcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDMjAxNUMwOTFCRTZGRTJDMDA4MjIzODkgLyogRm9udFZhcmlhbnRCdWls
ZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRWYXJpYW50QnVpbGRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDMjBGNEY2NDIxREZCRTVDMDA3MEM0NUEgLyogV0hMU0xUeXBlUmVm
ZXJlbmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdITFNMVHlwZVJlZmVyZW5jZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjI1Myw2ICsyNjI2MSwxMSBAQAogCQkJCTgz
NERGQUNFMUY3REFFNTcwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmNwcCAqLywKIAkJCQk4
MzRERkFDQzFGN0RBRTU2MDBDMjcyNUIgLyogU2hhcmVkU3RyaW5nSGFzaC5oICovLAogCQkJCTkz
MzA5RUEwMDk5RUI3OEMwMDU2RTU4MSAvKiBTaGFyZWRUaW1lci5oICovLAorCQkJCUMxNDlENTU5
MjQyRUE0RjgwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyLmNwcCAqLywKKwkJCQlDMTQ5RDU1QTI0
MkVBNEY5MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlci5oICovLAorCQkJCUMxOEZCNTE4MjQyRjkz
ODIwMDdFOTg3NSAvKiBTbGVlcERpc2FibGVyQ2xpZW50LmNwcCAqLywKKwkJCQlDMTQ5RDU1QjI0
MkVBNEZBMDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlckNsaWVudC5oICovLAorCQkJCUMxNDlENTY1
MjQyRUI3NjUwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVySWRlbnRpZmllci5oICovLAogCQkJCUEz
MzRCRDgyMjE5NEU0NjEwMDAwRDc3RiAvKiBTU0xLZXlHZW5lcmF0b3IuY3BwICovLAogCQkJCUY1
ODc4NjYyMDJERTNCMTEwMUVBNDEyMiAvKiBTU0xLZXlHZW5lcmF0b3IuaCAqLywKIAkJCQlGNDMz
RTkwNDFEQkJEQkMyMDBFRjBEMTQgLyogU3RhdGljUGFzdGVib2FyZC5jcHAgKi8sCkBAIC0zMjcy
Niw2ICszMjczOSw5IEBACiAJCQkJOTQ0NENCRDYxRDg2MEM4QjAwNzNBMDc0IC8qIFNpemVzQXR0
cmlidXRlUGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NDQ0Q0JENDFEODYwQzhCMDA3M0Ew
NzQgLyogU2l6ZXNDYWxjUGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUU5MTFDRDBFRjg2
RDQ3MDA5RDBDQUYgLyogU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQzE0OUQ1NUQyNDJFQTZCOTAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUMxNDlENTVGMjQyRUE3QjgwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKKwkJCQlDMTQ5RDU2NzI0MkVCODRBMDAzRUJCMTIgLyogU2xlZXBE
aXNhYmxlcklkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNTBGOUYxMTJCNkUwRTcw
MDA4Qzg2MCAvKiBTbGlkZXJUaHVtYkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCNTMy
RUE0MUJBOTI4NTcwMDM4QTgyNyAvKiBTbG90QXNzaWdubWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNEI2RkE2RjQwQzM5RTQ4QzAwMDg3MDExIC8qIFNtYXJ0UmVwbGFjZS5oIGluIEhlYWRlcnMg
Ki8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHJldmlz
aW9uIDI1OTE5NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTkyLDYgKzkyLDcgQEAKICNpbmNsdWRlICJTZWN1cml0eVBvbGlj
eS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2lu
Y2x1ZGUgIlNsZWVwRGlzYWJsZXIuaCIKICNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCiAjaW5jbHVk
ZSAiVXNlckNvbnRlbnRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0
b3IuaCIKQEAgLTk5LDcgKzEwMCw2IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVWludDhB
cnJheS5oPgogI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+Ci0j
aW5jbHVkZSA8cGFsL3N5c3RlbS9TbGVlcERpc2FibGVyLmg+CiAjaW5jbHVkZSA8d3RmL0FsZ29y
aXRobXMuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0
Zi9MYW5ndWFnZS5oPgpAQCAtNjk1Myw3ICs2OTUzLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50
Ojp1cGRhdGVTbGVlcERpc2FibAogICAgIGVsc2UgaWYgKHNob3VsZERpc2FibGVTbGVlcCAhPSBT
bGVlcFR5cGU6Ok5vbmUpIHsKICAgICAgICAgYXV0byB0eXBlID0gc2hvdWxkRGlzYWJsZVNsZWVw
ID09IFNsZWVwVHlwZTo6RGlzcGxheSA/IFBBTDo6U2xlZXBEaXNhYmxlcjo6VHlwZTo6RGlzcGxh
eSA6IFBBTDo6U2xlZXBEaXNhYmxlcjo6VHlwZTo6U3lzdGVtOwogICAgICAgICBpZiAoIW1fc2xl
ZXBEaXNhYmxlciB8fCBtX3NsZWVwRGlzYWJsZXItPnR5cGUoKSAhPSB0eXBlKQotICAgICAgICAg
ICAgbV9zbGVlcERpc2FibGVyID0gUEFMOjpTbGVlcERpc2FibGVyOjpjcmVhdGUoImNvbS5hcHBs
ZS5XZWJDb3JlOiBIVE1MTWVkaWFFbGVtZW50IHBsYXliYWNrIiwgdHlwZSk7CisgICAgICAgICAg
ICBtX3NsZWVwRGlzYWJsZXIgPSBtYWtlVW5pcXVlPFNsZWVwRGlzYWJsZXI+KCJjb20uYXBwbGUu
V2ViQ29yZTogSFRNTE1lZGlhRWxlbWVudCBwbGF5YmFjayIsIHR5cGUpOwogICAgIH0KIAogICAg
IGlmIChtX3BsYXllcikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5o
CShyZXZpc2lvbiAyNTkxOTYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsMTAgKzYzLDYgQEAKICNpbmNsdWRlIDx3dGYvU3Ry
aW5nUHJpbnRTdHJlYW0uaD4KICNlbmRpZgogCi1uYW1lc3BhY2UgUEFMIHsKLWNsYXNzIFNsZWVw
RGlzYWJsZXI7Ci19Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXVkaW9Tb3VyY2VQ
cm92aWRlcjsKQEAgLTk0LDYgKzkwLDcgQEAgY2xhc3MgTWVkaWFTdHJlYW07CiBjbGFzcyBSZW5k
ZXJNZWRpYTsKIGNsYXNzIFNjcmlwdENvbnRyb2xsZXI7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OworY2xhc3MgU2xlZXBEaXNhYmxlcjsKIGNsYXNzIFNvdXJjZUJ1ZmZlcjsKIGNsYXNz
IFRleHRUcmFja0xpc3Q7CiBjbGFzcyBUaW1lUmFuZ2VzOwpAQCAtMTE2Miw3ICsxMTU5LDcgQEAg
cHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTWVkaWFDb250cm9sbGVyOwogICAgIFJlZlB0cjxN
ZWRpYUNvbnRyb2xsZXI+IG1fbWVkaWFDb250cm9sbGVyOwogCi0gICAgc3RkOjp1bmlxdWVfcHRy
PFBBTDo6U2xlZXBEaXNhYmxlcj4gbV9zbGVlcERpc2FibGVyOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxTbGVlcERpc2FibGVyPiBtX3NsZWVwRGlzYWJsZXI7CiAKICAgICBXZWFrUHRyPGNvbnN0IE1l
ZGlhUmVzb3VyY2VMb2FkZXI+IG1fbGFzdE1lZGlhUmVzb3VyY2VMb2FkZXJGb3JUZXN0aW5nOwog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVyLmNwcAkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlNsZWVwRGlzYWJsZXIuaCIKKworI2luY2x1ZGUgIlNsZWVwRGlzYWJs
ZXJDbGllbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTbGVlcERpc2FibGVyOjpTbGVl
cERpc2FibGVyKGNvbnN0IGNoYXIqIHJlYXNvbiwgUEFMOjpTbGVlcERpc2FibGVyOjpUeXBlIHR5
cGUpCisgICAgOiBtX3R5cGUodHlwZSkKK3sKKyAgICBpZiAoc2xlZXBEaXNhYmxlckNsaWVudCgp
KSB7CisgICAgICAgIG1faWRlbnRpZmllciA9IFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyOjpnZW5l
cmF0ZSgpOworICAgICAgICBzbGVlcERpc2FibGVyQ2xpZW50KCktPmRpZENyZWF0ZVNsZWVwRGlz
YWJsZXIobV9pZGVudGlmaWVyLCByZWFzb24sIHR5cGUgPT0gUEFMOjpTbGVlcERpc2FibGVyOjpU
eXBlOjpEaXNwbGF5KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcGxhdGZvcm1T
bGVlcERpc2FibGVyID0gUEFMOjpTbGVlcERpc2FibGVyOjpjcmVhdGUocmVhc29uLCB0eXBlKTsK
K30KKworU2xlZXBEaXNhYmxlcjo6flNsZWVwRGlzYWJsZXIoKQoreworICAgIGlmIChzbGVlcERp
c2FibGVyQ2xpZW50KCkpCisgICAgICAgIHNsZWVwRGlzYWJsZXJDbGllbnQoKS0+ZGlkRGVzdHJv
eVNsZWVwRGlzYWJsZXIobV9pZGVudGlmaWVyKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJsZXIuaAkobm9uZXhpc3Rl
bnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiU2xlZXBEaXNhYmxlcklkZW50aWZpZXIuaCIKKworI2luY2x1ZGUgPHBhbC9zeXN0ZW0v
U2xlZXBEaXNhYmxlci5oPgorI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2xlZXBEaXNhYmxlciB7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQgU2xlZXBEaXNhYmxl
cihjb25zdCBjaGFyKiwgUEFMOjpTbGVlcERpc2FibGVyOjpUeXBlKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB+U2xlZXBEaXNhYmxlcigpOworCisgICAgUEFMOjpTbGVlcERpc2FibGVyOjpUeXBlIHR5
cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKworcHJpdmF0ZToKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8UEFMOjpTbGVlcERpc2FibGVyPiBtX3BsYXRmb3JtU2xlZXBEaXNhYmxlcjsKKyAgICBT
bGVlcERpc2FibGVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgUEFMOjpTbGVlcERpc2Fi
bGVyOjpUeXBlIG1fdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJsZXJDbGllbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJsZXJDbGllbnQuY3BwCShub25l
eGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJsZXJDbGllbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2xlZXBEaXNhYmxlckNsaWVudC5oIgorCisjaW5jbHVk
ZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RkOjp1
bmlxdWVfcHRyPFNsZWVwRGlzYWJsZXJDbGllbnQ+JiBzbGVlcERpc2FibGVyQ2xpZW50KCkKK3sK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjp1bmlxdWVfcHRyPFNsZWVwRGlzYWJsZXJD
bGllbnQ+PiBjbGllbnQ7CisgICAgcmV0dXJuIGNsaWVudC5nZXQoKTsKK30KKworfQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxlckNsaWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJsZXJDbGllbnQuaAkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVyQ2xpZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MiBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2xlZXBEaXNhYmxl
cklkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFNsZWVwRGlzYWJsZXJDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1
YWwgflNsZWVwRGlzYWJsZXJDbGllbnQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRl
U2xlZXBEaXNhYmxlcihTbGVlcERpc2FibGVySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiByZWFz
b24sIGJvb2wgZGlzcGxheSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWREZXN0cm95U2xlZXBE
aXNhYmxlcihTbGVlcERpc2FibGVySWRlbnRpZmllcikgPSAwOworfTsKKworV0VCQ09SRV9FWFBP
UlQgc3RkOjp1bmlxdWVfcHRyPFNsZWVwRGlzYWJsZXJDbGllbnQ+JiBzbGVlcERpc2FibGVyQ2xp
ZW50KCk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NsZWVwRGlzYWJsZXJJZGVudGlmaWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxlcklkZW50aWZpZXIuaAkobm9uZXhpc3RlbnQpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVySWRlbnRpZmllci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworZW51bSBTbGVlcERpc2FibGVySWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgU2xlZXBEaXNh
YmxlcklkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFNsZWVwRGlzYWJsZXJJZGVudGlmaWVy
VHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAJKHJldmlzaW9uIDI1OTE5NikKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTU2NCw0ICs1NTY0LDE3IEBAIFN0
cmluZyBJbnRlcm5hbHM6OmZvY3VzUmluZ0NvbG9yKCkKICAgICByZXR1cm4gUmVuZGVyVGhlbWU6
OnNpbmdsZXRvbigpLmZvY3VzUmluZ0NvbG9yKG9wdGlvbnMpLmNzc1RleHQoKTsKIH0KIAordW5z
aWduZWQgSW50ZXJuYWxzOjpjcmVhdGVTbGVlcERpc2FibGVyKGNvbnN0IFN0cmluZyYgcmVhc29u
LCBib29sIGRpc3BsYXkpCit7CisgICAgc3RhdGljIHVuc2lnbmVkIGxhc3RVc2VkSWRlbnRpZmll
ciA9IDA7CisgICAgYXV0byBzbGVlcERpc2FibGVyID0gbWFrZVVuaXF1ZTxXZWJDb3JlOjpTbGVl
cERpc2FibGVyPihyZWFzb24udXRmOCgpLmRhdGEoKSwgZGlzcGxheSA/IFBBTDo6U2xlZXBEaXNh
Ymxlcjo6VHlwZTo6RGlzcGxheSA6IFBBTDo6U2xlZXBEaXNhYmxlcjo6VHlwZTo6U3lzdGVtKTsK
KyAgICBtX3NsZWVwRGlzYWJsZXJzLmFkZCgrK2xhc3RVc2VkSWRlbnRpZmllciwgV1RGTW92ZShz
bGVlcERpc2FibGVyKSk7CisgICAgcmV0dXJuIGxhc3RVc2VkSWRlbnRpZmllcjsKK30KKworYm9v
bCBJbnRlcm5hbHM6OmRlc3Ryb3lTbGVlcERpc2FibGVyKHVuc2lnbmVkIGlkZW50aWZpZXIpCit7
CisgICAgcmV0dXJuIG1fc2xlZXBEaXNhYmxlcnMucmVtb3ZlKGlkZW50aWZpZXIpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJ
KHJldmlzaW9uIDI1OTE5NikKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJPcmllbnRhdGlvbk5v
dGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUNvbnNvbGVDbGllbnQuaCIKICNpbmNsdWRlICJSZWFs
dGltZU1lZGlhU291cmNlLmgiCisjaW5jbHVkZSAiU2xlZXBEaXNhYmxlci5oIgogI2luY2x1ZGUg
IlRleHRJbmRpY2F0b3IuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GbG9hdDMyQXJyYXku
aD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KQEAgLTk2MCw2ICs5NjEsOSBAQCBwdWJsaWM6
CiAKICAgICBib29sIGlzUmVtb3RlVUlBcHBGb3JBY2Nlc3NpYmlsaXR5KCk7CiAKKyAgICB1bnNp
Z25lZCBjcmVhdGVTbGVlcERpc2FibGVyKGNvbnN0IFN0cmluZyYgcmVhc29uLCBib29sIGRpc3Bs
YXkpOworICAgIGJvb2wgZGVzdHJveVNsZWVwRGlzYWJsZXIodW5zaWduZWQgaWRlbnRpZmllcik7
CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Jik7CiAgICAgRG9j
dW1lbnQqIGNvbnRleHREb2N1bWVudCgpIGNvbnN0OwpAQCAtOTgxLDYgKzk4NSw4IEBAIHByaXZh
dGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yU3R1YkZyb250ZW5kPiBtX2luc3Bl
Y3RvckZyb250ZW5kOwogICAgIFJlZlB0cjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBtX2NhY2hl
U3RvcmFnZUNvbm5lY3Rpb247CisKKyAgICBIYXNoTWFwPHVuc2lnbmVkLCBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6U2xlZXBEaXNhYmxlcj4+IG1fc2xlZXBEaXNhYmxlcnM7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CShyZXZpc2lvbiAyNTkxOTYpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTg2Miw0ICs4NjIsNyBAQCBlbnVtIENvbXBvc2l0aW5nUG9s
aWN5IHsKICAgICBib29sZWFuIHN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpOwogCiAgICAgYm9v
bGVhbiBpc1JlbW90ZVVJQXBwRm9yQWNjZXNzaWJpbGl0eSgpOworCisgICAgdW5zaWduZWQgbG9u
ZyBjcmVhdGVTbGVlcERpc2FibGVyKERPTVN0cmluZyByZWFzb24sIGJvb2xlYW4gZGlzcGxheSk7
CisgICAgYm9vbGVhbiBkZXN0cm95U2xlZXBEaXNhYmxlcih1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIpOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTkxOTYpCisrKyBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDIwLTAzLTMwICBQ
ZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFNs
ZWVwIGRpc2FibGluZyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NzYKKworICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBTaW5jZSBzbGVlcCBkaXNh
YmxpbmcgaXMgY2F1c2luZyBjb21tdW5pY2F0aW9uIHdpdGggdGhlIHBvd2VyIG1hbmFnZW1lbnQg
c2VydmljZSwgaXQgc2hvdWxkIGJlIHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAg
ICAgVGhlIFVJIHByb2Nlc3Mgd2lsbCBiZSBub3RpZmllZCBieSB0aGUgV2ViQ29udGVudCBwcm9j
ZXNzIGFib3V0IHNsZWVwIGRpc2FibGVycyBiZWluZyBjcmVhdGVkIGFuZCBkZXN0cm95ZWQsIGFu
ZCB3aWxsIHBlcmZvcm0KKyAgICAgICAgdGhlIGFjdHVhbCBzbGVlcCBkaXNhYmxpbmcgYW5kIGVu
YWJsaW5nLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAg
ICogU291cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlRm9yVGVzdGluZy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3VGVzdGluZy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9oYXNTbGVlcERpc2FibGVyXSk6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlU2xlZXBEaXNhYmxlcik6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkRGVzdHJveVNsZWVwRGlzYWJsZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Omhhc1NsZWVwRGlzYWJsZXIpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2FjeUNE
TS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvaW9zL1JlbW90ZU1lZGlhU2Vz
c2lvbkhlbHBlci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvaW9zL1JlbW90
ZU1lZGlhU2Vzc2lvbkhlbHBlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9WaWV3
R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlNs
ZWVwRGlzYWJsZXJDbGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViU2xlZXBE
aXNhYmxlckNsaWVudDo6ZGlkQ3JlYXRlU2xlZXBEaXNhYmxlcik6CisgICAgICAgIChXZWJLaXQ6
OldlYlNsZWVwRGlzYWJsZXJDbGllbnQ6OmRpZERlc3Ryb3lTbGVlcERpc2FibGVyKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlNsZWVwRGlzYWJsZXJDbGllbnQuaDogQWRkZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDIwLTAzLTI5
ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgW0F1dG9TaXpp
bmddIEJyaW5nIGJhY2sgdGhlIG9sZCBhdXRvLXNpemluZyBjb2RlIGFzIGEgZGVwcmVjYXRlZCBj
b2RlcGF0aCBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zCkluZGV4OiBTb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU291cmNlcy50eHQJKHJldmlz
aW9uIDI1OTE5NikKKysrIFNvdXJjZS9XZWJLaXQvU291cmNlcy50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTQ3OCw2ICs0NzgsNyBAQCBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZUNvCiAKIFdlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmNwcAogV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcAorV2ViUHJvY2Vzcy9XZWJTbGVlcERpc2FibGVyQ2xpZW50LmNwcAog
CiAvLyBGSVhNRSgyMDYyNjYpOiBBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmgncyAibmFtZXNw
YWNlIFByb3RvY29sIiBjb25mbGljdHMgd2l0aCBvYmpjL3J1bnRpbWUuaCdzICJ0eXBlZGVmIHN0
cnVjdCBvYmpjX29iamVjdCBQcm90b2NvbCIKIFdlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRv
bWF0aW9uU2Vzc2lvblByb3h5LmNwcCBAbm8tdW5pZnkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weQkocmV2aXNpb24gMjU5MTk2KQorKysgU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQkod29ya2luZyBjb3B5KQpAQCAtMjIyLDYgKzIy
Miw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmUKICAgICAgICAg
J1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudERhdGEnLAogICAgICAgICAnV2ViQ29yZTo6
U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcicsCisgICAgICAgICdXZWJDb3JlOjpTbGVl
cERpc2FibGVySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6QWN0aXZpdHlTdGF0ZUNoYW5nZUlEJywK
ICAgICAgICAgJ1dlYktpdDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVy
JywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAko
cmV2aXNpb24gMjU5MTk2KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc4MCw2ICsxNzgwLDI0IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Byb3h5OjpkaWRDcmVhdGVDb250ZXh0SW4KIH0KICNlbmRpZgogCit2b2lkIFdlYlByb2Nl
c3NQcm94eTo6ZGlkQ3JlYXRlU2xlZXBEaXNhYmxlcihTbGVlcERpc2FibGVySWRlbnRpZmllciBp
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHJlYXNvbiwgYm9vbCBkaXNwbGF5KQoreworICAgIE1F
U1NBR0VfQ0hFQ0soaWRlbnRpZmllcik7CisgICAgYXV0byBzbGVlcERpc2FibGVyID0gbWFrZVVu
aXF1ZTxXZWJDb3JlOjpTbGVlcERpc2FibGVyPihyZWFzb24udXRmOCgpLmRhdGEoKSwgZGlzcGxh
eSA/IFBBTDo6U2xlZXBEaXNhYmxlcjo6VHlwZTo6RGlzcGxheSA6IFBBTDo6U2xlZXBEaXNhYmxl
cjo6VHlwZTo6U3lzdGVtKTsKKyAgICBtX3NsZWVwRGlzYWJsZXJzLmFkZChpZGVudGlmaWVyLCBX
VEZNb3ZlKHNsZWVwRGlzYWJsZXIpKTsKK30KKwordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZERl
c3Ryb3lTbGVlcERpc2FibGVyKFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7
CisgICAgTUVTU0FHRV9DSEVDSyhpZGVudGlmaWVyKTsKKyAgICBtX3NsZWVwRGlzYWJsZXJzLnJl
bW92ZShpZGVudGlmaWVyKTsKK30KKworYm9vbCBXZWJQcm9jZXNzUHJveHk6Omhhc1NsZWVwRGlz
YWJsZXIoKSBjb25zdAoreworICAgIHJldHVybiAhbV9zbGVlcERpc2FibGVycy5pc0VtcHR5KCk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgTUVTU0FHRV9DSEVDSwpJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgJKHJldmlzaW9uIDI1
OTE5NikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRl
bnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NoYXJlZFN0cmluZ0hhc2guaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NsZWVw
RGlzYWJsZXIuaD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5o
PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0zNzgsNiArMzc5LDggQEAgcHVibGljOgog
ICAgIHZvaWQgZ3B1UHJvY2Vzc0NyYXNoZWQoKTsKICNlbmRpZgogCisgICAgYm9vbCBoYXNTbGVl
cERpc2FibGVyKCkgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBXZWJQcm9jZXNzUHJveHkoV2Vi
UHJvY2Vzc1Bvb2wmLCBXZWJzaXRlRGF0YVN0b3JlKiwgSXNQcmV3YXJtZWQpOwogCkBAIC00NzUs
NiArNDc4LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNlbmRNZXNzYWdlVG9XZWJDb250ZXh0V2l0
aFJlcGx5KFVzZXJNZXNzYWdlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVXNlck1lc3NhZ2Um
Jik+JiYpOwogI2VuZGlmCiAKKyAgICB2b2lkIGRpZENyZWF0ZVNsZWVwRGlzYWJsZXIoV2ViQ29y
ZTo6U2xlZXBEaXNhYmxlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBib29sIGRp
c3BsYXkpOworICAgIHZvaWQgZGlkRGVzdHJveVNsZWVwRGlzYWJsZXIoV2ViQ29yZTo6U2xlZXBE
aXNhYmxlcklkZW50aWZpZXIpOworCiAgICAgZW51bSBjbGFzcyBJc1dlYWsgeyBObywgWWVzIH07
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgV2Vha09yU3Ryb25nUHRyIHsKICAgICBw
dWJsaWM6CkBAIC01ODAsNiArNTg2LDggQEAgcHJpdmF0ZToKICAgICAgICAgV2Vha0hhc2hTZXQ8
V2ViUHJvY2Vzc1Byb3h5PiBjbGllbnRQcm9jZXNzZXM7CiAgICAgfTsKICAgICBPcHRpb25hbDxT
ZXJ2aWNlV29ya2VySW5mb3JtYXRpb24+IG1fc2VydmljZVdvcmtlckluZm9ybWF0aW9uOworCisg
ICAgSGFzaE1hcDxXZWJDb3JlOjpTbGVlcERpc2FibGVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlNsZWVwRGlzYWJsZXI+PiBtX3NsZWVwRGlzYWJsZXJzOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNTkxOTYpCisrKyBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcg
Y29weSkKQEAgLTgwLDQgKzgwLDcgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5IExlZ2Fj
eVJlY2VpdgogICAgIFNlbmRNZXNzYWdlVG9XZWJDb250ZXh0KHN0cnVjdCBXZWJLaXQ6OlVzZXJN
ZXNzYWdlIHVzZXJNZXNzYWdlKQogICAgIFNlbmRNZXNzYWdlVG9XZWJDb250ZXh0V2l0aFJlcGx5
KHN0cnVjdCBXZWJLaXQ6OlVzZXJNZXNzYWdlIHVzZXJNZXNzYWdlKSAtPiAoc3RydWN0IFdlYktp
dDo6VXNlck1lc3NhZ2UgcmVwbHlNZXNzYWdlKSBBc3luYwogI2VuZGlmCisKKyAgICBEaWRDcmVh
dGVTbGVlcERpc2FibGVyKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFN0cmluZyByZWFzb24sIGJvb2wgZGlzcGxheSkKKyAgICBEaWREZXN0cm95U2xlZXBEaXNh
YmxlcihXZWJDb3JlOjpTbGVlcERpc2FibGVySWRlbnRpZmllciBpZGVudGlmaWVyKQogfQpJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JU
ZXN0aW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmgJKHJldmlzaW9uIDI1OTE5NikKKysrIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5o
CSh3b3JraW5nIGNvcHkpCkBAIC02NCw0ICs2NCw1IEBACiArICh2b2lkKV9zZXRBcHBsaWNhdGlv
bkJ1bmRsZUlkZW50aWZpZXI6KE5TU3RyaW5nICopYnVuZGxlSWRlbnRpZmllcjsKICsgKHZvaWQp
X2NsZWFyQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyVGVzdGluZ092ZXJyaWRlOwogCistIChC
T09MKV9oYXNTbGVlcERpc2FibGVyOwogQGVuZApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0JKHJldmlzaW9uIDI1
OTE5NikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0
aW5nLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMjAsNCArMjIwLDkgQEAgKyAodm9pZClfY2xlYXJB
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZQogICAgIFdlYkNvcmU6OmNsZWFyQXBwbGljYXRpb25C
dW5kbGVJZGVudGlmaWVyVGVzdGluZ092ZXJyaWRlKCk7CiB9CiAKKy0gKEJPT0wpX2hhc1NsZWVw
RGlzYWJsZXIKK3sKKyAgICByZXR1cm4gX3BhZ2UgJiYgX3BhZ2UtPnByb2Nlc3MoKS5oYXNTbGVl
cERpc2FibGVyKCk7Cit9CisKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjU5MTk2KQorKysgU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
NDk4Myw2ICs0OTgzLDggQEAKIAkJQzE4MTczNUUyMDU4MzlGNjAwREZEQTY1IC8qIERyYXdpbmdB
cmVhTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERyYXdpbmdBcmVhTWFjLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE4MTczNjAyMDU4NDI0NzAwREZEQTY1IC8qIERpc3Bs
YXlMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BsYXlMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUMxODE3MzYyMjA1ODQ0QTkwMERGREE2NSAvKiBEaXNwbGF5TGluay5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5TGluay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMxOEZCNTFEMjQyRjlGNzYwMDdFOTg3NSAvKiBXZWJTbGVlcERpc2FibGVyQ2xp
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNsZWVwRGlz
YWJsZXJDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMThGQjUxRTI0
MkY5Rjc3MDA3RTk4NzUgLyogV2ViU2xlZXBEaXNhYmxlckNsaWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTbGVlcERpc2FibGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUMxRTEyM0I5MjBBMTE1NzIwMDI2NDZGNCAvKiBQREZDb250ZXh0
TWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQREZDb250ZXh0TWVudS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTE3Mzg4MDEyREY4RjRGMDBFRTNGNDcg
LyogRHJhZ0NvbnRyb2xsZXJBY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRHJhZ0NvbnRyb2xsZXJBY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QzUyMzdGNUYxMjQ0MUNBMzAwNzgwNDcyIC8qIFdlYkVkaXRvckNsaWVudE1hYy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkVkaXRvckNsaWVudE1hYy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg3MDEsNiArODcwMyw4IEBACiAJCQkJQkMw
MzJEOTExMEY0MzdBRjAwNThDMTVBIC8qIFdlYlByb2Nlc3MuaCAqLywKIAkJCQlCQzMwNjZCOTEy
NUE0MzYzMDBFNzEyNzggLyogV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLywKIAkJCQlCQ0UwRTQy
NDE2OEI3QTI4MDA1N0U2NkEgLyogV2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCAqLywKKwkJCQlDMThG
QjUxRDI0MkY5Rjc2MDA3RTk4NzUgLyogV2ViU2xlZXBEaXNhYmxlckNsaWVudC5jcHAgKi8sCisJ
CQkJQzE4RkI1MUUyNDJGOUY3NzAwN0U5ODc1IC8qIFdlYlNsZWVwRGlzYWJsZXJDbGllbnQuaCAq
LywKIAkJCSk7CiAJCQlwYXRoID0gV2ViUHJvY2VzczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU2xlZXBEaXNhYmxlckNsaWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlNsZWVwRGlz
YWJsZXJDbGllbnQuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJTbGVlcERpc2FibGVyQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ0
IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKKyogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlNsZWVwRGlzYWJsZXJDbGllbnQuaCIKKworI2luY2x1
ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJTbGVlcERpc2FibGVyQ2xpZW50OjpkaWRD
cmVhdGVTbGVlcERpc2FibGVyKFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgcmVhc29uLCBib29sIGRpc3BsYXkpCit7CisgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJv
Y2Vzc1Byb3h5OjpEaWRDcmVhdGVTbGVlcERpc2FibGVyKGlkZW50aWZpZXIsIHJlYXNvbiwgZGlz
cGxheSksIDApOworfQorCit2b2lkIFdlYlNsZWVwRGlzYWJsZXJDbGllbnQ6OmRpZERlc3Ryb3lT
bGVlcERpc2FibGVyKFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpEaWREZXN0cm95U2xlZXBEaXNhYmxlcihpZGVudGlm
aWVyKSwgMCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlNsZWVwRGlzYWJsZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU2xlZXBEaXNhYmxlckNsaWVudC5oCShub25leGlzdGVu
dCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTbGVlcERpc2FibGVyQ2xpZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzOSBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8V2ViQ29yZS9TbGVl
cERpc2FibGVyQ2xpZW50Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTbGVl
cERpc2FibGVyQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJDbGllbnQgewor
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHZvaWQgZGlkQ3JlYXRl
U2xlZXBEaXNhYmxlcihTbGVlcERpc2FibGVySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9v
bCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWREZXN0cm95U2xlZXBEaXNhYmxlcihTbGVlcERpc2Fi
bGVySWRlbnRpZmllcikgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUxlZ2FjeUNETS5jcHAJKHJldmlzaW9uIDI1OTE5NikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgs
NiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTEVHQUNZX0VO
Q1JZUFRFRF9NRURJQSkKIAorI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5j
bHVkZSAiUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeS5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNE
TVByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1TZXNzaW9uLmgiCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2lvcy9SZW1vdGVNZWRpYVNl
c3Npb25IZWxwZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvaW9zL1JlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlci5jcHAJKHJldmlzaW9uIDI1OTE5
NikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvaW9zL1JlbW90ZU1lZGlh
U2Vzc2lvbkhlbHBlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDggQEAKICNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNpbmNsdWRlICJD
b25uZWN0aW9uLmgiCisjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2Vz
LmgiCisjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJSZW1vdGVN
ZWRpYVNlc3Npb25IZWxwZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5YmFja1RhcmdldENvY29hLmg+CkluZGV4OiBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2lvcy9SZW1vdGVNZWRpYVNlc3Npb25I
ZWxwZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L2lvcy9SZW1vdGVNZWRpYVNlc3Npb25IZWxwZXIuaAkocmV2aXNpb24gMjU5MTk2KQorKysgU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVs
cGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2
ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlc3Npb25IZWxwZXJJT1MuaD4KIAogbmFtZXNwYWNlIFdl
YktpdCB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3R2VzdHVy
ZUdlb21ldHJ5Q29sbGVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9WaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmNwcAkocmV2aXNpb24g
MjU5MTk2KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld0dlc3R1cmVH
ZW9tZXRyeUNvbGxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9IaXRUZXN0UmVzdWx0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZURvY3VtZW50
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SYW5nZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVy
Vmlldy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEl0ZXJhdG9yLmg+CiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQkocmV2
aXNpb24gMjU5MTk2KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQAogI2ltcG9ydCAiV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc0RhdGFTdG9y
ZVBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW1w
b3J0ICJXZWJTbGVlcERpc2FibGVyQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJzaXRlRGF0YVN0b3Jl
UGFyYW1ldGVycy5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvQ29uZmlnRmlsZS5oPgogI2lt
cG9ydCA8SmF2YVNjcmlwdENvcmUvT3B0aW9ucy5oPgpAQCAtNjMsMTAgKzY0LDEyIEBACiAjaW1w
b3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWVtb3J5
UmVsZWFzZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9OU1Njcm9sbGVySW1wRGV0YWlscy5oPgorI2lt
cG9ydCA8V2ViQ29yZS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oPgogI2ltcG9ydCA8
V2ViQ29yZS9QZXJmb3JtYW5jZUxvZ2dpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGljdHVyZUlu
UGljdHVyZVN1cHBvcnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hl
Y2tzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NXQ29udGV4dE1hbmFnZXIuaD4KKyNpbXBvcnQgPFdl
YkNvcmUvU3lzdGVtQmF0dGVyeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9VVElVdGlsaXRpZXMuaD4K
ICNpbXBvcnQgPGFsZ29yaXRobT4KICNpbXBvcnQgPGRpc3BhdGNoL2Rpc3BhdGNoLmg+CkBAIC0x
MzEsMTEgKzEzNCw2IEBACiAjaW1wb3J0IDxvcy9zdGF0ZV9wcml2YXRlLmg+CiAjZW5kaWYKIAot
I2lmIFBMQVRGT1JNKENPQ09BKQotI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrRXh0ZW5zaW9uQ29u
dGVudEZpbHRlci5oPgotI2ltcG9ydCA8V2ViQ29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+Ci0jZW5kaWYK
LQogI2lmIEhBVkUoQ1NDSEVDS0ZJWERJU0FCTEUpCiBleHRlcm4gIkMiIHZvaWQgX0NTQ2hlY2tG
aXhEaXNhYmxlKCk7CiAjZW5kaWYKQEAgLTMxNyw2ICszMTUsOCBAQCB2b2lkIFdlYlByb2Nlc3M6
OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByCiAgICAgICAgIHNldFZlY3Rvck9mVVRUeXBlSXRlbShX
VEZNb3ZlKHBhcmFtZXRlcnMudmVjdG9yT2ZVVFR5cGVJdGVtKSk7CiAgICAgfQogI2VuZGlmCisK
KyAgICBXZWJDb3JlOjpzbGVlcERpc2FibGVyQ2xpZW50KCkgPSBtYWtlVW5pcXVlPFdlYlNsZWVw
RGlzYWJsZXJDbGllbnQ+KCk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRXZWJz
aXRlRGF0YVN0b3JlUGFyYW1ldGVycyhXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyYmIHBh
cmFtZXRlcnMpCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTkxOTYpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0wMy0zMCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxh
bkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBTbGVlcCBkaXNhYmxpbmcgc2hvdWxkIGJl
IHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5Njc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9T
bGVlcERpc2FibGVyLm1tOiBBZGRlZC4KKyAgICAgICAgKFRFU1QpOgorCiAyMDIwLTAzLTI4ICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVH
UkVTU0lPTihyMjU3OTYzKSBVSSBwcm9jZXNzIGNyYXNoZXMgd2hlbiBzZXR0aW5nIG5hdmlnYXRp
b24gZGVsZWdhdGUgaW5zaWRlIG5hdmlnYXRpb24gZGVsZWdhdGUgY2FsbGJhY2tzCkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjU5MTk2KQorKysgVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTg4Myw2ICs4ODMsNyBAQAogCQlDMEM1RDNDNjE0NTk5MTI5MDBBODAyQTYgLyogR2V0
QmFja2luZ1NjYWxlRmFjdG9yX0J1bmRsZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMwQzVEM0JEMTQ1OThCNkYwMEE4MDJBNiAvKiBHZXRCYWNraW5n
U2NhbGVGYWN0b3JfQnVuZGxlLm1tICovOyB9OwogCQlDMTNEODJEOTI0MTZGMTMyMDBBNjI3OTMg
LyogRW5hYmxlQWNjZXNzaWJpbGl0eS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEMxM0Q4MkQ4MjQxNkYxMzIwMEE2Mjc5MyAvKiBFbmFibGVBY2Nlc3Np
YmlsaXR5Lm1tICovOyB9OwogCQlDMTQ1Q0MwQzIzREE1QTFGMDAzQTVFRUIgLyogTWltZVR5cGVz
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE0NUND
MEIyM0RBNUEwRjAwM0E1RUVCIC8qIE1pbWVUeXBlcy5tbSAqLzsgfTsKKwkJQzE0OUQ1NTAyNDJF
OThERjAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTQ5RDU0RjI0MkU5ODQ0MDAzRUJCMTIgLyogU2xlZXBE
aXNhYmxlci5tbSAqLzsgfTsKIAkJQzE1Q0JCMzAyM0YxRkYxQTAwMzAwQ0M3IC8qIEJhY2tsaWdo
dExldmVsTm90aWZpY2F0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzE1Q0JCMkYyM0YxRkYxQTAwMzAwQ0M3IC8qIEJhY2tsaWdodExldmVsTm90
aWZpY2F0aW9uLm1tICovOyB9OwogCQlDMTVDQkIzRjIzRkIxNzdBMDAzMDBDQzcgLyogUHJlZmVy
ZW5jZUNoYW5nZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMTVDQkIzRTIzRkIxNzdBMDAzMDBDQzcgLyogUHJlZmVyZW5jZUNoYW5nZXMubW0gKi87
IH07CiAJCUMxNjkyRENBMjNEMTBEQUUwMDZFODhGNyAvKiBCYXR0ZXJ5Lm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE2OTJEQzkyM0QxMERBRTAwNkU4
OEY3IC8qIEJhdHRlcnkubW0gKi87IH07CkBAIC0yNDU4LDYgKzI0NTksNyBAQAogCQlDMEM1RDNC
RDE0NTk4QjZGMDBBODAyQTYgLyogR2V0QmFja2luZ1NjYWxlRmFjdG9yX0J1bmRsZS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdldEJhY2tpbmdTY2FsZUZhY3Rv
cl9CdW5kbGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxM0Q4MkQ4MjQxNkYx
MzIwMEE2Mjc5MyAvKiBFbmFibGVBY2Nlc3NpYmlsaXR5Lm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gRW5hYmxlQWNjZXNzaWJpbGl0eS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QzE0NUNDMEIyM0RBNUEwRjAwM0E1RUVCIC8qIE1pbWVUeXBlcy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1pbWVUeXBlcy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQzE0OUQ1NEYyNDJFOTg0NDAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTbGVlcERpc2FibGVyLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTVDQkIyRjIzRjFGRjFBMDAzMDBDQzcg
LyogQmFja2xpZ2h0TGV2ZWxOb3RpZmljYXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBC
YWNrbGlnaHRMZXZlbE5vdGlmaWNhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQzE1Q0JCM0UyM0ZCMTc3QTAwMzAwQ0M3IC8qIFByZWZlcmVuY2VDaGFuZ2VzLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJlZmVyZW5jZUNoYW5nZXMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNjkyREM5MjNEMTBEQUUwMDZFODhGNyAv
KiBCYXR0ZXJ5Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQmF0dGVyeS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI5MjEsNiArMjkyMyw3IEBACiAJCQkJQzE0NUNDMEIyM0RB
NUEwRjAwM0E1RUVCIC8qIE1pbWVUeXBlcy5tbSAqLywKIAkJCQlFMzI1QzkwNjIzRTM4NzAyMDBC
QzdEM0IgLyogUGljdHVyZUluUGljdHVyZVN1cHBvcnQubW0gKi8sCiAJCQkJQzE1Q0JCM0UyM0ZC
MTc3QTAwMzAwQ0M3IC8qIFByZWZlcmVuY2VDaGFuZ2VzLm1tICovLAorCQkJCUMxNDlENTRGMjQy
RTk4NDQwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyLm1tICovLAogCQkJCUMxOTRFMzFDMjQwOURG
NDMwMDI5MzlFRCAvKiBVVElGcm9tTUlNRVR5cGUubW0gKi8sCiAJCQkJRTNDQUFBNEIyNDE1NTA1
MTAwQ0VEMkUyIC8qIFVUSUZyb21UYWcubW0gKi8sCiAJCQkJMEYxMzlFNzUxQTQyM0E1MzAwRjU5
MEY1IC8qIFdlYWtPYmpDUHRyLm1tICovLApAQCAtNTA1OCw2ICs1MDYxLDcgQEAKIAkJCQkzN0JD
QTYxQzFCNTk2QkE5MDAyMDEyQ0EgLyogU2hvdWxkT3BlbkV4dGVybmFsVVJMc0luTmV3V2luZG93
QWN0aW9ucy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMEM1MUQwQTY1NDYwMEZFQkNGMyAv
KiBTaHJpbmtUb0ZpdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUNEMUE0MTFBN0UwMDQ0
N0M0QyAvKiBTaW1wbGlmeU1hcmt1cC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUMxNDlENTUwMjQy
RTk4REYwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRG
RjdCNkQxREE0ODdBRjAwODE0NjE0IC8qIFNuYXBzaG90U3RvcmUubW0gaW4gU291cmNlcyAqLywK
IAkJCQkwRjRGRkE5RTFFRDNBQTg1MDBGNzExMUYgLyogU25hcHNob3RWaWFSZW5kZXJJbkNvbnRl
eHQubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0YxNTFBNDExQUU2MDA0NDdDNEMgLyogU3Bh
Y2ViYXJTY3JvbGxpbmcuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9TbGVlcERpc2FibGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1NsZWVwRGlzYWJsZXIubW0JKG5vbmV4aXN0ZW50KQor
KysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU2xlZXBEaXNhYmxlci5tbQkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorCisjaWYgV0tfSEFWRV9DX1NQSQorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5o
IgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1By
aXZhdGVGb3JUZXN0aW5nLmg+CisjaW1wb3J0IDx3dGYvVGhyZWFkaW5nLmg+CisKK1RFU1QoV2Vi
S2l0LCBTbGVlcERpc2FibGVyKQoreworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgV0tSZXRhaW5QdHI8
V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhUZXN0V2ViS2l0QVBJOjpVdGlsOjpjcmVh
dGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbnRlcm5hbHNJbmplY3RlZEJ1bmRsZVRl
c3QiKSk7CisgICAgY29uZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbCA9IChXS1Byb2Nlc3NQ
b29sICopY29udGV4dC5nZXQoKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBj
b25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CisKKyAg
ICBBU1NFUlRfRkFMU0UoW3dlYlZpZXcgX2hhc1NsZWVwRGlzYWJsZXJdKTsKKworICAgIGF1dG8g
Y3JlYXRlU2xlZXBEaXNhYmxlciA9IFsmXSB7CisgICAgICAgIHJldHVybiBbd2ViVmlldyBzdHJp
bmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93LmludGVybmFscy5jcmVhdGVTbGVlcERp
c2FibGVyKFwiVGVzdERpc2FibGVyXCIsIHRydWUpIl0ubG9uZ0xvbmdWYWx1ZTsKKyAgICB9Owor
CisgICAgYXV0byBpZGVudGlmaWVyID0gY3JlYXRlU2xlZXBEaXNhYmxlcigpOworCisgICAgQVNT
RVJUX05FKGlkZW50aWZpZXIsIDApOworCisgICAgQVNTRVJUX1RSVUUoW3dlYlZpZXcgX2hhc1Ns
ZWVwRGlzYWJsZXJdKTsKKworICAgIGF1dG8gZGVzdHJveVNsZWVwRGlzYWJsZXIgPSBbJl0gewor
ICAgICAgICBOU1N0cmluZyAqanMgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIndpbmRv
dy5pbnRlcm5hbHMuZGVzdHJveVNsZWVwRGlzYWJsZXIoJWxsZCkiLCBpZGVudGlmaWVyXTsKKyAg
ICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6anNdOwor
ICAgIH07CisKKyAgICBBU1NFUlRfVFJVRShkZXN0cm95U2xlZXBEaXNhYmxlcigpKTsKKworICAg
IEFTU0VSVF9GQUxTRShbd2ViVmlldyBfaGFzU2xlZXBEaXNhYmxlcl0pOworfQorCisjZW5kaWYg
Ly8gV0tfSEFWRV9DX1NQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394938</attachid>
            <date>2020-03-30 11:35:22 -0700</date>
            <delta_ts>2020-03-30 11:41:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209676-20200330113521.patch</filename>
            <type>text/plain</type>
            <size>1046</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTIxMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTMwICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFNsZWVwIGRp
c2FibGluZyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBSZW1vdmUgdW5uZWNlc3NhcnkgaW5j
bHVkZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9TbGVlcERpc2FibGVyLmg6CisKIDIwMjAtMDMt
MzAgIEphY2sgTGVlICA8c2hpaGNoaWVoX2xlZUBhcHBsZS5jb20+CiAKICAgICAgICAgRGl2aXNp
b24gYnkgemVybyBpbiBSZW5kZXJCbG9ja0Zsb3c6OmNvbXB1dGVDb2x1bW5Db3VudEFuZFdpZHRo
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxlci5oCShyZXZpc2lvbiAy
NTkyMDEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI3LDkgKzI3LDYgQEAKIAogI2luY2x1ZGUgIlNsZWVwRGlzYWJsZXJJZGVu
dGlmaWVyLmgiCiAKLSNpbmNsdWRlIDxwYWwvc3lzdGVtL1NsZWVwRGlzYWJsZXIuaD4KLSNpbmNs
dWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIFNsZWVwRGlzYWJsZXIgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394939</attachid>
            <date>2020-03-30 11:40:52 -0700</date>
            <delta_ts>2020-03-30 11:47:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209676-20200330114051.patch</filename>
            <type>text/plain</type>
            <size>1065</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTIxMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTMwICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFNsZWVwIGRp
c2FibGluZyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBSZW1vdmUgdW5uZWNlc3NhcnkgaW5j
bHVkZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9TbGVlcERpc2FibGVyLmg6CisKIDIwMjAtMDMt
MzAgIEphY2sgTGVlICA8c2hpaGNoaWVoX2xlZUBhcHBsZS5jb20+CiAKICAgICAgICAgRGl2aXNp
b24gYnkgemVybyBpbiBSZW5kZXJCbG9ja0Zsb3c6OmNvbXB1dGVDb2x1bW5Db3VudEFuZFdpZHRo
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxlci5oCShyZXZpc2lvbiAy
NTkyMDEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI3LDggKzI3LDkgQEAKIAogI2luY2x1ZGUgIlNsZWVwRGlzYWJsZXJJZGVu
dGlmaWVyLmgiCiAKLSNpbmNsdWRlIDxwYWwvc3lzdGVtL1NsZWVwRGlzYWJsZXIuaD4KLSNpbmNs
dWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTbGVl
cERpc2FibGVyOworfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394940</attachid>
            <date>2020-03-30 11:46:29 -0700</date>
            <delta_ts>2020-03-30 12:18:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209676-20200330114628.patch</filename>
            <type>text/plain</type>
            <size>1492</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTIxMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAzLTMwICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFNsZWVwIGRp
c2FibGluZyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBSZW1vdmUgdW5uZWNlc3NhcnkgaW5j
bHVkZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9TbGVlcERpc2FibGVyLmNwcDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9TbGVlcERpc2FibGVyLmg6CisKIDIwMjAtMDMtMzAgIEphY2sgTGVlICA8c2hp
aGNoaWVoX2xlZUBhcHBsZS5jb20+CiAKICAgICAgICAgRGl2aXNpb24gYnkgemVybyBpbiBSZW5k
ZXJCbG9ja0Zsb3c6OmNvbXB1dGVDb2x1bW5Db3VudEFuZFdpZHRoCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVyLmNwcAkocmV2aXNpb24gMjU5MjAxKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2xlZXBEaXNhYmxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJTbGVlcERpc2FibGVyLmgiCiAKICNpbmNsdWRlICJT
bGVlcERpc2FibGVyQ2xpZW50LmgiCisjaW5jbHVkZSA8cGFsL3N5c3RlbS9TbGVlcERpc2FibGVy
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2xlZXBEaXNhYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1NsZWVwRGlzYWJsZXIuaAkocmV2aXNpb24gMjU5MjAxKQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2xlZXBEaXNhYmxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw4ICsyNyw5IEBACiAK
ICNpbmNsdWRlICJTbGVlcERpc2FibGVySWRlbnRpZmllci5oIgogCi0jaW5jbHVkZSA8cGFsL3N5
c3RlbS9TbGVlcERpc2FibGVyLmg+Ci0jaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4K
K25hbWVzcGFjZSBQQUwgeworY2xhc3MgU2xlZXBEaXNhYmxlcjsKK30KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394946</attachid>
            <date>2020-03-30 12:18:19 -0700</date>
            <delta_ts>2020-03-30 12:49:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209676-20200330121819.patch</filename>
            <type>text/plain</type>
            <size>1075</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTIxMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAzLTMwICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFNsZWVwIGRp
c2FibGluZyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBSZW1vdmUgdW5uZWNlc3NhcnkgaW5j
bHVkZS4KKworICAgICAgICAqIHBsYXRmb3JtL1NsZWVwRGlzYWJsZXIuY3BwOgorICAgICAgICAq
IHBsYXRmb3JtL1NsZWVwRGlzYWJsZXIuaDoKKwogMjAyMC0wMy0zMCAgSmFjayBMZWUgIDxzaGlo
Y2hpZWhfbGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBEaXZpc2lvbiBieSB6ZXJvIGluIFJlbmRl
ckJsb2NrRmxvdzo6Y29tcHV0ZUNvbHVtbkNvdW50QW5kV2lkdGgKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TbGVlcERpc2FibGVyLmgJKHJldmlzaW9uIDI1OTIwMSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1NsZWVwRGlzYWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsOSAr
MjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJTbGVlcERpc2FibGVySWRlbnRpZmll
ci5oIgotCiAjaW5jbHVkZSA8cGFsL3N5c3RlbS9TbGVlcERpc2FibGVyLmg+Ci0jaW5jbHVkZSA8
d3RmL09iamVjdElkZW50aWZpZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>