<?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>201798</bug_id>
          
          <creation_ts>2019-09-14 08:00:33 -0700</creation_ts>
          <short_desc>REGRESSION(249649): Unable to open local files in MiniBrowser on macOS</short_desc>
          <delta_ts>2019-10-04 01:48:24 -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>Mac</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=202575</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Per Arne Vollan">pvollan</reporter>
          <assigned_to name="Per Arne Vollan">pvollan</assigned_to>
          <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>rmorisset</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1570878</commentid>
    <comment_count>0</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-09-14 08:00:33 -0700</bug_when>
    <thetext>The commit &lt;https://trac.webkit.org/changeset/249649&gt; introduced a MiniBrowser regression on macOS where MiniBrowser is not able to open local files. The change set r249649 fixed a problem where the WebContent process PID was not ready to be used when creating a sandbox extension. This happened in the cases where the WebContent process had not finished launching when the load started. The WebContent process is also creating sandbox extensions for the Networking process for the files being loaded, and also needs to be passing the PID of the Networking process when creating these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570879</commentid>
    <comment_count>1</comment_count>
      <attachid>378797</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-09-14 08:19:31 -0700</bug_when>
    <thetext>Created attachment 378797
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570880</commentid>
    <comment_count>2</comment_count>
      <attachid>378798</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-09-14 08:49:51 -0700</bug_when>
    <thetext>Created attachment 378798
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570988</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2019-09-15 17:08:06 -0700</bug_when>
    <thetext>As I mentioned in the previous bug, this really should not be using a pid, as they are prone to re-use attacks, and instead should be using audit_token_t.

Any reason this can&apos;t be unit tested?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571163</commentid>
    <comment_count>4</comment_count>
      <attachid>378798</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-16 10:21:05 -0700</bug_when>
    <thetext>Comment on attachment 378798
Patch

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

r=me. Let&apos;s get this integrated since this could impact clients on our new release.

&gt; Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp:74
&gt; +#endif

Is MiniBrowser the only client for this? Or might you be fixing bugs in other applications we just haven&apos;t seen yet?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571164</commentid>
    <comment_count>5</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-16 10:21:48 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #3)
&gt; As I mentioned in the previous bug, this really should not be using a pid,
&gt; as they are prone to re-use attacks, and instead should be using
&gt; audit_token_t.
&gt; 
&gt; Any reason this can&apos;t be unit tested?

Per Arne: This is a great point. After you land this regression fix, can you spin up a task to switch the pid-based stuff over to audit tokens instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571183</commentid>
    <comment_count>6</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-09-16 11:20:23 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #3)
&gt; As I mentioned in the previous bug, this really should not be using a pid,
&gt; as they are prone to re-use attacks, and instead should be using
&gt; audit_token_t.
&gt; 
&gt; Any reason this can&apos;t be unit tested?

That&apos;s a good point. I will file a bug to start using audit tokens instead of PIDs, and add an API test.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571184</commentid>
    <comment_count>7</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-09-16 11:22:53 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #4)
&gt; Comment on attachment 378798 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=378798&amp;action=review
&gt; 
&gt; r=me. Let&apos;s get this integrated since this could impact clients on our new
&gt; release.
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp:74
&gt; &gt; +#endif
&gt; 
&gt; Is MiniBrowser the only client for this? Or might you be fixing bugs in
&gt; other applications we just haven&apos;t seen yet?

As you suggest, I think this bug can affect other applications in addition to MiniBrowser.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571186</commentid>
    <comment_count>8</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-09-16 11:28:45 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #5)
&gt; (In reply to Sam Weinig from comment #3)
&gt; &gt; As I mentioned in the previous bug, this really should not be using a pid,
&gt; &gt; as they are prone to re-use attacks, and instead should be using
&gt; &gt; audit_token_t.
&gt; &gt; 
&gt; &gt; Any reason this can&apos;t be unit tested?
&gt; 
&gt; Per Arne: This is a great point. After you land this regression fix, can you
&gt; spin up a task to switch the pid-based stuff over to audit tokens instead?

Filed https://bugs.webkit.org/show_bug.cgi?id=201828.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571187</commentid>
    <comment_count>9</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2019-09-16 11:29:42 -0700</bug_when>
    <thetext>Wait, why the r+ without a test? Especially since this was a regression, this needs to be tested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571199</commentid>
    <comment_count>10</comment_count>
      <attachid>378798</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-16 12:15:57 -0700</bug_when>
    <thetext>Comment on attachment 378798
Patch

Clearing flags on attachment: 378798

Committed r249910: &lt;https://trac.webkit.org/changeset/249910&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571200</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-16 12:15:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571201</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-16 12:16:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/55409379&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571440</commentid>
    <comment_count>13</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2019-09-16 23:24:34 -0700</bug_when>
    <thetext>Reverted r249910 for reason:

Caused layout test failures and timeouts on Catalina

Committed r249942: &lt;https://trac.webkit.org/changeset/249942&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571441</commentid>
    <comment_count>14</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2019-09-16 23:26:54 -0700</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #13)
&gt; Reverted r249910 for reason:
&gt; 
&gt; Caused layout test failures and timeouts on Catalina
&gt; 
&gt; Committed r249942: &lt;https://trac.webkit.org/changeset/249942&gt;
Details in radar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571882</commentid>
    <comment_count>15</comment_count>
      <attachid>379034</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-09-18 06:24:31 -0700</bug_when>
    <thetext>Created attachment 379034
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571883</commentid>
    <comment_count>16</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-09-18 06:25:50 -0700</bug_when>
    <thetext>(In reply to Per Arne Vollan from comment #15)
&gt; Created attachment 379034 [details]
&gt; Patch

Updated patch to add API test and fix layout test failures.

Rewriting this to use audit tokens instead of PIDs will come in a follow up patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572092</commentid>
    <comment_count>17</comment_count>
      <attachid>379074</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-09-18 14:36:13 -0700</bug_when>
    <thetext>Created attachment 379074
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576194</commentid>
    <comment_count>18</comment_count>
      <attachid>380060</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-10-02 14:27:43 -0700</bug_when>
    <thetext>Created attachment 380060
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576197</commentid>
    <comment_count>19</comment_count>
      <attachid>380061</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-10-02 14:41:42 -0700</bug_when>
    <thetext>Created attachment 380061
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576203</commentid>
    <comment_count>20</comment_count>
      <attachid>380062</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-10-02 15:01:40 -0700</bug_when>
    <thetext>Created attachment 380062
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576207</commentid>
    <comment_count>21</comment_count>
      <attachid>380062</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-10-02 15:11:00 -0700</bug_when>
    <thetext>Comment on attachment 380062
Patch

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

&gt; Source/WebKit/ChangeLog:3
&gt; +        REGRESSION(249649): Unable to open local files in MiniBrowser on macOS

Is this really a fix for the regression? I thought this was about adopting Audit Tokens?

&gt; Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp:69
&gt; +#if HAVE(SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_PID)

Does this use PID if we can&apos;t use Audit Tokens? If not, I think we should rename the macro to SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN

&gt; Source/WebKit/Shared/SandboxExtension.h:52
&gt; +        ReadByProcess

Looks like we don&apos;t use PID -- so I think we do need to rename the macro.

&gt; Source/WebKit/Shared/Cocoa/SandboxExtensionCocoa.mm:46
&gt; +        std::unique_ptr&lt;SandboxExtensionImpl&gt; impl { new SandboxExtensionImpl(path, type, process) };

I suggest we call these parameters &quot;processToken&quot; or &quot;auditToken&quot;. We use process in a lot of places to represent our own concept of a process abstraction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576211</commentid>
    <comment_count>22</comment_count>
      <attachid>380062</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2019-10-02 15:23:38 -0700</bug_when>
    <thetext>Comment on attachment 380062
Patch

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

&gt; Source/WebKit/Platform/IPC/ArgumentCoders.cpp:191
&gt; +#if OS(DARWIN)

This should be a more specific conditional. e.g. HAVE(AUDIT_TOKEN)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576223</commentid>
    <comment_count>23</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-10-02 15:41:06 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #21)
&gt; Comment on attachment 380062 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=380062&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:3
&gt; &gt; +        REGRESSION(249649): Unable to open local files in MiniBrowser on macOS
&gt; 
&gt; Is this really a fix for the regression? I thought this was about adopting
&gt; Audit Tokens?
&gt; 

Originally, this was just about fixing the regression using PIDs, but now it is both a regression fix, and a fix to adopt audit tokens.


&gt; &gt; Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp:69
&gt; &gt; +#if HAVE(SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_PID)
&gt; 
&gt; Does this use PID if we can&apos;t use Audit Tokens? If not, I think we should
&gt; rename the macro to SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN
&gt; 

It does not use PIDs in case we can&apos;t use Audit Token. I will use SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN instead.

&gt; &gt; Source/WebKit/Shared/SandboxExtension.h:52
&gt; &gt; +        ReadByProcess
&gt; 
&gt; Looks like we don&apos;t use PID -- so I think we do need to rename the macro.
&gt; 
&gt; &gt; Source/WebKit/Shared/Cocoa/SandboxExtensionCocoa.mm:46
&gt; &gt; +        std::unique_ptr&lt;SandboxExtensionImpl&gt; impl { new SandboxExtensionImpl(path, type, process) };
&gt; 
&gt; I suggest we call these parameters &quot;processToken&quot; or &quot;auditToken&quot;. We use
&gt; process in a lot of places to represent our own concept of a process
&gt; abstraction.

Will do.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576224</commentid>
    <comment_count>24</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-10-02 15:41:39 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #22)
&gt; Comment on attachment 380062 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=380062&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/Platform/IPC/ArgumentCoders.cpp:191
&gt; &gt; +#if OS(DARWIN)
&gt; 
&gt; This should be a more specific conditional. e.g. HAVE(AUDIT_TOKEN)

Will fix.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576229</commentid>
    <comment_count>25</comment_count>
      <attachid>380062</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2019-10-02 16:03:11 -0700</bug_when>
    <thetext>Comment on attachment 380062
Patch

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

&gt; Source/WebKit/Shared/Cocoa/SandboxExtensionCocoa.mm:126
&gt; +    SandboxExtensionImpl(const char* path, SandboxExtension::Type type, Optional&lt;Variant&lt;pid_t, audit_token_t&gt;&gt; process)

Why is this a variant? A pid should never be used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576239</commentid>
    <comment_count>26</comment_count>
      <attachid>380069</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-10-02 16:31:14 -0700</bug_when>
    <thetext>Created attachment 380069
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576240</commentid>
    <comment_count>27</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-10-02 16:33:31 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #25)
&gt; Comment on attachment 380062 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=380062&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/Shared/Cocoa/SandboxExtensionCocoa.mm:126
&gt; &gt; +    SandboxExtensionImpl(const char* path, SandboxExtension::Type type, Optional&lt;Variant&lt;pid_t, audit_token_t&gt;&gt; process)
&gt; 
&gt; Why is this a variant? A pid should never be used.

This patch only partially adopt audit tokens. When the UI process is creating extensions for the WebContent process, PIDs are still used, but I will rewrite this to use audit tokens in a follow-up patch coming soon. We can then remove the variant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576437</commentid>
    <comment_count>28</comment_count>
      <attachid>380120</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-10-03 09:18:06 -0700</bug_when>
    <thetext>Created attachment 380120
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576459</commentid>
    <comment_count>29</comment_count>
      <attachid>380128</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-10-03 10:17:50 -0700</bug_when>
    <thetext>Created attachment 380128
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576523</commentid>
    <comment_count>30</comment_count>
      <attachid>380128</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-10-03 11:19:20 -0700</bug_when>
    <thetext>Comment on attachment 380128
Patch

This seems reasonable. Can you also file a bug to convert the other PID-based code to use Audit Tokens?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576543</commentid>
    <comment_count>31</comment_count>
      <attachid>380152</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-10-03 12:18:43 -0700</bug_when>
    <thetext>Created attachment 380152
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576546</commentid>
    <comment_count>32</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-10-03 12:21:18 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #30)
&gt; Comment on attachment 380128 [details]
&gt; Patch
&gt; 
&gt; This seems reasonable. Can you also file a bug to convert the other
&gt; PID-based code to use Audit Tokens?

Filed https://bugs.webkit.org/show_bug.cgi?id=202540.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576550</commentid>
    <comment_count>33</comment_count>
      <attachid>380152</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-03 12:26:35 -0700</bug_when>
    <thetext>Comment on attachment 380152
Patch

Rejecting attachment 380152 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 380152, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

NOBODY Brent Fulgham found in /Volumes/Data/EWS/WebKit/Source/WebKit/ChangeLog does not appear to be a valid reviewer according to contributors.json.
/Volumes/Data/EWS/WebKit/Source/WebKit/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: https://webkit-queues.webkit.org/results/13091824</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576551</commentid>
    <comment_count>34</comment_count>
      <attachid>380153</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-10-03 12:29:35 -0700</bug_when>
    <thetext>Created attachment 380153
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576561</commentid>
    <comment_count>35</comment_count>
      <attachid>380153</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-03 13:08:31 -0700</bug_when>
    <thetext>Comment on attachment 380153
Patch

Clearing flags on attachment: 380153

Committed r250673: &lt;https://trac.webkit.org/changeset/250673&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378797</attachid>
            <date>2019-09-14 08:19:31 -0700</date>
            <delta_ts>2019-09-14 08:49:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201798-20190914171923.patch</filename>
            <type>text/plain</type>
            <size>14564</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDk4NzMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDE5LTA5LTE0ICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKDI0OTY0OSk6
IFVuYWJsZSB0byBvcGVuIGxvY2FsIGZpbGVzIGluIE1pbmlCcm93c2VyIG9uIG1hY09TCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE3OTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgY29tbWl0IDxo
dHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjQ5NjQ5PiBpbnRyb2R1Y2VkIGEgTWlu
aUJyb3dzZXIgcmVncmVzc2lvbiBvbiBtYWNPUyB3aGVyZQorICAgICAgICBNaW5pQnJvd3NlciBp
cyBub3QgYWJsZSB0byBvcGVuIGxvY2FsIGZpbGVzLiBUaGUgY2hhbmdlIHNldCByMjQ5NjQ5IGZp
eGVkIGEgcHJvYmxlbSB3aGVyZSB0aGUgV2ViQ29udGVudAorICAgICAgICBwcm9jZXNzIFBJRCB3
YXMgbm90IHJlYWR5IHRvIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBhIHNhbmRib3ggZXh0ZW5zaW9u
LiBUaGlzIGhhcHBlbmVkIGluIHRoZSBjYXNlcyB3aGVyZQorICAgICAgICB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIGhhZCBub3QgZmluaXNoZWQgbGF1bmNoaW5nIHdoZW4gdGhlIGxvYWQgc3RhcnRl
ZC4gVGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBhbHNvCisgICAgICAgIGNyZWF0aW5nIHNhbmRi
b3ggZXh0ZW5zaW9ucyBmb3IgdGhlIE5ldHdvcmtpbmcgcHJvY2VzcyBmb3IgdGhlIGZpbGVzIGJl
aW5nIGxvYWRlZCwgYW5kIGFsc28gbmVlZHMgdG8gYmUKKyAgICAgICAgcGFzc2luZyB0aGUgUElE
IG9mIHRoZSBOZXR3b3JraW5nIHByb2Nlc3Mgd2hlbiBjcmVhdGluZyB0aGVzZS4gVGhpcyBwYXRj
aCBpcyBhZGRyZXNzaW5nIHRoaXMgYnkgZ2V0dGluZworICAgICAgICB0aGUgUElEIG9mIHRoZSBO
ZXR3b3JraW5nIHByb2Nlc3Mgd2hlbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlzIGluaXRpYWxs
eSBnZXR0aW5nIHRoZSBjb25uZWN0aW9uIHRvIHRoZQorICAgICAgICBOZXR3b3JraW5nIHByb2Nl
c3MuIFRoZSBQSUQgaXMgdGhlbiBzdG9yZWQgaW4gdGhlIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
biBjbGFzcywgZnJvbSB3aGVyZSBpdCBpcyBwYXNzZWQKKyAgICAgICAgdG8gdGhlIE5ldHdvcmtM
b2FkUGFyYW1ldGVycywgYW5kIHVzZWQgd2hlbiBjcmVhdGluZyB0aGUgc2FuZGJveCBleHRlbnNp
b24gZm9yIHRoZSBOZXR3b3JraW5nIHByb2Nlc3MuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzc1Byb3h5Ojp+TmV0d29ya1Byb2Nlc3NQcm94eSk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzUHJveHk6Om9wZW5OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpuZXR3b3JrUHJvY2Vzc0NyYXNoZWQp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hp
bmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
V2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6TmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpuZXR3b3JrUHJv
Y2Vzc1BJRCBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0
cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxl
TG9hZEZyb21OZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
KToKKwogMjAxOS0wOS0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRkIHJlbGVhc2UgbG9nZ2luZyBpbiBXZWJMb2FkZXJTdHJhdGVneSB0byBjaGVjayB0
aGF0IGEgbG9hZCBpcyBnb2luZyB0aHJvdWdoIHNlcnZpY2Ugd29ya2VyCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgJ
KHJldmlzaW9uIDI0OTg3MikKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0xvYWRQYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAgcHVibGlj
OgogICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciB3ZWJGcmFtZUlEOwogICAgIFJlZlB0cjxX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luOwogICAgIFdURjo6UHJvY2Vzc0lEIHBh
cmVudFBJRCB7IDAgfTsKKyAgICBXVEY6OlByb2Nlc3NJRCBuZXR3b3JrUHJvY2Vzc1BJRCB7IDAg
fTsKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdDsKICAgICBXZWJDb3JlOjpD
b250ZW50U25pZmZpbmdQb2xpY3kgY29udGVudFNuaWZmaW5nUG9saWN5IHsgV2ViQ29yZTo6Q29u
dGVudFNuaWZmaW5nUG9saWN5OjpTbmlmZkNvbnRlbnQgfTsKICAgICBXZWJDb3JlOjpDb250ZW50
RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBjb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSB7IFdl
YkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpTbmlmZiB9OwpJbmRleDogU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDI0OTg3MikKKysrIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02Nyw3ICs2NywxMSBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzOjplbmNvCiAKICAgICBpZiAocmVxdWVzdC51cmwoKS5pc0xvY2FsRmlsZSgpKSB7CiAg
ICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSByZXF1ZXN0U2FuZGJveEV4dGVuc2lvbjsK
KyNpZiBIQVZFKFNBTkRCT1hfSVNTVUVfUkVBRF9FWFRFTlNJT05fVE9fUFJPQ0VTU19CWV9QSUQp
CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRCeVBpZChyZXF1
ZXN0LnVybCgpLmZpbGVTeXN0ZW1QYXRoKCksIG5ldHdvcmtQcm9jZXNzUElELCByZXF1ZXN0U2Fu
ZGJveEV4dGVuc2lvbik7CisjZWxzZQogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVI
YW5kbGUocmVxdWVzdC51cmwoKS5maWxlU3lzdGVtUGF0aCgpLCBTYW5kYm94RXh0ZW5zaW9uOjpU
eXBlOjpSZWFkT25seSwgcmVxdWVzdFNhbmRib3hFeHRlbnNpb24pOworI2VuZGlmCiAgICAgICAg
IGVuY29kZXIgPDwgcmVxdWVzdFNhbmRib3hFeHRlbnNpb247CiAgICAgfQogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDI0OTg3MikKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTExNzUsNyArMTE3NSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhO
YXZpZ2EKICAgICBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKGxvYWRQYXJhbWV0ZXJzKTsKIAog
I2lmIEhBVkUoU0FOREJPWF9JU1NVRV9SRUFEX0VYVEVOU0lPTl9UT19QUk9DRVNTX0JZX1BJRCkK
LSAgICBpZiAocHJvY2Vzc0lkZW50aWZpZXIoKSB8fCAhdXJsLmlzTG9jYWxGaWxlKCkpCisgICAg
aWYgKHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCkgfHwgIXVybC5pc0xvY2FsRmlsZSgpKQog
ICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkUmVxdWVzdChsb2Fk
UGFyYW1ldGVycyksIHdlYlBhZ2VJRCk7CiAgICAgZWxzZSB7CiAgICAgICAgIFN0cmluZyBzYW5k
Ym94RXh0ZW5zaW9uUGF0aDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI0OTg3MikKKysrIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBj
b3B5KQpAQCAtMzYsNyArMzYsNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5
UmVjZWl2CiAgICAgR2V0UGx1Z2lucyhib29sIHJlZnJlc2gpIC0+IChWZWN0b3I8V2ViQ29yZTo6
UGx1Z2luSW5mbz4gcGx1Z2lucywgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+IGFwcGxpY2F0
aW9uUGx1Z2lucywgc3RydWN0IE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVn
aW5JZGVudGlmaWVyPj4gc3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcnMpIFN5bmNocm9ub3VzCiAg
ICAgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24odWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2Vu
KSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUsIGJvb2wgc3VwcG9ydHNBc3lu
Y2hyb25vdXNJbml0aWFsaXphdGlvbikgU3luY2hyb25vdXMKICNlbmRpZgotICAgIEdldE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbigpIC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRs
ZSkgU3luY2hyb25vdXMKKyAgICBHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKSAtPiAoSVBD
OjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUsIGludDMyX3QgcGlkKSBTeW5jaHJvbm91cwog
ICAgIFByb2Nlc3NSZWFkeVRvU3VzcGVuZCgpCiAgICAgRGlkQ2FuY2VsUHJvY2Vzc1N1c3BlbnNp
b24oKQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAJKHJldmlzaW9uIDI0OTg3MikKKysrIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEwNCw3ICsxMDQsNyBAQCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojp+TmV0d29ya1By
b2Nlc3NQcm94CiAgICAgICAgIG1fZG93bmxvYWRQcm94eU1hcC0+aW52YWxpZGF0ZSgpOwogCiAg
ICAgZm9yIChhdXRvJiByZXF1ZXN0IDogbV9jb25uZWN0aW9uUmVxdWVzdHMudmFsdWVzKCkpCi0g
ICAgICAgIHJlcXVlc3QucmVwbHkoeyB9KTsKKyAgICAgICAgcmVxdWVzdC5yZXBseSh7IH0sIDAp
OwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vz
c0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHRpb25zKQpAQCAtMTU5LDcgKzE1OSw3
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6b3Blbk5ldHdvcmtQcm8KICAgICAgICAgcmVx
dWVzdC5yZXBseSgqY29ubmVjdGlvbklkZW50aWZpZXIpOwogI2VsaWYgT1MoREFSV0lOKQogICAg
ICAgICBNRVNTQUdFX0NIRUNLKE1BQ0hfUE9SVF9WQUxJRChjb25uZWN0aW9uSWRlbnRpZmllci0+
cG9ydCgpKSk7Ci0gICAgICAgIHJlcXVlc3QucmVwbHkoSVBDOjpBdHRhY2htZW50IHsgY29ubmVj
dGlvbklkZW50aWZpZXItPnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQgfSk7CisgICAg
ICAgIHJlcXVlc3QucmVwbHkoSVBDOjpBdHRhY2htZW50IHsgY29ubmVjdGlvbklkZW50aWZpZXIt
PnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQgfSwgcHJvY2Vzc0lkZW50aWZpZXIoKSk7
CiAjZWxzZQogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwogI2VuZGlmCkBAIC0yNDgsNyArMjQ4
LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpuZXR3b3JrUHJvY2VzcwogICAgICAgICBp
ZiAocmVxdWVzdC53ZWJQcm9jZXNzKQogICAgICAgICAgICAgcGVuZGluZ1JlcXVlc3RzLnVuY2hl
Y2tlZEFwcGVuZChzdGQ6Om1ha2VfcGFpcihtYWtlUmVmUHRyKHJlcXVlc3Qud2ViUHJvY2Vzcy5n
ZXQoKSksIFdURk1vdmUocmVxdWVzdC5yZXBseSkpKTsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgcmVxdWVzdC5yZXBseSh7IH0pOworICAgICAgICAgICAgcmVxdWVzdC5yZXBseSh7IH0sIDAp
OwogICAgIH0KICAgICBtX2Nvbm5lY3Rpb25SZXF1ZXN0cy5jbGVhcigpOwogCkBAIC0zOTQsNyAr
Mzk0LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuYwogICAgICAg
ICBpZiAoY29ubmVjdGlvblJlcXVlc3Qud2ViUHJvY2VzcykKICAgICAgICAgICAgIGdldE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbigqY29ubmVjdGlvblJlcXVlc3Qud2ViUHJvY2VzcywgV1RGTW92
ZShjb25uZWN0aW9uUmVxdWVzdC5yZXBseSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBj
b25uZWN0aW9uUmVxdWVzdC5yZXBseSh7IH0pOworICAgICAgICAgICAgY29ubmVjdGlvblJlcXVl
c3QucmVwbHkoeyB9LCAwKTsKICAgICB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDI0OTg3MikKKysr
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTE1OSwxMCArMTE1OSwxMSBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldEluamVjdGVkQnVuZGxl
UGFyYW1lCiAgICAgaW5qZWN0ZWRCdW5kbGUtPnNldEJ1bmRsZVBhcmFtZXRlcnModmFsdWUpOwog
fQogCi1zdGF0aWMgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGdldE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCitzdGF0aWMgc3RkOjpwYWly
PElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgV1RGOjpQcm9jZXNzSUQ+IGdldE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiB7CiAgICAgSVBD
OjpBdHRhY2htZW50IGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllcjsKLSAgICBpZiAoIWNvbm5l
Y3Rpb24uc2VuZFN5bmMoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKCksIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbjo6UmVwbHkoZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyKSwgMCkpIHsK
KyAgICBXVEY6OlByb2Nlc3NJRCBwaWQ7CisgICAgaWYgKCFjb25uZWN0aW9uLnNlbmRTeW5jKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLCBN
ZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OlJl
cGx5KGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllciwgcGlkKSwgMCkpIHsKICNpZiBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICAgICAgLy8gR1RLKyBhbmQgV1BFIHBvcnRzIGRv
bid0IGV4aXQgb24gc2VuZCBzeW5jIG1lc3NhZ2UgZmFpbHVyZS4KICAgICAgICAgLy8gSW4gdGhp
cyBwYXJ0aWN1bGFyIGNhc2UsIHRoZSBuZXR3b3JrIHByb2Nlc3MgY2FuIGJlIHRlcm1pbmF0ZWQg
YnkgdGhlIFVJIHByb2Nlc3Mgd2hpbGUgdGhlCkBAIC0xMTc2LDE0ICsxMTc3LDE0IEBAIHN0YXRp
YyBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgZ2V0TmUKICAgICB9CiAKICNpZiBVU0UoVU5J
WF9ET01BSU5fU09DS0VUUykKLSAgICByZXR1cm4gZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVy
LnJlbGVhc2VGaWxlRGVzY3JpcHRvcigpOworICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihlbmNv
ZGVkQ29ubmVjdGlvbklkZW50aWZpZXIucmVsZWFzZUZpbGVEZXNjcmlwdG9yKCksIHBpZCk7CiAj
ZWxpZiBPUyhEQVJXSU4pCi0gICAgcmV0dXJuIGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5w
b3J0KCk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKGVuY29kZWRDb25uZWN0aW9uSWRlbnRp
Zmllci5wb3J0KCksIHBpZCk7CiAjZWxpZiBPUyhXSU5ET1dTKQotICAgIHJldHVybiBlbmNvZGVk
Q29ubmVjdGlvbklkZW50aWZpZXIuaGFuZGxlKCk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWly
KGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5oYW5kbGUoKSwgcGlkKTsKICNlbHNlCiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRp
ZmllcigpOworICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihJUEM6OkNvbm5lY3Rpb246OklkZW50
aWZpZXIoKSwgcGlkKTsKICNlbmRpZgogfQogCkBAIC0xMTkzLDE3ICsxMTk0LDIzIEBAIE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbiYgV2ViUHJvY2Vzczo6ZW4KIAogICAgIC8vIElmIHdlJ3ZlIGxv
c3Qgb3VyIGNvbm5lY3Rpb24gdG8gdGhlIG5ldHdvcmsgcHJvY2VzcyAoZS5nLiBpdCBjcmFzaGVk
KSB0cnkgdG8gcmUtZXN0YWJsaXNoIGl0LgogICAgIGlmICghbV9uZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24pIHsKLSAgICAgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25J
ZGVudGlmaWVyID0gZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCpwYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpKTsKKyAgICAgICAgYXV0byBjb25uZWN0aW9uSWRlbnRpZmllckFuZFBJRCA9IGdl
dE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigqcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKSk7Cisg
ICAgICAgIAorICAgICAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklk
ZW50aWZpZXIgPSBjb25uZWN0aW9uSWRlbnRpZmllckFuZFBJRC5maXJzdDsKKyAgICAgICAgV1RG
OjpQcm9jZXNzSUQgcGlkID0gY29ubmVjdGlvbklkZW50aWZpZXJBbmRQSUQuc2Vjb25kOwogCiAg
ICAgICAgIC8vIFJldHJ5IG9uY2UgaWYgdGhlIElQQyB0byBnZXQgdGhlIGNvbm5lY3Rpb25JZGVu
dGlmaWVyIHN1Y2NlZWRlZCBidXQgdGhlIGNvbm5lY3Rpb25JZGVudGlmaWVyIHdlIHJlY2VpdmVk
CiAgICAgICAgIC8vIGlzIGludmFsaWQuIFRoaXMgbWF5IGluZGljYXRlIHRoYXQgdGhlIG5ldHdv
cmsgcHJvY2VzcyBoYXMgY3Jhc2hlZC4KLSAgICAgICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246Omlk
ZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rpb25JZGVudGlmaWVyKSkKLSAgICAgICAgICAgIGNvbm5l
Y3Rpb25JZGVudGlmaWVyID0gZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCpwYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpKTsKKyAgICAgICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZp
ZXJJc1ZhbGlkKGNvbm5lY3Rpb25JZGVudGlmaWVyKSkgeworICAgICAgICAgICAgY29ubmVjdGlv
bklkZW50aWZpZXJBbmRQSUQgPSBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKnBhcmVudFBy
b2Nlc3NDb25uZWN0aW9uKCkpOworICAgICAgICAgICAgY29ubmVjdGlvbklkZW50aWZpZXIgPSBj
b25uZWN0aW9uSWRlbnRpZmllckFuZFBJRC5maXJzdDsKKyAgICAgICAgICAgIHBpZCA9IGNvbm5l
Y3Rpb25JZGVudGlmaWVyQW5kUElELnNlY29uZDsKKyAgICAgICAgfQogCiAgICAgICAgIGlmICgh
SVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSWRlbnRpZmllcikp
CiAgICAgICAgICAgICBDUkFTSCgpOwogCi0gICAgICAgIG1fbmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoY29ubmVjdGlvbklkZW50aWZp
ZXIpOworICAgICAgICBtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9IE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbjo6Y3JlYXRlKGNvbm5lY3Rpb25JZGVudGlmaWVyLCBwaWQpOwogICAgIH0KICAg
ICAKICAgICByZXR1cm4gKm1fbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOwpJbmRleDogU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwCShyZXZpc2lvbiAyNDk4NzIpCisrKyBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02OCw4ICs2OCw5IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCi1OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246Ok5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIp
CitOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihJUEM6
OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIFdURjo6UHJvY2Vz
c0lEIHBpZCkKICAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZUNsaWVu
dENvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKKyAgICAsIG1fbmV0d29y
a1Byb2Nlc3NQSUQocGlkKQogewogICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOwogfQpJbmRleDog
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uLmgJKHJldmlzaW9uIDI0OTg3MikKKysrIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCSh3b3JraW5nIGNv
cHkpCkBAIC01OCw5ICs1OCw5IEBAIHR5cGVkZWYgdWludDY0X3QgUmVzb3VyY2VMb2FkSWRlbnRp
ZmllcjsKIAogY2xhc3MgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50
ZWQ8TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uPiwgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQgewog
cHVibGljOgotICAgIHN0YXRpYyBSZWY8TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uPiBjcmVhdGUo
SVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIHN0
YXRpYyBSZWY8TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9u
OjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBXVEY6OlByb2Nlc3NJRCBwaWQpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCBwaWQpKTsKICAg
ICB9CiAgICAgfk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpOwogICAgIApAQCAtODAsOCArODAs
MTAgQEAgcHVibGljOgogICAgIFdlYlNXQ2xpZW50Q29ubmVjdGlvbiYgc2VydmljZVdvcmtlckNv
bm5lY3Rpb25Gb3JTZXNzaW9uKFBBTDo6U2Vzc2lvbklEKTsKICNlbmRpZgogCisgICAgV1RGOjpQ
cm9jZXNzSUQgbmV0d29ya1Byb2Nlc3NQSUQoKSBjb25zdCB7IHJldHVybiBtX25ldHdvcmtQcm9j
ZXNzUElEOyB9CisKIHByaXZhdGU6Ci0gICAgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6
Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CisgICAgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQ
Qzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgV1RGOjpQcm9jZXNzSUQpOwogCiAgICAgLy8gSVBD
OjpDb25uZWN0aW9uOjpDbGllbnQKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwpAQCAtMTAzLDYgKzEwNSw3IEBAIHBy
aXZhdGU6CiAKICAgICAvLyBUaGUgY29ubmVjdGlvbiBmcm9tIHRoZSB3ZWIgcHJvY2VzcyB0byB0
aGUgbmV0d29yayBwcm9jZXNzLgogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlv
bjsKKyAgICBXVEY6OlByb2Nlc3NJRCBtX25ldHdvcmtQcm9jZXNzUElEIHsgMCB9OwogCiAjaWYg
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4+IG1fd2ViSURCQ29ubmVjdGlvbnNCeVNlc3Npb247Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9h
ZGVyU3RyYXRlZ3kuY3BwCShyZXZpc2lvbiAyNDk4NzIpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4
NSw2ICsyODUsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWRGcm9tCiAg
ICAgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlEID0gdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRDsK
ICAgICBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlEID0gdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1l
SUQ7CiAgICAgbG9hZFBhcmFtZXRlcnMucGFyZW50UElEID0gcHJlc2VudGluZ0FwcGxpY2F0aW9u
UElEKCk7CisgICAgbG9hZFBhcmFtZXRlcnMubmV0d29ya1Byb2Nlc3NQSUQgPSBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5uZXR3b3JrUHJv
Y2Vzc1BJRCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0OwogICAgIGxv
YWRQYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IGNvbnRlbnRTbmlmZmluZ1BvbGlj
eTsKICAgICBsb2FkUGFyYW1ldGVycy5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSA9IGNv
bnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378798</attachid>
            <date>2019-09-14 08:49:51 -0700</date>
            <delta_ts>2019-09-18 06:24:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201798-20190914174942.patch</filename>
            <type>text/plain</type>
            <size>14761</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDk4NzMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDE5LTA5LTE0ICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKDI0OTY0OSk6
IFVuYWJsZSB0byBvcGVuIGxvY2FsIGZpbGVzIGluIE1pbmlCcm93c2VyIG9uIG1hY09TCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE3OTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgY29tbWl0IDxo
dHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjQ5NjQ5PiBpbnRyb2R1Y2VkIGEgTWlu
aUJyb3dzZXIgcmVncmVzc2lvbiBvbiBtYWNPUyB3aGVyZQorICAgICAgICBNaW5pQnJvd3NlciBp
cyBub3QgYWJsZSB0byBvcGVuIGxvY2FsIGZpbGVzLiBUaGUgY2hhbmdlIHNldCByMjQ5NjQ5IGZp
eGVkIGEgcHJvYmxlbSB3aGVyZSB0aGUgV2ViQ29udGVudAorICAgICAgICBwcm9jZXNzIFBJRCB3
YXMgbm90IHJlYWR5IHRvIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBhIHNhbmRib3ggZXh0ZW5zaW9u
LiBUaGlzIGhhcHBlbmVkIGluIHRoZSBjYXNlcyB3aGVyZQorICAgICAgICB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIGhhZCBub3QgZmluaXNoZWQgbGF1bmNoaW5nIHdoZW4gdGhlIGxvYWQgc3RhcnRl
ZC4gVGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBhbHNvCisgICAgICAgIGNyZWF0aW5nIHNhbmRi
b3ggZXh0ZW5zaW9ucyBmb3IgdGhlIE5ldHdvcmtpbmcgcHJvY2VzcyBmb3IgdGhlIGZpbGVzIGJl
aW5nIGxvYWRlZCwgYW5kIGFsc28gbmVlZHMgdG8gYmUKKyAgICAgICAgcGFzc2luZyB0aGUgUElE
IG9mIHRoZSBOZXR3b3JraW5nIHByb2Nlc3Mgd2hlbiBjcmVhdGluZyB0aGVzZS4gVGhpcyBwYXRj
aCBpcyBhZGRyZXNzaW5nIHRoaXMgYnkgZ2V0dGluZworICAgICAgICB0aGUgUElEIG9mIHRoZSBO
ZXR3b3JraW5nIHByb2Nlc3Mgd2hlbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlzIGluaXRpYWxs
eSBnZXR0aW5nIHRoZSBjb25uZWN0aW9uIHRvIHRoZQorICAgICAgICBOZXR3b3JraW5nIHByb2Nl
c3MuIFRoZSBQSUQgaXMgdGhlbiBzdG9yZWQgaW4gdGhlIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
biBjbGFzcywgZnJvbSB3aGVyZSBpdCBpcyBwYXNzZWQKKyAgICAgICAgdG8gdGhlIE5ldHdvcmtM
b2FkUGFyYW1ldGVycywgYW5kIHVzZWQgd2hlbiBjcmVhdGluZyB0aGUgc2FuZGJveCBleHRlbnNp
b24gZm9yIHRoZSBOZXR3b3JraW5nIHByb2Nlc3MuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzc1Byb3h5Ojp+TmV0d29ya1Byb2Nlc3NQcm94eSk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzUHJveHk6Om9wZW5OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpuZXR3b3JrUHJvY2Vzc0NyYXNoZWQp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hp
bmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
V2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6TmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpuZXR3b3JrUHJv
Y2Vzc1BJRCBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0
cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxl
TG9hZEZyb21OZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
KToKKwogMjAxOS0wOS0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRkIHJlbGVhc2UgbG9nZ2luZyBpbiBXZWJMb2FkZXJTdHJhdGVneSB0byBjaGVjayB0
aGF0IGEgbG9hZCBpcyBnb2luZyB0aHJvdWdoIHNlcnZpY2Ugd29ya2VyCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgJ
KHJldmlzaW9uIDI0OTg3MikKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0xvYWRQYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAgcHVibGlj
OgogICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciB3ZWJGcmFtZUlEOwogICAgIFJlZlB0cjxX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luOwogICAgIFdURjo6UHJvY2Vzc0lEIHBh
cmVudFBJRCB7IDAgfTsKKyAgICBXVEY6OlByb2Nlc3NJRCBuZXR3b3JrUHJvY2Vzc1BJRCB7IDAg
fTsKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdDsKICAgICBXZWJDb3JlOjpD
b250ZW50U25pZmZpbmdQb2xpY3kgY29udGVudFNuaWZmaW5nUG9saWN5IHsgV2ViQ29yZTo6Q29u
dGVudFNuaWZmaW5nUG9saWN5OjpTbmlmZkNvbnRlbnQgfTsKICAgICBXZWJDb3JlOjpDb250ZW50
RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBjb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSB7IFdl
YkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpTbmlmZiB9OwpJbmRleDogU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDI0OTg3MikKKysrIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02Nyw3ICs2NywxMSBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzOjplbmNvCiAKICAgICBpZiAocmVxdWVzdC51cmwoKS5pc0xvY2FsRmlsZSgpKSB7CiAg
ICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSByZXF1ZXN0U2FuZGJveEV4dGVuc2lvbjsK
KyNpZiBIQVZFKFNBTkRCT1hfSVNTVUVfUkVBRF9FWFRFTlNJT05fVE9fUFJPQ0VTU19CWV9QSUQp
CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRCeVBpZChyZXF1
ZXN0LnVybCgpLmZpbGVTeXN0ZW1QYXRoKCksIG5ldHdvcmtQcm9jZXNzUElELCByZXF1ZXN0U2Fu
ZGJveEV4dGVuc2lvbik7CisjZWxzZQogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVI
YW5kbGUocmVxdWVzdC51cmwoKS5maWxlU3lzdGVtUGF0aCgpLCBTYW5kYm94RXh0ZW5zaW9uOjpU
eXBlOjpSZWFkT25seSwgcmVxdWVzdFNhbmRib3hFeHRlbnNpb24pOworI2VuZGlmCiAgICAgICAg
IGVuY29kZXIgPDwgcmVxdWVzdFNhbmRib3hFeHRlbnNpb247CiAgICAgfQogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDI0OTg3MikKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTExNzUsNyArMTE3NSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhO
YXZpZ2EKICAgICBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKGxvYWRQYXJhbWV0ZXJzKTsKIAog
I2lmIEhBVkUoU0FOREJPWF9JU1NVRV9SRUFEX0VYVEVOU0lPTl9UT19QUk9DRVNTX0JZX1BJRCkK
LSAgICBpZiAocHJvY2Vzc0lkZW50aWZpZXIoKSB8fCAhdXJsLmlzTG9jYWxGaWxlKCkpCisgICAg
aWYgKHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCkgfHwgIXVybC5pc0xvY2FsRmlsZSgpKQog
ICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkUmVxdWVzdChsb2Fk
UGFyYW1ldGVycyksIHdlYlBhZ2VJRCk7CiAgICAgZWxzZSB7CiAgICAgICAgIFN0cmluZyBzYW5k
Ym94RXh0ZW5zaW9uUGF0aDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI0OTg3MikKKysrIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBj
b3B5KQpAQCAtMzYsNyArMzYsNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5
UmVjZWl2CiAgICAgR2V0UGx1Z2lucyhib29sIHJlZnJlc2gpIC0+IChWZWN0b3I8V2ViQ29yZTo6
UGx1Z2luSW5mbz4gcGx1Z2lucywgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+IGFwcGxpY2F0
aW9uUGx1Z2lucywgc3RydWN0IE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVn
aW5JZGVudGlmaWVyPj4gc3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcnMpIFN5bmNocm9ub3VzCiAg
ICAgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24odWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2Vu
KSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUsIGJvb2wgc3VwcG9ydHNBc3lu
Y2hyb25vdXNJbml0aWFsaXphdGlvbikgU3luY2hyb25vdXMKICNlbmRpZgotICAgIEdldE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbigpIC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRs
ZSkgU3luY2hyb25vdXMKKyAgICBHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKSAtPiAoSVBD
OjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUsIGludDMyX3QgcGlkKSBTeW5jaHJvbm91cwog
ICAgIFByb2Nlc3NSZWFkeVRvU3VzcGVuZCgpCiAgICAgRGlkQ2FuY2VsUHJvY2Vzc1N1c3BlbnNp
b24oKQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAJKHJldmlzaW9uIDI0OTg3MikKKysrIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEwNCw3ICsxMDQsNyBAQCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojp+TmV0d29ya1By
b2Nlc3NQcm94CiAgICAgICAgIG1fZG93bmxvYWRQcm94eU1hcC0+aW52YWxpZGF0ZSgpOwogCiAg
ICAgZm9yIChhdXRvJiByZXF1ZXN0IDogbV9jb25uZWN0aW9uUmVxdWVzdHMudmFsdWVzKCkpCi0g
ICAgICAgIHJlcXVlc3QucmVwbHkoeyB9KTsKKyAgICAgICAgcmVxdWVzdC5yZXBseSh7IH0sIDAp
OwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vz
c0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHRpb25zKQpAQCAtMTU2LDEwICsxNTYs
MTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpvcGVuTmV0d29ya1BybwogICAgICAgICBh
dXRvIHJlcXVlc3QgPSBtX2Nvbm5lY3Rpb25SZXF1ZXN0cy50YWtlKGNvbm5lY3Rpb25SZXF1ZXN0
SWRlbnRpZmllcik7CiAKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykgfHwgT1MoV0lORE9X
UykKLSAgICAgICAgcmVxdWVzdC5yZXBseSgqY29ubmVjdGlvbklkZW50aWZpZXIpOworICAgICAg
ICByZXF1ZXN0LnJlcGx5KCpjb25uZWN0aW9uSWRlbnRpZmllciwgcHJvY2Vzc0lkZW50aWZpZXIo
KSk7CiAjZWxpZiBPUyhEQVJXSU4pCiAgICAgICAgIE1FU1NBR0VfQ0hFQ0soTUFDSF9QT1JUX1ZB
TElEKGNvbm5lY3Rpb25JZGVudGlmaWVyLT5wb3J0KCkpKTsKLSAgICAgICAgcmVxdWVzdC5yZXBs
eShJUEM6OkF0dGFjaG1lbnQgeyBjb25uZWN0aW9uSWRlbnRpZmllci0+cG9ydCgpLCBNQUNIX01T
R19UWVBFX01PVkVfU0VORCB9KTsKKyAgICAgICAgcmVxdWVzdC5yZXBseShJUEM6OkF0dGFjaG1l
bnQgeyBjb25uZWN0aW9uSWRlbnRpZmllci0+cG9ydCgpLCBNQUNIX01TR19UWVBFX01PVkVfU0VO
RCB9LCBwcm9jZXNzSWRlbnRpZmllcigpKTsKICNlbHNlCiAgICAgICAgIG5vdEltcGxlbWVudGVk
KCk7CiAjZW5kaWYKQEAgLTI0OCw3ICsyNDgsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
Om5ldHdvcmtQcm9jZXNzCiAgICAgICAgIGlmIChyZXF1ZXN0LndlYlByb2Nlc3MpCiAgICAgICAg
ICAgICBwZW5kaW5nUmVxdWVzdHMudW5jaGVja2VkQXBwZW5kKHN0ZDo6bWFrZV9wYWlyKG1ha2VS
ZWZQdHIocmVxdWVzdC53ZWJQcm9jZXNzLmdldCgpKSwgV1RGTW92ZShyZXF1ZXN0LnJlcGx5KSkp
OwogICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXF1ZXN0LnJlcGx5KHsgfSk7CisgICAgICAg
ICAgICByZXF1ZXN0LnJlcGx5KHsgfSwgMCk7CiAgICAgfQogICAgIG1fY29ubmVjdGlvblJlcXVl
c3RzLmNsZWFyKCk7CiAKQEAgLTM5NCw3ICszOTQsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OmRpZEZpbmlzaExhdW5jCiAgICAgICAgIGlmIChjb25uZWN0aW9uUmVxdWVzdC53ZWJQcm9j
ZXNzKQogICAgICAgICAgICAgZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCpjb25uZWN0aW9u
UmVxdWVzdC53ZWJQcm9jZXNzLCBXVEZNb3ZlKGNvbm5lY3Rpb25SZXF1ZXN0LnJlcGx5KSk7CiAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbm5lY3Rpb25SZXF1ZXN0LnJlcGx5KHsgfSk7Cisg
ICAgICAgICAgICBjb25uZWN0aW9uUmVxdWVzdC5yZXBseSh7IH0sIDApOwogICAgIH0KIAogI2lm
IFBMQVRGT1JNKENPQ09BKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAkocmV2aXNpb24gMjQ5ODcyKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTU5LDEwICsxMTU5LDExIEBAIHZvaWQgV2Vi
UHJvY2Vzczo6c2V0SW5qZWN0ZWRCdW5kbGVQYXJhbWUKICAgICBpbmplY3RlZEJ1bmRsZS0+c2V0
QnVuZGxlUGFyYW1ldGVycyh2YWx1ZSk7CiB9CiAKLXN0YXRpYyBJUEM6OkNvbm5lY3Rpb246Oklk
ZW50aWZpZXIgZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbikKK3N0YXRpYyBzdGQ6OnBhaXI8SVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBX
VEY6OlByb2Nlc3NJRD4gZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbikKIHsKICAgICBJUEM6OkF0dGFjaG1lbnQgZW5jb2RlZENvbm5lY3Rpb25J
ZGVudGlmaWVyOwotICAgIGlmICghY29ubmVjdGlvbi5zZW5kU3luYyhNZXNzYWdlczo6V2ViUHJv
Y2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKSwgTWVzc2FnZXM6OldlYlBy
b2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpSZXBseShlbmNvZGVkQ29u
bmVjdGlvbklkZW50aWZpZXIpLCAwKSkgeworICAgIFdURjo6UHJvY2Vzc0lEIHBpZDsKKyAgICBp
ZiAoIWNvbm5lY3Rpb24uc2VuZFN5bmMoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKCksIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6UmVwbHkoZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVy
LCBwaWQpLCAwKSkgewogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgICAg
ICAvLyBHVEsrIGFuZCBXUEUgcG9ydHMgZG9uJ3QgZXhpdCBvbiBzZW5kIHN5bmMgbWVzc2FnZSBm
YWlsdXJlLgogICAgICAgICAvLyBJbiB0aGlzIHBhcnRpY3VsYXIgY2FzZSwgdGhlIG5ldHdvcmsg
cHJvY2VzcyBjYW4gYmUgdGVybWluYXRlZCBieSB0aGUgVUkgcHJvY2VzcyB3aGlsZSB0aGUKQEAg
LTExNzYsMTQgKzExNzcsMTQgQEAgc3RhdGljIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBn
ZXROZQogICAgIH0KIAogI2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQotICAgIHJldHVybiBl
bmNvZGVkQ29ubmVjdGlvbklkZW50aWZpZXIucmVsZWFzZUZpbGVEZXNjcmlwdG9yKCk7CisgICAg
cmV0dXJuIHN0ZDo6bWFrZV9wYWlyKGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5yZWxlYXNl
RmlsZURlc2NyaXB0b3IoKSwgcGlkKTsKICNlbGlmIE9TKERBUldJTikKLSAgICByZXR1cm4gZW5j
b2RlZENvbm5lY3Rpb25JZGVudGlmaWVyLnBvcnQoKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3Bh
aXIoZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyLnBvcnQoKSwgcGlkKTsKICNlbGlmIE9TKFdJ
TkRPV1MpCi0gICAgcmV0dXJuIGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5oYW5kbGUoKTsK
KyAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyLmhh
bmRsZSgpLCBwaWQpOwogI2Vsc2UKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1
cm4gSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKCk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV9w
YWlyKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcigpLCBwaWQpOwogI2VuZGlmCiB9CiAKQEAg
LTExOTMsMTcgKzExOTQsMjMgQEAgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uJiBXZWJQcm9jZXNz
OjplbgogCiAgICAgLy8gSWYgd2UndmUgbG9zdCBvdXIgY29ubmVjdGlvbiB0byB0aGUgbmV0d29y
ayBwcm9jZXNzIChlLmcuIGl0IGNyYXNoZWQpIHRyeSB0byByZS1lc3RhYmxpc2ggaXQuCiAgICAg
aWYgKCFtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbikgewotICAgICAgICBJUEM6OkNvbm5lY3Rp
b246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIgPSBnZXROZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24oKnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkpOworICAgICAgICBhdXRvIGNvbm5l
Y3Rpb25JZGVudGlmaWVyQW5kUElEID0gZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCpwYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpKTsKKyAgICAgICAgCisgICAgICAgIElQQzo6Q29ubmVjdGlv
bjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciA9IGNvbm5lY3Rpb25JZGVudGlmaWVy
QW5kUElELmZpcnN0OworICAgICAgICBXVEY6OlByb2Nlc3NJRCBwaWQgPSBjb25uZWN0aW9uSWRl
bnRpZmllckFuZFBJRC5zZWNvbmQ7CiAKICAgICAgICAgLy8gUmV0cnkgb25jZSBpZiB0aGUgSVBD
IHRvIGdldCB0aGUgY29ubmVjdGlvbklkZW50aWZpZXIgc3VjY2VlZGVkIGJ1dCB0aGUgY29ubmVj
dGlvbklkZW50aWZpZXIgd2UgcmVjZWl2ZWQKICAgICAgICAgLy8gaXMgaW52YWxpZC4gVGhpcyBt
YXkgaW5kaWNhdGUgdGhhdCB0aGUgbmV0d29yayBwcm9jZXNzIGhhcyBjcmFzaGVkLgotICAgICAg
ICBpZiAoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbklkZW50
aWZpZXIpKQotICAgICAgICAgICAgY29ubmVjdGlvbklkZW50aWZpZXIgPSBnZXROZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24oKnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkpOworICAgICAgICBpZiAo
IUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbklkZW50aWZpZXIp
KSB7CisgICAgICAgICAgICBjb25uZWN0aW9uSWRlbnRpZmllckFuZFBJRCA9IGdldE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbigqcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKSk7CisgICAgICAgICAg
ICBjb25uZWN0aW9uSWRlbnRpZmllciA9IGNvbm5lY3Rpb25JZGVudGlmaWVyQW5kUElELmZpcnN0
OworICAgICAgICAgICAgcGlkID0gY29ubmVjdGlvbklkZW50aWZpZXJBbmRQSUQuc2Vjb25kOwor
ICAgICAgICB9CiAKICAgICAgICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1Zh
bGlkKGNvbm5lY3Rpb25JZGVudGlmaWVyKSkKICAgICAgICAgICAgIENSQVNIKCk7CiAKLSAgICAg
ICAgbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gPSBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246
OmNyZWF0ZShjb25uZWN0aW9uSWRlbnRpZmllcik7CisgICAgICAgIG1fbmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoY29ubmVjdGlvbklk
ZW50aWZpZXIsIHBpZCk7CiAgICAgfQogICAgIAogICAgIHJldHVybiAqbV9uZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb247CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAJKHJldmlzaW9uIDI0
OTg3MikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY4LDggKzY4LDkgQEAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLU5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbjo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRp
ZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKK05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6TmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0
aW9uSWRlbnRpZmllciwgV1RGOjpQcm9jZXNzSUQgcGlkKQogICAgIDogbV9jb25uZWN0aW9uKElQ
Qzo6Q29ubmVjdGlvbjo6Y3JlYXRlQ2xpZW50Q29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmll
ciwgKnRoaXMpKQorICAgICwgbV9uZXR3b3JrUHJvY2Vzc1BJRChwaWQpCiB7CiAgICAgbV9jb25u
ZWN0aW9uLT5vcGVuKCk7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAkocmV2aXNpb24g
MjQ5ODcyKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDkgKzU4LDkgQEAgdHlwZWRlZiB1
aW50NjRfdCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyOwogCiBjbGFzcyBOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24+LCBJ
UEM6OkNvbm5lY3Rpb246OkNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29u
bmVjdGlvbklkZW50aWZpZXIpCisgICAgc3RhdGljIFJlZjxOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZp
ZXIsIFdURjo6UHJvY2Vzc0lEIHBpZCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllcikpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oY29ubmVj
dGlvbklkZW50aWZpZXIsIHBpZCkpOwogICAgIH0KICAgICB+TmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uKCk7CiAgICAgCkBAIC04MCw4ICs4MCwxMCBAQCBwdWJsaWM6CiAgICAgV2ViU1dDbGllbnRD
b25uZWN0aW9uJiBzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNlc3Npb24oUEFMOjpTZXNzaW9u
SUQpOwogI2VuZGlmCiAKKyAgICBXVEY6OlByb2Nlc3NJRCBuZXR3b3JrUHJvY2Vzc1BJRCgpIGNv
bnN0IHsgcmV0dXJuIG1fbmV0d29ya1Byb2Nlc3NQSUQ7IH0KKwogcHJpdmF0ZToKLSAgICBOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKKyAgICBO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBXVEY6
OlByb2Nlc3NJRCk7CiAKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJp
ZGU7CkBAIC0xMDMsNiArMTA1LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIFRoZSBjb25uZWN0aW9u
IGZyb20gdGhlIHdlYiBwcm9jZXNzIHRvIHRoZSBuZXR3b3JrIHByb2Nlc3MuCiAgICAgUmVmPElQ
Qzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIFdURjo6UHJvY2Vzc0lEIG1fbmV0d29y
a1Byb2Nlc3NQSUQgeyAwIH07CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBI
YXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPj4gbV93ZWJJ
REJDb25uZWN0aW9uc0J5U2Vzc2lvbjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAJKHJldmlzaW9uIDI0OTg3
MikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjg1LDYgKzI4NSw3IEBAIHZvaWQgV2ViTG9hZGVyU3Ry
YXRlZ3k6OnNjaGVkdWxlTG9hZEZyb20KICAgICBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQgPSB0
cmFja2luZ1BhcmFtZXRlcnMucGFnZUlEOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQg
PSB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRDsKICAgICBsb2FkUGFyYW1ldGVycy5wYXJlbnRQ
SUQgPSBwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKTsKKyAgICBsb2FkUGFyYW1ldGVycy5uZXR3
b3JrUHJvY2Vzc1BJRCA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbigpLm5ldHdvcmtQcm9jZXNzUElEKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMu
cmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgbG9hZFBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9s
aWN5ID0gY29udGVudFNuaWZmaW5nUG9saWN5OwogICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRF
bmNvZGluZ1NuaWZmaW5nUG9saWN5ID0gY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3k7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379034</attachid>
            <date>2019-09-18 06:24:31 -0700</date>
            <delta_ts>2019-09-18 14:36:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201798-20190918152415.patch</filename>
            <type>text/plain</type>
            <size>18082</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDk4NzMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDE5LTA5LTE0ICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKDI0OTY0OSk6
IFVuYWJsZSB0byBvcGVuIGxvY2FsIGZpbGVzIGluIE1pbmlCcm93c2VyIG9uIG1hY09TCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE3OTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgY29tbWl0IDxo
dHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjQ5NjQ5PiBpbnRyb2R1Y2VkIGEgTWlu
aUJyb3dzZXIgcmVncmVzc2lvbiBvbiBtYWNPUyB3aGVyZQorICAgICAgICBNaW5pQnJvd3NlciBp
cyBub3QgYWJsZSB0byBvcGVuIGxvY2FsIGZpbGVzLiBUaGUgY2hhbmdlIHNldCByMjQ5NjQ5IGZp
eGVkIGEgcHJvYmxlbSB3aGVyZSB0aGUgV2ViQ29udGVudAorICAgICAgICBwcm9jZXNzIFBJRCB3
YXMgbm90IHJlYWR5IHRvIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBhIHNhbmRib3ggZXh0ZW5zaW9u
LiBUaGlzIGhhcHBlbmVkIGluIHRoZSBjYXNlcyB3aGVyZQorICAgICAgICB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIGhhZCBub3QgZmluaXNoZWQgbGF1bmNoaW5nIHdoZW4gdGhlIGxvYWQgc3RhcnRl
ZC4gVGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBhbHNvCisgICAgICAgIGNyZWF0aW5nIHNhbmRi
b3ggZXh0ZW5zaW9ucyBmb3IgdGhlIE5ldHdvcmtpbmcgcHJvY2VzcyBmb3IgdGhlIGZpbGVzIGJl
aW5nIGxvYWRlZCwgYW5kIGFsc28gbmVlZHMgdG8gYmUKKyAgICAgICAgcGFzc2luZyB0aGUgUElE
IG9mIHRoZSBOZXR3b3JraW5nIHByb2Nlc3Mgd2hlbiBjcmVhdGluZyB0aGVzZS4gVGhpcyBwYXRj
aCBpcyBhZGRyZXNzaW5nIHRoaXMgYnkgZ2V0dGluZworICAgICAgICB0aGUgUElEIG9mIHRoZSBO
ZXR3b3JraW5nIHByb2Nlc3Mgd2hlbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlzIGluaXRpYWxs
eSBnZXR0aW5nIHRoZSBjb25uZWN0aW9uIHRvIHRoZQorICAgICAgICBOZXR3b3JraW5nIHByb2Nl
c3MuIFRoZSBQSUQgaXMgdGhlbiBzdG9yZWQgaW4gdGhlIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
biBjbGFzcywgZnJvbSB3aGVyZSBpdCBpcyBwYXNzZWQKKyAgICAgICAgdG8gdGhlIE5ldHdvcmtM
b2FkUGFyYW1ldGVycywgYW5kIHVzZWQgd2hlbiBjcmVhdGluZyB0aGUgc2FuZGJveCBleHRlbnNp
b24gZm9yIHRoZSBOZXR3b3JraW5nIHByb2Nlc3MuCisKKyAgICAgICAgQWRkZWQgQVBJIHRlc3Q6
IFdLV2ViVmlldy5Mb2FkRmlsZVdpdGhMb2FkUmVxdWVzdAorCisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3NQcm94eTo6fk5ldHdvcmtQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpvcGVuTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6bmV0d29ya1Byb2Nlc3NDcmFz
aGVkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1
bmNoaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246Ok5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6bmV0d29y
a1Byb2Nlc3NQSUQgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2Fk
ZXJTdHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpzY2hl
ZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbik6CisKIDIwMTktMDktMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgog
CiAgICAgICAgIEFkZCByZWxlYXNlIGxvZ2dpbmcgaW4gV2ViTG9hZGVyU3RyYXRlZ3kgdG8gY2hl
Y2sgdGhhdCBhIGxvYWQgaXMgZ29pbmcgdGhyb3VnaCBzZXJ2aWNlIHdvcmtlcgpJbmRleDogU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVy
cy5oCShyZXZpc2lvbiAyNDk4NzIpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkUGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBAIHB1
YmxpYzoKICAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgd2ViRnJhbWVJRDsKICAgICBSZWZQ
dHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbjsKICAgICBXVEY6OlByb2Nlc3NJ
RCBwYXJlbnRQSUQgeyAwIH07CisgICAgV1RGOjpQcm9jZXNzSUQgbmV0d29ya1Byb2Nlc3NQSUQg
eyAwIH07CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Q7CiAgICAgV2ViQ29y
ZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGljeSB7IFdlYkNvcmU6
OkNvbnRlbnRTbmlmZmluZ1BvbGljeTo6U25pZmZDb250ZW50IH07CiAgICAgV2ViQ29yZTo6Q29u
dGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kg
eyBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25pZmYgfTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyNDk4NzIpCisrKyBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjcsNyArNjcsMTIgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2Fk
UGFyYW1ldGVyczo6ZW5jbwogCiAgICAgaWYgKHJlcXVlc3QudXJsKCkuaXNMb2NhbEZpbGUoKSkg
ewogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgcmVxdWVzdFNhbmRib3hFeHRlbnNp
b247CisjaWYgSEFWRShTQU5EQk9YX0lTU1VFX1JFQURfRVhURU5TSU9OX1RPX1BST0NFU1NfQllf
UElEKQorICAgICAgICBBU1NFUlQobmV0d29ya1Byb2Nlc3NQSUQpOworICAgICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkQnlQaWQocmVxdWVzdC51cmwoKS5maWxlU3lz
dGVtUGF0aCgpLCBuZXR3b3JrUHJvY2Vzc1BJRCwgcmVxdWVzdFNhbmRib3hFeHRlbnNpb24pOwor
I2Vsc2UKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlKHJlcXVlc3QudXJs
KCkuZmlsZVN5c3RlbVBhdGgoKSwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVhZE9ubHksIHJl
cXVlc3RTYW5kYm94RXh0ZW5zaW9uKTsKKyNlbmRpZgogICAgICAgICBlbmNvZGVyIDw8IHJlcXVl
c3RTYW5kYm94RXh0ZW5zaW9uOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAyNDk4NzIpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTc1LDcgKzExNzUs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhCiAgICAgYWRkUGxh
dGZvcm1Mb2FkUGFyYW1ldGVycyhsb2FkUGFyYW1ldGVycyk7CiAKICNpZiBIQVZFKFNBTkRCT1hf
SVNTVUVfUkVBRF9FWFRFTlNJT05fVE9fUFJPQ0VTU19CWV9QSUQpCi0gICAgaWYgKHByb2Nlc3NJ
ZGVudGlmaWVyKCkgfHwgIXVybC5pc0xvY2FsRmlsZSgpKQorICAgIGlmIChwcm9jZXNzLT5wcm9j
ZXNzSWRlbnRpZmllcigpIHx8ICF1cmwuaXNMb2NhbEZpbGUoKSkKICAgICAgICAgcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9hZFJlcXVlc3QobG9hZFBhcmFtZXRlcnMpLCB3ZWJQ
YWdlSUQpOwogICAgIGVsc2UgewogICAgICAgICBTdHJpbmcgc2FuZGJveEV4dGVuc2lvblBhdGg7
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNDk4NzIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2
LDcgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdgogICAgIEdldFBs
dWdpbnMoYm9vbCByZWZyZXNoKSAtPiAoVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+IHBsdWdp
bnMsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBhcHBsaWNhdGlvblBsdWdpbnMsIHN0cnVj
dCBPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6U3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcj4+IHN1
cHBvcnRlZFBsdWdpbklkZW50aWZpZXJzKSBTeW5jaHJvbm91cwogICAgIEdldFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbikgLT4gKElQQzo6QXR0YWNo
bWVudCBjb25uZWN0aW9uSGFuZGxlLCBib29sIHN1cHBvcnRzQXN5bmNocm9ub3VzSW5pdGlhbGl6
YXRpb24pIFN5bmNocm9ub3VzCiAjZW5kaWYKLSAgICBHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24oKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUpIFN5bmNocm9ub3VzCisg
ICAgR2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25u
ZWN0aW9uSGFuZGxlLCBpbnQzMl90IHBpZCkgU3luY2hyb25vdXMKICAgICBQcm9jZXNzUmVhZHlU
b1N1c3BlbmQoKQogICAgIERpZENhbmNlbFByb2Nlc3NTdXNwZW5zaW9uKCkKIApJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuY3BwCShyZXZpc2lvbiAyNDk4NzIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsNyAr
MTA0LDcgQEAgTmV0d29ya1Byb2Nlc3NQcm94eTo6fk5ldHdvcmtQcm9jZXNzUHJveAogICAgICAg
ICBtX2Rvd25sb2FkUHJveHlNYXAtPmludmFsaWRhdGUoKTsKIAogICAgIGZvciAoYXV0byYgcmVx
dWVzdCA6IG1fY29ubmVjdGlvblJlcXVlc3RzLnZhbHVlcygpKQotICAgICAgICByZXF1ZXN0LnJl
cGx5KHsgfSk7CisgICAgICAgIHJlcXVlc3QucmVwbHkoeyB9LCAwKTsKIH0KIAogdm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNo
T3B0aW9ucyYgbGF1bmNoT3B0aW9ucykKQEAgLTE1NiwxMCArMTU2LDEwIEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6b3Blbk5ldHdvcmtQcm8KICAgICAgICAgYXV0byByZXF1ZXN0ID0gbV9j
b25uZWN0aW9uUmVxdWVzdHMudGFrZShjb25uZWN0aW9uUmVxdWVzdElkZW50aWZpZXIpOwogCiAj
aWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpIHx8IE9TKFdJTkRPV1MpCi0gICAgICAgIHJlcXVl
c3QucmVwbHkoKmNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKyAgICAgICAgcmVxdWVzdC5yZXBseSgq
Y29ubmVjdGlvbklkZW50aWZpZXIsIHByb2Nlc3NJZGVudGlmaWVyKCkpOwogI2VsaWYgT1MoREFS
V0lOKQogICAgICAgICBNRVNTQUdFX0NIRUNLKE1BQ0hfUE9SVF9WQUxJRChjb25uZWN0aW9uSWRl
bnRpZmllci0+cG9ydCgpKSk7Ci0gICAgICAgIHJlcXVlc3QucmVwbHkoSVBDOjpBdHRhY2htZW50
IHsgY29ubmVjdGlvbklkZW50aWZpZXItPnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQg
fSk7CisgICAgICAgIHJlcXVlc3QucmVwbHkoSVBDOjpBdHRhY2htZW50IHsgY29ubmVjdGlvbklk
ZW50aWZpZXItPnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQgfSwgcHJvY2Vzc0lkZW50
aWZpZXIoKSk7CiAjZWxzZQogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwogI2VuZGlmCkBAIC0y
NDgsNyArMjQ4LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpuZXR3b3JrUHJvY2Vzcwog
ICAgICAgICBpZiAocmVxdWVzdC53ZWJQcm9jZXNzKQogICAgICAgICAgICAgcGVuZGluZ1JlcXVl
c3RzLnVuY2hlY2tlZEFwcGVuZChzdGQ6Om1ha2VfcGFpcihtYWtlUmVmUHRyKHJlcXVlc3Qud2Vi
UHJvY2Vzcy5nZXQoKSksIFdURk1vdmUocmVxdWVzdC5yZXBseSkpKTsKICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgcmVxdWVzdC5yZXBseSh7IH0pOworICAgICAgICAgICAgcmVxdWVzdC5yZXBs
eSh7IH0sIDApOwogICAgIH0KICAgICBtX2Nvbm5lY3Rpb25SZXF1ZXN0cy5jbGVhcigpOwogCkBA
IC0zOTQsNyArMzk0LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVu
YwogICAgICAgICBpZiAoY29ubmVjdGlvblJlcXVlc3Qud2ViUHJvY2VzcykKICAgICAgICAgICAg
IGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigqY29ubmVjdGlvblJlcXVlc3Qud2ViUHJvY2Vz
cywgV1RGTW92ZShjb25uZWN0aW9uUmVxdWVzdC5yZXBseSkpOwogICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBjb25uZWN0aW9uUmVxdWVzdC5yZXBseSh7IH0pOworICAgICAgICAgICAgY29ubmVj
dGlvblJlcXVlc3QucmVwbHkoeyB9LCAwKTsKICAgICB9CiAKICNpZiBQTEFURk9STShDT0NPQSkK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDI0
OTg3MikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTE1OSwxMCArMTE1OSwxMSBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldEluamVj
dGVkQnVuZGxlUGFyYW1lCiAgICAgaW5qZWN0ZWRCdW5kbGUtPnNldEJ1bmRsZVBhcmFtZXRlcnMo
dmFsdWUpOwogfQogCi1zdGF0aWMgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGdldE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCitzdGF0aWMg
c3RkOjpwYWlyPElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgV1RGOjpQcm9jZXNzSUQ+IGdl
dE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiB7
CiAgICAgSVBDOjpBdHRhY2htZW50IGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllcjsKLSAgICBp
ZiAoIWNvbm5lY3Rpb24uc2VuZFN5bmMoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKCksIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6UmVwbHkoZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVy
KSwgMCkpIHsKKyAgICBXVEY6OlByb2Nlc3NJRCBwaWQ7CisgICAgaWYgKCFjb25uZWN0aW9uLnNl
bmRTeW5jKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbigpLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb246OlJlcGx5KGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllciwgcGlkKSwgMCkpIHsKICNp
ZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICAgICAgLy8gR1RLKyBhbmQgV1BF
IHBvcnRzIGRvbid0IGV4aXQgb24gc2VuZCBzeW5jIG1lc3NhZ2UgZmFpbHVyZS4KICAgICAgICAg
Ly8gSW4gdGhpcyBwYXJ0aWN1bGFyIGNhc2UsIHRoZSBuZXR3b3JrIHByb2Nlc3MgY2FuIGJlIHRl
cm1pbmF0ZWQgYnkgdGhlIFVJIHByb2Nlc3Mgd2hpbGUgdGhlCkBAIC0xMTc2LDE0ICsxMTc3LDE0
IEBAIHN0YXRpYyBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgZ2V0TmUKICAgICB9CiAKICNp
ZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKLSAgICByZXR1cm4gZW5jb2RlZENvbm5lY3Rpb25J
ZGVudGlmaWVyLnJlbGVhc2VGaWxlRGVzY3JpcHRvcigpOworICAgIHJldHVybiBzdGQ6Om1ha2Vf
cGFpcihlbmNvZGVkQ29ubmVjdGlvbklkZW50aWZpZXIucmVsZWFzZUZpbGVEZXNjcmlwdG9yKCks
IHBpZCk7CiAjZWxpZiBPUyhEQVJXSU4pCi0gICAgcmV0dXJuIGVuY29kZWRDb25uZWN0aW9uSWRl
bnRpZmllci5wb3J0KCk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKGVuY29kZWRDb25uZWN0
aW9uSWRlbnRpZmllci5wb3J0KCksIHBpZCk7CiAjZWxpZiBPUyhXSU5ET1dTKQotICAgIHJldHVy
biBlbmNvZGVkQ29ubmVjdGlvbklkZW50aWZpZXIuaGFuZGxlKCk7CisgICAgcmV0dXJuIHN0ZDo6
bWFrZV9wYWlyKGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5oYW5kbGUoKSwgcGlkKTsKICNl
bHNlCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIElQQzo6Q29ubmVjdGlv
bjo6SWRlbnRpZmllcigpOworICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihJUEM6OkNvbm5lY3Rp
b246OklkZW50aWZpZXIoKSwgcGlkKTsKICNlbmRpZgogfQogCkBAIC0xMTkzLDE3ICsxMTk0LDIz
IEBAIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiYgV2ViUHJvY2Vzczo6ZW4KIAogICAgIC8vIElm
IHdlJ3ZlIGxvc3Qgb3VyIGNvbm5lY3Rpb24gdG8gdGhlIG5ldHdvcmsgcHJvY2VzcyAoZS5nLiBp
dCBjcmFzaGVkKSB0cnkgdG8gcmUtZXN0YWJsaXNoIGl0LgogICAgIGlmICghbV9uZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24pIHsKLSAgICAgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNv
bm5lY3Rpb25JZGVudGlmaWVyID0gZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCpwYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpKTsKKyAgICAgICAgYXV0byBjb25uZWN0aW9uSWRlbnRpZmllckFu
ZFBJRCA9IGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigqcGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKSk7CisgICAgICAgIAorICAgICAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29u
bmVjdGlvbklkZW50aWZpZXIgPSBjb25uZWN0aW9uSWRlbnRpZmllckFuZFBJRC5maXJzdDsKKyAg
ICAgICAgV1RGOjpQcm9jZXNzSUQgcGlkID0gY29ubmVjdGlvbklkZW50aWZpZXJBbmRQSUQuc2Vj
b25kOwogCiAgICAgICAgIC8vIFJldHJ5IG9uY2UgaWYgdGhlIElQQyB0byBnZXQgdGhlIGNvbm5l
Y3Rpb25JZGVudGlmaWVyIHN1Y2NlZWRlZCBidXQgdGhlIGNvbm5lY3Rpb25JZGVudGlmaWVyIHdl
IHJlY2VpdmVkCiAgICAgICAgIC8vIGlzIGludmFsaWQuIFRoaXMgbWF5IGluZGljYXRlIHRoYXQg
dGhlIG5ldHdvcmsgcHJvY2VzcyBoYXMgY3Jhc2hlZC4KLSAgICAgICAgaWYgKCFJUEM6OkNvbm5l
Y3Rpb246OmlkZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rpb25JZGVudGlmaWVyKSkKLSAgICAgICAg
ICAgIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCpw
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpKTsKKyAgICAgICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246
OmlkZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rpb25JZGVudGlmaWVyKSkgeworICAgICAgICAgICAg
Y29ubmVjdGlvbklkZW50aWZpZXJBbmRQSUQgPSBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24o
KnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkpOworICAgICAgICAgICAgY29ubmVjdGlvbklkZW50
aWZpZXIgPSBjb25uZWN0aW9uSWRlbnRpZmllckFuZFBJRC5maXJzdDsKKyAgICAgICAgICAgIHBp
ZCA9IGNvbm5lY3Rpb25JZGVudGlmaWVyQW5kUElELnNlY29uZDsKKyAgICAgICAgfQogCiAgICAg
ICAgIGlmICghSVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSWRl
bnRpZmllcikpCiAgICAgICAgICAgICBDUkFTSCgpOwogCi0gICAgICAgIG1fbmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoY29ubmVjdGlv
bklkZW50aWZpZXIpOworICAgICAgICBtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9IE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGNvbm5lY3Rpb25JZGVudGlmaWVyLCBwaWQpOwog
ICAgIH0KICAgICAKICAgICByZXR1cm4gKm1fbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOwpJbmRl
eDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCShyZXZpc2lvbiAyNDk4NzIpCisrKyBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02OCw4ICs2OCw5IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCi1OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246Ok5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklk
ZW50aWZpZXIpCitOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246Ok5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIFdU
Rjo6UHJvY2Vzc0lEIHBpZCkKICAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNy
ZWF0ZUNsaWVudENvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKKyAgICAs
IG1fbmV0d29ya1Byb2Nlc3NQSUQocGlkKQogewogICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOwog
fQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgJKHJldmlzaW9uIDI0OTg3MikKKysrIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCSh3
b3JraW5nIGNvcHkpCkBAIC01OCw5ICs1OCw5IEBAIHR5cGVkZWYgdWludDY0X3QgUmVzb3VyY2VM
b2FkSWRlbnRpZmllcjsKIAogY2xhc3MgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uIDogcHVibGlj
IFJlZkNvdW50ZWQ8TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uPiwgSVBDOjpDb25uZWN0aW9uOjpD
bGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
PiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVy
KQorICAgIHN0YXRpYyBSZWY8TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uPiBjcmVhdGUoSVBDOjpD
b25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBXVEY6OlByb2Nlc3NJ
RCBwaWQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCBw
aWQpKTsKICAgICB9CiAgICAgfk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpOwogICAgIApAQCAt
ODAsOCArODAsMTAgQEAgcHVibGljOgogICAgIFdlYlNXQ2xpZW50Q29ubmVjdGlvbiYgc2Vydmlj
ZVdvcmtlckNvbm5lY3Rpb25Gb3JTZXNzaW9uKFBBTDo6U2Vzc2lvbklEKTsKICNlbmRpZgogCisg
ICAgV1RGOjpQcm9jZXNzSUQgbmV0d29ya1Byb2Nlc3NQSUQoKSBjb25zdCB7IHJldHVybiBtX25l
dHdvcmtQcm9jZXNzUElEOyB9CisKIHByaXZhdGU6Ci0gICAgTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CisgICAgTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgV1RGOjpQcm9jZXNzSUQpOwogCiAg
ICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwpAQCAtMTAzLDYgKzEw
NSw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBUaGUgY29ubmVjdGlvbiBmcm9tIHRoZSB3ZWIgcHJv
Y2VzcyB0byB0aGUgbmV0d29yayBwcm9jZXNzLgogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1f
Y29ubmVjdGlvbjsKKyAgICBXVEY6OlByb2Nlc3NJRCBtX25ldHdvcmtQcm9jZXNzUElEIHsgMCB9
OwogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgSGFzaE1hcDx1aW50NjRfdCwg
UmVmUHRyPFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4+IG1fd2ViSURCQ29ubmVjdGlvbnNCeVNl
c3Npb247CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJT
dHJhdGVneS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCShyZXZpc2lvbiAyNDk4NzIpCisrKyBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI4NSw2ICsyODUsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxv
YWRGcm9tCiAgICAgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlEID0gdHJhY2tpbmdQYXJhbWV0ZXJz
LnBhZ2VJRDsKICAgICBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlEID0gdHJhY2tpbmdQYXJhbWV0
ZXJzLmZyYW1lSUQ7CiAgICAgbG9hZFBhcmFtZXRlcnMucGFyZW50UElEID0gcHJlc2VudGluZ0Fw
cGxpY2F0aW9uUElEKCk7CisgICAgbG9hZFBhcmFtZXRlcnMubmV0d29ya1Byb2Nlc3NQSUQgPSBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5u
ZXR3b3JrUHJvY2Vzc1BJRCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0
OwogICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IGNvbnRlbnRTbmlm
ZmluZ1BvbGljeTsKICAgICBsb2FkUGFyYW1ldGVycy5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1Bv
bGljeSA9IGNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OwpAQCAtNTYxLDYgKzU2Miw3IEBA
IHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmMKICAgICBsb2FkUGFyYW1l
dGVycy53ZWJQYWdlSUQgPSBwYWdlSUQ7CiAgICAgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCA9
IGZyYW1lSUQ7CiAgICAgbG9hZFBhcmFtZXRlcnMucGFyZW50UElEID0gcHJlc2VudGluZ0FwcGxp
Y2F0aW9uUElEKCk7CisgICAgbG9hZFBhcmFtZXRlcnMubmV0d29ya1Byb2Nlc3NQSUQgPSBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5uZXR3
b3JrUHJvY2Vzc1BJRCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0Owog
ICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IENvbnRlbnRTbmlmZmlu
Z1BvbGljeTo6U25pZmZDb250ZW50OwogICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRFbmNvZGlu
Z1NuaWZmaW5nUG9saWN5ID0gQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3k6OlNuaWZmOwpA
QCAtNjMwLDYgKzYzMiw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnN0YXJ0UGluZ0xvYWQo
RnIKICAgICBsb2FkUGFyYW1ldGVycy5zb3VyY2VPcmlnaW4gPSAmZG9jdW1lbnQtPnNlY3VyaXR5
T3JpZ2luKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMudG9wT3JpZ2luID0gJmRvY3VtZW50LT50b3BP
cmlnaW4oKTsKICAgICBsb2FkUGFyYW1ldGVycy5wYXJlbnRQSUQgPSBwcmVzZW50aW5nQXBwbGlj
YXRpb25QSUQoKTsKKyAgICBsb2FkUGFyYW1ldGVycy5uZXR3b3JrUHJvY2Vzc1BJRCA9IFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLm5ldHdv
cmtQcm9jZXNzUElEKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3kgPSBvcHRpb25zLmNyZWRlbnRpYWxzID09IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9t
aXQgPyBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2UgOiBTdG9yZWRDcmVkZW50aWFs
c1BvbGljeTo6VXNlOwogICAgIGxvYWRQYXJhbWV0ZXJzLm9wdGlvbnMgPSBvcHRpb25zOwogICAg
IGxvYWRQYXJhbWV0ZXJzLm9yaWdpbmFsUmVxdWVzdEhlYWRlcnMgPSBvcmlnaW5hbFJlcXVlc3RI
ZWFkZXJzOwpAQCAtNjkwLDYgKzY5Myw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnByZWNv
bm5lY3RUbyhGcmEKICAgICBwYXJhbWV0ZXJzLndlYlBhZ2VJRCA9IHdlYlBhZ2UtPmlkZW50aWZp
ZXIoKTsKICAgICBwYXJhbWV0ZXJzLndlYkZyYW1lSUQgPSB3ZWJGcmFtZS0+ZnJhbWVJRCgpOwog
ICAgIHBhcmFtZXRlcnMucGFyZW50UElEID0gcHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7Cisg
ICAgcGFyYW1ldGVycy5uZXR3b3JrUHJvY2Vzc1BJRCA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLm5ldHdvcmtQcm9jZXNzUElEKCk7CiAg
ICAgcGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IHN0b3JlZENyZWRlbnRpYWxz
UG9saWN5OwogICAgIHBhcmFtZXRlcnMuc2hvdWxkUHJlY29ubmVjdE9ubHkgPSBQcmVjb25uZWN0
T25seTo6WWVzOwogICAgIHBhcmFtZXRlcnMuc2hvdWxkUmVzdHJpY3RIVFRQUmVzcG9uc2VBY2Nl
c3MgPSBzaG91bGRQZXJmb3JtU2VjdXJpdHlDaGVja3MoKTsKSW5kZXg6IFRvb2xzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MDAzMSkKKysrIFRv
b2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE5LTA5LTE4
ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNT
SU9OKDI0OTY0OSk6IFVuYWJsZSB0byBvcGVuIGxvY2FsIGZpbGVzIGluIE1pbmlCcm93c2VyIG9u
IG1hY09TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDE3OTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9hZEZpbGVVUkwubW06CisgICAgICAg
IChURVNUKToKKwogMjAxOS0wOS0xNyAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBz
b255LmNvbT4KIAogICAgICAgICBbV2luXVtNaW5pQnJvd3Nlcl0gUmVtb3ZlIHVudXNlZCBET01E
ZWZhdWx0SW1wbC5jcHAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvTG9hZEZpbGVVUkwubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Mb2FkRmlsZVVSTC5tbQkocmV2aXNpb24gMjQ5ODcyKQorKysgVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2FkRmlsZVVSTC5tbQkod29ya2luZyBj
b3B5KQpAQCAtMzIsNiArMzIsMTcgQEAKICNpbXBvcnQgPFdlYktpdC9XZWJWaWV3UHJpdmF0ZS5o
PgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCitURVNUKFdLV2ViVmlldywgTG9hZEZpbGVX
aXRoTG9hZFJlcXVlc3QpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisg
ICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdl
dCgpXTsKKworICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVz
dFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIg
d2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworICAgIFtkZWxlZ2F0
ZSB3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07Cit9CiAKIFRFU1QoV0tXZWJWaWV3LCBMb2Fk
VHdvRmlsZXMpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379074</attachid>
            <date>2019-09-18 14:36:13 -0700</date>
            <delta_ts>2019-10-02 14:27:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201798-20190918233557.patch</filename>
            <type>text/plain</type>
            <size>18223</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDk4NzMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDE5LTA5LTE0ICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKDI0OTY0OSk6
IFVuYWJsZSB0byBvcGVuIGxvY2FsIGZpbGVzIGluIE1pbmlCcm93c2VyIG9uIG1hY09TCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE3OTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgY29tbWl0IDxo
dHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjQ5NjQ5PiBpbnRyb2R1Y2VkIGEgTWlu
aUJyb3dzZXIgcmVncmVzc2lvbiBvbiBtYWNPUyB3aGVyZQorICAgICAgICBNaW5pQnJvd3NlciBp
cyBub3QgYWJsZSB0byBvcGVuIGxvY2FsIGZpbGVzLiBUaGUgY2hhbmdlIHNldCByMjQ5NjQ5IGZp
eGVkIGEgcHJvYmxlbSB3aGVyZSB0aGUgV2ViQ29udGVudAorICAgICAgICBwcm9jZXNzIFBJRCB3
YXMgbm90IHJlYWR5IHRvIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBhIHNhbmRib3ggZXh0ZW5zaW9u
LiBUaGlzIGhhcHBlbmVkIGluIHRoZSBjYXNlcyB3aGVyZQorICAgICAgICB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIGhhZCBub3QgZmluaXNoZWQgbGF1bmNoaW5nIHdoZW4gdGhlIGxvYWQgc3RhcnRl
ZC4gVGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBhbHNvCisgICAgICAgIGNyZWF0aW5nIHNhbmRi
b3ggZXh0ZW5zaW9ucyBmb3IgdGhlIE5ldHdvcmtpbmcgcHJvY2VzcyBmb3IgdGhlIGZpbGVzIGJl
aW5nIGxvYWRlZCwgYW5kIGFsc28gbmVlZHMgdG8gYmUKKyAgICAgICAgcGFzc2luZyB0aGUgUElE
IG9mIHRoZSBOZXR3b3JraW5nIHByb2Nlc3Mgd2hlbiBjcmVhdGluZyB0aGVzZS4gVGhpcyBwYXRj
aCBpcyBhZGRyZXNzaW5nIHRoaXMgYnkgZ2V0dGluZworICAgICAgICB0aGUgUElEIG9mIHRoZSBO
ZXR3b3JraW5nIHByb2Nlc3Mgd2hlbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlzIGluaXRpYWxs
eSBnZXR0aW5nIHRoZSBjb25uZWN0aW9uIHRvIHRoZQorICAgICAgICBOZXR3b3JraW5nIHByb2Nl
c3MuIFRoZSBQSUQgaXMgdGhlbiBzdG9yZWQgaW4gdGhlIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
biBjbGFzcywgZnJvbSB3aGVyZSBpdCBpcyBwYXNzZWQKKyAgICAgICAgdG8gdGhlIE5ldHdvcmtM
b2FkUGFyYW1ldGVycywgYW5kIHVzZWQgd2hlbiBjcmVhdGluZyB0aGUgc2FuZGJveCBleHRlbnNp
b24gZm9yIHRoZSBOZXR3b3JraW5nIHByb2Nlc3MuCisKKyAgICAgICAgQWRkZWQgQVBJIHRlc3Q6
IFdLV2ViVmlldy5Mb2FkRmlsZVdpdGhMb2FkUmVxdWVzdAorCisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3NQcm94eTo6fk5ldHdvcmtQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpvcGVuTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6bmV0d29ya1Byb2Nlc3NDcmFz
aGVkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1
bmNoaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246Ok5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6bmV0d29y
a1Byb2Nlc3NQSUQgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2Fk
ZXJTdHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpzY2hl
ZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbik6CisKIDIwMTktMDktMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgog
CiAgICAgICAgIEFkZCByZWxlYXNlIGxvZ2dpbmcgaW4gV2ViTG9hZGVyU3RyYXRlZ3kgdG8gY2hl
Y2sgdGhhdCBhIGxvYWQgaXMgZ29pbmcgdGhyb3VnaCBzZXJ2aWNlIHdvcmtlcgpJbmRleDogU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVy
cy5oCShyZXZpc2lvbiAyNDk4NzIpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkUGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBAIHB1
YmxpYzoKICAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgd2ViRnJhbWVJRDsKICAgICBSZWZQ
dHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbjsKICAgICBXVEY6OlByb2Nlc3NJ
RCBwYXJlbnRQSUQgeyAwIH07CisgICAgV1RGOjpQcm9jZXNzSUQgbmV0d29ya1Byb2Nlc3NQSUQg
eyAwIH07CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Q7CiAgICAgV2ViQ29y
ZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGljeSB7IFdlYkNvcmU6
OkNvbnRlbnRTbmlmZmluZ1BvbGljeTo6U25pZmZDb250ZW50IH07CiAgICAgV2ViQ29yZTo6Q29u
dGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kg
eyBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25pZmYgfTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyNDk4NzIpCisrKyBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjcsNyArNjcsMTMgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2Fk
UGFyYW1ldGVyczo6ZW5jbwogCiAgICAgaWYgKHJlcXVlc3QudXJsKCkuaXNMb2NhbEZpbGUoKSkg
ewogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgcmVxdWVzdFNhbmRib3hFeHRlbnNp
b247CisjaWYgSEFWRShTQU5EQk9YX0lTU1VFX1JFQURfRVhURU5TSU9OX1RPX1BST0NFU1NfQllf
UElEKQorICAgICAgICBBU1NFUlQobmV0d29ya1Byb2Nlc3NQSUQpOworICAgICAgICBpZiAoIVNh
bmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRCeVBpZChyZXF1ZXN0LnVybCgpLmZp
bGVTeXN0ZW1QYXRoKCksIG5ldHdvcmtQcm9jZXNzUElELCByZXF1ZXN0U2FuZGJveEV4dGVuc2lv
bikpCisgICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUocmVxdWVzdC51
cmwoKS5maWxlU3lzdGVtUGF0aCgpLCBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpSZWFkT25seSwg
cmVxdWVzdFNhbmRib3hFeHRlbnNpb24pOworI2Vsc2UKICAgICAgICAgU2FuZGJveEV4dGVuc2lv
bjo6Y3JlYXRlSGFuZGxlKHJlcXVlc3QudXJsKCkuZmlsZVN5c3RlbVBhdGgoKSwgU2FuZGJveEV4
dGVuc2lvbjo6VHlwZTo6UmVhZE9ubHksIHJlcXVlc3RTYW5kYm94RXh0ZW5zaW9uKTsKKyNlbmRp
ZgogICAgICAgICBlbmNvZGVyIDw8IHJlcXVlc3RTYW5kYm94RXh0ZW5zaW9uOwogICAgIH0KIApJ
bmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAy
NDk4NzIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMTc1LDcgKzExNzUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFJl
cXVlc3RXaXRoTmF2aWdhCiAgICAgYWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhsb2FkUGFyYW1l
dGVycyk7CiAKICNpZiBIQVZFKFNBTkRCT1hfSVNTVUVfUkVBRF9FWFRFTlNJT05fVE9fUFJPQ0VT
U19CWV9QSUQpCi0gICAgaWYgKHByb2Nlc3NJZGVudGlmaWVyKCkgfHwgIXVybC5pc0xvY2FsRmls
ZSgpKQorICAgIGlmIChwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpIHx8ICF1cmwuaXNMb2Nh
bEZpbGUoKSkKICAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9hZFJl
cXVlc3QobG9hZFBhcmFtZXRlcnMpLCB3ZWJQYWdlSUQpOwogICAgIGVsc2UgewogICAgICAgICBT
dHJpbmcgc2FuZGJveEV4dGVuc2lvblBhdGg7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNDk4NzIp
CisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4J
KHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vzc1By
b3h5IExlZ2FjeVJlY2VpdgogICAgIEdldFBsdWdpbnMoYm9vbCByZWZyZXNoKSAtPiAoVmVjdG9y
PFdlYkNvcmU6OlBsdWdpbkluZm8+IHBsdWdpbnMsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZv
PiBhcHBsaWNhdGlvblBsdWdpbnMsIHN0cnVjdCBPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6U3Vw
cG9ydGVkUGx1Z2luSWRlbnRpZmllcj4+IHN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXJzKSBTeW5j
aHJvbm91cwogICAgIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKHVpbnQ2NF90IHBsdWdpblBy
b2Nlc3NUb2tlbikgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlLCBib29sIHN1
cHBvcnRzQXN5bmNocm9ub3VzSW5pdGlhbGl6YXRpb24pIFN5bmNocm9ub3VzCiAjZW5kaWYKLSAg
ICBHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5l
Y3Rpb25IYW5kbGUpIFN5bmNocm9ub3VzCisgICAgR2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
KCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlLCBpbnQzMl90IHBpZCkgU3lu
Y2hyb25vdXMKICAgICBQcm9jZXNzUmVhZHlUb1N1c3BlbmQoKQogICAgIERpZENhbmNlbFByb2Nl
c3NTdXNwZW5zaW9uKCkKIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCShyZXZpc2lvbiAyNDk4NzIpCisr
KyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsNyArMTA0LDcgQEAgTmV0d29ya1Byb2Nlc3NQcm94eTo6
fk5ldHdvcmtQcm9jZXNzUHJveAogICAgICAgICBtX2Rvd25sb2FkUHJveHlNYXAtPmludmFsaWRh
dGUoKTsKIAogICAgIGZvciAoYXV0byYgcmVxdWVzdCA6IG1fY29ubmVjdGlvblJlcXVlc3RzLnZh
bHVlcygpKQotICAgICAgICByZXF1ZXN0LnJlcGx5KHsgfSk7CisgICAgICAgIHJlcXVlc3QucmVw
bHkoeyB9LCAwKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRp
b25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW9ucykKQEAgLTE1
NiwxMCArMTU2LDEwIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6b3Blbk5ldHdvcmtQcm8K
ICAgICAgICAgYXV0byByZXF1ZXN0ID0gbV9jb25uZWN0aW9uUmVxdWVzdHMudGFrZShjb25uZWN0
aW9uUmVxdWVzdElkZW50aWZpZXIpOwogCiAjaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpIHx8
IE9TKFdJTkRPV1MpCi0gICAgICAgIHJlcXVlc3QucmVwbHkoKmNvbm5lY3Rpb25JZGVudGlmaWVy
KTsKKyAgICAgICAgcmVxdWVzdC5yZXBseSgqY29ubmVjdGlvbklkZW50aWZpZXIsIHByb2Nlc3NJ
ZGVudGlmaWVyKCkpOwogI2VsaWYgT1MoREFSV0lOKQogICAgICAgICBNRVNTQUdFX0NIRUNLKE1B
Q0hfUE9SVF9WQUxJRChjb25uZWN0aW9uSWRlbnRpZmllci0+cG9ydCgpKSk7Ci0gICAgICAgIHJl
cXVlc3QucmVwbHkoSVBDOjpBdHRhY2htZW50IHsgY29ubmVjdGlvbklkZW50aWZpZXItPnBvcnQo
KSwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQgfSk7CisgICAgICAgIHJlcXVlc3QucmVwbHkoSVBD
OjpBdHRhY2htZW50IHsgY29ubmVjdGlvbklkZW50aWZpZXItPnBvcnQoKSwgTUFDSF9NU0dfVFlQ
RV9NT1ZFX1NFTkQgfSwgcHJvY2Vzc0lkZW50aWZpZXIoKSk7CiAjZWxzZQogICAgICAgICBub3RJ
bXBsZW1lbnRlZCgpOwogI2VuZGlmCkBAIC0yNDgsNyArMjQ4LDcgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpuZXR3b3JrUHJvY2VzcwogICAgICAgICBpZiAocmVxdWVzdC53ZWJQcm9jZXNz
KQogICAgICAgICAgICAgcGVuZGluZ1JlcXVlc3RzLnVuY2hlY2tlZEFwcGVuZChzdGQ6Om1ha2Vf
cGFpcihtYWtlUmVmUHRyKHJlcXVlc3Qud2ViUHJvY2Vzcy5nZXQoKSksIFdURk1vdmUocmVxdWVz
dC5yZXBseSkpKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVxdWVzdC5yZXBseSh7IH0p
OworICAgICAgICAgICAgcmVxdWVzdC5yZXBseSh7IH0sIDApOwogICAgIH0KICAgICBtX2Nvbm5l
Y3Rpb25SZXF1ZXN0cy5jbGVhcigpOwogCkBAIC0zOTQsNyArMzk0LDcgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuYwogICAgICAgICBpZiAoY29ubmVjdGlvblJlcXVl
c3Qud2ViUHJvY2VzcykKICAgICAgICAgICAgIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigq
Y29ubmVjdGlvblJlcXVlc3Qud2ViUHJvY2VzcywgV1RGTW92ZShjb25uZWN0aW9uUmVxdWVzdC5y
ZXBseSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb25uZWN0aW9uUmVxdWVzdC5yZXBs
eSh7IH0pOworICAgICAgICAgICAgY29ubmVjdGlvblJlcXVlc3QucmVwbHkoeyB9LCAwKTsKICAg
ICB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDI0OTg3MikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE1OSwxMCArMTE1OSwxMSBA
QCB2b2lkIFdlYlByb2Nlc3M6OnNldEluamVjdGVkQnVuZGxlUGFyYW1lCiAgICAgaW5qZWN0ZWRC
dW5kbGUtPnNldEJ1bmRsZVBhcmFtZXRlcnModmFsdWUpOwogfQogCi1zdGF0aWMgSVBDOjpDb25u
ZWN0aW9uOjpJZGVudGlmaWVyIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24pCitzdGF0aWMgc3RkOjpwYWlyPElQQzo6Q29ubmVjdGlvbjo6SWRl
bnRpZmllciwgV1RGOjpQcm9jZXNzSUQ+IGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiB7CiAgICAgSVBDOjpBdHRhY2htZW50IGVuY29kZWRD
b25uZWN0aW9uSWRlbnRpZmllcjsKLSAgICBpZiAoIWNvbm5lY3Rpb24uc2VuZFN5bmMoTWVzc2Fn
ZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCksIE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6UmVwbHko
ZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyKSwgMCkpIHsKKyAgICBXVEY6OlByb2Nlc3NJRCBw
aWQ7CisgICAgaWYgKCFjb25uZWN0aW9uLnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJv
eHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1By
b3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OlJlcGx5KGVuY29kZWRDb25uZWN0aW9u
SWRlbnRpZmllciwgcGlkKSwgMCkpIHsKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQ
RSkKICAgICAgICAgLy8gR1RLKyBhbmQgV1BFIHBvcnRzIGRvbid0IGV4aXQgb24gc2VuZCBzeW5j
IG1lc3NhZ2UgZmFpbHVyZS4KICAgICAgICAgLy8gSW4gdGhpcyBwYXJ0aWN1bGFyIGNhc2UsIHRo
ZSBuZXR3b3JrIHByb2Nlc3MgY2FuIGJlIHRlcm1pbmF0ZWQgYnkgdGhlIFVJIHByb2Nlc3Mgd2hp
bGUgdGhlCkBAIC0xMTc2LDE0ICsxMTc3LDE0IEBAIHN0YXRpYyBJUEM6OkNvbm5lY3Rpb246Oklk
ZW50aWZpZXIgZ2V0TmUKICAgICB9CiAKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKLSAg
ICByZXR1cm4gZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyLnJlbGVhc2VGaWxlRGVzY3JpcHRv
cigpOworICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihlbmNvZGVkQ29ubmVjdGlvbklkZW50aWZp
ZXIucmVsZWFzZUZpbGVEZXNjcmlwdG9yKCksIHBpZCk7CiAjZWxpZiBPUyhEQVJXSU4pCi0gICAg
cmV0dXJuIGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5wb3J0KCk7CisgICAgcmV0dXJuIHN0
ZDo6bWFrZV9wYWlyKGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5wb3J0KCksIHBpZCk7CiAj
ZWxpZiBPUyhXSU5ET1dTKQotICAgIHJldHVybiBlbmNvZGVkQ29ubmVjdGlvbklkZW50aWZpZXIu
aGFuZGxlKCk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKGVuY29kZWRDb25uZWN0aW9uSWRl
bnRpZmllci5oYW5kbGUoKSwgcGlkKTsKICNlbHNlCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgcmV0dXJuIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcigpOworICAgIHJldHVybiBz
dGQ6Om1ha2VfcGFpcihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIoKSwgcGlkKTsKICNlbmRp
ZgogfQogCkBAIC0xMTkzLDE3ICsxMTk0LDIzIEBAIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiYg
V2ViUHJvY2Vzczo6ZW4KIAogICAgIC8vIElmIHdlJ3ZlIGxvc3Qgb3VyIGNvbm5lY3Rpb24gdG8g
dGhlIG5ldHdvcmsgcHJvY2VzcyAoZS5nLiBpdCBjcmFzaGVkKSB0cnkgdG8gcmUtZXN0YWJsaXNo
IGl0LgogICAgIGlmICghbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pIHsKLSAgICAgICAgSVBD
OjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gZ2V0TmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uKCpwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpKTsKKyAgICAgICAg
YXV0byBjb25uZWN0aW9uSWRlbnRpZmllckFuZFBJRCA9IGdldE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbigqcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKSk7CisgICAgICAgIAorICAgICAgICBJUEM6
OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIgPSBjb25uZWN0aW9u
SWRlbnRpZmllckFuZFBJRC5maXJzdDsKKyAgICAgICAgV1RGOjpQcm9jZXNzSUQgcGlkID0gY29u
bmVjdGlvbklkZW50aWZpZXJBbmRQSUQuc2Vjb25kOwogCiAgICAgICAgIC8vIFJldHJ5IG9uY2Ug
aWYgdGhlIElQQyB0byBnZXQgdGhlIGNvbm5lY3Rpb25JZGVudGlmaWVyIHN1Y2NlZWRlZCBidXQg
dGhlIGNvbm5lY3Rpb25JZGVudGlmaWVyIHdlIHJlY2VpdmVkCiAgICAgICAgIC8vIGlzIGludmFs
aWQuIFRoaXMgbWF5IGluZGljYXRlIHRoYXQgdGhlIG5ldHdvcmsgcHJvY2VzcyBoYXMgY3Jhc2hl
ZC4KLSAgICAgICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1ZhbGlkKGNvbm5l
Y3Rpb25JZGVudGlmaWVyKSkKLSAgICAgICAgICAgIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gZ2V0
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCpwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpKTsKKyAg
ICAgICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rpb25J
ZGVudGlmaWVyKSkgeworICAgICAgICAgICAgY29ubmVjdGlvbklkZW50aWZpZXJBbmRQSUQgPSBn
ZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkpOwor
ICAgICAgICAgICAgY29ubmVjdGlvbklkZW50aWZpZXIgPSBjb25uZWN0aW9uSWRlbnRpZmllckFu
ZFBJRC5maXJzdDsKKyAgICAgICAgICAgIHBpZCA9IGNvbm5lY3Rpb25JZGVudGlmaWVyQW5kUElE
LnNlY29uZDsKKyAgICAgICAgfQogCiAgICAgICAgIGlmICghSVBDOjpDb25uZWN0aW9uOjppZGVu
dGlmaWVySXNWYWxpZChjb25uZWN0aW9uSWRlbnRpZmllcikpCiAgICAgICAgICAgICBDUkFTSCgp
OwogCi0gICAgICAgIG1fbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uID0gTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uOjpjcmVhdGUoY29ubmVjdGlvbklkZW50aWZpZXIpOworICAgICAgICBtX25ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbiA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGNv
bm5lY3Rpb25JZGVudGlmaWVyLCBwaWQpOwogICAgIH0KICAgICAKICAgICByZXR1cm4gKm1fbmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCShy
ZXZpc2lvbiAyNDk4NzIpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OCw4ICs2OCw5IEBA
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1OZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb246Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rp
b246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCitOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb246Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZp
ZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIFdURjo6UHJvY2Vzc0lEIHBpZCkKICAgICA6IG1fY29u
bmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZUNsaWVudENvbm5lY3Rpb24oY29ubmVjdGlv
bklkZW50aWZpZXIsICp0aGlzKSkKKyAgICAsIG1fbmV0d29ya1Byb2Nlc3NQSUQocGlkKQogewog
ICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOwogfQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgJ
KHJldmlzaW9uIDI0OTg3MikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw5ICs1OCw5IEBA
IHR5cGVkZWYgdWludDY0X3QgUmVzb3VyY2VMb2FkSWRlbnRpZmllcjsKIAogY2xhc3MgTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8TmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uPiwgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIHN0YXRpYyBSZWY8TmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rp
b25JZGVudGlmaWVyLCBXVEY6OlByb2Nlc3NJRCBwaWQpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZp
ZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCBwaWQpKTsKICAgICB9CiAgICAgfk5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbigpOwogICAgIApAQCAtODAsOCArODAsMTAgQEAgcHVibGljOgogICAgIFdl
YlNXQ2xpZW50Q29ubmVjdGlvbiYgc2VydmljZVdvcmtlckNvbm5lY3Rpb25Gb3JTZXNzaW9uKFBB
TDo6U2Vzc2lvbklEKTsKICNlbmRpZgogCisgICAgV1RGOjpQcm9jZXNzSUQgbmV0d29ya1Byb2Nl
c3NQSUQoKSBjb25zdCB7IHJldHVybiBtX25ldHdvcmtQcm9jZXNzUElEOyB9CisKIHByaXZhdGU6
Ci0gICAgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
cik7CisgICAgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRp
ZmllciwgV1RGOjpQcm9jZXNzSUQpOwogCiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQK
ICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYpIG92ZXJyaWRlOwpAQCAtMTAzLDYgKzEwNSw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBUaGUg
Y29ubmVjdGlvbiBmcm9tIHRoZSB3ZWIgcHJvY2VzcyB0byB0aGUgbmV0d29yayBwcm9jZXNzLgog
ICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBXVEY6OlByb2Nlc3NJ
RCBtX25ldHdvcmtQcm9jZXNzUElEIHsgMCB9OwogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
cj4+IG1fd2ViSURCQ29ubmVjdGlvbnNCeVNlc3Npb247CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCShyZXZp
c2lvbiAyNDk4NzIpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2Fk
ZXJTdHJhdGVneS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4NSw2ICsyODUsNyBAQCB2b2lkIFdl
YkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWRGcm9tCiAgICAgbG9hZFBhcmFtZXRlcnMud2Vi
UGFnZUlEID0gdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRDsKICAgICBsb2FkUGFyYW1ldGVycy53
ZWJGcmFtZUlEID0gdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQ7CiAgICAgbG9hZFBhcmFtZXRl
cnMucGFyZW50UElEID0gcHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7CisgICAgbG9hZFBhcmFt
ZXRlcnMubmV0d29ya1Byb2Nlc3NQSUQgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5uZXR3b3JrUHJvY2Vzc1BJRCgpOwogICAgIGxvYWRQ
YXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0OwogICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRT
bmlmZmluZ1BvbGljeSA9IGNvbnRlbnRTbmlmZmluZ1BvbGljeTsKICAgICBsb2FkUGFyYW1ldGVy
cy5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSA9IGNvbnRlbnRFbmNvZGluZ1NuaWZmaW5n
UG9saWN5OwpAQCAtNTYxLDYgKzU2Miw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRS
ZXNvdXJjZVN5bmMKICAgICBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQgPSBwYWdlSUQ7CiAgICAg
bG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCA9IGZyYW1lSUQ7CiAgICAgbG9hZFBhcmFtZXRlcnMu
cGFyZW50UElEID0gcHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7CisgICAgbG9hZFBhcmFtZXRl
cnMubmV0d29ya1Byb2Nlc3NQSUQgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5uZXR3b3JrUHJvY2Vzc1BJRCgpOwogICAgIGxvYWRQYXJh
bWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0OwogICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRTbmlm
ZmluZ1BvbGljeSA9IENvbnRlbnRTbmlmZmluZ1BvbGljeTo6U25pZmZDb250ZW50OwogICAgIGxv
YWRQYXJhbWV0ZXJzLmNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5ID0gQ29udGVudEVuY29k
aW5nU25pZmZpbmdQb2xpY3k6OlNuaWZmOwpAQCAtNjMwLDYgKzYzMiw3IEBAIHZvaWQgV2ViTG9h
ZGVyU3RyYXRlZ3k6OnN0YXJ0UGluZ0xvYWQoRnIKICAgICBsb2FkUGFyYW1ldGVycy5zb3VyY2VP
cmlnaW4gPSAmZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMu
dG9wT3JpZ2luID0gJmRvY3VtZW50LT50b3BPcmlnaW4oKTsKICAgICBsb2FkUGFyYW1ldGVycy5w
YXJlbnRQSUQgPSBwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKTsKKyAgICBsb2FkUGFyYW1ldGVy
cy5uZXR3b3JrUHJvY2Vzc1BJRCA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbigpLm5ldHdvcmtQcm9jZXNzUElEKCk7CiAgICAgbG9hZFBhcmFt
ZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBvcHRpb25zLmNyZWRlbnRpYWxzID09IEZl
dGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9taXQgPyBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6
RG9Ob3RVc2UgOiBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlOwogICAgIGxvYWRQYXJhbWV0
ZXJzLm9wdGlvbnMgPSBvcHRpb25zOwogICAgIGxvYWRQYXJhbWV0ZXJzLm9yaWdpbmFsUmVxdWVz
dEhlYWRlcnMgPSBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzOwpAQCAtNjkwLDYgKzY5Myw3IEBAIHZv
aWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnByZWNvbm5lY3RUbyhGcmEKICAgICBwYXJhbWV0ZXJzLndl
YlBhZ2VJRCA9IHdlYlBhZ2UtPmlkZW50aWZpZXIoKTsKICAgICBwYXJhbWV0ZXJzLndlYkZyYW1l
SUQgPSB3ZWJGcmFtZS0+ZnJhbWVJRCgpOwogICAgIHBhcmFtZXRlcnMucGFyZW50UElEID0gcHJl
c2VudGluZ0FwcGxpY2F0aW9uUElEKCk7CisgICAgcGFyYW1ldGVycy5uZXR3b3JrUHJvY2Vzc1BJ
RCA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bigpLm5ldHdvcmtQcm9jZXNzUElEKCk7CiAgICAgcGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFs
c1BvbGljeSA9IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5OwogICAgIHBhcmFtZXRlcnMuc2hvdWxk
UHJlY29ubmVjdE9ubHkgPSBQcmVjb25uZWN0T25seTo6WWVzOwogICAgIHBhcmFtZXRlcnMuc2hv
dWxkUmVzdHJpY3RIVFRQUmVzcG9uc2VBY2Nlc3MgPSBzaG91bGRQZXJmb3JtU2VjdXJpdHlDaGVj
a3MoKTsKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDI1MDAzMSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDE5LTA5LTE4ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFw
cGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKDI0OTY0OSk6IFVuYWJsZSB0byBvcGVuIGxv
Y2FsIGZpbGVzIGluIE1pbmlCcm93c2VyIG9uIG1hY09TCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE3OTgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvTG9hZEZpbGVVUkwubW06CisgICAgICAgIChURVNUKToKKwogMjAxOS0wOS0xNyAgRnVqaWkg
SGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBbV2luXVtNaW5p
QnJvd3Nlcl0gUmVtb3ZlIHVudXNlZCBET01EZWZhdWx0SW1wbC5jcHAKSW5kZXg6IFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9hZEZpbGVVUkwubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2FkRmlsZVVSTC5tbQko
cmV2aXNpb24gMjQ5ODcyKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Mb2FkRmlsZVVSTC5tbQkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsMTcgQEAKICNpbXBv
cnQgPFdlYktpdC9XZWJWaWV3UHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgog
CitURVNUKFdLV2ViVmlldywgTG9hZEZpbGVXaXRoTG9hZFJlcXVlc3QpCit7CisgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tU
ZXN0TmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2
aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIE5TVVJMUmVxdWVzdCAqcmVx
dWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OnJlcXVlc3RdOworICAgIFtkZWxlZ2F0ZSB3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07
Cit9CiAKIFRFU1QoV0tXZWJWaWV3LCBMb2FkVHdvRmlsZXMpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380060</attachid>
            <date>2019-10-02 14:27:43 -0700</date>
            <delta_ts>2019-10-02 14:41:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201798-20191002142742.patch</filename>
            <type>text/plain</type>
            <size>28777</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTA2MjcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisyMDE5LTEwLTAyICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKDI0OTY0OSk6
IFVuYWJsZSB0byBvcGVuIGxvY2FsIGZpbGVzIGluIE1pbmlCcm93c2VyIG9uIG1hY09TCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE3OTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgY29tbWl0IDxo
dHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjQ5NjQ5PiBpbnRyb2R1Y2VkIGEgTWlu
aUJyb3dzZXIgcmVncmVzc2lvbiBvbiBtYWNPUyB3aGVyZSBNaW5pQnJvd3NlcgorICAgICAgICBp
cyBub3QgYWJsZSB0byBvcGVuIGxvY2FsIGZpbGVzLiBUaGUgY2hhbmdlIHNldCByMjQ5NjQ5IGZp
eGVkIGEgcHJvYmxlbSB3aGVyZSB0aGUgV2ViQ29udGVudCBwcm9jZXNzIFBJRCB3YXMgbm90IHJl
YWR5CisgICAgICAgIHRvIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBhIHNhbmRib3ggZXh0ZW5zaW9u
LiBUaGlzIGhhcHBlbmVkIGluIHRoZSBjYXNlcyB3aGVyZSB0aGUgV2ViQ29udGVudCBwcm9jZXNz
IGhhZCBub3QgZmluaXNoZWQKKyAgICAgICAgbGF1bmNoaW5nIHdoZW4gdGhlIGxvYWQgc3RhcnRl
ZC4gVGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBhbHNvIGNyZWF0aW5nIHNhbmRib3ggZXh0ZW5z
aW9ucyBmb3IgdGhlIE5ldHdvcmtpbmcgcHJvY2VzcworICAgICAgICBmb3IgdGhlIGZpbGVzIGJl
aW5nIGxvYWRlZCwgYW5kIGFsc28gbmVlZHMgdG8gYmUgcGFzc2luZyB0aGUgYXVkaXQgdG9rZW4g
b2YgdGhlIE5ldHdvcmtpbmcgcHJvY2VzcyB3aGVuIGNyZWF0aW5nIHRoZXNlLgorICAgICAgICBU
aGlzIHBhdGNoIGltcGxlbWVudHMgZ2V0dGluZyB0aGUgYXVkaXQgdG9rZW4gZm9yIHRoZSBOZXR3
b3JraW5nIHByb2Nlc3Mgd2hlbiB0aGUgV2ViUHJvY2VzcyBpcyBzZW5kaW5nIGEgbWVzc2FnZSB0
bworICAgICAgICB0aGUgVUkgcHJvY2VzcyB0byBlc3RhYmxpc2ggdGhlIE5ldHdvcmtpbmcgcHJv
Y2VzcyBjb25uZWN0aW9uLiBUaGUgYXVkaXQgdG9rZW4gaXMgc3RvcmVkIGluIHRoZSBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24KKyAgICAgICAgb2JqZWN0LCBhbmQgcGFzc2VkIHRvIHRoZSBOZXR3
b3JrTG9hZFBhcmFtZXRlcnMgb2JqZWN0IHdoZW4gdGhlIGxvYWQgaXMgc3RhcnRlZC4gRmluYWxs
eSwgd2hlbiBlbmNvZGluZyB0aGUgTmV0d29yaworICAgICAgICByZXNvdXJjZXMgbG9hZCBwYXJh
bWV0ZXJzLCB0aGUgYXVkaXQgdG9rZW4gaXMgdXNlZCB0byBjcmVhdGUgYW4gZXh0ZW5zaW9uIGZv
ciB0aGUgTmV0d29ya2luZyBwcm9jZXNzLgorCisgICAgICAgIEFQSSB0ZXN0OiBXS1dlYlZpZXcu
TG9hZEZpbGVXaXRoTG9hZFJlcXVlc3QKKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0Fy
Z3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxhdWRpdF90b2tl
bl90Pjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxhdWRpdF90b2tlbl90
Pjo6ZGVjb2RlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaDoKKyAg
ICAgICAgKiBTaGFyZWQvQ29jb2EvU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tOgorICAgICAgICAo
V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uSW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
U2FuZGJveEV4dGVuc2lvbkltcGw6OnNhbmRib3hFeHRlbnNpb25Gb3JUeXBlKToKKyAgICAgICAg
KFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbkltcGw6OlNhbmRib3hFeHRlbnNpb25JbXBsKToKKyAg
ICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1
cEJ5UGlkKToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxl
Rm9yUmVhZEJ5UGlkKToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
SGFuZGxlRm9yUmVhZEJ5QXVkaXRUb2tlbik6CisgICAgICAgICogU2hhcmVkL1NhbmRib3hFeHRl
bnNpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6b3Blbk5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmg6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6c2V0TmV0d29ya1By
b2Nlc3NBdWRpdFRva2VuKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uOjpuZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4gY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvOjppZGVudGlmaWVyKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbzo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbzo6ZGVjb2Rl
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkRnJvbU5ldHdv
cmtQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNv
dXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6
c3RhcnRQaW5nTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpwcmVj
b25uZWN0VG8pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6CisKIDIwMTktMTAt
MDIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBDTWFrZS1idWlsdCBXZWJLaXQuZnJhbWV3b3JrIHNob3VsZCBsYXVuY2ggWFBDIHNlcnZpY2Vz
IHN1Y2Nlc3NmdWxseQpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZFBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCShyZXZpc2lvbiAyNTA1MzApCisrKyBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCSh3b3JraW5nIGNv
cHkpCkBAIC00Niw2ICs0Niw3IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgd2ViRnJhbWVJRDsKICAgICBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IHRvcE9y
aWdpbjsKICAgICBXVEY6OlByb2Nlc3NJRCBwYXJlbnRQSUQgeyAwIH07CisgICAgT3B0aW9uYWw8
YXVkaXRfdG9rZW5fdD4gbmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuOwogICAgIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCByZXF1ZXN0OwogICAgIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGlj
eSBjb250ZW50U25pZmZpbmdQb2xpY3kgeyBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3k6
OlNuaWZmQ29udGVudCB9OwogICAgIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9s
aWN5IGNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHsgV2ViQ29yZTo6Q29udGVudEVuY29k
aW5nU25pZmZpbmdQb2xpY3k6OlNuaWZmIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
LmNwcAkocmV2aXNpb24gMjUwNTMwKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2LDcg
KzY2LDE0IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmVuY28KIAogICAg
IGlmIChyZXF1ZXN0LnVybCgpLmlzTG9jYWxGaWxlKCkpIHsKICAgICAgICAgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlIHJlcXVlc3RTYW5kYm94RXh0ZW5zaW9uOworI2lmIEhBVkUoU0FOREJPWF9J
U1NVRV9SRUFEX0VYVEVOU0lPTl9UT19QUk9DRVNTX0JZX1BJRCkKKyAgICAgICAgaWYgKG5ldHdv
cmtQcm9jZXNzQXVkaXRUb2tlbikKKyAgICAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0
ZUhhbmRsZUZvclJlYWRCeUF1ZGl0VG9rZW4ocmVxdWVzdC51cmwoKS5maWxlU3lzdGVtUGF0aCgp
LCAqbmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuLCByZXF1ZXN0U2FuZGJveEV4dGVuc2lvbik7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZShy
ZXF1ZXN0LnVybCgpLmZpbGVTeXN0ZW1QYXRoKCksIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJl
YWRPbmx5LCByZXF1ZXN0U2FuZGJveEV4dGVuc2lvbik7CisjZWxzZQogICAgICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUocmVxdWVzdC51cmwoKS5maWxlU3lzdGVtUGF0aCgpLCBT
YW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpSZWFkT25seSwgcmVxdWVzdFNhbmRib3hFeHRlbnNpb24p
OworI2VuZGlmCiAgICAgICAgIGVuY29kZXIgPDwgcmVxdWVzdFNhbmRib3hFeHRlbnNpb247CiAg
ICAgfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2Rl
cnMuY3BwCShyZXZpc2lvbiAyNTA1MzApCisrKyBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9B
cmd1bWVudENvZGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4OCw0ICsxODgsMTkgQEAgYm9v
bCBBcmd1bWVudENvZGVyPFNIQTE6OkRpZ2VzdD46OmRlY29kZQogICAgIHJldHVybiBkZWNvZGVy
LmRlY29kZUZpeGVkTGVuZ3RoRGF0YShkaWdlc3QuZGF0YSgpLCBzaXplb2YoZGlnZXN0KSwgMSk7
CiB9CiAKK3ZvaWQgQXJndW1lbnRDb2RlcjxhdWRpdF90b2tlbl90Pjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IGF1ZGl0X3Rva2VuX3QmIGF1ZGl0VG9rZW4pCit7CisgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgoYXVkaXRUb2tlbi52YWwpOyBpKysp
CisgICAgICAgIGVuY29kZXIgPDwgYXVkaXRUb2tlbi52YWxbaV07Cit9CisKK2Jvb2wgQXJndW1l
bnRDb2RlcjxhdWRpdF90b2tlbl90Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIGF1ZGl0X3Rv
a2VuX3QmIGF1ZGl0VG9rZW4pCit7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IFdURl9B
UlJBWV9MRU5HVEgoYXVkaXRUb2tlbi52YWwpOyBpKyspIHsKKyAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShhdWRpdFRva2VuLnZhbFtpXSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorICAgIHJldHVybiB0cnVlOworfQorCiB9IC8vIG5hbWVzcGFjZSBJUEMKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAkocmV2aXNpb24gMjUw
NTMwKQorKysgU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAkod29y
a2luZyBjb3B5KQpAQCAtNjIxLDQgKzYyMSw5IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8U0hBMTo6RGkKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFNIQTE6OkRp
Z2VzdCYpOwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxhdWRpdF90b2tl
bl90PiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBhdWRpdF90b2tl
bl90Jik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBhdWRpdF90b2tlbl90Jik7
Cit9OworCiB9IC8vIG5hbWVzcGFjZSBJUEMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1Nh
bmRib3hFeHRlbnNpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9TYW5k
Ym94RXh0ZW5zaW9uLmgJKHJldmlzaW9uIDI1MDUzMCkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVk
L1NhbmRib3hFeHRlbnNpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQCBwdWJs
aWM6CiAgICAgICAgIFJlYWRXcml0ZSwKICAgICAgICAgTWFjaCwKICAgICAgICAgR2VuZXJpYywK
LSAgICAgICAgUmVhZEJ5UGlkCisgICAgICAgIFJlYWRCeVByb2Nlc3MKICAgICB9OwogCiAgICAg
Y2xhc3MgSGFuZGxlIHsKQEAgLTEwNiw2ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJv
b2wgY3JlYXRlSGFuZGxlRm9yR2VuZXJpY0V4dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lv
bkNsYXNzLCBIYW5kbGUmKTsKICAgICBzdGF0aWMgYm9vbCBjcmVhdGVIYW5kbGVGb3JNYWNoTG9v
a3VwQnlQaWQoY29uc3QgU3RyaW5nJiBzZXJ2aWNlLCBQcm9jZXNzSUQsIEhhbmRsZSYpOwogICAg
IHN0YXRpYyBib29sIGNyZWF0ZUhhbmRsZUZvclJlYWRCeVBpZChjb25zdCBTdHJpbmcmIHBhdGgs
IFByb2Nlc3NJRCwgSGFuZGxlJik7CisgICAgc3RhdGljIGJvb2wgY3JlYXRlSGFuZGxlRm9yUmVh
ZEJ5QXVkaXRUb2tlbihjb25zdCBTdHJpbmcmIHBhdGgsIGF1ZGl0X3Rva2VuX3QsIEhhbmRsZSYp
OwogICAgIH5TYW5kYm94RXh0ZW5zaW9uKCk7CiAKICAgICBib29sIGNvbnN1bWUoKTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NhbmRib3hFeHRlbnNpb25Db2NvYS5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9TYW5kYm94RXh0ZW5zaW9uQ29j
b2EubW0JKHJldmlzaW9uIDI1MDUzMCkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1Nh
bmRib3hFeHRlbnNpb25Db2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAog
I2ltcG9ydCAiRGVjb2Rlci5oIgogI2ltcG9ydCAiRW5jb2Rlci5oIgogI2ltcG9ydCA8d3RmL0Zp
bGVTeXN0ZW0uaD4KKyNpbXBvcnQgPHd0Zi9WYXJpYW50Lmg+CiAjaW1wb3J0IDx3dGYvc3BpL2Rh
cndpbi9TYW5kYm94U1BJLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAgLTQw
LDkgKzQxLDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBTYW5kYm94RXh0ZW5zaW9uSW1w
bCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxTYW5kYm94RXh0ZW5zaW9uSW1wbD4gY3JlYXRlKGNvbnN0IGNoYXIqIHBh
dGgsIFNhbmRib3hFeHRlbnNpb246OlR5cGUgdHlwZSwgT3B0aW9uYWw8cGlkX3Q+IHBpZCA9IFdU
Rjo6bnVsbG9wdCkKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNhbmRib3hFeHRlbnNpb25J
bXBsPiBjcmVhdGUoY29uc3QgY2hhciogcGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZSB0eXBl
LCBPcHRpb25hbDxWYXJpYW50PHBpZF90LCBhdWRpdF90b2tlbl90Pj4gcHJvY2VzcyA9IFdURjo6
bnVsbG9wdCkKICAgICB7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxTYW5kYm94RXh0ZW5zaW9u
SW1wbD4gaW1wbCB7IG5ldyBTYW5kYm94RXh0ZW5zaW9uSW1wbChwYXRoLCB0eXBlLCBwaWQpIH07
CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxTYW5kYm94RXh0ZW5zaW9uSW1wbD4gaW1wbCB7IG5l
dyBTYW5kYm94RXh0ZW5zaW9uSW1wbChwYXRoLCB0eXBlLCBwcm9jZXNzKSB9OwogICAgICAgICBp
ZiAoIWltcGwtPm1fdG9rZW4pCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAg
cmV0dXJuIGltcGw7CkBAIC04NCw3ICs4NSw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6
Ci0gICAgY2hhciogc2FuZGJveEV4dGVuc2lvbkZvclR5cGUoY29uc3QgY2hhciogcGF0aCwgU2Fu
ZGJveEV4dGVuc2lvbjo6VHlwZSB0eXBlLCBPcHRpb25hbDxwaWRfdD4gcGlkID0gV1RGOjpudWxs
b3B0KQorICAgIGNoYXIqIHNhbmRib3hFeHRlbnNpb25Gb3JUeXBlKGNvbnN0IGNoYXIqIHBhdGgs
IFNhbmRib3hFeHRlbnNpb246OlR5cGUgdHlwZSwgT3B0aW9uYWw8VmFyaWFudDxwaWRfdCwgYXVk
aXRfdG9rZW5fdD4+IHByb2Nlc3MpCiAgICAgewogICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKICAg
ICAgICAgY2FzZSBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpSZWFkT25seToKQEAgLTkzLDcgKzk0
LDExIEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNz
dWVfZmlsZShBUFBfU0FOREJPWF9SRUFEX1dSSVRFLCBwYXRoLCAwKTsKICAgICAgICAgY2FzZSBT
YW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpNYWNoOgogI2lmIEhBVkUoU0FOREJPWF9JU1NVRV9NQUNI
X0VYVEVOU0lPTl9UT19QUk9DRVNTX0JZX1BJRCkKLSAgICAgICAgICAgIHJldHVybiBzYW5kYm94
X2V4dGVuc2lvbl9pc3N1ZV9tYWNoX3RvX3Byb2Nlc3NfYnlfcGlkKCJjb20uYXBwbGUud2Via2l0
LmV4dGVuc2lvbi5tYWNoIl9zLCBwYXRoLCAwLCBwaWQudmFsdWUoKSk7CisgICAgICAgICAgICBp
ZiAoIXByb2Nlc3MpCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAg
ICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8cGlkX3Q+KCpwcm9jZXNzKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgIHJldHVybiBzYW5kYm94X2V4dGVu
c2lvbl9pc3N1ZV9tYWNoX3RvX3Byb2Nlc3NfYnlfcGlkKCJjb20uYXBwbGUud2Via2l0LmV4dGVu
c2lvbi5tYWNoIl9zLCBwYXRoLCAwLCBXVEY6OmdldDxwaWRfdD4oKnByb2Nlc3MpKTsKICNlbHNl
CiAgICAgICAgICAgICBVTlVTRURfUEFSQU0ocGlkKTsKICAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwpAQCAtMTAxLDkgKzEwNiwxNSBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgICAg
IGNhc2UgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6R2VuZXJpYzoKICAgICAgICAgICAgIHJldHVy
biBzYW5kYm94X2V4dGVuc2lvbl9pc3N1ZV9nZW5lcmljKHBhdGgsIDApOwotICAgICAgICBjYXNl
IFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRCeVBpZDoKKyAgICAgICAgY2FzZSBTYW5kYm94
RXh0ZW5zaW9uOjpUeXBlOjpSZWFkQnlQcm9jZXNzOgogI2lmIEhBVkUoU0FOREJPWF9JU1NVRV9S
RUFEX0VYVEVOU0lPTl9UT19QUk9DRVNTX0JZX1BJRCkKLSAgICAgICAgICAgIHJldHVybiBzYW5k
Ym94X2V4dGVuc2lvbl9pc3N1ZV9maWxlX3RvX3Byb2Nlc3NfYnlfcGlkKEFQUF9TQU5EQk9YX1JF
QUQsIHBhdGgsIFNBTkRCT1hfRVhURU5TSU9OX1VTRVJfSU5URU5ULCBwaWQudmFsdWUoKSk7Cisg
ICAgICAgICAgICBpZiAoIXByb2Nlc3MpCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgICAgICAgICBpZiAoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxwaWRfdD4oKnByb2Nlc3Mp
KQorICAgICAgICAgICAgICAgIHJldHVybiBzYW5kYm94X2V4dGVuc2lvbl9pc3N1ZV9maWxlX3Rv
X3Byb2Nlc3NfYnlfcGlkKEFQUF9TQU5EQk9YX1JFQUQsIHBhdGgsIFNBTkRCT1hfRVhURU5TSU9O
X1VTRVJfSU5URU5ULCBXVEY6OmdldDxwaWRfdD4oKnByb2Nlc3MpKTsKKyAgICAgICAgICAgIGlm
IChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPGF1ZGl0X3Rva2VuX3Q+KCpwcm9jZXNzKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNzdWVfZmlsZV90b19wcm9jZXNz
KEFQUF9TQU5EQk9YX1JFQUQsIHBhdGgsIFNBTkRCT1hfRVhURU5TSU9OX1VTRVJfSU5URU5ULCBX
VEY6OmdldDxhdWRpdF90b2tlbl90PigqcHJvY2VzcykpOworICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAjZWxzZQogICAgICAgICAgICAgVU5VU0VEX1BBUkFNKHBpZCk7CiAgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTExMiw4ICsxMjMsOCBAQCBwcml2YXRlOgogICAg
ICAgICB9CiAgICAgfQogCi0gICAgU2FuZGJveEV4dGVuc2lvbkltcGwoY29uc3QgY2hhciogcGF0
aCwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZSB0eXBlLCBPcHRpb25hbDxwaWRfdD4gcGlkID0gV1RG
OjpudWxsb3B0KQotICAgICAgICA6IG1fdG9rZW4geyBzYW5kYm94RXh0ZW5zaW9uRm9yVHlwZShw
YXRoLCB0eXBlLCBwaWQpIH0KKyAgICBTYW5kYm94RXh0ZW5zaW9uSW1wbChjb25zdCBjaGFyKiBw
YXRoLCBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlIHR5cGUsIE9wdGlvbmFsPFZhcmlhbnQ8cGlkX3Qs
IGF1ZGl0X3Rva2VuX3Q+PiBwcm9jZXNzKQorICAgICAgICA6IG1fdG9rZW4geyBzYW5kYm94RXh0
ZW5zaW9uRm9yVHlwZShwYXRoLCB0eXBlLCBwcm9jZXNzKSB9CiAgICAgewogICAgIH0KIApAQCAt
MzM2LDcgKzM0Nyw4IEBAIGJvb2wgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWEK
IHsKICAgICBBU1NFUlQoIWhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24pOwogICAgIAotICAgIGhh
bmRsZS5tX3NhbmRib3hFeHRlbnNpb24gPSBTYW5kYm94RXh0ZW5zaW9uSW1wbDo6Y3JlYXRlKHNl
cnZpY2UudXRmOCgpLmRhdGEoKSwgVHlwZTo6TWFjaCwgcGlkKTsKKyAgICBWYXJpYW50PHBpZF90
LCBhdWRpdF90b2tlbl90PiBwcm9jZXNzKHBpZCk7CisgICAgaGFuZGxlLm1fc2FuZGJveEV4dGVu
c2lvbiA9IFNhbmRib3hFeHRlbnNpb25JbXBsOjpjcmVhdGUoc2VydmljZS51dGY4KCkuZGF0YSgp
LCBUeXBlOjpNYWNoLCBXVEZNb3ZlKHByb2Nlc3MpKTsKICAgICBpZiAoIWhhbmRsZS5tX3NhbmRi
b3hFeHRlbnNpb24pIHsKICAgICAgICAgV1RGTG9nQWx3YXlzKCJDb3VsZCBub3QgY3JlYXRlIGEg
JyVzJyBzYW5kYm94IGV4dGVuc2lvbiIsIHNlcnZpY2UudXRmOCgpLmRhdGEoKSk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKQEAgLTM1Miw3ICszNjQsMjIgQEAgYm9vbCBTYW5kYm94RXh0ZW5zaW9u
OjpjcmVhdGVIYW5kbGVGb3JSZQogICAgIGlmICghcGlkKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uID0gU2FuZGJveEV4dGVuc2lvbkltcGw6
OmNyZWF0ZShwYXRoLnV0ZjgoKS5kYXRhKCksIFR5cGU6OlJlYWRCeVBpZCwgcGlkKTsKKyAgICBW
YXJpYW50PHBpZF90LCBhdWRpdF90b2tlbl90PiBwcm9jZXNzKHBpZCk7CisgICAgaGFuZGxlLm1f
c2FuZGJveEV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb25JbXBsOjpjcmVhdGUocGF0aC51dGY4
KCkuZGF0YSgpLCBUeXBlOjpSZWFkQnlQcm9jZXNzLCBXVEZNb3ZlKHByb2Nlc3MpKTsKKyAgICBp
ZiAoIWhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24pIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJD
b3VsZCBub3QgY3JlYXRlIHNhbmRib3ggZXh0ZW5zaW9uIik7CisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgU2FuZGJveEV4dGVu
c2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZEJ5QXVkaXRUb2tlbihjb25zdCBTdHJpbmcmIHBhdGgs
IGF1ZGl0X3Rva2VuX3QgYXVkaXRUb2tlbiwgSGFuZGxlJiBoYW5kbGUpCit7CisgICAgQVNTRVJU
KCFoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uKTsKKworICAgIFZhcmlhbnQ8cGlkX3QsIGF1ZGl0
X3Rva2VuX3Q+IHByb2Nlc3MoYXVkaXRUb2tlbik7CisgICAgaGFuZGxlLm1fc2FuZGJveEV4dGVu
c2lvbiA9IFNhbmRib3hFeHRlbnNpb25JbXBsOjpjcmVhdGUocGF0aC51dGY4KCkuZGF0YSgpLCBU
eXBlOjpSZWFkQnlQcm9jZXNzLCBXVEZNb3ZlKHByb2Nlc3MpKTsKICAgICBpZiAoIWhhbmRsZS5t
X3NhbmRib3hFeHRlbnNpb24pIHsKICAgICAgICAgV1RGTG9nQWx3YXlzKCJDb3VsZCBub3QgY3Jl
YXRlIHNhbmRib3ggZXh0ZW5zaW9uIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4JKHJldmlzaW9uIDI1MDUzMCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQCBtZXNz
YWdlcyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2CiAgICAgR2V0UGx1Z2lucyhib29s
IHJlZnJlc2gpIC0+IChWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4gcGx1Z2lucywgVmVjdG9y
PFdlYkNvcmU6OlBsdWdpbkluZm8+IGFwcGxpY2F0aW9uUGx1Z2lucywgc3RydWN0IE9wdGlvbmFs
PFZlY3RvcjxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVyPj4gc3VwcG9ydGVkUGx1
Z2luSWRlbnRpZmllcnMpIFN5bmNocm9ub3VzCiAgICAgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b24odWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5l
Y3Rpb25IYW5kbGUsIGJvb2wgc3VwcG9ydHNBc3luY2hyb25vdXNJbml0aWFsaXphdGlvbikgU3lu
Y2hyb25vdXMKICNlbmRpZgotICAgIEdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpIC0+IChJ
UEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZSkgU3luY2hyb25vdXMKKyAgICBHZXROZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKSAtPiAoc3RydWN0IFdlYktpdDo6TmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uSW5mbyBjb25uZWN0aW9uSW5mbykgU3luY2hyb25vdXMKICAgICBQcm9jZXNzUmVh
ZHlUb1N1c3BlbmQoKQogICAgIERpZENhbmNlbFByb2Nlc3NTdXNwZW5zaW9uKCkKIApJbmRleDog
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwCShyZXZpc2lvbiAyNTA1MzApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2
ICszNiw3IEBACiAjZW5kaWYKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29y
a0NvbnRlbnRSdWxlTGlzdE1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbkluZm8uaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJTYW5kYm94RXh0ZW5zaW9uLmgiCkBAIC0xNjEsNyArMTYyLDcgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpvcGVuTmV0d29ya1BybwogICAgICAgICByZXF1ZXN0LnJlcGx5KCpjb25uZWN0
aW9uSWRlbnRpZmllcik7CiAjZWxpZiBPUyhEQVJXSU4pCiAgICAgICAgIE1FU1NBR0VfQ0hFQ0so
TUFDSF9QT1JUX1ZBTElEKGNvbm5lY3Rpb25JZGVudGlmaWVyLT5wb3J0KCkpKTsKLSAgICAgICAg
cmVxdWVzdC5yZXBseShJUEM6OkF0dGFjaG1lbnQgeyBjb25uZWN0aW9uSWRlbnRpZmllci0+cG9y
dCgpLCBNQUNIX01TR19UWVBFX01PVkVfU0VORCB9KTsKKyAgICAgICAgcmVxdWVzdC5yZXBseShO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsgSVBDOjpBdHRhY2htZW50IHsgY29ubmVjdGlv
bklkZW50aWZpZXItPnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQgfSwgY29ubmVjdGlv
bigpLT5nZXRBdWRpdFRva2VuKCkgfSk7CiAjZWxzZQogICAgICAgICBub3RJbXBsZW1lbnRlZCgp
OwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDI1MDUzMCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQ3MDAsNiArNDcwMCw3
IEBACiAJCUUxRTU1MkMzMTZBRTA2NUUwMDRFRDY1MyAvKiBTYW5kYm94SW5pdGlhbGl6YXRpb25Q
YXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNhbmRib3hJbml0
aWFsaXphdGlvblBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFF
RTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0
b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTUzRTYxMUY4Q0ZG
QjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGll
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzQzOUI2MzIzNDU0NjNBMDAx
MURFMEIgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmg7IHBhdGggPSBOZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbkluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkw
NzAyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGVyUGFpck1hYy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTY3JvbGxlclBhaXJNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTQwNDkwNzEyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVSZW1vdGVNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDcyMjFERTY1RjcwMDM3RjBEQiAvKiBTY3Jv
bGxlclBhaXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBT
Y3JvbGxlclBhaXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NzAwLDYg
KzY3MDEsNyBAQAogCQkJCTUxMDVCMEQ0MTYyRjdBN0EwMEUyNzcwOSAvKiBOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwICovLAogCQkJCTUxMDVCMEQ1MTYyRjdBN0EwMEUyNzcwOSAvKiBOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLywKIAkJCQk1MUZCMDkwMjE2M0EzQjFDMDBFQzMyNEEg
LyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovLAorCQkJCUUzNDM5QjYz
MjM0NTQ2M0EwMDExREUwQiAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmggKi8sCiAJ
CQkJNTFBQkY2NTYxNjM5MkYxNTAwMTMyQTdBIC8qIFdlYkxvYWRlclN0cmF0ZWd5LmNwcCAqLywK
IAkJCQk1MUFCRjY1NzE2MzkyRjE1MDAxMzJBN0EgLyogV2ViTG9hZGVyU3RyYXRlZ3kuaCAqLywK
IAkJCQlBNTg2MEU2RjIzMEY2N0RFMDA0NjFBQUUgLyogV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250
cm9sbGVyLmNwcCAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAJKHJldmlzaW9uIDI1MDUzMCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCiAj
aW5jbHVkZSAiTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCIKQEAgLTExMzcsMTAgKzExMzgsMTAgQEAg
dm9pZCBXZWJQcm9jZXNzOjpzZXRJbmplY3RlZEJ1bmRsZVBhcmFtZQogICAgIGluamVjdGVkQnVu
ZGxlLT5zZXRCdW5kbGVQYXJhbWV0ZXJzKHZhbHVlKTsKIH0KIAotc3RhdGljIElQQzo6Q29ubmVj
dGlvbjo6SWRlbnRpZmllciBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uKQorc3RhdGljIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8gZ2V0
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKIHsK
LSAgICBJUEM6OkF0dGFjaG1lbnQgZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyOwotICAgIGlm
ICghY29ubmVjdGlvbi5zZW5kU3luYyhNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKSwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpSZXBseShlbmNvZGVkQ29ubmVjdGlvbklkZW50aWZpZXIp
LCAwKSkgeworICAgIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8gY29ubmVjdGlvbkluZm87
CisgICAgaWYgKCFjb25uZWN0aW9uLnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6
OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5
OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OlJlcGx5KGNvbm5lY3Rpb25JbmZvKSwgMCkp
IHsKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICAgICAgLy8gR1RLKyBh
bmQgV1BFIHBvcnRzIGRvbid0IGV4aXQgb24gc2VuZCBzeW5jIG1lc3NhZ2UgZmFpbHVyZS4KICAg
ICAgICAgLy8gSW4gdGhpcyBwYXJ0aWN1bGFyIGNhc2UsIHRoZSBuZXR3b3JrIHByb2Nlc3MgY2Fu
IGJlIHRlcm1pbmF0ZWQgYnkgdGhlIFVJIHByb2Nlc3Mgd2hpbGUgdGhlCkBAIC0xMTUzLDE2ICsx
MTU0LDcgQEAgc3RhdGljIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBnZXROZQogI2VuZGlm
CiAgICAgfQogCi0jaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCi0gICAgcmV0dXJuIGVuY29k
ZWRDb25uZWN0aW9uSWRlbnRpZmllci5yZWxlYXNlRmlsZURlc2NyaXB0b3IoKTsKLSNlbGlmIE9T
KERBUldJTikKLSAgICByZXR1cm4gZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyLnBvcnQoKTsK
LSNlbGlmIE9TKFdJTkRPV1MpCi0gICAgcmV0dXJuIGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmll
ci5oYW5kbGUoKTsKLSNlbHNlCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJu
IElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcigpOwotI2VuZGlmCisgICAgcmV0dXJuIGNvbm5l
Y3Rpb25JbmZvOwogfQogCiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24mIFdlYlByb2Nlc3M6OmVu
c3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpCkBAIC0xMTcyLDE3ICsxMTY0LDIwIEBAIE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbiYgV2ViUHJvY2Vzczo6ZW4KIAogICAgIC8vIElmIHdlJ3Zl
IGxvc3Qgb3VyIGNvbm5lY3Rpb24gdG8gdGhlIG5ldHdvcmsgcHJvY2VzcyAoZS5nLiBpdCBjcmFz
aGVkKSB0cnkgdG8gcmUtZXN0YWJsaXNoIGl0LgogICAgIGlmICghbV9uZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24pIHsKLSAgICAgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rp
b25JZGVudGlmaWVyID0gZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCpwYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpKTsKKyAgICAgICAgYXV0byBjb25uZWN0aW9uSW5mbyA9IGdldE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbigqcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKSk7CiAKICAgICAgICAg
Ly8gUmV0cnkgb25jZSBpZiB0aGUgSVBDIHRvIGdldCB0aGUgY29ubmVjdGlvbklkZW50aWZpZXIg
c3VjY2VlZGVkIGJ1dCB0aGUgY29ubmVjdGlvbklkZW50aWZpZXIgd2UgcmVjZWl2ZWQKICAgICAg
ICAgLy8gaXMgaW52YWxpZC4gVGhpcyBtYXkgaW5kaWNhdGUgdGhhdCB0aGUgbmV0d29yayBwcm9j
ZXNzIGhhcyBjcmFzaGVkLgotICAgICAgICBpZiAoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmll
cklzVmFsaWQoY29ubmVjdGlvbklkZW50aWZpZXIpKQotICAgICAgICAgICAgY29ubmVjdGlvbklk
ZW50aWZpZXIgPSBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCkpOworICAgICAgICBpZiAoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFs
aWQoY29ubmVjdGlvbkluZm8uaWRlbnRpZmllcigpKSkKKyAgICAgICAgICAgIGNvbm5lY3Rpb25J
bmZvID0gZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCpwYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpKTsKIAotICAgICAgICBpZiAoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQo
Y29ubmVjdGlvbklkZW50aWZpZXIpKQorICAgICAgICBpZiAoIUlQQzo6Q29ubmVjdGlvbjo6aWRl
bnRpZmllcklzVmFsaWQoY29ubmVjdGlvbkluZm8uaWRlbnRpZmllcigpKSkKICAgICAgICAgICAg
IENSQVNIKCk7CiAKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gPSBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShjb25uZWN0aW9uSWRlbnRpZmllcik7CisgICAgICAg
IG1fbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpj
cmVhdGUoY29ubmVjdGlvbkluZm8uaWRlbnRpZmllcigpKTsKKyNpZiBPUyhEQVJXSU4pCisgICAg
ICAgIG1fbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLT5zZXROZXR3b3JrUHJvY2Vzc0F1ZGl0VG9r
ZW4oV1RGTW92ZShjb25uZWN0aW9uSW5mby5hdWRpdFRva2VuKSk7CisjZW5kaWYKICAgICB9CiAg
ICAgCiAgICAgcmV0dXJuICptX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5oCShyZXZpc2lvbiAyNTA1MzApCisrKyBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAkod29ya2luZyBjb3B5KQpA
QCAtNzYsNiArNzYsMTEgQEAgcHVibGljOgogICAgIFdlYlNXQ2xpZW50Q29ubmVjdGlvbiYgc2Vy
dmljZVdvcmtlckNvbm5lY3Rpb24oKTsKICNlbmRpZgogCisjaWYgT1MoREFSV0lOKQorICAgIHZv
aWQgc2V0TmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuKE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IGF1
ZGl0VG9rZW4pIHsgbV9uZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4gPSBhdWRpdFRva2VuOyB9Cisg
ICAgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4gbmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuKCkgY29u
c3QgeyByZXR1cm4gbV9uZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW47IH0KKyNlbmRpZgorCiBwcml2
YXRlOgogICAgIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50
aWZpZXIpOwogCkBAIC05OSw2ICsxMDQsOSBAQCBwcml2YXRlOgogCiAgICAgLy8gVGhlIGNvbm5l
Y3Rpb24gZnJvbSB0aGUgd2ViIHByb2Nlc3MgdG8gdGhlIG5ldHdvcmsgcHJvY2Vzcy4KICAgICBS
ZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisjaWYgT1MoREFSV0lOKQorICAgIE9w
dGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IG1fbmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuOworI2VuZGlm
CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBSZWZQdHI8V2ViSURCQ29ubmVj
dGlvblRvU2VydmVyPiBtX3dlYklEQkNvbm5lY3Rpb247CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uSW5mby5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDcwIEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6Cisq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyov
CisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbkluZm8geworICAgIElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uOwor
I2lmIE9TKERBUldJTikKKyAgICBPcHRpb25hbDxhdWRpdF90b2tlbl90PiBhdWRpdFRva2VuOwor
I2VuZGlmCisKKyAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgaWRlbnRpZmllcigpCisg
ICAgeworI2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQorICAgICAgICByZXR1cm4gSVBDOjpD
b25uZWN0aW9uOjpJZGVudGlmaWVyKGNvbm5lY3Rpb24ucmVsZWFzZUZpbGVEZXNjcmlwdG9yKCkp
OworI2VsaWYgT1MoREFSV0lOKQorICAgICAgICByZXR1cm4gSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyKGNvbm5lY3Rpb24ucG9ydCgpKTsKKyNlbGlmIE9TKFdJTkRPV1MpCisgICAgICAgIHJl
dHVybiBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIoY29ubmVjdGlvbi5oYW5kbGUoKSk7Cisj
ZWxzZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIElQQzo6
Q29ubmVjdGlvbjo6SWRlbnRpZmllcigpOworI2VuZGlmCisgICAgfQorICAgIAorICAgIHZvaWQg
ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29k
ZXIgPDwgY29ubmVjdGlvbjsKKyNpZiBPUyhEQVJXSU4pCisgICAgICAgIGVuY29kZXIgPDwgYXVk
aXRUb2tlbjsKKyNlbmRpZgorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBD
OjpEZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvJiBpbmZvKQor
ICAgIHsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmNvbm5lY3Rpb24pKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworI2lmIE9TKERBUldJTikKKyAgICAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShpbmZvLmF1ZGl0VG9rZW4pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
I2VuZGlmCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KK307CisKK307CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRl
Z3kuY3BwCShyZXZpc2lvbiAyNTA1MzApCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4Niw2ICsyODYs
NyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWRGcm9tCiAgICAgbG9hZFBh
cmFtZXRlcnMud2ViUGFnZUlEID0gdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRDsKICAgICBsb2Fk
UGFyYW1ldGVycy53ZWJGcmFtZUlEID0gdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQ7CiAgICAg
bG9hZFBhcmFtZXRlcnMucGFyZW50UElEID0gcHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7Cisg
ICAgbG9hZFBhcmFtZXRlcnMubmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuID0gV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkubmV0d29ya1Byb2Nl
c3NBdWRpdFRva2VuKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMucmVxdWVzdCA9IHJlcXVlc3Q7CiAg
ICAgbG9hZFBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5ID0gY29udGVudFNuaWZmaW5n
UG9saWN5OwogICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5
ID0gY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3k7CkBAIC01NjEsNiArNTYyLDcgQEAgdm9p
ZCBXZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luYwogICAgIGxvYWRQYXJhbWV0ZXJz
LndlYlBhZ2VJRCA9IHBhZ2VJRDsKICAgICBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlEID0gZnJh
bWVJRDsKICAgICBsb2FkUGFyYW1ldGVycy5wYXJlbnRQSUQgPSBwcmVzZW50aW5nQXBwbGljYXRp
b25QSUQoKTsKKyAgICBsb2FkUGFyYW1ldGVycy5uZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4gPSBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5u
ZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4oKTsKICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0g
cmVxdWVzdDsKICAgICBsb2FkUGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3kgPSBDb250
ZW50U25pZmZpbmdQb2xpY3k6OlNuaWZmQ29udGVudDsKICAgICBsb2FkUGFyYW1ldGVycy5jb250
ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSA9IENvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5
OjpTbmlmZjsKQEAgLTYzMCw2ICs2MzIsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzdGFy
dFBpbmdMb2FkKEZyCiAgICAgbG9hZFBhcmFtZXRlcnMuc291cmNlT3JpZ2luID0gJmRvY3VtZW50
LT5zZWN1cml0eU9yaWdpbigpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnRvcE9yaWdpbiA9ICZkb2N1
bWVudC0+dG9wT3JpZ2luKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMucGFyZW50UElEID0gcHJlc2Vu
dGluZ0FwcGxpY2F0aW9uUElEKCk7CisgICAgbG9hZFBhcmFtZXRlcnMubmV0d29ya1Byb2Nlc3NB
dWRpdFRva2VuID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKCkubmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuKCk7CiAgICAgbG9hZFBhcmFtZXRl
cnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBvcHRpb25zLmNyZWRlbnRpYWxzID09IEZldGNo
T3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9taXQgPyBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9O
b3RVc2UgOiBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlOwogICAgIGxvYWRQYXJhbWV0ZXJz
Lm9wdGlvbnMgPSBvcHRpb25zOwogICAgIGxvYWRQYXJhbWV0ZXJzLm9yaWdpbmFsUmVxdWVzdEhl
YWRlcnMgPSBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzOwpAQCAtNjkwLDYgKzY5Myw3IEBAIHZvaWQg
V2ViTG9hZGVyU3RyYXRlZ3k6OnByZWNvbm5lY3RUbyhGcmEKICAgICBwYXJhbWV0ZXJzLndlYlBh
Z2VJRCA9IHdlYlBhZ2UtPmlkZW50aWZpZXIoKTsKICAgICBwYXJhbWV0ZXJzLndlYkZyYW1lSUQg
PSB3ZWJGcmFtZS0+ZnJhbWVJRCgpOwogICAgIHBhcmFtZXRlcnMucGFyZW50UElEID0gcHJlc2Vu
dGluZ0FwcGxpY2F0aW9uUElEKCk7CisgICAgcGFyYW1ldGVycy5uZXR3b3JrUHJvY2Vzc0F1ZGl0
VG9rZW4gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5uZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4oKTsKICAgICBwYXJhbWV0ZXJzLnN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5ID0gc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k7CiAgICAgcGFyYW1l
dGVycy5zaG91bGRQcmVjb25uZWN0T25seSA9IFByZWNvbm5lY3RPbmx5OjpZZXM7CiAgICAgcGFy
YW1ldGVycy5zaG91bGRSZXN0cmljdEhUVFBSZXNwb25zZUFjY2VzcyA9IHNob3VsZFBlcmZvcm1T
ZWN1cml0eUNoZWNrcygpOwpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjUwNjI4KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMTAtMDIgIFBlciBBcm5lIFZvbGxhbiAg
PHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04oMjQ5NjQ5KTogVW5hYmxl
IHRvIG9wZW4gbG9jYWwgZmlsZXMgaW4gTWluaUJyb3dzZXIgb24gbWFjT1MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTc5OAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIEFQSSB0ZXN0IFdLV2Vi
Vmlldy5Mb2FkRmlsZVdpdGhMb2FkUmVxdWVzdC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvTG9hZEZpbGVVUkwubW06CisKIDIwMTktMTAtMDIgIFRoaWJhdWx0
IFNhdW5pZXIgIDx0c2F1bmllckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU1RyZWFtZXJdIExl
dCBwbGF5YmluIGhhbmRsZSByZWRpcmVjdHMgZm9yIHVzIHdoZW4gYXBwcm9wcmlhdGUKSW5kZXg6
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9hZEZpbGVVUkwubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2FkRmls
ZVVSTC5tbQkocmV2aXNpb24gMjUwNTMwKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Mb2FkRmlsZVVSTC5tbQkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsMTcg
QEAKICNpbXBvcnQgPFdlYktpdC9XZWJWaWV3UHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL1JldGFp
blB0ci5oPgogCitURVNUKFdLV2ViVmlldywgTG9hZEZpbGVXaXRoTG9hZFJlcXVlc3QpCit7Cisg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgYXV0byBkZWxlZ2F0ZSA9IGFk
b3B0TlMoW1tUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZp
ZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIE5TVVJMUmVx
dWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBt
YWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwi
IHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgIFt3ZWJWaWV3
IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworICAgIFtkZWxlZ2F0ZSB3YWl0Rm9yRGlkRmluaXNoTmF2
aWdhdGlvbl07Cit9CiAKIFRFU1QoV0tXZWJWaWV3LCBMb2FkVHdvRmlsZXMpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380061</attachid>
            <date>2019-10-02 14:41:42 -0700</date>
            <delta_ts>2019-10-02 15:01:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201798-20191002144141.patch</filename>
            <type>text/plain</type>
            <size>29035</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTA2MjcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisyMDE5LTEwLTAyICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKDI0OTY0OSk6
IFVuYWJsZSB0byBvcGVuIGxvY2FsIGZpbGVzIGluIE1pbmlCcm93c2VyIG9uIG1hY09TCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE3OTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgY29tbWl0IDxo
dHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjQ5NjQ5PiBpbnRyb2R1Y2VkIGEgTWlu
aUJyb3dzZXIgcmVncmVzc2lvbiBvbiBtYWNPUyB3aGVyZSBNaW5pQnJvd3NlcgorICAgICAgICBp
cyBub3QgYWJsZSB0byBvcGVuIGxvY2FsIGZpbGVzLiBUaGUgY2hhbmdlIHNldCByMjQ5NjQ5IGZp
eGVkIGEgcHJvYmxlbSB3aGVyZSB0aGUgV2ViQ29udGVudCBwcm9jZXNzIFBJRCB3YXMgbm90IHJl
YWR5CisgICAgICAgIHRvIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBhIHNhbmRib3ggZXh0ZW5zaW9u
LiBUaGlzIGhhcHBlbmVkIGluIHRoZSBjYXNlcyB3aGVyZSB0aGUgV2ViQ29udGVudCBwcm9jZXNz
IGhhZCBub3QgZmluaXNoZWQKKyAgICAgICAgbGF1bmNoaW5nIHdoZW4gdGhlIGxvYWQgc3RhcnRl
ZC4gVGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBhbHNvIGNyZWF0aW5nIHNhbmRib3ggZXh0ZW5z
aW9ucyBmb3IgdGhlIE5ldHdvcmtpbmcgcHJvY2VzcworICAgICAgICBmb3IgdGhlIGZpbGVzIGJl
aW5nIGxvYWRlZCwgYW5kIGFsc28gbmVlZHMgdG8gYmUgcGFzc2luZyB0aGUgYXVkaXQgdG9rZW4g
b2YgdGhlIE5ldHdvcmtpbmcgcHJvY2VzcyB3aGVuIGNyZWF0aW5nIHRoZXNlLgorICAgICAgICBU
aGlzIHBhdGNoIGltcGxlbWVudHMgZ2V0dGluZyB0aGUgYXVkaXQgdG9rZW4gZm9yIHRoZSBOZXR3
b3JraW5nIHByb2Nlc3Mgd2hlbiB0aGUgV2ViUHJvY2VzcyBpcyBzZW5kaW5nIGEgbWVzc2FnZSB0
bworICAgICAgICB0aGUgVUkgcHJvY2VzcyB0byBlc3RhYmxpc2ggdGhlIE5ldHdvcmtpbmcgcHJv
Y2VzcyBjb25uZWN0aW9uLiBUaGUgYXVkaXQgdG9rZW4gaXMgc3RvcmVkIGluIHRoZSBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24KKyAgICAgICAgb2JqZWN0LCBhbmQgcGFzc2VkIHRvIHRoZSBOZXR3
b3JrTG9hZFBhcmFtZXRlcnMgb2JqZWN0IHdoZW4gdGhlIGxvYWQgaXMgc3RhcnRlZC4gRmluYWxs
eSwgd2hlbiBlbmNvZGluZyB0aGUgTmV0d29yaworICAgICAgICByZXNvdXJjZXMgbG9hZCBwYXJh
bWV0ZXJzLCB0aGUgYXVkaXQgdG9rZW4gaXMgdXNlZCB0byBjcmVhdGUgYW4gZXh0ZW5zaW9uIGZv
ciB0aGUgTmV0d29ya2luZyBwcm9jZXNzLgorCisgICAgICAgIEFQSSB0ZXN0OiBXS1dlYlZpZXcu
TG9hZEZpbGVXaXRoTG9hZFJlcXVlc3QKKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0Fy
Z3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxhdWRpdF90b2tl
bl90Pjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxhdWRpdF90b2tlbl90
Pjo6ZGVjb2RlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaDoKKyAg
ICAgICAgKiBTaGFyZWQvQ29jb2EvU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tOgorICAgICAgICAo
V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uSW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
U2FuZGJveEV4dGVuc2lvbkltcGw6OnNhbmRib3hFeHRlbnNpb25Gb3JUeXBlKToKKyAgICAgICAg
KFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbkltcGw6OlNhbmRib3hFeHRlbnNpb25JbXBsKToKKyAg
ICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1
cEJ5UGlkKToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxl
Rm9yUmVhZEJ5UGlkKToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
SGFuZGxlRm9yUmVhZEJ5QXVkaXRUb2tlbik6CisgICAgICAgICogU2hhcmVkL1NhbmRib3hFeHRl
bnNpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6b3Blbk5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmg6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6c2V0TmV0d29ya1By
b2Nlc3NBdWRpdFRva2VuKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uOjpuZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4gY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvOjppZGVudGlmaWVyKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbzo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbzo6ZGVjb2Rl
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkRnJvbU5ldHdv
cmtQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNv
dXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6
c3RhcnRQaW5nTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpwcmVj
b25uZWN0VG8pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6CisKIDIwMTktMTAt
MDIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBDTWFrZS1idWlsdCBXZWJLaXQuZnJhbWV3b3JrIHNob3VsZCBsYXVuY2ggWFBDIHNlcnZpY2Vz
IHN1Y2Nlc3NmdWxseQpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZFBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCShyZXZpc2lvbiAyNTA1MzApCisrKyBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCSh3b3JraW5nIGNv
cHkpCkBAIC00Niw2ICs0Niw3IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgd2ViRnJhbWVJRDsKICAgICBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IHRvcE9y
aWdpbjsKICAgICBXVEY6OlByb2Nlc3NJRCBwYXJlbnRQSUQgeyAwIH07CisgICAgT3B0aW9uYWw8
YXVkaXRfdG9rZW5fdD4gbmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuOwogICAgIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCByZXF1ZXN0OwogICAgIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGlj
eSBjb250ZW50U25pZmZpbmdQb2xpY3kgeyBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3k6
OlNuaWZmQ29udGVudCB9OwogICAgIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9s
aWN5IGNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHsgV2ViQ29yZTo6Q29udGVudEVuY29k
aW5nU25pZmZpbmdQb2xpY3k6OlNuaWZmIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
LmNwcAkocmV2aXNpb24gMjUwNTMwKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2LDcg
KzY2LDE0IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmVuY28KIAogICAg
IGlmIChyZXF1ZXN0LnVybCgpLmlzTG9jYWxGaWxlKCkpIHsKICAgICAgICAgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlIHJlcXVlc3RTYW5kYm94RXh0ZW5zaW9uOworI2lmIEhBVkUoU0FOREJPWF9J
U1NVRV9SRUFEX0VYVEVOU0lPTl9UT19QUk9DRVNTX0JZX1BJRCkKKyAgICAgICAgaWYgKG5ldHdv
cmtQcm9jZXNzQXVkaXRUb2tlbikKKyAgICAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0
ZUhhbmRsZUZvclJlYWRCeUF1ZGl0VG9rZW4ocmVxdWVzdC51cmwoKS5maWxlU3lzdGVtUGF0aCgp
LCAqbmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuLCByZXF1ZXN0U2FuZGJveEV4dGVuc2lvbik7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZShy
ZXF1ZXN0LnVybCgpLmZpbGVTeXN0ZW1QYXRoKCksIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJl
YWRPbmx5LCByZXF1ZXN0U2FuZGJveEV4dGVuc2lvbik7CisjZWxzZQogICAgICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUocmVxdWVzdC51cmwoKS5maWxlU3lzdGVtUGF0aCgpLCBT
YW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpSZWFkT25seSwgcmVxdWVzdFNhbmRib3hFeHRlbnNpb24p
OworI2VuZGlmCiAgICAgICAgIGVuY29kZXIgPDwgcmVxdWVzdFNhbmRib3hFeHRlbnNpb247CiAg
ICAgfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2Rl
cnMuY3BwCShyZXZpc2lvbiAyNTA1MzApCisrKyBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9B
cmd1bWVudENvZGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4OCw0ICsxODgsMjEgQEAgYm9v
bCBBcmd1bWVudENvZGVyPFNIQTE6OkRpZ2VzdD46OmRlY29kZQogICAgIHJldHVybiBkZWNvZGVy
LmRlY29kZUZpeGVkTGVuZ3RoRGF0YShkaWdlc3QuZGF0YSgpLCBzaXplb2YoZGlnZXN0KSwgMSk7
CiB9CiAKKyNpZiBPUyhEQVJXSU4pCit2b2lkIEFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBhdWRpdF90b2tlbl90JiBhdWRpdFRva2Vu
KQoreworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGF1ZGl0
VG9rZW4udmFsKTsgaSsrKQorICAgICAgICBlbmNvZGVyIDw8IGF1ZGl0VG9rZW4udmFsW2ldOwor
fQorCitib29sIEFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBhdWRpdF90b2tlbl90JiBhdWRpdFRva2VuKQoreworICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGF1ZGl0VG9rZW4udmFsKTsgaSsrKSB7CisgICAg
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXVkaXRUb2tlbi52YWxbaV0pKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKyNlbmRpZgorCiB9IC8v
IG5hbWVzcGFjZSBJUEMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50
Q29kZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1l
bnRDb2RlcnMuaAkocmV2aXNpb24gMjUwNTMwKQorKysgU291cmNlL1dlYktpdC9QbGF0Zm9ybS9J
UEMvQXJndW1lbnRDb2RlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtNjIxLDQgKzYyMSwxMSBAQCB0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFNIQTE6OkRpCiAgICAgc3RhdGljIGJvb2wg
ZGVjb2RlKERlY29kZXImLCBTSEExOjpEaWdlc3QmKTsKIH07CiAKKyNpZiBPUyhEQVJXSU4pCit0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rva2VuX3Q+IHsKKyAgICBzdGF0
aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IGF1ZGl0X3Rva2VuX3QmKTsKKyAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIGF1ZGl0X3Rva2VuX3QmKTsKK307CisjZW5kaWYKKwog
fSAvLyBuYW1lc3BhY2UgSVBDCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9TYW5kYm94RXh0
ZW5zaW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvU2FuZGJveEV4dGVu
c2lvbi5oCShyZXZpc2lvbiAyNTA1MzApCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9TYW5kYm94
RXh0ZW5zaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAg
ICAgICBSZWFkV3JpdGUsCiAgICAgICAgIE1hY2gsCiAgICAgICAgIEdlbmVyaWMsCi0gICAgICAg
IFJlYWRCeVBpZAorICAgICAgICBSZWFkQnlQcm9jZXNzCiAgICAgfTsKIAogICAgIGNsYXNzIEhh
bmRsZSB7CkBAIC0xMDYsNiArMTA2LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGNyZWF0
ZUhhbmRsZUZvckdlbmVyaWNFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb25DbGFzcywg
SGFuZGxlJik7CiAgICAgc3RhdGljIGJvb2wgY3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cEJ5UGlk
KGNvbnN0IFN0cmluZyYgc2VydmljZSwgUHJvY2Vzc0lELCBIYW5kbGUmKTsKICAgICBzdGF0aWMg
Ym9vbCBjcmVhdGVIYW5kbGVGb3JSZWFkQnlQaWQoY29uc3QgU3RyaW5nJiBwYXRoLCBQcm9jZXNz
SUQsIEhhbmRsZSYpOworICAgIHN0YXRpYyBib29sIGNyZWF0ZUhhbmRsZUZvclJlYWRCeUF1ZGl0
VG9rZW4oY29uc3QgU3RyaW5nJiBwYXRoLCBhdWRpdF90b2tlbl90LCBIYW5kbGUmKTsKICAgICB+
U2FuZGJveEV4dGVuc2lvbigpOwogCiAgICAgYm9vbCBjb25zdW1lKCk7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db2NvYS9TYW5kYm94RXh0ZW5zaW9uQ29jb2EubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tCShy
ZXZpc2lvbiAyNTA1MzApCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9TYW5kYm94RXh0
ZW5zaW9uQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQg
IkRlY29kZXIuaCIKICNpbXBvcnQgIkVuY29kZXIuaCIKICNpbXBvcnQgPHd0Zi9GaWxlU3lzdGVt
Lmg+CisjaW1wb3J0IDx3dGYvVmFyaWFudC5oPgogI2ltcG9ydCA8d3RmL3NwaS9kYXJ3aW4vU2Fu
ZGJveFNQSS5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC00MCw5ICs0MSw5
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgU2FuZGJveEV4dGVuc2lvbkltcGwgewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8U2FuZGJveEV4dGVuc2lvbkltcGw+IGNyZWF0ZShjb25zdCBjaGFyKiBwYXRoLCBTYW5k
Ym94RXh0ZW5zaW9uOjpUeXBlIHR5cGUsIE9wdGlvbmFsPHBpZF90PiBwaWQgPSBXVEY6Om51bGxv
cHQpCisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTYW5kYm94RXh0ZW5zaW9uSW1wbD4gY3Jl
YXRlKGNvbnN0IGNoYXIqIHBhdGgsIFNhbmRib3hFeHRlbnNpb246OlR5cGUgdHlwZSwgT3B0aW9u
YWw8VmFyaWFudDxwaWRfdCwgYXVkaXRfdG9rZW5fdD4+IHByb2Nlc3MgPSBXVEY6Om51bGxvcHQp
CiAgICAgewotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2FuZGJveEV4dGVuc2lvbkltcGw+IGlt
cGwgeyBuZXcgU2FuZGJveEV4dGVuc2lvbkltcGwocGF0aCwgdHlwZSwgcGlkKSB9OworICAgICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8U2FuZGJveEV4dGVuc2lvbkltcGw+IGltcGwgeyBuZXcgU2FuZGJv
eEV4dGVuc2lvbkltcGwocGF0aCwgdHlwZSwgcHJvY2VzcykgfTsKICAgICAgICAgaWYgKCFpbXBs
LT5tX3Rva2VuKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHJldHVybiBp
bXBsOwpAQCAtODQsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIGNo
YXIqIHNhbmRib3hFeHRlbnNpb25Gb3JUeXBlKGNvbnN0IGNoYXIqIHBhdGgsIFNhbmRib3hFeHRl
bnNpb246OlR5cGUgdHlwZSwgT3B0aW9uYWw8cGlkX3Q+IHBpZCA9IFdURjo6bnVsbG9wdCkKKyAg
ICBjaGFyKiBzYW5kYm94RXh0ZW5zaW9uRm9yVHlwZShjb25zdCBjaGFyKiBwYXRoLCBTYW5kYm94
RXh0ZW5zaW9uOjpUeXBlIHR5cGUsIE9wdGlvbmFsPFZhcmlhbnQ8cGlkX3QsIGF1ZGl0X3Rva2Vu
X3Q+PiBwcm9jZXNzKQogICAgIHsKICAgICAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgICAgIGNh
c2UgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVhZE9ubHk6CkBAIC05Myw3ICs5NCwxMSBAQCBw
cml2YXRlOgogICAgICAgICAgICAgcmV0dXJuIHNhbmRib3hfZXh0ZW5zaW9uX2lzc3VlX2ZpbGUo
QVBQX1NBTkRCT1hfUkVBRF9XUklURSwgcGF0aCwgMCk7CiAgICAgICAgIGNhc2UgU2FuZGJveEV4
dGVuc2lvbjo6VHlwZTo6TWFjaDoKICNpZiBIQVZFKFNBTkRCT1hfSVNTVUVfTUFDSF9FWFRFTlNJ
T05fVE9fUFJPQ0VTU19CWV9QSUQpCi0gICAgICAgICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNp
b25faXNzdWVfbWFjaF90b19wcm9jZXNzX2J5X3BpZCgiY29tLmFwcGxlLndlYmtpdC5leHRlbnNp
b24ubWFjaCJfcywgcGF0aCwgMCwgcGlkLnZhbHVlKCkpOworICAgICAgICAgICAgaWYgKCFwcm9j
ZXNzKQorICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgaWYgKCFX
VEY6OmhvbGRzX2FsdGVybmF0aXZlPHBpZF90PigqcHJvY2VzcykpCisgICAgICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNz
dWVfbWFjaF90b19wcm9jZXNzX2J5X3BpZCgiY29tLmFwcGxlLndlYmtpdC5leHRlbnNpb24ubWFj
aCJfcywgcGF0aCwgMCwgV1RGOjpnZXQ8cGlkX3Q+KCpwcm9jZXNzKSk7CiAjZWxzZQogICAgICAg
ICAgICAgVU5VU0VEX1BBUkFNKHBpZCk7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKQEAgLTEwMSw5ICsxMDYsMTUgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgICAgICBjYXNlIFNh
bmRib3hFeHRlbnNpb246OlR5cGU6OkdlbmVyaWM6CiAgICAgICAgICAgICByZXR1cm4gc2FuZGJv
eF9leHRlbnNpb25faXNzdWVfZ2VuZXJpYyhwYXRoLCAwKTsKLSAgICAgICAgY2FzZSBTYW5kYm94
RXh0ZW5zaW9uOjpUeXBlOjpSZWFkQnlQaWQ6CisgICAgICAgIGNhc2UgU2FuZGJveEV4dGVuc2lv
bjo6VHlwZTo6UmVhZEJ5UHJvY2VzczoKICNpZiBIQVZFKFNBTkRCT1hfSVNTVUVfUkVBRF9FWFRF
TlNJT05fVE9fUFJPQ0VTU19CWV9QSUQpCi0gICAgICAgICAgICByZXR1cm4gc2FuZGJveF9leHRl
bnNpb25faXNzdWVfZmlsZV90b19wcm9jZXNzX2J5X3BpZChBUFBfU0FOREJPWF9SRUFELCBwYXRo
LCBTQU5EQk9YX0VYVEVOU0lPTl9VU0VSX0lOVEVOVCwgcGlkLnZhbHVlKCkpOworICAgICAgICAg
ICAgaWYgKCFwcm9jZXNzKQorICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAg
ICAgICAgaWYgKFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8cGlkX3Q+KCpwcm9jZXNzKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNzdWVfZmlsZV90b19wcm9jZXNz
X2J5X3BpZChBUFBfU0FOREJPWF9SRUFELCBwYXRoLCBTQU5EQk9YX0VYVEVOU0lPTl9VU0VSX0lO
VEVOVCwgV1RGOjpnZXQ8cGlkX3Q+KCpwcm9jZXNzKSk7CisgICAgICAgICAgICBpZiAoV1RGOjpo
b2xkc19hbHRlcm5hdGl2ZTxhdWRpdF90b2tlbl90PigqcHJvY2VzcykpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHNhbmRib3hfZXh0ZW5zaW9uX2lzc3VlX2ZpbGVfdG9fcHJvY2VzcyhBUFBfU0FO
REJPWF9SRUFELCBwYXRoLCBTQU5EQk9YX0VYVEVOU0lPTl9VU0VSX0lOVEVOVCwgV1RGOjpnZXQ8
YXVkaXRfdG9rZW5fdD4oKnByb2Nlc3MpKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwog
I2Vsc2UKICAgICAgICAgICAgIFVOVVNFRF9QQVJBTShwaWQpOwogICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CkBAIC0xMTIsOCArMTIzLDggQEAgcHJpdmF0ZToKICAgICAgICAgfQog
ICAgIH0KIAotICAgIFNhbmRib3hFeHRlbnNpb25JbXBsKGNvbnN0IGNoYXIqIHBhdGgsIFNhbmRi
b3hFeHRlbnNpb246OlR5cGUgdHlwZSwgT3B0aW9uYWw8cGlkX3Q+IHBpZCA9IFdURjo6bnVsbG9w
dCkKLSAgICAgICAgOiBtX3Rva2VuIHsgc2FuZGJveEV4dGVuc2lvbkZvclR5cGUocGF0aCwgdHlw
ZSwgcGlkKSB9CisgICAgU2FuZGJveEV4dGVuc2lvbkltcGwoY29uc3QgY2hhciogcGF0aCwgU2Fu
ZGJveEV4dGVuc2lvbjo6VHlwZSB0eXBlLCBPcHRpb25hbDxWYXJpYW50PHBpZF90LCBhdWRpdF90
b2tlbl90Pj4gcHJvY2VzcykKKyAgICAgICAgOiBtX3Rva2VuIHsgc2FuZGJveEV4dGVuc2lvbkZv
clR5cGUocGF0aCwgdHlwZSwgcHJvY2VzcykgfQogICAgIHsKICAgICB9CiAKQEAgLTMzNiw3ICsz
NDcsOCBAQCBib29sIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hCiB7CiAgICAg
QVNTRVJUKCFoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uKTsKICAgICAKLSAgICBoYW5kbGUubV9z
YW5kYm94RXh0ZW5zaW9uID0gU2FuZGJveEV4dGVuc2lvbkltcGw6OmNyZWF0ZShzZXJ2aWNlLnV0
ZjgoKS5kYXRhKCksIFR5cGU6Ok1hY2gsIHBpZCk7CisgICAgVmFyaWFudDxwaWRfdCwgYXVkaXRf
dG9rZW5fdD4gcHJvY2VzcyhwaWQpOworICAgIGhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24gPSBT
YW5kYm94RXh0ZW5zaW9uSW1wbDo6Y3JlYXRlKHNlcnZpY2UudXRmOCgpLmRhdGEoKSwgVHlwZTo6
TWFjaCwgV1RGTW92ZShwcm9jZXNzKSk7CiAgICAgaWYgKCFoYW5kbGUubV9zYW5kYm94RXh0ZW5z
aW9uKSB7CiAgICAgICAgIFdURkxvZ0Fsd2F5cygiQ291bGQgbm90IGNyZWF0ZSBhICclcycgc2Fu
ZGJveCBleHRlbnNpb24iLCBzZXJ2aWNlLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CkBAIC0zNTIsNyArMzY0LDIyIEBAIGJvb2wgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
SGFuZGxlRm9yUmUKICAgICBpZiAoIXBpZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAg
aGFuZGxlLm1fc2FuZGJveEV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb25JbXBsOjpjcmVhdGUo
cGF0aC51dGY4KCkuZGF0YSgpLCBUeXBlOjpSZWFkQnlQaWQsIHBpZCk7CisgICAgVmFyaWFudDxw
aWRfdCwgYXVkaXRfdG9rZW5fdD4gcHJvY2VzcyhwaWQpOworICAgIGhhbmRsZS5tX3NhbmRib3hF
eHRlbnNpb24gPSBTYW5kYm94RXh0ZW5zaW9uSW1wbDo6Y3JlYXRlKHBhdGgudXRmOCgpLmRhdGEo
KSwgVHlwZTo6UmVhZEJ5UHJvY2VzcywgV1RGTW92ZShwcm9jZXNzKSk7CisgICAgaWYgKCFoYW5k
bGUubV9zYW5kYm94RXh0ZW5zaW9uKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiQ291bGQgbm90
IGNyZWF0ZSBzYW5kYm94IGV4dGVuc2lvbiIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorICAgIAorICAgIHJldHVybiB0cnVlOworfQorCitib29sIFNhbmRib3hFeHRlbnNpb246OmNy
ZWF0ZUhhbmRsZUZvclJlYWRCeUF1ZGl0VG9rZW4oY29uc3QgU3RyaW5nJiBwYXRoLCBhdWRpdF90
b2tlbl90IGF1ZGl0VG9rZW4sIEhhbmRsZSYgaGFuZGxlKQoreworICAgIEFTU0VSVCghaGFuZGxl
Lm1fc2FuZGJveEV4dGVuc2lvbik7CisKKyAgICBWYXJpYW50PHBpZF90LCBhdWRpdF90b2tlbl90
PiBwcm9jZXNzKGF1ZGl0VG9rZW4pOworICAgIGhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24gPSBT
YW5kYm94RXh0ZW5zaW9uSW1wbDo6Y3JlYXRlKHBhdGgudXRmOCgpLmRhdGEoKSwgVHlwZTo6UmVh
ZEJ5UHJvY2VzcywgV1RGTW92ZShwcm9jZXNzKSk7CiAgICAgaWYgKCFoYW5kbGUubV9zYW5kYm94
RXh0ZW5zaW9uKSB7CiAgICAgICAgIFdURkxvZ0Fsd2F5cygiQ291bGQgbm90IGNyZWF0ZSBzYW5k
Ym94IGV4dGVuc2lvbiIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCShyZXZp
c2lvbiAyNTA1MzApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgbWVzc2FnZXMgLT4g
V2ViUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdgogICAgIEdldFBsdWdpbnMoYm9vbCByZWZyZXNo
KSAtPiAoVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+IHBsdWdpbnMsIFZlY3RvcjxXZWJDb3Jl
OjpQbHVnaW5JbmZvPiBhcHBsaWNhdGlvblBsdWdpbnMsIHN0cnVjdCBPcHRpb25hbDxWZWN0b3I8
V2ViQ29yZTo6U3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcj4+IHN1cHBvcnRlZFBsdWdpbklkZW50
aWZpZXJzKSBTeW5jaHJvbm91cwogICAgIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKHVpbnQ2
NF90IHBsdWdpblByb2Nlc3NUb2tlbikgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFu
ZGxlLCBib29sIHN1cHBvcnRzQXN5bmNocm9ub3VzSW5pdGlhbGl6YXRpb24pIFN5bmNocm9ub3Vz
CiAjZW5kaWYKLSAgICBHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKSAtPiAoSVBDOjpBdHRh
Y2htZW50IGNvbm5lY3Rpb25IYW5kbGUpIFN5bmNocm9ub3VzCisgICAgR2V0TmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKCkgLT4gKHN0cnVjdCBXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bkluZm8gY29ubmVjdGlvbkluZm8pIFN5bmNocm9ub3VzCiAgICAgUHJvY2Vzc1JlYWR5VG9TdXNw
ZW5kKCkKICAgICBEaWRDYW5jZWxQcm9jZXNzU3VzcGVuc2lvbigpCiAKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmNwcAkocmV2aXNpb24gMjUwNTMwKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBA
QAogI2VuZGlmCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb250ZW50
UnVsZUxpc3RNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb25JbmZvLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2FuZGJv
eEV4dGVuc2lvbi5oIgpAQCAtMTU4LDEwICsxNTksMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpvcGVuTmV0d29ya1BybwogICAgICAgICBhdXRvIHJlcXVlc3QgPSBtX2Nvbm5lY3Rpb25S
ZXF1ZXN0cy50YWtlKGNvbm5lY3Rpb25SZXF1ZXN0SWRlbnRpZmllcik7CiAKICNpZiBVU0UoVU5J
WF9ET01BSU5fU09DS0VUUykgfHwgT1MoV0lORE9XUykKLSAgICAgICAgcmVxdWVzdC5yZXBseSgq
Y29ubmVjdGlvbklkZW50aWZpZXIpOworICAgICAgICByZXF1ZXN0LnJlcGx5KE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbkluZm8geyAqY29ubmVjdGlvbklkZW50aWZpZXIgfSk7CiAjZWxpZiBPUyhE
QVJXSU4pCiAgICAgICAgIE1FU1NBR0VfQ0hFQ0soTUFDSF9QT1JUX1ZBTElEKGNvbm5lY3Rpb25J
ZGVudGlmaWVyLT5wb3J0KCkpKTsKLSAgICAgICAgcmVxdWVzdC5yZXBseShJUEM6OkF0dGFjaG1l
bnQgeyBjb25uZWN0aW9uSWRlbnRpZmllci0+cG9ydCgpLCBNQUNIX01TR19UWVBFX01PVkVfU0VO
RCB9KTsKKyAgICAgICAgcmVxdWVzdC5yZXBseShOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZv
IHsgSVBDOjpBdHRhY2htZW50IHsgY29ubmVjdGlvbklkZW50aWZpZXItPnBvcnQoKSwgTUFDSF9N
U0dfVFlQRV9NT1ZFX1NFTkQgfSwgY29ubmVjdGlvbigpLT5nZXRBdWRpdFRva2VuKCkgfSk7CiAj
ZWxzZQogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1MDUz
MCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdv
cmtpbmcgY29weSkKQEAgLTQ3MDAsNiArNDcwMCw3IEBACiAJCUUxRTU1MkMzMTZBRTA2NUUwMDRF
RDY1MyAvKiBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8qIElu
amVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTFFRTUzRTYxMUY4Q0ZGQjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxl
UGFnZUVkaXRvckNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFMzQzOUI2MzIzNDU0NjNBMDAxMURFMEIgLyogTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZv
Lmg7IHBhdGggPSBOZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzAyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9s
bGVyUGFpck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxlclBh
aXJNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzEyMURFNjVGNzAw
MzdGMERCIC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZVJlbW90ZU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0
MDQ5MDcyMjFERTY1RjcwMDM3RjBEQiAvKiBTY3JvbGxlclBhaXJNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxlclBhaXJNYWMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NzAwLDYgKzY3MDEsNyBAQAogCQkJCTUxMDVCMEQ0MTYy
RjdBN0EwMEUyNzcwOSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovLAogCQkJCTUx
MDVCMEQ1MTYyRjdBN0EwMEUyNzcwOSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLywK
IAkJCQk1MUZCMDkwMjE2M0EzQjFDMDBFQzMyNEEgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluICovLAorCQkJCUUzNDM5QjYzMjM0NTQ2M0EwMDExREUwQiAvKiBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmggKi8sCiAJCQkJNTFBQkY2NTYxNjM5MkYxNTAwMTMyQTdB
IC8qIFdlYkxvYWRlclN0cmF0ZWd5LmNwcCAqLywKIAkJCQk1MUFCRjY1NzE2MzkyRjE1MDAxMzJB
N0EgLyogV2ViTG9hZGVyU3RyYXRlZ3kuaCAqLywKIAkJCQlBNTg2MEU2RjIzMEY2N0RFMDA0NjFB
QUUgLyogV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmNwcCAqLywKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDI1MDUzMCkKKysrIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oIgog
I2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb25DcmVh
dGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIuaCIKQEAgLTExMzcsMTAgKzExMzgsMTAgQEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRJbmplY3Rl
ZEJ1bmRsZVBhcmFtZQogICAgIGluamVjdGVkQnVuZGxlLT5zZXRCdW5kbGVQYXJhbWV0ZXJzKHZh
bHVlKTsKIH0KIAotc3RhdGljIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBnZXROZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQorc3RhdGljIE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8gZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKIHsKLSAgICBJUEM6OkF0dGFjaG1lbnQgZW5jb2Rl
ZENvbm5lY3Rpb25JZGVudGlmaWVyOwotICAgIGlmICghY29ubmVjdGlvbi5zZW5kU3luYyhNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKSwgTWVz
c2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpSZXBs
eShlbmNvZGVkQ29ubmVjdGlvbklkZW50aWZpZXIpLCAwKSkgeworICAgIE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbkluZm8gY29ubmVjdGlvbkluZm87CisgICAgaWYgKCFjb25uZWN0aW9uLnNlbmRT
eW5jKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bigpLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b246OlJlcGx5KGNvbm5lY3Rpb25JbmZvKSwgMCkpIHsKICNpZiBQTEFURk9STShHVEspIHx8IFBM
QVRGT1JNKFdQRSkKICAgICAgICAgLy8gR1RLKyBhbmQgV1BFIHBvcnRzIGRvbid0IGV4aXQgb24g
c2VuZCBzeW5jIG1lc3NhZ2UgZmFpbHVyZS4KICAgICAgICAgLy8gSW4gdGhpcyBwYXJ0aWN1bGFy
IGNhc2UsIHRoZSBuZXR3b3JrIHByb2Nlc3MgY2FuIGJlIHRlcm1pbmF0ZWQgYnkgdGhlIFVJIHBy
b2Nlc3Mgd2hpbGUgdGhlCkBAIC0xMTUzLDE2ICsxMTU0LDcgQEAgc3RhdGljIElQQzo6Q29ubmVj
dGlvbjo6SWRlbnRpZmllciBnZXROZQogI2VuZGlmCiAgICAgfQogCi0jaWYgVVNFKFVOSVhfRE9N
QUlOX1NPQ0tFVFMpCi0gICAgcmV0dXJuIGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5yZWxl
YXNlRmlsZURlc2NyaXB0b3IoKTsKLSNlbGlmIE9TKERBUldJTikKLSAgICByZXR1cm4gZW5jb2Rl
ZENvbm5lY3Rpb25JZGVudGlmaWVyLnBvcnQoKTsKLSNlbGlmIE9TKFdJTkRPV1MpCi0gICAgcmV0
dXJuIGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5oYW5kbGUoKTsKLSNlbHNlCi0gICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
cigpOwotI2VuZGlmCisgICAgcmV0dXJuIGNvbm5lY3Rpb25JbmZvOwogfQogCiBOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24mIFdlYlByb2Nlc3M6OmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bigpCkBAIC0xMTcyLDE3ICsxMTY0LDIwIEBAIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiYgV2Vi
UHJvY2Vzczo6ZW4KIAogICAgIC8vIElmIHdlJ3ZlIGxvc3Qgb3VyIGNvbm5lY3Rpb24gdG8gdGhl
IG5ldHdvcmsgcHJvY2VzcyAoZS5nLiBpdCBjcmFzaGVkKSB0cnkgdG8gcmUtZXN0YWJsaXNoIGl0
LgogICAgIGlmICghbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pIHsKLSAgICAgICAgSVBDOjpD
b25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gZ2V0TmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uKCpwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpKTsKKyAgICAgICAgYXV0
byBjb25uZWN0aW9uSW5mbyA9IGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigqcGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKSk7CiAKICAgICAgICAgLy8gUmV0cnkgb25jZSBpZiB0aGUgSVBDIHRv
IGdldCB0aGUgY29ubmVjdGlvbklkZW50aWZpZXIgc3VjY2VlZGVkIGJ1dCB0aGUgY29ubmVjdGlv
bklkZW50aWZpZXIgd2UgcmVjZWl2ZWQKICAgICAgICAgLy8gaXMgaW52YWxpZC4gVGhpcyBtYXkg
aW5kaWNhdGUgdGhhdCB0aGUgbmV0d29yayBwcm9jZXNzIGhhcyBjcmFzaGVkLgotICAgICAgICBp
ZiAoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbklkZW50aWZp
ZXIpKQotICAgICAgICAgICAgY29ubmVjdGlvbklkZW50aWZpZXIgPSBnZXROZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24oKnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkpOworICAgICAgICBpZiAoIUlQ
Qzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbkluZm8uaWRlbnRpZmll
cigpKSkKKyAgICAgICAgICAgIGNvbm5lY3Rpb25JbmZvID0gZ2V0TmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uKCpwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpKTsKIAotICAgICAgICBpZiAoIUlQQzo6
Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbklkZW50aWZpZXIpKQorICAg
ICAgICBpZiAoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbklu
Zm8uaWRlbnRpZmllcigpKSkKICAgICAgICAgICAgIENSQVNIKCk7CiAKLSAgICAgICAgbV9uZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gPSBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShj
b25uZWN0aW9uSWRlbnRpZmllcik7CisgICAgICAgIG1fbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
ID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoY29ubmVjdGlvbkluZm8uaWRlbnRp
ZmllcigpKTsKKyNpZiBPUyhEQVJXSU4pCisgICAgICAgIG1fbmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLT5zZXROZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4oV1RGTW92ZShjb25uZWN0aW9uSW5mby5h
dWRpdFRva2VuKSk7CisjZW5kaWYKICAgICB9CiAgICAgCiAgICAgcmV0dXJuICptX25ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCShyZXZpc2lvbiAy
NTA1MzApCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNzYsNiArNzYsMTEgQEAgcHVibGljOgog
ICAgIFdlYlNXQ2xpZW50Q29ubmVjdGlvbiYgc2VydmljZVdvcmtlckNvbm5lY3Rpb24oKTsKICNl
bmRpZgogCisjaWYgT1MoREFSV0lOKQorICAgIHZvaWQgc2V0TmV0d29ya1Byb2Nlc3NBdWRpdFRv
a2VuKE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IGF1ZGl0VG9rZW4pIHsgbV9uZXR3b3JrUHJvY2Vz
c0F1ZGl0VG9rZW4gPSBhdWRpdFRva2VuOyB9CisgICAgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4g
bmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuKCkgY29uc3QgeyByZXR1cm4gbV9uZXR3b3JrUHJvY2Vz
c0F1ZGl0VG9rZW47IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIE5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwogCkBAIC05OSw2ICsxMDQsOSBA
QCBwcml2YXRlOgogCiAgICAgLy8gVGhlIGNvbm5lY3Rpb24gZnJvbSB0aGUgd2ViIHByb2Nlc3Mg
dG8gdGhlIG5ldHdvcmsgcHJvY2Vzcy4KICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5l
Y3Rpb247CisjaWYgT1MoREFSV0lOKQorICAgIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IG1fbmV0
d29ya1Byb2Nlc3NBdWRpdFRva2VuOworI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKICAgICBSZWZQdHI8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPiBtX3dlYklEQkNvbm5l
Y3Rpb247CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb25JbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oCShub25leGlzdGVudCkK
KysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbkluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcwIEBACisvKgorKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworc3RydWN0IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8geworICAg
IElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uOworI2lmIE9TKERBUldJTikKKyAgICBPcHRpb25h
bDxhdWRpdF90b2tlbl90PiBhdWRpdFRva2VuOworI2VuZGlmCisKKyAgICBJUEM6OkNvbm5lY3Rp
b246OklkZW50aWZpZXIgaWRlbnRpZmllcigpCisgICAgeworI2lmIFVTRShVTklYX0RPTUFJTl9T
T0NLRVRTKQorICAgICAgICByZXR1cm4gSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKGNvbm5l
Y3Rpb24ucmVsZWFzZUZpbGVEZXNjcmlwdG9yKCkpOworI2VsaWYgT1MoREFSV0lOKQorICAgICAg
ICByZXR1cm4gSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKGNvbm5lY3Rpb24ucG9ydCgpKTsK
KyNlbGlmIE9TKFdJTkRPV1MpCisgICAgICAgIHJldHVybiBJUEM6OkNvbm5lY3Rpb246OklkZW50
aWZpZXIoY29ubmVjdGlvbi5oYW5kbGUoKSk7CisjZWxzZQorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcigpOwor
I2VuZGlmCisgICAgfQorICAgIAorICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgY29ubmVjdGlvbjsKKyNpZiBPUyhE
QVJXSU4pCisgICAgICAgIGVuY29kZXIgPDwgYXVkaXRUb2tlbjsKKyNlbmRpZgorICAgIH0KKyAg
ICAKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb25JbmZvJiBpbmZvKQorICAgIHsKKyAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShpbmZvLmNvbm5lY3Rpb24pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworI2lm
IE9TKERBUldJTikKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmF1ZGl0VG9rZW4p
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KK307CisKK307CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCShyZXZpc2lvbiAyNTA1MzApCisr
KyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI4Niw2ICsyODYsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5
OjpzY2hlZHVsZUxvYWRGcm9tCiAgICAgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlEID0gdHJhY2tp
bmdQYXJhbWV0ZXJzLnBhZ2VJRDsKICAgICBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlEID0gdHJh
Y2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQ7CiAgICAgbG9hZFBhcmFtZXRlcnMucGFyZW50UElEID0g
cHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7CisgICAgbG9hZFBhcmFtZXRlcnMubmV0d29ya1By
b2Nlc3NBdWRpdFRva2VuID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uKCkubmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuKCk7CiAgICAgbG9hZFBh
cmFtZXRlcnMucmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgbG9hZFBhcmFtZXRlcnMuY29udGVudFNu
aWZmaW5nUG9saWN5ID0gY29udGVudFNuaWZmaW5nUG9saWN5OwogICAgIGxvYWRQYXJhbWV0ZXJz
LmNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5ID0gY29udGVudEVuY29kaW5nU25pZmZpbmdQ
b2xpY3k7CkBAIC01NjEsNiArNTYyLDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJl
c291cmNlU3luYwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRCA9IHBhZ2VJRDsKICAgICBs
b2FkUGFyYW1ldGVycy53ZWJGcmFtZUlEID0gZnJhbWVJRDsKICAgICBsb2FkUGFyYW1ldGVycy5w
YXJlbnRQSUQgPSBwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKTsKKyAgICBsb2FkUGFyYW1ldGVy
cy5uZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1
cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5uZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4oKTsK
ICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKICAgICBsb2FkUGFyYW1ldGVy
cy5jb250ZW50U25pZmZpbmdQb2xpY3kgPSBDb250ZW50U25pZmZpbmdQb2xpY3k6OlNuaWZmQ29u
dGVudDsKICAgICBsb2FkUGFyYW1ldGVycy5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSA9
IENvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpTbmlmZjsKQEAgLTYzMCw2ICs2MzIsNyBA
QCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzdGFydFBpbmdMb2FkKEZyCiAgICAgbG9hZFBhcmFt
ZXRlcnMuc291cmNlT3JpZ2luID0gJmRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpOwogICAgIGxv
YWRQYXJhbWV0ZXJzLnRvcE9yaWdpbiA9ICZkb2N1bWVudC0+dG9wT3JpZ2luKCk7CiAgICAgbG9h
ZFBhcmFtZXRlcnMucGFyZW50UElEID0gcHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7CisgICAg
bG9hZFBhcmFtZXRlcnMubmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuID0gV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkubmV0d29ya1Byb2Nlc3NB
dWRpdFRva2VuKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kg
PSBvcHRpb25zLmNyZWRlbnRpYWxzID09IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9taXQg
PyBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2UgOiBTdG9yZWRDcmVkZW50aWFsc1Bv
bGljeTo6VXNlOwogICAgIGxvYWRQYXJhbWV0ZXJzLm9wdGlvbnMgPSBvcHRpb25zOwogICAgIGxv
YWRQYXJhbWV0ZXJzLm9yaWdpbmFsUmVxdWVzdEhlYWRlcnMgPSBvcmlnaW5hbFJlcXVlc3RIZWFk
ZXJzOwpAQCAtNjkwLDYgKzY5Myw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnByZWNvbm5l
Y3RUbyhGcmEKICAgICBwYXJhbWV0ZXJzLndlYlBhZ2VJRCA9IHdlYlBhZ2UtPmlkZW50aWZpZXIo
KTsKICAgICBwYXJhbWV0ZXJzLndlYkZyYW1lSUQgPSB3ZWJGcmFtZS0+ZnJhbWVJRCgpOwogICAg
IHBhcmFtZXRlcnMucGFyZW50UElEID0gcHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7CisgICAg
cGFyYW1ldGVycy5uZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4gPSBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5uZXR3b3JrUHJvY2Vzc0F1ZGl0
VG9rZW4oKTsKICAgICBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gc3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3k7CiAgICAgcGFyYW1ldGVycy5zaG91bGRQcmVjb25uZWN0T25seSA9
IFByZWNvbm5lY3RPbmx5OjpZZXM7CiAgICAgcGFyYW1ldGVycy5zaG91bGRSZXN0cmljdEhUVFBS
ZXNwb25zZUFjY2VzcyA9IHNob3VsZFBlcmZvcm1TZWN1cml0eUNoZWNrcygpOwpJbmRleDogVG9v
bHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjUw
NjI4KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTktMTAtMDIgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAg
ICAgIFJFR1JFU1NJT04oMjQ5NjQ5KTogVW5hYmxlIHRvIG9wZW4gbG9jYWwgZmlsZXMgaW4gTWlu
aUJyb3dzZXIgb24gbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMTc5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZGVkIEFQSSB0ZXN0IFdLV2ViVmlldy5Mb2FkRmlsZVdpdGhMb2FkUmVxdWVz
dC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9hZEZpbGVV
UkwubW06CisKIDIwMTktMTAtMDIgIFRoaWJhdWx0IFNhdW5pZXIgIDx0c2F1bmllckBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtHU1RyZWFtZXJdIExldCBwbGF5YmluIGhhbmRsZSByZWRpcmVjdHMg
Zm9yIHVzIHdoZW4gYXBwcm9wcmlhdGUKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvTG9hZEZpbGVVUkwubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2FkRmlsZVVSTC5tbQkocmV2aXNpb24gMjUwNTMwKQor
KysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2FkRmlsZVVSTC5tbQko
d29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsMTcgQEAKICNpbXBvcnQgPFdlYktpdC9XZWJWaWV3
UHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCitURVNUKFdLV2ViVmlldywg
TG9hZEZpbGVXaXRoTG9hZFJlcXVlc3QpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAw
KV0pOworCisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0TmF2aWdhdGlvbkRlbGVn
YXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRl
bGVnYXRlLmdldCgpXTsKKworICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpA
InNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRB
UEkucmVzb3VyY2VzIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworICAg
IFtkZWxlZ2F0ZSB3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07Cit9CiAKIFRFU1QoV0tXZWJW
aWV3LCBMb2FkVHdvRmlsZXMpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380062</attachid>
            <date>2019-10-02 15:01:40 -0700</date>
            <delta_ts>2019-10-02 16:31:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201798-20191002150139.patch</filename>
            <type>text/plain</type>
            <size>29083</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTA2MjcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisyMDE5LTEwLTAyICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKDI0OTY0OSk6
IFVuYWJsZSB0byBvcGVuIGxvY2FsIGZpbGVzIGluIE1pbmlCcm93c2VyIG9uIG1hY09TCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE3OTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgY29tbWl0IDxo
dHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjQ5NjQ5PiBpbnRyb2R1Y2VkIGEgTWlu
aUJyb3dzZXIgcmVncmVzc2lvbiBvbiBtYWNPUyB3aGVyZSBNaW5pQnJvd3NlcgorICAgICAgICBp
cyBub3QgYWJsZSB0byBvcGVuIGxvY2FsIGZpbGVzLiBUaGUgY2hhbmdlIHNldCByMjQ5NjQ5IGZp
eGVkIGEgcHJvYmxlbSB3aGVyZSB0aGUgV2ViQ29udGVudCBwcm9jZXNzIFBJRCB3YXMgbm90IHJl
YWR5CisgICAgICAgIHRvIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBhIHNhbmRib3ggZXh0ZW5zaW9u
LiBUaGlzIGhhcHBlbmVkIGluIHRoZSBjYXNlcyB3aGVyZSB0aGUgV2ViQ29udGVudCBwcm9jZXNz
IGhhZCBub3QgZmluaXNoZWQKKyAgICAgICAgbGF1bmNoaW5nIHdoZW4gdGhlIGxvYWQgc3RhcnRl
ZC4gVGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBhbHNvIGNyZWF0aW5nIHNhbmRib3ggZXh0ZW5z
aW9ucyBmb3IgdGhlIE5ldHdvcmtpbmcgcHJvY2VzcworICAgICAgICBmb3IgdGhlIGZpbGVzIGJl
aW5nIGxvYWRlZCwgYW5kIGFsc28gbmVlZHMgdG8gYmUgcGFzc2luZyB0aGUgYXVkaXQgdG9rZW4g
b2YgdGhlIE5ldHdvcmtpbmcgcHJvY2VzcyB3aGVuIGNyZWF0aW5nIHRoZXNlLgorICAgICAgICBU
aGlzIHBhdGNoIGltcGxlbWVudHMgZ2V0dGluZyB0aGUgYXVkaXQgdG9rZW4gZm9yIHRoZSBOZXR3
b3JraW5nIHByb2Nlc3Mgd2hlbiB0aGUgV2ViUHJvY2VzcyBpcyBzZW5kaW5nIGEgbWVzc2FnZSB0
bworICAgICAgICB0aGUgVUkgcHJvY2VzcyB0byBlc3RhYmxpc2ggdGhlIE5ldHdvcmtpbmcgcHJv
Y2VzcyBjb25uZWN0aW9uLiBUaGUgYXVkaXQgdG9rZW4gaXMgc3RvcmVkIGluIHRoZSBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24KKyAgICAgICAgb2JqZWN0LCBhbmQgcGFzc2VkIHRvIHRoZSBOZXR3
b3JrTG9hZFBhcmFtZXRlcnMgb2JqZWN0IHdoZW4gdGhlIGxvYWQgaXMgc3RhcnRlZC4gRmluYWxs
eSwgd2hlbiBlbmNvZGluZyB0aGUgTmV0d29yaworICAgICAgICByZXNvdXJjZXMgbG9hZCBwYXJh
bWV0ZXJzLCB0aGUgYXVkaXQgdG9rZW4gaXMgdXNlZCB0byBjcmVhdGUgYW4gZXh0ZW5zaW9uIGZv
ciB0aGUgTmV0d29ya2luZyBwcm9jZXNzLgorCisgICAgICAgIEFQSSB0ZXN0OiBXS1dlYlZpZXcu
TG9hZEZpbGVXaXRoTG9hZFJlcXVlc3QKKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0Fy
Z3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxhdWRpdF90b2tl
bl90Pjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxhdWRpdF90b2tlbl90
Pjo6ZGVjb2RlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaDoKKyAg
ICAgICAgKiBTaGFyZWQvQ29jb2EvU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tOgorICAgICAgICAo
V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uSW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
U2FuZGJveEV4dGVuc2lvbkltcGw6OnNhbmRib3hFeHRlbnNpb25Gb3JUeXBlKToKKyAgICAgICAg
KFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbkltcGw6OlNhbmRib3hFeHRlbnNpb25JbXBsKToKKyAg
ICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1
cEJ5UGlkKToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxl
Rm9yUmVhZEJ5UGlkKToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
SGFuZGxlRm9yUmVhZEJ5QXVkaXRUb2tlbik6CisgICAgICAgICogU2hhcmVkL1NhbmRib3hFeHRl
bnNpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6b3Blbk5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmg6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6c2V0TmV0d29ya1By
b2Nlc3NBdWRpdFRva2VuKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uOjpuZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4gY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvOjppZGVudGlmaWVyKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbzo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbzo6ZGVjb2Rl
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkRnJvbU5ldHdv
cmtQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNv
dXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6
c3RhcnRQaW5nTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpwcmVj
b25uZWN0VG8pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6CisKIDIwMTktMTAt
MDIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBDTWFrZS1idWlsdCBXZWJLaXQuZnJhbWV3b3JrIHNob3VsZCBsYXVuY2ggWFBDIHNlcnZpY2Vz
IHN1Y2Nlc3NmdWxseQpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZFBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCShyZXZpc2lvbiAyNTA1MzApCisrKyBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCSh3b3JraW5nIGNv
cHkpCkBAIC00Niw2ICs0Niw5IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgd2ViRnJhbWVJRDsKICAgICBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IHRvcE9y
aWdpbjsKICAgICBXVEY6OlByb2Nlc3NJRCBwYXJlbnRQSUQgeyAwIH07CisjaWYgT1MoREFSV0lO
KQorICAgIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IG5ldHdvcmtQcm9jZXNzQXVkaXRUb2tlbjsK
KyNlbmRpZgogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0OwogICAgIFdlYkNv
cmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBjb250ZW50U25pZmZpbmdQb2xpY3kgeyBXZWJDb3Jl
OjpDb250ZW50U25pZmZpbmdQb2xpY3k6OlNuaWZmQ29udGVudCB9OwogICAgIFdlYkNvcmU6OkNv
bnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IGNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5
IHsgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3k6OlNuaWZmIH07CkluZGV4
OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gMjUwNTMwKQorKysgU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTY2LDcgKzY2LDE0IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnM6OmVuY28KIAogICAgIGlmIChyZXF1ZXN0LnVybCgpLmlzTG9jYWxGaWxlKCkp
IHsKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHJlcXVlc3RTYW5kYm94RXh0ZW5z
aW9uOworI2lmIEhBVkUoU0FOREJPWF9JU1NVRV9SRUFEX0VYVEVOU0lPTl9UT19QUk9DRVNTX0JZ
X1BJRCkKKyAgICAgICAgaWYgKG5ldHdvcmtQcm9jZXNzQXVkaXRUb2tlbikKKyAgICAgICAgICAg
IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRCeUF1ZGl0VG9rZW4ocmVxdWVz
dC51cmwoKS5maWxlU3lzdGVtUGF0aCgpLCAqbmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuLCByZXF1
ZXN0U2FuZGJveEV4dGVuc2lvbik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFNhbmRib3hF
eHRlbnNpb246OmNyZWF0ZUhhbmRsZShyZXF1ZXN0LnVybCgpLmZpbGVTeXN0ZW1QYXRoKCksIFNh
bmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRPbmx5LCByZXF1ZXN0U2FuZGJveEV4dGVuc2lvbik7
CisjZWxzZQogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUocmVxdWVzdC51
cmwoKS5maWxlU3lzdGVtUGF0aCgpLCBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpSZWFkT25seSwg
cmVxdWVzdFNhbmRib3hFeHRlbnNpb24pOworI2VuZGlmCiAgICAgICAgIGVuY29kZXIgPDwgcmVx
dWVzdFNhbmRib3hFeHRlbnNpb247CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCShyZXZpc2lvbiAyNTA1MzApCisrKyBTb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE4OCw0ICsxODgsMjEgQEAgYm9vbCBBcmd1bWVudENvZGVyPFNIQTE6OkRpZ2VzdD46OmRl
Y29kZQogICAgIHJldHVybiBkZWNvZGVyLmRlY29kZUZpeGVkTGVuZ3RoRGF0YShkaWdlc3QuZGF0
YSgpLCBzaXplb2YoZGlnZXN0KSwgMSk7CiB9CiAKKyNpZiBPUyhEQVJXSU4pCit2b2lkIEFyZ3Vt
ZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBh
dWRpdF90b2tlbl90JiBhdWRpdFRva2VuKQoreworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBXVEZfQVJSQVlfTEVOR1RIKGF1ZGl0VG9rZW4udmFsKTsgaSsrKQorICAgICAgICBlbmNvZGVy
IDw8IGF1ZGl0VG9rZW4udmFsW2ldOworfQorCitib29sIEFyZ3VtZW50Q29kZXI8YXVkaXRfdG9r
ZW5fdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBhdWRpdF90b2tlbl90JiBhdWRpdFRva2Vu
KQoreworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGF1ZGl0
VG9rZW4udmFsKTsgaSsrKSB7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXVkaXRUb2tl
bi52YWxbaV0pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4g
dHJ1ZTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBJUEMKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAkocmV2aXNpb24gMjUwNTMwKQorKysg
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAkod29ya2luZyBjb3B5
KQpAQCAtNjIxLDQgKzYyMSwxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFNI
QTE6OkRpCiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBTSEExOjpEaWdlc3QmKTsK
IH07CiAKKyNpZiBPUyhEQVJXSU4pCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPGF1
ZGl0X3Rva2VuX3Q+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IGF1
ZGl0X3Rva2VuX3QmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIGF1ZGl0X3Rv
a2VuX3QmKTsKK307CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgSVBDCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oCShyZXZpc2lvbiAyNTA1MzApCisrKyBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5
LDcgKzQ5LDcgQEAgcHVibGljOgogICAgICAgICBSZWFkV3JpdGUsCiAgICAgICAgIE1hY2gsCiAg
ICAgICAgIEdlbmVyaWMsCi0gICAgICAgIFJlYWRCeVBpZAorICAgICAgICBSZWFkQnlQcm9jZXNz
CiAgICAgfTsKIAogICAgIGNsYXNzIEhhbmRsZSB7CkBAIC0xMDYsNiArMTA2LDkgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBib29sIGNyZWF0ZUhhbmRsZUZvckdlbmVyaWNFeHRlbnNpb24oY29uc3Qg
U3RyaW5nJiBleHRlbnNpb25DbGFzcywgSGFuZGxlJik7CiAgICAgc3RhdGljIGJvb2wgY3JlYXRl
SGFuZGxlRm9yTWFjaExvb2t1cEJ5UGlkKGNvbnN0IFN0cmluZyYgc2VydmljZSwgUHJvY2Vzc0lE
LCBIYW5kbGUmKTsKICAgICBzdGF0aWMgYm9vbCBjcmVhdGVIYW5kbGVGb3JSZWFkQnlQaWQoY29u
c3QgU3RyaW5nJiBwYXRoLCBQcm9jZXNzSUQsIEhhbmRsZSYpOworI2lmIE9TKERBUldJTikKKyAg
ICBzdGF0aWMgYm9vbCBjcmVhdGVIYW5kbGVGb3JSZWFkQnlBdWRpdFRva2VuKGNvbnN0IFN0cmlu
ZyYgcGF0aCwgYXVkaXRfdG9rZW5fdCwgSGFuZGxlJik7CisjZW5kaWYKICAgICB+U2FuZGJveEV4
dGVuc2lvbigpOwogCiAgICAgYm9vbCBjb25zdW1lKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1No
YXJlZC9Db2NvYS9TYW5kYm94RXh0ZW5zaW9uQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9TaGFyZWQvQ29jb2EvU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tCShyZXZpc2lvbiAy
NTA1MzApCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9TYW5kYm94RXh0ZW5zaW9uQ29j
b2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIkRlY29kZXIu
aCIKICNpbXBvcnQgIkVuY29kZXIuaCIKICNpbXBvcnQgPHd0Zi9GaWxlU3lzdGVtLmg+CisjaW1w
b3J0IDx3dGYvVmFyaWFudC5oPgogI2ltcG9ydCA8d3RmL3NwaS9kYXJ3aW4vU2FuZGJveFNQSS5o
PgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC00MCw5ICs0MSw5IEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogY2xhc3MgU2FuZGJveEV4dGVuc2lvbkltcGwgewogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U2Fu
ZGJveEV4dGVuc2lvbkltcGw+IGNyZWF0ZShjb25zdCBjaGFyKiBwYXRoLCBTYW5kYm94RXh0ZW5z
aW9uOjpUeXBlIHR5cGUsIE9wdGlvbmFsPHBpZF90PiBwaWQgPSBXVEY6Om51bGxvcHQpCisgICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTYW5kYm94RXh0ZW5zaW9uSW1wbD4gY3JlYXRlKGNvbnN0
IGNoYXIqIHBhdGgsIFNhbmRib3hFeHRlbnNpb246OlR5cGUgdHlwZSwgT3B0aW9uYWw8VmFyaWFu
dDxwaWRfdCwgYXVkaXRfdG9rZW5fdD4+IHByb2Nlc3MgPSBXVEY6Om51bGxvcHQpCiAgICAgewot
ICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2FuZGJveEV4dGVuc2lvbkltcGw+IGltcGwgeyBuZXcg
U2FuZGJveEV4dGVuc2lvbkltcGwocGF0aCwgdHlwZSwgcGlkKSB9OworICAgICAgICBzdGQ6OnVu
aXF1ZV9wdHI8U2FuZGJveEV4dGVuc2lvbkltcGw+IGltcGwgeyBuZXcgU2FuZGJveEV4dGVuc2lv
bkltcGwocGF0aCwgdHlwZSwgcHJvY2VzcykgfTsKICAgICAgICAgaWYgKCFpbXBsLT5tX3Rva2Vu
KQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHJldHVybiBpbXBsOwpAQCAt
ODQsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIGNoYXIqIHNhbmRi
b3hFeHRlbnNpb25Gb3JUeXBlKGNvbnN0IGNoYXIqIHBhdGgsIFNhbmRib3hFeHRlbnNpb246OlR5
cGUgdHlwZSwgT3B0aW9uYWw8cGlkX3Q+IHBpZCA9IFdURjo6bnVsbG9wdCkKKyAgICBjaGFyKiBz
YW5kYm94RXh0ZW5zaW9uRm9yVHlwZShjb25zdCBjaGFyKiBwYXRoLCBTYW5kYm94RXh0ZW5zaW9u
OjpUeXBlIHR5cGUsIE9wdGlvbmFsPFZhcmlhbnQ8cGlkX3QsIGF1ZGl0X3Rva2VuX3Q+PiBwcm9j
ZXNzKQogICAgIHsKICAgICAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgICAgIGNhc2UgU2FuZGJv
eEV4dGVuc2lvbjo6VHlwZTo6UmVhZE9ubHk6CkBAIC05Myw3ICs5NCwxMSBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgcmV0dXJuIHNhbmRib3hfZXh0ZW5zaW9uX2lzc3VlX2ZpbGUoQVBQX1NBTkRC
T1hfUkVBRF9XUklURSwgcGF0aCwgMCk7CiAgICAgICAgIGNhc2UgU2FuZGJveEV4dGVuc2lvbjo6
VHlwZTo6TWFjaDoKICNpZiBIQVZFKFNBTkRCT1hfSVNTVUVfTUFDSF9FWFRFTlNJT05fVE9fUFJP
Q0VTU19CWV9QSUQpCi0gICAgICAgICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNzdWVf
bWFjaF90b19wcm9jZXNzX2J5X3BpZCgiY29tLmFwcGxlLndlYmtpdC5leHRlbnNpb24ubWFjaCJf
cywgcGF0aCwgMCwgcGlkLnZhbHVlKCkpOworICAgICAgICAgICAgaWYgKCFwcm9jZXNzKQorICAg
ICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgaWYgKCFXVEY6OmhvbGRz
X2FsdGVybmF0aXZlPHBpZF90PigqcHJvY2VzcykpCisgICAgICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgICAgICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNzdWVfbWFjaF90
b19wcm9jZXNzX2J5X3BpZCgiY29tLmFwcGxlLndlYmtpdC5leHRlbnNpb24ubWFjaCJfcywgcGF0
aCwgMCwgV1RGOjpnZXQ8cGlkX3Q+KCpwcm9jZXNzKSk7CiAjZWxzZQogICAgICAgICAgICAgVU5V
U0VEX1BBUkFNKHBpZCk7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTEw
MSw5ICsxMDYsMTUgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgICAgICBjYXNlIFNhbmRib3hFeHRl
bnNpb246OlR5cGU6OkdlbmVyaWM6CiAgICAgICAgICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNp
b25faXNzdWVfZ2VuZXJpYyhwYXRoLCAwKTsKLSAgICAgICAgY2FzZSBTYW5kYm94RXh0ZW5zaW9u
OjpUeXBlOjpSZWFkQnlQaWQ6CisgICAgICAgIGNhc2UgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6
UmVhZEJ5UHJvY2VzczoKICNpZiBIQVZFKFNBTkRCT1hfSVNTVUVfUkVBRF9FWFRFTlNJT05fVE9f
UFJPQ0VTU19CWV9QSUQpCi0gICAgICAgICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNz
dWVfZmlsZV90b19wcm9jZXNzX2J5X3BpZChBUFBfU0FOREJPWF9SRUFELCBwYXRoLCBTQU5EQk9Y
X0VYVEVOU0lPTl9VU0VSX0lOVEVOVCwgcGlkLnZhbHVlKCkpOworICAgICAgICAgICAgaWYgKCFw
cm9jZXNzKQorICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgaWYg
KFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8cGlkX3Q+KCpwcm9jZXNzKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNzdWVfZmlsZV90b19wcm9jZXNzX2J5X3BpZChB
UFBfU0FOREJPWF9SRUFELCBwYXRoLCBTQU5EQk9YX0VYVEVOU0lPTl9VU0VSX0lOVEVOVCwgV1RG
OjpnZXQ8cGlkX3Q+KCpwcm9jZXNzKSk7CisgICAgICAgICAgICBpZiAoV1RGOjpob2xkc19hbHRl
cm5hdGl2ZTxhdWRpdF90b2tlbl90PigqcHJvY2VzcykpCisgICAgICAgICAgICAgICAgcmV0dXJu
IHNhbmRib3hfZXh0ZW5zaW9uX2lzc3VlX2ZpbGVfdG9fcHJvY2VzcyhBUFBfU0FOREJPWF9SRUFE
LCBwYXRoLCBTQU5EQk9YX0VYVEVOU0lPTl9VU0VSX0lOVEVOVCwgV1RGOjpnZXQ8YXVkaXRfdG9r
ZW5fdD4oKnByb2Nlc3MpKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogI2Vsc2UKICAg
ICAgICAgICAgIFVOVVNFRF9QQVJBTShwaWQpOwogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CkBAIC0xMTIsOCArMTIzLDggQEAgcHJpdmF0ZToKICAgICAgICAgfQogICAgIH0KIAot
ICAgIFNhbmRib3hFeHRlbnNpb25JbXBsKGNvbnN0IGNoYXIqIHBhdGgsIFNhbmRib3hFeHRlbnNp
b246OlR5cGUgdHlwZSwgT3B0aW9uYWw8cGlkX3Q+IHBpZCA9IFdURjo6bnVsbG9wdCkKLSAgICAg
ICAgOiBtX3Rva2VuIHsgc2FuZGJveEV4dGVuc2lvbkZvclR5cGUocGF0aCwgdHlwZSwgcGlkKSB9
CisgICAgU2FuZGJveEV4dGVuc2lvbkltcGwoY29uc3QgY2hhciogcGF0aCwgU2FuZGJveEV4dGVu
c2lvbjo6VHlwZSB0eXBlLCBPcHRpb25hbDxWYXJpYW50PHBpZF90LCBhdWRpdF90b2tlbl90Pj4g
cHJvY2VzcykKKyAgICAgICAgOiBtX3Rva2VuIHsgc2FuZGJveEV4dGVuc2lvbkZvclR5cGUocGF0
aCwgdHlwZSwgcHJvY2VzcykgfQogICAgIHsKICAgICB9CiAKQEAgLTMzNiw3ICszNDcsOCBAQCBi
b29sIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hCiB7CiAgICAgQVNTRVJUKCFo
YW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uKTsKICAgICAKLSAgICBoYW5kbGUubV9zYW5kYm94RXh0
ZW5zaW9uID0gU2FuZGJveEV4dGVuc2lvbkltcGw6OmNyZWF0ZShzZXJ2aWNlLnV0ZjgoKS5kYXRh
KCksIFR5cGU6Ok1hY2gsIHBpZCk7CisgICAgVmFyaWFudDxwaWRfdCwgYXVkaXRfdG9rZW5fdD4g
cHJvY2VzcyhwaWQpOworICAgIGhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24gPSBTYW5kYm94RXh0
ZW5zaW9uSW1wbDo6Y3JlYXRlKHNlcnZpY2UudXRmOCgpLmRhdGEoKSwgVHlwZTo6TWFjaCwgV1RG
TW92ZShwcm9jZXNzKSk7CiAgICAgaWYgKCFoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uKSB7CiAg
ICAgICAgIFdURkxvZ0Fsd2F5cygiQ291bGQgbm90IGNyZWF0ZSBhICclcycgc2FuZGJveCBleHRl
bnNpb24iLCBzZXJ2aWNlLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBA
IC0zNTIsNyArMzY0LDIyIEBAIGJvb2wgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9y
UmUKICAgICBpZiAoIXBpZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaGFuZGxlLm1f
c2FuZGJveEV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb25JbXBsOjpjcmVhdGUocGF0aC51dGY4
KCkuZGF0YSgpLCBUeXBlOjpSZWFkQnlQaWQsIHBpZCk7CisgICAgVmFyaWFudDxwaWRfdCwgYXVk
aXRfdG9rZW5fdD4gcHJvY2VzcyhwaWQpOworICAgIGhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24g
PSBTYW5kYm94RXh0ZW5zaW9uSW1wbDo6Y3JlYXRlKHBhdGgudXRmOCgpLmRhdGEoKSwgVHlwZTo6
UmVhZEJ5UHJvY2VzcywgV1RGTW92ZShwcm9jZXNzKSk7CisgICAgaWYgKCFoYW5kbGUubV9zYW5k
Ym94RXh0ZW5zaW9uKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiQ291bGQgbm90IGNyZWF0ZSBz
YW5kYm94IGV4dGVuc2lvbiIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAor
ICAgIHJldHVybiB0cnVlOworfQorCitib29sIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRs
ZUZvclJlYWRCeUF1ZGl0VG9rZW4oY29uc3QgU3RyaW5nJiBwYXRoLCBhdWRpdF90b2tlbl90IGF1
ZGl0VG9rZW4sIEhhbmRsZSYgaGFuZGxlKQoreworICAgIEFTU0VSVCghaGFuZGxlLm1fc2FuZGJv
eEV4dGVuc2lvbik7CisKKyAgICBWYXJpYW50PHBpZF90LCBhdWRpdF90b2tlbl90PiBwcm9jZXNz
KGF1ZGl0VG9rZW4pOworICAgIGhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24gPSBTYW5kYm94RXh0
ZW5zaW9uSW1wbDo6Y3JlYXRlKHBhdGgudXRmOCgpLmRhdGEoKSwgVHlwZTo6UmVhZEJ5UHJvY2Vz
cywgV1RGTW92ZShwcm9jZXNzKSk7CiAgICAgaWYgKCFoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9u
KSB7CiAgICAgICAgIFdURkxvZ0Fsd2F5cygiQ291bGQgbm90IGNyZWF0ZSBzYW5kYm94IGV4dGVu
c2lvbiIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNTA1
MzApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4JKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vz
c1Byb3h5IExlZ2FjeVJlY2VpdgogICAgIEdldFBsdWdpbnMoYm9vbCByZWZyZXNoKSAtPiAoVmVj
dG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+IHBsdWdpbnMsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5J
bmZvPiBhcHBsaWNhdGlvblBsdWdpbnMsIHN0cnVjdCBPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6
U3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcj4+IHN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXJzKSBT
eW5jaHJvbm91cwogICAgIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKHVpbnQ2NF90IHBsdWdp
blByb2Nlc3NUb2tlbikgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlLCBib29s
IHN1cHBvcnRzQXN5bmNocm9ub3VzSW5pdGlhbGl6YXRpb24pIFN5bmNocm9ub3VzCiAjZW5kaWYK
LSAgICBHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKSAtPiAoSVBDOjpBdHRhY2htZW50IGNv
bm5lY3Rpb25IYW5kbGUpIFN5bmNocm9ub3VzCisgICAgR2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uKCkgLT4gKHN0cnVjdCBXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8gY29u
bmVjdGlvbkluZm8pIFN5bmNocm9ub3VzCiAgICAgUHJvY2Vzc1JlYWR5VG9TdXNwZW5kKCkKICAg
ICBEaWRDYW5jZWxQcm9jZXNzU3VzcGVuc2lvbigpCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAkocmV2
aXNpb24gMjUwNTMwKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2VuZGlm
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb250ZW50UnVsZUxpc3RN
YW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZv
LmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNs
dWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lv
bi5oIgpAQCAtMTU4LDEwICsxNTksMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpvcGVu
TmV0d29ya1BybwogICAgICAgICBhdXRvIHJlcXVlc3QgPSBtX2Nvbm5lY3Rpb25SZXF1ZXN0cy50
YWtlKGNvbm5lY3Rpb25SZXF1ZXN0SWRlbnRpZmllcik7CiAKICNpZiBVU0UoVU5JWF9ET01BSU5f
U09DS0VUUykgfHwgT1MoV0lORE9XUykKLSAgICAgICAgcmVxdWVzdC5yZXBseSgqY29ubmVjdGlv
bklkZW50aWZpZXIpOworICAgICAgICByZXF1ZXN0LnJlcGx5KE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbkluZm8geyAqY29ubmVjdGlvbklkZW50aWZpZXIgfSk7CiAjZWxpZiBPUyhEQVJXSU4pCiAg
ICAgICAgIE1FU1NBR0VfQ0hFQ0soTUFDSF9QT1JUX1ZBTElEKGNvbm5lY3Rpb25JZGVudGlmaWVy
LT5wb3J0KCkpKTsKLSAgICAgICAgcmVxdWVzdC5yZXBseShJUEM6OkF0dGFjaG1lbnQgeyBjb25u
ZWN0aW9uSWRlbnRpZmllci0+cG9ydCgpLCBNQUNIX01TR19UWVBFX01PVkVfU0VORCB9KTsKKyAg
ICAgICAgcmVxdWVzdC5yZXBseShOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsgSVBDOjpB
dHRhY2htZW50IHsgY29ubmVjdGlvbklkZW50aWZpZXItPnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9N
T1ZFX1NFTkQgfSwgY29ubmVjdGlvbigpLT5nZXRBdWRpdFRva2VuKCkgfSk7CiAjZWxzZQogICAg
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1MDUzMCkKKysrIFNv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTQ3MDAsNiArNDcwMCw3IEBACiAJCUUxRTU1MkMzMTZBRTA2NUUwMDRFRDY1MyAvKiBT
YW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8qIEluamVjdGVkQnVu
ZGxlUGFnZUVkaXRvckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTFFRTUzRTYxMUY4Q0ZGQjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRv
ckNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3Rl
ZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMzQzOUI2MzIzNDU0NjNBMDAxMURFMEIgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5m
by5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmg7IHBhdGgg
PSBOZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzAyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGVyUGFpck1h
Yy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxlclBhaXJNYWMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzEyMURFNjVGNzAwMzdGMERCIC8q
IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZVJlbW90ZU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDcyMjFE
RTY1RjcwMDM3RjBEQiAvKiBTY3JvbGxlclBhaXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxlclBhaXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC02NzAwLDYgKzY3MDEsNyBAQAogCQkJCTUxMDVCMEQ0MTYyRjdBN0EwMEUy
NzcwOSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovLAogCQkJCTUxMDVCMEQ1MTYy
RjdBN0EwMEUyNzcwOSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLywKIAkJCQk1MUZC
MDkwMjE2M0EzQjFDMDBFQzMyNEEgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluICovLAorCQkJCUUzNDM5QjYzMjM0NTQ2M0EwMDExREUwQiAvKiBOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb25JbmZvLmggKi8sCiAJCQkJNTFBQkY2NTYxNjM5MkYxNTAwMTMyQTdBIC8qIFdlYkxv
YWRlclN0cmF0ZWd5LmNwcCAqLywKIAkJCQk1MUFCRjY1NzE2MzkyRjE1MDAxMzJBN0EgLyogV2Vi
TG9hZGVyU3RyYXRlZ3kuaCAqLywKIAkJCQlBNTg2MEU2RjIzMEY2N0RFMDA0NjFBQUUgLyogV2Vi
UmVzb3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmNwcCAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDI1MDUzMCkKKysrIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgs
NyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
LmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtTZXNzaW9uLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnMuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCIKQEAg
LTExMzcsMTAgKzExMzgsMTAgQEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRJbmplY3RlZEJ1bmRsZVBh
cmFtZQogICAgIGluamVjdGVkQnVuZGxlLT5zZXRCdW5kbGVQYXJhbWV0ZXJzKHZhbHVlKTsKIH0K
IAotc3RhdGljIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBnZXROZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQorc3RhdGljIE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbkluZm8gZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbikKIHsKLSAgICBJUEM6OkF0dGFjaG1lbnQgZW5jb2RlZENvbm5lY3Rp
b25JZGVudGlmaWVyOwotICAgIGlmICghY29ubmVjdGlvbi5zZW5kU3luYyhNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKSwgTWVzc2FnZXM6Oldl
YlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpSZXBseShlbmNvZGVk
Q29ubmVjdGlvbklkZW50aWZpZXIpLCAwKSkgeworICAgIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bkluZm8gY29ubmVjdGlvbkluZm87CisgICAgaWYgKCFjb25uZWN0aW9uLnNlbmRTeW5jKE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLCBNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OlJlcGx5
KGNvbm5lY3Rpb25JbmZvKSwgMCkpIHsKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQ
RSkKICAgICAgICAgLy8gR1RLKyBhbmQgV1BFIHBvcnRzIGRvbid0IGV4aXQgb24gc2VuZCBzeW5j
IG1lc3NhZ2UgZmFpbHVyZS4KICAgICAgICAgLy8gSW4gdGhpcyBwYXJ0aWN1bGFyIGNhc2UsIHRo
ZSBuZXR3b3JrIHByb2Nlc3MgY2FuIGJlIHRlcm1pbmF0ZWQgYnkgdGhlIFVJIHByb2Nlc3Mgd2hp
bGUgdGhlCkBAIC0xMTUzLDE2ICsxMTU0LDcgQEAgc3RhdGljIElQQzo6Q29ubmVjdGlvbjo6SWRl
bnRpZmllciBnZXROZQogI2VuZGlmCiAgICAgfQogCi0jaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tF
VFMpCi0gICAgcmV0dXJuIGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5yZWxlYXNlRmlsZURl
c2NyaXB0b3IoKTsKLSNlbGlmIE9TKERBUldJTikKLSAgICByZXR1cm4gZW5jb2RlZENvbm5lY3Rp
b25JZGVudGlmaWVyLnBvcnQoKTsKLSNlbGlmIE9TKFdJTkRPV1MpCi0gICAgcmV0dXJuIGVuY29k
ZWRDb25uZWN0aW9uSWRlbnRpZmllci5oYW5kbGUoKTsKLSNlbHNlCi0gICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgcmV0dXJuIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcigpOwotI2Vu
ZGlmCisgICAgcmV0dXJuIGNvbm5lY3Rpb25JbmZvOwogfQogCiBOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24mIFdlYlByb2Nlc3M6OmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpCkBAIC0x
MTcyLDE3ICsxMTY0LDIwIEBAIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiYgV2ViUHJvY2Vzczo6
ZW4KIAogICAgIC8vIElmIHdlJ3ZlIGxvc3Qgb3VyIGNvbm5lY3Rpb24gdG8gdGhlIG5ldHdvcmsg
cHJvY2VzcyAoZS5nLiBpdCBjcmFzaGVkKSB0cnkgdG8gcmUtZXN0YWJsaXNoIGl0LgogICAgIGlm
ICghbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pIHsKLSAgICAgICAgSVBDOjpDb25uZWN0aW9u
OjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gZ2V0TmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uKCpwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpKTsKKyAgICAgICAgYXV0byBjb25uZWN0
aW9uSW5mbyA9IGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigqcGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKSk7CiAKICAgICAgICAgLy8gUmV0cnkgb25jZSBpZiB0aGUgSVBDIHRvIGdldCB0aGUg
Y29ubmVjdGlvbklkZW50aWZpZXIgc3VjY2VlZGVkIGJ1dCB0aGUgY29ubmVjdGlvbklkZW50aWZp
ZXIgd2UgcmVjZWl2ZWQKICAgICAgICAgLy8gaXMgaW52YWxpZC4gVGhpcyBtYXkgaW5kaWNhdGUg
dGhhdCB0aGUgbmV0d29yayBwcm9jZXNzIGhhcyBjcmFzaGVkLgotICAgICAgICBpZiAoIUlQQzo6
Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbklkZW50aWZpZXIpKQotICAg
ICAgICAgICAgY29ubmVjdGlvbklkZW50aWZpZXIgPSBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24oKnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkpOworICAgICAgICBpZiAoIUlQQzo6Q29ubmVj
dGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbkluZm8uaWRlbnRpZmllcigpKSkKKyAg
ICAgICAgICAgIGNvbm5lY3Rpb25JbmZvID0gZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCpw
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpKTsKIAotICAgICAgICBpZiAoIUlQQzo6Q29ubmVjdGlv
bjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbklkZW50aWZpZXIpKQorICAgICAgICBpZiAo
IUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbkluZm8uaWRlbnRp
ZmllcigpKSkKICAgICAgICAgICAgIENSQVNIKCk7CiAKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24gPSBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShjb25uZWN0aW9u
SWRlbnRpZmllcik7CisgICAgICAgIG1fbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uID0gTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoY29ubmVjdGlvbkluZm8uaWRlbnRpZmllcigpKTsK
KyNpZiBPUyhEQVJXSU4pCisgICAgICAgIG1fbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLT5zZXRO
ZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4oV1RGTW92ZShjb25uZWN0aW9uSW5mby5hdWRpdFRva2Vu
KSk7CisjZW5kaWYKICAgICB9CiAgICAgCiAgICAgcmV0dXJuICptX25ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCShyZXZpc2lvbiAyNTA1MzApCisr
KyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24uaAkod29ya2luZyBjb3B5KQpAQCAtNzYsNiArNzYsMTEgQEAgcHVibGljOgogICAgIFdlYlNX
Q2xpZW50Q29ubmVjdGlvbiYgc2VydmljZVdvcmtlckNvbm5lY3Rpb24oKTsKICNlbmRpZgogCisj
aWYgT1MoREFSV0lOKQorICAgIHZvaWQgc2V0TmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuKE9wdGlv
bmFsPGF1ZGl0X3Rva2VuX3Q+IGF1ZGl0VG9rZW4pIHsgbV9uZXR3b3JrUHJvY2Vzc0F1ZGl0VG9r
ZW4gPSBhdWRpdFRva2VuOyB9CisgICAgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4gbmV0d29ya1By
b2Nlc3NBdWRpdFRva2VuKCkgY29uc3QgeyByZXR1cm4gbV9uZXR3b3JrUHJvY2Vzc0F1ZGl0VG9r
ZW47IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihJ
UEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwogCkBAIC05OSw2ICsxMDQsOSBAQCBwcml2YXRl
OgogCiAgICAgLy8gVGhlIGNvbm5lY3Rpb24gZnJvbSB0aGUgd2ViIHByb2Nlc3MgdG8gdGhlIG5l
dHdvcmsgcHJvY2Vzcy4KICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Cisj
aWYgT1MoREFSV0lOKQorICAgIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IG1fbmV0d29ya1Byb2Nl
c3NBdWRpdFRva2VuOworI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAg
ICBSZWZQdHI8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPiBtX3dlYklEQkNvbm5lY3Rpb247Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb25JbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oCShub25leGlzdGVudCkKKysrIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8u
aAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcwIEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworc3RydWN0IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8geworICAgIElQQzo6QXR0
YWNobWVudCBjb25uZWN0aW9uOworI2lmIE9TKERBUldJTikKKyAgICBPcHRpb25hbDxhdWRpdF90
b2tlbl90PiBhdWRpdFRva2VuOworI2VuZGlmCisKKyAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50
aWZpZXIgaWRlbnRpZmllcigpCisgICAgeworI2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQor
ICAgICAgICByZXR1cm4gSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKGNvbm5lY3Rpb24ucmVs
ZWFzZUZpbGVEZXNjcmlwdG9yKCkpOworI2VsaWYgT1MoREFSV0lOKQorICAgICAgICByZXR1cm4g
SVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKGNvbm5lY3Rpb24ucG9ydCgpKTsKKyNlbGlmIE9T
KFdJTkRPV1MpCisgICAgICAgIHJldHVybiBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIoY29u
bmVjdGlvbi5oYW5kbGUoKSk7CisjZWxzZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgcmV0dXJuIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcigpOworI2VuZGlmCisg
ICAgfQorICAgIAorICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
KyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgY29ubmVjdGlvbjsKKyNpZiBPUyhEQVJXSU4pCisg
ICAgICAgIGVuY29kZXIgPDwgYXVkaXRUb2tlbjsKKyNlbmRpZgorICAgIH0KKyAgICAKKyAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb25JbmZvJiBpbmZvKQorICAgIHsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShp
bmZvLmNvbm5lY3Rpb24pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworI2lmIE9TKERBUldJ
TikKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmF1ZGl0VG9rZW4pKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
K307CisKK307CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2Fk
ZXJTdHJhdGVneS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCShyZXZpc2lvbiAyNTA1MzApCisrKyBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4Niw2ICsyODYsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVs
ZUxvYWRGcm9tCiAgICAgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlEID0gdHJhY2tpbmdQYXJhbWV0
ZXJzLnBhZ2VJRDsKICAgICBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlEID0gdHJhY2tpbmdQYXJh
bWV0ZXJzLmZyYW1lSUQ7CiAgICAgbG9hZFBhcmFtZXRlcnMucGFyZW50UElEID0gcHJlc2VudGlu
Z0FwcGxpY2F0aW9uUElEKCk7CisgICAgbG9hZFBhcmFtZXRlcnMubmV0d29ya1Byb2Nlc3NBdWRp
dFRva2VuID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uKCkubmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMu
cmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgbG9hZFBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9s
aWN5ID0gY29udGVudFNuaWZmaW5nUG9saWN5OwogICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRF
bmNvZGluZ1NuaWZmaW5nUG9saWN5ID0gY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3k7CkBA
IC01NjEsNiArNTYyLDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3lu
YwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRCA9IHBhZ2VJRDsKICAgICBsb2FkUGFyYW1l
dGVycy53ZWJGcmFtZUlEID0gZnJhbWVJRDsKICAgICBsb2FkUGFyYW1ldGVycy5wYXJlbnRQSUQg
PSBwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKTsKKyAgICBsb2FkUGFyYW1ldGVycy5uZXR3b3Jr
UHJvY2Vzc0F1ZGl0VG9rZW4gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24oKS5uZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4oKTsKICAgICBsb2Fk
UGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKICAgICBsb2FkUGFyYW1ldGVycy5jb250ZW50
U25pZmZpbmdQb2xpY3kgPSBDb250ZW50U25pZmZpbmdQb2xpY3k6OlNuaWZmQ29udGVudDsKICAg
ICBsb2FkUGFyYW1ldGVycy5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSA9IENvbnRlbnRF
bmNvZGluZ1NuaWZmaW5nUG9saWN5OjpTbmlmZjsKQEAgLTYzMCw2ICs2MzIsNyBAQCB2b2lkIFdl
YkxvYWRlclN0cmF0ZWd5OjpzdGFydFBpbmdMb2FkKEZyCiAgICAgbG9hZFBhcmFtZXRlcnMuc291
cmNlT3JpZ2luID0gJmRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpOwogICAgIGxvYWRQYXJhbWV0
ZXJzLnRvcE9yaWdpbiA9ICZkb2N1bWVudC0+dG9wT3JpZ2luKCk7CiAgICAgbG9hZFBhcmFtZXRl
cnMucGFyZW50UElEID0gcHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7CisgICAgbG9hZFBhcmFt
ZXRlcnMubmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkubmV0d29ya1Byb2Nlc3NBdWRpdFRva2Vu
KCk7CiAgICAgbG9hZFBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBvcHRpb25z
LmNyZWRlbnRpYWxzID09IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9taXQgPyBTdG9yZWRD
cmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2UgOiBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNl
OwogICAgIGxvYWRQYXJhbWV0ZXJzLm9wdGlvbnMgPSBvcHRpb25zOwogICAgIGxvYWRQYXJhbWV0
ZXJzLm9yaWdpbmFsUmVxdWVzdEhlYWRlcnMgPSBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzOwpAQCAt
NjkwLDYgKzY5Myw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnByZWNvbm5lY3RUbyhGcmEK
ICAgICBwYXJhbWV0ZXJzLndlYlBhZ2VJRCA9IHdlYlBhZ2UtPmlkZW50aWZpZXIoKTsKICAgICBw
YXJhbWV0ZXJzLndlYkZyYW1lSUQgPSB3ZWJGcmFtZS0+ZnJhbWVJRCgpOwogICAgIHBhcmFtZXRl
cnMucGFyZW50UElEID0gcHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7CisgICAgcGFyYW1ldGVy
cy5uZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1
cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5uZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4oKTsK
ICAgICBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3k7CiAgICAgcGFyYW1ldGVycy5zaG91bGRQcmVjb25uZWN0T25seSA9IFByZWNvbm5l
Y3RPbmx5OjpZZXM7CiAgICAgcGFyYW1ldGVycy5zaG91bGRSZXN0cmljdEhUVFBSZXNwb25zZUFj
Y2VzcyA9IHNob3VsZFBlcmZvcm1TZWN1cml0eUNoZWNrcygpOwpJbmRleDogVG9vbHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjUwNjI4KQorKysg
VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMTAt
MDIgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JF
U1NJT04oMjQ5NjQ5KTogVW5hYmxlIHRvIG9wZW4gbG9jYWwgZmlsZXMgaW4gTWluaUJyb3dzZXIg
b24gbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMTc5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZGVkIEFQSSB0ZXN0IFdLV2ViVmlldy5Mb2FkRmlsZVdpdGhMb2FkUmVxdWVzdC4KKworICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9hZEZpbGVVUkwubW06CisK
IDIwMTktMTAtMDIgIFRoaWJhdWx0IFNhdW5pZXIgIDx0c2F1bmllckBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHU1RyZWFtZXJdIExldCBwbGF5YmluIGhhbmRsZSByZWRpcmVjdHMgZm9yIHVzIHdo
ZW4gYXBwcm9wcmlhdGUKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvTG9hZEZpbGVVUkwubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Mb2FkRmlsZVVSTC5tbQkocmV2aXNpb24gMjUwNTMwKQorKysgVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2FkRmlsZVVSTC5tbQkod29ya2luZyBj
b3B5KQpAQCAtMzIsNiArMzIsMTcgQEAKICNpbXBvcnQgPFdlYktpdC9XZWJWaWV3UHJpdmF0ZS5o
PgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCitURVNUKFdLV2ViVmlldywgTG9hZEZpbGVX
aXRoTG9hZFJlcXVlc3QpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisg
ICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdl
dCgpXTsKKworICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVz
dFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIg
d2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworICAgIFtkZWxlZ2F0
ZSB3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07Cit9CiAKIFRFU1QoV0tXZWJWaWV3LCBMb2Fk
VHdvRmlsZXMpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380069</attachid>
            <date>2019-10-02 16:31:14 -0700</date>
            <delta_ts>2019-10-03 09:18:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201798-20191002163112.patch</filename>
            <type>text/plain</type>
            <size>31000</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTA2MzUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE5LTEwLTAyICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKDI0OTY0OSk6IFVuYWJsZSB0
byBvcGVuIGxvY2FsIGZpbGVzIGluIE1pbmlCcm93c2VyIG9uIG1hY09TCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE3OTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgSEFWRV9BVURJVF9UT0tFTiBh
bmQgU0FOREJPWF9JU1NVRV9SRUFEX0VYVEVOU0lPTl9UT19QUk9DRVNTX0JZX0FVRElUX1RPS0VO
IGRlZmluZXMuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxOS0xMC0wMiAgWmFu
IERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgW05pY29zaWFdIEVu
YWJsZSBhc3luYyBzY3JvbGxpbmcgYXQgYnVpbGQtdGltZSBmb3IgTmljb3NpYS11c2luZyBwb3J0
cwpJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiAyNTA1MzApCisrKyBTb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC02OTMsNiArNjkzLDcgQEAKICNkZWZpbmUgSEFW
RV9QVEhSRUFEX1NFVE5BTUVfTlAgMQogI2RlZmluZSBIQVZFX1JFQURMSU5FIDEKICNkZWZpbmUg
SEFWRV9TWVNfVElNRUJfSCAxCisjZGVmaW5lIEhBVkVfQVVESVRfVE9LRU4gMQogCiAjaWYgX19o
YXNfaW5jbHVkZSg8bWFjaC9tYWNoX2V4Yy5kZWZzPikgJiYgIVBMQVRGT1JNKEdUSykKICNkZWZp
bmUgSEFWRV9NQUNIX0VYQ0VQVElPTlMgMQpAQCAtMTUyNyw2ICsxNTI4LDEwIEBACiAjZGVmaW5l
IEhBVkVfU0FOREJPWF9JU1NVRV9SRUFEX0VYVEVOU0lPTl9UT19QUk9DRVNTX0JZX1BJRCAxCiAj
ZW5kaWYKIAorI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxNTAwKQorI2RlZmluZSBIQVZFX1NBTkRCT1hfSVNTVUVfUkVBRF9FWFRFTlNJ
T05fVE9fUFJPQ0VTU19CWV9BVURJVF9UT0tFTiAxCisjZW5kaWYKKwogI2lmIChQTEFURk9STShN
QUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCAoUExB
VEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTMwMDAwKQogI2RlZmluZSBIQVZFX01ETlNfRkFTVF9SRUdJU1RSQVRJT04gMQogI2VuZGlmCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwkocmV2aXNpb24gMjUwNjI3KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1NyBAQAorMjAxOS0xMC0wMiAgUGVyIEFybmUgVm9s
bGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTigyNDk2NDkpOiBV
bmFibGUgdG8gb3BlbiBsb2NhbCBmaWxlcyBpbiBNaW5pQnJvd3NlciBvbiBtYWNPUworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNzk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGNvbW1pdCA8aHR0
cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI0OTY0OT4gaW50cm9kdWNlZCBhIE1pbmlC
cm93c2VyIHJlZ3Jlc3Npb24gb24gbWFjT1Mgd2hlcmUgTWluaUJyb3dzZXIKKyAgICAgICAgaXMg
bm90IGFibGUgdG8gb3BlbiBsb2NhbCBmaWxlcy4gVGhlIGNoYW5nZSBzZXQgcjI0OTY0OSBmaXhl
ZCBhIHByb2JsZW0gd2hlcmUgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBQSUQgd2FzIG5vdCByZWFk
eQorICAgICAgICB0byBiZSB1c2VkIHdoZW4gY3JlYXRpbmcgYSBzYW5kYm94IGV4dGVuc2lvbi4g
VGhpcyBoYXBwZW5lZCBpbiB0aGUgY2FzZXMgd2hlcmUgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBo
YWQgbm90IGZpbmlzaGVkCisgICAgICAgIGxhdW5jaGluZyB3aGVuIHRoZSBsb2FkIHN0YXJ0ZWQu
IFRoZSBXZWJDb250ZW50IHByb2Nlc3MgaXMgYWxzbyBjcmVhdGluZyBzYW5kYm94IGV4dGVuc2lv
bnMgZm9yIHRoZSBOZXR3b3JraW5nIHByb2Nlc3MKKyAgICAgICAgZm9yIHRoZSBmaWxlcyBiZWlu
ZyBsb2FkZWQsIGFuZCBhbHNvIG5lZWRzIHRvIGJlIHBhc3NpbmcgdGhlIGF1ZGl0IHRva2VuIG9m
IHRoZSBOZXR3b3JraW5nIHByb2Nlc3Mgd2hlbiBjcmVhdGluZyB0aGVzZS4KKyAgICAgICAgVGhp
cyBwYXRjaCBpbXBsZW1lbnRzIGdldHRpbmcgdGhlIGF1ZGl0IHRva2VuIGZvciB0aGUgTmV0d29y
a2luZyBwcm9jZXNzIHdoZW4gdGhlIFdlYlByb2Nlc3MgaXMgc2VuZGluZyBhIG1lc3NhZ2UgdG8K
KyAgICAgICAgdGhlIFVJIHByb2Nlc3MgdG8gZXN0YWJsaXNoIHRoZSBOZXR3b3JraW5nIHByb2Nl
c3MgY29ubmVjdGlvbi4gVGhlIGF1ZGl0IHRva2VuIGlzIHN0b3JlZCBpbiB0aGUgTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uCisgICAgICAgIG9iamVjdCwgYW5kIHBhc3NlZCB0byB0aGUgTmV0d29y
a0xvYWRQYXJhbWV0ZXJzIG9iamVjdCB3aGVuIHRoZSBsb2FkIGlzIHN0YXJ0ZWQuIEZpbmFsbHks
IHdoZW4gZW5jb2RpbmcgdGhlIE5ldHdvcmsKKyAgICAgICAgcmVzb3VyY2VzIGxvYWQgcGFyYW1l
dGVycywgdGhlIGF1ZGl0IHRva2VuIGlzIHVzZWQgdG8gY3JlYXRlIGFuIGV4dGVuc2lvbiBmb3Ig
dGhlIE5ldHdvcmtpbmcgcHJvY2Vzcy4KKworICAgICAgICBBUEkgdGVzdDogV0tXZWJWaWV3Lkxv
YWRGaWxlV2l0aExvYWRSZXF1ZXN0CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5f
dD46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46
OmRlY29kZSk6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmg6CisgICAg
ICAgICogU2hhcmVkL0NvY29hL1NhbmRib3hFeHRlbnNpb25Db2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6U2FuZGJveEV4dGVuc2lvbkltcGw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNh
bmRib3hFeHRlbnNpb25JbXBsOjpzYW5kYm94RXh0ZW5zaW9uRm9yVHlwZSk6CisgICAgICAgIChX
ZWJLaXQ6OlNhbmRib3hFeHRlbnNpb25JbXBsOjpTYW5kYm94RXh0ZW5zaW9uSW1wbCk6CisgICAg
ICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXBC
eVBpZCk6CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
clJlYWRCeVBpZCk6CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhh
bmRsZUZvclJlYWRCeUF1ZGl0VG9rZW4pOgorICAgICAgICAqIFNoYXJlZC9TYW5kYm94RXh0ZW5z
aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6Om9wZW5OZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OnNldE5ldHdvcmtQcm9j
ZXNzQXVkaXRUb2tlbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bjo6bmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbzo6aWRlbnRpZmllcik6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm86OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm86OmRlY29kZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21OZXR3b3Jr
UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3Vy
Y2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnN0
YXJ0UGluZ0xvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6cHJlY29u
bmVjdFRvKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjplbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOgorCiAyMDE5LTEwLTAy
ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
Q01ha2UtYnVpbHQgV2ViS2l0LmZyYW1ld29yayBzaG91bGQgbGF1bmNoIFhQQyBzZXJ2aWNlcyBz
dWNjZXNzZnVsbHkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWRQYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAkocmV2aXNpb24gMjUwNTMwKQorKysgU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5
KQpAQCAtNDYsNiArNDYsOSBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IHdlYkZyYW1lSUQ7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiB0b3BPcmln
aW47CiAgICAgV1RGOjpQcm9jZXNzSUQgcGFyZW50UElEIHsgMCB9OworI2lmIEhBVkUoQVVESVRf
VE9LRU4pCisgICAgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4gbmV0d29ya1Byb2Nlc3NBdWRpdFRv
a2VuOworI2VuZGlmCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Q7CiAgICAg
V2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGljeSB7IFdl
YkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeTo6U25pZmZDb250ZW50IH07CiAgICAgV2ViQ29y
ZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgY29udGVudEVuY29kaW5nU25pZmZpbmdQ
b2xpY3kgeyBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25pZmYgfTsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyNTA1MzApCisrKyBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYsNyArNjYsMTQgQEAgdm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVyczo6ZW5jbwogCiAgICAgaWYgKHJlcXVlc3QudXJsKCkuaXNMb2NhbEZp
bGUoKSkgewogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgcmVxdWVzdFNhbmRib3hF
eHRlbnNpb247CisjaWYgSEFWRShTQU5EQk9YX0lTU1VFX1JFQURfRVhURU5TSU9OX1RPX1BST0NF
U1NfQllfQVVESVRfVE9LRU4pCisgICAgICAgIGlmIChuZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4p
CisgICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkQnlBdWRp
dFRva2VuKHJlcXVlc3QudXJsKCkuZmlsZVN5c3RlbVBhdGgoKSwgKm5ldHdvcmtQcm9jZXNzQXVk
aXRUb2tlbiwgcmVxdWVzdFNhbmRib3hFeHRlbnNpb24pOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUocmVxdWVzdC51cmwoKS5maWxlU3lz
dGVtUGF0aCgpLCBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpSZWFkT25seSwgcmVxdWVzdFNhbmRi
b3hFeHRlbnNpb24pOworI2Vsc2UKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFu
ZGxlKHJlcXVlc3QudXJsKCkuZmlsZVN5c3RlbVBhdGgoKSwgU2FuZGJveEV4dGVuc2lvbjo6VHlw
ZTo6UmVhZE9ubHksIHJlcXVlc3RTYW5kYm94RXh0ZW5zaW9uKTsKKyNlbmRpZgogICAgICAgICBl
bmNvZGVyIDw8IHJlcXVlc3RTYW5kYm94RXh0ZW5zaW9uOwogICAgIH0KIApJbmRleDogU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcAkocmV2aXNpb24gMjUw
NTMwKQorKysgU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xODgsNCArMTg4LDIxIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxTSEEx
OjpEaWdlc3Q+OjpkZWNvZGUKICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVGaXhlZExlbmd0aERh
dGEoZGlnZXN0LmRhdGEoKSwgc2l6ZW9mKGRpZ2VzdCksIDEpOwogfQogCisjaWYgSEFWRShBVURJ
VF9UT0tFTikKK3ZvaWQgQXJndW1lbnRDb2RlcjxhdWRpdF90b2tlbl90Pjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IGF1ZGl0X3Rva2VuX3QmIGF1ZGl0VG9rZW4pCit7CisgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgoYXVkaXRUb2tlbi52YWwpOyBp
KyspCisgICAgICAgIGVuY29kZXIgPDwgYXVkaXRUb2tlbi52YWxbaV07Cit9CisKK2Jvb2wgQXJn
dW1lbnRDb2RlcjxhdWRpdF90b2tlbl90Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIGF1ZGl0
X3Rva2VuX3QmIGF1ZGl0VG9rZW4pCit7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IFdU
Rl9BUlJBWV9MRU5HVEgoYXVkaXRUb2tlbi52YWwpOyBpKyspIHsKKyAgICAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShhdWRpdFRva2VuLnZhbFtpXSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIElQ
QwpJbmRleDogU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCShy
ZXZpc2lvbiAyNTA1MzApCisrKyBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENv
ZGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC02MjEsNCArNjIxLDExIEBAIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8U0hBMTo6RGkKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2Rl
ciYsIFNIQTE6OkRpZ2VzdCYpOwogfTsKIAorI2lmIEhBVkUoQVVESVRfVE9LRU4pCit0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rva2VuX3Q+IHsKKyAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IGF1ZGl0X3Rva2VuX3QmKTsKKyAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoRGVjb2RlciYsIGF1ZGl0X3Rva2VuX3QmKTsKK307CisjZW5kaWYKKwogfSAvLyBu
YW1lc3BhY2UgSVBDCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9u
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5o
CShyZXZpc2lvbiAyNTA1MzApCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9TYW5kYm94RXh0ZW5z
aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAgICAgICBS
ZWFkV3JpdGUsCiAgICAgICAgIE1hY2gsCiAgICAgICAgIEdlbmVyaWMsCi0gICAgICAgIFJlYWRC
eVBpZAorICAgICAgICBSZWFkQnlQcm9jZXNzCiAgICAgfTsKIAogICAgIGNsYXNzIEhhbmRsZSB7
CkBAIC0xMDYsNiArMTA2LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGNyZWF0ZUhhbmRs
ZUZvckdlbmVyaWNFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb25DbGFzcywgSGFuZGxl
Jik7CiAgICAgc3RhdGljIGJvb2wgY3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cEJ5UGlkKGNvbnN0
IFN0cmluZyYgc2VydmljZSwgUHJvY2Vzc0lELCBIYW5kbGUmKTsKICAgICBzdGF0aWMgYm9vbCBj
cmVhdGVIYW5kbGVGb3JSZWFkQnlQaWQoY29uc3QgU3RyaW5nJiBwYXRoLCBQcm9jZXNzSUQsIEhh
bmRsZSYpOworI2lmIEhBVkUoQVVESVRfVE9LRU4pCisgICAgc3RhdGljIGJvb2wgY3JlYXRlSGFu
ZGxlRm9yUmVhZEJ5QXVkaXRUb2tlbihjb25zdCBTdHJpbmcmIHBhdGgsIGF1ZGl0X3Rva2VuX3Qs
IEhhbmRsZSYpOworI2VuZGlmCiAgICAgflNhbmRib3hFeHRlbnNpb24oKTsKIAogICAgIGJvb2wg
Y29uc3VtZSgpOwpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvU2FuZGJveEV4dGVu
c2lvbkNvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1Nh
bmRib3hFeHRlbnNpb25Db2NvYS5tbQkocmV2aXNpb24gMjUwNTMwKQorKysgU291cmNlL1dlYktp
dC9TaGFyZWQvQ29jb2EvU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJEZWNvZGVyLmgiCiAjaW1wb3J0ICJFbmNvZGVyLmgi
CiAjaW1wb3J0IDx3dGYvRmlsZVN5c3RlbS5oPgorI2ltcG9ydCA8d3RmL1ZhcmlhbnQuaD4KICNp
bXBvcnQgPHd0Zi9zcGkvZGFyd2luL1NhbmRib3hTUEkuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KIApAQCAtNDAsOSArNDEsOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFNh
bmRib3hFeHRlbnNpb25JbXBsIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNhbmRib3hFeHRlbnNpb25JbXBsPiBjcmVh
dGUoY29uc3QgY2hhciogcGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZSB0eXBlLCBPcHRpb25h
bDxwaWRfdD4gcGlkID0gV1RGOjpudWxsb3B0KQorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
U2FuZGJveEV4dGVuc2lvbkltcGw+IGNyZWF0ZShjb25zdCBjaGFyKiBwYXRoLCBTYW5kYm94RXh0
ZW5zaW9uOjpUeXBlIHR5cGUsIE9wdGlvbmFsPFZhcmlhbnQ8cGlkX3QsIGF1ZGl0X3Rva2VuX3Q+
PiBwcm9jZXNzVG9rZW4gPSBXVEY6Om51bGxvcHQpCiAgICAgewotICAgICAgICBzdGQ6OnVuaXF1
ZV9wdHI8U2FuZGJveEV4dGVuc2lvbkltcGw+IGltcGwgeyBuZXcgU2FuZGJveEV4dGVuc2lvbklt
cGwocGF0aCwgdHlwZSwgcGlkKSB9OworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2FuZGJveEV4
dGVuc2lvbkltcGw+IGltcGwgeyBuZXcgU2FuZGJveEV4dGVuc2lvbkltcGwocGF0aCwgdHlwZSwg
cHJvY2Vzc1Rva2VuKSB9OwogICAgICAgICBpZiAoIWltcGwtPm1fdG9rZW4pCiAgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIGltcGw7CkBAIC04NCw3ICs4NSw3IEBA
IHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgY2hhciogc2FuZGJveEV4dGVuc2lvbkZv
clR5cGUoY29uc3QgY2hhciogcGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZSB0eXBlLCBPcHRp
b25hbDxwaWRfdD4gcGlkID0gV1RGOjpudWxsb3B0KQorICAgIGNoYXIqIHNhbmRib3hFeHRlbnNp
b25Gb3JUeXBlKGNvbnN0IGNoYXIqIHBhdGgsIFNhbmRib3hFeHRlbnNpb246OlR5cGUgdHlwZSwg
T3B0aW9uYWw8VmFyaWFudDxwaWRfdCwgYXVkaXRfdG9rZW5fdD4+IHByb2Nlc3NUb2tlbikKICAg
ICB7CiAgICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICBjYXNlIFNhbmRib3hFeHRlbnNp
b246OlR5cGU6OlJlYWRPbmx5OgpAQCAtOTMsMjcgKzk0LDM3IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNzdWVfZmlsZShBUFBfU0FOREJPWF9SRUFE
X1dSSVRFLCBwYXRoLCAwKTsKICAgICAgICAgY2FzZSBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpN
YWNoOgogI2lmIEhBVkUoU0FOREJPWF9JU1NVRV9NQUNIX0VYVEVOU0lPTl9UT19QUk9DRVNTX0JZ
X1BJRCkKLSAgICAgICAgICAgIHJldHVybiBzYW5kYm94X2V4dGVuc2lvbl9pc3N1ZV9tYWNoX3Rv
X3Byb2Nlc3NfYnlfcGlkKCJjb20uYXBwbGUud2Via2l0LmV4dGVuc2lvbi5tYWNoIl9zLCBwYXRo
LCAwLCBwaWQudmFsdWUoKSk7CisgICAgICAgICAgICBpZiAoIXByb2Nlc3NUb2tlbikKKyAgICAg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgIGlmICghV1RGOjpob2xkc19h
bHRlcm5hdGl2ZTxwaWRfdD4oKnByb2Nlc3NUb2tlbikpCisgICAgICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgICAgICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNzdWVfbWFj
aF90b19wcm9jZXNzX2J5X3BpZCgiY29tLmFwcGxlLndlYmtpdC5leHRlbnNpb24ubWFjaCJfcywg
cGF0aCwgMCwgV1RGOjpnZXQ8cGlkX3Q+KCpwcm9jZXNzVG9rZW4pKTsKICNlbHNlCi0gICAgICAg
ICAgICBVTlVTRURfUEFSQU0ocGlkKTsKKyAgICAgICAgICAgIFVOVVNFRF9QQVJBTShwcm9jZXNz
VG9rZW4pOwogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICNlbmRpZgogICAgICAgICBjYXNlIFNhbmRib3hFeHRlbnNpb246OlR5
cGU6OkdlbmVyaWM6CiAgICAgICAgICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNzdWVf
Z2VuZXJpYyhwYXRoLCAwKTsKLSAgICAgICAgY2FzZSBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpS
ZWFkQnlQaWQ6CisgICAgICAgIGNhc2UgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVhZEJ5UHJv
Y2VzczoKICNpZiBIQVZFKFNBTkRCT1hfSVNTVUVfUkVBRF9FWFRFTlNJT05fVE9fUFJPQ0VTU19C
WV9QSUQpCi0gICAgICAgICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNzdWVfZmlsZV90
b19wcm9jZXNzX2J5X3BpZChBUFBfU0FOREJPWF9SRUFELCBwYXRoLCBTQU5EQk9YX0VYVEVOU0lP
Tl9VU0VSX0lOVEVOVCwgcGlkLnZhbHVlKCkpOworICAgICAgICAgICAgaWYgKCFwcm9jZXNzVG9r
ZW4pCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICBpZiAoV1RG
Ojpob2xkc19hbHRlcm5hdGl2ZTxwaWRfdD4oKnByb2Nlc3NUb2tlbikpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHNhbmRib3hfZXh0ZW5zaW9uX2lzc3VlX2ZpbGVfdG9fcHJvY2Vzc19ieV9waWQo
QVBQX1NBTkRCT1hfUkVBRCwgcGF0aCwgU0FOREJPWF9FWFRFTlNJT05fVVNFUl9JTlRFTlQsIFdU
Rjo6Z2V0PHBpZF90PigqcHJvY2Vzc1Rva2VuKSk7CisgICAgICAgICAgICBpZiAoV1RGOjpob2xk
c19hbHRlcm5hdGl2ZTxhdWRpdF90b2tlbl90PigqcHJvY2Vzc1Rva2VuKSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNzdWVfZmlsZV90b19wcm9jZXNzKEFQUF9T
QU5EQk9YX1JFQUQsIHBhdGgsIFNBTkRCT1hfRVhURU5TSU9OX1VTRVJfSU5URU5ULCBXVEY6Omdl
dDxhdWRpdF90b2tlbl90PigqcHJvY2Vzc1Rva2VuKSk7CisgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICNlbHNlCi0gICAgICAgICAgICBVTlVTRURfUEFSQU0ocGlkKTsKKyAgICAgICAgICAg
IFVOVVNFRF9QQVJBTShwcm9jZXNzVG9rZW4pOwogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgogICAgICAgICB9CiAg
ICAgfQogCi0gICAgU2FuZGJveEV4dGVuc2lvbkltcGwoY29uc3QgY2hhciogcGF0aCwgU2FuZGJv
eEV4dGVuc2lvbjo6VHlwZSB0eXBlLCBPcHRpb25hbDxwaWRfdD4gcGlkID0gV1RGOjpudWxsb3B0
KQotICAgICAgICA6IG1fdG9rZW4geyBzYW5kYm94RXh0ZW5zaW9uRm9yVHlwZShwYXRoLCB0eXBl
LCBwaWQpIH0KKyAgICBTYW5kYm94RXh0ZW5zaW9uSW1wbChjb25zdCBjaGFyKiBwYXRoLCBTYW5k
Ym94RXh0ZW5zaW9uOjpUeXBlIHR5cGUsIE9wdGlvbmFsPFZhcmlhbnQ8cGlkX3QsIGF1ZGl0X3Rv
a2VuX3Q+PiBwcm9jZXNzVG9rZW4pCisgICAgICAgIDogbV90b2tlbiB7IHNhbmRib3hFeHRlbnNp
b25Gb3JUeXBlKHBhdGgsIHR5cGUsIHByb2Nlc3NUb2tlbikgfQogICAgIHsKICAgICB9CiAKQEAg
LTMzNiw3ICszNDcsOCBAQCBib29sIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1h
CiB7CiAgICAgQVNTRVJUKCFoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uKTsKICAgICAKLSAgICBo
YW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uID0gU2FuZGJveEV4dGVuc2lvbkltcGw6OmNyZWF0ZShz
ZXJ2aWNlLnV0ZjgoKS5kYXRhKCksIFR5cGU6Ok1hY2gsIHBpZCk7CisgICAgVmFyaWFudDxwaWRf
dCwgYXVkaXRfdG9rZW5fdD4gcHJvY2Vzc1Rva2VuKHBpZCk7CisgICAgaGFuZGxlLm1fc2FuZGJv
eEV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb25JbXBsOjpjcmVhdGUoc2VydmljZS51dGY4KCku
ZGF0YSgpLCBUeXBlOjpNYWNoLCBXVEZNb3ZlKHByb2Nlc3NUb2tlbikpOwogICAgIGlmICghaGFu
ZGxlLm1fc2FuZGJveEV4dGVuc2lvbikgewogICAgICAgICBXVEZMb2dBbHdheXMoIkNvdWxkIG5v
dCBjcmVhdGUgYSAnJXMnIHNhbmRib3ggZXh0ZW5zaW9uIiwgc2VydmljZS51dGY4KCkuZGF0YSgp
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzUyLDcgKzM2NCwyMiBAQCBib29sIFNhbmRi
b3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlCiAgICAgaWYgKCFwaWQpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIGhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24gPSBTYW5kYm94RXh0
ZW5zaW9uSW1wbDo6Y3JlYXRlKHBhdGgudXRmOCgpLmRhdGEoKSwgVHlwZTo6UmVhZEJ5UGlkLCBw
aWQpOworICAgIFZhcmlhbnQ8cGlkX3QsIGF1ZGl0X3Rva2VuX3Q+IHByb2Nlc3NUb2tlbihwaWQp
OworICAgIGhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24gPSBTYW5kYm94RXh0ZW5zaW9uSW1wbDo6
Y3JlYXRlKHBhdGgudXRmOCgpLmRhdGEoKSwgVHlwZTo6UmVhZEJ5UHJvY2VzcywgV1RGTW92ZShw
cm9jZXNzVG9rZW4pKTsKKyAgICBpZiAoIWhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24pIHsKKyAg
ICAgICAgV1RGTG9nQWx3YXlzKCJDb3VsZCBub3QgY3JlYXRlIHNhbmRib3ggZXh0ZW5zaW9uIik7
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIHRydWU7Cit9
CisKK2Jvb2wgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZEJ5QXVkaXRUb2tl
bihjb25zdCBTdHJpbmcmIHBhdGgsIGF1ZGl0X3Rva2VuX3QgYXVkaXRUb2tlbiwgSGFuZGxlJiBo
YW5kbGUpCit7CisgICAgQVNTRVJUKCFoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uKTsKKworICAg
IFZhcmlhbnQ8cGlkX3QsIGF1ZGl0X3Rva2VuX3Q+IHByb2Nlc3NUb2tlbihhdWRpdFRva2VuKTsK
KyAgICBoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uID0gU2FuZGJveEV4dGVuc2lvbkltcGw6OmNy
ZWF0ZShwYXRoLnV0ZjgoKS5kYXRhKCksIFR5cGU6OlJlYWRCeVByb2Nlc3MsIFdURk1vdmUocHJv
Y2Vzc1Rva2VuKSk7CiAgICAgaWYgKCFoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uKSB7CiAgICAg
ICAgIFdURkxvZ0Fsd2F5cygiQ291bGQgbm90IGNyZWF0ZSBzYW5kYm94IGV4dGVuc2lvbiIpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNTA1MzApCisrKyBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4JKHdvcmtp
bmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5IExl
Z2FjeVJlY2VpdgogICAgIEdldFBsdWdpbnMoYm9vbCByZWZyZXNoKSAtPiAoVmVjdG9yPFdlYkNv
cmU6OlBsdWdpbkluZm8+IHBsdWdpbnMsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBhcHBs
aWNhdGlvblBsdWdpbnMsIHN0cnVjdCBPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6U3VwcG9ydGVk
UGx1Z2luSWRlbnRpZmllcj4+IHN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXJzKSBTeW5jaHJvbm91
cwogICAgIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NU
b2tlbikgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlLCBib29sIHN1cHBvcnRz
QXN5bmNocm9ub3VzSW5pdGlhbGl6YXRpb24pIFN5bmNocm9ub3VzCiAjZW5kaWYKLSAgICBHZXRO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25I
YW5kbGUpIFN5bmNocm9ub3VzCisgICAgR2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkgLT4g
KHN0cnVjdCBXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8gY29ubmVjdGlvbklu
Zm8pIFN5bmNocm9ub3VzCiAgICAgUHJvY2Vzc1JlYWR5VG9TdXNwZW5kKCkKICAgICBEaWRDYW5j
ZWxQcm9jZXNzU3VzcGVuc2lvbigpCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAkocmV2aXNpb24gMjUw
NTMwKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2VuZGlmCiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyTWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgiCiAjaW5j
bHVkZSAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJOZXR3
b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgpAQCAt
MTU4LDEwICsxNTksMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpvcGVuTmV0d29ya1By
bwogICAgICAgICBhdXRvIHJlcXVlc3QgPSBtX2Nvbm5lY3Rpb25SZXF1ZXN0cy50YWtlKGNvbm5l
Y3Rpb25SZXF1ZXN0SWRlbnRpZmllcik7CiAKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykg
fHwgT1MoV0lORE9XUykKLSAgICAgICAgcmVxdWVzdC5yZXBseSgqY29ubmVjdGlvbklkZW50aWZp
ZXIpOworICAgICAgICByZXF1ZXN0LnJlcGx5KE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8g
eyAqY29ubmVjdGlvbklkZW50aWZpZXIgfSk7CiAjZWxpZiBPUyhEQVJXSU4pCiAgICAgICAgIE1F
U1NBR0VfQ0hFQ0soTUFDSF9QT1JUX1ZBTElEKGNvbm5lY3Rpb25JZGVudGlmaWVyLT5wb3J0KCkp
KTsKLSAgICAgICAgcmVxdWVzdC5yZXBseShJUEM6OkF0dGFjaG1lbnQgeyBjb25uZWN0aW9uSWRl
bnRpZmllci0+cG9ydCgpLCBNQUNIX01TR19UWVBFX01PVkVfU0VORCB9KTsKKyAgICAgICAgcmVx
dWVzdC5yZXBseShOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsgSVBDOjpBdHRhY2htZW50
IHsgY29ubmVjdGlvbklkZW50aWZpZXItPnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQg
fSwgY29ubmVjdGlvbigpLT5nZXRBdWRpdFRva2VuKCkgfSk7CiAjZWxzZQogICAgICAgICBub3RJ
bXBsZW1lbnRlZCgpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1MDUzMCkKKysrIFNvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQ3
MDAsNiArNDcwMCw3IEBACiAJCUUxRTU1MkMzMTZBRTA2NUUwMDRFRDY1MyAvKiBTYW5kYm94SW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTFFRTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVk
aXRvckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1
bmRsZVBhZ2VFZGl0b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFF
RTUzRTYxMUY4Q0ZGQjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBh
Z2VFZGl0b3JDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzQzOUI2
MzIzNDU0NjNBMDAxMURFMEIgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmg7IHBhdGggPSBOZXR3b3Jr
L05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTQwNDkwNzAyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGVyUGFpck1hYy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxlclBhaXJNYWMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzEyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1h
Yy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDcyMjFERTY1RjcwMDM3
RjBEQiAvKiBTY3JvbGxlclBhaXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBTY3JvbGxlclBhaXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC02NzAwLDYgKzY3MDEsNyBAQAogCQkJCTUxMDVCMEQ0MTYyRjdBN0EwMEUyNzcwOSAvKiBO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovLAogCQkJCTUxMDVCMEQ1MTYyRjdBN0EwMEUy
NzcwOSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLywKIAkJCQk1MUZCMDkwMjE2M0Ez
QjFDMDBFQzMyNEEgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovLAor
CQkJCUUzNDM5QjYzMjM0NTQ2M0EwMDExREUwQiAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25J
bmZvLmggKi8sCiAJCQkJNTFBQkY2NTYxNjM5MkYxNTAwMTMyQTdBIC8qIFdlYkxvYWRlclN0cmF0
ZWd5LmNwcCAqLywKIAkJCQk1MUFCRjY1NzE2MzkyRjE1MDAxMzJBN0EgLyogV2ViTG9hZGVyU3Ry
YXRlZ3kuaCAqLywKIAkJCQlBNTg2MEU2RjIzMEY2N0RFMDA0NjFBQUUgLyogV2ViUmVzb3VyY2VJ
bnRlcmNlcHRDb250cm9sbGVyLmNwcCAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDI1MDUzMCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQAogI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
c01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5j
bHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oIgogI2luY2x1ZGUgIk5ldHdvcmtT
ZXNzaW9uLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaCIK
ICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCIKQEAgLTExMzcsMTAg
KzExMzgsMTAgQEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRJbmplY3RlZEJ1bmRsZVBhcmFtZQogICAg
IGluamVjdGVkQnVuZGxlLT5zZXRCdW5kbGVQYXJhbWV0ZXJzKHZhbHVlKTsKIH0KIAotc3RhdGlj
IElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24o
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQorc3RhdGljIE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbkluZm8gZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbikKIHsKLSAgICBJUEM6OkF0dGFjaG1lbnQgZW5jb2RlZENvbm5lY3Rpb25JZGVudGlm
aWVyOwotICAgIGlmICghY29ubmVjdGlvbi5zZW5kU3luYyhNZXNzYWdlczo6V2ViUHJvY2Vzc1By
b3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKSwgTWVzc2FnZXM6OldlYlByb2Nlc3NQ
cm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpSZXBseShlbmNvZGVkQ29ubmVjdGlv
bklkZW50aWZpZXIpLCAwKSkgeworICAgIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8gY29u
bmVjdGlvbkluZm87CisgICAgaWYgKCFjb25uZWN0aW9uLnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLCBNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OlJlcGx5KGNvbm5lY3Rp
b25JbmZvKSwgMCkpIHsKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICAg
ICAgLy8gR1RLKyBhbmQgV1BFIHBvcnRzIGRvbid0IGV4aXQgb24gc2VuZCBzeW5jIG1lc3NhZ2Ug
ZmFpbHVyZS4KICAgICAgICAgLy8gSW4gdGhpcyBwYXJ0aWN1bGFyIGNhc2UsIHRoZSBuZXR3b3Jr
IHByb2Nlc3MgY2FuIGJlIHRlcm1pbmF0ZWQgYnkgdGhlIFVJIHByb2Nlc3Mgd2hpbGUgdGhlCkBA
IC0xMTUzLDE2ICsxMTU0LDcgQEAgc3RhdGljIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBn
ZXROZQogI2VuZGlmCiAgICAgfQogCi0jaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCi0gICAg
cmV0dXJuIGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5yZWxlYXNlRmlsZURlc2NyaXB0b3Io
KTsKLSNlbGlmIE9TKERBUldJTikKLSAgICByZXR1cm4gZW5jb2RlZENvbm5lY3Rpb25JZGVudGlm
aWVyLnBvcnQoKTsKLSNlbGlmIE9TKFdJTkRPV1MpCi0gICAgcmV0dXJuIGVuY29kZWRDb25uZWN0
aW9uSWRlbnRpZmllci5oYW5kbGUoKTsKLSNlbHNlCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgcmV0dXJuIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcigpOwotI2VuZGlmCisgICAg
cmV0dXJuIGNvbm5lY3Rpb25JbmZvOwogfQogCiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24mIFdl
YlByb2Nlc3M6OmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpCkBAIC0xMTcyLDE3ICsx
MTY0LDIwIEBAIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiYgV2ViUHJvY2Vzczo6ZW4KIAogICAg
IC8vIElmIHdlJ3ZlIGxvc3Qgb3VyIGNvbm5lY3Rpb24gdG8gdGhlIG5ldHdvcmsgcHJvY2VzcyAo
ZS5nLiBpdCBjcmFzaGVkKSB0cnkgdG8gcmUtZXN0YWJsaXNoIGl0LgogICAgIGlmICghbV9uZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pIHsKLSAgICAgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCpw
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpKTsKKyAgICAgICAgYXV0byBjb25uZWN0aW9uSW5mbyA9
IGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigqcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKSk7
CiAKICAgICAgICAgLy8gUmV0cnkgb25jZSBpZiB0aGUgSVBDIHRvIGdldCB0aGUgY29ubmVjdGlv
bklkZW50aWZpZXIgc3VjY2VlZGVkIGJ1dCB0aGUgY29ubmVjdGlvbklkZW50aWZpZXIgd2UgcmVj
ZWl2ZWQKICAgICAgICAgLy8gaXMgaW52YWxpZC4gVGhpcyBtYXkgaW5kaWNhdGUgdGhhdCB0aGUg
bmV0d29yayBwcm9jZXNzIGhhcyBjcmFzaGVkLgotICAgICAgICBpZiAoIUlQQzo6Q29ubmVjdGlv
bjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbklkZW50aWZpZXIpKQotICAgICAgICAgICAg
Y29ubmVjdGlvbklkZW50aWZpZXIgPSBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKnBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCkpOworICAgICAgICBpZiAoIUlQQzo6Q29ubmVjdGlvbjo6aWRl
bnRpZmllcklzVmFsaWQoY29ubmVjdGlvbkluZm8uaWRlbnRpZmllcigpKSkKKyAgICAgICAgICAg
IGNvbm5lY3Rpb25JbmZvID0gZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCpwYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpKTsKIAotICAgICAgICBpZiAoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRp
ZmllcklzVmFsaWQoY29ubmVjdGlvbklkZW50aWZpZXIpKQorICAgICAgICBpZiAoIUlQQzo6Q29u
bmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbkluZm8uaWRlbnRpZmllcigpKSkK
ICAgICAgICAgICAgIENSQVNIKCk7CiAKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24gPSBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShjb25uZWN0aW9uSWRlbnRpZmll
cik7CisgICAgICAgIG1fbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uID0gTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uOjpjcmVhdGUoY29ubmVjdGlvbkluZm8uaWRlbnRpZmllcigpKTsKKyNpZiBPUyhE
QVJXSU4pCisgICAgICAgIG1fbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLT5zZXROZXR3b3JrUHJv
Y2Vzc0F1ZGl0VG9rZW4oV1RGTW92ZShjb25uZWN0aW9uSW5mby5hdWRpdFRva2VuKSk7CisjZW5k
aWYKICAgICB9CiAgICAgCiAgICAgcmV0dXJuICptX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCShyZXZpc2lvbiAyNTA1MzApCisrKyBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAkod29y
a2luZyBjb3B5KQpAQCAtNzYsNiArNzYsMTEgQEAgcHVibGljOgogICAgIFdlYlNXQ2xpZW50Q29u
bmVjdGlvbiYgc2VydmljZVdvcmtlckNvbm5lY3Rpb24oKTsKICNlbmRpZgogCisjaWYgSEFWRShB
VURJVF9UT0tFTikKKyAgICB2b2lkIHNldE5ldHdvcmtQcm9jZXNzQXVkaXRUb2tlbihPcHRpb25h
bDxhdWRpdF90b2tlbl90PiBhdWRpdFRva2VuKSB7IG1fbmV0d29ya1Byb2Nlc3NBdWRpdFRva2Vu
ID0gYXVkaXRUb2tlbjsgfQorICAgIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IG5ldHdvcmtQcm9j
ZXNzQXVkaXRUb2tlbigpIGNvbnN0IHsgcmV0dXJuIG1fbmV0d29ya1Byb2Nlc3NBdWRpdFRva2Vu
OyB9CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oSVBD
OjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKIApAQCAtOTksNiArMTA0LDkgQEAgcHJpdmF0ZToK
IAogICAgIC8vIFRoZSBjb25uZWN0aW9uIGZyb20gdGhlIHdlYiBwcm9jZXNzIHRvIHRoZSBuZXR3
b3JrIHByb2Nlc3MuCiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworI2lm
IEhBVkUoQVVESVRfVE9LRU4pCisgICAgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4gbV9uZXR3b3Jr
UHJvY2Vzc0F1ZGl0VG9rZW47CisjZW5kaWYKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQogICAgIFJlZlB0cjxXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IG1fd2ViSURCQ29ubmVjdGlv
bjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbkluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgJKG5vbmV4aXN0ZW50KQorKysg
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbyB7CisgICAgSVBD
OjpBdHRhY2htZW50IGNvbm5lY3Rpb247CisjaWYgSEFWRShBVURJVF9UT0tFTikKKyAgICBPcHRp
b25hbDxhdWRpdF90b2tlbl90PiBhdWRpdFRva2VuOworI2VuZGlmCisKKyAgICBJUEM6OkNvbm5l
Y3Rpb246OklkZW50aWZpZXIgaWRlbnRpZmllcigpCisgICAgeworI2lmIFVTRShVTklYX0RPTUFJ
Tl9TT0NLRVRTKQorICAgICAgICByZXR1cm4gSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKGNv
bm5lY3Rpb24ucmVsZWFzZUZpbGVEZXNjcmlwdG9yKCkpOworI2VsaWYgT1MoREFSV0lOKQorICAg
ICAgICByZXR1cm4gSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKGNvbm5lY3Rpb24ucG9ydCgp
KTsKKyNlbGlmIE9TKFdJTkRPV1MpCisgICAgICAgIHJldHVybiBJUEM6OkNvbm5lY3Rpb246Oklk
ZW50aWZpZXIoY29ubmVjdGlvbi5oYW5kbGUoKSk7CisjZWxzZQorICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcigp
OworI2VuZGlmCisgICAgfQorICAgIAorICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYgZW5j
b2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgY29ubmVjdGlvbjsKKyNpZiBI
QVZFKEFVRElUX1RPS0VOKQorICAgICAgICBlbmNvZGVyIDw8IGF1ZGl0VG9rZW47CisjZW5kaWYK
KyAgICB9CisgICAgCisgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rl
ciwgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbyYgaW5mbykKKyAgICB7CisgICAgICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoaW5mby5jb25uZWN0aW9uKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyNpZiBIQVZFKEFVRElUX1RPS0VOKQorICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGluZm8uYXVkaXRUb2tlbikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfTsKKworfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAJKHJl
dmlzaW9uIDI1MDUzMCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxv
YWRlclN0cmF0ZWd5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjg2LDYgKzI4Niw5IEBAIHZvaWQg
V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb20KICAgICBsb2FkUGFyYW1ldGVycy53
ZWJQYWdlSUQgPSB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlEOwogICAgIGxvYWRQYXJhbWV0ZXJz
LndlYkZyYW1lSUQgPSB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRDsKICAgICBsb2FkUGFyYW1l
dGVycy5wYXJlbnRQSUQgPSBwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKTsKKyNpZiBIQVZFKEFV
RElUX1RPS0VOKQorICAgIGxvYWRQYXJhbWV0ZXJzLm5ldHdvcmtQcm9jZXNzQXVkaXRUb2tlbiA9
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigp
Lm5ldHdvcmtQcm9jZXNzQXVkaXRUb2tlbigpOworI2VuZGlmCiAgICAgbG9hZFBhcmFtZXRlcnMu
cmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgbG9hZFBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9s
aWN5ID0gY29udGVudFNuaWZmaW5nUG9saWN5OwogICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRF
bmNvZGluZ1NuaWZmaW5nUG9saWN5ID0gY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3k7CkBA
IC01NjEsNiArNTY0LDkgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3lu
YwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRCA9IHBhZ2VJRDsKICAgICBsb2FkUGFyYW1l
dGVycy53ZWJGcmFtZUlEID0gZnJhbWVJRDsKICAgICBsb2FkUGFyYW1ldGVycy5wYXJlbnRQSUQg
PSBwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKTsKKyNpZiBIQVZFKEFVRElUX1RPS0VOKQorICAg
IGxvYWRQYXJhbWV0ZXJzLm5ldHdvcmtQcm9jZXNzQXVkaXRUb2tlbiA9IFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLm5ldHdvcmtQcm9jZXNz
QXVkaXRUb2tlbigpOworI2VuZGlmCiAgICAgbG9hZFBhcmFtZXRlcnMucmVxdWVzdCA9IHJlcXVl
c3Q7CiAgICAgbG9hZFBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5ID0gQ29udGVudFNu
aWZmaW5nUG9saWN5OjpTbmlmZkNvbnRlbnQ7CiAgICAgbG9hZFBhcmFtZXRlcnMuY29udGVudEVu
Y29kaW5nU25pZmZpbmdQb2xpY3kgPSBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25p
ZmY7CkBAIC02MzAsNiArNjM2LDkgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c3RhcnRQaW5n
TG9hZChGcgogICAgIGxvYWRQYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbiA9ICZkb2N1bWVudC0+c2Vj
dXJpdHlPcmlnaW4oKTsKICAgICBsb2FkUGFyYW1ldGVycy50b3BPcmlnaW4gPSAmZG9jdW1lbnQt
PnRvcE9yaWdpbigpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnBhcmVudFBJRCA9IHByZXNlbnRpbmdB
cHBsaWNhdGlvblBJRCgpOworI2lmIEhBVkUoQVVESVRfVE9LRU4pCisgICAgbG9hZFBhcmFtZXRl
cnMubmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5z
dXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkubmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuKCk7
CisjZW5kaWYKICAgICBsb2FkUGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IG9w
dGlvbnMuY3JlZGVudGlhbHMgPT0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6T21pdCA/IFN0
b3JlZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVzZSA6IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5
OjpVc2U7CiAgICAgbG9hZFBhcmFtZXRlcnMub3B0aW9ucyA9IG9wdGlvbnM7CiAgICAgbG9hZFBh
cmFtZXRlcnMub3JpZ2luYWxSZXF1ZXN0SGVhZGVycyA9IG9yaWdpbmFsUmVxdWVzdEhlYWRlcnM7
CkBAIC02OTAsNiArNjk5LDkgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6cHJlY29ubmVjdFRv
KEZyYQogICAgIHBhcmFtZXRlcnMud2ViUGFnZUlEID0gd2ViUGFnZS0+aWRlbnRpZmllcigpOwog
ICAgIHBhcmFtZXRlcnMud2ViRnJhbWVJRCA9IHdlYkZyYW1lLT5mcmFtZUlEKCk7CiAgICAgcGFy
YW1ldGVycy5wYXJlbnRQSUQgPSBwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKTsKKyNpZiBIQVZF
KEFVRElUX1RPS0VOKQorICAgIHBhcmFtZXRlcnMubmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuID0g
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCku
bmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuKCk7CisjZW5kaWYKICAgICBwYXJhbWV0ZXJzLnN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5ID0gc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k7CiAgICAgcGFyYW1l
dGVycy5zaG91bGRQcmVjb25uZWN0T25seSA9IFByZWNvbm5lY3RPbmx5OjpZZXM7CiAgICAgcGFy
YW1ldGVycy5zaG91bGRSZXN0cmljdEhUVFBSZXNwb25zZUFjY2VzcyA9IHNob3VsZFBlcmZvcm1T
ZWN1cml0eUNoZWNrcygpOwpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjUwNjI4KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMTAtMDIgIFBlciBBcm5lIFZvbGxhbiAg
PHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04oMjQ5NjQ5KTogVW5hYmxl
IHRvIG9wZW4gbG9jYWwgZmlsZXMgaW4gTWluaUJyb3dzZXIgb24gbWFjT1MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTc5OAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIEFQSSB0ZXN0IFdLV2Vi
Vmlldy5Mb2FkRmlsZVdpdGhMb2FkUmVxdWVzdC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvTG9hZEZpbGVVUkwubW06CisKIDIwMTktMTAtMDIgIFRoaWJhdWx0
IFNhdW5pZXIgIDx0c2F1bmllckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU1RyZWFtZXJdIExl
dCBwbGF5YmluIGhhbmRsZSByZWRpcmVjdHMgZm9yIHVzIHdoZW4gYXBwcm9wcmlhdGUKSW5kZXg6
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9hZEZpbGVVUkwubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2FkRmls
ZVVSTC5tbQkocmV2aXNpb24gMjUwNTMwKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Mb2FkRmlsZVVSTC5tbQkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsMTcg
QEAKICNpbXBvcnQgPFdlYktpdC9XZWJWaWV3UHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL1JldGFp
blB0ci5oPgogCitURVNUKFdLV2ViVmlldywgTG9hZEZpbGVXaXRoTG9hZFJlcXVlc3QpCit7Cisg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgYXV0byBkZWxlZ2F0ZSA9IGFk
b3B0TlMoW1tUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZp
ZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIE5TVVJMUmVx
dWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBt
YWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwi
IHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgIFt3ZWJWaWV3
IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworICAgIFtkZWxlZ2F0ZSB3YWl0Rm9yRGlkRmluaXNoTmF2
aWdhdGlvbl07Cit9CiAKIFRFU1QoV0tXZWJWaWV3LCBMb2FkVHdvRmlsZXMpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380120</attachid>
            <date>2019-10-03 09:18:06 -0700</date>
            <delta_ts>2019-10-03 10:17:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201798-20191003091805.patch</filename>
            <type>text/plain</type>
            <size>31008</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTA2MzUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE5LTEwLTAyICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKDI0OTY0OSk6IFVuYWJsZSB0
byBvcGVuIGxvY2FsIGZpbGVzIGluIE1pbmlCcm93c2VyIG9uIG1hY09TCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE3OTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgSEFWRV9BVURJVF9UT0tFTiBh
bmQgU0FOREJPWF9JU1NVRV9SRUFEX0VYVEVOU0lPTl9UT19QUk9DRVNTX0JZX0FVRElUX1RPS0VO
IGRlZmluZXMuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxOS0xMC0wMiAgWmFu
IERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgW05pY29zaWFdIEVu
YWJsZSBhc3luYyBzY3JvbGxpbmcgYXQgYnVpbGQtdGltZSBmb3IgTmljb3NpYS11c2luZyBwb3J0
cwpJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiAyNTA1MzApCisrKyBTb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC02OTMsNiArNjkzLDcgQEAKICNkZWZpbmUgSEFW
RV9QVEhSRUFEX1NFVE5BTUVfTlAgMQogI2RlZmluZSBIQVZFX1JFQURMSU5FIDEKICNkZWZpbmUg
SEFWRV9TWVNfVElNRUJfSCAxCisjZGVmaW5lIEhBVkVfQVVESVRfVE9LRU4gMQogCiAjaWYgX19o
YXNfaW5jbHVkZSg8bWFjaC9tYWNoX2V4Yy5kZWZzPikgJiYgIVBMQVRGT1JNKEdUSykKICNkZWZp
bmUgSEFWRV9NQUNIX0VYQ0VQVElPTlMgMQpAQCAtMTUyNyw2ICsxNTI4LDEwIEBACiAjZGVmaW5l
IEhBVkVfU0FOREJPWF9JU1NVRV9SRUFEX0VYVEVOU0lPTl9UT19QUk9DRVNTX0JZX1BJRCAxCiAj
ZW5kaWYKIAorI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxNTAwKQorI2RlZmluZSBIQVZFX1NBTkRCT1hfSVNTVUVfUkVBRF9FWFRFTlNJ
T05fVE9fUFJPQ0VTU19CWV9BVURJVF9UT0tFTiAxCisjZW5kaWYKKwogI2lmIChQTEFURk9STShN
QUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCAoUExB
VEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTMwMDAwKQogI2RlZmluZSBIQVZFX01ETlNfRkFTVF9SRUdJU1RSQVRJT04gMQogI2VuZGlmCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwkocmV2aXNpb24gMjUwNjI3KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1NyBAQAorMjAxOS0xMC0wMiAgUGVyIEFybmUgVm9s
bGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTigyNDk2NDkpOiBV
bmFibGUgdG8gb3BlbiBsb2NhbCBmaWxlcyBpbiBNaW5pQnJvd3NlciBvbiBtYWNPUworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNzk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGNvbW1pdCA8aHR0
cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI0OTY0OT4gaW50cm9kdWNlZCBhIE1pbmlC
cm93c2VyIHJlZ3Jlc3Npb24gb24gbWFjT1Mgd2hlcmUgTWluaUJyb3dzZXIKKyAgICAgICAgaXMg
bm90IGFibGUgdG8gb3BlbiBsb2NhbCBmaWxlcy4gVGhlIGNoYW5nZSBzZXQgcjI0OTY0OSBmaXhl
ZCBhIHByb2JsZW0gd2hlcmUgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBQSUQgd2FzIG5vdCByZWFk
eQorICAgICAgICB0byBiZSB1c2VkIHdoZW4gY3JlYXRpbmcgYSBzYW5kYm94IGV4dGVuc2lvbi4g
VGhpcyBoYXBwZW5lZCBpbiB0aGUgY2FzZXMgd2hlcmUgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBo
YWQgbm90IGZpbmlzaGVkCisgICAgICAgIGxhdW5jaGluZyB3aGVuIHRoZSBsb2FkIHN0YXJ0ZWQu
IFRoZSBXZWJDb250ZW50IHByb2Nlc3MgaXMgYWxzbyBjcmVhdGluZyBzYW5kYm94IGV4dGVuc2lv
bnMgZm9yIHRoZSBOZXR3b3JraW5nIHByb2Nlc3MKKyAgICAgICAgZm9yIHRoZSBmaWxlcyBiZWlu
ZyBsb2FkZWQsIGFuZCBhbHNvIG5lZWRzIHRvIGJlIHBhc3NpbmcgdGhlIGF1ZGl0IHRva2VuIG9m
IHRoZSBOZXR3b3JraW5nIHByb2Nlc3Mgd2hlbiBjcmVhdGluZyB0aGVzZS4KKyAgICAgICAgVGhp
cyBwYXRjaCBpbXBsZW1lbnRzIGdldHRpbmcgdGhlIGF1ZGl0IHRva2VuIGZvciB0aGUgTmV0d29y
a2luZyBwcm9jZXNzIHdoZW4gdGhlIFdlYlByb2Nlc3MgaXMgc2VuZGluZyBhIG1lc3NhZ2UgdG8K
KyAgICAgICAgdGhlIFVJIHByb2Nlc3MgdG8gZXN0YWJsaXNoIHRoZSBOZXR3b3JraW5nIHByb2Nl
c3MgY29ubmVjdGlvbi4gVGhlIGF1ZGl0IHRva2VuIGlzIHN0b3JlZCBpbiB0aGUgTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uCisgICAgICAgIG9iamVjdCwgYW5kIHBhc3NlZCB0byB0aGUgTmV0d29y
a0xvYWRQYXJhbWV0ZXJzIG9iamVjdCB3aGVuIHRoZSBsb2FkIGlzIHN0YXJ0ZWQuIEZpbmFsbHks
IHdoZW4gZW5jb2RpbmcgdGhlIE5ldHdvcmsKKyAgICAgICAgcmVzb3VyY2VzIGxvYWQgcGFyYW1l
dGVycywgdGhlIGF1ZGl0IHRva2VuIGlzIHVzZWQgdG8gY3JlYXRlIGFuIGV4dGVuc2lvbiBmb3Ig
dGhlIE5ldHdvcmtpbmcgcHJvY2Vzcy4KKworICAgICAgICBBUEkgdGVzdDogV0tXZWJWaWV3Lkxv
YWRGaWxlV2l0aExvYWRSZXF1ZXN0CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5f
dD46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46
OmRlY29kZSk6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmg6CisgICAg
ICAgICogU2hhcmVkL0NvY29hL1NhbmRib3hFeHRlbnNpb25Db2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6U2FuZGJveEV4dGVuc2lvbkltcGw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNh
bmRib3hFeHRlbnNpb25JbXBsOjpzYW5kYm94RXh0ZW5zaW9uRm9yVHlwZSk6CisgICAgICAgIChX
ZWJLaXQ6OlNhbmRib3hFeHRlbnNpb25JbXBsOjpTYW5kYm94RXh0ZW5zaW9uSW1wbCk6CisgICAg
ICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXBC
eVBpZCk6CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
clJlYWRCeVBpZCk6CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhh
bmRsZUZvclJlYWRCeUF1ZGl0VG9rZW4pOgorICAgICAgICAqIFNoYXJlZC9TYW5kYm94RXh0ZW5z
aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6Om9wZW5OZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OnNldE5ldHdvcmtQcm9j
ZXNzQXVkaXRUb2tlbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bjo6bmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbzo6aWRlbnRpZmllcik6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm86OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm86OmRlY29kZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21OZXR3b3Jr
UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3Vy
Y2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnN0
YXJ0UGluZ0xvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6cHJlY29u
bmVjdFRvKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjplbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOgorCiAyMDE5LTEwLTAy
ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
Q01ha2UtYnVpbHQgV2ViS2l0LmZyYW1ld29yayBzaG91bGQgbGF1bmNoIFhQQyBzZXJ2aWNlcyBz
dWNjZXNzZnVsbHkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWRQYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAkocmV2aXNpb24gMjUwNTMwKQorKysgU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5
KQpAQCAtNDYsNiArNDYsOSBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IHdlYkZyYW1lSUQ7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiB0b3BPcmln
aW47CiAgICAgV1RGOjpQcm9jZXNzSUQgcGFyZW50UElEIHsgMCB9OworI2lmIEhBVkUoQVVESVRf
VE9LRU4pCisgICAgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4gbmV0d29ya1Byb2Nlc3NBdWRpdFRv
a2VuOworI2VuZGlmCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Q7CiAgICAg
V2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGljeSB7IFdl
YkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeTo6U25pZmZDb250ZW50IH07CiAgICAgV2ViQ29y
ZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgY29udGVudEVuY29kaW5nU25pZmZpbmdQ
b2xpY3kgeyBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25pZmYgfTsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyNTA1MzApCisrKyBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYsNyArNjYsMTQgQEAgdm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVyczo6ZW5jbwogCiAgICAgaWYgKHJlcXVlc3QudXJsKCkuaXNMb2NhbEZp
bGUoKSkgewogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgcmVxdWVzdFNhbmRib3hF
eHRlbnNpb247CisjaWYgSEFWRShTQU5EQk9YX0lTU1VFX1JFQURfRVhURU5TSU9OX1RPX1BST0NF
U1NfQllfQVVESVRfVE9LRU4pCisgICAgICAgIGlmIChuZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4p
CisgICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkQnlBdWRp
dFRva2VuKHJlcXVlc3QudXJsKCkuZmlsZVN5c3RlbVBhdGgoKSwgKm5ldHdvcmtQcm9jZXNzQXVk
aXRUb2tlbiwgcmVxdWVzdFNhbmRib3hFeHRlbnNpb24pOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUocmVxdWVzdC51cmwoKS5maWxlU3lz
dGVtUGF0aCgpLCBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpSZWFkT25seSwgcmVxdWVzdFNhbmRi
b3hFeHRlbnNpb24pOworI2Vsc2UKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFu
ZGxlKHJlcXVlc3QudXJsKCkuZmlsZVN5c3RlbVBhdGgoKSwgU2FuZGJveEV4dGVuc2lvbjo6VHlw
ZTo6UmVhZE9ubHksIHJlcXVlc3RTYW5kYm94RXh0ZW5zaW9uKTsKKyNlbmRpZgogICAgICAgICBl
bmNvZGVyIDw8IHJlcXVlc3RTYW5kYm94RXh0ZW5zaW9uOwogICAgIH0KIApJbmRleDogU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcAkocmV2aXNpb24gMjUw
NTMwKQorKysgU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xODgsNCArMTg4LDIxIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxTSEEx
OjpEaWdlc3Q+OjpkZWNvZGUKICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVGaXhlZExlbmd0aERh
dGEoZGlnZXN0LmRhdGEoKSwgc2l6ZW9mKGRpZ2VzdCksIDEpOwogfQogCisjaWYgSEFWRShBVURJ
VF9UT0tFTikKK3ZvaWQgQXJndW1lbnRDb2RlcjxhdWRpdF90b2tlbl90Pjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IGF1ZGl0X3Rva2VuX3QmIGF1ZGl0VG9rZW4pCit7CisgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgoYXVkaXRUb2tlbi52YWwpOyBp
KyspCisgICAgICAgIGVuY29kZXIgPDwgYXVkaXRUb2tlbi52YWxbaV07Cit9CisKK2Jvb2wgQXJn
dW1lbnRDb2RlcjxhdWRpdF90b2tlbl90Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIGF1ZGl0
X3Rva2VuX3QmIGF1ZGl0VG9rZW4pCit7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IFdU
Rl9BUlJBWV9MRU5HVEgoYXVkaXRUb2tlbi52YWwpOyBpKyspIHsKKyAgICAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShhdWRpdFRva2VuLnZhbFtpXSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIElQ
QwpJbmRleDogU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCShy
ZXZpc2lvbiAyNTA1MzApCisrKyBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENv
ZGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC02MjEsNCArNjIxLDExIEBAIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8U0hBMTo6RGkKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2Rl
ciYsIFNIQTE6OkRpZ2VzdCYpOwogfTsKIAorI2lmIEhBVkUoQVVESVRfVE9LRU4pCit0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rva2VuX3Q+IHsKKyAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IGF1ZGl0X3Rva2VuX3QmKTsKKyAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoRGVjb2RlciYsIGF1ZGl0X3Rva2VuX3QmKTsKK307CisjZW5kaWYKKwogfSAvLyBu
YW1lc3BhY2UgSVBDCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9u
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5o
CShyZXZpc2lvbiAyNTA1MzApCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9TYW5kYm94RXh0ZW5z
aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAgICAgICBS
ZWFkV3JpdGUsCiAgICAgICAgIE1hY2gsCiAgICAgICAgIEdlbmVyaWMsCi0gICAgICAgIFJlYWRC
eVBpZAorICAgICAgICBSZWFkQnlQcm9jZXNzCiAgICAgfTsKIAogICAgIGNsYXNzIEhhbmRsZSB7
CkBAIC0xMDYsNiArMTA2LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGNyZWF0ZUhhbmRs
ZUZvckdlbmVyaWNFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb25DbGFzcywgSGFuZGxl
Jik7CiAgICAgc3RhdGljIGJvb2wgY3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cEJ5UGlkKGNvbnN0
IFN0cmluZyYgc2VydmljZSwgUHJvY2Vzc0lELCBIYW5kbGUmKTsKICAgICBzdGF0aWMgYm9vbCBj
cmVhdGVIYW5kbGVGb3JSZWFkQnlQaWQoY29uc3QgU3RyaW5nJiBwYXRoLCBQcm9jZXNzSUQsIEhh
bmRsZSYpOworI2lmIEhBVkUoQVVESVRfVE9LRU4pCisgICAgc3RhdGljIGJvb2wgY3JlYXRlSGFu
ZGxlRm9yUmVhZEJ5QXVkaXRUb2tlbihjb25zdCBTdHJpbmcmIHBhdGgsIGF1ZGl0X3Rva2VuX3Qs
IEhhbmRsZSYpOworI2VuZGlmCiAgICAgflNhbmRib3hFeHRlbnNpb24oKTsKIAogICAgIGJvb2wg
Y29uc3VtZSgpOwpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvU2FuZGJveEV4dGVu
c2lvbkNvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1Nh
bmRib3hFeHRlbnNpb25Db2NvYS5tbQkocmV2aXNpb24gMjUwNTMwKQorKysgU291cmNlL1dlYktp
dC9TaGFyZWQvQ29jb2EvU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJEZWNvZGVyLmgiCiAjaW1wb3J0ICJFbmNvZGVyLmgi
CiAjaW1wb3J0IDx3dGYvRmlsZVN5c3RlbS5oPgorI2ltcG9ydCA8d3RmL1ZhcmlhbnQuaD4KICNp
bXBvcnQgPHd0Zi9zcGkvZGFyd2luL1NhbmRib3hTUEkuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KIApAQCAtNDAsOSArNDEsOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFNh
bmRib3hFeHRlbnNpb25JbXBsIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNhbmRib3hFeHRlbnNpb25JbXBsPiBjcmVh
dGUoY29uc3QgY2hhciogcGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZSB0eXBlLCBPcHRpb25h
bDxwaWRfdD4gcGlkID0gV1RGOjpudWxsb3B0KQorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
U2FuZGJveEV4dGVuc2lvbkltcGw+IGNyZWF0ZShjb25zdCBjaGFyKiBwYXRoLCBTYW5kYm94RXh0
ZW5zaW9uOjpUeXBlIHR5cGUsIE9wdGlvbmFsPFZhcmlhbnQ8cGlkX3QsIGF1ZGl0X3Rva2VuX3Q+
PiBwcm9jZXNzVG9rZW4gPSBXVEY6Om51bGxvcHQpCiAgICAgewotICAgICAgICBzdGQ6OnVuaXF1
ZV9wdHI8U2FuZGJveEV4dGVuc2lvbkltcGw+IGltcGwgeyBuZXcgU2FuZGJveEV4dGVuc2lvbklt
cGwocGF0aCwgdHlwZSwgcGlkKSB9OworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2FuZGJveEV4
dGVuc2lvbkltcGw+IGltcGwgeyBuZXcgU2FuZGJveEV4dGVuc2lvbkltcGwocGF0aCwgdHlwZSwg
cHJvY2Vzc1Rva2VuKSB9OwogICAgICAgICBpZiAoIWltcGwtPm1fdG9rZW4pCiAgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIGltcGw7CkBAIC04NCw3ICs4NSw3IEBA
IHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgY2hhciogc2FuZGJveEV4dGVuc2lvbkZv
clR5cGUoY29uc3QgY2hhciogcGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZSB0eXBlLCBPcHRp
b25hbDxwaWRfdD4gcGlkID0gV1RGOjpudWxsb3B0KQorICAgIGNoYXIqIHNhbmRib3hFeHRlbnNp
b25Gb3JUeXBlKGNvbnN0IGNoYXIqIHBhdGgsIFNhbmRib3hFeHRlbnNpb246OlR5cGUgdHlwZSwg
T3B0aW9uYWw8VmFyaWFudDxwaWRfdCwgYXVkaXRfdG9rZW5fdD4+IHByb2Nlc3NUb2tlbikKICAg
ICB7CiAgICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICBjYXNlIFNhbmRib3hFeHRlbnNp
b246OlR5cGU6OlJlYWRPbmx5OgpAQCAtOTMsMjcgKzk0LDM3IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNzdWVfZmlsZShBUFBfU0FOREJPWF9SRUFE
X1dSSVRFLCBwYXRoLCAwKTsKICAgICAgICAgY2FzZSBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpN
YWNoOgogI2lmIEhBVkUoU0FOREJPWF9JU1NVRV9NQUNIX0VYVEVOU0lPTl9UT19QUk9DRVNTX0JZ
X1BJRCkKLSAgICAgICAgICAgIHJldHVybiBzYW5kYm94X2V4dGVuc2lvbl9pc3N1ZV9tYWNoX3Rv
X3Byb2Nlc3NfYnlfcGlkKCJjb20uYXBwbGUud2Via2l0LmV4dGVuc2lvbi5tYWNoIl9zLCBwYXRo
LCAwLCBwaWQudmFsdWUoKSk7CisgICAgICAgICAgICBpZiAoIXByb2Nlc3NUb2tlbikKKyAgICAg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgIGlmICghV1RGOjpob2xkc19h
bHRlcm5hdGl2ZTxwaWRfdD4oKnByb2Nlc3NUb2tlbikpCisgICAgICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgICAgICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNzdWVfbWFj
aF90b19wcm9jZXNzX2J5X3BpZCgiY29tLmFwcGxlLndlYmtpdC5leHRlbnNpb24ubWFjaCJfcywg
cGF0aCwgMCwgV1RGOjpnZXQ8cGlkX3Q+KCpwcm9jZXNzVG9rZW4pKTsKICNlbHNlCi0gICAgICAg
ICAgICBVTlVTRURfUEFSQU0ocGlkKTsKKyAgICAgICAgICAgIFVOVVNFRF9QQVJBTShwcm9jZXNz
VG9rZW4pOwogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICNlbmRpZgogICAgICAgICBjYXNlIFNhbmRib3hFeHRlbnNpb246OlR5
cGU6OkdlbmVyaWM6CiAgICAgICAgICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNzdWVf
Z2VuZXJpYyhwYXRoLCAwKTsKLSAgICAgICAgY2FzZSBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpS
ZWFkQnlQaWQ6CisgICAgICAgIGNhc2UgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVhZEJ5UHJv
Y2VzczoKICNpZiBIQVZFKFNBTkRCT1hfSVNTVUVfUkVBRF9FWFRFTlNJT05fVE9fUFJPQ0VTU19C
WV9QSUQpCi0gICAgICAgICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNzdWVfZmlsZV90
b19wcm9jZXNzX2J5X3BpZChBUFBfU0FOREJPWF9SRUFELCBwYXRoLCBTQU5EQk9YX0VYVEVOU0lP
Tl9VU0VSX0lOVEVOVCwgcGlkLnZhbHVlKCkpOworICAgICAgICAgICAgaWYgKCFwcm9jZXNzVG9r
ZW4pCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICBpZiAoV1RG
Ojpob2xkc19hbHRlcm5hdGl2ZTxwaWRfdD4oKnByb2Nlc3NUb2tlbikpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHNhbmRib3hfZXh0ZW5zaW9uX2lzc3VlX2ZpbGVfdG9fcHJvY2Vzc19ieV9waWQo
QVBQX1NBTkRCT1hfUkVBRCwgcGF0aCwgU0FOREJPWF9FWFRFTlNJT05fVVNFUl9JTlRFTlQsIFdU
Rjo6Z2V0PHBpZF90PigqcHJvY2Vzc1Rva2VuKSk7CisgICAgICAgICAgICBpZiAoV1RGOjpob2xk
c19hbHRlcm5hdGl2ZTxhdWRpdF90b2tlbl90PigqcHJvY2Vzc1Rva2VuKSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNzdWVfZmlsZV90b19wcm9jZXNzKEFQUF9T
QU5EQk9YX1JFQUQsIHBhdGgsIFNBTkRCT1hfRVhURU5TSU9OX1VTRVJfSU5URU5ULCBXVEY6Omdl
dDxhdWRpdF90b2tlbl90PigqcHJvY2Vzc1Rva2VuKSk7CisgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICNlbHNlCi0gICAgICAgICAgICBVTlVTRURfUEFSQU0ocGlkKTsKKyAgICAgICAgICAg
IFVOVVNFRF9QQVJBTShwcm9jZXNzVG9rZW4pOwogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgogICAgICAgICB9CiAg
ICAgfQogCi0gICAgU2FuZGJveEV4dGVuc2lvbkltcGwoY29uc3QgY2hhciogcGF0aCwgU2FuZGJv
eEV4dGVuc2lvbjo6VHlwZSB0eXBlLCBPcHRpb25hbDxwaWRfdD4gcGlkID0gV1RGOjpudWxsb3B0
KQotICAgICAgICA6IG1fdG9rZW4geyBzYW5kYm94RXh0ZW5zaW9uRm9yVHlwZShwYXRoLCB0eXBl
LCBwaWQpIH0KKyAgICBTYW5kYm94RXh0ZW5zaW9uSW1wbChjb25zdCBjaGFyKiBwYXRoLCBTYW5k
Ym94RXh0ZW5zaW9uOjpUeXBlIHR5cGUsIE9wdGlvbmFsPFZhcmlhbnQ8cGlkX3QsIGF1ZGl0X3Rv
a2VuX3Q+PiBwcm9jZXNzVG9rZW4pCisgICAgICAgIDogbV90b2tlbiB7IHNhbmRib3hFeHRlbnNp
b25Gb3JUeXBlKHBhdGgsIHR5cGUsIHByb2Nlc3NUb2tlbikgfQogICAgIHsKICAgICB9CiAKQEAg
LTMzNiw3ICszNDcsOCBAQCBib29sIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1h
CiB7CiAgICAgQVNTRVJUKCFoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uKTsKICAgICAKLSAgICBo
YW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uID0gU2FuZGJveEV4dGVuc2lvbkltcGw6OmNyZWF0ZShz
ZXJ2aWNlLnV0ZjgoKS5kYXRhKCksIFR5cGU6Ok1hY2gsIHBpZCk7CisgICAgVmFyaWFudDxwaWRf
dCwgYXVkaXRfdG9rZW5fdD4gcHJvY2Vzc1Rva2VuKHBpZCk7CisgICAgaGFuZGxlLm1fc2FuZGJv
eEV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb25JbXBsOjpjcmVhdGUoc2VydmljZS51dGY4KCku
ZGF0YSgpLCBUeXBlOjpNYWNoLCBXVEZNb3ZlKHByb2Nlc3NUb2tlbikpOwogICAgIGlmICghaGFu
ZGxlLm1fc2FuZGJveEV4dGVuc2lvbikgewogICAgICAgICBXVEZMb2dBbHdheXMoIkNvdWxkIG5v
dCBjcmVhdGUgYSAnJXMnIHNhbmRib3ggZXh0ZW5zaW9uIiwgc2VydmljZS51dGY4KCkuZGF0YSgp
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzUyLDcgKzM2NCwyMiBAQCBib29sIFNhbmRi
b3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlCiAgICAgaWYgKCFwaWQpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIGhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24gPSBTYW5kYm94RXh0
ZW5zaW9uSW1wbDo6Y3JlYXRlKHBhdGgudXRmOCgpLmRhdGEoKSwgVHlwZTo6UmVhZEJ5UGlkLCBw
aWQpOworICAgIFZhcmlhbnQ8cGlkX3QsIGF1ZGl0X3Rva2VuX3Q+IHByb2Nlc3NUb2tlbihwaWQp
OworICAgIGhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24gPSBTYW5kYm94RXh0ZW5zaW9uSW1wbDo6
Y3JlYXRlKHBhdGgudXRmOCgpLmRhdGEoKSwgVHlwZTo6UmVhZEJ5UHJvY2VzcywgV1RGTW92ZShw
cm9jZXNzVG9rZW4pKTsKKyAgICBpZiAoIWhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24pIHsKKyAg
ICAgICAgV1RGTG9nQWx3YXlzKCJDb3VsZCBub3QgY3JlYXRlIHNhbmRib3ggZXh0ZW5zaW9uIik7
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIHRydWU7Cit9
CisKK2Jvb2wgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZEJ5QXVkaXRUb2tl
bihjb25zdCBTdHJpbmcmIHBhdGgsIGF1ZGl0X3Rva2VuX3QgYXVkaXRUb2tlbiwgSGFuZGxlJiBo
YW5kbGUpCit7CisgICAgQVNTRVJUKCFoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uKTsKKworICAg
IFZhcmlhbnQ8cGlkX3QsIGF1ZGl0X3Rva2VuX3Q+IHByb2Nlc3NUb2tlbihhdWRpdFRva2VuKTsK
KyAgICBoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uID0gU2FuZGJveEV4dGVuc2lvbkltcGw6OmNy
ZWF0ZShwYXRoLnV0ZjgoKS5kYXRhKCksIFR5cGU6OlJlYWRCeVByb2Nlc3MsIFdURk1vdmUocHJv
Y2Vzc1Rva2VuKSk7CiAgICAgaWYgKCFoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uKSB7CiAgICAg
ICAgIFdURkxvZ0Fsd2F5cygiQ291bGQgbm90IGNyZWF0ZSBzYW5kYm94IGV4dGVuc2lvbiIpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNTA1MzApCisrKyBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4JKHdvcmtp
bmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5IExl
Z2FjeVJlY2VpdgogICAgIEdldFBsdWdpbnMoYm9vbCByZWZyZXNoKSAtPiAoVmVjdG9yPFdlYkNv
cmU6OlBsdWdpbkluZm8+IHBsdWdpbnMsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBhcHBs
aWNhdGlvblBsdWdpbnMsIHN0cnVjdCBPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6U3VwcG9ydGVk
UGx1Z2luSWRlbnRpZmllcj4+IHN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXJzKSBTeW5jaHJvbm91
cwogICAgIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NU
b2tlbikgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlLCBib29sIHN1cHBvcnRz
QXN5bmNocm9ub3VzSW5pdGlhbGl6YXRpb24pIFN5bmNocm9ub3VzCiAjZW5kaWYKLSAgICBHZXRO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25I
YW5kbGUpIFN5bmNocm9ub3VzCisgICAgR2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkgLT4g
KHN0cnVjdCBXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8gY29ubmVjdGlvbklu
Zm8pIFN5bmNocm9ub3VzCiAgICAgUHJvY2Vzc1JlYWR5VG9TdXNwZW5kKCkKICAgICBEaWRDYW5j
ZWxQcm9jZXNzU3VzcGVuc2lvbigpCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAkocmV2aXNpb24gMjUw
NTMwKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2VuZGlmCiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyTWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgiCiAjaW5j
bHVkZSAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJOZXR3
b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgpAQCAt
MTU4LDEwICsxNTksMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpvcGVuTmV0d29ya1By
bwogICAgICAgICBhdXRvIHJlcXVlc3QgPSBtX2Nvbm5lY3Rpb25SZXF1ZXN0cy50YWtlKGNvbm5l
Y3Rpb25SZXF1ZXN0SWRlbnRpZmllcik7CiAKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykg
fHwgT1MoV0lORE9XUykKLSAgICAgICAgcmVxdWVzdC5yZXBseSgqY29ubmVjdGlvbklkZW50aWZp
ZXIpOworICAgICAgICByZXF1ZXN0LnJlcGx5KE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8g
eyBXVEZNb3ZlKCpjb25uZWN0aW9uSWRlbnRpZmllcikgfSB9KTsKICNlbGlmIE9TKERBUldJTikK
ICAgICAgICAgTUVTU0FHRV9DSEVDSyhNQUNIX1BPUlRfVkFMSUQoY29ubmVjdGlvbklkZW50aWZp
ZXItPnBvcnQoKSkpOwotICAgICAgICByZXF1ZXN0LnJlcGx5KElQQzo6QXR0YWNobWVudCB7IGNv
bm5lY3Rpb25JZGVudGlmaWVyLT5wb3J0KCksIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EIH0pOwor
ICAgICAgICByZXF1ZXN0LnJlcGx5KE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8geyBJUEM6
OkF0dGFjaG1lbnQoY29ubmVjdGlvbklkZW50aWZpZXItPnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9N
T1ZFX1NFTkQpLCBjb25uZWN0aW9uKCktPmdldEF1ZGl0VG9rZW4oKSB9KTsKICNlbHNlCiAgICAg
ICAgIG5vdEltcGxlbWVudGVkKCk7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjUwNTMwKQorKysgU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5
KQpAQCAtNDcwMCw2ICs0NzAwLDcgQEAKIAkJRTFFNTUyQzMxNkFFMDY1RTAwNEVENjUzIC8qIFNh
bmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMUVFNTNEQzExRjhDRjlGMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5k
bGVQYWdlRWRpdG9yQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
amVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMUVFNTNFNjExRjhDRkZCMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9y
Q2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVk
QnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUzNDM5QjYzMjM0NTQ2M0EwMDExREUwQiAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZv
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaDsgcGF0aCA9
IE5ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFNDA0OTA3MDIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xsZXJQYWlyTWFj
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGVyUGFpck1hYy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDA0OTA3MTIxREU2NUY3MDAzN0YwREIgLyog
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
UmVtb3RlTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzIyMURF
NjVGNzAwMzdGMERCIC8qIFNjcm9sbGVyUGFpck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGVyUGFpck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTY3MDAsNiArNjcwMSw3IEBACiAJCQkJNTEwNUIwRDQxNjJGN0E3QTAwRTI3
NzA5IC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8sCiAJCQkJNTEwNUIwRDUxNjJG
N0E3QTAwRTI3NzA5IC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oICovLAogCQkJCTUxRkIw
OTAyMTYzQTNCMUMwMEVDMzI0QSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMu
aW4gKi8sCisJCQkJRTM0MzlCNjMyMzQ1NDYzQTAwMTFERTBCIC8qIE5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbkluZm8uaCAqLywKIAkJCQk1MUFCRjY1NjE2MzkyRjE1MDAxMzJBN0EgLyogV2ViTG9h
ZGVyU3RyYXRlZ3kuY3BwICovLAogCQkJCTUxQUJGNjU3MTYzOTJGMTUwMDEzMkE3QSAvKiBXZWJM
b2FkZXJTdHJhdGVneS5oICovLAogCQkJCUE1ODYwRTZGMjMwRjY3REUwMDQ2MUFBRSAvKiBXZWJS
ZXNvdXJjZUludGVyY2VwdENvbnRyb2xsZXIuY3BwICovLApJbmRleDogU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMjUwNTMwKQorKysgU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3
IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24u
aCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgiCiAjaW5jbHVkZSAi
TmV0d29ya1Nlc3Npb24uaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1l
dGVycy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIgpAQCAt
MTEzNywxMCArMTEzOCwxMCBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldEluamVjdGVkQnVuZGxlUGFy
YW1lCiAgICAgaW5qZWN0ZWRCdW5kbGUtPnNldEJ1bmRsZVBhcmFtZXRlcnModmFsdWUpOwogfQog
Ci1zdGF0aWMgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGdldE5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCitzdGF0aWMgTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uSW5mbyBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uKQogewotICAgIElQQzo6QXR0YWNobWVudCBlbmNvZGVkQ29ubmVjdGlv
bklkZW50aWZpZXI7Ci0gICAgaWYgKCFjb25uZWN0aW9uLnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLCBNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OlJlcGx5KGVuY29kZWRD
b25uZWN0aW9uSWRlbnRpZmllciksIDApKSB7CisgICAgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
SW5mbyBjb25uZWN0aW9uSW5mbzsKKyAgICBpZiAoIWNvbm5lY3Rpb24uc2VuZFN5bmMoTWVzc2Fn
ZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCksIE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6UmVwbHko
Y29ubmVjdGlvbkluZm8pLCAwKSkgewogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BF
KQogICAgICAgICAvLyBHVEsrIGFuZCBXUEUgcG9ydHMgZG9uJ3QgZXhpdCBvbiBzZW5kIHN5bmMg
bWVzc2FnZSBmYWlsdXJlLgogICAgICAgICAvLyBJbiB0aGlzIHBhcnRpY3VsYXIgY2FzZSwgdGhl
IG5ldHdvcmsgcHJvY2VzcyBjYW4gYmUgdGVybWluYXRlZCBieSB0aGUgVUkgcHJvY2VzcyB3aGls
ZSB0aGUKQEAgLTExNTMsMTYgKzExNTQsNyBAQCBzdGF0aWMgSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyIGdldE5lCiAjZW5kaWYKICAgICB9CiAKLSNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VU
UykKLSAgICByZXR1cm4gZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyLnJlbGVhc2VGaWxlRGVz
Y3JpcHRvcigpOwotI2VsaWYgT1MoREFSV0lOKQotICAgIHJldHVybiBlbmNvZGVkQ29ubmVjdGlv
bklkZW50aWZpZXIucG9ydCgpOwotI2VsaWYgT1MoV0lORE9XUykKLSAgICByZXR1cm4gZW5jb2Rl
ZENvbm5lY3Rpb25JZGVudGlmaWVyLmhhbmRsZSgpOwotI2Vsc2UKLSAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICByZXR1cm4gSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKCk7Ci0jZW5k
aWYKKyAgICByZXR1cm4gY29ubmVjdGlvbkluZm87CiB9CiAKIE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbiYgV2ViUHJvY2Vzczo6ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkKQEAgLTEx
NzIsMTcgKzExNjQsMjAgQEAgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uJiBXZWJQcm9jZXNzOjpl
bgogCiAgICAgLy8gSWYgd2UndmUgbG9zdCBvdXIgY29ubmVjdGlvbiB0byB0aGUgbmV0d29yayBw
cm9jZXNzIChlLmcuIGl0IGNyYXNoZWQpIHRyeSB0byByZS1lc3RhYmxpc2ggaXQuCiAgICAgaWYg
KCFtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbikgewotICAgICAgICBJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIgPSBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oKnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkpOworICAgICAgICBhdXRvIGNvbm5lY3Rp
b25JbmZvID0gZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCpwYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpKTsKIAogICAgICAgICAvLyBSZXRyeSBvbmNlIGlmIHRoZSBJUEMgdG8gZ2V0IHRoZSBj
b25uZWN0aW9uSWRlbnRpZmllciBzdWNjZWVkZWQgYnV0IHRoZSBjb25uZWN0aW9uSWRlbnRpZmll
ciB3ZSByZWNlaXZlZAogICAgICAgICAvLyBpcyBpbnZhbGlkLiBUaGlzIG1heSBpbmRpY2F0ZSB0
aGF0IHRoZSBuZXR3b3JrIHByb2Nlc3MgaGFzIGNyYXNoZWQuCi0gICAgICAgIGlmICghSVBDOjpD
b25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSWRlbnRpZmllcikpCi0gICAg
ICAgICAgICBjb25uZWN0aW9uSWRlbnRpZmllciA9IGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bigqcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKSk7CisgICAgICAgIGlmICghSVBDOjpDb25uZWN0
aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSW5mby5pZGVudGlmaWVyKCkpKQorICAg
ICAgICAgICAgY29ubmVjdGlvbkluZm8gPSBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCkpOwogCi0gICAgICAgIGlmICghSVBDOjpDb25uZWN0aW9u
OjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSWRlbnRpZmllcikpCisgICAgICAgIGlmICgh
SVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSW5mby5pZGVudGlm
aWVyKCkpKQogICAgICAgICAgICAgQ1JBU0goKTsKIAotICAgICAgICBtX25ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbiA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGNvbm5lY3Rpb25J
ZGVudGlmaWVyKTsKKyAgICAgICAgbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gPSBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShjb25uZWN0aW9uSW5mby5pZGVudGlmaWVyKCkpOwor
I2lmIE9TKERBUldJTikKKyAgICAgICAgbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24tPnNldE5l
dHdvcmtQcm9jZXNzQXVkaXRUb2tlbihXVEZNb3ZlKGNvbm5lY3Rpb25JbmZvLmF1ZGl0VG9rZW4p
KTsKKyNlbmRpZgogICAgIH0KICAgICAKICAgICByZXR1cm4gKm1fbmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgJKHJldmlzaW9uIDI1MDUzMCkKKysr
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bi5oCSh3b3JraW5nIGNvcHkpCkBAIC03Niw2ICs3NiwxMSBAQCBwdWJsaWM6CiAgICAgV2ViU1dD
bGllbnRDb25uZWN0aW9uJiBzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbigpOwogI2VuZGlmCiAKKyNp
ZiBIQVZFKEFVRElUX1RPS0VOKQorICAgIHZvaWQgc2V0TmV0d29ya1Byb2Nlc3NBdWRpdFRva2Vu
KE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IGF1ZGl0VG9rZW4pIHsgbV9uZXR3b3JrUHJvY2Vzc0F1
ZGl0VG9rZW4gPSBhdWRpdFRva2VuOyB9CisgICAgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4gbmV0
d29ya1Byb2Nlc3NBdWRpdFRva2VuKCkgY29uc3QgeyByZXR1cm4gbV9uZXR3b3JrUHJvY2Vzc0F1
ZGl0VG9rZW47IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwogCkBAIC05OSw2ICsxMDQsOSBAQCBw
cml2YXRlOgogCiAgICAgLy8gVGhlIGNvbm5lY3Rpb24gZnJvbSB0aGUgd2ViIHByb2Nlc3MgdG8g
dGhlIG5ldHdvcmsgcHJvY2Vzcy4KICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rp
b247CisjaWYgSEFWRShBVURJVF9UT0tFTikKKyAgICBPcHRpb25hbDxhdWRpdF90b2tlbl90PiBt
X25ldHdvcmtQcm9jZXNzQXVkaXRUb2tlbjsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKElOREVYRURf
REFUQUJBU0UpCiAgICAgUmVmUHRyPFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4gbV93ZWJJREJD
b25uZWN0aW9uOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaAkobm9uZXhpc3Rl
bnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb25JbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MCBAQAorLyoKKyogQ29w
eXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjcHJhZ21hIG9uY2UKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsK
KyAgICBJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbjsKKyNpZiBIQVZFKEFVRElUX1RPS0VOKQor
ICAgIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IGF1ZGl0VG9rZW47CisjZW5kaWYKKworICAgIElQ
Qzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBpZGVudGlmaWVyKCkKKyAgICB7CisjaWYgVVNFKFVO
SVhfRE9NQUlOX1NPQ0tFVFMpCisgICAgICAgIHJldHVybiBJUEM6OkNvbm5lY3Rpb246OklkZW50
aWZpZXIoY29ubmVjdGlvbi5yZWxlYXNlRmlsZURlc2NyaXB0b3IoKSk7CisjZWxpZiBPUyhEQVJX
SU4pCisgICAgICAgIHJldHVybiBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIoY29ubmVjdGlv
bi5wb3J0KCkpOworI2VsaWYgT1MoV0lORE9XUykKKyAgICAgICAgcmV0dXJuIElQQzo6Q29ubmVj
dGlvbjo6SWRlbnRpZmllcihjb25uZWN0aW9uLmhhbmRsZSgpKTsKKyNlbHNlCisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyKCk7CisjZW5kaWYKKyAgICB9CisgICAgCisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBjb25uZWN0aW9u
OworI2lmIEhBVkUoQVVESVRfVE9LRU4pCisgICAgICAgIGVuY29kZXIgPDwgYXVkaXRUb2tlbjsK
KyNlbmRpZgorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVy
JiBkZWNvZGVyLCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvJiBpbmZvKQorICAgIHsKKyAg
ICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmNvbm5lY3Rpb24pKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworI2lmIEhBVkUoQVVESVRfVE9LRU4pCisgICAgICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoaW5mby5hdWRpdFRva2VuKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyNl
bmRpZgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9OworCit9OwpJbmRleDogU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5
LmNwcAkocmV2aXNpb24gMjUwNTMwKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODYsNiArMjg2LDkg
QEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkRnJvbQogICAgIGxvYWRQYXJh
bWV0ZXJzLndlYlBhZ2VJRCA9IHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQ7CiAgICAgbG9hZFBh
cmFtZXRlcnMud2ViRnJhbWVJRCA9IHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlEOwogICAgIGxv
YWRQYXJhbWV0ZXJzLnBhcmVudFBJRCA9IHByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpOworI2lm
IEhBVkUoQVVESVRfVE9LRU4pCisgICAgbG9hZFBhcmFtZXRlcnMubmV0d29ya1Byb2Nlc3NBdWRp
dFRva2VuID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uKCkubmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuKCk7CisjZW5kaWYKICAgICBsb2FkUGFy
YW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKICAgICBsb2FkUGFyYW1ldGVycy5jb250ZW50U25p
ZmZpbmdQb2xpY3kgPSBjb250ZW50U25pZmZpbmdQb2xpY3k7CiAgICAgbG9hZFBhcmFtZXRlcnMu
Y29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgPSBjb250ZW50RW5jb2RpbmdTbmlmZmluZ1Bv
bGljeTsKQEAgLTU2MSw2ICs1NjQsOSBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVz
b3VyY2VTeW5jCiAgICAgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlEID0gcGFnZUlEOwogICAgIGxv
YWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQgPSBmcmFtZUlEOwogICAgIGxvYWRQYXJhbWV0ZXJzLnBh
cmVudFBJRCA9IHByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpOworI2lmIEhBVkUoQVVESVRfVE9L
RU4pCisgICAgbG9hZFBhcmFtZXRlcnMubmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuID0gV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkubmV0d29y
a1Byb2Nlc3NBdWRpdFRva2VuKCk7CisjZW5kaWYKICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0
ID0gcmVxdWVzdDsKICAgICBsb2FkUGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3kgPSBD
b250ZW50U25pZmZpbmdQb2xpY3k6OlNuaWZmQ29udGVudDsKICAgICBsb2FkUGFyYW1ldGVycy5j
b250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSA9IENvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9s
aWN5OjpTbmlmZjsKQEAgLTYzMCw2ICs2MzYsOSBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpz
dGFydFBpbmdMb2FkKEZyCiAgICAgbG9hZFBhcmFtZXRlcnMuc291cmNlT3JpZ2luID0gJmRvY3Vt
ZW50LT5zZWN1cml0eU9yaWdpbigpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnRvcE9yaWdpbiA9ICZk
b2N1bWVudC0+dG9wT3JpZ2luKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMucGFyZW50UElEID0gcHJl
c2VudGluZ0FwcGxpY2F0aW9uUElEKCk7CisjaWYgSEFWRShBVURJVF9UT0tFTikKKyAgICBsb2Fk
UGFyYW1ldGVycy5uZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4gPSBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5uZXR3b3JrUHJvY2Vzc0F1ZGl0
VG9rZW4oKTsKKyNlbmRpZgogICAgIGxvYWRQYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5ID0gb3B0aW9ucy5jcmVkZW50aWFscyA9PSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpP
bWl0ID8gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRvTm90VXNlIDogU3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3k6OlVzZTsKICAgICBsb2FkUGFyYW1ldGVycy5vcHRpb25zID0gb3B0aW9uczsKICAg
ICBsb2FkUGFyYW1ldGVycy5vcmlnaW5hbFJlcXVlc3RIZWFkZXJzID0gb3JpZ2luYWxSZXF1ZXN0
SGVhZGVyczsKQEAgLTY5MCw2ICs2OTksOSBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpwcmVj
b25uZWN0VG8oRnJhCiAgICAgcGFyYW1ldGVycy53ZWJQYWdlSUQgPSB3ZWJQYWdlLT5pZGVudGlm
aWVyKCk7CiAgICAgcGFyYW1ldGVycy53ZWJGcmFtZUlEID0gd2ViRnJhbWUtPmZyYW1lSUQoKTsK
ICAgICBwYXJhbWV0ZXJzLnBhcmVudFBJRCA9IHByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpOwor
I2lmIEhBVkUoQVVESVRfVE9LRU4pCisgICAgcGFyYW1ldGVycy5uZXR3b3JrUHJvY2Vzc0F1ZGl0
VG9rZW4gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5uZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4oKTsKKyNlbmRpZgogICAgIHBhcmFtZXRl
cnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeTsKICAg
ICBwYXJhbWV0ZXJzLnNob3VsZFByZWNvbm5lY3RPbmx5ID0gUHJlY29ubmVjdE9ubHk6OlllczsK
ICAgICBwYXJhbWV0ZXJzLnNob3VsZFJlc3RyaWN0SFRUUFJlc3BvbnNlQWNjZXNzID0gc2hvdWxk
UGVyZm9ybVNlY3VyaXR5Q2hlY2tzKCk7CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTA2MjgpCisrKyBUb29scy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0xMC0wMiAgUGVyIEFybmUg
Vm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTigyNDk2NDkp
OiBVbmFibGUgdG8gb3BlbiBsb2NhbCBmaWxlcyBpbiBNaW5pQnJvd3NlciBvbiBtYWNPUworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNzk4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgQVBJIHRl
c3QgV0tXZWJWaWV3LkxvYWRGaWxlV2l0aExvYWRSZXF1ZXN0LgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2FkRmlsZVVSTC5tbToKKwogMjAxOS0xMC0wMiAg
VGhpYmF1bHQgU2F1bmllciAgPHRzYXVuaWVyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTVHJl
YW1lcl0gTGV0IHBsYXliaW4gaGFuZGxlIHJlZGlyZWN0cyBmb3IgdXMgd2hlbiBhcHByb3ByaWF0
ZQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2FkRmlsZVVS
TC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0xvYWRGaWxlVVJMLm1tCShyZXZpc2lvbiAyNTA1MzApCisrKyBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0xvYWRGaWxlVVJMLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2
ICszMiwxNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dlYlZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDx3
dGYvUmV0YWluUHRyLmg+CiAKK1RFU1QoV0tXZWJWaWV3LCBMb2FkRmlsZVdpdGhMb2FkUmVxdWVz
dCkKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisKKyAgICBhdXRvIGRlbGVn
YXRlID0gYWRvcHROUyhbW1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAg
ICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAg
TlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CisgICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisgICAgW2RlbGVnYXRlIHdhaXRGb3JEaWRG
aW5pc2hOYXZpZ2F0aW9uXTsKK30KIAogVEVTVChXS1dlYlZpZXcsIExvYWRUd29GaWxlcykKIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380128</attachid>
            <date>2019-10-03 10:17:50 -0700</date>
            <delta_ts>2019-10-03 11:19:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201798-20191003101749.patch</filename>
            <type>text/plain</type>
            <size>31016</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTA2MzUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE5LTEwLTAyICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKDI0OTY0OSk6IFVuYWJsZSB0
byBvcGVuIGxvY2FsIGZpbGVzIGluIE1pbmlCcm93c2VyIG9uIG1hY09TCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE3OTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgSEFWRV9BVURJVF9UT0tFTiBh
bmQgU0FOREJPWF9JU1NVRV9SRUFEX0VYVEVOU0lPTl9UT19QUk9DRVNTX0JZX0FVRElUX1RPS0VO
IGRlZmluZXMuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxOS0xMC0wMiAgWmFu
IERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgW05pY29zaWFdIEVu
YWJsZSBhc3luYyBzY3JvbGxpbmcgYXQgYnVpbGQtdGltZSBmb3IgTmljb3NpYS11c2luZyBwb3J0
cwpJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiAyNTA1MzApCisrKyBTb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC02OTMsNiArNjkzLDcgQEAKICNkZWZpbmUgSEFW
RV9QVEhSRUFEX1NFVE5BTUVfTlAgMQogI2RlZmluZSBIQVZFX1JFQURMSU5FIDEKICNkZWZpbmUg
SEFWRV9TWVNfVElNRUJfSCAxCisjZGVmaW5lIEhBVkVfQVVESVRfVE9LRU4gMQogCiAjaWYgX19o
YXNfaW5jbHVkZSg8bWFjaC9tYWNoX2V4Yy5kZWZzPikgJiYgIVBMQVRGT1JNKEdUSykKICNkZWZp
bmUgSEFWRV9NQUNIX0VYQ0VQVElPTlMgMQpAQCAtMTUyNyw2ICsxNTI4LDEwIEBACiAjZGVmaW5l
IEhBVkVfU0FOREJPWF9JU1NVRV9SRUFEX0VYVEVOU0lPTl9UT19QUk9DRVNTX0JZX1BJRCAxCiAj
ZW5kaWYKIAorI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxNTAwKQorI2RlZmluZSBIQVZFX1NBTkRCT1hfSVNTVUVfUkVBRF9FWFRFTlNJ
T05fVE9fUFJPQ0VTU19CWV9BVURJVF9UT0tFTiAxCisjZW5kaWYKKwogI2lmIChQTEFURk9STShN
QUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCAoUExB
VEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTMwMDAwKQogI2RlZmluZSBIQVZFX01ETlNfRkFTVF9SRUdJU1RSQVRJT04gMQogI2VuZGlmCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwkocmV2aXNpb24gMjUwNjI3KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1NyBAQAorMjAxOS0xMC0wMiAgUGVyIEFybmUgVm9s
bGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTigyNDk2NDkpOiBV
bmFibGUgdG8gb3BlbiBsb2NhbCBmaWxlcyBpbiBNaW5pQnJvd3NlciBvbiBtYWNPUworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNzk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGNvbW1pdCA8aHR0
cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI0OTY0OT4gaW50cm9kdWNlZCBhIE1pbmlC
cm93c2VyIHJlZ3Jlc3Npb24gb24gbWFjT1Mgd2hlcmUgTWluaUJyb3dzZXIKKyAgICAgICAgaXMg
bm90IGFibGUgdG8gb3BlbiBsb2NhbCBmaWxlcy4gVGhlIGNoYW5nZSBzZXQgcjI0OTY0OSBmaXhl
ZCBhIHByb2JsZW0gd2hlcmUgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBQSUQgd2FzIG5vdCByZWFk
eQorICAgICAgICB0byBiZSB1c2VkIHdoZW4gY3JlYXRpbmcgYSBzYW5kYm94IGV4dGVuc2lvbi4g
VGhpcyBoYXBwZW5lZCBpbiB0aGUgY2FzZXMgd2hlcmUgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBo
YWQgbm90IGZpbmlzaGVkCisgICAgICAgIGxhdW5jaGluZyB3aGVuIHRoZSBsb2FkIHN0YXJ0ZWQu
IFRoZSBXZWJDb250ZW50IHByb2Nlc3MgaXMgYWxzbyBjcmVhdGluZyBzYW5kYm94IGV4dGVuc2lv
bnMgZm9yIHRoZSBOZXR3b3JraW5nIHByb2Nlc3MKKyAgICAgICAgZm9yIHRoZSBmaWxlcyBiZWlu
ZyBsb2FkZWQsIGFuZCBhbHNvIG5lZWRzIHRvIGJlIHBhc3NpbmcgdGhlIGF1ZGl0IHRva2VuIG9m
IHRoZSBOZXR3b3JraW5nIHByb2Nlc3Mgd2hlbiBjcmVhdGluZyB0aGVzZS4KKyAgICAgICAgVGhp
cyBwYXRjaCBpbXBsZW1lbnRzIGdldHRpbmcgdGhlIGF1ZGl0IHRva2VuIGZvciB0aGUgTmV0d29y
a2luZyBwcm9jZXNzIHdoZW4gdGhlIFdlYlByb2Nlc3MgaXMgc2VuZGluZyBhIG1lc3NhZ2UgdG8K
KyAgICAgICAgdGhlIFVJIHByb2Nlc3MgdG8gZXN0YWJsaXNoIHRoZSBOZXR3b3JraW5nIHByb2Nl
c3MgY29ubmVjdGlvbi4gVGhlIGF1ZGl0IHRva2VuIGlzIHN0b3JlZCBpbiB0aGUgTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uCisgICAgICAgIG9iamVjdCwgYW5kIHBhc3NlZCB0byB0aGUgTmV0d29y
a0xvYWRQYXJhbWV0ZXJzIG9iamVjdCB3aGVuIHRoZSBsb2FkIGlzIHN0YXJ0ZWQuIEZpbmFsbHks
IHdoZW4gZW5jb2RpbmcgdGhlIE5ldHdvcmsKKyAgICAgICAgcmVzb3VyY2VzIGxvYWQgcGFyYW1l
dGVycywgdGhlIGF1ZGl0IHRva2VuIGlzIHVzZWQgdG8gY3JlYXRlIGFuIGV4dGVuc2lvbiBmb3Ig
dGhlIE5ldHdvcmtpbmcgcHJvY2Vzcy4KKworICAgICAgICBBUEkgdGVzdDogV0tXZWJWaWV3Lkxv
YWRGaWxlV2l0aExvYWRSZXF1ZXN0CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5f
dD46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46
OmRlY29kZSk6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmg6CisgICAg
ICAgICogU2hhcmVkL0NvY29hL1NhbmRib3hFeHRlbnNpb25Db2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6U2FuZGJveEV4dGVuc2lvbkltcGw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNh
bmRib3hFeHRlbnNpb25JbXBsOjpzYW5kYm94RXh0ZW5zaW9uRm9yVHlwZSk6CisgICAgICAgIChX
ZWJLaXQ6OlNhbmRib3hFeHRlbnNpb25JbXBsOjpTYW5kYm94RXh0ZW5zaW9uSW1wbCk6CisgICAg
ICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXBC
eVBpZCk6CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
clJlYWRCeVBpZCk6CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhh
bmRsZUZvclJlYWRCeUF1ZGl0VG9rZW4pOgorICAgICAgICAqIFNoYXJlZC9TYW5kYm94RXh0ZW5z
aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6Om9wZW5OZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OnNldE5ldHdvcmtQcm9j
ZXNzQXVkaXRUb2tlbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bjo6bmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbzo6aWRlbnRpZmllcik6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm86OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm86OmRlY29kZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21OZXR3b3Jr
UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3Vy
Y2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnN0
YXJ0UGluZ0xvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6cHJlY29u
bmVjdFRvKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjplbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOgorCiAyMDE5LTEwLTAy
ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
Q01ha2UtYnVpbHQgV2ViS2l0LmZyYW1ld29yayBzaG91bGQgbGF1bmNoIFhQQyBzZXJ2aWNlcyBz
dWNjZXNzZnVsbHkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWRQYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAkocmV2aXNpb24gMjUwNTMwKQorKysgU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5
KQpAQCAtNDYsNiArNDYsOSBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IHdlYkZyYW1lSUQ7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiB0b3BPcmln
aW47CiAgICAgV1RGOjpQcm9jZXNzSUQgcGFyZW50UElEIHsgMCB9OworI2lmIEhBVkUoQVVESVRf
VE9LRU4pCisgICAgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4gbmV0d29ya1Byb2Nlc3NBdWRpdFRv
a2VuOworI2VuZGlmCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Q7CiAgICAg
V2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGljeSB7IFdl
YkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeTo6U25pZmZDb250ZW50IH07CiAgICAgV2ViQ29y
ZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgY29udGVudEVuY29kaW5nU25pZmZpbmdQ
b2xpY3kgeyBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25pZmYgfTsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyNTA1MzApCisrKyBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYsNyArNjYsMTQgQEAgdm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVyczo6ZW5jbwogCiAgICAgaWYgKHJlcXVlc3QudXJsKCkuaXNMb2NhbEZp
bGUoKSkgewogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgcmVxdWVzdFNhbmRib3hF
eHRlbnNpb247CisjaWYgSEFWRShTQU5EQk9YX0lTU1VFX1JFQURfRVhURU5TSU9OX1RPX1BST0NF
U1NfQllfQVVESVRfVE9LRU4pCisgICAgICAgIGlmIChuZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4p
CisgICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkQnlBdWRp
dFRva2VuKHJlcXVlc3QudXJsKCkuZmlsZVN5c3RlbVBhdGgoKSwgKm5ldHdvcmtQcm9jZXNzQXVk
aXRUb2tlbiwgcmVxdWVzdFNhbmRib3hFeHRlbnNpb24pOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUocmVxdWVzdC51cmwoKS5maWxlU3lz
dGVtUGF0aCgpLCBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpSZWFkT25seSwgcmVxdWVzdFNhbmRi
b3hFeHRlbnNpb24pOworI2Vsc2UKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFu
ZGxlKHJlcXVlc3QudXJsKCkuZmlsZVN5c3RlbVBhdGgoKSwgU2FuZGJveEV4dGVuc2lvbjo6VHlw
ZTo6UmVhZE9ubHksIHJlcXVlc3RTYW5kYm94RXh0ZW5zaW9uKTsKKyNlbmRpZgogICAgICAgICBl
bmNvZGVyIDw8IHJlcXVlc3RTYW5kYm94RXh0ZW5zaW9uOwogICAgIH0KIApJbmRleDogU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcAkocmV2aXNpb24gMjUw
NTMwKQorKysgU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xODgsNCArMTg4LDIxIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxTSEEx
OjpEaWdlc3Q+OjpkZWNvZGUKICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVGaXhlZExlbmd0aERh
dGEoZGlnZXN0LmRhdGEoKSwgc2l6ZW9mKGRpZ2VzdCksIDEpOwogfQogCisjaWYgSEFWRShBVURJ
VF9UT0tFTikKK3ZvaWQgQXJndW1lbnRDb2RlcjxhdWRpdF90b2tlbl90Pjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IGF1ZGl0X3Rva2VuX3QmIGF1ZGl0VG9rZW4pCit7CisgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgoYXVkaXRUb2tlbi52YWwpOyBp
KyspCisgICAgICAgIGVuY29kZXIgPDwgYXVkaXRUb2tlbi52YWxbaV07Cit9CisKK2Jvb2wgQXJn
dW1lbnRDb2RlcjxhdWRpdF90b2tlbl90Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIGF1ZGl0
X3Rva2VuX3QmIGF1ZGl0VG9rZW4pCit7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IFdU
Rl9BUlJBWV9MRU5HVEgoYXVkaXRUb2tlbi52YWwpOyBpKyspIHsKKyAgICAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShhdWRpdFRva2VuLnZhbFtpXSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIElQ
QwpJbmRleDogU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCShy
ZXZpc2lvbiAyNTA1MzApCisrKyBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENv
ZGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC02MjEsNCArNjIxLDExIEBAIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8U0hBMTo6RGkKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2Rl
ciYsIFNIQTE6OkRpZ2VzdCYpOwogfTsKIAorI2lmIEhBVkUoQVVESVRfVE9LRU4pCit0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rva2VuX3Q+IHsKKyAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IGF1ZGl0X3Rva2VuX3QmKTsKKyAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoRGVjb2RlciYsIGF1ZGl0X3Rva2VuX3QmKTsKK307CisjZW5kaWYKKwogfSAvLyBu
YW1lc3BhY2UgSVBDCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9u
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5o
CShyZXZpc2lvbiAyNTA1MzApCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9TYW5kYm94RXh0ZW5z
aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAgICAgICBS
ZWFkV3JpdGUsCiAgICAgICAgIE1hY2gsCiAgICAgICAgIEdlbmVyaWMsCi0gICAgICAgIFJlYWRC
eVBpZAorICAgICAgICBSZWFkQnlQcm9jZXNzCiAgICAgfTsKIAogICAgIGNsYXNzIEhhbmRsZSB7
CkBAIC0xMDYsNiArMTA2LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGNyZWF0ZUhhbmRs
ZUZvckdlbmVyaWNFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb25DbGFzcywgSGFuZGxl
Jik7CiAgICAgc3RhdGljIGJvb2wgY3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cEJ5UGlkKGNvbnN0
IFN0cmluZyYgc2VydmljZSwgUHJvY2Vzc0lELCBIYW5kbGUmKTsKICAgICBzdGF0aWMgYm9vbCBj
cmVhdGVIYW5kbGVGb3JSZWFkQnlQaWQoY29uc3QgU3RyaW5nJiBwYXRoLCBQcm9jZXNzSUQsIEhh
bmRsZSYpOworI2lmIEhBVkUoQVVESVRfVE9LRU4pCisgICAgc3RhdGljIGJvb2wgY3JlYXRlSGFu
ZGxlRm9yUmVhZEJ5QXVkaXRUb2tlbihjb25zdCBTdHJpbmcmIHBhdGgsIGF1ZGl0X3Rva2VuX3Qs
IEhhbmRsZSYpOworI2VuZGlmCiAgICAgflNhbmRib3hFeHRlbnNpb24oKTsKIAogICAgIGJvb2wg
Y29uc3VtZSgpOwpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvU2FuZGJveEV4dGVu
c2lvbkNvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1Nh
bmRib3hFeHRlbnNpb25Db2NvYS5tbQkocmV2aXNpb24gMjUwNTMwKQorKysgU291cmNlL1dlYktp
dC9TaGFyZWQvQ29jb2EvU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJEZWNvZGVyLmgiCiAjaW1wb3J0ICJFbmNvZGVyLmgi
CiAjaW1wb3J0IDx3dGYvRmlsZVN5c3RlbS5oPgorI2ltcG9ydCA8d3RmL1ZhcmlhbnQuaD4KICNp
bXBvcnQgPHd0Zi9zcGkvZGFyd2luL1NhbmRib3hTUEkuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KIApAQCAtNDAsOSArNDEsOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFNh
bmRib3hFeHRlbnNpb25JbXBsIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNhbmRib3hFeHRlbnNpb25JbXBsPiBjcmVh
dGUoY29uc3QgY2hhciogcGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZSB0eXBlLCBPcHRpb25h
bDxwaWRfdD4gcGlkID0gV1RGOjpudWxsb3B0KQorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
U2FuZGJveEV4dGVuc2lvbkltcGw+IGNyZWF0ZShjb25zdCBjaGFyKiBwYXRoLCBTYW5kYm94RXh0
ZW5zaW9uOjpUeXBlIHR5cGUsIE9wdGlvbmFsPFZhcmlhbnQ8cGlkX3QsIGF1ZGl0X3Rva2VuX3Q+
PiBwcm9jZXNzVG9rZW4gPSBXVEY6Om51bGxvcHQpCiAgICAgewotICAgICAgICBzdGQ6OnVuaXF1
ZV9wdHI8U2FuZGJveEV4dGVuc2lvbkltcGw+IGltcGwgeyBuZXcgU2FuZGJveEV4dGVuc2lvbklt
cGwocGF0aCwgdHlwZSwgcGlkKSB9OworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2FuZGJveEV4
dGVuc2lvbkltcGw+IGltcGwgeyBuZXcgU2FuZGJveEV4dGVuc2lvbkltcGwocGF0aCwgdHlwZSwg
cHJvY2Vzc1Rva2VuKSB9OwogICAgICAgICBpZiAoIWltcGwtPm1fdG9rZW4pCiAgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIGltcGw7CkBAIC04NCw3ICs4NSw3IEBA
IHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgY2hhciogc2FuZGJveEV4dGVuc2lvbkZv
clR5cGUoY29uc3QgY2hhciogcGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZSB0eXBlLCBPcHRp
b25hbDxwaWRfdD4gcGlkID0gV1RGOjpudWxsb3B0KQorICAgIGNoYXIqIHNhbmRib3hFeHRlbnNp
b25Gb3JUeXBlKGNvbnN0IGNoYXIqIHBhdGgsIFNhbmRib3hFeHRlbnNpb246OlR5cGUgdHlwZSwg
T3B0aW9uYWw8VmFyaWFudDxwaWRfdCwgYXVkaXRfdG9rZW5fdD4+IHByb2Nlc3NUb2tlbikKICAg
ICB7CiAgICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICBjYXNlIFNhbmRib3hFeHRlbnNp
b246OlR5cGU6OlJlYWRPbmx5OgpAQCAtOTMsMjcgKzk0LDM3IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNzdWVfZmlsZShBUFBfU0FOREJPWF9SRUFE
X1dSSVRFLCBwYXRoLCAwKTsKICAgICAgICAgY2FzZSBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpN
YWNoOgogI2lmIEhBVkUoU0FOREJPWF9JU1NVRV9NQUNIX0VYVEVOU0lPTl9UT19QUk9DRVNTX0JZ
X1BJRCkKLSAgICAgICAgICAgIHJldHVybiBzYW5kYm94X2V4dGVuc2lvbl9pc3N1ZV9tYWNoX3Rv
X3Byb2Nlc3NfYnlfcGlkKCJjb20uYXBwbGUud2Via2l0LmV4dGVuc2lvbi5tYWNoIl9zLCBwYXRo
LCAwLCBwaWQudmFsdWUoKSk7CisgICAgICAgICAgICBpZiAoIXByb2Nlc3NUb2tlbikKKyAgICAg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgIGlmICghV1RGOjpob2xkc19h
bHRlcm5hdGl2ZTxwaWRfdD4oKnByb2Nlc3NUb2tlbikpCisgICAgICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgICAgICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNzdWVfbWFj
aF90b19wcm9jZXNzX2J5X3BpZCgiY29tLmFwcGxlLndlYmtpdC5leHRlbnNpb24ubWFjaCJfcywg
cGF0aCwgMCwgV1RGOjpnZXQ8cGlkX3Q+KCpwcm9jZXNzVG9rZW4pKTsKICNlbHNlCi0gICAgICAg
ICAgICBVTlVTRURfUEFSQU0ocGlkKTsKKyAgICAgICAgICAgIFVOVVNFRF9QQVJBTShwcm9jZXNz
VG9rZW4pOwogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICNlbmRpZgogICAgICAgICBjYXNlIFNhbmRib3hFeHRlbnNpb246OlR5
cGU6OkdlbmVyaWM6CiAgICAgICAgICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNzdWVf
Z2VuZXJpYyhwYXRoLCAwKTsKLSAgICAgICAgY2FzZSBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpS
ZWFkQnlQaWQ6CisgICAgICAgIGNhc2UgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVhZEJ5UHJv
Y2VzczoKICNpZiBIQVZFKFNBTkRCT1hfSVNTVUVfUkVBRF9FWFRFTlNJT05fVE9fUFJPQ0VTU19C
WV9QSUQpCi0gICAgICAgICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNzdWVfZmlsZV90
b19wcm9jZXNzX2J5X3BpZChBUFBfU0FOREJPWF9SRUFELCBwYXRoLCBTQU5EQk9YX0VYVEVOU0lP
Tl9VU0VSX0lOVEVOVCwgcGlkLnZhbHVlKCkpOworICAgICAgICAgICAgaWYgKCFwcm9jZXNzVG9r
ZW4pCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICBpZiAoV1RG
Ojpob2xkc19hbHRlcm5hdGl2ZTxwaWRfdD4oKnByb2Nlc3NUb2tlbikpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHNhbmRib3hfZXh0ZW5zaW9uX2lzc3VlX2ZpbGVfdG9fcHJvY2Vzc19ieV9waWQo
QVBQX1NBTkRCT1hfUkVBRCwgcGF0aCwgU0FOREJPWF9FWFRFTlNJT05fVVNFUl9JTlRFTlQsIFdU
Rjo6Z2V0PHBpZF90PigqcHJvY2Vzc1Rva2VuKSk7CisgICAgICAgICAgICBpZiAoV1RGOjpob2xk
c19hbHRlcm5hdGl2ZTxhdWRpdF90b2tlbl90PigqcHJvY2Vzc1Rva2VuKSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNzdWVfZmlsZV90b19wcm9jZXNzKEFQUF9T
QU5EQk9YX1JFQUQsIHBhdGgsIFNBTkRCT1hfRVhURU5TSU9OX1VTRVJfSU5URU5ULCBXVEY6Omdl
dDxhdWRpdF90b2tlbl90PigqcHJvY2Vzc1Rva2VuKSk7CisgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICNlbHNlCi0gICAgICAgICAgICBVTlVTRURfUEFSQU0ocGlkKTsKKyAgICAgICAgICAg
IFVOVVNFRF9QQVJBTShwcm9jZXNzVG9rZW4pOwogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgogICAgICAgICB9CiAg
ICAgfQogCi0gICAgU2FuZGJveEV4dGVuc2lvbkltcGwoY29uc3QgY2hhciogcGF0aCwgU2FuZGJv
eEV4dGVuc2lvbjo6VHlwZSB0eXBlLCBPcHRpb25hbDxwaWRfdD4gcGlkID0gV1RGOjpudWxsb3B0
KQotICAgICAgICA6IG1fdG9rZW4geyBzYW5kYm94RXh0ZW5zaW9uRm9yVHlwZShwYXRoLCB0eXBl
LCBwaWQpIH0KKyAgICBTYW5kYm94RXh0ZW5zaW9uSW1wbChjb25zdCBjaGFyKiBwYXRoLCBTYW5k
Ym94RXh0ZW5zaW9uOjpUeXBlIHR5cGUsIE9wdGlvbmFsPFZhcmlhbnQ8cGlkX3QsIGF1ZGl0X3Rv
a2VuX3Q+PiBwcm9jZXNzVG9rZW4pCisgICAgICAgIDogbV90b2tlbiB7IHNhbmRib3hFeHRlbnNp
b25Gb3JUeXBlKHBhdGgsIHR5cGUsIHByb2Nlc3NUb2tlbikgfQogICAgIHsKICAgICB9CiAKQEAg
LTMzNiw3ICszNDcsOCBAQCBib29sIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1h
CiB7CiAgICAgQVNTRVJUKCFoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uKTsKICAgICAKLSAgICBo
YW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uID0gU2FuZGJveEV4dGVuc2lvbkltcGw6OmNyZWF0ZShz
ZXJ2aWNlLnV0ZjgoKS5kYXRhKCksIFR5cGU6Ok1hY2gsIHBpZCk7CisgICAgVmFyaWFudDxwaWRf
dCwgYXVkaXRfdG9rZW5fdD4gcHJvY2Vzc1Rva2VuKHBpZCk7CisgICAgaGFuZGxlLm1fc2FuZGJv
eEV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb25JbXBsOjpjcmVhdGUoc2VydmljZS51dGY4KCku
ZGF0YSgpLCBUeXBlOjpNYWNoLCBXVEZNb3ZlKHByb2Nlc3NUb2tlbikpOwogICAgIGlmICghaGFu
ZGxlLm1fc2FuZGJveEV4dGVuc2lvbikgewogICAgICAgICBXVEZMb2dBbHdheXMoIkNvdWxkIG5v
dCBjcmVhdGUgYSAnJXMnIHNhbmRib3ggZXh0ZW5zaW9uIiwgc2VydmljZS51dGY4KCkuZGF0YSgp
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzUyLDcgKzM2NCwyMiBAQCBib29sIFNhbmRi
b3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlCiAgICAgaWYgKCFwaWQpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIGhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24gPSBTYW5kYm94RXh0
ZW5zaW9uSW1wbDo6Y3JlYXRlKHBhdGgudXRmOCgpLmRhdGEoKSwgVHlwZTo6UmVhZEJ5UGlkLCBw
aWQpOworICAgIFZhcmlhbnQ8cGlkX3QsIGF1ZGl0X3Rva2VuX3Q+IHByb2Nlc3NUb2tlbihwaWQp
OworICAgIGhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24gPSBTYW5kYm94RXh0ZW5zaW9uSW1wbDo6
Y3JlYXRlKHBhdGgudXRmOCgpLmRhdGEoKSwgVHlwZTo6UmVhZEJ5UHJvY2VzcywgV1RGTW92ZShw
cm9jZXNzVG9rZW4pKTsKKyAgICBpZiAoIWhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24pIHsKKyAg
ICAgICAgV1RGTG9nQWx3YXlzKCJDb3VsZCBub3QgY3JlYXRlIHNhbmRib3ggZXh0ZW5zaW9uIik7
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIHRydWU7Cit9
CisKK2Jvb2wgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZEJ5QXVkaXRUb2tl
bihjb25zdCBTdHJpbmcmIHBhdGgsIGF1ZGl0X3Rva2VuX3QgYXVkaXRUb2tlbiwgSGFuZGxlJiBo
YW5kbGUpCit7CisgICAgQVNTRVJUKCFoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uKTsKKworICAg
IFZhcmlhbnQ8cGlkX3QsIGF1ZGl0X3Rva2VuX3Q+IHByb2Nlc3NUb2tlbihhdWRpdFRva2VuKTsK
KyAgICBoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uID0gU2FuZGJveEV4dGVuc2lvbkltcGw6OmNy
ZWF0ZShwYXRoLnV0ZjgoKS5kYXRhKCksIFR5cGU6OlJlYWRCeVByb2Nlc3MsIFdURk1vdmUocHJv
Y2Vzc1Rva2VuKSk7CiAgICAgaWYgKCFoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uKSB7CiAgICAg
ICAgIFdURkxvZ0Fsd2F5cygiQ291bGQgbm90IGNyZWF0ZSBzYW5kYm94IGV4dGVuc2lvbiIpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNTA1MzApCisrKyBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4JKHdvcmtp
bmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5IExl
Z2FjeVJlY2VpdgogICAgIEdldFBsdWdpbnMoYm9vbCByZWZyZXNoKSAtPiAoVmVjdG9yPFdlYkNv
cmU6OlBsdWdpbkluZm8+IHBsdWdpbnMsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBhcHBs
aWNhdGlvblBsdWdpbnMsIHN0cnVjdCBPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6U3VwcG9ydGVk
UGx1Z2luSWRlbnRpZmllcj4+IHN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXJzKSBTeW5jaHJvbm91
cwogICAgIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NU
b2tlbikgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlLCBib29sIHN1cHBvcnRz
QXN5bmNocm9ub3VzSW5pdGlhbGl6YXRpb24pIFN5bmNocm9ub3VzCiAjZW5kaWYKLSAgICBHZXRO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25I
YW5kbGUpIFN5bmNocm9ub3VzCisgICAgR2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkgLT4g
KHN0cnVjdCBXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8gY29ubmVjdGlvbklu
Zm8pIFN5bmNocm9ub3VzCiAgICAgUHJvY2Vzc1JlYWR5VG9TdXNwZW5kKCkKICAgICBEaWRDYW5j
ZWxQcm9jZXNzU3VzcGVuc2lvbigpCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAkocmV2aXNpb24gMjUw
NTMwKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2VuZGlmCiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyTWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgiCiAjaW5j
bHVkZSAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJOZXR3
b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgpAQCAt
MTU4LDEwICsxNTksMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpvcGVuTmV0d29ya1By
bwogICAgICAgICBhdXRvIHJlcXVlc3QgPSBtX2Nvbm5lY3Rpb25SZXF1ZXN0cy50YWtlKGNvbm5l
Y3Rpb25SZXF1ZXN0SWRlbnRpZmllcik7CiAKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykg
fHwgT1MoV0lORE9XUykKLSAgICAgICAgcmVxdWVzdC5yZXBseSgqY29ubmVjdGlvbklkZW50aWZp
ZXIpOworICAgICAgICByZXF1ZXN0LnJlcGx5KE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8g
eyBXVEZNb3ZlKCpjb25uZWN0aW9uSWRlbnRpZmllcikgfSk7CiAjZWxpZiBPUyhEQVJXSU4pCiAg
ICAgICAgIE1FU1NBR0VfQ0hFQ0soTUFDSF9QT1JUX1ZBTElEKGNvbm5lY3Rpb25JZGVudGlmaWVy
LT5wb3J0KCkpKTsKLSAgICAgICAgcmVxdWVzdC5yZXBseShJUEM6OkF0dGFjaG1lbnQgeyBjb25u
ZWN0aW9uSWRlbnRpZmllci0+cG9ydCgpLCBNQUNIX01TR19UWVBFX01PVkVfU0VORCB9KTsKKyAg
ICAgICAgcmVxdWVzdC5yZXBseShOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsgSVBDOjpB
dHRhY2htZW50IHsgY29ubmVjdGlvbklkZW50aWZpZXItPnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9N
T1ZFX1NFTkQgfSwgY29ubmVjdGlvbigpLT5nZXRBdWRpdFRva2VuKCkgfSk7CiAjZWxzZQogICAg
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1MDUzMCkKKysrIFNv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTQ3MDAsNiArNDcwMCw3IEBACiAJCUUxRTU1MkMzMTZBRTA2NUUwMDRFRDY1MyAvKiBT
YW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8qIEluamVjdGVkQnVu
ZGxlUGFnZUVkaXRvckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTFFRTUzRTYxMUY4Q0ZGQjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRv
ckNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3Rl
ZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMzQzOUI2MzIzNDU0NjNBMDAxMURFMEIgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5m
by5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmg7IHBhdGgg
PSBOZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzAyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGVyUGFpck1h
Yy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxlclBhaXJNYWMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzEyMURFNjVGNzAwMzdGMERCIC8q
IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZVJlbW90ZU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDcyMjFE
RTY1RjcwMDM3RjBEQiAvKiBTY3JvbGxlclBhaXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxlclBhaXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC02NzAwLDYgKzY3MDEsNyBAQAogCQkJCTUxMDVCMEQ0MTYyRjdBN0EwMEUy
NzcwOSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovLAogCQkJCTUxMDVCMEQ1MTYy
RjdBN0EwMEUyNzcwOSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLywKIAkJCQk1MUZC
MDkwMjE2M0EzQjFDMDBFQzMyNEEgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluICovLAorCQkJCUUzNDM5QjYzMjM0NTQ2M0EwMDExREUwQiAvKiBOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb25JbmZvLmggKi8sCiAJCQkJNTFBQkY2NTYxNjM5MkYxNTAwMTMyQTdBIC8qIFdlYkxv
YWRlclN0cmF0ZWd5LmNwcCAqLywKIAkJCQk1MUFCRjY1NzE2MzkyRjE1MDAxMzJBN0EgLyogV2Vi
TG9hZGVyU3RyYXRlZ3kuaCAqLywKIAkJCQlBNTg2MEU2RjIzMEY2N0RFMDA0NjFBQUUgLyogV2Vi
UmVzb3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmNwcCAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDI1MDUzMCkKKysrIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgs
NyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
LmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtTZXNzaW9uLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnMuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCIKQEAg
LTExMzcsMTAgKzExMzgsMTAgQEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRJbmplY3RlZEJ1bmRsZVBh
cmFtZQogICAgIGluamVjdGVkQnVuZGxlLT5zZXRCdW5kbGVQYXJhbWV0ZXJzKHZhbHVlKTsKIH0K
IAotc3RhdGljIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBnZXROZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQorc3RhdGljIE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbkluZm8gZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbikKIHsKLSAgICBJUEM6OkF0dGFjaG1lbnQgZW5jb2RlZENvbm5lY3Rp
b25JZGVudGlmaWVyOwotICAgIGlmICghY29ubmVjdGlvbi5zZW5kU3luYyhNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKSwgTWVzc2FnZXM6Oldl
YlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpSZXBseShlbmNvZGVk
Q29ubmVjdGlvbklkZW50aWZpZXIpLCAwKSkgeworICAgIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bkluZm8gY29ubmVjdGlvbkluZm87CisgICAgaWYgKCFjb25uZWN0aW9uLnNlbmRTeW5jKE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLCBNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OlJlcGx5
KGNvbm5lY3Rpb25JbmZvKSwgMCkpIHsKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQ
RSkKICAgICAgICAgLy8gR1RLKyBhbmQgV1BFIHBvcnRzIGRvbid0IGV4aXQgb24gc2VuZCBzeW5j
IG1lc3NhZ2UgZmFpbHVyZS4KICAgICAgICAgLy8gSW4gdGhpcyBwYXJ0aWN1bGFyIGNhc2UsIHRo
ZSBuZXR3b3JrIHByb2Nlc3MgY2FuIGJlIHRlcm1pbmF0ZWQgYnkgdGhlIFVJIHByb2Nlc3Mgd2hp
bGUgdGhlCkBAIC0xMTUzLDE2ICsxMTU0LDcgQEAgc3RhdGljIElQQzo6Q29ubmVjdGlvbjo6SWRl
bnRpZmllciBnZXROZQogI2VuZGlmCiAgICAgfQogCi0jaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tF
VFMpCi0gICAgcmV0dXJuIGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5yZWxlYXNlRmlsZURl
c2NyaXB0b3IoKTsKLSNlbGlmIE9TKERBUldJTikKLSAgICByZXR1cm4gZW5jb2RlZENvbm5lY3Rp
b25JZGVudGlmaWVyLnBvcnQoKTsKLSNlbGlmIE9TKFdJTkRPV1MpCi0gICAgcmV0dXJuIGVuY29k
ZWRDb25uZWN0aW9uSWRlbnRpZmllci5oYW5kbGUoKTsKLSNlbHNlCi0gICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgcmV0dXJuIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcigpOwotI2Vu
ZGlmCisgICAgcmV0dXJuIGNvbm5lY3Rpb25JbmZvOwogfQogCiBOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24mIFdlYlByb2Nlc3M6OmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpCkBAIC0x
MTcyLDE3ICsxMTY0LDIwIEBAIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiYgV2ViUHJvY2Vzczo6
ZW4KIAogICAgIC8vIElmIHdlJ3ZlIGxvc3Qgb3VyIGNvbm5lY3Rpb24gdG8gdGhlIG5ldHdvcmsg
cHJvY2VzcyAoZS5nLiBpdCBjcmFzaGVkKSB0cnkgdG8gcmUtZXN0YWJsaXNoIGl0LgogICAgIGlm
ICghbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pIHsKLSAgICAgICAgSVBDOjpDb25uZWN0aW9u
OjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gZ2V0TmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uKCpwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpKTsKKyAgICAgICAgYXV0byBjb25uZWN0
aW9uSW5mbyA9IGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigqcGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKSk7CiAKICAgICAgICAgLy8gUmV0cnkgb25jZSBpZiB0aGUgSVBDIHRvIGdldCB0aGUg
Y29ubmVjdGlvbklkZW50aWZpZXIgc3VjY2VlZGVkIGJ1dCB0aGUgY29ubmVjdGlvbklkZW50aWZp
ZXIgd2UgcmVjZWl2ZWQKICAgICAgICAgLy8gaXMgaW52YWxpZC4gVGhpcyBtYXkgaW5kaWNhdGUg
dGhhdCB0aGUgbmV0d29yayBwcm9jZXNzIGhhcyBjcmFzaGVkLgotICAgICAgICBpZiAoIUlQQzo6
Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbklkZW50aWZpZXIpKQotICAg
ICAgICAgICAgY29ubmVjdGlvbklkZW50aWZpZXIgPSBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24oKnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkpOworICAgICAgICBpZiAoIUlQQzo6Q29ubmVj
dGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbkluZm8uaWRlbnRpZmllcigpKSkKKyAg
ICAgICAgICAgIGNvbm5lY3Rpb25JbmZvID0gZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCpw
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpKTsKIAotICAgICAgICBpZiAoIUlQQzo6Q29ubmVjdGlv
bjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbklkZW50aWZpZXIpKQorICAgICAgICBpZiAo
IUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbkluZm8uaWRlbnRp
ZmllcigpKSkKICAgICAgICAgICAgIENSQVNIKCk7CiAKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24gPSBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShjb25uZWN0aW9u
SWRlbnRpZmllcik7CisgICAgICAgIG1fbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uID0gTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoY29ubmVjdGlvbkluZm8uaWRlbnRpZmllcigpKTsK
KyNpZiBIQVZFKEFVRElUX1RPS0VOKQorICAgICAgICBtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bi0+c2V0TmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuKFdURk1vdmUoY29ubmVjdGlvbkluZm8uYXVk
aXRUb2tlbikpOworI2VuZGlmCiAgICAgfQogICAgIAogICAgIHJldHVybiAqbV9uZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb247CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAkocmV2aXNpb24gMjUw
NTMwKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTc2LDYgKzc2LDExIEBAIHB1YmxpYzoKICAg
ICBXZWJTV0NsaWVudENvbm5lY3Rpb24mIHNlcnZpY2VXb3JrZXJDb25uZWN0aW9uKCk7CiAjZW5k
aWYKIAorI2lmIEhBVkUoQVVESVRfVE9LRU4pCisgICAgdm9pZCBzZXROZXR3b3JrUHJvY2Vzc0F1
ZGl0VG9rZW4oT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4gYXVkaXRUb2tlbikgeyBtX25ldHdvcmtQ
cm9jZXNzQXVkaXRUb2tlbiA9IGF1ZGl0VG9rZW47IH0KKyAgICBPcHRpb25hbDxhdWRpdF90b2tl
bl90PiBuZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4oKSBjb25zdCB7IHJldHVybiBtX25ldHdvcmtQ
cm9jZXNzQXVkaXRUb2tlbjsgfQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAgTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CiAKQEAgLTk5LDYgKzEw
NCw5IEBAIHByaXZhdGU6CiAKICAgICAvLyBUaGUgY29ubmVjdGlvbiBmcm9tIHRoZSB3ZWIgcHJv
Y2VzcyB0byB0aGUgbmV0d29yayBwcm9jZXNzLgogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1f
Y29ubmVjdGlvbjsKKyNpZiBIQVZFKEFVRElUX1RPS0VOKQorICAgIE9wdGlvbmFsPGF1ZGl0X3Rv
a2VuX3Q+IG1fbmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuOworI2VuZGlmCiAKICNpZiBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKICAgICBSZWZQdHI8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPiBt
X3dlYklEQkNvbm5lY3Rpb247CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbkluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcwIEBACisv
KgorKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
KgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
KgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNwcmFnbWEgb25j
ZQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bkluZm8geworICAgIElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uOworI2lmIEhBVkUoQVVESVRf
VE9LRU4pCisgICAgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4gYXVkaXRUb2tlbjsKKyNlbmRpZgor
CisgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGlkZW50aWZpZXIoKQorICAgIHsKKyNp
ZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKKyAgICAgICAgcmV0dXJuIElQQzo6Q29ubmVjdGlv
bjo6SWRlbnRpZmllcihjb25uZWN0aW9uLnJlbGVhc2VGaWxlRGVzY3JpcHRvcigpKTsKKyNlbGlm
IE9TKERBUldJTikKKyAgICAgICAgcmV0dXJuIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcihj
b25uZWN0aW9uLnBvcnQoKSk7CisjZWxpZiBPUyhXSU5ET1dTKQorICAgICAgICByZXR1cm4gSVBD
OjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKGNvbm5lY3Rpb24uaGFuZGxlKCkpOworI2Vsc2UKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBJUEM6OkNvbm5lY3Rp
b246OklkZW50aWZpZXIoKTsKKyNlbmRpZgorICAgIH0KKyAgICAKKyAgICB2b2lkIGVuY29kZShJ
UEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGNv
bm5lY3Rpb247CisjaWYgSEFWRShBVURJVF9UT0tFTikKKyAgICAgICAgZW5jb2RlciA8PCBhdWRp
dFRva2VuOworI2VuZGlmCisgICAgfQorICAgIAorICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6
OkRlY29kZXImIGRlY29kZXIsIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8mIGluZm8pCisg
ICAgeworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uY29ubmVjdGlvbikpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisjaWYgSEFWRShBVURJVF9UT0tFTikKKyAgICAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShpbmZvLmF1ZGl0VG9rZW4pKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworI2VuZGlmCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KK307CisKK307CkluZGV4
OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVy
U3RyYXRlZ3kuY3BwCShyZXZpc2lvbiAyNTA1MzApCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4Niw2
ICsyODYsOSBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWRGcm9tCiAgICAg
bG9hZFBhcmFtZXRlcnMud2ViUGFnZUlEID0gdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRDsKICAg
ICBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlEID0gdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQ7
CiAgICAgbG9hZFBhcmFtZXRlcnMucGFyZW50UElEID0gcHJlc2VudGluZ0FwcGxpY2F0aW9uUElE
KCk7CisjaWYgSEFWRShBVURJVF9UT0tFTikKKyAgICBsb2FkUGFyYW1ldGVycy5uZXR3b3JrUHJv
Y2Vzc0F1ZGl0VG9rZW4gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24oKS5uZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4oKTsKKyNlbmRpZgogICAg
IGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0OwogICAgIGxvYWRQYXJhbWV0ZXJzLmNv
bnRlbnRTbmlmZmluZ1BvbGljeSA9IGNvbnRlbnRTbmlmZmluZ1BvbGljeTsKICAgICBsb2FkUGFy
YW1ldGVycy5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSA9IGNvbnRlbnRFbmNvZGluZ1Nu
aWZmaW5nUG9saWN5OwpAQCAtNTYxLDYgKzU2NCw5IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6
OmxvYWRSZXNvdXJjZVN5bmMKICAgICBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQgPSBwYWdlSUQ7
CiAgICAgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCA9IGZyYW1lSUQ7CiAgICAgbG9hZFBhcmFt
ZXRlcnMucGFyZW50UElEID0gcHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7CisjaWYgSEFWRShB
VURJVF9UT0tFTikKKyAgICBsb2FkUGFyYW1ldGVycy5uZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4g
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24o
KS5uZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4oKTsKKyNlbmRpZgogICAgIGxvYWRQYXJhbWV0ZXJz
LnJlcXVlc3QgPSByZXF1ZXN0OwogICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1Bv
bGljeSA9IENvbnRlbnRTbmlmZmluZ1BvbGljeTo6U25pZmZDb250ZW50OwogICAgIGxvYWRQYXJh
bWV0ZXJzLmNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5ID0gQ29udGVudEVuY29kaW5nU25p
ZmZpbmdQb2xpY3k6OlNuaWZmOwpAQCAtNjMwLDYgKzYzNiw5IEBAIHZvaWQgV2ViTG9hZGVyU3Ry
YXRlZ3k6OnN0YXJ0UGluZ0xvYWQoRnIKICAgICBsb2FkUGFyYW1ldGVycy5zb3VyY2VPcmlnaW4g
PSAmZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMudG9wT3Jp
Z2luID0gJmRvY3VtZW50LT50b3BPcmlnaW4oKTsKICAgICBsb2FkUGFyYW1ldGVycy5wYXJlbnRQ
SUQgPSBwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKTsKKyNpZiBIQVZFKEFVRElUX1RPS0VOKQor
ICAgIGxvYWRQYXJhbWV0ZXJzLm5ldHdvcmtQcm9jZXNzQXVkaXRUb2tlbiA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLm5ldHdvcmtQcm9j
ZXNzQXVkaXRUb2tlbigpOworI2VuZGlmCiAgICAgbG9hZFBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3kgPSBvcHRpb25zLmNyZWRlbnRpYWxzID09IEZldGNoT3B0aW9uczo6Q3JlZGVu
dGlhbHM6Ok9taXQgPyBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2UgOiBTdG9yZWRD
cmVkZW50aWFsc1BvbGljeTo6VXNlOwogICAgIGxvYWRQYXJhbWV0ZXJzLm9wdGlvbnMgPSBvcHRp
b25zOwogICAgIGxvYWRQYXJhbWV0ZXJzLm9yaWdpbmFsUmVxdWVzdEhlYWRlcnMgPSBvcmlnaW5h
bFJlcXVlc3RIZWFkZXJzOwpAQCAtNjkwLDYgKzY5OSw5IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRl
Z3k6OnByZWNvbm5lY3RUbyhGcmEKICAgICBwYXJhbWV0ZXJzLndlYlBhZ2VJRCA9IHdlYlBhZ2Ut
PmlkZW50aWZpZXIoKTsKICAgICBwYXJhbWV0ZXJzLndlYkZyYW1lSUQgPSB3ZWJGcmFtZS0+ZnJh
bWVJRCgpOwogICAgIHBhcmFtZXRlcnMucGFyZW50UElEID0gcHJlc2VudGluZ0FwcGxpY2F0aW9u
UElEKCk7CisjaWYgSEFWRShBVURJVF9UT0tFTikKKyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtQcm9j
ZXNzQXVkaXRUb2tlbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbigpLm5ldHdvcmtQcm9jZXNzQXVkaXRUb2tlbigpOworI2VuZGlmCiAgICAg
cGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IHN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5OwogICAgIHBhcmFtZXRlcnMuc2hvdWxkUHJlY29ubmVjdE9ubHkgPSBQcmVjb25uZWN0T25s
eTo6WWVzOwogICAgIHBhcmFtZXRlcnMuc2hvdWxkUmVzdHJpY3RIVFRQUmVzcG9uc2VBY2Nlc3Mg
PSBzaG91bGRQZXJmb3JtU2VjdXJpdHlDaGVja3MoKTsKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MDYyOCkKKysrIFRvb2xz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE5LTEwLTAyICBQ
ZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9O
KDI0OTY0OSk6IFVuYWJsZSB0byBvcGVuIGxvY2FsIGZpbGVzIGluIE1pbmlCcm93c2VyIG9uIG1h
Y09TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE3
OTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRl
ZCBBUEkgdGVzdCBXS1dlYlZpZXcuTG9hZEZpbGVXaXRoTG9hZFJlcXVlc3QuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvYWRGaWxlVVJMLm1tOgorCiAyMDE5
LTEwLTAyICBUaGliYXVsdCBTYXVuaWVyICA8dHNhdW5pZXJAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbR1NUcmVhbWVyXSBMZXQgcGxheWJpbiBoYW5kbGUgcmVkaXJlY3RzIGZvciB1cyB3aGVuIGFw
cHJvcHJpYXRlCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xv
YWRGaWxlVVJMLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvTG9hZEZpbGVVUkwubW0JKHJldmlzaW9uIDI1MDUzMCkKKysrIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9hZEZpbGVVUkwubW0JKHdvcmtpbmcgY29weSkK
QEAgLTMyLDYgKzMyLDE3IEBACiAjaW1wb3J0IDxXZWJLaXQvV2ViVmlld1ByaXZhdGUuaD4KICNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAorVEVTVChXS1dlYlZpZXcsIExvYWRGaWxlV2l0aExv
YWRSZXF1ZXN0KQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKworICAgIGF1
dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5p
dF0pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07
CisKKyAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRo
VVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJzaW1wbGUiIHdpdGhF
eHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJd
XTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKyAgICBbZGVsZWdhdGUgd2Fp
dEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOworfQogCiBURVNUKFdLV2ViVmlldywgTG9hZFR3b0Zp
bGVzKQogewo=
</data>
<flag name="review"
          id="395846"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380152</attachid>
            <date>2019-10-03 12:18:43 -0700</date>
            <delta_ts>2019-10-03 12:28:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201798-20191003121843.patch</filename>
            <type>text/plain</type>
            <size>31013</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTA2MzUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE5LTEwLTAyICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKDI0OTY0OSk6IFVuYWJsZSB0
byBvcGVuIGxvY2FsIGZpbGVzIGluIE1pbmlCcm93c2VyIG9uIG1hY09TCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE3OTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgIEFkZCBIQVZFX0FVRElUX1RPS0VOIGFu
ZCBTQU5EQk9YX0lTU1VFX1JFQURfRVhURU5TSU9OX1RPX1BST0NFU1NfQllfQVVESVRfVE9LRU4g
ZGVmaW5lcy4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDE5LTEwLTAyICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBbTmljb3NpYV0gRW5h
YmxlIGFzeW5jIHNjcm9sbGluZyBhdCBidWlsZC10aW1lIGZvciBOaWNvc2lhLXVzaW5nIHBvcnRz
CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmgJKHJldmlzaW9uIDI1MDUzMCkKKysrIFNvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTY5Myw2ICs2OTMsNyBAQAogI2RlZmluZSBIQVZF
X1BUSFJFQURfU0VUTkFNRV9OUCAxCiAjZGVmaW5lIEhBVkVfUkVBRExJTkUgMQogI2RlZmluZSBI
QVZFX1NZU19USU1FQl9IIDEKKyNkZWZpbmUgSEFWRV9BVURJVF9UT0tFTiAxCiAKICNpZiBfX2hh
c19pbmNsdWRlKDxtYWNoL21hY2hfZXhjLmRlZnM+KSAmJiAhUExBVEZPUk0oR1RLKQogI2RlZmlu
ZSBIQVZFX01BQ0hfRVhDRVBUSU9OUyAxCkBAIC0xNTI3LDYgKzE1MjgsMTAgQEAKICNkZWZpbmUg
SEFWRV9TQU5EQk9YX0lTU1VFX1JFQURfRVhURU5TSU9OX1RPX1BST0NFU1NfQllfUElEIDEKICNl
bmRpZgogCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDE1MDApCisjZGVmaW5lIEhBVkVfU0FOREJPWF9JU1NVRV9SRUFEX0VYVEVOU0lP
Tl9UT19QUk9DRVNTX0JZX0FVRElUX1RPS0VOIDEKKyNlbmRpZgorCiAjaWYgKFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDApIHx8IChQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MzAwMDApCiAjZGVmaW5lIEhBVkVfTUROU19GQVNUX1JFR0lTVFJBVElPTiAxCiAjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyNTA2MjcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisyMDE5LTEwLTAyICBQZXIgQXJuZSBWb2xs
YW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKDI0OTY0OSk6IFVu
YWJsZSB0byBvcGVuIGxvY2FsIGZpbGVzIGluIE1pbmlCcm93c2VyIG9uIG1hY09TCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE3OTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAgICBUaGUgY29tbWl0
IDxodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjQ5NjQ5PiBpbnRyb2R1Y2VkIGEg
TWluaUJyb3dzZXIgcmVncmVzc2lvbiBvbiBtYWNPUyB3aGVyZSBNaW5pQnJvd3NlcgorICAgICAg
ICBpcyBub3QgYWJsZSB0byBvcGVuIGxvY2FsIGZpbGVzLiBUaGUgY2hhbmdlIHNldCByMjQ5NjQ5
IGZpeGVkIGEgcHJvYmxlbSB3aGVyZSB0aGUgV2ViQ29udGVudCBwcm9jZXNzIFBJRCB3YXMgbm90
IHJlYWR5CisgICAgICAgIHRvIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBhIHNhbmRib3ggZXh0ZW5z
aW9uLiBUaGlzIGhhcHBlbmVkIGluIHRoZSBjYXNlcyB3aGVyZSB0aGUgV2ViQ29udGVudCBwcm9j
ZXNzIGhhZCBub3QgZmluaXNoZWQKKyAgICAgICAgbGF1bmNoaW5nIHdoZW4gdGhlIGxvYWQgc3Rh
cnRlZC4gVGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBhbHNvIGNyZWF0aW5nIHNhbmRib3ggZXh0
ZW5zaW9ucyBmb3IgdGhlIE5ldHdvcmtpbmcgcHJvY2VzcworICAgICAgICBmb3IgdGhlIGZpbGVz
IGJlaW5nIGxvYWRlZCwgYW5kIGFsc28gbmVlZHMgdG8gYmUgcGFzc2luZyB0aGUgYXVkaXQgdG9r
ZW4gb2YgdGhlIE5ldHdvcmtpbmcgcHJvY2VzcyB3aGVuIGNyZWF0aW5nIHRoZXNlLgorICAgICAg
ICBUaGlzIHBhdGNoIGltcGxlbWVudHMgZ2V0dGluZyB0aGUgYXVkaXQgdG9rZW4gZm9yIHRoZSBO
ZXR3b3JraW5nIHByb2Nlc3Mgd2hlbiB0aGUgV2ViUHJvY2VzcyBpcyBzZW5kaW5nIGEgbWVzc2Fn
ZSB0bworICAgICAgICB0aGUgVUkgcHJvY2VzcyB0byBlc3RhYmxpc2ggdGhlIE5ldHdvcmtpbmcg
cHJvY2VzcyBjb25uZWN0aW9uLiBUaGUgYXVkaXQgdG9rZW4gaXMgc3RvcmVkIGluIHRoZSBOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24KKyAgICAgICAgb2JqZWN0LCBhbmQgcGFzc2VkIHRvIHRoZSBO
ZXR3b3JrTG9hZFBhcmFtZXRlcnMgb2JqZWN0IHdoZW4gdGhlIGxvYWQgaXMgc3RhcnRlZC4gRmlu
YWxseSwgd2hlbiBlbmNvZGluZyB0aGUgTmV0d29yaworICAgICAgICByZXNvdXJjZXMgbG9hZCBw
YXJhbWV0ZXJzLCB0aGUgYXVkaXQgdG9rZW4gaXMgdXNlZCB0byBjcmVhdGUgYW4gZXh0ZW5zaW9u
IGZvciB0aGUgTmV0d29ya2luZyBwcm9jZXNzLgorCisgICAgICAgIEFQSSB0ZXN0OiBXS1dlYlZp
ZXcuTG9hZEZpbGVXaXRoTG9hZFJlcXVlc3QKKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291
cmNlTG9hZFBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgICogUGxhdGZvcm0vSVBD
L0FyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxhdWRpdF90
b2tlbl90Pjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxhdWRpdF90b2tl
bl90Pjo6ZGVjb2RlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaDoK
KyAgICAgICAgKiBTaGFyZWQvQ29jb2EvU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tOgorICAgICAg
ICAoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uSW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktp
dDo6U2FuZGJveEV4dGVuc2lvbkltcGw6OnNhbmRib3hFeHRlbnNpb25Gb3JUeXBlKToKKyAgICAg
ICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbkltcGw6OlNhbmRib3hFeHRlbnNpb25JbXBsKToK
KyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExv
b2t1cEJ5UGlkKToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFu
ZGxlRm9yUmVhZEJ5UGlkKToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlSGFuZGxlRm9yUmVhZEJ5QXVkaXRUb2tlbik6CisgICAgICAgICogU2hhcmVkL1NhbmRib3hF
eHRlbnNpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6b3Blbk5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
Lmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6c2V0TmV0d29y
a1Byb2Nlc3NBdWRpdFRva2VuKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uOjpuZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4gY29uc3QpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvOjppZGVudGlmaWVyKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbzo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbzo6ZGVj
b2RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkRnJvbU5l
dHdvcmtQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVn
eTo6c3RhcnRQaW5nTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5Ojpw
cmVjb25uZWN0VG8pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6CisKIDIwMTkt
MTAtMDIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBDTWFrZS1idWlsdCBXZWJLaXQuZnJhbWV3b3JrIHNob3VsZCBsYXVuY2ggWFBDIHNlcnZp
Y2VzIHN1Y2Nlc3NmdWxseQpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrTG9hZFBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCShyZXZpc2lvbiAyNTA1MzApCisrKyBTb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCSh3b3JraW5n
IGNvcHkpCkBAIC00Niw2ICs0Niw5IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgd2ViRnJhbWVJRDsKICAgICBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IHRv
cE9yaWdpbjsKICAgICBXVEY6OlByb2Nlc3NJRCBwYXJlbnRQSUQgeyAwIH07CisjaWYgSEFWRShB
VURJVF9UT0tFTikKKyAgICBPcHRpb25hbDxhdWRpdF90b2tlbl90PiBuZXR3b3JrUHJvY2Vzc0F1
ZGl0VG9rZW47CisjZW5kaWYKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdDsK
ICAgICBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgY29udGVudFNuaWZmaW5nUG9saWN5
IHsgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5OjpTbmlmZkNvbnRlbnQgfTsKICAgICBX
ZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBjb250ZW50RW5jb2RpbmdTbmlm
ZmluZ1BvbGljeSB7IFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpTbmlm
ZiB9OwpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDI1MDUzMCkK
KysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFt
ZXRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Niw3ICs2NiwxNCBAQCB2b2lkIE5ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjplbmNvCiAKICAgICBpZiAocmVxdWVzdC51cmwoKS5pc0xv
Y2FsRmlsZSgpKSB7CiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSByZXF1ZXN0U2Fu
ZGJveEV4dGVuc2lvbjsKKyNpZiBIQVZFKFNBTkRCT1hfSVNTVUVfUkVBRF9FWFRFTlNJT05fVE9f
UFJPQ0VTU19CWV9BVURJVF9UT0tFTikKKyAgICAgICAgaWYgKG5ldHdvcmtQcm9jZXNzQXVkaXRU
b2tlbikKKyAgICAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRC
eUF1ZGl0VG9rZW4ocmVxdWVzdC51cmwoKS5maWxlU3lzdGVtUGF0aCgpLCAqbmV0d29ya1Byb2Nl
c3NBdWRpdFRva2VuLCByZXF1ZXN0U2FuZGJveEV4dGVuc2lvbik7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZShyZXF1ZXN0LnVybCgpLmZp
bGVTeXN0ZW1QYXRoKCksIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRPbmx5LCByZXF1ZXN0
U2FuZGJveEV4dGVuc2lvbik7CisjZWxzZQogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVh
dGVIYW5kbGUocmVxdWVzdC51cmwoKS5maWxlU3lzdGVtUGF0aCgpLCBTYW5kYm94RXh0ZW5zaW9u
OjpUeXBlOjpSZWFkT25seSwgcmVxdWVzdFNhbmRib3hFeHRlbnNpb24pOworI2VuZGlmCiAgICAg
ICAgIGVuY29kZXIgPDwgcmVxdWVzdFNhbmRib3hFeHRlbnNpb247CiAgICAgfQogCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCShyZXZpc2lv
biAyNTA1MzApCisrKyBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE4OCw0ICsxODgsMjEgQEAgYm9vbCBBcmd1bWVudENvZGVy
PFNIQTE6OkRpZ2VzdD46OmRlY29kZQogICAgIHJldHVybiBkZWNvZGVyLmRlY29kZUZpeGVkTGVu
Z3RoRGF0YShkaWdlc3QuZGF0YSgpLCBzaXplb2YoZGlnZXN0KSwgMSk7CiB9CiAKKyNpZiBIQVZF
KEFVRElUX1RPS0VOKQordm9pZCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rva2VuX3Q+OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgYXVkaXRfdG9rZW5fdCYgYXVkaXRUb2tlbikKK3sKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChhdWRpdFRva2VuLnZh
bCk7IGkrKykKKyAgICAgICAgZW5jb2RlciA8PCBhdWRpdFRva2VuLnZhbFtpXTsKK30KKworYm9v
bCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rva2VuX3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rlciwg
YXVkaXRfdG9rZW5fdCYgYXVkaXRUb2tlbikKK3sKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgV1RGX0FSUkFZX0xFTkdUSChhdWRpdFRva2VuLnZhbCk7IGkrKykgeworICAgICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGF1ZGl0VG9rZW4udmFsW2ldKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3Bh
Y2UgSVBDCkluZGV4OiBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJz
LmgJKHJldmlzaW9uIDI1MDUzMCkKKysrIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3Vt
ZW50Q29kZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTYyMSw0ICs2MjEsMTEgQEAgdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxTSEExOjpEaQogICAgIHN0YXRpYyBib29sIGRlY29kZShE
ZWNvZGVyJiwgU0hBMTo6RGlnZXN0Jik7CiB9OwogCisjaWYgSEFWRShBVURJVF9UT0tFTikKK3Rl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD4geworICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgYXVkaXRfdG9rZW5fdCYpOworICAgIHN0YXRp
YyBib29sIGRlY29kZShEZWNvZGVyJiwgYXVkaXRfdG9rZW5fdCYpOworfTsKKyNlbmRpZgorCiB9
IC8vIG5hbWVzcGFjZSBJUEMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1NhbmRib3hFeHRl
bnNpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9TYW5kYm94RXh0ZW5z
aW9uLmgJKHJldmlzaW9uIDI1MDUzMCkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1NhbmRib3hF
eHRlbnNpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAg
ICAgIFJlYWRXcml0ZSwKICAgICAgICAgTWFjaCwKICAgICAgICAgR2VuZXJpYywKLSAgICAgICAg
UmVhZEJ5UGlkCisgICAgICAgIFJlYWRCeVByb2Nlc3MKICAgICB9OwogCiAgICAgY2xhc3MgSGFu
ZGxlIHsKQEAgLTEwNiw2ICsxMDYsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgY3JlYXRl
SGFuZGxlRm9yR2VuZXJpY0V4dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbkNsYXNzLCBI
YW5kbGUmKTsKICAgICBzdGF0aWMgYm9vbCBjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwQnlQaWQo
Y29uc3QgU3RyaW5nJiBzZXJ2aWNlLCBQcm9jZXNzSUQsIEhhbmRsZSYpOwogICAgIHN0YXRpYyBi
b29sIGNyZWF0ZUhhbmRsZUZvclJlYWRCeVBpZChjb25zdCBTdHJpbmcmIHBhdGgsIFByb2Nlc3NJ
RCwgSGFuZGxlJik7CisjaWYgSEFWRShBVURJVF9UT0tFTikKKyAgICBzdGF0aWMgYm9vbCBjcmVh
dGVIYW5kbGVGb3JSZWFkQnlBdWRpdFRva2VuKGNvbnN0IFN0cmluZyYgcGF0aCwgYXVkaXRfdG9r
ZW5fdCwgSGFuZGxlJik7CisjZW5kaWYKICAgICB+U2FuZGJveEV4dGVuc2lvbigpOwogCiAgICAg
Ym9vbCBjb25zdW1lKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9TYW5kYm94
RXh0ZW5zaW9uQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQ29j
b2EvU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tCShyZXZpc2lvbiAyNTA1MzApCisrKyBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db2NvYS9TYW5kYm94RXh0ZW5zaW9uQ29jb2EubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIkRlY29kZXIuaCIKICNpbXBvcnQgIkVuY29k
ZXIuaCIKICNpbXBvcnQgPHd0Zi9GaWxlU3lzdGVtLmg+CisjaW1wb3J0IDx3dGYvVmFyaWFudC5o
PgogI2ltcG9ydCA8d3RmL3NwaS9kYXJ3aW4vU2FuZGJveFNQSS5oPgogI2ltcG9ydCA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogCkBAIC00MCw5ICs0MSw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xh
c3MgU2FuZGJveEV4dGVuc2lvbkltcGwgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U2FuZGJveEV4dGVuc2lvbkltcGw+
IGNyZWF0ZShjb25zdCBjaGFyKiBwYXRoLCBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlIHR5cGUsIE9w
dGlvbmFsPHBpZF90PiBwaWQgPSBXVEY6Om51bGxvcHQpCisgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxTYW5kYm94RXh0ZW5zaW9uSW1wbD4gY3JlYXRlKGNvbnN0IGNoYXIqIHBhdGgsIFNhbmRi
b3hFeHRlbnNpb246OlR5cGUgdHlwZSwgT3B0aW9uYWw8VmFyaWFudDxwaWRfdCwgYXVkaXRfdG9r
ZW5fdD4+IHByb2Nlc3NUb2tlbiA9IFdURjo6bnVsbG9wdCkKICAgICB7Ci0gICAgICAgIHN0ZDo6
dW5pcXVlX3B0cjxTYW5kYm94RXh0ZW5zaW9uSW1wbD4gaW1wbCB7IG5ldyBTYW5kYm94RXh0ZW5z
aW9uSW1wbChwYXRoLCB0eXBlLCBwaWQpIH07CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxTYW5k
Ym94RXh0ZW5zaW9uSW1wbD4gaW1wbCB7IG5ldyBTYW5kYm94RXh0ZW5zaW9uSW1wbChwYXRoLCB0
eXBlLCBwcm9jZXNzVG9rZW4pIH07CiAgICAgICAgIGlmICghaW1wbC0+bV90b2tlbikKICAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICByZXR1cm4gaW1wbDsKQEAgLTg0LDcgKzg1
LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBjaGFyKiBzYW5kYm94RXh0ZW5z
aW9uRm9yVHlwZShjb25zdCBjaGFyKiBwYXRoLCBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlIHR5cGUs
IE9wdGlvbmFsPHBpZF90PiBwaWQgPSBXVEY6Om51bGxvcHQpCisgICAgY2hhciogc2FuZGJveEV4
dGVuc2lvbkZvclR5cGUoY29uc3QgY2hhciogcGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZSB0
eXBlLCBPcHRpb25hbDxWYXJpYW50PHBpZF90LCBhdWRpdF90b2tlbl90Pj4gcHJvY2Vzc1Rva2Vu
KQogICAgIHsKICAgICAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgICAgIGNhc2UgU2FuZGJveEV4
dGVuc2lvbjo6VHlwZTo6UmVhZE9ubHk6CkBAIC05MywyNyArOTQsMzcgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIHJldHVybiBzYW5kYm94X2V4dGVuc2lvbl9pc3N1ZV9maWxlKEFQUF9TQU5EQk9Y
X1JFQURfV1JJVEUsIHBhdGgsIDApOwogICAgICAgICBjYXNlIFNhbmRib3hFeHRlbnNpb246OlR5
cGU6Ok1hY2g6CiAjaWYgSEFWRShTQU5EQk9YX0lTU1VFX01BQ0hfRVhURU5TSU9OX1RPX1BST0NF
U1NfQllfUElEKQotICAgICAgICAgICAgcmV0dXJuIHNhbmRib3hfZXh0ZW5zaW9uX2lzc3VlX21h
Y2hfdG9fcHJvY2Vzc19ieV9waWQoImNvbS5hcHBsZS53ZWJraXQuZXh0ZW5zaW9uLm1hY2giX3Ms
IHBhdGgsIDAsIHBpZC52YWx1ZSgpKTsKKyAgICAgICAgICAgIGlmICghcHJvY2Vzc1Rva2VuKQor
ICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgaWYgKCFXVEY6Omhv
bGRzX2FsdGVybmF0aXZlPHBpZF90PigqcHJvY2Vzc1Rva2VuKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgIHJldHVybiBzYW5kYm94X2V4dGVuc2lvbl9pc3N1
ZV9tYWNoX3RvX3Byb2Nlc3NfYnlfcGlkKCJjb20uYXBwbGUud2Via2l0LmV4dGVuc2lvbi5tYWNo
Il9zLCBwYXRoLCAwLCBXVEY6OmdldDxwaWRfdD4oKnByb2Nlc3NUb2tlbikpOwogI2Vsc2UKLSAg
ICAgICAgICAgIFVOVVNFRF9QQVJBTShwaWQpOworICAgICAgICAgICAgVU5VU0VEX1BBUkFNKHBy
b2Nlc3NUb2tlbik7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwogI2VuZGlmCiAgICAgICAgIGNhc2UgU2FuZGJveEV4dGVuc2lv
bjo6VHlwZTo6R2VuZXJpYzoKICAgICAgICAgICAgIHJldHVybiBzYW5kYm94X2V4dGVuc2lvbl9p
c3N1ZV9nZW5lcmljKHBhdGgsIDApOwotICAgICAgICBjYXNlIFNhbmRib3hFeHRlbnNpb246OlR5
cGU6OlJlYWRCeVBpZDoKKyAgICAgICAgY2FzZSBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpSZWFk
QnlQcm9jZXNzOgogI2lmIEhBVkUoU0FOREJPWF9JU1NVRV9SRUFEX0VYVEVOU0lPTl9UT19QUk9D
RVNTX0JZX1BJRCkKLSAgICAgICAgICAgIHJldHVybiBzYW5kYm94X2V4dGVuc2lvbl9pc3N1ZV9m
aWxlX3RvX3Byb2Nlc3NfYnlfcGlkKEFQUF9TQU5EQk9YX1JFQUQsIHBhdGgsIFNBTkRCT1hfRVhU
RU5TSU9OX1VTRVJfSU5URU5ULCBwaWQudmFsdWUoKSk7CisgICAgICAgICAgICBpZiAoIXByb2Nl
c3NUb2tlbikKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgIGlm
IChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPHBpZF90PigqcHJvY2Vzc1Rva2VuKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNzdWVfZmlsZV90b19wcm9jZXNzX2J5
X3BpZChBUFBfU0FOREJPWF9SRUFELCBwYXRoLCBTQU5EQk9YX0VYVEVOU0lPTl9VU0VSX0lOVEVO
VCwgV1RGOjpnZXQ8cGlkX3Q+KCpwcm9jZXNzVG9rZW4pKTsKKyAgICAgICAgICAgIGlmIChXVEY6
OmhvbGRzX2FsdGVybmF0aXZlPGF1ZGl0X3Rva2VuX3Q+KCpwcm9jZXNzVG9rZW4pKQorICAgICAg
ICAgICAgICAgIHJldHVybiBzYW5kYm94X2V4dGVuc2lvbl9pc3N1ZV9maWxlX3RvX3Byb2Nlc3Mo
QVBQX1NBTkRCT1hfUkVBRCwgcGF0aCwgU0FOREJPWF9FWFRFTlNJT05fVVNFUl9JTlRFTlQsIFdU
Rjo6Z2V0PGF1ZGl0X3Rva2VuX3Q+KCpwcm9jZXNzVG9rZW4pKTsKKyAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwogI2Vsc2UKLSAgICAgICAgICAgIFVOVVNFRF9QQVJBTShwaWQpOworICAgICAg
ICAgICAgVU5VU0VEX1BBUkFNKHByb2Nlc3NUb2tlbik7CiAgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogI2VuZGlmCiAgICAgICAg
IH0KICAgICB9CiAKLSAgICBTYW5kYm94RXh0ZW5zaW9uSW1wbChjb25zdCBjaGFyKiBwYXRoLCBT
YW5kYm94RXh0ZW5zaW9uOjpUeXBlIHR5cGUsIE9wdGlvbmFsPHBpZF90PiBwaWQgPSBXVEY6Om51
bGxvcHQpCi0gICAgICAgIDogbV90b2tlbiB7IHNhbmRib3hFeHRlbnNpb25Gb3JUeXBlKHBhdGgs
IHR5cGUsIHBpZCkgfQorICAgIFNhbmRib3hFeHRlbnNpb25JbXBsKGNvbnN0IGNoYXIqIHBhdGgs
IFNhbmRib3hFeHRlbnNpb246OlR5cGUgdHlwZSwgT3B0aW9uYWw8VmFyaWFudDxwaWRfdCwgYXVk
aXRfdG9rZW5fdD4+IHByb2Nlc3NUb2tlbikKKyAgICAgICAgOiBtX3Rva2VuIHsgc2FuZGJveEV4
dGVuc2lvbkZvclR5cGUocGF0aCwgdHlwZSwgcHJvY2Vzc1Rva2VuKSB9CiAgICAgewogICAgIH0K
IApAQCAtMzM2LDcgKzM0Nyw4IEBAIGJvb2wgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxl
Rm9yTWEKIHsKICAgICBBU1NFUlQoIWhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24pOwogICAgIAot
ICAgIGhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24gPSBTYW5kYm94RXh0ZW5zaW9uSW1wbDo6Y3Jl
YXRlKHNlcnZpY2UudXRmOCgpLmRhdGEoKSwgVHlwZTo6TWFjaCwgcGlkKTsKKyAgICBWYXJpYW50
PHBpZF90LCBhdWRpdF90b2tlbl90PiBwcm9jZXNzVG9rZW4ocGlkKTsKKyAgICBoYW5kbGUubV9z
YW5kYm94RXh0ZW5zaW9uID0gU2FuZGJveEV4dGVuc2lvbkltcGw6OmNyZWF0ZShzZXJ2aWNlLnV0
ZjgoKS5kYXRhKCksIFR5cGU6Ok1hY2gsIFdURk1vdmUocHJvY2Vzc1Rva2VuKSk7CiAgICAgaWYg
KCFoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uKSB7CiAgICAgICAgIFdURkxvZ0Fsd2F5cygiQ291
bGQgbm90IGNyZWF0ZSBhICclcycgc2FuZGJveCBleHRlbnNpb24iLCBzZXJ2aWNlLnV0ZjgoKS5k
YXRhKCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zNTIsNyArMzY0LDIyIEBAIGJvb2wg
U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmUKICAgICBpZiAoIXBpZCkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaGFuZGxlLm1fc2FuZGJveEV4dGVuc2lvbiA9IFNhbmRi
b3hFeHRlbnNpb25JbXBsOjpjcmVhdGUocGF0aC51dGY4KCkuZGF0YSgpLCBUeXBlOjpSZWFkQnlQ
aWQsIHBpZCk7CisgICAgVmFyaWFudDxwaWRfdCwgYXVkaXRfdG9rZW5fdD4gcHJvY2Vzc1Rva2Vu
KHBpZCk7CisgICAgaGFuZGxlLm1fc2FuZGJveEV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb25J
bXBsOjpjcmVhdGUocGF0aC51dGY4KCkuZGF0YSgpLCBUeXBlOjpSZWFkQnlQcm9jZXNzLCBXVEZN
b3ZlKHByb2Nlc3NUb2tlbikpOworICAgIGlmICghaGFuZGxlLm1fc2FuZGJveEV4dGVuc2lvbikg
eworICAgICAgICBXVEZMb2dBbHdheXMoIkNvdWxkIG5vdCBjcmVhdGUgc2FuZGJveCBleHRlbnNp
b24iKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKworYm9vbCBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkQnlBdWRp
dFRva2VuKGNvbnN0IFN0cmluZyYgcGF0aCwgYXVkaXRfdG9rZW5fdCBhdWRpdFRva2VuLCBIYW5k
bGUmIGhhbmRsZSkKK3sKKyAgICBBU1NFUlQoIWhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24pOwor
CisgICAgVmFyaWFudDxwaWRfdCwgYXVkaXRfdG9rZW5fdD4gcHJvY2Vzc1Rva2VuKGF1ZGl0VG9r
ZW4pOworICAgIGhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24gPSBTYW5kYm94RXh0ZW5zaW9uSW1w
bDo6Y3JlYXRlKHBhdGgudXRmOCgpLmRhdGEoKSwgVHlwZTo6UmVhZEJ5UHJvY2VzcywgV1RGTW92
ZShwcm9jZXNzVG9rZW4pKTsKICAgICBpZiAoIWhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24pIHsK
ICAgICAgICAgV1RGTG9nQWx3YXlzKCJDb3VsZCBub3QgY3JlYXRlIHNhbmRib3ggZXh0ZW5zaW9u
Iik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI1MDUzMCkK
KysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgko
d29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJv
eHkgTGVnYWN5UmVjZWl2CiAgICAgR2V0UGx1Z2lucyhib29sIHJlZnJlc2gpIC0+IChWZWN0b3I8
V2ViQ29yZTo6UGx1Z2luSW5mbz4gcGx1Z2lucywgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+
IGFwcGxpY2F0aW9uUGx1Z2lucywgc3RydWN0IE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpTdXBw
b3J0ZWRQbHVnaW5JZGVudGlmaWVyPj4gc3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcnMpIFN5bmNo
cm9ub3VzCiAgICAgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24odWludDY0X3QgcGx1Z2luUHJv
Y2Vzc1Rva2VuKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUsIGJvb2wgc3Vw
cG9ydHNBc3luY2hyb25vdXNJbml0aWFsaXphdGlvbikgU3luY2hyb25vdXMKICNlbmRpZgotICAg
IEdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpIC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVj
dGlvbkhhbmRsZSkgU3luY2hyb25vdXMKKyAgICBHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24o
KSAtPiAoc3RydWN0IFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbyBjb25uZWN0
aW9uSW5mbykgU3luY2hyb25vdXMKICAgICBQcm9jZXNzUmVhZHlUb1N1c3BlbmQoKQogICAgIERp
ZENhbmNlbFByb2Nlc3NTdXNwZW5zaW9uKCkKIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCShyZXZpc2lv
biAyNTA1MzApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAjZW5kaWYKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFn
ZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaCIK
ICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgi
CkBAIC0xNTgsMTAgKzE1OSwxMCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6Om9wZW5OZXR3
b3JrUHJvCiAgICAgICAgIGF1dG8gcmVxdWVzdCA9IG1fY29ubmVjdGlvblJlcXVlc3RzLnRha2Uo
Y29ubmVjdGlvblJlcXVlc3RJZGVudGlmaWVyKTsKIAogI2lmIFVTRShVTklYX0RPTUFJTl9TT0NL
RVRTKSB8fCBPUyhXSU5ET1dTKQotICAgICAgICByZXF1ZXN0LnJlcGx5KCpjb25uZWN0aW9uSWRl
bnRpZmllcik7CisgICAgICAgIHJlcXVlc3QucmVwbHkoTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
SW5mbyB7IFdURk1vdmUoKmNvbm5lY3Rpb25JZGVudGlmaWVyKSB9KTsKICNlbGlmIE9TKERBUldJ
TikKICAgICAgICAgTUVTU0FHRV9DSEVDSyhNQUNIX1BPUlRfVkFMSUQoY29ubmVjdGlvbklkZW50
aWZpZXItPnBvcnQoKSkpOwotICAgICAgICByZXF1ZXN0LnJlcGx5KElQQzo6QXR0YWNobWVudCB7
IGNvbm5lY3Rpb25JZGVudGlmaWVyLT5wb3J0KCksIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EIH0p
OworICAgICAgICByZXF1ZXN0LnJlcGx5KE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8geyBJ
UEM6OkF0dGFjaG1lbnQgeyBjb25uZWN0aW9uSWRlbnRpZmllci0+cG9ydCgpLCBNQUNIX01TR19U
WVBFX01PVkVfU0VORCB9LCBjb25uZWN0aW9uKCktPmdldEF1ZGl0VG9rZW4oKSB9KTsKICNlbHNl
CiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjUwNTMwKQor
KysgU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtNDcwMCw2ICs0NzAwLDcgQEAKIAkJRTFFNTUyQzMxNkFFMDY1RTAwNEVENjUz
IC8qIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVFNTNEQzExRjhDRjlGMDBDQ0JFRTQgLyogSW5qZWN0
ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMUVFNTNFNjExRjhDRkZCMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdl
RWRpdG9yQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElu
amVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUzNDM5QjYzMjM0NTQ2M0EwMDExREUwQiAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b25JbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaDsg
cGF0aCA9IE5ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFNDA0OTA3MDIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xsZXJQ
YWlyTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGVyUGFpck1h
Yy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDA0OTA3MTIxREU2NUY3MDAzN0Yw
REIgLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlUmVtb3RlTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkw
NzIyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGVyUGFpck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGVyUGFpck1hYy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTY3MDAsNiArNjcwMSw3IEBACiAJCQkJNTEwNUIwRDQxNjJGN0E3
QTAwRTI3NzA5IC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8sCiAJCQkJNTEwNUIw
RDUxNjJGN0E3QTAwRTI3NzA5IC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oICovLAogCQkJ
CTUxRkIwOTAyMTYzQTNCMUMwMEVDMzI0QSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVz
c2FnZXMuaW4gKi8sCisJCQkJRTM0MzlCNjMyMzQ1NDYzQTAwMTFERTBCIC8qIE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbkluZm8uaCAqLywKIAkJCQk1MUFCRjY1NjE2MzkyRjE1MDAxMzJBN0EgLyog
V2ViTG9hZGVyU3RyYXRlZ3kuY3BwICovLAogCQkJCTUxQUJGNjU3MTYzOTJGMTUwMDEzMkE3QSAv
KiBXZWJMb2FkZXJTdHJhdGVneS5oICovLAogCQkJCUE1ODYwRTZGMjMwRjY3REUwMDQ2MUFBRSAv
KiBXZWJSZXNvdXJjZUludGVyY2VwdENvbnRyb2xsZXIuY3BwICovLApJbmRleDogU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMjUwNTMwKQorKysgU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2
ICszOCw3IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24uaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgiCiAjaW5j
bHVkZSAiTmV0d29ya1Nlc3Npb24uaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbkNyZWF0aW9u
UGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5o
IgpAQCAtMTEzNywxMCArMTEzOCwxMCBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldEluamVjdGVkQnVu
ZGxlUGFyYW1lCiAgICAgaW5qZWN0ZWRCdW5kbGUtPnNldEJ1bmRsZVBhcmFtZXRlcnModmFsdWUp
OwogfQogCi1zdGF0aWMgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGdldE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCitzdGF0aWMgTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uSW5mbyBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uKQogewotICAgIElQQzo6QXR0YWNobWVudCBlbmNvZGVkQ29u
bmVjdGlvbklkZW50aWZpZXI7Ci0gICAgaWYgKCFjb25uZWN0aW9uLnNlbmRTeW5jKE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLCBNZXNzYWdl
czo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OlJlcGx5KGVu
Y29kZWRDb25uZWN0aW9uSWRlbnRpZmllciksIDApKSB7CisgICAgTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uSW5mbyBjb25uZWN0aW9uSW5mbzsKKyAgICBpZiAoIWNvbm5lY3Rpb24uc2VuZFN5bmMo
TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCks
IE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6
UmVwbHkoY29ubmVjdGlvbkluZm8pLCAwKSkgewogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQogICAgICAgICAvLyBHVEsrIGFuZCBXUEUgcG9ydHMgZG9uJ3QgZXhpdCBvbiBzZW5k
IHN5bmMgbWVzc2FnZSBmYWlsdXJlLgogICAgICAgICAvLyBJbiB0aGlzIHBhcnRpY3VsYXIgY2Fz
ZSwgdGhlIG5ldHdvcmsgcHJvY2VzcyBjYW4gYmUgdGVybWluYXRlZCBieSB0aGUgVUkgcHJvY2Vz
cyB3aGlsZSB0aGUKQEAgLTExNTMsMTYgKzExNTQsNyBAQCBzdGF0aWMgSVBDOjpDb25uZWN0aW9u
OjpJZGVudGlmaWVyIGdldE5lCiAjZW5kaWYKICAgICB9CiAKLSNpZiBVU0UoVU5JWF9ET01BSU5f
U09DS0VUUykKLSAgICByZXR1cm4gZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyLnJlbGVhc2VG
aWxlRGVzY3JpcHRvcigpOwotI2VsaWYgT1MoREFSV0lOKQotICAgIHJldHVybiBlbmNvZGVkQ29u
bmVjdGlvbklkZW50aWZpZXIucG9ydCgpOwotI2VsaWYgT1MoV0lORE9XUykKLSAgICByZXR1cm4g
ZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyLmhhbmRsZSgpOwotI2Vsc2UKLSAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKCk7
Ci0jZW5kaWYKKyAgICByZXR1cm4gY29ubmVjdGlvbkluZm87CiB9CiAKIE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbiYgV2ViUHJvY2Vzczo6ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkK
QEAgLTExNzIsMTcgKzExNjQsMjAgQEAgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uJiBXZWJQcm9j
ZXNzOjplbgogCiAgICAgLy8gSWYgd2UndmUgbG9zdCBvdXIgY29ubmVjdGlvbiB0byB0aGUgbmV0
d29yayBwcm9jZXNzIChlLmcuIGl0IGNyYXNoZWQpIHRyeSB0byByZS1lc3RhYmxpc2ggaXQuCiAg
ICAgaWYgKCFtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbikgewotICAgICAgICBJUEM6OkNvbm5l
Y3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIgPSBnZXROZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24oKnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkpOworICAgICAgICBhdXRvIGNv
bm5lY3Rpb25JbmZvID0gZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCpwYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpKTsKIAogICAgICAgICAvLyBSZXRyeSBvbmNlIGlmIHRoZSBJUEMgdG8gZ2V0
IHRoZSBjb25uZWN0aW9uSWRlbnRpZmllciBzdWNjZWVkZWQgYnV0IHRoZSBjb25uZWN0aW9uSWRl
bnRpZmllciB3ZSByZWNlaXZlZAogICAgICAgICAvLyBpcyBpbnZhbGlkLiBUaGlzIG1heSBpbmRp
Y2F0ZSB0aGF0IHRoZSBuZXR3b3JrIHByb2Nlc3MgaGFzIGNyYXNoZWQuCi0gICAgICAgIGlmICgh
SVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSWRlbnRpZmllcikp
Ci0gICAgICAgICAgICBjb25uZWN0aW9uSWRlbnRpZmllciA9IGdldE5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbigqcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKSk7CisgICAgICAgIGlmICghSVBDOjpD
b25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSW5mby5pZGVudGlmaWVyKCkp
KQorICAgICAgICAgICAgY29ubmVjdGlvbkluZm8gPSBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24oKnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkpOwogCi0gICAgICAgIGlmICghSVBDOjpDb25u
ZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSWRlbnRpZmllcikpCisgICAgICAg
IGlmICghSVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSW5mby5p
ZGVudGlmaWVyKCkpKQogICAgICAgICAgICAgQ1JBU0goKTsKIAotICAgICAgICBtX25ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbiA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGNvbm5l
Y3Rpb25JZGVudGlmaWVyKTsKKyAgICAgICAgbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gPSBO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShjb25uZWN0aW9uSW5mby5pZGVudGlmaWVy
KCkpOworI2lmIEhBVkUoQVVESVRfVE9LRU4pCisgICAgICAgIG1fbmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLT5zZXROZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4oV1RGTW92ZShjb25uZWN0aW9uSW5m
by5hdWRpdFRva2VuKSk7CisjZW5kaWYKICAgICB9CiAgICAgCiAgICAgcmV0dXJuICptX25ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCShyZXZpc2lv
biAyNTA1MzApCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNzYsNiArNzYsMTEgQEAgcHVibGlj
OgogICAgIFdlYlNXQ2xpZW50Q29ubmVjdGlvbiYgc2VydmljZVdvcmtlckNvbm5lY3Rpb24oKTsK
ICNlbmRpZgogCisjaWYgSEFWRShBVURJVF9UT0tFTikKKyAgICB2b2lkIHNldE5ldHdvcmtQcm9j
ZXNzQXVkaXRUb2tlbihPcHRpb25hbDxhdWRpdF90b2tlbl90PiBhdWRpdFRva2VuKSB7IG1fbmV0
d29ya1Byb2Nlc3NBdWRpdFRva2VuID0gYXVkaXRUb2tlbjsgfQorICAgIE9wdGlvbmFsPGF1ZGl0
X3Rva2VuX3Q+IG5ldHdvcmtQcm9jZXNzQXVkaXRUb2tlbigpIGNvbnN0IHsgcmV0dXJuIG1fbmV0
d29ya1Byb2Nlc3NBdWRpdFRva2VuOyB9CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKIApAQCAtOTks
NiArMTA0LDkgQEAgcHJpdmF0ZToKIAogICAgIC8vIFRoZSBjb25uZWN0aW9uIGZyb20gdGhlIHdl
YiBwcm9jZXNzIHRvIHRoZSBuZXR3b3JrIHByb2Nlc3MuCiAgICAgUmVmPElQQzo6Q29ubmVjdGlv
bj4gbV9jb25uZWN0aW9uOworI2lmIEhBVkUoQVVESVRfVE9LRU4pCisgICAgT3B0aW9uYWw8YXVk
aXRfdG9rZW5fdD4gbV9uZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW47CisjZW5kaWYKIAogI2lmIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIFJlZlB0cjxXZWJJREJDb25uZWN0aW9uVG9TZXJ2
ZXI+IG1fd2ViSURCQ29ubmVjdGlvbjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZv
LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzAg
QEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI3ByYWdt
YSBvbmNlCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uSW5mbyB7CisgICAgSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb247CisjaWYgSEFWRShB
VURJVF9UT0tFTikKKyAgICBPcHRpb25hbDxhdWRpdF90b2tlbl90PiBhdWRpdFRva2VuOworI2Vu
ZGlmCisKKyAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgaWRlbnRpZmllcigpCisgICAg
eworI2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQorICAgICAgICByZXR1cm4gSVBDOjpDb25u
ZWN0aW9uOjpJZGVudGlmaWVyKGNvbm5lY3Rpb24uZmlsZURlc2NyaXB0b3IoKSk7CisjZWxpZiBP
UyhEQVJXSU4pCisgICAgICAgIHJldHVybiBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIoY29u
bmVjdGlvbi5wb3J0KCkpOworI2VsaWYgT1MoV0lORE9XUykKKyAgICAgICAgcmV0dXJuIElQQzo6
Q29ubmVjdGlvbjo6SWRlbnRpZmllcihjb25uZWN0aW9uLmhhbmRsZSgpKTsKKyNlbHNlCisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gSVBDOjpDb25uZWN0aW9u
OjpJZGVudGlmaWVyKCk7CisjZW5kaWYKKyAgICB9CisgICAgCisgICAgdm9pZCBlbmNvZGUoSVBD
OjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBjb25u
ZWN0aW9uOworI2lmIEhBVkUoQVVESVRfVE9LRU4pCisgICAgICAgIGVuY29kZXIgPDwgYXVkaXRU
b2tlbjsKKyNlbmRpZgorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvJiBpbmZvKQorICAg
IHsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmNvbm5lY3Rpb24pKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworI2lmIEhBVkUoQVVESVRfVE9LRU4pCisgICAgICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoaW5mby5hdWRpdFRva2VuKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyNlbmRpZgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9OworCit9OwpJbmRleDog
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0
cmF0ZWd5LmNwcAkocmV2aXNpb24gMjUwNTMwKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODYsNiAr
Mjg2LDkgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkRnJvbQogICAgIGxv
YWRQYXJhbWV0ZXJzLndlYlBhZ2VJRCA9IHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQ7CiAgICAg
bG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCA9IHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlEOwog
ICAgIGxvYWRQYXJhbWV0ZXJzLnBhcmVudFBJRCA9IHByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgp
OworI2lmIEhBVkUoQVVESVRfVE9LRU4pCisgICAgbG9hZFBhcmFtZXRlcnMubmV0d29ya1Byb2Nl
c3NBdWRpdFRva2VuID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKCkubmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuKCk7CisjZW5kaWYKICAgICBs
b2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKICAgICBsb2FkUGFyYW1ldGVycy5jb250
ZW50U25pZmZpbmdQb2xpY3kgPSBjb250ZW50U25pZmZpbmdQb2xpY3k7CiAgICAgbG9hZFBhcmFt
ZXRlcnMuY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgPSBjb250ZW50RW5jb2RpbmdTbmlm
ZmluZ1BvbGljeTsKQEAgLTU2MSw2ICs1NjQsOSBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojps
b2FkUmVzb3VyY2VTeW5jCiAgICAgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlEID0gcGFnZUlEOwog
ICAgIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQgPSBmcmFtZUlEOwogICAgIGxvYWRQYXJhbWV0
ZXJzLnBhcmVudFBJRCA9IHByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpOworI2lmIEhBVkUoQVVE
SVRfVE9LRU4pCisgICAgbG9hZFBhcmFtZXRlcnMubmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuID0g
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCku
bmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuKCk7CisjZW5kaWYKICAgICBsb2FkUGFyYW1ldGVycy5y
ZXF1ZXN0ID0gcmVxdWVzdDsKICAgICBsb2FkUGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xp
Y3kgPSBDb250ZW50U25pZmZpbmdQb2xpY3k6OlNuaWZmQ29udGVudDsKICAgICBsb2FkUGFyYW1l
dGVycy5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSA9IENvbnRlbnRFbmNvZGluZ1NuaWZm
aW5nUG9saWN5OjpTbmlmZjsKQEAgLTYzMCw2ICs2MzYsOSBAQCB2b2lkIFdlYkxvYWRlclN0cmF0
ZWd5OjpzdGFydFBpbmdMb2FkKEZyCiAgICAgbG9hZFBhcmFtZXRlcnMuc291cmNlT3JpZ2luID0g
JmRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnRvcE9yaWdp
biA9ICZkb2N1bWVudC0+dG9wT3JpZ2luKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMucGFyZW50UElE
ID0gcHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7CisjaWYgSEFWRShBVURJVF9UT0tFTikKKyAg
ICBsb2FkUGFyYW1ldGVycy5uZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4gPSBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5uZXR3b3JrUHJvY2Vz
c0F1ZGl0VG9rZW4oKTsKKyNlbmRpZgogICAgIGxvYWRQYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRp
YWxzUG9saWN5ID0gb3B0aW9ucy5jcmVkZW50aWFscyA9PSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRp
YWxzOjpPbWl0ID8gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRvTm90VXNlIDogU3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3k6OlVzZTsKICAgICBsb2FkUGFyYW1ldGVycy5vcHRpb25zID0gb3B0aW9u
czsKICAgICBsb2FkUGFyYW1ldGVycy5vcmlnaW5hbFJlcXVlc3RIZWFkZXJzID0gb3JpZ2luYWxS
ZXF1ZXN0SGVhZGVyczsKQEAgLTY5MCw2ICs2OTksOSBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5
OjpwcmVjb25uZWN0VG8oRnJhCiAgICAgcGFyYW1ldGVycy53ZWJQYWdlSUQgPSB3ZWJQYWdlLT5p
ZGVudGlmaWVyKCk7CiAgICAgcGFyYW1ldGVycy53ZWJGcmFtZUlEID0gd2ViRnJhbWUtPmZyYW1l
SUQoKTsKICAgICBwYXJhbWV0ZXJzLnBhcmVudFBJRCA9IHByZXNlbnRpbmdBcHBsaWNhdGlvblBJ
RCgpOworI2lmIEhBVkUoQVVESVRfVE9LRU4pCisgICAgcGFyYW1ldGVycy5uZXR3b3JrUHJvY2Vz
c0F1ZGl0VG9rZW4gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24oKS5uZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4oKTsKKyNlbmRpZgogICAgIHBh
cmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBzdG9yZWRDcmVkZW50aWFsc1BvbGlj
eTsKICAgICBwYXJhbWV0ZXJzLnNob3VsZFByZWNvbm5lY3RPbmx5ID0gUHJlY29ubmVjdE9ubHk6
OlllczsKICAgICBwYXJhbWV0ZXJzLnNob3VsZFJlc3RyaWN0SFRUUFJlc3BvbnNlQWNjZXNzID0g
c2hvdWxkUGVyZm9ybVNlY3VyaXR5Q2hlY2tzKCk7CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTA2MjgpCisrKyBUb29scy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0xMC0wMiAgUGVy
IEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTigy
NDk2NDkpOiBVbmFibGUgdG8gb3BlbiBsb2NhbCBmaWxlcyBpbiBNaW5pQnJvd3NlciBvbiBtYWNP
UworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNzk4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAgICBBZGRlZCBB
UEkgdGVzdCBXS1dlYlZpZXcuTG9hZEZpbGVXaXRoTG9hZFJlcXVlc3QuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvYWRGaWxlVVJMLm1tOgorCiAyMDE5LTEw
LTAyICBUaGliYXVsdCBTYXVuaWVyICA8dHNhdW5pZXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R1NUcmVhbWVyXSBMZXQgcGxheWJpbiBoYW5kbGUgcmVkaXJlY3RzIGZvciB1cyB3aGVuIGFwcHJv
cHJpYXRlCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvYWRG
aWxlVVJMLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvTG9hZEZpbGVVUkwubW0JKHJldmlzaW9uIDI1MDUzMCkKKysrIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9hZEZpbGVVUkwubW0JKHdvcmtpbmcgY29weSkKQEAg
LTMyLDYgKzMyLDE3IEBACiAjaW1wb3J0IDxXZWJLaXQvV2ViVmlld1ByaXZhdGUuaD4KICNpbXBv
cnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAorVEVTVChXS1dlYlZpZXcsIExvYWRGaWxlV2l0aExvYWRS
ZXF1ZXN0KQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKworICAgIGF1dG8g
ZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
OworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisK
KyAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJzaW1wbGUiIHdpdGhFeHRl
bnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsK
KyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKyAgICBbZGVsZWdhdGUgd2FpdEZv
ckRpZEZpbmlzaE5hdmlnYXRpb25dOworfQogCiBURVNUKFdLV2ViVmlldywgTG9hZFR3b0ZpbGVz
KQogewo=
</data>
<flag name="commit-queue"
          id="395867"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380153</attachid>
            <date>2019-10-03 12:29:35 -0700</date>
            <delta_ts>2019-10-03 13:08:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201798-20191003122934.patch</filename>
            <type>text/plain</type>
            <size>31006</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTA2MzUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE5LTEwLTAyICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKDI0OTY0OSk6IFVuYWJsZSB0
byBvcGVuIGxvY2FsIGZpbGVzIGluIE1pbmlCcm93c2VyIG9uIG1hY09TCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE3OTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgIEFkZCBIQVZFX0FVRElUX1RPS0VOIGFu
ZCBTQU5EQk9YX0lTU1VFX1JFQURfRVhURU5TSU9OX1RPX1BST0NFU1NfQllfQVVESVRfVE9LRU4g
ZGVmaW5lcy4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDE5LTEwLTAyICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBbTmljb3NpYV0gRW5h
YmxlIGFzeW5jIHNjcm9sbGluZyBhdCBidWlsZC10aW1lIGZvciBOaWNvc2lhLXVzaW5nIHBvcnRz
CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmgJKHJldmlzaW9uIDI1MDUzMCkKKysrIFNvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTY5Myw2ICs2OTMsNyBAQAogI2RlZmluZSBIQVZF
X1BUSFJFQURfU0VUTkFNRV9OUCAxCiAjZGVmaW5lIEhBVkVfUkVBRExJTkUgMQogI2RlZmluZSBI
QVZFX1NZU19USU1FQl9IIDEKKyNkZWZpbmUgSEFWRV9BVURJVF9UT0tFTiAxCiAKICNpZiBfX2hh
c19pbmNsdWRlKDxtYWNoL21hY2hfZXhjLmRlZnM+KSAmJiAhUExBVEZPUk0oR1RLKQogI2RlZmlu
ZSBIQVZFX01BQ0hfRVhDRVBUSU9OUyAxCkBAIC0xNTI3LDYgKzE1MjgsMTAgQEAKICNkZWZpbmUg
SEFWRV9TQU5EQk9YX0lTU1VFX1JFQURfRVhURU5TSU9OX1RPX1BST0NFU1NfQllfUElEIDEKICNl
bmRpZgogCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDE1MDApCisjZGVmaW5lIEhBVkVfU0FOREJPWF9JU1NVRV9SRUFEX0VYVEVOU0lP
Tl9UT19QUk9DRVNTX0JZX0FVRElUX1RPS0VOIDEKKyNlbmRpZgorCiAjaWYgKFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDApIHx8IChQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MzAwMDApCiAjZGVmaW5lIEhBVkVfTUROU19GQVNUX1JFR0lTVFJBVElPTiAxCiAjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyNTA2MjcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisyMDE5LTEwLTAyICBQZXIgQXJuZSBWb2xs
YW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKDI0OTY0OSk6IFVu
YWJsZSB0byBvcGVuIGxvY2FsIGZpbGVzIGluIE1pbmlCcm93c2VyIG9uIG1hY09TCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE3OTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgIFRoZSBjb21taXQgPGh0dHBz
Oi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNDk2NDk+IGludHJvZHVjZWQgYSBNaW5pQnJv
d3NlciByZWdyZXNzaW9uIG9uIG1hY09TIHdoZXJlIE1pbmlCcm93c2VyCisgICAgICAgIGlzIG5v
dCBhYmxlIHRvIG9wZW4gbG9jYWwgZmlsZXMuIFRoZSBjaGFuZ2Ugc2V0IHIyNDk2NDkgZml4ZWQg
YSBwcm9ibGVtIHdoZXJlIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgUElEIHdhcyBub3QgcmVhZHkK
KyAgICAgICAgdG8gYmUgdXNlZCB3aGVuIGNyZWF0aW5nIGEgc2FuZGJveCBleHRlbnNpb24uIFRo
aXMgaGFwcGVuZWQgaW4gdGhlIGNhc2VzIHdoZXJlIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgaGFk
IG5vdCBmaW5pc2hlZAorICAgICAgICBsYXVuY2hpbmcgd2hlbiB0aGUgbG9hZCBzdGFydGVkLiBU
aGUgV2ViQ29udGVudCBwcm9jZXNzIGlzIGFsc28gY3JlYXRpbmcgc2FuZGJveCBleHRlbnNpb25z
IGZvciB0aGUgTmV0d29ya2luZyBwcm9jZXNzCisgICAgICAgIGZvciB0aGUgZmlsZXMgYmVpbmcg
bG9hZGVkLCBhbmQgYWxzbyBuZWVkcyB0byBiZSBwYXNzaW5nIHRoZSBhdWRpdCB0b2tlbiBvZiB0
aGUgTmV0d29ya2luZyBwcm9jZXNzIHdoZW4gY3JlYXRpbmcgdGhlc2UuCisgICAgICAgIFRoaXMg
cGF0Y2ggaW1wbGVtZW50cyBnZXR0aW5nIHRoZSBhdWRpdCB0b2tlbiBmb3IgdGhlIE5ldHdvcmtp
bmcgcHJvY2VzcyB3aGVuIHRoZSBXZWJQcm9jZXNzIGlzIHNlbmRpbmcgYSBtZXNzYWdlIHRvCisg
ICAgICAgIHRoZSBVSSBwcm9jZXNzIHRvIGVzdGFibGlzaCB0aGUgTmV0d29ya2luZyBwcm9jZXNz
IGNvbm5lY3Rpb24uIFRoZSBhdWRpdCB0b2tlbiBpcyBzdG9yZWQgaW4gdGhlIE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbgorICAgICAgICBvYmplY3QsIGFuZCBwYXNzZWQgdG8gdGhlIE5ldHdvcmtM
b2FkUGFyYW1ldGVycyBvYmplY3Qgd2hlbiB0aGUgbG9hZCBpcyBzdGFydGVkLiBGaW5hbGx5LCB3
aGVuIGVuY29kaW5nIHRoZSBOZXR3b3JrCisgICAgICAgIHJlc291cmNlcyBsb2FkIHBhcmFtZXRl
cnMsIHRoZSBhdWRpdCB0b2tlbiBpcyB1c2VkIHRvIGNyZWF0ZSBhbiBleHRlbnNpb24gZm9yIHRo
ZSBOZXR3b3JraW5nIHByb2Nlc3MuCisKKyAgICAgICAgQVBJIHRlc3Q6IFdLV2ViVmlldy5Mb2Fk
RmlsZVdpdGhMb2FkUmVxdWVzdAorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2Fk
UGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQXJndW1l
bnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPGF1ZGl0X3Rva2VuX3Q+
OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPGF1ZGl0X3Rva2VuX3Q+Ojpk
ZWNvZGUpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAg
ICAqIFNoYXJlZC9Db2NvYS9TYW5kYm94RXh0ZW5zaW9uQ29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6OlNhbmRib3hFeHRlbnNpb25JbXBsOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpTYW5k
Ym94RXh0ZW5zaW9uSW1wbDo6c2FuZGJveEV4dGVuc2lvbkZvclR5cGUpOgorICAgICAgICAoV2Vi
S2l0OjpTYW5kYm94RXh0ZW5zaW9uSW1wbDo6U2FuZGJveEV4dGVuc2lvbkltcGwpOgorICAgICAg
ICAoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwQnlQ
aWQpOgorICAgICAgICAoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JS
ZWFkQnlQaWQpOgorICAgICAgICAoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5k
bGVGb3JSZWFkQnlBdWRpdFRva2VuKToKKyAgICAgICAgKiBTaGFyZWQvU2FuZGJveEV4dGVuc2lv
bi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpvcGVuTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpzZXROZXR3b3JrUHJvY2Vz
c0F1ZGl0VG9rZW4pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246
Om5ldHdvcmtQcm9jZXNzQXVkaXRUb2tlbiBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm86OmlkZW50aWZpZXIpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvOjplbmNvZGUgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvOjpkZWNvZGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1By
b2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNl
U3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpzdGFy
dFBpbmdMb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnByZWNvbm5l
Y3RUbyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzczo6ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKToKKwogMjAxOS0xMC0wMiAg
QWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIENN
YWtlLWJ1aWx0IFdlYktpdC5mcmFtZXdvcmsgc2hvdWxkIGxhdW5jaCBYUEMgc2VydmljZXMgc3Vj
Y2Vzc2Z1bGx5CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
UGFyYW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI1MDUzMCkKKysrIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ2LDYgKzQ2LDkgQEAgcHVibGljOgogICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciB3
ZWJGcmFtZUlEOwogICAgIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2lu
OwogICAgIFdURjo6UHJvY2Vzc0lEIHBhcmVudFBJRCB7IDAgfTsKKyNpZiBIQVZFKEFVRElUX1RP
S0VOKQorICAgIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IG5ldHdvcmtQcm9jZXNzQXVkaXRUb2tl
bjsKKyNlbmRpZgogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0OwogICAgIFdl
YkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBjb250ZW50U25pZmZpbmdQb2xpY3kgeyBXZWJD
b3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3k6OlNuaWZmQ29udGVudCB9OwogICAgIFdlYkNvcmU6
OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IGNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9s
aWN5IHsgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3k6OlNuaWZmIH07Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gMjUwNTMwKQorKysgU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTY2LDcgKzY2LDE0IEBAIHZvaWQgTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnM6OmVuY28KIAogICAgIGlmIChyZXF1ZXN0LnVybCgpLmlzTG9jYWxGaWxl
KCkpIHsKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHJlcXVlc3RTYW5kYm94RXh0
ZW5zaW9uOworI2lmIEhBVkUoU0FOREJPWF9JU1NVRV9SRUFEX0VYVEVOU0lPTl9UT19QUk9DRVNT
X0JZX0FVRElUX1RPS0VOKQorICAgICAgICBpZiAobmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuKQor
ICAgICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZEJ5QXVkaXRU
b2tlbihyZXF1ZXN0LnVybCgpLmZpbGVTeXN0ZW1QYXRoKCksICpuZXR3b3JrUHJvY2Vzc0F1ZGl0
VG9rZW4sIHJlcXVlc3RTYW5kYm94RXh0ZW5zaW9uKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlKHJlcXVlc3QudXJsKCkuZmlsZVN5c3Rl
bVBhdGgoKSwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVhZE9ubHksIHJlcXVlc3RTYW5kYm94
RXh0ZW5zaW9uKTsKKyNlbHNlCiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRs
ZShyZXF1ZXN0LnVybCgpLmZpbGVTeXN0ZW1QYXRoKCksIFNhbmRib3hFeHRlbnNpb246OlR5cGU6
OlJlYWRPbmx5LCByZXF1ZXN0U2FuZGJveEV4dGVuc2lvbik7CisjZW5kaWYKICAgICAgICAgZW5j
b2RlciA8PCByZXF1ZXN0U2FuZGJveEV4dGVuc2lvbjsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAJKHJldmlzaW9uIDI1MDUz
MCkKKysrIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTg4LDQgKzE4OCwyMSBAQCBib29sIEFyZ3VtZW50Q29kZXI8U0hBMTo6
RGlnZXN0Pjo6ZGVjb2RlCiAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlRml4ZWRMZW5ndGhEYXRh
KGRpZ2VzdC5kYXRhKCksIHNpemVvZihkaWdlc3QpLCAxKTsKIH0KIAorI2lmIEhBVkUoQVVESVRf
VE9LRU4pCit2b2lkIEFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBhdWRpdF90b2tlbl90JiBhdWRpdFRva2VuKQoreworICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGF1ZGl0VG9rZW4udmFsKTsgaSsr
KQorICAgICAgICBlbmNvZGVyIDw8IGF1ZGl0VG9rZW4udmFsW2ldOworfQorCitib29sIEFyZ3Vt
ZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBhdWRpdF90
b2tlbl90JiBhdWRpdFRva2VuKQoreworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBXVEZf
QVJSQVlfTEVOR1RIKGF1ZGl0VG9rZW4udmFsKTsgaSsrKSB7CisgICAgICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoYXVkaXRUb2tlbi52YWxbaV0pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBJUEMK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAkocmV2
aXNpb24gMjUwNTMwKQorKysgU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2Rl
cnMuaAkod29ya2luZyBjb3B5KQpAQCAtNjIxLDQgKzYyMSwxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFNIQTE6OkRpCiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXIm
LCBTSEExOjpEaWdlc3QmKTsKIH07CiAKKyNpZiBIQVZFKEFVRElUX1RPS0VOKQordGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxhdWRpdF90b2tlbl90PiB7CisgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImLCBjb25zdCBhdWRpdF90b2tlbl90Jik7CisgICAgc3RhdGljIGJvb2wg
ZGVjb2RlKERlY29kZXImLCBhdWRpdF90b2tlbl90Jik7Cit9OworI2VuZGlmCisKIH0gLy8gbmFt
ZXNwYWNlIElQQwpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaAko
cmV2aXNpb24gMjUwNTMwKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvU2FuZGJveEV4dGVuc2lv
bi5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICAgICAgUmVh
ZFdyaXRlLAogICAgICAgICBNYWNoLAogICAgICAgICBHZW5lcmljLAotICAgICAgICBSZWFkQnlQ
aWQKKyAgICAgICAgUmVhZEJ5UHJvY2VzcwogICAgIH07CiAKICAgICBjbGFzcyBIYW5kbGUgewpA
QCAtMTA2LDYgKzEwNiw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBjcmVhdGVIYW5kbGVG
b3JHZW5lcmljRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uQ2xhc3MsIEhhbmRsZSYp
OwogICAgIHN0YXRpYyBib29sIGNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXBCeVBpZChjb25zdCBT
dHJpbmcmIHNlcnZpY2UsIFByb2Nlc3NJRCwgSGFuZGxlJik7CiAgICAgc3RhdGljIGJvb2wgY3Jl
YXRlSGFuZGxlRm9yUmVhZEJ5UGlkKGNvbnN0IFN0cmluZyYgcGF0aCwgUHJvY2Vzc0lELCBIYW5k
bGUmKTsKKyNpZiBIQVZFKEFVRElUX1RPS0VOKQorICAgIHN0YXRpYyBib29sIGNyZWF0ZUhhbmRs
ZUZvclJlYWRCeUF1ZGl0VG9rZW4oY29uc3QgU3RyaW5nJiBwYXRoLCBhdWRpdF90b2tlbl90LCBI
YW5kbGUmKTsKKyNlbmRpZgogICAgIH5TYW5kYm94RXh0ZW5zaW9uKCk7CiAKICAgICBib29sIGNv
bnN1bWUoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NhbmRib3hFeHRlbnNp
b25Db2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9TYW5k
Ym94RXh0ZW5zaW9uQ29jb2EubW0JKHJldmlzaW9uIDI1MDUzMCkKKysrIFNvdXJjZS9XZWJLaXQv
U2hhcmVkL0NvY29hL1NhbmRib3hFeHRlbnNpb25Db2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAt
MzIsNiArMzIsNyBAQAogI2ltcG9ydCAiRGVjb2Rlci5oIgogI2ltcG9ydCAiRW5jb2Rlci5oIgog
I2ltcG9ydCA8d3RmL0ZpbGVTeXN0ZW0uaD4KKyNpbXBvcnQgPHd0Zi9WYXJpYW50Lmg+CiAjaW1w
b3J0IDx3dGYvc3BpL2Rhcndpbi9TYW5kYm94U1BJLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAKQEAgLTQwLDkgKzQxLDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBTYW5k
Ym94RXh0ZW5zaW9uSW1wbCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTYW5kYm94RXh0ZW5zaW9uSW1wbD4gY3JlYXRl
KGNvbnN0IGNoYXIqIHBhdGgsIFNhbmRib3hFeHRlbnNpb246OlR5cGUgdHlwZSwgT3B0aW9uYWw8
cGlkX3Q+IHBpZCA9IFdURjo6bnVsbG9wdCkKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNh
bmRib3hFeHRlbnNpb25JbXBsPiBjcmVhdGUoY29uc3QgY2hhciogcGF0aCwgU2FuZGJveEV4dGVu
c2lvbjo6VHlwZSB0eXBlLCBPcHRpb25hbDxWYXJpYW50PHBpZF90LCBhdWRpdF90b2tlbl90Pj4g
cHJvY2Vzc1Rva2VuID0gV1RGOjpudWxsb3B0KQogICAgIHsKLSAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPFNhbmRib3hFeHRlbnNpb25JbXBsPiBpbXBsIHsgbmV3IFNhbmRib3hFeHRlbnNpb25JbXBs
KHBhdGgsIHR5cGUsIHBpZCkgfTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFNhbmRib3hFeHRl
bnNpb25JbXBsPiBpbXBsIHsgbmV3IFNhbmRib3hFeHRlbnNpb25JbXBsKHBhdGgsIHR5cGUsIHBy
b2Nlc3NUb2tlbikgfTsKICAgICAgICAgaWYgKCFpbXBsLT5tX3Rva2VuKQogICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHJldHVybiBpbXBsOwpAQCAtODQsNyArODUsNyBAQCBw
dWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIGNoYXIqIHNhbmRib3hFeHRlbnNpb25Gb3JU
eXBlKGNvbnN0IGNoYXIqIHBhdGgsIFNhbmRib3hFeHRlbnNpb246OlR5cGUgdHlwZSwgT3B0aW9u
YWw8cGlkX3Q+IHBpZCA9IFdURjo6bnVsbG9wdCkKKyAgICBjaGFyKiBzYW5kYm94RXh0ZW5zaW9u
Rm9yVHlwZShjb25zdCBjaGFyKiBwYXRoLCBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlIHR5cGUsIE9w
dGlvbmFsPFZhcmlhbnQ8cGlkX3QsIGF1ZGl0X3Rva2VuX3Q+PiBwcm9jZXNzVG9rZW4pCiAgICAg
ewogICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgY2FzZSBTYW5kYm94RXh0ZW5zaW9u
OjpUeXBlOjpSZWFkT25seToKQEAgLTkzLDI3ICs5NCwzNyBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgcmV0dXJuIHNhbmRib3hfZXh0ZW5zaW9uX2lzc3VlX2ZpbGUoQVBQX1NBTkRCT1hfUkVBRF9X
UklURSwgcGF0aCwgMCk7CiAgICAgICAgIGNhc2UgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6TWFj
aDoKICNpZiBIQVZFKFNBTkRCT1hfSVNTVUVfTUFDSF9FWFRFTlNJT05fVE9fUFJPQ0VTU19CWV9Q
SUQpCi0gICAgICAgICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNzdWVfbWFjaF90b19w
cm9jZXNzX2J5X3BpZCgiY29tLmFwcGxlLndlYmtpdC5leHRlbnNpb24ubWFjaCJfcywgcGF0aCwg
MCwgcGlkLnZhbHVlKCkpOworICAgICAgICAgICAgaWYgKCFwcm9jZXNzVG9rZW4pCisgICAgICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICBpZiAoIVdURjo6aG9sZHNfYWx0
ZXJuYXRpdmU8cGlkX3Q+KCpwcm9jZXNzVG9rZW4pKQorICAgICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgICAgICAgICAgcmV0dXJuIHNhbmRib3hfZXh0ZW5zaW9uX2lzc3VlX21hY2hf
dG9fcHJvY2Vzc19ieV9waWQoImNvbS5hcHBsZS53ZWJraXQuZXh0ZW5zaW9uLm1hY2giX3MsIHBh
dGgsIDAsIFdURjo6Z2V0PHBpZF90PigqcHJvY2Vzc1Rva2VuKSk7CiAjZWxzZQotICAgICAgICAg
ICAgVU5VU0VEX1BBUkFNKHBpZCk7CisgICAgICAgICAgICBVTlVTRURfUEFSQU0ocHJvY2Vzc1Rv
a2VuKTsKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAjZW5kaWYKICAgICAgICAgY2FzZSBTYW5kYm94RXh0ZW5zaW9uOjpUeXBl
OjpHZW5lcmljOgogICAgICAgICAgICAgcmV0dXJuIHNhbmRib3hfZXh0ZW5zaW9uX2lzc3VlX2dl
bmVyaWMocGF0aCwgMCk7Ci0gICAgICAgIGNhc2UgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVh
ZEJ5UGlkOgorICAgICAgICBjYXNlIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRCeVByb2Nl
c3M6CiAjaWYgSEFWRShTQU5EQk9YX0lTU1VFX1JFQURfRVhURU5TSU9OX1RPX1BST0NFU1NfQllf
UElEKQotICAgICAgICAgICAgcmV0dXJuIHNhbmRib3hfZXh0ZW5zaW9uX2lzc3VlX2ZpbGVfdG9f
cHJvY2Vzc19ieV9waWQoQVBQX1NBTkRCT1hfUkVBRCwgcGF0aCwgU0FOREJPWF9FWFRFTlNJT05f
VVNFUl9JTlRFTlQsIHBpZC52YWx1ZSgpKTsKKyAgICAgICAgICAgIGlmICghcHJvY2Vzc1Rva2Vu
KQorICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgaWYgKFdURjo6
aG9sZHNfYWx0ZXJuYXRpdmU8cGlkX3Q+KCpwcm9jZXNzVG9rZW4pKQorICAgICAgICAgICAgICAg
IHJldHVybiBzYW5kYm94X2V4dGVuc2lvbl9pc3N1ZV9maWxlX3RvX3Byb2Nlc3NfYnlfcGlkKEFQ
UF9TQU5EQk9YX1JFQUQsIHBhdGgsIFNBTkRCT1hfRVhURU5TSU9OX1VTRVJfSU5URU5ULCBXVEY6
OmdldDxwaWRfdD4oKnByb2Nlc3NUb2tlbikpOworICAgICAgICAgICAgaWYgKFdURjo6aG9sZHNf
YWx0ZXJuYXRpdmU8YXVkaXRfdG9rZW5fdD4oKnByb2Nlc3NUb2tlbikpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHNhbmRib3hfZXh0ZW5zaW9uX2lzc3VlX2ZpbGVfdG9fcHJvY2VzcyhBUFBfU0FO
REJPWF9SRUFELCBwYXRoLCBTQU5EQk9YX0VYVEVOU0lPTl9VU0VSX0lOVEVOVCwgV1RGOjpnZXQ8
YXVkaXRfdG9rZW5fdD4oKnByb2Nlc3NUb2tlbikpOworICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAjZWxzZQotICAgICAgICAgICAgVU5VU0VEX1BBUkFNKHBpZCk7CisgICAgICAgICAgICBV
TlVTRURfUEFSQU0ocHJvY2Vzc1Rva2VuKTsKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKICAgICAgICAgfQogICAg
IH0KIAotICAgIFNhbmRib3hFeHRlbnNpb25JbXBsKGNvbnN0IGNoYXIqIHBhdGgsIFNhbmRib3hF
eHRlbnNpb246OlR5cGUgdHlwZSwgT3B0aW9uYWw8cGlkX3Q+IHBpZCA9IFdURjo6bnVsbG9wdCkK
LSAgICAgICAgOiBtX3Rva2VuIHsgc2FuZGJveEV4dGVuc2lvbkZvclR5cGUocGF0aCwgdHlwZSwg
cGlkKSB9CisgICAgU2FuZGJveEV4dGVuc2lvbkltcGwoY29uc3QgY2hhciogcGF0aCwgU2FuZGJv
eEV4dGVuc2lvbjo6VHlwZSB0eXBlLCBPcHRpb25hbDxWYXJpYW50PHBpZF90LCBhdWRpdF90b2tl
bl90Pj4gcHJvY2Vzc1Rva2VuKQorICAgICAgICA6IG1fdG9rZW4geyBzYW5kYm94RXh0ZW5zaW9u
Rm9yVHlwZShwYXRoLCB0eXBlLCBwcm9jZXNzVG9rZW4pIH0KICAgICB7CiAgICAgfQogCkBAIC0z
MzYsNyArMzQ3LDggQEAgYm9vbCBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYQog
ewogICAgIEFTU0VSVCghaGFuZGxlLm1fc2FuZGJveEV4dGVuc2lvbik7CiAgICAgCi0gICAgaGFu
ZGxlLm1fc2FuZGJveEV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb25JbXBsOjpjcmVhdGUoc2Vy
dmljZS51dGY4KCkuZGF0YSgpLCBUeXBlOjpNYWNoLCBwaWQpOworICAgIFZhcmlhbnQ8cGlkX3Qs
IGF1ZGl0X3Rva2VuX3Q+IHByb2Nlc3NUb2tlbihwaWQpOworICAgIGhhbmRsZS5tX3NhbmRib3hF
eHRlbnNpb24gPSBTYW5kYm94RXh0ZW5zaW9uSW1wbDo6Y3JlYXRlKHNlcnZpY2UudXRmOCgpLmRh
dGEoKSwgVHlwZTo6TWFjaCwgV1RGTW92ZShwcm9jZXNzVG9rZW4pKTsKICAgICBpZiAoIWhhbmRs
ZS5tX3NhbmRib3hFeHRlbnNpb24pIHsKICAgICAgICAgV1RGTG9nQWx3YXlzKCJDb3VsZCBub3Qg
Y3JlYXRlIGEgJyVzJyBzYW5kYm94IGV4dGVuc2lvbiIsIHNlcnZpY2UudXRmOCgpLmRhdGEoKSk7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTM1Miw3ICszNjQsMjIgQEAgYm9vbCBTYW5kYm94
RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZQogICAgIGlmICghcGlkKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICBoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uID0gU2FuZGJveEV4dGVu
c2lvbkltcGw6OmNyZWF0ZShwYXRoLnV0ZjgoKS5kYXRhKCksIFR5cGU6OlJlYWRCeVBpZCwgcGlk
KTsKKyAgICBWYXJpYW50PHBpZF90LCBhdWRpdF90b2tlbl90PiBwcm9jZXNzVG9rZW4ocGlkKTsK
KyAgICBoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uID0gU2FuZGJveEV4dGVuc2lvbkltcGw6OmNy
ZWF0ZShwYXRoLnV0ZjgoKS5kYXRhKCksIFR5cGU6OlJlYWRCeVByb2Nlc3MsIFdURk1vdmUocHJv
Y2Vzc1Rva2VuKSk7CisgICAgaWYgKCFoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uKSB7CisgICAg
ICAgIFdURkxvZ0Fsd2F5cygiQ291bGQgbm90IGNyZWF0ZSBzYW5kYm94IGV4dGVuc2lvbiIpOwor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIHJldHVybiB0cnVlOworfQor
Citib29sIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRCeUF1ZGl0VG9rZW4o
Y29uc3QgU3RyaW5nJiBwYXRoLCBhdWRpdF90b2tlbl90IGF1ZGl0VG9rZW4sIEhhbmRsZSYgaGFu
ZGxlKQoreworICAgIEFTU0VSVCghaGFuZGxlLm1fc2FuZGJveEV4dGVuc2lvbik7CisKKyAgICBW
YXJpYW50PHBpZF90LCBhdWRpdF90b2tlbl90PiBwcm9jZXNzVG9rZW4oYXVkaXRUb2tlbik7Cisg
ICAgaGFuZGxlLm1fc2FuZGJveEV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb25JbXBsOjpjcmVh
dGUocGF0aC51dGY4KCkuZGF0YSgpLCBUeXBlOjpSZWFkQnlQcm9jZXNzLCBXVEZNb3ZlKHByb2Nl
c3NUb2tlbikpOwogICAgIGlmICghaGFuZGxlLm1fc2FuZGJveEV4dGVuc2lvbikgewogICAgICAg
ICBXVEZMb2dBbHdheXMoIkNvdWxkIG5vdCBjcmVhdGUgc2FuZGJveCBleHRlbnNpb24iKTsKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjUwNTMwKQorKysgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5n
IGNvcHkpCkBAIC0zNiw3ICszNiw3IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdh
Y3lSZWNlaXYKICAgICBHZXRQbHVnaW5zKGJvb2wgcmVmcmVzaCkgLT4gKFZlY3RvcjxXZWJDb3Jl
OjpQbHVnaW5JbmZvPiBwbHVnaW5zLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4gYXBwbGlj
YXRpb25QbHVnaW5zLCBzdHJ1Y3QgT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlN1cHBvcnRlZFBs
dWdpbklkZW50aWZpZXI+PiBzdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVycykgU3luY2hyb25vdXMK
ICAgICBHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbih1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9r
ZW4pIC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZSwgYm9vbCBzdXBwb3J0c0Fz
eW5jaHJvbm91c0luaXRpYWxpemF0aW9uKSBTeW5jaHJvbm91cwogI2VuZGlmCi0gICAgR2V0TmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFu
ZGxlKSBTeW5jaHJvbm91cworICAgIEdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpIC0+IChz
dHJ1Y3QgV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIGNvbm5lY3Rpb25JbmZv
KSBTeW5jaHJvbm91cwogICAgIFByb2Nlc3NSZWFkeVRvU3VzcGVuZCgpCiAgICAgRGlkQ2FuY2Vs
UHJvY2Vzc1N1c3BlbnNpb24oKQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAJKHJldmlzaW9uIDI1MDUz
MCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAKICNlbmRpZgogI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlck1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oIgogI2luY2x1
ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTmV0d29y
a1Byb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKQEAgLTE1
OCwxMCArMTU5LDEwIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6b3Blbk5ldHdvcmtQcm8K
ICAgICAgICAgYXV0byByZXF1ZXN0ID0gbV9jb25uZWN0aW9uUmVxdWVzdHMudGFrZShjb25uZWN0
aW9uUmVxdWVzdElkZW50aWZpZXIpOwogCiAjaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpIHx8
IE9TKFdJTkRPV1MpCi0gICAgICAgIHJlcXVlc3QucmVwbHkoKmNvbm5lY3Rpb25JZGVudGlmaWVy
KTsKKyAgICAgICAgcmVxdWVzdC5yZXBseShOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsg
V1RGTW92ZSgqY29ubmVjdGlvbklkZW50aWZpZXIpIH0pOwogI2VsaWYgT1MoREFSV0lOKQogICAg
ICAgICBNRVNTQUdFX0NIRUNLKE1BQ0hfUE9SVF9WQUxJRChjb25uZWN0aW9uSWRlbnRpZmllci0+
cG9ydCgpKSk7Ci0gICAgICAgIHJlcXVlc3QucmVwbHkoSVBDOjpBdHRhY2htZW50IHsgY29ubmVj
dGlvbklkZW50aWZpZXItPnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQgfSk7CisgICAg
ICAgIHJlcXVlc3QucmVwbHkoTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbyB7IElQQzo6QXR0
YWNobWVudCB7IGNvbm5lY3Rpb25JZGVudGlmaWVyLT5wb3J0KCksIE1BQ0hfTVNHX1RZUEVfTU9W
RV9TRU5EIH0sIGNvbm5lY3Rpb24oKS0+Z2V0QXVkaXRUb2tlbigpIH0pOwogI2Vsc2UKICAgICAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTA1MzApCisrKyBTb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC00NzAwLDYgKzQ3MDAsNyBAQAogCQlFMUU1NTJDMzE2QUUwNjVFMDA0RUQ2NTMgLyogU2Fu
ZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUxRUU1M0RDMTFGOENGOUYwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRs
ZVBhZ2VFZGl0b3JDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5q
ZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUxRUU1M0U2MTFGOENGRkIwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JD
bGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRC
dW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTM0MzlCNjMyMzQ1NDYzQTAwMTFERTBCIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oOyBwYXRoID0g
TmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUU0MDQ5MDcwMjFERTY1RjcwMDM3RjBEQiAvKiBTY3JvbGxlclBhaXJNYWMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsZXJQYWlyTWFjLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDcxMjFERTY1RjcwMDM3RjBEQiAvKiBT
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVS
ZW1vdGVNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDA0OTA3MjIxREU2
NUY3MDAzN0YwREIgLyogU2Nyb2xsZXJQYWlyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsZXJQYWlyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNjcwMCw2ICs2NzAxLDcgQEAKIAkJCQk1MTA1QjBENDE2MkY3QTdBMDBFMjc3
MDkgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcCAqLywKIAkJCQk1MTA1QjBENTE2MkY3
QTdBMDBFMjc3MDkgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmggKi8sCiAJCQkJNTFGQjA5
MDIxNjNBM0IxQzAwRUMzMjRBIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5p
biAqLywKKwkJCQlFMzQzOUI2MzIzNDU0NjNBMDAxMURFMEIgLyogTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uSW5mby5oICovLAogCQkJCTUxQUJGNjU2MTYzOTJGMTUwMDEzMkE3QSAvKiBXZWJMb2Fk
ZXJTdHJhdGVneS5jcHAgKi8sCiAJCQkJNTFBQkY2NTcxNjM5MkYxNTAwMTMyQTdBIC8qIFdlYkxv
YWRlclN0cmF0ZWd5LmggKi8sCiAJCQkJQTU4NjBFNkYyMzBGNjdERTAwNDYxQUFFIC8qIFdlYlJl
c291cmNlSW50ZXJjZXB0Q29udHJvbGxlci5jcHAgKi8sCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiAyNTA1MzApCisrKyBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDcg
QEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5o
IgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaCIKICNpbmNsdWRlICJO
ZXR3b3JrU2Vzc2lvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmgiCkBAIC0x
MTM3LDEwICsxMTM4LDEwIEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0SW5qZWN0ZWRCdW5kbGVQYXJh
bWUKICAgICBpbmplY3RlZEJ1bmRsZS0+c2V0QnVuZGxlUGFyYW1ldGVycyh2YWx1ZSk7CiB9CiAK
LXN0YXRpYyBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgZ2V0TmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3N0YXRpYyBOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb25JbmZvIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24pCiB7Ci0gICAgSVBDOjpBdHRhY2htZW50IGVuY29kZWRDb25uZWN0aW9u
SWRlbnRpZmllcjsKLSAgICBpZiAoIWNvbm5lY3Rpb24uc2VuZFN5bmMoTWVzc2FnZXM6OldlYlBy
b2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCksIE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6UmVwbHkoZW5jb2RlZENv
bm5lY3Rpb25JZGVudGlmaWVyKSwgMCkpIHsKKyAgICBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25J
bmZvIGNvbm5lY3Rpb25JbmZvOworICAgIGlmICghY29ubmVjdGlvbi5zZW5kU3luYyhNZXNzYWdl
czo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKSwgTWVzc2Fn
ZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpSZXBseShj
b25uZWN0aW9uSW5mbyksIDApKSB7CiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUp
CiAgICAgICAgIC8vIEdUSysgYW5kIFdQRSBwb3J0cyBkb24ndCBleGl0IG9uIHNlbmQgc3luYyBt
ZXNzYWdlIGZhaWx1cmUuCiAgICAgICAgIC8vIEluIHRoaXMgcGFydGljdWxhciBjYXNlLCB0aGUg
bmV0d29yayBwcm9jZXNzIGNhbiBiZSB0ZXJtaW5hdGVkIGJ5IHRoZSBVSSBwcm9jZXNzIHdoaWxl
IHRoZQpAQCAtMTE1MywxNiArMTE1NCw3IEBAIHN0YXRpYyBJUEM6OkNvbm5lY3Rpb246OklkZW50
aWZpZXIgZ2V0TmUKICNlbmRpZgogICAgIH0KIAotI2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRT
KQotICAgIHJldHVybiBlbmNvZGVkQ29ubmVjdGlvbklkZW50aWZpZXIucmVsZWFzZUZpbGVEZXNj
cmlwdG9yKCk7Ci0jZWxpZiBPUyhEQVJXSU4pCi0gICAgcmV0dXJuIGVuY29kZWRDb25uZWN0aW9u
SWRlbnRpZmllci5wb3J0KCk7Ci0jZWxpZiBPUyhXSU5ET1dTKQotICAgIHJldHVybiBlbmNvZGVk
Q29ubmVjdGlvbklkZW50aWZpZXIuaGFuZGxlKCk7Ci0jZWxzZQotICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgIHJldHVybiBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIoKTsKLSNlbmRp
ZgorICAgIHJldHVybiBjb25uZWN0aW9uSW5mbzsKIH0KIAogTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uJiBXZWJQcm9jZXNzOjplbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKQpAQCAtMTE3
MiwxNyArMTE2NCwyMCBAQCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24mIFdlYlByb2Nlc3M6OmVu
CiAKICAgICAvLyBJZiB3ZSd2ZSBsb3N0IG91ciBjb25uZWN0aW9uIHRvIHRoZSBuZXR3b3JrIHBy
b2Nlc3MgKGUuZy4gaXQgY3Jhc2hlZCkgdHJ5IHRvIHJlLWVzdGFibGlzaCBpdC4KICAgICBpZiAo
IW1fbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKSB7Ci0gICAgICAgIElQQzo6Q29ubmVjdGlvbjo6
SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciA9IGdldE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbigqcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKSk7CisgICAgICAgIGF1dG8gY29ubmVjdGlv
bkluZm8gPSBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCkpOwogCiAgICAgICAgIC8vIFJldHJ5IG9uY2UgaWYgdGhlIElQQyB0byBnZXQgdGhlIGNv
bm5lY3Rpb25JZGVudGlmaWVyIHN1Y2NlZWRlZCBidXQgdGhlIGNvbm5lY3Rpb25JZGVudGlmaWVy
IHdlIHJlY2VpdmVkCiAgICAgICAgIC8vIGlzIGludmFsaWQuIFRoaXMgbWF5IGluZGljYXRlIHRo
YXQgdGhlIG5ldHdvcmsgcHJvY2VzcyBoYXMgY3Jhc2hlZC4KLSAgICAgICAgaWYgKCFJUEM6OkNv
bm5lY3Rpb246OmlkZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rpb25JZGVudGlmaWVyKSkKLSAgICAg
ICAgICAgIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
KCpwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpKTsKKyAgICAgICAgaWYgKCFJUEM6OkNvbm5lY3Rp
b246OmlkZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rpb25JbmZvLmlkZW50aWZpZXIoKSkpCisgICAg
ICAgICAgICBjb25uZWN0aW9uSW5mbyA9IGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigqcGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKSk7CiAKLSAgICAgICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246
OmlkZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rpb25JZGVudGlmaWVyKSkKKyAgICAgICAgaWYgKCFJ
UEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rpb25JbmZvLmlkZW50aWZp
ZXIoKSkpCiAgICAgICAgICAgICBDUkFTSCgpOwogCi0gICAgICAgIG1fbmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoY29ubmVjdGlvbklk
ZW50aWZpZXIpOworICAgICAgICBtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9IE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGNvbm5lY3Rpb25JbmZvLmlkZW50aWZpZXIoKSk7Cisj
aWYgSEFWRShBVURJVF9UT0tFTikKKyAgICAgICAgbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24t
PnNldE5ldHdvcmtQcm9jZXNzQXVkaXRUb2tlbihXVEZNb3ZlKGNvbm5lY3Rpb25JbmZvLmF1ZGl0
VG9rZW4pKTsKKyNlbmRpZgogICAgIH0KICAgICAKICAgICByZXR1cm4gKm1fbmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgJKHJldmlzaW9uIDI1MDUz
MCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC03Niw2ICs3NiwxMSBAQCBwdWJsaWM6CiAgICAg
V2ViU1dDbGllbnRDb25uZWN0aW9uJiBzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbigpOwogI2VuZGlm
CiAKKyNpZiBIQVZFKEFVRElUX1RPS0VOKQorICAgIHZvaWQgc2V0TmV0d29ya1Byb2Nlc3NBdWRp
dFRva2VuKE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IGF1ZGl0VG9rZW4pIHsgbV9uZXR3b3JrUHJv
Y2Vzc0F1ZGl0VG9rZW4gPSBhdWRpdFRva2VuOyB9CisgICAgT3B0aW9uYWw8YXVkaXRfdG9rZW5f
dD4gbmV0d29ya1Byb2Nlc3NBdWRpdFRva2VuKCkgY29uc3QgeyByZXR1cm4gbV9uZXR3b3JrUHJv
Y2Vzc0F1ZGl0VG9rZW47IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwogCkBAIC05OSw2ICsxMDQs
OSBAQCBwcml2YXRlOgogCiAgICAgLy8gVGhlIGNvbm5lY3Rpb24gZnJvbSB0aGUgd2ViIHByb2Nl
c3MgdG8gdGhlIG5ldHdvcmsgcHJvY2Vzcy4KICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nv
bm5lY3Rpb247CisjaWYgSEFWRShBVURJVF9UT0tFTikKKyAgICBPcHRpb25hbDxhdWRpdF90b2tl
bl90PiBtX25ldHdvcmtQcm9jZXNzQXVkaXRUb2tlbjsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCiAgICAgUmVmUHRyPFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4gbV93
ZWJJREJDb25uZWN0aW9uOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaAkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb25JbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MCBAQAorLyoK
KyogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoK
KyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoK
KyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjcHJhZ21hIG9uY2UK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25J
bmZvIHsKKyAgICBJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbjsKKyNpZiBIQVZFKEFVRElUX1RP
S0VOKQorICAgIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IGF1ZGl0VG9rZW47CisjZW5kaWYKKwor
ICAgIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBpZGVudGlmaWVyKCkKKyAgICB7CisjaWYg
VVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCisgICAgICAgIHJldHVybiBJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXIoY29ubmVjdGlvbi5maWxlRGVzY3JpcHRvcigpKTsKKyNlbGlmIE9TKERBUldJ
TikKKyAgICAgICAgcmV0dXJuIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcihjb25uZWN0aW9u
LnBvcnQoKSk7CisjZWxpZiBPUyhXSU5ET1dTKQorICAgICAgICByZXR1cm4gSVBDOjpDb25uZWN0
aW9uOjpJZGVudGlmaWVyKGNvbm5lY3Rpb24uaGFuZGxlKCkpOworI2Vsc2UKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBJUEM6OkNvbm5lY3Rpb246OklkZW50
aWZpZXIoKTsKKyNlbmRpZgorICAgIH0KKyAgICAKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGNvbm5lY3Rpb247
CisjaWYgSEFWRShBVURJVF9UT0tFTikKKyAgICAgICAgZW5jb2RlciA8PCBhdWRpdFRva2VuOwor
I2VuZGlmCisgICAgfQorICAgIAorICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXIm
IGRlY29kZXIsIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8mIGluZm8pCisgICAgeworICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uY29ubmVjdGlvbikpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisjaWYgSEFWRShBVURJVF9UT0tFTikKKyAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShpbmZvLmF1ZGl0VG9rZW4pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworI2Vu
ZGlmCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KK307CisKK307CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3ku
Y3BwCShyZXZpc2lvbiAyNTA1MzApCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJMb2FkZXJTdHJhdGVneS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4Niw2ICsyODYsOSBA
QCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWRGcm9tCiAgICAgbG9hZFBhcmFt
ZXRlcnMud2ViUGFnZUlEID0gdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRDsKICAgICBsb2FkUGFy
YW1ldGVycy53ZWJGcmFtZUlEID0gdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQ7CiAgICAgbG9h
ZFBhcmFtZXRlcnMucGFyZW50UElEID0gcHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7CisjaWYg
SEFWRShBVURJVF9UT0tFTikKKyAgICBsb2FkUGFyYW1ldGVycy5uZXR3b3JrUHJvY2Vzc0F1ZGl0
VG9rZW4gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5uZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4oKTsKKyNlbmRpZgogICAgIGxvYWRQYXJh
bWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0OwogICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRTbmlm
ZmluZ1BvbGljeSA9IGNvbnRlbnRTbmlmZmluZ1BvbGljeTsKICAgICBsb2FkUGFyYW1ldGVycy5j
b250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSA9IGNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9s
aWN5OwpAQCAtNTYxLDYgKzU2NCw5IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNv
dXJjZVN5bmMKICAgICBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQgPSBwYWdlSUQ7CiAgICAgbG9h
ZFBhcmFtZXRlcnMud2ViRnJhbWVJRCA9IGZyYW1lSUQ7CiAgICAgbG9hZFBhcmFtZXRlcnMucGFy
ZW50UElEID0gcHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7CisjaWYgSEFWRShBVURJVF9UT0tF
TikKKyAgICBsb2FkUGFyYW1ldGVycy5uZXR3b3JrUHJvY2Vzc0F1ZGl0VG9rZW4gPSBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5uZXR3b3Jr
UHJvY2Vzc0F1ZGl0VG9rZW4oKTsKKyNlbmRpZgogICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3Qg
PSByZXF1ZXN0OwogICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IENv
bnRlbnRTbmlmZmluZ1BvbGljeTo6U25pZmZDb250ZW50OwogICAgIGxvYWRQYXJhbWV0ZXJzLmNv
bnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5ID0gQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xp
Y3k6OlNuaWZmOwpAQCAtNjMwLDYgKzYzNiw5IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnN0
YXJ0UGluZ0xvYWQoRnIKICAgICBsb2FkUGFyYW1ldGVycy5zb3VyY2VPcmlnaW4gPSAmZG9jdW1l
bnQtPnNlY3VyaXR5T3JpZ2luKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMudG9wT3JpZ2luID0gJmRv
Y3VtZW50LT50b3BPcmlnaW4oKTsKICAgICBsb2FkUGFyYW1ldGVycy5wYXJlbnRQSUQgPSBwcmVz
ZW50aW5nQXBwbGljYXRpb25QSUQoKTsKKyNpZiBIQVZFKEFVRElUX1RPS0VOKQorICAgIGxvYWRQ
YXJhbWV0ZXJzLm5ldHdvcmtQcm9jZXNzQXVkaXRUb2tlbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLm5ldHdvcmtQcm9jZXNzQXVkaXRU
b2tlbigpOworI2VuZGlmCiAgICAgbG9hZFBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3kgPSBvcHRpb25zLmNyZWRlbnRpYWxzID09IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9t
aXQgPyBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2UgOiBTdG9yZWRDcmVkZW50aWFs
c1BvbGljeTo6VXNlOwogICAgIGxvYWRQYXJhbWV0ZXJzLm9wdGlvbnMgPSBvcHRpb25zOwogICAg
IGxvYWRQYXJhbWV0ZXJzLm9yaWdpbmFsUmVxdWVzdEhlYWRlcnMgPSBvcmlnaW5hbFJlcXVlc3RI
ZWFkZXJzOwpAQCAtNjkwLDYgKzY5OSw5IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnByZWNv
bm5lY3RUbyhGcmEKICAgICBwYXJhbWV0ZXJzLndlYlBhZ2VJRCA9IHdlYlBhZ2UtPmlkZW50aWZp
ZXIoKTsKICAgICBwYXJhbWV0ZXJzLndlYkZyYW1lSUQgPSB3ZWJGcmFtZS0+ZnJhbWVJRCgpOwog
ICAgIHBhcmFtZXRlcnMucGFyZW50UElEID0gcHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7Cisj
aWYgSEFWRShBVURJVF9UT0tFTikKKyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtQcm9jZXNzQXVkaXRU
b2tlbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbigpLm5ldHdvcmtQcm9jZXNzQXVkaXRUb2tlbigpOworI2VuZGlmCiAgICAgcGFyYW1ldGVy
cy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5OwogICAg
IHBhcmFtZXRlcnMuc2hvdWxkUHJlY29ubmVjdE9ubHkgPSBQcmVjb25uZWN0T25seTo6WWVzOwog
ICAgIHBhcmFtZXRlcnMuc2hvdWxkUmVzdHJpY3RIVFRQUmVzcG9uc2VBY2Nlc3MgPSBzaG91bGRQ
ZXJmb3JtU2VjdXJpdHlDaGVja3MoKTsKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MDYyOCkKKysrIFRvb2xzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE5LTEwLTAyICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKDI0OTY0OSk6
IFVuYWJsZSB0byBvcGVuIGxvY2FsIGZpbGVzIGluIE1pbmlCcm93c2VyIG9uIG1hY09TCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE3OTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgIEFkZGVkIEFQSSB0ZXN0
IFdLV2ViVmlldy5Mb2FkRmlsZVdpdGhMb2FkUmVxdWVzdC4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9hZEZpbGVVUkwubW06CisKIDIwMTktMTAtMDIgIFRo
aWJhdWx0IFNhdW5pZXIgIDx0c2F1bmllckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU1RyZWFt
ZXJdIExldCBwbGF5YmluIGhhbmRsZSByZWRpcmVjdHMgZm9yIHVzIHdoZW4gYXBwcm9wcmlhdGUK
SW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9hZEZpbGVVUkwu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9M
b2FkRmlsZVVSTC5tbQkocmV2aXNpb24gMjUwNTMwKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Mb2FkRmlsZVVSTC5tbQkod29ya2luZyBjb3B5KQpAQCAtMzIsNiAr
MzIsMTcgQEAKICNpbXBvcnQgPFdlYktpdC9XZWJWaWV3UHJpdmF0ZS5oPgogI2ltcG9ydCA8d3Rm
L1JldGFpblB0ci5oPgogCitURVNUKFdLV2ViVmlldywgTG9hZEZpbGVXaXRoTG9hZFJlcXVlc3Qp
Cit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgYXV0byBkZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAg
W3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIE5T
VVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpA
Imh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgIFt3
ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworICAgIFtkZWxlZ2F0ZSB3YWl0Rm9yRGlkRmlu
aXNoTmF2aWdhdGlvbl07Cit9CiAKIFRFU1QoV0tXZWJWaWV3LCBMb2FkVHdvRmlsZXMpCiB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>