<?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>134500</bug_id>
          
          <creation_ts>2014-07-01 11:03:01 -0700</creation_ts>
          <short_desc>Add WTF::move()</short_desc>
          <delta_ts>2014-07-03 17:34:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>134417</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>buildbot</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rego</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1019673</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-07-01 11:03:01 -0700</bug_when>
    <thetext>As seen in bug #134304 and &lt;http://trac.webkit.org/changeset/170594&gt;, using std::move() is error prone. In particular, std::move() is happy to take a const lvalue reference as its argument even though we won&apos;t be allowed to move such a type (*). Ideally the compiler would warn us of such bad usage.

(*) The return value of std::move() for such an argument may allow for the invocation of a move constructor or move-assignment operator taking a const rvalue reference, but such functions are nonsensical (since we&apos;re talking about transferring ownership when talking about move operations).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1019676</commentid>
    <comment_count>1</comment_count>
      <attachid>234177</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-07-01 11:15:37 -0700</bug_when>
    <thetext>Created attachment 234177
Patch

Add WTF::move(), which compile asserts that its argument is a non-const lvalue reference that is movable before calling through to std::move().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1019677</commentid>
    <comment_count>2</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-07-01 11:18:32 -0700</bug_when>
    <thetext>Assuming we choose to land such an idiom I&apos;ll send out an email to webkit-dev to announce and evangelize it before landing the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1019678</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-01 11:20:19 -0700</bug_when>
    <thetext>Attachment 234177 did not pass style-queue:


ERROR: Source/WTF/wtf/text/AtomicString.h:81:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WebCore/css/RuleSet.h:131:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/MainThread.cpp:217:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/graphics/Font.cpp:218:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WebCore/accessibility/AccessibilityObject.h:236:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm:869:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm:879:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm:889:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/Modules/webdatabase/SQLStatementBackend.cpp:85:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WebKit2/Scripts/webkit2/LegacyMessageReceiver-expected.cpp:77:  _result is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebKit2/Scripts/webkit2/LegacyMessageReceiver-expected.cpp:96:  _result is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebKit2/Scripts/webkit2/MessageReceiver-expected.cpp:77:  _result is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebKit2/Scripts/webkit2/MessageReceiver-expected.cpp:96:  _result is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/rendering/style/DataRef.h:34:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WebCore/xml/XPathValue.h:47:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WebCore/xml/XPathValue.h:82:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/AccessorCallJITStubRoutine.cpp:38:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
Total errors found: 17 in 688 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1019808</commentid>
    <comment_count>4</comment_count>
      <attachid>234211</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-07-01 16:13:58 -0700</bug_when>
    <thetext>Created attachment 234211
Patch

From my understanding from reading section 14.8.2/8 [temp.deduct] C++ standard (*), GCC and MSVC seem to treat access control checks during template deduction as compile-time errors instead of a deduction failure.

(*) &lt;http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1019812</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-01 16:16:54 -0700</bug_when>
    <thetext>Attachment 234211 did not pass style-queue:


ERROR: Source/WTF/wtf/text/AtomicString.h:81:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WebCore/css/RuleSet.h:131:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/MainThread.cpp:217:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/graphics/Font.cpp:218:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WebCore/accessibility/AccessibilityObject.h:236:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm:869:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm:879:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm:889:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/Modules/webdatabase/SQLStatementBackend.cpp:85:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WebKit2/Scripts/webkit2/LegacyMessageReceiver-expected.cpp:77:  _result is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebKit2/Scripts/webkit2/LegacyMessageReceiver-expected.cpp:96:  _result is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebKit2/Scripts/webkit2/MessageReceiver-expected.cpp:77:  _result is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebKit2/Scripts/webkit2/MessageReceiver-expected.cpp:96:  _result is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/rendering/style/DataRef.h:34:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WebCore/xml/XPathValue.h:47:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WebCore/xml/XPathValue.h:82:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/AccessorCallJITStubRoutine.cpp:38:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
Total errors found: 17 in 688 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1019931</commentid>
    <comment_count>6</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-07-02 02:10:51 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=234211) [details]
&gt; Patch
&gt; 
&gt; From my understanding from reading section 14.8.2/8 [temp.deduct] C++ standard (*), GCC and MSVC seem to treat access control checks during template deduction as compile-time errors instead of a deduction failure.
&gt; 
&gt; (*) &lt;http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf&gt;

Please also file a bug on &lt;http://llvm.org/bugs/&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1019984</commentid>
    <comment_count>7</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-07-02 09:44:51 -0700</bug_when>
    <thetext>Does anyone know what version of GCC the rego-gtk-ews GTK-WK2 bot is using? Is it 4.8?

CC&apos;ing Manuel Rego Casasnovas, who I suspect manages the rego-gtk-ews bot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1019988</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-07-02 09:47:41 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Please also file a bug on &lt;http://llvm.org/bugs/&gt;.

I think Dan is saying that clang gets this right and gcc and MSVC get it wrong. So I don’t think we need to file a clang bug report. But maybe I’m misunderstanding.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1019991</commentid>
    <comment_count>9</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-07-02 10:06:00 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #6)
&gt; &gt; Please also file a bug on &lt;http://llvm.org/bugs/&gt;.
&gt; 
&gt; I think Dan is saying that clang gets this right and gcc and MSVC get it wrong. So I don’t think we need to file a clang bug report. But maybe I’m misunderstanding.

That&apos;s correct. I claim that this is a bug in GCC and MSVC and that Clang behaves correctly. I&apos;ll look to file bugs against GCC and MSVC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1019992</commentid>
    <comment_count>10</comment_count>
      <attachid>234211</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-07-02 10:19:50 -0700</bug_when>
    <thetext>Comment on attachment 234211
Patch

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

&gt; Source/WTF/wtf/StdLibExtras.h:130
&gt; +#if COMPILER(CLANG)

After talking with Darin Adler yesterday (07/01), we should assume we&apos;re using a compiler that conforms to the C++11 standard. For now, GCC and MSVC don&apos;t conform to it with respect to the handling of access control checks during template deduction.

I&apos;ll change this line to have the form:

#if COMPILER(MSVC) || COMPILER(GCC) &amp;&amp; !COMPILER(CLANG)

before landing this patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1019994</commentid>
    <comment_count>11</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-07-02 10:27:50 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Does anyone know what version of GCC the rego-gtk-ews GTK-WK2 bot is using? Is it 4.8?
&gt; 
&gt; CC&apos;ing Manuel Rego Casasnovas, who I suspect manages the rego-gtk-ews bot.

It uses GCC 4.8 by the looks of libstdc++ include paths.

I&apos;ll test this out locally with GCC 4.7 through 4.9.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020007</commentid>
    <comment_count>12</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-07-02 12:45:10 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Does anyone know what version of GCC the rego-gtk-ews GTK-WK2 bot is using? Is it 4.8?
&gt; 
&gt; CC&apos;ing Manuel Rego Casasnovas, who I suspect manages the rego-gtk-ews bot.

Yeah, the version is:
$ gcc --version
gcc (Debian 4.8.2-16) 4.8.2

BTW, I can try manually any patch in the bot if needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020031</commentid>
    <comment_count>13</comment_count>
      <attachid>234211</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-07-02 14:20:03 -0700</bug_when>
    <thetext>Comment on attachment 234211
Patch

FWIW, this builds fine in 4.9.0 (my bot is using that version now).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020035</commentid>
    <comment_count>14</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-07-02 14:26:56 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 234211 [details])
&gt; FWIW, this builds fine in 4.9.0 (my bot is using that version now).

As told on IRC, Rego still used the build guard that only enables the move-constructible and move-assignable checks on Clang.

So there&apos;s indeed a problem with all GCC versions, and guarding out the std::is_move_constructible&lt;&gt; and std::is_move_assignable&lt;&gt; uses (as it&apos;s done in the second patch) avoids the compilation errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020054</commentid>
    <comment_count>15</comment_count>
      <attachid>234284</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-07-02 14:52:45 -0700</bug_when>
    <thetext>Created attachment 234284
Patch 1 of 2 - Only adds WTF::move()

As requested on IRC by Anders Carlsson, a patch that only adds WTF::move().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020056</commentid>
    <comment_count>16</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-07-02 14:53:25 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 234211 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=234211&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/StdLibExtras.h:130
&gt; &gt; +#if COMPILER(CLANG)
&gt; 
&gt; After talking with Darin Adler yesterday (07/01), we should assume we&apos;re using a compiler that conforms to the C++11 standard. For now, GCC and MSVC don&apos;t conform to it with respect to the handling of access control checks during template deduction.
&gt; 
&gt; I&apos;ll change this line to have the form:
&gt; 
&gt; #if COMPILER(MSVC) || COMPILER(GCC) &amp;&amp; !COMPILER(CLANG)

I meant to write:

#if !COMPILER(MSVC) &amp;&amp; (!COMPILER(GCC) || COMPILER(CLANG))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020112</commentid>
    <comment_count>17</comment_count>
      <attachid>234284</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-07-02 17:28:22 -0700</bug_when>
    <thetext>Comment on attachment 234284
Patch 1 of 2 - Only adds WTF::move()

Attachment 234284 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/4808763638808576

New failing tests:
media/W3C/video/networkState/networkState_during_loadstart.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020113</commentid>
    <comment_count>18</comment_count>
      <attachid>234298</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-07-02 17:28:28 -0700</bug_when>
    <thetext>Created attachment 234298
Archive of layout-test-results from webkit-ews-12 for mac-mountainlion-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: webkit-ews-12  Port: mac-mountainlion-wk2  Platform: Mac OS X 10.8.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020278</commentid>
    <comment_count>19</comment_count>
      <attachid>234284</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-07-03 09:51:23 -0700</bug_when>
    <thetext>Comment on attachment 234284
Patch 1 of 2 - Only adds WTF::move()

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

&gt; Source/WTF/wtf/StdLibExtras.h:122
&gt; +template&lt;class T&gt;

I prefer typename.

&gt; Source/WTF/wtf/StdLibExtras.h:135
&gt; +    static_assert(std::is_move_constructible&lt;NonConstNonRefQualifiedType&gt;::value || std::is_move_assignable&lt;NonConstNonRefQualifiedType&gt;::value, &quot;T is not movable.&quot;);

I thought we discussed that we want &amp;&amp; here, not ||.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020279</commentid>
    <comment_count>20</comment_count>
      <attachid>234284</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-07-03 09:53:12 -0700</bug_when>
    <thetext>Comment on attachment 234284
Patch 1 of 2 - Only adds WTF::move()

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

&gt; Source/WTF/wtf/StdLibExtras.h:123
&gt; +ALWAYS_INLINE typename std::remove_reference&lt;T&gt;::type&amp;&amp; move(T&amp;&amp; value)

To match the model of the rest of WTF, I think we’d want to put a &quot;using WTF::move&quot; at the end of the file. Or maybe we explicitly don’t want that and want to be explicit about using WTF::move at every site where we use it.

I’m not 100% sure that StdLibExtras.h is the perfect place for this, but I can’t think of a better one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020301</commentid>
    <comment_count>21</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-07-03 10:41:31 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 234284 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=234284&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/StdLibExtras.h:122
&gt; &gt; +template&lt;class T&gt;
&gt; 
&gt; I prefer typename.
&gt; 

Will change before landing.

&gt; &gt; Source/WTF/wtf/StdLibExtras.h:135
&gt; &gt; +    static_assert(std::is_move_constructible&lt;NonConstNonRefQualifiedType&gt;::value || std::is_move_assignable&lt;NonConstNonRefQualifiedType&gt;::value, &quot;T is not movable.&quot;);
&gt; 
&gt; I thought we discussed that we want &amp;&amp; here, not ||.

Ditto.

(In reply to comment #20)
&gt; (From update of attachment 234284 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=234284&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/StdLibExtras.h:123
&gt; &gt; +ALWAYS_INLINE typename std::remove_reference&lt;T&gt;::type&amp;&amp; move(T&amp;&amp; value)
&gt; 
&gt; To match the model of the rest of WTF, I think we’d want to put a &quot;using WTF::move&quot; at the end of the file. Or maybe we explicitly don’t want that and want to be explicit about using WTF::move at every site where we use it.
&gt; 

I spoke with Anders Carlsson this morning about this (07/03). We prefer being explicit and using the namespace-qualified form at call sites because it makes such usage less error prone (say, in the presence of a &quot;using namespace std&quot; directive) and makes its usages more pronounced in the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020362</commentid>
    <comment_count>22</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-07-03 13:41:21 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 234284 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=234284&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/StdLibExtras.h:122
&gt; &gt; +template&lt;class T&gt;
&gt; 
&gt; I prefer typename.
&gt; 
&gt; &gt; Source/WTF/wtf/StdLibExtras.h:135
&gt; &gt; +    static_assert(std::is_move_constructible&lt;NonConstNonRefQualifiedType&gt;::value || std::is_move_assignable&lt;NonConstNonRefQualifiedType&gt;::value, &quot;T is not movable.&quot;);
&gt; 
&gt; I thought we discussed that we want &amp;&amp; here, not ||.

Actually, this compile assert isn&apos;t useful using either &amp;&amp; or ||. I will remove it before landing the patch. The data type of the passed argument may neither be move constructible nor move assignable (nor both). For instance, PassRef isn&apos;t move assignable (i.e. PassRef&amp; operator=(PassRef&amp;&amp;) is neither implicitly nor explicitly defined), but RefPtr has an overloaded constructor and assignment operator that take a PassRef&amp;&amp; (**). Looking at the latter, RefPtr moves the passed PassRef into a local RefPtr using WTF::move(). Then WTF::move() would compile assert that the specified PassRef&amp; isn&apos;t movable because PassRef isn&apos;t move assignable. But we can move the PassRef&amp; into the RefPtr by (**).

What we really want is to compile assert that the function called with the result of WTF::move() takes an rvalue reference. As far as I know this isn&apos;t possible to do from within WTF::move(). :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020363</commentid>
    <comment_count>23</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-07-03 13:45:38 -0700</bug_when>
    <thetext>(In reply to comment #22)
[...]
&gt; What we really want is to compile assert that the function called with the result of WTF::move() takes an rvalue reference. As far as I know this isn&apos;t possible to do from within WTF::move(). :(

I meant to write:

What we really want is to compile assert that the function called with the result of WTF::move() takes an rvalue reference. As far as I know this isn&apos;t possible to do from within WTF::move() in a way that generalizes to all types. We may be able to achieve this effect using template specialization, but this seems brittle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020383</commentid>
    <comment_count>24</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-07-03 15:14:35 -0700</bug_when>
    <thetext>Committed r170774: &lt;http://trac.webkit.org/changeset/170774&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020415</commentid>
    <comment_count>25</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-07-03 17:34:57 -0700</bug_when>
    <thetext>Joseph Pecoraro landed a build fix for the iOS device release build in &lt;http://trac.webkit.org/changeset/170780&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234177</attachid>
            <date>2014-07-01 11:15:37 -0700</date>
            <delta_ts>2014-07-01 16:13:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>WK134500.patch</filename>
            <type>text/plain</type>
            <size>814283</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">RnJvbSBjOTc0MDg0MDViOGMyZjcxODExNmU5NzQ1N2EwNTZjMTBjYzJkM2U1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgQmF0ZXMgPGRiYXRlc0B3ZWJraXQub3JnPgpEYXRl
OiBUdWUsIDEgSnVsIDIwMTQgMTE6MDc6MDUgLTA3MDAKU3ViamVjdDogW1BBVENIXSBBZGQgV1RG
Ojptb3ZlKCkKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ1MDAK
ClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKU291cmNlL0phdmFTY3JpcHRDb3JlOgpTdWJz
dGl0dXRlIFdURjo6bW92ZSgpIGZvciBzdGQ6Om1vdmUoKS4KCiogYnl0ZWNvZGUvQ29kZUJsb2Nr
Lmg6CiogYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwOgoqIGJ5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5jcHA6CiogZGZnL0RGR0dyYXBoLmNwcDoKKiBkZmcvREZHSklUQ29tcGls
ZXIuY3BwOgoqIGRmZy9ERkdTdGFja0xheW91dFBoYXNlLmNwcDoKKiBkZmcvREZHV29ya2xpc3Qu
Y3BwOgoqIGhlYXAvRGVsYXllZFJlbGVhc2VTY29wZS5oOgoqIGhlYXAvSGVhcElubGluZXMuaDoK
KiBoZWFwL1dlYWtJbmxpbmVzLmg6CiogaW5zcGVjdG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnku
Y3BwOgoqIGluc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwOgoq
IGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcDoKKiBqaXQvQWNjZXNz
b3JDYWxsSklUU3R1YlJvdXRpbmUuY3BwOgoqIGppdC9Bcml0eUNoZWNrRmFpbFJldHVyblRodW5r
cy5jcHA6Ciogaml0L1JlcGF0Y2guY3BwOgoqIHBhcnNlci9Ob2Rlcy5jcHA6CiogcGFyc2VyL1Bh
cnNlci5jcHA6CiogcGFyc2VyL1BhcnNlci5oOgoqIHBhcnNlci9Tb3VyY2VQcm92aWRlckNhY2hl
LmNwcDoKKiByZXBsYXkvRW5jb2RlZFZhbHVlLmg6CiogcmVwbGF5L3NjcmlwdHMvQ29kZUdlbmVy
YXRvclJlcGxheUlucHV0cy5weToKKiByZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5l
cmF0ZS1lbnVtLXdpdGgtZ3VhcmQuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmNwcDoKKiByZXBsYXkv
c2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1tZW1vaXplZC10eXBlLW1vZGVzLmpzb24t
VGVzdFJlcGxheUlucHV0cy5jcHA6CiogcnVudGltZS9TeW1ib2xUYWJsZS5oOgoqIHJ1bnRpbWUv
V2Vha0dDTWFwLmg6CgpTb3VyY2UvV2ViQ29yZToKU3Vic3RpdHV0ZSBXVEY6Om1vdmUoKSBmb3Ig
c3RkOjptb3ZlKCkuCgoqIE1vZHVsZXMvYmF0dGVyeS9OYXZpZ2F0b3JCYXR0ZXJ5LmNwcDoKKiBN
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHA6CiogTW9kdWxlcy9nYW1lcGFkL05h
dmlnYXRvckdhbWVwYWQuY3BwOgoqIE1vZHVsZXMvZ2FtZXBhZC9kZXByZWNhdGVkL05hdmlnYXRv
ckdhbWVwYWQuY3BwOgoqIE1vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24u
Y3BwOgoqIE1vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5jcHA6Ciog
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmNwcDoKKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmQuaDoKKiBNb2R1bGVzL2luZGV4ZWRkYi9QYWdlR3JvdXBJ
bmRleGVkRGF0YWJhc2UuY3BwOgoqIE1vZHVsZXMvaW5kZXhlZGRiL1dvcmtlckdsb2JhbFNjb3Bl
SW5kZXhlZERhdGFiYXNlLmNwcDoKKiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJhY2tp
bmdTdG9yZUxldmVsREIuY3BwOgoqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3Bw
OgoqIE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcDoKKiBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0RUTUZTZW5kZXIuY3BwOgoqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNo
YW5uZWwuY3BwOgoqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwOgoq
IE1vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHA6
CiogTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxzLmg6
CiogTW9kdWxlcy9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwOgoqIE1v
ZHVsZXMvbm90aWZpY2F0aW9ucy9Xb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMuY3BwOgog
ICAgICAgWy4uLl0KClNvdXJjZS9XZWJLaXQvaW9zOgpTdWJzdGl0dXRlIFdURjo6bW92ZSgpIGZv
ciBzdGQ6Om1vdmUoKS4KCiogV2ViQ29yZVN1cHBvcnQvV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQu
bW06CigtW1dlYkZpeGVkUG9zaXRpb25Db250ZW50IHNldFZpZXdwb3J0Q29uc3RyYWluZWRMYXll
cnM6c3RpY2t5Q29udGFpbmVyTWFwOl0pOgoqIFdlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNs
aWVudElPUy5tbToKKFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpXZWJJbnNwZWN0b3JGcm9u
dGVuZENsaWVudCk6CgpTb3VyY2UvV2ViS2l0L21hYzoKU3Vic3RpdHV0ZSBXVEY6Om1vdmUoKSBm
b3Igc3RkOjptb3ZlKCkuCgoqIEhpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW06CigtW1dlYkhpc3Rv
cnlJdGVtIGluaXRGcm9tRGljdGlvbmFyeVJlcHJlc2VudGF0aW9uOl0pOgoqIFBsdWdpbnMvSG9z
dGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5oOgooV2ViS2l0OjpOZXRzY2FwZVBsdWdp
bkluc3RhbmNlUHJveHk6OnNldEN1cnJlbnRSZXBseSk6CiogUGx1Z2lucy9XZWJOZXRzY2FwZVBs
dWdpblZpZXcubW06CigtW1dlYk5ldHNjYXBlUGx1Z2luVmlldyBzY2hlZHVsZVRpbWVyV2l0aElu
dGVydmFsOnJlcGVhdDp0aW1lckZ1bmM6XSk6CiogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQubW06CihXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JSZXNwb25zZSk6CihXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JOZXdXaW5kb3dBY3Rpb24pOgooV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CihXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hXaWxsU3VibWl0Rm9ybSk6CiogV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1t
OgooV2ViSW5zcGVjdG9yQ2xpZW50OjpvcGVuSW5zcGVjdG9yRnJvbnRlbmQpOgooV2ViSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnQ6OldlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50KToKKiBXZWJWaWV3
L1dlYkFyY2hpdmUubW06CigtW1dlYkFyY2hpdmUgaW5pdFdpdGhNYWluUmVzb3VyY2U6c3VicmVz
b3VyY2VzOnN1YmZyYW1lQXJjaGl2ZXM6XSk6CgpTb3VyY2UvV2ViS2l0L3dpbjoKU3Vic3RpdHV0
ZSBXVEY6Om1vdmUoKSBmb3Igc3RkOjptb3ZlKCkuCgoqIFdlYkNvcmVTdXBwb3J0L1dlYkluc3Bl
Y3RvckNsaWVudC5jcHA6CihXZWJJbnNwZWN0b3JDbGllbnQ6Om9wZW5JbnNwZWN0b3JGcm9udGVu
ZCk6CihXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQpOgoqIFdlYkhpc3RvcnkuY3BwOgooY3JlYXRlVXNlckluZm9Gcm9tQXJyYXkpOgoqIFdlYkhp
c3RvcnlJdGVtLmNwcDoKKFdlYkhpc3RvcnlJdGVtOjppbml0RnJvbURpY3Rpb25hcnlSZXByZXNl
bnRhdGlvbik6CiogV2ViVmlldy5jcHA6CihXZWJWaWV3OjphZGRUb0RpcnR5UmVnaW9uKToKKFdl
YlZpZXc6OnNjcm9sbEJhY2tpbmdTdG9yZSk6CgpTb3VyY2UvV2ViS2l0MjoKU3Vic3RpdHV0ZSBX
VEY6Om1vdmUoKSBmb3Igc3RkOjptb3ZlKCkuCgoqIERhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVBy
b2Nlc3MuY3BwOgoqIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2Uu
Y3BwOgoqIE5ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvTmV0d29ya1Nl
cnZpY2VFbnRyeVBvaW50Lm1tOgoqIE5ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JS
ZWdpc3RyeS5jcHA6CiogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwOgoqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgoqIFBsYXRmb3JtL0lQQy9B
cmd1bWVudERlY29kZXIuY3BwOgoqIFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcDoKKiBQbGF0
Zm9ybS9JUEMvQ29ubmVjdGlvbi5oOgoqIFBsYXRmb3JtL0lQQy9IYW5kbGVNZXNzYWdlLmg6Ciog
UGxhdGZvcm0vSVBDL01lc3NhZ2VEZWNvZGVyLmNwcDoKKiBQbGF0Zm9ybS9JUEMvTWVzc2FnZVNl
bmRlci5jcHA6CiogUGxhdGZvcm0vSVBDL01lc3NhZ2VTZW5kZXIuaDoKKiBQbGF0Zm9ybS9JUEMv
bWFjL0Nvbm5lY3Rpb25NYWMubW06CiogUGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXgu
Y3BwOgoqIFBsYXRmb3JtL2VmbC9EaXNwYXRjaFF1ZXVlRWZsLmNwcDoKKiBQbGF0Zm9ybS9lZmwv
RGlzcGF0Y2hRdWV1ZVdvcmtJdGVtRWZsLmg6CiogUGxhdGZvcm0vZWZsL1dvcmtRdWV1ZUVmbC5j
cHA6CiogUGxhdGZvcm0vZ3RrL1dvcmtRdWV1ZUd0ay5jcHA6CiogUGx1Z2luUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tOgoqIFBsdWdp
blByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgogICAgICAgWy4uLl0KClNvdXJjZS9X
VEY6CkltcGxlbWVudCBXVEY6Om1vdmUoKSwgYSByZXBsYWNlbWVudCBmb3Igc3RkOjptb3ZlKCku
IFdURjo6bW92ZSgpIGlzIGxlc3MgZXJyb3IKcHJvbmUgdGhhbiBzdGQ6Om1vdmUoKSBhcyBpdCBj
b21waWxlIGFzc2VydHMgdGhhdCBpdHMgYXJndW1lbnQgaXMgbm9uLWNvbnN0IGFuZAppdHMgZGF0
YXR5cGUgaXMgbW92YWJsZSBiZWZvcmUgdWx0aW1hdGVseSBjYXN0aW5nIGl0IHRvIGFuIHJ2YWx1
ZSByZWZlcmVuY2UgKHZpYSBzdGQ6Om1vdmUpLgoKKiB3dGYvRGVxdWUuaDoKKiB3dGYvSGFzaE1h
cC5oOgoqIHd0Zi9IYXNoU2V0Lmg6Ciogd3RmL0hhc2hUYWJsZS5oOgoqIHd0Zi9JdGVyYXRvckFk
YXB0b3JzLmg6Ciogd3RmL0l0ZXJhdG9yUmFuZ2UuaDoKKiB3dGYvTGlzdEhhc2hTZXQuaDoKKiB3
dGYvTWFpblRocmVhZC5jcHA6Ciogd3RmL01hbGxvY1B0ci5oOgoqIHd0Zi9NZXNzYWdlUXVldWUu
aDoKKiB3dGYvT3B0aW9uYWwuaDoKKiB3dGYvT3duUHRyLmg6Ciogd3RmL1JlZlB0ci5oOgoqIHd0
Zi9SZWZQdHJIYXNoTWFwLmg6Ciogd3RmL1JldGFpblB0ci5oOgoqIHd0Zi9SdW5Mb29wLmNwcDoK
KiB3dGYvU3RkTGliRXh0cmFzLmg6CihXVEY6Om1vdmUpOiBBZGRlZC4KKiB3dGYvVmVjdG9yLmg6
Ciogd3RmL2dvYmplY3QvR01haW5Mb29wU291cmNlLmNwcDoKKiB3dGYvdGV4dC9BdG9taWNTdHJp
bmcuaDoKKiB3dGYvdGV4dC9XVEZTdHJpbmcuY3BwOgoqIHd0Zi93aW4vR0RJT2JqZWN0Lmg6CgpU
b29sczoKU3Vic3RpdHV0ZSBXVEY6Om1vdmUoKSBmb3Igc3RkOjptb3ZlKCkuCgoqIER1bXBSZW5k
ZXJUcmVlL3dpbi9EUlREYXRhT2JqZWN0LmNwcDoKKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9I
YXNoTWFwLmNwcDoKKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoU2V0LmNwcDoKKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZQdHIuY3BwOgoqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1ZlY3Rvci5jcHA6CiogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcDoKKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9ucy9SZXRhaW5QdHIubW06CiogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0NhbGN1bGF0aW9uVmFsdWUuY3BwOgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgIHwgIDM2ICsrKysrKysKIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaCAgICAgICAgIHwgICAyICstCiAuLi4v
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwICB8ICAgMiArLQog
Li4uL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAgICAgICAgICAgICAgfCAgIDIg
Ky0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwICAgICAgICAgICAgIHwg
ICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcCAgICAg
ICB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdGFja0xheW91dFBoYXNl
LmNwcCAgfCAgIDIgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3Bw
ICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9EZWxheWVkUmVs
ZWFzZVNjb3BlLmggICB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcElu
bGluZXMuaCAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dl
YWtJbmxpbmVzLmggICAgICAgICAgIHwgICAyICstCiAuLi4vaW5zcGVjdG9yL0luc3BlY3RvckFn
ZW50UmVnaXN0cnkuY3BwICAgICAgICAgICB8ICAgMiArLQogLi4uL0pTR2xvYmFsT2JqZWN0SW5z
cGVjdG9yQ29udHJvbGxlci5jcHAgICAgICAgICAgfCAgIDYgKy0KIC4uLi9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAgICAgIHwgICAyICstCiAuLi4vaml0L0FjY2Vz
c29yQ2FsbEpJVFN0dWJSb3V0aW5lLmNwcCAgICAgICAgICAgICB8ICAgMiArLQogLi4uL2ppdC9B
cml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5jcHAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAgICAgICAgICAgICAgIHwgICAyICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmNwcCAgICAgICAgICAgICB8ICAgMiAr
LQogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwICAgICAgICAgICAgfCAg
IDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmggICAgICAgICAgICAg
IHwgICAyICstCiAuLi4vSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyQ2FjaGUu
Y3BwICB8ICAgMiArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9FbmNvZGVkVmFsdWUu
aCAgICAgICAgfCAgIDIgKy0KIC4uLi9yZXBsYXkvc2NyaXB0cy9Db2RlR2VuZXJhdG9yUmVwbGF5
SW5wdXRzLnB5ICAgIHwgICAyICstCiAuLi5lcmF0ZS1lbnVtLXdpdGgtZ3VhcmQuanNvbi1UZXN0
UmVwbGF5SW5wdXRzLmNwcCB8ICAgNCArLQogLi4uZS1tZW1vaXplZC10eXBlLW1vZGVzLmpzb24t
VGVzdFJlcGxheUlucHV0cy5jcHAgfCAgIDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N5bWJvbFRhYmxlLmggICAgICAgIHwgICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9XZWFrR0NNYXAuaCAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dURi9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzUgKysrKysrKwogU291cmNlL1dU
Ri93dGYvRGVxdWUuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJj
ZS9XVEYvd3RmL0hhc2hNYXAuaCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICstCiBT
b3VyY2UvV1RGL3d0Zi9IYXNoU2V0LmggICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCAr
LQogU291cmNlL1dURi93dGYvSGFzaFRhYmxlLmggICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDYgKy0KIFNvdXJjZS9XVEYvd3RmL0l0ZXJhdG9yQWRhcHRvcnMuaCAgICAgICAgICAgICAgICAg
IHwgIDEyICstLQogU291cmNlL1dURi93dGYvSXRlcmF0b3JSYW5nZS5oICAgICAgICAgICAgICAg
ICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XVEYvd3RmL0xpc3RIYXNoU2V0LmggICAgICAgICAgICAg
ICAgICAgICAgIHwgIDE0ICstLQogU291cmNlL1dURi93dGYvTWFpblRocmVhZC5jcHAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XVEYvd3RmL01hbGxvY1B0ci5oICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV1RGL3d0Zi9NZXNzYWdlUXVldWUu
aCAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArLQogU291cmNlL1dURi93dGYvT3B0aW9uYWwu
aCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XVEYvd3RmL093blB0
ci5oICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV1RGL3d0Zi9S
ZWZQdHIuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogU291cmNlL1dURi93
dGYvUmVmUHRySGFzaE1hcC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9X
VEYvd3RmL1JldGFpblB0ci5oICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3Vy
Y2UvV1RGL3d0Zi9SdW5Mb29wLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQog
U291cmNlL1dURi93dGYvU3RkTGliRXh0cmFzLmggICAgICAgICAgICAgICAgICAgICAgfCAgMTIg
KysrCiBTb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgNiArLQogU291cmNlL1dURi93dGYvZ29iamVjdC9HTWFpbkxvb3BTb3VyY2UuY3BwICAgICAg
ICAgfCAgMzAgKysrLS0tCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21pY1N0cmluZy5oICAgICAg
ICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuY3BwICAg
ICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XVEYvd3RmL3dpbi9HRElPYmplY3QuaCAg
ICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAzMSArKysrKysKIC4uLi9XZWJDb3JlL01vZHVsZXMv
YmF0dGVyeS9OYXZpZ2F0b3JCYXR0ZXJ5LmNwcCAgIHwgICAyICstCiAuLi4vV2ViQ29yZS9Nb2R1
bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAgICB8ICAgNCArLQogLi4uL1dlYkNvcmUv
TW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwICAgfCAgIDIgKy0KIC4uLi9nYW1l
cGFkL2RlcHJlY2F0ZWQvTmF2aWdhdG9yR2FtZXBhZC5jcHAgICAgICAgIHwgICAyICstCiAuLi4v
TW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAgICB8ICAgMiArLQog
Li4uL01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5jcHAgfCAgIDIg
Ky0KIC4uLi9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmQuY3BwICAgICAgIHwg
ICAyICstCiAuLi4vV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmQu
aCB8ICAgMiArLQogLi4uL01vZHVsZXMvaW5kZXhlZGRiL1BhZ2VHcm91cEluZGV4ZWREYXRhYmFz
ZS5jcHAgfCAgIDIgKy0KIC4uLi9pbmRleGVkZGIvV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0
YWJhc2UuY3BwIHwgICAyICstCiAuLi4vaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3Jl
TGV2ZWxEQi5jcHAgICB8ICAxMCArLQogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9NZWRpYVNvdXJjZS5jcHAgfCAgIDIgKy0KIC4uLi9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvU291cmNlQnVmZmVyLmNwcCAgIHwgICA0ICstCiAuLi4vV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0RUTUZTZW5kZXIuY3BwICB8ICAgNCArLQogLi4uL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAgfCAgIDYgKy0KIC4uLi9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcCAgICAgIHwgICAyICstCiAuLi4vTmF2aWdhdG9y
Q29udGVudFV0aWxzLmNwcCAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogLi4uL25hdmln
YXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMuaCAgfCAgIDIgKy0KIC4uLi9u
b3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwICAgICAgIHwgICAyICstCiAu
Li4vV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zLmNwcCAgICAgICAgICAgICB8ICAgMiAr
LQogLi4uL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbSAgfCAg
IDIgKy0KIC4uLi9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcCAg
IHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3F1b3RhL0RPTVdpbmRvd1F1b3RhLmNw
cCAgICB8ICAgMiArLQogLi4uL01vZHVsZXMvcXVvdGEvTmF2aWdhdG9yU3RvcmFnZVF1b3RhLmNw
cCAgICAgICAgfCAgIDIgKy0KIC4uLi9Nb2R1bGVzL3F1b3RhL1dvcmtlck5hdmlnYXRvclN0b3Jh
Z2VRdW90YS5jcHAgIHwgICAyICstCiAuLi4vTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNo
U3ludGhlc2lzLmNwcCAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoU3ludGhlc2lzLmNwcCAgfCAgIDIgKy0KIC4uLi9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNwcCAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwICAgIHwgICA0ICstCiAuLi4vTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZUJhY2tlbmQuY3BwICAgICAgICB8ICAgNiArLQogLi4uL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5jcHAgfCAgMTAgKy0KIC4u
Li9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudEJhY2tlbmQuY3BwICAgIHwgICA0ICst
CiAuLi4vV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcCB8ICAg
MiArLQogLi4uL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcCAg
fCAgIDIgKy0KIC4uLi9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3Bw
ICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
LmNwcCAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmNwcCAgICAgfCAgIDIgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0LmNwcCAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaCB8ICAgMiArLQogLi4uL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxn
b3JpdGhtRGljdGlvbmFyeS5jcHAgICAgfCAgMTYgKystLQogLi4uL2JpbmRpbmdzL2pzL0pTQ3J5
cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5jcHAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCAgIHwgICA0ICstCiAuLi4vV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgICB8ICAgMiArLQogLi4uL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwICAgfCAgMjYgKysrLS0tCiAu
Li4vYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAgICAgICB8ICAgNCAr
LQogLi4uL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCAgfCAg
MTAgKy0KIC4uLi9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcCAg
IHwgICA0ICstCiAuLi4vY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmNw
cCAgICB8ICAgNCArLQogLi4uL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMu
Y3BwICAgICAgfCAgIDQgKy0KIC4uLi9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BL
Q1MxX3YxXzUuY3BwIHwgICA2ICstCiAuLi4vQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3Yx
XzUuY3BwICAgICAgICAgICB8ICAgNiArLQogLi4uL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobVJTQV9PQUVQLmNwcCAgfCAgIDYgKy0KIC4uLi9jcnlwdG8vbWFjL0NyeXB0b0FsZ29y
aXRobUFFU19DQkNNYWMuY3BwICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8v
bWFjL0NyeXB0b0tleVJTQU1hYy5jcHAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmggICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCB8ICAxMiArLS0KIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAgICAgICAgICAgIHwgICAyICstCiBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAgICAgICAgICB8ICAgMiAr
LQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuaCAgICAgICAgICAgfCAg
IDIgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcCAgICAgICAg
IHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5oICAgICAg
ICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcCAgICAgICAg
ICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3Bw
ICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55Lmlu
ICAgICAgICAgICAgICAgICB8ICAxOCArKy0tCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2Vy
LmNwcCAgICAgICAgICAgICAgICAgICB8ICAxOCArKy0tCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyVmFsdWVzLmNwcCAgICAgICAgICAgICB8ICAyMiArKy0tLQogU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlclZhbHVlcy5oICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwICAgICAgICAgICAgICAgICB8ICAgMiArLQogU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwICAgICAgICAgICAgICAgfCAgIDggKy0K
IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcCAgICAgIHwgICA0
ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvRG9jdW1lbnRSdWxlU2V0cy5jcHAgICAgICAgICAgICB8
ICAgMiArLQogU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAgICAgICAgICAgICAgICAg
ICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcCAgICAgICAgICAg
ICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaCAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NTdHlsZVNl
bGVjdG9yLmNwcCAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvU291cmNlU2l6
ZUxpc3QuY3BwICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvY3NzL1NvdXJj
ZVNpemVMaXN0LmggICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJlc29sdmVyLmNwcCAgICAgICAgICAgICAgIHwgIDEwICstCiBTb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVSZXNvbHZlci5oICAgICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUnVsZS5jcHAgICAgICAgICAgICAgICAgICAgfCAgMTIgKy0tCiBTb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSdWxlLmggICAgICAgICAgICAgICAgICAgICB8ICAxMiArLS0KIFNv
dXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwICAgICAgIHwgICAyICst
CiBTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmggICAgICAgICB8ICAg
MiArLQogU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuY3BwICAgICAg
fCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAgICAgICAg
ICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwICAgICAgICAgICAg
ICAgICAgICB8ICAgOCArLQogLi4uL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxl
Y3Rpb24uY3BwICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCAgICAg
ICAgICAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVE
YXRhLmggICAgICAgICAgICAgICB8ICAgNiArLQogU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VF
dmVudC5jcHAgICAgICAgICAgICAgICAgfCAgMTAgKy0KIFNvdXJjZS9XZWJDb3JlL2RvbS9NZXNz
YWdlRXZlbnQuaCAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9kb20v
TWVzc2FnZVBvcnQuY3BwICAgICAgICAgICAgICAgICB8ICAxNCArLS0KIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcCAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2Vi
Q29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcCAgICAgICB8ICAgMiArLQogU291cmNl
L1dlYkNvcmUvZG9tL1BzZXVkb0VsZW1lbnQuY3BwICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNv
dXJjZS9XZWJDb3JlL2RvbS9TY29wZWRFdmVudFF1ZXVlLmNwcCAgICAgICAgICAgIHwgICAyICst
CiBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgICAgICB8ICAg
MiArLQogU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCAgICAgICAg
fCAgIDYgKy0KIFNvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQuY3BwICAgICAgICAg
ICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAgICAgICAg
ICAgICAgICB8ICAgMiArLQogLi4uL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFu
bmVsLmNwcCAgICAgfCAgIDggKy0KIC4uLi9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0
Q2hhbm5lbC5oICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVj
a2luZ0hlbHBlci5jcHAgICAgICB8ICAgNiArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0
SXRlcmF0b3IuY3BwICAgICAgICAgICAgfCAgMTAgKy0KIFNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
QmxvYi5jcHAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBTb3VyY2UvV2ViQ29yZS9maWxl
YXBpL0Jsb2IuaCAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
ZmlsZWFwaS9GaWxlTGlzdC5oICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJD
b3JlL2ZpbGVhcGkvRmlsZVRocmVhZC5jcHAgICAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL0ZpbGVUaHJlYWQuaCAgICAgICAgICAgICAgICB8ICAgNCArLQogU291
cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcCAgfCAgIDggKy0K
IFNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvV2ViS2l0QmxvYkJ1aWxkZXIuY3BwICAgICAgIHwgICA2
ICstCiBTb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcCAgICAgICAgICAgICB8
ICAgMiArLQogU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAgICAgICAgICAg
ICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcCAgICAgICAg
ICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUu
Y3BwICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNw
cCAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xs
ZXIuY3BwICAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBs
ZXRFbGVtZW50LmNwcCAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QlJFbGVtZW50LmNwcCAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEJvZHlFbGVtZW50LmNwcCAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcCAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3BwICAgICAgICAgICAgIHwgICAyICstCiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmggICAgICAgICAgICAgICB8ICAgMiArLQog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwICAgICAgICAgfCAgIDIg
Ky0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwICAgICAgICAgICAgICAgIHwg
ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwICAgICAg
ICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlv
bi5jcHAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5jcHAg
ICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1l
bnQuY3BwICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxl
bWVudC5jcHAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdl
RWxlbWVudC5jcHAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcCAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcCAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCAgICAgfCAgMTIgKy0tCiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwICAgICAgICB8ICAgNCArLQog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgICAgICAgICAgfCAgIDYg
Ky0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcCAgICAgICAgIHwg
ICAyICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwICAgICAg
ICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcCAgICAg
ICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwICAg
ICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgICAg
ICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlw
ZS5jcHAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5w
dXRUeXBlLmNwcCAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRG
aWVsZElucHV0VHlwZS5jcHAgICAgICAgICB8ICAgMiArLQogLi4uL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcCAgfCAgIDIgKy0KIC4uLi9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcCAgICB8ICAgNCArLQogU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oICAgICAgfCAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAgIHwgICA0ICstCiAu
Li4vV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUmVzb3VyY2VQcmVsb2FkZXIuY3BwICB8ICAgMiAr
LQogU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRva2VuLmggICAgICAgICAgICAgfCAg
IDIgKy0KIC4uLi9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcCAg
IHwgICAyICstCiAuLi4vV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5j
cHAgICB8ICAgNiArLQogU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVt
ZW50LmNwcCAgfCAgIDIgKy0KIC4uLi9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93
RWxlbWVudC5jcHAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJU
aHVtYkVsZW1lbnQuY3BwICB8ICAgOCArLQogLi4uL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5u
ZXJFbGVtZW50cy5jcHAgICAgICAgfCAgIDQgKy0KIC4uLi9zaGFkb3cvbWFjL0ltYWdlQ29udHJv
bHNCdXR0b25FbGVtZW50TWFjLmNwcCAgIHwgICA0ICstCiAuLi4vc2hhZG93L21hYy9JbWFnZUNv
bnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9WVFRDdWUuY3BwICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9Db21tYW5kTGluZUFQSUhvc3QuY3BwICAgIHwgICAyICstCiBTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvRE9NRWRpdG9yLmNwcCAgICAgICAgICAgICB8ICAgMiArLQogU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5jcHAgICAgICAgfCAgIDIgKy0KIFNv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgICAgIHwgICAyICst
CiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgICB8ICAy
NiArKystLS0KIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAg
ICAgIHwgICA2ICstCiAuLi4vaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwu
Y3BwICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckhpc3Rv
cnkuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JP
dmVybGF5LmNwcCAgICAgIHwgICAyICstCiAuLi4vV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudC5jcHAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclN0eWxlU2hlZXQuY3BwICAgfCAgIDIgKy0KIC4uLi9pbnNwZWN0b3IvV29ya2VySW5z
cGVjdG9yQ29udHJvbGxlci5jcHAgICAgICAgIHwgICA4ICstCiAuLi4vbG9hZGVyL0Nyb3NzT3Jp
Z2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwIHwgICAyICstCiBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAgICAgICB8ICAgNiArLQogU291
cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNhbGxiYWNrLmNwcCAgICAgICAgICAgfCAgIDYgKy0K
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcCAgICAgICAgICAgIHwgICA4
ICstCiAuLi4vV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcCB8
ICAxOCArKy0tCiAuLi4vV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5j
cHAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNw
cCAgICAgICAgfCAgIDQgKy0KIC4uLi9tYXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVu
dC5jcHAgICAgICAgIHwgIDMwICsrKy0tLQogU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1h
dGhFbGVtZW50LmNwcCAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRo
TUxNZW5jbG9zZUVsZW1lbnQuY3BwICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MU2VsZWN0RWxlbWVudC5jcHAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcCAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NVGltZXIuY3BwICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgICAgICAgICAgICAgICAgICB8ICAxNCArLS0KIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5jcHAgICAgICAgICAgICAgICAgICB8ICAgNCAr
LQogU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyQ29udGVudENvbnRyb2xsZXIuY3BwICAgICAgfCAg
IDQgKy0KIC4uLi9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
IHwgICA2ICstCiAuLi4vcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwICAg
ICAgICB8ICAyMCArKy0tCiAuLi4vV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0
ZVRyZWUuY3BwICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVGhyZWFkLmNwcCAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NhbGN1bGF0
aW9uVmFsdWUuY3BwICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DYWxj
dWxhdGlvblZhbHVlLmggICAgICAgICB8ICAgNiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
S2V5ZWRDb2RpbmcuaCAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0xlbmd0aC5jcHAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9MZW5ndGhCb3guaCAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTGVuZ3RoU2l6ZS5oICAgICAgICAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oICAgICAgICAgICAgIHwgICAyICstCiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TdXBwbGVtZW50YWJsZS5oICAgICAgICAgICB8ICAgNCArLQog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuaCAgICAgICAgICAgICAgICAgICAgfCAgIDIg
Ky0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcCAgICAgICAgIHwg
ICAyICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2UuY3BwICAg
ICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkVsZXZhdGlvbi5j
cHAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRp
b24uaCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGS2Vy
bmVsLmNwcCAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJU
Rktlcm5lbC5oICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L1JldmVyYkNvbnZvbHZlci5jcHAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvUmVuZGVyVGhlbWVFZmwuY3BwICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRmxvYXRQb2x5Z29uLmNwcCAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwICAgICAgICAgIHwgICA0ICstCiAuLi4vV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAgICB8ICAgMiArLQogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaCAgfCAgIDIgKy0KIC4uLi9w
bGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5jcHAgICAgICAgIHwgICAyICstCiAu
Li4vcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwICAgICAgICB8ICAgNCAr
LQogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9DYWlyb1V0aWxpdGllc0VmbC5jcHAgICAgfCAg
IDIgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RFZmwuY3Bw
IHwgICAyICstCiAuLi4vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAg
ICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
aWx0ZXIuaCAgfCAgIDIgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9w
ZXJhdGlvbi5oICAgIHwgICA0ICstCiAuLi4vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9w
ZW5HTEVTLmNwcCAgICAgICB8ICAgMiArLQogLi4uL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3Np
dGluZ0Nvb3JkaW5hdG9yLmNwcCAgfCAgIDIgKy0KIC4uLi9jb29yZGluYXRlZC9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIuY3BwICAgICAgIHwgICAyICstCiAuLi4vY29vcmRpbmF0ZWQvQ29vcmRp
bmF0ZWRHcmFwaGljc1NjZW5lLmNwcCAgICAgICB8ICAgOCArLQogLi4uL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAgfCAgIDIgKy0KIC4uLi9ncmFwaGljcy93
aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAgICAgICAgIHwgICAyICstCiAuLi4vZ3JhcGhp
Y3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5jcHAgICB8ICAgMiArLQogLi4uL2dy
YXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhQ0dXaW4uY3BwICAgICAgICAgfCAgIDIgKy0KIC4u
Li9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YUNhaXJvV2luLmNwcCAgICAgIHwgICAyICst
CiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFXaW4uY3BwICB8ICAg
MiArLQogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaGFyZWRHRElPYmplY3QuaCAgICAgICAg
fCAgIDQgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFXaW4uY3Bw
ICAgIHwgICAyICstCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVG91Y2hDb250ZXh0SGVs
cGVyLmNwcCB8ICAgMiArLQogLi4uL1dlYkNvcmUvcGxhdGZvcm0vbGV2ZWxkYi9MZXZlbERCRGF0
YWJhc2UuY3BwICAgfCAgMTAgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9ISURHYW1l
cGFkUHJvdmlkZXIuY3BwIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0Jsb2JEYXRhLmggICAgICAgICB8ICAgNiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9CbG9iUGFydC5oICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvSFRUUEhlYWRlck1hcC5jcHAgIHwgICAyICstCiAuLi4vcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrU3RhdGVOb3RpZmllci5jcHAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oICAgfCAgIDIgKy0KIC4uLi9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwICAgICAgIHwgICA0ICstCiAuLi4vcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAgICAgICB8ICAgMiArLQogLi4u
L3BsYXRmb3JtL25ldHdvcmsvY2YvRm9ybURhdGFTdHJlYW1DRk5ldC5jcHAgICAgfCAgIDIgKy0K
IC4uLi9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwICAgIHwgICAy
ICstCiAuLi4vcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZU1hbmFnZXIuY3BwICAgICB8
ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLm1t
ICAgfCAgIDYgKy0KIC4uLi9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5j
cHAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV0NEYXRhT2JqZWN0
LmNwcCAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNw
cCAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG9hdGlu
Z09iamVjdHMuY3BwICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5
b3V0U3RhdGUuY3BwICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcCAgICAgICAgICAgfCAgIDYgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmggICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAgfCAgIDQgKy0KIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwICAgICAgICAgICAgIHwgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwICB8ICAgNCArLQog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAgICAgICAgICAgfCAgIDIg
Ky0KIC4uLi9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcCAgICAgIHwg
ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGV0YWlsc01hcmtlci5jcHAg
ICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwICAg
ICAgICAgfCAgNDQgKysrKy0tLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxl
bWVudC5oICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVtYmVkZGVkT2JqZWN0LmNwcCAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGaWVsZHNldC5jcHAgICAgICAgIHwgICAyICstCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcCAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcCAgICAgIHwgICAyICstCiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWUuY3BwICAgICAgICAgICB8ICAgMiArLQogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lQmFzZS5jcHAgICAgICAgfCAgIDIgKy0KIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAgICAgICAgIHwgICAyICst
CiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHAgICAgICB8ICAg
OCArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwICAgICAgICAgICAg
fCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmNwcCAg
ICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcCAg
ICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNw
cCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxp
bmUuY3BwICAgICAgICAgIHwgIDEyICstLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHAgfCAgIDIgKy0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllck1vZGVsT2JqZWN0LmNwcCAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGluZUJyZWFrLmNwcCAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5jcHAgICAgICAgIHwgICA2ICstCiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAgICAgICB8ICAgMiArLQogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhLmNwcCAgICAgICAgICAgfCAgIDQgKy0KIC4u
Li9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sRWxlbWVudHMuY3BwICAgICAgIHwgICA2ICst
CiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwICAgICAgICB8ICAg
MiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1ldGVyLmNwcCAgICAgICAgICAg
fCAgIDIgKy0KIC4uLi9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkLmNwcCAg
ICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5T
ZXQuY3BwICB8ICAgMiArLQogLi4uL1JlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVy
LmNwcCAgICAgICAgfCAgIDIgKy0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZs
b3dGcmFnbWVudC5jcHAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TmFtZWRGbG93VGhyZWFkLmNwcCB8ICAgNiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclByb2dyZXNzLmNwcCAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJQdHIuaCAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUXVvdGUuY3BwICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb25TZXQuY3BwICAgICAgIHwgICAyICstCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwICAgICAgICB8ICAgNiArLQogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxpY2EuY3BwICAgICAgICAgfCAgIDIgKy0K
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmNwcCAgICAgICAgICAgIHwgICA0
ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuY3BwICAgICAgICB8
ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwICAgICAg
ICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5VGV4dC5jcHAg
ICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFy
UGFydC5jcHAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJj
aEZpZWxkLmNwcCAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
bGlkZXIuY3BwICAgICAgICAgIHwgICAyICstCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U25hcHNob3R0ZWRQbHVnSW4uY3BwICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlLmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUYWJsZUNhcHRpb24uY3BwICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcCAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmNwcCAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5jcHAgICAgICAgIHwgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcCAgICB8ICAgNCArLQog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcCAgICAgfCAgIDIg
Ky0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oICAgICAgIHwg
ICAyICstCiAuLi4vcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNwcCAgICAg
ICB8ICAgMiArLQogLi4uL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3Bw
ICAgICAgfCAgIDIgKy0KIC4uLi9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
LmggICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVlRUQ3Vl
LmNwcCAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZGVvLmNwcCAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWV3LmNwcCAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5oICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcldpZGdldC5jcHAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9Sb290SW5saW5lQm94LmNwcCAgICAgICAgIHwgICAyICstCiAuLi4vV2ViQ29yZS9y
ZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcCB8ICAgNCArLQogLi4uL1dlYkNv
cmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oICAgfCAgIDIgKy0KIC4uLi9y
ZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5jcHAgICAgICAgIHwgICAyICstCiAu
Li4vcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGcmFjdGlvbi5jcHAgICAgICB8ICAgMiAr
LQogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxNYXRoLmNwcCAgfCAg
IDIgKy0KIC4uLi9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE1lbmNsb3NlLmNwcCAgICAg
IHwgICAyICstCiAuLi4vcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5jcHAg
ICAgICB8ICAgNiArLQogLi4uL21hdGhtbC9SZW5kZXJNYXRoTUxSYWRpY2FsT3BlcmF0b3IuY3Bw
ICAgICAgICAgfCAgIDIgKy0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MUm9vdC5jcHAgIHwgIDEwICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1Jl
bmRlck1hdGhNTFJvb3QuaCB8ICAgMiArLQogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9S
ZW5kZXJNYXRoTUxSb3cuY3BwICAgfCAgIDQgKy0KIC4uLi9yZW5kZXJpbmcvbWF0aG1sL1JlbmRl
ck1hdGhNTFNjcmlwdHMuY3BwICAgICAgIHwgICAyICstCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcv
bWF0aG1sL1JlbmRlck1hdGhNTFNjcmlwdHMuaCB8ICAgMiArLQogLi4uL1dlYkNvcmUvcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTcGFjZS5jcHAgfCAgIDIgKy0KIC4uLi9yZW5kZXJpbmcv
bWF0aG1sL1JlbmRlck1hdGhNTFNxdWFyZVJvb3QuY3BwICAgIHwgICA0ICstCiAuLi4vV2ViQ29y
ZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFRva2VuLmNwcCB8ICAgNiArLQogLi4uL3Jl
bmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVW5kZXJPdmVyLmNwcCAgICAgfCAgIDIgKy0KIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBlLmggICAgIHwgICAyICst
CiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1Jhc3RlclNoYXBlLmggICAgICB8ICAg
MiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAgICAgICAgICAg
fCAgMTAgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5jcHAg
ICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMu
aCAgICAgICB8ICAzMiArKystLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29u
dGVudERhdGEuY3BwICAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L0NvbnRlbnREYXRhLmggICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9EYXRhUmVmLmggICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvRmlsbExheWVyLmNwcCAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oICAgICAgICAgfCAgIDYgKy0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5jcHAgIHwgICA2ICstCiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuaCAgICB8ICAgNiArLQogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCAgICAgfCAgMjIgKystLS0K
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oICAgICAgIHwgMTA0
ICsrKysrKysrKystLS0tLS0tLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NW
R1JlbmRlclN0eWxlLmggICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TaGFkb3dEYXRhLmggICAgICAgIHwgICAyICstCiAuLi4vcmVuZGVyaW5nL3N0eWxlL1N0eWxl
R2VuZXJhdGVkSW1hZ2UuY3BwICAgICAgICB8ICAgMiArLQogLi4uL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuaCAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJlZmxlY3Rpb24uaCAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmNwcCAgICB8ICAgMiArLQogLi4uL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuY3BwICAgfCAgIDIgKy0KIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRWxsaXBzZS5jcHAgIHwgICAyICstCiAu
Li4vcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcCAgICAgICB8ICAgMiAr
LQogLi4uL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHR3JhZGllbnRTdG9wLmNwcCAgICAgICAgfCAg
IDIgKy0KIC4uLi9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0hpZGRlbkNvbnRhaW5lci5jcHAgICAg
IHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmNw
cCAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxp
bmUuY3BwICAgfCAgIDQgKy0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5s
aW5lVGV4dC5jcHAgIHwgICAyICstCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R01vZGVsT2JqZWN0LmNwcCB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdQYXRoLmNwcCAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVjdC5jcHAgICAgIHwgICAyICstCiAuLi4vcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwICAgICB8ICAgMiArLQogLi4uL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuY3BwICAgfCAgIDIgKy0KIC4uLi9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcCAgICAgIHwgIDEyICstLQogLi4uL3N2Zy9S
ZW5kZXJTVkdSZXNvdXJjZUZpbHRlclByaW1pdGl2ZS5jcHAgICAgICAgfCAgIDIgKy0KIC4uLi9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlR3JhZGllbnQuY3BwICAgIHwgICA0ICstCiAu
Li4vc3ZnL1JlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnQuY3BwICAgICAgICB8ICAgMiAr
LQogLi4uL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXIuY3BwICAgICAgfCAg
IDIgKy0KIC4uLi9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcCAgICAg
IHwgICAyICstCiAuLi4vcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4uY3Bw
ICAgICB8ICAgNCArLQogLi4uL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdyYWRpZW50LmNw
cCAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
Um9vdC5jcHAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1NoYXBlLmNwcCAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdUU3Bhbi5oICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHVGV4dC5jcHAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1RleHRQYXRoLmNwcCB8ICAgMiArLQogLi4uL3N2Zy9SZW5kZXJTVkdU
cmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNwcCAgICAgICAgfCAgIDIgKy0KIC4uLi9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmNwcCAgIHwgICAyICstCiAuLi4vV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuY3BwICB8ICAgNCArLQogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXNDYWNoZS5jcHAgfCAgIDIgKy0KIFNv
dXJjZS9XZWJDb3JlL3JlcGxheS9DYXB0dXJpbmdJbnB1dEN1cnNvci5jcHAgICAgIHwgICAyICst
CiBTb3VyY2UvV2ViQ29yZS9yZXBsYXkvTWVtb2l6ZWRET01SZXN1bHQuY3BwICAgICAgICB8ICAg
MiArLQogU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheUNvbnRyb2xsZXIuY3BwICAgICAgICAg
fCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlcGxheS9TZWdtZW50ZWRJbnB1dFN0b3JhZ2UuY3Bw
ICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZXBsYXkvU2VyaWFsaXphdGlvbk1ldGhvZHMu
Y3BwICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcmVwbGF5L1VzZXJJbnB1dEJyaWRnZS5j
cHAgICAgICAgICAgfCAgMTIgKy0tCiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVU
cmVlLmNwcCAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50
LmNwcCAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRH
bHlwaEVsZW1lbnQuY3BwICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRQYXRoLmNwcCAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0NpcmNsZUVsZW1lbnQuY3BwICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuY3BwICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHAgICAgICAgfCAgIDYgKy0KIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAgICAgICAgICAgIHwgICAyICst
CiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAgICAgICAgICAgICB8ICAg
MiArLQogLi4uL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwICAg
fCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVudC5jcHAgICAgICAgICAg
ICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQu
Y3BwICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcCAgICAg
ICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1l
bnQuY3BwICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVt
ZW50LmNwcCAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVh
ckdyYWRpZW50RWxlbWVudC5jcHAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdN
YXJrZXJFbGVtZW50LmNwcCAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTWFza0VsZW1lbnQuY3BwICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdGhFbGVtZW50LmNwcCAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcCAgICB8ICAgMiArLQogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcCAgICAgICAgICAgICAgfCAgIDIgKy0K
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcCAgICAgICAgICAgICAgIHwgICA0
ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwICAgICAgICAgICAgICB8
ICAgMiArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuY3BwICAgICAgICAg
ICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmNwcCAgICAg
ICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwICAg
ICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RTcGFuRWxlbWVudC5j
cHAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVu
dC5jcHAgICAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBh
dGhFbGVtZW50LmNwcCAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Vz
ZUVsZW1lbnQuY3BwICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9n
cmFwaGljcy9TVkdJbWFnZS5jcHAgICAgICAgICAgIHwgICAyICstCiAuLi4vc3ZnL3Byb3BlcnRp
ZXMvU1ZHQXR0cmlidXRlVG9Qcm9wZXJ0eU1hcC5jcHAgICB8ICAgMiArLQogU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwICAgICAgICAgICAgICAgfCAgIDYgKy0KIC4uLi9XZWJD
b3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwIHwgICA2ICstCiBTb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHAgICB8ICAgMiArLQog
Li4uL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwICAgICAgfCAgMTAg
Ky0KIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyLmNwcCAgICAgICAgICAgIHwg
ICAyICstCiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmNw
cCB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJSZXBvc2l0b3J5
LmNwcCAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyVGhyZWFk
LmNwcCAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAgICAg
ICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5jcHAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
TWVzc2FnaW5nUHJveHkuY3BwICAgIHwgIDE2ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyUnVuTG9vcC5jcHAgICAgICAgICAgIHwgIDEwICstCiBTb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgICAgICAgICAgICAgIHwgICAyICstCiAuLi4veG1s
L1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmNwcCAgICB8ICAgMiArLQogU291
cmNlL1dlYkNvcmUveG1sL1hQYXRoRXhwcmVzc2lvbi5jcHAgICAgICAgICAgICAgfCAgIDQgKy0K
IFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV4cHJlc3Npb25Ob2RlLmNwcCAgICAgICAgIHwgICAy
ICstCiBTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFeHByZXNzaW9uTm9kZS5oICAgICAgICAgICB8
ICAgMiArLQogU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRnVuY3Rpb25zLmNwcCAgICAgICAgICAg
ICAgfCAgIDYgKy0KIFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSAgICAgICAgICAg
ICAgICAgIHwgIDE4ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aE5vZGVTZXQuY3BwICAg
ICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhQYXJzZXIuY3Bw
ICAgICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUGFyc2Vy
LmggICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFBh
dGguY3BwICAgICAgICAgICAgICAgICAgIHwgIDE4ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3htbC9Y
UGF0aFByZWRpY2F0ZS5jcHAgICAgICAgICAgICAgIHwgIDIwICsrLS0KIFNvdXJjZS9XZWJDb3Jl
L3htbC9YUGF0aFN0ZXAuY3BwICAgICAgICAgICAgICAgICAgIHwgIDE4ICsrLS0KIFNvdXJjZS9X
ZWJDb3JlL3htbC9YUGF0aFN0ZXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDEyICstLQogU291
cmNlL1dlYkNvcmUveG1sL1hQYXRoVmFsdWUuaCAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0K
IC4uLi94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAgICAgICAgIHwgIDIw
ICsrLS0KIFNvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
IHwgIDE0ICsrKwogLi4uL2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29udGVu
dC5tbSAgfCAgIDQgKy0KIC4uLi9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50
SU9TLm1tICAgIHwgICAyICstCiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAyNiArKysrKysKIFNvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2Vi
SGlzdG9yeUl0ZW0ubW0gICAgICAgIHwgICAyICstCiAuLi4vUGx1Z2lucy9Ib3N0ZWQvTmV0c2Nh
cGVQbHVnaW5JbnN0YW5jZVByb3h5LmggICB8ICAgMiArLQogU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0gfCAgIDIgKy0KIC4uLi9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gICAgIHwgIDEyICstLQogLi4uL21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0gICAgICAgfCAgIDQgKy0KIFNvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViQXJjaGl2ZS5tbSAgICAgICAgICAgIHwgICAyICstCiBTb3Vy
Y2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICB8ICAyMCArKysr
CiAuLi4vd2luL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAgICAgICB8ICAg
NCArLQogU291cmNlL1dlYktpdC93aW4vV2ViSGlzdG9yeS5jcHAgICAgICAgICAgICAgICAgICAg
fCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQvd2luL1dlYkhpc3RvcnlJdGVtLmNwcCAgICAgICAgICAg
ICAgIHwgICAyICstCiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCAgICAgICAgICAgICAg
ICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgMzIgKysrKysrKwogU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0RhdGFiYXNlUHJvY2Vzcy5jcHAgfCAgIDIgKy0KIC4uLi9JbmRleGVkREIvVW5pcXVlSURCRGF0
YWJhc2UuY3BwICAgICAgICAgICAgICAgIHwgICA2ICstCiAuLi4vbWFjL1hQQ1NlcnZpY2UvTmV0
d29ya1NlcnZpY2VFbnRyeVBvaW50Lm1tICAgICB8ICAgMiArLQogLi4uL05ldHdvcmtQcm9jZXNz
L0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5jcHAgfCAgIDIgKy0KIC4uLi9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgICAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaCAgICAgICB8ICAgNCArLQogU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vSVBDL0FyZ3VtZW50RGVjb2Rlci5jcHAgICAgfCAgIDIgKy0KIFNv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcCAgICAgICAgIHwgIDQ4ICsr
KysrLS0tLS0KIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmggICAgICAg
ICAgIHwgICA2ICstCiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvSGFuZGxlTWVzc2FnZS5o
ICAgICAgICB8ICAxNiArKy0tCiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZURl
Y29kZXIuY3BwICAgICB8ICAgNCArLQogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3Nh
Z2VTZW5kZXIuY3BwICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9N
ZXNzYWdlU2VuZGVyLmggICAgICAgIHwgICA2ICstCiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9J
UEMvbWFjL0Nvbm5lY3Rpb25NYWMubW0gICB8ICAgOCArLQogLi4uL1dlYktpdDIvUGxhdGZvcm0v
SVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL2VmbC9EaXNwYXRjaFF1ZXVlRWZsLmNwcCAgIHwgIDEwICstCiAuLi4vUGxhdGZvcm0v
ZWZsL0Rpc3BhdGNoUXVldWVXb3JrSXRlbUVmbC5oICAgICAgICB8ICAgOCArLQogU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vZWZsL1dvcmtRdWV1ZUVmbC5jcHAgICAgICAgfCAgIDYgKy0KIFNvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9Xb3JrUXVldWVHdGsuY3BwICAgICAgIHwgICA0ICstCiAu
Li4vbWFjL1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZUVudHJ5UG9pbnQubW0gICAgICB8ICAgMiAr
LQogLi4uL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgfCAg
IDQgKy0KIC4uLi93ZWJraXQyL0xlZ2FjeU1lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5jcHAgICAg
IHwgICA4ICstCiAuLi4vU2NyaXB0cy93ZWJraXQyL01lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5j
cHAgICB8ICAgOCArLQogU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5
ICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0FycmF5LmNw
cCAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tEaWN0
aW9uYXJ5LmNwcCAgICAgICB8ICAgMiArLQogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUFycmF5
LmNwcCAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElV
UkwuaCAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJV2ViQXJjaGl2ZS5jcHAgICAgICAgICAgICB8ICAgNiArLQogU291cmNlL1dlYktpdDIvU2hh
cmVkL0FzeW5jUmVxdWVzdC5jcHAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9Bc3luY1JlcXVlc3QuaCAgICAgICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQmxvY2tpbmdSZXNwb25zZU1hcC5oICAgICAgICB8ICAgMiArLQogU291cmNl
L1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcCAgICAgICAgfCAgIDggKy0KIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5oICAgICAgICAgIHwgICA0ICst
CiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV0tOU0RpY3Rpb25hcnkubW0gICAgICB8ICAg
MiArLQogLi4uL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwICAg
fCAgIDQgKy0KIC4uLi9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oICAgICAg
ICAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvSW1tdXRhYmxlRGljdGlvbmFyeS5j
cHAgICAgICB8ICAgNiArLQogLi4uL1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL1BsdWdpbkluZm9y
bWF0aW9uLmNwcCAgfCAgIDYgKy0KIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZWN1cml0eU9yaWdp
bkRhdGEuY3BwICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRy
YWNrZXIuY3BwICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJE
YXRhLmNwcCAgICAgICAgICAgICAgICAgfCAgMTIgKy0tCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
VXNlck1lc3NhZ2VDb2RlcnMuaCAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJCYWNrRm9yd2FyZExpc3RJdGVtLmggICAgIHwgICAyICstCiBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViQ29ubmVjdGlvbi5jcHAgICAgICAgICAgICB8ICAgMiArLQogU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbS5jcHAgICAgICAgfCAgIDIgKy0KIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwICAgIHwgICA2ICst
CiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oICAgICAgICB8ICAg
MiArLQogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlbmRlckxheWVyLmNwcCAgICAgICAgICAg
fCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZW5kZXJPYmplY3QuY3BwICAgICAg
ICAgIHwgICA4ICstCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvY2YvS2V5ZWREZWNvZGVyLmNwcCAg
ICAgICAgICB8ICAgMiArLQogLi4uL1NoYXJlZC9saW51eC9TZWNjb21wRmlsdGVycy9PcGVuU3lz
Y2FsbC5jcHAgICAgfCAgIDYgKy0KIC4uLi9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJC
YWNraW5nU3RvcmUubW0gIHwgICAyICstCiAuLi4vU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbi5tbSAgICAgICB8ICAxMiArLS0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQVBJU2Vzc2lvblN0YXRlLmNwcCAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0FQSVVJQ2xpZW50LmggICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgICAgICAgICAgfCAgMTAgKy0KIC4uLi9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25TdGF0ZVJlZi5jcHAgIHwgICAyICstCiAuLi4vVUlQcm9j
ZXNzL0FQSS9DL21hYy9XS0NvbnRleHRQcml2YXRlTWFjLm1tICAgICB8ICAgMiArLQogLi4uL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91cC5tbSAgfCAgIDIgKy0KIC4u
Li9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAubW0gIHwgICAyICst
CiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0gICB8ICAg
MiArLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gICAg
fCAgIDQgKy0KIC4uLi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudUl0ZW0uY3Bw
ICAgIHwgICAyICstCiAuLi4vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RmlsZUNob29zZXJSZXF1
ZXN0LmNwcCB8ICAgMiArLQogLi4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Q29udGV4dC5jcHAgfCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXcuY3BwIHwgICAyICstCiAuLi4vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Vmlld0Jhc2UuY3BwICAgICAgICB8ICAgMiArLQogLi4uL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYlZpZXdHcm91cC5jcHAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvaW9zL1dLVmlld0lPUy5tbSAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0gICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbSAgfCAgIDIgKy0KIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tICAgICAgIHwgICAyICstCiAuLi4vQ29v
cmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuY3BwICAgICAgICAgICAgICB8ICAgMiArLQogLi4u
L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1dlYlZpZXcuY3BwICAgICAgfCAgIDIgKy0K
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HZW5lcmljQ2FsbGJhY2suaCAgICAgICAgIHwgICA4
ICstCiAuLi4vVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJTb2NrZXRTZXJ2ZXIuY3BwICB8
ICAgMiArLQogLi4uL0luc3BlY3RvclNlcnZlci9zb3VwL1dlYlNvY2tldFNlcnZlclNvdXAuY3Bw
ICAgfCAgIDIgKy0KIC4uLi9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eS5jcHAgIHwgICAyICstCiAuLi4vTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRl
ci5jcHAgICAgICB8ICAgMiArLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VMb2FkU3Rh
dGUuY3BwICAgICAgICAgfCAgIDIgKy0KIC4uLi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRv
U3RhcnRQcm92aWRlci5jcHAgIHwgICA0ICstCiAuLi4vVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc01hbmFnZXIuY3BwICAgICB8ICAgMiArLQogLi4uL1VJUHJvY2Vzcy9QbHVnaW5zL1dl
YlBsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAgfCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5jcHAgICAgIHwgICAyICstCiAuLi4vV2ViS2l0Mi9VSVBy
b2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAgICB8ICAgMiArLQogLi4uL1VzZXJDb250
ZW50L1dlYlNjcmlwdE1lc3NhZ2VIYW5kbGVyLmNwcCAgICAgICAgfCAgIDQgKy0KIC4uLi9Vc2Vy
Q29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5jcHAgIHwgICAyICstCiAuLi4v
VUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwICB8ICAgMiArLQog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAgICAgfCAgMTgg
KystLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwICAgICAgICAgICAg
fCAgMjAgKystLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94
eS5jcHAgfCAgIDQgKy0KIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQ
cm94eS5jcHAgIHwgIDE0ICstLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZvcm1DbGll
bnQuY3BwICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHcmFt
bWFyRGV0YWlsLmNwcCAgICAgIHwgICAyICstCiAuLi4vVUlQcm9jZXNzL1dlYktleVZhbHVlU3Rv
cmFnZU1hbmFnZXIuY3BwICAgICAgICB8ICAxMCArLQogLi4uL1VJUHJvY2Vzcy9XZWJNZWRpYUNh
Y2hlTWFuYWdlclByb3h5LmNwcCAgICAgICAgfCAgIDIgKy0KIC4uLi9VSVByb2Nlc3MvV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eS5jcHAgICAgICAgIHwgICAyICstCiAuLi4vV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCB8ICAgNiArLQogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgICAgICAgICAgfCAgNzAgKysrKysrKy0tLS0t
LS0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwICAgICAgIHwg
ICAyICstCiAuLi4vVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuY3BwICAg
ICB8ICAgMiArLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2NmL1dlYlBhZ2VQcm94eUNGLmNw
cCAgICAgfCAgIDIgKy0KIC4uLi9VSVByb2Nlc3MvZWZsL0lucHV0TWV0aG9kQ29udGV4dEVmbC5j
cHAgICAgICAgIHwgICAyICstCiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0lucHV0TWV0aG9k
Q29udGV4dEVmbC5oICB8ICAgMiArLQogLi4uL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJVSVBv
cHVwTWVudUNsaWVudC5jcHAgfCAgIDIgKy0KIC4uLi9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hl
ZXRBc3Npc3RhbnQubW0gICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXcubW0gICAgICB8ICAgMiArLQogLi4uL1VJUHJvY2Vzcy9pb3MvV0tH
ZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tICAgIHwgIDE0ICstLQogLi4uL1VJUHJvY2Vz
cy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW0gICAgICAgfCAgIDIgKy0KIC4uLi9VSVBy
b2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5jcHAgICAgIHwgIDE2ICsrLS0KIC4u
Li9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyLmggIHwgICAyICst
CiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbSAgICB8ICAg
MiArLQogLi4uL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAgICAgICAgICAg
fCAgIDIgKy0KIC4uLi9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuY3BwICAg
ICAgIHwgIDE0ICstLQogLi4uL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGUuY3BwICAgfCAgIDYgKy0KIC4uLi9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0u
Y3BwICAgICAgICAgIHwgICAyICstCiAuLi4vSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVD
bGllbnQuY3BwICAgICAgICB8ICAgMiArLQogLi4uL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGll
bnQuY3BwICAgICAgICAgICAgICAgfCAgIDYgKy0KIC4uLi9QbHVnaW5zL05ldHNjYXBlL05ldHNj
YXBlQnJvd3NlckZ1bmNzLmNwcCAgICAgIHwgICAyICstCiAuLi4vV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcCB8ICAgMiArLQogLi4uL1BsdWdpbnMvTmV0c2Nh
cGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tICAgICAgfCAgIDIgKy0KIC4uLi9jZi9XZWJSZXNv
dXJjZUNhY2hlTWFuYWdlckNGTmV0LmNwcCAgICAgICAgICAgIHwgICAyICstCiAuLi4vV2ViQ29y
ZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAgICAgICB8ICAgNiArLQogLi4uL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCAgICAgICAgfCAgIDggKy0KIC4u
Li9XZWJDb3JlU3VwcG9ydC9XZWJQYXN0ZWJvYXJkT3ZlcnJpZGVzLmNwcCAgICAgIHwgICAyICst
CiAuLi4vV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVkaXRvckNsaWVudEd0ay5jcHAgICAgICB8ICAg
MiArLQogLi4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAg
fCAgIDQgKy0KIC4uLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5j
cHAgIHwgICAyICstCiAuLi4vV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxl
ci5jcHAgICB8ICAgMiArLQogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZy
YW1lLmNwcCAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJJbnNwZWN0b3IuY3BwIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAgICAgICB8ICAgNiArLQogLi4uL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsv
TGF5ZXJUcmVlSG9zdEd0ay5jcHAgICAgfCAgIDIgKy0KIC4uLi9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSAgIHwgICAyICstCiAuLi4vV2ViUGFnZS9tYWMvUGxh
dGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbSAgICAgICB8ICAxNCArLS0KIC4uLi9XZWJQYWdlL21h
Yy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tICAgICAgICAgIHwgICA0ICstCiAuLi4vV2ViUGFn
ZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gICAgICB8ICAxMCArLQogLi4uL1dl
YlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gICAgfCAgIDIgKy0KIFRv
b2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE4ICsr
KysKIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EUlREYXRhT2JqZWN0LmNwcCAgICAgICAgIHwg
ICA0ICstCiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoTWFwLmNwcCAgICAgICAg
ICB8ICAgNCArLQogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGFzaFNldC5jcHAgICAg
ICAgICAgfCAgIDIgKy0KIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZlB0ci5jcHAg
ICAgICAgICAgIHwgIDE0ICstLQogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9y
LmNwcCAgICAgICAgICAgfCAgMTIgKy0tCiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9X
VEZTdHJpbmcuY3BwICAgICAgICB8ICAgMiArLQogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvbnMvUmV0YWluUHRyLm1tICAgICAgfCAgIDggKy0KIC4uLi9UZXN0cy9XZWJDb3JlL0NhbGN1
bGF0aW9uVmFsdWUuY3BwICAgICAgICAgICAgIHwgIDE0ICstLQogNjg4IGZpbGVzIGNoYW5nZWQs
IDE3NzMgaW5zZXJ0aW9ucygrKSwgMTU0OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZwppbmRleCBjYmM3YTEyLi5mZmVkNzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzOSBAQAorMjAxNC0wNy0wMSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIFdURjo6bW92ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ1MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTdWJzdGl0dXRlIFdURjo6bW92ZSgpIGZvciBzdGQ6Om1v
dmUoKS4KKworICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAgICAqIGJ5dGVj
b2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5jcHA6CisgICAgICAgICog
ZGZnL0RGR0pJVENvbXBpbGVyLmNwcDoKKyAgICAgICAgKiBkZmcvREZHU3RhY2tMYXlvdXRQaGFz
ZS5jcHA6CisgICAgICAgICogZGZnL0RGR1dvcmtsaXN0LmNwcDoKKyAgICAgICAgKiBoZWFwL0Rl
bGF5ZWRSZWxlYXNlU2NvcGUuaDoKKyAgICAgICAgKiBoZWFwL0hlYXBJbmxpbmVzLmg6CisgICAg
ICAgICogaGVhcC9XZWFrSW5saW5lcy5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JB
Z2VudFJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNw
ZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckNvbnNvbGVBZ2VudC5jcHA6CisgICAgICAgICogaml0L0FjY2Vzc29yQ2FsbEpJVFN0dWJSb3V0
aW5lLmNwcDoKKyAgICAgICAgKiBqaXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwOgor
ICAgICAgICAqIGppdC9SZXBhdGNoLmNwcDoKKyAgICAgICAgKiBwYXJzZXIvTm9kZXMuY3BwOgor
ICAgICAgICAqIHBhcnNlci9QYXJzZXIuY3BwOgorICAgICAgICAqIHBhcnNlci9QYXJzZXIuaDoK
KyAgICAgICAgKiBwYXJzZXIvU291cmNlUHJvdmlkZXJDYWNoZS5jcHA6CisgICAgICAgICogcmVw
bGF5L0VuY29kZWRWYWx1ZS5oOgorICAgICAgICAqIHJlcGxheS9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JSZXBsYXlJbnB1dHMucHk6CisgICAgICAgICogcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0
ZWQvZ2VuZXJhdGUtZW51bS13aXRoLWd1YXJkLmpzb24tVGVzdFJlcGxheUlucHV0cy5jcHA6Cisg
ICAgICAgICogcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtbWVtb2l6ZWQt
dHlwZS1tb2Rlcy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuY3BwOgorICAgICAgICAqIHJ1bnRpbWUv
U3ltYm9sVGFibGUuaDoKKyAgICAgICAgKiBydW50aW1lL1dlYWtHQ01hcC5oOgorCiAyMDE0LTA2
LTMwICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBv
cHRpb24gdG8gcnVuLWpzYy1zdHJlc3MtdGVzdGVzIHRvIGZpbHRlciBvdXQgdGVzdHMgdGhhdCB1
c2UgbGFyZ2UgaGVhcHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
aAppbmRleCBlNjNlNWE0Li4yZmM3ZjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5oCkBAIC02ODcsNyArNjg3LDcgQEAgcHVibGljOgogICAgICAgICB7CiAg
ICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwogICAgICAgICAg
ICAgaWYgKCFtX2xpdmVuZXNzQW5hbHlzaXMpCi0gICAgICAgICAgICAgICAgbV9saXZlbmVzc0Fu
YWx5c2lzID0gc3RkOjptb3ZlKGFuYWx5c2lzKTsKKyAgICAgICAgICAgICAgICBtX2xpdmVuZXNz
QW5hbHlzaXMgPSBXVEY6Om1vdmUoYW5hbHlzaXMpOwogICAgICAgICAgICAgcmV0dXJuICptX2xp
dmVuZXNzQW5hbHlzaXM7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcAppbmRleCAzZTdlYWQyLi41
YzJjYzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5r
ZWRDb2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Vbmxp
bmtlZENvZGVCbG9jay5jcHAKQEAgLTQ0MSw3ICs0NDEsNyBAQCB2b2lkIFVubGlua2VkRnVuY3Rp
b25FeGVjdXRhYmxlOjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKIAogdm9pZCBVbmxpbmtlZENvZGVC
bG9jazo6c2V0SW5zdHJ1Y3Rpb25zKHN0ZDo6dW5pcXVlX3B0cjxVbmxpbmtlZEluc3RydWN0aW9u
U3RyZWFtPiBpbnN0cnVjdGlvbnMpCiB7Ci0gICAgbV91bmxpbmtlZEluc3RydWN0aW9ucyA9IHN0
ZDo6bW92ZShpbnN0cnVjdGlvbnMpOworICAgIG1fdW5saW5rZWRJbnN0cnVjdGlvbnMgPSBXVEY6
Om1vdmUoaW5zdHJ1Y3Rpb25zKTsKIH0KIAogY29uc3QgVW5saW5rZWRJbnN0cnVjdGlvblN0cmVh
bSYgVW5saW5rZWRDb2RlQmxvY2s6Omluc3RydWN0aW9ucygpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3Bw
CmluZGV4IGRjZGE2NTIuLjczNDU0NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC0zMDMsNyArMzAz
LDcgQEAgQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJiB2bSwgRnVuY3Rp
b25Cb2R5Tm9kZSogZnVuY3Rpb25Cb2R5LCBVbmwKICAgICAgICAgICAgIHNsb3dBcmd1bWVudHNb
aV0uc3RhdHVzID0gU2xvd0FyZ3VtZW50OjpDYXB0dXJlZDsKICAgICAgICAgICAgIHNsb3dBcmd1
bWVudHNbaV0uaW5kZXggPSBjYXB0dXJlZEFyZ3VtZW50c1tpXS0+aW5kZXgoKTsKICAgICAgICAg
fQotICAgICAgICBtX3N5bWJvbFRhYmxlLT5zZXRTbG93QXJndW1lbnRzKHN0ZDo6bW92ZShzbG93
QXJndW1lbnRzKSk7CisgICAgICAgIG1fc3ltYm9sVGFibGUtPnNldFNsb3dBcmd1bWVudHMoV1RG
Ojptb3ZlKHNsb3dBcmd1bWVudHMpKTsKICAgICB9CiAKICAgICBSZWdpc3RlcklEKiBjYWxsZWVS
ZWdpc3RlciA9IHJlc29sdmVDYWxsZWUoZnVuY3Rpb25Cb2R5KTsgLy8gTWF5IHB1c2ggdG8gdGhl
IHNjb3BlIGNoYWluIGFuZC9vciBhZGQgYSBjYXB0dXJlZCB2YXIuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHR3JhcGguY3BwCmluZGV4IDdhNzMyMjAuLjAxNTZjOGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCkBAIC02OTYsNyArNjk2LDcgQEAgRnVsbEJ5dGVjb2Rl
TGl2ZW5lc3MmIEdyYXBoOjpsaXZlbmVzc0ZvcihDb2RlQmxvY2sqIGNvZGVCbG9jaykKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8RnVsbEJ5dGVjb2RlTGl2ZW5lc3M+IGxpdmVuZXNzID0gc3RkOjptYWtl
X3VuaXF1ZTxGdWxsQnl0ZWNvZGVMaXZlbmVzcz4oKTsKICAgICBjb2RlQmxvY2stPmxpdmVuZXNz
QW5hbHlzaXMoKS5jb21wdXRlRnVsbExpdmVuZXNzKCpsaXZlbmVzcyk7CiAgICAgRnVsbEJ5dGVj
b2RlTGl2ZW5lc3MmIHJlc3VsdCA9ICpsaXZlbmVzczsKLSAgICBtX2J5dGVjb2RlTGl2ZW5lc3Mu
YWRkKGNvZGVCbG9jaywgc3RkOjptb3ZlKGxpdmVuZXNzKSk7CisgICAgbV9ieXRlY29kZUxpdmVu
ZXNzLmFkZChjb2RlQmxvY2ssIFdURjo6bW92ZShsaXZlbmVzcykpOwogICAgIHJldHVybiByZXN1
bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29t
cGlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAK
aW5kZXggMDY4MjIxYy4uMzVkZTBlYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdKSVRDb21waWxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdKSVRDb21waWxlci5jcHAKQEAgLTE1NywxMCArMTU3LDEwIEBAIHZvaWQgSklUQ29tcGlsZXI6
OmxpbmsoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikKICAgICAgICAgbV9qaXRDb2RlLT5jb21tb24u
aW5saW5lQ2FsbEZyYW1lcyA9IG1fZ3JhcGgubV9wbGFuLmlubGluZUNhbGxGcmFtZXM7CiAgICAg
CiAgICAgbV9qaXRDb2RlLT5jb21tb24ubWFjaGluZUNhcHR1cmVTdGFydCA9IG1fZ3JhcGgubV9t
YWNoaW5lQ2FwdHVyZVN0YXJ0OwotICAgIG1faml0Q29kZS0+Y29tbW9uLnNsb3dBcmd1bWVudHMg
PSBzdGQ6Om1vdmUobV9ncmFwaC5tX3Nsb3dBcmd1bWVudHMpOworICAgIG1faml0Q29kZS0+Y29t
bW9uLnNsb3dBcmd1bWVudHMgPSBXVEY6Om1vdmUobV9ncmFwaC5tX3Nsb3dBcmd1bWVudHMpOwog
CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICBtX2ppdENvZGUtPmNvbW1vbi5kb3VibGVDb25z
dGFudHMgPSBzdGQ6Om1vdmUobV9ncmFwaC5tX2RvdWJsZUNvbnN0YW50cyk7CisgICAgbV9qaXRD
b2RlLT5jb21tb24uZG91YmxlQ29uc3RhbnRzID0gV1RGOjptb3ZlKG1fZ3JhcGgubV9kb3VibGVD
b25zdGFudHMpOwogI2VuZGlmCiAKICAgICBCaXRWZWN0b3IgdXNlZEp1bXBUYWJsZXM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0YWNrTGF5b3V0UGhhc2UuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdGFja0xheW91dFBoYXNlLmNwcAppbmRl
eCAxNjcyNmJjLi4wZjg2OWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1N0YWNrTGF5b3V0UGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3RhY2tMYXlvdXRQaGFzZS5jcHAKQEAgLTIyOCw3ICsyMjgsNyBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICAgICAgICAgICAgICBuZXdTbG93QXJndW1lbnRzW2ldLmluZGV4ID0gdmlydHVhbFJl
Z2lzdGVyRm9yTG9jYWwoYWxsb2NhdGlvbltyZWcudG9Mb2NhbCgpXSkub2Zmc2V0KCk7CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgbV9ncmFwaC5tX3Ns
b3dBcmd1bWVudHMgPSBzdGQ6Om1vdmUobmV3U2xvd0FyZ3VtZW50cyk7CisgICAgICAgICAgICAg
ICAgbV9ncmFwaC5tX3Nsb3dBcmd1bWVudHMgPSBXVEY6Om1vdmUobmV3U2xvd0FyZ3VtZW50cyk7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHV29ya2xpc3QuY3BwCmluZGV4IGJmMjQxZGYuLjRhYTE0MjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQg
V29ya2xpc3Q6OmZpbmlzaENyZWF0aW9uKHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcywgaW50IHJl
bGF0aXZlUHJpb3JpdHkpCiAgICAgICAgIGRhdGEtPm1faWRlbnRpZmllciA9IGNyZWF0ZVRocmVh
ZCh0aHJlYWRGdW5jdGlvbiwgZGF0YS5nZXQoKSwgbV90aHJlYWROYW1lLmRhdGEoKSk7CiAgICAg
ICAgIGlmIChyZWxhdGl2ZVByaW9yaXR5KQogICAgICAgICAgICAgY2hhbmdlVGhyZWFkUHJpb3Jp
dHkoZGF0YS0+bV9pZGVudGlmaWVyLCByZWxhdGl2ZVByaW9yaXR5KTsKLSAgICAgICAgbV90aHJl
YWRzLmFwcGVuZChzdGQ6Om1vdmUoZGF0YSkpOworICAgICAgICBtX3RocmVhZHMuYXBwZW5kKFdU
Rjo6bW92ZShkYXRhKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9EZWxheWVkUmVsZWFzZVNjb3BlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9EZWxheWVkUmVsZWFzZVNjb3BlLmgKaW5kZXggZTZkMzljMC4uODgzYzY2MSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRGVsYXllZFJlbGVhc2VTY29wZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0RlbGF5ZWRSZWxlYXNlU2NvcGUuaApAQCAt
NjIsNyArNjIsNyBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiAgICAgdm9p
ZCByZWxlYXNlU29vbihSZXRhaW5QdHI8VD4mJiBvYmplY3QpCiAgICAgewotICAgICAgICBtX2Rl
bGF5ZWRSZWxlYXNlT2JqZWN0cy5hcHBlbmQoc3RkOjptb3ZlKG9iamVjdCkpOworICAgICAgICBt
X2RlbGF5ZWRSZWxlYXNlT2JqZWN0cy5hcHBlbmQoV1RGOjptb3ZlKG9iamVjdCkpOwogICAgIH0K
IAogICAgIHN0YXRpYyBib29sIGlzSW5FZmZlY3RGb3IoTWFya2VkU3BhY2UmIG1hcmtlZFNwYWNl
KQpAQCAtNzksNyArNzksNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGlubGluZSB2b2lkIE1h
cmtlZFNwYWNlOjpyZWxlYXNlU29vbihSZXRhaW5QdHI8VD4mJiBvYmplY3QpCiB7CiAgICAgQVNT
RVJUKG1fY3VycmVudERlbGF5ZWRSZWxlYXNlU2NvcGUpOwotICAgIG1fY3VycmVudERlbGF5ZWRS
ZWxlYXNlU2NvcGUtPnJlbGVhc2VTb29uKHN0ZDo6bW92ZShvYmplY3QpKTsKKyAgICBtX2N1cnJl
bnREZWxheWVkUmVsZWFzZVNjb3BlLT5yZWxlYXNlU29vbihXVEY6Om1vdmUob2JqZWN0KSk7CiB9
CiAKICNlbHNlIC8vIFVTRShDRikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0hlYXBJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSW5saW5l
cy5oCmluZGV4IGFjZTQ1MTcuLjU2ZmIzZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0hlYXBJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcElubGluZXMuaApAQCAtMjQ5LDcgKzI0OSw3IEBAIGlubGluZSBCbG9ja0FsbG9jYXRvciYg
SGVhcDo6YmxvY2tBbGxvY2F0b3IoKQogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBpbmxpbmUgdm9p
ZCBIZWFwOjpyZWxlYXNlU29vbihSZXRhaW5QdHI8VD4mJiBvYmplY3QpCiB7Ci0gICAgbV9vYmpl
Y3RTcGFjZS5yZWxlYXNlU29vbihzdGQ6Om1vdmUob2JqZWN0KSk7CisgICAgbV9vYmplY3RTcGFj
ZS5yZWxlYXNlU29vbihXVEY6Om1vdmUob2JqZWN0KSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha0lubGluZXMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL1dlYWtJbmxpbmVzLmgKaW5kZXggOGNmZDUwMS4uZmU2MTQ0NyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha0lubGluZXMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrSW5saW5lcy5oCkBAIC02NSw3ICs2NSw3IEBA
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSB2b2lkIFdlYWs8VD46OnN3YXAoV2VhayYgb3Ro
ZXIpCiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBhdXRvIFdlYWs8VD46Om9wZXJhdG9y
PShXZWFrJiYgb3RoZXIpIC0+IFdlYWsmCiB7Ci0gICAgV2VhayB3ZWFrID0gc3RkOjptb3ZlKG90
aGVyKTsKKyAgICBXZWFrIHdlYWsgPSBXVEY6Om1vdmUob3RoZXIpOwogICAgIHN3YXAod2Vhayk7
CiAgICAgcmV0dXJuICp0aGlzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5jcHAKaW5kZXggZTBkOWVkZS4u
NDEyNGNmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JBZ2VudFJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnkuY3BwCkBAIC0zOSw3ICszOSw3IEBAIEluc3BlY3Rv
ckFnZW50UmVnaXN0cnk6Okluc3BlY3RvckFnZW50UmVnaXN0cnkoKQogCiB2b2lkIEluc3BlY3Rv
ckFnZW50UmVnaXN0cnk6OmFwcGVuZChzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yQWdlbnRCYXNl
PiBhZ2VudCkKIHsKLSAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjptb3ZlKGFnZW50KSk7CisgICAg
bV9hZ2VudHMuYXBwZW5kKFdURjo6bW92ZShhZ2VudCkpOwogfQogCiB2b2lkIEluc3BlY3RvckFn
ZW50UmVnaXN0cnk6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JGcm9udGVu
ZENoYW5uZWwqIGZyb250ZW5kQ2hhbm5lbCwgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqIGJh
Y2tlbmREaXNwYXRjaGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CmluZGV4IGM1YTJmMzEuLjRiODMwMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29u
dHJvbGxlci5jcHAKQEAgLTcwLDkgKzcwLDkgQEAgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250
cm9sbGVyOjpKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIoSlNHbG9iYWxPYmoKICAg
ICBwcm9maWxlckFnZW50LT5zZXRTY3JpcHREZWJ1Z1NlcnZlcigmZGVidWdnZXJBZ2VudC0+c2Ny
aXB0RGVidWdTZXJ2ZXIoKSk7CiAKICAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjptYWtlX3VuaXF1
ZTxJbnNwZWN0b3JBZ2VudD4oKSk7Ci0gICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bW92ZShydW50
aW1lQWdlbnQpKTsKLSAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjptb3ZlKGNvbnNvbGVBZ2VudCkp
OwotICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1vdmUoZGVidWdnZXJBZ2VudCkpOworICAgIG1f
YWdlbnRzLmFwcGVuZChXVEY6Om1vdmUocnVudGltZUFnZW50KSk7CisgICAgbV9hZ2VudHMuYXBw
ZW5kKFdURjo6bW92ZShjb25zb2xlQWdlbnQpKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoV1RGOjpt
b3ZlKGRlYnVnZ2VyQWdlbnQpKTsKIH0KIAogSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9s
bGVyOjp+SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2Vu
dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JD
b25zb2xlQWdlbnQuY3BwCmluZGV4IDM3YjIyMjcuLjJkZGVjMzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
Q29uc29sZUFnZW50LmNwcApAQCAtMjM3LDcgKzIzNyw3IEBAIHZvaWQgSW5zcGVjdG9yQ29uc29s
ZUFnZW50OjphZGRDb25zb2xlTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8Q29uc29sZU1lc3NhZ2U+
IGNvCiAgICAgICAgICAgICBtX3ByZXZpb3VzTWVzc2FnZS0+dXBkYXRlUmVwZWF0Q291bnRJbkNv
bnNvbGUobV9mcm9udGVuZERpc3BhdGNoZXIuZ2V0KCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IG1fcHJldmlvdXNNZXNzYWdlID0gY29uc29sZU1lc3NhZ2UuZ2V0KCk7Ci0gICAgICAgIG1fY29u
c29sZU1lc3NhZ2VzLmFwcGVuZChzdGQ6Om1vdmUoY29uc29sZU1lc3NhZ2UpKTsKKyAgICAgICAg
bV9jb25zb2xlTWVzc2FnZXMuYXBwZW5kKFdURjo6bW92ZShjb25zb2xlTWVzc2FnZSkpOwogICAg
ICAgICBpZiAobV9mcm9udGVuZERpc3BhdGNoZXIgJiYgbV9lbmFibGVkKQogICAgICAgICAgICAg
bV9wcmV2aW91c01lc3NhZ2UtPmFkZFRvRnJvbnRlbmQobV9mcm9udGVuZERpc3BhdGNoZXIuZ2V0
KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCB0cnVlKTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0FjY2Vzc29yQ2FsbEpJVFN0dWJSb3V0aW5lLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQWNjZXNzb3JDYWxsSklUU3R1YlJvdXRpbmUuY3Bw
CmluZGV4IGY0YTk0YjcuLmY1NzMwNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvQWNjZXNzb3JDYWxsSklUU3R1YlJvdXRpbmUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvQWNjZXNzb3JDYWxsSklUU3R1YlJvdXRpbmUuY3BwCkBAIC0zNSw3ICszNSw3
IEBAIG5hbWVzcGFjZSBKU0MgewogQWNjZXNzb3JDYWxsSklUU3R1YlJvdXRpbmU6OkFjY2Vzc29y
Q2FsbEpJVFN0dWJSb3V0aW5lKAogICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyQ29kZVJlZiYgY29k
ZSwgVk0mIHZtLCBzdGQ6OnVuaXF1ZV9wdHI8Q2FsbExpbmtJbmZvPiBpbmZvKQogICAgIDogR0NB
d2FyZUpJVFN0dWJSb3V0aW5lKGNvZGUsIHZtKQotICAgICwgbV9jYWxsTGlua0luZm8oc3RkOjpt
b3ZlKGluZm8pKQorICAgICwgbV9jYWxsTGlua0luZm8oV1RGOjptb3ZlKGluZm8pKQogewogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0FyaXR5Q2hlY2tGYWlsUmV0
dXJuVGh1bmtzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXJpdHlDaGVja0ZhaWxS
ZXR1cm5UaHVua3MuY3BwCmluZGV4IDkwYjYwNWQuLmQyNzFiNGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3Bw
CkBAIC0xMTUsNyArMTE1LDcgQEAgQ29kZUxvY2F0aW9uTGFiZWwqIEFyaXR5Q2hlY2tGYWlsUmV0
dXJuVGh1bmtzOjpyZXR1cm5QQ3NGb3IoCiAKICAgICB7CiAgICAgICAgIENvbmN1cnJlbnRKSVRM
b2NrZXIgbG9ja2VyKG1fbG9jayk7Ci0gICAgICAgIG1fcmV0dXJuUENBcnJheXMuYXBwZW5kKHN0
ZDo6bW92ZShyZXR1cm5QQ3MpKTsKKyAgICAgICAgbV9yZXR1cm5QQ0FycmF5cy5hcHBlbmQoV1RG
Ojptb3ZlKHJldHVyblBDcykpOwogICAgICAgICBtX3JlZnMuYXBwZW5kKEZJTkFMSVpFX0NPREUo
bGlua0J1ZmZlciwgKCJBcml0eSBjaGVjayBmYWlsIHJldHVybiB0aHVua3MgZm9yIHVwIHRvIG51
bUFyZ3MgPSAldSIsIG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhpcykpKTsKICAgICAg
ICAgbV9uZXh0U2l6ZSA9IG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhpcyArIHN0YWNr
QWxpZ25tZW50UmVnaXN0ZXJzKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9SZXBhdGNoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRj
aC5jcHAKaW5kZXggOTZiMThjNC4uOTgwZDYzMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9SZXBhdGNoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Jl
cGF0Y2guY3BwCkBAIC01ODksNyArNTg5LDcgQEAgc3RhdGljIHZvaWQgZ2VuZXJhdGVCeUlkU3R1
YigKICAgICAgICAgICAgIHN1Y2Nlc3NMYWJlbC5leGVjdXRhYmxlQWRkcmVzcygpKSk7CiAgICAg
CiAgICAgaWYgKGtpbmQgPT0gQ2FsbEdldHRlciB8fCBraW5kID09IENhbGxTZXR0ZXIpCi0gICAg
ICAgIHN0dWJSb3V0aW5lID0gYWRvcHRSZWYobmV3IEFjY2Vzc29yQ2FsbEpJVFN0dWJSb3V0aW5l
KGNvZGUsICp2bSwgc3RkOjptb3ZlKGNhbGxMaW5rSW5mbykpKTsKKyAgICAgICAgc3R1YlJvdXRp
bmUgPSBhZG9wdFJlZihuZXcgQWNjZXNzb3JDYWxsSklUU3R1YlJvdXRpbmUoY29kZSwgKnZtLCBX
VEY6Om1vdmUoY2FsbExpbmtJbmZvKSkpOwogICAgIGVsc2UKICAgICAgICAgc3R1YlJvdXRpbmUg
PSBjcmVhdGVKSVRTdHViUm91dGluZShjb2RlLCAqdm0sIGNvZGVCbG9jay0+b3duZXJFeGVjdXRh
YmxlKCksIHRydWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9Ob2Rlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmNwcAppbmRl
eCBjM2FlNTg3Yy4uYmRjM2JmOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9Ob2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5j
cHAKQEAgLTEzNSw3ICsxMzUsNyBAQCBQYXNzUmVmUHRyPFByb2dyYW1Ob2RlPiBQcm9ncmFtTm9k
ZTo6Y3JlYXRlKFZNKiB2bSwgY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBzdGFydAogCiB2b2lkIFBy
b2dyYW1Ob2RlOjpzZXRDbG9zZWRWYXJpYWJsZXMoVmVjdG9yPFJlZlB0cjxTdHJpbmdJbXBsPj4m
JiBjbG9zZWRWYXJpYWJsZXMpCiB7Ci0gICAgbV9jbG9zZWRWYXJpYWJsZXMgPSBzdGQ6Om1vdmUo
Y2xvc2VkVmFyaWFibGVzKTsKKyAgICBtX2Nsb3NlZFZhcmlhYmxlcyA9IFdURjo6bW92ZShjbG9z
ZWRWYXJpYWJsZXMpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRXZh
bE5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvUGFyc2VyLmNwcAppbmRleCA2MDdiMDU4Li5kMWQ1MGI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCkBAIC0yOTYsNyArMjk2LDcgQEAgU3RyaW5nIFBhcnNl
cjxMZXhlclR5cGU+OjpwYXJzZUlubmVyKCkKICAgICAgICAgfQogICAgIH0KICAgICBkaWRGaW5p
c2hQYXJzaW5nKHNvdXJjZUVsZW1lbnRzLCBjb250ZXh0LnZhckRlY2xhcmF0aW9ucygpLCBjb250
ZXh0LmZ1bmNEZWNsYXJhdGlvbnMoKSwgZmVhdHVyZXMsCi0gICAgICAgIGNvbnRleHQubnVtQ29u
c3RhbnRzKCksIGNhcHR1cmVkVmFyaWFibGVzLCBzdGQ6Om1vdmUoY2xvc2VkVmFyaWFibGVzKSk7
CisgICAgICAgIGNvbnRleHQubnVtQ29uc3RhbnRzKCksIGNhcHR1cmVkVmFyaWFibGVzLCBXVEY6
Om1vdmUoY2xvc2VkVmFyaWFibGVzKSk7CiAKICAgICByZXR1cm4gcGFyc2VFcnJvcjsKIH0KQEAg
LTEzMzEsNyArMTMzMSw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gYm9vbCBQYXJz
ZXI8TGV4ZXJUeXBlPjo6cGFyc2VGdW5jdGlvbkluZm8oVHJlZUJ1aWxkCiAgICAgbWF0Y2hPckZh
aWwoQ0xPU0VCUkFDRSwgIkV4cGVjdGVkIGEgY2xvc2luZyAnfScgYWZ0ZXIgYSAiLCBzdHJpbmdG
b3JGdW5jdGlvbk1vZGUobW9kZSksICIgYm9keSIpOwogICAgIAogICAgIGlmIChuZXdJbmZvKQot
ICAgICAgICBtX2Z1bmN0aW9uQ2FjaGUtPmFkZChvcGVuQnJhY2VPZmZzZXQsIHN0ZDo6bW92ZShu
ZXdJbmZvKSk7CisgICAgICAgIG1fZnVuY3Rpb25DYWNoZS0+YWRkKG9wZW5CcmFjZU9mZnNldCwg
V1RGOjptb3ZlKG5ld0luZm8pKTsKICAgICAKICAgICBuZXh0KCk7CiAgICAgcmV0dXJuIHRydWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAppbmRleCAxMWQyNjYxLi5iODhmMjA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKQEAgLTQwMSw3ICs0MDEsNyBA
QCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxQYXJzZWROb2RlPiBwYXJzZShQYXJzZXJFcnJvciYs
IGJvb2wgbmVlZFJlcGFyc2luZ0FkanVzdG1lbnQpOwogCiAgICAgSlNUZXh0UG9zaXRpb24gcG9z
aXRpb25CZWZvcmVMYXN0TmV3bGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGV4ZXItPnBvc2l0aW9u
QmVmb3JlTGFzdE5ld2xpbmUoKTsgfQotICAgIFZlY3RvcjxSZWZQdHI8U3RyaW5nSW1wbD4+JiYg
Y2xvc2VkVmFyaWFibGVzKCkgeyByZXR1cm4gc3RkOjptb3ZlKG1fY2xvc2VkVmFyaWFibGVzKTsg
fQorICAgIFZlY3RvcjxSZWZQdHI8U3RyaW5nSW1wbD4+JiYgY2xvc2VkVmFyaWFibGVzKCkgeyBy
ZXR1cm4gV1RGOjptb3ZlKG1fY2xvc2VkVmFyaWFibGVzKTsgfQogCiBwcml2YXRlOgogICAgIHN0
cnVjdCBBbGxvd0luT3ZlcnJpZGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9Tb3VyY2VQcm92aWRlckNhY2hlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvU291cmNlUHJvdmlkZXJDYWNoZS5jcHAKaW5kZXggYzVlMjQ3Zi4uZDU5NThlOCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlckNhY2hl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyQ2Fj
aGUuY3BwCkBAIC00Miw3ICs0Miw3IEBAIHZvaWQgU291cmNlUHJvdmlkZXJDYWNoZTo6Y2xlYXIo
KQogCiB2b2lkIFNvdXJjZVByb3ZpZGVyQ2FjaGU6OmFkZChpbnQgc291cmNlUG9zaXRpb24sIHN0
ZDo6dW5pcXVlX3B0cjxTb3VyY2VQcm92aWRlckNhY2hlSXRlbT4gaXRlbSkKIHsKLSAgICBtX21h
cC5hZGQoc291cmNlUG9zaXRpb24sIHN0ZDo6bW92ZShpdGVtKSk7CisgICAgbV9tYXAuYWRkKHNv
dXJjZVBvc2l0aW9uLCBXVEY6Om1vdmUoaXRlbSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L0VuY29kZWRWYWx1ZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3JlcGxheS9FbmNvZGVkVmFsdWUuaAppbmRleCBmMTQ3N2FhLi5kZTZiZmY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L0VuY29kZWRWYWx1ZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvRW5jb2RlZFZhbHVlLmgKQEAgLTExNSw3ICsx
MTUsNyBAQCBzdHJ1Y3QgRW5jb2RpbmdUcmFpdHM8VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBP
dmVyZmxvd0hhbmRsZXI+PiB7CiAgICAgICAgIGZvciAoY29uc3QgdHlwZW5hbWUgRW5jb2RpbmdU
cmFpdHM8VD46OkRlY29kZWRUeXBlJiB2YWx1ZSA6IHZlY3Rvck9mVmFsdWVzKQogICAgICAgICAg
ICAgZW5jb2RlZFZlY3Rvci5hcHBlbmQ8dHlwZW5hbWUgRW5jb2RpbmdUcmFpdHM8VD46OkRlY29k
ZWRUeXBlPih2YWx1ZSk7CiAKLSAgICAgICAgcmV0dXJuIHN0ZDo6bW92ZShlbmNvZGVkVmVjdG9y
KTsKKyAgICAgICAgcmV0dXJuIFdURjo6bW92ZShlbmNvZGVkVmVjdG9yKTsKICAgICB9CiAKICAg
ICBzdGF0aWMgYm9vbCBkZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmIGVuY29kZWRWZWN0b3IsIERl
Y29kZWRUeXBlJiBkZWNvZGVkVmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcmVwbGF5L3NjcmlwdHMvQ29kZUdlbmVyYXRvclJlcGxheUlucHV0cy5weSBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy9Db2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRzLnB5
CmluZGV4IGU2YzgyZTIuLmQxMmU5ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9yZXBsYXkvc2NyaXB0cy9Db2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRzLnB5CisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy9Db2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRz
LnB5CkBAIC05NDAsNyArOTQwLDcgQEAgY2xhc3MgR2VuZXJhdG9yOgogICAgIGRlZiBnZW5lcmF0
ZV9tZW1iZXJfbW92ZV9leHByZXNzaW9uKHNlbGYsIF9tZW1iZXIpOgogICAgICAgICBfdHlwZSA9
IHNlbGYuX21vZGVsLmdldF90eXBlX2Zvcl9tZW1iZXIoX21lbWJlcikKICAgICAgICAgaWYgX3R5
cGUubW9kZSA9PSBUeXBlTW9kZXMuT1dORUQ6Ci0gICAgICAgICAgICByZXR1cm4gInN0ZDo6bW92
ZSglcykiICUgX21lbWJlci5tZW1iZXJOYW1lCisgICAgICAgICAgICByZXR1cm4gIldURjo6bW92
ZSglcykiICUgX21lbWJlci5tZW1iZXJOYW1lCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBy
ZXR1cm4gX21lbWJlci5tZW1iZXJOYW1lCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1lbnVtLXdpdGgtZ3Vh
cmQuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBs
YXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1lbnVtLXdpdGgtZ3VhcmQuanNvbi1U
ZXN0UmVwbGF5SW5wdXRzLmNwcAppbmRleCA5YTZkODRhLi41YTdjOTA3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJh
dGUtZW51bS13aXRoLWd1YXJkLmpzb24tVGVzdFJlcGxheUlucHV0cy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWVu
dW0td2l0aC1ndWFyZC5qc29uLVRlc3RSZXBsYXlJbnB1dHMuY3BwCkBAIC0zOCw3ICszOCw3IEBA
CiBuYW1lc3BhY2UgVGVzdCB7CiBIYW5kbGVXaGVlbEV2ZW50OjpIYW5kbGVXaGVlbEV2ZW50KHN0
ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVdoZWVsRXZlbnQ+IHBsYXRmb3JtRXZlbnQpCiAgICAgOiBF
dmVudExvb3BJbnB1dDxIYW5kbGVXaGVlbEV2ZW50PigpCi0gICAgLCBtX3BsYXRmb3JtRXZlbnQo
c3RkOjptb3ZlKHBsYXRmb3JtRXZlbnQpKQorICAgICwgbV9wbGF0Zm9ybUV2ZW50KFdURjo6bW92
ZShwbGF0Zm9ybUV2ZW50KSkKIHsKIH0KIApAQCAtNjUsNyArNjUsNyBAQCBib29sIElucHV0VHJh
aXRzPFRlc3Q6OkhhbmRsZVdoZWVsRXZlbnQ+OjpkZWNvZGUoRW5jb2RlZFZhbHVlJiBlbmNvZGVk
VmFsdWUsIHN0ZAogICAgIGlmICghZW5jb2RlZFZhbHVlLmdldDxXZWJDb3JlOjpQbGF0Zm9ybVdo
ZWVsRXZlbnQ+KEFTQ0lJTGl0ZXJhbCgicGxhdGZvcm1FdmVudCIpLCBwbGF0Zm9ybUV2ZW50KSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaW5wdXQgPSBzdGQ6Om1ha2VfdW5pcXVlPFRl
c3Q6OkhhbmRsZVdoZWVsRXZlbnQ+KHN0ZDo6bW92ZShwbGF0Zm9ybUV2ZW50KSk7CisgICAgaW5w
dXQgPSBzdGQ6Om1ha2VfdW5pcXVlPFRlc3Q6OkhhbmRsZVdoZWVsRXZlbnQ+KFdURjo6bW92ZShw
bGF0Zm9ybUV2ZW50KSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAjaWYgRU5BQkxFKERVTU1ZX0ZF
QVRVUkUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMv
dGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtbWVtb2l6ZWQtdHlwZS1tb2Rlcy5qc29uLVRlc3RSZXBs
YXlJbnB1dHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3Rz
L2V4cGVjdGVkL2dlbmVyYXRlLW1lbW9pemVkLXR5cGUtbW9kZXMuanNvbi1UZXN0UmVwbGF5SW5w
dXRzLmNwcAppbmRleCAzZTMwMmYyLi4wMjVjZjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtbWVtb2l6ZWQt
dHlwZS1tb2Rlcy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1tZW1vaXplZC10
eXBlLW1vZGVzLmpzb24tVGVzdFJlcGxheUlucHV0cy5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgU2Nh
bGFySW5wdXQ6On5TY2FsYXJJbnB1dCgpCiAKIE1hcElucHV0OjpNYXBJbnB1dChzdGQ6OnVuaXF1
ZV9wdHI8TWFwVHlwZT4gZGF0YSkKICAgICA6IE5vbmRldGVybWluaXN0aWNJbnB1dDxNYXBJbnB1
dD4oKQotICAgICwgbV9kYXRhKHN0ZDo6bW92ZShkYXRhKSkKKyAgICAsIG1fZGF0YShXVEY6Om1v
dmUoZGF0YSkpCiB7CiB9CiAKQEAgLTk1LDcgKzk1LDcgQEAgYm9vbCBJbnB1dFRyYWl0czxUZXN0
OjpNYXBJbnB1dD46OmRlY29kZShFbmNvZGVkVmFsdWUmIGVuY29kZWRWYWx1ZSwgc3RkOjp1bmlx
dWUKICAgICBpZiAoIWVuY29kZWRWYWx1ZS5nZXQ8TWFwVHlwZT4oQVNDSUlMaXRlcmFsKCJkYXRh
IiksIGRhdGEpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpbnB1dCA9IHN0ZDo6bWFr
ZV91bmlxdWU8VGVzdDo6TWFwSW5wdXQ+KHN0ZDo6bW92ZShkYXRhKSk7CisgICAgaW5wdXQgPSBz
dGQ6Om1ha2VfdW5pcXVlPFRlc3Q6Ok1hcElucHV0PihXVEY6Om1vdmUoZGF0YSkpOwogICAgIHJl
dHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TeW1ib2xUYWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sVGFi
bGUuaAppbmRleCA1YWMyZTQxLi42YjNiYzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TeW1ib2xUYWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N5bWJvbFRhYmxlLmgKQEAgLTQ2Niw3ICs0NjYsNyBAQCBwdWJsaWM6CiAKICAgICAv
LyAwIGlmIHdlIGRvbid0IGNhcHR1cmUgYW55IGFyZ3VtZW50czsgcGFyYW1ldGVyQ291bnQoKSBp
biBsZW5ndGggaWYgd2UgZG8uCiAgICAgY29uc3QgU2xvd0FyZ3VtZW50KiBzbG93QXJndW1lbnRz
KCkgeyByZXR1cm4gbV9zbG93QXJndW1lbnRzLmdldCgpOyB9Ci0gICAgdm9pZCBzZXRTbG93QXJn
dW1lbnRzKHN0ZDo6dW5pcXVlX3B0cjxTbG93QXJndW1lbnRbXT4gc2xvd0FyZ3VtZW50cykgeyBt
X3Nsb3dBcmd1bWVudHMgPSBzdGQ6Om1vdmUoc2xvd0FyZ3VtZW50cyk7IH0KKyAgICB2b2lkIHNl
dFNsb3dBcmd1bWVudHMoc3RkOjp1bmlxdWVfcHRyPFNsb3dBcmd1bWVudFtdPiBzbG93QXJndW1l
bnRzKSB7IG1fc2xvd0FyZ3VtZW50cyA9IFdURjo6bW92ZShzbG93QXJndW1lbnRzKTsgfQogICAg
IAogICAgIFN5bWJvbFRhYmxlKiBjbG9uZUNhcHR1cmVkTmFtZXMoVk0mKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha0dDTWFwLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9XZWFrR0NNYXAuaAppbmRleCBlNTllYzAzLi5jYzBmYjhmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrR0NNYXAuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrR0NNYXAuaApAQCAtNjAsNyArNjAs
NyBAQCBwdWJsaWM6CiAgICAgQWRkUmVzdWx0IHNldChjb25zdCBLZXlUeXBlJiBrZXksIFZhbHVl
VHlwZSB2YWx1ZSkKICAgICB7CiAgICAgICAgIGdjTWFwSWZOZWVkZWQoKTsKLSAgICAgICAgcmV0
dXJuIG1fbWFwLnNldChrZXksIHN0ZDo6bW92ZSh2YWx1ZSkpOworICAgICAgICByZXR1cm4gbV9t
YXAuc2V0KGtleSwgV1RGOjptb3ZlKHZhbHVlKSk7CiAgICAgfQogCiAgICAgQUxXQVlTX0lOTElO
RSBBZGRSZXN1bHQgYWRkKGNvbnN0IEtleVR5cGUmIGtleSwgVmFsdWVUeXBlIHZhbHVlKQpAQCAt
NjksNyArNjksNyBAQCBwdWJsaWM6CiAgICAgICAgIEFkZFJlc3VsdCBhZGRSZXN1bHQgPSBtX21h
cC5mYXN0QWRkKGtleSwgbnVsbHB0cik7CiAgICAgICAgIGlmICghYWRkUmVzdWx0Lml0ZXJhdG9y
LT52YWx1ZSkgeyAvLyBOZXcgdmFsdWUgb3IgZm91bmQgYSB6b21iaWUgdmFsdWUuCiAgICAgICAg
ICAgICBhZGRSZXN1bHQuaXNOZXdFbnRyeSA9IHRydWU7Ci0gICAgICAgICAgICBhZGRSZXN1bHQu
aXRlcmF0b3ItPnZhbHVlID0gc3RkOjptb3ZlKHZhbHVlKTsKKyAgICAgICAgICAgIGFkZFJlc3Vs
dC5pdGVyYXRvci0+dmFsdWUgPSBXVEY6Om1vdmUodmFsdWUpOwogICAgICAgICB9CiAgICAgICAg
IHJldHVybiBhZGRSZXN1bHQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCAxNTIyNGFhLi41YjA3MTIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM4IEBACisyMDE0LTA3LTAxICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNv
bT4KKworICAgICAgICBBZGQgV1RGOjptb3ZlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDUwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBXVEY6Om1vdmUoKSwgYSByZXBsYWNlbWVu
dCBmb3Igc3RkOjptb3ZlKCkuIFdURjo6bW92ZSgpIGlzIGxlc3MgZXJyb3IKKyAgICAgICAgcHJv
bmUgdGhhbiBzdGQ6Om1vdmUoKSBhcyBpdCBjb21waWxlIGFzc2VydHMgdGhhdCBpdHMgYXJndW1l
bnQgaXMgbm9uLWNvbnN0IGFuZAorICAgICAgICBpdHMgZGF0YXR5cGUgaXMgbW92YWJsZSBiZWZv
cmUgdWx0aW1hdGVseSBjYXN0aW5nIGl0IHRvIGFuIHJ2YWx1ZSByZWZlcmVuY2UgKHZpYSBzdGQ6
Om1vdmUpLgorCisgICAgICAgICogd3RmL0RlcXVlLmg6CisgICAgICAgICogd3RmL0hhc2hNYXAu
aDoKKyAgICAgICAgKiB3dGYvSGFzaFNldC5oOgorICAgICAgICAqIHd0Zi9IYXNoVGFibGUuaDoK
KyAgICAgICAgKiB3dGYvSXRlcmF0b3JBZGFwdG9ycy5oOgorICAgICAgICAqIHd0Zi9JdGVyYXRv
clJhbmdlLmg6CisgICAgICAgICogd3RmL0xpc3RIYXNoU2V0Lmg6CisgICAgICAgICogd3RmL01h
aW5UaHJlYWQuY3BwOgorICAgICAgICAqIHd0Zi9NYWxsb2NQdHIuaDoKKyAgICAgICAgKiB3dGYv
TWVzc2FnZVF1ZXVlLmg6CisgICAgICAgICogd3RmL09wdGlvbmFsLmg6CisgICAgICAgICogd3Rm
L093blB0ci5oOgorICAgICAgICAqIHd0Zi9SZWZQdHIuaDoKKyAgICAgICAgKiB3dGYvUmVmUHRy
SGFzaE1hcC5oOgorICAgICAgICAqIHd0Zi9SZXRhaW5QdHIuaDoKKyAgICAgICAgKiB3dGYvUnVu
TG9vcC5jcHA6CisgICAgICAgICogd3RmL1N0ZExpYkV4dHJhcy5oOgorICAgICAgICAoV1RGOjpt
b3ZlKTogQWRkZWQuCisgICAgICAgICogd3RmL1ZlY3Rvci5oOgorICAgICAgICAqIHd0Zi9nb2Jq
ZWN0L0dNYWluTG9vcFNvdXJjZS5jcHA6CisgICAgICAgICogd3RmL3RleHQvQXRvbWljU3RyaW5n
Lmg6CisgICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmNwcDoKKyAgICAgICAgKiB3dGYvd2lu
L0dESU9iamVjdC5oOgorCiAyMDE0LTA2LTMwICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVA
d2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTcwNjA1Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGVxdWUuaCBiL1NvdXJjZS9XVEYvd3RmL0RlcXVl
LmgKaW5kZXggODQwYjlhMS4uYzFmZTE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGVx
dWUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EZXF1ZS5oCkBAIC0zOTEsNyArMzkxLDcgQEAgbmFt
ZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICBpbmxpbmUgYXV0byBE
ZXF1ZTxUPjo6dGFrZUZpcnN0KCkgLT4gVAogICAgIHsKLSAgICAgICAgVCBvbGRGaXJzdCA9IHN0
ZDo6bW92ZShmaXJzdCgpKTsKKyAgICAgICAgVCBvbGRGaXJzdCA9IFdURjo6bW92ZShmaXJzdCgp
KTsKICAgICAgICAgcmVtb3ZlRmlyc3QoKTsKICAgICAgICAgcmV0dXJuIG9sZEZpcnN0OwogICAg
IH0KQEAgLTM5OSw3ICszOTksNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPgogICAgIGlubGluZSBhdXRvIERlcXVlPFQ+Ojp0YWtlTGFzdCgpIC0+IFQKICAgICB7
Ci0gICAgICAgIFQgb2xkTGFzdCA9IHN0ZDo6bW92ZShsYXN0KCkpOworICAgICAgICBUIG9sZExh
c3QgPSBXVEY6Om1vdmUobGFzdCgpKTsKICAgICAgICAgcmVtb3ZlTGFzdCgpOwogICAgICAgICBy
ZXR1cm4gb2xkTGFzdDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoTWFw
LmggYi9Tb3VyY2UvV1RGL3d0Zi9IYXNoTWFwLmgKaW5kZXggYjE3MDMyNi4uYzllYTcwZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvSGFzaE1hcC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0hh
c2hNYXAuaApAQCAtMjk2LDcgKzI5Niw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlw
ZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgogYXV0byBIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJn
LCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZz46OnNldChLZXlUeXBlJiYga2V5LCBUJiYg
bWFwcGVkKSAtPiBBZGRSZXN1bHQKIHsKLSAgICByZXR1cm4gaW5saW5lU2V0KHN0ZDo6bW92ZShr
ZXkpLCBzdGQ6OmZvcndhcmQ8VD4obWFwcGVkKSk7CisgICAgcmV0dXJuIGlubGluZVNldChXVEY6
Om1vdmUoa2V5KSwgc3RkOjpmb3J3YXJkPFQ+KG1hcHBlZCkpOwogfQogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5h
bWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBNYXBwZWRUcmFpdHNBcmc+CkBAIC0zMTcsNyArMzE3
LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVu
YW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWkKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBhdXRv
IEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVk
VHJhaXRzQXJnPjo6YWRkKEtleVR5cGUmJiBrZXksIFQmJiBtYXBwZWQpIC0+IEFkZFJlc3VsdAog
ewotICAgIHJldHVybiBpbmxpbmVBZGQoc3RkOjptb3ZlKGtleSksIHN0ZDo6Zm9yd2FyZDxUPiht
YXBwZWQpKTsKKyAgICByZXR1cm4gaW5saW5lQWRkKFdURjo6bW92ZShrZXkpLCBzdGQ6OmZvcndh
cmQ8VD4obWFwcGVkKSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUg
TWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVu
YW1lIE1hcHBlZFRyYWl0c0FyZz4KQEAgLTMzMSw3ICszMzEsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUg
S2V5VHJhaQogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIEFMV0FZU19JTkxJTkUgYXV0byBIYXNoTWFw
PEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRyYWl0c0Fy
Zz46OmZhc3RBZGQoS2V5VHlwZSYmIGtleSwgVCYmIG1hcHBlZCkgLT4gQWRkUmVzdWx0CiB7Ci0g
ICAgcmV0dXJuIGlubGluZUFkZChzdGQ6Om1vdmUoa2V5KSwgc3RkOjpmb3J3YXJkPFQ+KG1hcHBl
ZCkpOworICAgIHJldHVybiBpbmxpbmVBZGQoV1RGOjptb3ZlKGtleSksIHN0ZDo6Zm9yd2FyZDxU
PihtYXBwZWQpKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5h
bWUgViwgdHlwZW5hbWUgVywgdHlwZW5hbWUgTWFwcGVkVHJhaXRzPgpAQCAtMzcxLDcgKzM3MSw3
IEBAIGF1dG8gSGFzaE1hcDxULCBVLCBWLCBXLCBNYXBwZWRUcmFpdHM+Ojp0YWtlKGNvbnN0IEtl
eVR5cGUmIGtleSkgLT4gTWFwcGVkVHlwZQogICAgIGl0ZXJhdG9yIGl0ID0gZmluZChrZXkpOwog
ICAgIGlmIChpdCA9PSBlbmQoKSkKICAgICAgICAgcmV0dXJuIE1hcHBlZFRyYWl0czo6ZW1wdHlW
YWx1ZSgpOwotICAgIE1hcHBlZFR5cGUgdmFsdWUgPSBzdGQ6Om1vdmUoaXQtPnZhbHVlKTsKKyAg
ICBNYXBwZWRUeXBlIHZhbHVlID0gV1RGOjptb3ZlKGl0LT52YWx1ZSk7CiAgICAgcmVtb3ZlKGl0
KTsKICAgICByZXR1cm4gdmFsdWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9IYXNo
U2V0LmggYi9Tb3VyY2UvV1RGL3d0Zi9IYXNoU2V0LmgKaW5kZXggM2YzOGNlZC4uOThjZjhjZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSGFzaFNldC5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L0hhc2hTZXQuaApAQCAtMTk5LDcgKzE5OSw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFY+CiAgICAgaW5saW5lIGF1dG8g
SGFzaFNldDxULCBVLCBWPjo6YWRkKFZhbHVlVHlwZSYmIHZhbHVlKSAtPiBBZGRSZXN1bHQKICAg
ICB7Ci0gICAgICAgIHJldHVybiBtX2ltcGwuYWRkKHN0ZDo6bW92ZSh2YWx1ZSkpOworICAgICAg
ICByZXR1cm4gbV9pbXBsLmFkZChXVEY6Om1vdmUodmFsdWUpKTsKICAgICB9CiAKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUgVHJh
aXRzPgpAQCAtMjQ3LDcgKzI0Nyw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICBpZiAoaXQg
PT0gZW5kKCkpCiAgICAgICAgICAgICByZXR1cm4gVmFsdWVUcmFpdHM6OmVtcHR5VmFsdWUoKTsK
IAotICAgICAgICBWYWx1ZVR5cGUgcmVzdWx0ID0gc3RkOjptb3ZlKGNvbnN0X2Nhc3Q8VmFsdWVU
eXBlJj4oKml0KSk7CisgICAgICAgIFZhbHVlVHlwZSByZXN1bHQgPSBXVEY6Om1vdmUoY29uc3Rf
Y2FzdDxWYWx1ZVR5cGUmPigqaXQpKTsKICAgICAgICAgcmVtb3ZlKGl0KTsKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoVGFibGUu
aCBiL1NvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oCmluZGV4IDM2NjZmZTguLjc4MWJmZGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L0hhc2hUYWJsZS5oCkBAIC0zNzMsNyArMzczLDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAg
IGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2tleUNvdW50OyB9CiAKICAgICAgICAg
QWRkUmVzdWx0IGFkZChjb25zdCBWYWx1ZVR5cGUmIHZhbHVlKSB7IHJldHVybiBhZGQ8SWRlbnRp
dHlUcmFuc2xhdG9yVHlwZT4oRXh0cmFjdG9yOjpleHRyYWN0KHZhbHVlKSwgdmFsdWUpOyB9Ci0g
ICAgICAgIEFkZFJlc3VsdCBhZGQoVmFsdWVUeXBlJiYgdmFsdWUpIHsgcmV0dXJuIGFkZDxJZGVu
dGl0eVRyYW5zbGF0b3JUeXBlPihFeHRyYWN0b3I6OmV4dHJhY3QodmFsdWUpLCBzdGQ6Om1vdmUo
dmFsdWUpKTsgfQorICAgICAgICBBZGRSZXN1bHQgYWRkKFZhbHVlVHlwZSYmIHZhbHVlKSB7IHJl
dHVybiBhZGQ8SWRlbnRpdHlUcmFuc2xhdG9yVHlwZT4oRXh0cmFjdG9yOjpleHRyYWN0KHZhbHVl
KSwgV1RGOjptb3ZlKHZhbHVlKSk7IH0KIAogICAgICAgICAvLyBBIHNwZWNpYWwgdmVyc2lvbiBv
ZiBhZGQoKSB0aGF0IGZpbmRzIHRoZSBvYmplY3QgYnkgaGFzaGluZyBhbmQgY29tcGFyaW5nCiAg
ICAgICAgIC8vIHdpdGggc29tZSBvdGhlciB0eXBlLCB0byBhdm9pZCB0aGUgY29zdCBvZiB0eXBl
IGNvbnZlcnNpb24gaWYgdGhlIG9iamVjdCBpcyBhbHJlYWR5CkBAIC05MTksNyArOTE5LDcgQEAg
bmFtZXNwYWNlIFdURiB7CiAKICAgICAgICAgVmFsdWUqIG5ld0VudHJ5ID0gbG9va3VwRm9yV3Jp
dGluZyhFeHRyYWN0b3I6OmV4dHJhY3QoZW50cnkpKS5maXJzdDsKICAgICAgICAgbmV3RW50cnkt
Pn5WYWx1ZSgpOwotICAgICAgICBuZXcgKE5vdE51bGwsIG5ld0VudHJ5KSBWYWx1ZVR5cGUoc3Rk
Ojptb3ZlKGVudHJ5KSk7CisgICAgICAgIG5ldyAoTm90TnVsbCwgbmV3RW50cnkpIFZhbHVlVHlw
ZShXVEY6Om1vdmUoZW50cnkpKTsKIAogICAgICAgICByZXR1cm4gbmV3RW50cnk7CiAgICAgfQpA
QCAtMTA5Niw3ICsxMDk2LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIFZhbHVlKiByZWluc2VydGVkRW50
cnkgPSByZWluc2VydChzdGQ6Om1vdmUob2xkVGFibGVbaV0pKTsKKyAgICAgICAgICAgIFZhbHVl
KiByZWluc2VydGVkRW50cnkgPSByZWluc2VydChXVEY6Om1vdmUob2xkVGFibGVbaV0pKTsKICAg
ICAgICAgICAgIGlmICgmb2xkVGFibGVbaV0gPT0gZW50cnkpIHsKICAgICAgICAgICAgICAgICBB
U1NFUlQoIW5ld0VudHJ5KTsKICAgICAgICAgICAgICAgICBuZXdFbnRyeSA9IHJlaW5zZXJ0ZWRF
bnRyeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0l0ZXJhdG9yQWRhcHRvcnMuaCBiL1Nv
dXJjZS9XVEYvd3RmL0l0ZXJhdG9yQWRhcHRvcnMuaAppbmRleCBjMmQ2NzAzLi4xNTI0MTFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9JdGVyYXRvckFkYXB0b3JzLmgKKysrIGIvU291cmNl
L1dURi93dGYvSXRlcmF0b3JBZGFwdG9ycy5oCkBAIC0zNCw5ICszNCw5IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFByZWRpY2F0ZSwgdHlwZW5hbWUgSXRlcmF0b3I+CiBjbGFzcyBGaWx0ZXJJdGVyYXRv
ciB7CiBwdWJsaWM6CiAgICAgRmlsdGVySXRlcmF0b3IoUHJlZGljYXRlIHByZWQsIEl0ZXJhdG9y
IGJlZ2luLCBJdGVyYXRvciBlbmQpCi0gICAgICAgIDogbV9wcmVkKHN0ZDo6bW92ZShwcmVkKSkK
LSAgICAgICAgLCBtX2l0ZXIoc3RkOjptb3ZlKGJlZ2luKSkKLSAgICAgICAgLCBtX2VuZChzdGQ6
Om1vdmUoZW5kKSkKKyAgICAgICAgOiBtX3ByZWQoV1RGOjptb3ZlKHByZWQpKQorICAgICAgICAs
IG1faXRlcihXVEY6Om1vdmUoYmVnaW4pKQorICAgICAgICAsIG1fZW5kKFdURjo6bW92ZShlbmQp
KQogICAgIHsKICAgICAgICAgd2hpbGUgKG1faXRlciAhPSBtX2VuZCAmJiAhbV9wcmVkKCptX2l0
ZXIpKQogICAgICAgICAgICAgKyttX2l0ZXI7CkBAIC03OCw4ICs3OCw4IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFRyYW5zZm9ybSwgdHlwZW5hbWUgSXRlcmF0b3I+CiBjbGFzcyBUcmFuc2Zvcm1JdGVy
YXRvciB7CiBwdWJsaWM6CiAgICAgVHJhbnNmb3JtSXRlcmF0b3IoVHJhbnNmb3JtJiYgdHJhbnNm
b3JtLCBJdGVyYXRvciYmIGl0ZXIpCi0gICAgICAgIDogbV90cmFuc2Zvcm0oc3RkOjptb3ZlKHRy
YW5zZm9ybSkpCi0gICAgICAgICwgbV9pdGVyKHN0ZDo6bW92ZShpdGVyKSkKKyAgICAgICAgOiBt
X3RyYW5zZm9ybShXVEY6Om1vdmUodHJhbnNmb3JtKSkKKyAgICAgICAgLCBtX2l0ZXIoV1RGOjpt
b3ZlKGl0ZXIpKQogICAgIHsKICAgICB9CiAKQEAgLTEwNSw3ICsxMDUsNyBAQCBwcml2YXRlOgog
dGVtcGxhdGU8dHlwZW5hbWUgVHJhbnNmb3JtLCB0eXBlbmFtZSBJdGVyYXRvcj4KIGlubGluZSBU
cmFuc2Zvcm1JdGVyYXRvcjxUcmFuc2Zvcm0sIEl0ZXJhdG9yPiBtYWtlVHJhbnNmb3JtSXRlcmF0
b3IoVHJhbnNmb3JtJiYgdHJhbnNmb3JtLCBJdGVyYXRvciYmIGl0ZXIpCiB7Ci0gICAgcmV0dXJu
IFRyYW5zZm9ybUl0ZXJhdG9yPFRyYW5zZm9ybSwgSXRlcmF0b3I+KHN0ZDo6bW92ZSh0cmFuc2Zv
cm0pLCBzdGQ6Om1vdmUoaXRlcikpOworICAgIHJldHVybiBUcmFuc2Zvcm1JdGVyYXRvcjxUcmFu
c2Zvcm0sIEl0ZXJhdG9yPihXVEY6Om1vdmUodHJhbnNmb3JtKSwgV1RGOjptb3ZlKGl0ZXIpKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9JdGVy
YXRvclJhbmdlLmggYi9Tb3VyY2UvV1RGL3d0Zi9JdGVyYXRvclJhbmdlLmgKaW5kZXggMjk1YzIx
NC4uOTJlYzA5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSXRlcmF0b3JSYW5nZS5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL0l0ZXJhdG9yUmFuZ2UuaApAQCAtMzIsOCArMzIsOCBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBJdGVyYXRvcj4KIGNsYXNzIEl0ZXJhdG9yUmFuZ2UgewogcHVibGljOgog
ICAgIEl0ZXJhdG9yUmFuZ2UoSXRlcmF0b3IgYmVnaW4sIEl0ZXJhdG9yIGVuZCkKLSAgICAgICAg
OiBtX2JlZ2luKHN0ZDo6bW92ZShiZWdpbikpCi0gICAgICAgICwgbV9lbmQoc3RkOjptb3ZlKGVu
ZCkpCisgICAgICAgIDogbV9iZWdpbihXVEY6Om1vdmUoYmVnaW4pKQorICAgICAgICAsIG1fZW5k
KFdURjo6bW92ZShlbmQpKQogICAgIHsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL0xpc3RIYXNoU2V0LmggYi9Tb3VyY2UvV1RGL3d0Zi9MaXN0SGFzaFNldC5oCmluZGV4IDRl
NTQ1NGUuLmQzNTNiNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xpc3RIYXNoU2V0LmgK
KysrIGIvU291cmNlL1dURi93dGYvTGlzdEhhc2hTZXQuaApAQCAtNDc3LDcgKzQ3Nyw3IEBAIGlu
bGluZSBUIExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6dGFrZUZpcnN0KCkKICAg
ICBBU1NFUlQoIWlzRW1wdHkoKSk7CiAgICAgYXV0byBpdCA9IG1faW1wbC5maW5kKG1faGVhZCk7
CiAKLSAgICBUIHJlc3VsdCA9IHN0ZDo6bW92ZSgoKml0KS0+bV92YWx1ZSk7CisgICAgVCByZXN1
bHQgPSBXVEY6Om1vdmUoKCppdCktPm1fdmFsdWUpOwogICAgIG1faW1wbC5yZW1vdmUoaXQpOwog
ICAgIHVubGlua0FuZERlbGV0ZShtX2hlYWQpOwogCkBAIC01MTcsNyArNTE3LDcgQEAgaW5saW5l
IFQgTGlzdEhhc2hTZXQ8VCwgaW5saW5lQ2FwYWNpdHksIFU+Ojp0YWtlTGFzdCgpCiAgICAgQVNT
RVJUKCFpc0VtcHR5KCkpOwogICAgIGF1dG8gaXQgPSBtX2ltcGwuZmluZChtX3RhaWwpOwogCi0g
ICAgVCByZXN1bHQgPSBzdGQ6Om1vdmUoKCppdCktPm1fdmFsdWUpOworICAgIFQgcmVzdWx0ID0g
V1RGOjptb3ZlKCgqaXQpLT5tX3ZhbHVlKTsKICAgICBtX2ltcGwucmVtb3ZlKGl0KTsKICAgICB1
bmxpbmtBbmREZWxldGUobV90YWlsKTsKIApAQCAtNTkzLDcgKzU5Myw3IEBAIGF1dG8gTGlzdEhh
c2hTZXQ8VCwgaW5saW5lQ2FwYWNpdHksIFU+OjphZGQoY29uc3QgVmFsdWVUeXBlJiB2YWx1ZSkg
LT4gQWRkUmVzdWx0CiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHks
IHR5cGVuYW1lIFU+CiBhdXRvIExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6YWRk
KFZhbHVlVHlwZSYmIHZhbHVlKSAtPiBBZGRSZXN1bHQKIHsKLSAgICBhdXRvIHJlc3VsdCA9IG1f
aW1wbC50ZW1wbGF0ZSBhZGQ8QmFzZVRyYW5zbGF0b3I+KHN0ZDo6bW92ZSh2YWx1ZSksIG1fYWxs
b2NhdG9yLmdldCgpKTsKKyAgICBhdXRvIHJlc3VsdCA9IG1faW1wbC50ZW1wbGF0ZSBhZGQ8QmFz
ZVRyYW5zbGF0b3I+KFdURjo6bW92ZSh2YWx1ZSksIG1fYWxsb2NhdG9yLmdldCgpKTsKICAgICBp
ZiAocmVzdWx0LmlzTmV3RW50cnkpCiAgICAgICAgIGFwcGVuZE5vZGUoKnJlc3VsdC5pdGVyYXRv
cik7CiAgICAgcmV0dXJuIEFkZFJlc3VsdChtYWtlSXRlcmF0b3IoKnJlc3VsdC5pdGVyYXRvciks
IHJlc3VsdC5pc05ld0VudHJ5KTsKQEAgLTYxNCw3ICs2MTQsNyBAQCBhdXRvIExpc3RIYXNoU2V0
PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6YXBwZW5kT3JNb3ZlVG9MYXN0KGNvbnN0IFZhbHVlVHlw
ZSYgdmFsdQogdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBl
bmFtZSBVPgogYXV0byBMaXN0SGFzaFNldDxULCBpbmxpbmVDYXBhY2l0eSwgVT46OmFwcGVuZE9y
TW92ZVRvTGFzdChWYWx1ZVR5cGUmJiB2YWx1ZSkgLT4gQWRkUmVzdWx0CiB7Ci0gICAgYXV0byBy
ZXN1bHQgPSBtX2ltcGwudGVtcGxhdGUgYWRkPEJhc2VUcmFuc2xhdG9yPihzdGQ6Om1vdmUodmFs
dWUpLCBtX2FsbG9jYXRvci5nZXQoKSk7CisgICAgYXV0byByZXN1bHQgPSBtX2ltcGwudGVtcGxh
dGUgYWRkPEJhc2VUcmFuc2xhdG9yPihXVEY6Om1vdmUodmFsdWUpLCBtX2FsbG9jYXRvci5nZXQo
KSk7CiAgICAgTm9kZSogbm9kZSA9ICpyZXN1bHQuaXRlcmF0b3I7CiAgICAgaWYgKCFyZXN1bHQu
aXNOZXdFbnRyeSkKICAgICAgICAgdW5saW5rKG5vZGUpOwpAQCAtNjM4LDcgKzYzOCw3IEBAIGF1
dG8gTGlzdEhhc2hTZXQ8VCwgaW5saW5lQ2FwYWNpdHksIFU+OjpwcmVwZW5kT3JNb3ZlVG9GaXJz
dChjb25zdCBWYWx1ZVR5cGUmIHZhCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5l
Q2FwYWNpdHksIHR5cGVuYW1lIFU+CiBhdXRvIExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5
LCBVPjo6cHJlcGVuZE9yTW92ZVRvRmlyc3QoVmFsdWVUeXBlJiYgdmFsdWUpIC0+IEFkZFJlc3Vs
dAogewotICAgIGF1dG8gcmVzdWx0ID0gbV9pbXBsLnRlbXBsYXRlIGFkZDxCYXNlVHJhbnNsYXRv
cj4oc3RkOjptb3ZlKHZhbHVlKSwgbV9hbGxvY2F0b3IuZ2V0KCkpOworICAgIGF1dG8gcmVzdWx0
ID0gbV9pbXBsLnRlbXBsYXRlIGFkZDxCYXNlVHJhbnNsYXRvcj4oV1RGOjptb3ZlKHZhbHVlKSwg
bV9hbGxvY2F0b3IuZ2V0KCkpOwogICAgIE5vZGUqIG5vZGUgPSAqcmVzdWx0Lml0ZXJhdG9yOwog
ICAgIGlmICghcmVzdWx0LmlzTmV3RW50cnkpCiAgICAgICAgIHVubGluayhub2RlKTsKQEAgLTY1
Niw3ICs2NTYsNyBAQCBhdXRvIExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6aW5z
ZXJ0QmVmb3JlKGNvbnN0IFZhbHVlVHlwZSYgYmVmb3JlVmFsdQogdGVtcGxhdGU8dHlwZW5hbWUg
VCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBVPgogYXV0byBMaXN0SGFzaFNldDxU
LCBpbmxpbmVDYXBhY2l0eSwgVT46Omluc2VydEJlZm9yZShjb25zdCBWYWx1ZVR5cGUmIGJlZm9y
ZVZhbHVlLCBWYWx1ZVR5cGUmJiBuZXdWYWx1ZSkgLT4gQWRkUmVzdWx0CiB7Ci0gICAgcmV0dXJu
IGluc2VydEJlZm9yZShmaW5kKGJlZm9yZVZhbHVlKSwgc3RkOjptb3ZlKG5ld1ZhbHVlKSk7Cisg
ICAgcmV0dXJuIGluc2VydEJlZm9yZShmaW5kKGJlZm9yZVZhbHVlKSwgV1RGOjptb3ZlKG5ld1Zh
bHVlKSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwg
dHlwZW5hbWUgVT4KQEAgLTY3MSw3ICs2NzEsNyBAQCBhdXRvIExpc3RIYXNoU2V0PFQsIGlubGlu
ZUNhcGFjaXR5LCBVPjo6aW5zZXJ0QmVmb3JlKGl0ZXJhdG9yIGl0LCBjb25zdCBWYWx1ZVR5cAog
dGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBVPgog
YXV0byBMaXN0SGFzaFNldDxULCBpbmxpbmVDYXBhY2l0eSwgVT46Omluc2VydEJlZm9yZShpdGVy
YXRvciBpdCwgVmFsdWVUeXBlJiYgbmV3VmFsdWUpIC0+IEFkZFJlc3VsdAogewotICAgIGF1dG8g
cmVzdWx0ID0gbV9pbXBsLnRlbXBsYXRlIGFkZDxCYXNlVHJhbnNsYXRvcj4oc3RkOjptb3ZlKG5l
d1ZhbHVlKSwgbV9hbGxvY2F0b3IuZ2V0KCkpOworICAgIGF1dG8gcmVzdWx0ID0gbV9pbXBsLnRl
bXBsYXRlIGFkZDxCYXNlVHJhbnNsYXRvcj4oV1RGOjptb3ZlKG5ld1ZhbHVlKSwgbV9hbGxvY2F0
b3IuZ2V0KCkpOwogICAgIGlmIChyZXN1bHQuaXNOZXdFbnRyeSkKICAgICAgICAgaW5zZXJ0Tm9k
ZUJlZm9yZShpdC5ub2RlKCksICpyZXN1bHQuaXRlcmF0b3IpOwogICAgIHJldHVybiBBZGRSZXN1
bHQobWFrZUl0ZXJhdG9yKCpyZXN1bHQuaXRlcmF0b3IpLCByZXN1bHQuaXNOZXdFbnRyeSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L01haW5UaHJlYWQuY3BwCmluZGV4IGRiNWI4ODEuLmEyNWQ4NDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL01haW5UaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL01haW5UaHJlYWQu
Y3BwCkBAIC0yMTQsNyArMjE0LDcgQEAgc3RhdGljIHZvaWQgY2FsbEZ1bmN0aW9uT2JqZWN0KHZv
aWQqIGNvbnRleHQpCiAKIHZvaWQgY2FsbE9uTWFpblRocmVhZChzdGQ6OmZ1bmN0aW9uPHZvaWQg
KCk+IGZ1bmN0aW9uKQogewotICAgIGNhbGxPbk1haW5UaHJlYWQoY2FsbEZ1bmN0aW9uT2JqZWN0
LCBzdGQ6Om1ha2VfdW5pcXVlPHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4+KHN0ZDo6bW92ZShmdW5j
dGlvbikpLnJlbGVhc2UoKSk7CisgICAgY2FsbE9uTWFpblRocmVhZChjYWxsRnVuY3Rpb25PYmpl
Y3QsIHN0ZDo6bWFrZV91bmlxdWU8c3RkOjpmdW5jdGlvbjx2b2lkICgpPj4oV1RGOjptb3ZlKGZ1
bmN0aW9uKSkucmVsZWFzZSgpKTsKIH0KIAogdm9pZCBzZXRNYWluVGhyZWFkQ2FsbGJhY2tzUGF1
c2VkKGJvb2wgcGF1c2VkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWFsbG9jUHRyLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9NYWxsb2NQdHIuaAppbmRleCA3MTJmOWUzLi4wZjQwMjRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NYWxsb2NQdHIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9N
YWxsb2NQdHIuaApAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiAKICAgICBNYWxsb2NQdHImIG9w
ZXJhdG9yPShNYWxsb2NQdHImJiBvdGhlcikKICAgICB7Ci0gICAgICAgIE1hbGxvY1B0ciBwdHIg
PSBzdGQ6Om1vdmUob3RoZXIpOworICAgICAgICBNYWxsb2NQdHIgcHRyID0gV1RGOjptb3ZlKG90
aGVyKTsKICAgICAgICAgc3dhcChwdHIpOwogCiAgICAgICAgIHJldHVybiAqdGhpczsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL01lc3NhZ2VRdWV1ZS5oIGIvU291cmNlL1dURi93dGYvTWVz
c2FnZVF1ZXVlLmgKaW5kZXggN2FmNmQ4Yi4uMWEzM2Q0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvTWVzc2FnZVF1ZXVlLmgKKysrIGIvU291cmNlL1dURi93dGYvTWVzc2FnZVF1ZXVlLmgK
QEAgLTkyLDcgKzkyLDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgaW5saW5lIHZvaWQgTWVzc2Fn
ZVF1ZXVlPERhdGFUeXBlPjo6YXBwZW5kKHN0ZDo6dW5pcXVlX3B0cjxEYXRhVHlwZT4gbWVzc2Fn
ZSkKICAgICB7CiAgICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7Ci0gICAgICAgIG1f
cXVldWUuYXBwZW5kKHN0ZDo6bW92ZShtZXNzYWdlKSk7CisgICAgICAgIG1fcXVldWUuYXBwZW5k
KFdURjo6bW92ZShtZXNzYWdlKSk7CiAgICAgICAgIG1fY29uZGl0aW9uLnNpZ25hbCgpOwogICAg
IH0KIApAQCAtMTAwLDcgKzEwMCw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIGlubGluZSB2b2lk
IE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmFwcGVuZEFuZEtpbGwoc3RkOjp1bmlxdWVfcHRyPERh
dGFUeXBlPiBtZXNzYWdlKQogICAgIHsKICAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4
KTsKLSAgICAgICAgbV9xdWV1ZS5hcHBlbmQoc3RkOjptb3ZlKG1lc3NhZ2UpKTsKKyAgICAgICAg
bV9xdWV1ZS5hcHBlbmQoV1RGOjptb3ZlKG1lc3NhZ2UpKTsKICAgICAgICAgbV9raWxsZWQgPSB0
cnVlOwogICAgICAgICBtX2NvbmRpdGlvbi5icm9hZGNhc3QoKTsKICAgICB9CkBAIC0xMTEsNyAr
MTExLDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgewogICAgICAgICBNdXRleExvY2tlciBsb2Nr
KG1fbXV0ZXgpOwogICAgICAgICBib29sIHdhc0VtcHR5ID0gbV9xdWV1ZS5pc0VtcHR5KCk7Ci0g
ICAgICAgIG1fcXVldWUuYXBwZW5kKHN0ZDo6bW92ZShtZXNzYWdlKSk7CisgICAgICAgIG1fcXVl
dWUuYXBwZW5kKFdURjo6bW92ZShtZXNzYWdlKSk7CiAgICAgICAgIG1fY29uZGl0aW9uLnNpZ25h
bCgpOwogICAgICAgICByZXR1cm4gd2FzRW1wdHk7CiAgICAgfQpAQCAtMTIwLDcgKzEyMCw3IEBA
IG5hbWVzcGFjZSBXVEYgewogICAgIGlubGluZSB2b2lkIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46
OnByZXBlbmQoc3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPiBtZXNzYWdlKQogICAgIHsKICAgICAg
ICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKLSAgICAgICAgbV9xdWV1ZS5wcmVwZW5kKHN0
ZDo6bW92ZShtZXNzYWdlKSk7CisgICAgICAgIG1fcXVldWUucHJlcGVuZChXVEY6Om1vdmUobWVz
c2FnZSkpOwogICAgICAgICBtX2NvbmRpdGlvbi5zaWduYWwoKTsKICAgICB9CiAKQEAgLTE2NSw3
ICsxNjUsNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgfQogCiAgICAgICAgIEFTU0VSVChm
b3VuZCAhPSBtX3F1ZXVlLmVuZCgpKTsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFUeXBl
PiBtZXNzYWdlID0gc3RkOjptb3ZlKCpmb3VuZCk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxE
YXRhVHlwZT4gbWVzc2FnZSA9IFdURjo6bW92ZSgqZm91bmQpOwogICAgICAgICBtX3F1ZXVlLnJl
bW92ZShmb3VuZCk7CiAgICAgICAgIHJlc3VsdCA9IE1lc3NhZ2VRdWV1ZU1lc3NhZ2VSZWNlaXZl
ZDsKICAgICAgICAgcmV0dXJuIG1lc3NhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9P
cHRpb25hbC5oIGIvU291cmNlL1dURi93dGYvT3B0aW9uYWwuaAppbmRleCA2NGE2ODExLi41ODYy
ZGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9PcHRpb25hbC5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL09wdGlvbmFsLmgKQEAgLTY5LDEyICs2OSwxMiBAQCBwdWJsaWM6CiAgICAgICAgIDog
bV9pc0VuZ2FnZWQob3RoZXIubV9pc0VuZ2FnZWQpCiAgICAgewogICAgICAgICBpZiAobV9pc0Vu
Z2FnZWQpCi0gICAgICAgICAgICBuZXcgKE5vdE51bGwsIHN0ZDo6YWRkcmVzc29mKG1fdmFsdWUp
KSBUKHN0ZDo6bW92ZShvdGhlci5tX3ZhbHVlKSk7CisgICAgICAgICAgICBuZXcgKE5vdE51bGws
IHN0ZDo6YWRkcmVzc29mKG1fdmFsdWUpKSBUKFdURjo6bW92ZShvdGhlci5tX3ZhbHVlKSk7CiAg
ICAgfQogCiAgICAgT3B0aW9uYWwoVCYmIHZhbHVlKQogICAgICAgICA6IG1faXNFbmdhZ2VkKHRy
dWUpCi0gICAgICAgICwgbV92YWx1ZShzdGQ6Om1vdmUodmFsdWUpKQorICAgICAgICAsIG1fdmFs
dWUoV1RGOjptb3ZlKHZhbHVlKSkKICAgICB7CiAgICAgfQogCkBAIC0xMjEsMTQgKzEyMSwxNCBA
QCBwdWJsaWM6CiAgICAgewogICAgICAgICBpZiAobV9pc0VuZ2FnZWQgPT0gb3RoZXIubV9pc0Vu
Z2FnZWQpIHsKICAgICAgICAgICAgIGlmIChtX2lzRW5nYWdlZCkKLSAgICAgICAgICAgICAgICBt
X3ZhbHVlID0gc3RkOjptb3ZlKG90aGVyLm1fdmFsdWUpOworICAgICAgICAgICAgICAgIG1fdmFs
dWUgPSBXVEY6Om1vdmUob3RoZXIubV92YWx1ZSk7CiAgICAgICAgICAgICByZXR1cm4gKnRoaXM7
CiAgICAgICAgIH0KIAogICAgICAgICBpZiAobV9pc0VuZ2FnZWQpCiAgICAgICAgICAgICBtX3Zh
bHVlLn5UKCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG5ldyAoTm90TnVsbCwgc3RkOjph
ZGRyZXNzb2YobV92YWx1ZSkpIFQoc3RkOjptb3ZlKG90aGVyLm1fdmFsdWUpKTsKKyAgICAgICAg
ICAgIG5ldyAoTm90TnVsbCwgc3RkOjphZGRyZXNzb2YobV92YWx1ZSkpIFQoV1RGOjptb3ZlKG90
aGVyLm1fdmFsdWUpKTsKICAgICAgICAgbV9pc0VuZ2FnZWQgPSBvdGhlci5tX2lzRW5nYWdlZDsK
IAogICAgICAgICByZXR1cm4gKnRoaXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Pd25Q
dHIuaCBiL1NvdXJjZS9XVEYvd3RmL093blB0ci5oCmluZGV4IDExMTM3NWYuLjQ4ZDBlNjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL093blB0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL093
blB0ci5oCkBAIC0xNDMsNyArMTQzLDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4gaW5saW5lIGF1dG8gT3duUHRyPFQ+OjpvcGVyYXRvcj0oT3duUHRyJiYgbykg
LT4gT3duUHRyJgogICAgIHsKICAgICAgICAgQVNTRVJUKCFvIHx8IG8gIT0gbV9wdHIpOwotICAg
ICAgICBPd25QdHIgcHRyID0gc3RkOjptb3ZlKG8pOworICAgICAgICBPd25QdHIgcHRyID0gV1RG
Ojptb3ZlKG8pOwogICAgICAgICBzd2FwKHB0cik7CiAgICAgICAgIHJldHVybiAqdGhpczsKICAg
ICB9CkBAIC0xNTEsNyArMTUxLDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gdGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5lIGF1dG8gT3duUHRyPFQ+OjpvcGVy
YXRvcj0oT3duUHRyPFU+JiYgbykgLT4gT3duUHRyJgogICAgIHsKICAgICAgICAgQVNTRVJUKCFv
IHx8IG8gIT0gbV9wdHIpOwotICAgICAgICBPd25QdHIgcHRyID0gc3RkOjptb3ZlKG8pOworICAg
ICAgICBPd25QdHIgcHRyID0gV1RGOjptb3ZlKG8pOwogICAgICAgICBzd2FwKHB0cik7CiAgICAg
ICAgIHJldHVybiAqdGhpczsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQ
dHIuaCBiL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oCmluZGV4IGQ2MjIyYzkuLjIyZGY3YTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1Jl
ZlB0ci5oCkBAIC0xNDAsMjEgKzE0MCwyMSBAQCBuYW1lc3BhY2UgV1RGIHsKIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4mIFJlZlB0cjxUPjo6b3BlcmF0b3I9KFJl
ZlB0ciYmIG8pCiAgICAgewotICAgICAgICBSZWZQdHIgcHRyID0gc3RkOjptb3ZlKG8pOworICAg
ICAgICBSZWZQdHIgcHRyID0gV1RGOjptb3ZlKG8pOwogICAgICAgICBzd2FwKHB0cik7CiAgICAg
ICAgIHJldHVybiAqdGhpczsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB0ZW1w
bGF0ZTx0eXBlbmFtZSBVPiBpbmxpbmUgUmVmUHRyPFQ+JiBSZWZQdHI8VD46Om9wZXJhdG9yPShS
ZWZQdHI8VT4mJiBvKQogICAgIHsKLSAgICAgICAgUmVmUHRyIHB0ciA9IHN0ZDo6bW92ZShvKTsK
KyAgICAgICAgUmVmUHRyIHB0ciA9IFdURjo6bW92ZShvKTsKICAgICAgICAgc3dhcChwdHIpOwog
ICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
dGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5lIFJlZlB0cjxUPiYgUmVmUHRyPFQ+OjpvcGVyYXRv
cj0oUGFzc1JlZjxVPiByZWZlcmVuY2UpCiAgICAgewotICAgICAgICBSZWZQdHIgcHRyID0gc3Rk
Ojptb3ZlKHJlZmVyZW5jZSk7CisgICAgICAgIFJlZlB0ciBwdHIgPSBXVEY6Om1vdmUocmVmZXJl
bmNlKTsKICAgICAgICAgc3dhcChwdHIpOwogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUmVmUHRySGFzaE1hcC5oIGIvU291cmNlL1dURi93
dGYvUmVmUHRySGFzaE1hcC5oCmluZGV4IDE1MmJkZWUuLjMzNzc3NjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1JlZlB0ckhhc2hNYXAuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHJI
YXNoTWFwLmgKQEAgLTMxMyw3ICszMTMsNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgaXRl
cmF0b3IgaXQgPSBmaW5kKGtleSk7CiAgICAgICAgIGlmIChpdCA9PSBlbmQoKSkKICAgICAgICAg
ICAgIHJldHVybiBNYXBwZWRUcmFpdHM6OmVtcHR5VmFsdWUoKTsKLSAgICAgICAgTWFwcGVkVHlw
ZSB2YWx1ZSA9IHN0ZDo6bW92ZShpdC0+dmFsdWUpOworICAgICAgICBNYXBwZWRUeXBlIHZhbHVl
ID0gV1RGOjptb3ZlKGl0LT52YWx1ZSk7CiAgICAgICAgIHJlbW92ZShpdCk7CiAgICAgICAgIHJl
dHVybiB2YWx1ZTsKICAgICB9CkBAIC0zMjQsNyArMzI0LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAg
ICAgICAgIGl0ZXJhdG9yIGl0ID0gZmluZChrZXkpOwogICAgICAgICBpZiAoaXQgPT0gZW5kKCkp
CiAgICAgICAgICAgICByZXR1cm4gTWFwcGVkVHJhaXRzOjplbXB0eVZhbHVlKCk7Ci0gICAgICAg
IE1hcHBlZFR5cGUgdmFsdWUgPSBzdGQ6Om1vdmUoaXQtPnZhbHVlKTsKKyAgICAgICAgTWFwcGVk
VHlwZSB2YWx1ZSA9IFdURjo6bW92ZShpdC0+dmFsdWUpOwogICAgICAgICByZW1vdmUoaXQpOwog
ICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
UmV0YWluUHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9SZXRhaW5QdHIuaAppbmRleCA5ODlmNDA0Li4w
NDUzZTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SZXRhaW5QdHIuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9SZXRhaW5QdHIuaApAQCAtMTk3LDE0ICsxOTcsMTQgQEAgbmFtZXNwYWNlIFdU
RiB7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgUmV0YWluUHRyPFQ+JiBSZXRh
aW5QdHI8VD46Om9wZXJhdG9yPShSZXRhaW5QdHImJiBvKQogICAgIHsKLSAgICAgICAgUmV0YWlu
UHRyIHB0ciA9IHN0ZDo6bW92ZShvKTsKKyAgICAgICAgUmV0YWluUHRyIHB0ciA9IFdURjo6bW92
ZShvKTsKICAgICAgICAgc3dhcChwdHIpOwogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQog
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5lIFJl
dGFpblB0cjxUPiYgUmV0YWluUHRyPFQ+OjpvcGVyYXRvcj0oUmV0YWluUHRyPFU+JiYgbykKICAg
ICB7Ci0gICAgICAgIFJldGFpblB0ciBwdHIgPSBzdGQ6Om1vdmUobyk7CisgICAgICAgIFJldGFp
blB0ciBwdHIgPSBXVEY6Om1vdmUobyk7CiAgICAgICAgIHN3YXAocHRyKTsKICAgICAgICAgcmV0
dXJuICp0aGlzOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3Bw
IGIvU291cmNlL1dURi93dGYvUnVuTG9vcC5jcHAKaW5kZXggYmEwZTA0ZS4uODVhZDZkOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvUnVuTG9vcC5jcHAKKysrIGIvU291cmNlL1dURi93dGYv
UnVuTG9vcC5jcHAKQEAgLTEyMyw3ICsxMjMsNyBAQCB2b2lkIFJ1bkxvb3A6OnBlcmZvcm1Xb3Jr
KCkKIHZvaWQgUnVuTG9vcDo6ZGlzcGF0Y2goc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBmdW5jdGlv
bikKIHsKICAgICBNdXRleExvY2tlciBsb2NrZXIobV9mdW5jdGlvblF1ZXVlTG9jayk7Ci0gICAg
bV9mdW5jdGlvblF1ZXVlLmFwcGVuZChzdGQ6Om1vdmUoZnVuY3Rpb24pKTsKKyAgICBtX2Z1bmN0
aW9uUXVldWUuYXBwZW5kKFdURjo6bW92ZShmdW5jdGlvbikpOwogCiAgICAgd2FrZVVwKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaCBiL1NvdXJjZS9XVEYv
d3RmL1N0ZExpYkV4dHJhcy5oCmluZGV4IDg5MWZhNjEuLmZiMmI0NzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1N0ZExpYkV4dHJhcy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1N0ZExpYkV4
dHJhcy5oCkBAIC0xMTksNiArMTE5LDE4IEBAIGlubGluZSBib29sIGlzUG9pbnRlclR5cGVBbGln
bm1lbnRPa2F5KFR5cGUqKQogCiBuYW1lc3BhY2UgV1RGIHsKIAordGVtcGxhdGU8Y2xhc3MgVD4K
K0FMV0FZU19JTkxJTkUgdHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPFQ+Ojp0eXBlJiYg
bW92ZShUJiYgdmFsdWUpCit7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2x2YWx1ZV9yZWZl
cmVuY2U8VD46OnZhbHVlLCAiVCBpcyBub3QgYW4gbHZhbHVlIHJlZmVyZW5jZTsgbW92ZSgpIGlz
IHVubmVjZXNzYXJ5LiIpOworCisgICAgdXNpbmcgTm9uUmVmUXVhbGlmaWVkVHlwZSA9IHR5cGVu
YW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxUPjo6dHlwZTsKKyAgICB1c2luZyBOb25Db25zdE5v
blJlZlF1YWxpZmllZFR5cGUgPSB0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jb25zdDxOb25SZWZRdWFs
aWZpZWRUeXBlPjo6dHlwZTsKKyAgICBzdGF0aWNfYXNzZXJ0KCFzdGQ6OmlzX2NvbnN0PE5vblJl
ZlF1YWxpZmllZFR5cGU+Ojp2YWx1ZSwgIlQgaXMgY29uc3QgcXVhbGlmaWVkLiIpOworICAgIHN0
YXRpY19hc3NlcnQoc3RkOjppc19tb3ZlX2NvbnN0cnVjdGlibGU8Tm9uQ29uc3ROb25SZWZRdWFs
aWZpZWRUeXBlPjo6dmFsdWUgfHwgc3RkOjppc19tb3ZlX2Fzc2lnbmFibGU8Tm9uQ29uc3ROb25S
ZWZRdWFsaWZpZWRUeXBlPjo6dmFsdWUsICJUIGlzIG5vdCBtb3ZhYmxlLiIpOworICAgIHJldHVy
biBzdGQ6Om1vdmUodmFsdWUpOworfQorCiBzdGF0aWMgY29uc3Qgc2l6ZV90IEtCID0gMTAyNDsK
IHN0YXRpYyBjb25zdCBzaXplX3QgTUIgPSAxMDI0ICogMTAyNDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvVmVjdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAppbmRleCAyZTQ0
YTdmLi4yOGE0OTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9WZWN0b3IuaApAQCAtOTQsNyArOTQsNyBAQCBzdHJ1Y3QgVmVjdG9yTW92
ZXI8ZmFsc2UsIFQ+CiAgICAgc3RhdGljIHZvaWQgbW92ZShUKiBzcmMsIFQqIHNyY0VuZCwgVCog
ZHN0KQogICAgIHsKICAgICAgICAgd2hpbGUgKHNyYyAhPSBzcmNFbmQpIHsKLSAgICAgICAgICAg
IG5ldyAoTm90TnVsbCwgZHN0KSBUKHN0ZDo6bW92ZSgqc3JjKSk7CisgICAgICAgICAgICBuZXcg
KE5vdE51bGwsIGRzdCkgVChXVEY6Om1vdmUoKnNyYykpOwogICAgICAgICAgICAgc3JjLT5+VCgp
OwogICAgICAgICAgICAgKytkc3Q7CiAgICAgICAgICAgICArK3NyYzsKQEAgLTEwOSw3ICsxMDks
NyBAQCBzdHJ1Y3QgVmVjdG9yTW92ZXI8ZmFsc2UsIFQ+CiAgICAgICAgICAgICB3aGlsZSAoc3Jj
ICE9IHNyY0VuZCkgewogICAgICAgICAgICAgICAgIC0tc3JjRW5kOwogICAgICAgICAgICAgICAg
IC0tZHN0RW5kOwotICAgICAgICAgICAgICAgIG5ldyAoTm90TnVsbCwgZHN0RW5kKSBUKHN0ZDo6
bW92ZSgqc3JjRW5kKSk7CisgICAgICAgICAgICAgICAgbmV3IChOb3ROdWxsLCBkc3RFbmQpIFQo
V1RGOjptb3ZlKCpzcmNFbmQpKTsKICAgICAgICAgICAgICAgICBzcmNFbmQtPn5UKCk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KQEAgLTY2MSw3ICs2NjEsNyBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgVCB0YWtlTGFzdCgpCiAgICAgewotICAgICAgICBUIHJlc3VsdCA9IHN0ZDo6bW92ZShsYXN0
KCkpOworICAgICAgICBUIHJlc3VsdCA9IFdURjo6bW92ZShsYXN0KCkpOwogICAgICAgICByZW1v
dmVMYXN0KCk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvZ29iamVjdC9HTWFpbkxvb3BTb3VyY2UuY3BwIGIvU291cmNlL1dURi93dGYv
Z29iamVjdC9HTWFpbkxvb3BTb3VyY2UuY3BwCmluZGV4IGYxYWY4OGMuLjZkOGM1MGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2dvYmplY3QvR01haW5Mb29wU291cmNlLmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9nb2JqZWN0L0dNYWluTG9vcFNvdXJjZS5jcHAKQEAgLTEwNSwxNiArMTA1
LDE2IEBAIHZvaWQgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZUlkbGVTb3VyY2UoY29uc3QgY2hh
ciogbmFtZSwgR1NvdXJjZUZ1bmMgc291cmNlRnVuCiB2b2lkIEdNYWluTG9vcFNvdXJjZTo6c2No
ZWR1bGUoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBmdW5jdGlvbiwg
aW50IHByaW9yaXR5LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGRlc3Ryb3lGdW5jdGlvbiwgR01h
aW5Db250ZXh0KiBjb250ZXh0KQogewogICAgIGNhbmNlbCgpOwotICAgIG1fdm9pZENhbGxiYWNr
ID0gc3RkOjptb3ZlKGZ1bmN0aW9uKTsKLSAgICBtX2Rlc3Ryb3lDYWxsYmFjayA9IHN0ZDo6bW92
ZShkZXN0cm95RnVuY3Rpb24pOworICAgIG1fdm9pZENhbGxiYWNrID0gV1RGOjptb3ZlKGZ1bmN0
aW9uKTsKKyAgICBtX2Rlc3Ryb3lDYWxsYmFjayA9IFdURjo6bW92ZShkZXN0cm95RnVuY3Rpb24p
OwogICAgIHNjaGVkdWxlSWRsZVNvdXJjZShuYW1lLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VG
dW5jPih2b2lkU291cmNlQ2FsbGJhY2spLCBwcmlvcml0eSwgY29udGV4dCk7CiB9CiAKIHZvaWQg
R01haW5Mb29wU291cmNlOjpzY2hlZHVsZShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9u
PGJvb2wgKCk+IGZ1bmN0aW9uLCBpbnQgcHJpb3JpdHksIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4g
ZGVzdHJveUZ1bmN0aW9uLCBHTWFpbkNvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgY2FuY2VsKCk7
Ci0gICAgbV9ib29sQ2FsbGJhY2sgPSBzdGQ6Om1vdmUoZnVuY3Rpb24pOwotICAgIG1fZGVzdHJv
eUNhbGxiYWNrID0gc3RkOjptb3ZlKGRlc3Ryb3lGdW5jdGlvbik7CisgICAgbV9ib29sQ2FsbGJh
Y2sgPSBXVEY6Om1vdmUoZnVuY3Rpb24pOworICAgIG1fZGVzdHJveUNhbGxiYWNrID0gV1RGOjpt
b3ZlKGRlc3Ryb3lGdW5jdGlvbik7CiAgICAgc2NoZWR1bGVJZGxlU291cmNlKG5hbWUsIHJlaW50
ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KGJvb2xTb3VyY2VDYWxsYmFjayksIHByaW9yaXR5LCBj
b250ZXh0KTsKIH0KIApAQCAtMTI0LDggKzEyNCw4IEBAIHZvaWQgR01haW5Mb29wU291cmNlOjpz
Y2hlZHVsZShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPGJvb2wgKEdJT0NvbmRpdGlv
CiAgICAgQVNTRVJUKG1fc3RhdHVzID09IFJlYWR5KTsKICAgICBtX3N0YXR1cyA9IFNjaGVkdWxl
ZDsKIAotICAgIG1fc29ja2V0Q2FsbGJhY2sgPSBzdGQ6Om1vdmUoZnVuY3Rpb24pOwotICAgIG1f
ZGVzdHJveUNhbGxiYWNrID0gc3RkOjptb3ZlKGRlc3Ryb3lGdW5jdGlvbik7CisgICAgbV9zb2Nr
ZXRDYWxsYmFjayA9IFdURjo6bW92ZShmdW5jdGlvbik7CisgICAgbV9kZXN0cm95Q2FsbGJhY2sg
PSBXVEY6Om1vdmUoZGVzdHJveUZ1bmN0aW9uKTsKICAgICBtX2NhbmNlbGxhYmxlID0gYWRvcHRH
UmVmKGdfY2FuY2VsbGFibGVfbmV3KCkpOwogICAgIG1fc291cmNlID0gYWRvcHRHUmVmKGdfc29j
a2V0X2NyZWF0ZV9zb3VyY2Uoc29ja2V0LCBjb25kaXRpb24sIG1fY2FuY2VsbGFibGUuZ2V0KCkp
KTsKICAgICBnX3NvdXJjZV9zZXRfbmFtZShtX3NvdXJjZS5nZXQoKSwgbmFtZSk7CkBAIC0xNTAs
OCArMTUwLDggQEAgdm9pZCBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQWZ0ZXJEZWxheShjb25z
dCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCkKIHsKICAgICBjYW5jZWwoKTsKICAg
ICBtX3NvdXJjZSA9IGFkb3B0R1JlZihnX3RpbWVvdXRfc291cmNlX25ldyhkZWxheS5jb3VudCgp
KSk7Ci0gICAgbV92b2lkQ2FsbGJhY2sgPSBzdGQ6Om1vdmUoZnVuY3Rpb24pOwotICAgIG1fZGVz
dHJveUNhbGxiYWNrID0gc3RkOjptb3ZlKGRlc3Ryb3lGdW5jdGlvbik7CisgICAgbV92b2lkQ2Fs
bGJhY2sgPSBXVEY6Om1vdmUoZnVuY3Rpb24pOworICAgIG1fZGVzdHJveUNhbGxiYWNrID0gV1RG
Ojptb3ZlKGRlc3Ryb3lGdW5jdGlvbik7CiAgICAgc2NoZWR1bGVUaW1lb3V0U291cmNlKG5hbWUs
IHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KHZvaWRTb3VyY2VDYWxsYmFjayksIHByaW9y
aXR5LCBjb250ZXh0KTsKIH0KIApAQCAtMTU5LDggKzE1OSw4IEBAIHZvaWQgR01haW5Mb29wU291
cmNlOjpzY2hlZHVsZUFmdGVyRGVsYXkoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjxi
b29sICgpCiB7CiAgICAgY2FuY2VsKCk7CiAgICAgbV9zb3VyY2UgPSBhZG9wdEdSZWYoZ190aW1l
b3V0X3NvdXJjZV9uZXcoZGVsYXkuY291bnQoKSkpOwotICAgIG1fYm9vbENhbGxiYWNrID0gc3Rk
Ojptb3ZlKGZ1bmN0aW9uKTsKLSAgICBtX2Rlc3Ryb3lDYWxsYmFjayA9IHN0ZDo6bW92ZShkZXN0
cm95RnVuY3Rpb24pOworICAgIG1fYm9vbENhbGxiYWNrID0gV1RGOjptb3ZlKGZ1bmN0aW9uKTsK
KyAgICBtX2Rlc3Ryb3lDYWxsYmFjayA9IFdURjo6bW92ZShkZXN0cm95RnVuY3Rpb24pOwogICAg
IHNjaGVkdWxlVGltZW91dFNvdXJjZShuYW1lLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5j
Pihib29sU291cmNlQ2FsbGJhY2spLCBwcmlvcml0eSwgY29udGV4dCk7CiB9CiAKQEAgLTE2OCw4
ICsxNjgsOCBAQCB2b2lkIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5KGNvbnN0
IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKQogewogICAgIGNhbmNlbCgpOwogICAg
IG1fc291cmNlID0gYWRvcHRHUmVmKGdfdGltZW91dF9zb3VyY2VfbmV3X3NlY29uZHMoZGVsYXku
Y291bnQoKSkpOwotICAgIG1fdm9pZENhbGxiYWNrID0gc3RkOjptb3ZlKGZ1bmN0aW9uKTsKLSAg
ICBtX2Rlc3Ryb3lDYWxsYmFjayA9IHN0ZDo6bW92ZShkZXN0cm95RnVuY3Rpb24pOworICAgIG1f
dm9pZENhbGxiYWNrID0gV1RGOjptb3ZlKGZ1bmN0aW9uKTsKKyAgICBtX2Rlc3Ryb3lDYWxsYmFj
ayA9IFdURjo6bW92ZShkZXN0cm95RnVuY3Rpb24pOwogICAgIHNjaGVkdWxlVGltZW91dFNvdXJj
ZShuYW1lLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPih2b2lkU291cmNlQ2FsbGJhY2sp
LCBwcmlvcml0eSwgY29udGV4dCk7CiB9CiAKQEAgLTE3Nyw4ICsxNzcsOCBAQCB2b2lkIEdNYWlu
TG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVu
Y3Rpb248Ym9vbCAoKQogewogICAgIGNhbmNlbCgpOwogICAgIG1fc291cmNlID0gYWRvcHRHUmVm
KGdfdGltZW91dF9zb3VyY2VfbmV3X3NlY29uZHMoZGVsYXkuY291bnQoKSkpOwotICAgIG1fYm9v
bENhbGxiYWNrID0gc3RkOjptb3ZlKGZ1bmN0aW9uKTsKLSAgICBtX2Rlc3Ryb3lDYWxsYmFjayA9
IHN0ZDo6bW92ZShkZXN0cm95RnVuY3Rpb24pOworICAgIG1fYm9vbENhbGxiYWNrID0gV1RGOjpt
b3ZlKGZ1bmN0aW9uKTsKKyAgICBtX2Rlc3Ryb3lDYWxsYmFjayA9IFdURjo6bW92ZShkZXN0cm95
RnVuY3Rpb24pOwogICAgIHNjaGVkdWxlVGltZW91dFNvdXJjZShuYW1lLCByZWludGVycHJldF9j
YXN0PEdTb3VyY2VGdW5jPihib29sU291cmNlQ2FsbGJhY2spLCBwcmlvcml0eSwgY29udGV4dCk7
CiB9CiAKQEAgLTIzOCw3ICsyMzgsNyBAQCBib29sIEdNYWluTG9vcFNvdXJjZTo6c29ja2V0Q2Fs
bGJhY2soR0lPQ29uZGl0aW9uIGNvbmRpdGlvbikKIAogdm9pZCBHTWFpbkxvb3BTb3VyY2U6OmRl
c3Ryb3koKQogewotICAgIGF1dG8gZGVzdHJveUNhbGxiYWNrID0gc3RkOjptb3ZlKG1fZGVzdHJv
eUNhbGxiYWNrKTsKKyAgICBhdXRvIGRlc3Ryb3lDYWxsYmFjayA9IFdURjo6bW92ZShtX2Rlc3Ry
b3lDYWxsYmFjayk7CiAgICAgYXV0byBkZWxldGVPbkRlc3Ryb3kgPSBtX2RlbGV0ZU9uRGVzdHJv
eTsKICAgICByZXNldCgpOwogICAgIGlmIChkZXN0cm95Q2FsbGJhY2spCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21pY1N0cmluZy5oIGIvU291cmNlL1dURi93dGYvdGV4dC9B
dG9taWNTdHJpbmcuaAppbmRleCA1NjU3MWEwLi4zNDVhNDhjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L0F0b21pY1N0cmluZy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRv
bWljU3RyaW5nLmgKQEAgLTc4LDkgKzc4LDkgQEAgcHVibGljOgogICAgIC8vIFdlIGhhdmUgdG8g
ZGVjbGFyZSB0aGUgY29weSBjb25zdHJ1Y3RvciBhbmQgY29weSBhc3NpZ25tZW50IG9wZXJhdG9y
IGFzIHdlbGwsIG90aGVyd2lzZQogICAgIC8vIHRoZXknbGwgYmUgaW1wbGljaXRseSBkZWxldGVk
IGJ5IGFkZGluZyB0aGUgbW92ZSBjb25zdHJ1Y3RvciBhbmQgbW92ZSBhc3NpZ25tZW50IG9wZXJh
dG9yLgogICAgIEF0b21pY1N0cmluZyhjb25zdCBBdG9taWNTdHJpbmcmIG90aGVyKSA6IG1fc3Ry
aW5nKG90aGVyLm1fc3RyaW5nKSB7IH0KLSAgICBBdG9taWNTdHJpbmcoQXRvbWljU3RyaW5nJiYg
b3RoZXIpIDogbV9zdHJpbmcoc3RkOjptb3ZlKG90aGVyLm1fc3RyaW5nKSkgeyB9CisgICAgQXRv
bWljU3RyaW5nKEF0b21pY1N0cmluZyYmIG90aGVyKSA6IG1fc3RyaW5nKFdURjo6bW92ZShvdGhl
ci5tX3N0cmluZykpIHsgfQogICAgIEF0b21pY1N0cmluZyYgb3BlcmF0b3I9KGNvbnN0IEF0b21p
Y1N0cmluZyYgb3RoZXIpIHsgbV9zdHJpbmcgPSBvdGhlci5tX3N0cmluZzsgcmV0dXJuICp0aGlz
OyB9Ci0gICAgQXRvbWljU3RyaW5nJiBvcGVyYXRvcj0oQXRvbWljU3RyaW5nJiYgb3RoZXIpIHsg
bV9zdHJpbmcgPSBzdGQ6Om1vdmUob3RoZXIubV9zdHJpbmcpOyByZXR1cm4gKnRoaXM7IH0KKyAg
ICBBdG9taWNTdHJpbmcmIG9wZXJhdG9yPShBdG9taWNTdHJpbmcmJiBvdGhlcikgeyBtX3N0cmlu
ZyA9IFdURjo6bW92ZShvdGhlci5tX3N0cmluZyk7IHJldHVybiAqdGhpczsgfQogCiAgICAgLy8g
SGFzaCB0YWJsZSBkZWxldGVkIHZhbHVlcywgd2hpY2ggYXJlIG9ubHkgY29uc3RydWN0ZWQgYW5k
IG5ldmVyIGNvcGllZCBvciBkZXN0cm95ZWQuCiAgICAgQXRvbWljU3RyaW5nKFdURjo6SGFzaFRh
YmxlRGVsZXRlZFZhbHVlVHlwZSkgOiBtX3N0cmluZyhXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1
ZSkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAKaW5kZXggODM0Y2I2NC4uYzFkOTQzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuY3BwCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcApAQCAtNjkzLDcgKzY5Myw3IEBAIFN0cmluZyBT
dHJpbmc6Omlzb2xhdGVkQ29weSgpICYmCiAgICAgaWYgKGlzU2FmZVRvU2VuZFRvQW5vdGhlclRo
cmVhZCgpKSB7CiAgICAgICAgIC8vIFNpbmNlIHdlIGtub3cgdGhhdCBvdXIgc3RyaW5nIGlzIGEg
dGVtcG9yYXJ5IHRoYXQgd2lsbCBiZSBkZXN0cm95ZWQKICAgICAgICAgLy8gd2UgY2FuIGp1c3Qg
c3RlYWwgdGhlIG1faW1wbCBmcm9tIGl0LCB0aHVzIGF2b2lkaW5nIGEgY29weS4KLSAgICAgICAg
cmV0dXJuIFN0cmluZyhzdGQ6Om1vdmUoKnRoaXMpKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZyhX
VEY6Om1vdmUoKnRoaXMpKTsKICAgICB9CiAKICAgICBpZiAoIW1faW1wbCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL3dpbi9HRElPYmplY3QuaCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9HRElP
YmplY3QuaAppbmRleCBlOGIwMGJlLi43ZTFkNGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi93aW4vR0RJT2JqZWN0LmgKKysrIGIvU291cmNlL1dURi93dGYvd2luL0dESU9iamVjdC5oCkBA
IC05NSw3ICs5NSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBHRElPYmplY3Q8VD46
OkdESU9iamVjdChHRElPYmplY3Q8VD4mJiBvdGhlcikKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4g
aW5saW5lIEdESU9iamVjdDxUPiYgR0RJT2JqZWN0PFQ+OjpvcGVyYXRvcj0oR0RJT2JqZWN0PFQ+
JiYgb3RoZXIpCiB7Ci0gICAgYXV0byBvYmplY3QgPSBzdGQ6Om1vdmUob3RoZXIpOworICAgIGF1
dG8gb2JqZWN0ID0gV1RGOjptb3ZlKG90aGVyKTsKICAgICBzd2FwKG9iamVjdCk7CiAgICAgcmV0
dXJuICp0aGlzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGU0N2VmODguLmVkNDRhOGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsNSArMSwzNiBAQAogMjAxNC0wNy0wMSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBs
ZS5jb20+CiAKKyAgICAgICAgQWRkIFdURjo6bW92ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ1MDAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdWJzdGl0dXRlIFdURjo6bW92ZSgpIGZvciBzdGQ6
Om1vdmUoKS4KKworICAgICAgICAqIE1vZHVsZXMvYmF0dGVyeS9OYXZpZ2F0b3JCYXR0ZXJ5LmNw
cDoKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHA6CisgICAg
ICAgICogTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwOgorICAgICAgICAqIE1v
ZHVsZXMvZ2FtZXBhZC9kZXByZWNhdGVkL05hdmlnYXRvckdhbWVwYWQuY3BwOgorICAgICAgICAq
IE1vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5jcHA6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmQuaDoKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9QYWdlR3JvdXBJbmRleGVkRGF0YWJhc2UuY3BwOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL1dvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlLmNwcDoKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJhY2tpbmdTdG9yZUxldmVsREIuY3Bw
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcDoKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuY3BwOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIE1vZHVsZXMvbmF2aWdhdG9yY29u
dGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHA6CisgICAgICAgICogTW9kdWxlcy9u
YXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxzLmg6CisgICAgICAgICog
TW9kdWxlcy9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwOgorICAgICAg
ICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Xb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMu
Y3BwOgorICAgICAgIFsuLi5dCisKKzIwMTQtMDctMDEgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNA
YXBwbGUuY29tPgorCiAgICAgICAgIFJlbW92ZSB1bm5lY2Vzc2FyeSBjYWxscyB0byBzdGQ6Om1v
dmUoKQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0
NDkzCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYmF0dGVyeS9OYXZpZ2F0
b3JCYXR0ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYmF0dGVyeS9OYXZpZ2F0b3JC
YXR0ZXJ5LmNwcAppbmRleCA3MzlkNDA0Li4xNGQ3YmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2JhdHRlcnkvTmF2aWdhdG9yQmF0dGVyeS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9iYXR0ZXJ5L05hdmlnYXRvckJhdHRlcnkuY3BwCkBAIC01OCw3ICs1OCw3
IEBAIE5hdmlnYXRvckJhdHRlcnkqIE5hdmlnYXRvckJhdHRlcnk6OmZyb20oTmF2aWdhdG9yKiBu
YXZpZ2F0b3IpCiAgICAgaWYgKCFzdXBwbGVtZW50KSB7CiAgICAgICAgIGF1dG8gbmV3U3VwcGxl
bWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8TmF2aWdhdG9yQmF0dGVyeT4oKTsKICAgICAgICAgc3Vw
cGxlbWVudCA9IG5ld1N1cHBsZW1lbnQuZ2V0KCk7Ci0gICAgICAgIHByb3ZpZGVUbyhuYXZpZ2F0
b3IsIHN1cHBsZW1lbnROYW1lKCksIHN0ZDo6bW92ZShuZXdTdXBwbGVtZW50KSk7CisgICAgICAg
IHByb3ZpZGVUbyhuYXZpZ2F0b3IsIHN1cHBsZW1lbnROYW1lKCksIFdURjo6bW92ZShuZXdTdXBw
bGVtZW50KSk7CiAgICAgfQogICAgIHJldHVybiBzdXBwbGVtZW50OwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3BwCmluZGV4IDI4
NmFmMjAuLmYzYzIxMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlw
dGVkbWVkaWEvTWVkaWFLZXlzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAKQEAgLTYyLDEzICs2MiwxMyBAQCBQYXNzUmVmUHRyPE1l
ZGlhS2V5cz4gTWVkaWFLZXlzOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIEV4Y2Vw
dGlvbkNvZGUmCiAgICAgLy8gNS4gQ3JlYXRlIGEgbmV3IE1lZGlhS2V5cyBvYmplY3QuCiAgICAg
Ly8gNS4xIExldCB0aGUga2V5U3lzdGVtIGF0dHJpYnV0ZSBiZSBrZXlTeXN0ZW0uCiAgICAgLy8g
Ni4gUmV0dXJuIHRoZSBuZXcgb2JqZWN0IHRvIHRoZSBjYWxsZXIuCi0gICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBNZWRpYUtleXMoa2V5U3lzdGVtLCBzdGQ6Om1vdmUoY2RtKSkpOworICAgIHJldHVy
biBhZG9wdFJlZihuZXcgTWVkaWFLZXlzKGtleVN5c3RlbSwgV1RGOjptb3ZlKGNkbSkpKTsKIH0K
IAogTWVkaWFLZXlzOjpNZWRpYUtleXMoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIHN0ZDo6dW5p
cXVlX3B0cjxDRE0+IGNkbSkKICAgICA6IG1fbWVkaWFFbGVtZW50KDApCiAgICAgLCBtX2tleVN5
c3RlbShrZXlTeXN0ZW0pCi0gICAgLCBtX2NkbShzdGQ6Om1vdmUoY2RtKSkKKyAgICAsIG1fY2Rt
KFdURjo6bW92ZShjZG0pKQogewogICAgIG1fY2RtLT5zZXRDbGllbnQodGhpcyk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5jcHAK
aW5kZXggMzViMDMyMy4uNzlmZmYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcApAQCAtNjIsNyArNjIsNyBAQCBOYXZpZ2F0
b3JHYW1lcGFkKiBOYXZpZ2F0b3JHYW1lcGFkOjpmcm9tKE5hdmlnYXRvciogbmF2aWdhdG9yKQog
ICAgIGlmICghc3VwcGxlbWVudCkgewogICAgICAgICBhdXRvIG5ld1N1cHBsZW1lbnQgPSBzdGQ6
Om1ha2VfdW5pcXVlPE5hdmlnYXRvckdhbWVwYWQ+KCk7CiAgICAgICAgIHN1cHBsZW1lbnQgPSBu
ZXdTdXBwbGVtZW50LmdldCgpOwotICAgICAgICBwcm92aWRlVG8obmF2aWdhdG9yLCBzdXBwbGVt
ZW50TmFtZSgpLCBzdGQ6Om1vdmUobmV3U3VwcGxlbWVudCkpOworICAgICAgICBwcm92aWRlVG8o
bmF2aWdhdG9yLCBzdXBwbGVtZW50TmFtZSgpLCBXVEY6Om1vdmUobmV3U3VwcGxlbWVudCkpOwog
CiAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBuYXZpZ2F0b3ItPmZyYW1lKCkpIHsKICAgICAg
ICAgICAgIGlmIChEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBmcmFtZS0+bG9hZGVy
KCkuZG9jdW1lbnRMb2FkZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2FtZXBhZC9kZXByZWNhdGVkL05hdmlnYXRvckdhbWVwYWQuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nYW1lcGFkL2RlcHJlY2F0ZWQvTmF2aWdhdG9yR2FtZXBhZC5jcHAKaW5kZXggMmM4
OTg2Ni4uZmE4YzU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFk
L2RlcHJlY2F0ZWQvTmF2aWdhdG9yR2FtZXBhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nYW1lcGFkL2RlcHJlY2F0ZWQvTmF2aWdhdG9yR2FtZXBhZC5jcHAKQEAgLTUzLDcgKzUz
LDcgQEAgTmF2aWdhdG9yR2FtZXBhZCogTmF2aWdhdG9yR2FtZXBhZDo6ZnJvbShOYXZpZ2F0b3Iq
IG5hdmlnYXRvcikKICAgICBpZiAoIXN1cHBsZW1lbnQpIHsKICAgICAgICAgYXV0byBuZXdTdXBw
bGVtZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxOYXZpZ2F0b3JHYW1lcGFkPigpOwogICAgICAgICBz
dXBwbGVtZW50ID0gbmV3U3VwcGxlbWVudC5nZXQoKTsKLSAgICAgICAgcHJvdmlkZVRvKG5hdmln
YXRvciwgc3VwcGxlbWVudE5hbWUoKSwgc3RkOjptb3ZlKG5ld1N1cHBsZW1lbnQpKTsKKyAgICAg
ICAgcHJvdmlkZVRvKG5hdmlnYXRvciwgc3VwcGxlbWVudE5hbWUoKSwgV1RGOjptb3ZlKG5ld1N1
cHBsZW1lbnQpKTsKICAgICB9CiAgICAgcmV0dXJuIHN1cHBsZW1lbnQ7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9j
YXRpb24uY3BwCmluZGV4IDY1ZjRmYzUuLjdmOTVlYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3Bw
CkBAIC01Myw3ICs1Myw3IEBAIE5hdmlnYXRvckdlb2xvY2F0aW9uKiBOYXZpZ2F0b3JHZW9sb2Nh
dGlvbjo6ZnJvbShOYXZpZ2F0b3IqIG5hdmlnYXRvcikKICAgICBpZiAoIXN1cHBsZW1lbnQpIHsK
ICAgICAgICAgYXV0byBuZXdTdXBwbGVtZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxOYXZpZ2F0b3JH
ZW9sb2NhdGlvbj4obmF2aWdhdG9yLT5mcmFtZSgpKTsKICAgICAgICAgc3VwcGxlbWVudCA9IG5l
d1N1cHBsZW1lbnQuZ2V0KCk7Ci0gICAgICAgIHByb3ZpZGVUbyhuYXZpZ2F0b3IsIHN1cHBsZW1l
bnROYW1lKCksIHN0ZDo6bW92ZShuZXdTdXBwbGVtZW50KSk7CisgICAgICAgIHByb3ZpZGVUbyhu
YXZpZ2F0b3IsIHN1cHBsZW1lbnROYW1lKCksIFdURjo6bW92ZShuZXdTdXBwbGVtZW50KSk7CiAg
ICAgfQogICAgIHJldHVybiBzdXBwbGVtZW50OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5jcHAK
aW5kZXggZTcwNWEyZC4uMWJmMDgzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuY3BwCkBAIC01
OCw3ICs1OCw3IEBAIERPTVdpbmRvd0luZGV4ZWREYXRhYmFzZSogRE9NV2luZG93SW5kZXhlZERh
dGFiYXNlOjpmcm9tKERPTVdpbmRvdyogd2luZG93KQogICAgIGlmICghc3VwcGxlbWVudCkgewog
ICAgICAgICBhdXRvIG5ld1N1cHBsZW1lbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPERPTVdpbmRvd0lu
ZGV4ZWREYXRhYmFzZT4od2luZG93KTsKICAgICAgICAgc3VwcGxlbWVudCA9IG5ld1N1cHBsZW1l
bnQuZ2V0KCk7Ci0gICAgICAgIHByb3ZpZGVUbyh3aW5kb3csIHN1cHBsZW1lbnROYW1lKCksIHN0
ZDo6bW92ZShuZXdTdXBwbGVtZW50KSk7CisgICAgICAgIHByb3ZpZGVUbyh3aW5kb3csIHN1cHBs
ZW1lbnROYW1lKCksIFdURjo6bW92ZShuZXdTdXBwbGVtZW50KSk7CiAgICAgfQogICAgIHJldHVy
biBzdXBwbGVtZW50OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZC5jcHAKaW5kZXggNzdhZjI2Ny4uZWU1MzgxYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNr
ZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUJhY2tlbmQuY3BwCkBAIC00MTksNyArNDE5LDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmQ6
OnByb2Nlc3NQZW5kaW5nT3BlbkNhbGxzKGJvb2wgc3VjY2VzcykKICAgICAgICAgICAgIGlmICht
X21ldGFkYXRhLmlkID09IEludmFsaWRJZCkgewogICAgICAgICAgICAgICAgIC8vIFRoaXMgZGF0
YWJhc2Ugd2FzIGRlbGV0ZWQgdGhlbiBxdWlja2x5IHJlLW9wZW5lZC4KICAgICAgICAgICAgICAg
ICAvLyBvcGVuSW50ZXJuYWxBc3luYygpIHdpbGwgcmVjcmVhdGUgaXQgaW4gdGhlIGJhY2tpbmcg
c3RvcmUgYW5kIHRoZW4gcmVzdW1lIHByb2Nlc3NpbmcgcGVuZGluZyBjYWxsYmFja3MuCi0gICAg
ICAgICAgICAgICAgcGVuZGluZ09wZW5DYWxscy5wcmVwZW5kKHN0ZDo6bW92ZShwZW5kaW5nT3Bl
bkNhbGwpKTsKKyAgICAgICAgICAgICAgICBwZW5kaW5nT3BlbkNhbGxzLnByZXBlbmQoV1RGOjpt
b3ZlKHBlbmRpbmdPcGVuQ2FsbCkpOwogICAgICAgICAgICAgICAgIHBlbmRpbmdPcGVuQ2FsbHMu
c3dhcChtX3BlbmRpbmdPcGVuQ2FsbHMpOwogCiAgICAgICAgICAgICAgICAgb3BlbkludGVybmFs
QXN5bmMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VCYWNrZW5kLmgKaW5kZXggMjE0ZDJmNS4uZWM0MzUwYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmgKQEAg
LTExOSw3ICsxMTksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDdXJyZW50VmVyc2lvbih1aW50
NjRfdCB2ZXJzaW9uKSB7IG1fbWV0YWRhdGEudmVyc2lvbiA9IHZlcnNpb247IH0KIAogICAgIGJv
b2wgaGFzUGVuZGluZ1NlY29uZEhhbGZPcGVuKCkgeyByZXR1cm4gbV9wZW5kaW5nU2Vjb25kSGFs
Zk9wZW4uZ2V0KCk7IH0KLSAgICB2b2lkIHNldFBlbmRpbmdTZWNvbmRIYWxmT3BlbihzdGQ6OnVu
aXF1ZV9wdHI8SURCUGVuZGluZ09wZW5DYWxsPiBwZW5kaW5nT3BlbkNhbGwpIHsgbV9wZW5kaW5n
U2Vjb25kSGFsZk9wZW4gPSBzdGQ6Om1vdmUocGVuZGluZ09wZW5DYWxsKTsgfQorICAgIHZvaWQg
c2V0UGVuZGluZ1NlY29uZEhhbGZPcGVuKHN0ZDo6dW5pcXVlX3B0cjxJREJQZW5kaW5nT3BlbkNh
bGw+IHBlbmRpbmdPcGVuQ2FsbCkgeyBtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbiA9IFdURjo6bW92
ZShwZW5kaW5nT3BlbkNhbGwpOyB9CiAKICAgICBJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZSYg
ZmFjdG9yeUJhY2tlbmQoKSB7IHJldHVybiAqbV9mYWN0b3J5OyB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL1BhZ2VHcm91cEluZGV4ZWREYXRhYmFzZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9QYWdlR3JvdXBJbmRleGVkRGF0
YWJhc2UuY3BwCmluZGV4IDE4OWNhOWUuLmNmYTk5MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL1BhZ2VHcm91cEluZGV4ZWREYXRhYmFzZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvUGFnZUdyb3VwSW5kZXhlZERhdGFiYXNl
LmNwcApAQCAtNTQsNyArNTQsNyBAQCBQYWdlR3JvdXBJbmRleGVkRGF0YWJhc2UqIFBhZ2VHcm91
cEluZGV4ZWREYXRhYmFzZTo6ZnJvbShQYWdlR3JvdXAmIGdyb3VwKQogICAgIGlmICghc3VwcGxl
bWVudCkgewogICAgICAgICBhdXRvIG5ld1N1cHBsZW1lbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFBh
Z2VHcm91cEluZGV4ZWREYXRhYmFzZT4oZ3JvdXAuZ3JvdXBTZXR0aW5ncygpLmluZGV4ZWREQkRh
dGFiYXNlUGF0aCgpKTsKICAgICAgICAgc3VwcGxlbWVudCA9IG5ld1N1cHBsZW1lbnQuZ2V0KCk7
Ci0gICAgICAgIHByb3ZpZGVUbygmZ3JvdXAsIHN1cHBsZW1lbnROYW1lKCksIHN0ZDo6bW92ZShu
ZXdTdXBwbGVtZW50KSk7CisgICAgICAgIHByb3ZpZGVUbygmZ3JvdXAsIHN1cHBsZW1lbnROYW1l
KCksIFdURjo6bW92ZShuZXdTdXBwbGVtZW50KSk7CiAgICAgfQogICAgIHJldHVybiBzdXBwbGVt
ZW50OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvV29y
a2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UuY3BwCmluZGV4IDA1
ZWU4ZDYuLjkxYjA0M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL1dvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5j
cHAKQEAgLTYzLDcgKzYzLDcgQEAgV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UqIFdv
cmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlOjpmcm9tKFNjcmlwdEUKIAogICAgICAgICBh
dXRvIG5ld1N1cHBsZW1lbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdvcmtlckdsb2JhbFNjb3BlSW5k
ZXhlZERhdGFiYXNlPihkYXRhYmFzZURpcmVjdG9yeUlkZW50aWZpZXIpOwogICAgICAgICBzdXBw
bGVtZW50ID0gbmV3U3VwcGxlbWVudC5nZXQoKTsKLSAgICAgICAgcHJvdmlkZVRvKGNvbnRleHQs
IHN1cHBsZW1lbnROYW1lKCksIHN0ZDo6bW92ZShuZXdTdXBwbGVtZW50KSk7CisgICAgICAgIHBy
b3ZpZGVUbyhjb250ZXh0LCBzdXBwbGVtZW50TmFtZSgpLCBXVEY6Om1vdmUobmV3U3VwcGxlbWVu
dCkpOwogICAgIH0KICAgICByZXR1cm4gc3VwcGxlbWVudDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxE
Qi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJhY2tp
bmdTdG9yZUxldmVsREIuY3BwCmluZGV4IDVlMDAxMGUuLjQwNDViNzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2
ZWxEQi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9J
REJCYWNraW5nU3RvcmVMZXZlbERCLmNwcApAQCAtMzMwLDggKzMzMCw4IEBAIHB1YmxpYzoKIAog
SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6SURCQmFja2luZ1N0b3JlTGV2ZWxEQihjb25zdCBTdHJp
bmcmIGlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxMZXZlbERCRGF0YWJhc2U+IGRiLCBzdGQ6
OnVuaXF1ZV9wdHI8TGV2ZWxEQkNvbXBhcmF0b3I+IGNvbXBhcmF0b3IpCiAgICAgOiBtX2lkZW50
aWZpZXIoaWRlbnRpZmllcikKLSAgICAsIG1fZGIoc3RkOjptb3ZlKGRiKSkKLSAgICAsIG1fY29t
cGFyYXRvcihzdGQ6Om1vdmUoY29tcGFyYXRvcikpCisgICAgLCBtX2RiKFdURjo6bW92ZShkYikp
CisgICAgLCBtX2NvbXBhcmF0b3IoV1RGOjptb3ZlKGNvbXBhcmF0b3IpKQogICAgICwgbV93ZWFr
RmFjdG9yeSh0aGlzKQogewogfQpAQCAtMzk5LDcgKzM5OSw3IEBAIFBhc3NSZWZQdHI8SURCQmFj
a2luZ1N0b3JlTGV2ZWxEQj4gSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6b3Blbihjb25zdCBTZWN1
cml0eU9yCiAgICAgICAgIHJldHVybiBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+
KCk7CiAgICAgfQogCi0gICAgcmV0dXJuIGNyZWF0ZShmaWxlSWRlbnRpZmllciwgc3RkOjptb3Zl
KGRiKSwgc3RkOjptb3ZlKGNvbXBhcmF0b3IpKTsKKyAgICByZXR1cm4gY3JlYXRlKGZpbGVJZGVu
dGlmaWVyLCBXVEY6Om1vdmUoZGIpLCBXVEY6Om1vdmUoY29tcGFyYXRvcikpOwogfQogCiBQYXNz
UmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+IElEQkJhY2tpbmdTdG9yZUxldmVsREI6Om9w
ZW5Jbk1lbW9yeShjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIpCkBAIC00MTksMTMgKzQxOSwxMyBA
QCBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+IElEQkJhY2tpbmdTdG9yZUxldmVs
REI6Om9wZW5Jbk1lbW9yeShjb25zdCBTdAogICAgICAgICByZXR1cm4gUGFzc1JlZlB0cjxJREJC
YWNraW5nU3RvcmVMZXZlbERCPigpOwogICAgIH0KIAotICAgIHJldHVybiBjcmVhdGUoaWRlbnRp
Zmllciwgc3RkOjptb3ZlKGRiKSwgc3RkOjptb3ZlKGNvbXBhcmF0b3IpKTsKKyAgICByZXR1cm4g
Y3JlYXRlKGlkZW50aWZpZXIsIFdURjo6bW92ZShkYiksIFdURjo6bW92ZShjb21wYXJhdG9yKSk7
CiB9CiAKIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQj4gSURCQmFja2luZ1N0b3Jl
TGV2ZWxEQjo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRy
PExldmVsREJEYXRhYmFzZT4gZGIsIHN0ZDo6dW5pcXVlX3B0cjxMZXZlbERCQ29tcGFyYXRvcj4g
Y29tcGFyYXRvcikKIHsKICAgICAvLyBGSVhNRTogSGFuZGxlIGNvbXBhcmF0b3IgbmFtZSBjaGFu
Z2VzLgotICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCPiBiYWNraW5nU3RvcmUoYWRv
cHRSZWYobmV3IElEQkJhY2tpbmdTdG9yZUxldmVsREIoaWRlbnRpZmllciwgc3RkOjptb3ZlKGRi
KSwgc3RkOjptb3ZlKGNvbXBhcmF0b3IpKSkpOworICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmVM
ZXZlbERCPiBiYWNraW5nU3RvcmUoYWRvcHRSZWYobmV3IElEQkJhY2tpbmdTdG9yZUxldmVsREIo
aWRlbnRpZmllciwgV1RGOjptb3ZlKGRiKSwgV1RGOjptb3ZlKGNvbXBhcmF0b3IpKSkpOwogCiAg
ICAgaWYgKCFzZXRVcE1ldGFkYXRhKGJhY2tpbmdTdG9yZS0+bV9kYi5nZXQoKSwgaWRlbnRpZmll
cikpCiAgICAgICAgIHJldHVybiBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291
cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2Uu
Y3BwCmluZGV4IDU4ODVkZjAuLmVhODU2YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCkBAIC0xMTIsNyArMTEyLDcgQEAgdm9p
ZCBNZWRpYVNvdXJjZTo6c2V0UHJpdmF0ZUFuZE9wZW4oUGFzc1JlZjxNZWRpYVNvdXJjZVByaXZh
dGU+IG1lZGlhU291cmNlUHJpdmEKIHsKICAgICBBU1NFUlQoIW1fcHJpdmF0ZSk7CiAgICAgQVNT
RVJUKG1fbWVkaWFFbGVtZW50KTsKLSAgICBtX3ByaXZhdGUgPSBzdGQ6Om1vdmUobWVkaWFTb3Vy
Y2VQcml2YXRlKTsKKyAgICBtX3ByaXZhdGUgPSBXVEY6Om1vdmUobWVkaWFTb3VyY2VQcml2YXRl
KTsKICAgICBzZXRSZWFkeVN0YXRlKG9wZW5LZXl3b3JkKCkpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKaW5kZXggZTJl
NGFjMi4uZTI5MTRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNv
dXJjZS9Tb3VyY2VCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
b3VyY2UvU291cmNlQnVmZmVyLmNwcApAQCAtOTAsMTQgKzkwLDE0IEBAIHN0cnVjdCBTb3VyY2VC
dWZmZXI6OlRyYWNrQnVmZmVyIHsKIAogUGFzc1JlZjxTb3VyY2VCdWZmZXI+IFNvdXJjZUJ1ZmZl
cjo6Y3JlYXRlKFBhc3NSZWY8U291cmNlQnVmZmVyUHJpdmF0ZT4gc291cmNlQnVmZmVyUHJpdmF0
ZSwgTWVkaWFTb3VyY2UqIHNvdXJjZSkKIHsKLSAgICBSZWZQdHI8U291cmNlQnVmZmVyPiBzb3Vy
Y2VCdWZmZXIoYWRvcHRSZWYobmV3IFNvdXJjZUJ1ZmZlcihzdGQ6Om1vdmUoc291cmNlQnVmZmVy
UHJpdmF0ZSksIHNvdXJjZSkpKTsKKyAgICBSZWZQdHI8U291cmNlQnVmZmVyPiBzb3VyY2VCdWZm
ZXIoYWRvcHRSZWYobmV3IFNvdXJjZUJ1ZmZlcihXVEY6Om1vdmUoc291cmNlQnVmZmVyUHJpdmF0
ZSksIHNvdXJjZSkpKTsKICAgICBzb3VyY2VCdWZmZXItPnN1c3BlbmRJZk5lZWRlZCgpOwogICAg
IHJldHVybiBzb3VyY2VCdWZmZXIucmVsZWFzZU5vbk51bGwoKTsKIH0KIAogU291cmNlQnVmZmVy
OjpTb3VyY2VCdWZmZXIoUGFzc1JlZjxTb3VyY2VCdWZmZXJQcml2YXRlPiBzb3VyY2VCdWZmZXJQ
cml2YXRlLCBNZWRpYVNvdXJjZSogc291cmNlKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KHNvdXJj
ZS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICwgbV9wcml2YXRlKHN0ZDo6bW92ZShz
b3VyY2VCdWZmZXJQcml2YXRlKSkKKyAgICAsIG1fcHJpdmF0ZShXVEY6Om1vdmUoc291cmNlQnVm
ZmVyUHJpdmF0ZSkpCiAgICAgLCBtX3NvdXJjZShzb3VyY2UpCiAgICAgLCBtX2FzeW5jRXZlbnRR
dWV1ZSgqdGhpcykKICAgICAsIG1fdXBkYXRpbmcoZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1GU2VuZGVyLmNwcAppbmRleCBmNmE2YzJl
Li5lNWFkY2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ0RUTUZTZW5kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDRFRNRlNlbmRlci5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgUGFzc1JlZlB0cjxSVENEVE1G
U2VuZGVyPiBSVENEVE1GU2VuZGVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgUmVmUHRyPFJUQ0RU
TUZTZW5kZXI+IGR0bWZTZW5kZXIgPSBhZG9wdFJlZihuZXcgUlRDRFRNRlNlbmRlcihjb250ZXh0
LCB0cmFjaywgc3RkOjptb3ZlKGhhbmRsZXIpKSk7CisgICAgUmVmUHRyPFJUQ0RUTUZTZW5kZXI+
IGR0bWZTZW5kZXIgPSBhZG9wdFJlZihuZXcgUlRDRFRNRlNlbmRlcihjb250ZXh0LCB0cmFjaywg
V1RGOjptb3ZlKGhhbmRsZXIpKSk7CiAgICAgZHRtZlNlbmRlci0+c3VzcGVuZElmTmVlZGVkKCk7
CiAgICAgcmV0dXJuIGR0bWZTZW5kZXIucmVsZWFzZSgpOwogfQpAQCAtNjMsNyArNjMsNyBAQCBS
VENEVE1GU2VuZGVyOjpSVENEVE1GU2VuZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIFBhc3NSZWZQdHI8TWVkaWFTdAogICAgICwgbV90cmFjayh0cmFjaykKICAgICAsIG1fZHVy
YXRpb24oZGVmYXVsdFRvbmVEdXJhdGlvbk1zKQogICAgICwgbV9pbnRlclRvbmVHYXAoZGVmYXVs
dEludGVyVG9uZUdhcE1zKQotICAgICwgbV9oYW5kbGVyKHN0ZDo6bW92ZShoYW5kbGVyKSkKKyAg
ICAsIG1faGFuZGxlcihXVEY6Om1vdmUoaGFuZGxlcikpCiAgICAgLCBtX3N0b3BwZWQoZmFsc2Up
CiAgICAgLCBtX3NjaGVkdWxlZEV2ZW50VGltZXIodGhpcywgJlJUQ0RUTUZTZW5kZXI6OnNjaGVk
dWxlZEV2ZW50VGltZXJGaXJlZCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKaW5kZXggYjQzMTRkYy4uZGU3ODQ3NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hh
bm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRh
Q2hhbm5lbC5jcHAKQEAgLTgwLDE4ICs4MCwxOCBAQCBQYXNzUmVmUHRyPFJUQ0RhdGFDaGFubmVs
PiBSVENEYXRhQ2hhbm5lbDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleAog
ICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICB9Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSVENEYXRhQ2hhbm5lbChjb250ZXh0LCBz
dGQ6Om1vdmUoaGFuZGxlcikpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJUQ0RhdGFDaGFu
bmVsKGNvbnRleHQsIFdURjo6bW92ZShoYW5kbGVyKSkpOwogfQogCiBQYXNzUmVmUHRyPFJUQ0Rh
dGFDaGFubmVsPiBSVENEYXRhQ2hhbm5lbDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+IGhhbmRsZXIp
CiB7CiAgICAgQVNTRVJUKGhhbmRsZXIpOwotICAgIHJldHVybiBhZG9wdFJlZihuZXcgUlRDRGF0
YUNoYW5uZWwoY29udGV4dCwgc3RkOjptb3ZlKGhhbmRsZXIpKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBSVENEYXRhQ2hhbm5lbChjb250ZXh0LCBXVEY6Om1vdmUoaGFuZGxlcikpKTsKIH0K
IAogUlRDRGF0YUNoYW5uZWw6OlJUQ0RhdGFDaGFubmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+IGhhbmRsZXIp
CiAgICAgOiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkKLSAgICAsIG1faGFuZGxl
cihzdGQ6Om1vdmUoaGFuZGxlcikpCisgICAgLCBtX2hhbmRsZXIoV1RGOjptb3ZlKGhhbmRsZXIp
KQogICAgICwgbV9zdG9wcGVkKGZhbHNlKQogICAgICwgbV9yZWFkeVN0YXRlKFJlYWR5U3RhdGVD
b25uZWN0aW5nKQogICAgICwgbV9iaW5hcnlUeXBlKEJpbmFyeVR5cGVBcnJheUJ1ZmZlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbi5jcHAKaW5kZXggNjA2NGRkNC4uMjlkYzE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKQEAg
LTY3MCw3ICs2NzAsNyBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpkaWRBZGRSZW1vdGVEYXRh
Q2hhbm5lbChzdGQ6OnVuaXF1ZV9wdHI8UlRDRGF0YUNoYW5uZWxIYQogICAgIGlmIChtX3NpZ25h
bGluZ1N0YXRlID09IFNpZ25hbGluZ1N0YXRlQ2xvc2VkKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBSZWZQdHI8UlRDRGF0YUNoYW5uZWw+IGNoYW5uZWwgPSBSVENEYXRhQ2hhbm5lbDo6Y3JlYXRl
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgc3RkOjptb3ZlKGhhbmRsZXIpKTsKKyAgICBSZWZQ
dHI8UlRDRGF0YUNoYW5uZWw+IGNoYW5uZWwgPSBSVENEYXRhQ2hhbm5lbDo6Y3JlYXRlKHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSwgV1RGOjptb3ZlKGhhbmRsZXIpKTsKICAgICBtX2RhdGFDaGFu
bmVscy5hcHBlbmQoY2hhbm5lbCk7CiAKICAgICBzY2hlZHVsZURpc3BhdGNoRXZlbnQoUlRDRGF0
YUNoYW5uZWxFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5kYXRhY2hhbm5lbEV2ZW50LCBmYWxz
ZSwgZmFsc2UsIGNoYW5uZWwucmVsZWFzZSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9y
Q29udGVudFV0aWxzLmNwcAppbmRleCBjNDJlMGFjLi4wY2YzNGU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50
VXRpbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0
aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHAKQEAgLTIwMyw3ICsyMDMsNyBAQCBjb25zdCBj
aGFyKiBOYXZpZ2F0b3JDb250ZW50VXRpbHM6OnN1cHBsZW1lbnROYW1lKCkKIAogdm9pZCBwcm92
aWRlTmF2aWdhdG9yQ29udGVudFV0aWxzVG8oUGFnZSogcGFnZSwgc3RkOjp1bmlxdWVfcHRyPE5h
dmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudD4gY2xpZW50KQogewotICAgIE5hdmlnYXRvckNvbnRl
bnRVdGlsczo6cHJvdmlkZVRvKHBhZ2UsIE5hdmlnYXRvckNvbnRlbnRVdGlsczo6c3VwcGxlbWVu
dE5hbWUoKSwgc3RkOjptYWtlX3VuaXF1ZTxOYXZpZ2F0b3JDb250ZW50VXRpbHM+KHN0ZDo6bW92
ZShjbGllbnQpKSk7CisgICAgTmF2aWdhdG9yQ29udGVudFV0aWxzOjpwcm92aWRlVG8ocGFnZSwg
TmF2aWdhdG9yQ29udGVudFV0aWxzOjpzdXBwbGVtZW50TmFtZSgpLCBzdGQ6Om1ha2VfdW5pcXVl
PE5hdmlnYXRvckNvbnRlbnRVdGlscz4oV1RGOjptb3ZlKGNsaWVudCkpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uYXZp
Z2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMuaApp
bmRleCBlOGRkODY0Li5jNDU1MzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50
VXRpbHMuaApAQCAtNDQsNyArNDQsNyBAQCB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogY2xh
c3MgTmF2aWdhdG9yQ29udGVudFV0aWxzIGZpbmFsIDogcHVibGljIFN1cHBsZW1lbnQ8UGFnZT4g
ewogcHVibGljOgogICAgIGV4cGxpY2l0IE5hdmlnYXRvckNvbnRlbnRVdGlscyhzdGQ6OnVuaXF1
ZV9wdHI8TmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50PiBjbGllbnQpCi0gICAgICAgIDogbV9j
bGllbnQoc3RkOjptb3ZlKGNsaWVudCkpCisgICAgICAgIDogbV9jbGllbnQoV1RGOjptb3ZlKGNs
aWVudCkpCiAgICAgeyB9CiAKICAgICB2aXJ0dWFsIH5OYXZpZ2F0b3JDb250ZW50VXRpbHMoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5k
b3dOb3RpZmljYXRpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9u
cy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcAppbmRleCAwYTg5ZDA2Li5iZDJhMWEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90
aWZpY2F0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25z
L0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwCkBAIC01OCw3ICs1OCw3IEBAIERPTVdpbmRvd05v
dGlmaWNhdGlvbnMqIERPTVdpbmRvd05vdGlmaWNhdGlvbnM6OmZyb20oRE9NV2luZG93KiB3aW5k
b3cpCiAgICAgaWYgKCFzdXBwbGVtZW50KSB7CiAgICAgICAgIGF1dG8gbmV3U3VwcGxlbWVudCA9
IHN0ZDo6bWFrZV91bmlxdWU8RE9NV2luZG93Tm90aWZpY2F0aW9ucz4od2luZG93KTsKICAgICAg
ICAgc3VwcGxlbWVudCA9IG5ld1N1cHBsZW1lbnQuZ2V0KCk7Ci0gICAgICAgIHByb3ZpZGVUbyh3
aW5kb3csIHN1cHBsZW1lbnROYW1lKCksIHN0ZDo6bW92ZShuZXdTdXBwbGVtZW50KSk7CisgICAg
ICAgIHByb3ZpZGVUbyh3aW5kb3csIHN1cHBsZW1lbnROYW1lKCksIFdURjo6bW92ZShuZXdTdXBw
bGVtZW50KSk7CiAgICAgfQogICAgIHJldHVybiBzdXBwbGVtZW50OwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL1dvcmtlckdsb2JhbFNjb3BlTm90
aWZpY2F0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvV29y
a2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zLmNwcAppbmRleCBhOGNkMGU0Li40ZTFlNjc1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvV29ya2VyR2xv
YmFsU2NvcGVOb3RpZmljYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25v
dGlmaWNhdGlvbnMvV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zLmNwcApAQCAtNTYsNyAr
NTYsNyBAQCBXb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMqIFdvcmtlckdsb2JhbFNjb3Bl
Tm90aWZpY2F0aW9uczo6ZnJvbShXb3JrZXJHbG9iYQogICAgIGlmICghc3VwcGxlbWVudCkgewog
ICAgICAgICBhdXRvIG5ld1N1cHBsZW1lbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdvcmtlckdsb2Jh
bFNjb3BlTm90aWZpY2F0aW9ucz4oY29udGV4dCk7CiAgICAgICAgIHN1cHBsZW1lbnQgPSBuZXdT
dXBwbGVtZW50LmdldCgpOwotICAgICAgICBwcm92aWRlVG8oY29udGV4dCwgc3VwcGxlbWVudE5h
bWUoKSwgc3RkOjptb3ZlKG5ld1N1cHBsZW1lbnQpKTsKKyAgICAgICAgcHJvdmlkZVRvKGNvbnRl
eHQsIHN1cHBsZW1lbnROYW1lKCksIFdURjo6bW92ZShuZXdTdXBwbGVtZW50KSk7CiAgICAgfQog
ICAgIHJldHVybiBzdXBwbGVtZW50OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCmluZGV4IDU2
OTg2Y2UuLmViM2MyNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lu
cy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KQEAgLTEzOCw3ICsxMzgs
NyBAQCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihIVE1MUAogICAgIEFTU0VSVF9VTlVTRUQocGx1Z2luLCBt
X3BhcmVudEVsZW1lbnQgPT0gJnBsdWdpbik7CiAKICAgICBpZiAobV9tZWRpYUVsZW1lbnQpCi0g
ICAgICAgIHJldHVybiBtX21lZGlhRWxlbWVudC0+Y3JlYXRlRWxlbWVudFJlbmRlcmVyKHN0ZDo6
bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4gbV9tZWRpYUVsZW1lbnQtPmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihXVEY6Om1vdmUoc3R5bGUpKTsKIAogICAgIHJldHVybiBudWxscHRyOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5S
ZXBsYWNlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBs
dWdpblJlcGxhY2VtZW50LmNwcAppbmRleCBkYTc1YzY2Li44YTBlMjA5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxh
Y2VtZW50LmNwcApAQCAtNzMsNyArNzMsNyBAQCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gWW91
VHViZVBsdWdpblJlcGxhY2VtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoSFRNTFBsdQogICAg
IGlmICghbV9lbWJlZFNoYWRvd0VsZW1lbnQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IAotICAgIHJldHVybiBtX2VtYmVkU2hhZG93RWxlbWVudC0+Y3JlYXRlRWxlbWVudFJlbmRlcmVy
KHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBtX2VtYmVkU2hhZG93RWxlbWVudC0+Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFdURjo6bW92ZShzdHlsZSkpOwogfQogCiBib29sIFlvdVR1YmVQ
bHVnaW5SZXBsYWNlbWVudDo6aW5zdGFsbFJlcGxhY2VtZW50KFNoYWRvd1Jvb3QqIHJvb3QpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3F1b3RhL0RPTVdpbmRvd1F1b3RhLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvRE9NV2luZG93UXVvdGEuY3BwCmluZGV4
IDI4NmMzMTIuLjAwNWY1MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVv
dGEvRE9NV2luZG93UXVvdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEv
RE9NV2luZG93UXVvdGEuY3BwCkBAIC02Miw3ICs2Miw3IEBAIERPTVdpbmRvd1F1b3RhKiBET01X
aW5kb3dRdW90YTo6ZnJvbShET01XaW5kb3cqIHdpbmRvdykKICAgICBpZiAoIXN1cHBsZW1lbnQp
IHsKICAgICAgICAgYXV0byBuZXdTdXBwbGVtZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxET01XaW5k
b3dRdW90YT4od2luZG93KTsKICAgICAgICAgc3VwcGxlbWVudCA9IG5ld1N1cHBsZW1lbnQuZ2V0
KCk7Ci0gICAgICAgIHByb3ZpZGVUbyh3aW5kb3csIHN1cHBsZW1lbnROYW1lKCksIHN0ZDo6bW92
ZShuZXdTdXBwbGVtZW50KSk7CisgICAgICAgIHByb3ZpZGVUbyh3aW5kb3csIHN1cHBsZW1lbnRO
YW1lKCksIFdURjo6bW92ZShuZXdTdXBwbGVtZW50KSk7CiAgICAgfQogICAgIHJldHVybiBzdXBw
bGVtZW50OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90YS9OYXZp
Z2F0b3JTdG9yYWdlUXVvdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90YS9OYXZp
Z2F0b3JTdG9yYWdlUXVvdGEuY3BwCmluZGV4IGY3YjUzYmQuLjIzYmU3ZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvTmF2aWdhdG9yU3RvcmFnZVF1b3RhLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3F1b3RhL05hdmlnYXRvclN0b3JhZ2VRdW90YS5j
cHAKQEAgLTU5LDcgKzU5LDcgQEAgTmF2aWdhdG9yU3RvcmFnZVF1b3RhKiBOYXZpZ2F0b3JTdG9y
YWdlUXVvdGE6OmZyb20oTmF2aWdhdG9yKiBuYXZpZ2F0b3IpCiAgICAgaWYgKCFzdXBwbGVtZW50
KSB7CiAgICAgICAgIGF1dG8gbmV3U3VwcGxlbWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8TmF2aWdh
dG9yU3RvcmFnZVF1b3RhPih3aW5kb3cpOwogICAgICAgICBzdXBwbGVtZW50ID0gbmV3U3VwcGxl
bWVudC5nZXQoKTsKLSAgICAgICAgcHJvdmlkZVRvKG5hdmlnYXRvciwgc3VwcGxlbWVudE5hbWUo
KSwgc3RkOjptb3ZlKG5ld1N1cHBsZW1lbnQpKTsKKyAgICAgICAgcHJvdmlkZVRvKG5hdmlnYXRv
ciwgc3VwcGxlbWVudE5hbWUoKSwgV1RGOjptb3ZlKG5ld1N1cHBsZW1lbnQpKTsKICAgICB9CiAg
ICAgcmV0dXJuIHN1cHBsZW1lbnQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3F1b3RhL1dvcmtlck5hdmlnYXRvclN0b3JhZ2VRdW90YS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3F1b3RhL1dvcmtlck5hdmlnYXRvclN0b3JhZ2VRdW90YS5jcHAKaW5kZXggNjg0
NzRhZS4uOTliM2NiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90YS9X
b3JrZXJOYXZpZ2F0b3JTdG9yYWdlUXVvdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcXVvdGEvV29ya2VyTmF2aWdhdG9yU3RvcmFnZVF1b3RhLmNwcApAQCAtNTcsNyArNTcsNyBA
QCBXb3JrZXJOYXZpZ2F0b3JTdG9yYWdlUXVvdGEqIFdvcmtlck5hdmlnYXRvclN0b3JhZ2VRdW90
YTo6ZnJvbShXb3JrZXJOYXZpZ2F0b3IqCiAgICAgaWYgKCFzdXBwbGVtZW50KSB7CiAgICAgICAg
IGF1dG8gbmV3U3VwcGxlbWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8V29ya2VyTmF2aWdhdG9yU3Rv
cmFnZVF1b3RhPih3aW5kb3cpOwogICAgICAgICBzdXBwbGVtZW50ID0gbmV3U3VwcGxlbWVudC5n
ZXQoKTsKLSAgICAgICAgcHJvdmlkZVRvKG5hdmlnYXRvciwgc3VwcGxlbWVudE5hbWUoKSwgc3Rk
Ojptb3ZlKG5ld1N1cHBsZW1lbnQpKTsKKyAgICAgICAgcHJvdmlkZVRvKG5hdmlnYXRvciwgc3Vw
cGxlbWVudE5hbWUoKSwgV1RGOjptb3ZlKG5ld1N1cHBsZW1lbnQpKTsKICAgICB9CiAgICAgcmV0
dXJuIHN1cHBsZW1lbnQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAppbmRleCBhZDI0N2E1Li5jMzc3
YjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dT
cGVlY2hTeW50aGVzaXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL0RP
TVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgRE9NV2luZG93U3Bl
ZWNoU3ludGhlc2lzKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXM6OmZyb20oRE9NV2luZG93KiB3
aW5kb3cpCiAgICAgaWYgKCFzdXBwbGVtZW50KSB7CiAgICAgICAgIGF1dG8gbmV3U3VwcGxlbWVu
dCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NV2luZG93U3BlZWNoU3ludGhlc2lzPih3aW5kb3cpOwog
ICAgICAgICBzdXBwbGVtZW50ID0gbmV3U3VwcGxlbWVudC5nZXQoKTsKLSAgICAgICAgcHJvdmlk
ZVRvKHdpbmRvdywgc3VwcGxlbWVudE5hbWUoKSwgc3RkOjptb3ZlKG5ld1N1cHBsZW1lbnQpKTsK
KyAgICAgICAgcHJvdmlkZVRvKHdpbmRvdywgc3VwcGxlbWVudE5hbWUoKSwgV1RGOjptb3ZlKG5l
d1N1cHBsZW1lbnQpKTsKICAgICB9CiAgICAgcmV0dXJuIHN1cHBsZW1lbnQ7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAppbmRleCBh
NzBiZTFlLi5iNmJiM2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hTeW50aGVzaXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpcy5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgU3BlZWNoU3ludGhlc2lzOjpT
cGVlY2hTeW50aGVzaXMoKQogICAgIAogdm9pZCBTcGVlY2hTeW50aGVzaXM6OnNldFBsYXRmb3Jt
U3ludGhlc2l6ZXIoc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI+IHN5
bnRoZXNpemVyKQogewotICAgIG1fcGxhdGZvcm1TcGVlY2hTeW50aGVzaXplciA9IHN0ZDo6bW92
ZShzeW50aGVzaXplcik7CisgICAgbV9wbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyID0gV1RGOjpt
b3ZlKHN5bnRoZXNpemVyKTsKICAgICBtX3ZvaWNlTGlzdC5jbGVhcigpOwogICAgIG1fY3VycmVu
dFNwZWVjaFV0dGVyYW5jZSA9IDA7CiAgICAgbV91dHRlcmFuY2VRdWV1ZS5jbGVhcigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0FzeW5jQXVkaW9EZWNvZGVy
LmNwcAppbmRleCAzNjk4YmY1Li40NDllMzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0FzeW5jQXVkaW9EZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0FzeW5jQXVkaW9EZWNvZGVyLmNwcApAQCAtNTksNyArNTksNyBA
QCB2b2lkIEFzeW5jQXVkaW9EZWNvZGVyOjpkZWNvZGVBc3luYyhBcnJheUJ1ZmZlciogYXVkaW9E
YXRhLCBmbG9hdCBzYW1wbGVSYXRlLCBQYQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIGRl
Y29kaW5nVGFzayA9IERlY29kaW5nVGFzazo6Y3JlYXRlKGF1ZGlvRGF0YSwgc2FtcGxlUmF0ZSwg
c3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKTsKLSAgICBtX3F1ZXVlLmFwcGVuZChzdGQ6
Om1vdmUoZGVjb2RpbmdUYXNrKSk7IC8vIG5vdGUgdGhhdCBvd25lcnNoaXAgb2YgdGhlIHRhc2sg
aXMgZWZmZWN0aXZlbHkgdGFrZW4gYnkgdGhlIHF1ZXVlLgorICAgIG1fcXVldWUuYXBwZW5kKFdU
Rjo6bW92ZShkZWNvZGluZ1Rhc2spKTsgLy8gbm90ZSB0aGF0IG93bmVyc2hpcCBvZiB0aGUgdGFz
ayBpcyBlZmZlY3RpdmVseSB0YWtlbiBieSB0aGUgcXVldWUuCiB9CiAKIC8vIEFzeW5jaHJvbm91
c2x5IGRlY29kZSBpbiB0aGlzIHRocmVhZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Ob2RlLmNwcAppbmRleCA1MTRlYzdhLi40YzQwNzI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3BwCkBAIC0xMDAsMTIgKzEwMCwx
MiBAQCB2b2lkIEF1ZGlvTm9kZTo6bGF6eUluaXRpYWxpemUoKQogCiB2b2lkIEF1ZGlvTm9kZTo6
YWRkSW5wdXQoc3RkOjp1bmlxdWVfcHRyPEF1ZGlvTm9kZUlucHV0PiBpbnB1dCkKIHsKLSAgICBt
X2lucHV0cy5hcHBlbmQoc3RkOjptb3ZlKGlucHV0KSk7CisgICAgbV9pbnB1dHMuYXBwZW5kKFdU
Rjo6bW92ZShpbnB1dCkpOwogfQogCiB2b2lkIEF1ZGlvTm9kZTo6YWRkT3V0cHV0KHN0ZDo6dW5p
cXVlX3B0cjxBdWRpb05vZGVPdXRwdXQ+IG91dHB1dCkKIHsKLSAgICBtX291dHB1dHMuYXBwZW5k
KHN0ZDo6bW92ZShvdXRwdXQpKTsKKyAgICBtX291dHB1dHMuYXBwZW5kKFdURjo6bW92ZShvdXRw
dXQpKTsKIH0KIAogQXVkaW9Ob2RlSW5wdXQqIEF1ZGlvTm9kZTo6aW5wdXQodW5zaWduZWQgaSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9k
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3Bw
CmluZGV4IGM1YWM1ZWEuLjVhMTAwZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNwcApAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgQ29u
dm9sdmVyTm9kZTo6c2V0QnVmZmVyKEF1ZGlvQnVmZmVyKiBidWZmZXIpCiAgICAgewogICAgICAg
ICAvLyBTeW5jaHJvbml6ZSB3aXRoIHByb2Nlc3MoKS4KICAgICAgICAgc3RkOjpsb2NrX2d1YXJk
PHN0ZDo6bXV0ZXg+IGxvY2sobV9wcm9jZXNzTXV0ZXgpOwotICAgICAgICBtX3JldmVyYiA9IHN0
ZDo6bW92ZShyZXZlcmIpOworICAgICAgICBtX3JldmVyYiA9IFdURjo6bW92ZShyZXZlcmIpOwog
ICAgICAgICBtX2J1ZmZlciA9IGJ1ZmZlcjsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCmluZGV4IGZlNmYzYzcuLjBhYWRhYjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3Bw
CkBAIC0xMzAsNyArMTMwLDcgQEAgdm9pZCBEYXRhYmFzZTo6bWFya0FzRGVsZXRlZEFuZENsb3Nl
KCkKICAgICB9CiAKICAgICBhdXRvIHRhc2sgPSBEYXRhYmFzZUNsb3NlVGFzazo6Y3JlYXRlKHRo
aXMsICZzeW5jaHJvbml6ZXIpOwotICAgIGRhdGFiYXNlQ29udGV4dCgpLT5kYXRhYmFzZVRocmVh
ZCgpLT5zY2hlZHVsZUltbWVkaWF0ZVRhc2soc3RkOjptb3ZlKHRhc2spKTsKKyAgICBkYXRhYmFz
ZUNvbnRleHQoKS0+ZGF0YWJhc2VUaHJlYWQoKS0+c2NoZWR1bGVJbW1lZGlhdGVUYXNrKFdURjo6
bW92ZSh0YXNrKSk7CiAgICAgc3luY2hyb25pemVyLndhaXRGb3JUYXNrQ29tcGxldGlvbigpOwog
fQogCkBAIC0yMjIsNyArMjIyLDcgQEAgVmVjdG9yPFN0cmluZz4gRGF0YWJhc2U6OnRhYmxlTmFt
ZXMoKQogICAgICAgICByZXR1cm4gcmVzdWx0OwogCiAgICAgYXV0byB0YXNrID0gRGF0YWJhc2VU
YWJsZU5hbWVzVGFzazo6Y3JlYXRlKHRoaXMsICZzeW5jaHJvbml6ZXIsIHJlc3VsdCk7Ci0gICAg
ZGF0YWJhc2VDb250ZXh0KCktPmRhdGFiYXNlVGhyZWFkKCktPnNjaGVkdWxlSW1tZWRpYXRlVGFz
ayhzdGQ6Om1vdmUodGFzaykpOworICAgIGRhdGFiYXNlQ29udGV4dCgpLT5kYXRhYmFzZVRocmVh
ZCgpLT5zY2hlZHVsZUltbWVkaWF0ZVRhc2soV1RGOjptb3ZlKHRhc2spKTsKICAgICBzeW5jaHJv
bml6ZXIud2FpdEZvclRhc2tDb21wbGV0aW9uKCk7CiAKICAgICByZXR1cm4gcmVzdWx0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUJhY2tl
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUJhY2tl
bmQuY3BwCmluZGV4IDQ5NWU4NmEuLmM3NWJiZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQmFja2VuZC5jcHAKQEAgLTU3LDcgKzU3
LDcgQEAgYm9vbCBEYXRhYmFzZUJhY2tlbmQ6Om9wZW5BbmRWZXJpZnlWZXJzaW9uKGJvb2wgc2V0
VmVyc2lvbkluTmV3RGF0YWJhc2UsIERhdGFiYXMKIAogICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNl
OwogICAgIGF1dG8gdGFzayA9IERhdGFiYXNlT3BlblRhc2s6OmNyZWF0ZSh0aGlzLCBzZXRWZXJz
aW9uSW5OZXdEYXRhYmFzZSwgJnN5bmNocm9uaXplciwgZXJyb3IsIGVycm9yTWVzc2FnZSwgc3Vj
Y2Vzcyk7Ci0gICAgZGF0YWJhc2VDb250ZXh0KCktPmRhdGFiYXNlVGhyZWFkKCktPnNjaGVkdWxl
SW1tZWRpYXRlVGFzayhzdGQ6Om1vdmUodGFzaykpOworICAgIGRhdGFiYXNlQ29udGV4dCgpLT5k
YXRhYmFzZVRocmVhZCgpLT5zY2hlZHVsZUltbWVkaWF0ZVRhc2soV1RGOjptb3ZlKHRhc2spKTsK
ICAgICBzeW5jaHJvbml6ZXIud2FpdEZvclRhc2tDb21wbGV0aW9uKCk7CiAKICAgICByZXR1cm4g
c3VjY2VzczsKQEAgLTE0Nyw3ICsxNDcsNyBAQCB2b2lkIERhdGFiYXNlQmFja2VuZDo6c2NoZWR1
bGVUcmFuc2FjdGlvbigpCiAgICAgICAgIGF1dG8gdGFzayA9IERhdGFiYXNlVHJhbnNhY3Rpb25U
YXNrOjpjcmVhdGUodHJhbnNhY3Rpb24pOwogICAgICAgICBMT0coU3RvcmFnZUFQSSwgIlNjaGVk
dWxpbmcgRGF0YWJhc2VUcmFuc2FjdGlvblRhc2sgJXAgZm9yIHRyYW5zYWN0aW9uICVwXG4iLCB0
YXNrLmdldCgpLCB0YXNrLT50cmFuc2FjdGlvbigpKTsKICAgICAgICAgbV90cmFuc2FjdGlvbklu
UHJvZ3Jlc3MgPSB0cnVlOwotICAgICAgICBkYXRhYmFzZUNvbnRleHQoKS0+ZGF0YWJhc2VUaHJl
YWQoKS0+c2NoZWR1bGVUYXNrKHN0ZDo6bW92ZSh0YXNrKSk7CisgICAgICAgIGRhdGFiYXNlQ29u
dGV4dCgpLT5kYXRhYmFzZVRocmVhZCgpLT5zY2hlZHVsZVRhc2soV1RGOjptb3ZlKHRhc2spKTsK
ICAgICB9IGVsc2UKICAgICAgICAgbV90cmFuc2FjdGlvbkluUHJvZ3Jlc3MgPSBmYWxzZTsKIH0K
QEAgLTE1OSw3ICsxNTksNyBAQCB2b2lkIERhdGFiYXNlQmFja2VuZDo6c2NoZWR1bGVUcmFuc2Fj
dGlvblN0ZXAoU1FMVHJhbnNhY3Rpb25CYWNrZW5kKiB0cmFuc2FjdGlvbgogCiAgICAgYXV0byB0
YXNrID0gRGF0YWJhc2VUcmFuc2FjdGlvblRhc2s6OmNyZWF0ZSh0cmFuc2FjdGlvbik7CiAgICAg
TE9HKFN0b3JhZ2VBUEksICJTY2hlZHVsaW5nIERhdGFiYXNlVHJhbnNhY3Rpb25UYXNrICVwIGZv
ciB0aGUgdHJhbnNhY3Rpb24gc3RlcFxuIiwgdGFzay5nZXQoKSk7Ci0gICAgZGF0YWJhc2VDb250
ZXh0KCktPmRhdGFiYXNlVGhyZWFkKCktPnNjaGVkdWxlVGFzayhzdGQ6Om1vdmUodGFzaykpOwor
ICAgIGRhdGFiYXNlQ29udGV4dCgpLT5kYXRhYmFzZVRocmVhZCgpLT5zY2hlZHVsZVRhc2soV1RG
Ojptb3ZlKHRhc2spKTsKIH0KIAogU1FMVHJhbnNhY3Rpb25DbGllbnQqIERhdGFiYXNlQmFja2Vu
ZDo6dHJhbnNhY3Rpb25DbGllbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmNwcAppbmRleCA5MzIwYWY5Li44ODMy
Y2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFi
YXNlVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlVGhyZWFkLmNwcApAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgRGF0YWJhc2VUaHJlYWQ6
OmhhbmRsZVBhdXNlZFF1ZXVlKCkKIHsKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPERhdGFi
YXNlVGFzaz4gPiBwYXVzZWRUYXNrczsKICAgICB3aGlsZSAoYXV0byB0YXNrID0gbV9wYXVzZWRR
dWV1ZS50cnlHZXRNZXNzYWdlKCkpCi0gICAgICAgIHBhdXNlZFRhc2tzLmFwcGVuZChzdGQ6Om1v
dmUodGFzaykpOworICAgICAgICBwYXVzZWRUYXNrcy5hcHBlbmQoV1RGOjptb3ZlKHRhc2spKTsK
IAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwYXVzZWRUYXNrcy5zaXplKCk7ICsraSkg
ewogICAgICAgICBBdXRvZHJhaW5lZFBvb2wgcG9vbDsKQEAgLTE2NCw3ICsxNjQsNyBAQCB2b2lk
IERhdGFiYXNlVGhyZWFkOjpoYW5kbGVQYXVzZWRRdWV1ZSgpCiAgICAgICAgIHsKICAgICAgICAg
ICAgIE11dGV4TG9ja2VyIHBhdXNlZExvY2tlcihtX3BhdXNlZE11dGV4KTsKICAgICAgICAgICAg
IGlmIChtX3BhdXNlZCkgewotICAgICAgICAgICAgICAgIG1fcGF1c2VkUXVldWUuYXBwZW5kKHN0
ZDo6bW92ZSh0YXNrKSk7CisgICAgICAgICAgICAgICAgbV9wYXVzZWRRdWV1ZS5hcHBlbmQoV1RG
Ojptb3ZlKHRhc2spKTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQpAQCAtMTkzLDcgKzE5Myw3IEBAIHZvaWQgRGF0YWJhc2VUaHJlYWQ6OmRhdGFi
YXNlVGhyZWFkKCkKICAgICAgICAgaWYgKCFtX3BhdXNlZCB8fCB0YXNrLT5zaG91bGRQZXJmb3Jt
V2hpbGVQYXVzZWQoKSkKICAgICAgICAgICAgIHRhc2stPnBlcmZvcm1UYXNrKCk7CiAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgIG1fcGF1c2VkUXVldWUuYXBwZW5kKHN0ZDo6bW92ZSh0YXNrKSk7
CisgICAgICAgICAgICBtX3BhdXNlZFF1ZXVlLmFwcGVuZChXVEY6Om1vdmUodGFzaykpOwogI2Vs
c2UKICAgICAgICAgdGFzay0+cGVyZm9ybVRhc2soKTsKICNlbmRpZgpAQCAtMjQ2LDEzICsyNDYs
MTMgQEAgdm9pZCBEYXRhYmFzZVRocmVhZDo6cmVjb3JkRGF0YWJhc2VDbG9zZWQoRGF0YWJhc2VC
YWNrZW5kKiBkYXRhYmFzZSkKIHZvaWQgRGF0YWJhc2VUaHJlYWQ6OnNjaGVkdWxlVGFzayhzdGQ6
OnVuaXF1ZV9wdHI8RGF0YWJhc2VUYXNrPiB0YXNrKQogewogICAgIEFTU0VSVCghdGFzay0+aGFz
U3luY2hyb25pemVyKCkgfHwgdGFzay0+aGFzQ2hlY2tlZEZvclRlcm1pbmF0aW9uKCkpOwotICAg
IG1fcXVldWUuYXBwZW5kKHN0ZDo6bW92ZSh0YXNrKSk7CisgICAgbV9xdWV1ZS5hcHBlbmQoV1RG
Ojptb3ZlKHRhc2spKTsKIH0KIAogdm9pZCBEYXRhYmFzZVRocmVhZDo6c2NoZWR1bGVJbW1lZGlh
dGVUYXNrKHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRhc2s+IHRhc2spCiB7CiAgICAgQVNTRVJU
KCF0YXNrLT5oYXNTeW5jaHJvbml6ZXIoKSB8fCB0YXNrLT5oYXNDaGVja2VkRm9yVGVybWluYXRp
b24oKSk7Ci0gICAgbV9xdWV1ZS5wcmVwZW5kKHN0ZDo6bW92ZSh0YXNrKSk7CisgICAgbV9xdWV1
ZS5wcmVwZW5kKFdURjo6bW92ZSh0YXNrKSk7CiB9CiAKIGNsYXNzIFNhbWVEYXRhYmFzZVByZWRp
Y2F0ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NR
TFN0YXRlbWVudEJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9TUUxTdGF0ZW1lbnRCYWNrZW5kLmNwcAppbmRleCAxNGZlNjhmLi5mM2RiZjQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudEJhY2tl
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVt
ZW50QmFja2VuZC5jcHAKQEAgLTc3LDEyICs3NywxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBQ
YXNzUmVmUHRyPFNRTFN0YXRlbWVudEJhY2tlbmQ+IFNRTFN0YXRlbWVudEJhY2tlbmQ6OmNyZWF0
ZShzdGQ6OnVuaXF1ZV9wdHI8QWJzdHJhY3RTUUxTdGF0ZW1lbnQ+IGZyb250ZW5kLAogICAgIGNv
bnN0IFN0cmluZyYgc3RhdGVtZW50LCBjb25zdCBWZWN0b3I8U1FMVmFsdWU+JiBhcmd1bWVudHMs
IGludCBwZXJtaXNzaW9ucykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNRTFN0YXRlbWVu
dEJhY2tlbmQoc3RkOjptb3ZlKGZyb250ZW5kKSwgc3RhdGVtZW50LCBhcmd1bWVudHMsIHBlcm1p
c3Npb25zKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTUUxTdGF0ZW1lbnRCYWNrZW5kKFdU
Rjo6bW92ZShmcm9udGVuZCksIHN0YXRlbWVudCwgYXJndW1lbnRzLCBwZXJtaXNzaW9ucykpOwog
fQogCiBTUUxTdGF0ZW1lbnRCYWNrZW5kOjpTUUxTdGF0ZW1lbnRCYWNrZW5kKHN0ZDo6dW5pcXVl
X3B0cjxBYnN0cmFjdFNRTFN0YXRlbWVudD4gZnJvbnRlbmQsCiAgICAgY29uc3QgU3RyaW5nJiBz
dGF0ZW1lbnQsIGNvbnN0IFZlY3RvcjxTUUxWYWx1ZT4mIGFyZ3VtZW50cywgaW50IHBlcm1pc3Np
b25zKQotICAgIDogbV9mcm9udGVuZChzdGQ6Om1vdmUoZnJvbnRlbmQpKQorICAgIDogbV9mcm9u
dGVuZChXVEY6Om1vdmUoZnJvbnRlbmQpKQogICAgICwgbV9zdGF0ZW1lbnQoc3RhdGVtZW50Lmlz
b2xhdGVkQ29weSgpKQogICAgICwgbV9hcmd1bWVudHMoYXJndW1lbnRzKQogICAgICwgbV9oYXND
YWxsYmFjayhtX2Zyb250ZW5kLT5oYXNDYWxsYmFjaygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcAppbmRleCAyNTkzMTk2
Li5jOWVlMjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L1NRTFRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL1NRTFRyYW5zYWN0aW9uLmNwcApAQCAtMjYyLDcgKzI2Miw3IEBAIHZvaWQgU1FMVHJhbnNh
Y3Rpb246OmV4ZWN1dGVTUUwoY29uc3QgU3RyaW5nJiBzcWxTdGF0ZW1lbnQsIGNvbnN0IFZlY3Rv
cjxTUUxWYWx1CiAgICAgICAgIHBlcm1pc3Npb25zIHw9IERhdGFiYXNlQXV0aG9yaXplcjo6UmVh
ZE9ubHlNYXNrOwogCiAgICAgYXV0byBzdGF0ZW1lbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFNRTFN0
YXRlbWVudD4obV9kYXRhYmFzZS5nZXQoKSwgY2FsbGJhY2ssIGNhbGxiYWNrRXJyb3IpOwotICAg
IG1fYmFja2VuZC0+ZXhlY3V0ZVNRTChzdGQ6Om1vdmUoc3RhdGVtZW50KSwgc3FsU3RhdGVtZW50
LCBhcmd1bWVudHMsIHBlcm1pc3Npb25zKTsKKyAgICBtX2JhY2tlbmQtPmV4ZWN1dGVTUUwoV1RG
Ojptb3ZlKHN0YXRlbWVudCksIHNxbFN0YXRlbWVudCwgYXJndW1lbnRzLCBwZXJtaXNzaW9ucyk7
CiB9CiAKIGJvb2wgU1FMVHJhbnNhY3Rpb246OmNvbXB1dGVOZXh0U3RhdGVBbmRDbGVhbnVwSWZO
ZWVkZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9T
UUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCmluZGV4IDAwYjAwNjIuLjI4YTNiZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rp
b25CYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NR
TFRyYW5zYWN0aW9uQmFja2VuZC5jcHAKQEAgLTUzMCw3ICs1MzAsNyBAQCB2b2lkIFNRTFRyYW5z
YWN0aW9uQmFja2VuZDo6ZXhlY3V0ZVNRTChzdGQ6OnVuaXF1ZV9wdHI8QWJzdHJhY3RTUUxTdGF0
ZW1lbnQ+IHN0YQogICAgIGNvbnN0IFN0cmluZyYgc3FsU3RhdGVtZW50LCBjb25zdCBWZWN0b3I8
U1FMVmFsdWU+JiBhcmd1bWVudHMsIGludCBwZXJtaXNzaW9ucykKIHsKICAgICBSZWZQdHI8U1FM
U3RhdGVtZW50QmFja2VuZD4gc3RhdGVtZW50QmFja2VuZDsKLSAgICBzdGF0ZW1lbnRCYWNrZW5k
ID0gU1FMU3RhdGVtZW50QmFja2VuZDo6Y3JlYXRlKHN0ZDo6bW92ZShzdGF0ZW1lbnQpLCBzcWxT
dGF0ZW1lbnQsIGFyZ3VtZW50cywgcGVybWlzc2lvbnMpOworICAgIHN0YXRlbWVudEJhY2tlbmQg
PSBTUUxTdGF0ZW1lbnRCYWNrZW5kOjpjcmVhdGUoV1RGOjptb3ZlKHN0YXRlbWVudCksIHNxbFN0
YXRlbWVudCwgYXJndW1lbnRzLCBwZXJtaXNzaW9ucyk7CiAKICAgICBpZiAoRGF0YWJhc2U6OmZy
b20obV9kYXRhYmFzZS5nZXQoKSktPmRlbGV0ZWQoKSkKICAgICAgICAgc3RhdGVtZW50QmFja2Vu
ZC0+c2V0RGF0YWJhc2VEZWxldGVkRXJyb3IoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAKaW5kZXggMDg1ZDY3Mi4uZmVkODdjMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAK
QEAgLTIzMSw3ICsyMzEsNyBAQCB2b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50
V3JhcHBlcjo6cHJvY2Vzc1BlbmRpbmdUYXNrcygpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+
PiBwZW5kaW5nVGFza3MgPSBzdGQ6Om1vdmUobV9wZW5kaW5nVGFza3MpOworICAgIFZlY3Rvcjxz
dGQ6OnVuaXF1ZV9wdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4+IHBlbmRpbmdUYXNr
cyA9IFdURjo6bW92ZShtX3BlbmRpbmdUYXNrcyk7CiAgICAgZm9yIChhdXRvJiB0YXNrIDogcGVu
ZGluZ1Rhc2tzKQogICAgICAgICB0YXNrLT5wZXJmb3JtVGFzaygqbV9jb250ZXh0KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKaW5kZXgg
NTJmYmVhOC4uMGRjZDM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldC5jcHAKQEAgLTUxOSw3ICs1MTksNyBAQCB2b2lkIFdlYlNvY2tldDo6ZGlk
UmVjZWl2ZUJpbmFyeURhdGEoUGFzc093blB0cjxWZWN0b3I8Y2hhcj4+IGJpbmFyeURhdGEpCiAg
ICAgc3dpdGNoIChtX2JpbmFyeVR5cGUpIHsKICAgICBjYXNlIEJpbmFyeVR5cGVCbG9iOiB7CiAg
ICAgICAgIC8vIEZJWE1FOiBXZSBqdXN0IHJlY2VpdmVkIHRoZSBkYXRhIGZyb20gTmV0d29ya1By
b2Nlc3MsIGFuZCBhcmUgc2VuZGluZyBpdCBiYWNrLiBUaGlzIGlzIGluZWZmaWNpZW50LgotICAg
ICAgICBSZWZQdHI8QmxvYj4gYmxvYiA9IEJsb2I6OmNyZWF0ZShzdGQ6Om1vdmUoKmJpbmFyeURh
dGEpLCBlbXB0eVN0cmluZygpKTsKKyAgICAgICAgUmVmUHRyPEJsb2I+IGJsb2IgPSBCbG9iOjpj
cmVhdGUoV1RGOjptb3ZlKCpiaW5hcnlEYXRhKSwgZW1wdHlTdHJpbmcoKSk7CiAgICAgICAgIGRp
c3BhdGNoRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUoYmxvYi5yZWxlYXNlKCksIFNlY3VyaXR5
T3JpZ2luOjpjcmVhdGUobV91cmwpLT50b1N0cmluZygpKSk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmlu
ZGV4IGZlODdlNzAuLmYxOTQ4MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmNwcApAQCAtNzA0LDcgKzcwNCw3IEBAIHZvaWQgQVhPYmplY3RDYWNo
ZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoVGltZXI8QVhPYmplY3RDYWNoZT4mKQogICAg
IAogICAgIC8vIEluIERSVCwgcG9zdGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5IHRv
IGltbWVkaWF0ZWx5IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBsZWFk
IHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IKICAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRpb24gbGlz
dCBpcyBjbGVhcmVkIGF0IHRoZSBlbmQuIEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQgdGhlIHN0
YXJ0LgotICAgIGF1dG8gbm90aWZpY2F0aW9ucyA9IHN0ZDo6bW92ZShtX25vdGlmaWNhdGlvbnNU
b1Bvc3QpOworICAgIGF1dG8gbm90aWZpY2F0aW9ucyA9IFdURjo6bW92ZShtX25vdGlmaWNhdGlv
bnNUb1Bvc3QpOwogICAgIAogICAgIGZvciAoY29uc3QgYXV0byYgbm90ZSA6IG5vdGlmaWNhdGlv
bnMpIHsKICAgICAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gbm90ZS5maXJzdC5nZXQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggZTY2OTcwNS4uNGFjMzJkMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5j
cHAKQEAgLTE0MzgsNyArMTQzOCw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFy
aWFMYWJlbGVkQnlUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mIHRleHRPCiAgICAgICAg
ICAgICBheEVsZW1lbnRzLmFwcGVuZChheEVsZW1lbnQpOwogICAgICAgICB9CiAgICAgICAgIAot
ICAgICAgICB0ZXh0T3JkZXIuYXBwZW5kKEFjY2Vzc2liaWxpdHlUZXh0KGFyaWFMYWJlbGVkQnks
IEFsdGVybmF0aXZlVGV4dCwgc3RkOjptb3ZlKGF4RWxlbWVudHMpKSk7CisgICAgICAgIHRleHRP
cmRlci5hcHBlbmQoQWNjZXNzaWJpbGl0eVRleHQoYXJpYUxhYmVsZWRCeSwgQWx0ZXJuYXRpdmVU
ZXh0LCBXVEY6Om1vdmUoYXhFbGVtZW50cykpKTsKICAgICB9CiB9CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IGM3
OGJiY2EuLjVjMmIxOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC0yMzMsNyArMjMzLDcgQEAgc3RydWN0IEFjY2Vzc2li
aWxpdHlUZXh0IHsKICAgICBBY2Nlc3NpYmlsaXR5VGV4dChjb25zdCBTdHJpbmcmIHQsIGNvbnN0
IEFjY2Vzc2liaWxpdHlUZXh0U291cmNlJiBzLCBWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlP
YmplY3Q+PiBlbGVtZW50cykKICAgICA6IHRleHQodCkKICAgICAsIHRleHRTb3VyY2UocykKLSAg
ICAsIHRleHRFbGVtZW50cyhzdGQ6Om1vdmUoZWxlbWVudHMpKQorICAgICwgdGV4dEVsZW1lbnRz
KFdURjo6bW92ZShlbGVtZW50cykpCiAgICAgeyB9CiAKICAgICBBY2Nlc3NpYmlsaXR5VGV4dChj
b25zdCBTdHJpbmcmIHQsIGNvbnN0IEFjY2Vzc2liaWxpdHlUZXh0U291cmNlJiBzLCBjb25zdCBS
ZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gZWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3BwCmlu
ZGV4IDc3ZWRiOGMuLmQ5NWMxNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcApAQCAtMTQ2LDcgKzE0
Niw3IEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4g
Y3JlYXRlQWVzQ2JjUGFyYW1zKEV4ZWNTdGF0ZSoKIAogICAgIG1lbWNweShyZXN1bHQtPml2LmRh
dGEoKSwgaXZEYXRhLmZpcnN0LCBpdkRhdGEuc2Vjb25kKTsKIAotICAgIHJldHVybiBzdGQ6Om1v
dmUocmVzdWx0KTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKHJlc3VsdCk7CiB9CiAKIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlQWVzS2V5R2Vu
UGFyYW1zKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKQEAgLTE2NCw3ICsxNjQsNyBA
QCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0
ZUFlc0tleUdlblBhcmFtcyhFeGVjU3RhdAogCiAgICAgcmVzdWx0LT5sZW5ndGggPSB0b1VJbnQx
NihleGVjLCBsZW5ndGhWYWx1ZSwgRW5mb3JjZVJhbmdlKTsKIAotICAgIHJldHVybiBzdGQ6Om1v
dmUocmVzdWx0KTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKHJlc3VsdCk7CiB9CiAKIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlSG1hY1BhcmFt
cyhFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCkBAIC0xODIsNyArMTgyLDcgQEAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVIbWFj
UGFyYW1zKEV4ZWNTdGF0ZSogZXgKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0g
ICAgcmV0dXJuIHN0ZDo6bW92ZShyZXN1bHQpOworICAgIHJldHVybiBXVEY6Om1vdmUocmVzdWx0
KTsKIH0KIAogc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
PiBjcmVhdGVIbWFjS2V5UGFyYW1zKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKQEAg
LTIwNCw3ICsyMDQsNyBAQCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnM+IGNyZWF0ZUhtYWNLZXlQYXJhbXMoRXhlY1N0YXRlKgogICAgIGlmIChleGVjLT5o
YWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gc3Rk
Ojptb3ZlKHJlc3VsdCk7CisgICAgcmV0dXJuIFdURjo6bW92ZShyZXN1bHQpOwogfQogCiBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZVJzYUtl
eUdlblBhcmFtcyhFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCkBAIC0yMzYsNyArMjM2
LDcgQEAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBj
cmVhdGVSc2FLZXlHZW5QYXJhbXMoRXhlY1N0YXQKICAgICB9CiAgICAgcmVzdWx0LT5wdWJsaWNF
eHBvbmVudC5hcHBlbmQocHVibGljRXhwb25lbnRBcnJheS0+ZGF0YSgpLCBwdWJsaWNFeHBvbmVu
dEFycmF5LT5ieXRlTGVuZ3RoKCkpOwogCi0gICAgcmV0dXJuIHN0ZDo6bW92ZShyZXN1bHQpOwor
ICAgIHJldHVybiBXVEY6Om1vdmUocmVzdWx0KTsKIH0KIAogc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVSc2FLZXlQYXJhbXNXaXRoSGFzaChF
eGVjU3RhdGUqLCBKU1ZhbHVlKQpAQCAtMjY2LDcgKzI2Niw3IEBAIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlUnNhT2FlcFBhcmFtcyhFeGVj
U3RhdGUqCiAKICAgICByZXN1bHQtPmhhc0xhYmVsID0gIWxhYmVsVmFsdWUuaXNVbmRlZmluZWRP
ck51bGwoKTsKICAgICBpZiAoIXJlc3VsdC0+aGFzTGFiZWwpCi0gICAgICAgIHJldHVybiBzdGQ6
Om1vdmUocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIFdURjo6bW92ZShyZXN1bHQpOwogCiAgICAg
Q3J5cHRvT3BlcmF0aW9uRGF0YSBsYWJlbERhdGE7CiAgICAgaWYgKCFjcnlwdG9PcGVyYXRpb25E
YXRhRnJvbUpTVmFsdWUoZXhlYywgbGFiZWxWYWx1ZSwgbGFiZWxEYXRhKSkgewpAQCAtMjc2LDcg
KzI3Niw3IEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cz4gY3JlYXRlUnNhT2FlcFBhcmFtcyhFeGVjU3RhdGUqCiAKICAgICByZXN1bHQtPmxhYmVsLmFw
cGVuZChsYWJlbERhdGEuZmlyc3QsIGxhYmVsRGF0YS5zZWNvbmQpOwogCi0gICAgcmV0dXJuIHN0
ZDo6bW92ZShyZXN1bHQpOworICAgIHJldHVybiBXVEY6Om1vdmUocmVzdWx0KTsKIH0KIAogc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVSc2FT
c2FQYXJhbXMoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQpAQCAtMjk0LDcgKzI5NCw3
IEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3Jl
YXRlUnNhU3NhUGFyYW1zKEV4ZWNTdGF0ZSoKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
fQogCi0gICAgcmV0dXJuIHN0ZDo6bW92ZShyZXN1bHQpOworICAgIHJldHVybiBXVEY6Om1vdmUo
cmVzdWx0KTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+
IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckVuY3J5cHQo
RXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNW
YWx1ZSB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5
cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suY3BwCmluZGV4IDI2M2U1Y2IuLmJlNmUxZTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvS2V5U2VyaWFsaXph
dGlvbkpXSy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9LZXlT
ZXJpYWxpemF0aW9uSldLLmNwcApAQCAtMTUyLDcgKzE1Miw3IEBAIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlSE1BQ1BhcmFtZXRlcnMoQ3J5
cHRvQWxnCiB7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXM+
IGhtYWNQYXJhbWV0ZXJzID0gc3RkOjptYWtlX3VuaXF1ZTxDcnlwdG9BbGdvcml0aG1IbWFjUGFy
YW1zPigpOwogICAgIGhtYWNQYXJhbWV0ZXJzLT5oYXNoID0gaGFzaEZ1bmN0aW9uOwotICAgIHJl
dHVybiBzdGQ6Om1vdmUoaG1hY1BhcmFtZXRlcnMpOworICAgIHJldHVybiBXVEY6Om1vdmUoaG1h
Y1BhcmFtZXRlcnMpOwogfQogCiBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnM+IGNyZWF0ZVJTQUtleVBhcmFtZXRlcnNXaXRoSGFzaChDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyIGhhc2hGdW5jdGlvbikKQEAgLTE2MCw3ICsxNjAsNyBAQCBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZVJTQUtleVBhcmFt
ZXRlcnNXaXRoSGFzaAogICAgIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1Sc2FLZXlQ
YXJhbXNXaXRoSGFzaD4gcnNhS2V5UGFyYW1ldGVycyA9IHN0ZDo6bWFrZV91bmlxdWU8Q3J5cHRv
QWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2g+KCk7CiAgICAgcnNhS2V5UGFyYW1ldGVycy0+
aGFzSGFzaCA9IHRydWU7CiAgICAgcnNhS2V5UGFyYW1ldGVycy0+aGFzaCA9IGhhc2hGdW5jdGlv
bjsKLSAgICByZXR1cm4gc3RkOjptb3ZlKHJzYUtleVBhcmFtZXRlcnMpOworICAgIHJldHVybiBX
VEY6Om1vdmUocnNhS2V5UGFyYW1ldGVycyk7CiB9CiAKIGJvb2wgSlNDcnlwdG9LZXlTZXJpYWxp
emF0aW9uSldLOjpyZWNvbmNpbGVBbGdvcml0aG0oc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29y
aXRobT4mIHN1Z2dlc3RlZEFsZ29yaXRobSwgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnM+JiBzdWdnZXN0ZWRQYXJhbWV0ZXJzKSBjb25zdApAQCAtMjIwLDggKzIyMCw4
IEBAIGJvb2wgSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjpyZWNvbmNpbGVBbGdvcml0aG0o
c3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yCiAgICAgfQogCiAgICAgaWYgKCFzdWdnZXN0ZWRB
bGdvcml0aG0pIHsKLSAgICAgICAgc3VnZ2VzdGVkQWxnb3JpdGhtID0gc3RkOjptb3ZlKGFsZ29y
aXRobSk7Ci0gICAgICAgIHN1Z2dlc3RlZFBhcmFtZXRlcnMgPSAgc3RkOjptb3ZlKHBhcmFtZXRl
cnMpOworICAgICAgICBzdWdnZXN0ZWRBbGdvcml0aG0gPSBXVEY6Om1vdmUoYWxnb3JpdGhtKTsK
KyAgICAgICAgc3VnZ2VzdGVkUGFyYW1ldGVycyA9ICBXVEY6Om1vdmUocGFyYW1ldGVycyk7CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCmluZGV4IDFiNmFlN2QuLjJjZGUxMmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAg
LTU4NCw3ICs1ODQsNyBAQCBKU1ZhbHVlIEpTRE9NV2luZG93OjpzZXRUaW1lb3V0KEV4ZWNTdGF0
ZSogZXhlYykKICAgICBpbnQgZGVsYXkgPSBleGVjLT5hcmd1bWVudCgxKS50b0ludDMyKGV4ZWMp
OwogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaW50IHJlc3VsdCA9IGltcGwoKS5z
ZXRUaW1lb3V0KHN0ZDo6bW92ZShhY3Rpb24pLCBkZWxheSwgZWMpOworICAgIGludCByZXN1bHQg
PSBpbXBsKCkuc2V0VGltZW91dChXVEY6Om1vdmUoYWN0aW9uKSwgZGVsYXksIGVjKTsKICAgICBz
ZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwogCiAgICAgcmV0dXJuIGpzTnVtYmVyKHJlc3VsdCk7
CkBAIC02MDIsNyArNjAyLDcgQEAgSlNWYWx1ZSBKU0RPTVdpbmRvdzo6c2V0SW50ZXJ2YWwoRXhl
Y1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4ganNOdW1iZXIoMCk7CiAKICAgICBFeGNlcHRp
b25Db2RlIGVjID0gMDsKLSAgICBpbnQgcmVzdWx0ID0gaW1wbCgpLnNldEludGVydmFsKHN0ZDo6
bW92ZShhY3Rpb24pLCBkZWxheSwgZWMpOworICAgIGludCByZXN1bHQgPSBpbXBsKCkuc2V0SW50
ZXJ2YWwoV1RGOjptb3ZlKGFjdGlvbiksIGRlbGF5LCBlYyk7CiAgICAgc2V0RE9NRXhjZXB0aW9u
KGV4ZWMsIGVjKTsKIAogICAgIHJldHVybiBqc051bWJlcihyZXN1bHQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCmluZGV4IGVh
OWM0NWYuLmJhOWUzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U01lc3NhZ2VFdmVudEN1c3RvbS5jcHAKQEAgLTExMCw3ICsxMTAsNyBAQCBzdGF0aWMgSlNDOjpK
U1ZhbHVlIGhhbmRsZUluaXRNZXNzYWdlRXZlbnQoSlNNZXNzYWdlRXZlbnQqIGpzRXZlbnQsIEpT
Qzo6RXhlY1N0YQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAogICAgIE1lc3NhZ2VF
dmVudCYgZXZlbnQgPSBqc0V2ZW50LT5pbXBsKCk7Ci0gICAgZXZlbnQuaW5pdE1lc3NhZ2VFdmVu
dCh0eXBlQXJnLCBjYW5CdWJibGVBcmcsIGNhbmNlbGFibGVBcmcsIGRhdGFBcmcsIG9yaWdpbkFy
ZywgbGFzdEV2ZW50SWRBcmcsIHNvdXJjZUFyZywgc3RkOjptb3ZlKG1lc3NhZ2VQb3J0cykpOwor
ICAgIGV2ZW50LmluaXRNZXNzYWdlRXZlbnQodHlwZUFyZywgY2FuQnViYmxlQXJnLCBjYW5jZWxh
YmxlQXJnLCBkYXRhQXJnLCBvcmlnaW5BcmcsIGxhc3RFdmVudElkQXJnLCBzb3VyY2VBcmcsIFdU
Rjo6bW92ZShtZXNzYWdlUG9ydHMpKTsKICAgICBqc0V2ZW50LT5tX2RhdGEuc2V0KGV4ZWMtPnZt
KCksIGpzRXZlbnQsIGRhdGFBcmcuanNWYWx1ZSgpKTsKICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3VidGxlQ3J5
cHRvQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRv
Q3VzdG9tLmNwcAppbmRleCBjMTViY2NiLi5mNDA1YTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwCkBAIC0xNzEsNyArMTcx
LDcgQEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6ZW5jcnlwdChFeGVjU3RhdGUqIGV4ZWMpCiAg
ICAgfTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGFsZ29yaXRobS0+ZW5jcnlw
dCgqcGFyYW1ldGVycywgKmtleSwgZGF0YSwgc3RkOjptb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIHN0
ZDo6bW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CisgICAgYWxnb3JpdGhtLT5lbmNyeXB0KCpw
YXJhbWV0ZXJzLCAqa2V5LCBkYXRhLCBXVEY6Om1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgV1RGOjpt
b3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKICAgICBpZiAoZWMpIHsKICAgICAgICAgc2V0RE9N
RXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC0y
MjIsNyArMjIyLDcgQEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6ZGVjcnlwdChFeGVjU3RhdGUq
IGV4ZWMpCiAgICAgfTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGFsZ29yaXRo
bS0+ZGVjcnlwdCgqcGFyYW1ldGVycywgKmtleSwgZGF0YSwgc3RkOjptb3ZlKHN1Y2Nlc3NDYWxs
YmFjayksIHN0ZDo6bW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CisgICAgYWxnb3JpdGhtLT5k
ZWNyeXB0KCpwYXJhbWV0ZXJzLCAqa2V5LCBkYXRhLCBXVEY6Om1vdmUoc3VjY2Vzc0NhbGxiYWNr
KSwgV1RGOjptb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKICAgICBpZiAoZWMpIHsKICAgICAg
ICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7CkBAIC0yNzMsNyArMjczLDcgQEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6c2lnbihFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgfTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGFs
Z29yaXRobS0+c2lnbigqcGFyYW1ldGVycywgKmtleSwgZGF0YSwgc3RkOjptb3ZlKHN1Y2Nlc3ND
YWxsYmFjayksIHN0ZDo6bW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CisgICAgYWxnb3JpdGht
LT5zaWduKCpwYXJhbWV0ZXJzLCAqa2V5LCBkYXRhLCBXVEY6Om1vdmUoc3VjY2Vzc0NhbGxiYWNr
KSwgV1RGOjptb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKICAgICBpZiAoZWMpIHsKICAgICAg
ICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7CkBAIC0zMzAsNyArMzMwLDcgQEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6dmVyaWZ5KEV4
ZWNTdGF0ZSogZXhlYykKICAgICB9OwogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAg
YWxnb3JpdGhtLT52ZXJpZnkoKnBhcmFtZXRlcnMsICprZXksIHNpZ25hdHVyZSwgZGF0YSwgc3Rk
Ojptb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIHN0ZDo6bW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7
CisgICAgYWxnb3JpdGhtLT52ZXJpZnkoKnBhcmFtZXRlcnMsICprZXksIHNpZ25hdHVyZSwgZGF0
YSwgV1RGOjptb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURjo6bW92ZShmYWlsdXJlQ2FsbGJhY2sp
LCBlYyk7CiAgICAgaWYgKGVjKSB7CiAgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7
CiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpAQCAtMzcxLDcgKzM3MSw3IEBAIEpTVmFs
dWUgSlNTdWJ0bGVDcnlwdG86OmRpZ2VzdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgfTsKIAogICAg
IEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGFsZ29yaXRobS0+ZGlnZXN0KCpwYXJhbWV0ZXJz
LCBkYXRhLCBzdGQ6Om1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgc3RkOjptb3ZlKGZhaWx1cmVDYWxs
YmFjayksIGVjKTsKKyAgICBhbGdvcml0aG0tPmRpZ2VzdCgqcGFyYW1ldGVycywgZGF0YSwgV1RG
Ojptb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURjo6bW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7
CiAgICAgaWYgKGVjKSB7CiAgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAgICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpAQCAtNDI2LDcgKzQyNiw3IEBAIEpTVmFsdWUgSlNT
dWJ0bGVDcnlwdG86OmdlbmVyYXRlS2V5KEV4ZWNTdGF0ZSogZXhlYykKICAgICB9OwogCiAgICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgYWxnb3JpdGhtLT5nZW5lcmF0ZUtleSgqcGFyYW1l
dGVycywgZXh0cmFjdGFibGUsIGtleVVzYWdlcywgc3RkOjptb3ZlKHN1Y2Nlc3NDYWxsYmFjayks
IHN0ZDo6bW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CisgICAgYWxnb3JpdGhtLT5nZW5lcmF0
ZUtleSgqcGFyYW1ldGVycywgZXh0cmFjdGFibGUsIGtleVVzYWdlcywgV1RGOjptb3ZlKHN1Y2Nl
c3NDYWxsYmFjayksIFdURjo6bW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CiAgICAgaWYgKGVj
KSB7CiAgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAgICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOwpAQCAtNDkwLDcgKzQ5MCw3IEBAIHN0YXRpYyB2b2lkIGltcG9ydEtleShF
eGVjU3RhdGUqIGV4ZWMsIENyeXB0b0tleUZvcm1hdCBrZXlGb3JtYXQsIENyeXB0b09wZXJhdGlv
CiAgICAgICAgIHJldHVybjsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGFsZ29y
aXRobS0+aW1wb3J0S2V5KCpwYXJhbWV0ZXJzLCAqa2V5RGF0YSwgZXh0cmFjdGFibGUsIGtleVVz
YWdlcywgc3RkOjptb3ZlKGNhbGxiYWNrKSwgc3RkOjptb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVj
KTsKKyAgICBhbGdvcml0aG0tPmltcG9ydEtleSgqcGFyYW1ldGVycywgKmtleURhdGEsIGV4dHJh
Y3RhYmxlLCBrZXlVc2FnZXMsIFdURjo6bW92ZShjYWxsYmFjayksIFdURjo6bW92ZShmYWlsdXJl
Q2FsbGJhY2spLCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICBzZXRET01FeGNlcHRpb24oZXhl
YywgZWMpOwogfQpAQCAtNTUwLDcgKzU1MCw3IEBAIEpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86Omlt
cG9ydEtleShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIp
OwogICAgIH07CiAKLSAgICBXZWJDb3JlOjppbXBvcnRLZXkoZXhlYywga2V5Rm9ybWF0LCBkYXRh
LCBhbGdvcml0aG0ucmVsZWFzZSgpLCBwYXJhbWV0ZXJzLnJlbGVhc2UoKSwgZXh0cmFjdGFibGUs
IGtleVVzYWdlcywgc3RkOjptb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIHN0ZDo6bW92ZShmYWlsdXJl
Q2FsbGJhY2spKTsKKyAgICBXZWJDb3JlOjppbXBvcnRLZXkoZXhlYywga2V5Rm9ybWF0LCBkYXRh
LCBhbGdvcml0aG0ucmVsZWFzZSgpLCBwYXJhbWV0ZXJzLnJlbGVhc2UoKSwgZXh0cmFjdGFibGUs
IGtleVVzYWdlcywgV1RGOjptb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURjo6bW92ZShmYWlsdXJl
Q2FsbGJhY2spKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwogCkBAIC02MTIsNyArNjEyLDcgQEAgSlNWYWx1ZSBKU1N1YnRsZUNy
eXB0bzo6ZXhwb3J0S2V5KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgd3JhcHBlci5yZWplY3Qo
bnVsbHB0cik7CiAgICAgfTsKIAotICAgIFdlYkNvcmU6OmV4cG9ydEtleShleGVjLCBrZXlGb3Jt
YXQsICprZXksIHN0ZDo6bW92ZShzdWNjZXNzQ2FsbGJhY2spLCBzdGQ6Om1vdmUoZmFpbHVyZUNh
bGxiYWNrKSk7CisgICAgV2ViQ29yZTo6ZXhwb3J0S2V5KGV4ZWMsIGtleUZvcm1hdCwgKmtleSwg
V1RGOjptb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURjo6bW92ZShmYWlsdXJlQ2FsbGJhY2spKTsK
ICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOwogCkBAIC02NzMsNyArNjczLDcgQEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6d3JhcEtl
eShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICB3cmFwcGVyLnJlamVjdChudWxscHRyKTsK
ICAgICAgICAgfTsKICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAgIGFsZ29y
aXRobVB0ci0+ZW5jcnlwdEZvcldyYXBLZXkoKnBhcmFtZXRlcnNQdHIsICp3cmFwcGluZ0tleSwg
c3RkOjptYWtlX3BhaXIoZXhwb3J0ZWRLZXlEYXRhLmRhdGEoKSwgZXhwb3J0ZWRLZXlEYXRhLnNp
emUoKSksIHN0ZDo6bW92ZShlbmNyeXB0U3VjY2Vzc0NhbGxiYWNrKSwgc3RkOjptb3ZlKGVuY3J5
cHRGYWlsdXJlQ2FsbGJhY2spLCBlYyk7CisgICAgICAgIGFsZ29yaXRobVB0ci0+ZW5jcnlwdEZv
cldyYXBLZXkoKnBhcmFtZXRlcnNQdHIsICp3cmFwcGluZ0tleSwgc3RkOjptYWtlX3BhaXIoZXhw
b3J0ZWRLZXlEYXRhLmRhdGEoKSwgZXhwb3J0ZWRLZXlEYXRhLnNpemUoKSksIFdURjo6bW92ZShl
bmNyeXB0U3VjY2Vzc0NhbGxiYWNrKSwgV1RGOjptb3ZlKGVuY3J5cHRGYWlsdXJlQ2FsbGJhY2sp
LCBlYyk7CiAgICAgICAgIGlmIChlYykgewogICAgICAgICAgICAgLy8gRklYTUU6IFJlcG9ydCBm
YWlsdXJlIGRldGFpbHMgdG8gY29uc29sZSwgYW5kIHBvc3NpYmx5IHRvIGNhbGxpbmcgc2NyaXB0
IG9uY2UgdGhlcmUgaXMgYSBzdGFuZGFyZGl6ZWQgd2F5IHRvIHBhc3MgZXJyb3JzIHRvIFdlYkNy
eXB0byBwcm9taXNlIHJlamVjdCBmdW5jdGlvbnMuCiAgICAgICAgICAgICBlbmNyeXB0RmFpbHVy
ZUNhbGxiYWNrKCk7CkBAIC02ODcsNyArNjg3LDcgQEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6
d3JhcEtleShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgfTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMg
PSAwOwotICAgIFdlYkNvcmU6OmV4cG9ydEtleShleGVjLCBrZXlGb3JtYXQsICprZXksIHN0ZDo6
bW92ZShleHBvcnRTdWNjZXNzQ2FsbGJhY2spLCBzdGQ6Om1vdmUoZXhwb3J0RmFpbHVyZUNhbGxi
YWNrKSk7CisgICAgV2ViQ29yZTo6ZXhwb3J0S2V5KGV4ZWMsIGtleUZvcm1hdCwgKmtleSwgV1RG
Ojptb3ZlKGV4cG9ydFN1Y2Nlc3NDYWxsYmFjayksIFdURjo6bW92ZShleHBvcnRGYWlsdXJlQ2Fs
bGJhY2spKTsKICAgICBpZiAoZWMpIHsKICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVj
KTsKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC03ODAsNyArNzgwLDcgQEAgSlNW
YWx1ZSBKU1N1YnRsZUNyeXB0bzo6dW53cmFwS2V5KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAg
ICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIpOwogICAgICAgICB9OwogICAgICAgICBFeGVjU3Rh
dGUqIGV4ZWMgPSBkb21HbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKLSAgICAgICAgV2ViQ29y
ZTo6aW1wb3J0S2V5KGV4ZWMsIGtleUZvcm1hdCwgc3RkOjptYWtlX3BhaXIocmVzdWx0LmRhdGEo
KSwgcmVzdWx0LnNpemUoKSksIHVud3JhcHBlZEtleUFsZ29yaXRobVB0ciwgdW53cmFwcGVkS2V5
QWxnb3JpdGhtUGFyYW1ldGVyc1B0ciwgZXh0cmFjdGFibGUsIGtleVVzYWdlcywgc3RkOjptb3Zl
KGltcG9ydFN1Y2Nlc3NDYWxsYmFjayksIHN0ZDo6bW92ZShpbXBvcnRGYWlsdXJlQ2FsbGJhY2sp
KTsKKyAgICAgICAgV2ViQ29yZTo6aW1wb3J0S2V5KGV4ZWMsIGtleUZvcm1hdCwgc3RkOjptYWtl
X3BhaXIocmVzdWx0LmRhdGEoKSwgcmVzdWx0LnNpemUoKSksIHVud3JhcHBlZEtleUFsZ29yaXRo
bVB0ciwgdW53cmFwcGVkS2V5QWxnb3JpdGhtUGFyYW1ldGVyc1B0ciwgZXh0cmFjdGFibGUsIGtl
eVVzYWdlcywgV1RGOjptb3ZlKGltcG9ydFN1Y2Nlc3NDYWxsYmFjayksIFdURjo6bW92ZShpbXBv
cnRGYWlsdXJlQ2FsbGJhY2spKTsKICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSB7
CiAgICAgICAgICAgICAvLyBGSVhNRTogUmVwb3J0IGV4Y2VwdGlvbiBkZXRhaWxzIHRvIGNvbnNv
bGUsIGFuZCBwb3NzaWJseSB0byBjYWxsaW5nIHNjcmlwdCBvbmNlIHRoZXJlIGlzIGEgc3RhbmRh
cmRpemVkIHdheSB0byBwYXNzIGVycm9ycyB0byBXZWJDcnlwdG8gcHJvbWlzZSByZWplY3QgZnVu
Y3Rpb25zLgogICAgICAgICAgICAgZXhlYy0+Y2xlYXJFeGNlcHRpb24oKTsKQEAgLTc5NSw3ICs3
OTUsNyBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjp1bndyYXBLZXkoRXhlY1N0YXRlKiBleGVj
KQogICAgIH07CiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICB1bndyYXBBbGdvcml0
aG0tPmRlY3J5cHRGb3JVbndyYXBLZXkoKnVud3JhcEFsZ29yaXRobVBhcmFtZXRlcnMsICp1bndy
YXBwaW5nS2V5LCB3cmFwcGVkS2V5RGF0YSwgc3RkOjptb3ZlKGRlY3J5cHRTdWNjZXNzQ2FsbGJh
Y2spLCBzdGQ6Om1vdmUoZGVjcnlwdEZhaWx1cmVDYWxsYmFjayksIGVjKTsKKyAgICB1bndyYXBB
bGdvcml0aG0tPmRlY3J5cHRGb3JVbndyYXBLZXkoKnVud3JhcEFsZ29yaXRobVBhcmFtZXRlcnMs
ICp1bndyYXBwaW5nS2V5LCB3cmFwcGVkS2V5RGF0YSwgV1RGOjptb3ZlKGRlY3J5cHRTdWNjZXNz
Q2FsbGJhY2spLCBXVEY6Om1vdmUoZGVjcnlwdEZhaWx1cmVDYWxsYmFjayksIGVjKTsKICAgICBp
ZiAoZWMpIHsKICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAgICAgICAgcmV0
dXJuIGpzVW5kZWZpbmVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwCmluZGV4IGE2ZGFjMjYuLjg1N2Q0ODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2Nv
cGVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xv
YmFsU2NvcGVDdXN0b20uY3BwCkBAIC05Myw3ICs5Myw3IEBAIEpTVmFsdWUgSlNXb3JrZXJHbG9i
YWxTY29wZTo6c2V0VGltZW91dChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKCFhY3Rpb24pCiAg
ICAgICAgIHJldHVybiBqc051bWJlcigwKTsKICAgICBpbnQgZGVsYXkgPSBleGVjLT5hcmd1bWVu
dCgxKS50b0ludDMyKGV4ZWMpOwotICAgIHJldHVybiBqc051bWJlcihpbXBsKCkuc2V0VGltZW91
dChzdGQ6Om1vdmUoYWN0aW9uKSwgZGVsYXkpKTsKKyAgICByZXR1cm4ganNOdW1iZXIoaW1wbCgp
LnNldFRpbWVvdXQoV1RGOjptb3ZlKGFjdGlvbiksIGRlbGF5KSk7CiB9CiAKIEpTVmFsdWUgSlNX
b3JrZXJHbG9iYWxTY29wZTo6c2V0SW50ZXJ2YWwoRXhlY1N0YXRlKiBleGVjKQpAQCAtMTA0LDcg
KzEwNCw3IEBAIEpTVmFsdWUgSlNXb3JrZXJHbG9iYWxTY29wZTo6c2V0SW50ZXJ2YWwoRXhlY1N0
YXRlKiBleGVjKQogICAgIGlmICghYWN0aW9uKQogICAgICAgICByZXR1cm4ganNOdW1iZXIoMCk7
CiAgICAgaW50IGRlbGF5ID0gZXhlYy0+YXJndW1lbnQoMSkudG9JbnQzMihleGVjKTsKLSAgICBy
ZXR1cm4ganNOdW1iZXIoaW1wbCgpLnNldEludGVydmFsKHN0ZDo6bW92ZShhY3Rpb24pLCBkZWxh
eSkpOworICAgIHJldHVybiBqc051bWJlcihpbXBsKCkuc2V0SW50ZXJ2YWwoV1RGOjptb3ZlKGFj
dGlvbiksIGRlbGF5KSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4
IDdhYzBmMWEuLjI4ZjIyZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMTk5MSw3ICsxOTkxLDcgQEAgcHJpdmF0
ZToKICAgICAgICAgICAgIGF1dG8ga2V5ID0gQ3J5cHRvS2V5UlNBOjpjcmVhdGUoYWxnb3JpdGht
LCAqa2V5RGF0YSwgZXh0cmFjdGFibGUsIHVzYWdlcyk7CiAgICAgICAgICAgICBpZiAoaXNSZXN0
cmljdGVkVG9IYXNoKQogICAgICAgICAgICAgICAgIGtleS0+cmVzdHJpY3RUb0hhc2goaGFzaCk7
Ci0gICAgICAgICAgICByZXN1bHQgPSBzdGQ6Om1vdmUoa2V5KTsKKyAgICAgICAgICAgIHJlc3Vs
dCA9IFdURjo6bW92ZShrZXkpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0K
IApAQCAtMjAwOCw3ICsyMDA4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGF1dG8ga2V5ID0g
Q3J5cHRvS2V5UlNBOjpjcmVhdGUoYWxnb3JpdGhtLCAqa2V5RGF0YSwgZXh0cmFjdGFibGUsIHVz
YWdlcyk7CiAgICAgICAgICAgICBpZiAoaXNSZXN0cmljdGVkVG9IYXNoKQogICAgICAgICAgICAg
ICAgIGtleS0+cmVzdHJpY3RUb0hhc2goaGFzaCk7Ci0gICAgICAgICAgICByZXN1bHQgPSBzdGQ6
Om1vdmUoa2V5KTsKKyAgICAgICAgICAgIHJlc3VsdCA9IFdURjo6bW92ZShrZXkpOwogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIApAQCAtMjA0Miw3ICsyMDQyLDcgQEAgcHJp
dmF0ZToKICAgICAgICAgYXV0byBrZXkgPSBDcnlwdG9LZXlSU0E6OmNyZWF0ZShhbGdvcml0aG0s
ICprZXlEYXRhLCBleHRyYWN0YWJsZSwgdXNhZ2VzKTsKICAgICAgICAgaWYgKGlzUmVzdHJpY3Rl
ZFRvSGFzaCkKICAgICAgICAgICAgIGtleS0+cmVzdHJpY3RUb0hhc2goaGFzaCk7Ci0gICAgICAg
IHJlc3VsdCA9IHN0ZDo6bW92ZShrZXkpOworICAgICAgICByZXN1bHQgPSBXVEY6Om1vdmUoa2V5
KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0yMTk0LDExICsyMTk0LDExIEBA
IHByaXZhdGU6CiAgICAgICAgICAgICAgICAgaWYgKCFyZWFkRmlsZShmaWxlKSkKICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKICAgICAgICAgICAgICAgICBpZiAobV9pc0RP
TUdsb2JhbE9iamVjdCkKLSAgICAgICAgICAgICAgICAgICAgZmlsZXMuYXBwZW5kKHN0ZDo6bW92
ZShmaWxlKSk7CisgICAgICAgICAgICAgICAgICAgIGZpbGVzLmFwcGVuZChXVEY6Om1vdmUoZmls
ZSkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKCFtX2lzRE9NR2xvYmFsT2JqZWN0
KQogICAgICAgICAgICAgICAgIHJldHVybiBqc051bGwoKTsKLSAgICAgICAgICAgIHJldHVybiBn
ZXRKU1ZhbHVlKEZpbGVMaXN0OjpjcmVhdGUoc3RkOjptb3ZlKGZpbGVzKSkuZ2V0KCkpOworICAg
ICAgICAgICAgcmV0dXJuIGdldEpTVmFsdWUoRmlsZUxpc3Q6OmNyZWF0ZShXVEY6Om1vdmUoZmls
ZXMpKS5nZXQoKSk7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBJbWFnZURhdGFUYWc6IHsKICAg
ICAgICAgICAgIGludDMyX3Qgd2lkdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwCmluZGV4IGU3ZDhk
YmEuLmM1MWM2ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwCkBAIC03NCw3ICs3NCw3IEBAIHZv
aWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6ZW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBwbGF0
Zm9ybUVuY3J5cHQoYWVzQ0JDUGFyYW1ldGVycywgdG9DcnlwdG9LZXlBRVMoa2V5KSwgZGF0YSwg
c3RkOjptb3ZlKGNhbGxiYWNrKSwgc3RkOjptb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKKyAg
ICBwbGF0Zm9ybUVuY3J5cHQoYWVzQ0JDUGFyYW1ldGVycywgdG9DcnlwdG9LZXlBRVMoa2V5KSwg
ZGF0YSwgV1RGOjptb3ZlKGNhbGxiYWNrKSwgV1RGOjptb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVj
KTsKIH0KIAogdm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpkZWNyeXB0KGNvbnN0IENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYga2V5LCBj
b25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayBjYWxsYmFjaywg
Vm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC04Niw3
ICs4Niw3IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6ZGVjcnlwdChjb25zdCBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBwbGF0Zm9ybURlY3J5cHQoYWVzQ0JDUGFyYW1ldGVycywgdG9DcnlwdG9LZXlBRVMo
a2V5KSwgZGF0YSwgc3RkOjptb3ZlKGNhbGxiYWNrKSwgc3RkOjptb3ZlKGZhaWx1cmVDYWxsYmFj
ayksIGVjKTsKKyAgICBwbGF0Zm9ybURlY3J5cHQoYWVzQ0JDUGFyYW1ldGVycywgdG9DcnlwdG9L
ZXlBRVMoa2V5KSwgZGF0YSwgV1RGOjptb3ZlKGNhbGxiYWNrKSwgV1RGOjptb3ZlKGZhaWx1cmVD
YWxsYmFjayksIGVjKTsKIH0KIAogdm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpnZW5lcmF0
ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBib29sIGV4
dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZXMsIEtleU9yS2V5UGFpckNhbGxiYWNrIGNh
bGxiYWNrLCBWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bUFFU19LVy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1BRVNfS1cuY3BwCmluZGV4IGMzMzRmYjAuLmMyODkwM2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tX
LmNwcApAQCAtNzEsNyArNzEsNyBAQCB2b2lkIENyeXB0b0FsZ29yaXRobUFFU19LVzo6ZW5jcnlw
dEZvcldyYXBLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBwbGF0Zm9ybUVuY3J5cHQodG9DcnlwdG9LZXlBRVMoa2V5KSwg
ZGF0YSwgc3RkOjptb3ZlKGNhbGxiYWNrKSwgc3RkOjptb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVj
KTsKKyAgICBwbGF0Zm9ybUVuY3J5cHQodG9DcnlwdG9LZXlBRVMoa2V5KSwgZGF0YSwgV1RGOjpt
b3ZlKGNhbGxiYWNrKSwgV1RGOjptb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKIH0KIAogdm9p
ZCBDcnlwdG9BbGdvcml0aG1BRVNfS1c6OmRlY3J5cHRGb3JVbndyYXBLZXkoY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9P
cGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayBjYWxsYmFjaywgVm9pZENhbGxiYWNr
IGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC04MSw3ICs4MSw3IEBAIHZv
aWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjpkZWNyeXB0Rm9yVW53cmFwS2V5KGNvbnN0IENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnMmCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBwbGF0
Zm9ybURlY3J5cHQodG9DcnlwdG9LZXlBRVMoa2V5KSwgZGF0YSwgc3RkOjptb3ZlKGNhbGxiYWNr
KSwgc3RkOjptb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKKyAgICBwbGF0Zm9ybURlY3J5cHQo
dG9DcnlwdG9LZXlBRVMoa2V5KSwgZGF0YSwgV1RGOjptb3ZlKGNhbGxiYWNrKSwgV1RGOjptb3Zl
KGZhaWx1cmVDYWxsYmFjayksIGVjKTsKIH0KIAogdm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfS1c6
OmdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMs
IGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlcywgS2V5T3JLZXlQYWlyQ2Fs
bGJhY2sgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNv
ZGUmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtSE1BQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1ITUFDLmNwcAppbmRleCA5YTgyYmRmLi40NzY3ZDJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFD
LmNwcApAQCAtNzcsNyArNzcsNyBAQCB2b2lkIENyeXB0b0FsZ29yaXRobUhNQUM6OnNpZ24oY29u
c3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29ucwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgcGxhdGZvcm1TaWduKGhtYWNQYXJhbWV0ZXJzLCB0b0NyeXB0
b0tleUhNQUMoa2V5KSwgZGF0YSwgc3RkOjptb3ZlKGNhbGxiYWNrKSwgc3RkOjptb3ZlKGZhaWx1
cmVDYWxsYmFjayksIGVjKTsKKyAgICBwbGF0Zm9ybVNpZ24oaG1hY1BhcmFtZXRlcnMsIHRvQ3J5
cHRvS2V5SE1BQyhrZXkpLCBkYXRhLCBXVEY6Om1vdmUoY2FsbGJhY2spLCBXVEY6Om1vdmUoZmFp
bHVyZUNhbGxiYWNrKSwgZWMpOwogfQogCiB2b2lkIENyeXB0b0FsZ29yaXRobUhNQUM6OnZlcmlm
eShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlw
dG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZXhwZWN0ZWRTaWduYXR1cmUs
IGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIEJvb2xDYWxsYmFjayBjYWxsYmFjaywg
Vm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC04OSw3
ICs4OSw3IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6dmVyaWZ5KGNvbnN0IENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBwbGF0Zm9ybVZlcmlmeShobWFjUGFyYW1ldGVycywgdG9DcnlwdG9LZXlITUFDKGtl
eSksIGV4cGVjdGVkU2lnbmF0dXJlLCBkYXRhLCBzdGQ6Om1vdmUoY2FsbGJhY2spLCBzdGQ6Om1v
dmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOworICAgIHBsYXRmb3JtVmVyaWZ5KGhtYWNQYXJhbWV0
ZXJzLCB0b0NyeXB0b0tleUhNQUMoa2V5KSwgZXhwZWN0ZWRTaWduYXR1cmUsIGRhdGEsIFdURjo6
bW92ZShjYWxsYmFjayksIFdURjo6bW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CiB9CiAKIHZv
aWQgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVycyYgcGFyYW1ldGVycywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2Ug
dXNhZ2VzLCBLZXlPcktleVBhaXJDYWxsYmFjayBjYWxsYmFjaywgVm9pZENhbGxiYWNrIGZhaWx1
cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1Mx
X3YxXzUuY3BwCmluZGV4IDViMGM2MzIuLjkwNDQzMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJT
QUVTX1BLQ1MxX3YxXzUuY3BwCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGht
UlNBRVNfUEtDUzFfdjFfNTo6ZW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
JiwKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHBsYXRmb3JtRW5jcnlwdCh0b0NyeXB0
b0tleVJTQShrZXkpLCBkYXRhLCBzdGQ6Om1vdmUoY2FsbGJhY2spLCBzdGQ6Om1vdmUoZmFpbHVy
ZUNhbGxiYWNrKSwgZWMpOworICAgIHBsYXRmb3JtRW5jcnlwdCh0b0NyeXB0b0tleVJTQShrZXkp
LCBkYXRhLCBXVEY6Om1vdmUoY2FsbGJhY2spLCBXVEY6Om1vdmUoZmFpbHVyZUNhbGxiYWNrKSwg
ZWMpOwogfQogCiB2b2lkIENyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6OmRlY3J5cHQo
Y29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYga2V5LCBj
b25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayBjYWxsYmFjaywg
Vm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC04MSw3
ICs4MSw3IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNTo6ZGVjcnlwdChj
b25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIHBsYXRmb3JtRGVjcnlwdCh0b0NyeXB0b0tleVJTQShrZXkpLCBkYXRhLCBzdGQ6Om1v
dmUoY2FsbGJhY2spLCBzdGQ6Om1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOworICAgIHBsYXRm
b3JtRGVjcnlwdCh0b0NyeXB0b0tleVJTQShrZXkpLCBkYXRhLCBXVEY6Om1vdmUoY2FsbGJhY2sp
LCBXVEY6Om1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOwogfQogCiB2b2lkIENyeXB0b0FsZ29y
aXRobVJTQUVTX1BLQ1MxX3YxXzU6OmdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVz
YWdlcywgS2V5T3JLZXlQYWlyQ2FsbGJhY2sgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayBmYWlsdXJl
Q2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQpAQCAtOTIsNyArOTIsNyBAQCB2b2lkIENyeXB0b0Fs
Z29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6OmdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcgogICAgICAgICBjYWxsYmFjayhudWxscHRyLCAmcGFpcik7CiAgICAgfTsKIAot
ICAgIENyeXB0b0tleVJTQTo6Z2VuZXJhdGVQYWlyKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6
OlJTQUVTX1BLQ1MxX3YxXzUsIHJzYVBhcmFtZXRlcnMubW9kdWx1c0xlbmd0aCwgcnNhUGFyYW1l
dGVycy5wdWJsaWNFeHBvbmVudCwgZXh0cmFjdGFibGUsIHVzYWdlcywgc3RkOjptb3ZlKGtleVBh
aXJDYWxsYmFjayksIHN0ZDo6bW92ZShmYWlsdXJlQ2FsbGJhY2spKTsKKyAgICBDcnlwdG9LZXlS
U0E6OmdlbmVyYXRlUGFpcihDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FFU19QS0NTMV92
MV81LCByc2FQYXJhbWV0ZXJzLm1vZHVsdXNMZW5ndGgsIHJzYVBhcmFtZXRlcnMucHVibGljRXhw
b25lbnQsIGV4dHJhY3RhYmxlLCB1c2FnZXMsIFdURjo6bW92ZShrZXlQYWlyQ2FsbGJhY2spLCBX
VEY6Om1vdmUoZmFpbHVyZUNhbGxiYWNrKSk7CiB9CiAKIHZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNB
RVNfUEtDUzFfdjFfNTo6aW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMm
LCBjb25zdCBDcnlwdG9LZXlEYXRhJiBrZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9L
ZXlVc2FnZSB1c2FnZSwgS2V5Q2FsbGJhY2sgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayBmYWlsdXJl
Q2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1Mx
X3YxXzUuY3BwCmluZGV4IDllNDcxMGYuLjRmMGYzY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1S
U0FTU0FfUEtDUzFfdjFfNS5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBDcnlwdG9BbGdvcml0
aG1SU0FTU0FfUEtDUzFfdjFfNTo6c2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
JiBwYXIKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHBsYXRmb3JtU2lnbihyc2FTU0FQ
YXJhbWV0ZXJzLCB0b0NyeXB0b0tleVJTQShrZXkpLCBkYXRhLCBzdGQ6Om1vdmUoY2FsbGJhY2sp
LCBzdGQ6Om1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOworICAgIHBsYXRmb3JtU2lnbihyc2FT
U0FQYXJhbWV0ZXJzLCB0b0NyeXB0b0tleVJTQShrZXkpLCBkYXRhLCBXVEY6Om1vdmUoY2FsbGJh
Y2spLCBXVEY6Om1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOwogfQogCiB2b2lkIENyeXB0b0Fs
Z29yaXRobVJTQVNTQV9QS0NTMV92MV81Ojp2ZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IENyeXB0b09w
ZXJhdGlvbkRhdGEmIHNpZ25hdHVyZSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwg
Qm9vbENhbGxiYWNrIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNl
cHRpb25Db2RlJiBlYykKQEAgLTkxLDcgKzkxLDcgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FT
U0FfUEtDUzFfdjFfNTo6dmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHAK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHBsYXRmb3JtVmVyaWZ5KHJzYVNTQVBhcmFt
ZXRlcnMsIHRvQ3J5cHRvS2V5UlNBKGtleSksIHNpZ25hdHVyZSwgZGF0YSwgc3RkOjptb3ZlKGNh
bGxiYWNrKSwgc3RkOjptb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKKyAgICBwbGF0Zm9ybVZl
cmlmeShyc2FTU0FQYXJhbWV0ZXJzLCB0b0NyeXB0b0tleVJTQShrZXkpLCBzaWduYXR1cmUsIGRh
dGEsIFdURjo6bW92ZShjYWxsYmFjayksIFdURjo6bW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7
CiB9CiAKIHZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OmdlbmVyYXRlS2V5
KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGJvb2wgZXh0cmFj
dGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlcywgS2V5T3JLZXlQYWlyQ2FsbGJhY2sgY2FsbGJh
Y2ssIFZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQpAQCAtMTAy
LDcgKzEwMiw3IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OmdlbmVy
YXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlCiAgICAgICAgIGNhbGxiYWNrKG51
bGxwdHIsICZwYWlyKTsKICAgICB9OwogCi0gICAgQ3J5cHRvS2V5UlNBOjpnZW5lcmF0ZVBhaXIo
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBU1NBX1BLQ1MxX3YxXzUsIHJzYVBhcmFtZXRl
cnMubW9kdWx1c0xlbmd0aCwgcnNhUGFyYW1ldGVycy5wdWJsaWNFeHBvbmVudCwgZXh0cmFjdGFi
bGUsIHVzYWdlcywgc3RkOjptb3ZlKGtleVBhaXJDYWxsYmFjayksIHN0ZDo6bW92ZShmYWlsdXJl
Q2FsbGJhY2spKTsKKyAgICBDcnlwdG9LZXlSU0E6OmdlbmVyYXRlUGFpcihDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyOjpSU0FTU0FfUEtDUzFfdjFfNSwgcnNhUGFyYW1ldGVycy5tb2R1bHVzTGVu
Z3RoLCByc2FQYXJhbWV0ZXJzLnB1YmxpY0V4cG9uZW50LCBleHRyYWN0YWJsZSwgdXNhZ2VzLCBX
VEY6Om1vdmUoa2V5UGFpckNhbGxiYWNrKSwgV1RGOjptb3ZlKGZhaWx1cmVDYWxsYmFjaykpOwog
fQogCiB2b2lkIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjppbXBvcnRLZXkoY29u
c3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5
RGF0YSYga2V5RGF0YSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2UsIEtl
eUNhbGxiYWNrIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRp
b25Db2RlJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobVJTQV9PQUVQLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmNwcAppbmRleCBhMTk3NjRhLi5lMmRlYzg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1SU0FfT0FFUC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtUlNBX09BRVAuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgQ3J5cHRvQWxn
b3JpdGhtUlNBX09BRVA6OmVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYg
cGFyYW1ldGVyCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBwbGF0Zm9ybUVuY3J5cHQo
cnNhT0FFUFBhcmFtZXRlcnMsIHRvQ3J5cHRvS2V5UlNBKGtleSksIGRhdGEsIHN0ZDo6bW92ZShj
YWxsYmFjayksIHN0ZDo6bW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CisgICAgcGxhdGZvcm1F
bmNyeXB0KHJzYU9BRVBQYXJhbWV0ZXJzLCB0b0NyeXB0b0tleVJTQShrZXkpLCBkYXRhLCBXVEY6
Om1vdmUoY2FsbGJhY2spLCBXVEY6Om1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOwogfQogCiB2
b2lkIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQOjpkZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlw
dG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayBjYWxsYmFjaywgVm9pZENhbGxi
YWNrIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC05MSw3ICs5MSw3IEBA
IHZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6OmRlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycyYgcGFyYW1ldGVyCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBw
bGF0Zm9ybURlY3J5cHQocnNhT0FFUFBhcmFtZXRlcnMsIHRvQ3J5cHRvS2V5UlNBKGtleSksIGRh
dGEsIHN0ZDo6bW92ZShjYWxsYmFjayksIHN0ZDo6bW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7
CisgICAgcGxhdGZvcm1EZWNyeXB0KHJzYU9BRVBQYXJhbWV0ZXJzLCB0b0NyeXB0b0tleVJTQShr
ZXkpLCBkYXRhLCBXVEY6Om1vdmUoY2FsbGJhY2spLCBXVEY6Om1vdmUoZmFpbHVyZUNhbGxiYWNr
KSwgZWMpOwogfQogCiB2b2lkIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQOjpnZW5lcmF0ZUtleShj
b25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBib29sIGV4dHJhY3Rh
YmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZXMsIEtleU9yS2V5UGFpckNhbGxiYWNrIGNhbGxiYWNr
LCBWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKQEAgLTEwMiw3
ICsxMDIsNyBAQCB2b2lkIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQOjpnZW5lcmF0ZUtleShjb25z
dCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbQogICAgICAgICBjYWxsYmFjayhudWxs
cHRyLCAmcGFpcik7CiAgICAgfTsKIAotICAgIENyeXB0b0tleVJTQTo6Z2VuZXJhdGVQYWlyKENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9PQUVQLCByc2FQYXJhbWV0ZXJzLm1vZHVsdXNM
ZW5ndGgsIHJzYVBhcmFtZXRlcnMucHVibGljRXhwb25lbnQsIGV4dHJhY3RhYmxlLCB1c2FnZXMs
IHN0ZDo6bW92ZShrZXlQYWlyQ2FsbGJhY2spLCBzdGQ6Om1vdmUoZmFpbHVyZUNhbGxiYWNrKSk7
CisgICAgQ3J5cHRvS2V5UlNBOjpnZW5lcmF0ZVBhaXIoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6UlNBX09BRVAsIHJzYVBhcmFtZXRlcnMubW9kdWx1c0xlbmd0aCwgcnNhUGFyYW1ldGVycy5w
dWJsaWNFeHBvbmVudCwgZXh0cmFjdGFibGUsIHVzYWdlcywgV1RGOjptb3ZlKGtleVBhaXJDYWxs
YmFjayksIFdURjo6bW92ZShmYWlsdXJlQ2FsbGJhY2spKTsKIH0KIAogdm9pZCBDcnlwdG9BbGdv
cml0aG1SU0FfT0FFUDo6aW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleURhdGEmIGtleURhdGEsIGJvb2wgZXh0cmFjdGFi
bGUsIENyeXB0b0tleVVzYWdlIHVzYWdlLCBLZXlDYWxsYmFjayBjYWxsYmFjaywgVm9pZENhbGxi
YWNrIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19DQkNNYWMuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDTWFjLmNwcAppbmRleCA0
YjhjZmQ0Li41YWFhNzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0Ny
eXB0b0FsZ29yaXRobUFFU19DQkNNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9t
YWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ01hYy5jcHAKQEAgLTg0LDEyICs4NCwxMiBAQCBzdGF0
aWMgdm9pZCB0cmFuc2Zvcm1BRVNfQ0JDKENDT3BlcmF0aW9uIG9wZXJhdGlvbiwgY29uc3QgQ3J5
cHRvQWxnb3JpdGhtQWVzQ2JjUAogCiB2b2lkIENyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBsYXRm
b3JtRW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMmIHBhcmFtZXRlcnMs
IGNvbnN0IENyeXB0b0tleUFFUyYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRh
LCBWZWN0b3JDYWxsYmFjayBjYWxsYmFjaywgVm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaywg
RXhjZXB0aW9uQ29kZSYpCiB7Ci0gICAgdHJhbnNmb3JtQUVTX0NCQyhrQ0NFbmNyeXB0LCBwYXJh
bWV0ZXJzLCBrZXksIGRhdGEsIHN0ZDo6bW92ZShjYWxsYmFjayksIHN0ZDo6bW92ZShmYWlsdXJl
Q2FsbGJhY2spKTsKKyAgICB0cmFuc2Zvcm1BRVNfQ0JDKGtDQ0VuY3J5cHQsIHBhcmFtZXRlcnMs
IGtleSwgZGF0YSwgV1RGOjptb3ZlKGNhbGxiYWNrKSwgV1RGOjptb3ZlKGZhaWx1cmVDYWxsYmFj
aykpOwogfQogCiB2b2lkIENyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3JtRGVjcnlwdChj
b25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0
b0tleUFFUyYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxs
YmFjayBjYWxsYmFjaywgVm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29k
ZSYpCiB7Ci0gICAgdHJhbnNmb3JtQUVTX0NCQyhrQ0NEZWNyeXB0LCBwYXJhbWV0ZXJzLCBrZXks
IGRhdGEsIHN0ZDo6bW92ZShjYWxsYmFjayksIHN0ZDo6bW92ZShmYWlsdXJlQ2FsbGJhY2spKTsK
KyAgICB0cmFuc2Zvcm1BRVNfQ0JDKGtDQ0RlY3J5cHQsIHBhcmFtZXRlcnMsIGtleSwgZGF0YSwg
V1RGOjptb3ZlKGNhbGxiYWNrKSwgV1RGOjptb3ZlKGZhaWx1cmVDYWxsYmFjaykpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
bWFjL0NyeXB0b0tleVJTQU1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0
b0tleVJTQU1hYy5jcHAKaW5kZXggZDFmMzFiYy4uMjVhMTU2ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9LZXlSU0FNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9tYWMvQ3J5cHRvS2V5UlNBTWFjLmNwcApAQCAtMjUxLDggKzI1MSw4IEBAIHZv
aWQgQ3J5cHRvS2V5UlNBOjpnZW5lcmF0ZVBhaXIoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBh
bGdvcml0aG0sIHVuc2lnbmVkIG1vCiAgICAgfQogCiAgICAgLy8gV2Ugb25seSB1c2UgdGhlIGNh
bGxiYWNrIGZ1bmN0aW9ucyB3aGVuIGJhY2sgb24gdGhlIG1haW4gdGhyZWFkLCBidXQgY2FwdHVy
ZWQgdmFyaWFibGVzIGFyZSBjb3BpZWQgb24gYSBzZWNvbmRhcnkgdGhyZWFkIHRvby4KLSAgICBL
ZXlQYWlyQ2FsbGJhY2sqIGxvY2FsQ2FsbGJhY2sgPSBuZXcgS2V5UGFpckNhbGxiYWNrKHN0ZDo6
bW92ZShjYWxsYmFjaykpOwotICAgIFZvaWRDYWxsYmFjayogbG9jYWxGYWlsdXJlQ2FsbGJhY2sg
PSBuZXcgVm9pZENhbGxiYWNrKHN0ZDo6bW92ZShmYWlsdXJlQ2FsbGJhY2spKTsKKyAgICBLZXlQ
YWlyQ2FsbGJhY2sqIGxvY2FsQ2FsbGJhY2sgPSBuZXcgS2V5UGFpckNhbGxiYWNrKFdURjo6bW92
ZShjYWxsYmFjaykpOworICAgIFZvaWRDYWxsYmFjayogbG9jYWxGYWlsdXJlQ2FsbGJhY2sgPSBu
ZXcgVm9pZENhbGxiYWNrKFdURjo6bW92ZShmYWlsdXJlQ2FsbGJhY2spKTsKIAogICAgIGRpc3Bh
dGNoX2FzeW5jKGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJ
VFlfREVGQVVMVCwgMCksIF57CiAgICAgICAgIENDUlNBQ3J5cHRvclJlZiBjY1B1YmxpY0tleTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcAppbmRleCA2MzVkYTgz
Li4wMGNhMzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FsY3VsYXRpb25W
YWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3Bw
CkBAIC00MjcsNyArNDI3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPENh
bGNFeHByZXNzaW9uTm9kZT4gcmlnaHQobV9yaWdodFNpZGUtPmNyZWF0ZUNhbGNFeHByZXNzaW9u
KGNvbnZlcnNpb25EYXRhKSk7CiAgICAgICAgIGlmICghcmlnaHQpCiAgICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Q2FsY0V4cHJlc3Np
b25CaW5hcnlPcGVyYXRpb24+KHN0ZDo6bW92ZShsZWZ0KSwgc3RkOjptb3ZlKHJpZ2h0KSwgbV9v
cGVyYXRvcik7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPENhbGNFeHByZXNzaW9u
QmluYXJ5T3BlcmF0aW9uPihXVEY6Om1vdmUobGVmdCksIFdURjo6bW92ZShyaWdodCksIG1fb3Bl
cmF0b3IpOwogICAgIH0KIAogICAgIHZpcnR1YWwgZG91YmxlIGRvdWJsZVZhbHVlKCkgY29uc3Qg
b3ZlcnJpZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZh
bHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5oCmluZGV4IGRm
Njg2NzYuLmNlMGNiNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxh
dGlvblZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUu
aApAQCAtMTExLDcgKzExMSw3IEBAIHByaXZhdGU6CiAKIGlubGluZSBDU1NDYWxjVmFsdWU6OkNT
U0NhbGNWYWx1ZShQYXNzUmVmPENTU0NhbGNFeHByZXNzaW9uTm9kZT4gZXhwcmVzc2lvbiwgYm9v
bCBzaG91bGRDbGFtcFRvTm9uTmVnYXRpdmUpCiAgICAgOiBDU1NWYWx1ZShDYWxjdWxhdGlvbkNs
YXNzKQotICAgICwgbV9leHByZXNzaW9uKHN0ZDo6bW92ZShleHByZXNzaW9uKSkKKyAgICAsIG1f
ZXhwcmVzc2lvbihXVEY6Om1vdmUoZXhwcmVzc2lvbikpCiAgICAgLCBtX3Nob3VsZENsYW1wVG9O
b25OZWdhdGl2ZShzaG91bGRDbGFtcFRvTm9uTmVnYXRpdmUpCiB7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGRiYjhk
YjYuLjNmMzhjOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCkBAIC04MzEsNyArODMxLDcgQEAgc3RhdGljIFBhc3NSZWY8Q1NT
VmFsdWU+IGNvbXB1dGVkVHJhbnNmb3JtKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNvbnN0IFJl
bmRlclMKICAgICAvLyBGSVhNRTogTmVlZCB0byBwcmludCBvdXQgaW5kaXZpZHVhbCBmdW5jdGlv
bnMgKGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkyNCkKICAgICBh
dXRvIGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7CiAgICAgbGlz
dC5nZXQoKS5hcHBlbmQobWF0cml4VHJhbnNmb3JtVmFsdWUodHJhbnNmb3JtLCBzdHlsZSkpOwot
ICAgIHJldHVybiBzdGQ6Om1vdmUobGlzdCk7CisgICAgcmV0dXJuIFdURjo6bW92ZShsaXN0KTsK
IH0KIAogc3RhdGljIGlubGluZSBQYXNzUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBhZGp1c3RMZW5n
dGhGb3Jab29tKGRvdWJsZSBsZW5ndGgsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgQWRqdXN0
UGl4ZWxWYWx1ZXNGb3JDb21wdXRlZFN0eWxlIGFkanVzdCkKQEAgLTk1MSw3ICs5NTEsNyBAQCBQ
YXNzUmVmPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvckZpbHRlcihj
b25zdCBSZW5kZXJTdHlsZSogc3R5bAogICAgICAgICBsaXN0LmdldCgpLmFwcGVuZChmaWx0ZXJW
YWx1ZS5yZWxlYXNlKCkpOwogICAgIH0KIAotICAgIHJldHVybiBzdGQ6Om1vdmUobGlzdCk7Cisg
ICAgcmV0dXJuIFdURjo6bW92ZShsaXN0KTsKIH0KICNlbmRpZgogCkBAIC0xMDI1LDcgKzEwMjUs
NyBAQCBzdGF0aWMgUGFzc1JlZjxDU1NWYWx1ZT4gdmFsdWVGb3JHcmlkVHJhY2tMaXN0KEdyaWRU
cmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3RpbwogCiAgICAgLy8gVGhvc2UgYXJlIHRoZSB0cmFp
bGluZyA8aWRlbnQ+KiBhbGxvd2VkIGluIHRoZSBzeW50YXguCiAgICAgYWRkVmFsdWVzRm9yTmFt
ZWRHcmlkTGluZXNBdEluZGV4KG9yZGVyZWROYW1lZEdyaWRMaW5lcywgdHJhY2tTaXplcy5zaXpl
KCksIGxpc3QuZ2V0KCkpOwotICAgIHJldHVybiBzdGQ6Om1vdmUobGlzdCk7CisgICAgcmV0dXJu
IFdURjo6bW92ZShsaXN0KTsKIH0KIAogc3RhdGljIFBhc3NSZWY8Q1NTVmFsdWU+IHZhbHVlRm9y
R3JpZFBvc2l0aW9uKGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24pCkBAIC0xMDQ1LDcgKzEw
NDUsNyBAQCBzdGF0aWMgUGFzc1JlZjxDU1NWYWx1ZT4gdmFsdWVGb3JHcmlkUG9zaXRpb24oY29u
c3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbikKIAogICAgIGlmICghcG9zaXRpb24ubmFtZWRHcmlk
TGluZSgpLmlzTnVsbCgpKQogICAgICAgICBsaXN0LmdldCgpLmFwcGVuZChjc3NWYWx1ZVBvb2wo
KS5jcmVhdGVWYWx1ZShwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCksIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfU1RSSU5HKSk7Ci0gICAgcmV0dXJuIHN0ZDo6bW92ZShsaXN0KTsKKyAgICByZXR1cm4g
V1RGOjptb3ZlKGxpc3QpOwogfQogI2VuZGlmCiAKQEAgLTEzNTgsNyArMTM1OCw3IEBAIHN0YXRp
YyBQYXNzUmVmPENTU1ZhbHVlPiBmaWxsUmVwZWF0VG9DU1NWYWx1ZShFRmlsbFJlcGVhdCB4UmVw
ZWF0LCBFRmlsbFJlcGVhdCB5CiAgICAgYXV0byBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVT
cGFjZVNlcGFyYXRlZCgpOwogICAgIGxpc3QuZ2V0KCkuYXBwZW5kKGNzc1ZhbHVlUG9vbCgpLmNy
ZWF0ZVZhbHVlKHhSZXBlYXQpKTsKICAgICBsaXN0LmdldCgpLmFwcGVuZChjc3NWYWx1ZVBvb2wo
KS5jcmVhdGVWYWx1ZSh5UmVwZWF0KSk7Ci0gICAgcmV0dXJuIHN0ZDo6bW92ZShsaXN0KTsKKyAg
ICByZXR1cm4gV1RGOjptb3ZlKGxpc3QpOwogfQogCiBzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1
ZT4gZmlsbFNvdXJjZVR5cGVUb0NTU1ZhbHVlKEVNYXNrU291cmNlVHlwZSB0eXBlKQpAQCAtMTM4
OSw3ICsxMzg5LDcgQEAgc3RhdGljIFBhc3NSZWY8Q1NTVmFsdWU+IGZpbGxTaXplVG9DU1NWYWx1
ZShjb25zdCBGaWxsU2l6ZSYgZmlsbFNpemUsIGNvbnN0IFJlbmQKICAgICBhdXRvIGxpc3QgPSBD
U1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7CiAgICAgbGlzdC5nZXQoKS5hcHBl
bmQoem9vbUFkanVzdGVkUGl4ZWxWYWx1ZUZvckxlbmd0aChmaWxsU2l6ZS5zaXplLndpZHRoKCks
IHN0eWxlKSk7CiAgICAgbGlzdC5nZXQoKS5hcHBlbmQoem9vbUFkanVzdGVkUGl4ZWxWYWx1ZUZv
ckxlbmd0aChmaWxsU2l6ZS5zaXplLmhlaWdodCgpLCBzdHlsZSkpOwotICAgIHJldHVybiBzdGQ6
Om1vdmUobGlzdCk7CisgICAgcmV0dXJuIFdURjo6bW92ZShsaXN0KTsKIH0KIAogc3RhdGljIFBh
c3NSZWY8Q1NTVmFsdWU+IGFsdFRleHRUb0NTU1ZhbHVlKGNvbnN0IFJlbmRlclN0eWxlKiBzdHls
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCmluZGV4IDY5MmY0MzMu
LmQ0M2RiMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcApAQCAt
MTkyLDcgKzE5Miw3IEBAIFBhc3NSZWZQdHI8Q1NTQ3Jvc3NmYWRlVmFsdWU+IENTU0Nyb3NzZmFk
ZVZhbHVlOjpibGVuZChjb25zdCBDU1NDcm9zc2ZhZGVWYWx1ZSYKICAgICBhdXRvIGZyb21JbWFn
ZVZhbHVlID0gQ1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKG1fY2FjaGVkRnJvbUltYWdlLT51cmwoKSwg
ZnJvbVN0eWxlZEltYWdlLmdldCgpKTsKICAgICBhdXRvIHRvSW1hZ2VWYWx1ZSA9IENTU0ltYWdl
VmFsdWU6OmNyZWF0ZShtX2NhY2hlZFRvSW1hZ2UtPnVybCgpLCB0b1N0eWxlZEltYWdlLmdldCgp
KTsKIAotICAgIFJlZlB0cjxDU1NDcm9zc2ZhZGVWYWx1ZT4gY3Jvc3NmYWRlVmFsdWUgPSBDU1ND
cm9zc2ZhZGVWYWx1ZTo6Y3JlYXRlKHN0ZDo6bW92ZShmcm9tSW1hZ2VWYWx1ZSksIHN0ZDo6bW92
ZSh0b0ltYWdlVmFsdWUpKTsKKyAgICBSZWZQdHI8Q1NTQ3Jvc3NmYWRlVmFsdWU+IGNyb3NzZmFk
ZVZhbHVlID0gQ1NTQ3Jvc3NmYWRlVmFsdWU6OmNyZWF0ZShXVEY6Om1vdmUoZnJvbUltYWdlVmFs
dWUpLCBXVEY6Om1vdmUodG9JbWFnZVZhbHVlKSk7CiAKICAgICBkb3VibGUgZnJvbVBlcmNlbnRh
Z2UgPSBmcm9tLm1fcGVyY2VudGFnZVZhbHVlLT5nZXREb3VibGVWYWx1ZSgpOwogICAgIGlmIChm
cm9tLm1fcGVyY2VudGFnZVZhbHVlLT5pc1BlcmNlbnRhZ2UoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcAppbmRleCBhYmE2MjQ4Li4zMTQ0MjA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCkBAIC01NSw3ICs1NSw3IEBA
IHN0YXRpYyBpbmxpbmUgU1ZHQ3Vyc29yRWxlbWVudCogcmVzb3VyY2VSZWZlcmVuY2VkQnlDdXJz
b3JFbGVtZW50KGNvbnN0IFN0cmluZyYKIAogQ1NTQ3Vyc29ySW1hZ2VWYWx1ZTo6Q1NTQ3Vyc29y
SW1hZ2VWYWx1ZShQYXNzUmVmPENTU1ZhbHVlPiBpbWFnZVZhbHVlLCBib29sIGhhc0hvdFNwb3Qs
IGNvbnN0IEludFBvaW50JiBob3RTcG90KQogICAgIDogQ1NTVmFsdWUoQ3Vyc29ySW1hZ2VDbGFz
cykKLSAgICAsIG1faW1hZ2VWYWx1ZShzdGQ6Om1vdmUoaW1hZ2VWYWx1ZSkpCisgICAgLCBtX2lt
YWdlVmFsdWUoV1RGOjptb3ZlKGltYWdlVmFsdWUpKQogICAgICwgbV9oYXNIb3RTcG90KGhhc0hv
dFNwb3QpCiAgICAgLCBtX2hvdFNwb3QoaG90U3BvdCkKICAgICAsIG1fYWNjZXNzZWRJbWFnZShm
YWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVl
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5oCmluZGV4IDYzYmMy
ODQuLjY1MWNkNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFn
ZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuaApA
QCAtMzUsNyArMzUsNyBAQCBjbGFzcyBDU1NDdXJzb3JJbWFnZVZhbHVlIDogcHVibGljIENTU1Zh
bHVlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZjxDU1NDdXJzb3JJbWFnZVZhbHVlPiBj
cmVhdGUoUGFzc1JlZjxDU1NWYWx1ZT4gaW1hZ2VWYWx1ZSwgYm9vbCBoYXNIb3RTcG90LCBjb25z
dCBJbnRQb2ludCYgaG90U3BvdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IENTU0N1cnNvckltYWdlVmFsdWUoc3RkOjptb3ZlKGltYWdlVmFsdWUpLCBoYXNIb3RTcG90LCBo
b3RTcG90KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU0N1cnNvckltYWdlVmFs
dWUoV1RGOjptb3ZlKGltYWdlVmFsdWUpLCBoYXNIb3RTcG90LCBob3RTcG90KSk7CiAgICAgfQog
CiAgICAgfkNTU0N1cnNvckltYWdlVmFsdWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0
ZXJJbWFnZVZhbHVlLmNwcAppbmRleCBkOTgwZTYyLi5iMGE3ZTY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwCkBAIC0xMjAsNyArMTIwLDcgQEAgUGFzc1Jl
ZlB0cjxJbWFnZT4gQ1NTRmlsdGVySW1hZ2VWYWx1ZTo6aW1hZ2UoUmVuZGVyRWxlbWVudCogcmVu
ZGVyZXIsIGNvbnN0IEZsb2EKICAgICB0ZXh0dXJlLT5jb250ZXh0KCktPmRyYXdJbWFnZShpbWFn
ZSwgQ29sb3JTcGFjZURldmljZVJHQiwgSW50UG9pbnQoKSk7CiAKICAgICBSZWZQdHI8RmlsdGVy
RWZmZWN0UmVuZGVyZXI+IGZpbHRlclJlbmRlcmVyID0gRmlsdGVyRWZmZWN0UmVuZGVyZXI6OmNy
ZWF0ZSgpOwotICAgIGZpbHRlclJlbmRlcmVyLT5zZXRTb3VyY2VJbWFnZShzdGQ6Om1vdmUodGV4
dHVyZSkpOworICAgIGZpbHRlclJlbmRlcmVyLT5zZXRTb3VyY2VJbWFnZShXVEY6Om1vdmUodGV4
dHVyZSkpOwogICAgIGZpbHRlclJlbmRlcmVyLT5zZXRTb3VyY2VJbWFnZVJlY3QoRmxvYXRSZWN0
KEZsb2F0UG9pbnQoKSwgc2l6ZSkpOwogICAgIGZpbHRlclJlbmRlcmVyLT5zZXRGaWx0ZXJSZWdp
b24oRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc2l6ZSkpOwogICAgIGlmICghZmlsdGVyUmVuZGVy
ZXItPmJ1aWxkKHJlbmRlcmVyLCBtX2ZpbHRlck9wZXJhdGlvbnMsIEZpbHRlckZ1bmN0aW9uKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmggYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5oCmluZGV4IDQyZjIyY2QuLjVi
MjQwMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuaApAQCAtNTAs
NyArNTAsNyBAQCBjbGFzcyBDU1NGaWx0ZXJJbWFnZVZhbHVlIDogcHVibGljIENTU0ltYWdlR2Vu
ZXJhdG9yVmFsdWUgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmPENTU0ZpbHRlckltYWdl
VmFsdWU+IGNyZWF0ZShQYXNzUmVmPENTU1ZhbHVlPiBpbWFnZVZhbHVlLCBQYXNzUmVmPENTU1Zh
bHVlPiBmaWx0ZXJWYWx1ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENT
U0ZpbHRlckltYWdlVmFsdWUoc3RkOjptb3ZlKGltYWdlVmFsdWUpLCBzdGQ6Om1vdmUoZmlsdGVy
VmFsdWUpKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU0ZpbHRlckltYWdlVmFs
dWUoV1RGOjptb3ZlKGltYWdlVmFsdWUpLCBXVEY6Om1vdmUoZmlsdGVyVmFsdWUpKSk7CiAgICAg
fQogCiAgICAgfkNTU0ZpbHRlckltYWdlVmFsdWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250RmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2Uu
Y3BwCmluZGV4IDRiN2E5YWQuLmI1MzQ2M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNw
cApAQCAtNzAsNyArNzAsNyBAQCB2b2lkIENTU0ZvbnRGYWNlOjpyZW1vdmVkRnJvbVNlZ21lbnRl
ZEZvbnRGYWNlKENTU1NlZ21lbnRlZEZvbnRGYWNlKiBzZWdtZW50ZWRGbwogdm9pZCBDU1NGb250
RmFjZTo6YWRkU291cmNlKHN0ZDo6dW5pcXVlX3B0cjxDU1NGb250RmFjZVNvdXJjZT4gc291cmNl
KQogewogICAgIHNvdXJjZS0+c2V0Rm9udEZhY2UodGhpcyk7Ci0gICAgbV9zb3VyY2VzLmFwcGVu
ZChzdGQ6Om1vdmUoc291cmNlKSk7CisgICAgbV9zb3VyY2VzLmFwcGVuZChXVEY6Om1vdmUoc291
cmNlKSk7CiB9CiAKIHZvaWQgQ1NTRm9udEZhY2U6OmZvbnRMb2FkZWQoQ1NTRm9udEZhY2VTb3Vy
Y2UqIHNvdXJjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAKaW5kZXggMDEy
MTc0OC4uZjc4MTVlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxl
Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAKQEAg
LTIzOSw3ICsyMzksNyBAQCB2b2lkIENTU0ZvbnRTZWxlY3Rvcjo6YWRkRm9udEZhY2VSdWxlKGNv
bnN0IFN0eWxlUnVsZUZvbnRGYWNlKiBmb250RmFjZVJ1bGUpCiAjaWYgRU5BQkxFKFNWR19GT05U
UykKICAgICAgICAgICAgIHNvdXJjZS0+c2V0U1ZHRm9udEZhY2VFbGVtZW50KGl0ZW0tPnN2Z0Zv
bnRGYWNlRWxlbWVudCgpKTsKICNlbmRpZgotICAgICAgICAgICAgZm9udEZhY2UtPmFkZFNvdXJj
ZShzdGQ6Om1vdmUoc291cmNlKSk7CisgICAgICAgICAgICBmb250RmFjZS0+YWRkU291cmNlKFdU
Rjo6bW92ZShzb3VyY2UpKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMzExLDcgKzMxMSw3IEBA
IHZvaWQgQ1NTRm9udFNlbGVjdG9yOjphZGRGb250RmFjZVJ1bGUoY29uc3QgU3R5bGVSdWxlRm9u
dEZhY2UqIGZvbnRGYWNlUnVsZSkKICAgICAgICAgICAgICAgICAgICAgZmFtaWx5TG9jYWxseUlu
c3RhbGxlZEZhY2VzLT5hcHBlbmQobG9jYWxseUluc3RhbGxlZEZvbnRGYWNlKTsKICAgICAgICAg
ICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBtX2xvY2FsbHlJbnN0YWxsZWRGb250RmFjZXMu
c2V0KGZhbWlseU5hbWUsIHN0ZDo6bW92ZShmYW1pbHlMb2NhbGx5SW5zdGFsbGVkRmFjZXMpKTsK
KyAgICAgICAgICAgICAgICBtX2xvY2FsbHlJbnN0YWxsZWRGb250RmFjZXMuc2V0KGZhbWlseU5h
bWUsIFdURjo6bW92ZShmYW1pbHlMb2NhbGx5SW5zdGFsbGVkRmFjZXMpKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1h
ci55LmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgppbmRleCAzNWQ5YWJk
Li5iMWRiZmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55Lmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW4KQEAgLTY1Niw3ICs2NTYs
NyBAQCBtZWRpYV9saXN0OgogICAgICAgICAkJCA9ICQxOwogICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8TWVkaWFRdWVyeT4gbWVkaWFRdWVyeSgkNCk7CiAgICAgICAgIGlmICgkJCkgewotICAgICAg
ICAgICAgJCQtPmFkZE1lZGlhUXVlcnkoc3RkOjptb3ZlKG1lZGlhUXVlcnkpKTsKKyAgICAgICAg
ICAgICQkLT5hZGRNZWRpYVF1ZXJ5KFdURjo6bW92ZShtZWRpYVF1ZXJ5KSk7CiAgICAgICAgICAg
ICBwYXJzZXItPnVwZGF0ZUxhc3RNZWRpYUxpbmUoJCQpOwogICAgICAgICB9CiAgICAgfQpAQCAt
NzUzLDcgKzc1Myw3IEBAIHN1cHBvcnRzX2RlY2xhcmF0aW9uX2NvbmRpdGlvbjoKICAgICAgICAg
Q1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKICAgICAgICAg
c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclZhbHVlTGlzdD4gcHJvcGVydHlWYWx1ZSgkNik7CiAg
ICAgICAgIGlmICgkMyAmJiBwcm9wZXJ0eVZhbHVlKSB7Ci0gICAgICAgICAgICBwLT5tX3ZhbHVl
TGlzdCA9IHN0ZDo6bW92ZShwcm9wZXJ0eVZhbHVlKTsKKyAgICAgICAgICAgIHAtPm1fdmFsdWVM
aXN0ID0gV1RGOjptb3ZlKHByb3BlcnR5VmFsdWUpOwogICAgICAgICAgICAgaW50IG9sZFBhcnNl
ZFByb3BlcnRpZXMgPSBwLT5tX3BhcnNlZFByb3BlcnRpZXMuc2l6ZSgpOwogICAgICAgICAgICAg
JCQgPSBwLT5wYXJzZVZhbHVlKCQzLCAkNyk7CiAgICAgICAgICAgICAvLyBXZSBqdXN0IG5lZWQg
dG8ga25vdyBpZiB0aGUgZGVjbGFyYXRpb24gaXMgc3VwcG9ydGVkIGFzIGl0IGlzIHdyaXR0ZW4u
IFJvbGxiYWNrIGFueSBhZGRpdGlvbnMuCkBAIC0xMDUxLDcgKzEwNTEsNyBAQCBzZWxlY3Rvcl9s
aXN0OgogICAgICAgICAkJCA9IG51bGxwdHI7CiAgICAgICAgIGlmIChzZWxlY3Rvckxpc3QgJiYg
c2VsZWN0b3IpIHsKICAgICAgICAgICAgICQkID0gc2VsZWN0b3JMaXN0LnJlbGVhc2UoKTsKLSAg
ICAgICAgICAgICQkLT5hcHBlbmQoc3RkOjptb3ZlKHNlbGVjdG9yKSk7CisgICAgICAgICAgICAk
JC0+YXBwZW5kKFdURjo6bW92ZShzZWxlY3RvcikpOwogICAgICAgICAgICAgcGFyc2VyLT51cGRh
dGVMYXN0U2VsZWN0b3JMaW5lQW5kUG9zaXRpb24oKTsKICAgICAgICAgfQogICAgIH0KQEAgLTEw
NzIsNyArMTA3Miw3IEBAIHNlbGVjdG9yOgogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFy
c2VyU2VsZWN0b3I+IHJpZ2h0KCQyKTsKICAgICAgICAgJCQgPSBudWxscHRyOwogICAgICAgICBp
ZiAobGVmdCAmJiByaWdodCkgewotICAgICAgICAgICAgcmlnaHQtPmFwcGVuZFRhZ0hpc3Rvcnko
Q1NTU2VsZWN0b3I6OkRlc2NlbmRhbnQsIHN0ZDo6bW92ZShsZWZ0KSk7CisgICAgICAgICAgICBy
aWdodC0+YXBwZW5kVGFnSGlzdG9yeShDU1NTZWxlY3Rvcjo6RGVzY2VuZGFudCwgV1RGOjptb3Zl
KGxlZnQpKTsKICAgICAgICAgICAgICQkID0gcmlnaHQucmVsZWFzZSgpOwogICAgICAgICB9CiAg
ICAgfQpAQCAtMTA4MSw3ICsxMDgxLDcgQEAgc2VsZWN0b3I6CiAgICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gcmlnaHQoJDMpOwogICAgICAgICAkJCA9IG51bGxwdHI7
CiAgICAgICAgIGlmIChsZWZ0ICYmIHJpZ2h0KSB7Ci0gICAgICAgICAgICByaWdodC0+YXBwZW5k
VGFnSGlzdG9yeSgkMiwgc3RkOjptb3ZlKGxlZnQpKTsKKyAgICAgICAgICAgIHJpZ2h0LT5hcHBl
bmRUYWdIaXN0b3J5KCQyLCBXVEY6Om1vdmUobGVmdCkpOwogICAgICAgICAgICAgJCQgPSByaWdo
dC5yZWxlYXNlKCk7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMTQwLDcgKzExNDAsNyBAQCBzaW1w
bGVfc2VsZWN0b3JfbGlzdDoKICAgICAgICAgJCQgPSBudWxscHRyOwogICAgICAgICBpZiAobGlz
dCAmJiBzZWxlY3RvcikgewogICAgICAgICAgICAgJCQgPSBsaXN0LnJlbGVhc2UoKTsKLSAgICAg
ICAgICAgICQkLT5hcHBlbmQoc3RkOjptb3ZlKHNlbGVjdG9yKSk7CisgICAgICAgICAgICAkJC0+
YXBwZW5kKFdURjo6bW92ZShzZWxlY3RvcikpOwogICAgICAgICB9CiAgICAgfQogICAgIHwgc2lt
cGxlX3NlbGVjdG9yX2xpc3QgZXJyb3IgewpAQCAtMTE2OCw3ICsxMTY4LDcgQEAgc3BlY2lmaWVy
X2xpc3Q6CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gc3BlY2lm
aWVyKCQyKTsKICAgICAgICAgJCQgPSBudWxscHRyOwogICAgICAgICBpZiAobGlzdCAmJiBzcGVj
aWZpZXIpCi0gICAgICAgICAgICAkJCA9IHBhcnNlci0+cmV3cml0ZVNwZWNpZmllcnMoc3RkOjpt
b3ZlKGxpc3QpLCBzdGQ6Om1vdmUoc3BlY2lmaWVyKSkucmVsZWFzZSgpOworICAgICAgICAgICAg
JCQgPSBwYXJzZXItPnJld3JpdGVTcGVjaWZpZXJzKFdURjo6bW92ZShsaXN0KSwgV1RGOjptb3Zl
KHNwZWNpZmllcikpLnJlbGVhc2UoKTsKICAgICB9CiAgICAgfCBzcGVjaWZpZXJfbGlzdCBlcnJv
ciB7CiAgICAgICAgICQkID0gbnVsbHB0cjsKQEAgLTEzMzksNyArMTMzOSw3IEBAIHBzZXVkbzoK
ICAgICAgICAgICAgICQkLT5zZXRNYXRjaChDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3MpOwogCiAg
ICAgICAgICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPj4gc2Vs
ZWN0b3JWZWN0b3I7Ci0gICAgICAgICAgICBzZWxlY3RvclZlY3Rvci5hcHBlbmQoc3RkOjptb3Zl
KHNlbGVjdG9yKSk7CisgICAgICAgICAgICBzZWxlY3RvclZlY3Rvci5hcHBlbmQoV1RGOjptb3Zl
KHNlbGVjdG9yKSk7CiAgICAgICAgICAgICAkJC0+YWRvcHRTZWxlY3RvclZlY3RvcihzZWxlY3Rv
clZlY3Rvcik7CiAgICAgICAgICAgICAkJC0+c2V0UHNldWRvQ2xhc3NWYWx1ZSgkMik7CiAgICAg
ICAgIH0KQEAgLTEzODgsNyArMTM4OCw3IEBAIGRlY2xhcmF0aW9uOgogICAgICAgICBib29sIGlz
UHJvcGVydHlQYXJzZWQgPSBmYWxzZTsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNl
clZhbHVlTGlzdD4gcHJvcGVydHlWYWx1ZSgkNCk7CiAgICAgICAgIGlmICgkMSAmJiBwcm9wZXJ0
eVZhbHVlKSB7Ci0gICAgICAgICAgICBwYXJzZXItPm1fdmFsdWVMaXN0ID0gc3RkOjptb3ZlKHBy
b3BlcnR5VmFsdWUpOworICAgICAgICAgICAgcGFyc2VyLT5tX3ZhbHVlTGlzdCA9IFdURjo6bW92
ZShwcm9wZXJ0eVZhbHVlKTsKICAgICAgICAgICAgIGludCBvbGRQYXJzZWRQcm9wZXJ0aWVzID0g
cGFyc2VyLT5tX3BhcnNlZFByb3BlcnRpZXMuc2l6ZSgpOwogICAgICAgICAgICAgJCQgPSBwYXJz
ZXItPnBhcnNlVmFsdWUoJDEsICQ1KTsKICAgICAgICAgICAgIGlmICghJCQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwCmluZGV4IDdiYzE5NzIuLjY4MzVkNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuY3BwCkBAIC0xNDUyLDcgKzE0NTIsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFRdWVyeT4g
Q1NTUGFyc2VyOjpwYXJzZU1lZGlhUXVlcnkoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgc2V0
dXBQYXJzZXIoIkAtd2Via2l0LW1lZGlhcXVlcnkgIiwgc3RyaW5nLCAifSAiKTsKICAgICBjc3N5
eXBhcnNlKHRoaXMpOwogCi0gICAgcmV0dXJuIHN0ZDo6bW92ZShtX21lZGlhUXVlcnkpOworICAg
IHJldHVybiBXVEY6Om1vdmUobV9tZWRpYVF1ZXJ5KTsKIH0KIAogI2lmIEVOQUJMRShQSUNUVVJF
X1NJWkVTKQpAQCAtMTQ2Niw3ICsxNDY2LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFNvdXJjZVNpemVM
aXN0PiBDU1NQYXJzZXI6OnBhcnNlU2l6ZXNBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJiBzdHIKICAg
ICBzZXR1cFBhcnNlcigiQC13ZWJraXQtc2l6ZXNhdHRyICIsIHN0cmluZywgIn0iKTsKICAgICBj
c3N5eXBhcnNlKHRoaXMpOwogCi0gICAgcmV0dXJuIHN0ZDo6bW92ZShtX3NvdXJjZVNpemVMaXN0
KTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKG1fc291cmNlU2l6ZUxpc3QpOwogfQogI2VuZGlmCiAK
QEAgLTExNDI4LDcgKzExNDI4LDcgQEAgdm9pZCBDU1NQYXJzZXI6OmxvZ0Vycm9yKGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgaW50IGxpbmVOdW1iZXIpCiAKIFBhc3NSZWZQdHI8U3R5bGVSdWxlS2V5
ZnJhbWVzPiBDU1NQYXJzZXI6OmNyZWF0ZUtleWZyYW1lc1J1bGUoY29uc3QgU3RyaW5nJiBuYW1l
LCBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPFJlZlB0cjxTdHlsZUtleWZyYW1lPj4+IHBvcEtleWZy
YW1lcykKIHsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPFJlZlB0cjxTdHlsZUtleWZyYW1l
Pj4+IGtleWZyYW1lcyA9IHN0ZDo6bW92ZShwb3BLZXlmcmFtZXMpOworICAgIHN0ZDo6dW5pcXVl
X3B0cjxWZWN0b3I8UmVmUHRyPFN0eWxlS2V5ZnJhbWU+Pj4ga2V5ZnJhbWVzID0gV1RGOjptb3Zl
KHBvcEtleWZyYW1lcyk7CiAgICAgbV9hbGxvd0ltcG9ydFJ1bGVzID0gbV9hbGxvd05hbWVzcGFj
ZURlY2xhcmF0aW9ucyA9IGZhbHNlOwogICAgIFJlZlB0cjxTdHlsZVJ1bGVLZXlmcmFtZXM+IHJ1
bGUgPSBTdHlsZVJ1bGVLZXlmcmFtZXM6OmNyZWF0ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwga2V5ZnJhbWVzLT5zaXplKCk7ICsraSkKQEAgLTExNTM4LDE1ICsxMTUzOCwxNSBAQCBz
dGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IENTU1BhcnNlcjo6cmV3cml0ZVNwZWNp
ZmllcnMoc3RkOjp1bmlxdWVfcHRyPAogewogICAgIGlmIChuZXdTcGVjaWZpZXItPmlzQ3VzdG9t
UHNldWRvRWxlbWVudCgpIHx8IG5ld1NwZWNpZmllci0+aXNQc2V1ZG9FbGVtZW50Q3VlRnVuY3Rp
b24oKSkgewogICAgICAgICAvLyBVbmtub3duIHBzZXVkbyBlbGVtZW50IGFsd2F5cyBnb2VzIGF0
IHRoZSB0b3Agb2Ygc2VsZWN0b3IgY2hhaW4uCi0gICAgICAgIG5ld1NwZWNpZmllci0+YXBwZW5k
VGFnSGlzdG9yeShDU1NTZWxlY3Rvcjo6U2hhZG93RGVzY2VuZGFudCwgc3RkOjptb3ZlKHNwZWNp
ZmllcnMpKTsKKyAgICAgICAgbmV3U3BlY2lmaWVyLT5hcHBlbmRUYWdIaXN0b3J5KENTU1NlbGVj
dG9yOjpTaGFkb3dEZXNjZW5kYW50LCBXVEY6Om1vdmUoc3BlY2lmaWVycykpOwogICAgICAgICBy
ZXR1cm4gbmV3U3BlY2lmaWVyOwogICAgIH0KICAgICBpZiAoc3BlY2lmaWVycy0+aXNDdXN0b21Q
c2V1ZG9FbGVtZW50KCkpIHsKICAgICAgICAgLy8gU3BlY2lmaWVycyBmb3IgdW5rbm93biBwc2V1
ZG8gZWxlbWVudCBnbyByaWdodCBiZWhpbmQgaXQgaW4gdGhlIGNoYWluLgotICAgICAgICBzcGVj
aWZpZXJzLT5pbnNlcnRUYWdIaXN0b3J5KENTU1NlbGVjdG9yOjpTdWJTZWxlY3Rvciwgc3RkOjpt
b3ZlKG5ld1NwZWNpZmllciksIENTU1NlbGVjdG9yOjpTaGFkb3dEZXNjZW5kYW50KTsKKyAgICAg
ICAgc3BlY2lmaWVycy0+aW5zZXJ0VGFnSGlzdG9yeShDU1NTZWxlY3Rvcjo6U3ViU2VsZWN0b3Is
IFdURjo6bW92ZShuZXdTcGVjaWZpZXIpLCBDU1NTZWxlY3Rvcjo6U2hhZG93RGVzY2VuZGFudCk7
CiAgICAgICAgIHJldHVybiBzcGVjaWZpZXJzOwogICAgIH0KLSAgICBzcGVjaWZpZXJzLT5hcHBl
bmRUYWdIaXN0b3J5KENTU1NlbGVjdG9yOjpTdWJTZWxlY3Rvciwgc3RkOjptb3ZlKG5ld1NwZWNp
ZmllcikpOworICAgIHNwZWNpZmllcnMtPmFwcGVuZFRhZ0hpc3RvcnkoQ1NTU2VsZWN0b3I6OlN1
YlNlbGVjdG9yLCBXVEY6Om1vdmUobmV3U3BlY2lmaWVyKSk7CiAgICAgcmV0dXJuIHNwZWNpZmll
cnM7CiB9CiAKQEAgLTExNTU4LDcgKzExNTU4LDcgQEAgUGFzc1JlZlB0cjxTdHlsZVJ1bGVCYXNl
PiBDU1NQYXJzZXI6OmNyZWF0ZVBhZ2VSdWxlKHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWwK
ICAgICBpZiAocGFnZVNlbGVjdG9yKSB7CiAgICAgICAgIHJ1bGUgPSBTdHlsZVJ1bGVQYWdlOjpj
cmVhdGUoY3JlYXRlU3R5bGVQcm9wZXJ0aWVzKCkpOwogICAgICAgICBWZWN0b3I8c3RkOjp1bmlx
dWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPj4gc2VsZWN0b3JWZWN0b3I7Ci0gICAgICAgIHNlbGVj
dG9yVmVjdG9yLmFwcGVuZChzdGQ6Om1vdmUocGFnZVNlbGVjdG9yKSk7CisgICAgICAgIHNlbGVj
dG9yVmVjdG9yLmFwcGVuZChXVEY6Om1vdmUocGFnZVNlbGVjdG9yKSk7CiAgICAgICAgIHJ1bGUt
PnBhcnNlckFkb3B0U2VsZWN0b3JWZWN0b3Ioc2VsZWN0b3JWZWN0b3IpOwogICAgICAgICBwcm9j
ZXNzQW5kQWRkTmV3UnVsZVRvU291cmNlVHJlZUlmTmVlZGVkKCk7CiAgICAgfSBlbHNlCkBAIC0x
MTU3MSw3ICsxMTU3MSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRy
PENTU1BhcnNlclNlbGVjdG9yPj4+IENTU1BhcnNlcjo6Y3JlYXRlU2VsCiB7CiAgICAgaWYgKG1f
cmVjeWNsZWRTZWxlY3RvclZlY3RvcikgewogICAgICAgICBtX3JlY3ljbGVkU2VsZWN0b3JWZWN0
b3ItPnNocmluaygwKTsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bW92ZShtX3JlY3ljbGVkU2VsZWN0
b3JWZWN0b3IpOworICAgICAgICByZXR1cm4gV1RGOjptb3ZlKG1fcmVjeWNsZWRTZWxlY3RvclZl
Y3Rvcik7CiAgICAgfQogICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFZlY3RvcjxzdGQ6OnVu
aXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+Pj4oKTsKIH0KQEAgLTExNTc5LDcgKzExNTc5LDcg
QEAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0
b3I+Pj4gQ1NTUGFyc2VyOjpjcmVhdGVTZWwKIHZvaWQgQ1NTUGFyc2VyOjpyZWN5Y2xlU2VsZWN0
b3JWZWN0b3Ioc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2Vy
U2VsZWN0b3I+Pj4gdmVjdG9yKQogewogICAgIGlmICh2ZWN0b3IgJiYgIW1fcmVjeWNsZWRTZWxl
Y3RvclZlY3RvcikKLSAgICAgICAgbV9yZWN5Y2xlZFNlbGVjdG9yVmVjdG9yID0gc3RkOjptb3Zl
KHZlY3Rvcik7CisgICAgICAgIG1fcmVjeWNsZWRTZWxlY3RvclZlY3RvciA9IFdURjo6bW92ZSh2
ZWN0b3IpOwogfQogCiBQYXNzUmVmUHRyPFN0eWxlUnVsZUJhc2U+IENTU1BhcnNlcjo6Y3JlYXRl
UmVnaW9uUnVsZShWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPj4qIHJl
Z2lvblNlbGVjdG9yLCBSdWxlTGlzdCogcnVsZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJW
YWx1ZXMuY3BwCmluZGV4IGMyM2Q4YjAuLjNjZmQxZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXJWYWx1ZXMuY3BwCkBAIC0yMzgsMTMgKzIzOCwxMyBAQCBDU1NQYXJzZXJTZWxlY3Rvcjo6
fkNTU1BhcnNlclNlbGVjdG9yKCkKICAgICBpZiAoIW1fdGFnSGlzdG9yeSkKICAgICAgICAgcmV0
dXJuOwogICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+LCAxNj4g
dG9EZWxldGU7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPiBzZWxlY3Rv
ciA9IHN0ZDo6bW92ZShtX3RhZ0hpc3RvcnkpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJz
ZXJTZWxlY3Rvcj4gc2VsZWN0b3IgPSBXVEY6Om1vdmUobV90YWdIaXN0b3J5KTsKICAgICB3aGls
ZSAodHJ1ZSkgewotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IG5l
eHQgPSBzdGQ6Om1vdmUoc2VsZWN0b3ItPm1fdGFnSGlzdG9yeSk7Ci0gICAgICAgIHRvRGVsZXRl
LmFwcGVuZChzdGQ6Om1vdmUoc2VsZWN0b3IpKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPENT
U1BhcnNlclNlbGVjdG9yPiBuZXh0ID0gV1RGOjptb3ZlKHNlbGVjdG9yLT5tX3RhZ0hpc3Rvcnkp
OworICAgICAgICB0b0RlbGV0ZS5hcHBlbmQoV1RGOjptb3ZlKHNlbGVjdG9yKSk7CiAgICAgICAg
IGlmICghbmV4dCkKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBzZWxlY3RvciA9IHN0ZDo6
bW92ZShuZXh0KTsKKyAgICAgICAgc2VsZWN0b3IgPSBXVEY6Om1vdmUobmV4dCk7CiAgICAgfQog
fQogCkBAIC0yNTIsNyArMjUyLDcgQEAgdm9pZCBDU1NQYXJzZXJTZWxlY3Rvcjo6YWRvcHRTZWxl
Y3RvclZlY3RvcihWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGUKIHsKICAgICBh
dXRvIHNlbGVjdG9yTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8Q1NTU2VsZWN0b3JMaXN0PigpOwog
ICAgIHNlbGVjdG9yTGlzdC0+YWRvcHRTZWxlY3RvclZlY3RvcihzZWxlY3RvclZlY3Rvcik7Ci0g
ICAgbV9zZWxlY3Rvci0+c2V0U2VsZWN0b3JMaXN0KHN0ZDo6bW92ZShzZWxlY3Rvckxpc3QpKTsK
KyAgICBtX3NlbGVjdG9yLT5zZXRTZWxlY3Rvckxpc3QoV1RGOjptb3ZlKHNlbGVjdG9yTGlzdCkp
OwogfQogCiB2b2lkIENTU1BhcnNlclNlbGVjdG9yOjpzZXRQc2V1ZG9DbGFzc1ZhbHVlKGNvbnN0
IENTU1BhcnNlclN0cmluZyYgcHNldWRvQ2xhc3NTdHJpbmcpCkBAIC0yODYsMTAgKzI4NiwxMCBA
QCBib29sIENTU1BhcnNlclNlbGVjdG9yOjppc1NpbXBsZSgpIGNvbnN0CiB2b2lkIENTU1BhcnNl
clNlbGVjdG9yOjppbnNlcnRUYWdIaXN0b3J5KENTU1NlbGVjdG9yOjpSZWxhdGlvbiBiZWZvcmUs
IHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gc2VsZWN0b3IsIENTU1NlbGVjdG9y
OjpSZWxhdGlvbiBhZnRlcikKIHsKICAgICBpZiAobV90YWdIaXN0b3J5KQotICAgICAgICBzZWxl
Y3Rvci0+c2V0VGFnSGlzdG9yeShzdGQ6Om1vdmUobV90YWdIaXN0b3J5KSk7CisgICAgICAgIHNl
bGVjdG9yLT5zZXRUYWdIaXN0b3J5KFdURjo6bW92ZShtX3RhZ0hpc3RvcnkpKTsKICAgICBzZXRS
ZWxhdGlvbihiZWZvcmUpOwogICAgIHNlbGVjdG9yLT5zZXRSZWxhdGlvbihhZnRlcik7Ci0gICAg
bV90YWdIaXN0b3J5ID0gc3RkOjptb3ZlKHNlbGVjdG9yKTsKKyAgICBtX3RhZ0hpc3RvcnkgPSBX
VEY6Om1vdmUoc2VsZWN0b3IpOwogfQogCiB2b2lkIENTU1BhcnNlclNlbGVjdG9yOjphcHBlbmRU
YWdIaXN0b3J5KENTU1NlbGVjdG9yOjpSZWxhdGlvbiByZWxhdGlvbiwgc3RkOjp1bmlxdWVfcHRy
PENTU1BhcnNlclNlbGVjdG9yPiBzZWxlY3RvcikKQEAgLTI5OCwxNSArMjk4LDE1IEBAIHZvaWQg
Q1NTUGFyc2VyU2VsZWN0b3I6OmFwcGVuZFRhZ0hpc3RvcnkoQ1NTU2VsZWN0b3I6OlJlbGF0aW9u
IHJlbGF0aW9uLCBzdGQ6OnVuCiAgICAgd2hpbGUgKGVuZC0+dGFnSGlzdG9yeSgpKQogICAgICAg
ICBlbmQgPSBlbmQtPnRhZ0hpc3RvcnkoKTsKICAgICBlbmQtPnNldFJlbGF0aW9uKHJlbGF0aW9u
KTsKLSAgICBlbmQtPnNldFRhZ0hpc3Rvcnkoc3RkOjptb3ZlKHNlbGVjdG9yKSk7CisgICAgZW5k
LT5zZXRUYWdIaXN0b3J5KFdURjo6bW92ZShzZWxlY3RvcikpOwogfQogCiB2b2lkIENTU1BhcnNl
clNlbGVjdG9yOjpwcmVwZW5kVGFnU2VsZWN0b3IoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnUU5h
bWUsIGJvb2wgdGFnSXNGb3JOYW1lc3BhY2VSdWxlKQogewogICAgIGF1dG8gc2Vjb25kID0gc3Rk
OjptYWtlX3VuaXF1ZTxDU1NQYXJzZXJTZWxlY3Rvcj4oKTsKLSAgICBzZWNvbmQtPm1fc2VsZWN0
b3IgPSBzdGQ6Om1vdmUobV9zZWxlY3Rvcik7Ci0gICAgc2Vjb25kLT5tX3RhZ0hpc3RvcnkgPSBz
dGQ6Om1vdmUobV90YWdIaXN0b3J5KTsKLSAgICBtX3RhZ0hpc3RvcnkgPSBzdGQ6Om1vdmUoc2Vj
b25kKTsKKyAgICBzZWNvbmQtPm1fc2VsZWN0b3IgPSBXVEY6Om1vdmUobV9zZWxlY3Rvcik7Cisg
ICAgc2Vjb25kLT5tX3RhZ0hpc3RvcnkgPSBXVEY6Om1vdmUobV90YWdIaXN0b3J5KTsKKyAgICBt
X3RhZ0hpc3RvcnkgPSBXVEY6Om1vdmUoc2Vjb25kKTsKIAogICAgIG1fc2VsZWN0b3IgPSBzdGQ6
Om1ha2VfdW5pcXVlPENTU1NlbGVjdG9yPih0YWdRTmFtZSwgdGFnSXNGb3JOYW1lc3BhY2VSdWxl
KTsKICAgICBtX3NlbGVjdG9yLT5tX3JlbGF0aW9uID0gQ1NTU2VsZWN0b3I6OlN1YlNlbGVjdG9y
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oCmluZGV4IGRkOWYxNjEuLmI0ZjkyNmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmgKQEAgLTE5MCw3ICsxOTAsNyBAQCBw
dWJsaWM6CiAgICAgZXhwbGljaXQgQ1NTUGFyc2VyU2VsZWN0b3IoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpOwogICAgIH5DU1NQYXJzZXJTZWxlY3RvcigpOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPENT
U1NlbGVjdG9yPiByZWxlYXNlU2VsZWN0b3IoKSB7IHJldHVybiBzdGQ6Om1vdmUobV9zZWxlY3Rv
cik7IH0KKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q1NTU2VsZWN0b3I+IHJlbGVhc2VTZWxlY3Rvcigp
IHsgcmV0dXJuIFdURjo6bW92ZShtX3NlbGVjdG9yKTsgfQogCiAgICAgdm9pZCBzZXRWYWx1ZShj
b25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKSB7IG1fc2VsZWN0b3ItPnNldFZhbHVlKHZhbHVlKTsg
fQogICAgIHZvaWQgc2V0QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHZhbHVlLCBib29s
IGlzQ2FzZUluc2Vuc2l0aXZlKSB7IG1fc2VsZWN0b3ItPnNldEF0dHJpYnV0ZSh2YWx1ZSwgaXND
YXNlSW5zZW5zaXRpdmUpOyB9CkBAIC0yMTksNyArMjE5LDcgQEAgcHVibGljOgogICAgIGJvb2wg
aGFzU2hhZG93RGVzY2VuZGFudCgpIGNvbnN0OwogCiAgICAgQ1NTUGFyc2VyU2VsZWN0b3IqIHRh
Z0hpc3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3RhZ0hpc3RvcnkuZ2V0KCk7IH0KLSAgICB2b2lk
IHNldFRhZ0hpc3Rvcnkoc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPiBzZWxlY3Rv
cikgeyBtX3RhZ0hpc3RvcnkgPSBzdGQ6Om1vdmUoc2VsZWN0b3IpOyB9CisgICAgdm9pZCBzZXRU
YWdIaXN0b3J5KHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gc2VsZWN0b3IpIHsg
bV90YWdIaXN0b3J5ID0gV1RGOjptb3ZlKHNlbGVjdG9yKTsgfQogICAgIHZvaWQgY2xlYXJUYWdI
aXN0b3J5KCkgeyBtX3RhZ0hpc3RvcnkucmVzZXQoKTsgfQogICAgIHZvaWQgaW5zZXJ0VGFnSGlz
dG9yeShDU1NTZWxlY3Rvcjo6UmVsYXRpb24gYmVmb3JlLCBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFy
c2VyU2VsZWN0b3I+LCBDU1NTZWxlY3Rvcjo6UmVsYXRpb24gYWZ0ZXIpOwogICAgIHZvaWQgYXBw
ZW5kVGFnSGlzdG9yeShDU1NTZWxlY3Rvcjo6UmVsYXRpb24sIHN0ZDo6dW5pcXVlX3B0cjxDU1NQ
YXJzZXJTZWxlY3Rvcj4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1p
dGl2ZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAK
aW5kZXggZWFlMzQ0My4uZWZmMDZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZl
VmFsdWUuY3BwCkBAIC05MzQsNyArOTM0LDcgQEAgTkVWRVJfSU5MSU5FIFBhc3NSZWY8U3RyaW5n
SW1wbD4gQ1NTUHJpbWl0aXZlVmFsdWU6OmZvcm1hdE51bWJlclZhbHVlKGNvbnN0IGNoYXIKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc3VmZml4TGVuZ3RoOyArK2kpCiAgICAgICAgIGJ1
ZmZlcltsZW5ndGggKyBpXSA9IHN0YXRpY19jYXN0PExDaGFyPihzdWZmaXhbaV0pOwogCi0gICAg
cmV0dXJuIHN0ZDo6bW92ZShzdHJpbmcpOworICAgIHJldHVybiBXVEY6Om1vdmUoc3RyaW5nKTsK
IH0KIAogdGVtcGxhdGUgPHVuc2lnbmVkIGNoYXJhY3RlckNvdW50PgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NT
ZWxlY3Rvci5jcHAKaW5kZXggYjNlZTczYS4uNzI0YzVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2Vs
ZWN0b3IuY3BwCkBAIC01NjIsNyArNTYyLDcgQEAgdm9pZCBDU1NTZWxlY3Rvcjo6c2V0QXJndW1l
bnQoY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKIHZvaWQgQ1NTU2VsZWN0b3I6OnNldFNlbGVj
dG9yTGlzdChzdGQ6OnVuaXF1ZV9wdHI8Q1NTU2VsZWN0b3JMaXN0PiBzZWxlY3Rvckxpc3QpCiB7
CiAgICAgY3JlYXRlUmFyZURhdGEoKTsKLSAgICBtX2RhdGEubV9yYXJlRGF0YS0+bV9zZWxlY3Rv
ckxpc3QgPSBzdGQ6Om1vdmUoc2VsZWN0b3JMaXN0KTsKKyAgICBtX2RhdGEubV9yYXJlRGF0YS0+
bV9zZWxlY3Rvckxpc3QgPSBXVEY6Om1vdmUoc2VsZWN0b3JMaXN0KTsKIH0KIAogYm9vbCBDU1NT
ZWxlY3Rvcjo6cGFyc2VOdGgoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3Bw
CmluZGV4IDYzYWQwMTYuLmI4MzgzNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5j
cHAKQEAgLTc2LDEyICs3NiwxMiBAQCBzdGF0aWMgYm9vbCBpc0FjY2VwdGFibGVDU1NTdHlsZVNo
ZWV0UGFyZW50KE5vZGUqIHBhcmVudE5vZGUpCiAKIFBhc3NSZWY8Q1NTU3R5bGVTaGVldD4gQ1NT
U3R5bGVTaGVldDo6Y3JlYXRlKFBhc3NSZWY8U3R5bGVTaGVldENvbnRlbnRzPiBzaGVldCwgQ1NT
SW1wb3J0UnVsZSogb3duZXJSdWxlKQogeyAKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NT
dHlsZVNoZWV0KHN0ZDo6bW92ZShzaGVldCksIG93bmVyUnVsZSkpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IENTU1N0eWxlU2hlZXQoV1RGOjptb3ZlKHNoZWV0KSwgb3duZXJSdWxlKSk7CiB9
CiAKIFBhc3NSZWY8Q1NTU3R5bGVTaGVldD4gQ1NTU3R5bGVTaGVldDo6Y3JlYXRlKFBhc3NSZWY8
U3R5bGVTaGVldENvbnRlbnRzPiBzaGVldCwgTm9kZSogb3duZXJOb2RlKQogeyAKLSAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBDU1NTdHlsZVNoZWV0KHN0ZDo6bW92ZShzaGVldCksIG93bmVyTm9k
ZSwgZmFsc2UpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NTdHlsZVNoZWV0KFdURjo6
bW92ZShzaGVldCksIG93bmVyTm9kZSwgZmFsc2UpKTsKIH0KIAogUGFzc1JlZjxDU1NTdHlsZVNo
ZWV0PiBDU1NTdHlsZVNoZWV0OjpjcmVhdGVJbmxpbmUoTm9kZSYgb3duZXJOb2RlLCBjb25zdCBV
UkwmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcpCkBAIC05MSw3ICs5MSw3IEBAIFBh
c3NSZWY8Q1NTU3R5bGVTaGVldD4gQ1NTU3R5bGVTaGVldDo6Y3JlYXRlSW5saW5lKE5vZGUmIG93
bmVyTm9kZSwgY29uc3QgVVJMJiBiCiB9CiAKIENTU1N0eWxlU2hlZXQ6OkNTU1N0eWxlU2hlZXQo
UGFzc1JlZjxTdHlsZVNoZWV0Q29udGVudHM+IGNvbnRlbnRzLCBDU1NJbXBvcnRSdWxlKiBvd25l
clJ1bGUpCi0gICAgOiBtX2NvbnRlbnRzKHN0ZDo6bW92ZShjb250ZW50cykpCisgICAgOiBtX2Nv
bnRlbnRzKFdURjo6bW92ZShjb250ZW50cykpCiAgICAgLCBtX2lzSW5saW5lU3R5bGVzaGVldChm
YWxzZSkKICAgICAsIG1faXNEaXNhYmxlZChmYWxzZSkKICAgICAsIG1fb3duZXJOb2RlKDApCkBA
IC0xMDEsNyArMTAxLDcgQEAgQ1NTU3R5bGVTaGVldDo6Q1NTU3R5bGVTaGVldChQYXNzUmVmPFN0
eWxlU2hlZXRDb250ZW50cz4gY29udGVudHMsIENTU0ltcG9ydFJ1bGUKIH0KIAogQ1NTU3R5bGVT
aGVldDo6Q1NTU3R5bGVTaGVldChQYXNzUmVmPFN0eWxlU2hlZXRDb250ZW50cz4gY29udGVudHMs
IE5vZGUqIG93bmVyTm9kZSwgYm9vbCBpc0lubGluZVN0eWxlc2hlZXQpCi0gICAgOiBtX2NvbnRl
bnRzKHN0ZDo6bW92ZShjb250ZW50cykpCisgICAgOiBtX2NvbnRlbnRzKFdURjo6bW92ZShjb250
ZW50cykpCiAgICAgLCBtX2lzSW5saW5lU3R5bGVzaGVldChpc0lubGluZVN0eWxlc2hlZXQpCiAg
ICAgLCBtX2lzRGlzYWJsZWQoZmFsc2UpCiAgICAgLCBtX293bmVyTm9kZShvd25lck5vZGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAKaW5kZXggYzUz
ODg3Zi4uM2M2MGFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRT
dHlsZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkU3R5bGVC
dWlsZGVyLmNwcApAQCAtMzU0LDcgKzM1NCw3IEBAIHRlbXBsYXRlIDxjb25zdCBMZW5ndGgmIChS
ZW5kZXJTdHlsZTo6KmdldHRlckZ1bmN0aW9uKSgpIGNvbnN0LAogICAgICAgICAgIExlbmd0aFVu
ZGVmaW5lZCBub25lVW5kZWZpbmVkID0gVW5kZWZpbmVkRGlzYWJsZWQ+CiBjbGFzcyBBcHBseVBy
b3BlcnR5TGVuZ3RoIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgdm9pZCBzZXRWYWx1ZShSZW5kZXJT
dHlsZSogc3R5bGUsIExlbmd0aCB2YWx1ZSkgeyAoc3R5bGUtPipzZXR0ZXJGdW5jdGlvbikoc3Rk
Ojptb3ZlKHZhbHVlKSk7IH0KKyAgICBzdGF0aWMgdm9pZCBzZXRWYWx1ZShSZW5kZXJTdHlsZSog
c3R5bGUsIExlbmd0aCB2YWx1ZSkgeyAoc3R5bGUtPipzZXR0ZXJGdW5jdGlvbikoV1RGOjptb3Zl
KHZhbHVlKSk7IH0KICAgICBzdGF0aWMgdm9pZCBhcHBseVZhbHVlKENTU1Byb3BlcnR5SUQsIFN0
eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICB7CiAgICAg
ICAgIGlmICghdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKQEAgLTQyOSw3ICs0MjksNyBAQCBw
dWJsaWM6CiB0ZW1wbGF0ZSA8Y29uc3QgTGVuZ3RoU2l6ZSYgKFJlbmRlclN0eWxlOjoqZ2V0dGVy
RnVuY3Rpb24pKCkgY29uc3QsIHZvaWQgKFJlbmRlclN0eWxlOjoqc2V0dGVyRnVuY3Rpb24pKExl
bmd0aFNpemUpLCBMZW5ndGhTaXplICgqaW5pdGlhbEZ1bmN0aW9uKSgpPgogY2xhc3MgQXBwbHlQ
cm9wZXJ0eUJvcmRlclJhZGl1cyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHZvaWQgc2V0VmFsdWUo
UmVuZGVyU3R5bGUqIHN0eWxlLCBMZW5ndGhTaXplIHZhbHVlKSB7IChzdHlsZS0+KnNldHRlckZ1
bmN0aW9uKShzdGQ6Om1vdmUodmFsdWUpKTsgfQorICAgIHN0YXRpYyB2b2lkIHNldFZhbHVlKFJl
bmRlclN0eWxlKiBzdHlsZSwgTGVuZ3RoU2l6ZSB2YWx1ZSkgeyAoc3R5bGUtPipzZXR0ZXJGdW5j
dGlvbikoV1RGOjptb3ZlKHZhbHVlKSk7IH0KICAgICBzdGF0aWMgdm9pZCBhcHBseVZhbHVlKENT
U1Byb3BlcnR5SUQsIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIsIENTU1ZhbHVlKiB2YWx1
ZSkKICAgICB7CiAgICAgICAgIGlmICghdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Eb2N1bWVudFJ1bGVTZXRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9Eb2N1bWVudFJ1bGVTZXRzLmNwcAppbmRleCA4ZmEyNzJhLi4yOTJhOWE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRG9jdW1lbnRSdWxlU2V0cy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0RvY3VtZW50UnVsZVNldHMuY3BwCkBAIC01NCw3ICs1NCw3IEBA
IHZvaWQgRG9jdW1lbnRSdWxlU2V0czo6aW5pdFVzZXJTdHlsZShEb2N1bWVudFN0eWxlU2hlZXRD
b2xsZWN0aW9uJiBzdHlsZVNoZWV0Q29sCiAgICAgY29sbGVjdFJ1bGVzRnJvbVVzZXJTdHlsZVNo
ZWV0cyhzdHlsZVNoZWV0Q29sbGVjdGlvbi5pbmplY3RlZFVzZXJTdHlsZVNoZWV0cygpLCAqdGVt
cFVzZXJTdHlsZSwgbWVkaXVtLCByZXNvbHZlcik7CiAgICAgY29sbGVjdFJ1bGVzRnJvbVVzZXJT
dHlsZVNoZWV0cyhzdHlsZVNoZWV0Q29sbGVjdGlvbi5kb2N1bWVudFVzZXJTdHlsZVNoZWV0cygp
LCAqdGVtcFVzZXJTdHlsZSwgbWVkaXVtLCByZXNvbHZlcik7CiAgICAgaWYgKHRlbXBVc2VyU3R5
bGUtPnJ1bGVDb3VudCgpID4gMCB8fCB0ZW1wVXNlclN0eWxlLT5wYWdlUnVsZXMoKS5zaXplKCkg
PiAwKQotICAgICAgICBtX3VzZXJTdHlsZSA9IHN0ZDo6bW92ZSh0ZW1wVXNlclN0eWxlKTsKKyAg
ICAgICAgbV91c2VyU3R5bGUgPSBXVEY6Om1vdmUodGVtcFVzZXJTdHlsZSk7CiB9CiAKIHZvaWQg
RG9jdW1lbnRSdWxlU2V0czo6Y29sbGVjdFJ1bGVzRnJvbVVzZXJTdHlsZVNoZWV0cyhjb25zdCBW
ZWN0b3I8UmVmUHRyPENTU1N0eWxlU2hlZXQ+PiYgdXNlclNoZWV0cywgUnVsZVNldCYgdXNlclN0
eWxlLCBjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBtZWRpdW0sIFN0eWxlUmVzb2x2ZXImIHJl
c29sdmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcAppbmRleCA3ZDQ5NGJjLi45NDQ1MDg2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcApAQCAtMTQzLDcgKzE0Myw3IEBAIGJvb2wgTWVkaWFR
dWVyeVNldDo6cGFyc2UoY29uc3QgU3RyaW5nJiBtZWRpYVN0cmluZykKICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgICAgIG1lZGlhUXVlcnkgPSBzdGQ6Om1ha2VfdW5pcXVlPE1l
ZGlhUXVlcnk+KE1lZGlhUXVlcnk6Ok5vbmUsIG1lZGlhRGVzY3JpcHRvciwgbnVsbHB0cik7CiAg
ICAgICAgIH0KLSAgICAgICAgcmVzdWx0LmFwcGVuZChzdGQ6Om1vdmUobWVkaWFRdWVyeSkpOwor
ICAgICAgICByZXN1bHQuYXBwZW5kKFdURjo6bW92ZShtZWRpYVF1ZXJ5KSk7CiAgICAgfQogICAg
IC8vICIsLCwsIiBmYWxscyBzdHJhaWdodCB0aHJvdWdoLCBidXQgaXMgbm90IHZhbGlkIHVubGVz
cyBmYWxsYmFjawogICAgIGlmICghbV9mYWxsYmFja1RvRGVzY3JpcHRvciAmJiBsaXN0LmlzRW1w
dHkoKSkgewpAQCAtMTUxLDcgKzE1MSw3IEBAIGJvb2wgTWVkaWFRdWVyeVNldDo6cGFyc2UoY29u
c3QgU3RyaW5nJiBtZWRpYVN0cmluZykKICAgICAgICAgaWYgKCFzdHJpcHBlZE1lZGlhU3RyaW5n
LmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgbV9xdWVy
aWVzID0gc3RkOjptb3ZlKHJlc3VsdCk7CisgICAgbV9xdWVyaWVzID0gV1RGOjptb3ZlKHJlc3Vs
dCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTE2OCw3ICsxNjgsNyBAQCBib29sIE1lZGlh
UXVlcnlTZXQ6OmFkZChjb25zdCBTdHJpbmcmIHF1ZXJ5U3RyaW5nKQogICAgIGlmICghcGFyc2Vk
UXVlcnkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIG1fcXVlcmllcy5hcHBlbmQoc3Rk
Ojptb3ZlKHBhcnNlZFF1ZXJ5KSk7CisgICAgbV9xdWVyaWVzLmFwcGVuZChXVEY6Om1vdmUocGFy
c2VkUXVlcnkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTk3LDcgKzE5Nyw3IEBAIGJv
b2wgTWVkaWFRdWVyeVNldDo6cmVtb3ZlKGNvbnN0IFN0cmluZyYgcXVlcnlTdHJpbmdUb1JlbW92
ZSkKIAogdm9pZCBNZWRpYVF1ZXJ5U2V0OjphZGRNZWRpYVF1ZXJ5KHN0ZDo6dW5pcXVlX3B0cjxN
ZWRpYVF1ZXJ5PiBtZWRpYVF1ZXJ5KQogewotICAgIG1fcXVlcmllcy5hcHBlbmQoc3RkOjptb3Zl
KG1lZGlhUXVlcnkpKTsKKyAgICBtX3F1ZXJpZXMuYXBwZW5kKFdURjo6bW92ZShtZWRpYVF1ZXJ5
KSk7CiB9CiAKIFN0cmluZyBNZWRpYVF1ZXJ5U2V0OjptZWRpYVRleHQoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL01lZGlhUXVlcnkuY3BwCmluZGV4IGYxZGIzYmQuLmM2ZGQ1MmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeS5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgU3RyaW5nIE1lZGlhUXVlcnk6OnNlcmlh
bGl6ZSgpIGNvbnN0CiBNZWRpYVF1ZXJ5OjpNZWRpYVF1ZXJ5KFJlc3RyaWN0b3IgciwgY29uc3Qg
U3RyaW5nJiBtZWRpYVR5cGUsIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uVmVjdG9yPiBleHBy
cykKICAgICA6IG1fcmVzdHJpY3RvcihyKQogICAgICwgbV9tZWRpYVR5cGUobWVkaWFUeXBlLmxv
d2VyKCkpCi0gICAgLCBtX2V4cHJlc3Npb25zKHN0ZDo6bW92ZShleHBycykpCisgICAgLCBtX2V4
cHJlc3Npb25zKFdURjo6bW92ZShleHBycykpCiAgICAgLCBtX2lnbm9yZWQoZmFsc2UpCiB7CiAg
ICAgaWYgKCFtX2V4cHJlc3Npb25zKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
UnVsZVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAKaW5kZXggZjMzZmQz
Ny4uNzc3ZTcyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcApAQCAtMjY3LDcgKzI2Nyw3IEBAIHZv
aWQgUnVsZVNldDo6YWRkUmVnaW9uUnVsZShTdHlsZVJ1bGVSZWdpb24qIHJlZ2lvblJ1bGUsIGJv
b2wgaGFzRG9jdW1lbnRTZWN1cml0CiAgICAgLy8gVXBkYXRlIHRoZSAiZ2xvYmFsIiBydWxlIGNv
dW50IHNvIHRoYXQgcHJvcGVyIG9yZGVyIGlzIG1haW50YWluZWQKICAgICBtX3J1bGVDb3VudCA9
IHJlZ2lvblJ1bGVTZXQtPm1fcnVsZUNvdW50OwogCi0gICAgbV9yZWdpb25TZWxlY3RvcnNBbmRS
dWxlU2V0cy5hcHBlbmQoUnVsZVNldFNlbGVjdG9yUGFpcihyZWdpb25SdWxlLT5zZWxlY3Rvckxp
c3QoKS5maXJzdCgpLCBzdGQ6Om1vdmUocmVnaW9uUnVsZVNldCkpKTsKKyAgICBtX3JlZ2lvblNl
bGVjdG9yc0FuZFJ1bGVTZXRzLmFwcGVuZChSdWxlU2V0U2VsZWN0b3JQYWlyKHJlZ2lvblJ1bGUt
PnNlbGVjdG9yTGlzdCgpLmZpcnN0KCksIFdURjo6bW92ZShyZWdpb25SdWxlU2V0KSkpOwogfQog
CiB2b2lkIFJ1bGVTZXQ6OmFkZENoaWxkUnVsZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1
bGVCYXNlPj4mIHJ1bGVzLCBjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBtZWRpdW0sIFN0eWxl
UmVzb2x2ZXIqIHJlc29sdmVyLCBib29sIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4sIEFkZFJ1
bGVGbGFncyBhZGRSdWxlRmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVs
ZVNldC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaAppbmRleCA3MjBjNDdiLi43MjAx
N2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmgKQEAgLTEyOCw3ICsxMjgsNyBAQCBjbGFzcyBSdWxlU2V0
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSdWxlU2V0KTsgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6CiAgICAgc3RydWN0IFJ1bGVTZXRTZWxlY3RvclBhaXIgewotICAgICAg
ICBSdWxlU2V0U2VsZWN0b3JQYWlyKGNvbnN0IENTU1NlbGVjdG9yKiBzZWxlY3Rvciwgc3RkOjp1
bmlxdWVfcHRyPFJ1bGVTZXQ+IHJ1bGVTZXQpIDogc2VsZWN0b3Ioc2VsZWN0b3IpLCBydWxlU2V0
KHN0ZDo6bW92ZShydWxlU2V0KSkgeyB9CisgICAgICAgIFJ1bGVTZXRTZWxlY3RvclBhaXIoY29u
c3QgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yLCBzdGQ6OnVuaXF1ZV9wdHI8UnVsZVNldD4gcnVsZVNl
dCkgOiBzZWxlY3RvcihzZWxlY3RvciksIHJ1bGVTZXQoV1RGOjptb3ZlKHJ1bGVTZXQpKSB7IH0K
ICAgICAgICAgUnVsZVNldFNlbGVjdG9yUGFpcihjb25zdCBSdWxlU2V0U2VsZWN0b3JQYWlyJiBw
YWlyKSA6IHNlbGVjdG9yKHBhaXIuc2VsZWN0b3IpLCBydWxlU2V0KGNvbnN0X2Nhc3Q8UnVsZVNl
dFNlbGVjdG9yUGFpcio+KCZwYWlyKS0+cnVsZVNldC5yZWxlYXNlKCkpIHsgfQogCiAgICAgICAg
IGNvbnN0IENTU1NlbGVjdG9yKiBzZWxlY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NT
dHlsZVNlbGVjdG9yLmNwcAppbmRleCA2ZTA5Y2FmLi5kZTk4NWMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC02MDUsNyArNjA1LDcgQEAgdm9pZCBT
dHlsZVJlc29sdmVyOjphcHBseVNWR1Byb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVl
KiB2YWx1ZSkKICAgICAgICAgICAgIEFTU0VSVCghaXRlbS0+c3R5bGUpOwogCiAgICAgICAgICAg
ICBhdXRvIHNoYWRvd0RhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPFNoYWRvd0RhdGE+KGxvY2F0aW9u
LCBibHVyLCAwLCBOb3JtYWwsIGZhbHNlLCBjb2xvci5pc1ZhbGlkKCkgPyBjb2xvciA6IENvbG9y
Ojp0cmFuc3BhcmVudCk7Ci0gICAgICAgICAgICBzdmdTdHlsZS5zZXRTaGFkb3coc3RkOjptb3Zl
KHNoYWRvd0RhdGEpKTsKKyAgICAgICAgICAgIHN2Z1N0eWxlLnNldFNoYWRvdyhXVEY6Om1vdmUo
c2hhZG93RGF0YSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlWZWN0b3JFZmZlY3Q6IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9Tb3VyY2VTaXplTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU291cmNlU2l6ZUxp
c3QuY3BwCmluZGV4IDdmYWM5YWMuLjdkODYyZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9Tb3VyY2VTaXplTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NvdXJjZVNp
emVMaXN0LmNwcApAQCAtNDEsNyArNDEsNyBAQCBib29sIFNvdXJjZVNpemU6Om1hdGNoKFJlbmRl
clN0eWxlJiBzdHlsZSwgRnJhbWUqIGZyYW1lKQogICAgIGV4cExpc3QtPmFwcGVuZChtX21lZGlh
RXhwLnJlbGVhc2UoKSk7CiAKICAgICBSZWZQdHI8TWVkaWFRdWVyeVNldD4gbWVkaWFRdWVyeVNl
dCA9IE1lZGlhUXVlcnlTZXQ6OmNyZWF0ZSgpOwotICAgIG1lZGlhUXVlcnlTZXQtPmFkZE1lZGlh
UXVlcnkoc3RkOjptYWtlX3VuaXF1ZTxNZWRpYVF1ZXJ5PihNZWRpYVF1ZXJ5OjpOb25lLCAiYWxs
Iiwgc3RkOjptb3ZlKGV4cExpc3QpKSk7CisgICAgbWVkaWFRdWVyeVNldC0+YWRkTWVkaWFRdWVy
eShzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUXVlcnk+KE1lZGlhUXVlcnk6Ok5vbmUsICJhbGwiLCBX
VEY6Om1vdmUoZXhwTGlzdCkpKTsKIAogICAgIE1lZGlhUXVlcnlFdmFsdWF0b3IgbWVkaWFRdWVy
eUV2YWx1YXRvcigic2NyZWVuIiwgZnJhbWUsICZzdHlsZSk7CiAgICAgcmV0dXJuIG1lZGlhUXVl
cnlFdmFsdWF0b3IuZXZhbChtZWRpYVF1ZXJ5U2V0LmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9Tb3VyY2VTaXplTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1NvdXJj
ZVNpemVMaXN0LmgKaW5kZXggMWQ2YTVjMC4uZGExNjk3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL1NvdXJjZVNpemVMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NvdXJj
ZVNpemVMaXN0LmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgRnJhbWU7CiBjbGFzcyBTb3VyY2VT
aXplIHsKIHB1YmxpYzoKICAgICBTb3VyY2VTaXplKHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVF1ZXJ5
RXhwPiBtZWRpYUV4cCwgY29uc3QgQ1NTUGFyc2VyVmFsdWUmIGxlbmd0aCkKLSAgICAgICAgOiBt
X21lZGlhRXhwKHN0ZDo6bW92ZShtZWRpYUV4cCkpCisgICAgICAgIDogbV9tZWRpYUV4cChXVEY6
Om1vdmUobWVkaWFFeHApKQogICAgICAgICAsIG1fbGVuZ3RoKGxlbmd0aCkKICAgICB7CiAgICAg
fQpAQCAtNTIsNyArNTIsNyBAQCBjbGFzcyBTb3VyY2VTaXplTGlzdCB7CiBwdWJsaWM6CiAgICAg
dm9pZCBhcHBlbmQoc3RkOjp1bmlxdWVfcHRyPFNvdXJjZVNpemU+IHNvdXJjZVNpemUpCiAgICAg
ewotICAgICAgICBtX2xpc3QuYXBwZW5kKHN0ZDo6bW92ZShzb3VyY2VTaXplKSk7CisgICAgICAg
IG1fbGlzdC5hcHBlbmQoV1RGOjptb3ZlKHNvdXJjZVNpemUpKTsKICAgICB9CiAKICAgICBzdGF0
aWMgdW5zaWduZWQgcGFyc2VTaXplc0F0dHJpYnV0ZShjb25zdCBTdHJpbmcmIHNpemVzQXR0cmli
dXRlLCBSZW5kZXJWaWV3KiwgRnJhbWUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNw
cAppbmRleCA1YmQzNDcxLi43OWNmZGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIu
Y3BwCkBAIC00MjgsNyArNDI4LDcgQEAgaW5saW5lIHZvaWQgU3R5bGVSZXNvbHZlcjo6U3RhdGU6
OmluaXRGb3JTdHlsZVJlc29sdmUoRG9jdW1lbnQmIGRvY3VtZW50LCBFbGVtZW4KIAogaW5saW5l
IHZvaWQgU3R5bGVSZXNvbHZlcjo6U3RhdGU6OnNldFN0eWxlKFBhc3NSZWY8UmVuZGVyU3R5bGU+
IHN0eWxlKQogewotICAgIG1fc3R5bGUgPSBzdGQ6Om1vdmUoc3R5bGUpOworICAgIG1fc3R5bGUg
PSBXVEY6Om1vdmUoc3R5bGUpOwogICAgIHVwZGF0ZUNvbnZlcnNpb25EYXRhKCk7CiB9CiAKQEAg
LTE1ODQsNyArMTU4NCw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YWRkVG9NYXRjaGVkUHJvcGVy
dGllc0NhY2hlKGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgY29uc3QKICAgICAvLyBUaGUgUmVu
ZGVyU3R5bGUgaW4gdGhlIGNhY2hlIGlzIHJlYWxseSBqdXN0IGEgaG9sZGVyIGZvciB0aGUgc3Vi
c3RydWN0dXJlcyBhbmQgbmV2ZXIgdXNlZCBhcy1pcy4KICAgICBjYWNoZUl0ZW0ucmVuZGVyU3R5
bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmUoc3R5bGUpOwogICAgIGNhY2hlSXRlbS5wYXJlbnRSZW5k
ZXJTdHlsZSA9IFJlbmRlclN0eWxlOjpjbG9uZShwYXJlbnRTdHlsZSk7Ci0gICAgbV9tYXRjaGVk
UHJvcGVydGllc0NhY2hlLmFkZChoYXNoLCBzdGQ6Om1vdmUoY2FjaGVJdGVtKSk7CisgICAgbV9t
YXRjaGVkUHJvcGVydGllc0NhY2hlLmFkZChoYXNoLCBXVEY6Om1vdmUoY2FjaGVJdGVtKSk7CiB9
CiAKIHZvaWQgU3R5bGVSZXNvbHZlcjo6aW52YWxpZGF0ZU1hdGNoZWRQcm9wZXJ0aWVzQ2FjaGUo
KQpAQCAtMjEzMSw3ICsyMTMxLDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5
KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICAgICAgICAgICAgICAgICAg
aWYgKGxpc3RTdHlsZUlkZW50ICE9IENTU1ZhbHVlTm9uZSkKICAgICAgICAgICAgICAgICAgICAg
ICAgIGxpc3RTdHlsZVR5cGUgPSBzdGF0aWNfY2FzdDxFTGlzdFN0eWxlVHlwZT4obGlzdFN0eWxl
SWRlbnQgLSBDU1NWYWx1ZURpc2MpOwogICAgICAgICAgICAgICAgICAgICBhdXRvIGNvdW50ZXIg
PSBzdGQ6Om1ha2VfdW5pcXVlPENvdW50ZXJDb250ZW50Pihjb3VudGVyVmFsdWUtPmlkZW50aWZp
ZXIoKSwgbGlzdFN0eWxlVHlwZSwgY291bnRlclZhbHVlLT5zZXBhcmF0b3IoKSk7Ci0gICAgICAg
ICAgICAgICAgICAgIHN0YXRlLnN0eWxlKCktPnNldENvbnRlbnQoc3RkOjptb3ZlKGNvdW50ZXIp
LCBkaWRTZXQpOworICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zdHlsZSgpLT5zZXRDb250ZW50
KFdURjo6bW92ZShjb3VudGVyKSwgZGlkU2V0KTsKICAgICAgICAgICAgICAgICAgICAgZGlkU2V0
ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBz
d2l0Y2ggKGNvbnRlbnRWYWx1ZS0+Z2V0VmFsdWVJRCgpKSB7CkBAIC0yMzU0LDkgKzIzNTQsOSBA
QCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCwgQ1NT
VmFsdWUqIHZhbHVlKQogCiAgICAgICAgICAgICBhdXRvIHNoYWRvd0RhdGEgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFNoYWRvd0RhdGE+KEludFBvaW50KHgsIHkpLCBibHVyLCBzcHJlYWQsIHNoYWRvd1N0
eWxlLCBpZCA9PSBDU1NQcm9wZXJ0eVdlYmtpdEJveFNoYWRvdywgY29sb3IuaXNWYWxpZCgpID8g
Y29sb3IgOiBDb2xvcjo6dHJhbnNwYXJlbnQpOwogICAgICAgICAgICAgaWYgKGlkID09IENTU1By
b3BlcnR5VGV4dFNoYWRvdykKLSAgICAgICAgICAgICAgICBzdGF0ZS5zdHlsZSgpLT5zZXRUZXh0
U2hhZG93KHN0ZDo6bW92ZShzaGFkb3dEYXRhKSwgaS5pbmRleCgpKTsgLy8gYWRkIHRvIHRoZSBs
aXN0IGlmIHRoaXMgaXMgbm90IHRoZSBmaXJzdCBlbnRyeQorICAgICAgICAgICAgICAgIHN0YXRl
LnN0eWxlKCktPnNldFRleHRTaGFkb3coV1RGOjptb3ZlKHNoYWRvd0RhdGEpLCBpLmluZGV4KCkp
OyAvLyBhZGQgdG8gdGhlIGxpc3QgaWYgdGhpcyBpcyBub3QgdGhlIGZpcnN0IGVudHJ5CiAgICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgc3RhdGUuc3R5bGUoKS0+c2V0Qm94U2hhZG93
KHN0ZDo6bW92ZShzaGFkb3dEYXRhKSwgaS5pbmRleCgpKTsgLy8gYWRkIHRvIHRoZSBsaXN0IGlm
IHRoaXMgaXMgbm90IHRoZSBmaXJzdCBlbnRyeQorICAgICAgICAgICAgICAgIHN0YXRlLnN0eWxl
KCktPnNldEJveFNoYWRvdyhXVEY6Om1vdmUoc2hhZG93RGF0YSksIGkuaW5kZXgoKSk7IC8vIGFk
ZCB0byB0aGUgbGlzdCBpZiB0aGlzIGlzIG5vdCB0aGUgZmlyc3QgZW50cnkKICAgICAgICAgfQog
ICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKaW5kZXgg
NzIzZDBkMi4uY2M5NGY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVz
b2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCkBAIC0zNjMs
NyArMzYzLDcgQEAgcHVibGljOgogICAgICAgICBSZW5kZXJTdHlsZSogc3R5bGUoKSBjb25zdCB7
IHJldHVybiBtX3N0eWxlLmdldCgpOyB9CiAgICAgICAgIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHRh
a2VTdHlsZSgpIHsgcmV0dXJuIG1fc3R5bGUucmVsZWFzZU5vbk51bGwoKTsgfQogCi0gICAgICAg
IHZvaWQgc2V0UGFyZW50U3R5bGUoUGFzc1JlZjxSZW5kZXJTdHlsZT4gcGFyZW50U3R5bGUpIHsg
bV9wYXJlbnRTdHlsZSA9IHN0ZDo6bW92ZShwYXJlbnRTdHlsZSk7IH0KKyAgICAgICAgdm9pZCBz
ZXRQYXJlbnRTdHlsZShQYXNzUmVmPFJlbmRlclN0eWxlPiBwYXJlbnRTdHlsZSkgeyBtX3BhcmVu
dFN0eWxlID0gV1RGOjptb3ZlKHBhcmVudFN0eWxlKTsgfQogICAgICAgICBSZW5kZXJTdHlsZSog
cGFyZW50U3R5bGUoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudFN0eWxlLmdldCgpOyB9CiAgICAg
ICAgIFJlbmRlclN0eWxlKiByb290RWxlbWVudFN0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9yb290
RWxlbWVudFN0eWxlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1
bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAKaW5kZXggNWY3YjQ4NS4u
ODM3NDFhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAKQEAgLTIwMyw3ICsyMDMsNyBAQCB1
bnNpZ25lZCBTdHlsZVJ1bGU6OmF2ZXJhZ2VTaXplSW5CeXRlcygpCiAKIFN0eWxlUnVsZTo6U3R5
bGVSdWxlKGludCBzb3VyY2VMaW5lLCBQYXNzUmVmPFN0eWxlUHJvcGVydGllcz4gcHJvcGVydGll
cykKICAgICA6IFN0eWxlUnVsZUJhc2UoU3R5bGUsIHNvdXJjZUxpbmUpCi0gICAgLCBtX3Byb3Bl
cnRpZXMoc3RkOjptb3ZlKHByb3BlcnRpZXMpKQorICAgICwgbV9wcm9wZXJ0aWVzKFdURjo6bW92
ZShwcm9wZXJ0aWVzKSkKIHsKIH0KIApAQCAtMjMyLDcgKzIzMiw3IEBAIFBhc3NSZWY8U3R5bGVS
dWxlPiBTdHlsZVJ1bGU6OmNyZWF0ZShpbnQgc291cmNlTGluZSwgY29uc3QgVmVjdG9yPGNvbnN0
IENTU1NlbGVjCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNlbGVjdG9ycy5zaXplKCk7
ICsraSkKICAgICAgICAgbmV3IChOb3ROdWxsLCAmc2VsZWN0b3JMaXN0QXJyYXlbaV0pIENTU1Nl
bGVjdG9yKCpzZWxlY3RvcnMuYXQoaSkpOwogICAgIHNlbGVjdG9yTGlzdEFycmF5W3NlbGVjdG9y
cy5zaXplKCkgLSAxXS5zZXRMYXN0SW5TZWxlY3Rvckxpc3QoKTsKLSAgICBhdXRvIHJ1bGUgPSBT
dHlsZVJ1bGU6OmNyZWF0ZShzb3VyY2VMaW5lLCBzdGQ6Om1vdmUocHJvcGVydGllcykpOworICAg
IGF1dG8gcnVsZSA9IFN0eWxlUnVsZTo6Y3JlYXRlKHNvdXJjZUxpbmUsIFdURjo6bW92ZShwcm9w
ZXJ0aWVzKSk7CiAgICAgcnVsZS5nZXQoKS5wYXJzZXJBZG9wdFNlbGVjdG9yQXJyYXkoc2VsZWN0
b3JMaXN0QXJyYXkpOwogICAgIHJldHVybiBydWxlOwogfQpAQCAtMjY1LDcgKzI2NSw3IEBAIFZl
Y3RvcjxSZWZQdHI8U3R5bGVSdWxlPj4gU3R5bGVSdWxlOjpzcGxpdEludG9NdWx0aXBsZVJ1bGVz
V2l0aE1heGltdW1TZWxlY3RvckNvCiAKIFN0eWxlUnVsZVBhZ2U6OlN0eWxlUnVsZVBhZ2UoUGFz
c1JlZjxTdHlsZVByb3BlcnRpZXM+IHByb3BlcnRpZXMpCiAgICAgOiBTdHlsZVJ1bGVCYXNlKFBh
Z2UpCi0gICAgLCBtX3Byb3BlcnRpZXMoc3RkOjptb3ZlKHByb3BlcnRpZXMpKQorICAgICwgbV9w
cm9wZXJ0aWVzKFdURjo6bW92ZShwcm9wZXJ0aWVzKSkKIHsKIH0KIApAQCAtMjg5LDcgKzI4OSw3
IEBAIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIFN0eWxlUnVsZVBhZ2U6Om11dGFibGVQcm9wZXJ0
aWVzKCkKIAogU3R5bGVSdWxlRm9udEZhY2U6OlN0eWxlUnVsZUZvbnRGYWNlKFBhc3NSZWY8U3R5
bGVQcm9wZXJ0aWVzPiBwcm9wZXJ0aWVzKQogICAgIDogU3R5bGVSdWxlQmFzZShGb250RmFjZSwg
MCkKLSAgICAsIG1fcHJvcGVydGllcyhzdGQ6Om1vdmUocHJvcGVydGllcykpCisgICAgLCBtX3By
b3BlcnRpZXMoV1RGOjptb3ZlKHByb3BlcnRpZXMpKQogewogfQogCkBAIC0zMjYsNyArMzI2LDcg
QEAgU3R5bGVSdWxlR3JvdXA6OlN0eWxlUnVsZUdyb3VwKGNvbnN0IFN0eWxlUnVsZUdyb3VwJiBv
KQogCiB2b2lkIFN0eWxlUnVsZUdyb3VwOjp3cmFwcGVySW5zZXJ0UnVsZSh1bnNpZ25lZCBpbmRl
eCwgUGFzc1JlZjxTdHlsZVJ1bGVCYXNlPiBydWxlKQogewotICAgIG1fY2hpbGRSdWxlcy5pbnNl
cnQoaW5kZXgsIHN0ZDo6bW92ZShydWxlKSk7CisgICAgbV9jaGlsZFJ1bGVzLmluc2VydChpbmRl
eCwgV1RGOjptb3ZlKHJ1bGUpKTsKIH0KICAgICAKIHZvaWQgU3R5bGVSdWxlR3JvdXA6OndyYXBw
ZXJSZW1vdmVSdWxlKHVuc2lnbmVkIGluZGV4KQpAQCAtMzgxLDcgKzM4MSw3IEBAIFN0eWxlUnVs
ZVJlZ2lvbjo6U3R5bGVSdWxlUmVnaW9uKGNvbnN0IFN0eWxlUnVsZVJlZ2lvbiYgbykKICNpZiBF
TkFCTEUoQ1NTX0RFVklDRV9BREFQVEFUSU9OKQogU3R5bGVSdWxlVmlld3BvcnQ6OlN0eWxlUnVs
ZVZpZXdwb3J0KFBhc3NSZWY8U3R5bGVQcm9wZXJ0aWVzPiBwcm9wZXJ0aWVzKQogICAgIDogU3R5
bGVSdWxlQmFzZShWaWV3cG9ydCwgMCkKLSAgICAsIG1fcHJvcGVydGllcyhzdGQ6Om1vdmUocHJv
cGVydGllcykpCisgICAgLCBtX3Byb3BlcnRpZXMoV1RGOjptb3ZlKHByb3BlcnRpZXMpKQogewog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSdWxlLmgKaW5kZXggYWE2YjgxNS4uN2U3NzBiNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJ1bGUuaApAQCAtMTA4LDcgKzEwOCw3IEBAIGNsYXNzIFN0eWxlUnVsZSA6IHB1Ymxp
YyBTdHlsZVJ1bGVCYXNlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZjxTdHlsZVJ1bGU+
IGNyZWF0ZShpbnQgc291cmNlTGluZSwgUGFzc1JlZjxTdHlsZVByb3BlcnRpZXM+IHByb3BlcnRp
ZXMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdHlsZVJ1bGUoc291cmNl
TGluZSwgc3RkOjptb3ZlKHByb3BlcnRpZXMpKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFN0eWxlUnVsZShzb3VyY2VMaW5lLCBXVEY6Om1vdmUocHJvcGVydGllcykpKTsKICAgICB9
CiAgICAgCiAgICAgflN0eWxlUnVsZSgpOwpAQCAtMTE4LDcgKzExOCw3IEBAIHB1YmxpYzoKICAg
ICBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBtdXRhYmxlUHJvcGVydGllcygpOwogICAgIAogICAg
IHZvaWQgcGFyc2VyQWRvcHRTZWxlY3RvclZlY3RvcihWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENT
U1BhcnNlclNlbGVjdG9yPj4mIHNlbGVjdG9ycykgeyBtX3NlbGVjdG9yTGlzdC5hZG9wdFNlbGVj
dG9yVmVjdG9yKHNlbGVjdG9ycyk7IH0KLSAgICB2b2lkIHdyYXBwZXJBZG9wdFNlbGVjdG9yTGlz
dChDU1NTZWxlY3Rvckxpc3QmIHNlbGVjdG9ycykgeyBtX3NlbGVjdG9yTGlzdCA9IHN0ZDo6bW92
ZShzZWxlY3RvcnMpOyB9CisgICAgdm9pZCB3cmFwcGVyQWRvcHRTZWxlY3Rvckxpc3QoQ1NTU2Vs
ZWN0b3JMaXN0JiBzZWxlY3RvcnMpIHsgbV9zZWxlY3Rvckxpc3QgPSBXVEY6Om1vdmUoc2VsZWN0
b3JzKTsgfQogICAgIHZvaWQgcGFyc2VyQWRvcHRTZWxlY3RvckFycmF5KENTU1NlbGVjdG9yKiBz
ZWxlY3RvcnMpIHsgbV9zZWxlY3Rvckxpc3QuYWRvcHRTZWxlY3RvckFycmF5KHNlbGVjdG9ycyk7
IH0KIAogICAgIFBhc3NSZWY8U3R5bGVSdWxlPiBjb3B5KCkgY29uc3QgeyByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTdHlsZVJ1bGUoKnRoaXMpKTsgfQpAQCAtMTQ1LDcgKzE0NSw3IEBAIGlubGluZSBj
b25zdCBTdHlsZVJ1bGUqIHRvU3R5bGVSdWxlKGNvbnN0IFN0eWxlUnVsZUJhc2UqIHJ1bGUpCiAK
IGNsYXNzIFN0eWxlUnVsZUZvbnRGYWNlIDogcHVibGljIFN0eWxlUnVsZUJhc2UgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmPFN0eWxlUnVsZUZvbnRGYWNlPiBjcmVhdGUoUGFzc1JlZjxT
dHlsZVByb3BlcnRpZXM+IHByb3BlcnRpZXMpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3R5bGVS
dWxlRm9udEZhY2Uoc3RkOjptb3ZlKHByb3BlcnRpZXMpKSk7IH0KKyAgICBzdGF0aWMgUGFzc1Jl
ZjxTdHlsZVJ1bGVGb250RmFjZT4gY3JlYXRlKFBhc3NSZWY8U3R5bGVQcm9wZXJ0aWVzPiBwcm9w
ZXJ0aWVzKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFN0eWxlUnVsZUZvbnRGYWNlKFdURjo6bW92
ZShwcm9wZXJ0aWVzKSkpOyB9CiAgICAgCiAgICAgflN0eWxlUnVsZUZvbnRGYWNlKCk7CiAKQEAg
LTE2NCw3ICsxNjQsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBTdHlsZVJ1bGVQYWdlIDogcHVibGlj
IFN0eWxlUnVsZUJhc2UgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmPFN0eWxlUnVsZVBh
Z2U+IGNyZWF0ZShQYXNzUmVmPFN0eWxlUHJvcGVydGllcz4gcHJvcGVydGllcykgeyByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTdHlsZVJ1bGVQYWdlKHN0ZDo6bW92ZShwcm9wZXJ0aWVzKSkpOyB9Cisg
ICAgc3RhdGljIFBhc3NSZWY8U3R5bGVSdWxlUGFnZT4gY3JlYXRlKFBhc3NSZWY8U3R5bGVQcm9w
ZXJ0aWVzPiBwcm9wZXJ0aWVzKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFN0eWxlUnVsZVBhZ2Uo
V1RGOjptb3ZlKHByb3BlcnRpZXMpKSk7IH0KIAogICAgIH5TdHlsZVJ1bGVQYWdlKCk7CiAKQEAg
LTE3Myw3ICsxNzMsNyBAQCBwdWJsaWM6CiAgICAgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgbXV0
YWJsZVByb3BlcnRpZXMoKTsKIAogICAgIHZvaWQgcGFyc2VyQWRvcHRTZWxlY3RvclZlY3RvcihW
ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPj4mIHNlbGVjdG9ycykgeyBt
X3NlbGVjdG9yTGlzdC5hZG9wdFNlbGVjdG9yVmVjdG9yKHNlbGVjdG9ycyk7IH0KLSAgICB2b2lk
IHdyYXBwZXJBZG9wdFNlbGVjdG9yTGlzdChDU1NTZWxlY3Rvckxpc3QmIHNlbGVjdG9ycykgeyBt
X3NlbGVjdG9yTGlzdCA9IHN0ZDo6bW92ZShzZWxlY3RvcnMpOyB9CisgICAgdm9pZCB3cmFwcGVy
QWRvcHRTZWxlY3Rvckxpc3QoQ1NTU2VsZWN0b3JMaXN0JiBzZWxlY3RvcnMpIHsgbV9zZWxlY3Rv
ckxpc3QgPSBXVEY6Om1vdmUoc2VsZWN0b3JzKTsgfQogCiAgICAgUGFzc1JlZjxTdHlsZVJ1bGVQ
YWdlPiBjb3B5KCkgY29uc3QgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdHlsZVJ1bGVQYWdlKCp0
aGlzKSk7IH0KIApAQCAtMjYwLDcgKzI2MCw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKENTU19E
RVZJQ0VfQURBUFRBVElPTikKIGNsYXNzIFN0eWxlUnVsZVZpZXdwb3J0IDogcHVibGljIFN0eWxl
UnVsZUJhc2UgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmPFN0eWxlUnVsZVZpZXdwb3J0
PiBjcmVhdGUoUGFzc1JlZjxTdHlsZVByb3BlcnRpZXM+IHByb3BlcnRpZXMpIHsgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU3R5bGVSdWxlVmlld3BvcnQoc3RkOjptb3ZlKHByb3BlcnRpZXMpKSk7IH0K
KyAgICBzdGF0aWMgUGFzc1JlZjxTdHlsZVJ1bGVWaWV3cG9ydD4gY3JlYXRlKFBhc3NSZWY8U3R5
bGVQcm9wZXJ0aWVzPiBwcm9wZXJ0aWVzKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFN0eWxlUnVs
ZVZpZXdwb3J0KFdURjo6bW92ZShwcm9wZXJ0aWVzKSkpOyB9CiAKICAgICB+U3R5bGVSdWxlVmll
d3BvcnQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZy
YW1lUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNw
cAppbmRleCBlZTQyOWRmLi4wODcxMDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
V2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0
Q1NTS2V5ZnJhbWVSdWxlLmNwcApAQCAtMzQsNyArMzQsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBTdHlsZUtleWZyYW1lOjpTdHlsZUtleWZyYW1lKFBhc3NSZWY8U3R5bGVQcm9wZXJ0aWVz
PiBwcm9wZXJ0aWVzKQotICAgIDogbV9wcm9wZXJ0aWVzKHN0ZDo6bW92ZShwcm9wZXJ0aWVzKSkK
KyAgICA6IG1fcHJvcGVydGllcyhXVEY6Om1vdmUocHJvcGVydGllcykpCiB7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaAppbmRleCBhZTg4YjdjLi4zMDQ2
OWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5oCkBAIC00
MCw3ICs0MCw3IEBAIGNsYXNzIFN0eWxlS2V5ZnJhbWUgOiBwdWJsaWMgUmVmQ291bnRlZDxTdHls
ZUtleWZyYW1lPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3R5bGVLZXlmcmFt
ZT4gY3JlYXRlKFBhc3NSZWY8U3R5bGVQcm9wZXJ0aWVzPiBwcm9wZXJ0aWVzKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdHlsZUtleWZyYW1lKHN0ZDo6bW92ZShwcm9wZXJ0
aWVzKSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFN0eWxlS2V5ZnJhbWUoV1RGOjpt
b3ZlKHByb3BlcnRpZXMpKSk7CiAgICAgfQogICAgIH5TdHlsZUtleWZyYW1lKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmNwcAppbmRleCA0YjgwOGQ0
Li45YjE2YzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0YXRp
b25TY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9uU2Nv
cGUuY3BwCkBAIC01MCw3ICs1MCw3IEBAIHN0YXRpYyBBY2N1bXVsYXRvck1hcCYgYWNjdW11bGF0
b3JNYXAoKQogQ2hpbGRMaXN0TXV0YXRpb25BY2N1bXVsYXRvcjo6Q2hpbGRMaXN0TXV0YXRpb25B
Y2N1bXVsYXRvcihDb250YWluZXJOb2RlJiB0YXJnZXQsIHN0ZDo6dW5pcXVlX3B0cjxNdXRhdGlv
bk9ic2VydmVySW50ZXJlc3RHcm91cD4gb2JzZXJ2ZXJzKQogICAgIDogbV90YXJnZXQodGFyZ2V0
KQogICAgICwgbV9sYXN0QWRkZWQobnVsbHB0cikKLSAgICAsIG1fb2JzZXJ2ZXJzKHN0ZDo6bW92
ZShvYnNlcnZlcnMpKQorICAgICwgbV9vYnNlcnZlcnMoV1RGOjptb3ZlKG9ic2VydmVycykpCiB7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCmluZGV4IGZkOWRk
N2QuLmQ5MjI2MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcApA
QCAtMjQ1LDcgKzI0NSw3IEBAIFBhc3NSZWZQdHI8Q1NTU3R5bGVTaGVldD4gRE9NSW1wbGVtZW50
YXRpb246OmNyZWF0ZUNTU1N0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiwKICAgICAvLyBGSVhNRTog
TWVkaWEgY291bGQgaGF2ZSB3cm9uZyBzeW50YXgsIGluIHdoaWNoIGNhc2Ugd2Ugc2hvdWxkIGdl
bmVyYXRlIGFuIGV4Y2VwdGlvbi4KICAgICBhdXRvIHNoZWV0ID0gQ1NTU3R5bGVTaGVldDo6Y3Jl
YXRlKFN0eWxlU2hlZXRDb250ZW50czo6Y3JlYXRlKCkpOwogICAgIHNoZWV0LmdldCgpLnNldE1l
ZGlhUXVlcmllcyhNZWRpYVF1ZXJ5U2V0OjpjcmVhdGVBbGxvd2luZ0Rlc2NyaXB0aW9uU3ludGF4
KG1lZGlhKSk7Ci0gICAgcmV0dXJuIHN0ZDo6bW92ZShzaGVldCk7CisgICAgcmV0dXJuIFdURjo6
bW92ZShzaGVldCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1ZhbGlkWE1MTUlNRVR5cGVD
aGFyKFVDaGFyIGMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAxODMwNjYwLi41YjUzYWEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTQzMzAsNyArNDMzMCw3IEBAIHZvaWQgRG9j
dW1lbnQ6OmFwcGx5WFNMVHJhbnNmb3JtKFByb2Nlc3NpbmdJbnN0cnVjdGlvbiogcGkpCiAKIHZv
aWQgRG9jdW1lbnQ6OnNldFRyYW5zZm9ybVNvdXJjZShzdGQ6OnVuaXF1ZV9wdHI8VHJhbnNmb3Jt
U291cmNlPiBzb3VyY2UpCiB7Ci0gICAgbV90cmFuc2Zvcm1Tb3VyY2UgPSBzdGQ6Om1vdmUoc291
cmNlKTsKKyAgICBtX3RyYW5zZm9ybVNvdXJjZSA9IFdURjo6bW92ZShzb3VyY2UpOwogfQogCiAj
ZW5kaWYKQEAgLTQ5MDIsNyArNDkwMiw3IEBAIFNlY3VyaXR5T3JpZ2luKiBEb2N1bWVudDo6dG9w
T3JpZ2luKCkgY29uc3QKIAogdm9pZCBEb2N1bWVudDo6cG9zdFRhc2soVGFzayB0YXNrKQogewot
ICAgIFRhc2sqIHRhc2tQdHIgPSBzdGQ6Om1ha2VfdW5pcXVlPFRhc2s+KHN0ZDo6bW92ZSh0YXNr
KSkucmVsZWFzZSgpOworICAgIFRhc2sqIHRhc2tQdHIgPSBzdGQ6Om1ha2VfdW5pcXVlPFRhc2s+
KFdURjo6bW92ZSh0YXNrKSkucmVsZWFzZSgpOwogICAgIFdlYWtQdHI8RG9jdW1lbnQ+IGRvY3Vt
ZW50UmVmZXJlbmNlKG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigpKTsKIAogICAgIGNhbGxP
bk1haW5UaHJlYWQoWz1dIHsKQEAgLTQ5MTUsNyArNDkxNSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnBv
c3RUYXNrKFRhc2sgdGFzaykKIAogICAgICAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2Uo
KTsKICAgICAgICAgaWYgKChwYWdlICYmIHBhZ2UtPmRlZmVyc0xvYWRpbmcoKSkgfHwgIWRvY3Vt
ZW50LT5tX3BlbmRpbmdUYXNrcy5pc0VtcHR5KCkpCi0gICAgICAgICAgICBkb2N1bWVudC0+bV9w
ZW5kaW5nVGFza3MuYXBwZW5kKHN0ZDo6bW92ZSgqdGFzay5yZWxlYXNlKCkpKTsKKyAgICAgICAg
ICAgIGRvY3VtZW50LT5tX3BlbmRpbmdUYXNrcy5hcHBlbmQoV1RGOjptb3ZlKCp0YXNrLnJlbGVh
c2UoKSkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB0YXNrLT5wZXJmb3JtVGFzaygqZG9j
dW1lbnQpOwogICAgIH0pOwpAQCAtNDkyMyw3ICs0OTIzLDcgQEAgdm9pZCBEb2N1bWVudDo6cG9z
dFRhc2soVGFzayB0YXNrKQogCiB2b2lkIERvY3VtZW50OjpwZW5kaW5nVGFza3NUaW1lckZpcmVk
KFRpbWVyPERvY3VtZW50PiYpCiB7Ci0gICAgVmVjdG9yPFRhc2s+IHBlbmRpbmdUYXNrcyA9IHN0
ZDo6bW92ZShtX3BlbmRpbmdUYXNrcyk7CisgICAgVmVjdG9yPFRhc2s+IHBlbmRpbmdUYXNrcyA9
IFdURjo6bW92ZShtX3BlbmRpbmdUYXNrcyk7CiAgICAgZm9yIChhdXRvJiB0YXNrIDogcGVuZGlu
Z1Rhc2tzKQogICAgICAgICB0YXNrLnBlcmZvcm1UYXNrKCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcAppbmRleCBh
OTQ5YzFmLi5mMzEwNDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRT
dHlsZVNoZWV0Q29sbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCkBAIC0xODQsMTQgKzE4NCwxNCBAQCB2b2lkIERvY3Vt
ZW50U3R5bGVTaGVldENvbGxlY3Rpb246OmludmFsaWRhdGVJbmplY3RlZFN0eWxlU2hlZXRDYWNo
ZSgpCiB2b2lkIERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246OmFkZEF1dGhvclNoZWV0KFBh
c3NSZWY8U3R5bGVTaGVldENvbnRlbnRzPiBhdXRob3JTaGVldCkKIHsKICAgICBBU1NFUlQoIWF1
dGhvclNoZWV0LmdldCgpLmlzVXNlclN0eWxlU2hlZXQoKSk7Ci0gICAgbV9hdXRob3JTdHlsZVNo
ZWV0cy5hcHBlbmQoQ1NTU3R5bGVTaGVldDo6Y3JlYXRlKHN0ZDo6bW92ZShhdXRob3JTaGVldCks
ICZtX2RvY3VtZW50KSk7CisgICAgbV9hdXRob3JTdHlsZVNoZWV0cy5hcHBlbmQoQ1NTU3R5bGVT
aGVldDo6Y3JlYXRlKFdURjo6bW92ZShhdXRob3JTaGVldCksICZtX2RvY3VtZW50KSk7CiAgICAg
bV9kb2N1bWVudC5zdHlsZVJlc29sdmVyQ2hhbmdlZChSZWNhbGNTdHlsZUltbWVkaWF0ZWx5KTsK
IH0KIAogdm9pZCBEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOjphZGRVc2VyU2hlZXQoUGFz
c1JlZjxTdHlsZVNoZWV0Q29udGVudHM+IHVzZXJTaGVldCkKIHsKICAgICBBU1NFUlQodXNlclNo
ZWV0LmdldCgpLmlzVXNlclN0eWxlU2hlZXQoKSk7Ci0gICAgbV91c2VyU3R5bGVTaGVldHMuYXBw
ZW5kKENTU1N0eWxlU2hlZXQ6OmNyZWF0ZShzdGQ6Om1vdmUodXNlclNoZWV0KSwgJm1fZG9jdW1l
bnQpKTsKKyAgICBtX3VzZXJTdHlsZVNoZWV0cy5hcHBlbmQoQ1NTU3R5bGVTaGVldDo6Y3JlYXRl
KFdURjo6bW92ZSh1c2VyU2hlZXQpLCAmbV9kb2N1bWVudCkpOwogICAgIG1fZG9jdW1lbnQuc3R5
bGVSZXNvbHZlckNoYW5nZWQoUmVjYWxjU3R5bGVJbW1lZGlhdGVseSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAppbmRleCA3NTM3MzMwLi44NzE3ZWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CkBAIC0xMzI4LDcgKzEzMjgsNyBAQCBib29sIEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29u
c3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gRWxlbWVu
dDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewot
ICAgIHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIHN0ZDo6bW92ZShzdHls
ZSkpOworICAgIHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIFdURjo6bW92
ZShzdHlsZSkpOwogfQogCiBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IEVsZW1l
bnQ6Omluc2VydGVkSW50byhDb250YWluZXJOb2RlJiBpbnNlcnRpb25Qb2ludCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50UmFyZURhdGEuaAppbmRleCBkZWEzYWNjLi4yOWUyMTNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCkBAIC05NSwxMCArOTUsMTAgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0QXR0cmlidXRlTWFwKFBhc3NPd25QdHI8TmFtZWROb2RlTWFwPiBhdHRyaWJ1dGVN
YXApIHsgbV9hdHRyaWJ1dGVNYXAgPSBhdHRyaWJ1dGVNYXA7IH0KIAogICAgIFJlbmRlclN0eWxl
KiBjb21wdXRlZFN0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9jb21wdXRlZFN0eWxlLmdldCgpOyB9
Ci0gICAgdm9pZCBzZXRDb21wdXRlZFN0eWxlKFBhc3NSZWY8UmVuZGVyU3R5bGU+IGNvbXB1dGVk
U3R5bGUpIHsgbV9jb21wdXRlZFN0eWxlID0gc3RkOjptb3ZlKGNvbXB1dGVkU3R5bGUpOyB9Cisg
ICAgdm9pZCBzZXRDb21wdXRlZFN0eWxlKFBhc3NSZWY8UmVuZGVyU3R5bGU+IGNvbXB1dGVkU3R5
bGUpIHsgbV9jb21wdXRlZFN0eWxlID0gV1RGOjptb3ZlKGNvbXB1dGVkU3R5bGUpOyB9CiAKICAg
ICBDbGFzc0xpc3QqIGNsYXNzTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NMaXN0LmdldCgp
OyB9Ci0gICAgdm9pZCBzZXRDbGFzc0xpc3Qoc3RkOjp1bmlxdWVfcHRyPENsYXNzTGlzdD4gY2xh
c3NMaXN0KSB7IG1fY2xhc3NMaXN0ID0gc3RkOjptb3ZlKGNsYXNzTGlzdCk7IH0KKyAgICB2b2lk
IHNldENsYXNzTGlzdChzdGQ6OnVuaXF1ZV9wdHI8Q2xhc3NMaXN0PiBjbGFzc0xpc3QpIHsgbV9j
bGFzc0xpc3QgPSBXVEY6Om1vdmUoY2xhc3NMaXN0KTsgfQogICAgIHZvaWQgY2xlYXJDbGFzc0xp
c3RWYWx1ZUZvclF1aXJrc01vZGUoKQogICAgIHsKICAgICAgICAgaWYgKCFtX2NsYXNzTGlzdCkK
QEAgLTEwNyw3ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgRGF0YXNldERPTVN0cmlu
Z01hcCogZGF0YXNldCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YXNldC5nZXQoKTsgfQotICAgIHZv
aWQgc2V0RGF0YXNldChzdGQ6OnVuaXF1ZV9wdHI8RGF0YXNldERPTVN0cmluZ01hcD4gZGF0YXNl
dCkgeyBtX2RhdGFzZXQgPSBzdGQ6Om1vdmUoZGF0YXNldCk7IH0KKyAgICB2b2lkIHNldERhdGFz
ZXQoc3RkOjp1bmlxdWVfcHRyPERhdGFzZXRET01TdHJpbmdNYXA+IGRhdGFzZXQpIHsgbV9kYXRh
c2V0ID0gV1RGOjptb3ZlKGRhdGFzZXQpOyB9CiAKICAgICBMYXlvdXRTaXplIG1pbmltdW1TaXpl
Rm9yUmVzaXppbmcoKSBjb25zdCB7IHJldHVybiBtX21pbmltdW1TaXplRm9yUmVzaXppbmc7IH0K
ICAgICB2b2lkIHNldE1pbmltdW1TaXplRm9yUmVzaXppbmcoTGF5b3V0U2l6ZSBzaXplKSB7IG1f
bWluaW11bVNpemVGb3JSZXNpemluZyA9IHNpemU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9NZXNzYWdlRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVu
dC5jcHAKaW5kZXggOGYxOGQxYS4uMTFkMmM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL01lc3NhZ2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVu
dC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgTWVzc2FnZUV2ZW50OjpNZXNzYWdlRXZlbnQoY29uc3Qg
RGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGRhdGEsIGNvbnN0IFN0cmluZyYgb3IKICAgICAsIG1f
b3JpZ2luKG9yaWdpbikKICAgICAsIG1fbGFzdEV2ZW50SWQobGFzdEV2ZW50SWQpCiAgICAgLCBt
X3NvdXJjZShzb3VyY2UpCi0gICAgLCBtX3BvcnRzKHN0ZDo6bW92ZShwb3J0cykpCisgICAgLCBt
X3BvcnRzKFdURjo6bW92ZShwb3J0cykpCiB7CiAgICAgQVNTRVJUKGlzVmFsaWRTb3VyY2UobV9z
b3VyY2UuZ2V0KCkpKTsKIH0KQEAgLTc2LDcgKzc2LDcgQEAgTWVzc2FnZUV2ZW50OjpNZXNzYWdl
RXZlbnQoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGRhdGEsIGNvbnN0IFN0cmlu
ZyYKICAgICAsIG1fb3JpZ2luKG9yaWdpbikKICAgICAsIG1fbGFzdEV2ZW50SWQobGFzdEV2ZW50
SWQpCiAgICAgLCBtX3NvdXJjZShzb3VyY2UpCi0gICAgLCBtX3BvcnRzKHN0ZDo6bW92ZShwb3J0
cykpCisgICAgLCBtX3BvcnRzKFdURjo6bW92ZShwb3J0cykpCiB7CiAgICAgQVNTRVJUKGlzVmFs
aWRTb3VyY2UobV9zb3VyY2UuZ2V0KCkpKTsKIH0KQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIE1l
c3NhZ2VFdmVudDo6aW5pdE1lc3NhZ2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJv
b2wgY2FuQnViYmxlLCBibwogICAgIG1fb3JpZ2luID0gb3JpZ2luOwogICAgIG1fbGFzdEV2ZW50
SWQgPSBsYXN0RXZlbnRJZDsKICAgICBtX3NvdXJjZSA9IHNvdXJjZTsKLSAgICBtX3BvcnRzID0g
c3RkOjptb3ZlKHBvcnRzKTsKKyAgICBtX3BvcnRzID0gV1RGOjptb3ZlKHBvcnRzKTsKIH0KIAog
dm9pZCBNZXNzYWdlRXZlbnQ6OmluaXRNZXNzYWdlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gZGF0YSwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYg
bGFzdEV2ZW50SWQsIERPTVdpbmRvdyogc291cmNlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBv
cnRBcnJheT4gcG9ydHMpCkBAIC0xMzYsNyArMTM2LDcgQEAgdm9pZCBNZXNzYWdlRXZlbnQ6Omlu
aXRNZXNzYWdlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwg
Ym8KICAgICBtX29yaWdpbiA9IG9yaWdpbjsKICAgICBtX2xhc3RFdmVudElkID0gbGFzdEV2ZW50
SWQ7CiAgICAgbV9zb3VyY2UgPSBzb3VyY2U7Ci0gICAgbV9wb3J0cyA9IHN0ZDo6bW92ZShwb3J0
cyk7CisgICAgbV9wb3J0cyA9IFdURjo6bW92ZShwb3J0cyk7CiB9CiAKIC8vIEZJWE1FOiBSZW1v
dmUgdGhpcyB3aGVuIHdlIGhhdmUgY3VzdG9tIE9iakMgYmluZGluZyBzdXBwb3J0LgpAQCAtMTYy
LDcgKzE2Miw3IEBAIHZvaWQgTWVzc2FnZUV2ZW50Ojppbml0TWVzc2FnZUV2ZW50KGNvbnN0IEF0
b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvCiAgICAgICAgIHBvcnRzID0gc3Rk
OjptYWtlX3VuaXF1ZTxNZXNzYWdlUG9ydEFycmF5PigpOwogICAgICAgICBwb3J0cy0+YXBwZW5k
KHBvcnQpOwogICAgIH0KLSAgICBpbml0TWVzc2FnZUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2Fu
Y2VsYWJsZSwgZGF0YSwgb3JpZ2luLCBsYXN0RXZlbnRJZCwgc291cmNlLCBzdGQ6Om1vdmUocG9y
dHMpKTsKKyAgICBpbml0TWVzc2FnZUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwg
ZGF0YSwgb3JpZ2luLCBsYXN0RXZlbnRJZCwgc291cmNlLCBXVEY6Om1vdmUocG9ydHMpKTsKIH0K
IAogRXZlbnRJbnRlcmZhY2UgTWVzc2FnZUV2ZW50OjpldmVudEludGVyZmFjZSgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTWVzc2FnZUV2ZW50LmgKaW5kZXggODg3ZTFjZS4uYzc0YWUwZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NZXNzYWdlRXZlbnQuaApAQCAtNTksMTEgKzU5LDExIEBAIHB1YmxpYzoKICAgICB9CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8TWVzc2FnZUV2ZW50PiBjcmVhdGUoc3RkOjp1bmlxdWVfcHRy
PE1lc3NhZ2VQb3J0QXJyYXk+IHBvcnRzLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYg
ZGF0YSA9IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlKCksIGNvbnN0IFN0cmluZyYgb3JpZ2luID0g
U3RyaW5nKCksIGNvbnN0IFN0cmluZyYgbGFzdEV2ZW50SWQgPSBTdHJpbmcoKSwgUGFzc1JlZlB0
cjxFdmVudFRhcmdldD4gc291cmNlID0gMCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgTWVzc2FnZUV2ZW50KGRhdGEsIG9yaWdpbiwgbGFzdEV2ZW50SWQsIHNvdXJjZSwgc3Rk
Ojptb3ZlKHBvcnRzKSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lc3NhZ2VFdmVu
dChkYXRhLCBvcmlnaW4sIGxhc3RFdmVudElkLCBzb3VyY2UsIFdURjo6bW92ZShwb3J0cykpKTsK
ICAgICB9CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVzc2FnZUV2ZW50PiBjcmVhdGUoc3RkOjp1
bmlxdWVfcHRyPE1lc3NhZ2VQb3J0QXJyYXk+IHBvcnRzLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4gZGF0YSwgY29uc3QgU3RyaW5nJiBvcmlnaW4gPSBTdHJpbmcoKSwgY29uc3Qg
U3RyaW5nJiBsYXN0RXZlbnRJZCA9IFN0cmluZygpLCBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0PiBz
b3VyY2UgPSAwKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZXNzYWdlRXZl
bnQoZGF0YSwgb3JpZ2luLCBsYXN0RXZlbnRJZCwgc291cmNlLCBzdGQ6Om1vdmUocG9ydHMpKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVzc2FnZUV2ZW50KGRhdGEsIG9yaWdpbiwg
bGFzdEV2ZW50SWQsIHNvdXJjZSwgV1RGOjptb3ZlKHBvcnRzKSkpOwogICAgIH0KICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxNZXNzYWdlRXZlbnQ+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGRhdGEsIGNv
bnN0IFN0cmluZyYgb3JpZ2luID0gU3RyaW5nKCkpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdl
UG9ydC5jcHAKaW5kZXggMmNhMmI4My4uZjI0ZDZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL01lc3NhZ2VQb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBv
cnQuY3BwCkBAIC04MCw3ICs4MCw3IEBAIHZvaWQgTWVzc2FnZVBvcnQ6OnBvc3RNZXNzYWdlKFBh
c3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBjb25zdCBNCiAgICAgICAg
IGlmIChlYykKICAgICAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgbV9lbnRhbmdsZWRDaGFu
bmVsLT5wb3N0TWVzc2FnZVRvUmVtb3RlKG1lc3NhZ2UsIHN0ZDo6bW92ZShjaGFubmVscykpOwor
ICAgIG1fZW50YW5nbGVkQ2hhbm5lbC0+cG9zdE1lc3NhZ2VUb1JlbW90ZShtZXNzYWdlLCBXVEY6
Om1vdmUoY2hhbm5lbHMpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5l
bD4gTWVzc2FnZVBvcnQ6OmRpc2VudGFuZ2xlKCkKQEAgLTk0LDcgKzk0LDcgQEAgc3RkOjp1bmlx
dWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbD4gTWVzc2FnZVBvcnQ6OmRpc2VudGFuZ2xlKCkKICAg
ICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmRlc3Ryb3llZE1lc3NhZ2VQb3J0KCp0aGlzKTsK
ICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQgPSBudWxscHRyOwogCi0gICAgcmV0dXJuIHN0
ZDo6bW92ZShtX2VudGFuZ2xlZENoYW5uZWwpOworICAgIHJldHVybiBXVEY6Om1vdmUobV9lbnRh
bmdsZWRDaGFubmVsKTsKIH0KIAogLy8gSW52b2tlZCB0byBub3RpZnkgdXMgdGhhdCB0aGVyZSBh
cmUgbWVzc2FnZXMgYXZhaWxhYmxlIGZvciB0aGlzIHBvcnQuCkBAIC0xMzQsNyArMTM0LDcgQEAg
dm9pZCBNZXNzYWdlUG9ydDo6ZW50YW5nbGUoc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hh
bm5lbD4gcmVtb3RlKQogCiAgICAgLy8gRG9uJ3QgZW50YW5nbGUgdGhlIHBvcnRzIGlmIHRoZSBj
aGFubmVsIGlzIGNsb3NlZC4KICAgICBpZiAocmVtb3RlLT5lbnRhbmdsZUlmT3Blbih0aGlzKSkK
LSAgICAgICAgbV9lbnRhbmdsZWRDaGFubmVsID0gc3RkOjptb3ZlKHJlbW90ZSk7CisgICAgICAg
IG1fZW50YW5nbGVkQ2hhbm5lbCA9IFdURjo6bW92ZShyZW1vdGUpOwogfQogCiB2b2lkIE1lc3Nh
Z2VQb3J0Ojpjb250ZXh0RGVzdHJveWVkKCkKQEAgLTE2MCw4ICsxNjAsOCBAQCB2b2lkIE1lc3Nh
Z2VQb3J0OjpkaXNwYXRjaE1lc3NhZ2VzKCkKICAgICAgICAgaWYgKG1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dC0+aXNXb3JrZXJHbG9iYWxTY29wZSgpICYmIHRvV29ya2VyR2xvYmFsU2NvcGUobV9z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KS0+aXNDbG9zaW5nKCkpCiAgICAgICAgICAgICByZXR1cm47
CiAKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0QXJyYXk+IHBvcnRzID0gTWVz
c2FnZVBvcnQ6OmVudGFuZ2xlUG9ydHMoKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgc3RkOjpt
b3ZlKGNoYW5uZWxzKSk7Ci0gICAgICAgIFJlZlB0cjxFdmVudD4gZXZ0ID0gTWVzc2FnZUV2ZW50
OjpjcmVhdGUoc3RkOjptb3ZlKHBvcnRzKSwgbWVzc2FnZS5yZWxlYXNlKCkpOworICAgICAgICBz
dGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRBcnJheT4gcG9ydHMgPSBNZXNzYWdlUG9ydDo6ZW50
YW5nbGVQb3J0cygqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LCBXVEY6Om1vdmUoY2hhbm5lbHMp
KTsKKyAgICAgICAgUmVmUHRyPEV2ZW50PiBldnQgPSBNZXNzYWdlRXZlbnQ6OmNyZWF0ZShXVEY6
Om1vdmUocG9ydHMpLCBtZXNzYWdlLnJlbGVhc2UoKSk7CiAKICAgICAgICAgZGlzcGF0Y2hFdmVu
dChldnQucmVsZWFzZSgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICB9CkBAIC0yMDUsNyAr
MjA1LDcgQEAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiBNZXNzYWdl
UG9ydDo6ZGlzZW50YW5nbGVQb3J0cyhjb25zdCBNZXMKICAgICBhdXRvIHBvcnRBcnJheSA9IHN0
ZDo6bWFrZV91bmlxdWU8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+KHBvcnRzLT5zaXplKCkpOwog
ICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwIDsgaSA8IHBvcnRzLT5zaXplKCkgOyArK2kpIHsK
ICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbD4gY2hhbm5lbCA9ICgq
cG9ydHMpW2ldLT5kaXNlbnRhbmdsZSgpOwotICAgICAgICAoKnBvcnRBcnJheSlbaV0gPSBzdGQ6
Om1vdmUoY2hhbm5lbCk7CisgICAgICAgICgqcG9ydEFycmF5KVtpXSA9IFdURjo6bW92ZShjaGFu
bmVsKTsKICAgICB9CiAgICAgcmV0dXJuIHBvcnRBcnJheTsKIH0KQEAgLTIxOCw3ICsyMTgsNyBA
QCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRBcnJheT4gTWVzc2FnZVBvcnQ6OmVudGFuZ2xl
UG9ydHMoU2NyaXB0RXhlY3V0aW9uQ29udAogICAgIGF1dG8gcG9ydEFycmF5ID0gc3RkOjptYWtl
X3VuaXF1ZTxNZXNzYWdlUG9ydEFycmF5PihjaGFubmVscy0+c2l6ZSgpKTsKICAgICBmb3IgKHVu
c2lnbmVkIGludCBpID0gMDsgaSA8IGNoYW5uZWxzLT5zaXplKCk7ICsraSkgewogICAgICAgICBS
ZWZQdHI8TWVzc2FnZVBvcnQ+IHBvcnQgPSBNZXNzYWdlUG9ydDo6Y3JlYXRlKGNvbnRleHQpOwot
ICAgICAgICBwb3J0LT5lbnRhbmdsZShzdGQ6Om1vdmUoKCpjaGFubmVscylbaV0pKTsKKyAgICAg
ICAgcG9ydC0+ZW50YW5nbGUoV1RGOjptb3ZlKCgqY2hhbm5lbHMpW2ldKSk7CiAgICAgICAgICgq
cG9ydEFycmF5KVtpXSA9IHBvcnQucmVsZWFzZSgpOwogICAgIH0KICAgICByZXR1cm4gcG9ydEFy
cmF5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGFkNmI4YjAuLjI4ZWFhMmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAKQEAgLTcyNCwxMCArNzI0LDEwIEBAIHZvaWQgRG9jdW1lbnQ6OmludmFsaWRhdGVOb2RlTGlz
dEFuZENvbGxlY3Rpb25DYWNoZXMoY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0ck5hCiAjaWYgIUFT
U0VSVF9ESVNBQkxFRAogICAgIG1faW5JbnZhbGlkYXRlTm9kZUxpc3RBbmRDb2xsZWN0aW9uQ2Fj
aGVzID0gdHJ1ZTsKICNlbmRpZgotICAgIEhhc2hTZXQ8TGl2ZU5vZGVMaXN0Kj4gbGlzdHMgPSBz
dGQ6Om1vdmUobV9saXN0c0ludmFsaWRhdGVkQXREb2N1bWVudCk7CisgICAgSGFzaFNldDxMaXZl
Tm9kZUxpc3QqPiBsaXN0cyA9IFdURjo6bW92ZShtX2xpc3RzSW52YWxpZGF0ZWRBdERvY3VtZW50
KTsKICAgICBmb3IgKGF1dG8qIGxpc3QgOiBsaXN0cykKICAgICAgICAgbGlzdC0+aW52YWxpZGF0
ZUNhY2hlRm9yQXR0cmlidXRlKGF0dHJOYW1lKTsKLSAgICBIYXNoU2V0PEhUTUxDb2xsZWN0aW9u
Kj4gY29sbGVjdGlvbnMgPSBzdGQ6Om1vdmUobV9jb2xsZWN0aW9uc0ludmFsaWRhdGVkQXREb2N1
bWVudCk7CisgICAgSGFzaFNldDxIVE1MQ29sbGVjdGlvbio+IGNvbGxlY3Rpb25zID0gV1RGOjpt
b3ZlKG1fY29sbGVjdGlvbnNJbnZhbGlkYXRlZEF0RG9jdW1lbnQpOwogICAgIGZvciAoYXV0byog
Y29sbGVjdGlvbiA6IGNvbGxlY3Rpb25zKQogICAgICAgICBjb2xsZWN0aW9uLT5pbnZhbGlkYXRl
Q2FjaGUoYXR0ck5hbWUpOwogI2lmICFBU1NFUlRfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKaW5kZXggZDM1NDJlMC4uZDZkZGRjYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKQEAgLTIwMiw3
ICsyMDIsNyBAQCB2b2lkIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6c2V0Q1NTU3R5bGVTaGVldChj
b25zdCBTdHJpbmcmIGhyZWYsIGNvbnN0IFVSTCYgYmFzZQogICAgIGNzc1NoZWV0LmdldCgpLnNl
dFRpdGxlKG1fdGl0bGUpOwogICAgIGNzc1NoZWV0LmdldCgpLnNldE1lZGlhUXVlcmllcyhNZWRp
YVF1ZXJ5U2V0OjpjcmVhdGUobV9tZWRpYSkpOwogCi0gICAgbV9zaGVldCA9IHN0ZDo6bW92ZShj
c3NTaGVldCk7CisgICAgbV9zaGVldCA9IFdURjo6bW92ZShjc3NTaGVldCk7CiAKICAgICAvLyBX
ZSBkb24ndCBuZWVkIHRoZSBjcm9zcy1vcmlnaW4gc2VjdXJpdHkgY2hlY2sgaGVyZSBiZWNhdXNl
IHdlIGFyZQogICAgIC8vIGdldHRpbmcgdGhlIHNoZWV0IHRleHQgaW4gInN0cmljdCIgbW9kZS4g
VGhpcyBlbmZvcmNlcyBhIHZhbGlkIENTUyBNSU1FCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vUHNldWRvRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHNldWRvRWxlbWVu
dC5jcHAKaW5kZXggMmNjZWJlYy4uM2I0YTk3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1BzZXVkb0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qc2V1ZG9FbGVt
ZW50LmNwcApAQCAtMTEzLDcgKzExMyw3IEBAIHZvaWQgUHNldWRvRWxlbWVudDo6ZGlkUmVjYWxj
U3R5bGUoU3R5bGU6OkNoYW5nZSkKICAgICAgICAgaWYgKCFjaGlsZC0+aXNSZW5kZXJJbWFnZSgp
ICYmICFjaGlsZC0+aXNRdW90ZSgpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIFBh
c3NSZWY8UmVuZGVyU3R5bGU+IGNyZWF0ZWRTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGVTdHls
ZUluaGVyaXRpbmdGcm9tUHNldWRvU3R5bGUocmVuZGVyZXItPnN0eWxlKCkpOwotICAgICAgICB0
b1JlbmRlckVsZW1lbnQoKmNoaWxkKS5zZXRTdHlsZShzdGQ6Om1vdmUoY3JlYXRlZFN0eWxlKSk7
CisgICAgICAgIHRvUmVuZGVyRWxlbWVudCgqY2hpbGQpLnNldFN0eWxlKFdURjo6bW92ZShjcmVh
dGVkU3R5bGUpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y29wZWRFdmVudFF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY29wZWRFdmVudFF1ZXVl
LmNwcAppbmRleCA1MDM4NDNiLi4xN2Q1MjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NvcGVkRXZlbnRRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Njb3BlZEV2
ZW50UXVldWUuY3BwCkBAIC03Miw3ICs3Miw3IEBAIHZvaWQgU2NvcGVkRXZlbnRRdWV1ZTo6ZGlz
cGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkgY29uc3QKIAogdm9pZCBTY29wZWRF
dmVudFF1ZXVlOjpkaXNwYXRjaEFsbEV2ZW50cygpCiB7Ci0gICAgVmVjdG9yPFJlZlB0cjxFdmVu
dD4+IHF1ZXVlZEV2ZW50cyA9IHN0ZDo6bW92ZShtX3F1ZXVlZEV2ZW50cyk7CisgICAgVmVjdG9y
PFJlZlB0cjxFdmVudD4+IHF1ZXVlZEV2ZW50cyA9IFdURjo6bW92ZShtX3F1ZXVlZEV2ZW50cyk7
CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBxdWV1ZWRFdmVudHMuc2l6ZSgpOyBpKyspCiAg
ICAgICAgIGRpc3BhdGNoRXZlbnQocXVldWVkRXZlbnRzW2ldLnJlbGVhc2UoKSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggYTk2OGJi
Zi4uOTUxYzgwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0LmNwcApAQCAtMzYwLDcgKzM2MCw3IEBAIHZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
cmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluCiAgICAg
aWYgKCFtX3BlbmRpbmdFeGNlcHRpb25zKQogICAgICAgICByZXR1cm47CiAKLSAgICBzdGQ6OnVu
aXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxQZW5kaW5nRXhjZXB0aW9uPj4+IHBlbmRp
bmdFeGNlcHRpb25zID0gc3RkOjptb3ZlKG1fcGVuZGluZ0V4Y2VwdGlvbnMpOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFBlbmRpbmdFeGNlcHRpb24+Pj4gcGVu
ZGluZ0V4Y2VwdGlvbnMgPSBXVEY6Om1vdmUobV9wZW5kaW5nRXhjZXB0aW9ucyk7CiAgICAgZm9y
IChhdXRvJiBleGNlcHRpb24gOiAqcGVuZGluZ0V4Y2VwdGlvbnMpCiAgICAgICAgIGxvZ0V4Y2Vw
dGlvblRvQ29uc29sZShleGNlcHRpb24tPm1fZXJyb3JNZXNzYWdlLCBleGNlcHRpb24tPm1fc291
cmNlVVJMLCBleGNlcHRpb24tPm1fbGluZU51bWJlciwgZXhjZXB0aW9uLT5tX2NvbHVtbk51bWJl
ciwgZXhjZXB0aW9uLT5tX2NhbGxTdGFjayk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaAppbmRleCBjZDhiYzM3Li4yNjljM2E1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKQEAgLTExOSwyMCArMTE5LDIwIEBA
IHB1YmxpYzoKIAogICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IHR5cGVu
YW1lIHN0ZDo6ZW5hYmxlX2lmPCFzdGQ6OmlzX2Jhc2Vfb2Y8VGFzaywgVD46OnZhbHVlICYmIHN0
ZDo6aXNfY29udmVydGlibGU8VCwgc3RkOjpmdW5jdGlvbjx2b2lkIChTY3JpcHRFeGVjdXRpb25D
b250ZXh0Jik+Pjo6dmFsdWU+Ojp0eXBlPgogICAgICAgICBUYXNrKFQgdGFzaykKLSAgICAgICAg
ICAgIDogbV90YXNrKHN0ZDo6bW92ZSh0YXNrKSkKKyAgICAgICAgICAgIDogbV90YXNrKFdURjo6
bW92ZSh0YXNrKSkKICAgICAgICAgICAgICwgbV9pc0NsZWFudXBUYXNrKGZhbHNlKQogICAgICAg
ICB7CiAgICAgICAgIH0KIAogICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSA9
IHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfY29udmVydGlibGU8VCwgc3RkOjpmdW5j
dGlvbjx2b2lkIChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik+Pjo6dmFsdWU+Ojp0eXBlPgogICAg
ICAgICBUYXNrKENsZWFudXBUYXNrVGFnLCBUIHRhc2spCi0gICAgICAgICAgICA6IG1fdGFzayhz
dGQ6Om1vdmUodGFzaykpCisgICAgICAgICAgICA6IG1fdGFzayhXVEY6Om1vdmUodGFzaykpCiAg
ICAgICAgICAgICAsIG1faXNDbGVhbnVwVGFzayh0cnVlKQogICAgICAgICB7CiAgICAgICAgIH0K
IAogICAgICAgICBUYXNrKFRhc2smJiBvdGhlcikKLSAgICAgICAgICAgIDogbV90YXNrKHN0ZDo6
bW92ZShvdGhlci5tX3Rhc2spKQorICAgICAgICAgICAgOiBtX3Rhc2soV1RGOjptb3ZlKG90aGVy
Lm1fdGFzaykpCiAgICAgICAgICAgICAsIG1faXNDbGVhbnVwVGFzayhvdGhlci5tX2lzQ2xlYW51
cFRhc2spCiAgICAgICAgIHsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250
ZXh0LmNwcAppbmRleCAyNDc3OGIwLi45ZjM5NGU2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlY3Vy
aXR5Q29udGV4dC5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgdm9pZCBTZWN1cml0eUNvbnRleHQ6OnNl
dFNlY3VyaXR5T3JpZ2luKFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2kK
IAogdm9pZCBTZWN1cml0eUNvbnRleHQ6OnNldENvbnRlbnRTZWN1cml0eVBvbGljeShzdGQ6OnVu
aXF1ZV9wdHI8Q29udGVudFNlY3VyaXR5UG9saWN5PiBjb250ZW50U2VjdXJpdHlQb2xpY3kpCiB7
Ci0gICAgbV9jb250ZW50U2VjdXJpdHlQb2xpY3kgPSBzdGQ6Om1vdmUoY29udGVudFNlY3VyaXR5
UG9saWN5KTsKKyAgICBtX2NvbnRlbnRTZWN1cml0eVBvbGljeSA9IFdURjo6bW92ZShjb250ZW50
U2VjdXJpdHlQb2xpY3kpOwogfQogCiBib29sIFNlY3VyaXR5Q29udGV4dDo6aXNTZWN1cmVUcmFu
c2l0aW9uVG8oY29uc3QgVVJMJiB1cmwpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVy
eS5jcHAKaW5kZXggNDVlNDExZC4uYjUzMjI5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NlbGVjdG9yUXVlcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1
ZXJ5LmNwcApAQCAtNDkwLDcgKzQ5MCw3IEBAIFNlbGVjdG9yUXVlcnkqIFNlbGVjdG9yUXVlcnlD
YWNoZTo6YWRkKGNvbnN0IFN0cmluZyYgc2VsZWN0b3JzLCBEb2N1bWVudCYgZG9jdW1lCiAgICAg
aWYgKG1fZW50cmllcy5zaXplKCkgPT0gbWF4aW11bVNlbGVjdG9yUXVlcnlDYWNoZVNpemUpCiAg
ICAgICAgIG1fZW50cmllcy5yZW1vdmUobV9lbnRyaWVzLmJlZ2luKCkpOwogICAgIAotICAgIHJl
dHVybiBtX2VudHJpZXMuYWRkKHNlbGVjdG9ycywgc3RkOjptYWtlX3VuaXF1ZTxTZWxlY3RvclF1
ZXJ5PihzdGQ6Om1vdmUoc2VsZWN0b3JMaXN0KSkpLml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKKyAg
ICByZXR1cm4gbV9lbnRyaWVzLmFkZChzZWxlY3RvcnMsIHN0ZDo6bWFrZV91bmlxdWU8U2VsZWN0
b3JRdWVyeT4oV1RGOjptb3ZlKHNlbGVjdG9yTGlzdCkpKS5pdGVyYXRvci0+dmFsdWUuZ2V0KCk7
CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3Jt
TWVzc2FnZVBvcnRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRm
b3JtTWVzc2FnZVBvcnRDaGFubmVsLmNwcAppbmRleCAzNDJlZjY3Li42Y2IwZTE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5l
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9y
dENoYW5uZWwuY3BwCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGxh
dGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6OkV2ZW50RGF0YTo6RXZlbnREYXRhKFBhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBv
cnRDaGFubmVsQXJyYXk+IGNoYW5uZWxzKQogICAgIDogbV9tZXNzYWdlKG1lc3NhZ2UpCi0gICAg
LCBtX2NoYW5uZWxzKHN0ZDo6bW92ZShjaGFubmVscykpCisgICAgLCBtX2NoYW5uZWxzKFdURjo6
bW92ZShjaGFubmVscykpCiB7CiB9CiAKQEAgLTU0LDggKzU0LDggQEAgdm9pZCBNZXNzYWdlUG9y
dENoYW5uZWw6OmNyZWF0ZUNoYW5uZWwoUGFzc1JlZlB0cjxNZXNzYWdlUG9ydD4gcG9ydDEsIFBh
c3NSZWZQdHIKICAgICBjaGFubmVsMS0+bV9jaGFubmVsLT5tX2VudGFuZ2xlZENoYW5uZWwgPSBj
aGFubmVsMi0+bV9jaGFubmVsOwogICAgIGNoYW5uZWwyLT5tX2NoYW5uZWwtPm1fZW50YW5nbGVk
Q2hhbm5lbCA9IGNoYW5uZWwxLT5tX2NoYW5uZWw7CiAKLSAgICBwb3J0MS0+ZW50YW5nbGUoc3Rk
Ojptb3ZlKGNoYW5uZWwyKSk7Ci0gICAgcG9ydDItPmVudGFuZ2xlKHN0ZDo6bW92ZShjaGFubmVs
MSkpOworICAgIHBvcnQxLT5lbnRhbmdsZShXVEY6Om1vdmUoY2hhbm5lbDIpKTsKKyAgICBwb3J0
Mi0+ZW50YW5nbGUoV1RGOjptb3ZlKGNoYW5uZWwxKSk7CiB9CiAKIE1lc3NhZ2VQb3J0Q2hhbm5l
bDo6TWVzc2FnZVBvcnRDaGFubmVsKFBhc3NSZWZQdHI8UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5u
ZWw+IGNoYW5uZWwpCkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgTWVzc2FnZVBvcnRDaGFubmVsOjpw
b3N0TWVzc2FnZVRvUmVtb3RlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtCiAg
ICAgTXV0ZXhMb2NrZXIgbG9jayhtX2NoYW5uZWwtPm1fbXV0ZXgpOwogICAgIGlmICghbV9jaGFu
bmVsLT5tX291dGdvaW5nUXVldWUpCiAgICAgICAgIHJldHVybjsKLSAgICBib29sIHdhc0VtcHR5
ID0gbV9jaGFubmVsLT5tX291dGdvaW5nUXVldWUtPmFwcGVuZEFuZENoZWNrRW1wdHkoc3RkOjpt
YWtlX3VuaXF1ZTxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6RXZlbnREYXRhPihtZXNzYWdl
LCBzdGQ6Om1vdmUoY2hhbm5lbHMpKSk7CisgICAgYm9vbCB3YXNFbXB0eSA9IG1fY2hhbm5lbC0+
bV9vdXRnb2luZ1F1ZXVlLT5hcHBlbmRBbmRDaGVja0VtcHR5KHN0ZDo6bWFrZV91bmlxdWU8UGxh
dGZvcm1NZXNzYWdlUG9ydENoYW5uZWw6OkV2ZW50RGF0YT4obWVzc2FnZSwgV1RGOjptb3ZlKGNo
YW5uZWxzKSkpOwogICAgIGlmICh3YXNFbXB0eSAmJiBtX2NoYW5uZWwtPm1fcmVtb3RlUG9ydCkK
ICAgICAgICAgbV9jaGFubmVsLT5tX3JlbW90ZVBvcnQtPm1lc3NhZ2VBdmFpbGFibGUoKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBv
cnRDaGFubmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQ
b3J0Q2hhbm5lbC5oCmluZGV4IDUwOTg0ZjkuLjk1NGViODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaApAQCAt
NTIsNyArNTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBFdmVudERhdGEo
UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0
cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4pOwogCiAgICAgICAgICAgICBQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSgpIHsgcmV0dXJuIG1fbWVzc2FnZTsgfQotICAg
ICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiBjaGFubmVs
cygpIHsgcmV0dXJuIHN0ZDo6bW92ZShtX2NoYW5uZWxzKTsgfQorICAgICAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiBjaGFubmVscygpIHsgcmV0dXJuIFdU
Rjo6bW92ZShtX2NoYW5uZWxzKTsgfQogCiAgICAgICAgIHByaXZhdGU6CiAgICAgICAgICAgICBS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtX21lc3NhZ2U7CkBAIC03MSw3ICs3MSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICAgICAgYm9vbCBhcHBlbmRBbmRDaGVja0Vt
cHR5KHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6RXZlbnREYXRh
PiBtZXNzYWdlKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiBtX3F1ZXVl
LmFwcGVuZEFuZENoZWNrRW1wdHkoc3RkOjptb3ZlKG1lc3NhZ2UpKTsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gbV9xdWV1ZS5hcHBlbmRBbmRDaGVja0VtcHR5KFdURjo6bW92ZShtZXNzYWdlKSk7
CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGJvb2wgaXNFbXB0eSgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHAKaW5kZXggZGRjOGU5ZS4uNDJm
N2Y1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxw
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNw
cApAQCAtNjMsNyArNjMsNyBAQCBzdGF0aWMgdm9pZCBmaW5kR3JhbW1hdGljYWxFcnJvcnMoVGV4
dENoZWNrZXJDbGllbnQmIGNsaWVudCwgU3RyaW5nVmlldyB0ZXh0LCBWZQogICAgICAgICBiYWRH
cmFtbWFyLnR5cGUgPSBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hcjsKICAgICAgICAgYmFkR3JhbW1h
ci5sb2NhdGlvbiA9IGNoZWNrTG9jYXRpb24gKyBiYWRHcmFtbWFyTG9jYXRpb247CiAgICAgICAg
IGJhZEdyYW1tYXIubGVuZ3RoID0gYmFkR3JhbW1hckxlbmd0aDsKLSAgICAgICAgYmFkR3JhbW1h
ci5kZXRhaWxzID0gc3RkOjptb3ZlKGJhZEdyYW1tYXJEZXRhaWxzKTsKKyAgICAgICAgYmFkR3Jh
bW1hci5kZXRhaWxzID0gV1RGOjptb3ZlKGJhZEdyYW1tYXJEZXRhaWxzKTsKICAgICAgICAgcmVz
dWx0cy5hcHBlbmQoYmFkR3JhbW1hcik7CiAKICAgICAgICAgY2hlY2tMb2NhdGlvbiArPSBiYWRH
cmFtbWFyTG9jYXRpb24gKyBiYWRHcmFtbWFyTGVuZ3RoOwpAQCAtNjY5LDExICs2NjksMTEgQEAg
dm9pZCBjaGVja1RleHRPZlBhcmFncmFwaChUZXh0Q2hlY2tlckNsaWVudCYgY2xpZW50LCBTdHJp
bmdWaWV3IHRleHQsIFRleHRDaGVja2kKICAgICAgICAgZmluZEdyYW1tYXRpY2FsRXJyb3JzKGNs
aWVudCwgdGV4dC5zdWJzdHJpbmcoMCwgZ3JhbW1hckNoZWNrTGVuZ3RoKSwgZ3JhbW1hdGljYWxF
cnJvcnMpOwogICAgIH0KIAotICAgIHJlc3VsdHMgPSBzdGQ6Om1vdmUoZ3JhbW1hdGljYWxFcnJv
cnMpOworICAgIHJlc3VsdHMgPSBXVEY6Om1vdmUoZ3JhbW1hdGljYWxFcnJvcnMpOwogI2VuZGlm
CiAKICAgICBpZiAocmVzdWx0cy5pc0VtcHR5KCkpCi0gICAgICAgIHJlc3VsdHMgPSBzdGQ6Om1v
dmUobWlzcGVsbGluZ3MpOworICAgICAgICByZXN1bHRzID0gV1RGOjptb3ZlKG1pc3BlbGxpbmdz
KTsKICAgICBlbHNlCiAgICAgICAgIHJlc3VsdHMuYXBwZW5kVmVjdG9yKG1pc3BlbGxpbmdzKTsK
ICNlbmRpZiAvLyBVU0UoVU5JRklFRF9URVhUX0NIRUNLSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UZXh0SXRlcmF0b3IuY3BwCmluZGV4IGJhNzkwYzkuLjY2ZjM0ZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKQEAgLTI3Nyw3ICsyNzcsNyBAQCBpbmxpbmUgdm9p
ZCBUZXh0SXRlcmF0b3JDb3B5YWJsZVRleHQ6OnJlc2V0KCkKIGlubGluZSB2b2lkIFRleHRJdGVy
YXRvckNvcHlhYmxlVGV4dDo6c2V0KFN0cmluZyYmIHN0cmluZykKIHsKICAgICBtX3NpbmdsZUNo
YXJhY3RlciA9IDA7Ci0gICAgbV9zdHJpbmcgPSBzdGQ6Om1vdmUoc3RyaW5nKTsKKyAgICBtX3N0
cmluZyA9IFdURjo6bW92ZShzdHJpbmcpOwogICAgIG1fb2Zmc2V0ID0gMDsKICAgICBtX2xlbmd0
aCA9IG1fc3RyaW5nLmxlbmd0aCgpOwogfQpAQCAtMjg5LDcgKzI4OSw3IEBAIGlubGluZSB2b2lk
IFRleHRJdGVyYXRvckNvcHlhYmxlVGV4dDo6c2V0KFN0cmluZyYmIHN0cmluZywgdW5zaWduZWQg
b2Zmc2V0LCB1bnNpCiAgICAgQVNTRVJUKGxlbmd0aCA8PSBzdHJpbmcubGVuZ3RoKCkgLSBvZmZz
ZXQpOwogCiAgICAgbV9zaW5nbGVDaGFyYWN0ZXIgPSAwOwotICAgIG1fc3RyaW5nID0gc3RkOjpt
b3ZlKHN0cmluZyk7CisgICAgbV9zdHJpbmcgPSBXVEY6Om1vdmUoc3RyaW5nKTsKICAgICBtX29m
ZnNldCA9IG9mZnNldDsKICAgICBtX2xlbmd0aCA9IGxlbmd0aDsKIH0KQEAgLTc2Miw3ICs3NjIs
NyBAQCBib29sIFRleHRJdGVyYXRvcjo6aGFuZGxlUmVwbGFjZWRFbGVtZW50KCkKICAgICAgICAg
U3RyaW5nIGFsdFRleHQgPSB0b1JlbmRlckltYWdlKHJlbmRlcmVyKS5hbHRUZXh0KCk7CiAgICAg
ICAgIGlmICh1bnNpZ25lZCBsZW5ndGggPSBhbHRUZXh0Lmxlbmd0aCgpKSB7CiAgICAgICAgICAg
ICBtX2xhc3RDaGFyYWN0ZXIgPSBhbHRUZXh0W2xlbmd0aCAtIDFdOwotICAgICAgICAgICAgbV9j
b3B5YWJsZVRleHQuc2V0KHN0ZDo6bW92ZShhbHRUZXh0KSk7CisgICAgICAgICAgICBtX2NvcHlh
YmxlVGV4dC5zZXQoV1RGOjptb3ZlKGFsdFRleHQpKTsKICAgICAgICAgICAgIG1fdGV4dCA9IG1f
Y29weWFibGVUZXh0LnRleHQoKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9
CkBAIC0xMDgxLDcgKzEwODEsNyBAQCB2b2lkIFRleHRJdGVyYXRvcjo6ZW1pdFRleHQoVGV4dCYg
dGV4dE5vZGUsIFJlbmRlclRleHQmIHJlbmRlcmVyLCBpbnQgdGV4dFN0YXJ0TwogICAgIG1fcG9z
aXRpb25FbmRPZmZzZXQgPSB0ZXh0RW5kT2Zmc2V0OwogCiAgICAgbV9sYXN0Q2hhcmFjdGVyID0g
c3RyaW5nW3RleHRFbmRPZmZzZXQgLSAxXTsKLSAgICBtX2NvcHlhYmxlVGV4dC5zZXQoc3RkOjpt
b3ZlKHN0cmluZyksIHRleHRTdGFydE9mZnNldCwgdGV4dEVuZE9mZnNldCAtIHRleHRTdGFydE9m
ZnNldCk7CisgICAgbV9jb3B5YWJsZVRleHQuc2V0KFdURjo6bW92ZShzdHJpbmcpLCB0ZXh0U3Rh
cnRPZmZzZXQsIHRleHRFbmRPZmZzZXQgLSB0ZXh0U3RhcnRPZmZzZXQpOwogICAgIG1fdGV4dCA9
IG1fY29weWFibGVUZXh0LnRleHQoKTsKIAogICAgIG1fbGFzdFRleHROb2RlRW5kZWRXaXRoQ29s
bGFwc2VkU3BhY2UgPSBmYWxzZTsKQEAgLTEyODksNyArMTI4OSw3IEBAIGJvb2wgU2ltcGxpZmll
ZEJhY2t3YXJkc1RleHRJdGVyYXRvcjo6aGFuZGxlVGV4dE5vZGUoKQogICAgIEFTU0VSVChtX3Bv
c2l0aW9uRW5kT2Zmc2V0IC0gb2Zmc2V0SW5Ob2RlIDw9IHN0YXRpY19jYXN0PGludD4odGV4dC5s
ZW5ndGgoKSkpOwogCiAgICAgbV9sYXN0Q2hhcmFjdGVyID0gdGV4dFttX3Bvc2l0aW9uRW5kT2Zm
c2V0IC0gb2Zmc2V0SW5Ob2RlIC0gMV07Ci0gICAgbV9jb3B5YWJsZVRleHQuc2V0KHN0ZDo6bW92
ZSh0ZXh0KSwgbV9wb3NpdGlvblN0YXJ0T2Zmc2V0IC0gb2Zmc2V0SW5Ob2RlLCBtX3Bvc2l0aW9u
RW5kT2Zmc2V0IC0gbV9wb3NpdGlvblN0YXJ0T2Zmc2V0KTsKKyAgICBtX2NvcHlhYmxlVGV4dC5z
ZXQoV1RGOjptb3ZlKHRleHQpLCBtX3Bvc2l0aW9uU3RhcnRPZmZzZXQgLSBvZmZzZXRJbk5vZGUs
IG1fcG9zaXRpb25FbmRPZmZzZXQgLSBtX3Bvc2l0aW9uU3RhcnRPZmZzZXQpOwogICAgIG1fdGV4
dCA9IG1fY29weWFibGVUZXh0LnRleHQoKTsKIAogICAgIHJldHVybiAhbV9zaG91bGRIYW5kbGVG
aXJzdExldHRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwCmluZGV4IGYxZjI5YjguLjAxZDMzMGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZmlsZWFwaS9CbG9iLmNwcApAQCAtODIsOSArODIsOSBAQCBCbG9iOjpCbG9iKFZl
Y3RvcjxjaGFyPiBkYXRhLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKQogICAgICwgbV9zaXpl
KGRhdGEuc2l6ZSgpKQogewogICAgIFZlY3RvcjxCbG9iUGFydD4gYmxvYlBhcnRzOwotICAgIGJs
b2JQYXJ0cy5hcHBlbmQoQmxvYlBhcnQoc3RkOjptb3ZlKGRhdGEpKSk7CisgICAgYmxvYlBhcnRz
LmFwcGVuZChCbG9iUGFydChXVEY6Om1vdmUoZGF0YSkpKTsKICAgICBtX2ludGVybmFsVVJMID0g
QmxvYlVSTDo6Y3JlYXRlSW50ZXJuYWxVUkwoKTsKLSAgICBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5
OjpyZWdpc3RlckJsb2JVUkwobV9pbnRlcm5hbFVSTCwgc3RkOjptb3ZlKGJsb2JQYXJ0cyksIGNv
bnRlbnRUeXBlKTsKKyAgICBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckJsb2JVUkwo
bV9pbnRlcm5hbFVSTCwgV1RGOjptb3ZlKGJsb2JQYXJ0cyksIGNvbnRlbnRUeXBlKTsKIH0KIAog
QmxvYjo6QmxvYihWZWN0b3I8QmxvYlBhcnQ+IGJsb2JQYXJ0cywgY29uc3QgU3RyaW5nJiBjb250
ZW50VHlwZSkKQEAgLTkyLDcgKzkyLDcgQEAgQmxvYjo6QmxvYihWZWN0b3I8QmxvYlBhcnQ+IGJs
b2JQYXJ0cywgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkKICAgICAsIG1fc2l6ZSgtMSkKIHsK
ICAgICBtX2ludGVybmFsVVJMID0gQmxvYlVSTDo6Y3JlYXRlSW50ZXJuYWxVUkwoKTsKLSAgICBU
aHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckJsb2JVUkwobV9pbnRlcm5hbFVSTCwgc3Rk
Ojptb3ZlKGJsb2JQYXJ0cyksIGNvbnRlbnRUeXBlKTsKKyAgICBUaHJlYWRhYmxlQmxvYlJlZ2lz
dHJ5OjpyZWdpc3RlckJsb2JVUkwobV9pbnRlcm5hbFVSTCwgV1RGOjptb3ZlKGJsb2JQYXJ0cyks
IGNvbnRlbnRUeXBlKTsKIH0KIAogQmxvYjo6QmxvYihEZXNlcmlhbGl6YXRpb25Db250cnVjdG9y
LCBjb25zdCBVUkwmIHNyY1VSTCwgY29uc3QgU3RyaW5nJiB0eXBlLCBsb25nIGxvbmcgc2l6ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5oIGIvU291cmNlL1dlYkNv
cmUvZmlsZWFwaS9CbG9iLmgKaW5kZXggYTJhYjVhZi4uZGZmY2FkNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9C
bG9iLmgKQEAgLTUxLDEyICs1MSwxMiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxCbG9iPiBjcmVhdGUoVmVjdG9yPGNoYXI+IGRhdGEsIGNvbnN0IFN0cmluZyYgY29udGVudFR5
cGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJsb2Ioc3RkOjptb3ZlKGRh
dGEpLCBjb250ZW50VHlwZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJsb2IoV1RG
Ojptb3ZlKGRhdGEpLCBjb250ZW50VHlwZSkpOwogICAgIH0KIAogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEJsb2I+IGNyZWF0ZShWZWN0b3I8QmxvYlBhcnQ+IGJsb2JQYXJ0cywgY29uc3QgU3RyaW5n
JiBjb250ZW50VHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQmxvYihz
dGQ6Om1vdmUoYmxvYlBhcnRzKSwgY29udGVudFR5cGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBCbG9iKFdURjo6bW92ZShibG9iUGFydHMpLCBjb250ZW50VHlwZSkpOwogICAgIH0K
IAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJsb2I+IGRlc2VyaWFsaXplKGNvbnN0IFVSTCYgc3Jj
VVJMLCBjb25zdCBTdHJpbmcmIHR5cGUsIGxvbmcgbG9uZyBzaXplKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9G
aWxlTGlzdC5oCmluZGV4IDJkODVjYzAuLmJiZTZkZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2ZpbGVhcGkvRmlsZUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVM
aXN0LmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
RmlsZUxpc3Q+IGNyZWF0ZShWZWN0b3I8UmVmUHRyPEZpbGU+PiYmIGZpbGVzKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGaWxlTGlzdChzdGQ6Om1vdmUoZmlsZXMpKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRmlsZUxpc3QoV1RGOjptb3ZlKGZpbGVzKSkpOwog
ICAgIH0KIAogICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsZXMuc2l6
ZSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVUaHJlYWQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlVGhyZWFkLmNwcAppbmRleCBlZmMwN2RmLi4z
NGVhNWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVUaHJlYWQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVRocmVhZC5jcHAKQEAgLTY0LDcgKzY0
LDcgQEAgdm9pZCBGaWxlVGhyZWFkOjpzdG9wKCkKIAogdm9pZCBGaWxlVGhyZWFkOjpwb3N0VGFz
ayhUYXNrIHRhc2spCiB7Ci0gICAgbV9xdWV1ZS5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxGaWxl
VGhyZWFkOjpUYXNrPihzdGQ6Om1vdmUodGFzaykpKTsKKyAgICBtX3F1ZXVlLmFwcGVuZChzdGQ6
Om1ha2VfdW5pcXVlPEZpbGVUaHJlYWQ6OlRhc2s+KFdURjo6bW92ZSh0YXNrKSkpOwogfQogCiBj
bGFzcyBTYW1lSW5zdGFuY2VQcmVkaWNhdGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZmlsZWFwaS9GaWxlVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVUaHJlYWQu
aAppbmRleCA2M2QxMTU5Li45ZGUyZmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxl
YXBpL0ZpbGVUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVUaHJlYWQu
aApAQCAtNTcsMTMgKzU3LDEzIEBAIHB1YmxpYzoKICAgICBwdWJsaWM6CiAgICAgICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lID0gdHlwZW5hbWUgc3RkOjplbmFi
bGVfaWY8IXN0ZDo6aXNfYmFzZV9vZjxUYXNrLCBVPjo6dmFsdWUgJiYgc3RkOjppc19jb252ZXJ0
aWJsZTxVLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+Pjo6dmFsdWU+Ojp0eXBlPgogICAgICAgICBU
YXNrKFQqIGluc3RhbmNlLCBVIG1ldGhvZCkKLSAgICAgICAgICAgIDogbV90YXNrKHN0ZDo6bW92
ZShtZXRob2QpKQorICAgICAgICAgICAgOiBtX3Rhc2soV1RGOjptb3ZlKG1ldGhvZCkpCiAgICAg
ICAgICAgICAsIG1faW5zdGFuY2UoaW5zdGFuY2UpCiAgICAgICAgIHsKICAgICAgICAgfQogCiAg
ICAgICAgIFRhc2soVGFzayYmIG90aGVyKQotICAgICAgICAgICAgOiBtX3Rhc2soc3RkOjptb3Zl
KG90aGVyLm1fdGFzaykpCisgICAgICAgICAgICA6IG1fdGFzayhXVEY6Om1vdmUob3RoZXIubV90
YXNrKSkKICAgICAgICAgICAgICwgbV9pbnN0YW5jZShvdGhlci5tX2luc3RhbmNlKQogICAgICAg
ICB7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFk
YWJsZUJsb2JSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVC
bG9iUmVnaXN0cnkuY3BwCmluZGV4IDc5ZWYzZTIuLmVhZWVkZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcApAQCAtNTQsNyArNTQs
NyBAQCBwdWJsaWM6CiAgICAgQmxvYlJlZ2lzdHJ5Q29udGV4dChjb25zdCBVUkwmIHVybCwgVmVj
dG9yPEJsb2JQYXJ0PiBibG9iUGFydHMsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCiAgICAg
ICAgIDogdXJsKHVybC5jb3B5KCkpCiAgICAgICAgICwgY29udGVudFR5cGUoY29udGVudFR5cGUu
aXNvbGF0ZWRDb3B5KCkpCi0gICAgICAgICwgYmxvYlBhcnRzKHN0ZDo6bW92ZShibG9iUGFydHMp
KQorICAgICAgICAsIGJsb2JQYXJ0cyhXVEY6Om1vdmUoYmxvYlBhcnRzKSkKICAgICB7CiAgICAg
ICAgIGZvciAoQmxvYlBhcnQmIHBhcnQgOiBibG9iUGFydHMpCiAgICAgICAgICAgICBwYXJ0LmRl
dGFjaEZyb21DdXJyZW50VGhyZWFkKCk7CkBAIC0xMTUsMTMgKzExNSwxMyBAQCB2b2lkIFRocmVh
ZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgcAogdm9pZCBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckJsb2JV
UkwoY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxCbG9iUGFydD4gYmxvYlBhcnRzLCBjb25zdCBTdHJp
bmcmIGNvbnRlbnRUeXBlKQogewogICAgIGlmIChpc01haW5UaHJlYWQoKSkKLSAgICAgICAgYmxv
YlJlZ2lzdHJ5KCkucmVnaXN0ZXJCbG9iVVJMKHVybCwgc3RkOjptb3ZlKGJsb2JQYXJ0cyksIGNv
bnRlbnRUeXBlKTsKKyAgICAgICAgYmxvYlJlZ2lzdHJ5KCkucmVnaXN0ZXJCbG9iVVJMKHVybCwg
V1RGOjptb3ZlKGJsb2JQYXJ0cyksIGNvbnRlbnRUeXBlKTsKICAgICBlbHNlIHsKICAgICAgICAg
Ly8gQmxvYlJlZ2lzdHJ5Q29udGV4dCBwZXJmb3JtcyBhbiBpc29sYXRlZCBjb3B5IG9mIGRhdGEu
Ci0gICAgICAgIEJsb2JSZWdpc3RyeUNvbnRleHQqIGNvbnRleHQgPSBuZXcgQmxvYlJlZ2lzdHJ5
Q29udGV4dCh1cmwsIHN0ZDo6bW92ZShibG9iUGFydHMpLCBjb250ZW50VHlwZSk7CisgICAgICAg
IEJsb2JSZWdpc3RyeUNvbnRleHQqIGNvbnRleHQgPSBuZXcgQmxvYlJlZ2lzdHJ5Q29udGV4dCh1
cmwsIFdURjo6bW92ZShibG9iUGFydHMpLCBjb250ZW50VHlwZSk7CiAgICAgICAgIGNhbGxPbk1h
aW5UaHJlYWQoW2NvbnRleHRdIHsKICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxCbG9iUmVn
aXN0cnlDb250ZXh0PiBibG9iUmVnaXN0cnlDb250ZXh0KGNvbnRleHQpOwotICAgICAgICAgICAg
YmxvYlJlZ2lzdHJ5KCkucmVnaXN0ZXJCbG9iVVJMKGJsb2JSZWdpc3RyeUNvbnRleHQtPnVybCwg
c3RkOjptb3ZlKGJsb2JSZWdpc3RyeUNvbnRleHQtPmJsb2JQYXJ0cyksIGJsb2JSZWdpc3RyeUNv
bnRleHQtPmNvbnRlbnRUeXBlKTsKKyAgICAgICAgICAgIGJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVy
QmxvYlVSTChibG9iUmVnaXN0cnlDb250ZXh0LT51cmwsIFdURjo6bW92ZShibG9iUmVnaXN0cnlD
b250ZXh0LT5ibG9iUGFydHMpLCBibG9iUmVnaXN0cnlDb250ZXh0LT5jb250ZW50VHlwZSk7CiAg
ICAgICAgIH0pOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
V2ViS2l0QmxvYkJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9XZWJLaXRCbG9i
QnVpbGRlci5jcHAKaW5kZXggNjQ1ZWI5MS4uZWZjMjlhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9XZWJLaXRCbG9iQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZmlsZWFwaS9XZWJLaXRCbG9iQnVpbGRlci5jcHAKQEAgLTkwLDE1ICs5MCwxNSBAQCB2b2lkIEJs
b2JCdWlsZGVyOjphcHBlbmQoQmxvYiogYmxvYikKICAgICBpZiAoIWJsb2IpCiAgICAgICAgIHJl
dHVybjsKICAgICBpZiAoIW1fYXBwZW5kYWJsZURhdGEuaXNFbXB0eSgpKQotICAgICAgICBtX2l0
ZW1zLmFwcGVuZChCbG9iUGFydChzdGQ6Om1vdmUobV9hcHBlbmRhYmxlRGF0YSkpKTsKKyAgICAg
ICAgbV9pdGVtcy5hcHBlbmQoQmxvYlBhcnQoV1RGOjptb3ZlKG1fYXBwZW5kYWJsZURhdGEpKSk7
CiAgICAgbV9pdGVtcy5hcHBlbmQoQmxvYlBhcnQoYmxvYi0+dXJsKCkpKTsKIH0KIAogVmVjdG9y
PEJsb2JQYXJ0PiBCbG9iQnVpbGRlcjo6ZmluYWxpemUoKQogewogICAgIGlmICghbV9hcHBlbmRh
YmxlRGF0YS5pc0VtcHR5KCkpCi0gICAgICAgIG1faXRlbXMuYXBwZW5kKEJsb2JQYXJ0KHN0ZDo6
bW92ZShtX2FwcGVuZGFibGVEYXRhKSkpOwotICAgIHJldHVybiBzdGQ6Om1vdmUobV9pdGVtcyk7
CisgICAgICAgIG1faXRlbXMuYXBwZW5kKEJsb2JQYXJ0KFdURjo6bW92ZShtX2FwcGVuZGFibGVE
YXRhKSkpOworICAgIHJldHVybiBXVEY6Om1vdmUobV9pdGVtcyk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJh
bWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAKaW5kZXggMzQ4
NjkwYS4uNzY0OTc0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRG
cmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAKQEAg
LTI3OCw3ICsyNzgsNyBAQCB2b2lkIENhY2hlZEZyYW1lOjpkZXN0cm95KCkKIAogdm9pZCBDYWNo
ZWRGcmFtZTo6c2V0Q2FjaGVkRnJhbWVQbGF0Zm9ybURhdGEoc3RkOjp1bmlxdWVfcHRyPENhY2hl
ZEZyYW1lUGxhdGZvcm1EYXRhPiBkYXRhKQogewotICAgIG1fY2FjaGVkRnJhbWVQbGF0Zm9ybURh
dGEgPSBzdGQ6Om1vdmUoZGF0YSk7CisgICAgbV9jYWNoZWRGcmFtZVBsYXRmb3JtRGF0YSA9IFdU
Rjo6bW92ZShkYXRhKTsKIH0KIAogQ2FjaGVkRnJhbWVQbGF0Zm9ybURhdGEqIENhY2hlZEZyYW1l
OjpjYWNoZWRGcmFtZVBsYXRmb3JtRGF0YSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
aXN0b3J5L0hpc3RvcnlJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0
ZW0uY3BwCmluZGV4IGVjMTM0YzUuLjQwMDYxM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlz
dG9yeUl0ZW0uY3BwCkBAIC01NzMsNyArNTczLDcgQEAgVmVjdG9yPFN0cmluZz4qIEhpc3RvcnlJ
dGVtOjpyZWRpcmVjdFVSTHMoKSBjb25zdAogCiB2b2lkIEhpc3RvcnlJdGVtOjpzZXRSZWRpcmVj
dFVSTHMoc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxTdHJpbmc+PiByZWRpcmVjdFVSTHMpCiB7Ci0g
ICAgbV9yZWRpcmVjdFVSTHMgPSBzdGQ6Om1vdmUocmVkaXJlY3RVUkxzKTsKKyAgICBtX3JlZGly
ZWN0VVJMcyA9IFdURjo6bW92ZShyZWRpcmVjdFVSTHMpOwogfQogCiB2b2lkIEhpc3RvcnlJdGVt
OjplbmNvZGVCYWNrRm9yd2FyZFRyZWUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2hpc3RvcnkvUGFnZUNhY2hlLmNwcAppbmRleCBlYWZmNzQzLi4wODM1ZmE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCkBAIC00MzcsNyArNDM3LDcgQEAgc3RkOjp1bmlxdWVf
cHRyPENhY2hlZFBhZ2U+IFBhZ2VDYWNoZTo6dGFrZShIaXN0b3J5SXRlbSogaXRlbSkKICAgICBp
ZiAoIWl0ZW0pCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgc3RkOjp1bmlxdWVfcHRy
PENhY2hlZFBhZ2U+IGNhY2hlZFBhZ2UgPSBzdGQ6Om1vdmUoaXRlbS0+bV9jYWNoZWRQYWdlKTsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUGFnZT4gY2FjaGVkUGFnZSA9IFdURjo6bW92ZShp
dGVtLT5tX2NhY2hlZFBhZ2UpOwogCiAgICAgcmVtb3ZlRnJvbUxSVUxpc3QoaXRlbSk7CiAgICAg
LS1tX3NpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25JbnB1
dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmNwcApp
bmRleCAwYjE4YjRmLi44OWIyNTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jh
c2VCdXR0b25JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRv
bklucHV0VHlwZS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgYm9vbCBCYXNlQnV0dG9uSW5wdXRUeXBl
OjphcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmLCBib29sKSBjb25zdAogCiBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gQmFzZUJ1dHRvbklucHV0VHlwZTo6Y3JlYXRlSW5wdXRSZW5kZXJlcihQ
YXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8
UmVuZGVyQnV0dG9uPihlbGVtZW50KCksIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBj
cmVhdGVSZW5kZXJlcjxSZW5kZXJCdXR0b24+KGVsZW1lbnQoKSwgV1RGOjptb3ZlKHN0eWxlKSk7
CiB9CiAKIGJvb2wgQmFzZUJ1dHRvbklucHV0VHlwZTo6c3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21B
dHRyaWJ1dGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5kZXggMmZiZjg3
OC4uZGEwN2JlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCkBAIC0yMDUs
NyArMjA1LDcgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2
ZW50KiBldmVudCkKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEZpbGVJbnB1dFR5cGU6OmNy
ZWF0ZUlucHV0UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0
dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckZpbGVVcGxvYWRDb250cm9sPihlbGVtZW50KCksIHN0
ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJGaWxlVXBs
b2FkQ29udHJvbD4oZWxlbWVudCgpLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogYm9vbCBGaWxl
SW5wdXRUeXBlOjpjYW5TZXRTdHJpbmdWYWx1ZSgpIGNvbnN0CkBAIC0yNjgsNyArMjY4LDcgQEAg
UGFzc1JlZlB0cjxGaWxlTGlzdD4gRmlsZUlucHV0VHlwZTo6Y3JlYXRlRmlsZUxpc3QoY29uc3Qg
VmVjdG9yPEZpbGVDaG9vc2VyRmlsZUkKICAgICBmb3IgKGNvbnN0IEZpbGVDaG9vc2VyRmlsZUlu
Zm8mIGluZm8gOiBmaWxlcykKICAgICAgICAgZmlsZU9iamVjdHMuYXBwZW5kKEZpbGU6OmNyZWF0
ZVdpdGhOYW1lKGluZm8ucGF0aCwgaW5mby5kaXNwbGF5TmFtZSkpOwogCi0gICAgcmV0dXJuIEZp
bGVMaXN0OjpjcmVhdGUoc3RkOjptb3ZlKGZpbGVPYmplY3RzKSk7CisgICAgcmV0dXJuIEZpbGVM
aXN0OjpjcmVhdGUoV1RGOjptb3ZlKGZpbGVPYmplY3RzKSk7CiB9CiAKIGJvb2wgRmlsZUlucHV0
VHlwZTo6aXNGaWxlVXBsb2FkKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRm9ybUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxl
ci5jcHAKaW5kZXggMzJkYjQ4OS4uNDUxMDBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9Gb3JtQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29u
dHJvbGxlci5jcHAKQEAgLTQ2MSw3ICs0NjEsNyBAQCB2b2lkIEZvcm1Db250cm9sbGVyOjpmb3Jt
U3RhdGVzRnJvbVN0YXRlVmVjdG9yKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzdGF0ZVZlY3Rvcgog
ICAgICAgICAgICAgaSA9IDA7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAg
ICBtYXAuYWRkKGZvcm1LZXkuaW1wbCgpLCBzdGQ6Om1vdmUoc3RhdGUpKTsKKyAgICAgICAgbWFw
LmFkZChmb3JtS2V5LmltcGwoKSwgV1RGOjptb3ZlKHN0YXRlKSk7CiAgICAgfQogICAgIGlmIChp
ICE9IHN0YXRlVmVjdG9yLnNpemUoKSkKICAgICAgICAgbWFwLmNsZWFyKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCmluZGV4IDkzNGUzNWIuLmJiYjhhMTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCkBAIC03OCw5ICs3OCw5
IEBAIGJvb2wgSFRNTEFwcGxldEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVy
U3R5bGUmIHN0eWxlKQogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxBcHBsZXRFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7CiAg
ICAgaWYgKCFjYW5FbWJlZEphdmEoKSkKLSAgICAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNy
ZWF0ZUZvcigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBSZW5kZXJF
bGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogCi0gICAgcmV0dXJu
IFJlbmRlckVtYmVkZGVkT2JqZWN0OjpjcmVhdGVGb3JBcHBsZXQoKnRoaXMsIHN0ZDo6bW92ZShz
dHlsZSkpOworICAgIHJldHVybiBSZW5kZXJFbWJlZGRlZE9iamVjdDo6Y3JlYXRlRm9yQXBwbGV0
KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogUmVuZGVyV2lkZ2V0KiBIVE1MQXBwbGV0
RWxlbWVudDo6cmVuZGVyV2lkZ2V0Rm9ySlNCaW5kaW5ncygpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQlJFbGVtZW50LmNwcAppbmRleCA1ZWVhODVhLi42MTczNzMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEJSRWxlbWVudC5jcHAKQEAgLTc0LDkgKzc0LDkgQEAgdm9pZCBIVE1MQlJFbGVt
ZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmEKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MQlJFbGVtZW50OjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7CiAgICAgaWYgKHN0
eWxlLmdldCgpLmhhc0NvbnRlbnQoKSkKLSAgICAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNy
ZWF0ZUZvcigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBSZW5kZXJF
bGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogCi0gICAgcmV0dXJu
IGNyZWF0ZVJlbmRlcmVyPFJlbmRlckxpbmVCcmVhaz4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkp
OworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJMaW5lQnJlYWs+KCp0aGlzLCBXVEY6
Om1vdmUoc3R5bGUpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQm9keUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQu
Y3BwCmluZGV4IGMxYmNmYmMuLjFhNDYxNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEJvZHlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5
RWxlbWVudC5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgdm9pZCBIVE1MQm9keUVsZW1lbnQ6OmNvbGxl
Y3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJgogICAg
ICAgICBpZiAoIXVybC5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGF1dG8gaW1hZ2VWYWx1ZSA9
IENTU0ltYWdlVmFsdWU6OmNyZWF0ZShkb2N1bWVudCgpLmNvbXBsZXRlVVJMKHVybCkuc3RyaW5n
KCkpOwogICAgICAgICAgICAgaW1hZ2VWYWx1ZS5nZXQoKS5zZXRJbml0aWF0b3IobG9jYWxOYW1l
KCkpOwotICAgICAgICAgICAgc3R5bGUuc2V0UHJvcGVydHkoQ1NTUHJvcGVydHkoQ1NTUHJvcGVy
dHlCYWNrZ3JvdW5kSW1hZ2UsIHN0ZDo6bW92ZShpbWFnZVZhbHVlKSkpOworICAgICAgICAgICAg
c3R5bGUuc2V0UHJvcGVydHkoQ1NTUHJvcGVydHkoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kSW1hZ2Us
IFdURjo6bW92ZShpbWFnZVZhbHVlKSkpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChuYW1l
ID09IG1hcmdpbndpZHRoQXR0ciB8fCBuYW1lID09IGxlZnRtYXJnaW5BdHRyKSB7CiAgICAgICAg
IGFkZEhUTUxMZW5ndGhUb1N0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eU1hcmdpblJpZ2h0LCB2YWx1
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCmluZGV4IGI2MjVk
N2UuLjk0N2U3MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3Bw
CkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgSFRNTEJ1dHRvbkVsZW1lbnQ6OnNldFR5cGUoY29uc3Qg
QXRvbWljU3RyaW5nJiB0eXBlKQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEJ1dHRv
bkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHls
ZSkKIHsKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyQnV0dG9uPigqdGhpcywgc3Rk
Ojptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckJ1dHRvbj4o
KnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxC
dXR0b25FbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDYW52YXNFbGVtZW50LmNwcAppbmRleCBjYjBhNDI3Li4xM2UzZTkzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApAQCAtMTE4LDExICsxMTgsMTEgQEAg
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXIKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZy
YW1lKCk7CiAgICAgaWYgKGZyYW1lICYmIGZyYW1lLT5zY3JpcHQoKS5jYW5FeGVjdXRlU2NyaXB0
cyhOb3RBYm91dFRvRXhlY3V0ZVNjcmlwdCkpIHsKICAgICAgICAgbV9yZW5kZXJlcklzQ2FudmFz
ID0gdHJ1ZTsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckhUTUxDYW52YXM+
KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVy
PFJlbmRlckhUTUxDYW52YXM+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKICAgICB9CiAKICAg
ICBtX3JlbmRlcmVySXNDYW52YXMgPSBmYWxzZTsKLSAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gSFRNTEVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogdm9p
ZCBIVE1MQ2FudmFzRWxlbWVudDo6d2lsbEF0dGFjaFJlbmRlcmVycygpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENvbGxlY3Rpb24uY3BwCmluZGV4IDk1MmEwNjEuLmVjMTUxNjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3BwCkBAIC00NTEsNyArNDUxLDcgQEAgdm9pZCBIVE1M
Q29sbGVjdGlvbjo6dXBkYXRlTmFtZWRFbGVtZW50Q2FjaGUoKSBjb25zdAogICAgIH0KIAogICAg
IGNhY2hlLT5kaWRQb3B1bGF0ZSgpOwotICAgIHNldE5hbWVJdGVtQ2FjaGUoc3RkOjptb3ZlKGNh
Y2hlKSk7CisgICAgc2V0TmFtZUl0ZW1DYWNoZShXVEY6Om1vdmUoY2FjaGUpKTsKIH0KIAogYm9v
bCBIVE1MQ29sbGVjdGlvbjo6aGFzTmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaAppbmRleCAzZDgxYTM4Li4zMmJk
YmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5oCkBAIC0xNDQsNyArMTQ0LDcg
QEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0TmFtZUl0ZW1DYWNoZShzdGQ6OnVuaXF1ZV9wdHI8
Q29sbGVjdGlvbk5hbWVkRWxlbWVudENhY2hlPiBjYWNoZSkgY29uc3QKICAgICB7CiAgICAgICAg
IEFTU0VSVCghbV9uYW1lZEVsZW1lbnRDYWNoZSk7Ci0gICAgICAgIG1fbmFtZWRFbGVtZW50Q2Fj
aGUgPSBzdGQ6Om1vdmUoY2FjaGUpOworICAgICAgICBtX25hbWVkRWxlbWVudENhY2hlID0gV1RG
Ojptb3ZlKGNhY2hlKTsKICAgICAgICAgZG9jdW1lbnQoKS5jb2xsZWN0aW9uQ2FjaGVkSWROYW1l
TWFwKCp0aGlzKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TERldGFpbHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVt
ZW50LmNwcAppbmRleCBkYmQ3NzU1Li4yM2QyMTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBAIC0xMTMsNyArMTEzLDcgQEAgSFRNTERldGFpbHNFbGVt
ZW50OjpIVE1MRGV0YWlsc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGQKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxEZXRhaWxzRWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewotICAg
IHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJCbG9ja0Zsb3c+KCp0aGlzLCBzdGQ6Om1vdmUo
c3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyQmxvY2tGbG93PigqdGhp
cywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAKIHZvaWQgSFRNTERldGFpbHNFbGVtZW50OjpkaWRB
ZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QqIHJvb3QpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnQuY3BwCmluZGV4IGFkZTY5ZGMuLmY1ZTUyZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnQuY3BwCkBAIC04MDksOCArODA5LDggQEAgYm9vbCBIVE1MRWxlbWVudDo6cmVuZGVy
ZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gSFRNTEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0
eWxlPiBzdHlsZSkKIHsKICAgICBpZiAoaGFzVGFnTmFtZSh3YnJUYWcpKQotICAgICAgICByZXR1
cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTGluZUJyZWFrPigqdGhpcywgc3RkOjptb3ZlKHN0eWxl
KSk7Ci0gICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgc3RkOjptb3Zl
KHN0eWxlKSk7CisgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJMaW5lQnJlYWs+
KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gUmVuZGVyRWxlbWVudDo6Y3Jl
YXRlRm9yKCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogSFRNTEZvcm1FbGVtZW50KiBI
VE1MRWxlbWVudDo6dmlydHVhbEZvcm0oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZpZWxkU2V0RWxlbWVudC5jcHAKaW5kZXggZDk0YzA4ZS4uNjgxZTU1MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCkBAIC0xNDEsNyArMTQxLDcgQEAg
Y29uc3QgQXRvbWljU3RyaW5nJiBIVE1MRmllbGRTZXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUo
KSBjb25zdAogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEZpZWxkU2V0RWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewotICAg
IHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJGaWVsZHNldD4oKnRoaXMsIHN0ZDo6bW92ZShz
dHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJGaWVsZHNldD4oKnRoaXMs
IFdURjo6bW92ZShzdHlsZSkpOwogfQogCiBIVE1MTGVnZW5kRWxlbWVudCogSFRNTEZpZWxkU2V0
RWxlbWVudDo6bGVnZW5kKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5jcHAKaW5kZXggZTJjNmJlZi4uNzdhZDc0MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5jcHAK
QEAgLTE3NSw3ICsxNzUsNyBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uOjp1cGRh
dGVOYW1lZEVsZW1lbnRDYWNoZSgpIGNvbnN0CiAgICAgfQogCiAgICAgY2FjaGUtPmRpZFBvcHVs
YXRlKCk7Ci0gICAgc2V0TmFtZUl0ZW1DYWNoZShzdGQ6Om1vdmUoY2FjaGUpKTsKKyAgICBzZXRO
YW1lSXRlbUNhY2hlKFdURjo6bW92ZShjYWNoZSkpOwogfQogCiB2b2lkIEhUTUxGb3JtQ29udHJv
bHNDb2xsZWN0aW9uOjppbnZhbGlkYXRlQ2FjaGUoRG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5jcHAKaW5kZXggYzk2MWQyZi4uOTdi
YWJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuY3BwCkBAIC01Niw3
ICs1Niw3IEBAIGJvb2wgSFRNTEZyYW1lRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBS
ZW5kZXJTdHlsZSYpCiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MRnJhbWVFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0g
ICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckZyYW1lPigqdGhpcywgc3RkOjptb3ZlKHN0
eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckZyYW1lPigqdGhpcywgV1RG
Ojptb3ZlKHN0eWxlKSk7CiB9CiAKIGJvb2wgSFRNTEZyYW1lRWxlbWVudDo6bm9SZXNpemUoKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAKaW5kZXgg
NjY3YmY3Ni4uNGQwN2JmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJh
bWVTZXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVs
ZW1lbnQuY3BwCkBAIC0xNTgsOSArMTU4LDkgQEAgYm9vbCBIVE1MRnJhbWVTZXRFbGVtZW50Ojpy
ZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBIVE1MRnJhbWVTZXRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFz
c1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7CiAgICAgaWYgKHN0eWxlLmdldCgpLmhhc0NvbnRl
bnQoKSkKLSAgICAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgc3Rk
Ojptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3Io
KnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogICAgIAotICAgIHJldHVybiBjcmVhdGVSZW5kZXJl
cjxSZW5kZXJGcmFtZVNldD4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBj
cmVhdGVSZW5kZXJlcjxSZW5kZXJGcmFtZVNldD4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwog
fQogCiBIVE1MRnJhbWVTZXRFbGVtZW50KiBIVE1MRnJhbWVTZXRFbGVtZW50OjpmaW5kQ29udGFp
bmluZyhFbGVtZW50KiBkZXNjZW5kYW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSUZyYW1lRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVF
bGVtZW50LmNwcAppbmRleCBkM2ViYTQwLi4zNWE1NmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJRnJhbWVFbGVtZW50LmNwcApAQCAtOTIsNyArOTIsNyBAQCBib29sIEhUTUxJRnJhbWVF
bGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKIAogUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxJRnJhbWVFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVJl
bmRlcmVyPFJlbmRlcklGcmFtZT4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVy
biBjcmVhdGVSZW5kZXJlcjxSZW5kZXJJRnJhbWU+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsK
IH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXggZjU0
YjcxNy4uNjBkMDRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3Bw
CkBAIC0yMTEsOSArMjExLDkgQEAgU3RyaW5nIEhUTUxJbWFnZUVsZW1lbnQ6OmFsdFRleHQoKSBj
b25zdAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxJbWFnZUVsZW1lbnQ6OmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKICAgICBpZiAoc3R5
bGUuZ2V0KCkuaGFzQ29udGVudCgpKQotICAgICAgICByZXR1cm4gUmVuZGVyRWxlbWVudDo6Y3Jl
YXRlRm9yKCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIFJlbmRlckVs
ZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiAKLSAgICByZXR1cm4g
Y3JlYXRlUmVuZGVyZXI8UmVuZGVySW1hZ2U+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpLCBudWxs
cHRyLCBtX2ltYWdlRGV2aWNlUGl4ZWxSYXRpbyk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVy
PFJlbmRlckltYWdlPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSwgbnVsbHB0ciwgbV9pbWFnZURl
dmljZVBpeGVsUmF0aW8pOwogfQogCiBib29sIEhUTUxJbWFnZUVsZW1lbnQ6OmNhblN0YXJ0U2Vs
ZWN0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmlu
ZGV4IGE1NjI5ZDYuLmQ3YWIxMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcApAQCAtNDY3LDcgKzQ2Nyw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6dXBkYXRl
VHlwZSgpCiAKICAgICBtX2lucHV0VHlwZS0+ZGVzdHJveVNoYWRvd1N1YnRyZWUoKTsKIAotICAg
IG1faW5wdXRUeXBlID0gc3RkOjptb3ZlKG5ld1R5cGUpOworICAgIG1faW5wdXRUeXBlID0gV1RG
Ojptb3ZlKG5ld1R5cGUpOwogICAgIG1faW5wdXRUeXBlLT5jcmVhdGVTaGFkb3dTdWJ0cmVlKCk7
CiAgICAgdXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KCk7CiAKQEAgLTc1OSw3ICs3
NTksNyBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVu
ZGVyU3R5bGUmIHN0eWxlKQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTElucHV0RWxl
bWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQog
ewotICAgIHJldHVybiBtX2lucHV0VHlwZS0+Y3JlYXRlSW5wdXRSZW5kZXJlcihzdGQ6Om1vdmUo
c3R5bGUpKTsKKyAgICByZXR1cm4gbV9pbnB1dFR5cGUtPmNyZWF0ZUlucHV0UmVuZGVyZXIoV1RG
Ojptb3ZlKHN0eWxlKSk7CiB9CiAKIHZvaWQgSFRNTElucHV0RWxlbWVudDo6d2lsbEF0dGFjaFJl
bmRlcmVycygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA3
Mzg3YzAwLi43YjI5OTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKQEAgLTY1Miw3ICs2NTIsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OnJlbmRlcmVySXNO
ZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gSFRNTE1lZGlhRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVy
U3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNZWRpYT4o
KnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5k
ZXJNZWRpYT4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiBib29sIEhUTUxNZWRpYUVs
ZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcAppbmRleCBmYjljMWY3Li5m
MmFhYzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKQEAgLTYw
LDkgKzYwLDkgQEAgUGFzc1JlZlB0cjxIVE1MTWV0ZXJFbGVtZW50PiBIVE1MTWV0ZXJFbGVtZW50
OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmEKIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBIVE1MTWV0ZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5k
ZXJTdHlsZT4gc3R5bGUpCiB7CiAgICAgaWYgKCFkb2N1bWVudCgpLnBhZ2UoKS0+dGhlbWUoKS5z
dXBwb3J0c01ldGVyKHN0eWxlLmdldCgpLmFwcGVhcmFuY2UoKSkpCi0gICAgICAgIHJldHVybiBS
ZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAg
ICByZXR1cm4gUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUp
KTsKIAotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNZXRlcj4oKnRoaXMsIHN0ZDo6
bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNZXRlcj4oKnRo
aXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiBib29sIEhUTUxNZXRlckVsZW1lbnQ6OmNoaWxk
U2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCmluZGV4IGMxMGRlOWQuLjRmZDlkNTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCkBAIC0yNzgsOSArMjc4
LDkgQEAgTlBPYmplY3QqIEhUTUxQbHVnSW5FbGVtZW50OjpnZXROUE9iamVjdCgpCiBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gSFRNTFBsdWdJbkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKICAgICBpZiAobV9wbHVnaW5SZXBsYWNl
bWVudCAmJiBtX3BsdWdpblJlcGxhY2VtZW50LT53aWxsQ3JlYXRlUmVuZGVyZXIoKSkKLSAgICAg
ICAgcmV0dXJuIG1fcGx1Z2luUmVwbGFjZW1lbnQtPmNyZWF0ZUVsZW1lbnRSZW5kZXJlcigqdGhp
cywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBtX3BsdWdpblJlcGxhY2VtZW50
LT5jcmVhdGVFbGVtZW50UmVuZGVyZXIoKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogCi0gICAg
cmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckVtYmVkZGVkT2JqZWN0PigqdGhpcywgc3RkOjpt
b3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckVtYmVkZGVkT2Jq
ZWN0PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAKIHZvaWQgSFRNTFBsdWdJbkVsZW1l
bnQ6OnN3YXBSZW5kZXJlclRpbWVyRmlyZWQoVGltZXI8SFRNTFBsdWdJbkVsZW1lbnQ+JikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCmluZGV4IGQz
NjgxODYuLmU2MzFhZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJ
bkltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1h
Z2VFbGVtZW50LmNwcApAQCAtMTk2LDcgKzE5Niw3IEBAIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxS
CiAgICAgQVNTRVJUKCFkb2N1bWVudCgpLmluUGFnZUNhY2hlKCkpOwogCiAgICAgaWYgKGRpc3Bs
YXlTdGF0ZSgpID49IFByZXBhcmluZ1BsdWdpblJlcGxhY2VtZW50KQotICAgICAgICByZXR1cm4g
SFRNTFBsdWdJbkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihzdGQ6Om1vdmUoc3R5bGUp
KTsKKyAgICAgICAgcmV0dXJuIEhUTUxQbHVnSW5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoV1RGOjptb3ZlKHN0eWxlKSk7CiAKICAgICAvLyBPbmNlIGEgUGx1Z0luIEVsZW1lbnQgY3Jl
YXRlcyBpdHMgcmVuZGVyZXIsIGl0IG5lZWRzIHRvIGJlIHRvbGQgd2hlbiB0aGUgRG9jdW1lbnQg
Z29lcwogICAgIC8vIGluYWN0aXZlIG9yIHJlYWN0aXZhdGVzIHNvIGl0IGNhbiBjbGVhciB0aGUg
cmVuZGVyZXIgYmVmb3JlIGdvaW5nIGludG8gdGhlIHBhZ2UgY2FjaGUuCkBAIC0yMDYsMjEgKzIw
NiwyMSBAQCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UgogICAgIH0KIAogICAgIGlmIChkaXNwbGF5
U3RhdGUoKSA9PSBEaXNwbGF5aW5nU25hcHNob3QpIHsKLSAgICAgICAgYXV0byByZW5kZXJTbmFw
c2hvdHRlZFBsdWdJbiA9IGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNuYXBzaG90dGVkUGx1Z0luPigq
dGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIGF1dG8gcmVuZGVyU25hcHNob3R0ZWRQ
bHVnSW4gPSBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbj4oKnRoaXMsIFdU
Rjo6bW92ZShzdHlsZSkpOwogICAgICAgICByZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi0+dXBkYXRl
U25hcHNob3QobV9zbmFwc2hvdEltYWdlKTsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bW92ZShyZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbik7CisgICAgICAgIHJldHVybiBXVEY6Om1vdmUocmVuZGVyU25h
cHNob3R0ZWRQbHVnSW4pOwogICAgIH0KIAogICAgIC8vIEZhbGxiYWNrIGNvbnRlbnQgYnJlYWtz
IHRoZSBET00tPlJlbmRlcmVyIGNsYXNzIHJlbGF0aW9uc2hpcCBvZiB0aGlzCiAgICAgLy8gY2xh
c3MgYW5kIGFsbCBzdXBlcmNsYXNzZXMgYmVjYXVzZSBjcmVhdGVPYmplY3Qgd29uJ3QgbmVjZXNz
YXJpbHkKICAgICAvLyByZXR1cm4gYSBSZW5kZXJFbWJlZGRlZE9iamVjdCBvciBSZW5kZXJXaWRn
ZXQuCiAgICAgaWYgKHVzZUZhbGxiYWNrQ29udGVudCgpKQotICAgICAgICByZXR1cm4gUmVuZGVy
RWxlbWVudDo6Y3JlYXRlRm9yKCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0
dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiAK
ICAgICBpZiAoaXNJbWFnZVR5cGUoKSkKLSAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJl
bmRlckltYWdlPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBjcmVh
dGVSZW5kZXJlcjxSZW5kZXJJbWFnZT4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogCi0gICAg
cmV0dXJuIEhUTUxQbHVnSW5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoc3RkOjptb3Zl
KHN0eWxlKSk7CisgICAgcmV0dXJuIEhUTUxQbHVnSW5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoV1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAKIGJvb2wgSFRNTFBsdWdJbkltYWdlRWxlbWVu
dDo6d2lsbFJlY2FsY1N0eWxlKFN0eWxlOjpDaGFuZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAppbmRleCAxMTg1ZGE3Li5iNTQ3NTc5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKQEAgLTYwLDkgKzYwLDkgQEAg
UGFzc1JlZlB0cjxIVE1MUHJvZ3Jlc3NFbGVtZW50PiBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MUHJv
Z3Jlc3NFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4g
c3R5bGUpCiB7CiAgICAgaWYgKCFzdHlsZS5nZXQoKS5oYXNBcHBlYXJhbmNlKCkpCi0gICAgICAg
IHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkp
OworICAgICAgICByZXR1cm4gUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKCp0aGlzLCBXVEY6Om1v
dmUoc3R5bGUpKTsKIAotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJQcm9ncmVzcz4o
KnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5k
ZXJQcm9ncmVzcz4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiBib29sIEhUTUxQcm9n
cmVzc0VsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYgY2hpbGQp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IDBi
YjI1YzUuLjg2N2RkMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVj
dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQu
Y3BwCkBAIC0zNTAsMTAgKzM1MCwxMCBAQCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFNl
bGVjdEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlcgogewogI2lm
ICFQTEFURk9STShJT1MpCiAgICAgaWYgKHVzZXNNZW51TGlzdCgpKQotICAgICAgICByZXR1cm4g
Y3JlYXRlUmVuZGVyZXI8UmVuZGVyTWVudUxpc3Q+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsK
LSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTGlzdEJveD4oKnRoaXMsIHN0ZDo6bW92
ZShzdHlsZSkpOworICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWVudUxpc3Q+
KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVu
ZGVyTGlzdEJveD4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogI2Vsc2UKLSAgICByZXR1cm4g
Y3JlYXRlUmVuZGVyZXI8UmVuZGVyTWVudUxpc3Q+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsK
KyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWVudUxpc3Q+KCp0aGlzLCBXVEY6Om1v
dmUoc3R5bGUpKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5
RWxlbWVudC5jcHAKaW5kZXggZDRjOWUwYi4uZjY1Y2IwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcApAQCAtNjYsNyArNjYsNyBAQCBIVE1MU3VtbWFyeUVs
ZW1lbnQ6OkhUTUxTdW1tYXJ5RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZAogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFN1bW1hcnlFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0g
ICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckJsb2NrRmxvdz4oKnRoaXMsIHN0ZDo6bW92
ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJCbG9ja0Zsb3c+KCp0
aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogYm9vbCBIVE1MU3VtbWFyeUVsZW1lbnQ6OmNo
aWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAppbmRleCAwMWVkYTE2Li5mNDZi
OWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKQEAg
LTIxMiw3ICsyMTIsNyBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pYwogCiBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gSFRNTFRleHRBcmVhRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBh
c3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxS
ZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZT4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAg
IHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZT4oKnRoaXMs
IFdURjo6bW92ZShzdHlsZSkpOwogfQogCiBib29sIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmFwcGVu
ZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYgZW5jb2RpbmcsIGJvb2wpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVmlkZW9FbGVtZW50LmNwcAppbmRleCBmNWU0MDAyLi5iOGI5ZWU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgYm9vbCBI
VE1MVmlkZW9FbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHls
ZSkKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxWaWRlb0VsZW1lbnQ6OmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKLSAgICByZXR1cm4g
Y3JlYXRlUmVuZGVyZXI8UmVuZGVyVmlkZW8+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAg
ICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyVmlkZW8+KCp0aGlzLCBXVEY6Om1vdmUoc3R5
bGUpKTsKIH0KIAogdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcAppbmRleCAwMWJkNDVhLi5kMGUyNWJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcApAQCAtMTAzLDcgKzEwMyw3
IEBAIHZvaWQgSW1hZ2VJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQqIGV2
ZW50KQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSW1hZ2VJbnB1dFR5cGU6OmNyZWF0ZUlu
cHV0UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIGNy
ZWF0ZVJlbmRlcmVyPFJlbmRlckltYWdlPihlbGVtZW50KCksIHN0ZDo6bW92ZShzdHlsZSkpOwor
ICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJJbWFnZT4oZWxlbWVudCgpLCBXVEY6Om1v
dmUoc3R5bGUpKTsKIH0KIAogdm9pZCBJbWFnZUlucHV0VHlwZTo6YWx0QXR0cmlidXRlQ2hhbmdl
ZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggYjZlMzc2ZS4uZjU2YzU3YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtNDgxLDcgKzQ4MSw3IEBAIFBhc3NSZWZQdHI8
SFRNTEZvcm1FbGVtZW50PiBJbnB1dFR5cGU6OmZvcm1Gb3JTdWJtaXNzaW9uKCkgY29uc3QKIAog
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IElucHV0VHlwZTo6Y3JlYXRlSW5wdXRSZW5kZXJlcihQ
YXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKLSAgICByZXR1cm4gUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+KFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcihlbGVtZW50KCksIHN0ZDo6bW92ZShz
dHlsZSkpKTsKKyAgICByZXR1cm4gUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+KFJlbmRlckVsZW1l
bnQ6OmNyZWF0ZUZvcihlbGVtZW50KCksIFdURjo6bW92ZShzdHlsZSkpKTsKIH0KIAogdm9pZCBJ
bnB1dFR5cGU6OmJsdXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRl
eCBkNGEyOWJkLi43OGQ5ZTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jhbmdl
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNw
cApAQCAtMjg2LDcgKzI4Niw3IEBAIEhUTUxFbGVtZW50KiBSYW5nZUlucHV0VHlwZTo6c2xpZGVy
VGh1bWJFbGVtZW50KCkgY29uc3QKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFJhbmdlSW5w
dXRUeXBlOjpjcmVhdGVJbnB1dFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQog
ewotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTbGlkZXI+KGVsZW1lbnQoKSwgc3Rk
Ojptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNsaWRlcj4o
ZWxlbWVudCgpLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogRGVjaW1hbCBSYW5nZUlucHV0VHlw
ZTo6cGFyc2VUb051bWJlcihjb25zdCBTdHJpbmcmIHNyYywgY29uc3QgRGVjaW1hbCYgZGVmYXVs
dFZhbHVlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1
dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCmluZGV4
IDdkNDY4MDIuLmUzZTNiZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNo
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5j
cHAKQEAgLTYxLDcgKzYxLDcgQEAgdm9pZCBTZWFyY2hJbnB1dFR5cGU6OmFkZFNlYXJjaFJlc3Vs
dCgpCiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTZWFyY2hJbnB1dFR5cGU6OmNyZWF0ZUlu
cHV0UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIGNy
ZWF0ZVJlbmRlcmVyPFJlbmRlclNlYXJjaEZpZWxkPihlbGVtZW50KCksIHN0ZDo6bW92ZShzdHls
ZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTZWFyY2hGaWVsZD4oZWxlbWVu
dCgpLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTZWFyY2hJ
bnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Rl
eHRGaWVsZElucHV0VHlwZS5jcHAKaW5kZXggMGI4OGQwMy4uYjFkOWM3NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcApAQCAtMjE2LDcgKzIxNiw3IEBAIGJv
b2wgVGV4dEZpZWxkSW5wdXRUeXBlOjpzaG91bGRTdWJtaXRJbXBsaWNpdGx5KEV2ZW50KiBldmVu
dCkKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRl
SW5wdXRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKLSAgICByZXR1cm4g
Y3JlYXRlUmVuZGVyZXI8UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lPihlbGVtZW50KCksIHN0
ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmU+KGVsZW1lbnQoKSwgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAKIGJvb2wg
VGV4dEZpZWxkSW5wdXRUeXBlOjpuZWVkc0NvbnRhaW5lcigpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCA0
ZjkwZTIwLi5kMTY3ZTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTYwNDgsNyArNjA0OCw3IEBAIEltYWdlQnVm
ZmVyKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OkxSVUltYWdlQnVmZmVyQ2FjaGU6OmltYWdlQnVm
ZmVyKGNvbnN0IEludFNpCiAgICAgaWYgKCF0ZW1wKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICBpID0gc3RkOjptaW4obV9jYXBhY2l0eSAtIDEsIGkpOwotICAgIG1fYnVmZmVyc1tpXSA9
IHN0ZDo6bW92ZSh0ZW1wKTsKKyAgICBtX2J1ZmZlcnNbaV0gPSBXVEY6Om1vdmUodGVtcCk7CiAK
ICAgICBJbWFnZUJ1ZmZlciogYnVmID0gbV9idWZmZXJzW2ldLmdldCgpOwogICAgIGJ1YmJsZVRv
RnJvbnQoaSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29u
c3RydWN0aW9uU2l0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3Ry
dWN0aW9uU2l0ZS5jcHAKaW5kZXggY2JhNmE1Zi4uZmUyMDRlYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcApAQCAtMTg3LDcg
KzE4Nyw3IEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6OmV4ZWN1dGVRdWV1ZWRUYXNrcygp
CiAKICAgICAvLyBDb3B5IHRoZSB0YXNrIHF1ZXVlIGludG8gYSBsb2NhbCB2YXJpYWJsZSBpbiBj
YXNlIGV4ZWN1dGVUYXNrCiAgICAgLy8gcmUtZW50ZXJzIHRoZSBwYXJzZXIuCi0gICAgVGFza1F1
ZXVlIHF1ZXVlID0gc3RkOjptb3ZlKG1fdGFza1F1ZXVlKTsKKyAgICBUYXNrUXVldWUgcXVldWUg
PSBXVEY6Om1vdmUobV90YXNrUXVldWUpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBz
aXplOyArK2kpCiAgICAgICAgIGV4ZWN1dGVUYXNrKHF1ZXVlW2ldKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5jcHAKaW5kZXggMmFhZjZkYi4uZTU4
MTg0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRT
dGFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFj
ay5jcHAKQEAgLTEyNyw3ICsxMjcsNyBAQCBpbmxpbmUgYm9vbCBpc1NlbGVjdFNjb3BlTWFya2Vy
KEhUTUxTdGFja0l0ZW0qIGl0ZW0pCiAKIEhUTUxFbGVtZW50U3RhY2s6OkVsZW1lbnRSZWNvcmQ6
OkVsZW1lbnRSZWNvcmQoUGFzc1JlZlB0cjxIVE1MU3RhY2tJdGVtPiBpdGVtLCBzdGQ6OnVuaXF1
ZV9wdHI8RWxlbWVudFJlY29yZD4gbmV4dCkKICAgICA6IG1faXRlbShpdGVtKQotICAgICwgbV9u
ZXh0KHN0ZDo6bW92ZShuZXh0KSkKKyAgICAsIG1fbmV4dChXVEY6Om1vdmUobmV4dCkpCiB7CiAg
ICAgQVNTRVJUKG1faXRlbSk7CiB9CkBAIC01NjcsNyArNTY3LDcgQEAgdm9pZCBIVE1MRWxlbWVu
dFN0YWNrOjpwdXNoQ29tbW9uKFBhc3NSZWZQdHI8SFRNTFN0YWNrSXRlbT4gaXRlbSkKICAgICBB
U1NFUlQobV9yb290Tm9kZSk7CiAKICAgICBtX3N0YWNrRGVwdGgrKzsKLSAgICBtX3RvcCA9IHN0
ZDo6bWFrZV91bmlxdWU8RWxlbWVudFJlY29yZD4oaXRlbSwgc3RkOjptb3ZlKG1fdG9wKSk7Cisg
ICAgbV90b3AgPSBzdGQ6Om1ha2VfdW5pcXVlPEVsZW1lbnRSZWNvcmQ+KGl0ZW0sIFdURjo6bW92
ZShtX3RvcCkpOwogfQogCiB2b2lkIEhUTUxFbGVtZW50U3RhY2s6OnBvcENvbW1vbigpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmgKaW5kZXggYTJjNGY1
NC4uMzc3ZDExNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVs
ZW1lbnRTdGFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50
U3RhY2suaApAQCAtNjUsOCArNjUsOCBAQCBwdWJsaWM6CiAgICAgcHJpdmF0ZToKICAgICAgICAg
ZnJpZW5kIGNsYXNzIEhUTUxFbGVtZW50U3RhY2s7CiAKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRy
PEVsZW1lbnRSZWNvcmQ+IHJlbGVhc2VOZXh0KCkgeyByZXR1cm4gc3RkOjptb3ZlKG1fbmV4dCk7
IH0KLSAgICAgICAgdm9pZCBzZXROZXh0KHN0ZDo6dW5pcXVlX3B0cjxFbGVtZW50UmVjb3JkPiBu
ZXh0KSB7IG1fbmV4dCA9IHN0ZDo6bW92ZShuZXh0KTsgfQorICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8RWxlbWVudFJlY29yZD4gcmVsZWFzZU5leHQoKSB7IHJldHVybiBXVEY6Om1vdmUobV9uZXh0
KTsgfQorICAgICAgICB2b2lkIHNldE5leHQoc3RkOjp1bmlxdWVfcHRyPEVsZW1lbnRSZWNvcmQ+
IG5leHQpIHsgbV9uZXh0ID0gV1RGOjptb3ZlKG5leHQpOyB9CiAKICAgICAgICAgUmVmUHRyPEhU
TUxTdGFja0l0ZW0+IG1faXRlbTsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEVsZW1lbnRSZWNv
cmQ+IG1fbmV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQ
cmVsb2FkU2Nhbm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9h
ZFNjYW5uZXIuY3BwCmluZGV4IDAxYjMzOGYuLjU2NmVhNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcApAQCAtMzQwLDcgKzM0MCw3
IEBAIHZvaWQgVG9rZW5QcmVsb2FkU2Nhbm5lcjo6c2Nhbihjb25zdCBIVE1MVG9rZW4mIHRva2Vu
LCBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFByCiAjZW5kaWYKICAgICAgICAgICAgICk7CiAgICAg
ICAgIGlmIChhdXRvIHJlcXVlc3QgPSBzY2FubmVyLmNyZWF0ZVByZWxvYWRSZXF1ZXN0KG1fcHJl
ZGljdGVkQmFzZUVsZW1lbnRVUkwpKQotICAgICAgICAgICAgcmVxdWVzdHMuYXBwZW5kKHN0ZDo6
bW92ZShyZXF1ZXN0KSk7CisgICAgICAgICAgICByZXF1ZXN0cy5hcHBlbmQoV1RGOjptb3ZlKHJl
cXVlc3QpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzk3LDcgKzM5Nyw3IEBAIHZv
aWQgSFRNTFByZWxvYWRTY2FubmVyOjpzY2FuKEhUTUxSZXNvdXJjZVByZWxvYWRlciogcHJlbG9h
ZGVyLCBjb25zdCBVUkwmIHN0YXJ0CiAgICAgICAgIG1fdG9rZW4uY2xlYXIoKTsKICAgICB9CiAK
LSAgICBwcmVsb2FkZXItPnByZWxvYWQoc3RkOjptb3ZlKHJlcXVlc3RzKSk7CisgICAgcHJlbG9h
ZGVyLT5wcmVsb2FkKFdURjo6bW92ZShyZXF1ZXN0cykpOwogfQogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUmVzb3VyY2VQcmVsb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFJlc291cmNlUHJlbG9hZGVyLmNwcAppbmRleCBj
ZmQyMzQyLi4xNmVhNzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MUmVzb3VyY2VQcmVsb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxSZXNvdXJjZVByZWxvYWRlci5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0IFByZWxvYWRSZXF1ZXN0OjpyZXNvdXJjZVJlcXVlc3QoRG9jdW1lbnQmIGRvY3Vt
ZW50KQogdm9pZCBIVE1MUmVzb3VyY2VQcmVsb2FkZXI6OnByZWxvYWQoUHJlbG9hZFJlcXVlc3RT
dHJlYW0gcmVxdWVzdHMpCiB7CiAgICAgZm9yIChhdXRvJiByZXF1ZXN0IDogcmVxdWVzdHMpCi0g
ICAgICAgIHByZWxvYWQoc3RkOjptb3ZlKHJlcXVlc3QpKTsKKyAgICAgICAgcHJlbG9hZChXVEY6
Om1vdmUocmVxdWVzdCkpOwogfQogCiBzdGF0aWMgYm9vbCBtZWRpYUF0dHJpYnV0ZU1hdGNoZXMo
RnJhbWUqIGZyYW1lLCBSZW5kZXJTdHlsZSogcmVuZGVyU3R5bGUsIGNvbnN0IFN0cmluZyYgYXR0
cmlidXRlVmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
VG9rZW4uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbi5oCmluZGV4IDVi
M2M5MzguLjQyMWFmMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxUb2tlbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbi5oCkBA
IC0yMjcsNyArMjI3LDcgQEAgcHVibGljOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERvY3R5cGVE
YXRhPiByZWxlYXNlRG9jdHlwZURhdGEoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bW92
ZShtX2RvY3R5cGVEYXRhKTsKKyAgICAgICAgcmV0dXJuIFdURjo6bW92ZShtX2RvY3R5cGVEYXRh
KTsKICAgICB9CiAKICAgICAvKiBTdGFydC9FbmQgVGFnIFRva2VucyAqLwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCmluZGV4IGM3
NWNmOWRiLi42NDRmYWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
ZXRhaWxzTWFya2VyQ29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
RGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIERldGFpbHNNYXJrZXJD
b250cm9sOjpEZXRhaWxzTWFya2VyQ29udHJvbChEb2N1bWVudCYgZG9jdW1lbnQpCiAKIFJlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBEZXRhaWxzTWFya2VyQ29udHJvbDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBjcmVhdGVS
ZW5kZXJlcjxSZW5kZXJEZXRhaWxzTWFya2VyPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7Cisg
ICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckRldGFpbHNNYXJrZXI+KCp0aGlzLCBXVEY6
Om1vdmUoc3R5bGUpKTsKIH0KIAogYm9vbCBEZXRhaWxzTWFya2VyQ29udHJvbDo6cmVuZGVyZXJJ
c05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXggNTMzOTU5YS4uYjgx
M2M0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
RWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJv
bEVsZW1lbnRzLmNwcApAQCAtMzM3LDcgKzMzNyw3IEBAIHZvaWQgTWVkaWFDb250cm9sVGltZWxp
bmVDb250YWluZXJFbGVtZW50OjpzZXRUaW1lRGlzcGxheXNIaWRkZW4oYm9vbCBoaWRkZW4pCiAK
IFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkK
IHsKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWVkaWFDb250cm9sVGltZWxpbmVD
b250YWluZXI+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVu
ZGVyZXI8UmVuZGVyTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXI+KCp0aGlzLCBXVEY6Om1v
dmUoc3R5bGUpKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzU3
LDcgKzM1Nyw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVy
RWxlbWVudD4gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29uCiAKIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJu
IGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyPigqdGhpcywg
c3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1lZGlh
Vm9sdW1lU2xpZGVyQ29udGFpbmVyPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAKIHZv
aWQgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6ZGVmYXVsdEV2ZW50
SGFuZGxlcihFdmVudCogZXZlbnQpCkBAIC0xMjQxLDcgKzEyNDEsNyBAQCBQYXNzUmVmUHRyPE1l
ZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ+IE1lZGlhQ29udHJvbFRleHRUcmFj
a0NvbnRhaW5lcgogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWVkaWFDb250cm9sVGV4dFRy
YWNrQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVy
U3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJUZXh0VHJh
Y2tDb250YWluZXJFbGVtZW50PigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJu
IGNyZWF0ZVJlbmRlcmVyPFJlbmRlclRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ+KCp0aGlzLCBX
VEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xU
ZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp0ZXh0VHJhY2tDb250YWluZXJFbGVtZW50U2hhZG93
UHNldWRvSWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJT
aGFkb3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93
RWxlbWVudC5jcHAKaW5kZXggMDk2NjNjOS4uYTU3NjMzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwCkBAIC03NSw3ICs3NSw3IEBA
IGJvb2wgTWV0ZXJJbm5lckVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlKQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWV0ZXJJbm5lckVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKLSAg
ICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWV0ZXI+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5
bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWV0ZXI+KCp0aGlzLCBXVEY6
Om1vdmUoc3R5bGUpKTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZXRlclZhbHVlRWxlbWVu
dDo6dmFsdWVQc2V1ZG9JZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcAppbmRleCA0Y2FmMjQxLi5kY2QyMjhiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxl
bWVudC5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgUHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OlByb2dyZXNz
SW5uZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IFByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxS
ZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclBy
b2dyZXNzPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRl
cmVyPFJlbmRlclByb2dyZXNzPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAKIGJvb2wg
UHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUm
IHN0eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1
bWJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxl
bWVudC5jcHAKaW5kZXggN2M2MGRiZi4uYjk5MmIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCkBAIC03OCw3ICs3OCw3IEBAIGlu
bGluZSBzdGF0aWMgYm9vbCBoYXNWZXJ0aWNhbEFwcGVhcmFuY2UoSFRNTElucHV0RWxlbWVudCog
aW5wdXQpCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBSZW5kZXJTbGlk
ZXJUaHVtYjo6UmVuZGVyU2xpZGVyVGh1bWIoU2xpZGVyVGh1bWJFbGVtZW50JiBlbGVtZW50LCBQ
YXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50
LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQsIFdURjo6
bW92ZShzdHlsZSkpCiB7CiB9CiAKQEAgLTExMiw3ICsxMTIsNyBAQCBib29sIFJlbmRlclNsaWRl
clRodW1iOjppc1NsaWRlclRodW1iKCkgY29uc3QKIGNsYXNzIFJlbmRlclNsaWRlckNvbnRhaW5l
ciA6IHB1YmxpYyBSZW5kZXJGbGV4aWJsZUJveCB7CiBwdWJsaWM6CiAgICAgUmVuZGVyU2xpZGVy
Q29udGFpbmVyKFNsaWRlckNvbnRhaW5lckVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVy
U3R5bGU+IHN0eWxlKQotICAgICAgICA6IFJlbmRlckZsZXhpYmxlQm94KGVsZW1lbnQsIHN0ZDo6
bW92ZShzdHlsZSkpCisgICAgICAgIDogUmVuZGVyRmxleGlibGVCb3goZWxlbWVudCwgV1RGOjpt
b3ZlKHN0eWxlKSkKICAgICB7CiAgICAgfQogCkBAIC0yMTYsNyArMjE2LDcgQEAgdm9pZCBTbGlk
ZXJUaHVtYkVsZW1lbnQ6OnNldFBvc2l0aW9uRnJvbVZhbHVlKCkKIAogUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IFNsaWRlclRodW1iRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NS
ZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5k
ZXJTbGlkZXJUaHVtYj4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVh
dGVSZW5kZXJlcjxSZW5kZXJTbGlkZXJUaHVtYj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwog
fQogCiBib29sIFNsaWRlclRodW1iRWxlbWVudDo6aXNEaXNhYmxlZEZvcm1Db250cm9sKCkgY29u
c3QKQEAgLTYxNyw3ICs2MTcsNyBAQCBQYXNzUmVmUHRyPFNsaWRlckNvbnRhaW5lckVsZW1lbnQ+
IFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdQogCiBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBjcmVhdGVS
ZW5kZXJlcjxSZW5kZXJTbGlkZXJDb250YWluZXI+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsK
KyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU2xpZGVyQ29udGFpbmVyPigqdGhpcywg
V1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU2xpZGVyQ29udGFp
bmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKaW5kZXggMjM5
OTUwNS4uNDAxMDMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4
dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCkBAIC02MCw3ICs2MCw3IEBAIFBhc3NSZWZQ
dHI8VGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcj4gVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcjo6
Y3JlYXRlKERvY3VtZW50CiAgICAgCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gVGV4dENvbnRy
b2xJbm5lckNvbnRhaW5lcjo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5
bGU+IHN0eWxlKQogewotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJUZXh0Q29udHJv
bElubmVyQ29udGFpbmVyPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNy
ZWF0ZVJlbmRlcmVyPFJlbmRlclRleHRDb250cm9sSW5uZXJDb250YWluZXI+KCp0aGlzLCBXVEY6
Om1vdmUoc3R5bGUpKTsKIH0KIAogVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OlRleHRDb250cm9s
SW5uZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKQEAgLTExNCw3ICsxMTQsNyBAQCB2b2lk
IFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCog
ZXZlbnQpCiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBUZXh0Q29udHJvbElubmVyVGV4dEVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkK
IHsKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyVGV4dENvbnRyb2xJbm5lckJsb2Nr
PigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJl
bmRlclRleHRDb250cm9sSW5uZXJCbG9jaz4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQog
CiBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2sqIFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVu
dDo6cmVuZGVyZXIoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAKaW5kZXgg
Y2E4NTRlMi4uYTM1YTc2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
bWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwCkBAIC01
Niw3ICs1Niw3IEBAIHByaXZhdGU6CiB9OwogCiBSZW5kZXJJbWFnZUNvbnRyb2xzQnV0dG9uOjpS
ZW5kZXJJbWFnZUNvbnRyb2xzQnV0dG9uKEhUTUxFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJl
bmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50LCBzdGQ6Om1v
dmUoc3R5bGUpKQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQsIFdURjo6bW92ZShzdHls
ZSkpCiB7CiB9CiAKQEAgLTEyNyw3ICsxMjcsNyBAQCB2b2lkIEltYWdlQ29udHJvbHNCdXR0b25F
bGVtZW50TWFjOjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKIAogUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjOjpjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIGNy
ZWF0ZVJlbmRlcmVyPFJlbmRlckltYWdlQ29udHJvbHNCdXR0b24+KCp0aGlzLCBzdGQ6Om1vdmUo
c3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVySW1hZ2VDb250cm9sc0J1
dHRvbj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250
cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9J
bWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCmluZGV4IGM4NGUzNzAuLjEwYmYxYWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9v
dEVsZW1lbnRNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFn
ZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCkBAIC01MCw3ICs1MCw3IEBAIHByaXZhdGU6CiB9
OwogCiBSZW5kZXJJbWFnZUNvbnRyb2xzOjpSZW5kZXJJbWFnZUNvbnRyb2xzKEhUTUxFbGVtZW50
JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlckJsb2Nr
RmxvdyhlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVs
ZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiB7CiB9CiAKQEAgLTEwNCw3ICsxMDQsNyBAQCBJbWFn
ZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWM6On5JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMoKQog
CiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjOjpj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAg
cmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckltYWdlQ29udHJvbHM+KCp0aGlzLCBzdGQ6Om1v
dmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVySW1hZ2VDb250cm9s
cz4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKaW5kZXggOTU4OTJkNC4uYWNhZTE5NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcApAQCAtMjExLDcgKzIxMSw3IEBAIGNv
bnN0IEF0b21pY1N0cmluZyYgVlRUQ3VlQm94Ojp2dHRDdWVCb3hTaGFkb3dQc2V1ZG9JZCgpCiAK
IFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBWVFRDdWVCb3g6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVy
ZXI8UmVuZGVyVlRUQ3VlPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNy
ZWF0ZVJlbmRlcmVyPFJlbmRlclZUVEN1ZT4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQog
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvQ29tbWFuZExpbmVBUElIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9Db21tYW5kTGluZUFQSUhvc3QuY3BwCmluZGV4IDAyOTEwNjkuLjU3YjkyMWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db21tYW5kTGluZUFQSUhvc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db21tYW5kTGluZUFQSUhvc3QuY3BwCkBA
IC0xMjYsNyArMTI2LDcgQEAgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgQ29tbWFuZExpbmVBUElI
b3N0OjpJbnNwZWN0YWJsZU9iamVjdDo6Z2V0KEpTQzo6RXhlY1N0YXQKIAogdm9pZCBDb21tYW5k
TGluZUFQSUhvc3Q6OmFkZEluc3BlY3RlZE9iamVjdChzdGQ6OnVuaXF1ZV9wdHI8Q29tbWFuZExp
bmVBUElIb3N0OjpJbnNwZWN0YWJsZU9iamVjdD4gb2JqZWN0KQogewotICAgIG1faW5zcGVjdGVk
T2JqZWN0cy5pbnNlcnQoMCwgc3RkOjptb3ZlKG9iamVjdCkpOworICAgIG1faW5zcGVjdGVkT2Jq
ZWN0cy5pbnNlcnQoMCwgV1RGOjptb3ZlKG9iamVjdCkpOwogICAgIHdoaWxlIChtX2luc3BlY3Rl
ZE9iamVjdHMuc2l6ZSgpID4gNSkKICAgICAgICAgbV9pbnNwZWN0ZWRPYmplY3RzLnJlbW92ZUxh
c3QoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01FZGl0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTUVkaXRvci5jcHAKaW5kZXggYjkxMmQx
NC4uMjRlM2JiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTUVkaXRv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTUVkaXRvci5jcHAKQEAgLTM3
NCw3ICszNzQsNyBAQCBib29sIERPTUVkaXRvcjo6c2V0T3V0ZXJIVE1MKE5vZGUmIG5vZGUsIGNv
bnN0IFN0cmluZyYgaHRtbCwgTm9kZSoqIG5ld05vZGUsIEV4YwogewogICAgIGF1dG8gYWN0aW9u
ID0gc3RkOjptYWtlX3VuaXF1ZTxTZXRPdXRlckhUTUxBY3Rpb24+KG5vZGUsIGh0bWwpOwogICAg
IFNldE91dGVySFRNTEFjdGlvbiogcmF3QWN0aW9uID0gYWN0aW9uLmdldCgpOwotICAgIGJvb2wg
cmVzdWx0ID0gbV9oaXN0b3J5LT5wZXJmb3JtKHN0ZDo6bW92ZShhY3Rpb24pLCBlYyk7CisgICAg
Ym9vbCByZXN1bHQgPSBtX2hpc3RvcnktPnBlcmZvcm0oV1RGOjptb3ZlKGFjdGlvbiksIGVjKTsK
ICAgICBpZiAocmVzdWx0KQogICAgICAgICAqbmV3Tm9kZSA9IHJhd0FjdGlvbi0+bmV3Tm9kZSgp
OwogICAgIHJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01QYXRj
aFN1cHBvcnQuY3BwCmluZGV4IGY2YTM4YzUuLjNmMmZhOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9ET01QYXRjaFN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9ET01QYXRjaFN1cHBvcnQuY3BwCkBAIC00MjMsNyArNDIzLDcgQEAgc3RkOjp1
bmlxdWVfcHRyPERPTVBhdGNoU3VwcG9ydDo6RGlnZXN0PiBET01QYXRjaFN1cHBvcnQ6OmNyZWF0
ZURpZ2VzdChOb2RlKiBub2QKICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxEaWdlc3Q+IGNo
aWxkSW5mbyA9IGNyZWF0ZURpZ2VzdChjaGlsZCwgdW51c2VkTm9kZXNNYXApOwogICAgICAgICAg
ICAgYWRkU3RyaW5nVG9TSEExKHNoYTEsIGNoaWxkSW5mby0+bV9zaGExKTsKICAgICAgICAgICAg
IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCk7Ci0gICAgICAgICAgICBkaWdlc3QtPm1fY2hp
bGRyZW4uYXBwZW5kKHN0ZDo6bW92ZShjaGlsZEluZm8pKTsKKyAgICAgICAgICAgIGRpZ2VzdC0+
bV9jaGlsZHJlbi5hcHBlbmQoV1RGOjptb3ZlKGNoaWxkSW5mbykpOwogICAgICAgICB9CiAgICAg
ICAgIEVsZW1lbnQqIGVsZW1lbnQgPSB0b0VsZW1lbnQobm9kZSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IDA2ZTU0ZmIuLjMwNWE5
OTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5j
cHAKQEAgLTc5OSw3ICs3OTksNyBAQCB2b2lkIEluc3BlY3RvckNTU0FnZW50OjphZGRSdWxlKEVy
cm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgaW50IGNvbnRleHROb2RlSQogICAgIEV4Y2Vw
dGlvbkNvZGUgZWMgPSAwOwogICAgIGF1dG8gYWN0aW9uID0gc3RkOjptYWtlX3VuaXF1ZTxBZGRS
dWxlQWN0aW9uPihpbnNwZWN0b3JTdHlsZVNoZWV0LCBzZWxlY3Rvcik7CiAgICAgQWRkUnVsZUFj
dGlvbiogcmF3QWN0aW9uID0gYWN0aW9uLmdldCgpOwotICAgIGJvb2wgc3VjY2VzcyA9IG1fZG9t
QWdlbnQtPmhpc3RvcnkoKS0+cGVyZm9ybShzdGQ6Om1vdmUoYWN0aW9uKSwgZWMpOworICAgIGJv
b2wgc3VjY2VzcyA9IG1fZG9tQWdlbnQtPmhpc3RvcnkoKS0+cGVyZm9ybShXVEY6Om1vdmUoYWN0
aW9uKSwgZWMpOwogICAgIGlmICghc3VjY2VzcykgewogICAgICAgICAqZXJyb3JTdHJpbmcgPSBJ
bnNwZWN0b3JET01BZ2VudDo6dG9FcnJvclN0cmluZyhlYyk7CiAgICAgICAgIHJldHVybjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRl
eCA4ZDE1MDJmLi5jNjRmMzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC05NywyOCArOTcsMjggQEAgSW5zcGVjdG9yQ29udHJv
bGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcihQYWdlJiBwYWdlLCBJbnNwZWN0b3JDbGllbnQqIGlu
c3BlY3RvckMKICAgICBhdXRvIGluc3BlY3RvckFnZW50UHRyID0gc3RkOjptYWtlX3VuaXF1ZTxJ
bnNwZWN0b3JBZ2VudD4oKTsKICAgICBtX2luc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRQ
dHIuZ2V0KCk7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JBZ2VudCht
X2luc3BlY3RvckFnZW50KTsKLSAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjptb3ZlKGluc3BlY3Rv
ckFnZW50UHRyKSk7CisgICAgbV9hZ2VudHMuYXBwZW5kKFdURjo6bW92ZShpbnNwZWN0b3JBZ2Vu
dFB0cikpOwogCiAgICAgYXV0byBwYWdlQWdlbnRQdHIgPSBzdGQ6Om1ha2VfdW5pcXVlPEluc3Bl
Y3RvclBhZ2VBZ2VudD4obV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCAmcGFnZSwgaW5zcGVj
dG9yQ2xpZW50LCBtX292ZXJsYXkuZ2V0KCkpOwogICAgIEluc3BlY3RvclBhZ2VBZ2VudCogcGFn
ZUFnZW50ID0gcGFnZUFnZW50UHRyLmdldCgpOwogICAgIG1fcGFnZUFnZW50ID0gcGFnZUFnZW50
UHRyLmdldCgpOwotICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1vdmUocGFnZUFnZW50UHRyKSk7
CisgICAgbV9hZ2VudHMuYXBwZW5kKFdURjo6bW92ZShwYWdlQWdlbnRQdHIpKTsKIAogICAgIGF1
dG8gcnVudGltZUFnZW50UHRyID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlUnVudGltZUFnZW50Piht
X2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgJnBhZ2UsIHBhZ2VBZ2VudCk7CiAgICAgUGFn
ZVJ1bnRpbWVBZ2VudCogcnVudGltZUFnZW50ID0gcnVudGltZUFnZW50UHRyLmdldCgpOwogICAg
IG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0UGFnZVJ1bnRpbWVBZ2VudChydW50aW1lQWdlbnQp
OwotICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1vdmUocnVudGltZUFnZW50UHRyKSk7CisgICAg
bV9hZ2VudHMuYXBwZW5kKFdURjo6bW92ZShydW50aW1lQWdlbnRQdHIpKTsKIAogICAgIGF1dG8g
ZG9tQWdlbnRQdHIgPSBzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvckRPTUFnZW50PihtX2luc3Ry
dW1lbnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2VBZ2VudCwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIu
Z2V0KCksIG1fb3ZlcmxheS5nZXQoKSk7CiAgICAgbV9kb21BZ2VudCA9IGRvbUFnZW50UHRyLmdl
dCgpOwotICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1vdmUoZG9tQWdlbnRQdHIpKTsKKyAgICBt
X2FnZW50cy5hcHBlbmQoV1RGOjptb3ZlKGRvbUFnZW50UHRyKSk7CiAKICAgICBtX2FnZW50cy5h
cHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JDU1NBZ2VudD4obV9pbnN0cnVtZW50aW5n
QWdlbnRzLmdldCgpLCBtX2RvbUFnZW50KSk7CiAKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQog
ICAgIGF1dG8gZGF0YWJhc2VBZ2VudFB0ciA9IHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yRGF0
YWJhc2VBZ2VudD4obV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpKTsKICAgICBJbnNwZWN0b3JE
YXRhYmFzZUFnZW50KiBkYXRhYmFzZUFnZW50ID0gZGF0YWJhc2VBZ2VudFB0ci5nZXQoKTsKLSAg
ICBtX2FnZW50cy5hcHBlbmQoc3RkOjptb3ZlKGRhdGFiYXNlQWdlbnRQdHIpKTsKKyAgICBtX2Fn
ZW50cy5hcHBlbmQoV1RGOjptb3ZlKGRhdGFiYXNlQWdlbnRQdHIpKTsKICNlbmRpZgogCiAjaWYg
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCkBAIC0xMzEsMzIgKzEzMSwzMiBAQCBJbnNwZWN0b3JD
b250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2UmIHBhZ2UsIEluc3BlY3RvckNsaWVu
dCogaW5zcGVjdG9yQwogCiAgICAgYXV0byBkb21TdG9yYWdlQWdlbnRQdHIgPSBzdGQ6Om1ha2Vf
dW5pcXVlPEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudD4obV9pbnN0cnVtZW50aW5nQWdlbnRzLmdl
dCgpLCBtX3BhZ2VBZ2VudCk7CiAgICAgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KiBkb21TdG9y
YWdlQWdlbnQgPSBkb21TdG9yYWdlQWdlbnRQdHIuZ2V0KCk7Ci0gICAgbV9hZ2VudHMuYXBwZW5k
KHN0ZDo6bW92ZShkb21TdG9yYWdlQWdlbnRQdHIpKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoV1RG
Ojptb3ZlKGRvbVN0b3JhZ2VBZ2VudFB0cikpOwogCiAgICAgYXV0byB0aW1lbGluZUFnZW50UHRy
ID0gc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JUaW1lbGluZUFnZW50PihtX2luc3RydW1lbnRp
bmdBZ2VudHMuZ2V0KCksIHBhZ2VBZ2VudCwgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6UGFnZUlu
c3BlY3RvciwgaW5zcGVjdG9yQ2xpZW50KTsKICAgICBJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0
aW1lbGluZUFnZW50ID0gdGltZWxpbmVBZ2VudFB0ci5nZXQoKTsKLSAgICBtX2FnZW50cy5hcHBl
bmQoc3RkOjptb3ZlKHRpbWVsaW5lQWdlbnRQdHIpKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoV1RG
Ojptb3ZlKHRpbWVsaW5lQWdlbnRQdHIpKTsKIAogICAgIGF1dG8gcmVzb3VyY2VBZ2VudFB0ciA9
IHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yUmVzb3VyY2VBZ2VudD4obV9pbnN0cnVtZW50aW5n
QWdlbnRzLmdldCgpLCBwYWdlQWdlbnQsIGluc3BlY3RvckNsaWVudCk7CiAgICAgbV9yZXNvdXJj
ZUFnZW50ID0gcmVzb3VyY2VBZ2VudFB0ci5nZXQoKTsKLSAgICBtX2FnZW50cy5hcHBlbmQoc3Rk
Ojptb3ZlKHJlc291cmNlQWdlbnRQdHIpKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoV1RGOjptb3Zl
KHJlc291cmNlQWdlbnRQdHIpKTsKIAogICAgIGF1dG8gY29uc29sZUFnZW50UHRyID0gc3RkOjpt
YWtlX3VuaXF1ZTxQYWdlQ29uc29sZUFnZW50PihtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQo
KSwgbV9kb21BZ2VudCk7CiAgICAgV2ViQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQgPSBjb25z
b2xlQWdlbnRQdHIuZ2V0KCk7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRXZWJDb25z
b2xlQWdlbnQoY29uc29sZUFnZW50UHRyLmdldCgpKTsKLSAgICBtX2FnZW50cy5hcHBlbmQoc3Rk
Ojptb3ZlKGNvbnNvbGVBZ2VudFB0cikpOworICAgIG1fYWdlbnRzLmFwcGVuZChXVEY6Om1vdmUo
Y29uc29sZUFnZW50UHRyKSk7CiAKICAgICBhdXRvIGRlYnVnZ2VyQWdlbnRQdHIgPSBzdGQ6Om1h
a2VfdW5pcXVlPFBhZ2VEZWJ1Z2dlckFnZW50PihtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQo
KSwgbV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBwYWdlQWdlbnQsIG1fb3ZlcmxheS5nZXQo
KSk7CiAgICAgbV9kZWJ1Z2dlckFnZW50ID0gZGVidWdnZXJBZ2VudFB0ci5nZXQoKTsKLSAgICBt
X2FnZW50cy5hcHBlbmQoc3RkOjptb3ZlKGRlYnVnZ2VyQWdlbnRQdHIpKTsKKyAgICBtX2FnZW50
cy5hcHBlbmQoV1RGOjptb3ZlKGRlYnVnZ2VyQWdlbnRQdHIpKTsKIAogICAgIGF1dG8gZG9tRGVi
dWdnZXJBZ2VudFB0ciA9IHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dD4obV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX2RvbUFnZW50LCBtX2RlYnVnZ2VyQWdl
bnQpOwogICAgIG1fZG9tRGVidWdnZXJBZ2VudCA9IGRvbURlYnVnZ2VyQWdlbnRQdHIuZ2V0KCk7
Ci0gICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bW92ZShkb21EZWJ1Z2dlckFnZW50UHRyKSk7Cisg
ICAgbV9hZ2VudHMuYXBwZW5kKFdURjo6bW92ZShkb21EZWJ1Z2dlckFnZW50UHRyKSk7CiAKICAg
ICBhdXRvIHByb2ZpbGVyQWdlbnRQdHIgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VQcm9maWxlckFn
ZW50PihtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksICZwYWdlKTsKICAgICBtX3Byb2ZpbGVy
QWdlbnQgPSBwcm9maWxlckFnZW50UHRyLmdldCgpOwotICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6
Om1vdmUocHJvZmlsZXJBZ2VudFB0cikpOworICAgIG1fYWdlbnRzLmFwcGVuZChXVEY6Om1vdmUo
cHJvZmlsZXJBZ2VudFB0cikpOwogCiAgICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bWFrZV91bmlx
dWU8SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50PihtX2luc3RydW1lbnRpbmdBZ2VudHMu
Z2V0KCksIHBhZ2VBZ2VudCkpOwogICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVl
PEluc3BlY3RvcldvcmtlckFnZW50PihtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCkpKTsKQEAg
LTE5Niw3ICsxOTYsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6Omluc3BlY3RlZFBhZ2VE
ZXN0cm95ZWQoKQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNldEluc3BlY3RvckZyb250
ZW5kQ2xpZW50KHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3JGcm9udGVuZENsaWVudD4gaW5zcGVj
dG9yRnJvbnRlbmRDbGllbnQpCiB7Ci0gICAgbV9pbnNwZWN0b3JGcm9udGVuZENsaWVudCA9IHN0
ZDo6bW92ZShpbnNwZWN0b3JGcm9udGVuZENsaWVudCk7CisgICAgbV9pbnNwZWN0b3JGcm9udGVu
ZENsaWVudCA9IFdURjo6bW92ZShpbnNwZWN0b3JGcm9udGVuZENsaWVudCk7CiB9CiAKIGJvb2wg
SW5zcGVjdG9yQ29udHJvbGxlcjo6aGFzTG9jYWxGcm9udGVuZCgpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCA4ZmYxYTc0Li43
ZDNmYTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5jcHAKQEAgLTEwNjIsNyArMTA2Miw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldElu
c3BlY3RNb2RlRW5hYmxlZChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGJvb2wgZW5hCiB2b2lk
IEluc3BlY3RvckRPTUFnZW50OjpoaWdobGlnaHRSZWN0KEVycm9yU3RyaW5nKiwgaW50IHgsIGlu
dCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
KiBjb2xvciwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIG91dGxpbmVDb2xvciwgY29u
c3QgYm9vbCogdXNlUGFnZUNvb3JkaW5hdGVzKQogewogICAgIGF1dG8gcXVhZCA9IHN0ZDo6bWFr
ZV91bmlxdWU8RmxvYXRRdWFkPihGbG9hdFJlY3QoeCwgeSwgd2lkdGgsIGhlaWdodCkpOwotICAg
IGlubmVySGlnaGxpZ2h0UXVhZChzdGQ6Om1vdmUocXVhZCksIGNvbG9yLCBvdXRsaW5lQ29sb3Is
IHVzZVBhZ2VDb29yZGluYXRlcyk7CisgICAgaW5uZXJIaWdobGlnaHRRdWFkKFdURjo6bW92ZShx
dWFkKSwgY29sb3IsIG91dGxpbmVDb2xvciwgdXNlUGFnZUNvb3JkaW5hdGVzKTsKIH0KIAogdm9p
ZCBJbnNwZWN0b3JET01BZ2VudDo6aGlnaGxpZ2h0UXVhZChFcnJvclN0cmluZyogZXJyb3JTdHJp
bmcsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4mIHF1YWRBcnJheSwgY29uc3QgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4qIGNvbG9yLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0Piog
b3V0bGluZUNvbG9yLCBjb25zdCBib29sKiB1c2VQYWdlQ29vcmRpbmF0ZXMpCkBAIC0xMDcyLDcg
KzEwNzIsNyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpoaWdobGlnaHRRdWFkKEVycm9yU3Ry
aW5nKiBlcnJvclN0cmluZywgY29uc3QgUmVmUHRyPElucwogICAgICAgICAqZXJyb3JTdHJpbmcg
PSAiSW52YWxpZCBRdWFkIGZvcm1hdCI7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgaW5u
ZXJIaWdobGlnaHRRdWFkKHN0ZDo6bW92ZShxdWFkKSwgY29sb3IsIG91dGxpbmVDb2xvciwgdXNl
UGFnZUNvb3JkaW5hdGVzKTsKKyAgICBpbm5lckhpZ2hsaWdodFF1YWQoV1RGOjptb3ZlKHF1YWQp
LCBjb2xvciwgb3V0bGluZUNvbG9yLCB1c2VQYWdlQ29vcmRpbmF0ZXMpOwogfQogCiB2b2lkIElu
c3BlY3RvckRPTUFnZW50Ojppbm5lckhpZ2hsaWdodFF1YWQoc3RkOjp1bmlxdWVfcHRyPEZsb2F0
UXVhZD4gcXVhZCwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIGNvbG9yLCBjb25zdCBS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0Piogb3V0bGluZUNvbG9yLCBjb25zdCBib29sKiB1c2VQYWdl
Q29vcmRpbmF0ZXMpCkBAIC0xMDgxLDcgKzEwODEsNyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50
Ojppbm5lckhpZ2hsaWdodFF1YWQoc3RkOjp1bmlxdWVfcHRyPEZsb2F0UXVhZD4gcXVhZCwgY29u
cwogICAgIGhpZ2hsaWdodENvbmZpZy0+Y29udGVudCA9IHBhcnNlQ29sb3IoY29sb3IpOwogICAg
IGhpZ2hsaWdodENvbmZpZy0+Y29udGVudE91dGxpbmUgPSBwYXJzZUNvbG9yKG91dGxpbmVDb2xv
cik7CiAgICAgaGlnaGxpZ2h0Q29uZmlnLT51c2VQYWdlQ29vcmRpbmF0ZXMgPSB1c2VQYWdlQ29v
cmRpbmF0ZXMgPyAqdXNlUGFnZUNvb3JkaW5hdGVzIDogZmFsc2U7Ci0gICAgbV9vdmVybGF5LT5o
aWdobGlnaHRRdWFkKHN0ZDo6bW92ZShxdWFkKSwgKmhpZ2hsaWdodENvbmZpZyk7CisgICAgbV9v
dmVybGF5LT5oaWdobGlnaHRRdWFkKFdURjo6bW92ZShxdWFkKSwgKmhpZ2hsaWdodENvbmZpZyk7
CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmhpZ2hsaWdodE5vZGUoRXJyb3JTdHJpbmcq
IGVycm9yU3RyaW5nLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgaGlnaGxpZ2h0SW5z
cGVjdG9yT2JqZWN0LCBjb25zdCBpbnQqIG5vZGVJZCwgY29uc3QgU3RyaW5nKiBvYmplY3RJZCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENs
aWVudExvY2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZENsaWVudExvY2FsLmNwcAppbmRleCA0OGEyNjE3Li41Yjg5ZDhkNTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2Nh
bC5jcHAKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9j
YWw6OlNldHRpbmdzOjpzZXRQcm9wZXJ0eShjb25zdCBTdHJpbmcmLCBjb25zdCBTdAogSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbChJbnNw
ZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyLCBQYWdlKiBmcm9udGVuZFBhZ2Us
IHN0ZDo6dW5pcXVlX3B0cjxTZXR0aW5ncz4gc2V0dGluZ3MpCiAgICAgOiBtX2luc3BlY3RvckNv
bnRyb2xsZXIoaW5zcGVjdG9yQ29udHJvbGxlcikKICAgICAsIG1fZnJvbnRlbmRQYWdlKGZyb250
ZW5kUGFnZSkKLSAgICAsIG1fc2V0dGluZ3Moc3RkOjptb3ZlKHNldHRpbmdzKSkKKyAgICAsIG1f
c2V0dGluZ3MoV1RGOjptb3ZlKHNldHRpbmdzKSkKICAgICAsIG1fZnJvbnRlbmRMb2FkZWQoZmFs
c2UpCiAgICAgLCBtX2RvY2tTaWRlKFVORE9DS0VEKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckhpc3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckhpc3RvcnkuY3BwCmluZGV4IDg3M2E4ZjkuLmUzOGQ4OTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIaXN0b3J5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGlzdG9yeS5jcHAKQEAgLTkzLDEw
ICs5MywxMCBAQCBib29sIEluc3BlY3Rvckhpc3Rvcnk6OnBlcmZvcm0oc3RkOjp1bmlxdWVfcHRy
PEFjdGlvbj4gYWN0aW9uLCBFeGNlcHRpb25Db2RlJiBlYwogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBpZiAoIWFjdGlvbi0+bWVyZ2VJZCgpLmlzRW1wdHkoKSAmJiBtX2FmdGVyTGFzdEFj
dGlvbkluZGV4ID4gMCAmJiBhY3Rpb24tPm1lcmdlSWQoKSA9PSBtX2hpc3RvcnlbbV9hZnRlckxh
c3RBY3Rpb25JbmRleCAtIDFdLT5tZXJnZUlkKCkpCi0gICAgICAgIG1faGlzdG9yeVttX2FmdGVy
TGFzdEFjdGlvbkluZGV4IC0gMV0tPm1lcmdlKHN0ZDo6bW92ZShhY3Rpb24pKTsKKyAgICAgICAg
bV9oaXN0b3J5W21fYWZ0ZXJMYXN0QWN0aW9uSW5kZXggLSAxXS0+bWVyZ2UoV1RGOjptb3ZlKGFj
dGlvbikpOwogICAgIGVsc2UgewogICAgICAgICBtX2hpc3RvcnkucmVzaXplKG1fYWZ0ZXJMYXN0
QWN0aW9uSW5kZXgpOwotICAgICAgICBtX2hpc3RvcnkuYXBwZW5kKHN0ZDo6bW92ZShhY3Rpb24p
KTsKKyAgICAgICAgbV9oaXN0b3J5LmFwcGVuZChXVEY6Om1vdmUoYWN0aW9uKSk7CiAgICAgICAg
ICsrbV9hZnRlckxhc3RBY3Rpb25JbmRleDsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKaW5kZXggYjg5OWMy
ZS4uZWEwNGE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck92ZXJsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVy
bGF5LmNwcApAQCAtMzA1LDcgKzMwNSw3IEBAIHZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6aGlnaGxp
Z2h0UXVhZChzdGQ6OnVuaXF1ZV9wdHI8RmxvYXRRdWFkPiBxdWFkLCBjb25zdCBIaWdoCiAgICAg
ICAgICpxdWFkIC09IG1fcGFnZS5tYWluRnJhbWUoKS52aWV3KCktPnNjcm9sbE9mZnNldCgpOwog
CiAgICAgbV9xdWFkSGlnaGxpZ2h0Q29uZmlnID0gaGlnaGxpZ2h0Q29uZmlnOwotICAgIG1faGln
aGxpZ2h0UXVhZCA9IHN0ZDo6bW92ZShxdWFkKTsKKyAgICBtX2hpZ2hsaWdodFF1YWQgPSBXVEY6
Om1vdmUocXVhZCk7CiAgICAgdXBkYXRlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAppbmRleCA1NTBiZDk5Li5hNDcw
MzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291
cmNlQWdlbnQuY3BwCkBAIC00ODcsNyArNDg3LDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFn
ZW50Ojp3aWxsTG9hZFhIUihUaHJlYWRhYmxlTG9hZGVyQ2xpZW50KiBjbGllbnQsIGNvbnN0IFMK
IHsKICAgICBSZWZQdHI8WEhSUmVwbGF5RGF0YT4geGhyUmVwbGF5RGF0YSA9IFhIUlJlcGxheURh
dGE6OmNyZWF0ZShtZXRob2QsIHVybCwgYXN5bmMsIGZvcm1EYXRhLCBoZWFkZXJzLCBpbmNsdWRl
Q3JlZGVudGlhbHMpOwogCi0gICAgbV9wZW5kaW5nWEhSUmVwbGF5RGF0YS5zZXQoY2xpZW50LCBz
dGQ6Om1vdmUoeGhyUmVwbGF5RGF0YSkpOworICAgIG1fcGVuZGluZ1hIUlJlcGxheURhdGEuc2V0
KGNsaWVudCwgV1RGOjptb3ZlKHhoclJlcGxheURhdGEpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JS
ZXNvdXJjZUFnZW50OjpkaWRGYWlsWEhSTG9hZGluZyhUaHJlYWRhYmxlTG9hZGVyQ2xpZW50KiBj
bGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5
bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVl
dC5jcHAKaW5kZXggODk2MTliNC4uNzY4ODEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcApAQCAtMTI3MSw3ICsxMjcxLDcgQEAgYm9v
bCBJbnNwZWN0b3JTdHlsZVNoZWV0OjplbnN1cmVTb3VyY2VEYXRhKCkKICAgICBSZWZQdHI8U3R5
bGVTaGVldENvbnRlbnRzPiBuZXdTdHlsZVNoZWV0ID0gU3R5bGVTaGVldENvbnRlbnRzOjpjcmVh
dGUoKTsKICAgICBhdXRvIHJ1bGVTb3VyY2VEYXRhUmVzdWx0ID0gc3RkOjptYWtlX3VuaXF1ZTxS
dWxlU291cmNlRGF0YUxpc3Q+KCk7CiAgICAgY3JlYXRlQ1NTUGFyc2VyKG1fcGFnZVN0eWxlU2hl
ZXQtPm93bmVyRG9jdW1lbnQoKSktPnBhcnNlU2hlZXQobmV3U3R5bGVTaGVldC5nZXQoKSwgbV9w
YXJzZWRTdHlsZVNoZWV0LT50ZXh0KCksIDAsIHJ1bGVTb3VyY2VEYXRhUmVzdWx0LmdldCgpKTsK
LSAgICBtX3BhcnNlZFN0eWxlU2hlZXQtPnNldFNvdXJjZURhdGEoc3RkOjptb3ZlKHJ1bGVTb3Vy
Y2VEYXRhUmVzdWx0KSk7CisgICAgbV9wYXJzZWRTdHlsZVNoZWV0LT5zZXRTb3VyY2VEYXRhKFdU
Rjo6bW92ZShydWxlU291cmNlRGF0YVJlc3VsdCkpOwogICAgIHJldHVybiBtX3BhcnNlZFN0eWxl
U2hlZXQtPmhhc1NvdXJjZURhdGEoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDA0MmRlMjUuLjhk
MzdiNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0
b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5z
cGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTg2LDIxICs4NiwyMSBAQCBXb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyOjpXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKFdvcmtlckdsb2JhbFNjb3BlJiB3
b3JrZXJHbAogICAgIGF1dG8gcnVudGltZUFnZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxXb3JrZXJS
dW50aW1lQWdlbnQ+KG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCAmd29ya2VyR2xvYmFs
U2NvcGUpOwogICAgIG1fcnVudGltZUFnZW50ID0gcnVudGltZUFnZW50LmdldCgpOwogICAgIG1f
aW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0V29ya2VyUnVudGltZUFnZW50KG1fcnVudGltZUFnZW50
KTsKLSAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjptb3ZlKHJ1bnRpbWVBZ2VudCkpOworICAgIG1f
YWdlbnRzLmFwcGVuZChXVEY6Om1vdmUocnVudGltZUFnZW50KSk7CiAKICAgICBhdXRvIGNvbnNv
bGVBZ2VudCA9IHN0ZDo6bWFrZV91bmlxdWU8V29ya2VyQ29uc29sZUFnZW50PihtX2luamVjdGVk
U2NyaXB0TWFuYWdlci5nZXQoKSk7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRXZWJD
b25zb2xlQWdlbnQoY29uc29sZUFnZW50LmdldCgpKTsKIAogICAgIGF1dG8gZGVidWdnZXJBZ2Vu
dCA9IHN0ZDo6bWFrZV91bmlxdWU8V29ya2VyRGVidWdnZXJBZ2VudD4obV9pbmplY3RlZFNjcmlw
dE1hbmFnZXIuZ2V0KCksIG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgJndvcmtlckdsb2Jh
bFNjb3BlKTsKICAgICBtX3J1bnRpbWVBZ2VudC0+c2V0U2NyaXB0RGVidWdTZXJ2ZXIoJmRlYnVn
Z2VyQWdlbnQtPnNjcmlwdERlYnVnU2VydmVyKCkpOwotICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6
Om1vdmUoZGVidWdnZXJBZ2VudCkpOworICAgIG1fYWdlbnRzLmFwcGVuZChXVEY6Om1vdmUoZGVi
dWdnZXJBZ2VudCkpOwogCiAgICAgYXV0byBwcm9maWxlckFnZW50ID0gc3RkOjptYWtlX3VuaXF1
ZTxXb3JrZXJQcm9maWxlckFnZW50PihtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksICZ3b3Jr
ZXJHbG9iYWxTY29wZSk7CiAgICAgcHJvZmlsZXJBZ2VudC0+c2V0U2NyaXB0RGVidWdTZXJ2ZXIo
JmRlYnVnZ2VyQWdlbnQtPnNjcmlwdERlYnVnU2VydmVyKCkpOwotICAgIG1fYWdlbnRzLmFwcGVu
ZChzdGQ6Om1vdmUocHJvZmlsZXJBZ2VudCkpOworICAgIG1fYWdlbnRzLmFwcGVuZChXVEY6Om1v
dmUocHJvZmlsZXJBZ2VudCkpOwogCiAgICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bWFrZV91bmlx
dWU8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4obV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBu
dWxscHRyLCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpXb3JrZXJJbnNwZWN0b3IsIG51bGxwdHIp
KTsKLSAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjptb3ZlKGNvbnNvbGVBZ2VudCkpOworICAgIG1f
YWdlbnRzLmFwcGVuZChXVEY6Om1vdmUoY29uc29sZUFnZW50KSk7CiAKICAgICBpZiAoQ29tbWFu
ZExpbmVBUElIb3N0KiBjb21tYW5kTGluZUFQSUhvc3QgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdl
ci0+Y29tbWFuZExpbmVBUElIb3N0KCkpIHsKICAgICAgICAgY29tbWFuZExpbmVBUElIb3N0LT5p
bml0KG51bGxwdHIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdp
blByZWZsaWdodFJlc3VsdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09y
aWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcAppbmRleCBkMzZjNDhlLi41MTZmMTFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRD
YWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0
UmVzdWx0Q2FjaGUuY3BwCkBAIC0xNjAsNyArMTYwLDcgQEAgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRS
ZXN1bHRDYWNoZSYgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZTo6c2hhcmVkKCkKIHZv
aWQgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZTo6YXBwZW5kRW50cnkoY29uc3QgU3Ry
aW5nJiBvcmlnaW4sIGNvbnN0IFVSTCYgdXJsLCBzdGQ6OnVuaXF1ZV9wdHI8Q3Jvc3NPcmlnaW5Q
cmVmbGlnaHRSZXN1bHRDYWNoZUl0ZW0+IHByZWZsaWdodFJlc3VsdCkKIHsKICAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOwotICAgIG1fcHJlZmxpZ2h0SGFzaE1hcC5zZXQoc3RkOjptYWtlX3Bh
aXIob3JpZ2luLCB1cmwpLCBzdGQ6Om1vdmUocHJlZmxpZ2h0UmVzdWx0KSk7CisgICAgbV9wcmVm
bGlnaHRIYXNoTWFwLnNldChzdGQ6Om1ha2VfcGFpcihvcmlnaW4sIHVybCksIFdURjo6bW92ZShw
cmVmbGlnaHRSZXN1bHQpKTsKIH0KIAogYm9vbCBDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENh
Y2hlOjpjYW5Ta2lwUHJlZmxpZ2h0KGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBVUkwmIHVy
bCwgU3RvcmVkQ3JlZGVudGlhbHMgaW5jbHVkZUNyZWRlbnRpYWxzLCBjb25zdCBTdHJpbmcmIG1l
dGhvZCwgY29uc3QgSFRUUEhlYWRlck1hcCYgcmVxdWVzdEhlYWRlcnMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCA2MmNjYTc1Li42MmMzM2YwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTExMTQsNyArMTExNCw3IEBA
IFZlY3RvcjxSZWZQdHI8QXJjaGl2ZVJlc291cmNlPj4gRG9jdW1lbnRMb2FkZXI6OnN1YnJlc291
cmNlcygpIGNvbnN0CiAKICAgICBmb3IgKGF1dG8mIGNhY2hlZFJlc291cmNlSGFuZGxlIDogbV9j
YWNoZWRSZXNvdXJjZUxvYWRlci0+YWxsQ2FjaGVkUmVzb3VyY2VzKCkudmFsdWVzKCkpIHsKICAg
ICAgICAgaWYgKFJlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IHN1YnJlc291cmNlID0gdGhpcy0+c3Vi
cmVzb3VyY2UoVVJMKFBhcnNlZFVSTFN0cmluZywgY2FjaGVkUmVzb3VyY2VIYW5kbGUtPnVybCgp
KSkpCi0gICAgICAgICAgICBzdWJyZXNvdXJjZXMuYXBwZW5kKHN0ZDo6bW92ZShzdWJyZXNvdXJj
ZSkpOworICAgICAgICAgICAgc3VicmVzb3VyY2VzLmFwcGVuZChXVEY6Om1vdmUoc3VicmVzb3Vy
Y2UpKTsKICAgICB9CiAKICAgICByZXR1cm4gc3VicmVzb3VyY2VzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAppbmRleCBjYzkwODkz
Li41OGM1YjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJl
YWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJl
YWRhYmxlTG9hZGVyLmNwcApAQCAtMjYxLDcgKzI2MSw3IEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBj
b25zCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBDcm9zc09yaWdp
blByZWZsaWdodFJlc3VsdENhY2hlOjpzaGFyZWQoKS5hcHBlbmRFbnRyeShzZWN1cml0eU9yaWdp
bigpLT50b1N0cmluZygpLCBtX2FjdHVhbFJlcXVlc3QtPnVybCgpLCBzdGQ6Om1vdmUocHJlZmxp
Z2h0UmVzdWx0KSk7CisgICAgICAgIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OnNo
YXJlZCgpLmFwcGVuZEVudHJ5KHNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCksIG1fYWN0dWFs
UmVxdWVzdC0+dXJsKCksIFdURjo6bW92ZShwcmVmbGlnaHRSZXN1bHQpKTsKICAgICB9IGVsc2Ug
ewogICAgICAgICBpZiAoIW1fc2FtZU9yaWdpblJlcXVlc3QgJiYgbV9vcHRpb25zLmNyb3NzT3Jp
Z2luUmVxdWVzdFBvbGljeSA9PSBVc2VBY2Nlc3NDb250cm9sKSB7CiAgICAgICAgICAgICBpZiAo
IXBhc3Nlc0FjY2Vzc0NvbnRyb2xDaGVjayhyZXNwb25zZSwgbV9vcHRpb25zLmFsbG93Q3JlZGVu
dGlhbHMoKSwgc2VjdXJpdHlPcmlnaW4oKSwgYWNjZXNzQ29udHJvbEVycm9yRGVzY3JpcHRpb24p
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAKaW5k
ZXggMzkzMTM0My4uZjVlZjJkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05h
dmlnYXRpb25TY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0
aW9uU2NoZWR1bGVyLmNwcApAQCAtNDM3LDcgKzQzNyw3IEBAIHZvaWQgTmF2aWdhdGlvblNjaGVk
dWxlcjo6dGltZXJGaXJlZChUaW1lcjxOYXZpZ2F0aW9uU2NoZWR1bGVyPiYpCiAKICAgICBSZWY8
RnJhbWU+IHByb3RlY3QobV9mcmFtZSk7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVk
TmF2aWdhdGlvbj4gcmVkaXJlY3QgPSBzdGQ6Om1vdmUobV9yZWRpcmVjdCk7CisgICAgc3RkOjp1
bmlxdWVfcHRyPFNjaGVkdWxlZE5hdmlnYXRpb24+IHJlZGlyZWN0ID0gV1RGOjptb3ZlKG1fcmVk
aXJlY3QpOwogICAgIHJlZGlyZWN0LT5maXJlKG1fZnJhbWUpOwogICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihtX2ZyYW1lKTsKIH0K
QEAgLTQ1OCw3ICs0NTgsNyBAQCB2b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxlKHN0
ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWROYXZpZ2F0aW9uPiByZWRpcmVjdAogICAgIH0KIAogICAg
IGNhbmNlbCgpOwotICAgIG1fcmVkaXJlY3QgPSBzdGQ6Om1vdmUocmVkaXJlY3QpOworICAgIG1f
cmVkaXJlY3QgPSBXVEY6Om1vdmUocmVkaXJlY3QpOwogCiAgICAgaWYgKCFtX2ZyYW1lLmxvYWRl
cigpLmlzQ29tcGxldGUoKSAmJiBtX3JlZGlyZWN0LT5pc0xvY2F0aW9uQ2hhbmdlKCkpCiAgICAg
ICAgIG1fZnJhbWUubG9hZGVyKCkuY29tcGxldGVkKCk7CkBAIC00OTIsNyArNDkyLDcgQEAgdm9p
ZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpjYW5jZWwoYm9vbCBuZXdMb2FkSW5Qcm9ncmVzcykKICAg
ICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZp
Z2F0aW9uKG1fZnJhbWUpOwogICAgIG1fdGltZXIuc3RvcCgpOwogCi0gICAgaWYgKHN0ZDo6dW5p
cXVlX3B0cjxTY2hlZHVsZWROYXZpZ2F0aW9uPiByZWRpcmVjdCA9IHN0ZDo6bW92ZShtX3JlZGly
ZWN0KSkKKyAgICBpZiAoc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZE5hdmlnYXRpb24+IHJlZGly
ZWN0ID0gV1RGOjptb3ZlKG1fcmVkaXJlY3QpKQogICAgICAgICByZWRpcmVjdC0+ZGlkU3RvcFRp
bWVyKG1fZnJhbWUsIG5ld0xvYWRJblByb2dyZXNzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1BvbGljeUNhbGxiYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Qb2xpY3lDYWxsYmFjay5jcHAKaW5kZXggYzEyYWM4Mi4uYmRmZmJlOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNhbGxiYWNrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUG9saWN5Q2FsbGJhY2suY3BwCkBAIC02MSw3ICs2MSw3IEBAIHZvaWQgUG9s
aWN5Q2FsbGJhY2s6OnNldChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFBhc3NSZWZQ
dHI8Rm9ybVN0YXRlPiBmCiAgICAgbV9mb3JtU3RhdGUgPSBmb3JtU3RhdGU7CiAgICAgbV9mcmFt
ZU5hbWUgPSBTdHJpbmcoKTsKIAotICAgIG1fbmF2aWdhdGlvbkZ1bmN0aW9uID0gc3RkOjptb3Zl
KGZ1bmN0aW9uKTsKKyAgICBtX25hdmlnYXRpb25GdW5jdGlvbiA9IFdURjo6bW92ZShmdW5jdGlv
bik7CiAgICAgbV9uZXdXaW5kb3dGdW5jdGlvbiA9IG51bGxwdHI7CiAgICAgbV9jb250ZW50RnVu
Y3Rpb24gPSBudWxscHRyOwogfQpAQCAtNzQsNyArNzQsNyBAQCB2b2lkIFBvbGljeUNhbGxiYWNr
OjpzZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBQYXNzUmVmUHRyPEZvcm1TdGF0
ZT4gZgogICAgIG1fbmF2aWdhdGlvbkFjdGlvbiA9IG5hdmlnYXRpb25BY3Rpb247CiAKICAgICBt
X25hdmlnYXRpb25GdW5jdGlvbiA9IG51bGxwdHI7Ci0gICAgbV9uZXdXaW5kb3dGdW5jdGlvbiA9
IHN0ZDo6bW92ZShmdW5jdGlvbik7CisgICAgbV9uZXdXaW5kb3dGdW5jdGlvbiA9IFdURjo6bW92
ZShmdW5jdGlvbik7CiAgICAgbV9jb250ZW50RnVuY3Rpb24gPSBudWxscHRyOwogfQogCkBAIC04
Niw3ICs4Niw3IEBAIHZvaWQgUG9saWN5Q2FsbGJhY2s6OnNldChDb250ZW50UG9saWN5RGVjaXNp
b25GdW5jdGlvbiBmdW5jdGlvbikKIAogICAgIG1fbmF2aWdhdGlvbkZ1bmN0aW9uID0gbnVsbHB0
cjsKICAgICBtX25ld1dpbmRvd0Z1bmN0aW9uID0gbnVsbHB0cjsKLSAgICBtX2NvbnRlbnRGdW5j
dGlvbiA9IHN0ZDo6bW92ZShmdW5jdGlvbik7CisgICAgbV9jb250ZW50RnVuY3Rpb24gPSBXVEY6
Om1vdmUoZnVuY3Rpb24pOwogfQogCiB2b2lkIFBvbGljeUNhbGxiYWNrOjpjYWxsKGJvb2wgc2hv
dWxkQ29udGludWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hl
Y2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKaW5kZXgg
MzQ3ZWY2MS4uZTc3MDgwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGlj
eUNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNw
cApAQCAtNjIsNyArNjIsNyBAQCBQb2xpY3lDaGVja2VyOjpQb2xpY3lDaGVja2VyKEZyYW1lJiBm
cmFtZSkKIAogdm9pZCBQb2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xpY3koY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0LCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5j
dGlvbiBmdW5jdGlvbikKIHsKLSAgICBjaGVja05hdmlnYXRpb25Qb2xpY3kobmV3UmVxdWVzdCwg
bV9mcmFtZS5sb2FkZXIoKS5hY3RpdmVEb2N1bWVudExvYWRlcigpLCBudWxscHRyLCBzdGQ6Om1v
dmUoZnVuY3Rpb24pKTsKKyAgICBjaGVja05hdmlnYXRpb25Qb2xpY3kobmV3UmVxdWVzdCwgbV9m
cmFtZS5sb2FkZXIoKS5hY3RpdmVEb2N1bWVudExvYWRlcigpLCBudWxscHRyLCBXVEY6Om1vdmUo
ZnVuY3Rpb24pKTsKIH0KIAogdm9pZCBQb2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xp
Y3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBEb2N1bWVudExvYWRlciogbG9hZGVy
LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlLCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNp
b25GdW5jdGlvbiBmdW5jdGlvbikKQEAgLTk5LDcgKzk5LDcgQEAgdm9pZCBQb2xpY3lDaGVja2Vy
OjpjaGVja05hdmlnYXRpb25Qb2xpY3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBE
b2N1bWUKIAogICAgIGxvYWRlci0+c2V0TGFzdENoZWNrZWRSZXF1ZXN0KHJlcXVlc3QpOwogCi0g
ICAgbV9jYWxsYmFjay5zZXQocmVxdWVzdCwgZm9ybVN0YXRlLmdldCgpLCBzdGQ6Om1vdmUoZnVu
Y3Rpb24pKTsKKyAgICBtX2NhbGxiYWNrLnNldChyZXF1ZXN0LCBmb3JtU3RhdGUuZ2V0KCksIFdU
Rjo6bW92ZShmdW5jdGlvbikpOwogCiAjaWYgVVNFKFFVSUNLX0xPT0spCiAgICAgLy8gQWx3YXlz
IGFsbG93IFF1aWNrTG9vay1nZW5lcmF0ZWQgVVJMcyBiYXNlZCBvbiB0aGUgcHJvdG9jb2wgc2No
ZW1lLgpAQCAtMTMzLDcgKzEzMyw3IEBAIHZvaWQgUG9saWN5Q2hlY2tlcjo6Y2hlY2tOZXdXaW5k
b3dQb2xpY3koY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBjb25zdCBSCiAgICAgaWYg
KCFET01XaW5kb3c6OmFsbG93UG9wVXAoJm1fZnJhbWUpKQogICAgICAgICByZXR1cm4gY29udGlu
dWVBZnRlck5hdmlnYXRpb25Qb2xpY3koUG9saWN5SWdub3JlKTsKIAotICAgIG1fY2FsbGJhY2su
c2V0KHJlcXVlc3QsIGZvcm1TdGF0ZSwgZnJhbWVOYW1lLCBhY3Rpb24sIHN0ZDo6bW92ZShmdW5j
dGlvbikpOworICAgIG1fY2FsbGJhY2suc2V0KHJlcXVlc3QsIGZvcm1TdGF0ZSwgZnJhbWVOYW1l
LCBhY3Rpb24sIFdURjo6bW92ZShmdW5jdGlvbikpOwogICAgIG1fZnJhbWUubG9hZGVyKCkuY2xp
ZW50KCkuZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oYWN0aW9uLCByZXF1
ZXN0LCBmb3JtU3RhdGUsIGZyYW1lTmFtZSwgW3RoaXNdKFBvbGljeUFjdGlvbiBhY3Rpb24pIHsK
ICAgICAgICAgY29udGludWVBZnRlck5ld1dpbmRvd1BvbGljeShhY3Rpb24pOwogICAgIH0pOwpA
QCAtMTQxLDcgKzE0MSw3IEBAIHZvaWQgUG9saWN5Q2hlY2tlcjo6Y2hlY2tOZXdXaW5kb3dQb2xp
Y3koY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBjb25zdCBSCiAKIHZvaWQgUG9saWN5
Q2hlY2tlcjo6Y2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBDb250ZW50UG9saWN5RGVjaXNpb25GdW5jdGlvbiBmdW5jdGlvbikKIHsKLSAgICBtX2Nh
bGxiYWNrLnNldChzdGQ6Om1vdmUoZnVuY3Rpb24pKTsKKyAgICBtX2NhbGxiYWNrLnNldChXVEY6
Om1vdmUoZnVuY3Rpb24pKTsKICAgICBtX2ZyYW1lLmxvYWRlcigpLmNsaWVudCgpLmRpc3BhdGNo
RGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UocmVzcG9uc2UsIG1fZnJhbWUubG9hZGVyKCkuYWN0aXZl
RG9jdW1lbnRMb2FkZXIoKS0+cmVxdWVzdCgpLCBbdGhpc10oUG9saWN5QWN0aW9uIGFjdGlvbikg
ewogICAgICAgICBjb250aW51ZUFmdGVyQ29udGVudFBvbGljeShhY3Rpb24pOwogICAgIH0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJj
aGl2ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNo
aXZlLmNwcAppbmRleCAwZTUyNTdkLi5lODQ4ZTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcApAQCAtMjQ3LDEwICsy
NDcsMTAgQEAgUGFzc1JlZlB0cjxMZWdhY3lXZWJBcmNoaXZlPiBMZWdhY3lXZWJBcmNoaXZlOjpj
cmVhdGUoUGFzc1JlZlB0cjxBcmNoaXZlUmVzb3VyY2UKICAgICBhcmNoaXZlLT5zZXRNYWluUmVz
b3VyY2UobWFpblJlc291cmNlKTsKICAgICAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
c3VicmVzb3VyY2VzLnNpemUoKTsgKytpKQotICAgICAgICBhcmNoaXZlLT5hZGRTdWJyZXNvdXJj
ZShzdGQ6Om1vdmUoc3VicmVzb3VyY2VzW2ldKSk7CisgICAgICAgIGFyY2hpdmUtPmFkZFN1YnJl
c291cmNlKFdURjo6bW92ZShzdWJyZXNvdXJjZXNbaV0pKTsKICAgICAKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgc3ViZnJhbWVBcmNoaXZlcy5zaXplKCk7ICsraSkKLSAgICAgICAgYXJj
aGl2ZS0+YWRkU3ViZnJhbWVBcmNoaXZlKHN0ZDo6bW92ZShzdWJmcmFtZUFyY2hpdmVzW2ldKSk7
CisgICAgICAgIGFyY2hpdmUtPmFkZFN1YmZyYW1lQXJjaGl2ZShXVEY6Om1vdmUoc3ViZnJhbWVB
cmNoaXZlc1tpXSkpOwogICAgICAgICAKICAgICByZXR1cm4gYXJjaGl2ZS5yZWxlYXNlKCk7CiB9
CkBAIC00NDksNyArNDQ5LDcgQEAgUGFzc1JlZlB0cjxMZWdhY3lXZWJBcmNoaXZlPiBMZWdhY3lX
ZWJBcmNoaXZlOjpjcmVhdGUoTm9kZSogbm9kZSwgc3RkOjpmdW5jdGlvbjwKICAgICBpZiAobm9k
ZVR5cGUgIT0gTm9kZTo6RE9DVU1FTlRfTk9ERSAmJiBub2RlVHlwZSAhPSBOb2RlOjpET0NVTUVO
VF9UWVBFX05PREUpCiAgICAgICAgIG1hcmt1cFN0cmluZyA9IGRvY3VtZW50VHlwZVN0cmluZyhu
b2RlLT5kb2N1bWVudCgpKSArIG1hcmt1cFN0cmluZzsKIAotICAgIHJldHVybiBjcmVhdGUobWFy
a3VwU3RyaW5nLCBmcmFtZSwgbm9kZUxpc3QsIHN0ZDo6bW92ZShmcmFtZUZpbHRlcikpOworICAg
IHJldHVybiBjcmVhdGUobWFya3VwU3RyaW5nLCBmcmFtZSwgbm9kZUxpc3QsIFdURjo6bW92ZShm
cmFtZUZpbHRlcikpOwogfQogCiBQYXNzUmVmUHRyPExlZ2FjeVdlYkFyY2hpdmU+IExlZ2FjeVdl
YkFyY2hpdmU6OmNyZWF0ZShGcmFtZSogZnJhbWUpCkBAIC00NjUsMTEgKzQ2NSwxMSBAQCBQYXNz
UmVmUHRyPExlZ2FjeVdlYkFyY2hpdmU+IExlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0ZShGcmFtZSog
ZnJhbWUpCiAgICAgCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZyYW1lLT50cmVlKCku
Y2hpbGRDb3VudCgpOyArK2kpIHsKICAgICAgICAgaWYgKFJlZlB0cjxMZWdhY3lXZWJBcmNoaXZl
PiBjaGlsZEZyYW1lQXJjaGl2ZSA9IGNyZWF0ZShmcmFtZS0+dHJlZSgpLmNoaWxkKGkpKSkKLSAg
ICAgICAgICAgIHN1YmZyYW1lQXJjaGl2ZXMuYXBwZW5kKHN0ZDo6bW92ZShjaGlsZEZyYW1lQXJj
aGl2ZSkpOworICAgICAgICAgICAgc3ViZnJhbWVBcmNoaXZlcy5hcHBlbmQoV1RGOjptb3ZlKGNo
aWxkRnJhbWVBcmNoaXZlKSk7CiAgICAgfQogCiAgICAgYXV0byBzdWJyZXNvdXJjZXMgPSBkb2N1
bWVudExvYWRlci0+c3VicmVzb3VyY2VzKCk7Ci0gICAgcmV0dXJuIGNyZWF0ZShkb2N1bWVudExv
YWRlci0+bWFpblJlc291cmNlKCksIHN0ZDo6bW92ZShzdWJyZXNvdXJjZXMpLCBzdGQ6Om1vdmUo
c3ViZnJhbWVBcmNoaXZlcykpOworICAgIHJldHVybiBjcmVhdGUoZG9jdW1lbnRMb2FkZXItPm1h
aW5SZXNvdXJjZSgpLCBXVEY6Om1vdmUoc3VicmVzb3VyY2VzKSwgV1RGOjptb3ZlKHN1YmZyYW1l
QXJjaGl2ZXMpKTsKIH0KIAogUGFzc1JlZlB0cjxMZWdhY3lXZWJBcmNoaXZlPiBMZWdhY3lXZWJB
cmNoaXZlOjpjcmVhdGUoUmFuZ2UqIHJhbmdlKQpAQCAtNTIyLDcgKzUyMiw3IEBAIFBhc3NSZWZQ
dHI8TGVnYWN5V2ViQXJjaGl2ZT4gTGVnYWN5V2ViQXJjaGl2ZTo6Y3JlYXRlKGNvbnN0IFN0cmlu
ZyYgbWFya3VwU3RyaW5nCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICBpZiAoUmVmUHRyPExlZ2FjeVdlYkFyY2hpdmU+IHN1YmZyYW1lQXJj
aGl2ZSA9IGNyZWF0ZShjaGlsZEZyYW1lLT5kb2N1bWVudCgpLCBmcmFtZUZpbHRlcikpCi0gICAg
ICAgICAgICAgICAgc3ViZnJhbWVBcmNoaXZlcy5hcHBlbmQoc3RkOjptb3ZlKHN1YmZyYW1lQXJj
aGl2ZSkpOworICAgICAgICAgICAgICAgIHN1YmZyYW1lQXJjaGl2ZXMuYXBwZW5kKFdURjo6bW92
ZShzdWJmcmFtZUFyY2hpdmUpKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBM
T0dfRVJST1IoIlVuYWJsZWQgdG8gYXJjaGl2ZSBzdWJmcmFtZSAlcyIsIGNoaWxkRnJhbWUtPnRy
ZWUoKS51bmlxdWVOYW1lKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAKQEAgLTUzOSw3ICs1
MzksNyBAQCBQYXNzUmVmUHRyPExlZ2FjeVdlYkFyY2hpdmU+IExlZ2FjeVdlYkFyY2hpdmU6OmNy
ZWF0ZShjb25zdCBTdHJpbmcmIG1hcmt1cFN0cmluZwogICAgICAgICAgICAgICAgIHVuaXF1ZVN1
YnJlc291cmNlcy5hZGQoc3VicmVzb3VyY2VVUkwpOwogCiAgICAgICAgICAgICAgICAgaWYgKFJl
ZlB0cjxBcmNoaXZlUmVzb3VyY2U+IHJlc291cmNlID0gZG9jdW1lbnRMb2FkZXItPnN1YnJlc291
cmNlKHN1YnJlc291cmNlVVJMKSkgewotICAgICAgICAgICAgICAgICAgICBzdWJyZXNvdXJjZXMu
YXBwZW5kKHN0ZDo6bW92ZShyZXNvdXJjZSkpOworICAgICAgICAgICAgICAgICAgICBzdWJyZXNv
dXJjZXMuYXBwZW5kKFdURjo6bW92ZShyZXNvdXJjZSkpOwogICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgICAgICAgICB9CiAKQEAgLTU1Miw3ICs1NTIsNyBAQCBQYXNzUmVm
UHRyPExlZ2FjeVdlYkFyY2hpdmU+IExlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0ZShjb25zdCBTdHJp
bmcmIG1hcmt1cFN0cmluZwogICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZUJ1ZmZlciogZGF0
YSA9IGNhY2hlZFJlc291cmNlLT5yZXNvdXJjZUJ1ZmZlcigpOwogCiAgICAgICAgICAgICAgICAg
ICAgIGlmIChSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiByZXNvdXJjZSA9IEFyY2hpdmVSZXNvdXJj
ZTo6Y3JlYXRlKGRhdGEgPyBkYXRhLT5zaGFyZWRCdWZmZXIoKSA6IDAsIHN1YnJlc291cmNlVVJM
LCBjYWNoZWRSZXNvdXJjZS0+cmVzcG9uc2UoKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IHN1YnJlc291cmNlcy5hcHBlbmQoc3RkOjptb3ZlKHJlc291cmNlKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBzdWJyZXNvdXJjZXMuYXBwZW5kKFdURjo6bW92ZShyZXNvdXJjZSkpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICB9CkBAIC01NzQsNyArNTc0LDcgQEAgUGFzc1JlZlB0cjxMZWdhY3lXZWJB
cmNoaXZlPiBMZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBtYXJrdXBTdHJp
bmcKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBjcmVhdGUobWFpblJlc291cmNlLnJl
bGVhc2UoKSwgc3VicmVzb3VyY2VzLCBzdGQ6Om1vdmUoc3ViZnJhbWVBcmNoaXZlcykpOworICAg
IHJldHVybiBjcmVhdGUobWFpblJlc291cmNlLnJlbGVhc2UoKSwgc3VicmVzb3VyY2VzLCBXVEY6
Om1vdmUoc3ViZnJhbWVBcmNoaXZlcykpOwogfQogCiBQYXNzUmVmUHRyPExlZ2FjeVdlYkFyY2hp
dmU+IExlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0ZUZyb21TZWxlY3Rpb24oRnJhbWUqIGZyYW1lKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hl
ZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQu
Y3BwCmluZGV4IGY5NjRjZTEuLjgxZDk4MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTE4MSw3ICsxODEsNyBAQCB2
b2lkIENhY2hlZENTU1N0eWxlU2hlZXQ6OnNhdmVQYXJzZWRTdHlsZVNoZWV0KFBhc3NSZWY8U3R5
bGVTaGVldENvbnRlbnRzPiBzaGVldAogCiAgICAgaWYgKG1fcGFyc2VkU3R5bGVTaGVldENhY2hl
KQogICAgICAgICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+cmVtb3ZlZEZyb21NZW1vcnlDYWNo
ZSgpOwotICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlID0gc3RkOjptb3ZlKHNoZWV0KTsKKyAg
ICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZSA9IFdURjo6bW92ZShzaGVldCk7CiAgICAgbV9wYXJz
ZWRTdHlsZVNoZWV0Q2FjaGUtPmFkZGVkVG9NZW1vcnlDYWNoZSgpOwogCiAgICAgc2V0RGVjb2Rl
ZFNpemUobV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUtPmVzdGltYXRlZFNpemVJbkJ5dGVzKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAKaW5kZXggOWEyYjYy
Zi4uOTk0YjgwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRh
dGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2Uu
Y3BwCkBAIC0xMzM1LDcgKzEzMzUsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6c3luY1RocmVhZE1h
aW5Mb29wKCkKIAogICAgIG1fc3luY0xvY2subG9jaygpOwogCi0gICAgc3RkOjp1bmlxdWVfcHRy
PFN1ZGRlblRlcm1pbmF0aW9uRGlzYWJsZXI+IGRpc2FibGVTdWRkZW5UZXJtaW5hdGlvbiA9IHN0
ZDo6bW92ZShtX2Rpc2FibGVTdWRkZW5UZXJtaW5hdGlvbldoaWxlU3luY1RocmVhZEhhc1dvcmtU
b0RvKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3VkZGVuVGVybWluYXRpb25EaXNhYmxlcj4gZGlz
YWJsZVN1ZGRlblRlcm1pbmF0aW9uID0gV1RGOjptb3ZlKG1fZGlzYWJsZVN1ZGRlblRlcm1pbmF0
aW9uV2hpbGVTeW5jVGhyZWFkSGFzV29ya1RvRG8pOwogCiAgICAgLy8gV2UnbGwgZWl0aGVyIGRv
IGFueSBwZW5kaW5nIHdvcmsgb24gb3VyIGZpcnN0IHBhc3MgdGhyb3VnaCB0aGUgbG9vcCwgb3Ig
d2UnbGwgdGVybWluYXRlCiAgICAgLy8gd2l0aG91dCBkb2luZyBhbnkgd29yay4gRWl0aGVyIHdh
eSB3ZSdyZSBkZWFsaW5nIHdpdGggYW55IGN1cnJlbnRseS1wZW5kaW5nIHdvcmsuCkBAIC0xNDIz
LDcgKzE0MjMsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6c3luY1RocmVhZE1haW5Mb29wKCkKICAg
ICAgICAgbV9zeW5jVGhyZWFkSGFzV29ya1RvRG8gPSBmYWxzZTsKIAogICAgICAgICBBU1NFUlQo
bV9kaXNhYmxlU3VkZGVuVGVybWluYXRpb25XaGlsZVN5bmNUaHJlYWRIYXNXb3JrVG9Ebyk7Ci0g
ICAgICAgIGRpc2FibGVTdWRkZW5UZXJtaW5hdGlvbiA9IHN0ZDo6bW92ZShtX2Rpc2FibGVTdWRk
ZW5UZXJtaW5hdGlvbldoaWxlU3luY1RocmVhZEhhc1dvcmtUb0RvKTsKKyAgICAgICAgZGlzYWJs
ZVN1ZGRlblRlcm1pbmF0aW9uID0gV1RGOjptb3ZlKG1fZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9u
V2hpbGVTeW5jVGhyZWFkSGFzV29ya1RvRG8pOwogICAgIH0KIAogICAgIG1fc3luY0xvY2sudW5s
b2NrKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MSW5saW5lQ29u
dGFpbmVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MSW5saW5lQ29u
dGFpbmVyRWxlbWVudC5jcHAKaW5kZXggYTQxNDRlYy4uZTU4MzAzNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmNwcApA
QCAtNzIsMzUgKzcyLDM1IEBAIHZvaWQgTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudDo6Y2hp
bGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiBSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewogICAgIGlmIChoYXNUYWdOYW1lKGFu
bm90YXRpb25feG1sVGFnKSkKLSAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1h
dGhNTFJvdz4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4gY3JlYXRl
UmVuZGVyZXI8UmVuZGVyTWF0aE1MUm93PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiAgICAg
aWYgKGhhc1RhZ05hbWUobWVycm9yVGFnKSB8fCBoYXNUYWdOYW1lKG1waGFudG9tVGFnKSB8fCBo
YXNUYWdOYW1lKG1yb3dUYWcpIHx8IGhhc1RhZ05hbWUobXN0eWxlVGFnKSkKLSAgICAgICAgcmV0
dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTFJvdz4oKnRoaXMsIHN0ZDo6bW92ZShzdHls
ZSkpOworICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MUm93PigqdGhp
cywgV1RGOjptb3ZlKHN0eWxlKSk7CiAgICAgaWYgKGhhc1RhZ05hbWUobXN1YlRhZykpCi0gICAg
ICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxTY3JpcHRzPigqdGhpcywgc3Rk
Ojptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRo
TUxTY3JpcHRzPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiAgICAgaWYgKGhhc1RhZ05hbWUo
bXN1cFRhZykpCi0gICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxTY3Jp
cHRzPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBjcmVhdGVSZW5k
ZXJlcjxSZW5kZXJNYXRoTUxTY3JpcHRzPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiAgICAg
aWYgKGhhc1RhZ05hbWUobXN1YnN1cFRhZykpCi0gICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJl
cjxSZW5kZXJNYXRoTUxTY3JpcHRzPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAg
IHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxTY3JpcHRzPigqdGhpcywgV1RGOjpt
b3ZlKHN0eWxlKSk7CiAgICAgaWYgKGhhc1RhZ05hbWUobW11bHRpc2NyaXB0c1RhZykpCi0gICAg
ICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxTY3JpcHRzPigqdGhpcywgc3Rk
Ojptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRo
TUxTY3JpcHRzPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiAgICAgaWYgKGhhc1RhZ05hbWUo
bW92ZXJUYWcpKQotICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MVW5k
ZXJPdmVyPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBjcmVhdGVS
ZW5kZXJlcjxSZW5kZXJNYXRoTUxVbmRlck92ZXI+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsK
ICAgICBpZiAoaGFzVGFnTmFtZShtdW5kZXJUYWcpKQotICAgICAgICByZXR1cm4gY3JlYXRlUmVu
ZGVyZXI8UmVuZGVyTWF0aE1MVW5kZXJPdmVyPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7Cisg
ICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxVbmRlck92ZXI+KCp0aGlz
LCBXVEY6Om1vdmUoc3R5bGUpKTsKICAgICBpZiAoaGFzVGFnTmFtZShtdW5kZXJvdmVyVGFnKSkK
LSAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTFVuZGVyT3Zlcj4oKnRo
aXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVu
ZGVyTWF0aE1MVW5kZXJPdmVyPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiAgICAgaWYgKGhh
c1RhZ05hbWUobWZyYWNUYWcpKQotICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVy
TWF0aE1MRnJhY3Rpb24+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJu
IGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTEZyYWN0aW9uPigqdGhpcywgV1RGOjptb3ZlKHN0
eWxlKSk7CiAgICAgaWYgKGhhc1RhZ05hbWUobXNxcnRUYWcpKQotICAgICAgICByZXR1cm4gY3Jl
YXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MU3F1YXJlUm9vdD4oKnRoaXMsIHN0ZDo6bW92ZShzdHls
ZSkpOworICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MU3F1YXJlUm9v
dD4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogICAgIGlmIChoYXNUYWdOYW1lKG1yb290VGFn
KSkKLSAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTFJvb3Q+KCp0aGlz
LCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRl
ck1hdGhNTFJvb3Q+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKICAgICBpZiAoaGFzVGFnTmFt
ZShtZmVuY2VkVGFnKSkKLSAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhN
TEZlbmNlZD4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4gY3JlYXRl
UmVuZGVyZXI8UmVuZGVyTWF0aE1MRmVuY2VkPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiAg
ICAgaWYgKGhhc1RhZ05hbWUobXRhYmxlVGFnKSkKLSAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRl
cmVyPFJlbmRlck1hdGhNTFRhYmxlPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAg
IHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxUYWJsZT4oKnRoaXMsIFdURjo6bW92
ZShzdHlsZSkpOwogCi0gICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTEJsb2Nr
PigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJl
bmRlck1hdGhNTEJsb2NrPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuY3BwCmluZGV4IDZmMmYzODkuLjgy
YjNjZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmNwcApA
QCAtNTMsNyArNTMsNyBAQCBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IE1hdGhN
TE1hdGhFbGVtZW50OjppbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZQogCiBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gTWF0aE1MTWF0aEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNz
UmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVu
ZGVyTWF0aE1MTWF0aD4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVh
dGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxNYXRoPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNZW5jbG9zZUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5j
cHAKaW5kZXggNDAxM2Q4OC4uZDJmOWU0YSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1s
L01hdGhNTE1lbmNsb3NlRWxlbWVudC5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgUGFzc1JlZlB0cjxN
YXRoTUxNZW5jbG9zZUVsZW1lbnQ+IE1hdGhNTE1lbmNsb3NlRWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmllZE4KIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1hdGhNTE1lbmNsb3NlRWxl
bWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQog
eyAgICAKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MTWVuY2xvc2U+KCp0
aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVy
TWF0aE1MTWVuY2xvc2U+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogYm9vbCBNYXRo
TUxNZW5jbG9zZUVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0
aE1MU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0
RWxlbWVudC5jcHAKaW5kZXggMzI2ZWExMi4uYjMzNGY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtNTMsNyArNTMsNyBAQCBQYXNzUmVm
UHRyPE1hdGhNTFNlbGVjdEVsZW1lbnQ+IE1hdGhNTFNlbGVjdEVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJgogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWF0aE1MU2VsZWN0
RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxl
KQogewotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxSb3c+KCp0aGlzLCBz
dGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1M
Um93PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAKIC8vICBXZSByZWNvZ25pemUgdGhl
IGZvbGxvd2luZyB2YWx1ZXMgZm9yIHRoZSBlbmNvZGluZyBhdHRyaWJ1dGUgb2YgdGhlIDxzZW1h
bnRpY3M+IGVsZW1lbnQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1M
VGV4dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50
LmNwcAppbmRleCAxMGUzMDg3Li4yMjM4M2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9t
YXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9N
YXRoTUxUZXh0RWxlbWVudC5jcHAKQEAgLTY3LDE1ICs2NywxNSBAQCB2b2lkIE1hdGhNTFRleHRF
bGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKIFJlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxUZXh0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewogICAgIGlmIChoYXNUYWdOYW1lKE1h
dGhNTE5hbWVzOjptb1RhZykpCi0gICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJN
YXRoTUxPcGVyYXRvcj4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4g
Y3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MT3BlcmF0b3I+KCp0aGlzLCBXVEY6Om1vdmUoc3R5
bGUpKTsKICAgICBpZiAoaGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bXNwYWNlVGFnKSkKLSAgICAg
ICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTFNwYWNlPigqdGhpcywgc3RkOjpt
b3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxT
cGFjZT4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogICAgIGlmIChoYXNUYWdOYW1lKE1hdGhN
TE5hbWVzOjphbm5vdGF0aW9uVGFnKSkKLSAgICAgICAgcmV0dXJuIE1hdGhNTEVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIE1h
dGhNTEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihXVEY6Om1vdmUoc3R5bGUpKTsKIAog
ICAgIEFTU0VSVChoYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptaVRhZykgfHwgaGFzVGFnTmFtZShN
YXRoTUxOYW1lczo6bW5UYWcpIHx8IGhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6Om1zVGFnKSB8fCBo
YXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptdGV4dFRhZykpOwogCi0gICAgcmV0dXJuIGNyZWF0ZVJl
bmRlcmVyPFJlbmRlck1hdGhNTFRva2VuPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAg
cmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTFRva2VuPigqdGhpcywgV1RGOjptb3Zl
KHN0eWxlKSk7CiB9CiAKIGJvb2wgTWF0aE1MVGV4dEVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRl
UmVuZGVyZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVRpbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3Bw
CmluZGV4IDczZjcyMDcuLjA3MTI1NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NVGltZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCkBAIC02
MSw3ICs2MSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzaG91bGRGb3J3YXJkVXNlckdlc3R1cmUo
aW50IGludGVydmFsLCBpbnQgbmVzdGluZ0xldmVsKQogRE9NVGltZXI6OkRPTVRpbWVyKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rp
b24+IGFjdGlvbiwgaW50IGludGVydmFsLCBib29sIHNpbmdsZVNob3QpCiAgICAgOiBTdXNwZW5k
YWJsZVRpbWVyKGNvbnRleHQpCiAgICAgLCBtX25lc3RpbmdMZXZlbCh0aW1lck5lc3RpbmdMZXZl
bCArIDEpCi0gICAgLCBtX2FjdGlvbihzdGQ6Om1vdmUoYWN0aW9uKSkKKyAgICAsIG1fYWN0aW9u
KFdURjo6bW92ZShhY3Rpb24pKQogICAgICwgbV9vcmlnaW5hbEludGVydmFsKGludGVydmFsKQog
ICAgICwgbV9zaG91bGRGb3J3YXJkVXNlckdlc3R1cmUoc2hvdWxkRm9yd2FyZFVzZXJHZXN0dXJl
KGludGVydmFsLCBtX25lc3RpbmdMZXZlbCkpCiB7CkBAIC04OCw3ICs4OCw3IEBAIGludCBET01U
aW1lcjo6aW5zdGFsbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBzdGQ6OnVuaXF1
ZV9wdHI8U2NoZWR1bGVkCiAgICAgLy8gRE9NVGltZXIgY29uc3RydWN0b3IgbGlua3MgdGhlIG5l
dyB0aW1lciBpbnRvIGEgbGlzdCBvZiBBY3RpdmVET01PYmplY3RzIGhlbGQgYnkgdGhlICdjb250
ZXh0Jy4KICAgICAvLyBUaGUgdGltZXIgaXMgZGVsZXRlZCB3aGVuIGNvbnRleHQgaXMgZGVsZXRl
ZCAoRE9NVGltZXI6OmNvbnRleHREZXN0cm95ZWQpIG9yIGV4cGxpY2l0bHkgdmlhIERPTVRpbWVy
OjpyZW1vdmVCeUlkKCksCiAgICAgLy8gb3IgaWYgaXQgaXMgYSBvbmUtdGltZSB0aW1lciBhbmQg
aXQgaGFzIGZpcmVkIChET01UaW1lcjo6ZmlyZWQpLgotICAgIERPTVRpbWVyKiB0aW1lciA9IG5l
dyBET01UaW1lcihjb250ZXh0LCBzdGQ6Om1vdmUoYWN0aW9uKSwgdGltZW91dCwgc2luZ2xlU2hv
dCk7CisgICAgRE9NVGltZXIqIHRpbWVyID0gbmV3IERPTVRpbWVyKGNvbnRleHQsIFdURjo6bW92
ZShhY3Rpb24pLCB0aW1lb3V0LCBzaW5nbGVTaG90KTsKICNpZiBQTEFURk9STShJT1MpCiAgICAg
aWYgKGNvbnRleHQtPmlzRG9jdW1lbnQoKSkgewogICAgICAgICBEb2N1bWVudCYgZG9jdW1lbnQg
PSB0b0RvY3VtZW50KCpjb250ZXh0KTsKQEAgLTE1Nyw3ICsxNTcsNyBAQCB2b2lkIERPTVRpbWVy
OjpmaXJlZCgpCiAgICAgfQogCiAgICAgLy8gRGVsZXRlIHRpbWVyIGJlZm9yZSBleGVjdXRpbmcg
dGhlIGFjdGlvbiBmb3Igb25lLXNob3QgdGltZXJzLgotICAgIHN0ZDo6dW5pcXVlX3B0cjxTY2hl
ZHVsZWRBY3Rpb24+IGFjdGlvbiA9IHN0ZDo6bW92ZShtX2FjdGlvbik7CisgICAgc3RkOjp1bmlx
dWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uID0gV1RGOjptb3ZlKG1fYWN0aW9uKTsKIAog
ICAgIC8vIE5vIGFjY2VzcyB0byBtZW1iZXIgdmFyaWFibGVzIGFmdGVyIHRoaXMgcG9pbnQuCiAg
ICAgZGVsZXRlIHRoaXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggMGU0ZTBlNS4u
ODNhZmY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMTQyLDcgKzE0Miw3IEBA
IHB1YmxpYzoKICAgICAgICAgLCBtX21lc3NhZ2UobWVzc2FnZSkKICAgICAgICAgLCBtX29yaWdp
bihzb3VyY2VPcmlnaW4pCiAgICAgICAgICwgbV9zb3VyY2Uoc291cmNlKQotICAgICAgICAsIG1f
Y2hhbm5lbHMoc3RkOjptb3ZlKGNoYW5uZWxzKSkKKyAgICAgICAgLCBtX2NoYW5uZWxzKFdURjo6
bW92ZShjaGFubmVscykpCiAgICAgICAgICwgbV90YXJnZXRPcmlnaW4odGFyZ2V0T3JpZ2luKQog
ICAgICAgICAsIG1fc3RhY2tUcmFjZShzdGFja1RyYWNlKQogICAgIHsKQEAgLTE1MCw4ICsxNTAs
OCBAQCBwdWJsaWM6CiAKICAgICBQYXNzUmVmUHRyPE1lc3NhZ2VFdmVudD4gZXZlbnQoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKICAgICB7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjxNZXNzYWdlUG9ydEFycmF5PiBtZXNzYWdlUG9ydHMgPSBNZXNzYWdlUG9ydDo6ZW50YW5nbGVQ
b3J0cygqY29udGV4dCwgc3RkOjptb3ZlKG1fY2hhbm5lbHMpKTsKLSAgICAgICAgcmV0dXJuIE1l
c3NhZ2VFdmVudDo6Y3JlYXRlKHN0ZDo6bW92ZShtZXNzYWdlUG9ydHMpLCBtX21lc3NhZ2UsIG1f
b3JpZ2luLCBTdHJpbmcoKSwgbV9zb3VyY2UpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVz
c2FnZVBvcnRBcnJheT4gbWVzc2FnZVBvcnRzID0gTWVzc2FnZVBvcnQ6OmVudGFuZ2xlUG9ydHMo
KmNvbnRleHQsIFdURjo6bW92ZShtX2NoYW5uZWxzKSk7CisgICAgICAgIHJldHVybiBNZXNzYWdl
RXZlbnQ6OmNyZWF0ZShXVEY6Om1vdmUobWVzc2FnZVBvcnRzKSwgbV9tZXNzYWdlLCBtX29yaWdp
biwgU3RyaW5nKCksIG1fc291cmNlKTsKICAgICB9CiAgICAgU2VjdXJpdHlPcmlnaW4qIHRhcmdl
dE9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0T3JpZ2luLmdldCgpOyB9CiAgICAgU2Ny
aXB0Q2FsbFN0YWNrKiBzdGFja1RyYWNlKCkgY29uc3QgeyByZXR1cm4gbV9zdGFja1RyYWNlLmdl
dCgpOyB9CkBAIC04ODIsNyArODgyLDcgQEAgdm9pZCBET01XaW5kb3c6OnBvc3RNZXNzYWdlKFBh
c3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBjb25zdCBNZXMKICAgICAg
ICAgc3RhY2tUcmFjZSA9IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhKU01haW5UaHJlYWRFeGVjU3Rh
dGU6OmN1cnJlbnRTdGF0ZSgpLCBTY3JpcHRDYWxsU3RhY2s6Om1heENhbGxTdGFja1NpemVUb0Nh
cHR1cmUpOwogCiAgICAgLy8gU2NoZWR1bGUgdGhlIG1lc3NhZ2UuCi0gICAgUG9zdE1lc3NhZ2VU
aW1lciogdGltZXIgPSBuZXcgUG9zdE1lc3NhZ2VUaW1lcih0aGlzLCBtZXNzYWdlLCBzb3VyY2VP
cmlnaW4sICZzb3VyY2UsIHN0ZDo6bW92ZShjaGFubmVscyksIHRhcmdldC5nZXQoKSwgc3RhY2tU
cmFjZS5yZWxlYXNlKCkpOworICAgIFBvc3RNZXNzYWdlVGltZXIqIHRpbWVyID0gbmV3IFBvc3RN
ZXNzYWdlVGltZXIodGhpcywgbWVzc2FnZSwgc291cmNlT3JpZ2luLCAmc291cmNlLCBXVEY6Om1v
dmUoY2hhbm5lbHMpLCB0YXJnZXQuZ2V0KCksIHN0YWNrVHJhY2UucmVsZWFzZSgpKTsKICAgICB0
aW1lci0+c3RhcnRPbmVTaG90KDApOwogfQogCkBAIC0xNTczLDcgKzE1NzMsNyBAQCBpbnQgRE9N
V2luZG93OjpzZXRUaW1lb3V0KHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlv
biwgaW50IHRpbWVvdXQsCiAgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwogICAgICAg
ICByZXR1cm4gLTE7CiAgICAgfQotICAgIHJldHVybiBET01UaW1lcjo6aW5zdGFsbChjb250ZXh0
LCBzdGQ6Om1vdmUoYWN0aW9uKSwgdGltZW91dCwgdHJ1ZSk7CisgICAgcmV0dXJuIERPTVRpbWVy
OjppbnN0YWxsKGNvbnRleHQsIFdURjo6bW92ZShhY3Rpb24pLCB0aW1lb3V0LCB0cnVlKTsKIH0K
IAogdm9pZCBET01XaW5kb3c6OmNsZWFyVGltZW91dChpbnQgdGltZW91dElkKQpAQCAtMTYwNyw3
ICsxNjA3LDcgQEAgaW50IERPTVdpbmRvdzo6c2V0SW50ZXJ2YWwoc3RkOjp1bmlxdWVfcHRyPFNj
aGVkdWxlZEFjdGlvbj4gYWN0aW9uLCBpbnQgdGltZW91dCwKICAgICAgICAgZWMgPSBJTlZBTElE
X0FDQ0VTU19FUlI7CiAgICAgICAgIHJldHVybiAtMTsKICAgICB9Ci0gICAgcmV0dXJuIERPTVRp
bWVyOjppbnN0YWxsKGNvbnRleHQsIHN0ZDo6bW92ZShhY3Rpb24pLCB0aW1lb3V0LCBmYWxzZSk7
CisgICAgcmV0dXJuIERPTVRpbWVyOjppbnN0YWxsKGNvbnRleHQsIFdURjo6bW92ZShhY3Rpb24p
LCB0aW1lb3V0LCBmYWxzZSk7CiB9CiAKIHZvaWQgRE9NV2luZG93OjpjbGVhckludGVydmFsKGlu
dCB0aW1lb3V0SWQpCkBAIC0yMTU4LDcgKzIxNTgsNyBAQCB2b2lkIERPTVdpbmRvdzo6c2hvd01v
ZGFsRGlhbG9nKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRpYWxvZ0Zl
YQogICAgICAgICByZXR1cm47CiAKICAgICBXaW5kb3dGZWF0dXJlcyB3aW5kb3dGZWF0dXJlcyhk
aWFsb2dGZWF0dXJlc1N0cmluZywgc2NyZWVuQXZhaWxhYmxlUmVjdChtX2ZyYW1lLT52aWV3KCkp
KTsKLSAgICBSZWZQdHI8RnJhbWU+IGRpYWxvZ0ZyYW1lID0gY3JlYXRlV2luZG93KHVybFN0cmlu
ZywgZW1wdHlBdG9tLCB3aW5kb3dGZWF0dXJlcywgYWN0aXZlV2luZG93LCBmaXJzdEZyYW1lLCBt
X2ZyYW1lLCBzdGQ6Om1vdmUocHJlcGFyZURpYWxvZ0Z1bmN0aW9uKSk7CisgICAgUmVmUHRyPEZy
YW1lPiBkaWFsb2dGcmFtZSA9IGNyZWF0ZVdpbmRvdyh1cmxTdHJpbmcsIGVtcHR5QXRvbSwgd2lu
ZG93RmVhdHVyZXMsIGFjdGl2ZVdpbmRvdywgZmlyc3RGcmFtZSwgbV9mcmFtZSwgV1RGOjptb3Zl
KHByZXBhcmVEaWFsb2dGdW5jdGlvbikpOwogICAgIGlmICghZGlhbG9nRnJhbWUpCiAgICAgICAg
IHJldHVybjsKICAgICBkaWFsb2dGcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS5ydW5Nb2RhbCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAKaW5kZXggY2I3MmU2Yy4uMzhiYjQ1MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
CkBAIC0xOTcsOCArMTk3LDggQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMp
CiAjZW5kaWYKICAgICAsIG1fbGFzdFNwYXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRlc0NvdW50KDAp
IC8vIE5PVEU6IE9ubHkgY2FsbGVkIGZyb20gSW50ZXJuYWxzIGZvciBTcGF0aWFsIE5hdmlnYXRp
b24gdGVzdGluZy4KICAgICAsIG1fZnJhbWVzSGFuZGxpbmdCZWZvcmVVbmxvYWRFdmVudCgwKQot
ICAgICwgbV91c2VyQ29udGVudENvbnRyb2xsZXIoc3RkOjptb3ZlKHBhZ2VDbGllbnRzLnVzZXJD
b250ZW50Q29udHJvbGxlcikpCi0gICAgLCBtX3Zpc2l0ZWRMaW5rU3RvcmUoc3RkOjptb3ZlKHBh
Z2VDbGllbnRzLnZpc2l0ZWRMaW5rU3RvcmUpKQorICAgICwgbV91c2VyQ29udGVudENvbnRyb2xs
ZXIoV1RGOjptb3ZlKHBhZ2VDbGllbnRzLnVzZXJDb250ZW50Q29udHJvbGxlcikpCisgICAgLCBt
X3Zpc2l0ZWRMaW5rU3RvcmUoV1RGOjptb3ZlKHBhZ2VDbGllbnRzLnZpc2l0ZWRMaW5rU3RvcmUp
KQogICAgICwgbV9zZXNzaW9uSUQoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpCiB7CiAg
ICAgQVNTRVJUKG1fZWRpdG9yQ2xpZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZUdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcAppbmRl
eCAzN2E2Yzk4Li4wZTcxZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VH
cm91cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCkBAIC0yODks
MTMgKzI4OSwxMyBAQCBTdG9yYWdlTmFtZXNwYWNlKiBQYWdlR3JvdXA6OnRyYW5zaWVudExvY2Fs
U3RvcmFnZShTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKQogdm9pZCBQYWdlR3JvdXA6OmFkZFVz
ZXJTY3JpcHRUb1dvcmxkKERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIGNvbnN0IFN0cmluZyYgc291
cmNlLCBjb25zdCBVUkwmIHVybCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHdoaXRlbGlzdCwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIGJsYWNrbGlzdCwgVXNlclNjcmlwdEluamVjdGlvblRpbWUgaW5q
ZWN0aW9uVGltZSwgVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcykKIHsK
ICAgICBhdXRvIHVzZXJTY3JpcHQgPSBzdGQ6Om1ha2VfdW5pcXVlPFVzZXJTY3JpcHQ+KHNvdXJj
ZSwgdXJsLCB3aGl0ZWxpc3QsIGJsYWNrbGlzdCwgaW5qZWN0aW9uVGltZSwgaW5qZWN0ZWRGcmFt
ZXMpOwotICAgIG1fdXNlckNvbnRlbnRDb250cm9sbGVyLT5hZGRVc2VyU2NyaXB0KHdvcmxkLCBz
dGQ6Om1vdmUodXNlclNjcmlwdCkpOworICAgIG1fdXNlckNvbnRlbnRDb250cm9sbGVyLT5hZGRV
c2VyU2NyaXB0KHdvcmxkLCBXVEY6Om1vdmUodXNlclNjcmlwdCkpOwogfQogCiB2b2lkIFBhZ2VH
cm91cDo6YWRkVXNlclN0eWxlU2hlZXRUb1dvcmxkKERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIGNv
bnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBVUkwmIHVybCwgY29uc3QgVmVjdG9yPFN0cmluZz4m
IHdoaXRlbGlzdCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsYWNrbGlzdCwgVXNlckNvbnRlbnRJ
bmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcywgVXNlclN0eWxlTGV2ZWwgbGV2ZWwsIFVzZXJT
dHlsZUluamVjdGlvblRpbWUgaW5qZWN0aW9uVGltZSkKIHsKICAgICBhdXRvIHVzZXJTdHlsZVNo
ZWV0ID0gc3RkOjptYWtlX3VuaXF1ZTxVc2VyU3R5bGVTaGVldD4oc291cmNlLCB1cmwsIHdoaXRl
bGlzdCwgYmxhY2tsaXN0LCBpbmplY3RlZEZyYW1lcywgbGV2ZWwpOwotICAgIG1fdXNlckNvbnRl
bnRDb250cm9sbGVyLT5hZGRVc2VyU3R5bGVTaGVldCh3b3JsZCwgc3RkOjptb3ZlKHVzZXJTdHls
ZVNoZWV0KSwgaW5qZWN0aW9uVGltZSk7CisgICAgbV91c2VyQ29udGVudENvbnRyb2xsZXItPmFk
ZFVzZXJTdHlsZVNoZWV0KHdvcmxkLCBXVEY6Om1vdmUodXNlclN0eWxlU2hlZXQpLCBpbmplY3Rp
b25UaW1lKTsKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250
ZW50Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50Q29udHJv
bGxlci5jcHAKaW5kZXggNDNmZDk0Zi4uZjZhOWQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Vc2VyQ29udGVudENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvVXNlckNvbnRlbnRDb250cm9sbGVyLmNwcApAQCAtNzIsNyArNzIsNyBAQCB2b2lkIFVzZXJD
b250ZW50Q29udHJvbGxlcjo6YWRkVXNlclNjcmlwdChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBz
dGQ6OnVuaXF1ZV9wdAogICAgIGF1dG8mIHNjcmlwdHNJbldvcmxkID0gbV91c2VyU2NyaXB0cy0+
YWRkKCZ3b3JsZCwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOwogICAgIGlmICghc2NyaXB0c0lu
V29ybGQpCiAgICAgICAgIHNjcmlwdHNJbldvcmxkID0gc3RkOjptYWtlX3VuaXF1ZTxVc2VyU2Ny
aXB0VmVjdG9yPigpOwotICAgIHNjcmlwdHNJbldvcmxkLT5hcHBlbmQoc3RkOjptb3ZlKHVzZXJT
Y3JpcHQpKTsKKyAgICBzY3JpcHRzSW5Xb3JsZC0+YXBwZW5kKFdURjo6bW92ZSh1c2VyU2NyaXB0
KSk7CiB9CiAKIHZvaWQgVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVVc2VyU2NyaXB0KERP
TVdyYXBwZXJXb3JsZCYgd29ybGQsIGNvbnN0IFVSTCYgdXJsKQpAQCAtMTEwLDcgKzExMCw3IEBA
IHZvaWQgVXNlckNvbnRlbnRDb250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldChET01XcmFwcGVy
V29ybGQmIHdvcmxkLCBzdGQ6OnVuaXF1CiAgICAgYXV0byYgc3R5bGVTaGVldHNJbldvcmxkID0g
bV91c2VyU3R5bGVTaGVldHMtPmFkZCgmd29ybGQsIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsK
ICAgICBpZiAoIXN0eWxlU2hlZXRzSW5Xb3JsZCkKICAgICAgICAgc3R5bGVTaGVldHNJbldvcmxk
ID0gc3RkOjptYWtlX3VuaXF1ZTxVc2VyU3R5bGVTaGVldFZlY3Rvcj4oKTsKLSAgICBzdHlsZVNo
ZWV0c0luV29ybGQtPmFwcGVuZChzdGQ6Om1vdmUodXNlclN0eWxlU2hlZXQpKTsKKyAgICBzdHls
ZVNoZWV0c0luV29ybGQtPmFwcGVuZChXVEY6Om1vdmUodXNlclN0eWxlU2hlZXQpKTsKIAogICAg
IGlmIChpbmplY3Rpb25UaW1lID09IEluamVjdEluRXhpc3RpbmdEb2N1bWVudHMpCiAgICAgICAg
IGludmFsaWRhdGVJbmplY3RlZFN0eWxlU2hlZXRDYWNoZUluQWxsRnJhbWVzKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
CmluZGV4IDc0NmQ1ZTUuLjlkMmI1NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0xNjcsNyArMTY3LDcgQEAg
dm9pZCBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6ZmlyZUV2ZW50c0FuZFVwZGF0ZVN0eWxl
KCkKICAgICBib29sIHVwZGF0ZVN0eWxlID0gIW1fZXZlbnRzVG9EaXNwYXRjaC5pc0VtcHR5KCkg
fHwgIW1fZWxlbWVudENoYW5nZXNUb0Rpc3BhdGNoLmlzRW1wdHkoKTsKIAogICAgIC8vIGZpcmUg
YWxsIHRoZSBldmVudHMKLSAgICBWZWN0b3I8RXZlbnRUb0Rpc3BhdGNoPiBldmVudHNUb0Rpc3Bh
dGNoID0gc3RkOjptb3ZlKG1fZXZlbnRzVG9EaXNwYXRjaCk7CisgICAgVmVjdG9yPEV2ZW50VG9E
aXNwYXRjaD4gZXZlbnRzVG9EaXNwYXRjaCA9IFdURjo6bW92ZShtX2V2ZW50c1RvRGlzcGF0Y2gp
OwogICAgIFZlY3RvcjxFdmVudFRvRGlzcGF0Y2g+Ojpjb25zdF9pdGVyYXRvciBldmVudHNUb0Rp
c3BhdGNoRW5kID0gZXZlbnRzVG9EaXNwYXRjaC5lbmQoKTsKICAgICBmb3IgKFZlY3RvcjxFdmVu
dFRvRGlzcGF0Y2g+Ojpjb25zdF9pdGVyYXRvciBpdCA9IGV2ZW50c1RvRGlzcGF0Y2guYmVnaW4o
KTsgaXQgIT0gZXZlbnRzVG9EaXNwYXRjaEVuZDsgKytpdCkgewogICAgICAgICBFbGVtZW50KiBl
bGVtZW50ID0gaXQtPmVsZW1lbnQuZ2V0KCk7CkBAIC0yMDYsNyArMjA2LDcgQEAgdm9pZCBBbmlt
YXRpb25Db250cm9sbGVyUHJpdmF0ZTo6YWRkRXZlbnRUb0Rpc3BhdGNoKFBhc3NSZWZQdHI8RWxl
bWVudD4gZWxlbWVudCwKIAogdm9pZCBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6YWRkRWxl
bWVudENoYW5nZVRvRGlzcGF0Y2goUGFzc1JlZjxFbGVtZW50PiBlbGVtZW50KQogewotICAgIG1f
ZWxlbWVudENoYW5nZXNUb0Rpc3BhdGNoLmFwcGVuZChzdGQ6Om1vdmUoZWxlbWVudCkpOworICAg
IG1fZWxlbWVudENoYW5nZXNUb0Rpc3BhdGNoLmFwcGVuZChXVEY6Om1vdmUoZWxlbWVudCkpOwog
ICAgIEFTU0VSVCghbV9lbGVtZW50Q2hhbmdlc1RvRGlzcGF0Y2gubGFzdCgpLT5kb2N1bWVudCgp
LmluUGFnZUNhY2hlKCkpOwogICAgIHN0YXJ0VXBkYXRlU3R5bGVJZk5lZWRlZERpc3BhdGNoZXIo
KTsKIH0KQEAgLTUwOCw3ICs1MDgsNyBAQCBQYXNzUmVmPFJlbmRlclN0eWxlPiBBbmltYXRpb25D
b250cm9sbGVyOjp1cGRhdGVBbmltYXRpb25zKFJlbmRlckVsZW1lbnQmIHJlbmRlcgogICAgIC8v
IFdlIGRvbid0IHN1cHBvcnQgYW5vbnltb3VzIHBzZXVkbyBlbGVtZW50cyBsaWtlIDpmaXJzdC1s
aW5lIG9yIDpmaXJzdC1sZXR0ZXIuCiAgICAgQVNTRVJUKHJlbmRlcmVyLmVsZW1lbnQoKSk7CiAK
LSAgICBSZWY8UmVuZGVyU3R5bGU+IG5ld1N0eWxlQmVmb3JlQW5pbWF0aW9uKHN0ZDo6bW92ZShu
ZXdTdHlsZSkpOworICAgIFJlZjxSZW5kZXJTdHlsZT4gbmV3U3R5bGVCZWZvcmVBbmltYXRpb24o
V1RGOjptb3ZlKG5ld1N0eWxlKSk7CiAKICAgICBDb21wb3NpdGVBbmltYXRpb24mIHJlbmRlcmVy
QW5pbWF0aW9ucyA9IG1fZGF0YS0+ZW5zdXJlQ29tcG9zaXRlQW5pbWF0aW9uKCZyZW5kZXJlcik7
CiAgICAgYXV0byBibGVuZGVkU3R5bGUgPSByZW5kZXJlckFuaW1hdGlvbnMuYW5pbWF0ZShyZW5k
ZXJlciwgb2xkU3R5bGUsIG5ld1N0eWxlQmVmb3JlQW5pbWF0aW9uLmdldCgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNw
cAppbmRleCBmMzY4NWUxLi41ZTZlZjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCkBAIC0yMjAsOSArMjIwLDkg
QEAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGJsZW5kRmlsdGVyKGNvbnN0
IEFuaW1hdGlvbkJhc2UqIGFuaW0sIENhY2gKICAgICBhdXRvIGltYWdlVmFsdWUgPSBDU1NJbWFn
ZVZhbHVlOjpjcmVhdGUoaW1hZ2UtPnVybCgpLCBzdHlsZWRJbWFnZS5nZXQoKSk7CiAgICAgYXV0
byBmaWx0ZXJWYWx1ZSA9IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9yRmlsdGVyKCZh
bmltLT5yZW5kZXJlcigpLT5zdHlsZSgpLCBmaWx0ZXJSZXN1bHQsIERvTm90QWRqdXN0UGl4ZWxW
YWx1ZXMpOwogCi0gICAgYXV0byByZXN1bHQgPSBDU1NGaWx0ZXJJbWFnZVZhbHVlOjpjcmVhdGUo
c3RkOjptb3ZlKGltYWdlVmFsdWUpLCBzdGQ6Om1vdmUoZmlsdGVyVmFsdWUpKTsKKyAgICBhdXRv
IHJlc3VsdCA9IENTU0ZpbHRlckltYWdlVmFsdWU6OmNyZWF0ZShXVEY6Om1vdmUoaW1hZ2VWYWx1
ZSksIFdURjo6bW92ZShmaWx0ZXJWYWx1ZSkpOwogICAgIHJlc3VsdC5nZXQoKS5zZXRGaWx0ZXJP
cGVyYXRpb25zKGZpbHRlclJlc3VsdCk7Ci0gICAgcmV0dXJuIFN0eWxlR2VuZXJhdGVkSW1hZ2U6
OmNyZWF0ZShzdGQ6Om1vdmUocmVzdWx0KSk7CisgICAgcmV0dXJuIFN0eWxlR2VuZXJhdGVkSW1h
Z2U6OmNyZWF0ZShXVEY6Om1vdmUocmVzdWx0KSk7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKENTU19G
SUxURVJTKQogCkBAIC0yODQsOSArMjg0LDkgQEAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFN0
eWxlSW1hZ2U+IGNyb3NzZmFkZUJsZW5kKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBTdHlsZUMKICAg
ICBhdXRvIGZyb21JbWFnZVZhbHVlID0gQ1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKGZyb21TdHlsZUlt
YWdlLT5jYWNoZWRJbWFnZSgpLT51cmwoKSwgZnJvbVN0eWxlSW1hZ2UpOwogICAgIGF1dG8gdG9J
bWFnZVZhbHVlID0gQ1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKHRvU3R5bGVJbWFnZS0+Y2FjaGVkSW1h
Z2UoKS0+dXJsKCksIHRvU3R5bGVJbWFnZSk7CiAKLSAgICBhdXRvIGNyb3NzZmFkZVZhbHVlID0g
Q1NTQ3Jvc3NmYWRlVmFsdWU6OmNyZWF0ZShzdGQ6Om1vdmUoZnJvbUltYWdlVmFsdWUpLCBzdGQ6
Om1vdmUodG9JbWFnZVZhbHVlKSk7CisgICAgYXV0byBjcm9zc2ZhZGVWYWx1ZSA9IENTU0Nyb3Nz
ZmFkZVZhbHVlOjpjcmVhdGUoV1RGOjptb3ZlKGZyb21JbWFnZVZhbHVlKSwgV1RGOjptb3ZlKHRv
SW1hZ2VWYWx1ZSkpOwogICAgIGNyb3NzZmFkZVZhbHVlLmdldCgpLnNldFBlcmNlbnRhZ2UoQ1NT
UHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShwcm9ncmVzcywgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19O
VU1CRVIpKTsKLSAgICByZXR1cm4gU3R5bGVHZW5lcmF0ZWRJbWFnZTo6Y3JlYXRlKHN0ZDo6bW92
ZShjcm9zc2ZhZGVWYWx1ZSkpOworICAgIHJldHVybiBTdHlsZUdlbmVyYXRlZEltYWdlOjpjcmVh
dGUoV1RGOjptb3ZlKGNyb3NzZmFkZVZhbHVlKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgUGFzc1Jl
ZlB0cjxTdHlsZUltYWdlPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgU3R5
bGVJbWFnZSogZnJvbSwgU3R5bGVJbWFnZSogdG8sIGRvdWJsZSBwcm9ncmVzcykKQEAgLTY2Miw5
ICs2NjIsOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgU2hhZG93RGF0YSogYmxlbmRlZFNoYWRv
d1B0ciA9IGJsZW5kZWRTaGFkb3cuZ2V0KCk7CiAKICAgICAgICAgICAgIGlmICghbGFzdFNoYWRv
dykKLSAgICAgICAgICAgICAgICBuZXdTaGFkb3dEYXRhID0gc3RkOjptb3ZlKGJsZW5kZWRTaGFk
b3cpOworICAgICAgICAgICAgICAgIG5ld1NoYWRvd0RhdGEgPSBXVEY6Om1vdmUoYmxlbmRlZFNo
YWRvdyk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbGFzdFNoYWRvdy0+c2V0
TmV4dChzdGQ6Om1vdmUoYmxlbmRlZFNoYWRvdykpOworICAgICAgICAgICAgICAgIGxhc3RTaGFk
b3ctPnNldE5leHQoV1RGOjptb3ZlKGJsZW5kZWRTaGFkb3cpKTsKIAogICAgICAgICAgICAgbGFz
dFNoYWRvdyA9IGJsZW5kZWRTaGFkb3dQdHI7CiAKQEAgLTcwMyw4ICs3MDMsOCBAQCBwcml2YXRl
OgogCiAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2hhZG93RGF0YT4gYmxlbmRlZFNoYWRv
dyA9IGJsZW5kRnVuYyhhbmltLCBzcmNTaGFkb3csIGRzdFNoYWRvdywgcHJvZ3Jlc3MpOwogICAg
ICAgICAgICAgLy8gSW5zZXJ0IGF0IHRoZSBzdGFydCBvZiB0aGUgbGlzdCB0byBwcmVzZXJ2ZSB0
aGUgb3JkZXIuCi0gICAgICAgICAgICBibGVuZGVkU2hhZG93LT5zZXROZXh0KHN0ZDo6bW92ZShu
ZXdTaGFkb3dEYXRhKSk7Ci0gICAgICAgICAgICBuZXdTaGFkb3dEYXRhID0gc3RkOjptb3ZlKGJs
ZW5kZWRTaGFkb3cpOworICAgICAgICAgICAgYmxlbmRlZFNoYWRvdy0+c2V0TmV4dChXVEY6Om1v
dmUobmV3U2hhZG93RGF0YSkpOworICAgICAgICAgICAgbmV3U2hhZG93RGF0YSA9IFdURjo6bW92
ZShibGVuZGVkU2hhZG93KTsKICAgICAgICAgfQogCiAgICAgICAgIHJldHVybiBuZXdTaGFkb3dE
YXRhOwpAQCAtOTYwLDcgKzk2MCw3IEBAIGNsYXNzIFNob3J0aGFuZFByb3BlcnR5V3JhcHBlciA6
IHB1YmxpYyBBbmltYXRpb25Qcm9wZXJ0eVdyYXBwZXJCYXNlIHsKIHB1YmxpYzoKICAgICBTaG9y
dGhhbmRQcm9wZXJ0eVdyYXBwZXIoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgVmVjdG9yPEFuaW1h
dGlvblByb3BlcnR5V3JhcHBlckJhc2UqPiBsb25naGFuZFdyYXBwZXJzKQogICAgICAgICA6IEFu
aW1hdGlvblByb3BlcnR5V3JhcHBlckJhc2UocHJvcGVydHkpCi0gICAgICAgICwgbV9wcm9wZXJ0
eVdyYXBwZXJzKHN0ZDo6bW92ZShsb25naGFuZFdyYXBwZXJzKSkKKyAgICAgICAgLCBtX3Byb3Bl
cnR5V3JhcHBlcnMoV1RGOjptb3ZlKGxvbmdoYW5kV3JhcHBlcnMpKQogICAgIHsKICAgICB9CiAK
QEAgLTEzMzUsNyArMTMzNSw3IEBAIENTU1Byb3BlcnR5QW5pbWF0aW9uV3JhcHBlck1hcDo6Q1NT
UHJvcGVydHlBbmltYXRpb25XcmFwcGVyTWFwKCkKICAgICAgICAgICAgIGxvbmdoYW5kV3JhcHBl
cnMudW5jaGVja2VkQXBwZW5kKG1fcHJvcGVydHlXcmFwcGVyc1t3cmFwcGVySW5kZXhdLmdldCgp
KTsKICAgICAgICAgfQogCi0gICAgICAgIG1fcHJvcGVydHlXcmFwcGVycy51bmNoZWNrZWRBcHBl
bmQoc3RkOjptYWtlX3VuaXF1ZTxTaG9ydGhhbmRQcm9wZXJ0eVdyYXBwZXI+KHByb3BlcnR5SUQs
IHN0ZDo6bW92ZShsb25naGFuZFdyYXBwZXJzKSkpOworICAgICAgICBtX3Byb3BlcnR5V3JhcHBl
cnMudW5jaGVja2VkQXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8U2hvcnRoYW5kUHJvcGVydHlXcmFw
cGVyPihwcm9wZXJ0eUlELCBXVEY6Om1vdmUobG9uZ2hhbmRXcmFwcGVycykpKTsKICAgICAgICAg
aW5kZXhGcm9tUHJvcGVydHlJRChwcm9wZXJ0eUlEKSA9IGFuaW1hdGFibGVMb25naGFuZFByb3Bl
cnRpZXNDb3VudCArIGk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHAKaW5kZXggZDE3MDBjMTMuLjljNzZmZmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRl
VHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3Rh
dGVUcmVlLmNwcApAQCAtMjI4LDcgKzIyOCw3IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVUcmVlOjp3
aWxsUmVtb3ZlTm9kZShTY3JvbGxpbmdTdGF0ZU5vZGUqIG5vZGUpCiAKIHZvaWQgU2Nyb2xsaW5n
U3RhdGVUcmVlOjpzZXRSZW1vdmVkTm9kZXMoSGFzaFNldDxTY3JvbGxpbmdOb2RlSUQ+IG5vZGVz
KQogewotICAgIG1fbm9kZXNSZW1vdmVkU2luY2VMYXN0Q29tbWl0ID0gc3RkOjptb3ZlKG5vZGVz
KTsKKyAgICBtX25vZGVzUmVtb3ZlZFNpbmNlTGFzdENvbW1pdCA9IFdURjo6bW92ZShub2Rlcyk7
CiB9CiAKIFNjcm9sbGluZ1N0YXRlTm9kZSogU2Nyb2xsaW5nU3RhdGVUcmVlOjpzdGF0ZU5vZGVG
b3JJRChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsTGF5ZXJJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuY3BwCmluZGV4IGJlYzQ5MjEuLjljOGUy
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ro
cmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhy
ZWFkLmNwcApAQCAtNjEsNyArNjEsNyBAQCB2b2lkIFNjcm9sbGluZ1RocmVhZDo6ZGlzcGF0Y2go
c3RkOjpmdW5jdGlvbjx2b2lkICgpPiBmdW5jdGlvbikKIHZvaWQgU2Nyb2xsaW5nVGhyZWFkOjpk
aXNwYXRjaEJhcnJpZXIoc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBmdW5jdGlvbikKIHsKICAgICBk
aXNwYXRjaChbZnVuY3Rpb25dKCkgbXV0YWJsZSB7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQo
c3RkOjptb3ZlKGZ1bmN0aW9uKSk7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGOjptb3Zl
KGZ1bmN0aW9uKSk7CiAgICAgfSk7CiB9CiAKQEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIFNjcm9s
bGluZ1RocmVhZDo6ZGlzcGF0Y2hGdW5jdGlvbnNGcm9tU2Nyb2xsaW5nVGhyZWFkKCkKICAgICAK
ICAgICB7CiAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1fZnVuY3Rp
b25zTXV0ZXgpOwotICAgICAgICBmdW5jdGlvbnMgPSBzdGQ6Om1vdmUobV9mdW5jdGlvbnMpOwor
ICAgICAgICBmdW5jdGlvbnMgPSBXVEY6Om1vdmUobV9mdW5jdGlvbnMpOwogICAgIH0KIAogICAg
IGZvciAoYXV0byYgZnVuY3Rpb24gOiBmdW5jdGlvbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9DYWxjdWxhdGlvblZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0NhbGN1bGF0aW9uVmFsdWUuY3BwCmluZGV4IDhkOTY1YjAuLmI5ZGZjYTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NhbGN1bGF0aW9uVmFsdWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NhbGN1bGF0aW9uVmFsdWUuY3BwCkBAIC0zOCw3ICszOCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGFzc1JlZjxDYWxjdWxhdGlvblZhbHVlPiBDYWxj
dWxhdGlvblZhbHVlOjpjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPENhbGNFeHByZXNzaW9uTm9kZT4g
dmFsdWUsIENhbGN1bGF0aW9uUGVybWl0dGVkVmFsdWVSYW5nZSByYW5nZSkKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBDYWxjdWxhdGlvblZhbHVlKHN0ZDo6bW92ZSh2YWx1ZSksIHJhbmdl
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2FsY3VsYXRpb25WYWx1ZShXVEY6Om1vdmUo
dmFsdWUpLCByYW5nZSkpOwogfQogCiBmbG9hdCBDYWxjRXhwcmVzc2lvbk51bWJlcjo6ZXZhbHVh
dGUoZmxvYXQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DYWxj
dWxhdGlvblZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DYWxjdWxhdGlvblZhbHVl
LmgKaW5kZXggNDQxNzMyMC4uMzBlYzc4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vQ2FsY3VsYXRpb25WYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nh
bGN1bGF0aW9uVmFsdWUuaApAQCAtMTU1LDcgKzE1NSw3IEBAIGlubGluZSBDYWxjRXhwcmVzc2lv
bk5vZGU6OkNhbGNFeHByZXNzaW9uTm9kZShDYWxjRXhwcmVzc2lvbk5vZGVUeXBlIHR5cGUpCiB9
CiAKIGlubGluZSBDYWxjdWxhdGlvblZhbHVlOjpDYWxjdWxhdGlvblZhbHVlKHN0ZDo6dW5pcXVl
X3B0cjxDYWxjRXhwcmVzc2lvbk5vZGU+IGV4cHJlc3Npb24sIENhbGN1bGF0aW9uUGVybWl0dGVk
VmFsdWVSYW5nZSByYW5nZSkKLSAgICA6IG1fZXhwcmVzc2lvbihzdGQ6Om1vdmUoZXhwcmVzc2lv
bikpCisgICAgOiBtX2V4cHJlc3Npb24oV1RGOjptb3ZlKGV4cHJlc3Npb24pKQogICAgICwgbV9z
aG91bGRDbGFtcFRvTm9uTmVnYXRpdmUocmFuZ2UgPT0gQ2FsY3VsYXRpb25SYW5nZU5vbk5lZ2F0
aXZlKQogewogfQpAQCAtMjAxLDggKzIwMSw4IEBAIGlubGluZSBjb25zdCBDYWxjRXhwcmVzc2lv
bkxlbmd0aCYgdG9DYWxjRXhwcmVzc2lvbkxlbmd0aChjb25zdCBDYWxjRXhwcmVzc2lvbk5vCiAK
IGlubGluZSBDYWxjRXhwcmVzc2lvbkJpbmFyeU9wZXJhdGlvbjo6Q2FsY0V4cHJlc3Npb25CaW5h
cnlPcGVyYXRpb24oc3RkOjp1bmlxdWVfcHRyPENhbGNFeHByZXNzaW9uTm9kZT4gbGVmdFNpZGUs
IHN0ZDo6dW5pcXVlX3B0cjxDYWxjRXhwcmVzc2lvbk5vZGU+IHJpZ2h0U2lkZSwgQ2FsY09wZXJh
dG9yIG9wKQogICAgIDogQ2FsY0V4cHJlc3Npb25Ob2RlKENhbGNFeHByZXNzaW9uTm9kZUJpbmFy
eU9wZXJhdGlvbikKLSAgICAsIG1fbGVmdFNpZGUoc3RkOjptb3ZlKGxlZnRTaWRlKSkKLSAgICAs
IG1fcmlnaHRTaWRlKHN0ZDo6bW92ZShyaWdodFNpZGUpKQorICAgICwgbV9sZWZ0U2lkZShXVEY6
Om1vdmUobGVmdFNpZGUpKQorICAgICwgbV9yaWdodFNpZGUoV1RGOjptb3ZlKHJpZ2h0U2lkZSkp
CiAgICAgLCBtX29wZXJhdG9yKG9wKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vS2V5ZWRDb2RpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0tleWVkQ29k
aW5nLmgKaW5kZXggMmM0YjE3OC4uOWZhNWM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vS2V5ZWRDb2RpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9LZXll
ZENvZGluZy5oCkBAIC0xMTcsNyArMTE3LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIHJl
c3VsdCA9IGZhbHNlOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAg
ICAgICAgICAgb2JqZWN0cy5hcHBlbmQoc3RkOjptb3ZlKGVsZW1lbnQpKTsKKyAgICAgICAgICAg
IG9iamVjdHMuYXBwZW5kKFdURjo6bW92ZShlbGVtZW50KSk7CiAgICAgICAgICAgICBlbmRBcnJh
eUVsZW1lbnQoKTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9MZW5ndGguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoLmNwcAppbmRl
eCA2Njk5MmFlLi42ZDVhNjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
ZW5ndGguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5jcHAKQEAgLTI0
OCw3ICsyNDgsNyBAQCBMZW5ndGg6Okxlbmd0aChQYXNzUmVmPENhbGN1bGF0aW9uVmFsdWU+IHZh
bHVlKQogICAgICwgbV90eXBlKENhbGN1bGF0ZWQpCiAgICAgLCBtX2lzRmxvYXQoZmFsc2UpCiB7
Ci0gICAgbV9jYWxjdWxhdGlvblZhbHVlSGFuZGxlID0gY2FsY3VsYXRpb25WYWx1ZXMoKS5pbnNl
cnQoc3RkOjptb3ZlKHZhbHVlKSk7CisgICAgbV9jYWxjdWxhdGlvblZhbHVlSGFuZGxlID0gY2Fs
Y3VsYXRpb25WYWx1ZXMoKS5pbnNlcnQoV1RGOjptb3ZlKHZhbHVlKSk7CiB9CiAgICAgICAgIAog
TGVuZ3RoIExlbmd0aDo6YmxlbmRNaXhlZFR5cGVzKGNvbnN0IExlbmd0aCYgZnJvbSwgZG91Ymxl
IHByb2dyZXNzKSBjb25zdApAQCAtMjYwLDcgKzI2MCw3IEBAIExlbmd0aCBMZW5ndGg6OmJsZW5k
TWl4ZWRUeXBlcyhjb25zdCBMZW5ndGgmIGZyb20sIGRvdWJsZSBwcm9ncmVzcykgY29uc3QKICAg
ICAgICAgcmV0dXJuICp0aGlzOwogICAgICAgICAKICAgICBhdXRvIGJsZW5kID0gc3RkOjptYWtl
X3VuaXF1ZTxDYWxjRXhwcmVzc2lvbkJsZW5kTGVuZ3RoPihmcm9tLCAqdGhpcywgcHJvZ3Jlc3Mp
OwotICAgIHJldHVybiBMZW5ndGgoQ2FsY3VsYXRpb25WYWx1ZTo6Y3JlYXRlKHN0ZDo6bW92ZShi
bGVuZCksIENhbGN1bGF0aW9uUmFuZ2VBbGwpKTsKKyAgICByZXR1cm4gTGVuZ3RoKENhbGN1bGF0
aW9uVmFsdWU6OmNyZWF0ZShXVEY6Om1vdmUoYmxlbmQpLCBDYWxjdWxhdGlvblJhbmdlQWxsKSk7
CiB9CiAKIENhbGN1bGF0aW9uVmFsdWUmIExlbmd0aDo6Y2FsY3VsYXRpb25WYWx1ZSgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGhCb3guaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5oCmluZGV4IDI2NTVmNmQuLmFmOWVjZmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5oCkBAIC01MCwxMCArNTAsMTAgQEAgc3RydWN0
IExlbmd0aEJveCB7CiAgICAgfQogCiAgICAgTGVuZ3RoQm94KExlbmd0aCB0b3AsIExlbmd0aCBy
aWdodCwgTGVuZ3RoIGJvdHRvbSwgTGVuZ3RoIGxlZnQpCi0gICAgICAgIDogbV9sZWZ0KHN0ZDo6
bW92ZShsZWZ0KSkKLSAgICAgICAgLCBtX3JpZ2h0KHN0ZDo6bW92ZShyaWdodCkpCi0gICAgICAg
ICwgbV90b3Aoc3RkOjptb3ZlKHRvcCkpCi0gICAgICAgICwgbV9ib3R0b20oc3RkOjptb3ZlKGJv
dHRvbSkpCisgICAgICAgIDogbV9sZWZ0KFdURjo6bW92ZShsZWZ0KSkKKyAgICAgICAgLCBtX3Jp
Z2h0KFdURjo6bW92ZShyaWdodCkpCisgICAgICAgICwgbV90b3AoV1RGOjptb3ZlKHRvcCkpCisg
ICAgICAgICwgbV9ib3R0b20oV1RGOjptb3ZlKGJvdHRvbSkpCiAgICAgewogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoU2l6ZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTGVuZ3RoU2l6ZS5oCmluZGV4IGNiYzJkNzguLmE2N2JjODggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aFNpemUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGhTaXplLmgKQEAgLTMyLDggKzMyLDggQEAgcHVibGljOgog
ICAgIH0KICAgICAKICAgICBMZW5ndGhTaXplKExlbmd0aCB3aWR0aCwgTGVuZ3RoIGhlaWdodCkK
LSAgICAgICAgOiBtX3dpZHRoKHN0ZDo6bW92ZSh3aWR0aCkpCi0gICAgICAgICwgbV9oZWlnaHQo
c3RkOjptb3ZlKGhlaWdodCkpCisgICAgICAgIDogbV93aWR0aChXVEY6Om1vdmUod2lkdGgpKQor
ICAgICAgICAsIG1faGVpZ2h0KFdURjo6bW92ZShoZWlnaHQpKQogICAgIHsKICAgICB9CiAKQEAg
LTQyLDEwICs0MiwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX3dpZHRoID09IG8ubV93
aWR0aCAmJiBtX2hlaWdodCA9PSBvLm1faGVpZ2h0OwogICAgIH0KIAotICAgIHZvaWQgc2V0V2lk
dGgoTGVuZ3RoIHdpZHRoKSB7IG1fd2lkdGggPSBzdGQ6Om1vdmUod2lkdGgpOyB9CisgICAgdm9p
ZCBzZXRXaWR0aChMZW5ndGggd2lkdGgpIHsgbV93aWR0aCA9IFdURjo6bW92ZSh3aWR0aCk7IH0K
ICAgICBjb25zdCBMZW5ndGgmIHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV93aWR0aDsgfQogCi0g
ICAgdm9pZCBzZXRIZWlnaHQoTGVuZ3RoIGhlaWdodCkgeyBtX2hlaWdodCA9IHN0ZDo6bW92ZSho
ZWlnaHQpOyB9CisgICAgdm9pZCBzZXRIZWlnaHQoTGVuZ3RoIGhlaWdodCkgeyBtX2hlaWdodCA9
IFdURjo6bW92ZShoZWlnaHQpOyB9CiAgICAgY29uc3QgTGVuZ3RoJiBoZWlnaHQoKSBjb25zdCB7
IHJldHVybiBtX2hlaWdodDsgfQogCiAgICAgTGVuZ3RoU2l6ZSBibGVuZChjb25zdCBMZW5ndGhT
aXplJiBmcm9tLCBkb3VibGUgcHJvZ3Jlc3MpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1No
YXJlZEJ1ZmZlci5oCmluZGV4IGI5ODIwNTkuLjNjOGZhNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1NoYXJlZEJ1ZmZlci5oCkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICBwdWJsaWM6
CiAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgICAgIE5TRGF0YVJldGFpblB0cldp
dGhvdXRJbXBsaWNpdENvbnZlcnNpb25PcGVyYXRvcihSZXRhaW5QdHI8VCo+JiYgb3RoZXIpCi0g
ICAgICAgICAgICA6IFJldGFpblB0cjxOU0RhdGEqPihzdGQ6Om1vdmUob3RoZXIpKQorICAgICAg
ICAgICAgOiBSZXRhaW5QdHI8TlNEYXRhKj4oV1RGOjptb3ZlKG90aGVyKSkKICAgICAgICAgewog
ICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1cHBsZW1l
bnRhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TdXBwbGVtZW50YWJsZS5oCmluZGV4
IDY3ZGRmMmYuLjYxYmYxMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1
cHBsZW1lbnRhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3VwcGxlbWVudGFi
bGUuaApAQCAtODYsNyArODYsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCBwcm92aWRl
VG8oU3VwcGxlbWVudGFibGU8VD4qIGhvc3QsIGNvbnN0IGNoYXIqIGtleSwgc3RkOjp1bmlxdWVf
cHRyPFN1cHBsZW1lbnQ8VD4+IHN1cHBsZW1lbnQpCiAgICAgewotICAgICAgICBob3N0LT5wcm92
aWRlU3VwcGxlbWVudChrZXksIHN0ZDo6bW92ZShzdXBwbGVtZW50KSk7CisgICAgICAgIGhvc3Qt
PnByb3ZpZGVTdXBwbGVtZW50KGtleSwgV1RGOjptb3ZlKHN1cHBsZW1lbnQpKTsKICAgICB9CiAK
ICAgICBzdGF0aWMgU3VwcGxlbWVudDxUPiogZnJvbShTdXBwbGVtZW50YWJsZTxUPiogaG9zdCwg
Y29uc3QgY2hhcioga2V5KQpAQCAtMTAyLDcgKzEwMiw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAg
ICAgIEFTU0VSVChjYW5BY2Nlc3NUaHJlYWRMb2NhbERhdGFGb3JUaHJlYWQobV90aHJlYWRJZCkp
OwogICAgICAgICBBU1NFUlQoIW1fc3VwcGxlbWVudHMuZ2V0KGtleSkpOwotICAgICAgICBtX3N1
cHBsZW1lbnRzLnNldChrZXksIHN0ZDo6bW92ZShzdXBwbGVtZW50KSk7CisgICAgICAgIG1fc3Vw
cGxlbWVudHMuc2V0KGtleSwgV1RGOjptb3ZlKHN1cHBsZW1lbnQpKTsKICAgICB9CiAKICAgICB2
b2lkIHJlbW92ZVN1cHBsZW1lbnQoY29uc3QgY2hhcioga2V5KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVy
LmgKaW5kZXggYjllZmFlMi4uODQzZDY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vVGltZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oCkBAIC0x
NTYsNyArMTU2LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIERlZmVycmFibGVPbmVTaG90VGlt
ZXIoc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBmdW5jdGlvbiwgc3RkOjpjaHJvbm86Om1pbGxpc2Vj
b25kcyBkZWxheSkKLSAgICAgICAgOiBtX2Z1bmN0aW9uKHN0ZDo6bW92ZShmdW5jdGlvbikpCisg
ICAgICAgIDogbV9mdW5jdGlvbihXVEY6Om1vdmUoZnVuY3Rpb24pKQogICAgICAgICAsIG1fZGVs
YXkoZGVsYXkpCiAgICAgICAgICwgbV9zaG91bGRSZXN0YXJ0V2hlblRpbWVyRmlyZXMoZmFsc2Up
CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9C
dXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwCmluZGV4
IGNmNWU2ODUuLjlkYWMwOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0F1ZGlvQnVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRp
b0J1cy5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgQXVkaW9CdXM6OkF1ZGlvQnVzKHVuc2lnbmVkIG51
bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBsZW5ndGgsIGJvb2wgYWxsb2NhdGUpCiAKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZDaGFubmVsczsgKytpKSB7CiAgICAgICAgIGF1
dG8gY2hhbm5lbCA9IGFsbG9jYXRlID8gc3RkOjptYWtlX3VuaXF1ZTxBdWRpb0NoYW5uZWw+KGxl
bmd0aCkgOiBzdGQ6Om1ha2VfdW5pcXVlPEF1ZGlvQ2hhbm5lbD4obnVsbHB0ciwgbGVuZ3RoKTsK
LSAgICAgICAgbV9jaGFubmVscy5hcHBlbmQoc3RkOjptb3ZlKGNoYW5uZWwpKTsKKyAgICAgICAg
bV9jaGFubmVscy5hcHBlbmQoV1RGOjptb3ZlKGNoYW5uZWwpKTsKICAgICB9CiAKICAgICBtX2xh
eW91dCA9IExheW91dENhbm9uaWNhbDsgLy8gZm9yIG5vdyB0aGlzIGlzIHRoZSBvbmx5IGxheW91
dCB3ZSBkZWZpbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hS
VEZEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJh
c2UuY3BwCmluZGV4IDQ4ZDNkMzMuLjkzNDAyNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlLmNwcApAQCAtNTQsNyArNTQsNyBAQCBIUlRGRGF0YWJh
c2U6OkhSVEZEYXRhYmFzZShmbG9hdCBzYW1wbGVSYXRlKQogICAgICAgICBpZiAoIWhydGZFbGV2
YXRpb24uZ2V0KCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIAotICAgICAgICBtX2Vs
ZXZhdGlvbnNbZWxldmF0aW9uSW5kZXhdID0gc3RkOjptb3ZlKGhydGZFbGV2YXRpb24pOworICAg
ICAgICBtX2VsZXZhdGlvbnNbZWxldmF0aW9uSW5kZXhdID0gV1RGOjptb3ZlKGhydGZFbGV2YXRp
b24pOwogICAgICAgICBlbGV2YXRpb25JbmRleCArPSBJbnRlcnBvbGF0aW9uRmFjdG9yOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkVsZXZh
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRWxldmF0aW9uLmNw
cAppbmRleCBlNTgwOGI0Li4zZTc3NDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9IUlRGRWxldmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9IUlRGRWxldmF0aW9uLmNwcApAQCAtMjczLDcgKzI3Myw3IEBAIHN0ZDo6dW5pcXVl
X3B0cjxIUlRGRWxldmF0aW9uPiBIUlRGRWxldmF0aW9uOjpjcmVhdGVGb3JTdWJqZWN0KGNvbnN0
IFN0cmluZyYgc3ViCiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8SFJURkVsZXZhdGlvbj4oc3RkOjptb3ZlKGtlcm5lbExpc3RMKSwgc3RkOjptb3Zl
KGtlcm5lbExpc3RSKSwgZWxldmF0aW9uLCBzYW1wbGVSYXRlKTsKKyAgICByZXR1cm4gc3RkOjpt
YWtlX3VuaXF1ZTxIUlRGRWxldmF0aW9uPihXVEY6Om1vdmUoa2VybmVsTGlzdEwpLCBXVEY6Om1v
dmUoa2VybmVsTGlzdFIpLCBlbGV2YXRpb24sIHNhbXBsZVJhdGUpOwogfQogCiBzdGQ6OnVuaXF1
ZV9wdHI8SFJURkVsZXZhdGlvbj4gSFJURkVsZXZhdGlvbjo6Y3JlYXRlQnlJbnRlcnBvbGF0aW5n
U2xpY2VzKEhSVEZFbGV2YXRpb24qIGhydGZFbGV2YXRpb24xLCBIUlRGRWxldmF0aW9uKiBocnRm
RWxldmF0aW9uMiwgZmxvYXQgeCwgZmxvYXQgc2FtcGxlUmF0ZSkKQEAgLTMwMSw3ICszMDEsNyBA
QCBzdGQ6OnVuaXF1ZV9wdHI8SFJURkVsZXZhdGlvbj4gSFJURkVsZXZhdGlvbjo6Y3JlYXRlQnlJ
bnRlcnBvbGF0aW5nU2xpY2VzKEhSVEZFbAogICAgIC8vIEludGVycG9sYXRlIGVsZXZhdGlvbiBh
bmdsZS4KICAgICBkb3VibGUgYW5nbGUgPSAoMS4wIC0geCkgKiBocnRmRWxldmF0aW9uMS0+ZWxl
dmF0aW9uQW5nbGUoKSArIHggKiBocnRmRWxldmF0aW9uMi0+ZWxldmF0aW9uQW5nbGUoKTsKICAg
ICAKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxIUlRGRWxldmF0aW9uPihzdGQ6Om1vdmUo
a2VybmVsTGlzdEwpLCBzdGQ6Om1vdmUoa2VybmVsTGlzdFIpLCBzdGF0aWNfY2FzdDxpbnQ+KGFu
Z2xlKSwgc2FtcGxlUmF0ZSk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8SFJURkVsZXZh
dGlvbj4oV1RGOjptb3ZlKGtlcm5lbExpc3RMKSwgV1RGOjptb3ZlKGtlcm5lbExpc3RSKSwgc3Rh
dGljX2Nhc3Q8aW50PihhbmdsZSksIHNhbXBsZVJhdGUpOwogfQogCiB2b2lkIEhSVEZFbGV2YXRp
b246OmdldEtlcm5lbHNGcm9tQXppbXV0aChkb3VibGUgYXppbXV0aEJsZW5kLCB1bnNpZ25lZCBh
emltdXRoSW5kZXgsIEhSVEZLZXJuZWwqICZrZXJuZWxMLCBIUlRGS2VybmVsKiAma2VybmVsUiwg
ZG91YmxlJiBmcmFtZURlbGF5TCwgZG91YmxlJiBmcmFtZURlbGF5UikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uaAppbmRleCA5OGE2YzQ3Li5mMWRjM2M0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRWxldmF0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkVsZXZhdGlvbi5oCkBA
IC00Niw4ICs0Niw4IEBAIGNsYXNzIEhSVEZFbGV2YXRpb24gewogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKEhSVEZFbGV2YXRpb24pOwogcHVibGljOgogICAgIEhSVEZFbGV2YXRpb24oc3RkOjp1
bmlxdWVfcHRyPEhSVEZLZXJuZWxMaXN0PiBrZXJuZWxMaXN0TCwgc3RkOjp1bmlxdWVfcHRyPEhS
VEZLZXJuZWxMaXN0PiBrZXJuZWxMaXN0UiwgaW50IGVsZXZhdGlvbiwgZmxvYXQgc2FtcGxlUmF0
ZSkKLSAgICAgICAgOiBtX2tlcm5lbExpc3RMKHN0ZDo6bW92ZShrZXJuZWxMaXN0TCkpCi0gICAg
ICAgICwgbV9rZXJuZWxMaXN0UihzdGQ6Om1vdmUoa2VybmVsTGlzdFIpKQorICAgICAgICA6IG1f
a2VybmVsTGlzdEwoV1RGOjptb3ZlKGtlcm5lbExpc3RMKSkKKyAgICAgICAgLCBtX2tlcm5lbExp
c3RSKFdURjo6bW92ZShrZXJuZWxMaXN0UikpCiAgICAgICAgICwgbV9lbGV2YXRpb25BbmdsZShl
bGV2YXRpb24pCiAgICAgICAgICwgbV9zYW1wbGVSYXRlKHNhbXBsZVJhdGUpCiAgICAgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURktlcm5lbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGS2VybmVsLmNwcAppbmRleCAzMTg1OTk0
Li5mNjg5MDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRG
S2VybmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGS2VybmVs
LmNwcApAQCAtMTMyLDcgKzEzMiw3IEBAIFBhc3NSZWZQdHI8SFJURktlcm5lbD4gSFJURktlcm5l
bDo6Y3JlYXRlSW50ZXJwb2xhdGVkS2VybmVsKEhSVEZLZXJuZWwqIGtlcm5lbDEsCiAgICAgZmxv
YXQgZnJhbWVEZWxheSA9ICgxIC0geCkgKiBrZXJuZWwxLT5mcmFtZURlbGF5KCkgKyB4ICoga2Vy
bmVsMi0+ZnJhbWVEZWxheSgpOwogICAgIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxGRlRGcmFtZT4g
aW50ZXJwb2xhdGVkRnJhbWUgPSBGRlRGcmFtZTo6Y3JlYXRlSW50ZXJwb2xhdGVkRnJhbWUoKmtl
cm5lbDEtPmZmdEZyYW1lKCksICprZXJuZWwyLT5mZnRGcmFtZSgpLCB4KTsKLSAgICByZXR1cm4g
SFJURktlcm5lbDo6Y3JlYXRlKHN0ZDo6bW92ZShpbnRlcnBvbGF0ZWRGcmFtZSksIGZyYW1lRGVs
YXksIHNhbXBsZVJhdGUxKTsKKyAgICByZXR1cm4gSFJURktlcm5lbDo6Y3JlYXRlKFdURjo6bW92
ZShpbnRlcnBvbGF0ZWRGcmFtZSksIGZyYW1lRGVsYXksIHNhbXBsZVJhdGUxKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vSFJURktlcm5lbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURktl
cm5lbC5oCmluZGV4IDVmMDY3OGMuLmRkMGFjNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0hSVEZLZXJuZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9IUlRGS2VybmVsLmgKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogCiAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8SFJURktlcm5lbD4gY3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxGRlRGcmFt
ZT4gZmZ0RnJhbWUsIGZsb2F0IGZyYW1lRGVsYXksIGZsb2F0IHNhbXBsZVJhdGUpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhSVEZLZXJuZWwoc3RkOjptb3ZlKGZmdEZyYW1l
KSwgZnJhbWVEZWxheSwgc2FtcGxlUmF0ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEhSVEZLZXJuZWwoV1RGOjptb3ZlKGZmdEZyYW1lKSwgZnJhbWVEZWxheSwgc2FtcGxlUmF0ZSkp
OwogICAgIH0KIAogICAgIC8vIEdpdmVuIHR3byBIUlRGS2VybmVscywgYW5kIGFuIGludGVycG9s
YXRpb24gZmFjdG9yIHg6IDAgLT4gMSwgcmV0dXJucyBhbiBpbnRlcnBvbGF0ZWQgSFJURktlcm5l
bC4KQEAgLTc5LDcgKzc5LDcgQEAgcHJpdmF0ZToKICAgICBIUlRGS2VybmVsKEF1ZGlvQ2hhbm5l
bCosIHNpemVfdCBmZnRTaXplLCBmbG9hdCBzYW1wbGVSYXRlKTsKICAgICAKICAgICBIUlRGS2Vy
bmVsKHN0ZDo6dW5pcXVlX3B0cjxGRlRGcmFtZT4gZmZ0RnJhbWUsIGZsb2F0IGZyYW1lRGVsYXks
IGZsb2F0IHNhbXBsZVJhdGUpCi0gICAgICAgIDogbV9mZnRGcmFtZShzdGQ6Om1vdmUoZmZ0RnJh
bWUpKQorICAgICAgICA6IG1fZmZ0RnJhbWUoV1RGOjptb3ZlKGZmdEZyYW1lKSkKICAgICAgICAg
LCBtX2ZyYW1lRGVsYXkoZnJhbWVEZWxheSkKICAgICAgICAgLCBtX3NhbXBsZVJhdGUoc2FtcGxl
UmF0ZSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9S
ZXZlcmJDb252b2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJi
Q29udm9sdmVyLmNwcAppbmRleCA5MDZhYjAxLi5lY2YzNTVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAKQEAgLTEwNywxMCArMTA3
LDEwIEBAIFJldmVyYkNvbnZvbHZlcjo6UmV2ZXJiQ29udm9sdmVyKEF1ZGlvQ2hhbm5lbCogaW1w
dWxzZVJlc3BvbnNlLCBzaXplX3QgcmVuZGVyU2xpCiAgICAgICAgIGJvb2wgaXNCYWNrZ3JvdW5k
U3RhZ2UgPSBmYWxzZTsKIAogICAgICAgICBpZiAodGhpcy0+dXNlQmFja2dyb3VuZFRocmVhZHMo
KSAmJiBzdGFnZU9mZnNldCA+IFJlYWx0aW1lRnJhbWVMaW1pdCkgewotICAgICAgICAgICAgbV9i
YWNrZ3JvdW5kU3RhZ2VzLmFwcGVuZChzdGQ6Om1vdmUoc3RhZ2UpKTsKKyAgICAgICAgICAgIG1f
YmFja2dyb3VuZFN0YWdlcy5hcHBlbmQoV1RGOjptb3ZlKHN0YWdlKSk7CiAgICAgICAgICAgICBp
c0JhY2tncm91bmRTdGFnZSA9IHRydWU7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgbV9z
dGFnZXMuYXBwZW5kKHN0ZDo6bW92ZShzdGFnZSkpOworICAgICAgICAgICAgbV9zdGFnZXMuYXBw
ZW5kKFdURjo6bW92ZShzdGFnZSkpOwogCiAgICAgICAgIHN0YWdlT2Zmc2V0ICs9IHN0YWdlU2l6
ZTsKICAgICAgICAgKytpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L1JlbmRlclRoZW1lRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJU
aGVtZUVmbC5jcHAKaW5kZXggMDhkNzhkYy4uZThjNTM5MiAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwCkBAIC00ODUsNyArNDg1LDcgQEAgYm9v
bCBSZW5kZXJUaGVtZUVmbDo6bG9hZFRoZW1lKCkKICAgICAgICAgY2xlYXJUaGVtZVBhcnRDYWNo
ZSgpOwogCiAgICAgLy8gU2V0IG5ldyBsb2FkZWQgdGhlbWUsIGFuZCBhcHBseSBpdC4KLSAgICBt
X2VkamUgPSBzdGQ6Om1vdmUobyk7CisgICAgbV9lZGplID0gV1RGOjptb3ZlKG8pOwogCiAgICAg
Y29uc3QgY2hhciogdGhpY2tuZXNzID0gZWRqZV9vYmplY3RfZGF0YV9nZXQobV9lZGplLmdldCgp
LCAic2Nyb2xsYmFyLnRoaWNrbmVzcyIpOwogICAgIGlmICh0aGlja25lc3MgJiYgIVNldHRpbmdz
Ojptb2NrU2Nyb2xsYmFyc0VuYWJsZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9seWdvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9GbG9hdFBvbHlnb24uY3BwCmluZGV4IDc4MWJkMmQuLjc1Njk0ZGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9seWdvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2x5Z29uLmNwcApA
QCAtODAsNyArODAsNyBAQCBzdGF0aWMgdW5zaWduZWQgZmluZE5leHRFZGdlVmVydGV4SW5kZXgo
Y29uc3QgRmxvYXRQb2x5Z29uJiBwb2x5Z29uLCB1bnNpZ25lZCB2ZQogfQogCiBGbG9hdFBvbHln
b246OkZsb2F0UG9seWdvbihzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPEZsb2F0UG9pbnQ+PiB2ZXJ0
aWNlcywgV2luZFJ1bGUgZmlsbFJ1bGUpCi0gICAgOiBtX3ZlcnRpY2VzKHN0ZDo6bW92ZSh2ZXJ0
aWNlcykpCisgICAgOiBtX3ZlcnRpY2VzKFdURjo6bW92ZSh2ZXJ0aWNlcykpCiAgICAgLCBtX2Zp
bGxSdWxlKGZpbGxSdWxlKQogewogICAgIHVuc2lnbmVkIG5WZXJ0aWNlcyA9IG51bWJlck9mVmVy
dGljZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKaW5kZXgg
NzM5YTViMy4uMDM2Y2ZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dC5jcHAKQEAgLTIxNSw3ICsyMTUsNyBAQCBzdHJ1Y3QgRm9udEdseXBoc0NhY2hlS2V5IHsKIHN0
cnVjdCBGb250R2x5cGhzQ2FjaGVFbnRyeSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6Ci0gICAgRm9udEdseXBoc0NhY2hlRW50cnkoRm9udEdseXBoc0NhY2hlS2V5JiYg
aywgUGFzc1JlZjxGb250R2x5cGhzPiBnKSA6IGtleShzdGQ6Om1vdmUoaykpLCBnbHlwaHMoc3Rk
Ojptb3ZlKGcpKSB7IH0KKyAgICBGb250R2x5cGhzQ2FjaGVFbnRyeShGb250R2x5cGhzQ2FjaGVL
ZXkmJiBrLCBQYXNzUmVmPEZvbnRHbHlwaHM+IGcpIDoga2V5KFdURjo6bW92ZShrKSksIGdseXBo
cyhXVEY6Om1vdmUoZykpIHsgfQogICAgIEZvbnRHbHlwaHNDYWNoZUtleSBrZXk7CiAgICAgUmVm
PEZvbnRHbHlwaHM+IGdseXBoczsKIH07CkBAIC0zMDcsNyArMzA3LDcgQEAgc3RhdGljIFBhc3NS
ZWY8Rm9udEdseXBocz4gcmV0cmlldmVPckFkZENhY2hlZEZvbnRHbHlwaHMoY29uc3QgRm9udERl
c2NyaXB0aW9uJgogICAgICAgICByZXR1cm4gYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS0+Z2x5
cGhzLmdldCgpOwogCiAgICAgT3duUHRyPEZvbnRHbHlwaHNDYWNoZUVudHJ5PiYgbmV3RW50cnkg
PSBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlOwotICAgIG5ld0VudHJ5ID0gYWRvcHRQdHIobmV3
IEZvbnRHbHlwaHNDYWNoZUVudHJ5KHN0ZDo6bW92ZShrZXkpLCBGb250R2x5cGhzOjpjcmVhdGUo
Zm9udFNlbGVjdG9yKSkpOworICAgIG5ld0VudHJ5ID0gYWRvcHRQdHIobmV3IEZvbnRHbHlwaHND
YWNoZUVudHJ5KFdURjo6bW92ZShrZXkpLCBGb250R2x5cGhzOjpjcmVhdGUoZm9udFNlbGVjdG9y
KSkpOwogICAgIFBhc3NSZWY8Rm9udEdseXBocz4gZ2x5cGhzID0gbmV3RW50cnktPmdseXBocy5n
ZXQoKTsKIAogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB1bnJlZmVyZW5jZWRQcnVuZUludGVy
dmFsID0gNTA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9T
aW1wbGVGb250RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1w
bGVGb250RGF0YS5jcHAKaW5kZXggYmFlNmFjYy4uMmNiYzNiOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcApAQCAtNzIsNyAr
NzIsNyBAQCBTaW1wbGVGb250RGF0YTo6U2ltcGxlRm9udERhdGEoY29uc3QgRm9udFBsYXRmb3Jt
RGF0YSYgcGxhdGZvcm1EYXRhLCBib29sIGlzQ3VzdAogCiBTaW1wbGVGb250RGF0YTo6U2ltcGxl
Rm9udERhdGEoc3RkOjp1bmlxdWVfcHRyPEFkZGl0aW9uYWxGb250RGF0YT4gZm9udERhdGEsIGZs
b2F0IGZvbnRTaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljKQog
ICAgIDogbV9wbGF0Zm9ybURhdGEoRm9udFBsYXRmb3JtRGF0YShmb250U2l6ZSwgc3ludGhldGlj
Qm9sZCwgc3ludGhldGljSXRhbGljKSkKLSAgICAsIG1fZm9udERhdGEoc3RkOjptb3ZlKGZvbnRE
YXRhKSkKKyAgICAsIG1fZm9udERhdGEoV1RGOjptb3ZlKGZvbnREYXRhKSkKICAgICAsIG1fdHJl
YXRBc0ZpeGVkUGl0Y2goZmFsc2UpCiAgICAgLCBtX2lzQ3VzdG9tRm9udCh0cnVlKQogICAgICwg
bV9pc0xvYWRpbmcoZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9TaW1wbGVGb250RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvU2ltcGxlRm9udERhdGEuaAppbmRleCA4NmI5NWIxLi4yYmRlZDViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgKQEAgLTEwMSw3
ICsxMDEsNyBAQCBwdWJsaWM6CiAgICAgLy8gVXNlZCB0byBjcmVhdGUgU1ZHIEZvbnRzLgogICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBjcmVhdGUoc3RkOjp1bmlxdWVfcHRy
PEFkZGl0aW9uYWxGb250RGF0YT4gZm9udERhdGEsIGZsb2F0IGZvbnRTaXplLCBib29sIHN5bnRo
ZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBTaW1wbGVGb250RGF0YShzdGQ6Om1vdmUoZm9udERhdGEpLCBmb250U2l6ZSwg
c3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgU2ltcGxlRm9udERhdGEoV1RGOjptb3ZlKGZvbnREYXRhKSwgZm9udFNpemUsIHN5bnRo
ZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxpYykpOwogICAgIH0KIAogICAgIHZpcnR1YWwgflNpbXBs
ZUZvbnREYXRhKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9UaWxlZEJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9UaWxlZEJhY2tpbmdTdG9yZS5jcHAKaW5kZXggMGJkOTQ1OC4uMjUzN2QxYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3Jl
LmNwcApAQCAtMzcsNyArMzcsNyBAQCBzdGF0aWMgSW50UG9pbnQgaW5uZXJCb3R0b21SaWdodChj
b25zdCBJbnRSZWN0JiByZWN0KQogCiBUaWxlZEJhY2tpbmdTdG9yZTo6VGlsZWRCYWNraW5nU3Rv
cmUoVGlsZWRCYWNraW5nU3RvcmVDbGllbnQqIGNsaWVudCwgc3RkOjp1bmlxdWVfcHRyPFRpbGVk
QmFja2luZ1N0b3JlQmFja2VuZD4gYmFja2VuZCkKICAgICA6IG1fY2xpZW50KGNsaWVudCkKLSAg
ICAsIG1fYmFja2VuZChzdGQ6Om1vdmUoYmFja2VuZCkpCisgICAgLCBtX2JhY2tlbmQoV1RGOjpt
b3ZlKGJhY2tlbmQpKQogICAgICwgbV90aWxlQnVmZmVyVXBkYXRlVGltZXIodGhpcywgJlRpbGVk
QmFja2luZ1N0b3JlOjp0aWxlQnVmZmVyVXBkYXRlVGltZXJGaXJlZCkKICAgICAsIG1fYmFja2lu
Z1N0b3JlVXBkYXRlVGltZXIodGhpcywgJlRpbGVkQmFja2luZ1N0b3JlOjpiYWNraW5nU3RvcmVV
cGRhdGVUaW1lckZpcmVkKQogICAgICwgbV90aWxlU2l6ZShkZWZhdWx0VGlsZURpbWVuc2lvbiwg
ZGVmYXVsdFRpbGVEaW1lbnNpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHAKaW5kZXggZjc5M2RiNi4uOTFkMzk0MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVD
b250cm9sbGVyLmNwcApAQCAtMTE2LDEzICsxMTYsMTMgQEAgdm9pZCBUaWxlQ29udHJvbGxlcjo6
c2V0Q29udGVudHNTY2FsZShmbG9hdCBzY2FsZSkKICAgICAgICAgbV9jb3ZlcmFnZU1hcC0+c2V0
RGV2aWNlU2NhbGVGYWN0b3IoZGV2aWNlU2NhbGVGYWN0b3IpOwogCiAgICAgaWYgKG1fem9vbWVk
T3V0VGlsZUdyaWQgJiYgbV96b29tZWRPdXRUaWxlR3JpZC0+c2NhbGUoKSA9PSBzY2FsZSkgewot
ICAgICAgICBtX3RpbGVHcmlkID0gc3RkOjptb3ZlKG1fem9vbWVkT3V0VGlsZUdyaWQpOworICAg
ICAgICBtX3RpbGVHcmlkID0gV1RGOjptb3ZlKG1fem9vbWVkT3V0VGlsZUdyaWQpOwogICAgICAg
ICBtX3RpbGVHcmlkLT5yZXZhbGlkYXRlVGlsZXMoMCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKICAgICBpZiAobV96b29tZWRPdXRDb250ZW50c1NjYWxlICYmIG1fem9vbWVkT3V0Q29udGVu
dHNTY2FsZSA9PSB0aWxlR3JpZCgpLnNjYWxlKCkgJiYgdGlsZUdyaWQoKS5zY2FsZSgpICE9IHNj
YWxlICYmICFtX2hhc1RpbGVzV2l0aFRlbXBvcmFyeVNjYWxlRmFjdG9yKSB7Ci0gICAgICAgIG1f
em9vbWVkT3V0VGlsZUdyaWQgPSBzdGQ6Om1vdmUobV90aWxlR3JpZCk7CisgICAgICAgIG1fem9v
bWVkT3V0VGlsZUdyaWQgPSBXVEY6Om1vdmUobV90aWxlR3JpZCk7CiAgICAgICAgIG1fdGlsZUdy
aWQgPSBzdGQ6Om1ha2VfdW5pcXVlPFRpbGVHcmlkPigqdGhpcyk7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvQ2Fpcm9VdGlsaXRpZXNF
ZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0NhaXJvVXRpbGl0
aWVzRWZsLmNwcAppbmRleCBjNzFkMDc4Li41MWFjNjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvQ2Fpcm9VdGlsaXRpZXNFZmwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9DYWlyb1V0aWxpdGllc0VmbC5jcHAK
QEAgLTgyLDcgKzgyLDcgQEAgRWZsVW5pcXVlUHRyPEV2YXNfT2JqZWN0PiBldmFzT2JqZWN0RnJv
bUNhaXJvSW1hZ2VTdXJmYWNlKEV2YXMqIGNhbnZhcywgY2Fpcm9fc3UKIAogICAgIGV2YXNfb2Jq
ZWN0X2ltYWdlX2RhdGFfY29weV9zZXQoaW1hZ2UuZ2V0KCksIGRhdGEpOwogCi0gICAgcmV0dXJu
IHN0ZDo6bW92ZShpbWFnZSk7CisgICAgcmV0dXJuIFdURjo6bW92ZShpbWFnZSk7CiB9CiAKIFBh
c3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBjcmVhdGVTdXJmYWNlRm9yQmFja2luZ1N0b3JlKEVj
b3JlX0V2YXMqIGVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZWZsL0dyYXBoaWNzQ29udGV4dDNERWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzREVmbC5jcHAKaW5kZXggZGY3YjcxYy4uNmNk
ZDVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dy
YXBoaWNzQ29udGV4dDNERWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RFZmwuY3BwCkBAIC0xOTksNyArMTk5LDcgQEAgYm9v
bCBHcmFwaGljc0NvbnRleHQzRDo6aXNHTEVTMkNvbXBsaWFudCgpIGNvbnN0CiAKIHZvaWQgR3Jh
cGhpY3NDb250ZXh0M0Q6OnNldENvbnRleHRMb3N0Q2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPENv
bnRleHRMb3N0Q2FsbGJhY2s+IGNhbGxCYWNrKQogewotICAgIG1fcHJpdmF0ZS0+c2V0Q29udGV4
dExvc3RDYWxsYmFjayhzdGQ6Om1vdmUoY2FsbEJhY2spKTsKKyAgICBtX3ByaXZhdGUtPnNldENv
bnRleHRMb3N0Q2FsbGJhY2soV1RGOjptb3ZlKGNhbGxCYWNrKSk7CiB9CiAKIHZvaWQgR3JhcGhp
Y3NDb250ZXh0M0Q6OnNldEVycm9yTWVzc2FnZUNhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0cjxFcnJv
ck1lc3NhZ2VDYWxsYmFjaz4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCmluZGV4
IGFhMGY4NWYuLmZhMDZkOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCkBA
IC0xMDcsNyArMTA3LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OnJlbGVhc2VS
ZXNvdXJjZXMoKQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6c2V0Q29udGV4dExv
c3RDYWxsYmFjayhzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0M0Q6OkNvbnRleHRMb3N0
Q2FsbGJhY2s+IGNhbGxCYWNrKQogewotICAgIG1fY29udGV4dExvc3RDYWxsYmFjayA9IHN0ZDo6
bW92ZShjYWxsQmFjayk7CisgICAgbV9jb250ZXh0TG9zdENhbGxiYWNrID0gV1RGOjptb3ZlKGNh
bGxCYWNrKTsKIH0KIAogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBHcmFwaGljc0NvbnRleHQz
RFByaXZhdGU6OnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmgKaW5kZXggMTkwYzJi
ZC4uYjIwNTdhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZpbHRlci5oCkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICB7IH0KICAgICB2
aXJ0dWFsIH5GaWx0ZXIoKSB7IH0KIAotICAgIHZvaWQgc2V0U291cmNlSW1hZ2Uoc3RkOjp1bmlx
dWVfcHRyPEltYWdlQnVmZmVyPiBzb3VyY2VJbWFnZSkgeyBtX3NvdXJjZUltYWdlID0gc3RkOjpt
b3ZlKHNvdXJjZUltYWdlKTsgfQorICAgIHZvaWQgc2V0U291cmNlSW1hZ2Uoc3RkOjp1bmlxdWVf
cHRyPEltYWdlQnVmZmVyPiBzb3VyY2VJbWFnZSkgeyBtX3NvdXJjZUltYWdlID0gV1RGOjptb3Zl
KHNvdXJjZUltYWdlKTsgfQogICAgIEltYWdlQnVmZmVyKiBzb3VyY2VJbWFnZSgpIHsgcmV0dXJu
IG1fc291cmNlSW1hZ2UuZ2V0KCk7IH0KIAogICAgIEZsb2F0U2l6ZSBmaWx0ZXJSZXNvbHV0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9maWx0ZXJSZXNvbHV0aW9uOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb24u
aAppbmRleCA1ZjczZjBhLi45OTAzNzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmgKQEAgLTI4Nyw3
ICsyODcsNyBAQCBjbGFzcyBCbHVyRmlsdGVyT3BlcmF0aW9uIDogcHVibGljIEZpbHRlck9wZXJh
dGlvbiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Qmx1ckZpbHRlck9wZXJhdGlv
bj4gY3JlYXRlKExlbmd0aCBzdGREZXZpYXRpb24pCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEJsdXJGaWx0ZXJPcGVyYXRpb24oc3RkOjptb3ZlKHN0ZERldmlhdGlvbikpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBCbHVyRmlsdGVyT3BlcmF0aW9uKFdURjo6bW92
ZShzdGREZXZpYXRpb24pKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZpbHRl
ck9wZXJhdGlvbj4gY2xvbmUoKSBjb25zdCBvdmVycmlkZQpAQCAtMzA3LDcgKzMwNyw3IEBAIHBy
aXZhdGU6CiAKICAgICBCbHVyRmlsdGVyT3BlcmF0aW9uKExlbmd0aCBzdGREZXZpYXRpb24pCiAg
ICAgICAgIDogRmlsdGVyT3BlcmF0aW9uKEJMVVIpCi0gICAgICAgICwgbV9zdGREZXZpYXRpb24o
c3RkOjptb3ZlKHN0ZERldmlhdGlvbikpCisgICAgICAgICwgbV9zdGREZXZpYXRpb24oV1RGOjpt
b3ZlKHN0ZERldmlhdGlvbikpCiAgICAgewogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVu
R0xFUy5jcHAKaW5kZXggNjhhZjE0MC4uOGEzMjdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3Bl
bkdMRVMuY3BwCkBAIC0xODcsNyArMTg3LDcgQEAgaW50IEV4dGVuc2lvbnMzRE9wZW5HTEVTOjpn
ZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCKCkKIAogdm9pZCBFeHRlbnNpb25zM0RPcGVuR0xFUzo6
c2V0RVhUQ29udGV4dExvc3RDYWxsYmFjayhzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0
M0Q6OkNvbnRleHRMb3N0Q2FsbGJhY2s+IGNhbGxiYWNrKQogewotICAgIG1fY29udGV4dExvc3RD
YWxsYmFjayA9IHN0ZDo6bW92ZShjYWxsYmFjayk7CisgICAgbV9jb250ZXh0TG9zdENhbGxiYWNr
ID0gV1RGOjptb3ZlKGNhbGxiYWNrKTsKIH0KIAogdm9pZCBFeHRlbnNpb25zM0RPcGVuR0xFUzo6
cmVhZG5QaXhlbHNFWFQoaW50IHgsIGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBo
ZWlnaHQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgR0MzRHNpemVpIGJ1ZlNpemUs
IHZvaWQgKmRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdD
b29yZGluYXRvci5jcHAKaW5kZXggNTJiMWUxZC4uNGNiNDE1ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5n
Q29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtNDEyLDcgKzQx
Miw3IEBAIHZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6cmVsZWFzZUluYWN0aXZlQXRsYXNl
c1RpbWVyRmlyZWQoVGltZXI8Q29tcG9zaXRpbmdDCiAgICAgICAgIGJvb2wgdXNhYmxlRm9yUm9v
dENvbnRlbnRzTGF5ZXIgPSAhYXRsYXMtPnN1cHBvcnRzQWxwaGEoKTsKICAgICAgICAgaWYgKGF0
bGFzLT5pc0luYWN0aXZlKCkpIHsKICAgICAgICAgICAgIGlmICghZm91bmRBY3RpdmVBdGxhc0Zv
clJvb3RDb250ZW50c0xheWVyICYmICFhdGxhc1RvS2VlcEFueXdheSAmJiB1c2FibGVGb3JSb290
Q29udGVudHNMYXllcikKLSAgICAgICAgICAgICAgICBhdGxhc1RvS2VlcEFueXdheSA9IHN0ZDo6
bW92ZShtX3VwZGF0ZUF0bGFzZXNbaV0pOworICAgICAgICAgICAgICAgIGF0bGFzVG9LZWVwQW55
d2F5ID0gV1RGOjptb3ZlKG1fdXBkYXRlQXRsYXNlc1tpXSk7CiAgICAgICAgICAgICBtX3VwZGF0
ZUF0bGFzZXMucmVtb3ZlKGkpOwogICAgICAgICB9IGVsc2UgaWYgKHVzYWJsZUZvclJvb3RDb250
ZW50c0xheWVyKQogICAgICAgICAgICAgZm91bmRBY3RpdmVBdGxhc0ZvclJvb3RDb250ZW50c0xh
eWVyID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NMYXllci5jcHAKaW5kZXggMjlmMDE4Yy4uZjY0ZmVmMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKQEAgLTg4
NSw3ICs4ODUsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YWRqdXN0Q29udGVu
dHNTY2FsZSgpCiAgICAgLy8gd2UgZG8gbm90IHdhbnQgdG8gZHJvcCB0aGUgcHJldmlvdXMgb25l
IGFzIHRoYXQgbWlnaHQgcmVzdWx0IGluCiAgICAgLy8gYnJpZWZseSBzZWVpbmcgZmxpY2tlcmlu
ZyBhcyB0aGUgb2xkIHRpbGVzIG1heSBiZSBkcm9wcGVkIGJlZm9yZQogICAgIC8vIHNvbWV0aGlu
ZyByZXBsYWNlcyB0aGVtLgotICAgIG1fcHJldmlvdXNCYWNraW5nU3RvcmUgPSBzdGQ6Om1vdmUo
bV9tYWluQmFja2luZ1N0b3JlKTsKKyAgICBtX3ByZXZpb3VzQmFja2luZ1N0b3JlID0gV1RGOjpt
b3ZlKG1fbWFpbkJhY2tpbmdTdG9yZSk7CiAKICAgICAvLyBObyByZWFzb24gdG8gc2F2ZSB0aGUg
cHJldmlvdXMgYmFja2luZyBzdG9yZSBmb3Igbm9uLXZpc2libGUgYXJlYXMuCiAgICAgbV9wcmV2
aW91c0JhY2tpbmdTdG9yZS0+cmVtb3ZlQWxsTm9uVmlzaWJsZVRpbGVzKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCmluZGV4
IDM1NzdmYTguLjZjY2VhODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgQ29vcmRp
bmF0ZWRHcmFwaGljc1NjZW5lOjpkaXNwYXRjaE9uTWFpblRocmVhZChzdGQ6OmZ1bmN0aW9uPHZv
aWQoKT4gZnVuY3RpCiAgICAgaWYgKGlzTWFpblRocmVhZCgpKQogICAgICAgICBmdW5jdGlvbigp
OwogICAgIGVsc2UKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChzdGQ6Om1vdmUoZnVuY3Rpb24p
KTsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEY6Om1vdmUoZnVuY3Rpb24pKTsKIH0KIAog
c3RhdGljIGJvb2wgbGF5ZXJTaG91bGRIYXZlQmFja2luZ1N0b3JlKFRleHR1cmVNYXBwZXJMYXll
ciogbGF5ZXIpCkBAIC0zNDEsNyArMzQxLDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2Nl
bmU6OmNyZWF0ZUxheWVyKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCkKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8VGV4dHVyZU1hcHBlckxheWVyPiBuZXdMYXllciA9IHN0ZDo6bWFrZV91bmlxdWU8VGV4dHVy
ZU1hcHBlckxheWVyPigpOwogICAgIG5ld0xheWVyLT5zZXRJRChpZCk7CiAgICAgbmV3TGF5ZXIt
PnNldFNjcm9sbENsaWVudCh0aGlzKTsKLSAgICBtX2xheWVycy5hZGQoaWQsIHN0ZDo6bW92ZShu
ZXdMYXllcikpOworICAgIG1fbGF5ZXJzLmFkZChpZCwgV1RGOjptb3ZlKG5ld0xheWVyKSk7CiB9
CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpkZWxldGVMYXllcnMoY29uc3QgVmVj
dG9yPENvb3JkaW5hdGVkTGF5ZXJJRD4mIGxheWVySURzKQpAQCAtNjI1LDcgKzYyNSw3IEBAIHZv
aWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpzeW5jUmVtb3RlQ29udGVudCgpCiAgICAgYm9v
bCBjYWxsZWRPbk1haW5UaHJlYWQgPSBXVEY6OmlzTWFpblRocmVhZCgpOwogICAgIGlmICghY2Fs
bGVkT25NYWluVGhyZWFkKQogICAgICAgICBtX3JlbmRlclF1ZXVlTXV0ZXgubG9jaygpOwotICAg
IHJlbmRlclF1ZXVlID0gc3RkOjptb3ZlKG1fcmVuZGVyUXVldWUpOworICAgIHJlbmRlclF1ZXVl
ID0gV1RGOjptb3ZlKG1fcmVuZGVyUXVldWUpOwogICAgIGlmICghY2FsbGVkT25NYWluVGhyZWFk
KQogICAgICAgICBtX3JlbmRlclF1ZXVlTXV0ZXgudW5sb2NrKCk7CiAKQEAgLTY5OSw3ICs2OTks
NyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6YXBwZW5kVXBkYXRlKHN0ZDo6ZnVu
Y3Rpb248dm9pZCgpPiBmdW5jdGlvbikKIAogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAg
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcmVuZGVyUXVldWVNdXRleCk7Ci0gICAgbV9yZW5kZXJR
dWV1ZS5hcHBlbmQoc3RkOjptb3ZlKGZ1bmN0aW9uKSk7CisgICAgbV9yZW5kZXJRdWV1ZS5hcHBl
bmQoV1RGOjptb3ZlKGZ1bmN0aW9uKSk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1Nj
ZW5lOjpzZXRBY3RpdmUoYm9vbCBhY3RpdmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q2FjaGVXaW4uY3BwCmluZGV4IDQxMDIzYTguLjg0NWM3
N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250
Q2FjaGVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9G
b250Q2FjaGVXaW4uY3BwCkBAIC01NjksNyArNTY5LDcgQEAgUGFzc093blB0cjxGb250UGxhdGZv
cm1EYXRhPiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2Ny
aXAKICAgICBib29sIHN5bnRoZXNpemVCb2xkID0gaXNHRElGb250V2VpZ2h0Qm9sZCh3ZWlnaHQp
ICYmICFpc0dESUZvbnRXZWlnaHRCb2xkKGxvZ0ZvbnQubGZXZWlnaHQpOwogICAgIGJvb2wgc3lu
dGhlc2l6ZUl0YWxpYyA9IGZvbnREZXNjcmlwdGlvbi5pdGFsaWMoKSAmJiAhbG9nRm9udC5sZkl0
YWxpYzsKIAotICAgIEZvbnRQbGF0Zm9ybURhdGEqIHJlc3VsdCA9IG5ldyBGb250UGxhdGZvcm1E
YXRhKHN0ZDo6bW92ZShoZm9udCksIGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgp
LCBzeW50aGVzaXplQm9sZCwgc3ludGhlc2l6ZUl0YWxpYywgdXNlR0RJKTsKKyAgICBGb250UGxh
dGZvcm1EYXRhKiByZXN1bHQgPSBuZXcgRm9udFBsYXRmb3JtRGF0YShXVEY6Om1vdmUoaGZvbnQp
LCBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRQaXhlbFNpemUoKSwgc3ludGhlc2l6ZUJvbGQsIHN5
bnRoZXNpemVJdGFsaWMsIHVzZUdESSk7CiAKICNpZiBVU0UoQ0cpCiAgICAgYm9vbCBmb250Q3Jl
YXRpb25GYWlsZWQgPSAhcmVzdWx0LT5jZ0ZvbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmNwcAppbmRleCAyY2YzNzg0Li4wOThlMDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
Y3BwCkBAIC02NSw3ICs2NSw3IEBAIEZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBiCiAgICAgYXV0byBo
Zm9udCA9IGFkb3B0R0RJT2JqZWN0KDo6Q3JlYXRlRm9udEluZGlyZWN0KCZsb2dGb250KSk7CiAK
ICAgICBSZXRhaW5QdHI8Q0dGb250UmVmPiBjZ0ZvbnQgPSBhZG9wdENGKENHRm9udENyZWF0ZVdp
dGhQbGF0Zm9ybUZvbnQoJmxvZ0ZvbnQpKTsKLSAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShz
dGQ6Om1vdmUoaGZvbnQpLCBjZ0ZvbnQuZ2V0KCksIHNpemUsIGJvbGQsIGl0YWxpYywgcmVuZGVy
aW5nTW9kZSA9PSBBbHRlcm5hdGVSZW5kZXJpbmdNb2RlKTsKKyAgICByZXR1cm4gRm9udFBsYXRm
b3JtRGF0YShXVEY6Om1vdmUoaGZvbnQpLCBjZ0ZvbnQuZ2V0KCksIHNpemUsIGJvbGQsIGl0YWxp
YywgcmVuZGVyaW5nTW9kZSA9PSBBbHRlcm5hdGVSZW5kZXJpbmdNb2RlKTsKIH0KIAogLy8gQ3Jl
YXRlcyBhIHVuaXF1ZSBhbmQgdW5wcmVkaWN0YWJsZSBmb250IG5hbWUsIGluIG9yZGVyIHRvIGF2
b2lkIGNvbGxpc2lvbnMgYW5kIHRvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8u
Y3BwCmluZGV4IGZmNjM0NDkuLjllNjZjYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1E
YXRhQ2Fpcm8uY3BwCkBAIC02Myw3ICs2Myw3IEBAIEZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShpbnQgc2l6ZSwgYm9vbCBib2xkLCBiCiAK
ICAgICBjYWlyb19mb250X2ZhY2VfdCogZm9udEZhY2UgPSBjYWlyb193aW4zMl9mb250X2ZhY2Vf
Y3JlYXRlX2Zvcl9oZm9udChoZm9udC5nZXQoKSk7CiAKLSAgICBGb250UGxhdGZvcm1EYXRhIGZv
bnRQbGF0Zm9ybURhdGEoc3RkOjptb3ZlKGhmb250KSwgZm9udEZhY2UsIHNpemUsIGJvbGQsIGl0
YWxpYyk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKFdURjo6bW92ZSho
Zm9udCksIGZvbnRGYWNlLCBzaXplLCBib2xkLCBpdGFsaWMpOwogCiAgICAgY2Fpcm9fZm9udF9m
YWNlX2Rlc3Ryb3koZm9udEZhY2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YUNHV2luLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhQ0dXaW4uY3BwCmluZGV4
IDI4NmJlMDguLmVkOTU1MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhQ0dXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhQ0dXaW4uY3BwCkBAIC0xMjEs
NyArMTIxLDcgQEAgRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShHRElPYmplY3Q8
SEZPTlQ+IGhmb250LCBDR0ZvbnRSZWYgZm9udCwgZmxvYXQKICAgICAsIG1fb3JpZW50YXRpb24o
SG9yaXpvbnRhbCkKICAgICAsIG1fc2l6ZShzaXplKQogICAgICwgbV93aWR0aFZhcmlhbnQoUmVn
dWxhcldpZHRoKQotICAgICwgbV9mb250KFNoYXJlZEdESU9iamVjdDxIRk9OVD46OmNyZWF0ZShz
dGQ6Om1vdmUoaGZvbnQpKSkKKyAgICAsIG1fZm9udChTaGFyZWRHRElPYmplY3Q8SEZPTlQ+Ojpj
cmVhdGUoV1RGOjptb3ZlKGhmb250KSkpCiAgICAgLCBtX2NnRm9udChmb250KQogICAgICwgbV9p
c0NvbG9yQml0bWFwRm9udChmYWxzZSkKICAgICAsIG1faXNDb21wb3NpdGVGb250UmVmZXJlbmNl
KGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0ZvbnRQbGF0Zm9ybURhdGFDYWlyb1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YUNhaXJvV2luLmNwcAppbmRleCBkOGY4MTc3Li4z
MzljMTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
Rm9udFBsYXRmb3JtRGF0YUNhaXJvV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YUNhaXJvV2luLmNwcApAQCAtNTcsNyArNTcs
NyBAQCB2b2lkIEZvbnRQbGF0Zm9ybURhdGE6OnBsYXRmb3JtRGF0YUluaXQoSEZPTlQgZm9udCwg
ZmxvYXQgc2l6ZSwgSERDIGhkYywgV0NIQVIqCiB9CiAKIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQ
bGF0Zm9ybURhdGEoR0RJT2JqZWN0PEhGT05UPiBmb250LCBjYWlyb19mb250X2ZhY2VfdCogZm9u
dEZhY2UsIGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlKQotICAgIDogbV9mb250
KFNoYXJlZEdESU9iamVjdDxIRk9OVD46OmNyZWF0ZShzdGQ6Om1vdmUoZm9udCkpKQorICAgIDog
bV9mb250KFNoYXJlZEdESU9iamVjdDxIRk9OVD46OmNyZWF0ZShXVEY6Om1vdmUoZm9udCkpKQog
ICAgICwgbV9zaXplKHNpemUpCiAgICAgLCBtX29yaWVudGF0aW9uKEhvcml6b250YWwpCiAgICAg
LCBtX3dpZHRoVmFyaWFudChSZWd1bGFyV2lkdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YVdpbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YVdpbi5jcHAKaW5k
ZXggODUxOTQyNy4uMDkzMzJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhV2luLmNwcApAQCAtMzgsNyAr
MzgsNyBAQCB1c2luZyBzdGQ6Om1pbjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRm9udFBsYXRm
b3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShHRElPYmplY3Q8SEZPTlQ+IGZvbnQsIGZsb2F0IHNp
emUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlLCBib29sIHVzZUdESSkKLSAgICA6IG1fZm9udChT
aGFyZWRHRElPYmplY3Q8SEZPTlQ+OjpjcmVhdGUoc3RkOjptb3ZlKGZvbnQpKSkKKyAgICA6IG1f
Zm9udChTaGFyZWRHRElPYmplY3Q8SEZPTlQ+OjpjcmVhdGUoV1RGOjptb3ZlKGZvbnQpKSkKICAg
ICAsIG1fc2l6ZShzaXplKQogICAgICwgbV9vcmllbnRhdGlvbihIb3Jpem9udGFsKQogICAgICwg
bV93aWR0aFZhcmlhbnQoUmVndWxhcldpZHRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NoYXJlZEdESU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NoYXJlZEdESU9iamVjdC5oCmluZGV4IGRkMjY4M2EuLjJh
ZTQ4YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9T
aGFyZWRHRElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vU2hhcmVkR0RJT2JqZWN0LmgKQEAgLTM2LDcgKzM2LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1l
IFQ+IGNsYXNzIFNoYXJlZEdESU9iamVjdCA6IHB1YmxpYyBSZWZDb3VudGVkPFNoYXJlZEdESU9i
amVjdDwKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRHRElPYmplY3Q+IGNy
ZWF0ZShHRElPYmplY3Q8VD4gb2JqZWN0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBTaGFyZWRHRElPYmplY3Q8VD4oc3RkOjptb3ZlKG9iamVjdCkpKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTaGFyZWRHRElPYmplY3Q8VD4oV1RGOjptb3ZlKG9iamVjdCkpKTsK
ICAgICB9CiAKICAgICBUIGdldCgpIGNvbnN0CkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKIAog
cHJpdmF0ZToKICAgICBleHBsaWNpdCBTaGFyZWRHRElPYmplY3QoR0RJT2JqZWN0PFQ+IG9iamVj
dCkKLSAgICAgICAgOiBtX29iamVjdChzdGQ6Om1vdmUob2JqZWN0KSkKKyAgICAgICAgOiBtX29i
amVjdChXVEY6Om1vdmUob2JqZWN0KSkKICAgICB7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFXaW4uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhV2luLmNw
cAppbmRleCBmZWRkM2VkLi42YzE0ODY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YVdpbi5jcHAKQEAgLTE0MCw3
ICsxNDAsNyBAQCBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBTaW1wbGVGb250RGF0YTo6cGxh
dGZvcm1DcmVhdGVTY2FsZWRGb250RGF0YShjb25zdCBGbwogICAgIEdldE9iamVjdChtX3BsYXRm
b3JtRGF0YS5oZm9udCgpLCBzaXplb2YoTE9HRk9OVCksICZ3aW5mb250KTsKICAgICB3aW5mb250
LmxmSGVpZ2h0ID0gLWxyb3VuZGYoc2NhbGVkU2l6ZSAqIChtX3BsYXRmb3JtRGF0YS51c2VHREko
KSA/IDEgOiAzMikpOwogICAgIGF1dG8gaGZvbnQgPSBhZG9wdEdESU9iamVjdCg6OkNyZWF0ZUZv
bnRJbmRpcmVjdCgmd2luZm9udCkpOwotICAgIHJldHVybiBTaW1wbGVGb250RGF0YTo6Y3JlYXRl
KEZvbnRQbGF0Zm9ybURhdGEoc3RkOjptb3ZlKGhmb250KSwgc2NhbGVkU2l6ZSwgbV9wbGF0Zm9y
bURhdGEuc3ludGhldGljQm9sZCgpLCBtX3BsYXRmb3JtRGF0YS5zeW50aGV0aWNPYmxpcXVlKCks
IG1fcGxhdGZvcm1EYXRhLnVzZUdESSgpKSwgaXNDdXN0b21Gb250KCksIGZhbHNlKTsKKyAgICBy
ZXR1cm4gU2ltcGxlRm9udERhdGE6OmNyZWF0ZShGb250UGxhdGZvcm1EYXRhKFdURjo6bW92ZSho
Zm9udCksIHNjYWxlZFNpemUsIG1fcGxhdGZvcm1EYXRhLnN5bnRoZXRpY0JvbGQoKSwgbV9wbGF0
Zm9ybURhdGEuc3ludGhldGljT2JsaXF1ZSgpLCBtX3BsYXRmb3JtRGF0YS51c2VHREkoKSksIGlz
Q3VzdG9tRm9udCgpLCBmYWxzZSk7CiB9CiAKIGJvb2wgU2ltcGxlRm9udERhdGE6OmNvbnRhaW5z
Q2hhcmFjdGVycyhjb25zdCBVQ2hhciogY2hhcmFjdGVycywgaW50IGxlbmd0aCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtUb3VjaENvbnRleHRIZWxw
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1RvdWNoQ29udGV4dEhlbHBl
ci5jcHAKaW5kZXggNTU4NTg2MS4uNTdmMmY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL0d0a1RvdWNoQ29udGV4dEhlbHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL0d0a1RvdWNoQ29udGV4dEhlbHBlci5jcHAKQEAgLTM5LDcgKzM5LDcg
QEAgYm9vbCBHdGtUb3VjaENvbnRleHRIZWxwZXI6OmhhbmRsZUV2ZW50KEdka0V2ZW50KiB0b3Vj
aEV2ZW50KQogICAgIGNhc2UgR0RLX1RPVUNIX0JFR0lOOiB7CiAgICAgICAgIEFTU0VSVCghbV90
b3VjaEV2ZW50cy5jb250YWlucyhzZXF1ZW5jZSkpOwogICAgICAgICBHVW5pcXVlUHRyPEdka0V2
ZW50PiBldmVudChnZGtfZXZlbnRfY29weSh0b3VjaEV2ZW50KSk7Ci0gICAgICAgIG1fdG91Y2hF
dmVudHMuYWRkKHNlcXVlbmNlLCBzdGQ6Om1vdmUoZXZlbnQpKTsKKyAgICAgICAgbV90b3VjaEV2
ZW50cy5hZGQoc2VxdWVuY2UsIFdURjo6bW92ZShldmVudCkpOwogICAgICAgICBicmVhazsKICAg
ICB9CiAgICAgY2FzZSBHREtfVE9VQ0hfVVBEQVRFOiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9sZXZlbGRiL0xldmVsREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9sZXZlbGRiL0xldmVsREJEYXRhYmFzZS5jcHAKaW5kZXggOTM2MDNmNi4uNzI5
Njg2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGV2ZWxkYi9MZXZlbERC
RGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xldmVsZGIvTGV2ZWxE
QkRhdGFiYXNlLmNwcApAQCAtMTQ5LDcgKzE0OSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxMZXZlbERC
RGF0YWJhc2U+IExldmVsREJEYXRhYmFzZTo6b3Blbihjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBj
CiAKICAgICBhdXRvIHJlc3VsdCA9IHN0ZDo6bWFrZV91bmlxdWU8TGV2ZWxEQkRhdGFiYXNlPigp
OwogICAgIHJlc3VsdC0+bV9kYiA9IHN0ZDo6dW5pcXVlX3B0cjxsZXZlbGRiOjpEQj4oZGIpOwot
ICAgIHJlc3VsdC0+bV9jb21wYXJhdG9yQWRhcHRlciA9IHN0ZDo6bW92ZShjb21wYXJhdG9yQWRh
cHRlcik7CisgICAgcmVzdWx0LT5tX2NvbXBhcmF0b3JBZGFwdGVyID0gV1RGOjptb3ZlKGNvbXBh
cmF0b3JBZGFwdGVyKTsKICAgICByZXN1bHQtPm1fY29tcGFyYXRvciA9IGNvbXBhcmF0b3I7CiAK
ICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMTY5LDkgKzE2OSw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxM
ZXZlbERCRGF0YWJhc2U+IExldmVsREJEYXRhYmFzZTo6b3BlbkluTWVtb3J5KGNvbnN0IExldmVs
REJDb21wCiAgICAgfQogCiAgICAgYXV0byByZXN1bHQgPSBzdGQ6Om1ha2VfdW5pcXVlPExldmVs
REJEYXRhYmFzZT4oKTsKLSAgICByZXN1bHQtPm1fZW52ID0gc3RkOjptb3ZlKGluTWVtb3J5RW52
KTsKKyAgICByZXN1bHQtPm1fZW52ID0gV1RGOjptb3ZlKGluTWVtb3J5RW52KTsKICAgICByZXN1
bHQtPm1fZGIgPSBzdGQ6OnVuaXF1ZV9wdHI8bGV2ZWxkYjo6REI+KGRiKTsKLSAgICByZXN1bHQt
Pm1fY29tcGFyYXRvckFkYXB0ZXIgPSBzdGQ6Om1vdmUoY29tcGFyYXRvckFkYXB0ZXIpOworICAg
IHJlc3VsdC0+bV9jb21wYXJhdG9yQWRhcHRlciA9IFdURjo6bW92ZShjb21wYXJhdG9yQWRhcHRl
cik7CiAgICAgcmVzdWx0LT5tX2NvbXBhcmF0b3IgPSBjb21wYXJhdG9yOwogCiAgICAgcmV0dXJu
IHJlc3VsdDsKQEAgLTI1OCw3ICsyNTgsNyBAQCBwcml2YXRlOgogfQogCiBJdGVyYXRvckltcGw6
Okl0ZXJhdG9ySW1wbChzdGQ6OnVuaXF1ZV9wdHI8bGV2ZWxkYjo6SXRlcmF0b3I+IGl0KQotICAg
IDogbV9pdGVyYXRvcihzdGQ6Om1vdmUoaXQpKQorICAgIDogbV9pdGVyYXRvcihXVEY6Om1vdmUo
aXQpKQogewogfQogCkBAIC0zMjAsNyArMzIwLDcgQEAgc3RkOjp1bmlxdWVfcHRyPExldmVsREJJ
dGVyYXRvcj4gTGV2ZWxEQkRhdGFiYXNlOjpjcmVhdGVJdGVyYXRvcihjb25zdCBMZXZlbERCU24K
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8bGV2ZWxkYjo6SXRlcmF0b3I+IGkobV9kYi0+TmV3SXRlcmF0
b3IocmVhZE9wdGlvbnMpKTsKICAgICBpZiAoIWkpIC8vIEZJWE1FOiBEb3VibGUgY2hlY2sgaWYg
d2UgYWN0dWFsbHkgbmVlZCB0byBjaGVjayB0aGlzLgogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxJdGVyYXRvckltcGw+KHN0ZDo6bW92ZShpKSk7
CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8SXRlcmF0b3JJbXBsPihXVEY6Om1vdmUoaSkp
OwogfQogCiBjb25zdCBMZXZlbERCQ29tcGFyYXRvciogTGV2ZWxEQkRhdGFiYXNlOjpjb21wYXJh
dG9yKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9ISURH
YW1lcGFkUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0hJREdhbWVw
YWRQcm92aWRlci5jcHAKaW5kZXggN2EzMDRjZS4uODI1Y2QzNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL0hJREdhbWVwYWRQcm92aWRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL0hJREdhbWVwYWRQcm92aWRlci5jcHAKQEAgLTE3Niw3ICsx
NzYsNyBAQCB2b2lkIEhJREdhbWVwYWRQcm92aWRlcjo6ZGV2aWNlQWRkZWQoSU9ISUREZXZpY2VS
ZWYgZGV2aWNlKQogICAgICAgICBtX2dhbWVwYWRWZWN0b3IucmVzaXplKGluZGV4ICsgMSk7CiAK
ICAgICBtX2dhbWVwYWRWZWN0b3JbaW5kZXhdID0gZ2FtZXBhZC5nZXQoKTsKLSAgICBtX2dhbWVw
YWRNYXAuc2V0KGRldmljZSwgc3RkOjptb3ZlKGdhbWVwYWQpKTsKKyAgICBtX2dhbWVwYWRNYXAu
c2V0KGRldmljZSwgV1RGOjptb3ZlKGdhbWVwYWQpKTsKIAogICAgIGlmICghbV9zaG91bGREaXNw
YXRjaENhbGxiYWNrcykgewogICAgICAgICAvLyBUaGlzIGFkZGVkIGRldmljZSBpcyB0aGUgcmVz
dWx0IG9mIHVzIHN0YXJ0aW5nIHRvIG1vbml0b3IgZ2FtZXBhZHMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhLmgKaW5kZXggZjc2YmRlZS4uMGQwYjNiNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGEuaApAQCAtNDQsMTQgKzQ0LDE0
IEBAIGNsYXNzIFJhd0RhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxSYXdEYXRhPiB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UmF3RGF0YT4gY3JlYXRlKFZlY3RvcjxjaGFyPiYmIGRh
dGEpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJhd0RhdGEoc3RkOjptb3Zl
KGRhdGEpKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmF3RGF0YShXVEY6Om1vdmUo
ZGF0YSkpKTsKICAgICB9CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxSYXdEYXRhPiBjcmVhdGUo
Y29uc3QgY2hhciogZGF0YSwgc2l6ZV90IHNpemUpCiAgICAgewogICAgICAgICBWZWN0b3I8Y2hh
cj4gZGF0YVZlY3RvcihzaXplKTsKICAgICAgICAgbWVtY3B5KGRhdGFWZWN0b3IuZGF0YSgpLCBk
YXRhLCBzaXplKTsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSYXdEYXRhKHN0ZDo6bW92
ZShkYXRhVmVjdG9yKSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJhd0RhdGEoV1RG
Ojptb3ZlKGRhdGFWZWN0b3IpKSk7CiAgICAgfQogCiAgICAgY29uc3QgY2hhciogZGF0YSgpIGNv
bnN0IHsgcmV0dXJuIG1fZGF0YS5kYXRhKCk7IH0KQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgog
CiBwcml2YXRlOgogICAgIFJhd0RhdGEoVmVjdG9yPGNoYXI+JiYgZGF0YSkKLSAgICAgICAgOiBt
X2RhdGEoc3RkOjptb3ZlKGRhdGEpKQorICAgICAgICA6IG1fZGF0YShXVEY6Om1vdmUoZGF0YSkp
CiAgICAgewogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9CbG9iUGFydC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUGFy
dC5oCmluZGV4IDkzZTc5YjQuLjAzYjRhY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvQmxvYlBhcnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JQYXJ0LmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogCiAgICAgQmxvYlBh
cnQoVmVjdG9yPGNoYXI+IGRhdGEpCiAgICAgICAgIDogbV90eXBlKERhdGEpCi0gICAgICAgICwg
bV9kYXRhKHN0ZDo6bW92ZShkYXRhKSkKKyAgICAgICAgLCBtX2RhdGEoV1RGOjptb3ZlKGRhdGEp
KQogICAgIHsKICAgICB9CiAKQEAgLTY1LDcgKzY1LDcgQEAgcHVibGljOgogICAgIFZlY3Rvcjxj
aGFyPiBtb3ZlRGF0YSgpCiAgICAgewogICAgICAgICBBU1NFUlQobV90eXBlID09IERhdGEpOwot
ICAgICAgICByZXR1cm4gc3RkOjptb3ZlKG1fZGF0YSk7CisgICAgICAgIHJldHVybiBXVEY6Om1v
dmUobV9kYXRhKTsKICAgICB9CiAKICAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBIZWFkZXJNYXAuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVyTWFwLmNwcAppbmRleCBj
YzNlY2MzLi5iMmY1ZTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0hUVFBIZWFkZXJNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvSFRUUEhlYWRlck1hcC5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgdm9pZCBIVFRQSGVhZGVyTWFw
OjphZG9wdChzdGQ6OnVuaXF1ZV9wdHI8Q3Jvc3NUaHJlYWRIVFRQSGVhZGVyTWFwRGF0YT4gZGF0
YSkKICAgICBtX2hlYWRlcnMuY2xlYXIoKTsKIAogICAgIGZvciAoYXV0byYgaGVhZGVyIDogKmRh
dGEpCi0gICAgICAgIG1faGVhZGVycy5hZGQoc3RkOjptb3ZlKGhlYWRlci5maXJzdCksIHN0ZDo6
bW92ZShoZWFkZXIuc2Vjb25kKSk7CisgICAgICAgIG1faGVhZGVycy5hZGQoV1RGOjptb3ZlKGhl
YWRlci5maXJzdCksIFdURjo6bW92ZShoZWFkZXIuc2Vjb25kKSk7CiB9CiAKIHN0YXRpYyBTdHJp
bmcgaW50ZXJuSFRUUEhlYWRlck5hbWVTdHJpbmcoY29uc3QgU3RyaW5nJiBuYW1lU3RyaW5nKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RhdGVO
b3RpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0
ZU5vdGlmaWVyLmNwcAppbmRleCA3NTQwYTc4Li5iZGFjYTE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcApA
QCAtNTcsNyArNTcsNyBAQCB2b2lkIE5ldHdvcmtTdGF0ZU5vdGlmaWVyOjphZGROZXR3b3JrU3Rh
dGVDaGFuZ2VMaXN0ZW5lcihzdGQ6OmZ1bmN0aW9uPHZvaWQgKGJvbwogICAgIHJlZ2lzdGVyT2Jz
ZXJ2ZXJJZk5lY2Vzc2FyeSgpOwogI2VuZGlmCiAKLSAgICBtX2xpc3RlbmVycy5hcHBlbmQoc3Rk
Ojptb3ZlKGxpc3RlbmVyKSk7CisgICAgbV9saXN0ZW5lcnMuYXBwZW5kKFdURjo6bW92ZShsaXN0
ZW5lcikpOwogfQogCiB2b2lkIE5ldHdvcmtTdGF0ZU5vdGlmaWVyOjpub3RpZnlOZXR3b3JrU3Rh
dGVDaGFuZ2UoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZS5oCmluZGV4IDhiZGFmMjUuLmJkZjQyZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKQEAgLTE2NCw3ICsxNjQs
NyBAQCBwdWJsaWM6CiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICBRdWlja0xvb2tIYW5kbGUq
IHF1aWNrTG9va0hhbmRsZSgpIHsgcmV0dXJuIG1fcXVpY2tMb29rLmdldCgpOyB9Ci0gICAgdm9p
ZCBzZXRRdWlja0xvb2tIYW5kbGUoc3RkOjp1bmlxdWVfcHRyPFF1aWNrTG9va0hhbmRsZT4gaGFu
ZGxlKSB7IG1fcXVpY2tMb29rID0gc3RkOjptb3ZlKGhhbmRsZSk7IH0KKyAgICB2b2lkIHNldFF1
aWNrTG9va0hhbmRsZShzdGQ6OnVuaXF1ZV9wdHI8UXVpY2tMb29rSGFuZGxlPiBoYW5kbGUpIHsg
bV9xdWlja0xvb2sgPSBXVEY6Om1vdmUoaGFuZGxlKTsgfQogI2VuZGlmCiAKICNpZiBQTEFURk9S
TShXSU4pICYmIFVTRShDVVJMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKaW5kZXggN2FkMDVjNS4uMDlkOGZiMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVl
c3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
UmVxdWVzdEJhc2UuY3BwCkBAIC02MCw3ICs2MCw3IEBAIFBhc3NPd25QdHI8UmVzb3VyY2VSZXF1
ZXN0PiBSZXNvdXJjZVJlcXVlc3RCYXNlOjphZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVz
CiAgICAgcmVxdWVzdC0+c2V0UHJpb3JpdHkoZGF0YS0+bV9wcmlvcml0eSk7CiAKICAgICByZXF1
ZXN0LT51cGRhdGVSZXNvdXJjZVJlcXVlc3QoKTsKLSAgICByZXF1ZXN0LT5tX2h0dHBIZWFkZXJG
aWVsZHMuYWRvcHQoc3RkOjptb3ZlKGRhdGEtPm1faHR0cEhlYWRlcnMpKTsKKyAgICByZXF1ZXN0
LT5tX2h0dHBIZWFkZXJGaWVsZHMuYWRvcHQoV1RGOjptb3ZlKGRhdGEtPm1faHR0cEhlYWRlcnMp
KTsKIAogICAgIHNpemVfdCBlbmNvZGluZ0NvdW50ID0gZGF0YS0+bV9yZXNwb25zZUNvbnRlbnRE
aXNwb3NpdGlvbkVuY29kaW5nRmFsbGJhY2tBcnJheS5zaXplKCk7CiAgICAgaWYgKGVuY29kaW5n
Q291bnQgPiAwKSB7CkBAIC00NjcsNyArNDY3LDcgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3RCYXNl
OjpzZXRIVFRQSGVhZGVyRmllbGRzKEhUVFBIZWFkZXJNYXAgaGVhZGVyRmllbGRzKQogewogICAg
IHVwZGF0ZVJlc291cmNlUmVxdWVzdCgpOwogCi0gICAgbV9odHRwSGVhZGVyRmllbGRzID0gc3Rk
Ojptb3ZlKGhlYWRlckZpZWxkcyk7CisgICAgbV9odHRwSGVhZGVyRmllbGRzID0gV1RGOjptb3Zl
KGhlYWRlckZpZWxkcyk7CiAKICAgICBpZiAodXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgp
KQogICAgICAgICBtX3BsYXRmb3JtUmVxdWVzdFVwZGF0ZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5j
cHAKaW5kZXggMDFlZTUzYi4uNzlkNGQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKQEAgLTEwNyw3ICsx
MDcsNyBAQCBQYXNzT3duUHRyPFJlc291cmNlUmVzcG9uc2U+IFJlc291cmNlUmVzcG9uc2VCYXNl
OjphZG9wdChQYXNzT3duUHRyPENyb3NzVGhyZWFkUgogICAgIHJlc3BvbnNlLT5zZXRIVFRQU3Rh
dHVzVGV4dChkYXRhLT5tX2h0dHBTdGF0dXNUZXh0KTsKIAogICAgIHJlc3BvbnNlLT5sYXp5SW5p
dChDb21tb25BbmRVbmNvbW1vbkZpZWxkcyk7Ci0gICAgcmVzcG9uc2UtPm1faHR0cEhlYWRlckZp
ZWxkcy5hZG9wdChzdGQ6Om1vdmUoZGF0YS0+bV9odHRwSGVhZGVycykpOworICAgIHJlc3BvbnNl
LT5tX2h0dHBIZWFkZXJGaWVsZHMuYWRvcHQoV1RGOjptb3ZlKGRhdGEtPm1faHR0cEhlYWRlcnMp
KTsKICAgICByZXNwb25zZS0+bV9yZXNvdXJjZUxvYWRUaW1pbmcgPSBkYXRhLT5tX3Jlc291cmNl
TG9hZFRpbWluZzsKICAgICByZXNwb25zZS0+ZG9QbGF0Zm9ybUFkb3B0KGRhdGEpOwogICAgIHJl
dHVybiByZXNwb25zZS5yZWxlYXNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL0Zvcm1EYXRhU3RyZWFtQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9Gb3JtRGF0YVN0cmVhbUNGTmV0LmNwcAppbmRleCAzZWQ4Mjc2
Li4yMGM3NTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L0Zvcm1EYXRhU3RyZWFtQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2YvRm9ybURhdGFTdHJlYW1DRk5ldC5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBzdGF0
aWMgYm9vbCBhZHZhbmNlQ3VycmVudFN0cmVhbShGb3JtU3RyZWFtRmllbGRzKiBmb3JtKQogICAg
ICAgICBzaXplX3Qgc2l6ZSA9IG5leHRJbnB1dC5tX2RhdGEuc2l6ZSgpOwogICAgICAgICBNYWxs
b2NQdHI8Y2hhcj4gZGF0YSA9IG5leHRJbnB1dC5tX2RhdGEucmVsZWFzZUJ1ZmZlcigpOwogICAg
ICAgICBmb3JtLT5jdXJyZW50U3RyZWFtID0gQ0ZSZWFkU3RyZWFtQ3JlYXRlV2l0aEJ5dGVzTm9D
b3B5KDAsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVUludDgqPihkYXRhLmdldCgpKSwgc2l6ZSwg
a0NGQWxsb2NhdG9yTnVsbCk7Ci0gICAgICAgIGZvcm0tPmN1cnJlbnREYXRhID0gc3RkOjptb3Zl
KGRhdGEpOworICAgICAgICBmb3JtLT5jdXJyZW50RGF0YSA9IFdURjo6bW92ZShkYXRhKTsKICAg
ICB9IGVsc2UgewogICAgICAgICAvLyBDaGVjayBpZiB0aGUgZmlsZSBoYXMgYmVlbiBjaGFuZ2Vk
IG9yIG5vdCBpZiByZXF1aXJlZC4KICAgICAgICAgaWYgKGlzVmFsaWRGaWxlVGltZShuZXh0SW5w
dXQubV9leHBlY3RlZEZpbGVNb2RpZmljYXRpb25UaW1lKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAK
aW5kZXggYjZmNmEzOC4uNjZiNDJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCkBAIC00OTQsNyAr
NDk0LDcgQEAgQ0ZVUkxDb25uZWN0aW9uUmVmIFJlc291cmNlSGFuZGxlOjpjb25uZWN0aW9uKCkg
Y29uc3QKIFJldGFpblB0cjxDRlVSTENvbm5lY3Rpb25SZWY+IFJlc291cmNlSGFuZGxlOjpyZWxl
YXNlQ29ubmVjdGlvbkZvckRvd25sb2FkKCkKIHsKICAgICBMT0coTmV0d29yaywgIkNGTmV0IC0g
Sm9iICVwIHJlbGVhc2luZyBjb25uZWN0aW9uICVwIGZvciBkb3dubG9hZCIsIHRoaXMsIGQtPm1f
Y29ubmVjdGlvbi5nZXQoKSk7Ci0gICAgcmV0dXJuIHN0ZDo6bW92ZShkLT5tX2Nvbm5lY3Rpb24p
OworICAgIHJldHVybiBXVEY6Om1vdmUoZC0+bV9jb25uZWN0aW9uKTsKIH0KIAogQ0ZTdHJpbmdS
ZWYgUmVzb3VyY2VIYW5kbGU6OnN5bmNocm9ub3VzTG9hZFJ1bkxvb3BNb2RlKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVNYW5h
Z2VyLmNwcAppbmRleCA3ZmIwMDUxLi42YjI2ZDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENhY2hlTWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZU1hbmFnZXIuY3BwCkBAIC0x
NDUsNyArMTQ1LDcgQEAgdm9pZCBDdXJsQ2FjaGVNYW5hZ2VyOjpsb2FkSW5kZXgoKQogICAgICAg
ICAgICAgbV9jdXJyZW50U3RvcmFnZVNpemUgKz0gY2FjaGVFbnRyeS0+ZW50cnlTaXplKCk7CiAg
ICAgICAgICAgICBtYWtlUm9vbUZvck5ld0VudHJ5KCk7CiAgICAgICAgICAgICBtX0xSVUVudHJ5
TGlzdC5wcmVwZW5kT3JNb3ZlVG9GaXJzdCh1cmwpOwotICAgICAgICAgICAgbV9pbmRleC5zZXQo
dXJsLCBzdGQ6Om1vdmUoY2FjaGVFbnRyeSkpOworICAgICAgICAgICAgbV9pbmRleC5zZXQodXJs
LCBXVEY6Om1vdmUoY2FjaGVFbnRyeSkpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGNh
Y2hlRW50cnktPmludmFsaWRhdGUoKTsKIApAQCAtMjE3LDcgKzIxNyw3IEBAIHZvaWQgQ3VybENh
Y2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlJiBqb2IsIFJlc291
cmNlUmVzcG9uc2UmCiAgICAgICAgIGJvb2wgY2FjaGVhYmxlID0gY2FjaGVFbnRyeS0+cGFyc2VS
ZXNwb25zZUhlYWRlcnMocmVzcG9uc2UpOwogICAgICAgICBpZiAoY2FjaGVhYmxlKSB7CiAgICAg
ICAgICAgICBtX0xSVUVudHJ5TGlzdC5wcmVwZW5kT3JNb3ZlVG9GaXJzdCh1cmwpOwotICAgICAg
ICAgICAgbV9pbmRleC5zZXQodXJsLCBzdGQ6Om1vdmUoY2FjaGVFbnRyeSkpOworICAgICAgICAg
ICAgbV9pbmRleC5zZXQodXJsLCBXVEY6Om1vdmUoY2FjaGVFbnRyeSkpOwogICAgICAgICAgICAg
c2F2ZVJlc3BvbnNlSGVhZGVycyh1cmwsIHJlc3BvbnNlKTsKICAgICAgICAgfQogICAgIH0gZWxz
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tM
b29rLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLm1t
CmluZGV4IDg5ZGY0MDguLjk2Yzg3MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW0KQEAgLTQyOCw3ICs0MjgsNyBAQCBzdGQ6OnVuaXF1
ZV9wdHI8UXVpY2tMb29rSGFuZGxlPiBRdWlja0xvb2tIYW5kbGU6OmNyZWF0ZShSZXNvdXJjZUhh
bmRsZSogaGFuZGxlLAogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFF1aWNrTG9va0hhbmRsZT4gcXVp
Y2tMb29rSGFuZGxlKG5ldyBRdWlja0xvb2tIYW5kbGUoW2hhbmRsZS0+Zmlyc3RSZXF1ZXN0KCku
bnNVUkxSZXF1ZXN0KERvTm90VXBkYXRlSFRUUEJvZHkpIFVSTF0sIGNvbm5lY3Rpb24sIG5zUmVz
cG9uc2UsIGRlbGVnYXRlKSk7CiAgICAgaGFuZGxlLT5jbGllbnQoKS0+ZGlkQ3JlYXRlUXVpY2tM
b29rSGFuZGxlKCpxdWlja0xvb2tIYW5kbGUpOwotICAgIHJldHVybiBzdGQ6Om1vdmUocXVpY2tM
b29rSGFuZGxlKTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKHF1aWNrTG9va0hhbmRsZSk7CiB9CiAK
ICNpZiBVU0UoQ0ZORVRXT1JLKQpAQCAtNDQyLDcgKzQ0Miw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxR
dWlja0xvb2tIYW5kbGU+IFF1aWNrTG9va0hhbmRsZTo6Y3JlYXRlKFJlc291cmNlSGFuZGxlKiBo
YW5kbGUsCiAgICAgV2ViUXVpY2tMb29rSGFuZGxlQXNEZWxlZ2F0ZSAqZGVsZWdhdGUgPSBbW1tX
ZWJRdWlja0xvb2tIYW5kbGVBc0RlbGVnYXRlIGFsbG9jXSBpbml0V2l0aENvbm5lY3Rpb25EZWxl
Z2F0ZTpjb25uZWN0aW9uRGVsZWdhdGVdIGF1dG9yZWxlYXNlXTsKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8UXVpY2tMb29rSGFuZGxlPiBxdWlja0xvb2tIYW5kbGUobmV3IFF1aWNrTG9va0hhbmRsZShb
aGFuZGxlLT5maXJzdFJlcXVlc3QoKS5uc1VSTFJlcXVlc3QoRG9Ob3RVcGRhdGVIVFRQQm9keSkg
VVJMXSwgbmlsLCBuc1Jlc3BvbnNlLCBkZWxlZ2F0ZSkpOwogICAgIGhhbmRsZS0+Y2xpZW50KCkt
PmRpZENyZWF0ZVF1aWNrTG9va0hhbmRsZSgqcXVpY2tMb29rSGFuZGxlKTsKLSAgICByZXR1cm4g
c3RkOjptb3ZlKHF1aWNrTG9va0hhbmRsZSk7CisgICAgcmV0dXJuIFdURjo6bW92ZShxdWlja0xv
b2tIYW5kbGUpOwogfQogCiBDRlVSTFJlc3BvbnNlUmVmIFF1aWNrTG9va0hhbmRsZTo6Y2ZSZXNw
b25zZSgpCkBAIC00NjAsNyArNDYwLDcgQEAgc3RkOjp1bmlxdWVfcHRyPFF1aWNrTG9va0hhbmRs
ZT4gUXVpY2tMb29rSGFuZGxlOjpjcmVhdGUoUmVzb3VyY2VMb2FkZXIqIGxvYWRlciwKICAgICBS
ZXRhaW5QdHI8V2ViUmVzb3VyY2VMb2FkZXJRdWlja0xvb2tEZWxlZ2F0ZT4gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbV2ViUmVzb3VyY2VMb2FkZXJRdWlja0xvb2tEZWxlZ2F0ZSBhbGxvY10gaW5pdFdp
dGhSZXNvdXJjZUxvYWRlcjpsb2FkZXJdKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UXVpY2tMb29r
SGFuZGxlPiBxdWlja0xvb2tIYW5kbGUobmV3IFF1aWNrTG9va0hhbmRsZShbbG9hZGVyLT5vcmln
aW5hbFJlcXVlc3QoKS5uc1VSTFJlcXVlc3QoRG9Ob3RVcGRhdGVIVFRQQm9keSkgVVJMXSwgbmls
LCByZXNwb25zZSwgZGVsZWdhdGUuZ2V0KCkpKTsKICAgICBsb2FkZXItPmRpZENyZWF0ZVF1aWNr
TG9va0hhbmRsZSgqcXVpY2tMb29rSGFuZGxlKTsKLSAgICByZXR1cm4gc3RkOjptb3ZlKHF1aWNr
TG9va0hhbmRsZSk7CisgICAgcmV0dXJuIFdURjo6bW92ZShxdWlja0xvb2tIYW5kbGUpOwogfQog
CiBOU1VSTFJlc3BvbnNlICpRdWlja0xvb2tIYW5kbGU6Om5zUmVzcG9uc2UoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vz
c2lvblNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdv
cmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCmluZGV4IGNiZDc0YjQuLjBkZGE1YjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNl
c3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKQEAgLTM3LDcgKzM3LDcgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b24oc3RkOjp1bmlxdWVfcHRyPFNvdXBOZXR3b3JrU2Vzc2lvbj4gc2Vzc2lvbikKLSAgICA6IG1f
c2Vzc2lvbihzdGQ6Om1vdmUoc2Vzc2lvbikpCisgICAgOiBtX3Nlc3Npb24oV1RGOjptb3ZlKHNl
c3Npb24pKQogICAgICwgbV9pc1ByaXZhdGUoZmFsc2UpCiB7CiB9CkBAIC03OSw3ICs3OSw3IEBA
IFNvdXBOZXR3b3JrU2Vzc2lvbiYgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzb3VwTmV0d29ya1Nl
c3Npb24oKSBjb25zdAogCiB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0U291cE5ldHdv
cmtTZXNzaW9uKHN0ZDo6dW5pcXVlX3B0cjxTb3VwTmV0d29ya1Nlc3Npb24+IHNlc3Npb24pCiB7
Ci0gICAgbV9zZXNzaW9uID0gc3RkOjptb3ZlKHNlc3Npb24pOworICAgIG1fc2Vzc2lvbiA9IFdU
Rjo6bW92ZShzZXNzaW9uKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL1dDRGF0YU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4v
V0NEYXRhT2JqZWN0LmNwcAppbmRleCAyNWRlZTE0Li5jNzkzN2I4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV0NEYXRhT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vV0NEYXRhT2JqZWN0LmNwcApAQCAtMjY0LDEzICsyNjQsMTMgQEAg
U1RETUVUSE9ESU1QIFdDRGF0YU9iamVjdDo6U2V0RGF0YShGT1JNQVRFVEMqIHBmb3JtYXRldGMs
IFNUR01FRElVTSogcG1lZGl1bSwgQk8KICAgICBaZXJvTWVtb3J5KHBTdGdNZWQuZ2V0KCksIHNp
emVvZihTVEdNRURJVU0pKTsKIAogICAgICpmZXRjID0gKnBmb3JtYXRldGM7Ci0gICAgbV9mb3Jt
YXRzLmFwcGVuZChzdGQ6Om1vdmUoZmV0YykpOworICAgIG1fZm9ybWF0cy5hcHBlbmQoV1RGOjpt
b3ZlKGZldGMpKTsKIAogICAgIGlmKGZSZWxlYXNlKQogICAgICAgICAqcFN0Z01lZCA9ICpwbWVk
aXVtOwogICAgIGVsc2UKICAgICAgICAgQ29weU1lZGl1bShwU3RnTWVkLmdldCgpLCBwbWVkaXVt
LCBwZm9ybWF0ZXRjKTsKLSAgICBtX21lZGl1bS5hcHBlbmQoc3RkOjptb3ZlKHBTdGdNZWQpKTsK
KyAgICBtX21lZGl1bS5hcHBlbmQoV1RGOjptb3ZlKHBTdGdNZWQpKTsKIAogICAgIHJldHVybiBT
X09LOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggNmJiNDBhNS4u
YTg4YWRmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC0xMTc4LDcg
KzExNzgsNyBAQCBOUEVycm9yIFBsdWdpblZpZXc6OmhhbmRsZVBvc3QoY29uc3QgY2hhciogdXJs
LCBjb25zdCBjaGFyKiB0YXJnZXQsIHVpbnQzMl90IGxlbgogCiAgICAgZnJhbWVMb2FkUmVxdWVz
dC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRIVFRQTWV0aG9kKCJQT1NUIik7CiAgICAgZnJhbWVMb2Fk
UmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRVUkwobWFrZVVSTChtX3BhcmVudEZyYW1lLT5k
b2N1bWVudCgpLT5iYXNlVVJMKCksIHVybCkpOwotICAgIGZyYW1lTG9hZFJlcXVlc3QucmVzb3Vy
Y2VSZXF1ZXN0KCkuc2V0SFRUUEhlYWRlckZpZWxkcyhzdGQ6Om1vdmUoaGVhZGVyRmllbGRzKSk7
CisgICAgZnJhbWVMb2FkUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRIVFRQSGVhZGVyRmll
bGRzKFdURjo6bW92ZShoZWFkZXJGaWVsZHMpKTsKICAgICBmcmFtZUxvYWRSZXF1ZXN0LnJlc291
cmNlUmVxdWVzdCgpLnNldEhUVFBCb2R5KEZvcm1EYXRhOjpjcmVhdGUocG9zdERhdGEsIHBvc3RE
YXRhTGVuZ3RoKSk7CiAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRGcmFtZU5hbWUodGFyZ2V0KTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb2F0aW5nT2JqZWN0cy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvYXRpbmdPYmplY3RzLmNwcAppbmRleCAx
YjdkYWE4Li41YjViZjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxv
YXRpbmdPYmplY3RzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvYXRpbmdP
YmplY3RzLmNwcApAQCAtMjg2LDcgKzI4Niw3IEBAIHZvaWQgRmxvYXRpbmdPYmplY3RzOjptb3Zl
QWxsVG9GbG9hdEluZm9NYXAoUmVuZGVyZXJUb0Zsb2F0SW5mb01hcCYgbWFwKQogICAgICAgICAv
LyBGSVhNRTogVGhlIG9ubHkgcmVhc29uIGl0IGlzIHNhZmUgdG8gbW92ZSB0aGVzZSBvdXQgb2Yg
dGhlIHNldCBpcyB0aGF0CiAgICAgICAgIC8vIHdlIGFyZSBhYm91dCB0byBjbGVhciBpdC4gT3Ro
ZXJ3aXNlIGl0IHdvdWxkIGJyZWFrIHRoZSBoYXNoIHRhYmxlIGludmFyaWFudC4KICAgICAgICAg
Ly8gQSBjbGVhbiB3YXkgdG8gZG8gdGhpcyB3b3VsZCBiZSB0byBhZGQgYSB0YWtlQWxsIGZ1bmN0
aW9uIHRvIEhhc2hTZXQuCi0gICAgICAgIG1hcC5hZGQoJnJlbmRlcmVyLCBzdGQ6Om1vdmUoKml0
KSk7CisgICAgICAgIG1hcC5hZGQoJnJlbmRlcmVyLCBXVEY6Om1vdmUoKml0KSk7CiAgICAgfQog
ICAgIGNsZWFyKCk7CiB9CkBAIC0zNDksNyArMzQ5LDcgQEAgRmxvYXRpbmdPYmplY3QqIEZsb2F0
aW5nT2JqZWN0czo6YWRkKHN0ZDo6dW5pcXVlX3B0cjxGbG9hdGluZ09iamVjdD4gZmxvYXRpbmdP
YmoKICAgICBpbmNyZWFzZU9iamVjdHNDb3VudChmbG9hdGluZ09iamVjdC0+dHlwZSgpKTsKICAg
ICBpZiAoZmxvYXRpbmdPYmplY3QtPmlzUGxhY2VkKCkpCiAgICAgICAgIGFkZFBsYWNlZE9iamVj
dChmbG9hdGluZ09iamVjdC5nZXQoKSk7Ci0gICAgcmV0dXJuIG1fc2V0LmFkZChzdGQ6Om1vdmUo
ZmxvYXRpbmdPYmplY3QpKS5pdGVyYXRvci0+Z2V0KCk7CisgICAgcmV0dXJuIG1fc2V0LmFkZChX
VEY6Om1vdmUoZmxvYXRpbmdPYmplY3QpKS5pdGVyYXRvci0+Z2V0KCk7CiB9CiAKIHZvaWQgRmxv
YXRpbmdPYmplY3RzOjpyZW1vdmUoRmxvYXRpbmdPYmplY3QqIGZsb2F0aW5nT2JqZWN0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAKaW5kZXggMTA0NmI4OC4uMmRkMTQy
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCkBAIC0zNiw3ICsz
Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKHN0
ZDo6dW5pcXVlX3B0cjxMYXlvdXRTdGF0ZT4gbmV4dCwgUmVuZGVyQm94KiByZW5kZXJlciwgY29u
c3QgTGF5b3V0U2l6ZSYgb2Zmc2V0LCBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2h0LCBib29s
IHBhZ2VMb2dpY2FsSGVpZ2h0Q2hhbmdlZCkKICAgICA6IG1fbGluZUdyaWQoMCkKLSAgICAsIG1f
bmV4dChzdGQ6Om1vdmUobmV4dCkpCisgICAgLCBtX25leHQoV1RGOjptb3ZlKG5leHQpKQogI2lm
bmRlZiBOREVCVUcKICAgICAsIG1fcmVuZGVyZXIocmVuZGVyZXIpCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IDg2MzZkM2IuLmQxNGRiMDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMTczLDcgKzE3Myw3
IEBAIHByaXZhdGU6CiB9OwogCiBSZW5kZXJCbG9jazo6UmVuZGVyQmxvY2soRWxlbWVudCYgZWxl
bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUsIHVuc2lnbmVkIGJhc2VUeXBlRmxhZ3Mp
Ci0gICAgOiBSZW5kZXJCb3goZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSwgYmFzZVR5cGVGbGFn
cyB8IFJlbmRlckJsb2NrRmxhZykKKyAgICA6IFJlbmRlckJveChlbGVtZW50LCBXVEY6Om1vdmUo
c3R5bGUpLCBiYXNlVHlwZUZsYWdzIHwgUmVuZGVyQmxvY2tGbGFnKQogICAgICwgbV9saW5lSGVp
Z2h0KC0xKQogICAgICwgbV9oYXNNYXJnaW5CZWZvcmVRdWlyayhmYWxzZSkKICAgICAsIG1faGFz
TWFyZ2luQWZ0ZXJRdWlyayhmYWxzZSkKQEAgLTE4NSw3ICsxODUsNyBAQCBSZW5kZXJCbG9jazo6
UmVuZGVyQmxvY2soRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUs
IHVuc2lnbmVkCiB9CiAKIFJlbmRlckJsb2NrOjpSZW5kZXJCbG9jayhEb2N1bWVudCYgZG9jdW1l
bnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlLCB1bnNpZ25lZCBiYXNlVHlwZUZsYWdzKQot
ICAgIDogUmVuZGVyQm94KGRvY3VtZW50LCBzdGQ6Om1vdmUoc3R5bGUpLCBiYXNlVHlwZUZsYWdz
IHwgUmVuZGVyQmxvY2tGbGFnKQorICAgIDogUmVuZGVyQm94KGRvY3VtZW50LCBXVEY6Om1vdmUo
c3R5bGUpLCBiYXNlVHlwZUZsYWdzIHwgUmVuZGVyQmxvY2tGbGFnKQogICAgICwgbV9saW5lSGVp
Z2h0KC0xKQogICAgICwgbV9oYXNNYXJnaW5CZWZvcmVRdWlyayhmYWxzZSkKICAgICAsIG1faGFz
TWFyZ2luQWZ0ZXJRdWlyayhmYWxzZSkKQEAgLTQ0OCw3ICs0NDgsNyBAQCB2b2lkIFJlbmRlckJs
b2NrOjpzcGxpdEJsb2NrcyhSZW5kZXJCbG9jayogZnJvbUJsb2NrLCBSZW5kZXJCbG9jayogdG9C
bG9jaywKICAgICAgICAgUmVuZGVyQmxvY2sqIGJsb2NrQ3VyciA9IHRvUmVuZGVyQmxvY2soY3Vy
cik7CiAgICAgICAgIAogICAgICAgICAvLyBDcmVhdGUgYSBuZXcgY2xvbmUuCi0gICAgICAgIFJl
bmRlclB0cjxSZW5kZXJCbG9jaz4gY2xvbmVDaGlsZCA9IHN0ZDo6bW92ZShjbG9uZUJsb2NrKTsK
KyAgICAgICAgUmVuZGVyUHRyPFJlbmRlckJsb2NrPiBjbG9uZUNoaWxkID0gV1RGOjptb3ZlKGNs
b25lQmxvY2spOwogICAgICAgICBjbG9uZUJsb2NrID0gYmxvY2tDdXJyLT5jbG9uZSgpOwogCiAg
ICAgICAgIC8vIEluc2VydCBvdXIgY2hpbGQgY2xvbmUgYXMgdGhlIGZpcnN0IGNoaWxkLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAppbmRleCAxYmM4MGNj
Li5lYTY2YWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93
LmNwcApAQCAtOTIsNyArOTIsNyBAQCBSZW5kZXJCbG9ja0Zsb3c6Ok1hcmdpbkluZm86Ok1hcmdp
bkluZm8oUmVuZGVyQmxvY2tGbG93JiBibG9jaywgTGF5b3V0VW5pdCBiZWZvcgogfQogCiBSZW5k
ZXJCbG9ja0Zsb3c6OlJlbmRlckJsb2NrRmxvdyhFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJl
bmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlckJsb2NrKGVsZW1lbnQsIHN0ZDo6bW92ZShz
dHlsZSksIFJlbmRlckJsb2NrRmxvd0ZsYWcpCisgICAgOiBSZW5kZXJCbG9jayhlbGVtZW50LCBX
VEY6Om1vdmUoc3R5bGUpLCBSZW5kZXJCbG9ja0Zsb3dGbGFnKQogI2lmIEVOQUJMRShJT1NfVEVY
VF9BVVRPU0laSU5HKQogICAgICwgbV93aWR0aEZvclRleHRBdXRvc2l6aW5nKC0xKQogICAgICwg
bV9saW5lQ291bnRGb3JUZXh0QXV0b3NpemluZyhOT1RfU0VUKQpAQCAtMTAyLDcgKzEwMiw3IEBA
IFJlbmRlckJsb2NrRmxvdzo6UmVuZGVyQmxvY2tGbG93KEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NS
ZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogfQogCiBSZW5kZXJCbG9ja0Zsb3c6OlJlbmRlckJsb2Nr
RmxvdyhEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAg
IDogUmVuZGVyQmxvY2soZG9jdW1lbnQsIHN0ZDo6bW92ZShzdHlsZSksIFJlbmRlckJsb2NrRmxv
d0ZsYWcpCisgICAgOiBSZW5kZXJCbG9jayhkb2N1bWVudCwgV1RGOjptb3ZlKHN0eWxlKSwgUmVu
ZGVyQmxvY2tGbG93RmxhZykKICNpZiBFTkFCTEUoSU9TX1RFWFRfQVVUT1NJWklORykKICAgICAs
IG1fd2lkdGhGb3JUZXh0QXV0b3NpemluZygtMSkKICAgICAsIG1fbGluZUNvdW50Rm9yVGV4dEF1
dG9zaXppbmcoTk9UX1NFVCkKQEAgLTE5MTYsNyArMTkxNiw3IEBAIHZvaWQgUmVuZGVyQmxvY2tG
bG93OjpsYXlvdXRMaW5lR3JpZEJveCgpCiAgICAgVmVydGljYWxQb3NpdGlvbkNhY2hlIHZlcnRp
Y2FsUG9zaXRpb25DYWNoZTsKICAgICBsaW5lR3JpZEJveC0+YWxpZ25Cb3hlc0luQmxvY2tEaXJl
Y3Rpb24obG9naWNhbEhlaWdodCgpLCB0ZXh0Qm94RGF0YU1hcCwgdmVydGljYWxQb3NpdGlvbkNh
Y2hlKTsKICAgICAKLSAgICBzZXRMaW5lR3JpZEJveChzdGQ6Om1vdmUobGluZUdyaWRCb3gpKTsK
KyAgICBzZXRMaW5lR3JpZEJveChXVEY6Om1vdmUobGluZUdyaWRCb3gpKTsKIAogICAgIC8vIEZJ
WE1FOiBJZiBhbnkgb2YgdGhlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUgYm94IGNoYW5nZSBjb21w
YXJlZCB0byB0aGUgb2xkIG9uZSwgdGhlbiB3ZSBuZWVkIHRvIGRvIGEgZGVlcCBkaXJ0eWluZwog
ICAgIC8vIChzaW1pbGFyIHRvIHdoYXQgaGFwcGVucyB3aGVuIHRoZSBwYWdlIGhlaWdodCBjaGFu
Z2VzKS4gSWRlYWxseSwgdGhvdWdoLCB3ZSBvbmx5IGRvIHRoaXMgaWYgc29tZW9uZSBpcyBhY3R1
YWxseSBzbmFwcGluZwpAQCAtMjIyMiw3ICsyMjIyLDcgQEAgRmxvYXRpbmdPYmplY3QqIFJlbmRl
ckJsb2NrRmxvdzo6aW5zZXJ0RmxvYXRpbmdPYmplY3QoUmVuZGVyQm94JiBmbG9hdEJveCkKIAog
ICAgIHNldExvZ2ljYWxXaWR0aEZvckZsb2F0KGZsb2F0aW5nT2JqZWN0LmdldCgpLCBsb2dpY2Fs
V2lkdGhGb3JDaGlsZChmbG9hdEJveCkgKyBtYXJnaW5TdGFydEZvckNoaWxkKGZsb2F0Qm94KSAr
IG1hcmdpbkVuZEZvckNoaWxkKGZsb2F0Qm94KSk7CiAKLSAgICByZXR1cm4gbV9mbG9hdGluZ09i
amVjdHMtPmFkZChzdGQ6Om1vdmUoZmxvYXRpbmdPYmplY3QpKTsKKyAgICByZXR1cm4gbV9mbG9h
dGluZ09iamVjdHMtPmFkZChXVEY6Om1vdmUoZmxvYXRpbmdPYmplY3QpKTsKIH0KIAogdm9pZCBS
ZW5kZXJCbG9ja0Zsb3c6OnJlbW92ZUZsb2F0aW5nT2JqZWN0KFJlbmRlckJveCYgZmxvYXRCb3gp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgKaW5kZXggNmJmMjVk
Ni4uZGVkOTIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrRmxvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cu
aApAQCAtMjY5LDcgKzI2OSw3IEBAIHB1YmxpYzoKICAgICBSb290SW5saW5lQm94KiBsaW5lR3Jp
ZEJveCgpIGNvbnN0IHsgcmV0dXJuIGhhc1JhcmVCbG9ja0Zsb3dEYXRhKCkgPyByYXJlQmxvY2tG
bG93RGF0YSgpLT5tX2xpbmVHcmlkQm94LmdldCgpIDogbnVsbHB0cjsgfQogICAgIHZvaWQgc2V0
TGluZUdyaWRCb3goc3RkOjp1bmlxdWVfcHRyPFJvb3RJbmxpbmVCb3g+IGJveCkKICAgICB7Ci0g
ICAgICAgIGVuc3VyZVJhcmVCbG9ja0Zsb3dEYXRhKCkubV9saW5lR3JpZEJveCA9IHN0ZDo6bW92
ZShib3gpOworICAgICAgICBlbnN1cmVSYXJlQmxvY2tGbG93RGF0YSgpLm1fbGluZUdyaWRCb3gg
PSBXVEY6Om1vdmUoYm94KTsKICAgICB9CiAgICAgdm9pZCBsYXlvdXRMaW5lR3JpZEJveCgpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5
b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQu
Y3BwCmluZGV4IGY3NmIzNzAuLjEzOTA0ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgUm9v
dElubGluZUJveCogUmVuZGVyQmxvY2tGbG93OjpjcmVhdGVBbmRBcHBlbmRSb290SW5saW5lQm94
KCkKIHsKICAgICBhdXRvIG5ld1Jvb3RCb3ggPSBjcmVhdGVSb290SW5saW5lQm94KCk7CiAgICAg
Um9vdElubGluZUJveCogcm9vdEJveCA9IG5ld1Jvb3RCb3guZ2V0KCk7Ci0gICAgbV9saW5lQm94
ZXMuYXBwZW5kTGluZUJveChzdGQ6Om1vdmUobmV3Um9vdEJveCkpOworICAgIG1fbGluZUJveGVz
LmFwcGVuZExpbmVCb3goV1RGOjptb3ZlKG5ld1Jvb3RCb3gpKTsKIAogICAgIGlmIChVTkxJS0VM
WShBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSAmJiBmaXJzdFJvb3RCb3go
KSA9PSByb290Qm94KSB7CiAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3Vt
ZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCkBAIC0xMzEyLDcgKzEzMTIsNyBAQCB2b2lk
IFJlbmRlckJsb2NrRmxvdzo6bGlua1RvRW5kTGluZUlmTmVlZGVkKExpbmVMYXlvdXRTdGF0ZSYg
bGF5b3V0U3RhdGUpCiAgICAgICAgICAgICBMYXlvdXRVbml0IGJvdHRvbUxheW91dE92ZXJmbG93
ID0gbGFzdFJvb3RCb3goKS0+bG9naWNhbEJvdHRvbUxheW91dE92ZXJmbG93KCk7CiAgICAgICAg
ICAgICBhdXRvIG5ld0xpbmVCb3ggPSBzdGQ6Om1ha2VfdW5pcXVlPFRyYWlsaW5nRmxvYXRzUm9v
dElubGluZUJveD4oKnRoaXMpOwogICAgICAgICAgICAgYXV0byB0cmFpbGluZ0Zsb2F0c0xpbmVC
b3ggPSBuZXdMaW5lQm94LmdldCgpOwotICAgICAgICAgICAgbV9saW5lQm94ZXMuYXBwZW5kTGlu
ZUJveChzdGQ6Om1vdmUobmV3TGluZUJveCkpOworICAgICAgICAgICAgbV9saW5lQm94ZXMuYXBw
ZW5kTGluZUJveChXVEY6Om1vdmUobmV3TGluZUJveCkpOwogICAgICAgICAgICAgdHJhaWxpbmdG
bG9hdHNMaW5lQm94LT5zZXRDb25zdHJ1Y3RlZCgpOwogICAgICAgICAgICAgR2x5cGhPdmVyZmxv
d0FuZEZhbGxiYWNrRm9udHNNYXAgdGV4dEJveERhdGFNYXA7CiAgICAgICAgICAgICBWZXJ0aWNh
bFBvc2l0aW9uQ2FjaGUgdmVydGljYWxQb3NpdGlvbkNhY2hlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcAppbmRleCBiYzVjOTdkLi4yODEzMjRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMTA5LDcgKzEwOSw3IEBAIHN0YXRpYyBib29sIHNr
aXBCb2R5QmFja2dyb3VuZChjb25zdCBSZW5kZXJCb3gqIGJvZHlFbGVtZW50UmVuZGVyZXIpCiB9
CiAKIFJlbmRlckJveDo6UmVuZGVyQm94KEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVy
U3R5bGU+IHN0eWxlLCB1bnNpZ25lZCBiYXNlVHlwZUZsYWdzKQotICAgIDogUmVuZGVyQm94TW9k
ZWxPYmplY3QoZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSwgYmFzZVR5cGVGbGFncykKKyAgICA6
IFJlbmRlckJveE1vZGVsT2JqZWN0KGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSksIGJhc2VUeXBl
RmxhZ3MpCiAgICAgLCBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCgtMSkKICAgICAsIG1fbWF4
UHJlZmVycmVkTG9naWNhbFdpZHRoKC0xKQogICAgICwgbV9pbmxpbmVCb3hXcmFwcGVyKDApCkBA
IC0xMTgsNyArMTE4LDcgQEAgUmVuZGVyQm94OjpSZW5kZXJCb3goRWxlbWVudCYgZWxlbWVudCwg
UGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUsIHVuc2lnbmVkIGJhc2UKIH0KIAogUmVuZGVyQm94
OjpSZW5kZXJCb3goRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHls
ZSwgdW5zaWduZWQgYmFzZVR5cGVGbGFncykKLSAgICA6IFJlbmRlckJveE1vZGVsT2JqZWN0KGRv
Y3VtZW50LCBzdGQ6Om1vdmUoc3R5bGUpLCBiYXNlVHlwZUZsYWdzKQorICAgIDogUmVuZGVyQm94
TW9kZWxPYmplY3QoZG9jdW1lbnQsIFdURjo6bW92ZShzdHlsZSksIGJhc2VUeXBlRmxhZ3MpCiAg
ICAgLCBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCgtMSkKICAgICAsIG1fbWF4UHJlZmVycmVk
TG9naWNhbFdpZHRoKC0xKQogICAgICwgbV9pbmxpbmVCb3hXcmFwcGVyKDApCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAppbmRleCA0ZWYz
NTJhLi5jOGMzNWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94TW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3hNb2RlbE9iamVjdC5jcHAKQEAgLTE2MSwxMiArMTYxLDEyIEBAIGJvb2wgUmVuZGVyQm94TW9k
ZWxPYmplY3Q6OnNob3VsZFBhaW50QXRMb3dRdWFsaXR5KEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgSW1hCiB9CiAKIFJlbmRlckJveE1vZGVsT2JqZWN0OjpSZW5kZXJCb3hNb2RlbE9iamVjdChF
bGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSwgdW5zaWduZWQgYmFz
ZVR5cGVGbGFncykKLSAgICA6IFJlbmRlckxheWVyTW9kZWxPYmplY3QoZWxlbWVudCwgc3RkOjpt
b3ZlKHN0eWxlKSwgYmFzZVR5cGVGbGFncyB8IFJlbmRlckJveE1vZGVsT2JqZWN0RmxhZykKKyAg
ICA6IFJlbmRlckxheWVyTW9kZWxPYmplY3QoZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSwgYmFz
ZVR5cGVGbGFncyB8IFJlbmRlckJveE1vZGVsT2JqZWN0RmxhZykKIHsKIH0KIAogUmVuZGVyQm94
TW9kZWxPYmplY3Q6OlJlbmRlckJveE1vZGVsT2JqZWN0KERvY3VtZW50JiBkb2N1bWVudCwgUGFz
c1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUsIHVuc2lnbmVkIGJhc2VUeXBlRmxhZ3MpCi0gICAgOiBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KGRvY3VtZW50LCBzdGQ6Om1vdmUoc3R5bGUpLCBiYXNlVHlw
ZUZsYWdzIHwgUmVuZGVyQm94TW9kZWxPYmplY3RGbGFnKQorICAgIDogUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdChkb2N1bWVudCwgV1RGOjptb3ZlKHN0eWxlKSwgYmFzZVR5cGVGbGFncyB8IFJlbmRl
ckJveE1vZGVsT2JqZWN0RmxhZykKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQnV0dG9uLmNwcAppbmRleCBhYjZjOWY4Li5lMDY3ODg0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcApAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBSZW5kZXJCdXR0b246OlJlbmRl
ckJ1dHRvbihIVE1MRm9ybUNvbnRyb2xFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0
eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlckZsZXhpYmxlQm94KGVsZW1lbnQsIHN0ZDo6bW92ZShz
dHlsZSkpCisgICAgOiBSZW5kZXJGbGV4aWJsZUJveChlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUp
KQogICAgICwgbV9idXR0b25UZXh0KDApCiAgICAgLCBtX2lubmVyKDApCiAgICAgLCBtX2RlZmF1
bHQoZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVw
cmVjYXRlZEZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJE
ZXByZWNhdGVkRmxleGlibGVCb3guY3BwCmluZGV4IGJiNWQxNGMuLjc2MDZhZDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGli
bGVCb3guY3BwCkBAIC0xMTgsNyArMTE4LDcgQEAgcHJpdmF0ZToKIH07CiAKIFJlbmRlckRlcHJl
Y2F0ZWRGbGV4aWJsZUJveDo6UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94KEVsZW1lbnQmIGVs
ZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyQmxvY2soZWxl
bWVudCwgc3RkOjptb3ZlKHN0eWxlKSwgMCkKKyAgICA6IFJlbmRlckJsb2NrKGVsZW1lbnQsIFdU
Rjo6bW92ZShzdHlsZSksIDApCiB7CiAgICAgc2V0Q2hpbGRyZW5JbmxpbmUoZmFsc2UpOyAvLyBB
bGwgb2Ygb3VyIGNoaWxkcmVuIG11c3QgYmUgYmxvY2stbGV2ZWwKICAgICBtX3N0cmV0Y2hpbmdD
aGlsZHJlbiA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckRldGFpbHNNYXJrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRl
dGFpbHNNYXJrZXIuY3BwCmluZGV4IDQ1NWQ3OTcuLmE3NmU3ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXRhaWxzTWFya2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGV0YWlsc01hcmtlci5jcHAKQEAgLTMzLDcgKzMzLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogUmVu
ZGVyRGV0YWlsc01hcmtlcjo6UmVuZGVyRGV0YWlsc01hcmtlcihEZXRhaWxzTWFya2VyQ29udHJv
bCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJCbG9j
a0Zsb3coZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlckJsb2NrRmxvdyhl
bGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXggOWQzZDgzZC4uMjUxZGQ0ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcApAQCAtODYsMTcgKzg2LDE3IEBAIGlu
bGluZSBSZW5kZXJFbGVtZW50OjpSZW5kZXJFbGVtZW50KENvbnRhaW5lck5vZGUmIGVsZW1lbnRP
ckRvY3VtZW50LCBQYXNzUmVmPFJlCiAgICAgLCBtX2hhc1BhdXNlZEltYWdlQW5pbWF0aW9ucyhm
YWxzZSkKICAgICAsIG1fZmlyc3RDaGlsZChudWxscHRyKQogICAgICwgbV9sYXN0Q2hpbGQobnVs
bHB0cikKLSAgICAsIG1fc3R5bGUoc3RkOjptb3ZlKHN0eWxlKSkKKyAgICAsIG1fc3R5bGUoV1RG
Ojptb3ZlKHN0eWxlKSkKIHsKIH0KIAogUmVuZGVyRWxlbWVudDo6UmVuZGVyRWxlbWVudChFbGVt
ZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSwgdW5zaWduZWQgYmFzZVR5
cGVGbGFncykKLSAgICA6IFJlbmRlckVsZW1lbnQoc3RhdGljX2Nhc3Q8Q29udGFpbmVyTm9kZSY+
KGVsZW1lbnQpLCBzdGQ6Om1vdmUoc3R5bGUpLCBiYXNlVHlwZUZsYWdzKQorICAgIDogUmVuZGVy
RWxlbWVudChzdGF0aWNfY2FzdDxDb250YWluZXJOb2RlJj4oZWxlbWVudCksIFdURjo6bW92ZShz
dHlsZSksIGJhc2VUeXBlRmxhZ3MpCiB7CiB9CiAKIFJlbmRlckVsZW1lbnQ6OlJlbmRlckVsZW1l
bnQoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSwgdW5zaWdu
ZWQgYmFzZVR5cGVGbGFncykKLSAgICA6IFJlbmRlckVsZW1lbnQoc3RhdGljX2Nhc3Q8Q29udGFp
bmVyTm9kZSY+KGRvY3VtZW50KSwgc3RkOjptb3ZlKHN0eWxlKSwgYmFzZVR5cGVGbGFncykKKyAg
ICA6IFJlbmRlckVsZW1lbnQoc3RhdGljX2Nhc3Q8Q29udGFpbmVyTm9kZSY+KGRvY3VtZW50KSwg
V1RGOjptb3ZlKHN0eWxlKSwgYmFzZVR5cGVGbGFncykKIHsKIH0KIApAQCAtMTM4LDU4ICsxMzgs
NTggQEAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcihF
bGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmQKICAgICBjb25zdCBDb250ZW50RGF0YSogY29u
dGVudERhdGEgPSBzdHlsZS5nZXQoKS5jb250ZW50RGF0YSgpOwogICAgIGlmIChjb250ZW50RGF0
YSAmJiAhY29udGVudERhdGEtPm5leHQoKSAmJiBjb250ZW50RGF0YS0+aXNJbWFnZSgpICYmICFl
bGVtZW50LmlzUHNldWRvRWxlbWVudCgpKSB7CiAgICAgICAgIGF1dG8mIHN0eWxlSW1hZ2UgPSB0
b0ltYWdlQ29udGVudERhdGEoY29udGVudERhdGEpLT5pbWFnZSgpOwotICAgICAgICBhdXRvIGlt
YWdlID0gY3JlYXRlUmVuZGVyZXI8UmVuZGVySW1hZ2U+KGVsZW1lbnQsIHN0ZDo6bW92ZShzdHls
ZSksIGNvbnN0X2Nhc3Q8U3R5bGVJbWFnZSo+KCZzdHlsZUltYWdlKSk7CisgICAgICAgIGF1dG8g
aW1hZ2UgPSBjcmVhdGVSZW5kZXJlcjxSZW5kZXJJbWFnZT4oZWxlbWVudCwgV1RGOjptb3ZlKHN0
eWxlKSwgY29uc3RfY2FzdDxTdHlsZUltYWdlKj4oJnN0eWxlSW1hZ2UpKTsKICAgICAgICAgaW1h
Z2UtPnNldElzR2VuZXJhdGVkQ29udGVudCgpOwotICAgICAgICByZXR1cm4gc3RkOjptb3ZlKGlt
YWdlKTsKKyAgICAgICAgcmV0dXJuIFdURjo6bW92ZShpbWFnZSk7CiAgICAgfQogCiAgICAgaWYg
KGVsZW1lbnQuaGFzVGFnTmFtZShIVE1MTmFtZXM6OnJ1YnlUYWcpKSB7CiAgICAgICAgIGlmIChz
dHlsZS5nZXQoKS5kaXNwbGF5KCkgPT0gSU5MSU5FKQotICAgICAgICAgICAgcmV0dXJuIGNyZWF0
ZVJlbmRlcmVyPFJlbmRlclJ1YnlBc0lubGluZT4oZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSk7
CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyUnVieUFzSW5saW5lPihl
bGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKTsKICAgICAgICAgaWYgKHN0eWxlLmdldCgpLmRpc3Bs
YXkoKSA9PSBCTE9DSykKLSAgICAgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJS
dWJ5QXNCbG9jaz4oZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAgICAgICByZXR1
cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyUnVieUFzQmxvY2s+KGVsZW1lbnQsIFdURjo6bW92ZShz
dHlsZSkpOwogICAgIH0KICAgICAvLyB0cmVhdCA8cnQ+IGFzIHJ1YnkgdGV4dCBPTkxZIGlmIGl0
IHN0aWxsIGhhcyBpdHMgZGVmYXVsdCB0cmVhdG1lbnQgb2YgYmxvY2sKICAgICBpZiAoZWxlbWVu
dC5oYXNUYWdOYW1lKEhUTUxOYW1lczo6cnRUYWcpICYmIHN0eWxlLmdldCgpLmRpc3BsYXkoKSA9
PSBCTE9DSykKLSAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclJ1YnlUZXh0Pihl
bGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVy
PFJlbmRlclJ1YnlUZXh0PihlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKTsKICAgICBzd2l0Y2gg
KHN0eWxlLmdldCgpLmRpc3BsYXkoKSkgewogICAgIGNhc2UgTk9ORToKICAgICAgICAgc3R5bGUu
ZHJvcFJlZigpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIElOTElORToKLSAg
ICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlcklubGluZT4oZWxlbWVudCwgc3RkOjpt
b3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJJbmxpbmU+
KGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpOwogICAgIGNhc2UgQkxPQ0s6CiAgICAgY2FzZSBJ
TkxJTkVfQkxPQ0s6CiAgICAgY2FzZSBDT01QQUNUOgotICAgICAgICByZXR1cm4gY3JlYXRlUmVu
ZGVyZXI8UmVuZGVyQmxvY2tGbG93PihlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAg
ICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckJsb2NrRmxvdz4oZWxlbWVudCwgV1RGOjpt
b3ZlKHN0eWxlKSk7CiAgICAgY2FzZSBMSVNUX0lURU06Ci0gICAgICAgIHJldHVybiBjcmVhdGVS
ZW5kZXJlcjxSZW5kZXJMaXN0SXRlbT4oZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAg
ICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJMaXN0SXRlbT4oZWxlbWVudCwgV1RGOjpt
b3ZlKHN0eWxlKSk7CiAgICAgY2FzZSBUQUJMRToKICAgICBjYXNlIElOTElORV9UQUJMRToKLSAg
ICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclRhYmxlPihlbGVtZW50LCBzdGQ6Om1v
dmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclRhYmxlPihl
bGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKTsKICAgICBjYXNlIFRBQkxFX1JPV19HUk9VUDoKICAg
ICBjYXNlIFRBQkxFX0hFQURFUl9HUk9VUDoKICAgICBjYXNlIFRBQkxFX0ZPT1RFUl9HUk9VUDoK
LSAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclRhYmxlU2VjdGlvbj4oZWxlbWVu
dCwgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5k
ZXJUYWJsZVNlY3Rpb24+KGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpOwogICAgIGNhc2UgVEFC
TEVfUk9XOgotICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyVGFibGVSb3c+KGVs
ZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8
UmVuZGVyVGFibGVSb3c+KGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpOwogICAgIGNhc2UgVEFC
TEVfQ09MVU1OX0dST1VQOgogICAgIGNhc2UgVEFCTEVfQ09MVU1OOgotICAgICAgICByZXR1cm4g
Y3JlYXRlUmVuZGVyZXI8UmVuZGVyVGFibGVDb2w+KGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkp
OworICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyVGFibGVDb2w+KGVsZW1lbnQs
IFdURjo6bW92ZShzdHlsZSkpOwogICAgIGNhc2UgVEFCTEVfQ0VMTDoKLSAgICAgICAgcmV0dXJu
IGNyZWF0ZVJlbmRlcmVyPFJlbmRlclRhYmxlQ2VsbD4oZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxl
KSk7CisgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJUYWJsZUNlbGw+KGVsZW1l
bnQsIFdURjo6bW92ZShzdHlsZSkpOwogICAgIGNhc2UgVEFCTEVfQ0FQVElPTjoKLSAgICAgICAg
cmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclRhYmxlQ2FwdGlvbj4oZWxlbWVudCwgc3RkOjpt
b3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJUYWJsZUNh
cHRpb24+KGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpOwogICAgIGNhc2UgQk9YOgogICAgIGNh
c2UgSU5MSU5FX0JPWDoKLSAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckRlcHJl
Y2F0ZWRGbGV4aWJsZUJveD4oZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJl
dHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g+KGVsZW1lbnQs
IFdURjo6bW92ZShzdHlsZSkpOwogICAgIGNhc2UgRkxFWDoKICAgICBjYXNlIElOTElORV9GTEVY
OgotICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyRmxleGlibGVCb3g+KGVsZW1l
bnQsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVu
ZGVyRmxleGlibGVCb3g+KGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpOwogI2lmIEVOQUJMRShD
U1NfR1JJRF9MQVlPVVQpCiAgICAgY2FzZSBHUklEOgogICAgIGNhc2UgSU5MSU5FX0dSSUQ6Ci0g
ICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJHcmlkPihlbGVtZW50LCBzdGQ6Om1v
dmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckdyaWQ+KGVs
ZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpOwogI2VuZGlmCiAgICAgfQogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwpAQCAtNDA3LDcgKzQwNyw3IEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6c2V0U3R5
bGUoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiAKICAgICBzdHlsZVdpbGxDaGFuZ2UoZGlm
Ziwgc3R5bGUuZ2V0KCkpOwogCi0gICAgUmVmPFJlbmRlclN0eWxlPiBvbGRTdHlsZShtX3N0eWxl
LnJlcGxhY2Uoc3RkOjptb3ZlKHN0eWxlKSkpOworICAgIFJlZjxSZW5kZXJTdHlsZT4gb2xkU3R5
bGUobV9zdHlsZS5yZXBsYWNlKFdURjo6bW92ZShzdHlsZSkpKTsKIAogICAgIHVwZGF0ZUZpbGxJ
bWFnZXMob2xkU3R5bGUuZ2V0KCkuYmFja2dyb3VuZExheWVycygpLCBtX3N0eWxlLT5iYWNrZ3Jv
dW5kTGF5ZXJzKCkpOwogICAgIHVwZGF0ZUZpbGxJbWFnZXMob2xkU3R5bGUuZ2V0KCkubWFza0xh
eWVycygpLCBtX3N0eWxlLT5tYXNrTGF5ZXJzKCkpOwpAQCAtNzg2LDcgKzc4Niw3IEBAIHZvaWQg
UmVuZGVyRWxlbWVudDo6cHJvcGFnYXRlU3R5bGVUb0Fub255bW91c0NoaWxkcmVuKFN0eWxlUHJv
cGFnYXRpb25UeXBlIHByb3BhCiAgICAgICAgIGlmIChlbGVtZW50Q2hpbGQuaXNJbkZsb3dQb3Np
dGlvbmVkKCkgJiYgdG9SZW5kZXJCbG9jayhlbGVtZW50Q2hpbGQpLmlzQW5vbnltb3VzQmxvY2tD
b250aW51YXRpb24oKSkKICAgICAgICAgICAgIG5ld1N0eWxlLmdldCgpLnNldFBvc2l0aW9uKGVs
ZW1lbnRDaGlsZC5zdHlsZSgpLnBvc2l0aW9uKCkpOwogCi0gICAgICAgIGVsZW1lbnRDaGlsZC5z
ZXRTdHlsZShzdGQ6Om1vdmUobmV3U3R5bGUpKTsKKyAgICAgICAgZWxlbWVudENoaWxkLnNldFN0
eWxlKFdURjo6bW92ZShuZXdTdHlsZSkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbGVtZW50LmgKaW5kZXggY2ViMWUyYi4uZDQzODA5OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCkBAIC0xMTAsNyArMTEwLDcgQEAgcHVibGlj
OgogCiAgICAgLy8gVXBkYXRlcyBvbmx5IHRoZSBsb2NhbCBzdHlsZSBwdHIgb2YgdGhlIG9iamVj
dC4gRG9lcyBub3QgdXBkYXRlIHRoZSBzdGF0ZSBvZiB0aGUgb2JqZWN0LAogICAgIC8vIGFuZCBz
byBvbmx5IHNob3VsZCBiZSBjYWxsZWQgd2hlbiB0aGUgc3R5bGUgaXMga25vd24gbm90IHRvIGhh
dmUgY2hhbmdlZCAob3IgZnJvbSBzZXRTdHlsZSkuCi0gICAgdm9pZCBzZXRTdHlsZUludGVybmFs
KFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKSB7IG1fc3R5bGUgPSBzdGQ6Om1vdmUoc3R5bGUp
OyB9CisgICAgdm9pZCBzZXRTdHlsZUludGVybmFsKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxl
KSB7IG1fc3R5bGUgPSBXVEY6Om1vdmUoc3R5bGUpOyB9CiAKICAgICAvLyBSZXBhaW50IG9ubHkg
aWYgb3VyIG9sZCBib3VuZHMgYW5kIG5ldyBib3VuZHMgYXJlIGRpZmZlcmVudC4gVGhlIGNhbGxl
ciBtYXkgcGFzcyBpbiBuZXdCb3VuZHMgYW5kIG5ld091dGxpbmVCb3ggaWYgdGhleSBhcmUga25v
d24uCiAgICAgYm9vbCByZXBhaW50QWZ0ZXJMYXlvdXRJZk5lZWRlZChjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBjb25zdCBMYXlvdXRSZWN0JiBvbGRCb3Vu
ZHMsIGNvbnN0IExheW91dFJlY3QmIG9sZE91dGxpbmVCb3gsIGNvbnN0IExheW91dFJlY3QqIG5l
d0JvdW5kc1B0ciA9IG51bGxwdHIsIGNvbnN0IExheW91dFJlY3QqIG5ld091dGxpbmVCb3hQdHIg
PSBudWxscHRyKTsKQEAgLTI0Nyw3ICsyNDcsNyBAQCBSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMo
UmVuZGVyRWxlbWVudCwgaXNSZW5kZXJFbGVtZW50KCkpCiAKIGlubGluZSB2b2lkIFJlbmRlckVs
ZW1lbnQ6OnNldEFuaW1hdGFibGVTdHlsZShQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsK
LSAgICBzZXRTdHlsZShhbmltYXRpb24oKS51cGRhdGVBbmltYXRpb25zKCp0aGlzLCBzdGQ6Om1v
dmUoc3R5bGUpKSk7CisgICAgc2V0U3R5bGUoYW5pbWF0aW9uKCkudXBkYXRlQW5pbWF0aW9ucygq
dGhpcywgV1RGOjptb3ZlKHN0eWxlKSkpOwogfQogCiBpbmxpbmUgUmVuZGVyU3R5bGUmIFJlbmRl
ckVsZW1lbnQ6OmZpcnN0TGluZVN0eWxlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCmluZGV4IDZmMDNhYTEuLmNiYzJjYWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0
LmNwcApAQCAtOTcsNyArOTcsNyBAQCBzdGF0aWMgY29uc3QgQ29sb3ImIHVuYXZhaWxhYmxlUGx1
Z2luQm9yZGVyQ29sb3IoKQogfQogCiBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UmVuZGVyRW1iZWRk
ZWRPYmplY3QoSFRNTEZyYW1lT3duZXJFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0
eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlcldpZGdldChlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUp
KQorICAgIDogUmVuZGVyV2lkZ2V0KGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiAgICAgLCBt
X2lzUGx1Z2luVW5hdmFpbGFibGUoZmFsc2UpCiAgICAgLCBtX2lzVW5hdmFpbGFibGVQbHVnaW5J
bmRpY2F0b3JIaWRkZW4oZmFsc2UpCiAgICAgLCBtX3VuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9y
SXNQcmVzc2VkKGZhbHNlKQpAQCAtMTE0LDcgKzExNCw3IEBAIFJlbmRlckVtYmVkZGVkT2JqZWN0
Ojp+UmVuZGVyRW1iZWRkZWRPYmplY3QoKQogCiBSZW5kZXJQdHI8UmVuZGVyRW1iZWRkZWRPYmpl
Y3Q+IFJlbmRlckVtYmVkZGVkT2JqZWN0OjpjcmVhdGVGb3JBcHBsZXQoSFRNTEFwcGxldEVsZW1l
bnQmIGFwcGxldCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgYXV0byByZW5k
ZXJlciA9IGNyZWF0ZVJlbmRlcmVyPFJlbmRlckVtYmVkZGVkT2JqZWN0PihhcHBsZXQsIHN0ZDo6
bW92ZShzdHlsZSkpOworICAgIGF1dG8gcmVuZGVyZXIgPSBjcmVhdGVSZW5kZXJlcjxSZW5kZXJF
bWJlZGRlZE9iamVjdD4oYXBwbGV0LCBXVEY6Om1vdmUoc3R5bGUpKTsKICAgICByZW5kZXJlci0+
c2V0SW5saW5lKHRydWUpOwogICAgIHJldHVybiByZW5kZXJlcjsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuY3BwCmluZGV4IDY5ZDA3ODguLjRkZGI1ZTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0LmNwcApAQCAtMzUsNyAr
MzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwog
CiBSZW5kZXJGaWVsZHNldDo6UmVuZGVyRmllbGRzZXQoSFRNTEZpZWxkU2V0RWxlbWVudCYgZWxl
bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJCbG9ja0Zsb3co
ZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50
LCBXVEY6Om1vdmUoc3R5bGUpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcAppbmRleCA4MmVlMDdhLi41NWU2ZTYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2Fk
Q29udHJvbC5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgY29uc3QgaW50IGRlZmF1bHRXaWR0aE51bUNo
YXJzID0gMzg7CiBjb25zdCBpbnQgYnV0dG9uU2hhZG93SGVpZ2h0ID0gMjsKIAogUmVuZGVyRmls
ZVVwbG9hZENvbnRyb2w6OlJlbmRlckZpbGVVcGxvYWRDb250cm9sKEhUTUxJbnB1dEVsZW1lbnQm
IGlucHV0LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlckJsb2NrRmxv
dyhpbnB1dCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlckJsb2NrRmxvdyhpbnB1dCwg
V1RGOjptb3ZlKHN0eWxlKSkKICAgICAsIG1fY2FuUmVjZWl2ZURyb3BwZWRGaWxlcyhpbnB1dC5j
YW5SZWNlaXZlRHJvcHBlZEZpbGVzKCkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAppbmRleCBkYWVjYmZkLi43ZjgxZGJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKQEAgLTY3LDcg
KzY3LDcgQEAgc3RydWN0IFJlbmRlckZsZXhpYmxlQm94OjpWaW9sYXRpb24gewogCiAKIFJlbmRl
ckZsZXhpYmxlQm94OjpSZW5kZXJGbGV4aWJsZUJveChFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVm
PFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlckJsb2NrKGVsZW1lbnQsIHN0ZDo6bW92
ZShzdHlsZSksIDApCisgICAgOiBSZW5kZXJCbG9jayhlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUp
LCAwKQogICAgICwgbV9vcmRlckl0ZXJhdG9yKCp0aGlzKQogICAgICwgbV9udW1iZXJPZkluRmxv
d0NoaWxkcmVuT25GaXJzdExpbmUoLTEpCiB7CkBAIC03NSw3ICs3NSw3IEBAIFJlbmRlckZsZXhp
YmxlQm94OjpSZW5kZXJGbGV4aWJsZUJveChFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRl
clN0eWxlPiBzdHlsCiB9CiAKIFJlbmRlckZsZXhpYmxlQm94OjpSZW5kZXJGbGV4aWJsZUJveChE
b2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVu
ZGVyQmxvY2soZG9jdW1lbnQsIHN0ZDo6bW92ZShzdHlsZSksIDApCisgICAgOiBSZW5kZXJCbG9j
ayhkb2N1bWVudCwgV1RGOjptb3ZlKHN0eWxlKSwgMCkKICAgICAsIG1fb3JkZXJJdGVyYXRvcigq
dGhpcykKICAgICAsIG1fbnVtYmVyT2ZJbkZsb3dDaGlsZHJlbk9uRmlyc3RMaW5lKC0xKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCmluZGV4IDBm
NDVhMmIuLjI2MmUzZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGbG93VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxv
d1RocmVhZC5jcHAKQEAgLTUyLDcgKzUyLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVu
ZGVyRmxvd1RocmVhZDo6UmVuZGVyRmxvd1RocmVhZChEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NS
ZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyQmxvY2tGbG93KGRvY3VtZW50LCBz
dGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyQmxvY2tGbG93KGRvY3VtZW50LCBXVEY6Om1v
dmUoc3R5bGUpKQogICAgICwgbV9wcmV2aW91c1JlZ2lvbkNvdW50KDApCiAgICAgLCBtX2F1dG9M
b2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50KDApCiAgICAgLCBtX2N1cnJlbnRSZWdpb25NYWludGFp
bmVyKG51bGxwdHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lLmNwcAppbmRl
eCAxODZlMGY0Li5kOGJhMzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFt
ZS5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyRnJh
bWU6OlJlbmRlckZyYW1lKEhUTUxGcmFtZUVsZW1lbnQmIGZyYW1lLCBQYXNzUmVmPFJlbmRlclN0
eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlckZyYW1lQmFzZShmcmFtZSwgc3RkOjptb3ZlKHN0eWxl
KSkKKyAgICA6IFJlbmRlckZyYW1lQmFzZShmcmFtZSwgV1RGOjptb3ZlKHN0eWxlKSkKIHsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lQmFzZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVCYXNlLmNwcAppbmRleCA1
NDdmZGFjLi4zYWU0NGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRnJhbWVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJh
bWVCYXNlLmNwcApAQCAtMzQsNyArMzQsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5k
ZXJGcmFtZUJhc2U6OlJlbmRlckZyYW1lQmFzZShIVE1MRnJhbWVFbGVtZW50QmFzZSYgZWxlbWVu
dCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJXaWRnZXQoZWxlbWVu
dCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlcldpZGdldChlbGVtZW50LCBXVEY6Om1v
dmUoc3R5bGUpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRnJhbWVTZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1l
U2V0LmNwcAppbmRleCBkOGFlYjQyLi5jZWQxMTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGcmFtZVNldC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogUmVuZGVyRnJhbWVTZXQ6OlJlbmRlckZyYW1lU2V0KEhUTUxGcmFtZVNldEVsZW1l
bnQmIGZyYW1lU2V0LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlckJv
eChmcmFtZVNldCwgc3RkOjptb3ZlKHN0eWxlKSwgMCkKKyAgICA6IFJlbmRlckJveChmcmFtZVNl
dCwgV1RGOjptb3ZlKHN0eWxlKSwgMCkKICAgICAsIG1faXNSZXNpemluZyhmYWxzZSkKICAgICAs
IG1faXNDaGlsZFJlc2l6aW5nKGZhbHNlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZ1bGxTY3JlZW4uY3BwCmluZGV4IGUzNTJhNTEuLjY0NDMzZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHAKQEAgLTM3LDcgKzM3LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVuZGVyRnVsbFNjcmVlblBsYWNlaG9sZGVy
IGZpbmFsIDogcHVibGljIFJlbmRlckJsb2NrRmxvdyB7CiBwdWJsaWM6CiAgICAgUmVuZGVyRnVs
bFNjcmVlblBsYWNlaG9sZGVyKFJlbmRlckZ1bGxTY3JlZW4mIG93bmVyLCBQYXNzUmVmPFJlbmRl
clN0eWxlPiBzdHlsZSkKLSAgICAgICAgOiBSZW5kZXJCbG9ja0Zsb3cob3duZXIuZG9jdW1lbnQo
KSwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICAgICAgOiBSZW5kZXJCbG9ja0Zsb3cob3duZXIuZG9j
dW1lbnQoKSwgV1RGOjptb3ZlKHN0eWxlKSkKICAgICAgICAgLCBtX293bmVyKG93bmVyKSAKICAg
ICB7CiAgICAgfQpAQCAtNTUsNyArNTUsNyBAQCB2b2lkIFJlbmRlckZ1bGxTY3JlZW5QbGFjZWhv
bGRlcjo6d2lsbEJlRGVzdHJveWVkKCkKIH0KIAogUmVuZGVyRnVsbFNjcmVlbjo6UmVuZGVyRnVs
bFNjcmVlbihEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQot
ICAgIDogUmVuZGVyRmxleGlibGVCb3goZG9jdW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAg
OiBSZW5kZXJGbGV4aWJsZUJveChkb2N1bWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKICAgICAsIG1f
cGxhY2Vob2xkZXIoMCkKIHsKICAgICBzZXRSZXBsYWNlZChmYWxzZSk7IApAQCAtMTkzLDExICsx
OTMsMTEgQEAgdm9pZCBSZW5kZXJGdWxsU2NyZWVuOjpjcmVhdGVQbGFjZWhvbGRlcihQYXNzUmVm
PFJlbmRlclN0eWxlPiBzdHlsZSwgY29uc3QgTGF5b3UKICAgICAgICAgc3R5bGUuZ2V0KCkuc2V0
SGVpZ2h0KExlbmd0aChmcmFtZVJlY3QuaGVpZ2h0KCksIEZpeGVkKSk7CiAKICAgICBpZiAobV9w
bGFjZWhvbGRlcikgewotICAgICAgICBtX3BsYWNlaG9sZGVyLT5zZXRTdHlsZShzdGQ6Om1vdmUo
c3R5bGUpKTsKKyAgICAgICAgbV9wbGFjZWhvbGRlci0+c2V0U3R5bGUoV1RGOjptb3ZlKHN0eWxl
KSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX3BsYWNlaG9sZGVyID0gbmV3IFJl
bmRlckZ1bGxTY3JlZW5QbGFjZWhvbGRlcigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAg
bV9wbGFjZWhvbGRlciA9IG5ldyBSZW5kZXJGdWxsU2NyZWVuUGxhY2Vob2xkZXIoKnRoaXMsIFdU
Rjo6bW92ZShzdHlsZSkpOwogICAgIG1fcGxhY2Vob2xkZXItPmluaXRpYWxpemVTdHlsZSgpOwog
ICAgIGlmIChwYXJlbnQoKSkgewogICAgICAgICBwYXJlbnQoKS0+YWRkQ2hpbGQobV9wbGFjZWhv
bGRlciwgdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
R3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKaW5kZXgg
YzYxYjRjMS4uYjY1YzQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNw
cApAQCAtMTg1LDcgKzE4NSw3IEBAIHB1YmxpYzoKIH07CiAKIFJlbmRlckdyaWQ6OlJlbmRlckdy
aWQoRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBS
ZW5kZXJCbG9jayhlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpLCAwKQorICAgIDogUmVuZGVyQmxv
Y2soZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSwgMCkKICAgICAsIG1fb3JkZXJJdGVyYXRvcigq
dGhpcykKIHsKICAgICAvLyBBbGwgb2Ygb3VyIGNoaWxkcmVuIG11c3QgYmUgYmxvY2sgbGV2ZWwu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5jcHAKaW5kZXgg
OGE5ZjljMy4uNjkyMzljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckhUTUxDYW52YXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJI
VE1MQ2FudmFzLmNwcApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2lu
ZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBSZW5kZXJIVE1MQ2FudmFzOjpSZW5kZXJIVE1MQ2Fu
dmFzKEhUTUxDYW52YXNFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHls
ZSkKLSAgICA6IFJlbmRlclJlcGxhY2VkKGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSksIGVsZW1l
bnQuc2l6ZSgpKQorICAgIDogUmVuZGVyUmVwbGFjZWQoZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxl
KSwgZWxlbWVudC5zaXplKCkpCiB7CiAgICAgLy8gQWN0dWFsIHNpemUgaXMgbm90IGtub3duIHll
dCwgcmVwb3J0IHRoZSBkZWZhdWx0IGludHJpbnNpYyBzaXplLgogICAgIHZpZXcoKS5mcmFtZVZp
ZXcoKS5pbmNyZW1lbnRWaXN1YWxseU5vbkVtcHR5UGl4ZWxDb3VudChyb3VuZGVkSW50U2l6ZShp
bnRyaW5zaWNTaXplKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5j
cHAKaW5kZXggZDY1NWU3MS4uMGVkY2UyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcklGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcklGcmFtZS5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNp
bmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKICAgICAKIFJlbmRlcklGcmFtZTo6UmVuZGVySUZyYW1l
KEhUTUxJRnJhbWVFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkK
LSAgICA6IFJlbmRlckZyYW1lQmFzZShlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDog
UmVuZGVyRnJhbWVCYXNlKGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiB7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCmluZGV4IDA0YjFiMzcuLjlkMWZmMGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApAQCAtMTE5LDcgKzEx
OSw3IEBAIHZvaWQgUmVuZGVySW1hZ2U6OmNvbGxlY3RTZWxlY3Rpb25SZWN0cyhWZWN0b3I8U2Vs
ZWN0aW9uUmVjdD4mIHJlY3RzLCB1bnNpZ25lZCwKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7
CiAKIFJlbmRlckltYWdlOjpSZW5kZXJJbWFnZShFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJl
bmRlclN0eWxlPiBzdHlsZSwgU3R5bGVJbWFnZSogc3R5bGVJbWFnZSwgY29uc3QgZmxvYXQgaW1h
Z2VEZXZpY2VQaXhlbFJhdGlvKQotICAgIDogUmVuZGVyUmVwbGFjZWQoZWxlbWVudCwgc3RkOjpt
b3ZlKHN0eWxlKSwgSW50U2l6ZSgpKQorICAgIDogUmVuZGVyUmVwbGFjZWQoZWxlbWVudCwgV1RG
Ojptb3ZlKHN0eWxlKSwgSW50U2l6ZSgpKQogICAgICwgbV9pbWFnZVJlc291cmNlKHN0eWxlSW1h
Z2UgPyBzdGQ6Om1ha2VfdW5pcXVlPFJlbmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdlPigqc3R5
bGVJbWFnZSkgOiBzdGQ6Om1ha2VfdW5pcXVlPFJlbmRlckltYWdlUmVzb3VyY2U+KCkpCiAgICAg
LCBtX25lZWRzVG9TZXRTaXplRm9yQWx0VGV4dChmYWxzZSkKICAgICAsIG1fZGlkSW5jcmVtZW50
VmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnQoZmFsc2UpCkBAIC0xMzUsNyArMTM1LDcgQEAgUmVu
ZGVySW1hZ2U6OlJlbmRlckltYWdlKEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5
bGU+IHN0eWxlLCBTdHlsZUltYWcKIH0KIAogUmVuZGVySW1hZ2U6OlJlbmRlckltYWdlKERvY3Vt
ZW50JiBkb2N1bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUsIFN0eWxlSW1hZ2UqIHN0
eWxlSW1hZ2UpCi0gICAgOiBSZW5kZXJSZXBsYWNlZChkb2N1bWVudCwgc3RkOjptb3ZlKHN0eWxl
KSwgSW50U2l6ZSgpKQorICAgIDogUmVuZGVyUmVwbGFjZWQoZG9jdW1lbnQsIFdURjo6bW92ZShz
dHlsZSksIEludFNpemUoKSkKICAgICAsIG1faW1hZ2VSZXNvdXJjZShzdHlsZUltYWdlID8gc3Rk
OjptYWtlX3VuaXF1ZTxSZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJbWFnZT4oKnN0eWxlSW1hZ2Up
IDogc3RkOjptYWtlX3VuaXF1ZTxSZW5kZXJJbWFnZVJlc291cmNlPigpKQogICAgICwgbV9uZWVk
c1RvU2V0U2l6ZUZvckFsdFRleHQoZmFsc2UpCiAgICAgLCBtX2RpZEluY3JlbWVudFZpc3VhbGx5
Tm9uRW1wdHlQaXhlbENvdW50KGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW5saW5lLmNwcAppbmRleCAzYzhhMTcyLi4zMDI4YTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW5saW5lLmNwcApAQCAtNTAsMTMgKzUwLDEzIEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIFJlbmRlcklubGluZTo6UmVuZGVySW5saW5lKEVsZW1lbnQmIGVsZW1lbnQsIFBh
c3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyQm94TW9kZWxPYmplY3QoZWxl
bWVudCwgc3RkOjptb3ZlKHN0eWxlKSwgUmVuZGVySW5saW5lRmxhZykKKyAgICA6IFJlbmRlckJv
eE1vZGVsT2JqZWN0KGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSksIFJlbmRlcklubGluZUZsYWcp
CiB7CiAgICAgc2V0Q2hpbGRyZW5JbmxpbmUodHJ1ZSk7CiB9CiAKIFJlbmRlcklubGluZTo6UmVu
ZGVySW5saW5lKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUp
Ci0gICAgOiBSZW5kZXJCb3hNb2RlbE9iamVjdChkb2N1bWVudCwgc3RkOjptb3ZlKHN0eWxlKSwg
UmVuZGVySW5saW5lRmxhZykKKyAgICA6IFJlbmRlckJveE1vZGVsT2JqZWN0KGRvY3VtZW50LCBX
VEY6Om1vdmUoc3R5bGUpLCBSZW5kZXJJbmxpbmVGbGFnKQogewogICAgIHNldENoaWxkcmVuSW5s
aW5lKHRydWUpOwogfQpAQCAtMTY3LDcgKzE2Nyw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZVN0eWxl
T2ZBbm9ueW1vdXNCbG9ja0NvbnRpbnVhdGlvbnMoUmVuZGVyQm94KiBib3gsIGNvbnN0IFJlbmRl
CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgYXV0byBibG9ja1N0eWxlID0gUmVuZGVy
U3R5bGU6OmNyZWF0ZUFub255bW91c1N0eWxlV2l0aERpc3BsYXkoJmJsb2NrLT5zdHlsZSgpLCBC
TE9DSyk7CiAgICAgICAgIGJsb2NrU3R5bGUuZ2V0KCkuc2V0UG9zaXRpb24obmV3U3R5bGUtPnBv
c2l0aW9uKCkpOwotICAgICAgICBibG9jay0+c2V0U3R5bGUoc3RkOjptb3ZlKGJsb2NrU3R5bGUp
KTsKKyAgICAgICAgYmxvY2stPnNldFN0eWxlKFdURjo6bW92ZShibG9ja1N0eWxlKSk7CiAgICAg
fQogfQogCkBAIC0zMjYsNyArMzI2LDcgQEAgdm9pZCBSZW5kZXJJbmxpbmU6OmFkZENoaWxkSWdu
b3JpbmdDb250aW51YXRpb24oUmVuZGVyT2JqZWN0KiBuZXdDaGlsZCwgUmVuZGVyT2IKICAgICAg
ICAgaWYgKGF1dG8gcG9zaXRpb25lZEFuY2VzdG9yID0gaW5GbG93UG9zaXRpb25lZElubGluZUFu
Y2VzdG9yKHRoaXMpKQogICAgICAgICAgICAgbmV3U3R5bGUuZ2V0KCkuc2V0UG9zaXRpb24ocG9z
aXRpb25lZEFuY2VzdG9yLT5zdHlsZSgpLnBvc2l0aW9uKCkpOwogCi0gICAgICAgIFJlbmRlckJs
b2NrKiBuZXdCb3ggPSBuZXcgUmVuZGVyQmxvY2tGbG93KGRvY3VtZW50KCksIHN0ZDo6bW92ZShu
ZXdTdHlsZSkpOworICAgICAgICBSZW5kZXJCbG9jayogbmV3Qm94ID0gbmV3IFJlbmRlckJsb2Nr
Rmxvdyhkb2N1bWVudCgpLCBXVEY6Om1vdmUobmV3U3R5bGUpKTsKICAgICAgICAgbmV3Qm94LT5p
bml0aWFsaXplU3R5bGUoKTsKICAgICAgICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIG9sZENvbnRp
bnVhdGlvbiA9IGNvbnRpbnVhdGlvbigpOwogICAgICAgICBzZXRDb250aW51YXRpb24obmV3Qm94
KTsKQEAgLTM5Nyw3ICszOTcsNyBAQCB2b2lkIFJlbmRlcklubGluZTo6c3BsaXRJbmxpbmVzKFJl
bmRlckJsb2NrKiBmcm9tQmxvY2ssIFJlbmRlckJsb2NrKiB0b0Jsb2NrLAogICAgICAgICBBU1NF
UlQoY3Vyci0+aXNSZW5kZXJJbmxpbmUoKSk7CiAgICAgICAgIGlmIChzcGxpdERlcHRoIDwgY01h
eFNwbGl0RGVwdGgpIHsKICAgICAgICAgICAgIC8vIENyZWF0ZSBhIG5ldyBjbG9uZS4KLSAgICAg
ICAgICAgIFJlbmRlclB0cjxSZW5kZXJJbmxpbmU+IGNsb25lQ2hpbGQgPSBzdGQ6Om1vdmUoY2xv
bmVJbmxpbmUpOworICAgICAgICAgICAgUmVuZGVyUHRyPFJlbmRlcklubGluZT4gY2xvbmVDaGls
ZCA9IFdURjo6bW92ZShjbG9uZUlubGluZSk7CiAgICAgICAgICAgICBjbG9uZUlubGluZSA9IHRv
UmVuZGVySW5saW5lKGN1cnIpLT5jbG9uZSgpOwogCiAgICAgICAgICAgICAvLyBJbnNlcnQgb3Vy
IGNoaWxkIGNsb25lIGFzIHRoZSBmaXJzdCBjaGlsZC4KQEAgLTEzODgsNyArMTM4OCw3IEBAIElu
bGluZUZsb3dCb3gqIFJlbmRlcklubGluZTo6Y3JlYXRlQW5kQXBwZW5kSW5saW5lRmxvd0JveCgp
CiAgICAgc2V0QWx3YXlzQ3JlYXRlTGluZUJveGVzKCk7CiAgICAgYXV0byBuZXdGbG93Qm94ID0g
Y3JlYXRlSW5saW5lRmxvd0JveCgpOwogICAgIGF1dG8gZmxvd0JveCA9IG5ld0Zsb3dCb3guZ2V0
KCk7Ci0gICAgbV9saW5lQm94ZXMuYXBwZW5kTGluZUJveChzdGQ6Om1vdmUobmV3Rmxvd0JveCkp
OworICAgIG1fbGluZUJveGVzLmFwcGVuZExpbmVCb3goV1RGOjptb3ZlKG5ld0Zsb3dCb3gpKTsK
ICAgICByZXR1cm4gZmxvd0JveDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBkZTMyZmQyLi5kYTNjNDY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cApAQCAtMzc4NSw3ICszNzg1LDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlZ2lz
dGVyQWxsVmlld3BvcnRDb25zdHJhaW5lZExheWVycygpCiAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGxheWVyTWFwLmFkZChsYXllci5iYWNraW5nKCktPmdy
YXBoaWNzTGF5ZXIoKS0+cGxhdGZvcm1MYXllcigpLCBzdGQ6Om1vdmUoY29uc3RyYWludHMpKTsK
KyAgICAgICAgbGF5ZXJNYXAuYWRkKGxheWVyLmJhY2tpbmcoKS0+Z3JhcGhpY3NMYXllcigpLT5w
bGF0Zm9ybUxheWVyKCksIFdURjo6bW92ZShjb25zdHJhaW50cykpOwogICAgIH0KICAgICAKICAg
ICBpZiAoQ2hyb21lQ2xpZW50KiBjbGllbnQgPSB0aGlzLT5jaHJvbWVDbGllbnQoKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcApp
bmRleCBiZWRmNjMyLi5hOTI5MGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCkBAIC0zNiwxMiArMzYsMTIgQEAgYm9vbCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0OjpzX2hhZFRyYW5zZm9ybSA9IGZhbHNlOwogYm9vbCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0OjpzX2xheWVyV2FzU2VsZlBhaW50aW5nID0gZmFsc2U7CiAKIFJl
bmRlckxheWVyTW9kZWxPYmplY3Q6OlJlbmRlckxheWVyTW9kZWxPYmplY3QoRWxlbWVudCYgZWxl
bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUsIHVuc2lnbmVkIGJhc2VUeXBlRmxhZ3Mp
Ci0gICAgOiBSZW5kZXJFbGVtZW50KGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSksIGJhc2VUeXBl
RmxhZ3MgfCBSZW5kZXJMYXllck1vZGVsT2JqZWN0RmxhZykKKyAgICA6IFJlbmRlckVsZW1lbnQo
ZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSwgYmFzZVR5cGVGbGFncyB8IFJlbmRlckxheWVyTW9k
ZWxPYmplY3RGbGFnKQogewogfQogCiBSZW5kZXJMYXllck1vZGVsT2JqZWN0OjpSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5
bGUsIHVuc2lnbmVkIGJhc2VUeXBlRmxhZ3MpCi0gICAgOiBSZW5kZXJFbGVtZW50KGRvY3VtZW50
LCBzdGQ6Om1vdmUoc3R5bGUpLCBiYXNlVHlwZUZsYWdzIHwgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dEZsYWcpCisgICAgOiBSZW5kZXJFbGVtZW50KGRvY3VtZW50LCBXVEY6Om1vdmUoc3R5bGUpLCBi
YXNlVHlwZUZsYWdzIHwgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdEZsYWcpCiB7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAKaW5kZXggMGEyN2NkNS4u
NWU1ZTU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVC
cmVhay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5j
cHAKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIGNvbnN0IGlu
dCBpbnZhbGlkTGluZUhlaWdodCA9IC0xOwogCiBSZW5kZXJMaW5lQnJlYWs6OlJlbmRlckxpbmVC
cmVhayhIVE1MRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0g
ICAgOiBSZW5kZXJCb3hNb2RlbE9iamVjdChlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpLCAwKQor
ICAgIDogUmVuZGVyQm94TW9kZWxPYmplY3QoZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSwgMCkK
ICAgICAsIG1faW5saW5lQm94V3JhcHBlcihudWxscHRyKQogICAgICwgbV9jYWNoZWRMaW5lSGVp
Z2h0KGludmFsaWRMaW5lSGVpZ2h0KQogICAgICwgbV9pc1dCUihlbGVtZW50Lmhhc1RhZ05hbWUo
SFRNTE5hbWVzOjp3YnJUYWcpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RC
b3guY3BwCmluZGV4IDNjNDMxZTguLmQ3MmZlNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGlzdEJveC5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgY29uc3QgaW50IGRlZmF1bHRT
aXplID0gNDsKIGNvbnN0IGludCBiYXNlbGluZUFkanVzdG1lbnQgPSA3OwogCiBSZW5kZXJMaXN0
Qm94OjpSZW5kZXJMaXN0Qm94KEhUTUxTZWxlY3RFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJl
bmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50LCBzdGQ6Om1v
dmUoc3R5bGUpKQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQsIFdURjo6bW92ZShzdHls
ZSkpCiAgICAgLCBtX29wdGlvbnNDaGFuZ2VkKHRydWUpCiAgICAgLCBtX3Njcm9sbFRvUmV2ZWFs
U2VsZWN0aW9uQWZ0ZXJMYXlvdXQoZmFsc2UpCiAgICAgLCBtX2luQXV0b3Njcm9sbChmYWxzZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uY3BwCmluZGV4IGY5ZTIx
MTAuLmY5ZDg0NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aXN0SXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVt
LmNwcApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3Bh
Y2UgSFRNTE5hbWVzOwogCiBSZW5kZXJMaXN0SXRlbTo6UmVuZGVyTGlzdEl0ZW0oRWxlbWVudCYg
ZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJCbG9ja0Zs
b3coZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVt
ZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogICAgICwgbV9oYXNFeHBsaWNpdFZhbHVlKGZhbHNlKQog
ICAgICwgbV9pc1ZhbHVlVXBUb0RhdGUoZmFsc2UpCiAgICAgLCBtX25vdEluTGlzdChmYWxzZSkK
QEAgLTY0LDEwICs2NCwxMCBAQCB2b2lkIFJlbmRlckxpc3RJdGVtOjpzdHlsZURpZENoYW5nZShT
dHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZAogICAgIC8vIHVwIChl
LmcuLCBpbiBzb21lIGRlZXBseSBuZXN0ZWQgbGluZSBib3gpLiBTZWUgQ1NTMyBzcGVjLgogICAg
IG5ld1N0eWxlLmdldCgpLmluaGVyaXRGcm9tKCZzdHlsZSgpKTsKICAgICBpZiAoIW1fbWFya2Vy
KSB7Ci0gICAgICAgIG1fbWFya2VyID0gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTGlzdE1hcmtlcj4o
KnRoaXMsIHN0ZDo6bW92ZShuZXdTdHlsZSkpOworICAgICAgICBtX21hcmtlciA9IGNyZWF0ZVJl
bmRlcmVyPFJlbmRlckxpc3RNYXJrZXI+KCp0aGlzLCBXVEY6Om1vdmUobmV3U3R5bGUpKTsKICAg
ICAgICAgbV9tYXJrZXItPmluaXRpYWxpemVTdHlsZSgpOwogICAgIH0gZWxzZQotICAgICAgICBt
X21hcmtlci0+c2V0U3R5bGUoc3RkOjptb3ZlKG5ld1N0eWxlKSk7CisgICAgICAgIG1fbWFya2Vy
LT5zZXRTdHlsZShXVEY6Om1vdmUobmV3U3R5bGUpKTsKIH0KIAogdm9pZCBSZW5kZXJMaXN0SXRl
bTo6d2lsbEJlRGVzdHJveWVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMaXN0TWFya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aXN0TWFya2VyLmNwcAppbmRleCA2NzJmMzkwLi4yOGEwNThlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCkBAIC0xMTE4LDcgKzExMTgsNyBAQCBT
dHJpbmcgbGlzdE1hcmtlclRleHQoRUxpc3RTdHlsZVR5cGUgdHlwZSwgaW50IHZhbHVlKQogfQog
CiBSZW5kZXJMaXN0TWFya2VyOjpSZW5kZXJMaXN0TWFya2VyKFJlbmRlckxpc3RJdGVtJiBsaXN0
SXRlbSwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJCb3gobGlzdEl0
ZW0uZG9jdW1lbnQoKSwgc3RkOjptb3ZlKHN0eWxlKSwgMCkKKyAgICA6IFJlbmRlckJveChsaXN0
SXRlbS5kb2N1bWVudCgpLCBXVEY6Om1vdmUoc3R5bGUpLCAwKQogICAgICwgbV9saXN0SXRlbShs
aXN0SXRlbSkKIHsKICAgICAvLyBpbml0IFJlbmRlck9iamVjdCBhdHRyaWJ1dGVzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhLmNwcAppbmRleCBlN2MyZjYyLi4wMDU0NmEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5jcHAKQEAgLTM1LDEzICszNSwx
MyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJNZWRpYTo6UmVuZGVyTWVkaWEoSFRN
TE1lZGlhRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAg
OiBSZW5kZXJJbWFnZShlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVySW1h
Z2UoZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKIHsKICAgICBzZXRIYXNTaGFkb3dDb250cm9s
cyh0cnVlKTsKIH0KIAogUmVuZGVyTWVkaWE6OlJlbmRlck1lZGlhKEhUTUxNZWRpYUVsZW1lbnQm
IGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlLCBjb25zdCBJbnRTaXplJiBpbnRy
aW5zaWNTaXplKQotICAgIDogUmVuZGVySW1hZ2UoZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkK
KyAgICA6IFJlbmRlckltYWdlKGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiB7CiAgICAgc2V0
SW50cmluc2ljU2l6ZShpbnRyaW5zaWNTaXplKTsKICAgICBzZXRIYXNTaGFkb3dDb250cm9scyh0
cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNv
bnRyb2xFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFD
b250cm9sRWxlbWVudHMuY3BwCmluZGV4IDdkZTk4MmEuLmRhODkyYjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmNw
cApAQCAtMzYsNyArMzYsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJNZWRpYVZv
bHVtZVNsaWRlckNvbnRhaW5lcjo6UmVuZGVyTWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXIoRWxl
bWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJC
bG9ja0Zsb3coZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlckJsb2NrRmxv
dyhlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogewogfQogCkBAIC02MCw3ICs2MCw3IEBAIHZv
aWQgUmVuZGVyTWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXI6OmxheW91dCgpCiAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFJlbmRlck1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFp
bmVyOjpSZW5kZXJNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lcihFbGVtZW50JiBlbGVtZW50
LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlckZsZXhpYmxlQm94KGVs
ZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJGbGV4aWJsZUJveChlbGVtZW50
LCBXVEY6Om1vdmUoc3R5bGUpKQogewogfQogCkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgUmVuZGVy
TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXI6OmxheW91dCgpCiAjaWYgRU5BQkxFKFZJREVP
X1RSQUNLKQogCiBSZW5kZXJUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpSZW5kZXJUZXh0VHJh
Y2tDb250YWluZXJFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+
IHN0eWxlKQotICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkp
CisgICAgOiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKIHsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKaW5kZXggYzYw
NzBjMC4uOWFhYjE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxp
c3QuY3BwCkBAIC03Miw3ICs3Miw3IEBAIHN0YXRpYyBzaXplX3Qgc2VsZWN0ZWRPcHRpb25Db3Vu
dChjb25zdCBSZW5kZXJNZW51TGlzdCYgcmVuZGVyTWVudUxpc3QpCiAjZW5kaWYKIAogUmVuZGVy
TWVudUxpc3Q6OlJlbmRlck1lbnVMaXN0KEhUTUxTZWxlY3RFbGVtZW50JiBlbGVtZW50LCBQYXNz
UmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlckZsZXhpYmxlQm94KGVsZW1lbnQs
IHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJGbGV4aWJsZUJveChlbGVtZW50LCBXVEY6
Om1vdmUoc3R5bGUpKQogICAgICwgbV9idXR0b25UZXh0KG51bGxwdHIpCiAgICAgLCBtX2lubmVy
QmxvY2sobnVsbHB0cikKICAgICAsIG1fbmVlZHNPcHRpb25zV2lkdGhVcGRhdGUodHJ1ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZXRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWV0ZXIuY3BwCmluZGV4IDk3NzQyZTguLjNjMTZm
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZXRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1ldGVyLmNwcApAQCAtMzEsNyAr
MzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwog
CiBSZW5kZXJNZXRlcjo6UmVuZGVyTWV0ZXIoSFRNTEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8
UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQsIHN0ZDo6
bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCwgV1RGOjptb3ZlKHN0
eWxlKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck11bHRpQ29sdW1uRmxvd1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkLmNwcAppbmRleCBhNWZmZDkyLi43YzkyMDg1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhy
ZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5G
bG93VGhyZWFkLmNwcApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBib29s
IFJlbmRlck11bHRpQ29sdW1uRmxvd1RocmVhZDo6Z1NoaWZ0aW5nU3Bhbm5lciA9IGZhbHNlOwog
CiBSZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQ6OlJlbmRlck11bHRpQ29sdW1uRmxvd1RocmVh
ZChEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDog
UmVuZGVyRmxvd1RocmVhZChkb2N1bWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRl
ckZsb3dUaHJlYWQoZG9jdW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiAgICAgLCBtX2xhc3RTZXRX
b3JrZWRPbihudWxscHRyKQogICAgICwgbV9jb2x1bW5Db3VudCgxKQogICAgICwgbV9jb2x1bW5X
aWR0aCgwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRp
Q29sdW1uU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVt
blNldC5jcHAKaW5kZXggMjJkODEwMS4uMzBmOTI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwCkBAIC0zNyw3ICszNyw3IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlck11bHRpQ29sdW1uU2V0OjpSZW5kZXJNdWx0aUNv
bHVtblNldChSZW5kZXJGbG93VGhyZWFkJiBmbG93VGhyZWFkLCBQYXNzUmVmPFJlbmRlclN0eWxl
PiBzdHlsZSkKLSAgICA6IFJlbmRlclJlZ2lvblNldChmbG93VGhyZWFkLmRvY3VtZW50KCksIHN0
ZDo6bW92ZShzdHlsZSksIGZsb3dUaHJlYWQpCisgICAgOiBSZW5kZXJSZWdpb25TZXQoZmxvd1Ro
cmVhZC5kb2N1bWVudCgpLCBXVEY6Om1vdmUoc3R5bGUpLCBmbG93VGhyZWFkKQogICAgICwgbV9j
b21wdXRlZENvbHVtbkNvdW50KDEpCiAgICAgLCBtX2NvbXB1dGVkQ29sdW1uV2lkdGgoMCkKICAg
ICAsIG1fY29tcHV0ZWRDb2x1bW5IZWlnaHQoMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIu
Y3BwCmluZGV4IGFkMWYwMWIuLmVhYTFmMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVy
LmNwcApAQCAtNDQsNyArNDQsNyBAQCBSZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRl
ciogUmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXI6OmNyZWF0ZQogfQogCiBSZW5k
ZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlcjo6UmVuZGVyTXVsdGlDb2x1bW5TcGFubmVy
UGxhY2Vob2xkZXIoUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkKiBmbG93VGhyZWFkLCBSZW5k
ZXJCb3gqIHNwYW5uZXIsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVy
Qm94KGZsb3dUaHJlYWQtPmRvY3VtZW50KCksIHN0ZDo6bW92ZShzdHlsZSksIFJlbmRlckJveE1v
ZGVsT2JqZWN0RmxhZykKKyAgICA6IFJlbmRlckJveChmbG93VGhyZWFkLT5kb2N1bWVudCgpLCBX
VEY6Om1vdmUoc3R5bGUpLCBSZW5kZXJCb3hNb2RlbE9iamVjdEZsYWcpCiAgICAgLCBtX3NwYW5u
ZXIoc3Bhbm5lcikKICAgICAsIG1fZmxvd1RocmVhZChmbG93VGhyZWFkKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5jcHAKaW5k
ZXggOTcyODM4My4uNjEzNjJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQuY3BwCkBAIC00NCw3ICs0NCw3IEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50OjpSZW5kZXJOYW1lZEZsb3dG
cmFnbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQot
ICAgIDogUmVuZGVyUmVnaW9uKGRvY3VtZW50LCBzdGQ6Om1vdmUoc3R5bGUpLCBudWxscHRyKQor
ICAgIDogUmVuZGVyUmVnaW9uKGRvY3VtZW50LCBXVEY6Om1vdmUoc3R5bGUpLCBudWxscHRyKQog
ICAgICwgbV9oYXNDdXN0b21SZWdpb25TdHlsZShmYWxzZSkKICAgICAsIG1faGFzQXV0b0xvZ2lj
YWxIZWlnaHQoZmFsc2UpCiAgICAgLCBtX2hhc0NvbXB1dGVkQXV0b0hlaWdodChmYWxzZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAK
aW5kZXggNzgwN2VlOS4uY2QwMzlkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAKQEAgLTQ2LDEwICs0NiwxMCBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OlJlbmRlck5hbWVkRmxvd1Ro
cmVhZChEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlLCBQYXNz
UmVmPFdlYktpdE5hbWVkRmxvdz4gbmFtZWRGbG93KQotICAgIDogUmVuZGVyRmxvd1RocmVhZChk
b2N1bWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlckZsb3dUaHJlYWQoZG9jdW1l
bnQsIFdURjo6bW92ZShzdHlsZSkpCiAgICAgLCBtX2hhc1JlZ2lvbnNXaXRoU3R5bGluZyhmYWxz
ZSkKICAgICAsIG1fZGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQoZmFsc2UpCi0gICAg
LCBtX25hbWVkRmxvdyhzdGQ6Om1vdmUobmFtZWRGbG93KSkKKyAgICAsIG1fbmFtZWRGbG93KFdU
Rjo6bW92ZShuYW1lZEZsb3cpKQogICAgICwgbV9yZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnRUaW1l
cih0aGlzLCAmUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpyZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnRU
aW1lckZpcmVkKQogewogfQpAQCAtOTMsNyArOTMsNyBAQCB2b2lkIFJlbmRlck5hbWVkRmxvd1Ro
cmVhZDo6dXBkYXRlV3JpdGluZ01vZGUoKQogICAgIC8vIFRoZSBmaXJzdCByZWdpb24gZGVmaW5l
cyB0aGUgcHJpbmNpcGFsIHdyaXRpbmcgbW9kZSBmb3IgdGhlIGVudGlyZSBmbG93LgogICAgIGF1
dG8gbmV3U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmUoJnN0eWxlKCkpOwogICAgIG5ld1N0eWxl
LmdldCgpLnNldFdyaXRpbmdNb2RlKGZpcnN0RnJhZ21lbnQtPnN0eWxlKCkud3JpdGluZ01vZGUo
KSk7Ci0gICAgc2V0U3R5bGUoc3RkOjptb3ZlKG5ld1N0eWxlKSk7CisgICAgc2V0U3R5bGUoV1RG
Ojptb3ZlKG5ld1N0eWxlKSk7CiB9CiAKIFJlbmRlckVsZW1lbnQqIFJlbmRlck5hbWVkRmxvd1Ro
cmVhZDo6bmV4dFJlbmRlcmVyRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5jcHAKaW5kZXggODdmYWYzYi4u
Y2I4YjFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dy
ZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3Bw
CkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclByb2dyZXNz
OjpSZW5kZXJQcm9ncmVzcyhIVE1MRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHls
ZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxl
KSkKKyAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogICAg
ICwgbV9wb3NpdGlvbihIVE1MUHJvZ3Jlc3NFbGVtZW50OjpJbnZhbGlkUG9zaXRpb24pCiAgICAg
LCBtX2FuaW1hdGlvblN0YXJ0VGltZSgwKQogICAgICwgbV9hbmltYXRpb25SZXBlYXRJbnRlcnZh
bCgwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclB0ci5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclB0ci5oCmluZGV4IGVmMDY5MjIuLjgxYzEz
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQdHIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHRyLmgKQEAgLTEwOSw3ICsxMDksNyBA
QCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBpbmxpbmUgUmVuZGVy
UHRyPFQ+OjpSZW5kZXJQdHIoUmVuZGVyUAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIGF1
dG8gUmVuZGVyUHRyPFQ+OjpvcGVyYXRvcj0oUmVuZGVyUHRyJiYgbykgLT4gUmVuZGVyUHRyJgog
ewogICAgIEFTU0VSVCghbyB8fCBvICE9IG1fcHRyKTsKLSAgICBSZW5kZXJQdHIgcHRyID0gc3Rk
Ojptb3ZlKG8pOworICAgIFJlbmRlclB0ciBwdHIgPSBXVEY6Om1vdmUobyk7CiAgICAgc3dhcChw
dHIpOwogICAgIHJldHVybiAqdGhpczsKIH0KQEAgLTExNyw3ICsxMTcsNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBpbmxpbmUgYXV0byBSZW5kZXJQdHI8VD46Om9wZXJhdG9yPShSZW5kZXJQdHIm
JiBvKSAtPiBSZW5kZQogdGVtcGxhdGU8dHlwZW5hbWUgVD4gdGVtcGxhdGU8dHlwZW5hbWUgVT4g
aW5saW5lIGF1dG8gUmVuZGVyUHRyPFQ+OjpvcGVyYXRvcj0oUmVuZGVyUHRyPFU+JiYgbykgLT4g
UmVuZGVyUHRyJgogewogICAgIEFTU0VSVCghbyB8fCBvICE9IG1fcHRyKTsKLSAgICBSZW5kZXJQ
dHIgcHRyID0gc3RkOjptb3ZlKG8pOworICAgIFJlbmRlclB0ciBwdHIgPSBXVEY6Om1vdmUobyk7
CiAgICAgc3dhcChwdHIpOwogICAgIHJldHVybiAqdGhpczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJRdW90ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUXVvdGUuY3BwCmluZGV4IGExMWQ5Y2EuLjQyMGViNDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJRdW90ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmNwcApAQCAtMzIsNyArMzIsNyBAQCB1c2luZyBu
YW1lc3BhY2UgV1RGOjpVbmljb2RlOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJRdW90
ZTo6UmVuZGVyUXVvdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBz
dHlsZSwgUXVvdGVUeXBlIHF1b3RlKQotICAgIDogUmVuZGVySW5saW5lKGRvY3VtZW50LCBzdGQ6
Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVySW5saW5lKGRvY3VtZW50LCBXVEY6Om1vdmUoc3R5
bGUpKQogICAgICwgbV90eXBlKHF1b3RlKQogICAgICwgbV9kZXB0aCgtMSkKICAgICAsIG1fbmV4
dCgwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcAppbmRleCA5MjU5
MGNkLi5kZTM2MjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UmVnaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNw
cApAQCAtNDksNyArNDksNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJSZWdpb246
OlJlbmRlclJlZ2lvbihFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHls
ZSwgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCkKLSAgICA6IFJlbmRlckJsb2NrRmxvdyhl
bGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQs
IFdURjo6bW92ZShzdHlsZSkpCiAgICAgLCBtX2Zsb3dUaHJlYWQoZmxvd1RocmVhZCkKICAgICAs
IG1fcGFyZW50TmFtZWRGbG93VGhyZWFkKG51bGxwdHIpCiAgICAgLCBtX2lzVmFsaWQoZmFsc2Up
CkBAIC01Nyw3ICs1Nyw3IEBAIFJlbmRlclJlZ2lvbjo6UmVuZGVyUmVnaW9uKEVsZW1lbnQmIGVs
ZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlLCBSZW5kZXJGCiB9CiAKIFJlbmRlclJl
Z2lvbjo6UmVuZGVyUmVnaW9uKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZjxSZW5kZXJTdHls
ZT4gc3R5bGUsIFJlbmRlckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQpCi0gICAgOiBSZW5kZXJCbG9j
a0Zsb3coZG9jdW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJCbG9ja0Zsb3co
ZG9jdW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiAgICAgLCBtX2Zsb3dUaHJlYWQoZmxvd1RocmVh
ZCkKICAgICAsIG1fcGFyZW50TmFtZWRGbG93VGhyZWFkKG51bGxwdHIpCiAgICAgLCBtX2lzVmFs
aWQoZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVn
aW9uU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb25TZXQuY3Bw
CmluZGV4IDNmYjNkZmQuLmFlMDczYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSZWdpb25TZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZWdpb25TZXQuY3BwCkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIFJlbmRlclJlZ2lvblNldDo6UmVuZGVyUmVnaW9uU2V0KERvY3VtZW50JiBkb2N1bWVudCwg
UGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUsIFJlbmRlckZsb3dUaHJlYWQmIGZsb3dUaHJlYWQp
Ci0gICAgOiBSZW5kZXJSZWdpb24oZG9jdW1lbnQsIHN0ZDo6bW92ZShzdHlsZSksICZmbG93VGhy
ZWFkKQorICAgIDogUmVuZGVyUmVnaW9uKGRvY3VtZW50LCBXVEY6Om1vdmUoc3R5bGUpLCAmZmxv
d1RocmVhZCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclJlcGxhY2VkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNl
ZC5jcHAKaW5kZXggODJlOWMxNC4uOTc0ZTc3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUmVwbGFjZWQuY3BwCkBAIC00NywyMSArNDcsMjEgQEAgY29uc3QgaW50IGNEZWZh
dWx0V2lkdGggPSAzMDA7CiBjb25zdCBpbnQgY0RlZmF1bHRIZWlnaHQgPSAxNTA7CiAKIFJlbmRl
clJlcGxhY2VkOjpSZW5kZXJSZXBsYWNlZChFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRl
clN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlckJveChlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUp
LCBSZW5kZXJSZXBsYWNlZEZsYWcpCisgICAgOiBSZW5kZXJCb3goZWxlbWVudCwgV1RGOjptb3Zl
KHN0eWxlKSwgUmVuZGVyUmVwbGFjZWRGbGFnKQogICAgICwgbV9pbnRyaW5zaWNTaXplKGNEZWZh
dWx0V2lkdGgsIGNEZWZhdWx0SGVpZ2h0KQogewogICAgIHNldFJlcGxhY2VkKHRydWUpOwogfQog
CiBSZW5kZXJSZXBsYWNlZDo6UmVuZGVyUmVwbGFjZWQoRWxlbWVudCYgZWxlbWVudCwgUGFzc1Jl
ZjxSZW5kZXJTdHlsZT4gc3R5bGUsIGNvbnN0IExheW91dFNpemUmIGludHJpbnNpY1NpemUpCi0g
ICAgOiBSZW5kZXJCb3goZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSwgUmVuZGVyUmVwbGFjZWRG
bGFnKQorICAgIDogUmVuZGVyQm94KGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSksIFJlbmRlclJl
cGxhY2VkRmxhZykKICAgICAsIG1faW50cmluc2ljU2l6ZShpbnRyaW5zaWNTaXplKQogewogICAg
IHNldFJlcGxhY2VkKHRydWUpOwogfQogCiBSZW5kZXJSZXBsYWNlZDo6UmVuZGVyUmVwbGFjZWQo
RG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSwgY29uc3QgTGF5
b3V0U2l6ZSYgaW50cmluc2ljU2l6ZSkKLSAgICA6IFJlbmRlckJveChkb2N1bWVudCwgc3RkOjpt
b3ZlKHN0eWxlKSwgUmVuZGVyUmVwbGFjZWRGbGFnKQorICAgIDogUmVuZGVyQm94KGRvY3VtZW50
LCBXVEY6Om1vdmUoc3R5bGUpLCBSZW5kZXJSZXBsYWNlZEZsYWcpCiAgICAgLCBtX2ludHJpbnNp
Y1NpemUoaW50cmluc2ljU2l6ZSkKIHsKICAgICBzZXRSZXBsYWNlZCh0cnVlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmNwcAppbmRleCAzNjdkMmMzLi4zNmFkOWQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxpY2EuY3BwCkBAIC0zNSw3
ICszNSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclJlcGxpY2E6OlJlbmRlclJl
cGxpY2EoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAg
ICA6IFJlbmRlckJveChkb2N1bWVudCwgc3RkOjptb3ZlKHN0eWxlKSwgMCkKKyAgICA6IFJlbmRl
ckJveChkb2N1bWVudCwgV1RGOjptb3ZlKHN0eWxlKSwgMCkKIHsKICAgICAvLyBUaGlzIGlzIGEg
aGFjay4gUmVwbGljYXMgYXJlIHN5bnRoZXRpYywgYW5kIGRvbid0IHBpY2sgdXAgdGhlIGF0dHJp
YnV0ZXMgb2YgdGhlCiAgICAgLy8gcmVuZGVyZXJzIGJlaW5nIHJlcGxpY2F0ZWQsIHNvIHRoZXkg
YWx3YXlzIHJlcG9ydCB0aGF0IHRoZXkgYXJlIGlubGluZSwgbm9uLXJlcGxhY2VkLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnkuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnkuY3BwCmluZGV4IDM3M2ZjYzYuLjUxYjBkMWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieS5jcHAKQEAgLTEwOCw3ICsxMDgsNyBA
QCBzdGF0aWMgaW5saW5lIFJlbmRlclJ1YnlSdW4mIGZpbmRSdWJ5UnVuUGFyZW50KFJlbmRlck9i
amVjdCYgY2hpbGQpCiAvLz09PSBydWJ5IGFzIGlubGluZSBvYmplY3QgPT09CiAKIFJlbmRlclJ1
YnlBc0lubGluZTo6UmVuZGVyUnVieUFzSW5saW5lKEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8
UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVySW5saW5lKGVsZW1lbnQsIHN0ZDo6bW92
ZShzdHlsZSkpCisgICAgOiBSZW5kZXJJbmxpbmUoZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkK
IHsKIH0KIApAQCAtMjEyLDcgKzIxMiw3IEBAIFJlbmRlck9iamVjdCogUmVuZGVyUnVieUFzSW5s
aW5lOjpyZW1vdmVDaGlsZChSZW5kZXJPYmplY3QmIGNoaWxkKQogLy89PT0gcnVieSBhcyBibG9j
ayBvYmplY3QgPT09CiAKIFJlbmRlclJ1YnlBc0Jsb2NrOjpSZW5kZXJSdWJ5QXNCbG9jayhFbGVt
ZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlckJs
b2NrRmxvdyhlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyQmxvY2tGbG93
KGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUnVieUJhc2UuY3BwCmluZGV4IDQyNmJlOWYuLjdkYmUxNDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmNwcApAQCAtMzcsNyArMzcsNyBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJSdWJ5QmFzZTo6UmVuZGVyUnVieUJhc2Uo
RG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJl
bmRlckJsb2NrRmxvdyhkb2N1bWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlckJs
b2NrRmxvdyhkb2N1bWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKIHsKICAgICBzZXRJbmxpbmUoZmFs
c2UpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlS
dW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwCmluZGV4
IGYwMzhhNzcuLmIyYjFmNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSdWJ5UnVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVi
eVJ1bi5jcHAKQEAgLTQyLDcgKzQyLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVy
UnVieVJ1bjo6UmVuZGVyUnVieVJ1bihEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWY8UmVuZGVy
U3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyQmxvY2tGbG93KGRvY3VtZW50LCBzdGQ6Om1vdmUo
c3R5bGUpKQorICAgIDogUmVuZGVyQmxvY2tGbG93KGRvY3VtZW50LCBXVEY6Om1vdmUoc3R5bGUp
KQogewogICAgIHNldFJlcGxhY2VkKHRydWUpOwogICAgIHNldElubGluZSh0cnVlKTsKQEAgLTIw
Myw3ICsyMDMsNyBAQCBSZW5kZXJSdWJ5QmFzZSogUmVuZGVyUnVieVJ1bjo6Y3JlYXRlUnVieUJh
c2UoKSBjb25zdAogewogICAgIGF1dG8gbmV3U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlQW5v
bnltb3VzU3R5bGVXaXRoRGlzcGxheSgmc3R5bGUoKSwgQkxPQ0spOwogICAgIG5ld1N0eWxlLmdl
dCgpLnNldFRleHRBbGlnbihDRU5URVIpOyAvLyBGSVhNRTogdXNlIFdFQktJVF9DRU5URVI/Ci0g
ICAgYXV0byByZW5kZXJlciA9IG5ldyBSZW5kZXJSdWJ5QmFzZShkb2N1bWVudCgpLCBzdGQ6Om1v
dmUobmV3U3R5bGUpKTsKKyAgICBhdXRvIHJlbmRlcmVyID0gbmV3IFJlbmRlclJ1YnlCYXNlKGRv
Y3VtZW50KCksIFdURjo6bW92ZShuZXdTdHlsZSkpOwogICAgIHJlbmRlcmVyLT5pbml0aWFsaXpl
U3R5bGUoKTsKICAgICByZXR1cm4gcmVuZGVyZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclJ1YnlUZXh0LmNwcAppbmRleCAyNGM3MjIyLi5hODQxZWQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5VGV4dC5jcHAKQEAgLTM2LDcgKzM2LDcgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyUnVieVRleHQ6OlJlbmRlclJ1YnlUZXh0KEVs
ZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVy
QmxvY2tGbG93KGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJCbG9ja0Zs
b3coZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhclBhcnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhclBhcnQuY3BwCmluZGV4IGU2YWNkYTUuLjEwN2M1
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXJQ
YXJ0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyUGFy
dC5jcHAKQEAgLTM1LDcgKzM1LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyU2Ny
b2xsYmFyUGFydDo6UmVuZGVyU2Nyb2xsYmFyUGFydChEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NS
ZWY8UmVuZGVyU3R5bGU+IHN0eWxlLCBSZW5kZXJTY3JvbGxiYXIqIHNjcm9sbGJhciwgU2Nyb2xs
YmFyUGFydCBwYXJ0KQotICAgIDogUmVuZGVyQmxvY2soZG9jdW1lbnQsIHN0ZDo6bW92ZShzdHls
ZSksIDApCisgICAgOiBSZW5kZXJCbG9jayhkb2N1bWVudCwgV1RGOjptb3ZlKHN0eWxlKSwgMCkK
ICAgICAsIG1fc2Nyb2xsYmFyKHNjcm9sbGJhcikKICAgICAsIG1fcGFydChwYXJ0KQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAKaW5kZXggMjNh
YzVhMC4uOGYwODk5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNlYXJjaEZpZWxkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Vh
cmNoRmllbGQuY3BwCkBAIC01MSw3ICs1MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIFJlbmRlclNlYXJjaEZpZWxkOjpSZW5kZXJTZWFyY2hG
aWVsZChIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHls
ZSkKLSAgICA6IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZShlbGVtZW50LCBzdGQ6Om1vdmUo
c3R5bGUpKQorICAgIDogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lKGVsZW1lbnQsIFdURjo6
bW92ZShzdHlsZSkpCiAgICAgLCBtX3NlYXJjaFBvcHVwSXNWaXNpYmxlKGZhbHNlKQogICAgICwg
bV9zZWFyY2hQb3B1cCgwKQogewpAQCAtMTgxLDcgKzE4MSw3IEBAIHZvaWQgUmVuZGVyU2VhcmNo
RmllbGQ6OnVwZGF0ZUNhbmNlbEJ1dHRvblZpc2liaWxpdHkoKSBjb25zdAogCiAgICAgYXV0byBj
YW5jZWxCdXR0b25TdHlsZSA9IFJlbmRlclN0eWxlOjpjbG9uZSgmY3VyU3R5bGUpOwogICAgIGNh
bmNlbEJ1dHRvblN0eWxlLmdldCgpLnNldFZpc2liaWxpdHkoYnV0dG9uVmlzaWJpbGl0eSk7Ci0g
ICAgY2FuY2VsQnV0dG9uUmVuZGVyZXItPnNldFN0eWxlKHN0ZDo6bW92ZShjYW5jZWxCdXR0b25T
dHlsZSkpOworICAgIGNhbmNlbEJ1dHRvblJlbmRlcmVyLT5zZXRTdHlsZShXVEY6Om1vdmUoY2Fu
Y2VsQnV0dG9uU3R5bGUpKTsKIH0KIAogRVZpc2liaWxpdHkgUmVuZGVyU2VhcmNoRmllbGQ6OnZp
c2liaWxpdHlGb3JDYW5jZWxCdXR0b24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyU2xpZGVyLmNwcAppbmRleCAwZmM0NDBhLi5hZWI4OGJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcApAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjb25zdCBpbnQgUmVuZGVyU2xpZGVyOjpkZWZhdWx0VHJhY2tMZW5ndGggPSAx
Mjk7CiAKIFJlbmRlclNsaWRlcjo6UmVuZGVyU2xpZGVyKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1l
bnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyRmxleGlibGVCb3go
ZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlckZsZXhpYmxlQm94KGVsZW1l
bnQsIFdURjo6bW92ZShzdHlsZSkpCiB7CiAgICAgLy8gV2UgYXNzdW1lIFJlbmRlclNsaWRlciB3
b3JrcyBvbmx5IHdpdGggPGlucHV0IHR5cGU9cmFuZ2U+LgogICAgIEFTU0VSVChlbGVtZW50Lmlz
UmFuZ2VDb250cm9sKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKaW5kZXggZTA4NzY3YS4uNzZjNmIwNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3Bw
CkBAIC00OSw3ICs0OSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclNuYXBzaG90
dGVkUGx1Z0luOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50
JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlckVtYmVk
ZGVkT2JqZWN0KGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJFbWJlZGRl
ZE9iamVjdChlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogICAgICwgbV9zbmFwc2hvdFJlc291
cmNlKHN0ZDo6bWFrZV91bmlxdWU8UmVuZGVySW1hZ2VSZXNvdXJjZT4oKSkKICAgICAsIG1faXNQ
b3RlbnRpYWxNb3VzZUFjdGl2YXRpb24oZmFsc2UpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlLmNwcAppbmRleCA0ZTQ4M2ZjLi41YjYxODY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogUmVuZGVyVGFibGU6OlJlbmRl
clRhYmxlKEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAg
IDogUmVuZGVyQmxvY2soZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSwgMCkKKyAgICA6IFJlbmRl
ckJsb2NrKGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSksIDApCiAgICAgLCBtX2hlYWQobnVsbHB0
cikKICAgICAsIG1fZm9vdChudWxscHRyKQogICAgICwgbV9maXJzdEJvZHkobnVsbHB0cikKQEAg
LTc0LDcgKzc0LDcgQEAgUmVuZGVyVGFibGU6OlJlbmRlclRhYmxlKEVsZW1lbnQmIGVsZW1lbnQs
IFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogfQogCiBSZW5kZXJUYWJsZTo6UmVuZGVyVGFi
bGUoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6
IFJlbmRlckJsb2NrKGRvY3VtZW50LCBzdGQ6Om1vdmUoc3R5bGUpLCAwKQorICAgIDogUmVuZGVy
QmxvY2soZG9jdW1lbnQsIFdURjo6bW92ZShzdHlsZSksIDApCiAgICAgLCBtX2hlYWQobnVsbHB0
cikKICAgICAsIG1fZm9vdChudWxscHRyKQogICAgICwgbV9maXJzdEJvZHkobnVsbHB0cikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNhcHRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2FwdGlvbi5jcHAKaW5kZXgg
MzhjNGQ3Yy4uY2ExOGM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlQ2FwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlQ2FwdGlvbi5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogUmVuZGVyVGFibGVDYXB0aW9uOjpSZW5kZXJUYWJsZUNhcHRpb24oRWxlbWVudCYgZWxlbWVu
dCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJCbG9ja0Zsb3coZWxl
bWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50LCBX
VEY6Om1vdmUoc3R5bGUpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZUNlbGwuY3BwCmluZGV4IDM0MmRjYzYuLmFhZTU1YTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCkBAIC01NSw3ICs1NSw3IEBAIENPTVBJ
TEVfQVNTRVJUKHNpemVvZihSZW5kZXJUYWJsZUNlbGwpID09IHNpemVvZihTYW1lU2l6ZUFzUmVu
ZGVyVGFibGVDZWxsKSwgUmVuCiBDT01QSUxFX0FTU0VSVChzaXplb2YoQ29sbGFwc2VkQm9yZGVy
VmFsdWUpID09IDgsIENvbGxhcHNlZEJvcmRlclZhbHVlX3Nob3VsZF9zdGF5X3NtYWxsKTsKIAog
UmVuZGVyVGFibGVDZWxsOjpSZW5kZXJUYWJsZUNlbGwoRWxlbWVudCYgZWxlbWVudCwgUGFzc1Jl
ZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCwgc3Rk
Ojptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50LCBXVEY6Om1vdmUo
c3R5bGUpKQogICAgICwgbV9jb2x1bW4odW5zZXRDb2x1bW5JbmRleCkKICAgICAsIG1fY2VsbFdp
ZHRoQ2hhbmdlZChmYWxzZSkKICAgICAsIG1faW50cmluc2ljUGFkZGluZ0JlZm9yZSgwKQpAQCAt
NjcsNyArNjcsNyBAQCBSZW5kZXJUYWJsZUNlbGw6OlJlbmRlclRhYmxlQ2VsbChFbGVtZW50JiBl
bGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIH0KIAogUmVuZGVyVGFibGVDZWxs
OjpSZW5kZXJUYWJsZUNlbGwoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxl
PiBzdHlsZSkKLSAgICA6IFJlbmRlckJsb2NrRmxvdyhkb2N1bWVudCwgc3RkOjptb3ZlKHN0eWxl
KSkKKyAgICA6IFJlbmRlckJsb2NrRmxvdyhkb2N1bWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKICAg
ICAsIG1fY29sdW1uKHVuc2V0Q29sdW1uSW5kZXgpCiAgICAgLCBtX2NlbGxXaWR0aENoYW5nZWQo
ZmFsc2UpCiAgICAgLCBtX2hhc0NvbFNwYW4oZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlQ29sLmNwcAppbmRleCA0OWM2ZDY3Li42ZmRlNDk0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5jcHAKQEAgLTM3LDcgKzM3LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogUmVuZGVy
VGFibGVDb2w6OlJlbmRlclRhYmxlQ29sKEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVy
U3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyQm94KGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSks
IDApCisgICAgOiBSZW5kZXJCb3goZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSwgMCkKICAgICAs
IG1fc3BhbigxKQogewogICAgIC8vIGluaXQgUmVuZGVyT2JqZWN0IGF0dHJpYnV0ZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuY3BwCmluZGV4IDc0MWFhYWMuLjY5
NzBlYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJv
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmNwcApA
QCAtMzksMTQgKzM5LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBI
VE1MTmFtZXM7CiAKIFJlbmRlclRhYmxlUm93OjpSZW5kZXJUYWJsZVJvdyhFbGVtZW50JiBlbGVt
ZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlckJveChlbGVtZW50
LCBzdGQ6Om1vdmUoc3R5bGUpLCAwKQorICAgIDogUmVuZGVyQm94KGVsZW1lbnQsIFdURjo6bW92
ZShzdHlsZSksIDApCiAgICAgLCBtX3Jvd0luZGV4KHVuc2V0Um93SW5kZXgpCiB7CiAgICAgc2V0
SW5saW5lKGZhbHNlKTsKIH0KIAogUmVuZGVyVGFibGVSb3c6OlJlbmRlclRhYmxlUm93KERvY3Vt
ZW50JiBkb2N1bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJC
b3goZG9jdW1lbnQsIHN0ZDo6bW92ZShzdHlsZSksIDApCisgICAgOiBSZW5kZXJCb3goZG9jdW1l
bnQsIFdURjo6bW92ZShzdHlsZSksIDApCiAgICAgLCBtX3Jvd0luZGV4KHVuc2V0Um93SW5kZXgp
CiB7CiAgICAgc2V0SW5saW5lKGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlU2VjdGlvbi5jcHAKaW5kZXggYzkyODhlOS4uYWY4NDdkNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAKQEAgLTgyLDcg
KzgyLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHVwZGF0ZUxvZ2ljYWxIZWlnaHRGb3JDZWxsKFJl
bmRlclRhYmxlU2VjdGlvbjo6Um93U3RydWN0JiByb3cKIH0KIAogUmVuZGVyVGFibGVTZWN0aW9u
OjpSZW5kZXJUYWJsZVNlY3Rpb24oRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHls
ZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJCb3goZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSwgMCkK
KyAgICA6IFJlbmRlckJveChlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpLCAwKQogICAgICwgbV9j
Q29sKDApCiAgICAgLCBtX2NSb3coMCkKICAgICAsIG1fb3V0ZXJCb3JkZXJTdGFydCgwKQpAQCAt
OTYsNyArOTYsNyBAQCBSZW5kZXJUYWJsZVNlY3Rpb246OlJlbmRlclRhYmxlU2VjdGlvbihFbGVt
ZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdAogfQogCiBSZW5kZXJUYWJsZVNl
Y3Rpb246OlJlbmRlclRhYmxlU2VjdGlvbihEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWY8UmVu
ZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyQm94KGRvY3VtZW50LCBzdGQ6Om1vdmUoc3R5
bGUpLCAwKQorICAgIDogUmVuZGVyQm94KGRvY3VtZW50LCBXVEY6Om1vdmUoc3R5bGUpLCAwKQog
ICAgICwgbV9jQ29sKDApCiAgICAgLCBtX2NSb3coMCkKICAgICAsIG1fb3V0ZXJCb3JkZXJTdGFy
dCgwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAK
aW5kZXggZTE3MTg0YjcuLmJjNzFkMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sLmNwcApAQCAtMzgsNyArMzgsNyBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBSZW5kZXJUZXh0Q29udHJvbDo6UmVuZGVyVGV4dENvbnRyb2woSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAg
IDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5k
ZXJCbG9ja0Zsb3coZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaAppbmRleCBmOGU3NzJlLi4xYzU3
NGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaApA
QCAtOTYsNyArOTYsNyBAQCBSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyVGV4dENvbnRy
b2wsIGlzVGV4dENvbnRyb2woKSkKIGNsYXNzIFJlbmRlclRleHRDb250cm9sSW5uZXJDb250YWlu
ZXIgZmluYWwgOiBwdWJsaWMgUmVuZGVyRmxleGlibGVCb3ggewogcHVibGljOgogICAgIGV4cGxp
Y2l0IFJlbmRlclRleHRDb250cm9sSW5uZXJDb250YWluZXIoRWxlbWVudCYgZWxlbWVudCwgUGFz
c1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgICAgIDogUmVuZGVyRmxleGlibGVCb3goZWxl
bWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICAgICAgOiBSZW5kZXJGbGV4aWJsZUJveChlbGVt
ZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogICAgIHsgfQogICAgIHZpcnR1YWwgflJlbmRlclRleHRD
b250cm9sSW5uZXJDb250YWluZXIoKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAKaW5kZXggYzVhMWIzOC4u
OTFkYjUzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRD
b250cm9sTXVsdGlMaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwCkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lOjpSZW5kZXJUZXh0Q29udHJvbE11
bHRpTGluZShIVE1MVGV4dEFyZWFFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxl
PiBzdHlsZSkKLSAgICA6IFJlbmRlclRleHRDb250cm9sKGVsZW1lbnQsIHN0ZDo6bW92ZShzdHls
ZSkpCisgICAgOiBSZW5kZXJUZXh0Q29udHJvbChlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQog
ewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
Q29udHJvbFNpbmdsZUxpbmUuY3BwCmluZGV4IDJmZDQ0MWIuLjdhNTg2ODcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxp
bmUuY3BwCkBAIC01NCw3ICs1NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVz
cGFjZSBIVE1MTmFtZXM7CiAKIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6UmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVu
ZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyVGV4dENvbnRyb2woZWxlbWVudCwgc3RkOjpt
b3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlclRleHRDb250cm9sKGVsZW1lbnQsIFdURjo6bW92ZShz
dHlsZSkpCiAgICAgLCBtX3Nob3VsZERyYXdDYXBzTG9ja0luZGljYXRvcihmYWxzZSkKICAgICAs
IG1fZGVzaXJlZElubmVyVGV4dExvZ2ljYWxIZWlnaHQoLTEpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKaW5kZXgg
NzljNjAyNi4uZmViODA1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaApAQCAtMTA0LDcgKzEwNCw3IEBAIFJFTkRF
Ul9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUsIGlzVGV4dEZp
ZWxkKCkpCiBjbGFzcyBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2sgZmluYWwgOiBwdWJsaWMg
UmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoKICAgICBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxv
Y2soRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgICAg
IDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgICAgIDog
UmVuZGVyQmxvY2tGbG93KGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiAgICAgewogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZUVEN1ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVlRUQ3VlLmNwcAppbmRleCA4ODNmMTM2
Li4yZTI2Y2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVlRU
Q3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVlRUQ3VlLmNwcApA
QCAtMzcsNyArMzcsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJWVFRDdWU6OlJl
bmRlclZUVEN1ZShWVFRDdWVCb3gmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxl
KQotICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAg
OiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKICAgICAsIG1fY3Vl
KGVsZW1lbnQuZ2V0Q3VlKCkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVmlkZW8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZGVvLmNwcAppbmRleCA5ZDI5ZTBjLi43NzE1ZDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWRlby5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogUmVuZGVyVmlkZW86OlJlbmRlclZpZGVvKEhU
TUxWaWRlb0VsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAg
IDogUmVuZGVyTWVkaWEoZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlck1l
ZGlhKGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiB7CiAgICAgc2V0SW50cmluc2ljU2l6ZShj
YWxjdWxhdGVJbnRyaW5zaWNTaXplKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clZpZXcuY3BwCmluZGV4IDI2ZDUyZDAuLjNhMTVlNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgc3RydWN0IFNlbGVjdGlvbkl0ZXJh
dG9yIHsKIH07CiAKIFJlbmRlclZpZXc6OlJlbmRlclZpZXcoRG9jdW1lbnQmIGRvY3VtZW50LCBQ
YXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlckJsb2NrRmxvdyhkb2N1bWVu
dCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlckJsb2NrRmxvdyhkb2N1bWVudCwgV1RG
Ojptb3ZlKHN0eWxlKSkKICAgICAsIG1fZnJhbWVWaWV3KCpkb2N1bWVudC52aWV3KCkpCiAgICAg
LCBtX3NlbGVjdGlvblN0YXJ0KDApCiAgICAgLCBtX3NlbGVjdGlvbkVuZCgwKQpAQCAtOTk1LDcg
Kzk5NSw3IEBAIHZvaWQgUmVuZGVyVmlldzo6c2V0U3VidHJlZVNlbGVjdGlvbihTZWxlY3Rpb25T
dWJ0cmVlUm9vdCYgcm9vdCwgUmVuZGVyT2JqZWN0KiBzCiAgICAgICAgICAgICBtX3NlbGVjdGlv
blJlY3RHYXRoZXJlci5hZGRSZWN0KHNlbGVjdGlvbkluZm8tPnJlY3QoKSk7CiAjZW5kaWYKIAot
ICAgICAgICAgICAgbmV3U2VsZWN0ZWRPYmplY3RzLnNldChvLCBzdGQ6Om1vdmUoc2VsZWN0aW9u
SW5mbykpOworICAgICAgICAgICAgbmV3U2VsZWN0ZWRPYmplY3RzLnNldChvLCBXVEY6Om1vdmUo
c2VsZWN0aW9uSW5mbykpOwogCiAgICAgICAgICAgICBSZW5kZXJCbG9jayogY2IgPSBvLT5jb250
YWluaW5nQmxvY2soKTsKICAgICAgICAgICAgIHdoaWxlIChjYiAmJiAhY2ItPmlzUmVuZGVyVmll
dygpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAppbmRleCBiYjgyMTEyLi4w
YzI2YjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKQEAgLTI2OSw3ICsy
NjksNyBAQCBwcml2YXRlOgogICAgICAgICAvLyBXZSBwdXNoIExheW91dFN0YXRlIGV2ZW4gaWYg
bGF5b3V0U3RhdGUgaXMgZGlzYWJsZWQgYmVjYXVzZSBpdCBzdG9yZXMgbGF5b3V0RGVsdGEgdG9v
LgogICAgICAgICBpZiAoIWRvaW5nRnVsbFJlcGFpbnQoKSB8fCBtX2xheW91dFN0YXRlLT5pc1Bh
Z2luYXRlZCgpIHx8IHJlbmRlcmVyLmZsb3dUaHJlYWRDb250YWluaW5nQmxvY2soKQogICAgICAg
ICAgICAgfHwgbV9sYXlvdXRTdGF0ZS0+bGluZUdyaWQoKSB8fCAocmVuZGVyZXIuc3R5bGUoKS5s
aW5lR3JpZCgpICE9IFJlbmRlclN0eWxlOjppbml0aWFsTGluZUdyaWQoKSAmJiByZW5kZXJlci5p
c1JlbmRlckJsb2NrRmxvdygpKSkgewotICAgICAgICAgICAgbV9sYXlvdXRTdGF0ZSA9IHN0ZDo6
bWFrZV91bmlxdWU8TGF5b3V0U3RhdGU+KHN0ZDo6bW92ZShtX2xheW91dFN0YXRlKSwgJnJlbmRl
cmVyLCBvZmZzZXQsIHBhZ2VIZWlnaHQsIHBhZ2VIZWlnaHRDaGFuZ2VkKTsKKyAgICAgICAgICAg
IG1fbGF5b3V0U3RhdGUgPSBzdGQ6Om1ha2VfdW5pcXVlPExheW91dFN0YXRlPihXVEY6Om1vdmUo
bV9sYXlvdXRTdGF0ZSksICZyZW5kZXJlciwgb2Zmc2V0LCBwYWdlSGVpZ2h0LCBwYWdlSGVpZ2h0
Q2hhbmdlZCk7CiAgICAgICAgICAgICBwdXNoTGF5b3V0U3RhdGVGb3JDdXJyZW50Rmxvd1RocmVh
ZChyZW5kZXJlcik7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpAQCAtMjc5
LDcgKzI3OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwb3BMYXlvdXRTdGF0ZSgpCiAgICAgewog
ICAgICAgICBwb3BMYXlvdXRTdGF0ZUZvckN1cnJlbnRGbG93VGhyZWFkKCk7Ci0gICAgICAgIG1f
bGF5b3V0U3RhdGUgPSBzdGQ6Om1vdmUobV9sYXlvdXRTdGF0ZS0+bV9uZXh0KTsKKyAgICAgICAg
bV9sYXlvdXRTdGF0ZSA9IFdURjo6bW92ZShtX2xheW91dFN0YXRlLT5tX25leHQpOwogICAgIH0K
IAogICAgIC8vIFN1c3BlbmRzIHRoZSBMYXlvdXRTdGF0ZSBvcHRpbWl6YXRpb24uIFVzZWQgdW5k
ZXIgdHJhbnNmb3JtcyB0aGF0IGNhbm5vdCBiZSByZXByZXNlbnRlZCBieQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAppbmRleCA3NWJhNWIxLi4xZmY4M2E4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcApAQCAtODEsNyArODEsNyBA
QCBzdGF0aWMgdm9pZCBtb3ZlV2lkZ2V0VG9QYXJlbnRTb29uKFdpZGdldCogY2hpbGQsIEZyYW1l
VmlldyogcGFyZW50KQogfQogCiBSZW5kZXJXaWRnZXQ6OlJlbmRlcldpZGdldChIVE1MRnJhbWVP
d25lckVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDog
UmVuZGVyUmVwbGFjZWQoZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlclJl
cGxhY2VkKGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiAgICAgLCBtX3dlYWtQdHJGYWN0b3J5
KHRoaXMpCiB7CiAgICAgc2V0SW5saW5lKGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9Sb290SW5saW5lQm94LmNwcAppbmRleCAwYWUwYTA5Li5mM2Y4N2M3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgZmxv
YXQgUm9vdElubGluZUJveDo6cGxhY2VFbGxpcHNpcyhjb25zdCBBdG9taWNTdHJpbmcmIGVsbGlw
c2lzU3RyLCAgYm9vbCBsdHIsIGYKICAgICBhdXRvIG5ld0VsbGlwc2lzQm94ID0gc3RkOjptYWtl
X3VuaXF1ZTxFbGxpcHNpc0JveD4oYmxvY2tGbG93KCksIGVsbGlwc2lzU3RyLCB0aGlzLCBlbGxp
cHNpc1dpZHRoIC0gKG1hcmt1cEJveCA/IG1hcmt1cEJveC0+bG9naWNhbFdpZHRoKCkgOiAwKSwg
bG9naWNhbEhlaWdodCgpLCB5KCksICFwcmV2Um9vdEJveCgpLCBpc0hvcml6b250YWwoKSwgbWFy
a3VwQm94KTsKICAgICBhdXRvIGVsbGlwc2lzQm94ID0gbmV3RWxsaXBzaXNCb3guZ2V0KCk7CiAK
LSAgICBnRWxsaXBzaXNCb3hNYXAtPmFkZCh0aGlzLCBzdGQ6Om1vdmUobmV3RWxsaXBzaXNCb3gp
KTsKKyAgICBnRWxsaXBzaXNCb3hNYXAtPmFkZCh0aGlzLCBXVEY6Om1vdmUobmV3RWxsaXBzaXNC
b3gpKTsKICAgICBzZXRIYXNFbGxpcHNpc0JveCh0cnVlKTsKIAogICAgIC8vIEZJWE1FOiBEbyB3
ZSBuZWVkIGFuIFJUTCB2ZXJzaW9uIG9mIHRoaXM/CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3BwCmluZGV4IDFiY2FmNDAuLjBh
ZjkxNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVu
ZGVyTWF0aE1MQmxvY2suY3BwCkBAIC00NCwxMiArNDQsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogdXNpbmcgbmFtZXNwYWNlIE1hdGhNTE5hbWVzOwogICAgIAogUmVuZGVyTWF0aE1MQmxvY2s6
OlJlbmRlck1hdGhNTEJsb2NrKEVsZW1lbnQmIGNvbnRhaW5lciwgUGFzc1JlZjxSZW5kZXJTdHls
ZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJGbGV4aWJsZUJveChjb250YWluZXIsIHN0ZDo6bW92ZShz
dHlsZSkpCisgICAgOiBSZW5kZXJGbGV4aWJsZUJveChjb250YWluZXIsIFdURjo6bW92ZShzdHls
ZSkpCiB7CiB9CiAKIFJlbmRlck1hdGhNTEJsb2NrOjpSZW5kZXJNYXRoTUxCbG9jayhEb2N1bWVu
dCYgZG9jdW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyRmxl
eGlibGVCb3goZG9jdW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJGbGV4aWJs
ZUJveChkb2N1bWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oCmluZGV4IDk3ZWJh
MzYuLmY0MTUwMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1s
L1JlbmRlck1hdGhNTEJsb2NrLmgKQEAgLTc0LDcgKzc0LDcgQEAgUkVOREVSX09CSkVDVF9UWVBF
X0NBU1RTKFJlbmRlck1hdGhNTEJsb2NrLCBpc1JlbmRlck1hdGhNTEJsb2NrKCkpCiBjbGFzcyBS
ZW5kZXJNYXRoTUxUYWJsZSBmaW5hbCA6IHB1YmxpYyBSZW5kZXJUYWJsZSB7CiBwdWJsaWM6CiAg
ICAgZXhwbGljaXQgUmVuZGVyTWF0aE1MVGFibGUoRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxS
ZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgICAgIDogUmVuZGVyVGFibGUoZWxlbWVudCwgc3RkOjpt
b3ZlKHN0eWxlKSkKKyAgICAgICAgOiBSZW5kZXJUYWJsZShlbGVtZW50LCBXVEY6Om1vdmUoc3R5
bGUpKQogICAgIHsKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5jcHAKaW5kZXggZWI2MTk3Yi4uMzFkZWZm
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRo
TUxGZW5jZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MRmVuY2VkLmNwcApAQCAtNDQsNyArNDQsNyBAQCBzdGF0aWMgY29uc3QgY2hhciogZ09w
ZW5pbmdCcmFjZUNoYXIgPSAiKCI7CiBzdGF0aWMgY29uc3QgY2hhciogZ0Nsb3NpbmdCcmFjZUNo
YXIgPSAiKSI7CiAKIFJlbmRlck1hdGhNTEZlbmNlZDo6UmVuZGVyTWF0aE1MRmVuY2VkKE1hdGhN
TElubGluZUNvbnRhaW5lckVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0
eWxlKQotICAgIDogUmVuZGVyTWF0aE1MUm93KGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisg
ICAgOiBSZW5kZXJNYXRoTUxSb3coZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKICAgICAsIG1f
Y2xvc2VGZW5jZVJlbmRlcmVyKG51bGxwdHIpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZyYWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRnJhY3Rpb24uY3BwCmluZGV4IDA2
NTUyODkuLmNjZWM0MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRo
bWwvUmVuZGVyTWF0aE1MRnJhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9tYXRobWwvUmVuZGVyTWF0aE1MRnJhY3Rpb24uY3BwCkBAIC00NCw3ICs0NCw3IEBAIHN0YXRp
YyBjb25zdCBmbG9hdCBnTGluZVRoaWNrID0gMy5mOwogc3RhdGljIGNvbnN0IGZsb2F0IGdGcmFj
dGlvbkJhcldpZHRoID0gMC4wNWY7CiAKIFJlbmRlck1hdGhNTEZyYWN0aW9uOjpSZW5kZXJNYXRo
TUxGcmFjdGlvbihNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVm
PFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlck1hdGhNTEJsb2NrKGVsZW1lbnQsIHN0
ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJNYXRoTUxCbG9jayhlbGVtZW50LCBXVEY6Om1v
dmUoc3R5bGUpKQogICAgICwgbV9saW5lVGhpY2tuZXNzKGdMaW5lTWVkaXVtKQogewogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxNYXRo
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MTWF0aC5j
cHAKaW5kZXggZTZlMWE4OC4uNDdlMDBjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxNYXRoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE1hdGguY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBNYXRoTUxOYW1lczsKIAogUmVuZGVy
TWF0aE1MTWF0aDo6UmVuZGVyTWF0aE1MTWF0aChFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJl
bmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlck1hdGhNTFJvdyhlbGVtZW50LCBzdGQ6Om1v
dmUoc3R5bGUpKQorICAgIDogUmVuZGVyTWF0aE1MUm93KGVsZW1lbnQsIFdURjo6bW92ZShzdHls
ZSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MTWVuY2xvc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGht
bC9SZW5kZXJNYXRoTUxNZW5jbG9zZS5jcHAKaW5kZXggOGFhMDU0OS4uYjJjY2I5ZSAxMDA3NTUK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxNZW5jbG9z
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxN
ZW5jbG9zZS5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcg
bmFtZXNwYWNlIE1hdGhNTE5hbWVzOwogCiBSZW5kZXJNYXRoTUxNZW5jbG9zZTo6UmVuZGVyTWF0
aE1MTWVuY2xvc2UoRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUp
Ci0gICAgOiBSZW5kZXJNYXRoTUxSb3coZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6
IFJlbmRlck1hdGhNTFJvdyhlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogewogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJh
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3Bl
cmF0b3IuY3BwCmluZGV4IDJjNjhhOGYuLmNlMzIzMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuY3BwCkBAIC0x
MTM2LDcgKzExMzYsNyBAQCBzdGF0aWMgY29uc3QgVUNoYXIgaG9yaXpvbnRhbE9wZXJhdG9yc1td
ID0gewogfQogCiBSZW5kZXJNYXRoTUxPcGVyYXRvcjo6UmVuZGVyTWF0aE1MT3BlcmF0b3IoTWF0
aE1MRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBS
ZW5kZXJNYXRoTUxUb2tlbihlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVy
TWF0aE1MVG9rZW4oZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKICAgICAsIG1fc3RyZXRjaEhl
aWdodEFib3ZlQmFzZWxpbmUoMCkKICAgICAsIG1fc3RyZXRjaERlcHRoQmVsb3dCYXNlbGluZSgw
KQogICAgICwgbV9vcGVyYXRvcigwKQpAQCAtMTE0Niw3ICsxMTQ2LDcgQEAgUmVuZGVyTWF0aE1M
T3BlcmF0b3I6OlJlbmRlck1hdGhNTE9wZXJhdG9yKE1hdGhNTEVsZW1lbnQmIGVsZW1lbnQsIFBh
c3NSZWY8UmVuZGUKIH0KIAogUmVuZGVyTWF0aE1MT3BlcmF0b3I6OlJlbmRlck1hdGhNTE9wZXJh
dG9yKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUsIGNvbnN0
IFN0cmluZyYgb3BlcmF0b3JTdHJpbmcsIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6Rm9ybSBm
b3JtLCB1bnNpZ25lZCBzaG9ydCBmbGFncykKLSAgICA6IFJlbmRlck1hdGhNTFRva2VuKGRvY3Vt
ZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyTWF0aE1MVG9rZW4oZG9jdW1lbnQs
IFdURjo6bW92ZShzdHlsZSkpCiAgICAgLCBtX3N0cmV0Y2hIZWlnaHRBYm92ZUJhc2VsaW5lKDAp
CiAgICAgLCBtX3N0cmV0Y2hEZXB0aEJlbG93QmFzZWxpbmUoMCkKICAgICAsIG1fb3BlcmF0b3Io
MCkKQEAgLTE2NDksNyArMTY0OSw3IEBAIHZvaWQgUmVuZGVyTWF0aE1MT3BlcmF0b3I6OnVwZGF0
ZVN0eWxlKCkKICAgICBhdXRvIG5ld1N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91
c1N0eWxlV2l0aERpc3BsYXkoJnN0eWxlKCksIEZMRVgpOwogICAgIG5ld1N0eWxlLmdldCgpLnNl
dE1hcmdpblN0YXJ0KExlbmd0aChtX2xlYWRpbmdTcGFjZSwgRml4ZWQpKTsKICAgICBuZXdTdHls
ZS5nZXQoKS5zZXRNYXJnaW5FbmQoTGVuZ3RoKG1fdHJhaWxpbmdTcGFjZSwgRml4ZWQpKTsKLSAg
ICB3cmFwcGVyLT5zZXRTdHlsZShzdGQ6Om1vdmUobmV3U3R5bGUpKTsKKyAgICB3cmFwcGVyLT5z
ZXRTdHlsZShXVEY6Om1vdmUobmV3U3R5bGUpKTsKICAgICB3cmFwcGVyLT5zZXROZWVkc0xheW91
dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKIAogICAgIGlmICghc2hvdWxkQWxsb3dTdHJldGNoaW5n
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1h
dGhNTFJhZGljYWxPcGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1s
L1JlbmRlck1hdGhNTFJhZGljYWxPcGVyYXRvci5jcHAKaW5kZXggMTMwOWNmZS4uYjYxYjhkOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxS
YWRpY2FsT3BlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MUmFkaWNhbE9wZXJhdG9yLmNwcApAQCAtNTcsNyArNTcsNyBAQCBjb25zdCBm
bG9hdCBnUmFkaWNhbExpbmVUaGlja25lc3NFbXMgPSAwLjAyZjsKIGNvbnN0IGZsb2F0IGdSYWRp
Y2FsVGhpY2tMaW5lVGhpY2tuZXNzRW1zID0gMC4xZjsKIAogUmVuZGVyTWF0aE1MUmFkaWNhbE9w
ZXJhdG9yOjpSZW5kZXJNYXRoTUxSYWRpY2FsT3BlcmF0b3IoRG9jdW1lbnQmIGRvY3VtZW50LCBQ
YXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlck1hdGhNTE9wZXJhdG9yKGRv
Y3VtZW50LCBzdGQ6Om1vdmUoc3R5bGUpLCBTdHJpbmcoJmdSYWRpY2FsQ2hhcmFjdGVyLCAxKSwg
TWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpQcmVmaXgpCisgICAgOiBSZW5kZXJNYXRoTUxPcGVy
YXRvcihkb2N1bWVudCwgV1RGOjptb3ZlKHN0eWxlKSwgU3RyaW5nKCZnUmFkaWNhbENoYXJhY3Rl
ciwgMSksIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6UHJlZml4KQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFJvb3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSb290LmNwcApp
bmRleCBkMDdjZTIzLi4yNzU2MzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvbWF0aG1sL1JlbmRlck1hdGhNTFJvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm9vdC5jcHAKQEAgLTU1LDEyICs1NSwxMiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAvLyBXZSB3aWxsIGFsbG93IHRoZSBJbmRleFdyYXBwZXIgdG8gYmUg
ZW1wdHkgYW5kIGl0IHdpbGwgYWx3YXlzIGNvbnRhaW4gdGhlIGxhc3QgY2hpbGQgb2YgdGhlIDxt
cm9vdD4gaWYgdGhlcmUgYXJlIGF0IGxlYXN0IDIgZWxlbWVudHMuCiAKIFJlbmRlck1hdGhNTFJv
b3Q6OlJlbmRlck1hdGhNTFJvb3QoRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHls
ZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJNYXRoTUxCbG9jayhlbGVtZW50LCBzdGQ6Om1vdmUoc3R5
bGUpKQorICAgIDogUmVuZGVyTWF0aE1MQmxvY2soZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkK
IHsKIH0KIAogUmVuZGVyTWF0aE1MUm9vdDo6UmVuZGVyTWF0aE1MUm9vdChEb2N1bWVudCYgZG9j
dW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyTWF0aE1MQmxv
Y2soZG9jdW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJNYXRoTUxCbG9jayhk
b2N1bWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKIHsKIH0KIApAQCAtMjI2LDE0ICsyMjYsMTQgQEAg
dm9pZCBSZW5kZXJNYXRoTUxSb290Ojp1cGRhdGVTdHlsZSgpCiAgICAgYXV0byByYWRpY2FsID0g
cmFkaWNhbFdyYXBwZXIoKTsKICAgICBhdXRvIHJhZGljYWxTdHlsZSA9IFJlbmRlclN0eWxlOjpj
cmVhdGVBbm9ueW1vdXNTdHlsZVdpdGhEaXNwbGF5KCZzdHlsZSgpLCBGTEVYKTsKICAgICByYWRp
Y2FsU3R5bGUuZ2V0KCkuc2V0TWFyZ2luVG9wKExlbmd0aCgwLCBGaXhlZCkpOyAvLyBUaGlzIHdp
bGwgYmUgdXBkYXRlZCBpbiBSZW5kZXJNYXRoTUxSb290OjpsYXlvdXQoKS4KLSAgICByYWRpY2Fs
LT5zZXRTdHlsZShzdGQ6Om1vdmUocmFkaWNhbFN0eWxlKSk7CisgICAgcmFkaWNhbC0+c2V0U3R5
bGUoV1RGOjptb3ZlKHJhZGljYWxTdHlsZSkpOwogICAgIHJhZGljYWwtPnNldE5lZWRzTGF5b3V0
QW5kUHJlZldpZHRoc1JlY2FsYygpOwogCiAgICAgYXV0byBiYXNlID0gYmFzZVdyYXBwZXIoKTsK
ICAgICBhdXRvIGJhc2VTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZVdp
dGhEaXNwbGF5KCZzdHlsZSgpLCBGTEVYKTsKICAgICBiYXNlU3R5bGUuZ2V0KCkuc2V0TWFyZ2lu
VG9wKExlbmd0aCgwLCBGaXhlZCkpOyAvLyBUaGlzIHdpbGwgYmUgdXBkYXRlZCBpbiBSZW5kZXJN
YXRoTUxSb290OjpsYXlvdXQoKS4KICAgICBiYXNlU3R5bGUuZ2V0KCkuc2V0QWxpZ25JdGVtcyhB
bGlnbkJhc2VsaW5lKTsKLSAgICBiYXNlLT5zZXRTdHlsZShzdGQ6Om1vdmUoYmFzZVN0eWxlKSk7
CisgICAgYmFzZS0+c2V0U3R5bGUoV1RGOjptb3ZlKGJhc2VTdHlsZSkpOwogICAgIGJhc2UtPnNl
dE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOwogCiAgICAgaWYgKCFpc1JlbmRlck1h
dGhNTFNxdWFyZVJvb3QoKSkgewpAQCAtMjQ0LDcgKzI0NCw3IEBAIHZvaWQgUmVuZGVyTWF0aE1M
Um9vdDo6dXBkYXRlU3R5bGUoKQogICAgICAgICBpbmRleFN0eWxlLmdldCgpLnNldE1hcmdpblN0
YXJ0KExlbmd0aChrZXJuQmVmb3JlRGVncmVlLCBGaXhlZCkpOwogICAgICAgICBpbmRleFN0eWxl
LmdldCgpLnNldE1hcmdpbkVuZChMZW5ndGgoa2VybkFmdGVyRGVncmVlLCBGaXhlZCkpOwogICAg
ICAgICBpbmRleFN0eWxlLmdldCgpLnNldEFsaWduSXRlbXMoQWxpZ25CYXNlbGluZSk7Ci0gICAg
ICAgIGluZGV4LT5zZXRTdHlsZShzdGQ6Om1vdmUoaW5kZXhTdHlsZSkpOworICAgICAgICBpbmRl
eC0+c2V0U3R5bGUoV1RGOjptb3ZlKGluZGV4U3R5bGUpKTsKICAgICAgICAgaW5kZXgtPnNldE5l
ZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm9vdC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSb290LmgKaW5kZXggMzIxMjcy
Yi4uZmU5M2RlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9S
ZW5kZXJNYXRoTUxSb290LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9S
ZW5kZXJNYXRoTUxSb290LmgKQEAgLTgxLDcgKzgxLDcgQEAgZnJpZW5kIGNsYXNzIFJlbmRlck1h
dGhNTFJvb3Q7CiAKIHB1YmxpYzoKICAgICBSZW5kZXJNYXRoTUxSb290V3JhcHBlcihEb2N1bWVu
dCYgZG9jdW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgICAgICA6IFJlbmRl
ck1hdGhNTFJvdyhkb2N1bWVudCwgc3RkOjptb3ZlKHN0eWxlKSkgeyB9CisgICAgICAgIDogUmVu
ZGVyTWF0aE1MUm93KGRvY3VtZW50LCBXVEY6Om1vdmUoc3R5bGUpKSB7IH0KIAogcHJpdmF0ZToK
ICAgICBSZW5kZXJPYmplY3QqIHJlbW92ZUNoaWxkV2l0aG91dFJlc3RydWN0dXJpbmcoUmVuZGVy
T2JqZWN0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1Jl
bmRlck1hdGhNTFJvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRl
ck1hdGhNTFJvdy5jcHAKaW5kZXggNDk3ZjY3ZC4uM2U4MzM3OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSb3cuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm93LmNwcApAQCAtMzksMTIg
KzM5LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBNYXRoTUxOYW1l
czsKIAogUmVuZGVyTWF0aE1MUm93OjpSZW5kZXJNYXRoTUxSb3coRWxlbWVudCYgZWxlbWVudCwg
UGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJNYXRoTUxCbG9jayhlbGVt
ZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyTWF0aE1MQmxvY2soZWxlbWVudCwg
V1RGOjptb3ZlKHN0eWxlKSkKIHsKIH0KIAogUmVuZGVyTWF0aE1MUm93OjpSZW5kZXJNYXRoTUxS
b3coRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6
IFJlbmRlck1hdGhNTEJsb2NrKGRvY3VtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVu
ZGVyTWF0aE1MQmxvY2soZG9jdW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiB7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MU2NyaXB0
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFNjcmlw
dHMuY3BwCmluZGV4IDZmODI2OTkuLjBjNGNiMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MU2NyaXB0cy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTY3JpcHRzLmNwcApAQCAtNTcsNyAr
NTcsNyBAQCBzdGF0aWMgYm9vbCBpc1ByZXNjcmlwdChSZW5kZXJPYmplY3QqIHJlbmRlck9iamVj
dCkKIH0KIAogUmVuZGVyTWF0aE1MU2NyaXB0czo6UmVuZGVyTWF0aE1MU2NyaXB0cyhFbGVtZW50
JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlck1hdGhN
TEJsb2NrKGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJNYXRoTUxCbG9j
ayhlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogICAgICwgbV9iYXNlV3JhcHBlcigwKQogewog
ICAgIC8vIERldGVybWluZSB3aGF0IGtpbmQgb2Ygc3ViL3N1cCBleHByZXNzaW9uIHdlIGhhdmUg
YnkgZWxlbWVudCBuYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0
aG1sL1JlbmRlck1hdGhNTFNjcmlwdHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRo
bWwvUmVuZGVyTWF0aE1MU2NyaXB0cy5oCmluZGV4IDVjZTQxMzMuLmRjMWQ2YTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MU2NyaXB0cy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MU2NyaXB0
cy5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBSZW5kZXJNYXRo
TUxTY3JpcHRzV3JhcHBlcihEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+
IHN0eWxlLCBXcmFwcGVyVHlwZSBraW5kKQotICAgICAgICA6IFJlbmRlck1hdGhNTEJsb2NrKGRv
Y3VtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgICAgICA6IFJlbmRlck1hdGhNTEJsb2NrKGRv
Y3VtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogICAgICAgICAsIG1fa2luZChraW5kKQogICAgIHsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRl
ck1hdGhNTFNwYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MU3BhY2UuY3BwCmluZGV4IDI4OGU2NjIuLjI4NDRhMDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MU3BhY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MU3BhY2UuY3BwCkBAIC0z
Nyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBNYXRoTUxO
YW1lczsKIAogUmVuZGVyTWF0aE1MU3BhY2U6OlJlbmRlck1hdGhNTFNwYWNlKE1hdGhNTFRleHRF
bGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRl
ck1hdGhNTEJsb2NrKGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJNYXRo
TUxCbG9jayhlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogICAgICwgbV93aWR0aCgwKQogICAg
ICwgbV9oZWlnaHQoMCkKICAgICAsIG1fZGVwdGgoMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MU3F1YXJlUm9vdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFNxdWFyZVJvb3QuY3BwCmluZGV4
IDZhOGJjZWIuLjRiZTc2MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9t
YXRobWwvUmVuZGVyTWF0aE1MU3F1YXJlUm9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTcXVhcmVSb290LmNwcApAQCAtMzUsMTIgKzM1LDEy
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBSZW5kZXJNYXRoTUxTcXVhcmVSb290OjpS
ZW5kZXJNYXRoTUxTcXVhcmVSb290KEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5
bGU+IHN0eWxlKQotICAgIDogUmVuZGVyTWF0aE1MUm9vdChlbGVtZW50LCBzdGQ6Om1vdmUoc3R5
bGUpKQorICAgIDogUmVuZGVyTWF0aE1MUm9vdChlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQog
ewogfQogCiBSZW5kZXJNYXRoTUxTcXVhcmVSb290OjpSZW5kZXJNYXRoTUxTcXVhcmVSb290KERv
Y3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5k
ZXJNYXRoTUxSb290KGRvY3VtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyTWF0
aE1MUm9vdChkb2N1bWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxUb2tlbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFRva2VuLmNwcAppbmRl
eCA4MDMzZTNhLi5kYzRiYTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
bWF0aG1sL1JlbmRlck1hdGhNTFRva2VuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvbWF0aG1sL1JlbmRlck1hdGhNTFRva2VuLmNwcApAQCAtMzcsMTMgKzM3LDEzIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBNYXRoTUxOYW1lczsKIAogUmVuZGVyTWF0
aE1MVG9rZW46OlJlbmRlck1hdGhNTFRva2VuKEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVu
ZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyTWF0aE1MQmxvY2soZWxlbWVudCwgc3RkOjpt
b3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlck1hdGhNTEJsb2NrKGVsZW1lbnQsIFdURjo6bW92ZShz
dHlsZSkpCiAgICAgLCBtX2NvbnRhaW5zRWxlbWVudChmYWxzZSkKIHsKIH0KIAogUmVuZGVyTWF0
aE1MVG9rZW46OlJlbmRlck1hdGhNTFRva2VuKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZjxS
ZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJNYXRoTUxCbG9jayhkb2N1bWVudCwgc3Rk
Ojptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlck1hdGhNTEJsb2NrKGRvY3VtZW50LCBXVEY6Om1v
dmUoc3R5bGUpKQogICAgICwgbV9jb250YWluc0VsZW1lbnQoZmFsc2UpCiB7CiB9CkBAIC05NSw3
ICs5NSw3IEBAIHZvaWQgUmVuZGVyTWF0aE1MVG9rZW46OnVwZGF0ZVN0eWxlKCkKICAgICAgICAg
ICAgIG5ld1N0eWxlLmdldCgpLmZvbnQoKS51cGRhdGUoZm9udFNlbGVjdG9yKTsKICAgICB9CiAK
LSAgICB3cmFwcGVyLT5zZXRTdHlsZShzdGQ6Om1vdmUobmV3U3R5bGUpKTsKKyAgICB3cmFwcGVy
LT5zZXRTdHlsZShXVEY6Om1vdmUobmV3U3R5bGUpKTsKICAgICB3cmFwcGVyLT5zZXROZWVkc0xh
eW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuY3BwCmluZGV4IDYw
MmQ0Y2IuLjEwMzJlZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRo
bWwvUmVuZGVyTWF0aE1MVW5kZXJPdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvbWF0aG1sL1JlbmRlck1hdGhNTFVuZGVyT3Zlci5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIE1hdGhNTE5hbWVzOwogICAgIAogUmVu
ZGVyTWF0aE1MVW5kZXJPdmVyOjpSZW5kZXJNYXRoTUxVbmRlck92ZXIoRWxlbWVudCYgZWxlbWVu
dCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJNYXRoTUxCbG9jayhl
bGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyTWF0aE1MQmxvY2soZWxlbWVu
dCwgV1RGOjptb3ZlKHN0eWxlKSkKIHsKICAgICAvLyBEZXRlcm1pbmUgd2hhdCBraW5kIG9mIHVu
ZGVyL292ZXIgZXhwcmVzc2lvbiB3ZSBoYXZlIGJ5IGVsZW1lbnQgbmFtZQogICAgIGlmIChlbGVt
ZW50Lmhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6Om11bmRlclRhZykpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3NoYXBlcy9Qb2x5Z29uU2hhcGUuaAppbmRleCAzZWE0NTE1Li43YTZhYWI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFw
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBlLmgK
QEAgLTYxLDcgKzYxLDcgQEAgY2xhc3MgUG9seWdvblNoYXBlIDogcHVibGljIFNoYXBlIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShQb2x5Z29uU2hhcGUpOwogcHVibGljOgogICAgIFBvbHln
b25TaGFwZShzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPEZsb2F0UG9pbnQ+PiB2ZXJ0aWNlcywgV2lu
ZFJ1bGUgZmlsbFJ1bGUpCi0gICAgICAgIDogbV9wb2x5Z29uKHN0ZDo6bW92ZSh2ZXJ0aWNlcyks
IGZpbGxSdWxlKQorICAgICAgICA6IG1fcG9seWdvbihXVEY6Om1vdmUodmVydGljZXMpLCBmaWxs
UnVsZSkKICAgICB7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc2hhcGVzL1Jhc3RlclNoYXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVz
L1Jhc3RlclNoYXBlLmgKaW5kZXggN2VlNWQwOC4uNGNkMTg5MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SYXN0ZXJTaGFwZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuaApAQCAtODAsNyArODAsNyBAQCBjbGFz
cyBSYXN0ZXJTaGFwZSA6IHB1YmxpYyBTaGFwZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
UmFzdGVyU2hhcGUpOwogcHVibGljOgogICAgIFJhc3RlclNoYXBlKHN0ZDo6dW5pcXVlX3B0cjxS
YXN0ZXJTaGFwZUludGVydmFscz4gaW50ZXJ2YWxzLCBjb25zdCBJbnRTaXplJiBtYXJnaW5SZWN0
U2l6ZSkKLSAgICAgICAgOiBtX2ludGVydmFscyhzdGQ6Om1vdmUoaW50ZXJ2YWxzKSkKKyAgICAg
ICAgOiBtX2ludGVydmFscyhXVEY6Om1vdmUoaW50ZXJ2YWxzKSkKICAgICAgICAgLCBtX21hcmdp
blJlY3RTaXplKG1hcmdpblJlY3RTaXplKQogICAgIHsKICAgICAgICAgbV9pbnRlcnZhbHMtPmlu
aXRpYWxpemVCb3VuZHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
aGFwZXMvU2hhcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5j
cHAKaW5kZXggOGM3MTNhNC4uNGJmOGM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3No
YXBlcy9TaGFwZS5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxT
aGFwZT4gY3JlYXRlRWxsaXBzZVNoYXBlKGNvbnN0IEZsb2F0UG9pbnQmIGNlbnRlciwgY29uc3QK
IAogc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTaGFwZT4gY3JlYXRlUG9seWdvblNoYXBlKHN0ZDo6
dW5pcXVlX3B0cjxWZWN0b3I8RmxvYXRQb2ludD4+IHZlcnRpY2VzLCBXaW5kUnVsZSBmaWxsUnVs
ZSkKIHsKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQb2x5Z29uU2hhcGU+KHN0ZDo6bW92
ZSh2ZXJ0aWNlcyksIGZpbGxSdWxlKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQb2x5
Z29uU2hhcGU+KFdURjo6bW92ZSh2ZXJ0aWNlcyksIGZpbGxSdWxlKTsKIH0KIAogc3RhdGljIGlu
bGluZSBGbG9hdFJlY3QgcGh5c2ljYWxSZWN0VG9Mb2dpY2FsKGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCwgZmxvYXQgbG9naWNhbEJveEhlaWdodCwgV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpCkBAIC0x
MzcsNyArMTM3LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFNoYXBlPiBTaGFwZTo6Y3JlYXRlU2hhcGUo
Y29uc3QgQmFzaWNTaGFwZSogYmFzaWNTaGFwZSwgY29uc3QgTGEKICAgICAgICAgICAgICgqdmVy
dGljZXMpW2kgLyAyXSA9IHBoeXNpY2FsUG9pbnRUb0xvZ2ljYWwodmVydGV4LCBsb2dpY2FsQm94
U2l6ZS5oZWlnaHQoKSwgd3JpdGluZ01vZGUpOwogICAgICAgICB9CiAKLSAgICAgICAgc2hhcGUg
PSBjcmVhdGVQb2x5Z29uU2hhcGUoc3RkOjptb3ZlKHZlcnRpY2VzKSwgcG9seWdvbi53aW5kUnVs
ZSgpKTsKKyAgICAgICAgc2hhcGUgPSBjcmVhdGVQb2x5Z29uU2hhcGUoV1RGOjptb3ZlKHZlcnRp
Y2VzKSwgcG9seWdvbi53aW5kUnVsZSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCkBAIC0y
MTQsMTAgKzIxNCwxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8U2hhcGU+IFNoYXBlOjpjcmVhdGVSYXN0
ZXJTaGFwZShJbWFnZSogaW1hZ2UsIGZsb2F0IHRocmVzaG9sZCwgYwogICAgICAgICB9CiAgICAg
fQogCi0gICAgYXV0byByYXN0ZXJTaGFwZSA9IHN0ZDo6bWFrZV91bmlxdWU8UmFzdGVyU2hhcGU+
KHN0ZDo6bW92ZShpbnRlcnZhbHMpLCBtYXJnaW5SZWN0LnNpemUoKSk7CisgICAgYXV0byByYXN0
ZXJTaGFwZSA9IHN0ZDo6bWFrZV91bmlxdWU8UmFzdGVyU2hhcGU+KFdURjo6bW92ZShpbnRlcnZh
bHMpLCBtYXJnaW5SZWN0LnNpemUoKSk7CiAgICAgcmFzdGVyU2hhcGUtPm1fd3JpdGluZ01vZGUg
PSB3cml0aW5nTW9kZTsKICAgICByYXN0ZXJTaGFwZS0+bV9tYXJnaW4gPSBtYXJnaW47Ci0gICAg
cmV0dXJuIHN0ZDo6bW92ZShyYXN0ZXJTaGFwZSk7CisgICAgcmV0dXJuIFdURjo6bW92ZShyYXN0
ZXJTaGFwZSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTaGFwZT4gU2hhcGU6OmNyZWF0ZUJveFNo
YXBlKGNvbnN0IFJvdW5kZWRSZWN0JiByb3VuZGVkUmVjdCwgV3JpdGluZ01vZGUgd3JpdGluZ01v
ZGUsIGZsb2F0IG1hcmdpbikKQEAgLTIzMCw3ICsyMzAsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8U2hh
cGU+IFNoYXBlOjpjcmVhdGVCb3hTaGFwZShjb25zdCBSb3VuZGVkUmVjdCYgcm91bmRlZFJlY3Qs
IFdyaQogICAgIHNoYXBlLT5tX3dyaXRpbmdNb2RlID0gd3JpdGluZ01vZGU7CiAgICAgc2hhcGUt
Pm1fbWFyZ2luID0gbWFyZ2luOwogCi0gICAgcmV0dXJuIHN0ZDo6bW92ZShzaGFwZSk7CisgICAg
cmV0dXJuIFdURjo6bW92ZShzaGFwZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuY3BwCmluZGV4IDFl
Y2IyZTYuLjA4MmY5NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9CYXNpY1NoYXBlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jh
c2ljU2hhcGVzLmNwcApAQCAtNTQsOCArNTQsOCBAQCB2b2lkIEJhc2ljU2hhcGVDZW50ZXJDb29y
ZGluYXRlOjp1cGRhdGVDb21wdXRlZExlbmd0aCgpCiAKICAgICBhdXRvIGxocyA9IHN0ZDo6bWFr
ZV91bmlxdWU8Q2FsY0V4cHJlc3Npb25MZW5ndGg+KExlbmd0aCgxMDAsIFBlcmNlbnQpKTsKICAg
ICBhdXRvIHJocyA9IHN0ZDo6bWFrZV91bmlxdWU8Q2FsY0V4cHJlc3Npb25MZW5ndGg+KG1fbGVu
Z3RoKTsKLSAgICBhdXRvIG9wID0gc3RkOjptYWtlX3VuaXF1ZTxDYWxjRXhwcmVzc2lvbkJpbmFy
eU9wZXJhdGlvbj4oc3RkOjptb3ZlKGxocyksIHN0ZDo6bW92ZShyaHMpLCBDYWxjU3VidHJhY3Qp
OwotICAgIG1fY29tcHV0ZWRMZW5ndGggPSBMZW5ndGgoQ2FsY3VsYXRpb25WYWx1ZTo6Y3JlYXRl
KHN0ZDo6bW92ZShvcCksIENhbGN1bGF0aW9uUmFuZ2VBbGwpKTsKKyAgICBhdXRvIG9wID0gc3Rk
OjptYWtlX3VuaXF1ZTxDYWxjRXhwcmVzc2lvbkJpbmFyeU9wZXJhdGlvbj4oV1RGOjptb3ZlKGxo
cyksIFdURjo6bW92ZShyaHMpLCBDYWxjU3VidHJhY3QpOworICAgIG1fY29tcHV0ZWRMZW5ndGgg
PSBMZW5ndGgoQ2FsY3VsYXRpb25WYWx1ZTo6Y3JlYXRlKFdURjo6bW92ZShvcCksIENhbGN1bGF0
aW9uUmFuZ2VBbGwpKTsKIH0KIAogYm9vbCBCYXNpY1NoYXBlOjpjYW5CbGVuZChjb25zdCBCYXNp
Y1NoYXBlKiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9CYXNpY1NoYXBlcy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jh
c2ljU2hhcGVzLmgKaW5kZXggOGUxOGY0Ni4uNTg5MmYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmgKQEAgLTE1Myw5ICsxNTMsOSBAQCBwdWJsaWM6
CiAgICAgY29uc3QgQmFzaWNTaGFwZVJhZGl1cyYgcmFkaXVzKCkgY29uc3QgeyByZXR1cm4gbV9y
YWRpdXM7IH0KICAgICBmbG9hdCBmbG9hdFZhbHVlRm9yUmFkaXVzSW5Cb3goZmxvYXQgYm94V2lk
dGgsIGZsb2F0IGJveEhlaWdodCkgY29uc3Q7CiAKLSAgICB2b2lkIHNldENlbnRlclgoQmFzaWNT
aGFwZUNlbnRlckNvb3JkaW5hdGUgY2VudGVyWCkgeyBtX2NlbnRlclggPSBzdGQ6Om1vdmUoY2Vu
dGVyWCk7IH0KLSAgICB2b2lkIHNldENlbnRlclkoQmFzaWNTaGFwZUNlbnRlckNvb3JkaW5hdGUg
Y2VudGVyWSkgeyBtX2NlbnRlclkgPSBzdGQ6Om1vdmUoY2VudGVyWSk7IH0KLSAgICB2b2lkIHNl
dFJhZGl1cyhCYXNpY1NoYXBlUmFkaXVzIHJhZGl1cykgeyBtX3JhZGl1cyA9IHN0ZDo6bW92ZShy
YWRpdXMpOyB9CisgICAgdm9pZCBzZXRDZW50ZXJYKEJhc2ljU2hhcGVDZW50ZXJDb29yZGluYXRl
IGNlbnRlclgpIHsgbV9jZW50ZXJYID0gV1RGOjptb3ZlKGNlbnRlclgpOyB9CisgICAgdm9pZCBz
ZXRDZW50ZXJZKEJhc2ljU2hhcGVDZW50ZXJDb29yZGluYXRlIGNlbnRlclkpIHsgbV9jZW50ZXJZ
ID0gV1RGOjptb3ZlKGNlbnRlclkpOyB9CisgICAgdm9pZCBzZXRSYWRpdXMoQmFzaWNTaGFwZVJh
ZGl1cyByYWRpdXMpIHsgbV9yYWRpdXMgPSBXVEY6Om1vdmUocmFkaXVzKTsgfQogCiAgICAgdmly
dHVhbCB2b2lkIHBhdGgoUGF0aCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiBibGVuZChjb25zdCBCYXNpY1NoYXBlKiwgZG91
YmxlKSBjb25zdCBvdmVycmlkZTsKQEAgLTE3OSwxMCArMTc5LDEwIEBAIHB1YmxpYzoKICAgICBj
b25zdCBCYXNpY1NoYXBlUmFkaXVzJiByYWRpdXNZKCkgY29uc3QgeyByZXR1cm4gbV9yYWRpdXNZ
OyB9CiAgICAgZmxvYXQgZmxvYXRWYWx1ZUZvclJhZGl1c0luQm94KGNvbnN0IEJhc2ljU2hhcGVS
YWRpdXMmLCBmbG9hdCBjZW50ZXIsIGZsb2F0IGJveFdpZHRoT3JIZWlnaHQpIGNvbnN0OwogCi0g
ICAgdm9pZCBzZXRDZW50ZXJYKEJhc2ljU2hhcGVDZW50ZXJDb29yZGluYXRlIGNlbnRlclgpIHsg
bV9jZW50ZXJYID0gc3RkOjptb3ZlKGNlbnRlclgpOyB9Ci0gICAgdm9pZCBzZXRDZW50ZXJZKEJh
c2ljU2hhcGVDZW50ZXJDb29yZGluYXRlIGNlbnRlclkpIHsgbV9jZW50ZXJZID0gc3RkOjptb3Zl
KGNlbnRlclkpOyB9Ci0gICAgdm9pZCBzZXRSYWRpdXNYKEJhc2ljU2hhcGVSYWRpdXMgcmFkaXVz
WCkgeyBtX3JhZGl1c1ggPSBzdGQ6Om1vdmUocmFkaXVzWCk7IH0KLSAgICB2b2lkIHNldFJhZGl1
c1koQmFzaWNTaGFwZVJhZGl1cyByYWRpdXNZKSB7IG1fcmFkaXVzWSA9IHN0ZDo6bW92ZShyYWRp
dXNZKTsgfQorICAgIHZvaWQgc2V0Q2VudGVyWChCYXNpY1NoYXBlQ2VudGVyQ29vcmRpbmF0ZSBj
ZW50ZXJYKSB7IG1fY2VudGVyWCA9IFdURjo6bW92ZShjZW50ZXJYKTsgfQorICAgIHZvaWQgc2V0
Q2VudGVyWShCYXNpY1NoYXBlQ2VudGVyQ29vcmRpbmF0ZSBjZW50ZXJZKSB7IG1fY2VudGVyWSA9
IFdURjo6bW92ZShjZW50ZXJZKTsgfQorICAgIHZvaWQgc2V0UmFkaXVzWChCYXNpY1NoYXBlUmFk
aXVzIHJhZGl1c1gpIHsgbV9yYWRpdXNYID0gV1RGOjptb3ZlKHJhZGl1c1gpOyB9CisgICAgdm9p
ZCBzZXRSYWRpdXNZKEJhc2ljU2hhcGVSYWRpdXMgcmFkaXVzWSkgeyBtX3JhZGl1c1kgPSBXVEY6
Om1vdmUocmFkaXVzWSk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBwYXRoKFBhdGgmLCBjb25zdCBG
bG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4g
YmxlbmQoY29uc3QgQmFzaWNTaGFwZSosIGRvdWJsZSkgY29uc3Qgb3ZlcnJpZGU7CkBAIC0yMDYs
NyArMjA2LDcgQEAgcHVibGljOgogICAgIGNvbnN0IExlbmd0aCYgZ2V0WUF0KHVuc2lnbmVkIGkp
IGNvbnN0IHsgcmV0dXJuIG1fdmFsdWVzWzIgKiBpICsgMV07IH0KIAogICAgIHZvaWQgc2V0V2lu
ZFJ1bGUoV2luZFJ1bGUgd2luZFJ1bGUpIHsgbV93aW5kUnVsZSA9IHdpbmRSdWxlOyB9Ci0gICAg
dm9pZCBhcHBlbmRQb2ludChMZW5ndGggeCwgTGVuZ3RoIHkpIHsgbV92YWx1ZXMuYXBwZW5kKHN0
ZDo6bW92ZSh4KSk7IG1fdmFsdWVzLmFwcGVuZChzdGQ6Om1vdmUoeSkpOyB9CisgICAgdm9pZCBh
cHBlbmRQb2ludChMZW5ndGggeCwgTGVuZ3RoIHkpIHsgbV92YWx1ZXMuYXBwZW5kKFdURjo6bW92
ZSh4KSk7IG1fdmFsdWVzLmFwcGVuZChXVEY6Om1vdmUoeSkpOyB9CiAKICAgICB2aXJ0dWFsIHZv
aWQgcGF0aChQYXRoJiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPEJhc2ljU2hhcGU+IGJsZW5kKGNvbnN0IEJhc2ljU2hhcGUqLCBkb3VibGUpIGNv
bnN0IG92ZXJyaWRlOwpAQCAtMjM3LDE1ICsyMzcsMTUgQEAgcHVibGljOgogICAgIGNvbnN0IExl
bmd0aFNpemUmIGJvdHRvbVJpZ2h0UmFkaXVzKCkgY29uc3QgeyByZXR1cm4gbV9ib3R0b21SaWdo
dFJhZGl1czsgfQogICAgIGNvbnN0IExlbmd0aFNpemUmIGJvdHRvbUxlZnRSYWRpdXMoKSBjb25z
dCB7IHJldHVybiBtX2JvdHRvbUxlZnRSYWRpdXM7IH0KIAotICAgIHZvaWQgc2V0VG9wKExlbmd0
aCB0b3ApIHsgbV90b3AgPSBzdGQ6Om1vdmUodG9wKTsgfQotICAgIHZvaWQgc2V0UmlnaHQoTGVu
Z3RoIHJpZ2h0KSB7IG1fcmlnaHQgPSBzdGQ6Om1vdmUocmlnaHQpOyB9Ci0gICAgdm9pZCBzZXRC
b3R0b20oTGVuZ3RoIGJvdHRvbSkgeyBtX2JvdHRvbSA9IHN0ZDo6bW92ZShib3R0b20pOyB9Ci0g
ICAgdm9pZCBzZXRMZWZ0KExlbmd0aCBsZWZ0KSB7IG1fbGVmdCA9IHN0ZDo6bW92ZShsZWZ0KTsg
fQorICAgIHZvaWQgc2V0VG9wKExlbmd0aCB0b3ApIHsgbV90b3AgPSBXVEY6Om1vdmUodG9wKTsg
fQorICAgIHZvaWQgc2V0UmlnaHQoTGVuZ3RoIHJpZ2h0KSB7IG1fcmlnaHQgPSBXVEY6Om1vdmUo
cmlnaHQpOyB9CisgICAgdm9pZCBzZXRCb3R0b20oTGVuZ3RoIGJvdHRvbSkgeyBtX2JvdHRvbSA9
IFdURjo6bW92ZShib3R0b20pOyB9CisgICAgdm9pZCBzZXRMZWZ0KExlbmd0aCBsZWZ0KSB7IG1f
bGVmdCA9IFdURjo6bW92ZShsZWZ0KTsgfQogCi0gICAgdm9pZCBzZXRUb3BMZWZ0UmFkaXVzKExl
bmd0aFNpemUgcmFkaXVzKSB7IG1fdG9wTGVmdFJhZGl1cyA9IHN0ZDo6bW92ZShyYWRpdXMpOyB9
Ci0gICAgdm9pZCBzZXRUb3BSaWdodFJhZGl1cyhMZW5ndGhTaXplIHJhZGl1cykgeyBtX3RvcFJp
Z2h0UmFkaXVzID0gc3RkOjptb3ZlKHJhZGl1cyk7IH0KLSAgICB2b2lkIHNldEJvdHRvbVJpZ2h0
UmFkaXVzKExlbmd0aFNpemUgcmFkaXVzKSB7IG1fYm90dG9tUmlnaHRSYWRpdXMgPSBzdGQ6Om1v
dmUocmFkaXVzKTsgfQotICAgIHZvaWQgc2V0Qm90dG9tTGVmdFJhZGl1cyhMZW5ndGhTaXplIHJh
ZGl1cykgeyBtX2JvdHRvbUxlZnRSYWRpdXMgPSBzdGQ6Om1vdmUocmFkaXVzKTsgfQorICAgIHZv
aWQgc2V0VG9wTGVmdFJhZGl1cyhMZW5ndGhTaXplIHJhZGl1cykgeyBtX3RvcExlZnRSYWRpdXMg
PSBXVEY6Om1vdmUocmFkaXVzKTsgfQorICAgIHZvaWQgc2V0VG9wUmlnaHRSYWRpdXMoTGVuZ3Ro
U2l6ZSByYWRpdXMpIHsgbV90b3BSaWdodFJhZGl1cyA9IFdURjo6bW92ZShyYWRpdXMpOyB9Cisg
ICAgdm9pZCBzZXRCb3R0b21SaWdodFJhZGl1cyhMZW5ndGhTaXplIHJhZGl1cykgeyBtX2JvdHRv
bVJpZ2h0UmFkaXVzID0gV1RGOjptb3ZlKHJhZGl1cyk7IH0KKyAgICB2b2lkIHNldEJvdHRvbUxl
ZnRSYWRpdXMoTGVuZ3RoU2l6ZSByYWRpdXMpIHsgbV9ib3R0b21MZWZ0UmFkaXVzID0gV1RGOjpt
b3ZlKHJhZGl1cyk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBwYXRoKFBhdGgmLCBjb25zdCBGbG9h
dFJlY3QmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4gYmxl
bmQoY29uc3QgQmFzaWNTaGFwZSosIGRvdWJsZSkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmNwcAppbmRleCBiMGM0NjliLi5l
MWY3ZDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVu
dERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250ZW50RGF0
YS5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgc3RkOjp1bmlxdWVfcHRyPENvbnRlbnREYXRhPiBDb250
ZW50RGF0YTo6Y2xvbmUoKSBjb25zdAogICAgIENvbnRlbnREYXRhKiBsYXN0TmV3RGF0YSA9IHJl
c3VsdC5nZXQoKTsKICAgICBmb3IgKGNvbnN0IENvbnRlbnREYXRhKiBjb250ZW50RGF0YSA9IG5l
eHQoKTsgY29udGVudERhdGE7IGNvbnRlbnREYXRhID0gY29udGVudERhdGEtPm5leHQoKSkgewog
ICAgICAgICBhdXRvIG5ld0RhdGEgPSBjb250ZW50RGF0YS0+Y2xvbmVJbnRlcm5hbCgpOwotICAg
ICAgICBsYXN0TmV3RGF0YS0+c2V0TmV4dChzdGQ6Om1vdmUobmV3RGF0YSkpOworICAgICAgICBs
YXN0TmV3RGF0YS0+c2V0TmV4dChXVEY6Om1vdmUobmV3RGF0YSkpOwogICAgICAgICBsYXN0TmV3
RGF0YSA9IGxhc3ROZXdEYXRhLT5uZXh0KCk7CiAgICAgfQogICAgICAgICAKQEAgLTUyLDE0ICs1
MiwxNCBAQCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBJbWFnZUNvbnRlbnREYXRhOjpjcmVhdGVD
b250ZW50UmVuZGVyZXIoRG9jdW1lbnQmIGRvY3VtZQogICAgIGF1dG8gaW1hZ2UgPSBjcmVhdGVS
ZW5kZXJlcjxSZW5kZXJJbWFnZT4oZG9jdW1lbnQsIFJlbmRlclN0eWxlOjpjcmVhdGVTdHlsZUlu
aGVyaXRpbmdGcm9tUHNldWRvU3R5bGUocHNldWRvU3R5bGUpLCBtX2ltYWdlLmdldCgpKTsKICAg
ICBpbWFnZS0+aW5pdGlhbGl6ZVN0eWxlKCk7CiAgICAgaW1hZ2UtPnNldEFsdFRleHQoYWx0VGV4
dCgpKTsKLSAgICByZXR1cm4gc3RkOjptb3ZlKGltYWdlKTsKKyAgICByZXR1cm4gV1RGOjptb3Zl
KGltYWdlKTsKIH0KIAogUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gVGV4dENvbnRlbnREYXRhOjpj
cmVhdGVDb250ZW50UmVuZGVyZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBSZW5kZXJTdHls
ZSYpIGNvbnN0CiB7CiAgICAgYXV0byBmcmFnbWVudCA9IGNyZWF0ZVJlbmRlcmVyPFJlbmRlclRl
eHRGcmFnbWVudD4oZG9jdW1lbnQsIG1fdGV4dCk7CiAgICAgZnJhZ21lbnQtPnNldEFsdFRleHQo
YWx0VGV4dCgpKTsKLSAgICByZXR1cm4gc3RkOjptb3ZlKGZyYWdtZW50KTsKKyAgICByZXR1cm4g
V1RGOjptb3ZlKGZyYWdtZW50KTsKIH0KIAogUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gQ291bnRl
ckNvbnRlbnREYXRhOjpjcmVhdGVDb250ZW50UmVuZGVyZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0CkBAIC03MSw3ICs3MSw3IEBAIFJlbmRlclB0cjxSZW5k
ZXJPYmplY3Q+IFF1b3RlQ29udGVudERhdGE6OmNyZWF0ZUNvbnRlbnRSZW5kZXJlcihEb2N1bWVu
dCYgZG9jdW1lCiB7CiAgICAgYXV0byBxdW90ZSA9IGNyZWF0ZVJlbmRlcmVyPFJlbmRlclF1b3Rl
Pihkb2N1bWVudCwgUmVuZGVyU3R5bGU6OmNyZWF0ZVN0eWxlSW5oZXJpdGluZ0Zyb21Qc2V1ZG9T
dHlsZShwc2V1ZG9TdHlsZSksIG1fcXVvdGUpOwogICAgIHF1b3RlLT5pbml0aWFsaXplU3R5bGUo
KTsKLSAgICByZXR1cm4gc3RkOjptb3ZlKHF1b3RlKTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKHF1
b3RlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaAppbmRleCBiZjM2OWI2Li5jMDY1Y2JlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaApAQCAtNTgsNyArNTgs
NyBAQCBwdWJsaWM6CiAgICAgc3RkOjp1bmlxdWVfcHRyPENvbnRlbnREYXRhPiBjbG9uZSgpIGNv
bnN0OwogCiAgICAgQ29udGVudERhdGEqIG5leHQoKSBjb25zdCB7IHJldHVybiBtX25leHQuZ2V0
KCk7IH0KLSAgICB2b2lkIHNldE5leHQoc3RkOjp1bmlxdWVfcHRyPENvbnRlbnREYXRhPiBuZXh0
KSB7IG1fbmV4dCA9IHN0ZDo6bW92ZShuZXh0KTsgfQorICAgIHZvaWQgc2V0TmV4dChzdGQ6OnVu
aXF1ZV9wdHI8Q29udGVudERhdGE+IG5leHQpIHsgbV9uZXh0ID0gV1RGOjptb3ZlKG5leHQpOyB9
CiAKICAgICB2b2lkIHNldEFsdFRleHQoY29uc3QgU3RyaW5nJiBhbHQpIHsgbV9hbHRUZXh0ID0g
YWx0OyB9CiAgICAgY29uc3QgU3RyaW5nJiBhbHRUZXh0KCkgY29uc3QgeyByZXR1cm4gbV9hbHRU
ZXh0OyB9CkBAIC0xNTQsNyArMTU0LDcgQEAgY2xhc3MgQ291bnRlckNvbnRlbnREYXRhIGZpbmFs
IDogcHVibGljIENvbnRlbnREYXRhIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBDb3VudGVyQ29u
dGVudERhdGEoc3RkOjp1bmlxdWVfcHRyPENvdW50ZXJDb250ZW50PiBjb3VudGVyKQogICAgICAg
ICA6IENvbnRlbnREYXRhKENvdW50ZXJEYXRhVHlwZSkKLSAgICAgICAgLCBtX2NvdW50ZXIoc3Rk
Ojptb3ZlKGNvdW50ZXIpKQorICAgICAgICAsIG1fY291bnRlcihXVEY6Om1vdmUoY291bnRlcikp
CiAgICAgewogICAgICAgICBBU1NFUlQobV9jb3VudGVyKTsKICAgICB9CkBAIC0xNjMsNyArMTYz
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q291bnRlcihzdGQ6OnVuaXF1ZV9wdHI8Q291bnRl
ckNvbnRlbnQ+IGNvdW50ZXIpCiAgICAgewogICAgICAgICBBU1NFUlQoY291bnRlcik7Ci0gICAg
ICAgIG1fY291bnRlciA9IHN0ZDo6bW92ZShjb3VudGVyKTsKKyAgICAgICAgbV9jb3VudGVyID0g
V1RGOjptb3ZlKGNvdW50ZXIpOwogICAgIH0KIAogICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRl
ck9iamVjdD4gY3JlYXRlQ29udGVudFJlbmRlcmVyKERvY3VtZW50JiwgY29uc3QgUmVuZGVyU3R5
bGUmKSBjb25zdCBvdmVycmlkZTsKQEAgLTE3Miw3ICsxNzIsNyBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgc3RkOjp1bmlxdWVfcHRyPENvbnRlbnREYXRhPiBjbG9uZUludGVybmFsKCkgY29uc3Qg
b3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGF1dG8gY291bnRlckRhdGEgPSBzdGQ6Om1ha2VfdW5p
cXVlPENvdW50ZXJDb250ZW50Pihjb3VudGVyKCkpOwotICAgICAgICByZXR1cm4gc3RkOjptYWtl
X3VuaXF1ZTxDb3VudGVyQ29udGVudERhdGE+KHN0ZDo6bW92ZShjb3VudGVyRGF0YSkpOworICAg
ICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDb3VudGVyQ29udGVudERhdGE+KFdURjo6bW92
ZShjb3VudGVyRGF0YSkpOwogICAgIH0KIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxDb3VudGVyQ29u
dGVudD4gbV9jb3VudGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0RhdGFSZWYuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9EYXRhUmVmLmgK
aW5kZXggM2ViMTRlMS4uNzk2NGNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL0RhdGFSZWYuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
RGF0YVJlZi5oCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+IGNsYXNzIERhdGFSZWYgewogcHVibGljOgotICAgIERhdGFSZWYoUGFz
c1JlZjxUPiBkYXRhKSA6IG1fZGF0YShzdGQ6Om1vdmUoZGF0YSkpIHsgfQorICAgIERhdGFSZWYo
UGFzc1JlZjxUPiBkYXRhKSA6IG1fZGF0YShXVEY6Om1vdmUoZGF0YSkpIHsgfQogICAgIERhdGFS
ZWYoY29uc3QgRGF0YVJlZiYgb3RoZXIpIDogbV9kYXRhKGNvbnN0X2Nhc3Q8VCY+KG90aGVyLm1f
ZGF0YS5nZXQoKSkpIHsgfQogICAgIERhdGFSZWYmIG9wZXJhdG9yPShjb25zdCBEYXRhUmVmJiBv
dGhlcikgeyBtX2RhdGEgPSBjb25zdF9jYXN0PFQmPihvdGhlci5tX2RhdGEuZ2V0KCkpOyByZXR1
cm4gKnRoaXM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L0ZpbGxMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVy
LmNwcAppbmRleCA3ZmJhNTYyLi5iOTFmYmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvRmlsbExheWVyLmNwcApAQCAtMTA4LDcgKzEwOCw3IEBAIEZpbGxMYXllcjo6Rmls
bExheWVyKGNvbnN0IEZpbGxMYXllciYgbykKIEZpbGxMYXllcjo6fkZpbGxMYXllcigpCiB7CiAg
ICAgLy8gRGVsZXRlIHRoZSBsYXllcnMgaW4gYSBsb29wIHJhdGhlciB0aGFuIGFsbG93aW5nIHJl
Y3Vyc2l2ZSBjYWxscyB0byB0aGUgZGVzdHJ1Y3RvcnMuCi0gICAgZm9yIChzdGQ6OnVuaXF1ZV9w
dHI8RmlsbExheWVyPiBuZXh0ID0gc3RkOjptb3ZlKG1fbmV4dCk7IG5leHQ7IG5leHQgPSBzdGQ6
Om1vdmUobmV4dC0+bV9uZXh0KSkgeyB9CisgICAgZm9yIChzdGQ6OnVuaXF1ZV9wdHI8RmlsbExh
eWVyPiBuZXh0ID0gV1RGOjptb3ZlKG1fbmV4dCk7IG5leHQ7IG5leHQgPSBXVEY6Om1vdmUobmV4
dC0+bV9uZXh0KSkgeyB9CiB9CiAKIEZpbGxMYXllciYgRmlsbExheWVyOjpvcGVyYXRvcj0oY29u
c3QgRmlsbExheWVyJiBvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0ZpbGxMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXll
ci5oCmluZGV4IGNlNGI0ZjMuLjliZWI3YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvRmlsbExheWVyLmgKQEAgLTEwMiw4ICsxMDIsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBp
c01hc2tTb3VyY2VUeXBlU2V0KCkgY29uc3QgeyByZXR1cm4gbV9tYXNrU291cmNlVHlwZVNldDsg
fQogCiAgICAgdm9pZCBzZXRJbWFnZShQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGltYWdlKSB7IG1f
aW1hZ2UgPSBpbWFnZTsgbV9pbWFnZVNldCA9IHRydWU7IH0KLSAgICB2b2lkIHNldFhQb3NpdGlv
bihMZW5ndGggbGVuZ3RoKSB7IG1feFBvc2l0aW9uID0gc3RkOjptb3ZlKGxlbmd0aCk7IG1feFBv
c1NldCA9IHRydWU7IH0KLSAgICB2b2lkIHNldFlQb3NpdGlvbihMZW5ndGggbGVuZ3RoKSB7IG1f
eVBvc2l0aW9uID0gc3RkOjptb3ZlKGxlbmd0aCk7IG1feVBvc1NldCA9IHRydWU7IH0KKyAgICB2
b2lkIHNldFhQb3NpdGlvbihMZW5ndGggbGVuZ3RoKSB7IG1feFBvc2l0aW9uID0gV1RGOjptb3Zl
KGxlbmd0aCk7IG1feFBvc1NldCA9IHRydWU7IH0KKyAgICB2b2lkIHNldFlQb3NpdGlvbihMZW5n
dGggbGVuZ3RoKSB7IG1feVBvc2l0aW9uID0gV1RGOjptb3ZlKGxlbmd0aCk7IG1feVBvc1NldCA9
IHRydWU7IH0KICAgICB2b2lkIHNldEJhY2tncm91bmRYT3JpZ2luKEJhY2tncm91bmRFZGdlT3Jp
Z2luIG8pIHsgbV9iYWNrZ3JvdW5kWE9yaWdpbiA9IG87IG1fYmFja2dyb3VuZE9yaWdpblNldCA9
IHRydWU7IH0KICAgICB2b2lkIHNldEJhY2tncm91bmRZT3JpZ2luKEJhY2tncm91bmRFZGdlT3Jp
Z2luIG8pIHsgbV9iYWNrZ3JvdW5kWU9yaWdpbiA9IG87IG1fYmFja2dyb3VuZE9yaWdpblNldCA9
IHRydWU7IH0KICAgICB2b2lkIHNldEF0dGFjaG1lbnQoRUZpbGxBdHRhY2htZW50IGF0dGFjaG1l
bnQpIHsgbV9hdHRhY2htZW50ID0gYXR0YWNobWVudDsgbV9hdHRhY2htZW50U2V0ID0gdHJ1ZTsg
fQpAQCAtMTMyLDcgKzEzMiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyU2l6ZSgpIHsgbV9z
aXplVHlwZSA9IFNpemVOb25lOyB9CiAgICAgdm9pZCBjbGVhck1hc2tTb3VyY2VUeXBlKCkgeyBt
X21hc2tTb3VyY2VUeXBlU2V0ID0gZmFsc2U7IH0KIAotICAgIHZvaWQgc2V0TmV4dChzdGQ6OnVu
aXF1ZV9wdHI8RmlsbExheWVyPiBuZXh0KSB7IG1fbmV4dCA9IHN0ZDo6bW92ZShuZXh0KTsgfQor
ICAgIHZvaWQgc2V0TmV4dChzdGQ6OnVuaXF1ZV9wdHI8RmlsbExheWVyPiBuZXh0KSB7IG1fbmV4
dCA9IFdURjo6bW92ZShuZXh0KTsgfQogCiAgICAgRmlsbExheWVyJiBvcGVyYXRvcj0oY29uc3Qg
RmlsbExheWVyJik7CiAgICAgRmlsbExheWVyKGNvbnN0IEZpbGxMYXllciYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5jcHAKaW5kZXggNDNi
ZDFiMC4uMDQxNGM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L05pbmVQaWVjZUltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
TmluZVBpZWNlSW1hZ2UuY3BwCkBAIC00Miw5ICs0Miw5IEBAIE5pbmVQaWVjZUltYWdlOjpOaW5l
UGllY2VJbWFnZShQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGltYWdlLCBMZW5ndGhCb3ggaW1hZ2VT
bGljCiAgICAgOiBtX2RhdGEoTmluZVBpZWNlSW1hZ2VEYXRhOjpjcmVhdGUoKSkKIHsKICAgICBt
X2RhdGEuYWNjZXNzKCktPmltYWdlID0gaW1hZ2U7Ci0gICAgbV9kYXRhLmFjY2VzcygpLT5pbWFn
ZVNsaWNlcyA9IHN0ZDo6bW92ZShpbWFnZVNsaWNlcyk7Ci0gICAgbV9kYXRhLmFjY2VzcygpLT5i
b3JkZXJTbGljZXMgPSBzdGQ6Om1vdmUoYm9yZGVyU2xpY2VzKTsKLSAgICBtX2RhdGEuYWNjZXNz
KCktPm91dHNldCA9IHN0ZDo6bW92ZShvdXRzZXQpOworICAgIG1fZGF0YS5hY2Nlc3MoKS0+aW1h
Z2VTbGljZXMgPSBXVEY6Om1vdmUoaW1hZ2VTbGljZXMpOworICAgIG1fZGF0YS5hY2Nlc3MoKS0+
Ym9yZGVyU2xpY2VzID0gV1RGOjptb3ZlKGJvcmRlclNsaWNlcyk7CisgICAgbV9kYXRhLmFjY2Vz
cygpLT5vdXRzZXQgPSBXVEY6Om1vdmUob3V0c2V0KTsKICAgICBtX2RhdGEuYWNjZXNzKCktPmZp
bGwgPSBmaWxsOwogICAgIG1fZGF0YS5hY2Nlc3MoKS0+aG9yaXpvbnRhbFJ1bGUgPSBob3Jpem9u
dGFsUnVsZTsKICAgICBtX2RhdGEuYWNjZXNzKCktPnZlcnRpY2FsUnVsZSA9IHZlcnRpY2FsUnVs
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJ
bWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmgK
aW5kZXggZTM0OTI0MS4uZDY4NjhmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL05pbmVQaWVjZUltYWdlLmgKQEAgLTY5LDE2ICs2OSwxNiBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRJbWFnZShQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGltYWdlKSB7IG1fZGF0YS5hY2Nl
c3MoKS0+aW1hZ2UgPSBpbWFnZTsgfQogICAgIAogICAgIGNvbnN0IExlbmd0aEJveCYgaW1hZ2VT
bGljZXMoKSBjb25zdCB7IHJldHVybiBtX2RhdGEtPmltYWdlU2xpY2VzOyB9Ci0gICAgdm9pZCBz
ZXRJbWFnZVNsaWNlcyhMZW5ndGhCb3ggc2xpY2VzKSB7IG1fZGF0YS5hY2Nlc3MoKS0+aW1hZ2VT
bGljZXMgPSBzdGQ6Om1vdmUoc2xpY2VzKTsgfQorICAgIHZvaWQgc2V0SW1hZ2VTbGljZXMoTGVu
Z3RoQm94IHNsaWNlcykgeyBtX2RhdGEuYWNjZXNzKCktPmltYWdlU2xpY2VzID0gV1RGOjptb3Zl
KHNsaWNlcyk7IH0KIAogICAgIGJvb2wgZmlsbCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS0+Zmls
bDsgfQogICAgIHZvaWQgc2V0RmlsbChib29sIGZpbGwpIHsgbV9kYXRhLmFjY2VzcygpLT5maWxs
ID0gZmlsbDsgfQogCiAgICAgY29uc3QgTGVuZ3RoQm94JiBib3JkZXJTbGljZXMoKSBjb25zdCB7
IHJldHVybiBtX2RhdGEtPmJvcmRlclNsaWNlczsgfQotICAgIHZvaWQgc2V0Qm9yZGVyU2xpY2Vz
KExlbmd0aEJveCBzbGljZXMpIHsgbV9kYXRhLmFjY2VzcygpLT5ib3JkZXJTbGljZXMgPSBzdGQ6
Om1vdmUoc2xpY2VzKTsgfQorICAgIHZvaWQgc2V0Qm9yZGVyU2xpY2VzKExlbmd0aEJveCBzbGlj
ZXMpIHsgbV9kYXRhLmFjY2VzcygpLT5ib3JkZXJTbGljZXMgPSBXVEY6Om1vdmUoc2xpY2VzKTsg
fQogCiAgICAgY29uc3QgTGVuZ3RoQm94JiBvdXRzZXQoKSBjb25zdCB7IHJldHVybiBtX2RhdGEt
Pm91dHNldDsgfQotICAgIHZvaWQgc2V0T3V0c2V0KExlbmd0aEJveCBvdXRzZXQpIHsgbV9kYXRh
LmFjY2VzcygpLT5vdXRzZXQgPSBzdGQ6Om1vdmUob3V0c2V0KTsgfQorICAgIHZvaWQgc2V0T3V0
c2V0KExlbmd0aEJveCBvdXRzZXQpIHsgbV9kYXRhLmFjY2VzcygpLT5vdXRzZXQgPSBXVEY6Om1v
dmUob3V0c2V0KTsgfQogCiAgICAgRU5pbmVQaWVjZUltYWdlUnVsZSBob3Jpem9udGFsUnVsZSgp
IGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVOaW5lUGllY2VJbWFnZVJ1bGU+KG1fZGF0YS0+
aG9yaXpvbnRhbFJ1bGUpOyB9CiAgICAgdm9pZCBzZXRIb3Jpem9udGFsUnVsZShFTmluZVBpZWNl
SW1hZ2VSdWxlIHJ1bGUpIHsgbV9kYXRhLmFjY2VzcygpLT5ob3Jpem9udGFsUnVsZSA9IHJ1bGU7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmlu
ZGV4IDkxYjMxNTEuLjMzMjBjMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtODY0LDkgKzg2NCw5IEBAIHZvaWQgUmVuZGVyU3R5bGU6
OmFwcGVuZENvbnRlbnQoc3RkOjp1bmlxdWVfcHRyPENvbnRlbnREYXRhPiBjb250ZW50RGF0YSkK
ICAgICAgICAgbGFzdENvbnRlbnQgPSBsYXN0Q29udGVudC0+bmV4dCgpOwogCiAgICAgaWYgKGxh
c3RDb250ZW50KQotICAgICAgICBsYXN0Q29udGVudC0+c2V0TmV4dChzdGQ6Om1vdmUoY29udGVu
dERhdGEpKTsKKyAgICAgICAgbGFzdENvbnRlbnQtPnNldE5leHQoV1RGOjptb3ZlKGNvbnRlbnRE
YXRhKSk7CiAgICAgZWxzZQotICAgICAgICBjb250ZW50ID0gc3RkOjptb3ZlKGNvbnRlbnREYXRh
KTsKKyAgICAgICAgY29udGVudCA9IFdURjo6bW92ZShjb250ZW50RGF0YSk7CiB9CiAKIHZvaWQg
UmVuZGVyU3R5bGU6OnNldENvbnRlbnQoUGFzc1JlZlB0cjxTdHlsZUltYWdlPiBpbWFnZSwgYm9v
bCBhZGQpCkBAIC05MTcsMTEgKzkxNywxMSBAQCB2b2lkIFJlbmRlclN0eWxlOjpzZXRDb250ZW50
KHN0ZDo6dW5pcXVlX3B0cjxDb3VudGVyQ29udGVudD4gY291bnRlciwgYm9vbCBhZGQpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlmIChhZGQpIHsKLSAgICAgICAgYXBwZW5kQ29udGVudChzdGQ6
Om1ha2VfdW5pcXVlPENvdW50ZXJDb250ZW50RGF0YT4oc3RkOjptb3ZlKGNvdW50ZXIpKSk7Cisg
ICAgICAgIGFwcGVuZENvbnRlbnQoc3RkOjptYWtlX3VuaXF1ZTxDb3VudGVyQ29udGVudERhdGE+
KFdURjo6bW92ZShjb3VudGVyKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcmFy
ZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fY29udGVudCA9IHN0ZDo6bWFrZV91bmlxdWU8
Q291bnRlckNvbnRlbnREYXRhPihzdGQ6Om1vdmUoY291bnRlcikpOworICAgIHJhcmVOb25Jbmhl
cml0ZWREYXRhLmFjY2VzcygpLT5tX2NvbnRlbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPENvdW50ZXJD
b250ZW50RGF0YT4oV1RGOjptb3ZlKGNvdW50ZXIpKTsKIH0KIAogdm9pZCBSZW5kZXJTdHlsZTo6
c2V0Q29udGVudChRdW90ZVR5cGUgcXVvdGUsIGJvb2wgYWRkKQpAQCAtMTAwOSwyNCArMTAwOSwy
NCBAQCB2b2lkIFJlbmRlclN0eWxlOjpzZXRUZXh0U2hhZG93KHN0ZDo6dW5pcXVlX3B0cjxTaGFk
b3dEYXRhPiBzaGFkb3dEYXRhLCBib29sIGFkZAogCiAgICAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0
YSogcmFyZURhdGEgPSByYXJlSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKTsKICAgICBpZiAoIWFkZCkg
ewotICAgICAgICByYXJlRGF0YS0+dGV4dFNoYWRvdyA9IHN0ZDo6bW92ZShzaGFkb3dEYXRhKTsK
KyAgICAgICAgcmFyZURhdGEtPnRleHRTaGFkb3cgPSBXVEY6Om1vdmUoc2hhZG93RGF0YSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBzaGFkb3dEYXRhLT5zZXROZXh0KHN0ZDo6bW92
ZShyYXJlRGF0YS0+dGV4dFNoYWRvdykpOwotICAgIHJhcmVEYXRhLT50ZXh0U2hhZG93ID0gc3Rk
Ojptb3ZlKHNoYWRvd0RhdGEpOworICAgIHNoYWRvd0RhdGEtPnNldE5leHQoV1RGOjptb3ZlKHJh
cmVEYXRhLT50ZXh0U2hhZG93KSk7CisgICAgcmFyZURhdGEtPnRleHRTaGFkb3cgPSBXVEY6Om1v
dmUoc2hhZG93RGF0YSk7CiB9CiAKIHZvaWQgUmVuZGVyU3R5bGU6OnNldEJveFNoYWRvdyhzdGQ6
OnVuaXF1ZV9wdHI8U2hhZG93RGF0YT4gc2hhZG93RGF0YSwgYm9vbCBhZGQpCiB7CiAgICAgU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSogcmFyZURhdGEgPSByYXJlTm9uSW5oZXJpdGVkRGF0YS5h
Y2Nlc3MoKTsKICAgICBpZiAoIWFkZCkgewotICAgICAgICByYXJlRGF0YS0+bV9ib3hTaGFkb3cg
PSBzdGQ6Om1vdmUoc2hhZG93RGF0YSk7CisgICAgICAgIHJhcmVEYXRhLT5tX2JveFNoYWRvdyA9
IFdURjo6bW92ZShzaGFkb3dEYXRhKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNo
YWRvd0RhdGEtPnNldE5leHQoc3RkOjptb3ZlKHJhcmVEYXRhLT5tX2JveFNoYWRvdykpOwotICAg
IHJhcmVEYXRhLT5tX2JveFNoYWRvdyA9IHN0ZDo6bW92ZShzaGFkb3dEYXRhKTsKKyAgICBzaGFk
b3dEYXRhLT5zZXROZXh0KFdURjo6bW92ZShyYXJlRGF0YS0+bV9ib3hTaGFkb3cpKTsKKyAgICBy
YXJlRGF0YS0+bV9ib3hTaGFkb3cgPSBXVEY6Om1vdmUoc2hhZG93RGF0YSk7CiB9CiAKIHN0YXRp
YyBSb3VuZGVkUmVjdDo6UmFkaWkgY2FsY1JhZGlpRm9yKGNvbnN0IEJvcmRlckRhdGEmIGJvcmRl
ciwgY29uc3QgTGF5b3V0U2l6ZSYgc2l6ZSkKQEAgLTEzNzcsNyArMTM3Nyw3IEBAIHZvaWQgUmVu
ZGVyU3R5bGU6OnNldFdvcmRTcGFjaW5nKExlbmd0aCB2YWx1ZSkKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogICAgIGluaGVyaXRlZC5hY2Nlc3MoKS0+Zm9udC5zZXRXb3JkU3BhY2luZyhmb250V29y
ZFNwYWNpbmcpOwotICAgIHJhcmVJbmhlcml0ZWREYXRhLmFjY2VzcygpLT53b3JkU3BhY2luZyA9
IHN0ZDo6bW92ZSh2YWx1ZSk7CisgICAgcmFyZUluaGVyaXRlZERhdGEuYWNjZXNzKCktPndvcmRT
cGFjaW5nID0gV1RGOjptb3ZlKHZhbHVlKTsKIH0KIAogdm9pZCBSZW5kZXJTdHlsZTo6c2V0TGV0
dGVyU3BhY2luZyhmbG9hdCB2KSB7IGluaGVyaXRlZC5hY2Nlc3MoKS0+Zm9udC5zZXRMZXR0ZXJT
cGFjaW5nKHYpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oCmluZGV4IDFlYzIxZmUuLjQwMTEyNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC0xMTQxLDM2ICsxMTQxLDM2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFBvc2l0aW9uKEVQb3NpdGlvbiB2KSB7IG5vbmluaGVyaXRlZF9mbGFncy5zZXRQ
b3NpdGlvbih2KTsgfQogICAgIHZvaWQgc2V0RmxvYXRpbmcoRUZsb2F0IHYpIHsgbm9uaW5oZXJp
dGVkX2ZsYWdzLnNldEZsb2F0aW5nKHYpOyB9CiAKLSAgICB2b2lkIHNldExlZnQoTGVuZ3RoIHYp
IHsgU0VUX1ZBUihzdXJyb3VuZCwgb2Zmc2V0Lm1fbGVmdCwgc3RkOjptb3ZlKHYpKTsgfQotICAg
IHZvaWQgc2V0UmlnaHQoTGVuZ3RoIHYpIHsgU0VUX1ZBUihzdXJyb3VuZCwgb2Zmc2V0Lm1fcmln
aHQsIHN0ZDo6bW92ZSh2KSk7IH0KLSAgICB2b2lkIHNldFRvcChMZW5ndGggdikgeyBTRVRfVkFS
KHN1cnJvdW5kLCBvZmZzZXQubV90b3AsIHN0ZDo6bW92ZSh2KSk7IH0KLSAgICB2b2lkIHNldEJv
dHRvbShMZW5ndGggdikgeyBTRVRfVkFSKHN1cnJvdW5kLCBvZmZzZXQubV9ib3R0b20sIHN0ZDo6
bW92ZSh2KSk7IH0KKyAgICB2b2lkIHNldExlZnQoTGVuZ3RoIHYpIHsgU0VUX1ZBUihzdXJyb3Vu
ZCwgb2Zmc2V0Lm1fbGVmdCwgV1RGOjptb3ZlKHYpKTsgfQorICAgIHZvaWQgc2V0UmlnaHQoTGVu
Z3RoIHYpIHsgU0VUX1ZBUihzdXJyb3VuZCwgb2Zmc2V0Lm1fcmlnaHQsIFdURjo6bW92ZSh2KSk7
IH0KKyAgICB2b2lkIHNldFRvcChMZW5ndGggdikgeyBTRVRfVkFSKHN1cnJvdW5kLCBvZmZzZXQu
bV90b3AsIFdURjo6bW92ZSh2KSk7IH0KKyAgICB2b2lkIHNldEJvdHRvbShMZW5ndGggdikgeyBT
RVRfVkFSKHN1cnJvdW5kLCBvZmZzZXQubV9ib3R0b20sIFdURjo6bW92ZSh2KSk7IH0KIAotICAg
IHZvaWQgc2V0V2lkdGgoTGVuZ3RoIHYpIHsgU0VUX1ZBUihtX2JveCwgbV93aWR0aCwgc3RkOjpt
b3ZlKHYpKTsgfQotICAgIHZvaWQgc2V0SGVpZ2h0KExlbmd0aCB2KSB7IFNFVF9WQVIobV9ib3gs
IG1faGVpZ2h0LCBzdGQ6Om1vdmUodikpOyB9CisgICAgdm9pZCBzZXRXaWR0aChMZW5ndGggdikg
eyBTRVRfVkFSKG1fYm94LCBtX3dpZHRoLCBXVEY6Om1vdmUodikpOyB9CisgICAgdm9pZCBzZXRI
ZWlnaHQoTGVuZ3RoIHYpIHsgU0VUX1ZBUihtX2JveCwgbV9oZWlnaHQsIFdURjo6bW92ZSh2KSk7
IH0KIAogICAgIHZvaWQgc2V0TG9naWNhbFdpZHRoKExlbmd0aCB2KQogICAgIHsKICAgICAgICAg
aWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpIHsKLSAgICAgICAgICAgIFNFVF9WQVIobV9i
b3gsIG1fd2lkdGgsIHN0ZDo6bW92ZSh2KSk7CisgICAgICAgICAgICBTRVRfVkFSKG1fYm94LCBt
X3dpZHRoLCBXVEY6Om1vdmUodikpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgU0VU
X1ZBUihtX2JveCwgbV9oZWlnaHQsIHN0ZDo6bW92ZSh2KSk7CisgICAgICAgICAgICBTRVRfVkFS
KG1fYm94LCBtX2hlaWdodCwgV1RGOjptb3ZlKHYpKTsKICAgICAgICAgfQogICAgIH0KIAogICAg
IHZvaWQgc2V0TG9naWNhbEhlaWdodChMZW5ndGggdikKICAgICB7CiAgICAgICAgIGlmIChpc0hv
cml6b250YWxXcml0aW5nTW9kZSgpKSB7Ci0gICAgICAgICAgICBTRVRfVkFSKG1fYm94LCBtX2hl
aWdodCwgc3RkOjptb3ZlKHYpKTsKKyAgICAgICAgICAgIFNFVF9WQVIobV9ib3gsIG1faGVpZ2h0
LCBXVEY6Om1vdmUodikpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgU0VUX1ZBUiht
X2JveCwgbV93aWR0aCwgc3RkOjptb3ZlKHYpKTsKKyAgICAgICAgICAgIFNFVF9WQVIobV9ib3gs
IG1fd2lkdGgsIFdURjo6bW92ZSh2KSk7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICB2b2lkIHNl
dE1pbldpZHRoKExlbmd0aCB2KSB7IFNFVF9WQVIobV9ib3gsIG1fbWluV2lkdGgsIHN0ZDo6bW92
ZSh2KSk7IH0KLSAgICB2b2lkIHNldE1heFdpZHRoKExlbmd0aCB2KSB7IFNFVF9WQVIobV9ib3gs
IG1fbWF4V2lkdGgsIHN0ZDo6bW92ZSh2KSk7IH0KLSAgICB2b2lkIHNldE1pbkhlaWdodChMZW5n
dGggdikgeyBTRVRfVkFSKG1fYm94LCBtX21pbkhlaWdodCwgc3RkOjptb3ZlKHYpKTsgfQotICAg
IHZvaWQgc2V0TWF4SGVpZ2h0KExlbmd0aCB2KSB7IFNFVF9WQVIobV9ib3gsIG1fbWF4SGVpZ2h0
LCBzdGQ6Om1vdmUodikpOyB9CisgICAgdm9pZCBzZXRNaW5XaWR0aChMZW5ndGggdikgeyBTRVRf
VkFSKG1fYm94LCBtX21pbldpZHRoLCBXVEY6Om1vdmUodikpOyB9CisgICAgdm9pZCBzZXRNYXhX
aWR0aChMZW5ndGggdikgeyBTRVRfVkFSKG1fYm94LCBtX21heFdpZHRoLCBXVEY6Om1vdmUodikp
OyB9CisgICAgdm9pZCBzZXRNaW5IZWlnaHQoTGVuZ3RoIHYpIHsgU0VUX1ZBUihtX2JveCwgbV9t
aW5IZWlnaHQsIFdURjo6bW92ZSh2KSk7IH0KKyAgICB2b2lkIHNldE1heEhlaWdodChMZW5ndGgg
dikgeyBTRVRfVkFSKG1fYm94LCBtX21heEhlaWdodCwgV1RGOjptb3ZlKHYpKTsgfQogCiAjaWYg
RU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIFZlY3RvcjxTdHlsZURhc2hib2FyZFJlZ2lv
bj4gZGFzaGJvYXJkUmVnaW9ucygpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRh
LT5tX2Rhc2hib2FyZFJlZ2lvbnM7IH0KQEAgLTExODAsMTAgKzExODAsMTAgQEAgcHVibGljOgog
ICAgIHsKICAgICAgICAgU3R5bGVEYXNoYm9hcmRSZWdpb24gcmVnaW9uOwogICAgICAgICByZWdp
b24ubGFiZWwgPSBsYWJlbDsKLSAgICAgICAgcmVnaW9uLm9mZnNldC5tX3RvcCA9IHN0ZDo6bW92
ZSh0KTsKLSAgICAgICAgcmVnaW9uLm9mZnNldC5tX3JpZ2h0ID0gc3RkOjptb3ZlKHIpOwotICAg
ICAgICByZWdpb24ub2Zmc2V0Lm1fYm90dG9tID0gc3RkOjptb3ZlKGIpOwotICAgICAgICByZWdp
b24ub2Zmc2V0Lm1fbGVmdCA9IHN0ZDo6bW92ZShsKTsKKyAgICAgICAgcmVnaW9uLm9mZnNldC5t
X3RvcCA9IFdURjo6bW92ZSh0KTsKKyAgICAgICAgcmVnaW9uLm9mZnNldC5tX3JpZ2h0ID0gV1RG
Ojptb3ZlKHIpOworICAgICAgICByZWdpb24ub2Zmc2V0Lm1fYm90dG9tID0gV1RGOjptb3ZlKGIp
OworICAgICAgICByZWdpb24ub2Zmc2V0Lm1fbGVmdCA9IFdURjo6bW92ZShsKTsKICAgICAgICAg
cmVnaW9uLnR5cGUgPSB0eXBlOwogICAgICAgICBpZiAoIWFwcGVuZCkKICAgICAgICAgICAgIHJh
cmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2Rhc2hib2FyZFJlZ2lvbnMuY2xlYXIoKTsK
QEAgLTEyMDUsMTAgKzEyMDUsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRCYWNrZ3JvdW5k
Q29sb3IoY29uc3QgQ29sb3ImIHYpIHsgU0VUX1ZBUihtX2JhY2tncm91bmQsIG1fY29sb3IsIHYp
OyB9CiAKLSAgICB2b2lkIHNldEJhY2tncm91bmRYUG9zaXRpb24oTGVuZ3RoIGxlbmd0aCkgeyBT
RVRfVkFSKG1fYmFja2dyb3VuZCwgbV9iYWNrZ3JvdW5kLm1feFBvc2l0aW9uLCBzdGQ6Om1vdmUo
bGVuZ3RoKSk7IH0KLSAgICB2b2lkIHNldEJhY2tncm91bmRZUG9zaXRpb24oTGVuZ3RoIGxlbmd0
aCkgeyBTRVRfVkFSKG1fYmFja2dyb3VuZCwgbV9iYWNrZ3JvdW5kLm1feVBvc2l0aW9uLCBzdGQ6
Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lkIHNldEJhY2tncm91bmRYUG9zaXRpb24oTGVuZ3Ro
IGxlbmd0aCkgeyBTRVRfVkFSKG1fYmFja2dyb3VuZCwgbV9iYWNrZ3JvdW5kLm1feFBvc2l0aW9u
LCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lkIHNldEJhY2tncm91bmRZUG9zaXRpb24o
TGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKG1fYmFja2dyb3VuZCwgbV9iYWNrZ3JvdW5kLm1feVBv
c2l0aW9uLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KICAgICB2b2lkIHNldEJhY2tncm91bmRTaXpl
KEVGaWxsU2l6ZVR5cGUgYikgeyBTRVRfVkFSKG1fYmFja2dyb3VuZCwgbV9iYWNrZ3JvdW5kLm1f
c2l6ZVR5cGUsIGIpOyB9Ci0gICAgdm9pZCBzZXRCYWNrZ3JvdW5kU2l6ZUxlbmd0aChMZW5ndGhT
aXplIHNpemUpIHsgU0VUX1ZBUihtX2JhY2tncm91bmQsIG1fYmFja2dyb3VuZC5tX3NpemVMZW5n
dGgsIHN0ZDo6bW92ZShzaXplKSk7IH0KKyAgICB2b2lkIHNldEJhY2tncm91bmRTaXplTGVuZ3Ro
KExlbmd0aFNpemUgc2l6ZSkgeyBTRVRfVkFSKG1fYmFja2dyb3VuZCwgbV9iYWNrZ3JvdW5kLm1f
c2l6ZUxlbmd0aCwgV1RGOjptb3ZlKHNpemUpKTsgfQogICAgIAogICAgIHZvaWQgc2V0Qm9yZGVy
SW1hZ2UoY29uc3QgTmluZVBpZWNlSW1hZ2UmIGIpIHsgU0VUX1ZBUihzdXJyb3VuZCwgYm9yZGVy
Lm1faW1hZ2UsIGIpOyB9CiAgICAgdm9pZCBzZXRCb3JkZXJJbWFnZVNvdXJjZShQYXNzUmVmUHRy
PFN0eWxlSW1hZ2U+KTsKQEAgLTEyMTYsMTAgKzEyMTYsMTAgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0Qm9yZGVySW1hZ2VXaWR0aChMZW5ndGhCb3gpOwogICAgIHZvaWQgc2V0Qm9yZGVySW1hZ2VP
dXRzZXQoTGVuZ3RoQm94KTsKIAotICAgIHZvaWQgc2V0Qm9yZGVyVG9wTGVmdFJhZGl1cyhMZW5n
dGhTaXplIHNpemUpIHsgU0VUX1ZBUihzdXJyb3VuZCwgYm9yZGVyLm1fdG9wTGVmdCwgc3RkOjpt
b3ZlKHNpemUpKTsgfQotICAgIHZvaWQgc2V0Qm9yZGVyVG9wUmlnaHRSYWRpdXMoTGVuZ3RoU2l6
ZSBzaXplKSB7IFNFVF9WQVIoc3Vycm91bmQsIGJvcmRlci5tX3RvcFJpZ2h0LCBzdGQ6Om1vdmUo
c2l6ZSkpOyB9Ci0gICAgdm9pZCBzZXRCb3JkZXJCb3R0b21MZWZ0UmFkaXVzKExlbmd0aFNpemUg
c2l6ZSkgeyBTRVRfVkFSKHN1cnJvdW5kLCBib3JkZXIubV9ib3R0b21MZWZ0LCBzdGQ6Om1vdmUo
c2l6ZSkpOyB9Ci0gICAgdm9pZCBzZXRCb3JkZXJCb3R0b21SaWdodFJhZGl1cyhMZW5ndGhTaXpl
IHNpemUpIHsgU0VUX1ZBUihzdXJyb3VuZCwgYm9yZGVyLm1fYm90dG9tUmlnaHQsIHN0ZDo6bW92
ZShzaXplKSk7IH0KKyAgICB2b2lkIHNldEJvcmRlclRvcExlZnRSYWRpdXMoTGVuZ3RoU2l6ZSBz
aXplKSB7IFNFVF9WQVIoc3Vycm91bmQsIGJvcmRlci5tX3RvcExlZnQsIFdURjo6bW92ZShzaXpl
KSk7IH0KKyAgICB2b2lkIHNldEJvcmRlclRvcFJpZ2h0UmFkaXVzKExlbmd0aFNpemUgc2l6ZSkg
eyBTRVRfVkFSKHN1cnJvdW5kLCBib3JkZXIubV90b3BSaWdodCwgV1RGOjptb3ZlKHNpemUpKTsg
fQorICAgIHZvaWQgc2V0Qm9yZGVyQm90dG9tTGVmdFJhZGl1cyhMZW5ndGhTaXplIHNpemUpIHsg
U0VUX1ZBUihzdXJyb3VuZCwgYm9yZGVyLm1fYm90dG9tTGVmdCwgV1RGOjptb3ZlKHNpemUpKTsg
fQorICAgIHZvaWQgc2V0Qm9yZGVyQm90dG9tUmlnaHRSYWRpdXMoTGVuZ3RoU2l6ZSBzaXplKSB7
IFNFVF9WQVIoc3Vycm91bmQsIGJvcmRlci5tX2JvdHRvbVJpZ2h0LCBXVEY6Om1vdmUoc2l6ZSkp
OyB9CiAKICAgICB2b2lkIHNldEJvcmRlclJhZGl1cyhMZW5ndGhTaXplIHMpCiAgICAgewpAQCAt
MTI2MSwxNSArMTI2MSwxNSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRPdmVyZmxvd1koRU92ZXJm
bG93IHYpIHsgbm9uaW5oZXJpdGVkX2ZsYWdzLnNldE92ZXJmbG93WSh2KTsgfQogICAgIHZvaWQg
c2V0VmlzaWJpbGl0eShFVmlzaWJpbGl0eSB2KSB7IGluaGVyaXRlZF9mbGFncy5fdmlzaWJpbGl0
eSA9IHY7IH0KICAgICB2b2lkIHNldFZlcnRpY2FsQWxpZ24oRVZlcnRpY2FsQWxpZ24gdikgeyBu
b25pbmhlcml0ZWRfZmxhZ3Muc2V0VmVydGljYWxBbGlnbih2KTsgfQotICAgIHZvaWQgc2V0VmVy
dGljYWxBbGlnbkxlbmd0aChMZW5ndGggbGVuZ3RoKSB7IHNldFZlcnRpY2FsQWxpZ24oTEVOR1RI
KTsgU0VUX1ZBUihtX2JveCwgbV92ZXJ0aWNhbEFsaWduLCBzdGQ6Om1vdmUobGVuZ3RoKSk7IH0K
KyAgICB2b2lkIHNldFZlcnRpY2FsQWxpZ25MZW5ndGgoTGVuZ3RoIGxlbmd0aCkgeyBzZXRWZXJ0
aWNhbEFsaWduKExFTkdUSCk7IFNFVF9WQVIobV9ib3gsIG1fdmVydGljYWxBbGlnbiwgV1RGOjpt
b3ZlKGxlbmd0aCkpOyB9CiAKICAgICB2b2lkIHNldEhhc0NsaXAoYm9vbCBiID0gdHJ1ZSkgeyBT
RVRfVkFSKHZpc3VhbCwgaGFzQ2xpcCwgYik7IH0KLSAgICB2b2lkIHNldENsaXBMZWZ0KExlbmd0
aCBsZW5ndGgpIHsgU0VUX1ZBUih2aXN1YWwsIGNsaXAubV9sZWZ0LCBzdGQ6Om1vdmUobGVuZ3Ro
KSk7IH0KLSAgICB2b2lkIHNldENsaXBSaWdodChMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIodmlz
dWFsLCBjbGlwLm1fcmlnaHQsIHN0ZDo6bW92ZShsZW5ndGgpKTsgfQotICAgIHZvaWQgc2V0Q2xp
cFRvcChMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIodmlzdWFsLCBjbGlwLm1fdG9wLCBzdGQ6Om1v
dmUobGVuZ3RoKSk7IH0KLSAgICB2b2lkIHNldENsaXBCb3R0b20oTGVuZ3RoIGxlbmd0aCkgeyBT
RVRfVkFSKHZpc3VhbCwgY2xpcC5tX2JvdHRvbSwgc3RkOjptb3ZlKGxlbmd0aCkpOyB9CisgICAg
dm9pZCBzZXRDbGlwTGVmdChMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIodmlzdWFsLCBjbGlwLm1f
bGVmdCwgV1RGOjptb3ZlKGxlbmd0aCkpOyB9CisgICAgdm9pZCBzZXRDbGlwUmlnaHQoTGVuZ3Ro
IGxlbmd0aCkgeyBTRVRfVkFSKHZpc3VhbCwgY2xpcC5tX3JpZ2h0LCBXVEY6Om1vdmUobGVuZ3Ro
KSk7IH0KKyAgICB2b2lkIHNldENsaXBUb3AoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHZpc3Vh
bCwgY2xpcC5tX3RvcCwgV1RGOjptb3ZlKGxlbmd0aCkpOyB9CisgICAgdm9pZCBzZXRDbGlwQm90
dG9tKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUih2aXN1YWwsIGNsaXAubV9ib3R0b20sIFdURjo6
bW92ZShsZW5ndGgpKTsgfQogICAgIHZvaWQgc2V0Q2xpcChMZW5ndGggdG9wLCBMZW5ndGggcmln
aHQsIExlbmd0aCBib3R0b20sIExlbmd0aCBsZWZ0KTsKLSAgICB2b2lkIHNldENsaXAoTGVuZ3Ro
Qm94IGJveCkgeyBTRVRfVkFSKHZpc3VhbCwgY2xpcCwgc3RkOjptb3ZlKGJveCkpOyB9CisgICAg
dm9pZCBzZXRDbGlwKExlbmd0aEJveCBib3gpIHsgU0VUX1ZBUih2aXN1YWwsIGNsaXAsIFdURjo6
bW92ZShib3gpKTsgfQogCiAgICAgdm9pZCBzZXRVbmljb2RlQmlkaShFVW5pY29kZUJpZGkgYikg
eyBub25pbmhlcml0ZWRfZmxhZ3Muc2V0VW5pY29kZUJpZGkoYik7IH0KIApAQCAtMTI4OSw3ICsx
Mjg5LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIHNldENvbG9yKGNvbnN0IENvbG9y
Jik7Ci0gICAgdm9pZCBzZXRUZXh0SW5kZW50KExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihyYXJl
SW5oZXJpdGVkRGF0YSwgaW5kZW50LCBzdGQ6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lkIHNl
dFRleHRJbmRlbnQoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBp
bmRlbnQsIFdURjo6bW92ZShsZW5ndGgpKTsgfQogI2lmIEVOQUJMRShDU1MzX1RFWFQpCiAgICAg
dm9pZCBzZXRUZXh0SW5kZW50TGluZShUZXh0SW5kZW50TGluZSB2KSB7IFNFVF9WQVIocmFyZUlu
aGVyaXRlZERhdGEsIG1fdGV4dEluZGVudExpbmUsIHYpOyB9CiAgICAgdm9pZCBzZXRUZXh0SW5k
ZW50VHlwZShUZXh0SW5kZW50VHlwZSB2KSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIG1f
dGV4dEluZGVudFR5cGUsIHYpOyB9CkBAIC0xMzU4LDkgKzEzNTgsOSBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHNldE1hc2tCb3hJbWFnZShjb25zdCBOaW5lUGllY2VJbWFnZSYgYikgeyBTRVRfVkFS
KHJhcmVOb25Jbmhlcml0ZWREYXRhLCBtX21hc2tCb3hJbWFnZSwgYik7IH0KICAgICB2b2lkIHNl
dE1hc2tCb3hJbWFnZVNvdXJjZShQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IHYpIHsgcmFyZU5vbklu
aGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbWFza0JveEltYWdlLnNldEltYWdlKHYpOyB9Ci0gICAg
dm9pZCBzZXRNYXNrWFBvc2l0aW9uKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihyYXJlTm9uSW5o
ZXJpdGVkRGF0YSwgbV9tYXNrLm1feFBvc2l0aW9uLCBzdGQ6Om1vdmUobGVuZ3RoKSk7IH0KLSAg
ICB2b2lkIHNldE1hc2tZUG9zaXRpb24oTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHJhcmVOb25J
bmhlcml0ZWREYXRhLCBtX21hc2subV95UG9zaXRpb24sIHN0ZDo6bW92ZShsZW5ndGgpKTsgfQot
ICAgIHZvaWQgc2V0TWFza1NpemUoTGVuZ3RoU2l6ZSBzaXplKSB7IFNFVF9WQVIocmFyZU5vbklu
aGVyaXRlZERhdGEsIG1fbWFzay5tX3NpemVMZW5ndGgsIHN0ZDo6bW92ZShzaXplKSk7IH0KKyAg
ICB2b2lkIHNldE1hc2tYUG9zaXRpb24oTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHJhcmVOb25J
bmhlcml0ZWREYXRhLCBtX21hc2subV94UG9zaXRpb24sIFdURjo6bW92ZShsZW5ndGgpKTsgfQor
ICAgIHZvaWQgc2V0TWFza1lQb3NpdGlvbihMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIocmFyZU5v
bkluaGVyaXRlZERhdGEsIG1fbWFzay5tX3lQb3NpdGlvbiwgV1RGOjptb3ZlKGxlbmd0aCkpOyB9
CisgICAgdm9pZCBzZXRNYXNrU2l6ZShMZW5ndGhTaXplIHNpemUpIHsgU0VUX1ZBUihyYXJlTm9u
SW5oZXJpdGVkRGF0YSwgbV9tYXNrLm1fc2l6ZUxlbmd0aCwgV1RGOjptb3ZlKHNpemUpKTsgfQog
CiAgICAgdm9pZCBzZXRCb3JkZXJDb2xsYXBzZShFQm9yZGVyQ29sbGFwc2UgY29sbGFwc2UpIHsg
aW5oZXJpdGVkX2ZsYWdzLl9ib3JkZXJfY29sbGFwc2UgPSBjb2xsYXBzZTsgfQogICAgIHZvaWQg
c2V0SG9yaXpvbnRhbEJvcmRlclNwYWNpbmcoc2hvcnQpOwpAQCAtMTM3NywxOSArMTM3NywxOSBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRMaXN0U3R5bGVQb3NpdGlvbihFTGlzdFN0eWxlUG9zaXRp
b24gdikgeyBpbmhlcml0ZWRfZmxhZ3MuX2xpc3Rfc3R5bGVfcG9zaXRpb24gPSB2OyB9CiAKICAg
ICB2b2lkIHJlc2V0TWFyZ2luKCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBtYXJnaW4sIExlbmd0aEJv
eChGaXhlZCkpOyB9Ci0gICAgdm9pZCBzZXRNYXJnaW5Ub3AoTGVuZ3RoIGxlbmd0aCkgeyBTRVRf
VkFSKHN1cnJvdW5kLCBtYXJnaW4ubV90b3AsIHN0ZDo6bW92ZShsZW5ndGgpKTsgfQotICAgIHZv
aWQgc2V0TWFyZ2luQm90dG9tKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgbWFy
Z2luLm1fYm90dG9tLCBzdGQ6Om1vdmUobGVuZ3RoKSk7IH0KLSAgICB2b2lkIHNldE1hcmdpbkxl
ZnQoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBtYXJnaW4ubV9sZWZ0LCBzdGQ6
Om1vdmUobGVuZ3RoKSk7IH0KLSAgICB2b2lkIHNldE1hcmdpblJpZ2h0KExlbmd0aCBsZW5ndGgp
IHsgU0VUX1ZBUihzdXJyb3VuZCwgbWFyZ2luLm1fcmlnaHQsIHN0ZDo6bW92ZShsZW5ndGgpKTsg
fQorICAgIHZvaWQgc2V0TWFyZ2luVG9wKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJyb3Vu
ZCwgbWFyZ2luLm1fdG9wLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lkIHNldE1hcmdp
bkJvdHRvbShMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIoc3Vycm91bmQsIG1hcmdpbi5tX2JvdHRv
bSwgV1RGOjptb3ZlKGxlbmd0aCkpOyB9CisgICAgdm9pZCBzZXRNYXJnaW5MZWZ0KExlbmd0aCBs
ZW5ndGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgbWFyZ2luLm1fbGVmdCwgV1RGOjptb3ZlKGxlbmd0
aCkpOyB9CisgICAgdm9pZCBzZXRNYXJnaW5SaWdodChMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIo
c3Vycm91bmQsIG1hcmdpbi5tX3JpZ2h0LCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KICAgICB2b2lk
IHNldE1hcmdpblN0YXJ0KExlbmd0aCk7CiAgICAgdm9pZCBzZXRNYXJnaW5FbmQoTGVuZ3RoKTsK
IAogICAgIHZvaWQgcmVzZXRQYWRkaW5nKCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBwYWRkaW5nLCBM
ZW5ndGhCb3goQXV0bykpOyB9Ci0gICAgdm9pZCBzZXRQYWRkaW5nQm94KExlbmd0aEJveCBib3gp
IHsgU0VUX1ZBUihzdXJyb3VuZCwgcGFkZGluZywgc3RkOjptb3ZlKGJveCkpOyB9Ci0gICAgdm9p
ZCBzZXRQYWRkaW5nVG9wKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgcGFkZGlu
Zy5tX3RvcCwgc3RkOjptb3ZlKGxlbmd0aCkpOyB9Ci0gICAgdm9pZCBzZXRQYWRkaW5nQm90dG9t
KExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgcGFkZGluZy5tX2JvdHRvbSwgc3Rk
Ojptb3ZlKGxlbmd0aCkpOyB9Ci0gICAgdm9pZCBzZXRQYWRkaW5nTGVmdChMZW5ndGggbGVuZ3Ro
KSB7IFNFVF9WQVIoc3Vycm91bmQsIHBhZGRpbmcubV9sZWZ0LCBzdGQ6Om1vdmUobGVuZ3RoKSk7
IH0KLSAgICB2b2lkIHNldFBhZGRpbmdSaWdodChMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIoc3Vy
cm91bmQsIHBhZGRpbmcubV9yaWdodCwgc3RkOjptb3ZlKGxlbmd0aCkpOyB9CisgICAgdm9pZCBz
ZXRQYWRkaW5nQm94KExlbmd0aEJveCBib3gpIHsgU0VUX1ZBUihzdXJyb3VuZCwgcGFkZGluZywg
V1RGOjptb3ZlKGJveCkpOyB9CisgICAgdm9pZCBzZXRQYWRkaW5nVG9wKExlbmd0aCBsZW5ndGgp
IHsgU0VUX1ZBUihzdXJyb3VuZCwgcGFkZGluZy5tX3RvcCwgV1RGOjptb3ZlKGxlbmd0aCkpOyB9
CisgICAgdm9pZCBzZXRQYWRkaW5nQm90dG9tKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJy
b3VuZCwgcGFkZGluZy5tX2JvdHRvbSwgV1RGOjptb3ZlKGxlbmd0aCkpOyB9CisgICAgdm9pZCBz
ZXRQYWRkaW5nTGVmdChMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIoc3Vycm91bmQsIHBhZGRpbmcu
bV9sZWZ0LCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lkIHNldFBhZGRpbmdSaWdodChM
ZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIoc3Vycm91bmQsIHBhZGRpbmcubV9yaWdodCwgV1RGOjpt
b3ZlKGxlbmd0aCkpOyB9CiAKICAgICB2b2lkIHNldEN1cnNvcihFQ3Vyc29yIGMpIHsgaW5oZXJp
dGVkX2ZsYWdzLl9jdXJzb3Jfc3R5bGUgPSBjOyB9CiAgICAgdm9pZCBhZGRDdXJzb3IoUGFzc1Jl
ZlB0cjxTdHlsZUltYWdlPiwgY29uc3QgSW50UG9pbnQmIGhvdFNwb3QgPSBJbnRQb2ludCgpKTsK
QEAgLTE0NDgsNyArMTQ0OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEJveFNpemluZyhFQm94
U2l6aW5nIHMpIHsgU0VUX1ZBUihtX2JveCwgbV9ib3hTaXppbmcsIHMpOyB9CiAgICAgdm9pZCBz
ZXRGbGV4R3JvdyhmbG9hdCBmKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNz
KCktPm1fZmxleGlibGVCb3gsIG1fZmxleEdyb3csIGYpOyB9CiAgICAgdm9pZCBzZXRGbGV4U2hy
aW5rKGZsb2F0IGYpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9m
bGV4aWJsZUJveCwgbV9mbGV4U2hyaW5rLCBmKTsgfQotICAgIHZvaWQgc2V0RmxleEJhc2lzKExl
bmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9m
bGV4aWJsZUJveCwgbV9mbGV4QmFzaXMsIHN0ZDo6bW92ZShsZW5ndGgpKTsgfQorICAgIHZvaWQg
c2V0RmxleEJhc2lzKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0
YS5hY2Nlc3MoKS0+bV9mbGV4aWJsZUJveCwgbV9mbGV4QmFzaXMsIFdURjo6bW92ZShsZW5ndGgp
KTsgfQogICAgIHZvaWQgc2V0T3JkZXIoaW50IG8pIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVk
RGF0YSwgbV9vcmRlciwgbyk7IH0KICAgICB2b2lkIHNldEFsaWduQ29udGVudChFQWxpZ25Db250
ZW50IHApIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YSwgbV9hbGlnbkNvbnRlbnQsIHAp
OyB9CiAgICAgdm9pZCBzZXRBbGlnbkl0ZW1zKEVBbGlnbkl0ZW1zIGEpIHsgU0VUX1ZBUihyYXJl
Tm9uSW5oZXJpdGVkRGF0YSwgbV9hbGlnbkl0ZW1zLCBhKTsgfQpAQCAtMTQ3NCw3ICsxNDc0LDcg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0R3JpZEl0ZW1Sb3dTdGFydChjb25zdCBHcmlkUG9zaXRp
b24mIHJvd1N0YXJ0UG9zaXRpb24pIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nl
c3MoKS0+bV9ncmlkSXRlbSwgbV9ncmlkUm93U3RhcnQsIHJvd1N0YXJ0UG9zaXRpb24pOyB9CiAg
ICAgdm9pZCBzZXRHcmlkSXRlbVJvd0VuZChjb25zdCBHcmlkUG9zaXRpb24mIHJvd0VuZFBvc2l0
aW9uKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZ3JpZEl0ZW0s
IG1fZ3JpZFJvd0VuZCwgcm93RW5kUG9zaXRpb24pOyB9CiAjZW5kaWYgLyogRU5BQkxFKENTU19H
UklEX0xBWU9VVCkgKi8KLSAgICB2b2lkIHNldE1hcnF1ZWVJbmNyZW1lbnQoTGVuZ3RoIGxlbmd0
aCkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX21hcnF1ZWUsIGlu
Y3JlbWVudCwgc3RkOjptb3ZlKGxlbmd0aCkpOyB9CisgICAgdm9pZCBzZXRNYXJxdWVlSW5jcmVt
ZW50KExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3Mo
KS0+bV9tYXJxdWVlLCBpbmNyZW1lbnQsIFdURjo6bW92ZShsZW5ndGgpKTsgfQogICAgIHZvaWQg
c2V0TWFycXVlZVNwZWVkKGludCBmKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNj
ZXNzKCktPm1fbWFycXVlZSwgc3BlZWQsIGYpOyB9CiAgICAgdm9pZCBzZXRNYXJxdWVlRGlyZWN0
aW9uKEVNYXJxdWVlRGlyZWN0aW9uIGQpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5h
Y2Nlc3MoKS0+bV9tYXJxdWVlLCBkaXJlY3Rpb24sIGQpOyB9CiAgICAgdm9pZCBzZXRNYXJxdWVl
QmVoYXZpb3IoRU1hcnF1ZWVCZWhhdmlvciBiKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERh
dGEuYWNjZXNzKCktPm1fbWFycXVlZSwgYmVoYXZpb3IsIGIpOyB9CkBAIC0xNTIwLDggKzE1MjAs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRSZWdpb25CcmVha0FmdGVyKEVQYWdlQnJlYWsgcCkg
eyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLCBtX3JlZ2lvbkJyZWFrQWZ0ZXIsIHApOyB9
CiAgICAgdm9pZCBpbmhlcml0Q29sdW1uUHJvcGVydGllc0Zyb20oUmVuZGVyU3R5bGUqIHBhcmVu
dCkgeyByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tdWx0aUNvbCA9IHBhcmVudC0+
cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fbXVsdGlDb2w7IH0KICAgICB2b2lkIHNldFRyYW5zZm9y
bShjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zJiBvcHMpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJp
dGVkRGF0YS5hY2Nlc3MoKS0+bV90cmFuc2Zvcm0sIG1fb3BlcmF0aW9ucywgb3BzKTsgfQotICAg
IHZvaWQgc2V0VHJhbnNmb3JtT3JpZ2luWChMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIocmFyZU5v
bkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fdHJhbnNmb3JtLCBtX3gsIHN0ZDo6bW92ZShsZW5n
dGgpKTsgfQotICAgIHZvaWQgc2V0VHJhbnNmb3JtT3JpZ2luWShMZW5ndGggbGVuZ3RoKSB7IFNF
VF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fdHJhbnNmb3JtLCBtX3ksIHN0
ZDo6bW92ZShsZW5ndGgpKTsgfQorICAgIHZvaWQgc2V0VHJhbnNmb3JtT3JpZ2luWChMZW5ndGgg
bGVuZ3RoKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fdHJhbnNm
b3JtLCBtX3gsIFdURjo6bW92ZShsZW5ndGgpKTsgfQorICAgIHZvaWQgc2V0VHJhbnNmb3JtT3Jp
Z2luWShMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNz
KCktPm1fdHJhbnNmb3JtLCBtX3ksIFdURjo6bW92ZShsZW5ndGgpKTsgfQogICAgIHZvaWQgc2V0
VHJhbnNmb3JtT3JpZ2luWihmbG9hdCBmKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEu
YWNjZXNzKCktPm1fdHJhbnNmb3JtLCBtX3osIGYpOyB9CiAgICAgdm9pZCBzZXRTcGVhayhFU3Bl
YWsgcykgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBzcGVhaywgcyk7IH0KICAgICB2b2lk
IHNldFRleHRDb21iaW5lKFRleHRDb21iaW5lIHYpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVk
RGF0YSwgbV90ZXh0Q29tYmluZSwgdik7IH0KQEAgLTE1NzQsOSArMTU3NCw5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFRyYW5zZm9ybVN0eWxlM0QoRVRyYW5zZm9ybVN0eWxlM0QgYikgeyBTRVRf
VkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLCBtX3RyYW5zZm9ybVN0eWxlM0QsIGIpOyB9CiAgICAg
dm9pZCBzZXRCYWNrZmFjZVZpc2liaWxpdHkoRUJhY2tmYWNlVmlzaWJpbGl0eSBiKSB7IFNFVF9W
QVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fYmFja2ZhY2VWaXNpYmlsaXR5LCBiKTsgfQogICAg
IHZvaWQgc2V0UGVyc3BlY3RpdmUoZmxvYXQgcCkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWRE
YXRhLCBtX3BlcnNwZWN0aXZlLCBwKTsgfQotICAgIHZvaWQgc2V0UGVyc3BlY3RpdmVPcmlnaW5Y
KExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YSwgbV9wZXJzcGVj
dGl2ZU9yaWdpblgsIHN0ZDo6bW92ZShsZW5ndGgpKTsgfQotICAgIHZvaWQgc2V0UGVyc3BlY3Rp
dmVPcmlnaW5ZKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YSwg
bV9wZXJzcGVjdGl2ZU9yaWdpblksIHN0ZDo6bW92ZShsZW5ndGgpKTsgfQotICAgIHZvaWQgc2V0
UGFnZVNpemUoTGVuZ3RoU2l6ZSBzaXplKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEs
IG1fcGFnZVNpemUsIHN0ZDo6bW92ZShzaXplKSk7IH0KKyAgICB2b2lkIHNldFBlcnNwZWN0aXZl
T3JpZ2luWChMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1f
cGVyc3BlY3RpdmVPcmlnaW5YLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lkIHNldFBl
cnNwZWN0aXZlT3JpZ2luWShMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRl
ZERhdGEsIG1fcGVyc3BlY3RpdmVPcmlnaW5ZLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2
b2lkIHNldFBhZ2VTaXplKExlbmd0aFNpemUgc2l6ZSkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0
ZWREYXRhLCBtX3BhZ2VTaXplLCBXVEY6Om1vdmUoc2l6ZSkpOyB9CiAgICAgdm9pZCBzZXRQYWdl
U2l6ZVR5cGUoUGFnZVNpemVUeXBlIHQpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YSwg
bV9wYWdlU2l6ZVR5cGUsIHQpOyB9CiAgICAgdm9pZCByZXNldFBhZ2VTaXplVHlwZSgpIHsgU0VU
X1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YSwgbV9wYWdlU2l6ZVR5cGUsIFBBR0VfU0laRV9BVVRP
KTsgfQogCkBAIC0xNjQ5LDcgKzE2NDksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFNoYXBlVmFs
dWUqIGluaXRpYWxTaGFwZU91dHNpZGUoKSB7IHJldHVybiAwOyB9CiAKICAgICBjb25zdCBMZW5n
dGgmIHNoYXBlTWFyZ2luKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1f
c2hhcGVNYXJnaW47IH0KLSAgICB2b2lkIHNldFNoYXBlTWFyZ2luKExlbmd0aCBzaGFwZU1hcmdp
bikgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLCBtX3NoYXBlTWFyZ2luLCBzdGQ6Om1v
dmUoc2hhcGVNYXJnaW4pKTsgfQorICAgIHZvaWQgc2V0U2hhcGVNYXJnaW4oTGVuZ3RoIHNoYXBl
TWFyZ2luKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fc2hhcGVNYXJnaW4sIFdU
Rjo6bW92ZShzaGFwZU1hcmdpbikpOyB9CiAgICAgc3RhdGljIExlbmd0aCBpbml0aWFsU2hhcGVN
YXJnaW4oKSB7IHJldHVybiBMZW5ndGgoMCwgRml4ZWQpOyB9CiAKICAgICBmbG9hdCBzaGFwZUlt
YWdlVGhyZXNob2xkKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fc2hh
cGVJbWFnZVRocmVzaG9sZDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1NWR1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U1ZHUmVuZGVyU3R5bGUuaAppbmRleCBlNzYxMjRkLi5iNDBiZDI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGUuaApAQCAtMjY0LDcgKzI2NCw3
IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1pc2MuYWNjZXNzKCktPmJhc2VsaW5lU2hpZnRWYWx1
ZSA9IG9iajsKICAgICB9CiAKLSAgICB2b2lkIHNldFNoYWRvdyhzdGQ6OnVuaXF1ZV9wdHI8U2hh
ZG93RGF0YT4gb2JqKSB7IHNoYWRvd1NWRy5hY2Nlc3MoKS0+c2hhZG93ID0gc3RkOjptb3ZlKG9i
aik7IH0KKyAgICB2b2lkIHNldFNoYWRvdyhzdGQ6OnVuaXF1ZV9wdHI8U2hhZG93RGF0YT4gb2Jq
KSB7IHNoYWRvd1NWRy5hY2Nlc3MoKS0+c2hhZG93ID0gV1RGOjptb3ZlKG9iaik7IH0KIAogICAg
IC8vIFNldHRlcnMgZm9yIG5vbi1pbmhlcml0ZWQgcmVzb3VyY2VzCiAgICAgdm9pZCBzZXRDbGlw
cGVyUmVzb3VyY2UoY29uc3QgU3RyaW5nJiBvYmopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU2hhZG93RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1NoYWRvd0RhdGEuaAppbmRleCBmODJjNzY2Li44YTFjYWMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU2hhZG93RGF0YS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TaGFkb3dEYXRhLmgKQEAgLTgyLDcgKzgyLDcgQEAgcHVi
bGljOgogICAgIGJvb2wgaXNXZWJraXRCb3hTaGFkb3coKSBjb25zdCB7IHJldHVybiBtX2lzV2Vi
a2l0Qm94U2hhZG93OyB9CiAKICAgICBjb25zdCBTaGFkb3dEYXRhKiBuZXh0KCkgY29uc3QgeyBy
ZXR1cm4gbV9uZXh0LmdldCgpOyB9Ci0gICAgdm9pZCBzZXROZXh0KHN0ZDo6dW5pcXVlX3B0cjxT
aGFkb3dEYXRhPiBzaGFkb3cpIHsgbV9uZXh0ID0gc3RkOjptb3ZlKHNoYWRvdyk7IH0KKyAgICB2
b2lkIHNldE5leHQoc3RkOjp1bmlxdWVfcHRyPFNoYWRvd0RhdGE+IHNoYWRvdykgeyBtX25leHQg
PSBXVEY6Om1vdmUoc2hhZG93KTsgfQogCiAgICAgdm9pZCBhZGp1c3RSZWN0Rm9yU2hhZG93KExh
eW91dFJlY3QmLCBpbnQgYWRkaXRpb25hbE91dGxpbmVTaXplID0gMCkgY29uc3Q7CiAgICAgdm9p
ZCBhZGp1c3RSZWN0Rm9yU2hhZG93KEZsb2F0UmVjdCYsIGludCBhZGRpdGlvbmFsT3V0bGluZVNp
emUgPSAwKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZUdlbmVyYXRlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZUdlbmVyYXRlZEltYWdlLmNwcAppbmRleCAwZjdmNzRmLi5hNDc1MWQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1h
Z2UuY3BwCkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBTdHls
ZUdlbmVyYXRlZEltYWdlOjpTdHlsZUdlbmVyYXRlZEltYWdlKFBhc3NSZWY8Q1NTSW1hZ2VHZW5l
cmF0b3JWYWx1ZT4gdmFsdWUpCi0gICAgOiBtX2ltYWdlR2VuZXJhdG9yVmFsdWUoc3RkOjptb3Zl
KHZhbHVlKSkKKyAgICA6IG1faW1hZ2VHZW5lcmF0b3JWYWx1ZShXVEY6Om1vdmUodmFsdWUpKQog
ICAgICwgbV9maXhlZFNpemUobV9pbWFnZUdlbmVyYXRvclZhbHVlLT5pc0ZpeGVkU2l6ZSgpKQog
ewogICAgIG1faXNHZW5lcmF0ZWRJbWFnZSA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuaAppbmRleCA0ZGJlMWVlLi5i
MWNhMjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVH
ZW5lcmF0ZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZUdlbmVyYXRlZEltYWdlLmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgU3R5bGVHZW5lcmF0ZWRJ
bWFnZSBmaW5hbCA6IHB1YmxpYyBTdHlsZUltYWdlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTdHlsZUdlbmVyYXRlZEltYWdlPiBjcmVhdGUoUGFzc1JlZjxDU1NJbWFnZUdlbmVy
YXRvclZhbHVlPiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3R5
bGVHZW5lcmF0ZWRJbWFnZShzdGQ6Om1vdmUodmFsdWUpKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgU3R5bGVHZW5lcmF0ZWRJbWFnZShXVEY6Om1vdmUodmFsdWUpKSk7CiAgICAgfQog
CiAgICAgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSYgaW1hZ2VWYWx1ZSgpIHsgcmV0dXJuIG1faW1h
Z2VHZW5lcmF0b3JWYWx1ZS5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmVmbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmVmbGVjdGlvbi5oCmluZGV4IDQ1YjkzZTIuLjMxY2RiYjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJlZmxlY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSZWZsZWN0aW9uLmgKQEAgLTUw
LDcgKzUwLDcgQEAgcHVibGljOgogICAgIGNvbnN0IE5pbmVQaWVjZUltYWdlJiBtYXNrKCkgY29u
c3QgeyByZXR1cm4gbV9tYXNrOyB9CiAKICAgICB2b2lkIHNldERpcmVjdGlvbihDU1NSZWZsZWN0
aW9uRGlyZWN0aW9uIGRpcikgeyBtX2RpcmVjdGlvbiA9IGRpcjsgfQotICAgIHZvaWQgc2V0T2Zm
c2V0KExlbmd0aCBvZmZzZXQpIHsgbV9vZmZzZXQgPSBzdGQ6Om1vdmUob2Zmc2V0KTsgfQorICAg
IHZvaWQgc2V0T2Zmc2V0KExlbmd0aCBvZmZzZXQpIHsgbV9vZmZzZXQgPSBXVEY6Om1vdmUob2Zm
c2V0KTsgfQogICAgIHZvaWQgc2V0TWFzayhjb25zdCBOaW5lUGllY2VJbWFnZSYgaW1hZ2UpIHsg
bV9tYXNrID0gaW1hZ2U7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5jcHAKaW5kZXggOGViNjM2Zi4uZGNkZjhlNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5jcHAKQEAgLTI5
LDcgKzI5LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyU1ZHQmxvY2s6OlJlbmRl
clNWR0Jsb2NrKFNWR0dyYXBoaWNzRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHls
ZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxl
KSkKKyAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogewog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Nv
bnRhaW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRh
aW5lci5jcHAKaW5kZXggODQ3ZjQ1MS4uOWRiY2E1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcApAQCAtMzgsNyArMzgsNyBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJTVkdDb250YWluZXI6OlJlbmRlclNWR0Nv
bnRhaW5lcihTVkdFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkK
LSAgICA6IFJlbmRlclNWR01vZGVsT2JqZWN0KGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisg
ICAgOiBSZW5kZXJTVkdNb2RlbE9iamVjdChlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogICAg
ICwgbV9vYmplY3RCb3VuZGluZ0JveFZhbGlkKGZhbHNlKQogICAgICwgbV9uZWVkc0JvdW5kYXJp
ZXNVcGRhdGUodHJ1ZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHRWxsaXBzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR0VsbGlwc2UuY3BwCmluZGV4IDI0ZDE1YWYuLjc4NzgwODkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRWxsaXBzZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdFbGxpcHNlLmNwcApAQCAtMzQsNyAr
MzQsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJTVkdFbGxpcHNlOjpSZW5kZXJT
VkdFbGxpcHNlKFNWR0dyYXBoaWNzRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHls
ZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJTVkdTaGFwZShlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUp
KQorICAgIDogUmVuZGVyU1ZHU2hhcGUoZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKICAgICAs
IG1fdXNlUGF0aEZhbGxiYWNrKGZhbHNlKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHAKaW5kZXggYjVkNzRk
Ni4uZTliNjM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdGb3JlaWduT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCkBAIC0zOCw3ICszOCw3IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6OlJlbmRlclNWR0ZvcmVpZ25PYmpl
Y3QoU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+
IHN0eWxlKQotICAgIDogUmVuZGVyU1ZHQmxvY2soZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkK
KyAgICA6IFJlbmRlclNWR0Jsb2NrKGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiAgICAgLCBt
X25lZWRzVHJhbnNmb3JtVXBkYXRlKHRydWUpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0dyYWRpZW50U3RvcC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0dyYWRpZW50U3RvcC5jcHAKaW5kZXggMTU2Zjgz
Mi4uM2ExOTJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdHcmFkaWVudFN0b3AuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHR3JhZGllbnRTdG9wLmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiB1c2luZyBuYW1lc3BhY2UgU1ZHTmFtZXM7CiAKIFJlbmRlclNWR0dyYWRpZW50U3Rv
cDo6UmVuZGVyU1ZHR3JhZGllbnRTdG9wKFNWR1N0b3BFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVm
PFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlckVsZW1lbnQoZWxlbWVudCwgc3RkOjpt
b3ZlKHN0eWxlKSwgMCkKKyAgICA6IFJlbmRlckVsZW1lbnQoZWxlbWVudCwgV1RGOjptb3ZlKHN0
eWxlKSwgMCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdIaWRkZW5Db250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdIaWRkZW5Db250YWluZXIuY3BwCmluZGV4IDIyYmQ3ZTEuLjZmNDc2MjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSGlkZGVu
Q29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0hpZGRlbkNvbnRhaW5lci5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyOjpSZW5kZXJTVkdIaWRkZW5Db250YWluZXIo
U1ZHRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBS
ZW5kZXJTVkdDb250YWluZXIoZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRl
clNWR0NvbnRhaW5lcihlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuY3BwCmluZGV4IDdkZDRi
NmEuLjk5MTI2NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHSW1hZ2UuY3BwCkBAIC00NSw3ICs0NSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJl
bmRlclNWR0ltYWdlOjpSZW5kZXJTVkdJbWFnZShTVkdJbWFnZUVsZW1lbnQmIGVsZW1lbnQsIFBh
c3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyU1ZHTW9kZWxPYmplY3QoZWxl
bWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlclNWR01vZGVsT2JqZWN0KGVsZW1l
bnQsIFdURjo6bW92ZShzdHlsZSkpCiAgICAgLCBtX25lZWRzQm91bmRhcmllc1VwZGF0ZSh0cnVl
KQogICAgICwgbV9uZWVkc1RyYW5zZm9ybVVwZGF0ZSh0cnVlKQogICAgICwgbV9pbWFnZVJlc291
cmNlKHN0ZDo6bWFrZV91bmlxdWU8UmVuZGVySW1hZ2VSZXNvdXJjZT4oKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcAppbmRleCBkOGZkNDA3
Li5kMDNjZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR0lubGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdJbmxpbmUuY3BwCkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
CiBSZW5kZXJTVkdJbmxpbmU6OlJlbmRlclNWR0lubGluZShTVkdHcmFwaGljc0VsZW1lbnQmIGVs
ZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVySW5saW5lKGVs
ZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJJbmxpbmUoZWxlbWVudCwgV1RG
Ojptb3ZlKHN0eWxlKSkKIHsKICAgICBzZXRBbHdheXNDcmVhdGVMaW5lQm94ZXMoKTsKIH0KQEAg
LTQwLDcgKzQwLDcgQEAgc3RkOjp1bmlxdWVfcHRyPElubGluZUZsb3dCb3g+IFJlbmRlclNWR0lu
bGluZTo6Y3JlYXRlSW5saW5lRmxvd0JveCgpCiB7CiAgICAgYXV0byBib3ggPSBzdGQ6Om1ha2Vf
dW5pcXVlPFNWR0lubGluZUZsb3dCb3g+KCp0aGlzKTsKICAgICBib3gtPnNldEhhc1ZpcnR1YWxM
b2dpY2FsSGVpZ2h0KCk7Ci0gICAgcmV0dXJuIHN0ZDo6bW92ZShib3gpOworICAgIHJldHVybiBX
VEY6Om1vdmUoYm94KTsKIH0KIAogRmxvYXRSZWN0IFJlbmRlclNWR0lubGluZTo6b2JqZWN0Qm91
bmRpbmdCb3goKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHSW5saW5lVGV4dC5jcHAKaW5kZXggNmNmNjRkZi4uODU1MzBiNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuY3Bw
CkBAIC0xMTMsNyArMTEzLDcgQEAgc3RkOjp1bmlxdWVfcHRyPElubGluZVRleHRCb3g+IFJlbmRl
clNWR0lubGluZVRleHQ6OmNyZWF0ZVRleHRCb3goKQogewogICAgIGF1dG8gYm94ID0gc3RkOjpt
YWtlX3VuaXF1ZTxTVkdJbmxpbmVUZXh0Qm94PigqdGhpcyk7CiAgICAgYm94LT5zZXRIYXNWaXJ0
dWFsTG9naWNhbEhlaWdodCgpOwotICAgIHJldHVybiBzdGQ6Om1vdmUoYm94KTsKKyAgICByZXR1
cm4gV1RGOjptb3ZlKGJveCk7CiB9CiAKIExheW91dFJlY3QgUmVuZGVyU1ZHSW5saW5lVGV4dDo6
bG9jYWxDYXJldFJlY3QoSW5saW5lQm94KiBib3gsIGludCBjYXJldE9mZnNldCwgTGF5b3V0VW5p
dCopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01v
ZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9k
ZWxPYmplY3QuY3BwCmluZGV4IGM5ZDA1MjYuLjBjYzRlMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCkBAIC00MCw3
ICs0MCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclNWR01vZGVsT2JqZWN0OjpS
ZW5kZXJTVkdNb2RlbE9iamVjdChTVkdFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0
eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlckVsZW1lbnQoZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxl
KSwgMCkKKyAgICA6IFJlbmRlckVsZW1lbnQoZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSwgMCkK
ICAgICAsIG1faGFzU1ZHU2hhZG93KGZhbHNlKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdQYXRoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUGF0aC5jcHAKaW5kZXggM2Q3OWFlZC4uMGUxZjFhMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdQYXRoLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1BhdGguY3BwCkBAIC0z
NCw3ICszNCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclNWR1BhdGg6OlJlbmRl
clNWR1BhdGgoU1ZHR3JhcGhpY3NFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxl
PiBzdHlsZSkKLSAgICA6IFJlbmRlclNWR1NoYXBlKGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkp
CisgICAgOiBSZW5kZXJTVkdTaGFwZShlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogewogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1JlY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZWN0LmNwcAppbmRl
eCA0YTZmOGNkLi44ZTU3NWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1JlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVjdC5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogUmVuZGVyU1ZHUmVjdDo6UmVuZGVyU1ZHUmVjdChTVkdSZWN0RWxlbWVudCYgZWxlbWVudCwg
UGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJTVkdTaGFwZShlbGVtZW50
LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyU1ZHU2hhcGUoZWxlbWVudCwgV1RGOjpt
b3ZlKHN0eWxlKSkKICAgICAsIG1fdXNlUGF0aEZhbGxiYWNrKGZhbHNlKQogewogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBw
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNs
aXBwZXIuY3BwCmluZGV4IDUzZjY0Y2IuLmZiMjAzZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5jcHAKQEAg
LTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogUmVuZGVyU1ZHUmVzb3VyY2VUeXBl
IFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcjo6c19yZXNvdXJjZVR5cGUgPSBDbGlwcGVyUmVzb3Vy
Y2VUeXBlOwogCiBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXI6OlJlbmRlclNWR1Jlc291cmNlQ2xp
cHBlcihTVkdDbGlwUGF0aEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0
eWxlKQotICAgIDogUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIoZWxlbWVudCwgc3RkOjptb3Zl
KHN0eWxlKSkKKyAgICA6IFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyKGVsZW1lbnQsIFdURjo6
bW92ZShzdHlsZSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5jcHAKaW5kZXggMDM2OWM3Mi4u
NWIyMzNjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdSZXNvdXJjZUNvbnRhaW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgc3RhdGlj
IGlubGluZSBTVkdEb2N1bWVudEV4dGVuc2lvbnMmIHN2Z0V4dGVuc2lvbnNGcm9tRWxlbWVudChT
VkdFbGVtZW50JiBlbGVtZW4KIH0KIAogUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXI6OlJlbmRl
clNWR1Jlc291cmNlQ29udGFpbmVyKFNWR0VsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVy
U3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyKGVsZW1lbnQsIHN0
ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIoZWxlbWVudCwg
V1RGOjptb3ZlKHN0eWxlKSkKICAgICAsIG1faWQoZWxlbWVudC5nZXRJZEF0dHJpYnV0ZSgpKQog
ICAgICwgbV9yZWdpc3RlcmVkKGZhbHNlKQogICAgICwgbV9pc0ludmFsaWRhdGluZyhmYWxzZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3Vy
Y2VGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNv
dXJjZUZpbHRlci5jcHAKaW5kZXggODdjOGVlNS4uY2RlMWZjNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAK
QEAgLTQ5LDcgKzQ5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogUmVuZGVyU1ZHUmVzb3VyY2VU
eXBlIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjpzX3Jlc291cmNlVHlwZSA9IEZpbHRlclJlc291
cmNlVHlwZTsKIAogUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OlJlbmRlclNWR1Jlc291cmNlRmls
dGVyKFNWR0ZpbHRlckVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxl
KQotICAgIDogUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIoZWxlbWVudCwgc3RkOjptb3ZlKHN0
eWxlKSkKKyAgICA6IFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyKGVsZW1lbnQsIFdURjo6bW92
ZShzdHlsZSkpCiB7CiB9CiAKQEAgLTE5Miw3ICsxOTIsNyBAQCBib29sIFJlbmRlclNWR1Jlc291
cmNlRmlsdGVyOjphcHBseVJlc291cmNlKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBjb25zdCBS
ZW5kZQogICAgIGlmIChmaWx0ZXJEYXRhLT5kcmF3aW5nUmVnaW9uLmlzRW1wdHkoKSkgewogICAg
ICAgICBBU1NFUlQoIW1fZmlsdGVyLmNvbnRhaW5zKCZyZW5kZXJlcikpOwogICAgICAgICBmaWx0
ZXJEYXRhLT5zYXZlZENvbnRleHQgPSBjb250ZXh0OwotICAgICAgICBtX2ZpbHRlci5zZXQoJnJl
bmRlcmVyLCBzdGQ6Om1vdmUoZmlsdGVyRGF0YSkpOworICAgICAgICBtX2ZpbHRlci5zZXQoJnJl
bmRlcmVyLCBXVEY6Om1vdmUoZmlsdGVyRGF0YSkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCkBAIC0yMDYsNyArMjA2LDcgQEAgYm9vbCBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlcjo6
YXBwbHlSZXNvdXJjZShSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgY29uc3QgUmVuZGUKICAgICBp
ZiAoIVNWR1JlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZUltYWdlQnVmZmVyKGZpbHRlckRhdGEtPmRy
YXdpbmdSZWdpb24sIGVmZmVjdGl2ZVRyYW5zZm9ybSwgc291cmNlR3JhcGhpYywgQ29sb3JTcGFj
ZUxpbmVhclJHQiwgcmVuZGVyaW5nTW9kZSkpIHsKICAgICAgICAgQVNTRVJUKCFtX2ZpbHRlci5j
b250YWlucygmcmVuZGVyZXIpKTsKICAgICAgICAgZmlsdGVyRGF0YS0+c2F2ZWRDb250ZXh0ID0g
Y29udGV4dDsKLSAgICAgICAgbV9maWx0ZXIuc2V0KCZyZW5kZXJlciwgc3RkOjptb3ZlKGZpbHRl
ckRhdGEpKTsKKyAgICAgICAgbV9maWx0ZXIuc2V0KCZyZW5kZXJlciwgV1RGOjptb3ZlKGZpbHRl
ckRhdGEpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICAKQEAgLTIxNiwxMyAr
MjE2LDEzIEBAIGJvb2wgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OmFwcGx5UmVzb3VyY2UoUmVu
ZGVyRWxlbWVudCYgcmVuZGVyZXIsIGNvbnN0IFJlbmRlCiAgICAgR3JhcGhpY3NDb250ZXh0KiBz
b3VyY2VHcmFwaGljQ29udGV4dCA9IHNvdXJjZUdyYXBoaWMtPmNvbnRleHQoKTsKICAgICBBU1NF
UlQoc291cmNlR3JhcGhpY0NvbnRleHQpOwogICAKLSAgICBmaWx0ZXJEYXRhLT5zb3VyY2VHcmFw
aGljQnVmZmVyID0gc3RkOjptb3ZlKHNvdXJjZUdyYXBoaWMpOworICAgIGZpbHRlckRhdGEtPnNv
dXJjZUdyYXBoaWNCdWZmZXIgPSBXVEY6Om1vdmUoc291cmNlR3JhcGhpYyk7CiAgICAgZmlsdGVy
RGF0YS0+c2F2ZWRDb250ZXh0ID0gY29udGV4dDsKIAogICAgIGNvbnRleHQgPSBzb3VyY2VHcmFw
aGljQ29udGV4dDsKIAogICAgIEFTU0VSVCghbV9maWx0ZXIuY29udGFpbnMoJnJlbmRlcmVyKSk7
Ci0gICAgbV9maWx0ZXIuc2V0KCZyZW5kZXJlciwgc3RkOjptb3ZlKGZpbHRlckRhdGEpKTsKKyAg
ICBtX2ZpbHRlci5zZXQoJnJlbmRlcmVyLCBXVEY6Om1vdmUoZmlsdGVyRGF0YSkpOwogCiAgICAg
cmV0dXJuIHRydWU7CiB9CkBAIC0yNzAsNyArMjcwLDcgQEAgdm9pZCBSZW5kZXJTVkdSZXNvdXJj
ZUZpbHRlcjo6cG9zdEFwcGx5UmVzb3VyY2UoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsIEdyYXBo
aWMKICAgICAgICAgLy8gaW5pdGlhbCBmaWx0ZXJpbmcgcHJvY2Vzcy4gV2UganVzdCB0YWtlIHRo
ZSBzdG9yZWQgZmlsdGVyIHJlc3VsdCBvbiBhCiAgICAgICAgIC8vIHNlY29uZCBkcmF3aW5nLgog
ICAgICAgICBpZiAoZmlsdGVyRGF0YS0+c3RhdGUgIT0gRmlsdGVyRGF0YTo6QnVpbHQpCi0gICAg
ICAgICAgICBmaWx0ZXJEYXRhLT5maWx0ZXItPnNldFNvdXJjZUltYWdlKHN0ZDo6bW92ZShmaWx0
ZXJEYXRhLT5zb3VyY2VHcmFwaGljQnVmZmVyKSk7CisgICAgICAgICAgICBmaWx0ZXJEYXRhLT5m
aWx0ZXItPnNldFNvdXJjZUltYWdlKFdURjo6bW92ZShmaWx0ZXJEYXRhLT5zb3VyY2VHcmFwaGlj
QnVmZmVyKSk7CiAKICAgICAgICAgLy8gQWx3YXlzIHRydWUgaWYgZmlsdGVyRGF0YSBpcyBqdXN0
IGJ1aWx0IChmaWx0ZXJEYXRhLT5zdGF0ZSA9PSBGaWx0ZXJEYXRhOjpCdWlsdCkuCiAgICAgICAg
IGlmICghbGFzdEVmZmVjdC0+aGFzUmVzdWx0KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlclByaW1p
dGl2ZS5jcHAKaW5kZXggZTExYTRjYi4uZWNkY2I5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlclByaW1pdGl2ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlclBy
aW1pdGl2ZS5jcHAKQEAgLTM3LDcgKzM3LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVu
ZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmU6OlJlbmRlclNWR1Jlc291cmNlRmlsdGVyUHJp
bWl0aXZlKFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyYgZmlsdGVyUHJpbWl0
aXZlRWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJTVkdI
aWRkZW5Db250YWluZXIoZmlsdGVyUHJpbWl0aXZlRWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkK
KyAgICA6IFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lcihmaWx0ZXJQcmltaXRpdmVFbGVtZW50LCBX
VEY6Om1vdmUoc3R5bGUpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlR3JhZGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUdyYWRpZW50LmNwcAppbmRleCA2MWUxNzVh
Li5kY2IzYzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlR3JhZGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVzb3VyY2VHcmFkaWVudC5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyU1ZHUmVzb3VyY2VHcmFkaWVudDo6UmVuZGVyU1ZHUmVz
b3VyY2VHcmFkaWVudChTVkdHcmFkaWVudEVsZW1lbnQmIG5vZGUsIFBhc3NSZWY8UmVuZGVyU3R5
bGU+IHN0eWxlKQotICAgIDogUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIobm9kZSwgc3RkOjpt
b3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyKG5vZGUsIFdURjo6
bW92ZShzdHlsZSkpCiAgICAgLCBtX3Nob3VsZENvbGxlY3RHcmFkaWVudEF0dHJpYnV0ZXModHJ1
ZSkKICNpZiBVU0UoQ0cpCiAgICAgLCBtX3NhdmVkQ29udGV4dCgwKQpAQCAtNzEsNyArNzEsNyBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgY3JlYXRlTWFza0FuZFN3YXBDb250ZXh0Rm9yVGV4dEdyYWRp
ZW50KEdyYXBoaWNzQ29udGV4dComIGNvbgogICAgIEFTU0VSVChtYXNrSW1hZ2UpOwogICAgIHNh
dmVkQ29udGV4dCA9IGNvbnRleHQ7CiAgICAgY29udGV4dCA9IG1hc2tJbWFnZUNvbnRleHQ7Ci0g
ICAgaW1hZ2VCdWZmZXIgPSBzdGQ6Om1vdmUobWFza0ltYWdlKTsKKyAgICBpbWFnZUJ1ZmZlciA9
IFdURjo6bW92ZShtYXNrSW1hZ2UpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTGluZWFyR3Jh
ZGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJj
ZUxpbmVhckdyYWRpZW50LmNwcAppbmRleCA4MmU4ZDM5Li5mZGZjOTY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGll
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3Vy
Y2VMaW5lYXJHcmFkaWVudC5jcHAKQEAgLTI3LDcgKzI3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogUmVuZGVyU1ZHUmVzb3VyY2VUeXBlIFJlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnQ6
OnNfcmVzb3VyY2VUeXBlID0gTGluZWFyR3JhZGllbnRSZXNvdXJjZVR5cGU7CiAKIFJlbmRlclNW
R1Jlc291cmNlTGluZWFyR3JhZGllbnQ6OlJlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnQo
U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBz
dHlsZSkKLSAgICA6IFJlbmRlclNWR1Jlc291cmNlR3JhZGllbnQoZWxlbWVudCwgc3RkOjptb3Zl
KHN0eWxlKSkKKyAgICA6IFJlbmRlclNWR1Jlc291cmNlR3JhZGllbnQoZWxlbWVudCwgV1RGOjpt
b3ZlKHN0eWxlKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFya2VyLmNwcAppbmRleCAxZGI2NDA2Li5hMjgyMThk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291
cmNlTWFya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jlc291cmNlTWFya2VyLmNwcApAQCAtMzEsNyArMzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBSZW5kZXJTVkdSZXNvdXJjZVR5cGUgUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXI6OnNfcmVzb3Vy
Y2VUeXBlID0gTWFya2VyUmVzb3VyY2VUeXBlOwogCiBSZW5kZXJTVkdSZXNvdXJjZU1hcmtlcjo6
UmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXIoU1ZHTWFya2VyRWxlbWVudCYgZWxlbWVudCwgUGFzc1Jl
ZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcihl
bGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyU1ZHUmVzb3VyY2VDb250YWlu
ZXIoZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcAppbmRl
eCBhMTQ2NWJjLi43MThhMDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcApAQCAtMzIsNyArMzIsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBSZW5kZXJTVkdSZXNvdXJjZVR5cGUgUmVuZGVyU1ZHUmVzb3Vy
Y2VNYXNrZXI6OnNfcmVzb3VyY2VUeXBlID0gTWFza2VyUmVzb3VyY2VUeXBlOwogCiBSZW5kZXJT
VkdSZXNvdXJjZU1hc2tlcjo6UmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIoU1ZHTWFza0VsZW1lbnQm
IGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyU1ZHUmVz
b3VyY2VDb250YWluZXIoZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlclNW
R1Jlc291cmNlQ29udGFpbmVyKGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiB7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQ
YXR0ZXJuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3Vy
Y2VQYXR0ZXJuLmNwcAppbmRleCBiZmFlN2YyLi44OTNlMzllIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUGF0dGVybi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4uY3Bw
CkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFJlbmRlclNWR1Jlc291cmNl
VHlwZSBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm46OnNfcmVzb3VyY2VUeXBlID0gUGF0dGVyblJl
c291cmNlVHlwZTsKIAogUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuOjpSZW5kZXJTVkdSZXNvdXJj
ZVBhdHRlcm4oU1ZHUGF0dGVybkVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+
IHN0eWxlKQotICAgIDogUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIoZWxlbWVudCwgc3RkOjpt
b3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyKGVsZW1lbnQsIFdU
Rjo6bW92ZShzdHlsZSkpCiAgICAgLCBtX3Nob3VsZENvbGxlY3RQYXR0ZXJuQXR0cmlidXRlcyh0
cnVlKQogewogfQpAQCAtMTI5LDcgKzEyOSw3IEBAIFBhdHRlcm5EYXRhKiBSZW5kZXJTVkdSZXNv
dXJjZVBhdHRlcm46OmJ1aWxkUGF0dGVybihSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgdW5zCiAg
ICAgLy8gVmFyaW91cyBjYWxscyBhYm92ZSBtYXkgdHJpZ2dlciBpbnZhbGlkYXRpb25zIGluIHNv
bWUgZnJpbmdlIGNhc2VzIChJbWFnZUJ1ZmZlciBhbGxvY2F0aW9uCiAgICAgLy8gZmFpbHVyZXMg
aW4gdGhlIFNWRyBpbWFnZSBjYWNoZSBmb3IgZXhhbXBsZSkuIFRvIGF2b2lkIGhhdmluZyBvdXIg
UGF0dGVybkRhdGEgZGVsZXRlZCBieQogICAgIC8vIHJlbW92ZUFsbENsaWVudHNGcm9tQ2FjaGUo
KSwgd2Ugb25seSBtYWtlIGl0IHZpc2libGUgaW4gdGhlIGNhY2hlIGF0IHRoZSB2ZXJ5IGVuZC4K
LSAgICByZXR1cm4gbV9wYXR0ZXJuTWFwLnNldCgmcmVuZGVyZXIsIHN0ZDo6bW92ZShwYXR0ZXJu
RGF0YSkpLml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKKyAgICByZXR1cm4gbV9wYXR0ZXJuTWFwLnNl
dCgmcmVuZGVyZXIsIFdURjo6bW92ZShwYXR0ZXJuRGF0YSkpLml0ZXJhdG9yLT52YWx1ZS5nZXQo
KTsKIH0KIAogYm9vbCBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm46OmFwcGx5UmVzb3VyY2UoUmVu
ZGVyRWxlbWVudCYgcmVuZGVyZXIsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgR3JhcGhpY3ND
b250ZXh0KiYgY29udGV4dCwgdW5zaWduZWQgc2hvcnQgcmVzb3VyY2VNb2RlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdy
YWRpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3Vy
Y2VSYWRpYWxHcmFkaWVudC5jcHAKaW5kZXggYmQwMzE0Zi4uNmRiMDdjNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdyYWRp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291
cmNlUmFkaWFsR3JhZGllbnQuY3BwCkBAIC0yNyw3ICsyNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIFJlbmRlclNWR1Jlc291cmNlVHlwZSBSZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdyYWRpZW50
OjpzX3Jlc291cmNlVHlwZSA9IFJhZGlhbEdyYWRpZW50UmVzb3VyY2VUeXBlOwogCiBSZW5kZXJT
VkdSZXNvdXJjZVJhZGlhbEdyYWRpZW50OjpSZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdyYWRpZW50
KFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4g
c3R5bGUpCi0gICAgOiBSZW5kZXJTVkdSZXNvdXJjZUdyYWRpZW50KGVsZW1lbnQsIHN0ZDo6bW92
ZShzdHlsZSkpCisgICAgOiBSZW5kZXJTVkdSZXNvdXJjZUdyYWRpZW50KGVsZW1lbnQsIFdURjo6
bW92ZShzdHlsZSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jvb3QuY3BwCmluZGV4IDAzZWU4OWEuLjAyOGIwNzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcApAQCAtNTQsNyArNTQsNyBAQAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJTVkdSb290OjpSZW5kZXJTVkdSb290KFNWR1NW
R0VsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVu
ZGVyUmVwbGFjZWQoZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlclJlcGxh
Y2VkKGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiAgICAgLCBtX29iamVjdEJvdW5kaW5nQm94
VmFsaWQoZmFsc2UpCiAgICAgLCBtX2lzTGF5b3V0U2l6ZUNoYW5nZWQoZmFsc2UpCiAgICAgLCBt
X25lZWRzQm91bmRhcmllc09yVHJhbnNmb3JtVXBkYXRlKHRydWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuY3BwCmluZGV4IDlmNThmNjMuLjkyOWQw
NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hh
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUu
Y3BwCkBAIC02NCw3ICs2NCw3IEBAIHByaXZhdGU6CiB9OwogCiBSZW5kZXJTVkdTaGFwZTo6UmVu
ZGVyU1ZHU2hhcGUoU1ZHR3JhcGhpY3NFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0
eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlclNWR01vZGVsT2JqZWN0KGVsZW1lbnQsIHN0ZDo6bW92
ZShzdHlsZSkpCisgICAgOiBSZW5kZXJTVkdNb2RlbE9iamVjdChlbGVtZW50LCBXVEY6Om1vdmUo
c3R5bGUpKQogICAgICwgbV9uZWVkc0JvdW5kYXJpZXNVcGRhdGUoZmFsc2UpIC8vIERlZmF1bHQg
aXMgZmFsc2UsIHRoZSBjYWNoZWQgcmVjdHMgYXJlIGVtcHR5IGZyb20gdGhlIGJlZ2lubmluZy4K
ICAgICAsIG1fbmVlZHNTaGFwZVVwZGF0ZSh0cnVlKSAvLyBEZWZhdWx0IGlzIHRydWUsIHNvIHdl
IGdyYWIgYSBQYXRoIG9iamVjdCBvbmNlIGZyb20gU1ZHR3JhcGhpY3NFbGVtZW50LgogICAgICwg
bV9uZWVkc1RyYW5zZm9ybVVwZGF0ZSh0cnVlKSAvLyBEZWZhdWx0IGlzIHRydWUsIHNvIHdlIGdy
YWIgYSBBZmZpbmVUcmFuc2Zvcm0gb2JqZWN0IG9uY2UgZnJvbSBTVkdHcmFwaGljc0VsZW1lbnQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RTcGFu
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RTcGFuLmgKaW5kZXgg
MWY0YWRkYS4uZTk3MmNiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdUU3Bhbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHVFNwYW4uaApAQCAtMjksNyArMjksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBSZW5kZXJTVkdUU3BhbiBmaW5hbCA6IHB1YmxpYyBSZW5kZXJTVkdJbmxpbmUgewogcHVibGlj
OgogICAgIGV4cGxpY2l0IFJlbmRlclNWR1RTcGFuKFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQm
IGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgICAgICA6IFJlbmRlclNW
R0lubGluZShlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgICAgICA6IFJlbmRlclNWR0lu
bGluZShlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogICAgIHsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwCmluZGV4IGVkOTkwMzcu
LmQzOGVlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdU
ZXh0LmNwcApAQCAtNTMsNyArNTMsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJT
VkdUZXh0OjpSZW5kZXJTVkdUZXh0KFNWR1RleHRFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJl
bmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlclNWR0Jsb2NrKGVsZW1lbnQsIHN0ZDo6bW92
ZShzdHlsZSkpCisgICAgOiBSZW5kZXJTVkdCbG9jayhlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUp
KQogICAgICwgbV9uZWVkc1Jlb3JkZXJpbmcoZmFsc2UpCiAgICAgLCBtX25lZWRzUG9zaXRpb25p
bmdWYWx1ZXNVcGRhdGUoZmFsc2UpCiAgICAgLCBtX25lZWRzVHJhbnNmb3JtVXBkYXRlKHRydWUp
CkBAIC00MzYsNyArNDM2LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFJvb3RJbmxpbmVCb3g+IFJlbmRl
clNWR1RleHQ6OmNyZWF0ZVJvb3RJbmxpbmVCb3goKQogewogICAgIGF1dG8gYm94ID0gc3RkOjpt
YWtlX3VuaXF1ZTxTVkdSb290SW5saW5lQm94PigqdGhpcyk7CiAgICAgYm94LT5zZXRIYXNWaXJ0
dWFsTG9naWNhbEhlaWdodCgpOwotICAgIHJldHVybiBzdGQ6Om1vdmUoYm94KTsKKyAgICByZXR1
cm4gV1RGOjptb3ZlKGJveCk7CiB9CiAKIGJvb2wgUmVuZGVyU1ZHVGV4dDo6bm9kZUF0RmxvYXRQ
b2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0
LCBjb25zdCBGbG9hdFBvaW50JiBwb2ludEluUGFyZW50LCBIaXRUZXN0QWN0aW9uIGhpdFRlc3RB
Y3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1RleHRQYXRoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4
dFBhdGguY3BwCmluZGV4IDc5ZjdkMzYuLjAyZGY1NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dFBhdGguY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dFBhdGguY3BwCkBAIC0zMyw3ICszMyw3IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclNWR1RleHRQYXRoOjpSZW5kZXJTVkdUZXh0
UGF0aChTVkdUZXh0UGF0aEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0
eWxlKQotICAgIDogUmVuZGVyU1ZHSW5saW5lKGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisg
ICAgOiBSZW5kZXJTVkdJbmxpbmUoZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKIHsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHAKaW5kZXggZDU0MjgwNi4uMDFlNzA2MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1h
YmxlQ29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgCiBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjpSZW5k
ZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyKFNWR0dyYXBoaWNzRWxlbWVudCYgZWxlbWVudCwg
UGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJTVkdDb250YWluZXIoZWxl
bWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlclNWR0NvbnRhaW5lcihlbGVtZW50
LCBXVEY6Om1vdmUoc3R5bGUpKQogICAgICwgbV9uZWVkc1RyYW5zZm9ybVVwZGF0ZSh0cnVlKQog
ICAgICwgbV9kaWRUcmFuc2Zvcm1Ub1Jvb3RVcGRhdGUoZmFsc2UpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVmlld3BvcnRDb250YWlu
ZXIuY3BwCmluZGV4IGViNGJiZDEuLjMwOThmZTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmNwcApA
QCAtMzMsNyArMzMsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJTVkdWaWV3cG9y
dENvbnRhaW5lcjo6UmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIoU1ZHU1ZHRWxlbWVudCYgZWxl
bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJTVkdDb250YWlu
ZXIoZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlclNWR0NvbnRhaW5lcihl
bGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogICAgICwgbV9kaWRUcmFuc2Zvcm1Ub1Jvb3RVcGRh
dGUoZmFsc2UpCiAgICAgLCBtX2lzTGF5b3V0U2l6ZUNoYW5nZWQoZmFsc2UpCiAgICAgLCBtX25l
ZWRzVHJhbnNmb3JtVXBkYXRlKHRydWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCAxMmFkMzMxLi5kZThmMTVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29u
dGV4dC5jcHAKQEAgLTI2Niw3ICsyNjYsNyBAQCBib29sIFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNy
ZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgQQogICAg
IGltYWdlQ29udGV4dC0+dHJhbnNsYXRlKC1wYWludFJlY3QueCgpLCAtcGFpbnRSZWN0LnkoKSk7
CiAgICAgaW1hZ2VDb250ZXh0LT5jb25jYXRDVE0oYWJzb2x1dGVUcmFuc2Zvcm0pOwogCi0gICAg
aW1hZ2VCdWZmZXIgPSBzdGQ6Om1vdmUoaW1hZ2UpOworICAgIGltYWdlQnVmZmVyID0gV1RGOjpt
b3ZlKGltYWdlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMjg5LDcgKzI4OSw3IEBAIGJv
b2wgU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlSW1hZ2VCdWZmZXJGb3JQYXR0ZXJuKGNvbnN0
IEZsb2F0UmVjdCYgYWJzb2x1dGVUCiAgICAgLy8gQ29tcGVuc2F0ZSByb3VuZGluZyBlZmZlY3Rz
LCBhcyB0aGUgYWJzb2x1dGUgdGFyZ2V0IHJlY3QgaXMgdXNpbmcgZmxvYXRpbmctcG9pbnQgbnVt
YmVycyBhbmQgdGhlIGltYWdlIGJ1ZmZlciBzaXplIGlzIGludGVnZXIuCiAgICAgaW1hZ2VDb250
ZXh0LT5zY2FsZShGbG9hdFNpemUodW5jbGFtcGVkSW1hZ2VTaXplLndpZHRoKCkgLyBhYnNvbHV0
ZVRhcmdldFJlY3Qud2lkdGgoKSwgdW5jbGFtcGVkSW1hZ2VTaXplLmhlaWdodCgpIC8gYWJzb2x1
dGVUYXJnZXRSZWN0LmhlaWdodCgpKSk7CiAKLSAgICBpbWFnZUJ1ZmZlciA9IHN0ZDo6bW92ZShp
bWFnZSk7CisgICAgaW1hZ2VCdWZmZXIgPSBXVEY6Om1vdmUoaW1hZ2UpOwogICAgIHJldHVybiB0
cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jl
c291cmNlc0NhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVzb3Vy
Y2VzQ2FjaGUuY3BwCmluZGV4IGJiMzM3MmIuLjJmMjdmMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzQ2FjaGUuY3BwCkBAIC00Nyw3ICs0Nyw3
IEBAIHZvaWQgU1ZHUmVzb3VyY2VzQ2FjaGU6OmFkZFJlc291cmNlc0Zyb21SZW5kZXJlcihSZW5k
ZXJFbGVtZW50JiByZW5kZXJlciwgY29uc3QKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gUHV0
IG9iamVjdCBpbiBjYWNoZS4KLSAgICBTVkdSZXNvdXJjZXMmIHJlc291cmNlcyA9ICptX2NhY2hl
LmFkZCgmcmVuZGVyZXIsIHN0ZDo6bW92ZShuZXdSZXNvdXJjZXMpKS5pdGVyYXRvci0+dmFsdWU7
CisgICAgU1ZHUmVzb3VyY2VzJiByZXNvdXJjZXMgPSAqbV9jYWNoZS5hZGQoJnJlbmRlcmVyLCBX
VEY6Om1vdmUobmV3UmVzb3VyY2VzKSkuaXRlcmF0b3ItPnZhbHVlOwogCiAgICAgLy8gUnVuIGN5
Y2xlLWRldGVjdGlvbiBfYWZ0ZXJ3YXJkc18sIHNvIHNlbGYtcmVmZXJlbmNlcyBjYW4gYmUgY2F1
Z2h0IGFzIHdlbGwuCiAgICAgU1ZHUmVzb3VyY2VzQ3ljbGVTb2x2ZXIgc29sdmVyKHJlbmRlcmVy
LCByZXNvdXJjZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L0NhcHR1cmlu
Z0lucHV0Q3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9DYXB0dXJpbmdJbnB1dEN1
cnNvci5jcHAKaW5kZXggYzE4OTdjNy4uZGFhMDZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVwbGF5L0NhcHR1cmluZ0lucHV0Q3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZXBsYXkvQ2FwdHVyaW5nSW5wdXRDdXJzb3IuY3BwCkBAIC01NSw3ICs1NSw3IEBAIFBhc3NSZWZQ
dHI8Q2FwdHVyaW5nSW5wdXRDdXJzb3I+IENhcHR1cmluZ0lucHV0Q3Vyc29yOjpjcmVhdGUoU2Vn
bWVudGVkSW5wdXRTdG9yCiB2b2lkIENhcHR1cmluZ0lucHV0Q3Vyc29yOjpzdG9yZUlucHV0KHN0
ZDo6dW5pcXVlX3B0cjxOb25kZXRlcm1pbmlzdGljSW5wdXRCYXNlPiBpbnB1dCkKIHsKICAgICBB
U1NFUlQoaW5wdXQpOwotICAgIG1fc3RvcmFnZS5zdG9yZShzdGQ6Om1vdmUoaW5wdXQpKTsKKyAg
ICBtX3N0b3JhZ2Uuc3RvcmUoV1RGOjptb3ZlKGlucHV0KSk7CiB9CiAKIE5vbmRldGVybWluaXN0
aWNJbnB1dEJhc2UqIENhcHR1cmluZ0lucHV0Q3Vyc29yOjpsb2FkSW5wdXQoSW5wdXRRdWV1ZSwg
Y29uc3QgQXRvbWljU3RyaW5nJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9N
ZW1vaXplZERPTVJlc3VsdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvTWVtb2l6ZWRET01S
ZXN1bHQuY3BwCmluZGV4IDBkMmNjNjUuLjViNjMwOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlcGxheS9NZW1vaXplZERPTVJlc3VsdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVw
bGF5L01lbW9pemVkRE9NUmVzdWx0LmNwcApAQCAtMTAzLDcgKzEwMyw3IEBAIGJvb2wgSW5wdXRU
cmFpdHM8TWVtb2l6ZWRET01SZXN1bHRCYXNlPjo6ZGVjb2RlKEVuY29kZWRWYWx1ZSYgZW5jb2Rl
ZFZhbHVlLCBzdGQ6CiAgICAgc3RkOjp1bmlxdWVfcHRyPE1lbW9pemVkRE9NUmVzdWx0QmFzZT4g
ZGVjb2RlZElucHV0ID0gTWVtb2l6ZWRET01SZXN1bHRCYXNlOjpjcmVhdGVGcm9tRW5jb2RlZFJl
c3VsdChhdHRyaWJ1dGUsIGN0eXBlLCBlbmNvZGVkUmVzdWx0LCBleGNlcHRpb25Db2RlKTsKICAg
ICBpZiAoIWRlY29kZWRJbnB1dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlucHV0ID0g
c3RkOjptb3ZlKGRlY29kZWRJbnB1dCk7CisgICAgaW5wdXQgPSBXVEY6Om1vdmUoZGVjb2RlZElu
cHV0KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVwbGF5L1JlcGxheUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxh
eUNvbnRyb2xsZXIuY3BwCmluZGV4IDY3YjQyNDcuLmQ3NmU0YjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZXBsYXkvUmVwbGF5Q29udHJvbGxlci5jcHAKQEAgLTE3OCw3ICsxNzgsNyBAQCB2b2lkIFJl
cGxheUNvbnRyb2xsZXI6OmNyZWF0ZVNlZ21lbnQoKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbml0
aWFsTmF2aWdhdGlvbj4gbmF2aWdhdGlvbklucHV0ID0gSW5pdGlhbE5hdmlnYXRpb246OmNyZWF0
ZUZyb21QYWdlKG1fcGFnZSk7CiAgICAgLy8gRGlzcGF0Y2hpbmcgdGhpcyBpbnB1dCBzY2hlZHVs
ZXMgbmF2aWdhdGlvbiBvZiB0aGUgbWFpbiBmcmFtZSwgY2F1c2luZyBhIHJlZnJlc2guCiAgICAg
bmF2aWdhdGlvbklucHV0LT5kaXNwYXRjaCgqdGhpcyk7Ci0gICAgbV9hY3RpdmVDdXJzb3ItPnN0
b3JlSW5wdXQoc3RkOjptb3ZlKG5hdmlnYXRpb25JbnB1dCkpOworICAgIG1fYWN0aXZlQ3Vyc29y
LT5zdG9yZUlucHV0KFdURjo6bW92ZShuYXZpZ2F0aW9uSW5wdXQpKTsKIH0KIAogdm9pZCBSZXBs
YXlDb250cm9sbGVyOjpjb21wbGV0ZVNlZ21lbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVwbGF5L1NlZ21lbnRlZElucHV0U3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZXBs
YXkvU2VnbWVudGVkSW5wdXRTdG9yYWdlLmNwcAppbmRleCBlNjYxNDFhLi40NjViYmYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvU2VnbWVudGVkSW5wdXRTdG9yYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvU2VnbWVudGVkSW5wdXRTdG9yYWdlLmNwcApAQCAt
MTA1LDcgKzEwNSw3IEBAIHZvaWQgU2VnbWVudGVkSW5wdXRTdG9yYWdlOjpzdG9yZShzdGQ6OnVu
aXF1ZV9wdHI8Tm9uZGV0ZXJtaW5pc3RpY0lucHV0QmFzZT4gaW5wCiAKICAgICBMT0coV2ViUmVw
bGF5LCAiJS0xNHMjJS01dSAlczogJXMgJXNcbiIsICJSZXBsYXlFdmVudHMiLCBtX2lucHV0Q291
bnQrKywgcXVldWVUeXBlVG9Mb2dQcmVmaXgoaW5wdXQtPnF1ZXVlKCksIGZhbHNlKSwgaW5wdXQt
PnR5cGUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBqc29uU3RyaW5nRm9ySW5wdXQoKmlucHV0
KS51dGY4KCkuZGF0YSgpKTsKIAotICAgIG1fcXVldWVzLmF0KG9mZnNldEZvcklucHV0UXVldWUo
aW5wdXQtPnF1ZXVlKCkpKS0+YXBwZW5kKHN0ZDo6bW92ZShpbnB1dCkpOworICAgIG1fcXVldWVz
LmF0KG9mZnNldEZvcklucHV0UXVldWUoaW5wdXQtPnF1ZXVlKCkpKS0+YXBwZW5kKFdURjo6bW92
ZShpbnB1dCkpOwogfQogCiBzaXplX3QgU2VnbWVudGVkSW5wdXRTdG9yYWdlOjpxdWV1ZVNpemUo
SW5wdXRRdWV1ZSBpbnB1dFF1ZXVlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9T
ZXJpYWxpemF0aW9uTWV0aG9kcy5jcHAKaW5kZXggYmU0NWYxYi4uMjQwYWIxNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZXBsYXkvU2VyaWFsaXphdGlvbk1ldGhvZHMuY3BwCkBAIC0yMDEsNyAr
MjAxLDcgQEAgYm9vbCBFbmNvZGluZ1RyYWl0czxOb25kZXRlcm1pbmlzdGljSW5wdXRCYXNlPjo6
ZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiBlbmNvZGUKICAgICAgICAgaWYgKCFJbnB1dFRyYWl0
czxuYW1lPjo6ZGVjb2RlKGVuY29kZWRWYWx1ZSwgZGVjb2RlZElucHV0KSkgXAogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOyBcCiAgICAgICAgIFwKLSAgICAgICAgaW5wdXQgPSBzdGQ6Om1vdmUo
ZGVjb2RlZElucHV0KTsgXAorICAgICAgICBpbnB1dCA9IFdURjo6bW92ZShkZWNvZGVkSW5wdXQp
OyBcCiAgICAgICAgIHJldHVybiB0cnVlOyBcCiAgICAgfSBcCiAKQEAgLTIxNCw3ICsyMTQsNyBA
QCBib29sIEVuY29kaW5nVHJhaXRzPE5vbmRldGVybWluaXN0aWNJbnB1dEJhc2U+OjpkZWNvZGVW
YWx1ZShFbmNvZGVkVmFsdWUmIGVuY29kZQogICAgICAgICBpZiAoIUlucHV0VHJhaXRzPE1lbW9p
emVkRE9NUmVzdWx0QmFzZT46OmRlY29kZShlbmNvZGVkVmFsdWUsIGRlY29kZWRJbnB1dCkpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgaW5wdXQgPSBzdGQ6Om1vdmUoZGVj
b2RlZElucHV0KTsKKyAgICAgICAgaW5wdXQgPSBXVEY6Om1vdmUoZGVjb2RlZElucHV0KTsKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZXBsYXkvVXNlcklucHV0QnJpZGdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9Vc2VySW5w
dXRCcmlkZ2UuY3BwCmluZGV4IDM2NGEzZjAuLjQ1ODQ1YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlcGxheS9Vc2VySW5wdXRCcmlkZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
cGxheS9Vc2VySW5wdXRCcmlkZ2UuY3BwCkBAIC04Myw3ICs4Myw3IEBAIGJvb2wgVXNlcklucHV0
QnJpZGdlOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBt
b3VzZUV2ZW50CiAgICAgSW5wdXRDdXJzb3ImIGN1cnNvciA9IGFjdGl2ZUN1cnNvcigpOwogICAg
IGlmIChjdXJzb3IuaXNDYXB0dXJpbmcoKSkgewogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxh
dGZvcm1Nb3VzZUV2ZW50PiBvd25lZEV2ZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybU1v
dXNlRXZlbnQ+KG1vdXNlRXZlbnQpOwotICAgICAgICBjdXJzb3IuYXBwZW5kSW5wdXQ8SGFuZGxl
TW91c2VQcmVzcz4oc3RkOjptb3ZlKG93bmVkRXZlbnQpKTsKKyAgICAgICAgY3Vyc29yLmFwcGVu
ZElucHV0PEhhbmRsZU1vdXNlUHJlc3M+KFdURjo6bW92ZShvd25lZEV2ZW50KSk7CiAgICAgfQog
ICAgIEV2ZW50TG9vcElucHV0RXh0ZW50IGV4dGVudChjdXJzb3IpOwogI2Vsc2UKQEAgLTEwMSw3
ICsxMDEsNyBAQCBib29sIFVzZXJJbnB1dEJyaWRnZTo6aGFuZGxlTW91c2VSZWxlYXNlRXZlbnQo
Y29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBtb3VzZUV2ZQogICAgIElucHV0Q3Vyc29yJiBjdXJz
b3IgPSBhY3RpdmVDdXJzb3IoKTsKICAgICBpZiAoY3Vyc29yLmlzQ2FwdHVyaW5nKCkpIHsKICAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtTW91c2VFdmVudD4gb3duZWRFdmVudCA9IHN0
ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1Nb3VzZUV2ZW50Pihtb3VzZUV2ZW50KTsKLSAgICAgICAg
Y3Vyc29yLmFwcGVuZElucHV0PEhhbmRsZU1vdXNlUmVsZWFzZT4oc3RkOjptb3ZlKG93bmVkRXZl
bnQpKTsKKyAgICAgICAgY3Vyc29yLmFwcGVuZElucHV0PEhhbmRsZU1vdXNlUmVsZWFzZT4oV1RG
Ojptb3ZlKG93bmVkRXZlbnQpKTsKICAgICB9CiAgICAgRXZlbnRMb29wSW5wdXRFeHRlbnQgZXh0
ZW50KGN1cnNvcik7CiAjZWxzZQpAQCAtMTE5LDcgKzExOSw3IEBAIGJvb2wgVXNlcklucHV0QnJp
ZGdlOjpoYW5kbGVNb3VzZU1vdmVFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNl
RXZlbnQsCiAgICAgSW5wdXRDdXJzb3ImIGN1cnNvciA9IGFjdGl2ZUN1cnNvcigpOwogICAgIGlm
IChjdXJzb3IuaXNDYXB0dXJpbmcoKSkgewogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZv
cm1Nb3VzZUV2ZW50PiBvd25lZEV2ZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybU1vdXNl
RXZlbnQ+KG1vdXNlRXZlbnQpOwotICAgICAgICBjdXJzb3IuYXBwZW5kSW5wdXQ8SGFuZGxlTW91
c2VNb3ZlPihzdGQ6Om1vdmUob3duZWRFdmVudCksIGZhbHNlKTsKKyAgICAgICAgY3Vyc29yLmFw
cGVuZElucHV0PEhhbmRsZU1vdXNlTW92ZT4oV1RGOjptb3ZlKG93bmVkRXZlbnQpLCBmYWxzZSk7
CiAgICAgfQogICAgIEV2ZW50TG9vcElucHV0RXh0ZW50IGV4dGVudChjdXJzb3IpOwogI2Vsc2UK
QEAgLTEzNyw3ICsxMzcsNyBAQCBib29sIFVzZXJJbnB1dEJyaWRnZTo6aGFuZGxlTW91c2VNb3Zl
T25TY3JvbGxiYXJFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmCiAgICAgSW5wdXRDdXJz
b3ImIGN1cnNvciA9IGFjdGl2ZUN1cnNvcigpOwogICAgIGlmIChjdXJzb3IuaXNDYXB0dXJpbmco
KSkgewogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1Nb3VzZUV2ZW50PiBvd25lZEV2
ZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybU1vdXNlRXZlbnQ+KG1vdXNlRXZlbnQpOwot
ICAgICAgICBjdXJzb3IuYXBwZW5kSW5wdXQ8SGFuZGxlTW91c2VNb3ZlPihzdGQ6Om1vdmUob3du
ZWRFdmVudCksIHRydWUpOworICAgICAgICBjdXJzb3IuYXBwZW5kSW5wdXQ8SGFuZGxlTW91c2VN
b3ZlPihXVEY6Om1vdmUob3duZWRFdmVudCksIHRydWUpOwogICAgIH0KICAgICBFdmVudExvb3BJ
bnB1dEV4dGVudCBleHRlbnQoY3Vyc29yKTsKICNlbHNlCkBAIC0xNTUsNyArMTU1LDcgQEAgYm9v
bCBVc2VySW5wdXRCcmlkZ2U6OmhhbmRsZUtleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRF
dmVudCYga2V5RXZlbnQsIElucHUKICAgICBJbnB1dEN1cnNvciYgY3Vyc29yID0gYWN0aXZlQ3Vy
c29yKCk7CiAgICAgaWYgKGN1cnNvci5pc0NhcHR1cmluZygpKSB7CiAgICAgICAgIHN0ZDo6dW5p
cXVlX3B0cjxQbGF0Zm9ybUtleWJvYXJkRXZlbnQ+IG93bmVkRXZlbnQgPSBzdGQ6Om1ha2VfdW5p
cXVlPFBsYXRmb3JtS2V5Ym9hcmRFdmVudD4oa2V5RXZlbnQpOwotICAgICAgICBjdXJzb3IuYXBw
ZW5kSW5wdXQ8SGFuZGxlS2V5UHJlc3M+KHN0ZDo6bW92ZShvd25lZEV2ZW50KSk7CisgICAgICAg
IGN1cnNvci5hcHBlbmRJbnB1dDxIYW5kbGVLZXlQcmVzcz4oV1RGOjptb3ZlKG93bmVkRXZlbnQp
KTsKICAgICB9CiAgICAgRXZlbnRMb29wSW5wdXRFeHRlbnQgZXh0ZW50KGN1cnNvcik7CiAjZWxz
ZQpAQCAtMTc4LDcgKzE3OCw3IEBAIGJvb2wgVXNlcklucHV0QnJpZGdlOjpoYW5kbGVXaGVlbEV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgSW5wCiAgICAgSW5wdXRD
dXJzb3ImIGN1cnNvciA9IGFjdGl2ZUN1cnNvcigpOwogICAgIGlmIChjdXJzb3IuaXNDYXB0dXJp
bmcoKSkgewogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1XaGVlbEV2ZW50PiBvd25l
ZEV2ZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybVdoZWVsRXZlbnQ+KHdoZWVsRXZlbnQp
OwotICAgICAgICBjdXJzb3IuYXBwZW5kSW5wdXQ8SGFuZGxlV2hlZWxFdmVudD4oc3RkOjptb3Zl
KG93bmVkRXZlbnQpKTsKKyAgICAgICAgY3Vyc29yLmFwcGVuZElucHV0PEhhbmRsZVdoZWVsRXZl
bnQ+KFdURjo6bW92ZShvd25lZEV2ZW50KSk7CiAgICAgfQogICAgIEV2ZW50TG9vcElucHV0RXh0
ZW50IGV4dGVudChjdXJzb3IpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlUmVzb2x2ZVRyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNv
bHZlVHJlZS5jcHAKaW5kZXggNWRmYTJmNC4uMzM5Mjg5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVSZXNvbHZlVHJlZS5jcHAKQEAgLTk1MCw3ICs5NTAsNyBAQCB2b2lkIHJlc29sdmVU
cmVlKERvY3VtZW50JiBkb2N1bWVudCwgQ2hhbmdlIGNoYW5nZSkKIAogICAgICAgICBTdHlsZTo6
Q2hhbmdlIGRvY3VtZW50Q2hhbmdlID0gZGV0ZXJtaW5lQ2hhbmdlKCZkb2N1bWVudFN0eWxlLmdl
dCgpLCAmZG9jdW1lbnQucmVuZGVyVmlldygpLT5zdHlsZSgpKTsKICAgICAgICAgaWYgKGRvY3Vt
ZW50Q2hhbmdlICE9IE5vQ2hhbmdlKQotICAgICAgICAgICAgZG9jdW1lbnQucmVuZGVyVmlldygp
LT5zZXRTdHlsZShzdGQ6Om1vdmUoZG9jdW1lbnRTdHlsZSkpOworICAgICAgICAgICAgZG9jdW1l
bnQucmVuZGVyVmlldygpLT5zZXRTdHlsZShXVEY6Om1vdmUoZG9jdW1lbnRTdHlsZSkpOwogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICBkb2N1bWVudFN0eWxlLmRyb3BSZWYoKTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcAppbmRleCBkZjkyMDczLi5jMmYyNGQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKQEAgLTE0MSw5ICsxNDEsOSBAQCB2b2lkIFNWR0FFbGVt
ZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQog
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0FFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7CiAgICAgaWYgKHBhcmVudE5vZGUoKSAm
JiBwYXJlbnROb2RlKCktPmlzU1ZHRWxlbWVudCgpICYmIHRvU1ZHRWxlbWVudChwYXJlbnROb2Rl
KCkpLT5pc1RleHRDb250ZW50KCkpCi0gICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5k
ZXJTVkdJbmxpbmU+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIGNy
ZWF0ZVJlbmRlcmVyPFJlbmRlclNWR0lubGluZT4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwog
Ci0gICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWlu
ZXI+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8
UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkp
OwogfQogCiB2b2lkIFNWR0FFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVu
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5jcHAKaW5kZXggMTBlMmY2
YS4uZDM1NDU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5jcHAK
QEAgLTg0LDcgKzg0LDcgQEAgYm9vbCBTVkdBbHRHbHlwaEVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3Jl
YXRlUmVuZGVyZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0CiAKIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBTVkdBbHRHbHlwaEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVm
PFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVy
U1ZHVFNwYW4+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVu
ZGVyZXI8UmVuZGVyU1ZHVFNwYW4+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogYm9v
bCBTVkdBbHRHbHlwaEVsZW1lbnQ6Omhhc1ZhbGlkR2x5cGhFbGVtZW50cyhWZWN0b3I8U3RyaW5n
PiYgZ2x5cGhOYW1lcykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZFBhdGguY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHAK
aW5kZXggOGEwODc2Yy4uMTRjMDM1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkUGF0aC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUGF0
aC5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4g
U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY28KIHsKICAgICBh
dXRvIGJ5dGVTdHJlYW0gPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR1BhdGhCeXRlU3RyZWFtPigpOwog
ICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU3RyaW5nKHN0cmluZywgYnl0ZVN0cmVhbS5n
ZXQoKSwgVW5hbHRlcmVkUGFyc2luZyk7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3Jl
YXRlUGF0aChzdGQ6Om1vdmUoYnl0ZVN0cmVhbSkpOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5
cGU6OmNyZWF0ZVBhdGgoV1RGOjptb3ZlKGJ5dGVTdHJlYW0pKTsKIH0KIAogc3RkOjp1bmlxdWVf
cHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnN0YXJ0QW5pbVZh
bEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVk
VHlwZXMpCkBAIC02MCw3ICs2MCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oCiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCByZXN1bHRTaXplOyArK2kpCiAgICAgICAgIHJlc3VsdFtpXS0+
YW5pbWF0aW9uU3RhcnRlZChieXRlU3RyZWFtLmdldCgpLCAmYmFzZVZhbHVlKTsKIAotICAgIHJl
dHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBhdGgoc3RkOjptb3ZlKGJ5dGVTdHJlYW0pKTsK
KyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQYXRoKFdURjo6bW92ZShieXRlU3Ry
ZWFtKSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5p
bWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcAppbmRleCA5OWY4YjZkLi4y
MzM4ZjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwCkBAIC0xNDAs
NyArMTQwLDcgQEAgYm9vbCBTVkdDaXJjbGVFbGVtZW50OjpzZWxmSGFzUmVsYXRpdmVMZW5ndGhz
KCkgY29uc3QKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0NpcmNsZUVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKLSAgICBy
ZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHRWxsaXBzZT4oKnRoaXMsIHN0ZDo6bW92ZShz
dHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdFbGxpcHNlPigqdGhp
cywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQ
YXRoRWxlbWVudC5jcHAKaW5kZXggMTFjYmViMS4uOTYxY2ZkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHAKQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIFNWR0Ns
aXBQYXRoRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2Up
CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdDbGlwUGF0aEVsZW1lbnQ6OmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKLSAgICByZXR1cm4g
Y3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyPigqdGhpcywgc3RkOjptb3Zl
KHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1Jlc291cmNlQ2xp
cHBlcj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0RlZnNFbGVtZW50LmNwcAppbmRleCAyNjQzNWMyLi44YzUyYWU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdEZWZzRWxlbWVudC5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgYm9vbCBTVkdEZWZzRWxlbWVu
dDo6aXNWYWxpZCgpIGNvbnN0CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdEZWZzRWxl
bWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQog
ewotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdIaWRkZW5Db250YWluZXI+KCp0
aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVy
U1ZHSGlkZGVuQ29udGFpbmVyPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHAKaW5kZXggNGI0Mjgz
OC4uMzNkNGVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50RXh0
ZW5zaW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9u
cy5jcHAKQEAgLTI2Nyw3ICsyNjcsNyBAQCB2b2lkIFNWR0RvY3VtZW50RXh0ZW5zaW9uczo6bWFy
a1BlbmRpbmdSZXNvdXJjZXNGb3JSZW1vdmFsKGNvbnN0IEF0b21pY1N0cmluZyYgaQogCiAgICAg
c3RkOjp1bmlxdWVfcHRyPFBlbmRpbmdFbGVtZW50cz4gZXhpc3RpbmcgPSBtX3BlbmRpbmdSZXNv
dXJjZXMudGFrZShpZCk7CiAgICAgaWYgKGV4aXN0aW5nICYmICFleGlzdGluZy0+aXNFbXB0eSgp
KQotICAgICAgICBtX3BlbmRpbmdSZXNvdXJjZXNGb3JSZW1vdmFsLmFkZChpZCwgc3RkOjptb3Zl
KGV4aXN0aW5nKSk7CisgICAgICAgIG1fcGVuZGluZ1Jlc291cmNlc0ZvclJlbW92YWwuYWRkKGlk
LCBXVEY6Om1vdmUoZXhpc3RpbmcpKTsKIH0KIAogRWxlbWVudCogU1ZHRG9jdW1lbnRFeHRlbnNp
b25zOjpyZW1vdmVFbGVtZW50RnJvbVBlbmRpbmdSZXNvdXJjZXNGb3JSZW1vdmFsTWFwKGNvbnN0
IEF0b21pY1N0cmluZyYgaWQpCkBAIC0zMTEsNyArMzExLDcgQEAgdm9pZCBTVkdEb2N1bWVudEV4
dGVuc2lvbnM6OmFkZEVsZW1lbnRSZWZlcmVuY2luZ1RhcmdldChTVkdFbGVtZW50KiByZWZlcmVu
Y2luZ0UKIAogICAgIGF1dG8gZWxlbWVudHMgPSBzdGQ6Om1ha2VfdW5pcXVlPEhhc2hTZXQ8U1ZH
RWxlbWVudCo+PigpOwogICAgIGVsZW1lbnRzLT5hZGQocmVmZXJlbmNpbmdFbGVtZW50KTsKLSAg
ICBtX2VsZW1lbnREZXBlbmRlbmNpZXMuc2V0KHJlZmVyZW5jZWRFbGVtZW50LCBzdGQ6Om1vdmUo
ZWxlbWVudHMpKTsKKyAgICBtX2VsZW1lbnREZXBlbmRlbmNpZXMuc2V0KHJlZmVyZW5jZWRFbGVt
ZW50LCBXVEY6Om1vdmUoZWxlbWVudHMpKTsKIH0KIAogdm9pZCBTVkdEb2N1bWVudEV4dGVuc2lv
bnM6OnJlbW92ZUFsbFRhcmdldFJlZmVyZW5jZXNGb3JFbGVtZW50KFNWR0VsZW1lbnQqIHJlZmVy
ZW5jaW5nRWxlbWVudCkKQEAgLTMzNCw3ICszMzQsNyBAQCB2b2lkIFNWR0RvY3VtZW50RXh0ZW5z
aW9uczo6cmVtb3ZlQWxsVGFyZ2V0UmVmZXJlbmNlc0ZvckVsZW1lbnQoU1ZHRWxlbWVudCogcmVm
ZQogCiB2b2lkIFNWR0RvY3VtZW50RXh0ZW5zaW9uczo6cmVidWlsZEVsZW1lbnRzKCkKIHsKLSAg
ICBWZWN0b3I8U1ZHRWxlbWVudCo+IHNoYWRvd1JlYnVpbGRFbGVtZW50cyA9IHN0ZDo6bW92ZSht
X3JlYnVpbGRFbGVtZW50cyk7CisgICAgVmVjdG9yPFNWR0VsZW1lbnQqPiBzaGFkb3dSZWJ1aWxk
RWxlbWVudHMgPSBXVEY6Om1vdmUobV9yZWJ1aWxkRWxlbWVudHMpOwogICAgIGZvciAoYXV0byog
ZWxlbWVudCA6IHNoYWRvd1JlYnVpbGRFbGVtZW50cykKICAgICAgICAgZWxlbWVudC0+c3ZnQXR0
cmlidXRlQ2hhbmdlZChYTGlua05hbWVzOjpocmVmQXR0cik7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0VsbGlwc2VFbGVtZW50LmNwcAppbmRleCAwN2JkZGNkLi45NzlhNTMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCBib29s
IFNWR0VsbGlwc2VFbGVtZW50OjpzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3QKIAogUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0VsbGlwc2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVJl
bmRlcmVyPFJlbmRlclNWR0VsbGlwc2U+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICBy
ZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHRWxsaXBzZT4oKnRoaXMsIFdURjo6bW92ZShz
dHlsZSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVy
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAKaW5k
ZXggNGVjYjhmYy4uMjI3MmMyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zp
bHRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50
LmNwcApAQCAtMTkxLDcgKzE5MSw3IEBAIHZvaWQgU1ZHRmlsdGVyRWxlbWVudDo6Y2hpbGRyZW5D
aGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAKIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBTVkdGaWx0ZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5k
ZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1Jl
c291cmNlRmlsdGVyPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0
ZVJlbmRlcmVyPFJlbmRlclNWR1Jlc291cmNlRmlsdGVyPigqdGhpcywgV1RGOjptb3ZlKHN0eWxl
KSk7CiB9CiAKIGJvb2wgU1ZHRmlsdGVyRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJl
cihjb25zdCBOb2RlJiBjaGlsZCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAKaW5kZXggZWU4
MWZkYy4uMmNmMGRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclBy
aW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAKQEAgLTE0NSw3ICsxNDUsNyBA
QCB2b2lkIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6c2V0U3RhbmRhcmRB
dHRyaWJ1dGVzKEZpbHRlckVmZmVjdCogZgogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVy
PFJlbmRlclNWR1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlPigqdGhpcywgc3RkOjptb3ZlKHN0eWxl
KSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1Jlc291cmNlRmlsdGVyUHJp
bWl0aXZlPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAKIGJvb2wgU1ZHRmlsdGVyUHJp
bWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0
eWxlJiBzdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuY3BwCmluZGV4IGEyMGE2
NTYuLjEyOGExYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmNwcApAQCAtMTc5
LDcgKzE3OSw3IEBAIHZvaWQgU1ZHS2VybmluZ01hcDo6aW5zZXJ0KGNvbnN0IFNWR0tlcm5pbmdQ
YWlyJiBrZXJuaW5nUGFpcikKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBhdXRvIG5ld1Zl
Y3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHS2VybmluZ1ZlY3Rvcj4oKTsKICAgICAgICAgICAg
IG5ld1ZlY3Rvci0+YXBwZW5kKHN2Z0tlcm5pbmcpOwotICAgICAgICAgICAgdW5pY29kZU1hcC5h
ZGQoKnVJdCwgc3RkOjptb3ZlKG5ld1ZlY3RvcikpOworICAgICAgICAgICAgdW5pY29kZU1hcC5h
ZGQoKnVJdCwgV1RGOjptb3ZlKG5ld1ZlY3RvcikpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0x
OTEsNyArMTkxLDcgQEAgdm9pZCBTVkdLZXJuaW5nTWFwOjppbnNlcnQoY29uc3QgU1ZHS2Vybmlu
Z1BhaXImIGtlcm5pbmdQYWlyKQogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGF1dG8gbmV3
VmVjdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdLZXJuaW5nVmVjdG9yPigpOwogICAgICAgICAg
ICAgbmV3VmVjdG9yLT5hcHBlbmQoc3ZnS2VybmluZyk7Ci0gICAgICAgICAgICBnbHlwaE1hcC5h
ZGQoKmdJdCwgc3RkOjptb3ZlKG5ld1ZlY3RvcikpOworICAgICAgICAgICAgZ2x5cGhNYXAuYWRk
KCpnSXQsIFdURjo6bW92ZShuZXdWZWN0b3IpKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKaW5kZXggNzJiN2Qy
YS4uOThmN2E3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmpl
Y3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVs
ZW1lbnQuY3BwCkBAIC0xMjcsNyArMTI3LDcgQEAgdm9pZCBTVkdGb3JlaWduT2JqZWN0RWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIAog
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJu
IGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q+KCp0aGlzLCBzdGQ6Om1vdmUo
c3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHRm9yZWlnbk9iamVj
dD4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiBib29sIFNWR0ZvcmVpZ25PYmplY3RF
bGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmIGNoaWxkKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAKaW5kZXggZGNlMDA4Ny4uODI5YzNhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuY3BwCkBAIC05NSw5ICs5NSw5IEBAIFJlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBTVkdHRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8
UmVuZGVyU3R5bGU+CiAgICAgLy8gc3VidHJlZSBtYXkgYmUgaGlkZGVuIC0gd2Ugb25seSB3YW50
IHRoZSByZXNvdXJjZSByZW5kZXJlcnMgdG8gZXhpc3Qgc28gdGhleSBjYW4gYmUKICAgICAvLyBy
ZWZlcmVuY2VkIGZyb20gc29tZXdoZXJlIGVsc2UuCiAgICAgaWYgKHN0eWxlLmdldCgpLmRpc3Bs
YXkoKSA9PSBOT05FKQotICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHSGlk
ZGVuQ29udGFpbmVyPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBj
cmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdIaWRkZW5Db250YWluZXI+KCp0aGlzLCBXVEY6Om1vdmUo
c3R5bGUpKTsKIAotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdUcmFuc2Zvcm1h
YmxlQ29udGFpbmVyPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0
ZVJlbmRlcmVyPFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI+KCp0aGlzLCBXVEY6Om1v
dmUoc3R5bGUpKTsKIH0KIAogYm9vbCBTVkdHRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhp
Y3NFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3Bw
CmluZGV4IDNjNjI0OTAuLmE5NDM1ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdHcmFwaGljc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGlj
c0VsZW1lbnQuY3BwCkBAIC0xNzMsNyArMTczLDcgQEAgRmxvYXRSZWN0IFNWR0dyYXBoaWNzRWxl
bWVudDo6Z2V0QkJveChTdHlsZVVwZGF0ZVN0cmF0ZWd5IHN0eWxlVXBkYXRlU3RyYXRlZ3kpCiBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHR3JhcGhpY3NFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7CiAgICAgLy8gQnkgZGVmYXVs
dCwgYW55IHN1YmNsYXNzIGlzIGV4cGVjdGVkIHRvIGRvIHBhdGgtYmFzZWQgZHJhd2luZwotICAg
IHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdQYXRoPigqdGhpcywgc3RkOjptb3ZlKHN0
eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1BhdGg+KCp0aGlzLCBX
VEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogdm9pZCBTVkdHcmFwaGljc0VsZW1lbnQ6OnRvQ2xpcFBh
dGgoUGF0aCYgcGF0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKaW5kZXgg
ZGEyZTU3NC4uNmU0MzYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdl
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAK
QEAgLTE4Myw3ICsxODMsNyBAQCBib29sIFNWR0ltYWdlRWxlbWVudDo6c2VsZkhhc1JlbGF0aXZl
TGVuZ3RocygpIGNvbnN0CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdJbWFnZUVsZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsK
LSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHSW1hZ2U+KCp0aGlzLCBzdGQ6Om1v
dmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHSW1hZ2U+KCp0
aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogYm9vbCBTVkdJbWFnZUVsZW1lbnQ6OmhhdmVM
b2FkZWRSZXF1aXJlZFJlc291cmNlcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5l
YXJHcmFkaWVudEVsZW1lbnQuY3BwCmluZGV4IGUwMGZkODYuLjI2ZDNkMGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCkBAIC0xMTksNyAr
MTE5LDcgQEAgdm9pZCBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NS
ZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5k
ZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50PigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7Cisg
ICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnQ+
KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogc3RhdGljIHZvaWQgc2V0R3JhZGllbnRB
dHRyaWJ1dGVzKFNWR0dyYWRpZW50RWxlbWVudCYgZWxlbWVudCwgTGluZWFyR3JhZGllbnRBdHRy
aWJ1dGVzJiBhdHRyaWJ1dGVzLCBib29sIGlzTGluZWFyID0gdHJ1ZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAppbmRleCA3ODZkZjYwLi43M2Y0OWU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwCkBAIC0yMTUsNyArMjE1LDcgQEAgdm9pZCBT
VkdNYXJrZXJFbGVtZW50OjpzZXRPcmllbnRUb0FuZ2xlKGNvbnN0IFNWR0FuZ2xlJiBhbmdsZSkK
IAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR01hcmtlckVsZW1lbnQ6OmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKLSAgICByZXR1cm4gY3Jl
YXRlUmVuZGVyZXI8UmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXI+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5
bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXI+
KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogYm9vbCBTVkdNYXJrZXJFbGVtZW50Ojpz
ZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1l
bnQuY3BwCmluZGV4IDFiMmMxZWYuLjY2YTcyYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tF
bGVtZW50LmNwcApAQCAtMTU4LDcgKzE1OCw3IEBAIHZvaWQgU1ZHTWFza0VsZW1lbnQ6OmNoaWxk
cmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQogCiBSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gU1ZHTWFza0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJl
bmRlclN0eWxlPiBzdHlsZSkKIHsKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZH
UmVzb3VyY2VNYXNrZXI+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3Jl
YXRlUmVuZGVyZXI8UmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI+KCp0aGlzLCBXVEY6Om1vdmUoc3R5
bGUpKTsKIH0KIAogYm9vbCBTVkdNYXNrRWxlbWVudDo6c2VsZkhhc1JlbGF0aXZlTGVuZ3Rocygp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAppbmRleCA5ZTQxZjMyLi5m
ZGY5YWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKQEAgLTQwNiw3ICs0
MDYsNyBAQCBGbG9hdFJlY3QgU1ZHUGF0aEVsZW1lbnQ6OmdldEJCb3goU3R5bGVVcGRhdGVTdHJh
dGVneSBzdHlsZVVwZGF0ZVN0cmF0ZWd5KQogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1Bh
dGhFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5
bGUpCiB7CiAgICAgLy8gQnkgZGVmYXVsdCwgYW55IHN1YmNsYXNzIGlzIGV4cGVjdGVkIHRvIGRv
IHBhdGgtYmFzZWQgZHJhd2luZwotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdQ
YXRoPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVy
PFJlbmRlclNWR1BhdGg+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAKaW5kZXggNGU4ZjM5Ni4uMjBlYmUyNGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcApAQCAtMTgzLDcgKzE4
Myw3IEBAIHZvaWQgU1ZHUGF0dGVybkVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGls
ZENoYW5nZSYgY2hhbmdlKQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHUGF0dGVybkVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkK
IHsKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuPigq
dGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRl
clNWR1Jlc291cmNlUGF0dGVybj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiBzdGF0
aWMgdm9pZCBzZXRQYXR0ZXJuQXR0cmlidXRlcyhjb25zdCBTVkdQYXR0ZXJuRWxlbWVudCYgZWxl
bWVudCwgUGF0dGVybkF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCmluZGV4IGNlMjY0ZTcuLjJhZThkN2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3Bw
CkBAIC0xMzEsNyArMTMxLDcgQEAgdm9pZCBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6OnN2Z0F0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUKIAogUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBjcmVhdGVS
ZW5kZXJlcjxSZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdyYWRpZW50PigqdGhpcywgc3RkOjptb3Zl
KHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1Jlc291cmNlUmFk
aWFsR3JhZGllbnQ+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogc3RhdGljIHZvaWQg
c2V0R3JhZGllbnRBdHRyaWJ1dGVzKFNWR0dyYWRpZW50RWxlbWVudCYgZWxlbWVudCwgUmFkaWFs
R3JhZGllbnRBdHRyaWJ1dGVzJiBhdHRyaWJ1dGVzLCBib29sIGlzUmFkaWFsID0gdHJ1ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwCmluZGV4IDU4ZjdlZTEuLjZkMjMyNTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcApAQCAtMTYxLDcgKzE2MSw3IEBAIGJv
b2wgU1ZHUmVjdEVsZW1lbnQ6OnNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdAogCiBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHUmVjdEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVy
ZXI8UmVuZGVyU1ZHUmVjdD4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBj
cmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdSZWN0PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAppbmRleCBhNzYwNzY0Li42MjU2
MTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCkBAIC01MDQsOSArNTA0LDkg
QEAgYm9vbCBTVkdTVkdFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxl
JiBzdHlsZSkKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdTVkdFbGVtZW50OjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7CiAgICAgaWYgKGlz
T3V0ZXJtb3N0U1ZHU1ZHRWxlbWVudCgpKQotICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8
UmVuZGVyU1ZHUm9vdD4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4g
Y3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHUm9vdD4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwog
Ci0gICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyPigq
dGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRl
clNWR1ZpZXdwb3J0Q29udGFpbmVyPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAKIE5v
ZGU6Okluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgU1ZHU1ZHRWxlbWVudDo6aW5zZXJ0ZWRJ
bnRvKENvbnRhaW5lck5vZGUmIHJvb3RQYXJlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVt
ZW50LmNwcAppbmRleCBkNGJhZmUwLi4xNDA1ZDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9w
RWxlbWVudC5jcHAKQEAgLTk5LDcgKzk5LDcgQEAgdm9pZCBTVkdTdG9wRWxlbWVudDo6c3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIAogUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IFNWR1N0b3BFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFz
c1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJl
bmRlclNWR0dyYWRpZW50U3RvcD4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVy
biBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdHcmFkaWVudFN0b3A+KCp0aGlzLCBXVEY6Om1vdmUo
c3R5bGUpKTsKIH0KIAogYm9vbCBTVkdTdG9wRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNo
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5jcHAKaW5k
ZXggZDQ1ZDI5NC4uZmMzZTJmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3
aXRjaEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50
LmNwcApAQCAtNjIsNyArNjIsNyBAQCBib29sIFNWR1N3aXRjaEVsZW1lbnQ6OmNoaWxkU2hvdWxk
Q3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0CiAKIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBTVkdTd2l0Y2hFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1Jl
ZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRl
clNWR1RyYW5zZm9ybWFibGVDb250YWluZXI+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAg
ICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcj4o
KnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3lt
Ym9sRWxlbWVudC5jcHAKaW5kZXggZTk3MjM1OS4uODEwOTAxMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTeW1ib2xFbGVtZW50LmNwcApAQCAtMTAyLDcgKzEwMiw3IEBAIGJvb2wgU1ZHU3ltYm9s
RWxlbWVudDo6c2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0CiAKIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBTVkdTeW1ib2xFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1Jl
ZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRl
clNWR0hpZGRlbkNvbnRhaW5lcj4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVy
biBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdIaWRkZW5Db250YWluZXI+KCp0aGlzLCBXVEY6Om1v
dmUoc3R5bGUpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RS
ZWZFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKaW5k
ZXggNDdiZGI4MS4uZmFiMDIyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RS
ZWZFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3Bw
CkBAIC0yMjAsNyArMjIwLDcgQEAgdm9pZCBTVkdUUmVmRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIAogUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IFNWR1RSZWZFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5k
ZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR0lu
bGluZT4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJl
cjxSZW5kZXJTVkdJbmxpbmU+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogYm9vbCBT
VkdUUmVmRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJiBjaGls
ZCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUU3BhbkVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RTcGFuRWxlbWVudC5jcHAKaW5kZXggYzU5Zjcy
My4uZDM0NGYwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RTcGFuRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RTcGFuRWxlbWVudC5jcHAKQEAgLTQw
LDcgKzQwLDcgQEAgUGFzc1JlZlB0cjxTVkdUU3BhbkVsZW1lbnQ+IFNWR1RTcGFuRWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUKIAogUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IFNWR1RTcGFuRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVu
ZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdU
U3Bhbj4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJl
cjxSZW5kZXJTVkdUU3Bhbj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiBib29sIFNW
R1RTcGFuRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJiBjaGls
ZCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwCmluZGV4IDliMGMwMzcu
LmUwOWUyZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmNwcApAQCAtNjgsNyAr
NjgsNyBAQCBBZmZpbmVUcmFuc2Zvcm0gU1ZHVGV4dEVsZW1lbnQ6OmFuaW1hdGVkTG9jYWxUcmFu
c2Zvcm0oKSBjb25zdAogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHVGV4dEVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKLSAg
ICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHVGV4dD4oKnRoaXMsIHN0ZDo6bW92ZShz
dHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdUZXh0PigqdGhpcywg
V1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAKIGJvb2wgU1ZHVGV4dEVsZW1lbnQ6OmNoaWxkU2hvdWxk
Q3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCmluZGV4IDA4ZTY2YjAuLjc2Njk2NGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAg
dm9pZCBTVkdUZXh0UGF0aEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0ck5hbWUpCiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdUZXh0UGF0
aEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHls
ZSkKIHsKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHVGV4dFBhdGg+KCp0aGlz
LCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZH
VGV4dFBhdGg+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogYm9vbCBTVkdUZXh0UGF0
aEVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKaW5kZXggZWZmODBlOC4uZmYyYjk3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAtNTI1LDcgKzUyNSw3IEBA
IHZvaWQgU1ZHVXNlRWxlbWVudDo6YnVpbGRTaGFkb3dBbmRJbnN0YW5jZVRyZWUoU1ZHRWxlbWVu
dCogdGFyZ2V0KQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHVXNlRWxlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJl
dHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyPigqdGhp
cywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNW
R1RyYW5zZm9ybWFibGVDb250YWluZXI+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAog
c3RhdGljIGJvb2wgaXNEaXJlY3RSZWZlcmVuY2UoY29uc3QgU1ZHRWxlbWVudCYgZWxlbWVudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCmluZGV4IDRjMDU5ZDkuLjA0
MTAyZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcApAQCAtNTUs
NyArNTUsNyBAQCBTVkdJbWFnZTo6flNWR0ltYWdlKCkKIHsKICAgICBpZiAobV9wYWdlKSB7CiAg
ICAgICAgIC8vIFN0b3JlIG1fcGFnZSBpbiBhIGxvY2FsIHZhcmlhYmxlLCBjbGVhcmluZyBtX3Bh
Z2UsIHNvIHRoYXQgU1ZHSW1hZ2VDaHJvbWVDbGllbnQga25vd3Mgd2UncmUgZGVzdHJ1Y3RlZC4K
LSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFBhZ2U+IGN1cnJlbnRQYWdlID0gc3RkOjptb3ZlKG1f
cGFnZSk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxQYWdlPiBjdXJyZW50UGFnZSA9IFdURjo6
bW92ZShtX3BhZ2UpOwogICAgICAgICBjdXJyZW50UGFnZS0+bWFpbkZyYW1lKCkubG9hZGVyKCku
ZnJhbWVEZXRhY2hlZCgpOyAvLyBCcmVhayBib3RoIHRoZSBsb2FkZXIgYW5kIHZpZXcgcmVmZXJl
bmNlcyB0byB0aGUgZnJhbWUKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZVRvUHJvcGVydHlNYXAuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQXR0cmlidXRlVG9Qcm9wZXJ0eU1hcC5jcHAKaW5kZXggOWY3
NzY4ZS4uN2M0ZmMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHQXR0cmlidXRlVG9Qcm9wZXJ0eU1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHQXR0cmlidXRlVG9Qcm9wZXJ0eU1hcC5jcHAKQEAgLTUzLDcgKzUzLDcgQEAg
dm9pZCBTVkdBdHRyaWJ1dGVUb1Byb3BlcnR5TWFwOjphZGRQcm9wZXJ0eShjb25zdCBTVkdQcm9w
ZXJ0eUluZm8qIGluZm8pCiAgICAgLy8gRklYTUU6IFRoaXMgZG9lcyBhIHNlY29uZCBoYXNoIHRh
YmxlIGxvb2t1cCwgYnV0IHdpdGggSGFzaE1hcDo6YWRkIHdlIGNvdWxkIGluc3RlYWQgZG8gb25s
eSBvbmUuCiAgICAgYXV0byB2ZWN0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPFByb3BlcnRpZXNWZWN0
b3I+KCk7CiAgICAgdmVjdG9yLT5hcHBlbmQoaW5mbyk7Ci0gICAgbV9tYXAuc2V0KGluZm8tPmF0
dHJpYnV0ZU5hbWUsIHN0ZDo6bW92ZSh2ZWN0b3IpKTsKKyAgICBtX21hcC5zZXQoaW5mby0+YXR0
cmlidXRlTmFtZSwgV1RGOjptb3ZlKHZlY3RvcikpOwogfQogCiB2b2lkIFNWR0F0dHJpYnV0ZVRv
UHJvcGVydHlNYXA6OmFuaW1hdGVkUHJvcGVydGllc0ZvckF0dHJpYnV0ZShTVkdFbGVtZW50KiBv
d25lclR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFZlY3RvcjxSZWZQ
dHI8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4+JiBwcm9wZXJ0aWVzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCmluZGV4IGQwZTVkZjkuLjQwYTJjYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKQEAgLTE0ODQsNyArMTQ4NCw3IEBAIFBhc3NSZWZQdHI8RE9NV2luZG93
PiBJbnRlcm5hbHM6Om9wZW5EdW1teUluc3BlY3RvckZyb250ZW5kKGNvbnN0IFN0cmluZyYgdXJs
KQogCiAgICAgYXV0byBmcm9udGVuZENsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnREdW1teT4oJnBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKSwgZnJvbnRl
bmRQYWdlKTsKIAotICAgIGZyb250ZW5kUGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLnNldElu
c3BlY3RvckZyb250ZW5kQ2xpZW50KHN0ZDo6bW92ZShmcm9udGVuZENsaWVudCkpOworICAgIGZy
b250ZW5kUGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLnNldEluc3BlY3RvckZyb250ZW5kQ2xp
ZW50KFdURjo6bW92ZShmcm9udGVuZENsaWVudCkpOwogCiAgICAgbV9mcm9udGVuZENoYW5uZWwg
PSBhZG9wdFB0cihuZXcgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsRHVtbXkoZnJvbnRlbmRQYWdl
KSk7CiAKQEAgLTE2ODYsNyArMTY4Niw3IEBAIHZvaWQgSW50ZXJuYWxzOjppbnNlcnRBdXRob3JD
U1MoY29uc3QgU3RyaW5nJiBjc3MsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAgIGF1dG8g
cGFyc2VkU2hlZXQgPSBTdHlsZVNoZWV0Q29udGVudHM6OmNyZWF0ZSgqZG9jdW1lbnQpOwogICAg
IHBhcnNlZFNoZWV0LmdldCgpLnNldElzVXNlclN0eWxlU2hlZXQoZmFsc2UpOwogICAgIHBhcnNl
ZFNoZWV0LmdldCgpLnBhcnNlU3RyaW5nKGNzcyk7Ci0gICAgZG9jdW1lbnQtPnN0eWxlU2hlZXRD
b2xsZWN0aW9uKCkuYWRkQXV0aG9yU2hlZXQoc3RkOjptb3ZlKHBhcnNlZFNoZWV0KSk7CisgICAg
ZG9jdW1lbnQtPnN0eWxlU2hlZXRDb2xsZWN0aW9uKCkuYWRkQXV0aG9yU2hlZXQoV1RGOjptb3Zl
KHBhcnNlZFNoZWV0KSk7CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjppbnNlcnRVc2VyQ1NTKGNvbnN0
IFN0cmluZyYgY3NzLCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKQEAgLTE3MDAsNyArMTcwMCw3
IEBAIHZvaWQgSW50ZXJuYWxzOjppbnNlcnRVc2VyQ1NTKGNvbnN0IFN0cmluZyYgY3NzLCBFeGNl
cHRpb25Db2RlJiBlYykgY29uc3QKICAgICBhdXRvIHBhcnNlZFNoZWV0ID0gU3R5bGVTaGVldENv
bnRlbnRzOjpjcmVhdGUoKmRvY3VtZW50KTsKICAgICBwYXJzZWRTaGVldC5nZXQoKS5zZXRJc1Vz
ZXJTdHlsZVNoZWV0KHRydWUpOwogICAgIHBhcnNlZFNoZWV0LmdldCgpLnBhcnNlU3RyaW5nKGNz
cyk7Ci0gICAgZG9jdW1lbnQtPnN0eWxlU2hlZXRDb2xsZWN0aW9uKCkuYWRkVXNlclNoZWV0KHN0
ZDo6bW92ZShwYXJzZWRTaGVldCkpOworICAgIGRvY3VtZW50LT5zdHlsZVNoZWV0Q29sbGVjdGlv
bigpLmFkZFVzZXJTaGVldChXVEY6Om1vdmUocGFyc2VkU2hlZXQpKTsKIH0KIAogU3RyaW5nIElu
dGVybmFsczo6Y291bnRlclZhbHVlKEVsZW1lbnQqIGVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IGFi
YTVjMDAuLmZmZTQxNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC00MSwxMyArNDEsMTMgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBQYXNzUmVmUHRyPERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPiBEZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6Y3JlYXRlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+IHNldHRpbmdzLCBE
ZWRpY2F0ZWRXb3JrZXJUaHJlYWQmIHRocmVhZCwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJp
dHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJp
dHlQb2xpY3lUeXBlLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pCiB7Ci0g
ICAgUmVmUHRyPERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPiBjb250ZXh0ID0gYWRvcHRSZWYo
bmV3IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKHVybCwgdXNlckFnZW50LCBzdGQ6Om1vdmUo
c2V0dGluZ3MpLCB0aHJlYWQsIHRvcE9yaWdpbikpOworICAgIFJlZlB0cjxEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZT4gY29udGV4dCA9IGFkb3B0UmVmKG5ldyBEZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZSh1cmwsIHVzZXJBZ2VudCwgV1RGOjptb3ZlKHNldHRpbmdzKSwgdGhyZWFkLCB0b3BP
cmlnaW4pKTsKICAgICBjb250ZXh0LT5hcHBseUNvbnRlbnRTZWN1cml0eVBvbGljeUZyb21TdHJp
bmcoY29udGVudFNlY3VyaXR5UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKTsKICAg
ICByZXR1cm4gY29udGV4dC5yZWxlYXNlKCk7CiB9CiAKIERlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlOjpEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiBzZXR0aW5ncywg
RGVkaWNhdGVkV29ya2VyVGhyZWFkJiB0aHJlYWQsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IHRvcE9yaWdpbikKLSAgICA6IFdvcmtlckdsb2JhbFNjb3BlKHVybCwgdXNlckFnZW50LCBzdGQ6
Om1vdmUoc2V0dGluZ3MpLCB0aHJlYWQsIHRvcE9yaWdpbikKKyAgICA6IFdvcmtlckdsb2JhbFNj
b3BlKHVybCwgdXNlckFnZW50LCBXVEY6Om1vdmUoc2V0dGluZ3MpLCB0aHJlYWQsIHRvcE9yaWdp
bikKIHsKIH0KIApAQCAtNzQsNyArNzQsNyBAQCB2b2lkIERlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlOjpwb3N0TWVzc2FnZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbQogICAg
IHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4gY2hhbm5lbHMgPSBNZXNz
YWdlUG9ydDo6ZGlzZW50YW5nbGVQb3J0cyhwb3J0cywgZWMpOwogICAgIGlmIChlYykKICAgICAg
ICAgcmV0dXJuOwotICAgIHRocmVhZCgpLndvcmtlck9iamVjdFByb3h5KCkucG9zdE1lc3NhZ2VU
b1dvcmtlck9iamVjdChtZXNzYWdlLCBzdGQ6Om1vdmUoY2hhbm5lbHMpKTsKKyAgICB0aHJlYWQo
KS53b3JrZXJPYmplY3RQcm94eSgpLnBvc3RNZXNzYWdlVG9Xb3JrZXJPYmplY3QobWVzc2FnZSwg
V1RGOjptb3ZlKGNoYW5uZWxzKSk7CiB9CiAKIHZvaWQgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGU6OmltcG9ydFNjcmlwdHMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHVybHMsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3Jr
ZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJl
YWQuY3BwCmluZGV4IGVkZmFiMWMuLjY5OTdhMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgRGVkaWNh
dGVkV29ya2VyVGhyZWFkOjp+RGVkaWNhdGVkV29ya2VyVGhyZWFkKCkKIAogUGFzc1JlZlB0cjxX
b3JrZXJHbG9iYWxTY29wZT4gRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpjcmVhdGVXb3JrZXJHbG9i
YWxTY29wZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5p
cXVlX3B0cjxHcm91cFNldHRpbmdzPiBzZXR0aW5ncywgY29uc3QgU3RyaW5nJiBjb250ZW50U2Vj
dXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2Vj
dXJpdHlQb2xpY3lUeXBlLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pCiB7
Ci0gICAgcmV0dXJuIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGUodXJsLCB1c2Vy
QWdlbnQsIHN0ZDo6bW92ZShzZXR0aW5ncyksICp0aGlzLCBjb250ZW50U2VjdXJpdHlQb2xpY3ks
IGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIHRvcE9yaWdpbik7CisgICAgcmV0dXJuIERlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGUodXJsLCB1c2VyQWdlbnQsIFdURjo6bW92ZShz
ZXR0aW5ncyksICp0aGlzLCBjb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBv
bGljeVR5cGUsIHRvcE9yaWdpbik7CiB9CiAKIHZvaWQgRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpy
dW5FdmVudExvb3AoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0
U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1
bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAppbmRleCAxZDA5OGQ4Li42MjAxMTRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0
b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJS
ZXBvc2l0b3J5LmNwcApAQCAtMTUzLDcgKzE1Myw3IEBAIHZvaWQgU2hhcmVkV29ya2VyUHJveHk6
OnBvc3RUYXNrVG9Mb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayB0YXNrKQogICAg
IC8vIEp1c3QgcGljayBhbiBhcmJpdHJhcnkgYWN0aXZlIGRvY3VtZW50IGZyb20gdGhlIEhhc2hT
ZXQgYW5kIHBhc3MgbG9hZCByZXF1ZXN0cyB0byBpdC4KICAgICAvLyBGSVhNRTogRG8gd2UgbmVl
ZCB0byBkZWFsIHdpdGggdGhlIGNhc2Ugd2hlcmUgdGhlIHVzZXIgY2xvc2VzIHRoZSBkb2N1bWVu
dCBtaWQtbG9hZCwgdmlhIGEgc2hhZG93IGRvY3VtZW50IG9yIHNvbWUgb3RoZXIgc29sdXRpb24/
CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gKihtX3dvcmtlckRvY3VtZW50cy5iZWdpbigpKTsK
LSAgICBkb2N1bWVudC0+cG9zdFRhc2soc3RkOjptb3ZlKHRhc2spKTsKKyAgICBkb2N1bWVudC0+
cG9zdFRhc2soV1RGOjptb3ZlKHRhc2spKTsKIH0KIAogYm9vbCBTaGFyZWRXb3JrZXJQcm94eTo6
cG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJHbG9iYWxTY29wZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjpUYXNrIHRhc2ssIGNvbnN0IFN0cmluZyYgbW9kZSkKQEAgLTE2MSw3ICsxNjEsNyBAQCBib29s
IFNoYXJlZFdvcmtlclByb3h5Ojpwb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3BlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleAogICAgIGlmIChpc0Nsb3NpbmcoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIEFTU0VSVChtX3RocmVhZCk7Ci0gICAgbV90aHJlYWQtPnJ1bkxvb3AoKS5w
b3N0VGFza0Zvck1vZGUoc3RkOjptb3ZlKHRhc2spLCBtb2RlKTsKKyAgICBtX3RocmVhZC0+cnVu
TG9vcCgpLnBvc3RUYXNrRm9yTW9kZShXVEY6Om1vdmUodGFzayksIG1vZGUpOwogICAgIHJldHVy
biB0cnVlOwogfQogCkBAIC0yODgsNyArMjg4LDcgQEAgcHJpdmF0ZToKIAogU2hhcmVkV29ya2Vy
U2NyaXB0TG9hZGVyOjpTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXIoUGFzc1JlZlB0cjxTaGFyZWRX
b3JrZXI+IHdvcmtlciwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbD4gcG9ydCwg
UGFzc1JlZlB0cjxTaGFyZWRXb3JrZXJQcm94eT4gcHJveHkpCiAgICAgOiBtX3dvcmtlcih3b3Jr
ZXIpCi0gICAgLCBtX3BvcnQoc3RkOjptb3ZlKHBvcnQpKQorICAgICwgbV9wb3J0KFdURjo6bW92
ZShwb3J0KSkKICAgICAsIG1fcHJveHkocHJveHkpCiB7CiB9CkBAIC0zMjAsNyArMzIwLDcgQEAg
dm9pZCBTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKCkKICAgICBlbHNl
IHsKICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3JpcHRJbXBvcnRlZChtX3dv
cmtlci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX3NjcmlwdExvYWRlci0+aWRlbnRpZmll
cigpLCBtX3NjcmlwdExvYWRlci0+c2NyaXB0KCkpOwogICAgICAgICBEZWZhdWx0U2hhcmVkV29y
a2VyUmVwb3NpdG9yeTo6aW5zdGFuY2UoKS53b3JrZXJTY3JpcHRMb2FkZWQoKm1fcHJveHksIG1f
d29ya2VyLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVzZXJBZ2VudChtX3NjcmlwdExvYWRl
ci0+dXJsKCkpLAotICAgICAgICAgICAgbV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpLCBzdGQ6Om1v
dmUobV9wb3J0KSwKKyAgICAgICAgICAgIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSwgV1RGOjpt
b3ZlKG1fcG9ydCksCiAgICAgICAgICAgICBtX3dvcmtlci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+ZGVwcmVjYXRlZEhlYWRlcigpLAogICAgICAg
ICAgICAgbV93b3JrZXItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+Y29udGVudFNlY3VyaXR5
UG9saWN5KCktPmRlcHJlY2F0ZWRIZWFkZXJUeXBlKCkpOwogICAgIH0KQEAgLTQwNyw3ICs0MDcs
NyBAQCB2b2lkIERlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5Ojpjb25uZWN0VG9Xb3JrZXIo
UGFzc1JlZlB0cjxTaGFyZWRXb3JrZXI+IHdvcgogICAgIGlmIChwcm94eS0+dGhyZWFkKCkpCiAg
ICAgICAgIHByb3h5LT50aHJlYWQoKS0+cnVuTG9vcCgpLnBvc3RUYXNrKFNoYXJlZFdvcmtlckNv
bm5lY3RUYXNrKHBvcnQucmVsZWFzZSgpKSk7CiAgICAgZWxzZSB7Ci0gICAgICAgIFJlZlB0cjxT
aGFyZWRXb3JrZXJTY3JpcHRMb2FkZXI+IGxvYWRlciA9IGFkb3B0UmVmKG5ldyBTaGFyZWRXb3Jr
ZXJTY3JpcHRMb2FkZXIod29ya2VyLCBzdGQ6Om1vdmUocG9ydCksIHByb3h5LnJlbGVhc2UoKSkp
OworICAgICAgICBSZWZQdHI8U2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyPiBsb2FkZXIgPSBhZG9w
dFJlZihuZXcgU2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyKHdvcmtlciwgV1RGOjptb3ZlKHBvcnQp
LCBwcm94eS5yZWxlYXNlKCkpKTsKICAgICAgICAgbG9hZGVyLT5sb2FkKHVybCk7CiAgICAgfQog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXIuY3BwCmluZGV4IDhlYjM1ZDIuLmJh
YmQ3YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlci5jcHAKQEAgLTc3LDcg
Kzc3LDcgQEAgUGFzc1JlZlB0cjxTaGFyZWRXb3JrZXI+IFNoYXJlZFdvcmtlcjo6Y3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGMKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
fQogCi0gICAgU2hhcmVkV29ya2VyUmVwb3NpdG9yeTo6Y29ubmVjdCh3b3JrZXIuZ2V0KCksIHN0
ZDo6bW92ZShyZW1vdGVQb3J0KSwgc2NyaXB0VVJMLCBuYW1lLCBlYyk7CisgICAgU2hhcmVkV29y
a2VyUmVwb3NpdG9yeTo6Y29ubmVjdCh3b3JrZXIuZ2V0KCksIFdURjo6bW92ZShyZW1vdGVQb3J0
KSwgc2NyaXB0VVJMLCBuYW1lLCBlYyk7CiAKICAgICByZXR1cm4gd29ya2VyLnJlbGVhc2UoKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyR2xvYmFs
U2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJHbG9iYWxTY29w
ZS5jcHAKaW5kZXggZGIwYjRhMi4uY2Q4YTc4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9TaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9TaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTU0LDEzICs1NCwxMyBAQCBQ
YXNzUmVmUHRyPE1lc3NhZ2VFdmVudD4gY3JlYXRlQ29ubmVjdEV2ZW50KFBhc3NSZWZQdHI8TWVz
c2FnZVBvcnQ+IHBycFBvcnQpCiAvLyBzdGF0aWMKIFBhc3NSZWZQdHI8U2hhcmVkV29ya2VyR2xv
YmFsU2NvcGU+IFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVl
X3B0cjxHcm91cFNldHRpbmdzPiBzZXR0aW5ncywgU2hhcmVkV29ya2VyVGhyZWFkJiB0aHJlYWQs
IGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xp
Y3k6OkhlYWRlclR5cGUgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSkKIHsKLSAgICBSZWZQdHI8
U2hhcmVkV29ya2VyR2xvYmFsU2NvcGU+IGNvbnRleHQgPSBhZG9wdFJlZihuZXcgU2hhcmVkV29y
a2VyR2xvYmFsU2NvcGUobmFtZSwgdXJsLCB1c2VyQWdlbnQsIHN0ZDo6bW92ZShzZXR0aW5ncyks
IHRocmVhZCkpOworICAgIFJlZlB0cjxTaGFyZWRXb3JrZXJHbG9iYWxTY29wZT4gY29udGV4dCA9
IGFkb3B0UmVmKG5ldyBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZShuYW1lLCB1cmwsIHVzZXJBZ2Vu
dCwgV1RGOjptb3ZlKHNldHRpbmdzKSwgdGhyZWFkKSk7CiAgICAgY29udGV4dC0+YXBwbHlDb250
ZW50U2VjdXJpdHlQb2xpY3lGcm9tU3RyaW5nKGNvbnRlbnRTZWN1cml0eVBvbGljeSwgY29udGVu
dFNlY3VyaXR5UG9saWN5VHlwZSk7CiAgICAgcmV0dXJuIGNvbnRleHQucmVsZWFzZSgpOwogfQog
CiBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZTo6U2hhcmVkV29ya2VyR2xvYmFsU2NvcGUoY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0
ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiBzZXR0aW5ncywgU2hhcmVkV29ya2VyVGhyZWFk
JiB0aHJlYWQpCi0gICAgOiBXb3JrZXJHbG9iYWxTY29wZSh1cmwsIHVzZXJBZ2VudCwgc3RkOjpt
b3ZlKHNldHRpbmdzKSwgdGhyZWFkLCAwKQorICAgIDogV29ya2VyR2xvYmFsU2NvcGUodXJsLCB1
c2VyQWdlbnQsIFdURjo6bW92ZShzZXR0aW5ncyksIHRocmVhZCwgMCkKICAgICAsIG1fbmFtZShu
YW1lKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3Jr
ZXJSZXBvc2l0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyUmVw
b3NpdG9yeS5jcHAKaW5kZXggNTcxYzljNy4uYTE4NzUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1NoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCkBAIC00Myw3ICs0Myw3IEBA
IGJvb2wgU2hhcmVkV29ya2VyUmVwb3NpdG9yeTo6aXNBdmFpbGFibGUoKQogCiB2b2lkIFNoYXJl
ZFdvcmtlclJlcG9zaXRvcnk6OmNvbm5lY3QoUGFzc1JlZlB0cjxTaGFyZWRXb3JrZXI+IHdvcmtl
ciwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbD4gcG9ydCwgY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgRGVmYXVs
dFNoYXJlZFdvcmtlclJlcG9zaXRvcnk6Omluc3RhbmNlKCkuY29ubmVjdFRvV29ya2VyKHdvcmtl
ciwgc3RkOjptb3ZlKHBvcnQpLCB1cmwsIG5hbWUsIGVjKTsKKyAgICBEZWZhdWx0U2hhcmVkV29y
a2VyUmVwb3NpdG9yeTo6aW5zdGFuY2UoKS5jb25uZWN0VG9Xb3JrZXIod29ya2VyLCBXVEY6Om1v
dmUocG9ydCksIHVybCwgbmFtZSwgZWMpOwogfQogCiB2b2lkIFNoYXJlZFdvcmtlclJlcG9zaXRv
cnk6OmRvY3VtZW50RGV0YWNoZWQoRG9jdW1lbnQqIGRvY3VtZW50KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQuY3BwCmluZGV4IGZkYTcwY2QuLjY1NTcxYjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyVGhyZWFkLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlclRocmVhZC5jcHAKQEAg
LTU1LDcgKzU1LDcgQEAgU2hhcmVkV29ya2VyVGhyZWFkOjp+U2hhcmVkV29ya2VyVGhyZWFkKCkK
IAogUGFzc1JlZlB0cjxXb3JrZXJHbG9iYWxTY29wZT4gU2hhcmVkV29ya2VyVGhyZWFkOjpjcmVh
dGVXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdl
bnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiBzZXR0aW5ncywgY29uc3QgU3RyaW5n
JiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlw
ZSBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPikK
IHsKLSAgICByZXR1cm4gU2hhcmVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZShtX25hbWUsIHVy
bCwgdXNlckFnZW50LCBzdGQ6Om1vdmUoc2V0dGluZ3MpLCAqdGhpcywgY29udGVudFNlY3VyaXR5
UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKTsKKyAgICByZXR1cm4gU2hhcmVkV29y
a2VyR2xvYmFsU2NvcGU6OmNyZWF0ZShtX25hbWUsIHVybCwgdXNlckFnZW50LCBXVEY6Om1vdmUo
c2V0dGluZ3MpLCAqdGhpcywgY29udGVudFNlY3VyaXR5UG9saWN5LCBjb250ZW50U2VjdXJpdHlQ
b2xpY3lUeXBlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXIuY3BwCmluZGV4IDgyOWM2Y2UuLjEzYmQ2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ci5jcHAKQEAgLTExOCw3ICsxMTgsNyBAQCB2b2lkIFdvcmtlcjo6cG9zdE1lc3NhZ2UoUGFzc1Jl
ZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIGNvbnN0IE1lc3NhZwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4gY2hhbm5lbHMgPSBNZXNzYWdl
UG9ydDo6ZGlzZW50YW5nbGVQb3J0cyhwb3J0cywgZWMpOwogICAgIGlmIChlYykKICAgICAgICAg
cmV0dXJuOwotICAgIG1fY29udGV4dFByb3h5LT5wb3N0TWVzc2FnZVRvV29ya2VyR2xvYmFsU2Nv
cGUobWVzc2FnZSwgc3RkOjptb3ZlKGNoYW5uZWxzKSk7CisgICAgbV9jb250ZXh0UHJveHktPnBv
c3RNZXNzYWdlVG9Xb3JrZXJHbG9iYWxTY29wZShtZXNzYWdlLCBXVEY6Om1vdmUoY2hhbm5lbHMp
KTsKIH0KIAogdm9pZCBXb3JrZXI6OnRlcm1pbmF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IDFjNjEwY2EuLmRlMTIxNGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC02Niw3ICs2Niw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFdvcmtlckdsb2JhbFNjb3BlOjpXb3JrZXJHbG9iYWxT
Y29wZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVl
X3B0cjxHcm91cFNldHRpbmdzPiBzZXR0aW5ncywgV29ya2VyVGhyZWFkJiB0aHJlYWQsIFBhc3NS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikKICAgICA6IG1fdXJsKHVybCkKICAgICAs
IG1fdXNlckFnZW50KHVzZXJBZ2VudCkKLSAgICAsIG1fZ3JvdXBTZXR0aW5ncyhzdGQ6Om1vdmUo
c2V0dGluZ3MpKQorICAgICwgbV9ncm91cFNldHRpbmdzKFdURjo6bW92ZShzZXR0aW5ncykpCiAg
ICAgLCBtX3NjcmlwdChzdGQ6Om1ha2VfdW5pcXVlPFdvcmtlclNjcmlwdENvbnRyb2xsZXI+KHRo
aXMpKQogICAgICwgbV90aHJlYWQodGhyZWFkKQogI2lmIEVOQUJMRShJTlNQRUNUT1IpCkBAIC0x
NDksMTIgKzE0OSwxMiBAQCBXb3JrZXJOYXZpZ2F0b3IqIFdvcmtlckdsb2JhbFNjb3BlOjpuYXZp
Z2F0b3IoKSBjb25zdAogCiB2b2lkIFdvcmtlckdsb2JhbFNjb3BlOjpwb3N0VGFzayhUYXNrIHRh
c2spCiB7Ci0gICAgdGhyZWFkKCkucnVuTG9vcCgpLnBvc3RUYXNrKHN0ZDo6bW92ZSh0YXNrKSk7
CisgICAgdGhyZWFkKCkucnVuTG9vcCgpLnBvc3RUYXNrKFdURjo6bW92ZSh0YXNrKSk7CiB9CiAK
IGludCBXb3JrZXJHbG9iYWxTY29wZTo6c2V0VGltZW91dChzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1
bGVkQWN0aW9uPiBhY3Rpb24sIGludCB0aW1lb3V0KQogewotICAgIHJldHVybiBET01UaW1lcjo6
aW5zdGFsbChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHN0ZDo6bW92ZShhY3Rpb24pLCB0aW1l
b3V0LCB0cnVlKTsKKyAgICByZXR1cm4gRE9NVGltZXI6Omluc3RhbGwoc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLCBXVEY6Om1vdmUoYWN0aW9uKSwgdGltZW91dCwgdHJ1ZSk7CiB9CiAKIHZvaWQg
V29ya2VyR2xvYmFsU2NvcGU6OmNsZWFyVGltZW91dChpbnQgdGltZW91dElkKQpAQCAtMTY0LDcg
KzE2NCw3IEBAIHZvaWQgV29ya2VyR2xvYmFsU2NvcGU6OmNsZWFyVGltZW91dChpbnQgdGltZW91
dElkKQogCiBpbnQgV29ya2VyR2xvYmFsU2NvcGU6OnNldEludGVydmFsKHN0ZDo6dW5pcXVlX3B0
cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlvbiwgaW50IHRpbWVvdXQpCiB7Ci0gICAgcmV0dXJuIERP
TVRpbWVyOjppbnN0YWxsKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgc3RkOjptb3ZlKGFjdGlv
biksIHRpbWVvdXQsIGZhbHNlKTsKKyAgICByZXR1cm4gRE9NVGltZXI6Omluc3RhbGwoc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLCBXVEY6Om1vdmUoYWN0aW9uKSwgdGltZW91dCwgZmFsc2UpOwog
fQogCiB2b2lkIFdvcmtlckdsb2JhbFNjb3BlOjpjbGVhckludGVydmFsKGludCB0aW1lb3V0SWQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCmlu
ZGV4IDU1MDFmNTUuLjAzNzU5MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyTWVzc2FnaW5nUHJveHkuY3BwCkBAIC0xMDIsNyArMTAyLDcgQEAgdm9pZCBXb3JrZXJNZXNz
YWdpbmdQcm94eTo6cG9zdE1lc3NhZ2VUb1dvcmtlck9iamVjdChQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHQKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8
TWVzc2FnZVBvcnRBcnJheT4gcG9ydHMgPSBNZXNzYWdlUG9ydDo6ZW50YW5nbGVQb3J0cyhjb250
ZXh0LCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+KGNoYW5uZWxzUHRy
KSk7Ci0gICAgICAgIHdvcmtlck9iamVjdC0+ZGlzcGF0Y2hFdmVudChNZXNzYWdlRXZlbnQ6OmNy
ZWF0ZShzdGQ6Om1vdmUocG9ydHMpLCBtZXNzYWdlKSk7CisgICAgICAgIHdvcmtlck9iamVjdC0+
ZGlzcGF0Y2hFdmVudChNZXNzYWdlRXZlbnQ6OmNyZWF0ZShXVEY6Om1vdmUocG9ydHMpLCBtZXNz
YWdlKSk7CiAgICAgfSk7CiB9CiAKQEAgLTExNiwyMiArMTE2LDIyIEBAIHZvaWQgV29ya2VyTWVz
c2FnaW5nUHJveHk6OnBvc3RNZXNzYWdlVG9Xb3JrZXJHbG9iYWxTY29wZShQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRTCiAgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHNjcmlw
dENvbnRleHQuaXNXb3JrZXJHbG9iYWxTY29wZSgpKTsKICAgICAgICAgRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGUmIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZSY+KHNjcmlwdENvbnRleHQpOwogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBv
cnRBcnJheT4gcG9ydHMgPSBNZXNzYWdlUG9ydDo6ZW50YW5nbGVQb3J0cyhzY3JpcHRDb250ZXh0
LCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+KGNoYW5uZWxzUHRyKSk7
Ci0gICAgICAgIGNvbnRleHQuZGlzcGF0Y2hFdmVudChNZXNzYWdlRXZlbnQ6OmNyZWF0ZShzdGQ6
Om1vdmUocG9ydHMpLCBtZXNzYWdlKSk7CisgICAgICAgIGNvbnRleHQuZGlzcGF0Y2hFdmVudChN
ZXNzYWdlRXZlbnQ6OmNyZWF0ZShXVEY6Om1vdmUocG9ydHMpLCBtZXNzYWdlKSk7CiAgICAgICAg
IGNvbnRleHQudGhyZWFkKCkud29ya2VyT2JqZWN0UHJveHkoKS5jb25maXJtTWVzc2FnZUZyb21X
b3JrZXJPYmplY3QoY29udGV4dC5oYXNQZW5kaW5nQWN0aXZpdHkoKSk7CiAgICAgfSk7CiAKICAg
ICBpZiAobV93b3JrZXJUaHJlYWQpIHsKICAgICAgICAgKyttX3VuY29uZmlybWVkTWVzc2FnZUNv
dW50OwotICAgICAgICBtX3dvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrKHN0ZDo6bW92
ZSh0YXNrKSk7CisgICAgICAgIG1fd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2soV1RG
Ojptb3ZlKHRhc2spKTsKICAgICB9IGVsc2UKLSAgICAgICAgbV9xdWV1ZWRFYXJseVRhc2tzLmFw
cGVuZChzdGQ6Om1ha2VfdW5pcXVlPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+KHN0ZDo6
bW92ZSh0YXNrKSkpOworICAgICAgICBtX3F1ZXVlZEVhcmx5VGFza3MuYXBwZW5kKHN0ZDo6bWFr
ZV91bmlxdWU8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4oV1RGOjptb3ZlKHRhc2spKSk7
CiB9CiAKIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RUYXNrVG9Mb2FkZXIoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDo6VGFzayB0YXNrKQogewogICAgIC8vIEZJWE1FOiBJbiBjYXNlIG9m
IG5lc3RlZCB3b3JrZXJzLCB0aGlzIHNob3VsZCBnbyBkaXJlY3RseSB0byB0aGUgcm9vdCBEb2N1
bWVudCBjb250ZXh0LgogICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzRG9j
dW1lbnQoKSk7Ci0gICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5wb3N0VGFzayhzdGQ6Om1v
dmUodGFzaykpOworICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2soV1RGOjpt
b3ZlKHRhc2spKTsKIH0KIAogYm9vbCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdFRhc2tGb3JN
b2RlVG9Xb3JrZXJHbG9iYWxTY29wZShTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrIHRhc2ss
IGNvbnN0IFN0cmluZyYgbW9kZSkKQEAgLTE0MCw3ICsxNDAsNyBAQCBib29sIFdvcmtlck1lc3Nh
Z2luZ1Byb3h5Ojpwb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1
dGlvbkNvbgogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBBU1NFUlQobV93b3JrZXJUaHJl
YWQpOwotICAgIG1fd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKHN0ZDo6
bW92ZSh0YXNrKSwgbW9kZSk7CisgICAgbV93b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFz
a0Zvck1vZGUoV1RGOjptb3ZlKHRhc2spLCBtb2RlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApA
QCAtMTg1LDkgKzE4NSw5IEBAIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OndvcmtlclRocmVh
ZENyZWF0ZWQoUGFzc1JlZlB0cjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+CiAgICAgICAgIG1fdW5j
b25maXJtZWRNZXNzYWdlQ291bnQgPSBtX3F1ZXVlZEVhcmx5VGFza3Muc2l6ZSgpOwogICAgICAg
ICBtX3dvcmtlclRocmVhZEhhZFBlbmRpbmdBY3Rpdml0eSA9IHRydWU7IC8vIFdvcmtlciBpbml0
aWFsaXphdGlvbiBtZWFucyBhIHBlbmRpbmcgYWN0aXZpdHkuCiAKLSAgICAgICAgYXV0byBxdWV1
ZWRFYXJseVRhc2tzID0gc3RkOjptb3ZlKG1fcXVldWVkRWFybHlUYXNrcyk7CisgICAgICAgIGF1
dG8gcXVldWVkRWFybHlUYXNrcyA9IFdURjo6bW92ZShtX3F1ZXVlZEVhcmx5VGFza3MpOwogICAg
ICAgICBmb3IgKGF1dG8mIHRhc2sgOiBxdWV1ZWRFYXJseVRhc2tzKQotICAgICAgICAgICAgbV93
b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFzayhzdGQ6Om1vdmUoKnRhc2spKTsKKyAgICAg
ICAgICAgIG1fd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2soV1RGOjptb3ZlKCp0YXNr
KSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clJ1bkxvb3AuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcApp
bmRleCBkN2I3YTdlLi5lNzk1NjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclJ1bkxvb3AuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVu
TG9vcC5jcHAKQEAgLTE5NCwyMiArMTk0LDIyIEBAIHZvaWQgV29ya2VyUnVuTG9vcDo6dGVybWlu
YXRlKCkKIAogdm9pZCBXb3JrZXJSdW5Mb29wOjpwb3N0VGFzayhTY3JpcHRFeGVjdXRpb25Db250
ZXh0OjpUYXNrIHRhc2spCiB7Ci0gICAgcG9zdFRhc2tGb3JNb2RlKHN0ZDo6bW92ZSh0YXNrKSwg
ZGVmYXVsdE1vZGUoKSk7CisgICAgcG9zdFRhc2tGb3JNb2RlKFdURjo6bW92ZSh0YXNrKSwgZGVm
YXVsdE1vZGUoKSk7CiB9CiAKIHZvaWQgV29ya2VyUnVuTG9vcDo6cG9zdFRhc2tBbmRUZXJtaW5h
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayB0YXNrKQogewotICAgIG1fbWVzc2FnZVF1
ZXVlLmFwcGVuZEFuZEtpbGwoVGFzazo6Y3JlYXRlKHN0ZDo6bW92ZSh0YXNrKSwgZGVmYXVsdE1v
ZGUoKS5pc29sYXRlZENvcHkoKSkpOworICAgIG1fbWVzc2FnZVF1ZXVlLmFwcGVuZEFuZEtpbGwo
VGFzazo6Y3JlYXRlKFdURjo6bW92ZSh0YXNrKSwgZGVmYXVsdE1vZGUoKS5pc29sYXRlZENvcHko
KSkpOwogfQogCiB2b2lkIFdvcmtlclJ1bkxvb3A6OnBvc3RUYXNrRm9yTW9kZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjpUYXNrIHRhc2ssIGNvbnN0IFN0cmluZyYgbW9kZSkKIHsKLSAgICBtX21l
c3NhZ2VRdWV1ZS5hcHBlbmQoVGFzazo6Y3JlYXRlKHN0ZDo6bW92ZSh0YXNrKSwgbW9kZS5pc29s
YXRlZENvcHkoKSkpOworICAgIG1fbWVzc2FnZVF1ZXVlLmFwcGVuZChUYXNrOjpjcmVhdGUoV1RG
Ojptb3ZlKHRhc2spLCBtb2RlLmlzb2xhdGVkQ29weSgpKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0
cjxXb3JrZXJSdW5Mb29wOjpUYXNrPiBXb3JrZXJSdW5Mb29wOjpUYXNrOjpjcmVhdGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDo6VGFzayB0YXNrLCBjb25zdCBTdHJpbmcmIG1vZGUpCiB7Ci0gICAg
cmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxUYXNrPihuZXcgVGFzayhzdGQ6Om1vdmUodGFzayksIG1v
ZGUpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFRhc2s+KG5ldyBUYXNrKFdURjo6bW92
ZSh0YXNrKSwgbW9kZSkpOwogfQogCiB2b2lkIFdvcmtlclJ1bkxvb3A6OlRhc2s6OnBlcmZvcm1U
YXNrKGNvbnN0IFdvcmtlclJ1bkxvb3AmIHJ1bkxvb3AsIFdvcmtlckdsb2JhbFNjb3BlKiBjb250
ZXh0KQpAQCAtMjE5LDcgKzIxOSw3IEBAIHZvaWQgV29ya2VyUnVuTG9vcDo6VGFzazo6cGVyZm9y
bVRhc2soY29uc3QgV29ya2VyUnVuTG9vcCYgcnVuTG9vcCwgV29ya2VyR2xvYmFsCiB9CiAKIFdv
cmtlclJ1bkxvb3A6OlRhc2s6OlRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayB0YXNr
LCBjb25zdCBTdHJpbmcmIG1vZGUpCi0gICAgOiBtX3Rhc2soc3RkOjptb3ZlKHRhc2spKQorICAg
IDogbV90YXNrKFdURjo6bW92ZSh0YXNrKSkKICAgICAsIG1fbW9kZShtb2RlLmlzb2xhdGVkQ29w
eSgpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3Jp
cHRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIu
Y3BwCmluZGV4IDFlZjAzMzkuLjA1YzVmYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclNjcmlwdExvYWRlci5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCBzdGQ6OnVuaXF1ZV9w
dHI8UmVzb3VyY2VSZXF1ZXN0PiBXb3JrZXJTY3JpcHRMb2FkZXI6OmNyZWF0ZVJlc291cmNlUmVx
dWVzdCgpCiB7CiAgICAgYXV0byByZXF1ZXN0ID0gc3RkOjptYWtlX3VuaXF1ZTxSZXNvdXJjZVJl
cXVlc3Q+KG1fdXJsKTsKICAgICByZXF1ZXN0LT5zZXRIVFRQTWV0aG9kKCJHRVQiKTsKLSAgICBy
ZXR1cm4gc3RkOjptb3ZlKHJlcXVlc3QpOworICAgIHJldHVybiBXVEY6Om1vdmUocmVxdWVzdCk7
CiB9CiAgICAgCiB2b2lkIFdvcmtlclNjcmlwdExvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKaW5kZXggMDNhMmU3My4uZTQ0
MjI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcApAQCAtMTU5LDcg
KzE1OSw3IEBAIHZvaWQgV29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWQoKQogCiAgICAgewogICAg
ICAgICBNdXRleExvY2tlciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7Ci0gICAgICAgIG1f
d29ya2VyR2xvYmFsU2NvcGUgPSBjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShtX3N0YXJ0dXBEYXRh
LT5tX3NjcmlwdFVSTCwgbV9zdGFydHVwRGF0YS0+bV91c2VyQWdlbnQsIHN0ZDo6bW92ZShtX3N0
YXJ0dXBEYXRhLT5tX2dyb3VwU2V0dGluZ3MpLCBtX3N0YXJ0dXBEYXRhLT5tX2NvbnRlbnRTZWN1
cml0eVBvbGljeSwgbV9zdGFydHVwRGF0YS0+bV9jb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCBt
X3N0YXJ0dXBEYXRhLT5tX3RvcE9yaWdpbi5yZWxlYXNlKCkpOworICAgICAgICBtX3dvcmtlckds
b2JhbFNjb3BlID0gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUobV9zdGFydHVwRGF0YS0+bV9zY3Jp
cHRVUkwsIG1fc3RhcnR1cERhdGEtPm1fdXNlckFnZW50LCBXVEY6Om1vdmUobV9zdGFydHVwRGF0
YS0+bV9ncm91cFNldHRpbmdzKSwgbV9zdGFydHVwRGF0YS0+bV9jb250ZW50U2VjdXJpdHlQb2xp
Y3ksIG1fc3RhcnR1cERhdGEtPm1fY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSwgbV9zdGFydHVw
RGF0YS0+bV90b3BPcmlnaW4ucmVsZWFzZSgpKTsKIAogICAgICAgICBpZiAobV9ydW5Mb29wLnRl
cm1pbmF0ZWQoKSkgewogICAgICAgICAgICAgLy8gVGhlIHdvcmtlciB3YXMgdGVybWluYXRlZCBi
ZWZvcmUgdGhlIHRocmVhZCBoYWQgYSBjaGFuY2UgdG8gcnVuLiBTaW5jZSB0aGUgY29udGV4dCBk
aWRuJ3QgZXhpc3QgeWV0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXgg
NWE2NzZhOS4uYzkzZWIyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBA
IC0yNDIsNyArMjQyLDcgQEAgQmxvYiogWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlQmxvYigpCiAg
ICAgICAgICAgICBWZWN0b3I8Y2hhcj4gZGF0YTsKICAgICAgICAgICAgIGRhdGEuYXBwZW5kKG1f
YmluYXJ5UmVzcG9uc2VCdWlsZGVyLT5kYXRhKCksIG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVyLT5z
aXplKCkpOwogICAgICAgICAgICAgU3RyaW5nIG5vcm1hbGl6ZWRDb250ZW50VHlwZSA9IEJsb2I6
Om5vcm1hbGl6ZWRDb250ZW50VHlwZShyZXNwb25zZU1JTUVUeXBlKCkpOyAvLyByZXNwb25zZU1J
TUVUeXBlIGRlZmF1bHRzIHRvIHRleHQveG1sIHdoaWNoIG1heSBiZSBpbmNvcnJlY3QuCi0gICAg
ICAgICAgICBtX3Jlc3BvbnNlQmxvYiA9IEJsb2I6OmNyZWF0ZShzdGQ6Om1vdmUoZGF0YSksIG5v
cm1hbGl6ZWRDb250ZW50VHlwZSk7CisgICAgICAgICAgICBtX3Jlc3BvbnNlQmxvYiA9IEJsb2I6
OmNyZWF0ZShXVEY6Om1vdmUoZGF0YSksIG5vcm1hbGl6ZWRDb250ZW50VHlwZSk7CiAgICAgICAg
ICAgICBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlci5jbGVhcigpOwogICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgLy8gSWYgd2UgZXJyb3JlZCBvdXQgb3IgZ290IG5vIGRhdGEsIHdlIHN0aWxs
IHJldHVybiBhIGJsb2IsIGp1c3QgYW4gZW1wdHkgb25lLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5jcHAKaW5k
ZXggNGE0ZWYwNS4uYzY2N2U3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuY3BwCkBAIC0xNDAsNyArMTQw
LDcgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6ZGlzcGF0Y2hE
ZWZlcnJlZEV2ZW50cyhUaW1lcjxYTUxIdHRwUmUKICAgICBtX2RlZmVyRXZlbnRzID0gZmFsc2U7
CiAKICAgICAvLyBUYWtlIG92ZXIgdGhlIGRlZmVycmVkIGV2ZW50cyBiZWZvcmUgZGlzcGF0Y2hp
bmcgdGhlbSB3aGljaCBjYW4gcG90ZW50aWFsbHkgYWRkIG1vcmUuCi0gICAgYXV0byBkZWZlcnJl
ZEV2ZW50cyA9IHN0ZDo6bW92ZShtX2RlZmVycmVkRXZlbnRzKTsKKyAgICBhdXRvIGRlZmVycmVk
RXZlbnRzID0gV1RGOjptb3ZlKG1fZGVmZXJyZWRFdmVudHMpOwogCiAgICAgUmVmUHRyPEV2ZW50
PiBkZWZlcnJlZFByb2dyZXNzRXZlbnQgPSBtX2RlZmVycmVkUHJvZ3Jlc3NFdmVudDsKICAgICBt
X2RlZmVycmVkUHJvZ3Jlc3NFdmVudCA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS94bWwvWFBhdGhFeHByZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV4
cHJlc3Npb24uY3BwCmluZGV4IGM2NTljODIuLjc2NGEzMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9YUGF0aEV4cHJlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9Y
UGF0aEV4cHJlc3Npb24uY3BwCkBAIC00MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IHVzaW5nIG5hbWVzcGFjZSBYUGF0aDsKICAgICAKIGlubGluZSBYUGF0aEV4cHJlc3Npb246OlhQ
YXRoRXhwcmVzc2lvbihzdGQ6OnVuaXF1ZV9wdHI8WFBhdGg6OkV4cHJlc3Npb24+IGV4cHJlc3Np
b24pCi0gICAgOiBtX3RvcEV4cHJlc3Npb24oc3RkOjptb3ZlKGV4cHJlc3Npb24pKQorICAgIDog
bV90b3BFeHByZXNzaW9uKFdURjo6bW92ZShleHByZXNzaW9uKSkKIHsKIH0KIApAQCAtNTEsNyAr
NTEsNyBAQCBQYXNzUmVmUHRyPFhQYXRoRXhwcmVzc2lvbj4gWFBhdGhFeHByZXNzaW9uOjpjcmVh
dGVFeHByZXNzaW9uKGNvbnN0IFN0cmluZyYgZXhwcgogICAgIGlmICghcGFyc2VkRXhwcmVzc2lv
bikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFhQ
YXRoRXhwcmVzc2lvbihzdGQ6Om1vdmUocGFyc2VkRXhwcmVzc2lvbikpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFhQYXRoRXhwcmVzc2lvbihXVEY6Om1vdmUocGFyc2VkRXhwcmVzc2lvbikp
KTsKIH0KIAogWFBhdGhFeHByZXNzaW9uOjp+WFBhdGhFeHByZXNzaW9uKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV4cHJlc3Npb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YUGF0aEV4cHJlc3Npb25Ob2RlLmNwcAppbmRleCAxN2I4MDI0MS4uMGY2YjNiMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXhwcmVzc2lvbk5vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV4cHJlc3Npb25Ob2RlLmNwcApAQCAtNDksNyAr
NDksNyBAQCBFeHByZXNzaW9uOjpFeHByZXNzaW9uKCkKIHZvaWQgRXhwcmVzc2lvbjo6c2V0U3Vi
ZXhwcmVzc2lvbnMoVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPj4gc3ViZXhwcmVz
c2lvbnMpCiB7CiAgICAgQVNTRVJUKG1fc3ViZXhwcmVzc2lvbnMuaXNFbXB0eSgpKTsKLSAgICBt
X3N1YmV4cHJlc3Npb25zID0gc3RkOjptb3ZlKHN1YmV4cHJlc3Npb25zKTsKKyAgICBtX3N1YmV4
cHJlc3Npb25zID0gV1RGOjptb3ZlKHN1YmV4cHJlc3Npb25zKTsKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbV9zdWJleHByZXNzaW9ucy5zaXplKCk7ICsraSkgewogICAgICAgICBtX2lz
Q29udGV4dE5vZGVTZW5zaXRpdmUgfD0gbV9zdWJleHByZXNzaW9uc1tpXS0+bV9pc0NvbnRleHRO
b2RlU2Vuc2l0aXZlOwogICAgICAgICBtX2lzQ29udGV4dFBvc2l0aW9uU2Vuc2l0aXZlIHw9IG1f
c3ViZXhwcmVzc2lvbnNbaV0tPm1faXNDb250ZXh0UG9zaXRpb25TZW5zaXRpdmU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFeHByZXNzaW9uTm9kZS5oIGIvU291cmNlL1dl
YkNvcmUveG1sL1hQYXRoRXhwcmVzc2lvbk5vZGUuaAppbmRleCBjZjI2MTEzLi4wNTQ5YmYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFeHByZXNzaW9uTm9kZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV4cHJlc3Npb25Ob2RlLmgKQEAgLTY2LDcgKzY2LDcg
QEAgcHJvdGVjdGVkOgogICAgICAgICBtX2lzQ29udGV4dE5vZGVTZW5zaXRpdmUgfD0gZXhwcmVz
c2lvbi0+bV9pc0NvbnRleHROb2RlU2Vuc2l0aXZlOwogICAgICAgICBtX2lzQ29udGV4dFBvc2l0
aW9uU2Vuc2l0aXZlIHw9IGV4cHJlc3Npb24tPm1faXNDb250ZXh0UG9zaXRpb25TZW5zaXRpdmU7
CiAgICAgICAgIG1faXNDb250ZXh0U2l6ZVNlbnNpdGl2ZSB8PSBleHByZXNzaW9uLT5tX2lzQ29u
dGV4dFNpemVTZW5zaXRpdmU7Ci0gICAgICAgIG1fc3ViZXhwcmVzc2lvbnMuYXBwZW5kKHN0ZDo6
bW92ZShleHByZXNzaW9uKSk7CisgICAgICAgIG1fc3ViZXhwcmVzc2lvbnMuYXBwZW5kKFdURjo6
bW92ZShleHByZXNzaW9uKSk7CiAgICAgfQogCiAgICAgdm9pZCBzZXRTdWJleHByZXNzaW9ucyhW
ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+Pik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvWFBhdGhGdW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRo
RnVuY3Rpb25zLmNwcAppbmRleCAzYmIxY2NkLi5lMzdkNDA3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvWFBhdGhGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9Y
UGF0aEZ1bmN0aW9ucy5jcHAKQEAgLTI5MSw3ICsyOTEsNyBAQCB2b2lkIEZ1bmN0aW9uOjpzZXRB
cmd1bWVudHMoY29uc3QgU3RyaW5nJiBuYW1lLCBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEV4cHJl
c3NpbwogICAgIGlmIChuYW1lICE9ICJsYW5nIiAmJiAhYXJndW1lbnRzLmlzRW1wdHkoKSkKICAg
ICAgICAgc2V0SXNDb250ZXh0Tm9kZVNlbnNpdGl2ZShmYWxzZSk7CiAKLSAgICBzZXRTdWJleHBy
ZXNzaW9ucyhzdGQ6Om1vdmUoYXJndW1lbnRzKSk7CisgICAgc2V0U3ViZXhwcmVzc2lvbnMoV1RG
Ojptb3ZlKGFyZ3VtZW50cykpOwogfQogCiBWYWx1ZSBGdW5MYXN0OjpldmFsdWF0ZSgpIGNvbnN0
CkBAIC0zNTUsNyArMzU1LDcgQEAgVmFsdWUgRnVuSWQ6OmV2YWx1YXRlKCkgY29uc3QKICAgICAK
ICAgICByZXN1bHQubWFya1NvcnRlZChmYWxzZSk7CiAgICAgCi0gICAgcmV0dXJuIFZhbHVlKHN0
ZDo6bW92ZShyZXN1bHQpKTsKKyAgICByZXR1cm4gVmFsdWUoV1RGOjptb3ZlKHJlc3VsdCkpOwog
fQogCiBzdGF0aWMgaW5saW5lIFN0cmluZyBleHBhbmRlZE5hbWVMb2NhbFBhcnQoTm9kZSogbm9k
ZSkKQEAgLTczNyw3ICs3MzcsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8RnVuY3Rpb24+IEZ1bmN0aW9u
OjpjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBWZWN0b3I8c3RkOjp1bmlxdQogewogICAgIHN0
ZDo6dW5pcXVlX3B0cjxGdW5jdGlvbj4gZnVuY3Rpb24gPSBjcmVhdGUobmFtZSwgYXJndW1lbnRz
LnNpemUoKSk7CiAgICAgaWYgKGZ1bmN0aW9uKQotICAgICAgICBmdW5jdGlvbi0+c2V0QXJndW1l
bnRzKG5hbWUsIHN0ZDo6bW92ZShhcmd1bWVudHMpKTsKKyAgICAgICAgZnVuY3Rpb24tPnNldEFy
Z3VtZW50cyhuYW1lLCBXVEY6Om1vdmUoYXJndW1lbnRzKSk7CiAgICAgcmV0dXJuIGZ1bmN0aW9u
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkgYi9T
b3VyY2UvV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkKaW5kZXggMmIzZDQxNC4uMDRmMjRmMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueQpAQCAtMTY2LDkgKzE2Niw5IEBAIFN0ZXA6CiAg
ICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxTdGVwOjpOb2RlVGVzdD4gbm9kZVRlc3QoJDEpOwogICAg
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPj4+
IHByZWRpY2F0ZUxpc3QoJDIpOwogICAgICAgICBpZiAocHJlZGljYXRlTGlzdCkKLSAgICAgICAg
ICAgICQkID0gbmV3IFN0ZXAoU3RlcDo6Q2hpbGRBeGlzLCBzdGQ6Om1vdmUoKm5vZGVUZXN0KSwg
c3RkOjptb3ZlKCpwcmVkaWNhdGVMaXN0KSk7CisgICAgICAgICAgICAkJCA9IG5ldyBTdGVwKFN0
ZXA6OkNoaWxkQXhpcywgV1RGOjptb3ZlKCpub2RlVGVzdCksIFdURjo6bW92ZSgqcHJlZGljYXRl
TGlzdCkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICAkJCA9IG5ldyBTdGVwKFN0ZXA6OkNo
aWxkQXhpcywgc3RkOjptb3ZlKCpub2RlVGVzdCkpOworICAgICAgICAgICAgJCQgPSBuZXcgU3Rl
cChTdGVwOjpDaGlsZEF4aXMsIFdURjo6bW92ZSgqbm9kZVRlc3QpKTsKICAgICB9CiAgICAgfAog
ICAgIE5BTUVURVNUIE9wdGlvbmFsUHJlZGljYXRlTGlzdApAQCAtMTg0LDcgKzE4NCw3IEBAIFN0
ZXA6CiAgICAgICAgIH0KIAogICAgICAgICBpZiAocHJlZGljYXRlTGlzdCkKLSAgICAgICAgICAg
ICQkID0gbmV3IFN0ZXAoU3RlcDo6Q2hpbGRBeGlzLCBTdGVwOjpOb2RlVGVzdChTdGVwOjpOb2Rl
VGVzdDo6TmFtZVRlc3QsIGxvY2FsTmFtZSwgbmFtZXNwYWNlVVJJKSwgc3RkOjptb3ZlKCpwcmVk
aWNhdGVMaXN0KSk7CisgICAgICAgICAgICAkJCA9IG5ldyBTdGVwKFN0ZXA6OkNoaWxkQXhpcywg
U3RlcDo6Tm9kZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6Ok5hbWVUZXN0LCBsb2NhbE5hbWUsIG5hbWVz
cGFjZVVSSSksIFdURjo6bW92ZSgqcHJlZGljYXRlTGlzdCkpOwogICAgICAgICBlbHNlCiAgICAg
ICAgICAgICAkJCA9IG5ldyBTdGVwKFN0ZXA6OkNoaWxkQXhpcywgU3RlcDo6Tm9kZVRlc3QoU3Rl
cDo6Tm9kZVRlc3Q6Ok5hbWVUZXN0LCBsb2NhbE5hbWUsIG5hbWVzcGFjZVVSSSkpOwogICAgIH0K
QEAgLTE5NSw5ICsxOTUsOSBAQCBTdGVwOgogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9y
PHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPj4+IHByZWRpY2F0ZUxpc3QoJDMpOwogCiAgICAg
ICAgIGlmIChwcmVkaWNhdGVMaXN0KQotICAgICAgICAgICAgJCQgPSBuZXcgU3RlcCgkMSwgc3Rk
Ojptb3ZlKCpub2RlVGVzdCksIHN0ZDo6bW92ZSgqcHJlZGljYXRlTGlzdCkpOworICAgICAgICAg
ICAgJCQgPSBuZXcgU3RlcCgkMSwgV1RGOjptb3ZlKCpub2RlVGVzdCksIFdURjo6bW92ZSgqcHJl
ZGljYXRlTGlzdCkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICAkJCA9IG5ldyBTdGVwKCQx
LCBzdGQ6Om1vdmUoKm5vZGVUZXN0KSk7CisgICAgICAgICAgICAkJCA9IG5ldyBTdGVwKCQxLCBX
VEY6Om1vdmUoKm5vZGVUZXN0KSk7CiAgICAgfQogICAgIHwKICAgICBBeGlzU3BlY2lmaWVyIE5B
TUVURVNUIE9wdGlvbmFsUHJlZGljYXRlTGlzdApAQCAtMjEzLDcgKzIxMyw3IEBAIFN0ZXA6CiAg
ICAgICAgIH0KIAogICAgICAgICBpZiAocHJlZGljYXRlTGlzdCkKLSAgICAgICAgICAgICQkID0g
bmV3IFN0ZXAoJDEsIFN0ZXA6Ok5vZGVUZXN0KFN0ZXA6Ok5vZGVUZXN0OjpOYW1lVGVzdCwgbG9j
YWxOYW1lLCBuYW1lc3BhY2VVUkkpLCBzdGQ6Om1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKKyAgICAg
ICAgICAgICQkID0gbmV3IFN0ZXAoJDEsIFN0ZXA6Ok5vZGVUZXN0KFN0ZXA6Ok5vZGVUZXN0OjpO
YW1lVGVzdCwgbG9jYWxOYW1lLCBuYW1lc3BhY2VVUkkpLCBXVEY6Om1vdmUoKnByZWRpY2F0ZUxp
c3QpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgJCQgPSBuZXcgU3RlcCgkMSwgU3RlcDo6
Tm9kZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6Ok5hbWVUZXN0LCBsb2NhbE5hbWUsIG5hbWVzcGFjZVVS
SSkpOwogICAgIH0KQEAgLTMyMiw3ICszMjIsNyBAQCBQcmltYXJ5RXhwcjoKICAgICBMSVRFUkFM
CiAgICAgewogICAgICAgICBTdHJpbmcgbGl0ZXJhbCA9IGFkb3B0UmVmKCQxKTsKLSAgICAgICAg
JCQgPSBuZXcgU3RyaW5nRXhwcmVzc2lvbihzdGQ6Om1vdmUobGl0ZXJhbCkpOworICAgICAgICAk
JCA9IG5ldyBTdHJpbmdFeHByZXNzaW9uKFdURjo6bW92ZShsaXRlcmFsKSk7CiAgICAgfQogICAg
IHwKICAgICBOVU1CRVIKQEAgLTM0Nyw3ICszNDcsNyBAQCBGdW5jdGlvbkNhbGw6CiAgICAgewog
ICAgICAgICBTdHJpbmcgbmFtZSA9IGFkb3B0UmVmKCQxKTsKICAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4+PiBhcmd1bWVudExpc3QoJDMp
OwotICAgICAgICAkJCA9IFhQYXRoOjpGdW5jdGlvbjo6Y3JlYXRlKG5hbWUsIHN0ZDo6bW92ZSgq
YXJndW1lbnRMaXN0KSkucmVsZWFzZSgpOworICAgICAgICAkJCA9IFhQYXRoOjpGdW5jdGlvbjo6
Y3JlYXRlKG5hbWUsIFdURjo6bW92ZSgqYXJndW1lbnRMaXN0KSkucmVsZWFzZSgpOwogICAgICAg
ICBpZiAoISQkKQogICAgICAgICAgICAgWVlBQk9SVDsKICAgICB9CkBAIC00MDgsNyArNDA4LDcg
QEAgRmlsdGVyRXhwcjoKICAgICBQcmltYXJ5RXhwciBQcmVkaWNhdGVMaXN0CiAgICAgewogICAg
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPj4+
IHByZWRpY2F0ZUxpc3QoJDIpOwotICAgICAgICAkJCA9IG5ldyBGaWx0ZXIoc3RkOjp1bmlxdWVf
cHRyPEV4cHJlc3Npb24+KCQxKSwgc3RkOjptb3ZlKCpwcmVkaWNhdGVMaXN0KSk7CisgICAgICAg
ICQkID0gbmV3IEZpbHRlcihzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oJDEpLCBXVEY6Om1v
dmUoKnByZWRpY2F0ZUxpc3QpKTsKICAgICB9CiAgICAgOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvWFBhdGhOb2RlU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aE5v
ZGVTZXQuY3BwCmluZGV4IDVmY2JmYWEuLjBkMjY0M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3htbC9YUGF0aE5vZGVTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aE5v
ZGVTZXQuY3BwCkBAIC0xNzMsNyArMTczLDcgQEAgdm9pZCBOb2RlU2V0Ojpzb3J0KCkgY29uc3QK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbm9kZUNvdW50OyArK2kpCiAgICAgICAgIHNv
cnRlZE5vZGVzLmFwcGVuZChwYXJlbnRNYXRyaXhbaV1bMF0pOwogICAgIAotICAgIG1fbm9kZXMg
PSBzdGQ6Om1vdmUoc29ydGVkTm9kZXMpOworICAgIG1fbm9kZXMgPSBXVEY6Om1vdmUoc29ydGVk
Tm9kZXMpOwogICAgIG1faXNTb3J0ZWQgPSB0cnVlOwogfQogCkBAIC0yMjYsNyArMjI2LDcgQEAg
dm9pZCBOb2RlU2V0Ojp0cmF2ZXJzYWxTb3J0KCkgY29uc3QKICAgICB9CiAKICAgICBBU1NFUlQo
c29ydGVkTm9kZXMuc2l6ZSgpID09IG5vZGVDb3VudCk7Ci0gICAgbV9ub2RlcyA9IHN0ZDo6bW92
ZShzb3J0ZWROb2Rlcyk7CisgICAgbV9ub2RlcyA9IFdURjo6bW92ZShzb3J0ZWROb2Rlcyk7CiAg
ICAgbV9pc1NvcnRlZCA9IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9YUGF0aFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhQYXJzZXIuY3BwCmlu
ZGV4IDFkYWU3ZjIuLjMzZDY0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0
aFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUGFyc2VyLmNwcApAQCAt
NDcyLDcgKzQ3Miw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPiBQYXJzZXI6OnBhcnNl
U3RhdGVtZW50KGNvbnN0IFN0cmluZyYgc3RhdGVtZW50LCBYUGF0CiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIH0KIAotICAgIHJldHVybiBzdGQ6Om1vdmUocGFyc2VyLm1fcmVzdWx0KTsK
KyAgICByZXR1cm4gV1RGOjptb3ZlKHBhcnNlci5tX3Jlc3VsdCk7CiB9CiAKIH0gfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS94
bWwvWFBhdGhQYXJzZXIuaAppbmRleCA0ZTZmNDM3Li5iMjQzODdiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWFBhdGhQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBh
dGhQYXJzZXIuaApAQCAtNDcsNyArNDcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAg
ICAgICAgIGludCBsZXgoWVlTVFlQRSYpOwogICAgICAgICAgICAgYm9vbCBleHBhbmRRdWFsaWZp
ZWROYW1lKGNvbnN0IFN0cmluZyYgcXVhbGlmaWVkTmFtZSwgU3RyaW5nJiBsb2NhbE5hbWUsIFN0
cmluZyYgbmFtZXNwYWNlVVJJKTsKLSAgICAgICAgICAgIHZvaWQgc2V0UGFyc2VSZXN1bHQoc3Rk
Ojp1bmlxdWVfcHRyPEV4cHJlc3Npb24+IGV4cHJlc3Npb24pIHsgbV9yZXN1bHQgPSBzdGQ6Om1v
dmUoZXhwcmVzc2lvbik7IH0KKyAgICAgICAgICAgIHZvaWQgc2V0UGFyc2VSZXN1bHQoc3RkOjp1
bmlxdWVfcHRyPEV4cHJlc3Npb24+IGV4cHJlc3Npb24pIHsgbV9yZXN1bHQgPSBXVEY6Om1vdmUo
ZXhwcmVzc2lvbik7IH0KIAogICAgICAgICBwcml2YXRlOgogICAgICAgICAgICAgUGFyc2VyKGNv
bnN0IFN0cmluZyYsIFhQYXRoTlNSZXNvbHZlciopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUveG1sL1hQYXRoUGF0aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhQYXRoLmNwcApp
bmRleCAwNmQ3M2Y5Li43NzJlZWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBh
dGhQYXRoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhQYXRoLmNwcApAQCAtMzYs
NyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgWFBhdGggewogICAgICAg
ICAKIEZpbHRlcjo6RmlsdGVyKHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPiBleHByZXNzaW9u
LCBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+PiBwcmVkaWNhdGVzKQotICAgIDog
bV9leHByZXNzaW9uKHN0ZDo6bW92ZShleHByZXNzaW9uKSksIG1fcHJlZGljYXRlcyhzdGQ6Om1v
dmUocHJlZGljYXRlcykpCisgICAgOiBtX2V4cHJlc3Npb24oV1RGOjptb3ZlKGV4cHJlc3Npb24p
KSwgbV9wcmVkaWNhdGVzKFdURjo6bW92ZShwcmVkaWNhdGVzKSkKIHsKICAgICBzZXRJc0NvbnRl
eHROb2RlU2Vuc2l0aXZlKG1fZXhwcmVzc2lvbi0+aXNDb250ZXh0Tm9kZVNlbnNpdGl2ZSgpKTsK
ICAgICBzZXRJc0NvbnRleHRQb3NpdGlvblNlbnNpdGl2ZShtX2V4cHJlc3Npb24tPmlzQ29udGV4
dFBvc2l0aW9uU2Vuc2l0aXZlKCkpOwpAQCAtNjUsNyArNjUsNyBAQCBWYWx1ZSBGaWx0ZXI6OmV2
YWx1YXRlKCkgY29uc3QKICAgICAgICAgICAgIGlmIChldmFsdWF0ZVByZWRpY2F0ZSgqbV9wcmVk
aWNhdGVzW2ldKSkKICAgICAgICAgICAgICAgICBuZXdOb2Rlcy5hcHBlbmQobm9kZSk7CiAgICAg
ICAgIH0KLSAgICAgICAgbm9kZXMgPSBzdGQ6Om1vdmUobmV3Tm9kZXMpOworICAgICAgICBub2Rl
cyA9IFdURjo6bW92ZShuZXdOb2Rlcyk7CiAgICAgfQogCiAgICAgcmV0dXJuIHJlc3VsdDsKQEAg
LTEwMiw3ICsxMDIsNyBAQCBWYWx1ZSBMb2NhdGlvblBhdGg6OmV2YWx1YXRlKCkgY29uc3QKICAg
ICBldmFsdWF0ZShub2Rlcyk7CiAgICAgCiAgICAgZXZhbHVhdGlvbkNvbnRleHQgPSBiYWNrdXBD
b250ZXh0OwotICAgIHJldHVybiBWYWx1ZShzdGQ6Om1vdmUobm9kZXMpKTsKKyAgICByZXR1cm4g
VmFsdWUoV1RGOjptb3ZlKG5vZGVzKSk7CiB9CiAKIHZvaWQgTG9jYXRpb25QYXRoOjpldmFsdWF0
ZShOb2RlU2V0JiBub2RlcykgY29uc3QKQEAgLTEzOCw3ICsxMzgsNyBAQCB2b2lkIExvY2F0aW9u
UGF0aDo6ZXZhbHVhdGUoTm9kZVNldCYgbm9kZXMpIGNvbnN0CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICAgICAgCi0gICAgICAgIG5vZGVzID0gc3RkOjptb3ZlKG5ld05vZGVzKTsKKyAg
ICAgICAgbm9kZXMgPSBXVEY6Om1vdmUobmV3Tm9kZXMpOwogICAgIH0KIAogICAgIG5vZGVzLm1h
cmtTb3J0ZWQocmVzdWx0SXNTb3J0ZWQpOwpAQCAtMTU0LDcgKzE1NCw3IEBAIHZvaWQgTG9jYXRp
b25QYXRoOjphcHBlbmRTdGVwKHN0ZDo6dW5pcXVlX3B0cjxTdGVwPiBzdGVwKQogICAgICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICBzdGVwLT5vcHRpbWl6ZSgpOwotICAgIG1fc3RlcHMuYXBw
ZW5kKHN0ZDo6bW92ZShzdGVwKSk7CisgICAgbV9zdGVwcy5hcHBlbmQoV1RGOjptb3ZlKHN0ZXAp
KTsKIH0KIAogdm9pZCBMb2NhdGlvblBhdGg6OnByZXBlbmRTdGVwKHN0ZDo6dW5pcXVlX3B0cjxT
dGVwPiBzdGVwKQpAQCAtMTYzLDE3ICsxNjMsMTcgQEAgdm9pZCBMb2NhdGlvblBhdGg6OnByZXBl
bmRTdGVwKHN0ZDo6dW5pcXVlX3B0cjxTdGVwPiBzdGVwKQogICAgICAgICBib29sIGRyb3BTZWNv
bmRTdGVwOwogICAgICAgICBvcHRpbWl6ZVN0ZXBQYWlyKCpzdGVwLCAqbV9zdGVwc1swXSwgZHJv
cFNlY29uZFN0ZXApOwogICAgICAgICBpZiAoZHJvcFNlY29uZFN0ZXApIHsKLSAgICAgICAgICAg
IG1fc3RlcHNbMF0gPSBzdGQ6Om1vdmUoc3RlcCk7CisgICAgICAgICAgICBtX3N0ZXBzWzBdID0g
V1RGOjptb3ZlKHN0ZXApOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQog
ICAgIHN0ZXAtPm9wdGltaXplKCk7Ci0gICAgbV9zdGVwcy5pbnNlcnQoMCwgc3RkOjptb3ZlKHN0
ZXApKTsKKyAgICBtX3N0ZXBzLmluc2VydCgwLCBXVEY6Om1vdmUoc3RlcCkpOwogfQogCiBQYXRo
OjpQYXRoKHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPiBmaWx0ZXIsIHN0ZDo6dW5pcXVlX3B0
cjxMb2NhdGlvblBhdGg+IHBhdGgpCi0gICAgOiBtX2ZpbHRlcihzdGQ6Om1vdmUoZmlsdGVyKSkK
LSAgICAsIG1fcGF0aChzdGQ6Om1vdmUocGF0aCkpCisgICAgOiBtX2ZpbHRlcihXVEY6Om1vdmUo
ZmlsdGVyKSkKKyAgICAsIG1fcGF0aChXVEY6Om1vdmUocGF0aCkpCiB7CiAgICAgc2V0SXNDb250
ZXh0Tm9kZVNlbnNpdGl2ZShtX2ZpbHRlci0+aXNDb250ZXh0Tm9kZVNlbnNpdGl2ZSgpKTsKICAg
ICBzZXRJc0NvbnRleHRQb3NpdGlvblNlbnNpdGl2ZShtX2ZpbHRlci0+aXNDb250ZXh0UG9zaXRp
b25TZW5zaXRpdmUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhQcmVk
aWNhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUHJlZGljYXRlLmNwcAppbmRleCAx
NDMxMjY3Li4zZDQ5OTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhQcmVk
aWNhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFByZWRpY2F0ZS5jcHAKQEAg
LTQ3LDcgKzQ3LDcgQEAgVmFsdWUgTnVtYmVyOjpldmFsdWF0ZSgpIGNvbnN0CiB9CiAKIFN0cmlu
Z0V4cHJlc3Npb246OlN0cmluZ0V4cHJlc3Npb24oU3RyaW5nJiYgdmFsdWUpCi0gICAgOiBtX3Zh
bHVlKHN0ZDo6bW92ZSh2YWx1ZSkpCisgICAgOiBtX3ZhbHVlKFdURjo6bW92ZSh2YWx1ZSkpCiB7
CiB9CiAKQEAgLTU4LDcgKzU4LDcgQEAgVmFsdWUgU3RyaW5nRXhwcmVzc2lvbjo6ZXZhbHVhdGUo
KSBjb25zdAogCiBOZWdhdGl2ZTo6TmVnYXRpdmUoc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+
IGV4cHJlc3Npb24pCiB7Ci0gICAgYWRkU3ViZXhwcmVzc2lvbihzdGQ6Om1vdmUoZXhwcmVzc2lv
bikpOworICAgIGFkZFN1YmV4cHJlc3Npb24oV1RGOjptb3ZlKGV4cHJlc3Npb24pKTsKIH0KIAog
VmFsdWUgTmVnYXRpdmU6OmV2YWx1YXRlKCkgY29uc3QKQEAgLTY5LDggKzY5LDggQEAgVmFsdWUg
TmVnYXRpdmU6OmV2YWx1YXRlKCkgY29uc3QKIE51bWVyaWNPcDo6TnVtZXJpY09wKE9wY29kZSBv
cGNvZGUsIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPiBsaHMsIHN0ZDo6dW5pcXVlX3B0cjxF
eHByZXNzaW9uPiByaHMpCiAgICAgOiBtX29wY29kZShvcGNvZGUpCiB7Ci0gICAgYWRkU3ViZXhw
cmVzc2lvbihzdGQ6Om1vdmUobGhzKSk7Ci0gICAgYWRkU3ViZXhwcmVzc2lvbihzdGQ6Om1vdmUo
cmhzKSk7CisgICAgYWRkU3ViZXhwcmVzc2lvbihXVEY6Om1vdmUobGhzKSk7CisgICAgYWRkU3Vi
ZXhwcmVzc2lvbihXVEY6Om1vdmUocmhzKSk7CiB9CiAKIFZhbHVlIE51bWVyaWNPcDo6ZXZhbHVh
dGUoKSBjb25zdApAQCAtOTgsOCArOTgsOCBAQCBWYWx1ZSBOdW1lcmljT3A6OmV2YWx1YXRlKCkg
Y29uc3QKIEVxVGVzdE9wOjpFcVRlc3RPcChPcGNvZGUgb3Bjb2RlLCBzdGQ6OnVuaXF1ZV9wdHI8
RXhwcmVzc2lvbj4gbGhzLCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4gcmhzKQogICAgIDog
bV9vcGNvZGUob3Bjb2RlKQogewotICAgIGFkZFN1YmV4cHJlc3Npb24oc3RkOjptb3ZlKGxocykp
OwotICAgIGFkZFN1YmV4cHJlc3Npb24oc3RkOjptb3ZlKHJocykpOworICAgIGFkZFN1YmV4cHJl
c3Npb24oV1RGOjptb3ZlKGxocykpOworICAgIGFkZFN1YmV4cHJlc3Npb24oV1RGOjptb3ZlKHJo
cykpOwogfQogCiBib29sIEVxVGVzdE9wOjpjb21wYXJlKGNvbnN0IFZhbHVlJiBsaHMsIGNvbnN0
IFZhbHVlJiByaHMpIGNvbnN0CkBAIC0yMDEsOCArMjAxLDggQEAgVmFsdWUgRXFUZXN0T3A6OmV2
YWx1YXRlKCkgY29uc3QKIExvZ2ljYWxPcDo6TG9naWNhbE9wKE9wY29kZSBvcGNvZGUsIHN0ZDo6
dW5pcXVlX3B0cjxFeHByZXNzaW9uPiBsaHMsIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPiBy
aHMpCiAgICAgOiBtX29wY29kZShvcGNvZGUpCiB7Ci0gICAgYWRkU3ViZXhwcmVzc2lvbihzdGQ6
Om1vdmUobGhzKSk7Ci0gICAgYWRkU3ViZXhwcmVzc2lvbihzdGQ6Om1vdmUocmhzKSk7CisgICAg
YWRkU3ViZXhwcmVzc2lvbihXVEY6Om1vdmUobGhzKSk7CisgICAgYWRkU3ViZXhwcmVzc2lvbihX
VEY6Om1vdmUocmhzKSk7CiB9CiAKIGlubGluZSBib29sIExvZ2ljYWxPcDo6c2hvcnRDaXJjdWl0
T24oKSBjb25zdApAQCAtMjIzLDggKzIyMyw4IEBAIFZhbHVlIExvZ2ljYWxPcDo6ZXZhbHVhdGUo
KSBjb25zdAogCiBVbmlvbjo6VW5pb24oc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+IGxocywg
c3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+IHJocykKIHsKLSAgICBhZGRTdWJleHByZXNzaW9u
KHN0ZDo6bW92ZShsaHMpKTsKLSAgICBhZGRTdWJleHByZXNzaW9uKHN0ZDo6bW92ZShyaHMpKTsK
KyAgICBhZGRTdWJleHByZXNzaW9uKFdURjo6bW92ZShsaHMpKTsKKyAgICBhZGRTdWJleHByZXNz
aW9uKFdURjo6bW92ZShyaHMpKTsKIH0KIAogVmFsdWUgVW5pb246OmV2YWx1YXRlKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFN0ZXAuY3BwIGIvU291cmNlL1dl
YkNvcmUveG1sL1hQYXRoU3RlcC5jcHAKaW5kZXggNWI4MTM0NC4uNGUyYTc1YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoU3RlcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
eG1sL1hQYXRoU3RlcC5jcHAKQEAgLTQxLDE0ICs0MSwxNCBAQCBuYW1lc3BhY2UgWFBhdGggewog
CiBTdGVwOjpTdGVwKEF4aXMgYXhpcywgTm9kZVRlc3Qgbm9kZVRlc3QpCiAgICAgOiBtX2F4aXMo
YXhpcykKLSAgICAsIG1fbm9kZVRlc3Qoc3RkOjptb3ZlKG5vZGVUZXN0KSkKKyAgICAsIG1fbm9k
ZVRlc3QoV1RGOjptb3ZlKG5vZGVUZXN0KSkKIHsKIH0KIAogU3RlcDo6U3RlcChBeGlzIGF4aXMs
IE5vZGVUZXN0IG5vZGVUZXN0LCBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+PiBw
cmVkaWNhdGVzKQogICAgIDogbV9heGlzKGF4aXMpCi0gICAgLCBtX25vZGVUZXN0KHN0ZDo6bW92
ZShub2RlVGVzdCkpCi0gICAgLCBtX3ByZWRpY2F0ZXMoc3RkOjptb3ZlKHByZWRpY2F0ZXMpKQor
ICAgICwgbV9ub2RlVGVzdChXVEY6Om1vdmUobm9kZVRlc3QpKQorICAgICwgbV9wcmVkaWNhdGVz
KFdURjo6bW92ZShwcmVkaWNhdGVzKSkKIHsKIH0KIApAQCAtNjUsMTEgKzY1LDExIEBAIHZvaWQg
U3RlcDo6b3B0aW1pemUoKQogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9wcmVkaWNhdGVz
LnNpemUoKTsgKytpKSB7CiAgICAgICAgIGF1dG8mIHByZWRpY2F0ZSA9IG1fcHJlZGljYXRlc1tp
XTsKICAgICAgICAgaWYgKCghcHJlZGljYXRlSXNDb250ZXh0UG9zaXRpb25TZW5zaXRpdmUoKnBy
ZWRpY2F0ZSkgfHwgbV9ub2RlVGVzdC5tX21lcmdlZFByZWRpY2F0ZXMuaXNFbXB0eSgpKSAmJiAh
cHJlZGljYXRlLT5pc0NvbnRleHRTaXplU2Vuc2l0aXZlKCkgJiYgcmVtYWluaW5nUHJlZGljYXRl
cy5pc0VtcHR5KCkpCi0gICAgICAgICAgICBtX25vZGVUZXN0Lm1fbWVyZ2VkUHJlZGljYXRlcy5h
cHBlbmQoc3RkOjptb3ZlKHByZWRpY2F0ZSkpOworICAgICAgICAgICAgbV9ub2RlVGVzdC5tX21l
cmdlZFByZWRpY2F0ZXMuYXBwZW5kKFdURjo6bW92ZShwcmVkaWNhdGUpKTsKICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgcmVtYWluaW5nUHJlZGljYXRlcy5hcHBlbmQoc3RkOjptb3ZlKHByZWRp
Y2F0ZSkpOworICAgICAgICAgICAgcmVtYWluaW5nUHJlZGljYXRlcy5hcHBlbmQoV1RGOjptb3Zl
KHByZWRpY2F0ZSkpOwogICAgIH0KLSAgICBtX3ByZWRpY2F0ZXMgPSBzdGQ6Om1vdmUocmVtYWlu
aW5nUHJlZGljYXRlcyk7CisgICAgbV9wcmVkaWNhdGVzID0gV1RGOjptb3ZlKHJlbWFpbmluZ1By
ZWRpY2F0ZXMpOwogfQogCiB2b2lkIG9wdGltaXplU3RlcFBhaXIoU3RlcCYgZmlyc3QsIFN0ZXAm
IHNlY29uZCwgYm9vbCYgZHJvcFNlY29uZFN0ZXApCkBAIC05OSw4ICs5OSw4IEBAIHZvaWQgb3B0
aW1pemVTdGVwUGFpcihTdGVwJiBmaXJzdCwgU3RlcCYgc2Vjb25kLCBib29sJiBkcm9wU2Vjb25k
U3RlcCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZmlyc3QubV9heGlzID0gU3RlcDo6RGVzY2Vu
ZGFudEF4aXM7Ci0gICAgZmlyc3QubV9ub2RlVGVzdCA9IHN0ZDo6bW92ZShzZWNvbmQubV9ub2Rl
VGVzdCk7Ci0gICAgZmlyc3QubV9wcmVkaWNhdGVzID0gc3RkOjptb3ZlKHNlY29uZC5tX3ByZWRp
Y2F0ZXMpOworICAgIGZpcnN0Lm1fbm9kZVRlc3QgPSBXVEY6Om1vdmUoc2Vjb25kLm1fbm9kZVRl
c3QpOworICAgIGZpcnN0Lm1fcHJlZGljYXRlcyA9IFdURjo6bW92ZShzZWNvbmQubV9wcmVkaWNh
dGVzKTsKICAgICBmaXJzdC5vcHRpbWl6ZSgpOwogICAgIGRyb3BTZWNvbmRTdGVwID0gdHJ1ZTsK
IH0KQEAgLTE0Nyw3ICsxNDcsNyBAQCB2b2lkIFN0ZXA6OmV2YWx1YXRlKE5vZGUmIGNvbnRleHQs
IE5vZGVTZXQmIG5vZGVzKSBjb25zdAogICAgICAgICAgICAgICAgIG5ld05vZGVzLmFwcGVuZChu
b2RlKTsKICAgICAgICAgfQogCi0gICAgICAgIG5vZGVzID0gc3RkOjptb3ZlKG5ld05vZGVzKTsK
KyAgICAgICAgbm9kZXMgPSBXVEY6Om1vdmUobmV3Tm9kZXMpOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoU3RlcC5oIGIvU291cmNlL1dlYkNvcmUveG1s
L1hQYXRoU3RlcC5oCmluZGV4IGM5MTYxMzEuLmNhN2NkYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9YUGF0aFN0ZXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhTdGVw
LmgKQEAgLTY1LDE3ICs2NSwxNyBAQCBwdWJsaWM6CiAKICAgICAgICAgTm9kZVRlc3QoTm9kZVRl
c3QmJiBvdGhlcikKICAgICAgICAgICAgIDogbV9raW5kKG90aGVyLm1fa2luZCkKLSAgICAgICAg
ICAgICwgbV9kYXRhKHN0ZDo6bW92ZShvdGhlci5tX2RhdGEpKQotICAgICAgICAgICAgLCBtX25h
bWVzcGFjZVVSSShzdGQ6Om1vdmUob3RoZXIubV9uYW1lc3BhY2VVUkkpKQotICAgICAgICAgICAg
LCBtX21lcmdlZFByZWRpY2F0ZXMoc3RkOjptb3ZlKG90aGVyLm1fbWVyZ2VkUHJlZGljYXRlcykp
CisgICAgICAgICAgICAsIG1fZGF0YShXVEY6Om1vdmUob3RoZXIubV9kYXRhKSkKKyAgICAgICAg
ICAgICwgbV9uYW1lc3BhY2VVUkkoV1RGOjptb3ZlKG90aGVyLm1fbmFtZXNwYWNlVVJJKSkKKyAg
ICAgICAgICAgICwgbV9tZXJnZWRQcmVkaWNhdGVzKFdURjo6bW92ZShvdGhlci5tX21lcmdlZFBy
ZWRpY2F0ZXMpKQogICAgICAgICB7CiAgICAgICAgIH0KICAgICAgICAgTm9kZVRlc3QmIG9wZXJh
dG9yPShOb2RlVGVzdCYmIG90aGVyKQogICAgICAgICB7CiAgICAgICAgICAgICBtX2tpbmQgPSBv
dGhlci5tX2tpbmQ7Ci0gICAgICAgICAgICBtX2RhdGEgPSBzdGQ6Om1vdmUob3RoZXIubV9kYXRh
KTsKLSAgICAgICAgICAgIG1fbmFtZXNwYWNlVVJJID0gc3RkOjptb3ZlKG90aGVyLm1fbmFtZXNw
YWNlVVJJKTsKLSAgICAgICAgICAgIG1fbWVyZ2VkUHJlZGljYXRlcyA9IHN0ZDo6bW92ZShvdGhl
ci5tX21lcmdlZFByZWRpY2F0ZXMpOworICAgICAgICAgICAgbV9kYXRhID0gV1RGOjptb3ZlKG90
aGVyLm1fZGF0YSk7CisgICAgICAgICAgICBtX25hbWVzcGFjZVVSSSA9IFdURjo6bW92ZShvdGhl
ci5tX25hbWVzcGFjZVVSSSk7CisgICAgICAgICAgICBtX21lcmdlZFByZWRpY2F0ZXMgPSBXVEY6
Om1vdmUob3RoZXIubV9tZXJnZWRQcmVkaWNhdGVzKTsKICAgICAgICAgICAgIHJldHVybiAqdGhp
czsKICAgICAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBh
dGhWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoVmFsdWUuaAppbmRleCBmZjgwZTFj
Li40ZGIyZWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhWYWx1ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFZhbHVlLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgVmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkg
OiBtX3R5cGUoU3RyaW5nVmFsdWUpLCBtX2RhdGEoRGF0YTo6Y3JlYXRlKHZhbHVlKSkgeyB9CiAg
ICAgICAgICAgICBWYWx1ZShjb25zdCBjaGFyKiB2YWx1ZSkgOiBtX3R5cGUoU3RyaW5nVmFsdWUp
LCBtX2RhdGEoRGF0YTo6Y3JlYXRlKHZhbHVlKSkgeyB9CiAKLSAgICAgICAgICAgIGV4cGxpY2l0
IFZhbHVlKE5vZGVTZXQgdmFsdWUpIDogbV90eXBlKE5vZGVTZXRWYWx1ZSksIG1fZGF0YShEYXRh
OjpjcmVhdGUoc3RkOjptb3ZlKHZhbHVlKSkpIHsgfQorICAgICAgICAgICAgZXhwbGljaXQgVmFs
dWUoTm9kZVNldCB2YWx1ZSkgOiBtX3R5cGUoTm9kZVNldFZhbHVlKSwgbV9kYXRhKERhdGE6OmNy
ZWF0ZShXVEY6Om1vdmUodmFsdWUpKSkgeyB9CiAgICAgICAgICAgICBleHBsaWNpdCBWYWx1ZShO
b2RlKiB2YWx1ZSkgOiBtX3R5cGUoTm9kZVNldFZhbHVlKSwgbV9kYXRhKERhdGE6OmNyZWF0ZSh2
YWx1ZSkpIHsgfQogICAgICAgICAgICAgZXhwbGljaXQgVmFsdWUoUGFzc1JlZlB0cjxOb2RlPiB2
YWx1ZSkgOiBtX3R5cGUoTm9kZVNldFZhbHVlKSwgbV9kYXRhKERhdGE6OmNyZWF0ZSh2YWx1ZSkp
IHsgfQogCkBAIC03MCw3ICs3MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAg
IHN0cnVjdCBEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8RGF0YT4gewogICAgICAgICAgICAgICAg
IHN0YXRpYyBQYXNzUmVmUHRyPERhdGE+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBE
YXRhKTsgfQogICAgICAgICAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGE+IGNyZWF0ZShj
b25zdCBTdHJpbmcmIHN0cmluZykgeyByZXR1cm4gYWRvcHRSZWYobmV3IERhdGEoc3RyaW5nKSk7
IH0KLSAgICAgICAgICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhPiBjcmVhdGUoTm9kZVNl
dCBub2RlU2V0KSB7IHJldHVybiBhZG9wdFJlZihuZXcgRGF0YShzdGQ6Om1vdmUobm9kZVNldCkp
KTsgfQorICAgICAgICAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGE+IGNyZWF0ZShOb2Rl
U2V0IG5vZGVTZXQpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhKFdURjo6bW92ZShub2RlU2V0
KSkpOyB9CiAgICAgICAgICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YT4gY3JlYXRlKFBh
c3NSZWZQdHI8Tm9kZT4gbm9kZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IERhdGEobm9kZSkpOyB9
CiAKICAgICAgICAgICAgICAgICBTdHJpbmcgc3RyaW5nOwpAQCAtNzksNyArNzksNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBwcml2YXRlOgogICAgICAgICAgICAgICAgIERh
dGEoKSB7IH0KICAgICAgICAgICAgICAgICBleHBsaWNpdCBEYXRhKGNvbnN0IFN0cmluZyYgc3Ry
aW5nKSA6IHN0cmluZyhzdHJpbmcpIHsgfQotICAgICAgICAgICAgICAgIGV4cGxpY2l0IERhdGEo
Tm9kZVNldCBub2RlU2V0KSA6IG5vZGVTZXQoc3RkOjptb3ZlKG5vZGVTZXQpKSB7IH0KKyAgICAg
ICAgICAgICAgICBleHBsaWNpdCBEYXRhKE5vZGVTZXQgbm9kZVNldCkgOiBub2RlU2V0KFdURjo6
bW92ZShub2RlU2V0KSkgeyB9CiAgICAgICAgICAgICAgICAgZXhwbGljaXQgRGF0YShQYXNzUmVm
UHRyPE5vZGU+IG5vZGUpIDogbm9kZVNldChub2RlKSB7IH0KICAgICAgICAgICAgIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4
bWwyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4
bWwyLmNwcAppbmRleCAyNDJmZmI4Li5lMWRhZjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCkBAIC0xMjYsNyAr
MTI2LDcgQEAgcHVibGljOgogICAgICAgICAgICAgY2FsbGJhY2stPmF0dHJpYnV0ZXNbaSAqIDUg
KyA0XSA9IGNhbGxiYWNrLT5hdHRyaWJ1dGVzW2kgKiA1ICsgM10gKyBsZW47CiAgICAgICAgIH0K
IAotICAgICAgICBtX2NhbGxiYWNrcy5hcHBlbmQoc3RkOjptb3ZlKGNhbGxiYWNrKSk7CisgICAg
ICAgIG1fY2FsbGJhY2tzLmFwcGVuZChXVEY6Om1vdmUoY2FsbGJhY2spKTsKICAgICB9CiAKICAg
ICB2b2lkIGFwcGVuZEVuZEVsZW1lbnROU0NhbGxiYWNrKCkKQEAgLTE0MSw3ICsxNDEsNyBAQCBw
dWJsaWM6CiAgICAgICAgIGNhbGxiYWNrLT5zID0geG1sU3RybmR1cChzLCBsZW4pOwogICAgICAg
ICBjYWxsYmFjay0+bGVuID0gbGVuOwogCi0gICAgICAgIG1fY2FsbGJhY2tzLmFwcGVuZChzdGQ6
Om1vdmUoY2FsbGJhY2spKTsKKyAgICAgICAgbV9jYWxsYmFja3MuYXBwZW5kKFdURjo6bW92ZShj
YWxsYmFjaykpOwogICAgIH0KIAogICAgIHZvaWQgYXBwZW5kUHJvY2Vzc2luZ0luc3RydWN0aW9u
Q2FsbGJhY2soY29uc3QgeG1sQ2hhciogdGFyZ2V0LCBjb25zdCB4bWxDaGFyKiBkYXRhKQpAQCAt
MTUxLDcgKzE1MSw3IEBAIHB1YmxpYzoKICAgICAgICAgY2FsbGJhY2stPnRhcmdldCA9IHhtbFN0
cmR1cCh0YXJnZXQpOwogICAgICAgICBjYWxsYmFjay0+ZGF0YSA9IHhtbFN0cmR1cChkYXRhKTsK
IAotICAgICAgICBtX2NhbGxiYWNrcy5hcHBlbmQoc3RkOjptb3ZlKGNhbGxiYWNrKSk7CisgICAg
ICAgIG1fY2FsbGJhY2tzLmFwcGVuZChXVEY6Om1vdmUoY2FsbGJhY2spKTsKICAgICB9CiAKICAg
ICB2b2lkIGFwcGVuZENEQVRBQmxvY2tDYWxsYmFjayhjb25zdCB4bWxDaGFyKiBzLCBpbnQgbGVu
KQpAQCAtMTYxLDcgKzE2MSw3IEBAIHB1YmxpYzoKICAgICAgICAgY2FsbGJhY2stPnMgPSB4bWxT
dHJuZHVwKHMsIGxlbik7CiAgICAgICAgIGNhbGxiYWNrLT5sZW4gPSBsZW47CiAKLSAgICAgICAg
bV9jYWxsYmFja3MuYXBwZW5kKHN0ZDo6bW92ZShjYWxsYmFjaykpOworICAgICAgICBtX2NhbGxi
YWNrcy5hcHBlbmQoV1RGOjptb3ZlKGNhbGxiYWNrKSk7CiAgICAgfQogCiAgICAgdm9pZCBhcHBl
bmRDb21tZW50Q2FsbGJhY2soY29uc3QgeG1sQ2hhciogcykKQEAgLTE3MCw3ICsxNzAsNyBAQCBw
dWJsaWM6CiAKICAgICAgICAgY2FsbGJhY2stPnMgPSB4bWxTdHJkdXAocyk7CiAKLSAgICAgICAg
bV9jYWxsYmFja3MuYXBwZW5kKHN0ZDo6bW92ZShjYWxsYmFjaykpOworICAgICAgICBtX2NhbGxi
YWNrcy5hcHBlbmQoV1RGOjptb3ZlKGNhbGxiYWNrKSk7CiAgICAgfQogCiAgICAgdm9pZCBhcHBl
bmRJbnRlcm5hbFN1YnNldENhbGxiYWNrKGNvbnN0IHhtbENoYXIqIG5hbWUsIGNvbnN0IHhtbENo
YXIqIGV4dGVybmFsSUQsIGNvbnN0IHhtbENoYXIqIHN5c3RlbUlEKQpAQCAtMTgxLDcgKzE4MSw3
IEBAIHB1YmxpYzoKICAgICAgICAgY2FsbGJhY2stPmV4dGVybmFsSUQgPSB4bWxTdHJkdXAoZXh0
ZXJuYWxJRCk7CiAgICAgICAgIGNhbGxiYWNrLT5zeXN0ZW1JRCA9IHhtbFN0cmR1cChzeXN0ZW1J
RCk7CiAKLSAgICAgICAgbV9jYWxsYmFja3MuYXBwZW5kKHN0ZDo6bW92ZShjYWxsYmFjaykpOwor
ICAgICAgICBtX2NhbGxiYWNrcy5hcHBlbmQoV1RGOjptb3ZlKGNhbGxiYWNrKSk7CiAgICAgfQog
CiAgICAgdm9pZCBhcHBlbmRFcnJvckNhbGxiYWNrKFhNTEVycm9yczo6RXJyb3JUeXBlIHR5cGUs
IGNvbnN0IHhtbENoYXIqIG1lc3NhZ2UsIE9yZGluYWxOdW1iZXIgbGluZU51bWJlciwgT3JkaW5h
bE51bWJlciBjb2x1bW5OdW1iZXIpCkBAIC0xOTMsNyArMTkzLDcgQEAgcHVibGljOgogICAgICAg
ICBjYWxsYmFjay0+bGluZU51bWJlciA9IGxpbmVOdW1iZXI7CiAgICAgICAgIGNhbGxiYWNrLT5j
b2x1bW5OdW1iZXIgPSBjb2x1bW5OdW1iZXI7CiAKLSAgICAgICAgbV9jYWxsYmFja3MuYXBwZW5k
KHN0ZDo6bW92ZShjYWxsYmFjaykpOworICAgICAgICBtX2NhbGxiYWNrcy5hcHBlbmQoV1RGOjpt
b3ZlKGNhbGxiYWNrKSk7CiAgICAgfQogCiAgICAgdm9pZCBjYWxsQW5kUmVtb3ZlRmlyc3RDYWxs
YmFjayhYTUxEb2N1bWVudFBhcnNlciogcGFyc2VyKQpAQCAtMzYyLDcgKzM2Miw3IEBAIGNsYXNz
IE9mZnNldEJ1ZmZlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAg
ICAgT2Zmc2V0QnVmZmVyKFZlY3RvcjxjaGFyPiBidWZmZXIpCi0gICAgICAgIDogbV9idWZmZXIo
c3RkOjptb3ZlKGJ1ZmZlcikpCisgICAgICAgIDogbV9idWZmZXIoV1RGOjptb3ZlKGJ1ZmZlcikp
CiAgICAgICAgICwgbV9jdXJyZW50T2Zmc2V0KDApCiAgICAgewogICAgIH0KQEAgLTQ2OSw3ICs0
NjksNyBAQCBzdGF0aWMgdm9pZCogb3BlbkZ1bmMoY29uc3QgY2hhciogdXJpKQogICAgIGlmICgh
c2hvdWxkQWxsb3dFeHRlcm5hbExvYWQocmVzcG9uc2UudXJsKCkpKQogICAgICAgICByZXR1cm4g
Jmdsb2JhbERlc2NyaXB0b3I7CiAKLSAgICByZXR1cm4gbmV3IE9mZnNldEJ1ZmZlcihzdGQ6Om1v
dmUoZGF0YSkpOworICAgIHJldHVybiBuZXcgT2Zmc2V0QnVmZmVyKFdURjo6bW92ZShkYXRhKSk7
CiB9CiAKIHN0YXRpYyBpbnQgcmVhZEZ1bmModm9pZCogY29udGV4dCwgY2hhciogYnVmZmVyLCBp
bnQgbGVuKQpAQCAtMTU0OCw3ICsxNTQ4LDcgQEAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gcGFy
c2VBdHRyaWJ1dGVzKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBib29sJiBhdHRyc09LKQogICAgIHht
bFBhcnNlQ2h1bmsocGFyc2VyLT5jb250ZXh0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hh
cio+KFN0cmluZ1ZpZXcocGFyc2VTdHJpbmcpLnVwY29udmVydGVkQ2hhcmFjdGVycygpLmdldCgp
KSwgcGFyc2VTdHJpbmcubGVuZ3RoKCkgKiBzaXplb2YoVUNoYXIpLCAxKTsKIAogICAgIGF0dHJz
T0sgPSBzdGF0ZS5nb3RBdHRyaWJ1dGVzOwotICAgIHJldHVybiBzdGQ6Om1vdmUoc3RhdGUuYXR0
cmlidXRlcyk7CisgICAgcmV0dXJuIFdURjo6bW92ZShzdGF0ZS5hdHRyaWJ1dGVzKTsKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9pb3MvQ2hhbmdlTG9nCmluZGV4IDVmODZiNGYuLmE3ZTljZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvaW9zL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAxNC0wNy0wMSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIFdURjo6bW92ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ1MDAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdWJzdGl0dXRlIFdURjo6bW92ZSgpIGZvciBzdGQ6
Om1vdmUoKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZpeGVkUG9zaXRpb25Db250
ZW50Lm1tOgorICAgICAgICAoLVtXZWJGaXhlZFBvc2l0aW9uQ29udGVudCBzZXRWaWV3cG9ydENv
bnN0cmFpbmVkTGF5ZXJzOnN0aWNreUNvbnRhaW5lck1hcDpdKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnRJT1MubW06CisgICAgICAgIChXZWJJbnNwZWN0b3JG
cm9udGVuZENsaWVudDo6V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQpOgorCiAyMDE0LTA3LTAx
ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
W2lPU10gQ29tcGlsZSBmaXggd2l0aCBwb2ludGVyIGxvY2sgZW5hYmxlZC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkZpeGVkUG9zaXRpb25Db250ZW50
Lm1tIGIvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViRml4ZWRQb3NpdGlvbkNv
bnRlbnQubW0KaW5kZXggZmE1NjZjMi4uZmFiNzMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQubW0KKysrIGIvU291
cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQubW0K
QEAgLTE4Miw5ICsxODIsOSBAQCBXZWJGaXhlZFBvc2l0aW9uQ29udGVudERhdGE6On5XZWJGaXhl
ZFBvc2l0aW9uQ29udGVudERhdGEoKQogICAgICAgICBhdXRvIGxheWVyRGF0YSA9IHN0ZDo6bWFr
ZV91bmlxdWU8Vmlld3BvcnRDb25zdHJhaW5lZExheWVyRGF0YT4oKTsKIAogICAgICAgICBsYXll
ckRhdGEtPm1fZW5jbG9zaW5nQWNjZWxlcmF0ZWRTY3JvbGxMYXllciA9IHN0aWNreUNvbnRhaW5l
cnMuZ2V0KGxheWVyKTsKLSAgICAgICAgbGF5ZXJEYXRhLT5tX3ZpZXdwb3J0Q29uc3RyYWludHMg
PSBzdGQ6Om1vdmUobGF5ZXJBbmRDb25zdHJhaW50cy52YWx1ZSk7CisgICAgICAgIGxheWVyRGF0
YS0+bV92aWV3cG9ydENvbnN0cmFpbnRzID0gV1RGOjptb3ZlKGxheWVyQW5kQ29uc3RyYWludHMu
dmFsdWUpOwogCi0gICAgICAgIF9wcml2YXRlLT5tX3ZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnMu
c2V0KGxheWVyLCBzdGQ6Om1vdmUobGF5ZXJEYXRhKSk7CisgICAgICAgIF9wcml2YXRlLT5tX3Zp
ZXdwb3J0Q29uc3RyYWluZWRMYXllcnMuc2V0KGxheWVyLCBXVEY6Om1vdmUobGF5ZXJEYXRhKSk7
CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9y
dC9XZWJJbnNwZWN0b3JDbGllbnRJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3Vw
cG9ydC9XZWJJbnNwZWN0b3JDbGllbnRJT1MubW0KaW5kZXggYTM3ZmVmMy4uOTM4YjUyZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xp
ZW50SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkluc3Bl
Y3RvckNsaWVudElPUy5tbQpAQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yQ2xp
ZW50OjpkaWRTZXRTZWFyY2hpbmdGb3JOb2RlKGJvb2wgZW5hYmxlZCkKICNwcmFnbWEgbWFyayBX
ZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudCBJbXBsZW1lbnRhdGlvbgogCiBXZWJJbnNwZWN0b3JG
cm9udGVuZENsaWVudDo6V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQoV2ViVmlldyogaW5zcGVj
dGVkV2ViVmlldywgV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlciogd2luZG93Q29udHJvbGxl
ciwgSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlciwgUGFnZSogZnJvbnRl
bmRQYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8U2V0dGluZ3M+IHNldHRpbmdzKQotICAgIDogSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnRMb2NhbChpbnNwZWN0b3JDb250cm9sbGVyLCAgZnJvbnRlbmRQYWdl
LCBzdGQ6Om1vdmUoc2V0dGluZ3MpKQorICAgIDogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2Nh
bChpbnNwZWN0b3JDb250cm9sbGVyLCAgZnJvbnRlbmRQYWdlLCBXVEY6Om1vdmUoc2V0dGluZ3Mp
KQogewogICAgIC8vIGlPUyBkb2VzIG5vdCBoYXZlIGEgbG9jYWwgaW5zcGVjdG9yLCB0aGlzIHNo
b3VsZCBub3QgYmUgcmVhY2hlZC4KICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CmluZGV4IDkxNGM1ZWYuLmQ3OWRlODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBA
QAorMjAxNC0wNy0wMSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKKyAgICAg
ICAgQWRkIFdURjo6bW92ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzQ1MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBTdWJzdGl0dXRlIFdURjo6bW92ZSgpIGZvciBzdGQ6Om1vdmUoKS4KKworICAg
ICAgICAqIEhpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW06CisgICAgICAgICgtW1dlYkhpc3RvcnlJ
dGVtIGluaXRGcm9tRGljdGlvbmFyeVJlcHJlc2VudGF0aW9uOl0pOgorICAgICAgICAqIFBsdWdp
bnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0
OjpOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnNldEN1cnJlbnRSZXBseSk6CisgICAgICAg
ICogUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICgtW1dlYk5ldHNj
YXBlUGx1Z2luVmlldyBzY2hlZHVsZVRpbWVyV2l0aEludGVydmFsOnJlcGVhdDp0aW1lckZ1bmM6
XSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06Cisg
ICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNw
b25zZSk6CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JOZXdXaW5kb3dBY3Rpb24pOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgIChXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybSk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tOgorICAgICAgICAoV2ViSW5zcGVjdG9yQ2xp
ZW50OjpvcGVuSW5zcGVjdG9yRnJvbnRlbmQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnQ6OldlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50KToKKyAgICAgICAgKiBXZWJWaWV3
L1dlYkFyY2hpdmUubW06CisgICAgICAgICgtW1dlYkFyY2hpdmUgaW5pdFdpdGhNYWluUmVzb3Vy
Y2U6c3VicmVzb3VyY2VzOnN1YmZyYW1lQXJjaGl2ZXM6XSk6CisKIDIwMTQtMDYtMjkgIFlvYXYg
V2Vpc3MgIDx5b2F2QHlvYXYud3M+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEhUTUxJbWFn
ZUVsZW1lbnQncyBzaXplcyBhdHRyaWJ1dGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dl
Ykhpc3RvcnlJdGVtLm1tCmluZGV4IDM1Y2JkMDEuLjNiYmZiYzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbQpAQCAtMzc0LDcgKzM3NCw3IEBAIFdlYkhp
c3RvcnlJdGVtICpraXQoSGlzdG9yeUl0ZW0qIGl0ZW0pCiAgICAgICAgIGF1dG8gcmVkaXJlY3RV
UkxzVmVjdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxWZWN0b3I8U3RyaW5nPj4oc2l6ZSk7CiAgICAg
ICAgIGZvciAoTlNVSW50ZWdlciBpID0gMDsgaSA8IHNpemU7ICsraSkKICAgICAgICAgICAgICgq
cmVkaXJlY3RVUkxzVmVjdG9yKVtpXSA9IFN0cmluZyhbcmVkaXJlY3RVUkxzIF93ZWJraXRfc3Ry
aW5nQXRJbmRleDppXSk7Ci0gICAgICAgIGNvcmUoX3ByaXZhdGUpLT5zZXRSZWRpcmVjdFVSTHMo
c3RkOjptb3ZlKHJlZGlyZWN0VVJMc1ZlY3RvcikpOworICAgICAgICBjb3JlKF9wcml2YXRlKS0+
c2V0UmVkaXJlY3RVUkxzKFdURjo6bW92ZShyZWRpcmVjdFVSTHNWZWN0b3IpKTsKICAgICB9CiAK
ICAgICBOU0FycmF5ICpjaGlsZERpY3RzID0gW2RpY3Qgb2JqZWN0Rm9yS2V5OmNoaWxkcmVuS2V5
XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBl
UGx1Z2luSW5zdGFuY2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5LmgKaW5kZXggM2IyYTU5Mi4uODc1ZjdiMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5J
bnN0YW5jZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0
c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5LmgKQEAgLTI1MSw3ICsyNTEsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRDdXJyZW50UmVwbHkodWludDMyX3QgcmVxdWVzdElELCBzdGQ6OnVuaXF1ZV9w
dHI8UmVwbHk+IHJlcGx5KQogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX3JlcGxpZXMuY29udGFp
bnMocmVxdWVzdElEKSk7Ci0gICAgICAgIG1fcmVwbGllcy5hZGQocmVxdWVzdElELCBzdGQ6Om1v
dmUocmVwbHkpKTsKKyAgICAgICAgbV9yZXBsaWVzLmFkZChyZXF1ZXN0SUQsIFdURjo6bW92ZShy
ZXBseSkpOwogICAgIH0KICAgICAKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIv
U291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXgg
ZDRmNTRhMS4uMGMxYjk5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9X
ZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9X
ZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTIxNjYsNyArMjE2Niw3IEBAIHN0YXRpYyBpbmxp
bmUgdm9pZCBnZXROUFJlY3QoY29uc3QgTlNSZWN0JiBuciwgTlBSZWN0JiBucHIpCiAgICAgaWYg
KF9zaG91bGRGaXJlVGltZXJzKQogICAgICAgICB0aW1lci0+c3RhcnQoX2lzQ29tcGxldGVseU9i
c2N1cmVkKTsKICAgICAKLSAgICAqc2xvdCA9IHN0ZDo6bW92ZSh0aW1lcik7CisgICAgKnNsb3Qg
PSBXVEY6Om1vdmUodGltZXIpOwogCiAgICAgcmV0dXJuIHRpbWVySUQ7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tCmluZGV4IDhkYmRhZTMuLjQyYzcyNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC04NjYsNyAr
ODY2LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnMKICAgICAgICAgICAgICAgICAgICAgICAg
IGRlY2lkZVBvbGljeUZvck1JTUVUeXBlOnJlc3BvbnNlLm1pbWVUeXBlKCkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OnJlcXVlc3QubnNVUkxSZXF1ZXN0
KFVwZGF0ZUhUVFBCb2R5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZnJhbWU6bV93ZWJGcmFtZS5nZXQoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRlY2lzaW9uTGlzdGVuZXI6c2V0VXBQb2xpY3lMaXN0ZW5lcihzdGQ6Om1vdmUoZnVuY3Rpb24p
KS5nZXQoKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaXNpb25MaXN0ZW5l
cjpzZXRVcFBvbGljeUxpc3RlbmVyKFdURjo6bW92ZShmdW5jdGlvbikpLmdldCgpXTsKIH0KIAog
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5k
b3dBY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUsIGNvbnN0IFN0
cmluZyYgZnJhbWVOYW1lLCBGcmFtZVBvbGljeUZ1bmN0aW9uIGZ1bmN0aW9uKQpAQCAtODc2LDcg
Kzg3Niw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IE5hdmlnYXRpCiAgICAgICAgICAgICBkZWNpZGVQb2xp
Y3lGb3JOZXdXaW5kb3dBY3Rpb246YWN0aW9uRGljdGlvbmFyeShhY3Rpb24sIGZvcm1TdGF0ZSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDpyZXF1ZXN0Lm5zVVJM
UmVxdWVzdChVcGRhdGVIVFRQQm9keSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5l
d0ZyYW1lTmFtZTpmcmFtZU5hbWUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaXNpb25M
aXN0ZW5lcjpzZXRVcFBvbGljeUxpc3RlbmVyKHN0ZDo6bW92ZShmdW5jdGlvbikpLmdldCgpXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaXNpb25MaXN0ZW5lcjpzZXRVcFBvbGljeUxp
c3RlbmVyKFdURjo6bW92ZShmdW5jdGlvbikpLmdldCgpXTsKIH0KIAogdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0
IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlLCBGcmFtZVBvbGljeUZ1bmN0aW9uIGZ1
bmN0aW9uKQpAQCAtODg2LDcgKzg4Niw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0CiAgICAg
ICAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjphY3Rpb25EaWN0aW9u
YXJ5KGFjdGlvbiwgZm9ybVN0YXRlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlcXVlc3Q6cmVxdWVzdC5uc1VSTFJlcXVlc3QoVXBkYXRlSFRUUEJvZHkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZTptX3dlYkZyYW1lLmdl
dCgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaXNpb25MaXN0ZW5lcjpzZXRV
cFBvbGljeUxpc3RlbmVyKHN0ZDo6bW92ZShmdW5jdGlvbikpLmdldCgpXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkZWNpc2lvbkxpc3RlbmVyOnNldFVwUG9saWN5TGlzdGVuZXIo
V1RGOjptb3ZlKGZ1bmN0aW9uKSkuZ2V0KCldOwogfQogCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpjYW5jZWxQb2xpY3lDaGVjaygpCkBAIC05MzIsNyArOTMyLDcgQEAgdm9pZCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShQYXNzUmVmUHRyPEZvcm1TdGF0
ZT4gZm9ybVN0YXQKICAgICB9CiAKICAgICBOU0RpY3Rpb25hcnkgKnZhbHVlcyA9IG1ha2VGb3Jt
RmllbGRWYWx1ZXNEaWN0aW9uYXJ5KGZvcm1TdGF0ZS5nZXQoKSk7Ci0gICAgQ2FsbEZvcm1EZWxl
Z2F0ZShnZXRXZWJWaWV3KG1fd2ViRnJhbWUuZ2V0KCkpLCBAc2VsZWN0b3IoZnJhbWU6c291cmNl
RnJhbWU6d2lsbFN1Ym1pdEZvcm06d2l0aFZhbHVlczpzdWJtaXNzaW9uTGlzdGVuZXI6KSwgbV93
ZWJGcmFtZS5nZXQoKSwga2l0KGZvcm1TdGF0ZS0+c291cmNlRG9jdW1lbnQoKS0+ZnJhbWUoKSks
IGtpdChmb3JtU3RhdGUtPmZvcm0oKSksIHZhbHVlcywgc2V0VXBQb2xpY3lMaXN0ZW5lcihzdGQ6
Om1vdmUoZnVuY3Rpb24pKS5nZXQoKSk7CisgICAgQ2FsbEZvcm1EZWxlZ2F0ZShnZXRXZWJWaWV3
KG1fd2ViRnJhbWUuZ2V0KCkpLCBAc2VsZWN0b3IoZnJhbWU6c291cmNlRnJhbWU6d2lsbFN1Ym1p
dEZvcm06d2l0aFZhbHVlczpzdWJtaXNzaW9uTGlzdGVuZXI6KSwgbV93ZWJGcmFtZS5nZXQoKSwg
a2l0KGZvcm1TdGF0ZS0+c291cmNlRG9jdW1lbnQoKS0+ZnJhbWUoKSksIGtpdChmb3JtU3RhdGUt
PmZvcm0oKSksIHZhbHVlcywgc2V0VXBQb2xpY3lMaXN0ZW5lcihXVEY6Om1vdmUoZnVuY3Rpb24p
KS5nZXQoKSk7CiB9CiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJldmVydFRvUHJvdmlz
aW9uYWxTdGF0ZShEb2N1bWVudExvYWRlciogbG9hZGVyKQpAQCAtMjI1Nyw3ICsyMjU3LDcgQEAg
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkQ3JlYXRlUXVpY2tMb29rSGFuZGxlKFdlYkNv
cmU6OlF1aWNrTG9va0hhbmRsZSYgaGEKICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAgIF9mcmFt
ZSA9IGZyYW1lOwotICAgIF9wb2xpY3lGdW5jdGlvbiA9IHN0ZDo6bW92ZShwb2xpY3lGdW5jdGlv
bik7CisgICAgX3BvbGljeUZ1bmN0aW9uID0gV1RGOjptb3ZlKHBvbGljeUZ1bmN0aW9uKTsKIAog
ICAgIHJldHVybiBzZWxmOwogfQpAQCAtMjI4MSw3ICsyMjgxLDcgQEAgdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlkQ3JlYXRlUXVpY2tMb29rSGFuZGxlKFdlYkNvcmU6OlF1aWNrTG9va0hh
bmRsZSYgaGEKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICBGcmFtZVBv
bGljeUZ1bmN0aW9uIHBvbGljeUZ1bmN0aW9uID0gc3RkOjptb3ZlKF9wb2xpY3lGdW5jdGlvbik7
CisgICAgRnJhbWVQb2xpY3lGdW5jdGlvbiBwb2xpY3lGdW5jdGlvbiA9IFdURjo6bW92ZShfcG9s
aWN5RnVuY3Rpb24pOwogICAgIF9wb2xpY3lGdW5jdGlvbiA9IG51bGxwdHI7CiAKICAgICBBU1NF
UlQocG9saWN5RnVuY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCmluZGV4IDczY2UyYTMuLjEyNDg5MDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNs
aWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0
b3JDbGllbnQubW0KQEAgLTE1MCw3ICsxNTAsNyBAQCBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwq
IFdlYkluc3BlY3RvckNsaWVudDo6b3Blbkluc3BlY3RvckZyb250ZW5kKEluc3BlY3RvckNvbgog
ICAgIG1fZnJvbnRlbmRDbGllbnQgPSBmcm9udGVuZENsaWVudC5nZXQoKTsKICAgICBSZXRhaW5Q
dHI8V2ViSW5zcGVjdG9yRnJvbnRlbmQ+IHdlYkluc3BlY3RvckZyb250ZW5kID0gYWRvcHROUyhb
W1dlYkluc3BlY3RvckZyb250ZW5kIGFsbG9jXSBpbml0V2l0aEZyb250ZW5kQ2xpZW50OmZyb250
ZW5kQ2xpZW50LmdldCgpXSk7CiAgICAgW1ttX3dlYlZpZXcgaW5zcGVjdG9yXSBzZXRGcm9udGVu
ZDp3ZWJJbnNwZWN0b3JGcm9udGVuZC5nZXQoKV07Ci0gICAgbV9mcm9udGVuZFBhZ2UtPmluc3Bl
Y3RvckNvbnRyb2xsZXIoKS5zZXRJbnNwZWN0b3JGcm9udGVuZENsaWVudChzdGQ6Om1vdmUoZnJv
bnRlbmRDbGllbnQpKTsKKyAgICBtX2Zyb250ZW5kUGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigp
LnNldEluc3BlY3RvckZyb250ZW5kQ2xpZW50KFdURjo6bW92ZShmcm9udGVuZENsaWVudCkpOwog
ICAgIHJldHVybiB0aGlzOwogfQogCkBAIC0yMDEsNyArMjAxLDcgQEAgdm9pZCBXZWJJbnNwZWN0
b3JDbGllbnQ6OnJlbGVhc2VGcm9udGVuZCgpCiAKIAogV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQ6OldlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50KFdlYlZpZXcqIGluc3BlY3RlZFdlYlZpZXcs
IFdlYkluc3BlY3RvcldpbmRvd0NvbnRyb2xsZXIqIHdpbmRvd0NvbnRyb2xsZXIsIEluc3BlY3Rv
ckNvbnRyb2xsZXIqIGluc3BlY3RvckNvbnRyb2xsZXIsIFBhZ2UqIGZyb250ZW5kUGFnZSwgc3Rk
Ojp1bmlxdWVfcHRyPFNldHRpbmdzPiBzZXR0aW5ncykKLSAgICA6IEluc3BlY3RvckZyb250ZW5k
Q2xpZW50TG9jYWwoaW5zcGVjdG9yQ29udHJvbGxlciwgIGZyb250ZW5kUGFnZSwgc3RkOjptb3Zl
KHNldHRpbmdzKSkKKyAgICA6IEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwoaW5zcGVjdG9y
Q29udHJvbGxlciwgIGZyb250ZW5kUGFnZSwgV1RGOjptb3ZlKHNldHRpbmdzKSkKICAgICAsIG1f
aW5zcGVjdGVkV2ViVmlldyhpbnNwZWN0ZWRXZWJWaWV3KQogICAgICwgbV93aW5kb3dDb250cm9s
bGVyKHdpbmRvd0NvbnRyb2xsZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkFyY2hpdmUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFyY2hp
dmUubW0KaW5kZXggMmZmMDg4MC4uMmI2ZGE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJBcmNoaXZlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViQXJjaGl2ZS5tbQpAQCAtMTg2LDcgKzE4Niw3IEBAIHN0YXRpYyBCT09MIGlzQXJyYXlPZkNs
YXNzKGlkIG9iamVjdCwgQ2xhc3MgZWxlbWVudENsYXNzKQogICAgIGZvciAoV2ViQXJjaGl2ZSAq
c3ViZnJhbWVBcmNoaXZlIGluIHN1YmZyYW1lQXJjaGl2ZXMpCiAgICAgICAgIGNvcmVBcmNoaXZl
cy5hcHBlbmQoW3N1YmZyYW1lQXJjaGl2ZS0+X3ByaXZhdGUgY29yZUFyY2hpdmVdKTsKIAotICAg
IFJlZlB0cjxMZWdhY3lXZWJBcmNoaXZlPiBjb3JlQXJjaGl2ZSA9IExlZ2FjeVdlYkFyY2hpdmU6
OmNyZWF0ZShjb3JlTWFpblJlc291cmNlLnJlbGVhc2UoKSwgc3RkOjptb3ZlKGNvcmVSZXNvdXJj
ZXMpLCBzdGQ6Om1vdmUoY29yZUFyY2hpdmVzKSk7CisgICAgUmVmUHRyPExlZ2FjeVdlYkFyY2hp
dmU+IGNvcmVBcmNoaXZlID0gTGVnYWN5V2ViQXJjaGl2ZTo6Y3JlYXRlKGNvcmVNYWluUmVzb3Vy
Y2UucmVsZWFzZSgpLCBXVEY6Om1vdmUoY29yZVJlc291cmNlcyksIFdURjo6bW92ZShjb3JlQXJj
aGl2ZXMpKTsKICAgICBpZiAoIWNvcmVBcmNoaXZlKSB7CiAgICAgICAgIFtzZWxmIHJlbGVhc2Vd
OwogICAgICAgICByZXR1cm4gbmlsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDUyZWM3YmUuLjhkNzg5
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxNC0wNy0wMSAgRGFuaWVs
IEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFdURjo6bW92ZSgpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ1MDAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdWJzdGl0dXRl
IFdURjo6bW92ZSgpIGZvciBzdGQ6Om1vdmUoKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkluc3BlY3RvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJJbnNwZWN0b3JDbGllbnQ6Om9w
ZW5JbnNwZWN0b3JGcm9udGVuZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVu
dDo6V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQpOgorICAgICAgICAqIFdlYkhpc3RvcnkuY3Bw
OgorICAgICAgICAoY3JlYXRlVXNlckluZm9Gcm9tQXJyYXkpOgorICAgICAgICAqIFdlYkhpc3Rv
cnlJdGVtLmNwcDoKKyAgICAgICAgKFdlYkhpc3RvcnlJdGVtOjppbml0RnJvbURpY3Rpb25hcnlS
ZXByZXNlbnRhdGlvbik6CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3
OjphZGRUb0RpcnR5UmVnaW9uKToKKyAgICAgICAgKFdlYlZpZXc6OnNjcm9sbEJhY2tpbmdTdG9y
ZSk6CisKIDIwMTQtMDYtMjYgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbW92ZSB1c2Ugb2YgUGxhdGZvcm1TdHJhdGVnaWVzIGZvciBHYW1lcGFkIEFQSS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3Rv
ckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0
b3JDbGllbnQuY3BwCmluZGV4IDdlMGIxNTkuLjI2NmVlYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcApAQCAt
MTczLDcgKzE3Myw3IEBAIFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogV2ViSW5z
cGVjdG9yQ2xpZW50OjpvcGVuSW5zcGVjdG9yRnJvbnRlbmQoSW5zCiAgICAgbV9mcm9udGVuZFBh
Z2UgPSBjb3JlKGZyb250ZW5kV2ViVmlldy5nZXQoKSk7CiAgICAgYXV0byBmcm9udGVuZENsaWVu
dCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ+KG1faW5zcGVj
dGVkV2ViVmlldywgcmVpbnRlcnByZXRfY2FzdDxIV05EPihtX2luc3BlY3RlZFdlYlZpZXdIYW5k
bGUpLCBmcm9udGVuZEh3bmQsIGZyb250ZW5kV2ViVmlldywgZnJvbnRlbmRXZWJWaWV3SHduZCwg
dGhpcywgY3JlYXRlRnJvbnRlbmRTZXR0aW5ncygpKTsKICAgICBtX2Zyb250ZW5kQ2xpZW50ID0g
ZnJvbnRlbmRDbGllbnQuZ2V0KCk7Ci0gICAgbV9mcm9udGVuZFBhZ2UtPmluc3BlY3RvckNvbnRy
b2xsZXIoKS5zZXRJbnNwZWN0b3JGcm9udGVuZENsaWVudChzdGQ6Om1vdmUoZnJvbnRlbmRDbGll
bnQpKTsKKyAgICBtX2Zyb250ZW5kUGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLnNldEluc3Bl
Y3RvckZyb250ZW5kQ2xpZW50KFdURjo6bW92ZShmcm9udGVuZENsaWVudCkpOwogICAgIG1fZnJv
bnRlbmRIYW5kbGUgPSByZWludGVycHJldF9jYXN0PE9MRV9IQU5ETEU+KGZyb250ZW5kSHduZCk7
CiAgICAgcmV0dXJuIHRoaXM7CiB9CkBAIC0yMjUsNyArMjI1LDcgQEAgdm9pZCBXZWJJbnNwZWN0
b3JDbGllbnQ6OnJlbGVhc2VGcm9udGVuZCgpCiB9CiAKIFdlYkluc3BlY3RvckZyb250ZW5kQ2xp
ZW50OjpXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudChXZWJWaWV3KiBpbnNwZWN0ZWRXZWJWaWV3
LCBIV05EIGluc3BlY3RlZFdlYlZpZXdId25kLCBIV05EIGZyb250ZW5kSHduZCwgY29uc3QgQ09N
UHRyPFdlYlZpZXc+JiBmcm9udGVuZFdlYlZpZXcsIEhXTkQgZnJvbnRlbmRXZWJWaWV3SHduZCwg
V2ViSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDbGllbnQsIHN0ZDo6dW5pcXVlX3B0cjxTZXR0
aW5ncz4gc2V0dGluZ3MpCi0gICAgOiBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsKCZpbnNw
ZWN0ZWRXZWJWaWV3LT5wYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKSwgIGNvcmUoZnJvbnRl
bmRXZWJWaWV3LmdldCgpKSwgc3RkOjptb3ZlKHNldHRpbmdzKSkKKyAgICA6IEluc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWwoJmluc3BlY3RlZFdlYlZpZXctPnBhZ2UoKS0+aW5zcGVjdG9yQ29u
dHJvbGxlcigpLCAgY29yZShmcm9udGVuZFdlYlZpZXcuZ2V0KCkpLCBXVEY6Om1vdmUoc2V0dGlu
Z3MpKQogICAgICwgbV9pbnNwZWN0ZWRXZWJWaWV3KGluc3BlY3RlZFdlYlZpZXcpCiAgICAgLCBt
X2luc3BlY3RlZFdlYlZpZXdId25kKGluc3BlY3RlZFdlYlZpZXdId25kKQogICAgICwgbV9pbnNw
ZWN0b3JDbGllbnQoaW5zcGVjdG9yQ2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW4vV2ViSGlzdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJIaXN0b3J5LmNwcAppbmRl
eCAxZWQzYjU0Li5iOWE0NmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJIaXN0
b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJIaXN0b3J5LmNwcApAQCAtODIsNyAr
ODIsNyBAQCBzdGF0aWMgQ09NUHRyPElQcm9wZXJ0eUJhZz4gY3JlYXRlVXNlckluZm9Gcm9tQXJy
YXkoQlNUUiBub3RpZmljYXRpb25TdHIsIElXZWJIaQogCiAgICAgSGFzaE1hcDxTdHJpbmcsIFZl
Y3RvcjxDT01QdHI8SVdlYkhpc3RvcnlJdGVtPj4+IGRpY3Rpb25hcnk7CiAgICAgU3RyaW5nIGtl
eShub3RpZmljYXRpb25TdHIsIDo6U3lzU3RyaW5nTGVuKG5vdGlmaWNhdGlvblN0cikpOwotICAg
IGRpY3Rpb25hcnkuc2V0KGtleSwgc3RkOjptb3ZlKGFycmF5SXRlbSkpOworICAgIGRpY3Rpb25h
cnkuc2V0KGtleSwgV1RGOjptb3ZlKGFycmF5SXRlbSkpOwogICAgIHJldHVybiBDT01QdHI8SVBy
b3BlcnR5QmFnPihBZG9wdENPTSwgQ09NUHJvcGVydHlCYWc8VmVjdG9yPENPTVB0cjxJV2ViSGlz
dG9yeUl0ZW0+Pj46OmFkb3B0KGRpY3Rpb25hcnkpKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC93aW4vV2ViSGlzdG9yeUl0ZW0uY3BwIGIvU291cmNlL1dlYktpdC93aW4v
V2ViSGlzdG9yeUl0ZW0uY3BwCmluZGV4IDBmMzQ2M2QuLjliOTkwNmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkhpc3RvcnlJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJIaXN0b3J5SXRlbS5jcHAKQEAgLTEyOCw3ICsxMjgsNyBAQCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIFdlYkhpc3RvcnlJdGVtOjppbml0RnJvbURpY3Rpb25hcnlSZXByZXNlbnRhdGlv
bih2b2lkKgogICAgICAgICBtX2hpc3RvcnlJdGVtLT5zZXRMYXN0VmlzaXRXYXNGYWlsdXJlKHRy
dWUpOwogCiAgICAgaWYgKHJlZGlyZWN0VVJMc1ZlY3Rvci5nZXQoKSkKLSAgICAgICAgbV9oaXN0
b3J5SXRlbS0+c2V0UmVkaXJlY3RVUkxzKHN0ZDo6bW92ZShyZWRpcmVjdFVSTHNWZWN0b3IpKTsK
KyAgICAgICAgbV9oaXN0b3J5SXRlbS0+c2V0UmVkaXJlY3RVUkxzKFdURjo6bW92ZShyZWRpcmVj
dFVSTHNWZWN0b3IpKTsKIAogICAgIHJldHVybiBTX09LOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApp
bmRleCA0YTI2ZGRmLi43ZTM2MDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJW
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtODQ4LDcgKzg0
OCw3IEBAIHZvaWQgV2ViVmlldzo6YWRkVG9EaXJ0eVJlZ2lvbihjb25zdCBJbnRSZWN0JiBkaXJ0
eVJlY3QpCiAKICAgICBhdXRvIG5ld1JlZ2lvbiA9IGFkb3B0R0RJT2JqZWN0KDo6Q3JlYXRlUmVj
dFJnbihkaXJ0eVJlY3QueCgpLCBkaXJ0eVJlY3QueSgpLAogICAgICAgICBkaXJ0eVJlY3QubWF4
WCgpLCBkaXJ0eVJlY3QubWF4WSgpKSk7Ci0gICAgYWRkVG9EaXJ0eVJlZ2lvbihzdGQ6Om1vdmUo
bmV3UmVnaW9uKSk7CisgICAgYWRkVG9EaXJ0eVJlZ2lvbihXVEY6Om1vdmUobmV3UmVnaW9uKSk7
CiB9CiAKIHZvaWQgV2ViVmlldzo6YWRkVG9EaXJ0eVJlZ2lvbihHRElPYmplY3Q8SFJHTj4gbmV3
UmVnaW9uKQpAQCAtODYyLDkgKzg2Miw5IEBAIHZvaWQgV2ViVmlldzo6YWRkVG9EaXJ0eVJlZ2lv
bihHRElPYmplY3Q8SFJHTj4gbmV3UmVnaW9uKQogICAgIGlmIChtX2JhY2tpbmdTdG9yZURpcnR5
UmVnaW9uKSB7CiAgICAgICAgIGF1dG8gY29tYmluZWRSZWdpb24gPSBhZG9wdEdESU9iamVjdCg6
OkNyZWF0ZVJlY3RSZ24oMCwgMCwgMCwgMCkpOwogICAgICAgICA6OkNvbWJpbmVSZ24oY29tYmlu
ZWRSZWdpb24uZ2V0KCksIG1fYmFja2luZ1N0b3JlRGlydHlSZWdpb24tPmdldCgpLCBuZXdSZWdp
b24uZ2V0KCksIFJHTl9PUik7Ci0gICAgICAgIG1fYmFja2luZ1N0b3JlRGlydHlSZWdpb24gPSBT
aGFyZWRHRElPYmplY3Q8SFJHTj46OmNyZWF0ZShzdGQ6Om1vdmUoY29tYmluZWRSZWdpb24pKTsK
KyAgICAgICAgbV9iYWNraW5nU3RvcmVEaXJ0eVJlZ2lvbiA9IFNoYXJlZEdESU9iamVjdDxIUkdO
Pjo6Y3JlYXRlKFdURjo6bW92ZShjb21iaW5lZFJlZ2lvbikpOwogICAgIH0gZWxzZQotICAgICAg
ICBtX2JhY2tpbmdTdG9yZURpcnR5UmVnaW9uID0gU2hhcmVkR0RJT2JqZWN0PEhSR04+OjpjcmVh
dGUoc3RkOjptb3ZlKG5ld1JlZ2lvbikpOworICAgICAgICBtX2JhY2tpbmdTdG9yZURpcnR5UmVn
aW9uID0gU2hhcmVkR0RJT2JqZWN0PEhSR04+OjpjcmVhdGUoV1RGOjptb3ZlKG5ld1JlZ2lvbikp
OwogCiAgICAgaWYgKG1fdWlEZWxlZ2F0ZVByaXZhdGUpCiAgICAgICAgIG1fdWlEZWxlZ2F0ZVBy
aXZhdGUtPndlYlZpZXdEaWRJbnZhbGlkYXRlKHRoaXMpOwpAQCAtOTEwLDcgKzkxMCw3IEBAIHZv
aWQgV2ViVmlldzo6c2Nyb2xsQmFja2luZ1N0b3JlKEZyYW1lVmlldyogZnJhbWVWaWV3LCBpbnQg
ZHgsIGludCBkeSwgY29uc3QgSW50CiAgICAgR2RpRmx1c2goKTsKIAogICAgIC8vIEFkZCB0aGUg
ZGlydHkgcmVnaW9uIHRvIHRoZSBiYWNraW5nIHN0b3JlJ3MgZGlydHkgcmVnaW9uLgotICAgIGFk
ZFRvRGlydHlSZWdpb24oc3RkOjptb3ZlKHVwZGF0ZVJlZ2lvbikpOworICAgIGFkZFRvRGlydHlS
ZWdpb24oV1RGOjptb3ZlKHVwZGF0ZVJlZ2lvbikpOwogCiAgICAgaWYgKG1fdWlEZWxlZ2F0ZVBy
aXZhdGUpCiAgICAgICAgIG1fdWlEZWxlZ2F0ZVByaXZhdGUtPndlYlZpZXdTY3JvbGxlZCh0aGlz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCBjM2ZjNmEzLi4yZWYyOWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzUgQEAKKzIwMTQtMDctMDEgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisg
ICAgICAgIEFkZCBXVEY6Om1vdmUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM0NTAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU3Vic3RpdHV0ZSBXVEY6Om1vdmUoKSBmb3Igc3RkOjptb3ZlKCkuCisK
KyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcDoKKyAgICAgICAg
KiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2
aWNlRW50cnlQb2ludC5tbToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9GaWxlQVBJL05ldHdv
cmtCbG9iUmVnaXN0cnkuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQXJndW1lbnRD
b2RlcnMuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQXJndW1lbnREZWNvZGVyLmNwcDoKKyAg
ICAgICAgKiBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHA6CisgICAgICAgICogUGxhdGZvcm0v
SVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvSGFuZGxlTWVzc2FnZS5o
OgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9NZXNzYWdlRGVjb2Rlci5jcHA6CisgICAgICAgICog
UGxhdGZvcm0vSVBDL01lc3NhZ2VTZW5kZXIuY3BwOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9N
ZXNzYWdlU2VuZGVyLmg6CisgICAgICAgICogUGxhdGZvcm0vSVBDL21hYy9Db25uZWN0aW9uTWFj
Lm1tOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcDoKKyAg
ICAgICAgKiBQbGF0Zm9ybS9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5jcHA6CisgICAgICAgICogUGxh
dGZvcm0vZWZsL0Rpc3BhdGNoUXVldWVXb3JrSXRlbUVmbC5oOgorICAgICAgICAqIFBsYXRmb3Jt
L2VmbC9Xb3JrUXVldWVFZmwuY3BwOgorICAgICAgICAqIFBsYXRmb3JtL2d0ay9Xb3JrUXVldWVH
dGsuY3BwOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2Vydmlj
ZS9QbHVnaW5TZXJ2aWNlRW50cnlQb2ludC5tbToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1dl
YlByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICBbLi4uXQorCiAyMDE0LTA3LTAxICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIFdLU2Vzc2lv
blN0YXRlR2V0VHlwZUlECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nl
c3MvRGF0YWJhc2VQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9E
YXRhYmFzZVByb2Nlc3MuY3BwCmluZGV4IGZhZGQyMzUuLjNjMDc4YzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCkBAIC0xMjks
NyArMTI5LDcgQEAgdm9pZCBEYXRhYmFzZVByb2Nlc3M6OnBvc3REYXRhYmFzZVRhc2soc3RkOjp1
bmlxdWVfcHRyPEFzeW5jVGFzaz4gdGFzaykKIAogICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2Rh
dGFiYXNlVGFza011dGV4KTsKIAotICAgIG1fZGF0YWJhc2VUYXNrcy5hcHBlbmQoc3RkOjptb3Zl
KHRhc2spKTsKKyAgICBtX2RhdGFiYXNlVGFza3MuYXBwZW5kKFdURjo6bW92ZSh0YXNrKSk7CiAK
ICAgICBtX3F1ZXVlLT5kaXNwYXRjaChiaW5kKCZEYXRhYmFzZVByb2Nlc3M6OnBlcmZvcm1OZXh0
RGF0YWJhc2VUYXNrLCB0aGlzKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCmluZGV4
IGY3MmI5NGUuLmM0YjM2ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJv
Y2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCkBAIC0zMTcs
NyArMzE3LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cG9zdFRyYW5zYWN0aW9uT3BlcmF0
aW9uKGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW8KICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIHBvc3REYXRhYmFzZVRhc2soc3RkOjptb3ZlKHRhc2spKTsKKyAgICBwb3N0RGF0
YWJhc2VUYXNrKFdURjo6bW92ZSh0YXNrKSk7CiAKICAgICBSZWZQdHI8QXN5bmNSZXF1ZXN0PiBy
ZXF1ZXN0ID0gQXN5bmNSZXF1ZXN0SW1wbDxib29sPjo6Y3JlYXRlKFtzdWNjZXNzQ2FsbGJhY2td
KGJvb2wgc3VjY2VzcykgewogICAgICAgICBzdWNjZXNzQ2FsbGJhY2soc3VjY2Vzcyk7CkBAIC0x
MDgxLDcgKzEwODEsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwb3N0TWFpblRocmVhZFRh
c2soc3RkOjp1bmlxdWVfcHRyPEFzeW5jVGFzaz4gdGFzaywgRGF0YQogCiAgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fbWFpblRocmVhZFRhc2tNdXRleCk7CiAKLSAgICBtX21haW5UaHJlYWRUYXNr
cy5hcHBlbmQoc3RkOjptb3ZlKHRhc2spKTsKKyAgICBtX21haW5UaHJlYWRUYXNrcy5hcHBlbmQo
V1RGOjptb3ZlKHRhc2spKTsKIAogICAgIC8vIEJhbGFuY2VkIGJ5IGFuIGFkb3B0UmVmKCkgaW4g
OjpwZXJmb3JtTmV4dE1haW5UaHJlYWRUYXNrCiAgICAgcmVmKCk7CkBAIC0xMTI4LDcgKzExMjgs
NyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwb3N0RGF0YWJhc2VUYXNrKHN0ZDo6dW5pcXVl
X3B0cjxBc3luY1Rhc2s+IHRhc2ssIERhdGFiYQogCiAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
ZGF0YWJhc2VUYXNrTXV0ZXgpOwogCi0gICAgbV9kYXRhYmFzZVRhc2tzLmFwcGVuZChzdGQ6Om1v
dmUodGFzaykpOworICAgIG1fZGF0YWJhc2VUYXNrcy5hcHBlbmQoV1RGOjptb3ZlKHRhc2spKTsK
IAogICAgIERhdGFiYXNlUHJvY2Vzczo6c2hhcmVkKCkucXVldWUoKS5kaXNwYXRjaChiaW5kKCZV
bmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybU5leHREYXRhYmFzZVRhc2ssIHRoaXMpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQ
Q1NlcnZpY2UvTmV0d29ya1NlcnZpY2VFbnRyeVBvaW50Lm1tIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9OZXR3b3JrU2VydmljZUVudHJ5
UG9pbnQubW0KaW5kZXggYmU3M2JjYS4uNjI4ZDJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9OZXR3b3JrU2Vydmlj
ZUVudHJ5UG9pbnQubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRW50cnlQ
b2ludC9tYWMvWFBDU2VydmljZS9OZXR3b3JrU2VydmljZUVudHJ5UG9pbnQubW0KQEAgLTM1LDcg
KzM1LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBOZXR3b3JrU2VydmljZUluaXRpYWxp
emVyRGVsZWdhdGUgOiBwdWJsaWMgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGUgewogcHVi
bGljOgogICAgIE5ldHdvcmtTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZShJUEM6OlhQQ1B0cjx4
cGNfY29ubmVjdGlvbl90PiBjb25uZWN0aW9uLCB4cGNfb2JqZWN0X3QgaW5pdGlhbGl6ZXJNZXNz
YWdlKQotICAgICAgICA6IFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlKHN0ZDo6bW92ZShj
b25uZWN0aW9uKSwgaW5pdGlhbGl6ZXJNZXNzYWdlKQorICAgICAgICA6IFhQQ1NlcnZpY2VJbml0
aWFsaXplckRlbGVnYXRlKFdURjo6bW92ZShjb25uZWN0aW9uKSwgaW5pdGlhbGl6ZXJNZXNzYWdl
KQogICAgIHsKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvRmlsZUFQSS9OZXR3b3JrQmxvYlJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5jcHAKaW5kZXggOWIzMzlm
ZC4uYzYwMTg4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRmls
ZUFQSS9OZXR3b3JrQmxvYlJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9GaWxlQVBJL05ldHdvcmtCbG9iUmVnaXN0cnkuY3BwCkBAIC02Myw3ICs2Myw3IEBA
IHZvaWQgTmV0d29ya0Jsb2JSZWdpc3RyeTo6cmVnaXN0ZXJGaWxlQmxvYlVSTChOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyogY29uCiAKIHZvaWQgTmV0d29ya0Jsb2JSZWdpc3RyeTo6cmVn
aXN0ZXJCbG9iVVJMKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBjb25uZWN0aW9uLCBj
b25zdCBVUkwmIHVybCwgVmVjdG9yPFdlYkNvcmU6OkJsb2JQYXJ0PiBibG9iUGFydHMsIGNvbnN0
IFN0cmluZyYgY29udGVudFR5cGUpCiB7Ci0gICAgYmxvYlJlZ2lzdHJ5KCkucmVnaXN0ZXJCbG9i
VVJMKHVybCwgc3RkOjptb3ZlKGJsb2JQYXJ0cyksIGNvbnRlbnRUeXBlKTsKKyAgICBibG9iUmVn
aXN0cnkoKS5yZWdpc3RlckJsb2JVUkwodXJsLCBXVEY6Om1vdmUoYmxvYlBhcnRzKSwgY29udGVu
dFR5cGUpOwogCiAgICAgQVNTRVJUKCFtX2Jsb2JzRm9yQ29ubmVjdGlvbi5nZXQoY29ubmVjdGlv
bikuY29udGFpbnModXJsKSk7CiAgICAgQmxvYkZvckNvbm5lY3Rpb25NYXA6Oml0ZXJhdG9yIG1h
cEl0ZXJhdG9yID0gbV9ibG9ic0ZvckNvbm5lY3Rpb24uZmluZChjb25uZWN0aW9uKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA2ZDIyMTAzLi44ZWRkNzNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0yMjksNyArMjI5LDcgQEAgdm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmIHVybCwg
Y29uc3QgU3QKIAogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJC
bG9iVVJMKGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8QmxvYlBhcnQ+IGJsb2JQYXJ0cywgY29uc3Qg
U3RyaW5nJiBjb250ZW50VHlwZSkKIHsKLSAgICBOZXR3b3JrQmxvYlJlZ2lzdHJ5OjpzaGFyZWQo
KS5yZWdpc3RlckJsb2JVUkwodGhpcywgdXJsLCBzdGQ6Om1vdmUoYmxvYlBhcnRzKSwgY29udGVu
dFR5cGUpOworICAgIE5ldHdvcmtCbG9iUmVnaXN0cnk6OnNoYXJlZCgpLnJlZ2lzdGVyQmxvYlVS
TCh0aGlzLCB1cmwsIFdURjo6bW92ZShibG9iUGFydHMpLCBjb250ZW50VHlwZSk7CiB9CiAKIHZv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlZ2lzdGVyQmxvYlVSTEZyb21VUkwo
Y29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAppbmRleCA3ZjU0OGUxLi43NTUzNmU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaApAQCAtNzcsNyArNzcs
NyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXVEY6Ok9wdGlv
bmFsPFQ+PiB7CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodmFsdWUpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIG9wdGlvbmFsID0gc3RkOjptb3ZlKHZhbHVlKTsK
KyAgICAgICAgb3B0aW9uYWwgPSBXVEY6Om1vdmUodmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiB9OwpAQCAtMTQ4LDcgKzE0OCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNp
emVfdCBpbmxpbmVDYXBhY2l0eT4gc3RydWN0IFZlY3RvckFyZ3VtZW50Q29kZXI8ZmFsc2UsIFQs
CiAgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGVsZW1lbnQpKQogICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgdG1wLmFwcGVuZChz
dGQ6Om1vdmUoZWxlbWVudCkpOworICAgICAgICAgICAgdG1wLmFwcGVuZChXVEY6Om1vdmUoZWxl
bWVudCkpOwogICAgICAgICB9CiAKICAgICAgICAgdG1wLnNocmlua1RvRml0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnREZWNvZGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudERlY29kZXIuY3BwCmluZGV4IDZkMzk2
YmUuLjQxMDVhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1
bWVudERlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVu
dERlY29kZXIuY3BwCkBAIC00MCw3ICs0MCw3IEBAIEFyZ3VtZW50RGVjb2Rlcjo6QXJndW1lbnRE
ZWNvZGVyKGNvbnN0IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90IGJ1ZmZlclNpemUsIFZlY3RvCiB7
CiAgICAgaW5pdGlhbGl6ZShidWZmZXIsIGJ1ZmZlclNpemUpOwogCi0gICAgbV9hdHRhY2htZW50
cyA9IHN0ZDo6bW92ZShhdHRhY2htZW50cyk7CisgICAgbV9hdHRhY2htZW50cyA9IFdURjo6bW92
ZShhdHRhY2htZW50cyk7CiB9CiAKIEFyZ3VtZW50RGVjb2Rlcjo6fkFyZ3VtZW50RGVjb2Rlcigp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKaW5kZXggMjkyYWFh
Ny4uMGNjNTQ4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNw
cApAQCAtMTU5LDcgKzE1OSw3IEBAIGJvb2wgQ29ubmVjdGlvbjo6U3luY01lc3NhZ2VTdGF0ZTo6
cHJvY2Vzc0luY29taW5nTWVzc2FnZShDb25uZWN0aW9uKiBjb25uZWN0aW9uCiAKICAgICBDb25u
ZWN0aW9uQW5kSW5jb21pbmdNZXNzYWdlIGNvbm5lY3Rpb25BbmRJbmNvbWluZ01lc3NhZ2U7CiAg
ICAgY29ubmVjdGlvbkFuZEluY29taW5nTWVzc2FnZS5jb25uZWN0aW9uID0gY29ubmVjdGlvbjsK
LSAgICBjb25uZWN0aW9uQW5kSW5jb21pbmdNZXNzYWdlLm1lc3NhZ2UgPSBzdGQ6Om1vdmUobWVz
c2FnZSk7CisgICAgY29ubmVjdGlvbkFuZEluY29taW5nTWVzc2FnZS5tZXNzYWdlID0gV1RGOjpt
b3ZlKG1lc3NhZ2UpOwogCiAgICAgewogICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRl
eCk7CkBAIC0xNjcsNyArMTY3LDcgQEAgYm9vbCBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRl
Ojpwcm9jZXNzSW5jb21pbmdNZXNzYWdlKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24KICAgICAgICAg
aWYgKG1fZGlkU2NoZWR1bGVEaXNwYXRjaE1lc3NhZ2VzV29ya1NldC5hZGQoY29ubmVjdGlvbiku
aXNOZXdFbnRyeSkKICAgICAgICAgICAgIG1fcnVuTG9vcC5kaXNwYXRjaChiaW5kKCZTeW5jTWVz
c2FnZVN0YXRlOjpkaXNwYXRjaE1lc3NhZ2VBbmRSZXNldERpZFNjaGVkdWxlRGlzcGF0Y2hNZXNz
YWdlc0ZvckNvbm5lY3Rpb24sIHRoaXMsIFJlZlB0cjxDb25uZWN0aW9uPihjb25uZWN0aW9uKSkp
OwogCi0gICAgICAgIG1fbWVzc2FnZXNUb0Rpc3BhdGNoV2hpbGVXYWl0aW5nRm9yU3luY1JlcGx5
LmFwcGVuZChzdGQ6Om1vdmUoY29ubmVjdGlvbkFuZEluY29taW5nTWVzc2FnZSkpOworICAgICAg
ICBtX21lc3NhZ2VzVG9EaXNwYXRjaFdoaWxlV2FpdGluZ0ZvclN5bmNSZXBseS5hcHBlbmQoV1RG
Ojptb3ZlKGNvbm5lY3Rpb25BbmRJbmNvbWluZ01lc3NhZ2UpKTsKICAgICB9CiAKICAgICB3YWtl
VXBDbGllbnRSdW5Mb29wKCk7CkBAIC0xOTQsMTggKzE5NCwxOCBAQCB2b2lkIENvbm5lY3Rpb246
OlN5bmNNZXNzYWdlU3RhdGU6OmRpc3BhdGNoTWVzc2FnZXMoQ29ubmVjdGlvbiogYWxsb3dlZENv
bm5lY3RpbwogICAgICAgICBpZiAoYWxsb3dlZENvbm5lY3Rpb24gJiYgYWxsb3dlZENvbm5lY3Rp
b24gIT0gY29ubmVjdGlvbkFuZEluY29taW5nTWVzc2FnZS5jb25uZWN0aW9uKSB7CiAgICAgICAg
ICAgICAvLyBUaGlzIGluY29taW5nIG1lc3NhZ2UgYmVsb25ncyB0byBhbm90aGVyIGNvbm5lY3Rp
b24gYW5kIHdlIGRvbid0IHdhbnQgdG8gZGlzcGF0Y2ggaXQgbm93CiAgICAgICAgICAgICAvLyBz
byBtYXJrIGl0IHRvIGJlIHB1dCBiYWNrIGluIHRoZSBtZXNzYWdlIHF1ZXVlLgotICAgICAgICAg
ICAgbWVzc2FnZXNUb1B1dEJhY2suYXBwZW5kKHN0ZDo6bW92ZShjb25uZWN0aW9uQW5kSW5jb21p
bmdNZXNzYWdlKSk7CisgICAgICAgICAgICBtZXNzYWdlc1RvUHV0QmFjay5hcHBlbmQoV1RGOjpt
b3ZlKGNvbm5lY3Rpb25BbmRJbmNvbWluZ01lc3NhZ2UpKTsKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICB9CiAKLSAgICAgICAgY29ubmVjdGlvbkFuZEluY29taW5nTWVzc2FnZS5jb25u
ZWN0aW9uLT5kaXNwYXRjaE1lc3NhZ2Uoc3RkOjptb3ZlKGNvbm5lY3Rpb25BbmRJbmNvbWluZ01l
c3NhZ2UubWVzc2FnZSkpOworICAgICAgICBjb25uZWN0aW9uQW5kSW5jb21pbmdNZXNzYWdlLmNv
bm5lY3Rpb24tPmRpc3BhdGNoTWVzc2FnZShXVEY6Om1vdmUoY29ubmVjdGlvbkFuZEluY29taW5n
TWVzc2FnZS5tZXNzYWdlKSk7CiAgICAgfQogCiAgICAgaWYgKCFtZXNzYWdlc1RvUHV0QmFjay5p
c0VtcHR5KCkpIHsKICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAg
ICAgIGZvciAoYXV0byYgbWVzc2FnZSA6IG1lc3NhZ2VzVG9QdXRCYWNrKQotICAgICAgICAgICAg
bV9tZXNzYWdlc1RvRGlzcGF0Y2hXaGlsZVdhaXRpbmdGb3JTeW5jUmVwbHkuYXBwZW5kKHN0ZDo6
bW92ZShtZXNzYWdlKSk7CisgICAgICAgICAgICBtX21lc3NhZ2VzVG9EaXNwYXRjaFdoaWxlV2Fp
dGluZ0ZvclN5bmNSZXBseS5hcHBlbmQoV1RGOjptb3ZlKG1lc3NhZ2UpKTsKICAgICB9CiB9CiAK
QEAgLTMyMiw3ICszMjIsNyBAQCB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoV29ya1F1ZXVlTWVz
c2FnZVJlY2VpdmVyTWVzc2FnZShXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZQogICAgIEFTU0VSVCgh
ZGVjb2Rlci0+aXNJbnZhbGlkKCkpOwogCiAgICAgaWYgKHJlcGx5RW5jb2RlcikKLSAgICAgICAg
c2VuZFN5bmNSZXBseShzdGQ6Om1vdmUocmVwbHlFbmNvZGVyKSk7CisgICAgICAgIHNlbmRTeW5j
UmVwbHkoV1RGOjptb3ZlKHJlcGx5RW5jb2RlcikpOwogfQogCiB2b2lkIENvbm5lY3Rpb246OnNl
dERpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlQ2FsbGJhY2soRGlkQ2xvc2VPbkNvbm5lY3Rp
b25Xb3JrUXVldWVDYWxsYmFjayBjYWxsYmFjaykKQEAgLTM3Nyw3ICszNzcsNyBAQCBib29sIENv
bm5lY3Rpb246OnNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRW5jb2Rlcj4gZW5j
b2RlciwgdW5zaWduZWQgbQogCiAgICAgewogICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9v
dXRnb2luZ01lc3NhZ2VzTG9jayk7Ci0gICAgICAgIG1fb3V0Z29pbmdNZXNzYWdlcy5hcHBlbmQo
c3RkOjptb3ZlKGVuY29kZXIpKTsKKyAgICAgICAgbV9vdXRnb2luZ01lc3NhZ2VzLmFwcGVuZChX
VEY6Om1vdmUoZW5jb2RlcikpOwogICAgIH0KICAgICAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxk
IGFkZCBhIGJvb2xlYW4gZmxhZyBzbyB3ZSBkb24ndCBjYWxsIHRoaXMgd2hlbiB3b3JrIGhhcyBh
bHJlYWR5IGJlZW4gc2NoZWR1bGVkLgpAQCAtMzg3LDcgKzM4Nyw3IEBAIGJvb2wgQ29ubmVjdGlv
bjo6c2VuZE1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyLCB1
bnNpZ25lZCBtCiAKIGJvb2wgQ29ubmVjdGlvbjo6c2VuZFN5bmNSZXBseShzdGQ6OnVuaXF1ZV9w
dHI8TWVzc2FnZUVuY29kZXI+IGVuY29kZXIpCiB7Ci0gICAgcmV0dXJuIHNlbmRNZXNzYWdlKHN0
ZDo6bW92ZShlbmNvZGVyKSk7CisgICAgcmV0dXJuIHNlbmRNZXNzYWdlKFdURjo6bW92ZShlbmNv
ZGVyKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGlvbjo6
d2FpdEZvck1lc3NhZ2UoU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFN0cmlu
Z1JlZmVyZW5jZSBtZXNzYWdlTmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgc3RkOjpjaHJv
bm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0LCB1bnNpZ25lZCB3YWl0Rm9yTWVzc2FnZUZsYWdzKQpA
QCAtNDAyLDcgKzQwMiw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVj
dGlvbjo6d2FpdEZvck1lc3NhZ2UoU3RyaW5nUmVmZXJlbmNlIG1lc3NhCiAgICAgICAgICAgICBz
dGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+JiBtZXNzYWdlID0gKml0OwogCiAgICAgICAg
ICAgICBpZiAobWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IG1lc3NhZ2VSZWNlaXZl
ck5hbWUgJiYgbWVzc2FnZS0+bWVzc2FnZU5hbWUoKSA9PSBtZXNzYWdlTmFtZSAmJiBtZXNzYWdl
LT5kZXN0aW5hdGlvbklEKCkgPT0gZGVzdGluYXRpb25JRCkgewotICAgICAgICAgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gcmV0dXJuZWRNZXNzYWdlID0gc3RkOjptb3Zl
KG1lc3NhZ2UpOworICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rl
cj4gcmV0dXJuZWRNZXNzYWdlID0gV1RGOjptb3ZlKG1lc3NhZ2UpOwogCiAgICAgICAgICAgICAg
ICAgbV9pbmNvbWluZ01lc3NhZ2VzLnJlbW92ZShpdCk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHJldHVybmVkTWVzc2FnZTsKQEAgLTQyNiw3ICs0MjYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVz
c2FnZURlY29kZXI+IENvbm5lY3Rpb246OndhaXRGb3JNZXNzYWdlKFN0cmluZ1JlZmVyZW5jZSBt
ZXNzYQogICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobV93YWl0Rm9y
TWVzc2FnZU11dGV4KTsKIAogICAgICAgICBpZiAobV93YWl0aW5nRm9yTWVzc2FnZS0+ZGVjb2Rl
cikgewotICAgICAgICAgICAgYXV0byBkZWNvZGVyID0gc3RkOjptb3ZlKG1fd2FpdGluZ0Zvck1l
c3NhZ2UtPmRlY29kZXIpOworICAgICAgICAgICAgYXV0byBkZWNvZGVyID0gV1RGOjptb3ZlKG1f
d2FpdGluZ0Zvck1lc3NhZ2UtPmRlY29kZXIpOwogICAgICAgICAgICAgbV93YWl0aW5nRm9yTWVz
c2FnZSA9IG51bGxwdHI7CiAgICAgICAgICAgICByZXR1cm4gZGVjb2RlcjsKICAgICAgICAgfQpA
QCAtNDQ4LDcgKzQ0OCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVj
dGlvbjo6c2VuZFN5bmNNZXNzYWdlKHVpbnQ2NF90IHN5bmNSZXF1ZXN0CiAgICAgaWYgKCZSdW5M
b29wOjpjdXJyZW50KCkgIT0gJm1fY2xpZW50UnVuTG9vcCkgewogICAgICAgICAvLyBObyBmbGFn
cyBhcmUgc3VwcG9ydGVkIGZvciBzeW5jaHJvbm91cyBtZXNzYWdlcyBzZW50IGZyb20gc2Vjb25k
YXJ5IHRocmVhZHMuCiAgICAgICAgIEFTU0VSVCghc3luY1NlbmRGbGFncyk7Ci0gICAgICAgIHJl
dHVybiBzZW5kU3luY01lc3NhZ2VGcm9tU2Vjb25kYXJ5VGhyZWFkKHN5bmNSZXF1ZXN0SUQsIHN0
ZDo6bW92ZShlbmNvZGVyKSwgdGltZW91dCk7CisgICAgICAgIHJldHVybiBzZW5kU3luY01lc3Nh
Z2VGcm9tU2Vjb25kYXJ5VGhyZWFkKHN5bmNSZXF1ZXN0SUQsIFdURjo6bW92ZShlbmNvZGVyKSwg
dGltZW91dCk7CiAgICAgfQogCiAgICAgaWYgKCFpc1ZhbGlkKCkpIHsKQEAgLTQ3MCw3ICs0NzAs
NyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5lY3Rpb246OnNlbmRTeW5j
TWVzc2FnZSh1aW50NjRfdCBzeW5jUmVxdWVzdAogICAgICsrbV9pblNlbmRTeW5jQ291bnQ7CiAK
ICAgICAvLyBGaXJzdCBzZW5kIHRoZSBtZXNzYWdlLgotICAgIHNlbmRNZXNzYWdlKHN0ZDo6bW92
ZShlbmNvZGVyKSwgRGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsK
KyAgICBzZW5kTWVzc2FnZShXVEY6Om1vdmUoZW5jb2RlciksIERpc3BhdGNoTWVzc2FnZUV2ZW5X
aGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CiAKICAgICAvLyBUaGVuIHdhaXQgZm9yIGEgcmVwbHku
IFdhaXRpbmcgZm9yIGEgcmVwbHkgY291bGQgaW52b2x2ZSBkaXNwYXRjaGluZyBpbmNvbWluZyBz
eW5jIG1lc3NhZ2VzLCBzbwogICAgIC8vIGtlZXAgYW4gZXh0cmEgcmVmZXJlbmNlIHRvIHRoZSBj
b25uZWN0aW9uIGhlcmUgaW4gY2FzZSBpdCdzIGludmFsaWRhdGVkLgpAQCAtNTExLDcgKzUxMSw3
IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGlvbjo6c2VuZFN5bmNN
ZXNzYWdlRnJvbVNlY29uZGFyeVRocmVhZCh1CiAgICAgICAgIG1fc2Vjb25kYXJ5VGhyZWFkUGVu
ZGluZ1N5bmNSZXBseU1hcC5hZGQoc3luY1JlcXVlc3RJRCwgJnBlbmRpbmdSZXBseSk7CiAgICAg
fQogCi0gICAgc2VuZE1lc3NhZ2Uoc3RkOjptb3ZlKGVuY29kZXIpLCAwKTsKKyAgICBzZW5kTWVz
c2FnZShXVEY6Om1vdmUoZW5jb2RlciksIDApOwogCiAgICAgcGVuZGluZ1JlcGx5LnNlbWFwaG9y
ZS53YWl0KGN1cnJlbnRUaW1lKCkgKyAodGltZW91dC5jb3VudCgpIC8gMTAwMC4wKSk7CiAKQEAg
LTUyMiw3ICs1MjIsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5lY3Rp
b246OnNlbmRTeW5jTWVzc2FnZUZyb21TZWNvbmRhcnlUaHJlYWQodQogICAgICAgICBtX3NlY29u
ZGFyeVRocmVhZFBlbmRpbmdTeW5jUmVwbHlNYXAucmVtb3ZlKHN5bmNSZXF1ZXN0SUQpOwogICAg
IH0KIAotICAgIHJldHVybiBzdGQ6Om1vdmUocGVuZGluZ1JlcGx5LnJlcGx5RGVjb2Rlcik7Cisg
ICAgcmV0dXJuIFdURjo6bW92ZShwZW5kaW5nUmVwbHkucmVwbHlEZWNvZGVyKTsKIH0KIAogc3Rk
Ojp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0aW9uOjp3YWl0Rm9yU3luY1JlcGx5
KHVpbnQ2NF90IHN5bmNSZXF1ZXN0SUQsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91
dCwgdW5zaWduZWQgc3luY1NlbmRGbGFncykKQEAgLTU0OCw3ICs1NDgsNyBAQCBzdGQ6OnVuaXF1
ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5lY3Rpb246OndhaXRGb3JTeW5jUmVwbHkodWludDY0
X3Qgc3luY1JlcXVlcwogICAgICAgICAgICAgLy8gV2UgZm91bmQgdGhlIHN5bmMgcmVwbHksIG9y
IHRoZSBjb25uZWN0aW9uIHdhcyBjbG9zZWQuCiAgICAgICAgICAgICBpZiAocGVuZGluZ1N5bmNS
ZXBseS5kaWRSZWNlaXZlUmVwbHkgfHwgIW1fc2hvdWxkV2FpdEZvclN5bmNSZXBsaWVzKSB7CiAg
ICAgICAgICAgICAgICAgZGlkUmVjZWl2ZVN5bmNSZXBseShzeW5jU2VuZEZsYWdzKTsKLSAgICAg
ICAgICAgICAgICByZXR1cm4gc3RkOjptb3ZlKHBlbmRpbmdTeW5jUmVwbHkucmVwbHlEZWNvZGVy
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gV1RGOjptb3ZlKHBlbmRpbmdTeW5jUmVwbHkucmVw
bHlEZWNvZGVyKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCkBAIC01OTUsNyArNTk1LDcg
QEAgdm9pZCBDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdTeW5jUmVwbHkoc3RkOjp1bmlxdWVf
cHRyPE1lc3NhZ2VEZWNvZGVyPiBkZWNvZGUKIAogICAgICAgICBBU1NFUlQoIXBlbmRpbmdTeW5j
UmVwbHkucmVwbHlEZWNvZGVyKTsKIAotICAgICAgICBwZW5kaW5nU3luY1JlcGx5LnJlcGx5RGVj
b2RlciA9IHN0ZDo6bW92ZShkZWNvZGVyKTsKKyAgICAgICAgcGVuZGluZ1N5bmNSZXBseS5yZXBs
eURlY29kZXIgPSBXVEY6Om1vdmUoZGVjb2Rlcik7CiAgICAgICAgIHBlbmRpbmdTeW5jUmVwbHku
ZGlkUmVjZWl2ZVJlcGx5ID0gdHJ1ZTsKIAogICAgICAgICAvLyBXZSBnb3QgYSByZXBseSB0byB0
aGUgbGFzdCBzZW5kIG1lc3NhZ2UsIHdha2UgdXAgdGhlIGNsaWVudCBydW4gbG9vcCBzbyBpdCBj
YW4gYmUgcHJvY2Vzc2VkLgpAQCAtNjEwLDcgKzYxMCw3IEBAIHZvaWQgQ29ubmVjdGlvbjo6cHJv
Y2Vzc0luY29taW5nU3luY1JlcGx5KHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gZGVj
b2RlCiAgICAgaWYgKHNlY29uZGFyeVRocmVhZFJlcGx5TWFwSXRlbSAhPSBtX3NlY29uZGFyeVRo
cmVhZFBlbmRpbmdTeW5jUmVwbHlNYXAuZW5kKCkpIHsKICAgICAgICAgU2Vjb25kYXJ5VGhyZWFk
UGVuZGluZ1N5bmNSZXBseSogcmVwbHkgPSBzZWNvbmRhcnlUaHJlYWRSZXBseU1hcEl0ZW0tPnZh
bHVlOwogICAgICAgICBBU1NFUlQoIXJlcGx5LT5yZXBseURlY29kZXIpOwotICAgICAgICByZXBs
eS0+cmVwbHlEZWNvZGVyID0gc3RkOjptb3ZlKGRlY29kZXIpOworICAgICAgICByZXBseS0+cmVw
bHlEZWNvZGVyID0gV1RGOjptb3ZlKGRlY29kZXIpOwogICAgICAgICByZXBseS0+c2VtYXBob3Jl
LnNpZ25hbCgpOwogICAgIH0KIApAQCAtNjI0LDcgKzYyNCw3IEBAIHZvaWQgQ29ubmVjdGlvbjo6
cHJvY2Vzc0luY29taW5nTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IG1l
c3NhZ2UpCiAgICAgQVNTRVJUKCFtZXNzYWdlLT5tZXNzYWdlTmFtZSgpLmlzRW1wdHkoKSk7CiAK
ICAgICBpZiAobWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09ICJJUEMiICYmIG1lc3Nh
Z2UtPm1lc3NhZ2VOYW1lKCkgPT0gIlN5bmNNZXNzYWdlUmVwbHkiKSB7Ci0gICAgICAgIHByb2Nl
c3NJbmNvbWluZ1N5bmNSZXBseShzdGQ6Om1vdmUobWVzc2FnZSkpOworICAgICAgICBwcm9jZXNz
SW5jb21pbmdTeW5jUmVwbHkoV1RGOjptb3ZlKG1lc3NhZ2UpKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIApAQCAtNjYwLDcgKzY2MCw3IEBAIHZvaWQgQ29ubmVjdGlvbjo6cHJvY2Vzc0luY29t
aW5nTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IG1lc3NhZ2UpCiAgICAg
ICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1fd2FpdEZvck1lc3NhZ2VNdXRl
eCk7CiAKICAgICAgICAgaWYgKG1fd2FpdGluZ0Zvck1lc3NhZ2UgJiYgbV93YWl0aW5nRm9yTWVz
c2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFtZSA9PSBtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1l
KCkgJiYgbV93YWl0aW5nRm9yTWVzc2FnZS0+bWVzc2FnZU5hbWUgPT0gbWVzc2FnZS0+bWVzc2Fn
ZU5hbWUoKSAmJiBtX3dhaXRpbmdGb3JNZXNzYWdlLT5kZXN0aW5hdGlvbklEID09IG1lc3NhZ2Ut
PmRlc3RpbmF0aW9uSUQoKSkgewotICAgICAgICAgICAgbV93YWl0aW5nRm9yTWVzc2FnZS0+ZGVj
b2RlciA9IHN0ZDo6bW92ZShtZXNzYWdlKTsKKyAgICAgICAgICAgIG1fd2FpdGluZ0Zvck1lc3Nh
Z2UtPmRlY29kZXIgPSBXVEY6Om1vdmUobWVzc2FnZSk7CiAgICAgICAgICAgICBBU1NFUlQobV93
YWl0aW5nRm9yTWVzc2FnZS0+ZGVjb2Rlcik7CiAgICAgICAgICAgICBtX3dhaXRGb3JNZXNzYWdl
Q29uZGl0aW9uLm5vdGlmeV9vbmUoKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTY3Miw3ICs2
NzIsNyBAQCB2b2lkIENvbm5lY3Rpb246OnByb2Nlc3NJbmNvbWluZ01lc3NhZ2Uoc3RkOjp1bmlx
dWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBtZXNzYWdlKQogICAgICAgICB9CiAgICAgfQogCi0gICAg
ZW5xdWV1ZUluY29taW5nTWVzc2FnZShzdGQ6Om1vdmUobWVzc2FnZSkpOworICAgIGVucXVldWVJ
bmNvbWluZ01lc3NhZ2UoV1RGOjptb3ZlKG1lc3NhZ2UpKTsKIH0KIAogdm9pZCBDb25uZWN0aW9u
Ojpwb3N0Q29ubmVjdGlvbkRpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlKCkKQEAgLTc0OCw3
ICs3NDgsNyBAQCB2b2lkIENvbm5lY3Rpb246OnNlbmRPdXRnb2luZ01lc3NhZ2VzKCkKICAgICAg
ICAgICAgIG1lc3NhZ2UgPSBtX291dGdvaW5nTWVzc2FnZXMudGFrZUZpcnN0KCk7CiAgICAgICAg
IH0KIAotICAgICAgICBpZiAoIXNlbmRPdXRnb2luZ01lc3NhZ2Uoc3RkOjptb3ZlKG1lc3NhZ2Up
KSkKKyAgICAgICAgaWYgKCFzZW5kT3V0Z29pbmdNZXNzYWdlKFdURjo6bW92ZShtZXNzYWdlKSkp
CiAgICAgICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC03NzMsNyArNzczLDcgQEAgdm9pZCBD
b25uZWN0aW9uOjpkaXNwYXRjaFN5bmNNZXNzYWdlKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQog
ICAgIEFTU0VSVCghZGVjb2Rlci5pc0ludmFsaWQoKSk7CiAKICAgICBpZiAocmVwbHlFbmNvZGVy
KQotICAgICAgICBzZW5kU3luY1JlcGx5KHN0ZDo6bW92ZShyZXBseUVuY29kZXIpKTsKKyAgICAg
ICAgc2VuZFN5bmNSZXBseShXVEY6Om1vdmUocmVwbHlFbmNvZGVyKSk7CiB9CiAKIHZvaWQgQ29u
bmVjdGlvbjo6ZGlzcGF0Y2hEaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoY29uc3QgQ1N0cmluZyYg
bWVzc2FnZVJlY2VpdmVyTmFtZVN0cmluZywgY29uc3QgQ1N0cmluZyYgbWVzc2FnZU5hbWVTdHJp
bmcpCkBAIC03OTgsNyArNzk4LDcgQEAgdm9pZCBDb25uZWN0aW9uOjplbnF1ZXVlSW5jb21pbmdN
ZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gaW5jb21pbmcKIHsKICAgICB7
CiAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2luY29taW5nTWVzc2FnZXNMb2NrKTsKLSAg
ICAgICAgbV9pbmNvbWluZ01lc3NhZ2VzLmFwcGVuZChzdGQ6Om1vdmUoaW5jb21pbmdNZXNzYWdl
KSk7CisgICAgICAgIG1faW5jb21pbmdNZXNzYWdlcy5hcHBlbmQoV1RGOjptb3ZlKGluY29taW5n
TWVzc2FnZSkpOwogICAgIH0KIAogICAgIG1fY2xpZW50UnVuTG9vcC5kaXNwYXRjaChXVEY6OmJp
bmQoJkNvbm5lY3Rpb246OmRpc3BhdGNoT25lTWVzc2FnZSwgdGhpcykpOwpAQCAtODUzLDcgKzg1
Myw3IEBAIHZvaWQgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hPbmVNZXNzYWdlKCkKICAgICAgICAgbWVz
c2FnZSA9IG1faW5jb21pbmdNZXNzYWdlcy50YWtlRmlyc3QoKTsKICAgICB9CiAKLSAgICBkaXNw
YXRjaE1lc3NhZ2Uoc3RkOjptb3ZlKG1lc3NhZ2UpKTsKKyAgICBkaXNwYXRjaE1lc3NhZ2UoV1RG
Ojptb3ZlKG1lc3NhZ2UpKTsKIH0KIAogdm9pZCBDb25uZWN0aW9uOjp3YWtlVXBSdW5Mb29wKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCmluZGV4IGVhYWVjMzYuLjI5
OWEwYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaApAQCAtMTEy
LDcgKzExMiw3IEBAIHB1YmxpYzoKIAogICAgICAgICBJZGVudGlmaWVyKG1hY2hfcG9ydF90IHBv
cnQsIFhQQ1B0cjx4cGNfY29ubmVjdGlvbl90PiB4cGNDb25uZWN0aW9uKQogICAgICAgICAgICAg
OiBwb3J0KHBvcnQpCi0gICAgICAgICAgICAsIHhwY0Nvbm5lY3Rpb24oc3RkOjptb3ZlKHhwY0Nv
bm5lY3Rpb24pKQorICAgICAgICAgICAgLCB4cGNDb25uZWN0aW9uKFdURjo6bW92ZSh4cGNDb25u
ZWN0aW9uKSkKICAgICAgICAgewogICAgICAgICB9CiAKQEAgLTM0MSw3ICszNDEsNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBib29sIENvbm5lY3Rpb246OnNlbmQoVCYmIG1lc3NhZ2UsIHVpbnQ2
NF90IGRlc3RpbmF0aW9uSUQsCiAgICAgYXV0byBlbmNvZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxN
ZXNzYWdlRW5jb2Rlcj4oVDo6cmVjZWl2ZXJOYW1lKCksIFQ6Om5hbWUoKSwgZGVzdGluYXRpb25J
RCk7CiAgICAgZW5jb2Rlci0+ZW5jb2RlKG1lc3NhZ2UuYXJndW1lbnRzKCkpOwogICAgIAotICAg
IHJldHVybiBzZW5kTWVzc2FnZShzdGQ6Om1vdmUoZW5jb2RlciksIG1lc3NhZ2VTZW5kRmxhZ3Mp
OworICAgIHJldHVybiBzZW5kTWVzc2FnZShXVEY6Om1vdmUoZW5jb2RlciksIG1lc3NhZ2VTZW5k
RmxhZ3MpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBib29sIENvbm5lY3Rpb246OnNlbmRT
eW5jKFQmJiBtZXNzYWdlLCB0eXBlbmFtZSBUOjpSZXBseSYmIHJlcGx5LCB1aW50NjRfdCBkZXN0
aW5hdGlvbklELCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIHVuc2lnbmVkIHN5
bmNTZW5kRmxhZ3MpCkBAIC0zNTUsNyArMzU1LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gYm9v
bCBDb25uZWN0aW9uOjpzZW5kU3luYyhUJiYgbWVzc2FnZSwgdHlwZW5hbWUgVDo6UmVwbHkmJgog
ICAgIGVuY29kZXItPmVuY29kZShtZXNzYWdlLmFyZ3VtZW50cygpKTsKIAogICAgIC8vIE5vdyBz
ZW5kIHRoZSBtZXNzYWdlIGFuZCB3YWl0IGZvciBhIHJlcGx5LgotICAgIHN0ZDo6dW5pcXVlX3B0
cjxNZXNzYWdlRGVjb2Rlcj4gcmVwbHlEZWNvZGVyID0gc2VuZFN5bmNNZXNzYWdlKHN5bmNSZXF1
ZXN0SUQsIHN0ZDo6bW92ZShlbmNvZGVyKSwgdGltZW91dCwgc3luY1NlbmRGbGFncyk7CisgICAg
c3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiByZXBseURlY29kZXIgPSBzZW5kU3luY01l
c3NhZ2Uoc3luY1JlcXVlc3RJRCwgV1RGOjptb3ZlKGVuY29kZXIpLCB0aW1lb3V0LCBzeW5jU2Vu
ZEZsYWdzKTsKICAgICBpZiAoIXJlcGx5RGVjb2RlcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvSGFuZGxlTWVzc2FnZS5o
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0hhbmRsZU1lc3NhZ2UuaAppbmRleCBhYWFm
ZjhmLi4xNjM1OTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvSGFu
ZGxlTWVzc2FnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9IYW5kbGVNZXNz
YWdlLmgKQEAgLTExNyw3ICsxMTcsNyBAQCB2b2lkIGhhbmRsZU1lc3NhZ2UoTWVzc2FnZURlY29k
ZXImIGRlY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjptb3ZlKGFyZ3VtZW50cyksIG9iamVj
dCwgZnVuY3Rpb24pOworICAgIGNhbGxNZW1iZXJGdW5jdGlvbihXVEY6Om1vdmUoYXJndW1lbnRz
KSwgb2JqZWN0LCBmdW5jdGlvbik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1l
IEMsIHR5cGVuYW1lIE1GPgpAQCAtMTMwLDcgKzEzMCw3IEBAIHZvaWQgaGFuZGxlTWVzc2FnZShN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgTWVzc2FnZUVuY29kZXImIHJlcGx5RW5jb2RlciwgQyog
b2JqCiAgICAgfQogCiAgICAgdHlwZW5hbWUgVDo6UmVwbHk6OlZhbHVlVHlwZSByZXBseUFyZ3Vt
ZW50czsKLSAgICBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjptb3ZlKGFyZ3VtZW50cyksIHJlcGx5
QXJndW1lbnRzLCBvYmplY3QsIGZ1bmN0aW9uKTsKKyAgICBjYWxsTWVtYmVyRnVuY3Rpb24oV1RG
Ojptb3ZlKGFyZ3VtZW50cyksIHJlcGx5QXJndW1lbnRzLCBvYmplY3QsIGZ1bmN0aW9uKTsKICAg
ICByZXBseUVuY29kZXIgPDwgcmVwbHlBcmd1bWVudHM7CiB9CiAKQEAgLTE0NCw3ICsxNDQsNyBA
QCB2b2lkIGhhbmRsZU1lc3NhZ2UoQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgTWVzc2FnZURlY29k
ZXImIGRlY29kZXIsIE1lc3NhZ2VFbmNvZAogICAgIH0KIAogICAgIHR5cGVuYW1lIFQ6OlJlcGx5
OjpWYWx1ZVR5cGUgcmVwbHlBcmd1bWVudHM7Ci0gICAgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbm5l
Y3Rpb24sIHN0ZDo6bW92ZShhcmd1bWVudHMpLCByZXBseUFyZ3VtZW50cywgb2JqZWN0LCBmdW5j
dGlvbik7CisgICAgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbm5lY3Rpb24sIFdURjo6bW92ZShhcmd1
bWVudHMpLCByZXBseUFyZ3VtZW50cywgb2JqZWN0LCBmdW5jdGlvbik7CiAgICAgcmVwbHlFbmNv
ZGVyIDw8IHJlcGx5QXJndW1lbnRzOwogfQogCkBAIC0xNTYsNyArMTU2LDcgQEAgdm9pZCBoYW5k
bGVNZXNzYWdlKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVy
LCBDKiBvYmplY3QsIE0KICAgICAgICAgQVNTRVJUKGRlY29kZXIuaXNJbnZhbGlkKCkpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQotICAgIGNhbGxNZW1iZXJGdW5jdGlvbihjb25uZWN0aW9uLCBz
dGQ6Om1vdmUoYXJndW1lbnRzKSwgb2JqZWN0LCBmdW5jdGlvbik7CisgICAgY2FsbE1lbWJlckZ1
bmN0aW9uKGNvbm5lY3Rpb24sIFdURjo6bW92ZShhcmd1bWVudHMpLCBvYmplY3QsIGZ1bmN0aW9u
KTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5hbWUgTUY+CkBA
IC0xNjcsNyArMTY3LDcgQEAgdm9pZCBoYW5kbGVNZXNzYWdlVmFyaWFkaWMoTWVzc2FnZURlY29k
ZXImIGRlY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiAgICAgICAgIEFTU0VSVChkZWNv
ZGVyLmlzSW52YWxpZCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjYWxsTWVtYmVy
RnVuY3Rpb24oc3RkOjptb3ZlKGFyZ3VtZW50cyksIGRlY29kZXIsIG9iamVjdCwgZnVuY3Rpb24p
OworICAgIGNhbGxNZW1iZXJGdW5jdGlvbihXVEY6Om1vdmUoYXJndW1lbnRzKSwgZGVjb2Rlciwg
b2JqZWN0LCBmdW5jdGlvbik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEMs
IHR5cGVuYW1lIE1GPgpAQCAtMTgwLDcgKzE4MCw3IEBAIHZvaWQgaGFuZGxlTWVzc2FnZVZhcmlh
ZGljKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBNZXNzYWdlRW5jb2RlciYgcmVwbHlFbmNvZGVy
CiAgICAgfQogCiAgICAgdHlwZW5hbWUgVDo6UmVwbHk6OlZhbHVlVHlwZSByZXBseUFyZ3VtZW50
czsKLSAgICBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjptb3ZlKGFyZ3VtZW50cyksIGRlY29kZXIs
IHJlcGx5QXJndW1lbnRzLCBvYmplY3QsIGZ1bmN0aW9uKTsKKyAgICBjYWxsTWVtYmVyRnVuY3Rp
b24oV1RGOjptb3ZlKGFyZ3VtZW50cyksIGRlY29kZXIsIHJlcGx5QXJndW1lbnRzLCBvYmplY3Qs
IGZ1bmN0aW9uKTsKICAgICByZXBseUVuY29kZXIgPDwgcmVwbHlBcmd1bWVudHM7CiB9CiAKQEAg
LTE5Myw4ICsxOTMsOCBAQCB2b2lkIGhhbmRsZU1lc3NhZ2VEZWxheWVkKENvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OgogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgUmVmUHRyPHR5cGVuYW1lIFQ6OkRlbGF5ZWRSZXBseT4gZGVsYXllZFJl
cGx5ID0gYWRvcHRSZWYobmV3IHR5cGVuYW1lIFQ6OkRlbGF5ZWRSZXBseShjb25uZWN0aW9uLCBz
dGQ6Om1vdmUocmVwbHlFbmNvZGVyKSkpOwotICAgIGNhbGxNZW1iZXJGdW5jdGlvbihzdGQ6Om1v
dmUoYXJndW1lbnRzKSwgZGVsYXllZFJlcGx5LnJlbGVhc2UoKSwgb2JqZWN0LCBmdW5jdGlvbik7
CisgICAgUmVmUHRyPHR5cGVuYW1lIFQ6OkRlbGF5ZWRSZXBseT4gZGVsYXllZFJlcGx5ID0gYWRv
cHRSZWYobmV3IHR5cGVuYW1lIFQ6OkRlbGF5ZWRSZXBseShjb25uZWN0aW9uLCBXVEY6Om1vdmUo
cmVwbHlFbmNvZGVyKSkpOworICAgIGNhbGxNZW1iZXJGdW5jdGlvbihXVEY6Om1vdmUoYXJndW1l
bnRzKSwgZGVsYXllZFJlcGx5LnJlbGVhc2UoKSwgb2JqZWN0LCBmdW5jdGlvbik7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBD
L01lc3NhZ2VEZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdl
RGVjb2Rlci5jcHAKaW5kZXggMzliZjUzMy4uMjlhMDU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZURlY29kZXIuY3BwCkBAIC00Miw3ICs0Miw3IEBAIE1lc3Nh
Z2VEZWNvZGVyOjp+TWVzc2FnZURlY29kZXIoKQogfQogCiBNZXNzYWdlRGVjb2Rlcjo6TWVzc2Fn
ZURlY29kZXIoY29uc3QgRGF0YVJlZmVyZW5jZSYgYnVmZmVyLCBWZWN0b3I8QXR0YWNobWVudD4g
YXR0YWNobWVudHMpCi0gICAgOiBBcmd1bWVudERlY29kZXIoYnVmZmVyLmRhdGEoKSwgYnVmZmVy
LnNpemUoKSwgc3RkOjptb3ZlKGF0dGFjaG1lbnRzKSkKKyAgICA6IEFyZ3VtZW50RGVjb2Rlcihi
dWZmZXIuZGF0YSgpLCBidWZmZXIuc2l6ZSgpLCBXVEY6Om1vdmUoYXR0YWNobWVudHMpKQogewog
ICAgIGlmICghZGVjb2RlKG1fbWVzc2FnZUZsYWdzKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNjks
NyArNjksNyBAQCBib29sIE1lc3NhZ2VEZWNvZGVyOjpzaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVu
V2FpdGluZ0ZvclN5bmNSZXBseSgpIGNvbnN0CiAjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKIHZvaWQgTWVzc2FnZURlY29kZXI6OnNl
dEltcG9ydGFuY2VBc3NlcnRpb24oc3RkOjp1bmlxdWVfcHRyPEltcG9ydGFuY2VBc3NlcnRpb24+
IGFzc2VydGlvbikKIHsKLSAgICBtX2ltcG9ydGFuY2VBc3NlcnRpb24gPSBzdGQ6Om1vdmUoYXNz
ZXJ0aW9uKTsKKyAgICBtX2ltcG9ydGFuY2VBc3NlcnRpb24gPSBXVEY6Om1vdmUoYXNzZXJ0aW9u
KTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
TWVzc2FnZVNlbmRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZVNl
bmRlci5jcHAKaW5kZXggYTNmM2VmMS4uNTRkOGU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VTZW5kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0lQQy9NZXNzYWdlU2VuZGVyLmNwcApAQCAtMzYsNyArMzYsNyBAQCBib29sIE1lc3Nh
Z2VTZW5kZXI6OnNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRW5jb2Rlcj4gZW5j
b2RlciwgdW5zaWduZQogewogICAgIEFTU0VSVChtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpKTsK
IAotICAgIHJldHVybiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpLT5zZW5kTWVzc2FnZShzdGQ6
Om1vdmUoZW5jb2RlciksIG1lc3NhZ2VTZW5kRmxhZ3MpOworICAgIHJldHVybiBtZXNzYWdlU2Vu
ZGVyQ29ubmVjdGlvbigpLT5zZW5kTWVzc2FnZShXVEY6Om1vdmUoZW5jb2RlciksIG1lc3NhZ2VT
ZW5kRmxhZ3MpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlU2VuZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9JUEMvTWVzc2FnZVNlbmRlci5oCmluZGV4IDYzOGJkZWUuLmFiZTFhZTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlU2VuZGVyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VTZW5kZXIuaApAQCAtNDcsNyArNDcsNyBA
QCBwdWJsaWM6CiAgICAgICAgIGF1dG8gZW5jb2RlciA9IHN0ZDo6bWFrZV91bmlxdWU8TWVzc2Fn
ZUVuY29kZXI+KFU6OnJlY2VpdmVyTmFtZSgpLCBVOjpuYW1lKCksIGRlc3RpbmF0aW9uSUQpOwog
ICAgICAgICBlbmNvZGVyLT5lbmNvZGUobWVzc2FnZS5hcmd1bWVudHMoKSk7CiAgICAgICAgIAot
ICAgICAgICByZXR1cm4gc2VuZE1lc3NhZ2Uoc3RkOjptb3ZlKGVuY29kZXIpLCBtZXNzYWdlU2Vu
ZEZsYWdzKTsKKyAgICAgICAgcmV0dXJuIHNlbmRNZXNzYWdlKFdURjo6bW92ZShlbmNvZGVyKSwg
bWVzc2FnZVNlbmRGbGFncyk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KQEAg
LTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgc3RhdGljX2Fzc2VydChUOjpp
c1N5bmMsICJNZXNzYWdlIGlzIG5vdCBzeW5jISIpOwogCi0gICAgICAgIHJldHVybiBzZW5kU3lu
YyhzdGQ6OmZvcndhcmQ8VD4obWVzc2FnZSksIHN0ZDo6bW92ZShyZXBseSksIG1lc3NhZ2VTZW5k
ZXJEZXN0aW5hdGlvbklEKCksIHRpbWVvdXQsIHN5bmNTZW5kRmxhZ3MpOworICAgICAgICByZXR1
cm4gc2VuZFN5bmMoc3RkOjpmb3J3YXJkPFQ+KG1lc3NhZ2UpLCBXVEY6Om1vdmUocmVwbHkpLCBt
ZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpLCB0aW1lb3V0LCBzeW5jU2VuZEZsYWdzKTsKICAg
ICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6
CiAgICAgewogICAgICAgICBBU1NFUlQobWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSk7CiAKLSAg
ICAgICAgcmV0dXJuIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCktPnNlbmRTeW5jKHN0ZDo6bW92
ZShtZXNzYWdlKSwgc3RkOjptb3ZlKHJlcGx5KSwgZGVzdGluYXRpb25JRCwgdGltZW91dCwgc3lu
Y1NlbmRGbGFncyk7CisgICAgICAgIHJldHVybiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpLT5z
ZW5kU3luYyhXVEY6Om1vdmUobWVzc2FnZSksIFdURjo6bW92ZShyZXBseSksIGRlc3RpbmF0aW9u
SUQsIHRpbWVvdXQsIHN5bmNTZW5kRmxhZ3MpOwogICAgIH0KIAogICAgIHZpcnR1YWwgYm9vbCBz
ZW5kTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+LCB1bnNpZ25lZCBtZXNz
YWdlU2VuZEZsYWdzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9t
YWMvQ29ubmVjdGlvbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9tYWMvQ29u
bmVjdGlvbk1hYy5tbQppbmRleCA3Yjk5OTNlLi5lM2Y1NzcwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9JUEMvbWFjL0Nvbm5lY3Rpb25NYWMubW0KKysrIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vSVBDL21hYy9Db25uZWN0aW9uTWFjLm1tCkBAIC0yMDQsNyArMjA0LDcg
QEAgYm9vbCBDb25uZWN0aW9uOjpvcGVuKCkKICAgICAgICAgYXV0byBlbmNvZGVyID0gc3RkOjpt
YWtlX3VuaXF1ZTxNZXNzYWdlRW5jb2Rlcj4oIklQQyIsICJJbml0aWFsaXplQ29ubmVjdGlvbiIs
IDApOwogICAgICAgICBlbmNvZGVyLT5lbmNvZGUoTWFjaFBvcnQobV9yZWNlaXZlUG9ydCwgTUFD
SF9NU0dfVFlQRV9NQUtFX1NFTkQpKTsKIAotICAgICAgICBzZW5kTWVzc2FnZShzdGQ6Om1vdmUo
ZW5jb2RlcikpOworICAgICAgICBzZW5kTWVzc2FnZShXVEY6Om1vdmUoZW5jb2RlcikpOwogCiAg
ICAgICAgIGluaXRpYWxpemVEZWFkTmFtZVNvdXJjZSgpOwogICAgIH0KQEAgLTIyOCw3ICsyMjgs
NyBAQCBib29sIENvbm5lY3Rpb246Om9wZW4oKQogICAgICAgICBhdXRvIGVuY29kZXIgPSBzdGQ6
Om1ha2VfdW5pcXVlPE1lc3NhZ2VFbmNvZGVyPigiSVBDIiwgIlNldEV4Y2VwdGlvblBvcnQiLCAw
KTsKICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKE1hY2hQb3J0KG1fZXhjZXB0aW9uUG9ydCwgTUFD
SF9NU0dfVFlQRV9NQUtFX1NFTkQpKTsKIAotICAgICAgICBzZW5kTWVzc2FnZShzdGQ6Om1vdmUo
ZW5jb2RlcikpOworICAgICAgICBzZW5kTWVzc2FnZShXVEY6Om1vdmUoZW5jb2RlcikpOwogICAg
IH0KICNlbmRpZgogCkBAIC00MjMsNyArNDIzLDcgQEAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxN
ZXNzYWdlRGVjb2Rlcj4gY3JlYXRlTWVzc2FnZURlY29kZXIobWFjaF9tc2dfaGVhZGVyX3QqIGgK
ICAgICAgICAgdWludDhfdCogbWVzc2FnZUJvZHkgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oZGVz
Y3JpcHRvci0+b3V0X29mX2xpbmUuYWRkcmVzcyk7CiAgICAgICAgIHNpemVfdCBtZXNzYWdlQm9k
eVNpemUgPSBkZXNjcmlwdG9yLT5vdXRfb2ZfbGluZS5zaXplOwogCi0gICAgICAgIGF1dG8gZGVj
b2RlciA9IHN0ZDo6bWFrZV91bmlxdWU8TWVzc2FnZURlY29kZXI+KERhdGFSZWZlcmVuY2UobWVz
c2FnZUJvZHksIG1lc3NhZ2VCb2R5U2l6ZSksIHN0ZDo6bW92ZShhdHRhY2htZW50cykpOworICAg
ICAgICBhdXRvIGRlY29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VEZWNvZGVyPihEYXRh
UmVmZXJlbmNlKG1lc3NhZ2VCb2R5LCBtZXNzYWdlQm9keVNpemUpLCBXVEY6Om1vdmUoYXR0YWNo
bWVudHMpKTsKIAogICAgICAgICB2bV9kZWFsbG9jYXRlKG1hY2hfdGFza19zZWxmKCksIHJlaW50
ZXJwcmV0X2Nhc3Q8dm1fYWRkcmVzc190PihkZXNjcmlwdG9yLT5vdXRfb2ZfbGluZS5hZGRyZXNz
KSwgZGVzY3JpcHRvci0+b3V0X29mX2xpbmUuc2l6ZSk7CiAKQEAgLTUyMyw3ICs1MjMsNyBAQCB2
b2lkIENvbm5lY3Rpb246OnJlY2VpdmVTb3VyY2VFdmVudEhhbmRsZXIoKQogICAgIH0KICNlbmRp
ZgogCi0gICAgcHJvY2Vzc0luY29taW5nTWVzc2FnZShzdGQ6Om1vdmUoZGVjb2RlcikpOworICAg
IHByb2Nlc3NJbmNvbWluZ01lc3NhZ2UoV1RGOjptb3ZlKGRlY29kZXIpKTsKIH0gICAgCiAKICNp
ZiAhUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBD
L3VuaXgvQ29ubmVjdGlvblVuaXguY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL3Vu
aXgvQ29ubmVjdGlvblVuaXguY3BwCmluZGV4IDQzYTkxZjcuLjE2YmUwMTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAKQEAg
LTI2Miw5ICsyNjIsOSBAQCBib29sIENvbm5lY3Rpb246OnByb2Nlc3NNZXNzYWdlKCkKICAgICBp
ZiAobWVzc2FnZUluZm8uaXNNZXNzYWdlQm9keUlzT3V0T2ZMaW5lKCkpCiAgICAgICAgIG1lc3Nh
Z2VCb2R5ID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4ob29sTWVzc2FnZUJvZHktPmRhdGEo
KSk7CiAKLSAgICBhdXRvIGRlY29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VEZWNvZGVy
PihEYXRhUmVmZXJlbmNlKG1lc3NhZ2VCb2R5LCBtZXNzYWdlSW5mby5ib2R5U2l6ZSgpKSwgc3Rk
Ojptb3ZlKGF0dGFjaG1lbnRzKSk7CisgICAgYXV0byBkZWNvZGVyID0gc3RkOjptYWtlX3VuaXF1
ZTxNZXNzYWdlRGVjb2Rlcj4oRGF0YVJlZmVyZW5jZShtZXNzYWdlQm9keSwgbWVzc2FnZUluZm8u
Ym9keVNpemUoKSksIFdURjo6bW92ZShhdHRhY2htZW50cykpOwogCi0gICAgcHJvY2Vzc0luY29t
aW5nTWVzc2FnZShzdGQ6Om1vdmUoZGVjb2RlcikpOworICAgIHByb2Nlc3NJbmNvbWluZ01lc3Nh
Z2UoV1RGOjptb3ZlKGRlY29kZXIpKTsKIAogICAgIGlmIChtX3JlYWRCdWZmZXJTaXplID4gbWVz
c2FnZUxlbmd0aCkgewogICAgICAgICBtZW1tb3ZlKG1fcmVhZEJ1ZmZlci5kYXRhKCksIG1fcmVh
ZEJ1ZmZlci5kYXRhKCkgKyBtZXNzYWdlTGVuZ3RoLCBtX3JlYWRCdWZmZXJTaXplIC0gbWVzc2Fn
ZUxlbmd0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9lZmwvRGlzcGF0
Y2hRdWV1ZUVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9lZmwvRGlzcGF0Y2hRdWV1
ZUVmbC5jcHAKaW5kZXggNzJhODNkMS4uM2NjNTMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vZWZsL0Rpc3BhdGNoUXVldWVFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL2VmbC9EaXNwYXRjaFF1ZXVlRWZsLmNwcApAQCAtOTUsNyArOTUsNyBAQCB2b2lk
IERpc3BhdGNoUXVldWU6OmRpc3BhdGNoKHN0ZDo6dW5pcXVlX3B0cjxXb3JrSXRlbT4gaXRlbSkK
IHsKICAgICB7CiAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3dvcmtJdGVtc0xvY2spOwot
ICAgICAgICBtX3dvcmtJdGVtcy5hcHBlbmQoc3RkOjptb3ZlKGl0ZW0pKTsKKyAgICAgICAgbV93
b3JrSXRlbXMuYXBwZW5kKFdURjo6bW92ZShpdGVtKSk7CiAgICAgfQogCiAgICAgd2FrZVVwVGhy
ZWFkKCk7CkBAIC0xMDMsNyArMTAzLDcgQEAgdm9pZCBEaXNwYXRjaFF1ZXVlOjpkaXNwYXRjaChz
dGQ6OnVuaXF1ZV9wdHI8V29ya0l0ZW0+IGl0ZW0pCiAKIHZvaWQgRGlzcGF0Y2hRdWV1ZTo6ZGlz
cGF0Y2goc3RkOjp1bmlxdWVfcHRyPFRpbWVyV29ya0l0ZW0+IGl0ZW0pCiB7Ci0gICAgaW5zZXJ0
VGltZXJXb3JrSXRlbShzdGQ6Om1vdmUoaXRlbSkpOworICAgIGluc2VydFRpbWVyV29ya0l0ZW0o
V1RGOjptb3ZlKGl0ZW0pKTsKICAgICB3YWtlVXBUaHJlYWQoKTsKIH0KIApAQCAtMTIwLDcgKzEy
MCw3IEBAIHZvaWQgRGlzcGF0Y2hRdWV1ZTo6c2V0U29ja2V0RXZlbnRIYW5kbGVyKGludCBmaWxl
RGVzY3JpcHRvciwgc3RkOjpmdW5jdGlvbjx2b2lkCiAgICAgQVNTRVJUKG1fc29ja2V0RGVzY3Jp
cHRvciA9PSBpbnZhbGlkU29ja2V0RGVzY3JpcHRvcik7CiAKICAgICBtX3NvY2tldERlc2NyaXB0
b3IgPSBmaWxlRGVzY3JpcHRvcjsKLSAgICBtX3NvY2tldEV2ZW50SGFuZGxlciA9IHN0ZDo6bW92
ZShmdW5jdGlvbik7CisgICAgbV9zb2NrZXRFdmVudEhhbmRsZXIgPSBXVEY6Om1vdmUoZnVuY3Rp
b24pOwogCiAgICAgaWYgKGZpbGVEZXNjcmlwdG9yID4gbV9tYXhGaWxlRGVzY3JpcHRvcikKICAg
ICAgICAgbV9tYXhGaWxlRGVzY3JpcHRvciA9IGZpbGVEZXNjcmlwdG9yOwpAQCAtMTc1LDcgKzE3
NSw3IEBAIHZvaWQgRGlzcGF0Y2hRdWV1ZTo6cGVyZm9ybVRpbWVyV29yaygpCiAKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHRpbWVyV29ya0l0ZW1zLnNpemUoKTsgKytpKSB7CiAgICAgICAg
IGlmICghdGltZXJXb3JrSXRlbXNbaV0tPmhhc0V4cGlyZWQoY3VycmVudFRpbWVOYW5vU2Vjb25k
cykpIHsKLSAgICAgICAgICAgIGluc2VydFRpbWVyV29ya0l0ZW0oc3RkOjptb3ZlKHRpbWVyV29y
a0l0ZW1zW2ldKSk7CisgICAgICAgICAgICBpbnNlcnRUaW1lcldvcmtJdGVtKFdURjo6bW92ZSh0
aW1lcldvcmtJdGVtc1tpXSkpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIApA
QCAtMjE0LDcgKzIxNCw3IEBAIHZvaWQgRGlzcGF0Y2hRdWV1ZTo6aW5zZXJ0VGltZXJXb3JrSXRl
bShzdGQ6OnVuaXF1ZV9wdHI8VGltZXJXb3JrSXRlbT4gaXRlbSkKICAgICAgICAgaWYgKGl0ZW0t
PmV4cGlyYXRpb25UaW1lTmFub1NlY29uZHMoKSA8IG1fdGltZXJXb3JrSXRlbXNbcG9zaXRpb25d
LT5leHBpcmF0aW9uVGltZU5hbm9TZWNvbmRzKCkpCiAgICAgICAgICAgICBicmVhazsKIAotICAg
IG1fdGltZXJXb3JrSXRlbXMuaW5zZXJ0KHBvc2l0aW9uLCBzdGQ6Om1vdmUoaXRlbSkpOworICAg
IG1fdGltZXJXb3JrSXRlbXMuaW5zZXJ0KHBvc2l0aW9uLCBXVEY6Om1vdmUoaXRlbSkpOwogfQog
CiB2b2lkIERpc3BhdGNoUXVldWU6OmRpc3BhdGNoUXVldWVUaHJlYWQoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vZWZsL0Rpc3BhdGNoUXVldWVXb3JrSXRlbUVmbC5oIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vZWZsL0Rpc3BhdGNoUXVldWVXb3JrSXRlbUVmbC5oCmlu
ZGV4IGQyMDllYjMuLjYwNWE2ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L2VmbC9EaXNwYXRjaFF1ZXVlV29ya0l0ZW1FZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9lZmwvRGlzcGF0Y2hRdWV1ZVdvcmtJdGVtRWZsLmgKQEAgLTM2LDE0ICszNiwxNCBAQCBj
bGFzcyBXb3JrSXRlbSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxXb3Jr
SXRlbT4gY3JlYXRlKFBhc3NSZWZQdHI8V29ya1F1ZXVlPiB3b3JrUXVldWUsIHN0ZDo6ZnVuY3Rp
b248dm9pZCAoKT4gZnVuY3Rpb24pCiAgICAgewotICAgICAgICByZXR1cm4gc3RkOjp1bmlxdWVf
cHRyPFdvcmtJdGVtPihuZXcgV29ya0l0ZW0od29ya1F1ZXVlLCBzdGQ6Om1vdmUoZnVuY3Rpb24p
KSk7CisgICAgICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8V29ya0l0ZW0+KG5ldyBXb3JrSXRl
bSh3b3JrUXVldWUsIFdURjo6bW92ZShmdW5jdGlvbikpKTsKICAgICB9CiAgICAgdm9pZCBkaXNw
YXRjaCgpIHsgbV9mdW5jdGlvbigpOyB9CiAKIHByb3RlY3RlZDoKICAgICBXb3JrSXRlbShQYXNz
UmVmUHRyPFdvcmtRdWV1ZT4gd29ya1F1ZXVlLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGZ1bmN0
aW9uKQogICAgICAgICA6IG1fd29ya1F1ZXVlKHdvcmtRdWV1ZSkKLSAgICAgICAgLCBtX2Z1bmN0
aW9uKHN0ZDo6bW92ZShmdW5jdGlvbikpCisgICAgICAgICwgbV9mdW5jdGlvbihXVEY6Om1vdmUo
ZnVuY3Rpb24pKQogICAgIHsKICAgICB9CiAKQEAgLTU3LDE0ICs1NywxNCBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxUaW1lcldvcmtJdGVtPiBjcmVhdGUoUGFzc1JlZlB0
cjxXb3JrUXVldWU+IHdvcmtRdWV1ZSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBmdW5jdGlvbiwg
c3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzIGRlbGF5TmFub1NlY29uZHMpCiAgICAgewogICAgICAg
ICBBU1NFUlQoZGVsYXlOYW5vU2Vjb25kcy5jb3VudCgpID49IDApOwotICAgICAgICByZXR1cm4g
c3RkOjp1bmlxdWVfcHRyPFRpbWVyV29ya0l0ZW0+KG5ldyBUaW1lcldvcmtJdGVtKHdvcmtRdWV1
ZSwgc3RkOjptb3ZlKGZ1bmN0aW9uKSwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgKiAx
MDAwMDAwMDAwLjAgKyBkZWxheU5hbm9TZWNvbmRzLmNvdW50KCkpKTsKKyAgICAgICAgcmV0dXJu
IHN0ZDo6dW5pcXVlX3B0cjxUaW1lcldvcmtJdGVtPihuZXcgVGltZXJXb3JrSXRlbSh3b3JrUXVl
dWUsIFdURjo6bW92ZShmdW5jdGlvbiksIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpICog
MTAwMDAwMDAwMC4wICsgZGVsYXlOYW5vU2Vjb25kcy5jb3VudCgpKSk7CiAgICAgfQogICAgIGRv
dWJsZSBleHBpcmF0aW9uVGltZU5hbm9TZWNvbmRzKCkgY29uc3QgeyByZXR1cm4gbV9leHBpcmF0
aW9uVGltZU5hbm9TZWNvbmRzOyB9CiAgICAgYm9vbCBoYXNFeHBpcmVkKGRvdWJsZSBjdXJyZW50
VGltZU5hbm9TZWNvbmRzKSBjb25zdCB7IHJldHVybiBjdXJyZW50VGltZU5hbm9TZWNvbmRzID49
IG1fZXhwaXJhdGlvblRpbWVOYW5vU2Vjb25kczsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgVGltZXJX
b3JrSXRlbShQYXNzUmVmUHRyPFdvcmtRdWV1ZT4gd29ya1F1ZXVlLCBzdGQ6OmZ1bmN0aW9uPHZv
aWQgKCk+IGZ1bmN0aW9uLCBkb3VibGUgZXhwaXJhdGlvblRpbWVOYW5vU2Vjb25kcykKLSAgICAg
ICAgOiBXb3JrSXRlbSh3b3JrUXVldWUsIHN0ZDo6bW92ZShmdW5jdGlvbikpCisgICAgICAgIDog
V29ya0l0ZW0od29ya1F1ZXVlLCBXVEY6Om1vdmUoZnVuY3Rpb24pKQogICAgICAgICAsIG1fZXhw
aXJhdGlvblRpbWVOYW5vU2Vjb25kcyhleHBpcmF0aW9uVGltZU5hbm9TZWNvbmRzKQogICAgIHsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9lZmwvV29ya1F1ZXVl
RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2VmbC9Xb3JrUXVldWVFZmwuY3BwCmlu
ZGV4IGM4ZTcwZDQuLjE5NWYxNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L2VmbC9Xb3JrUXVldWVFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2VmbC9X
b3JrUXVldWVFZmwuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgV29ya1F1ZXVlOjpyZWdpc3Rl
clNvY2tldEV2ZW50SGFuZGxlcihpbnQgZmlsZURlc2NyaXB0b3IsIHN0ZDo6ZnVuY3Rpb248dm9p
CiAgICAgaWYgKCFtX2Rpc3BhdGNoUXVldWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fZGlz
cGF0Y2hRdWV1ZS0+c2V0U29ja2V0RXZlbnRIYW5kbGVyKGZpbGVEZXNjcmlwdG9yLCBzdGQ6Om1v
dmUoZnVuY3Rpb24pKTsKKyAgICBtX2Rpc3BhdGNoUXVldWUtPnNldFNvY2tldEV2ZW50SGFuZGxl
cihmaWxlRGVzY3JpcHRvciwgV1RGOjptb3ZlKGZ1bmN0aW9uKSk7CiB9CiAKIHZvaWQgV29ya1F1
ZXVlOjp1bnJlZ2lzdGVyU29ja2V0RXZlbnRIYW5kbGVyKGludCBmaWxlRGVzY3JpcHRvcikKQEAg
LTU3LDcgKzU3LDcgQEAgdm9pZCBXb3JrUXVldWU6OmRpc3BhdGNoKHN0ZDo6ZnVuY3Rpb248dm9p
ZCAoKT4gZnVuY3Rpb24pCiAgICAgaWYgKCFtX2Rpc3BhdGNoUXVldWUpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIG1fZGlzcGF0Y2hRdWV1ZS0+ZGlzcGF0Y2goV29ya0l0ZW06OmNyZWF0ZSh0aGlz
LCBzdGQ6Om1vdmUoZnVuY3Rpb24pKSk7CisgICAgbV9kaXNwYXRjaFF1ZXVlLT5kaXNwYXRjaChX
b3JrSXRlbTo6Y3JlYXRlKHRoaXMsIFdURjo6bW92ZShmdW5jdGlvbikpKTsKIH0KIAogdm9pZCBX
b3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXIoc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzIGR1cmF0aW9u
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGZ1bmN0aW9uKQpAQCAtNjUsNSArNjUsNSBAQCB2b2lk
IFdvcmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlcihzdGQ6OmNocm9ubzo6bmFub3NlY29uZHMgZHVyYXRp
b24sIHN0ZDo6ZnVuY3Rpb248dgogICAgIGlmICghbV9kaXNwYXRjaFF1ZXVlKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBtX2Rpc3BhdGNoUXVldWUtPmRpc3BhdGNoKFRpbWVyV29ya0l0ZW06OmNy
ZWF0ZSh0aGlzLCBzdGQ6Om1vdmUoZnVuY3Rpb24pLCBkdXJhdGlvbikpOworICAgIG1fZGlzcGF0
Y2hRdWV1ZS0+ZGlzcGF0Y2goVGltZXJXb3JrSXRlbTo6Y3JlYXRlKHRoaXMsIFdURjo6bW92ZShm
dW5jdGlvbiksIGR1cmF0aW9uKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9ndGsvV29ya1F1ZXVlR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9X
b3JrUXVldWVHdGsuY3BwCmluZGV4IDJiNDRiZTYuLmI5NjI1ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9Xb3JrUXVldWVHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL2d0ay9Xb3JrUXVldWVHdGsuY3BwCkBAIC0xMDgsMTMgKzEwOCwxMyBAQCB2
b2lkIFdvcmtRdWV1ZTo6dW5yZWdpc3RlclNvY2tldEV2ZW50SGFuZGxlcihpbnQpCiB2b2lkIFdv
cmtRdWV1ZTo6ZGlzcGF0Y2goc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBmdW5jdGlvbikKIHsKICAg
ICByZWYoKTsKLSAgICBHTWFpbkxvb3BTb3VyY2U6OmNyZWF0ZUFuZERlbGV0ZU9uRGVzdHJveSgp
LnNjaGVkdWxlKCJbV2ViS2l0XSBXb3JrUXVldWU6OmRpc3BhdGNoIiwgc3RkOjptb3ZlKGZ1bmN0
aW9uKSwgR19QUklPUklUWV9ERUZBVUxULAorICAgIEdNYWluTG9vcFNvdXJjZTo6Y3JlYXRlQW5k
RGVsZXRlT25EZXN0cm95KCkuc2NoZWR1bGUoIltXZWJLaXRdIFdvcmtRdWV1ZTo6ZGlzcGF0Y2gi
LCBXVEY6Om1vdmUoZnVuY3Rpb24pLCBHX1BSSU9SSVRZX0RFRkFVTFQsCiAgICAgICAgIFt0aGlz
XSB7IGRlcmVmKCk7IH0sIG1fZXZlbnRDb250ZXh0LmdldCgpKTsKIH0KIAogdm9pZCBXb3JrUXVl
dWU6OmRpc3BhdGNoQWZ0ZXIoc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzIGR1cmF0aW9uLCBzdGQ6
OmZ1bmN0aW9uPHZvaWQgKCk+IGZ1bmN0aW9uKQogewogICAgIHJlZigpOwotICAgIEdNYWluTG9v
cFNvdXJjZTo6Y3JlYXRlQW5kRGVsZXRlT25EZXN0cm95KCkuc2NoZWR1bGVBZnRlckRlbGF5KCJb
V2ViS2l0XSBXb3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXIiLCBzdGQ6Om1vdmUoZnVuY3Rpb24pLAor
ICAgIEdNYWluTG9vcFNvdXJjZTo6Y3JlYXRlQW5kRGVsZXRlT25EZXN0cm95KCkuc2NoZWR1bGVB
ZnRlckRlbGF5KCJbV2ViS2l0XSBXb3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXIiLCBXVEY6Om1vdmUo
ZnVuY3Rpb24pLAogICAgICAgICBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9u
bzo6bWlsbGlzZWNvbmRzPihkdXJhdGlvbiksIEdfUFJJT1JJVFlfREVGQVVMVCwgW3RoaXNdIHsg
ZGVyZWYoKTsgfSwgbV9ldmVudENvbnRleHQuZ2V0KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1BsdWdpblNl
cnZpY2VFbnRyeVBvaW50Lm1tIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBv
aW50L21hYy9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tCmluZGV4IDVjZjEx
OGMuLjIyZGYxN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50
cnlQb2ludC9tYWMvWFBDU2VydmljZS9QbHVnaW5TZXJ2aWNlRW50cnlQb2ludC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvUGx1
Z2luU2VydmljZUVudHJ5UG9pbnQubW0KQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiBjbGFzcyBQbHVnaW5TZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZSA6IHB1YmxpYyBYUENT
ZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZSB7CiBwdWJsaWM6CiAgICAgUGx1Z2luU2VydmljZUlu
aXRpYWxpemVyRGVsZWdhdGUoSVBDOjpYUENQdHI8eHBjX2Nvbm5lY3Rpb25fdD4gY29ubmVjdGlv
biwgeHBjX29iamVjdF90IGluaXRpYWxpemVyTWVzc2FnZSkKLSAgICAgICAgOiBYUENTZXJ2aWNl
SW5pdGlhbGl6ZXJEZWxlZ2F0ZShzdGQ6Om1vdmUoY29ubmVjdGlvbiksIGluaXRpYWxpemVyTWVz
c2FnZSkKKyAgICAgICAgOiBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZShXVEY6Om1vdmUo
Y29ubmVjdGlvbiksIGluaXRpYWxpemVyTWVzc2FnZSkKICAgICB7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
CmluZGV4IGY5MmMxNTIuLjI4Y2NkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1Bs
dWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC03Myw3ICs3Myw3IEBAIHZv
aWQgV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmFkZFBsdWdpbkNvbnRyb2xsZXJQcm94eShzdGQ6OnVu
aXF1ZV9wdHI8UGx1Z2luQ29udHJvCiAgICAgdWludDY0X3QgcGx1Z2luSW5zdGFuY2VJRCA9IHBs
dWdpbkNvbnRyb2xsZXItPnBsdWdpbkluc3RhbmNlSUQoKTsKIAogICAgIEFTU0VSVCghbV9wbHVn
aW5Db250cm9sbGVycy5jb250YWlucyhwbHVnaW5JbnN0YW5jZUlEKSk7Ci0gICAgbV9wbHVnaW5D
b250cm9sbGVycy5zZXQocGx1Z2luSW5zdGFuY2VJRCwgc3RkOjptb3ZlKHBsdWdpbkNvbnRyb2xs
ZXIpKTsKKyAgICBtX3BsdWdpbkNvbnRyb2xsZXJzLnNldChwbHVnaW5JbnN0YW5jZUlELCBXVEY6
Om1vdmUocGx1Z2luQ29udHJvbGxlcikpOwogfQogCiB2b2lkIFdlYlByb2Nlc3NDb25uZWN0aW9u
OjpkZXN0cm95UGx1Z2luQ29udHJvbGxlclByb3h5KFBsdWdpbkNvbnRyb2xsZXJQcm94eSogcGx1
Z2luQ29udHJvbGxlcikKQEAgLTIxNiw3ICsyMTYsNyBAQCB2b2lkIFdlYlByb2Nlc3NDb25uZWN0
aW9uOjpjcmVhdGVQbHVnaW5JbnRlcm5hbChjb25zdCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMm
CiAKICAgICAvLyBNYWtlIHN1cmUgdG8gYWRkIHRoZSBwcm94eSB0byB0aGUgbWFwIGJlZm9yZSBp
bml0aWFsaXppbmcgaXQsIHNpbmNlIHRoZSBwbHVnLWluIG1pZ2h0IGNhbGwgb3V0IHRvIHRoZSB3
ZWIgcHJvY2VzcyBmcm9tIAogICAgIC8vIGl0cyBOUFBfTmV3IGZ1bmN0aW9uLiBUaGlzIHdpbGwg
aGFuZCBvdmVyIG93bmVyc2hpcCBvZiB0aGUgcHJveHkgdG8gdGhlIHdlYiBwcm9jZXNzIGNvbm5l
Y3Rpb24uCi0gICAgYWRkUGx1Z2luQ29udHJvbGxlclByb3h5KHN0ZDo6bW92ZShwbHVnaW5Db250
cm9sbGVyUHJveHkpKTsKKyAgICBhZGRQbHVnaW5Db250cm9sbGVyUHJveHkoV1RGOjptb3ZlKHBs
dWdpbkNvbnRyb2xsZXJQcm94eSkpOwogCiAgICAgLy8gTm93IHRyeSB0byBpbml0aWFsaXplIHRo
ZSBwbHVnLWluLgogICAgIHJlc3VsdCA9IHBsdWdpbkNvbnRyb2xsZXJQcm94eVB0ci0+aW5pdGlh
bGl6ZShjcmVhdGlvblBhcmFtZXRlcnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2Ny
aXB0cy93ZWJraXQyL0xlZ2FjeU1lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvTGVnYWN5TWVzc2FnZVJlY2VpdmVyLWV4cGVjdGVkLmNw
cAppbmRleCBkMmFjYjU1Li41MDM1NDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TY3Jp
cHRzL3dlYmtpdDIvTGVnYWN5TWVzc2FnZVJlY2VpdmVyLWV4cGVjdGVkLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvTGVnYWN5TWVzc2FnZVJlY2VpdmVyLWV4cGVjdGVk
LmNwcApAQCAtNjEsNyArNjEsNyBAQCBuYW1lc3BhY2UgV2ViUGFnZSB7CiAKIEdldFBsdWdpblBy
b2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk6OkRlbGF5ZWRSZXBseShQYXNzUmVmUHRyPElQ
Qzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVu
Y29kZXI+IGVuY29kZXIpCiAgICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKLSAgICAsIG1f
ZW5jb2RlcihzdGQ6Om1vdmUoZW5jb2RlcikpCisgICAgLCBtX2VuY29kZXIoV1RGOjptb3ZlKGVu
Y29kZXIpKQogewogfQogCkBAIC03NCwxNCArNzQsMTQgQEAgYm9vbCBHZXRQbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbjo6RGVsYXllZFJlcGx5OjpzZW5kKGNvbnN0IElQQzo6Q29ubmVjdGlvbjo6SGFu
ZGwKIHsKICAgICBBU1NFUlQobV9lbmNvZGVyKTsKICAgICAqbV9lbmNvZGVyIDw8IGNvbm5lY3Rp
b25IYW5kbGU7Ci0gICAgYm9vbCBfcmVzdWx0ID0gbV9jb25uZWN0aW9uLT5zZW5kU3luY1JlcGx5
KHN0ZDo6bW92ZShtX2VuY29kZXIpKTsKKyAgICBib29sIF9yZXN1bHQgPSBtX2Nvbm5lY3Rpb24t
PnNlbmRTeW5jUmVwbHkoV1RGOjptb3ZlKG1fZW5jb2RlcikpOwogICAgIG1fY29ubmVjdGlvbiA9
IG51bGxwdHI7CiAgICAgcmV0dXJuIF9yZXN1bHQ7CiB9CiAKIFRlc3RNdWx0aXBsZUF0dHJpYnV0
ZXM6OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8SVBDOjpDb25uZWN0aW9u
PiBjb25uZWN0aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4gZW5jb2Rl
cikKICAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQotICAgICwgbV9lbmNvZGVyKHN0ZDo6
bW92ZShlbmNvZGVyKSkKKyAgICAsIG1fZW5jb2RlcihXVEY6Om1vdmUoZW5jb2RlcikpCiB7CiB9
CiAKQEAgLTkzLDcgKzkzLDcgQEAgVGVzdE11bHRpcGxlQXR0cmlidXRlczo6RGVsYXllZFJlcGx5
Ojp+RGVsYXllZFJlcGx5KCkKIGJvb2wgVGVzdE11bHRpcGxlQXR0cmlidXRlczo6RGVsYXllZFJl
cGx5OjpzZW5kKCkKIHsKICAgICBBU1NFUlQobV9lbmNvZGVyKTsKLSAgICBib29sIF9yZXN1bHQg
PSBtX2Nvbm5lY3Rpb24tPnNlbmRTeW5jUmVwbHkoc3RkOjptb3ZlKG1fZW5jb2RlcikpOworICAg
IGJvb2wgX3Jlc3VsdCA9IG1fY29ubmVjdGlvbi0+c2VuZFN5bmNSZXBseShXVEY6Om1vdmUobV9l
bmNvZGVyKSk7CiAgICAgbV9jb25uZWN0aW9uID0gbnVsbHB0cjsKICAgICByZXR1cm4gX3Jlc3Vs
dDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9NZXNzYWdl
UmVjZWl2ZXItZXhwZWN0ZWQuY3BwIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL01l
c3NhZ2VSZWNlaXZlci1leHBlY3RlZC5jcHAKaW5kZXggNTEwNWFlMi4uNzA3YWJjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL01lc3NhZ2VSZWNlaXZlci1leHBl
Y3RlZC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL01lc3NhZ2VSZWNl
aXZlci1leHBlY3RlZC5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgbmFtZXNwYWNlIFdlYlBhZ2Ugewog
CiBHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5OjpEZWxheWVkUmVwbHko
UGFzc1JlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IGNvbm5lY3Rpb24sIHN0ZDo6dW5pcXVlX3B0cjxJ
UEM6Ok1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyKQogICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rp
b24pCi0gICAgLCBtX2VuY29kZXIoc3RkOjptb3ZlKGVuY29kZXIpKQorICAgICwgbV9lbmNvZGVy
KFdURjo6bW92ZShlbmNvZGVyKSkKIHsKIH0KIApAQCAtNzQsMTQgKzc0LDE0IEBAIGJvb2wgR2V0
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseTo6c2VuZChjb25zdCBJUEM6OkNv
bm5lY3Rpb246OkhhbmRsCiB7CiAgICAgQVNTRVJUKG1fZW5jb2Rlcik7CiAgICAgKm1fZW5jb2Rl
ciA8PCBjb25uZWN0aW9uSGFuZGxlOwotICAgIGJvb2wgX3Jlc3VsdCA9IG1fY29ubmVjdGlvbi0+
c2VuZFN5bmNSZXBseShzdGQ6Om1vdmUobV9lbmNvZGVyKSk7CisgICAgYm9vbCBfcmVzdWx0ID0g
bV9jb25uZWN0aW9uLT5zZW5kU3luY1JlcGx5KFdURjo6bW92ZShtX2VuY29kZXIpKTsKICAgICBt
X2Nvbm5lY3Rpb24gPSBudWxscHRyOwogICAgIHJldHVybiBfcmVzdWx0OwogfQogCiBUZXN0TXVs
dGlwbGVBdHRyaWJ1dGVzOjpEZWxheWVkUmVwbHk6OkRlbGF5ZWRSZXBseShQYXNzUmVmUHRyPElQ
Qzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVu
Y29kZXI+IGVuY29kZXIpCiAgICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKLSAgICAsIG1f
ZW5jb2RlcihzdGQ6Om1vdmUoZW5jb2RlcikpCisgICAgLCBtX2VuY29kZXIoV1RGOjptb3ZlKGVu
Y29kZXIpKQogewogfQogCkBAIC05Myw3ICs5Myw3IEBAIFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6
OkRlbGF5ZWRSZXBseTo6fkRlbGF5ZWRSZXBseSgpCiBib29sIFRlc3RNdWx0aXBsZUF0dHJpYnV0
ZXM6OkRlbGF5ZWRSZXBseTo6c2VuZCgpCiB7CiAgICAgQVNTRVJUKG1fZW5jb2Rlcik7Ci0gICAg
Ym9vbCBfcmVzdWx0ID0gbV9jb25uZWN0aW9uLT5zZW5kU3luY1JlcGx5KHN0ZDo6bW92ZShtX2Vu
Y29kZXIpKTsKKyAgICBib29sIF9yZXN1bHQgPSBtX2Nvbm5lY3Rpb24tPnNlbmRTeW5jUmVwbHko
V1RGOjptb3ZlKG1fZW5jb2RlcikpOwogICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7CiAgICAg
cmV0dXJuIF9yZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dl
YmtpdDIvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2Fn
ZXMucHkKaW5kZXggY2I1ZDIxZC4uOTY0Mzg1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMv
d2Via2l0Mi9tZXNzYWdlcy5weQpAQCAtNTU2LDcgKzU1Niw3IEBAIGRlZiBnZW5lcmF0ZV9tZXNz
YWdlX2hhbmRsZXIoZmlsZSk6CiAKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyVzOjpEZWxh
eWVkUmVwbHk6OkRlbGF5ZWRSZXBseShQYXNzUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gY29ubmVj
dGlvbiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+IGVuY29kZXIpXG4nICUg
bWVzc2FnZS5uYW1lKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIDogbV9jb25uZWN0
aW9uKGNvbm5lY3Rpb24pXG4nKQotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgICwgbV9l
bmNvZGVyKHN0ZDo6bW92ZShlbmNvZGVyKSlcbicpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KCcgICAgLCBtX2VuY29kZXIoV1RGOjptb3ZlKGVuY29kZXIpKVxuJykKICAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJ3tcbicpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCd9XG4nKQogICAg
ICAgICAgICAgcmVzdWx0LmFwcGVuZCgnXG4nKQpAQCAtNTY5LDcgKzU2OSw3IEBAIGRlZiBnZW5l
cmF0ZV9tZXNzYWdlX2hhbmRsZXIoZmlsZSk6CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCd7
XG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIEFTU0VSVChtX2VuY29kZXIpO1xu
JykKICAgICAgICAgICAgIHJlc3VsdCArPSBbJyAgICAqbV9lbmNvZGVyIDw8ICVzO1xuJyAlIHgu
bmFtZSBmb3IgeCBpbiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnNdCi0gICAgICAgICAgICByZXN1
bHQuYXBwZW5kKCcgICAgYm9vbCBfcmVzdWx0ID0gbV9jb25uZWN0aW9uLT5zZW5kU3luY1JlcGx5
KHN0ZDo6bW92ZShtX2VuY29kZXIpKTtcbicpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcg
ICAgYm9vbCBfcmVzdWx0ID0gbV9jb25uZWN0aW9uLT5zZW5kU3luY1JlcGx5KFdURjo6bW92ZSht
X2VuY29kZXIpKTtcbicpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgbV9jb25uZWN0
aW9uID0gbnVsbHB0cjtcbicpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgcmV0dXJu
IF9yZXN1bHQ7XG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnfVxuJykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0FycmF5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy9XS0FycmF5LmNwcAppbmRleCAzMGY5NzgxLi44ZmIwZmNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tBcnJheS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQXJyYXkuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFdL
QXJyYXlSZWYgV0tBcnJheUNyZWF0ZShXS1R5cGVSZWYqIHZhbHVlcywgc2l6ZV90IG51bWJlck9m
VmFsdWVzKQogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtYmVyT2ZWYWx1ZXM7ICsraSkK
ICAgICAgICAgZWxlbWVudHMudW5jaGVja2VkQXBwZW5kKGNvbnN0X2Nhc3Q8QVBJOjpPYmplY3Qq
PihzdGF0aWNfY2FzdDxjb25zdCBBUEk6Ok9iamVjdCo+KHZhbHVlc1tpXSkpKTsKIAotICAgIHJl
dHVybiB0b0FQSShBUEk6OkFycmF5OjpjcmVhdGUoc3RkOjptb3ZlKGVsZW1lbnRzKSkubGVha1Jl
ZigpKTsKKyAgICByZXR1cm4gdG9BUEkoQVBJOjpBcnJheTo6Y3JlYXRlKFdURjo6bW92ZShlbGVt
ZW50cykpLmxlYWtSZWYoKSk7CiB9CiAKIFdLQXJyYXlSZWYgV0tBcnJheUNyZWF0ZUFkb3B0aW5n
VmFsdWVzKFdLVHlwZVJlZiogdmFsdWVzLCBzaXplX3QgbnVtYmVyT2ZWYWx1ZXMpCkBAIC01NSw3
ICs1NSw3IEBAIFdLQXJyYXlSZWYgV0tBcnJheUNyZWF0ZUFkb3B0aW5nVmFsdWVzKFdLVHlwZVJl
ZiogdmFsdWVzLCBzaXplX3QgbnVtYmVyT2ZWYWx1ZXMpCiAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBudW1iZXJPZlZhbHVlczsgKytpKQogICAgICAgICBlbGVtZW50cy51bmNoZWNrZWRBcHBl
bmQoYWRvcHRSZWYoY29uc3RfY2FzdDxBUEk6Ok9iamVjdCo+KHN0YXRpY19jYXN0PGNvbnN0IEFQ
STo6T2JqZWN0Kj4odmFsdWVzW2ldKSkpKTsKIAotICAgIHJldHVybiB0b0FQSShBUEk6OkFycmF5
OjpjcmVhdGUoc3RkOjptb3ZlKGVsZW1lbnRzKSkubGVha1JlZigpKTsKKyAgICByZXR1cm4gdG9B
UEkoQVBJOjpBcnJheTo6Y3JlYXRlKFdURjo6bW92ZShlbGVtZW50cykpLmxlYWtSZWYoKSk7CiB9
CiAKIFdLVHlwZVJlZiBXS0FycmF5R2V0SXRlbUF0SW5kZXgoV0tBcnJheVJlZiBhcnJheVJlZiwg
c2l6ZV90IGluZGV4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dL
RGljdGlvbmFyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tEaWN0aW9uYXJ5
LmNwcAppbmRleCA0NGM2MWUxLi45YWNhZmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL2MvV0tEaWN0aW9uYXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL2MvV0tEaWN0aW9uYXJ5LmNwcApAQCAtNDMsNyArNDMsNyBAQCBXS19FWFBPUlQgV0tEaWN0
aW9uYXJ5UmVmIFdLRGljdGlvbmFyeUNyZWF0ZShjb25zdCBXS1N0cmluZ1JlZioga2V5cywgY29u
c3QgV0tUeQogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtYmVyT2ZWYWx1ZXM7ICsraSkK
ICAgICAgICAgbWFwLmFkZCh0b0ltcGwoa2V5c1tpXSktPnN0cmluZygpLCB0b0ltcGwodmFsdWVz
W2ldKSk7CiAKLSAgICByZXR1cm4gdG9BUEkoSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKHN0
ZDo6bW92ZShtYXApKS5yZWxlYXNlKCkubGVha1JlZigpKTsKKyAgICByZXR1cm4gdG9BUEkoSW1t
dXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShtYXApKS5yZWxlYXNlKCkubGVha1Jl
ZigpKTsKIH0KIAogV0tUeXBlUmVmIFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkoV0tEaWN0aW9u
YXJ5UmVmIGRpY3Rpb25hcnlSZWYsIFdLU3RyaW5nUmVmIGtleSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUElBcnJheS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
QXJyYXkuY3BwCmluZGV4IDliN2Y2MzguLmQzN2FlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUElBcnJheS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUFy
cmF5LmNwcApAQCAtMzcsNyArMzcsNyBAQCBQYXNzUmVmUHRyPEFycmF5PiBBcnJheTo6Y3JlYXRl
KCkKIAogUGFzc1JlZlB0cjxBcnJheT4gQXJyYXk6OmNyZWF0ZShWZWN0b3I8UmVmUHRyPE9iamVj
dD4+IGVsZW1lbnRzKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXJyYXkoc3RkOjptb3Zl
KGVsZW1lbnRzKSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXJyYXkoV1RGOjptb3ZlKGVs
ZW1lbnRzKSkpOwogfQogCiBQYXNzUmVmUHRyPEFycmF5PiBBcnJheTo6Y3JlYXRlU3RyaW5nQXJy
YXkoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYgc3RyaW5ncykKQEAgLTQ4LDcgKzQ4LDcgQEAg
UGFzc1JlZlB0cjxBcnJheT4gQXJyYXk6OmNyZWF0ZVN0cmluZ0FycmF5KGNvbnN0IFZlY3RvcjxX
VEY6OlN0cmluZz4mIHN0cmluZ3MpCiAgICAgZm9yIChjb25zdCBhdXRvJiBzdHJpbmcgOiBzdHJp
bmdzKQogICAgICAgICBlbGVtZW50cy51bmNoZWNrZWRBcHBlbmQoQVBJOjpTdHJpbmc6OmNyZWF0
ZShzdHJpbmcpKTsKIAotICAgIHJldHVybiBjcmVhdGUoc3RkOjptb3ZlKGVsZW1lbnRzKSk7Cisg
ICAgcmV0dXJuIGNyZWF0ZShXVEY6Om1vdmUoZWxlbWVudHMpKTsKIH0KIAogVmVjdG9yPFdURjo6
U3RyaW5nPiBBcnJheTo6dG9TdHJpbmdWZWN0b3IoKQpAQCAtNjYsNyArNjYsNyBAQCBWZWN0b3I8
V1RGOjpTdHJpbmc+IEFycmF5Ojp0b1N0cmluZ1ZlY3RvcigpCiB9CiAKIEFycmF5OjpBcnJheShW
ZWN0b3I8UmVmUHRyPE9iamVjdD4+IGVsZW1lbnRzKQotICAgIDogbV9lbGVtZW50cyhzdGQ6Om1v
dmUoZWxlbWVudHMpKQorICAgIDogbV9lbGVtZW50cyhXVEY6Om1vdmUoZWxlbWVudHMpKQogewog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJVVJMLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJVVJMLmgKaW5kZXggYjllMDU4Mi4uYzBiM2ExMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSVVSTC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUElVUkwuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgICAgIGF1dG8gYWJz
b2x1dGVVUkwgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvcmU6OlVSTD4oKmJhc2VVUkwtPm1fcGFy
c2VkVVJMLmdldCgpLCByZWxhdGl2ZVVSTCk7CiAgICAgICAgIGNvbnN0IFdURjo6U3RyaW5nJiBh
YnNvbHV0ZVVSTFN0cmluZyA9IGFic29sdXRlVVJMLT5zdHJpbmcoKTsKIAotICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFVSTChzdGQ6Om1vdmUoYWJzb2x1dGVVUkwpLCBhYnNvbHV0ZVVSTFN0
cmluZykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFVSTChXVEY6Om1vdmUoYWJzb2x1
dGVVUkwpLCBhYnNvbHV0ZVVSTFN0cmluZykpOwogICAgIH0KIAogICAgIGJvb2wgaXNOdWxsKCkg
Y29uc3QgeyByZXR1cm4gbV9zdHJpbmcuaXNOdWxsKCk7IH0KQEAgLTEwOCw3ICsxMDgsNyBAQCBw
cml2YXRlOgogCiAgICAgVVJMKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpVUkw+IHBhcnNlZFVS
TCwgY29uc3QgV1RGOjpTdHJpbmcmIHN0cmluZykKICAgICAgICAgOiBtX3N0cmluZyhzdHJpbmcp
Ci0gICAgICAgICwgbV9wYXJzZWRVUkwoc3RkOjptb3ZlKHBhcnNlZFVSTCkpCisgICAgICAgICwg
bV9wYXJzZWRVUkwoV1RGOjptb3ZlKHBhcnNlZFVSTCkpCiAgICAgewogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSVdlYkFyY2hpdmUuY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSVdlYkFyY2hpdmUuY3BwCmluZGV4IDg2NzQ3NDYuLmMzYjI3OTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElXZWJBcmNoaXZlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJV2ViQXJjaGl2ZS5jcHAKQEAgLTgyLDcgKzgyLDcgQEAg
V2ViQXJjaGl2ZTo6V2ViQXJjaGl2ZShXZWJBcmNoaXZlUmVzb3VyY2UqIG1haW5SZXNvdXJjZSwg
UGFzc1JlZlB0cjxBUEk6OkFycmF5PgogICAgICAgICBjb3JlU3ViZnJhbWVMZWdhY3lXZWJBcmNo
aXZlcy51bmNoZWNrZWRBcHBlbmQoc3ViZnJhbWVXZWJBcmNoaXZlLT5jb3JlTGVnYWN5V2ViQXJj
aGl2ZSgpKTsKICAgICB9CiAKLSAgICBtX2xlZ2FjeVdlYkFyY2hpdmUgPSBMZWdhY3lXZWJBcmNo
aXZlOjpjcmVhdGUoY29yZU1haW5SZXNvdXJjZS5yZWxlYXNlKCksIHN0ZDo6bW92ZShjb3JlQXJj
aGl2ZVJlc291cmNlcyksIHN0ZDo6bW92ZShjb3JlU3ViZnJhbWVMZWdhY3lXZWJBcmNoaXZlcykp
OworICAgIG1fbGVnYWN5V2ViQXJjaGl2ZSA9IExlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0ZShjb3Jl
TWFpblJlc291cmNlLnJlbGVhc2UoKSwgV1RGOjptb3ZlKGNvcmVBcmNoaXZlUmVzb3VyY2VzKSwg
V1RGOjptb3ZlKGNvcmVTdWJmcmFtZUxlZ2FjeVdlYkFyY2hpdmVzKSk7CiB9CiAKIFdlYkFyY2hp
dmU6OldlYkFyY2hpdmUoQVBJOjpEYXRhKiBkYXRhKQpAQCAtMTE2LDcgKzExNiw3IEBAIEFQSTo6
QXJyYXkqIFdlYkFyY2hpdmU6OnN1YnJlc291cmNlcygpCiAgICAgICAgIGZvciAoY29uc3QgYXV0
byYgc3VicmVzb3VyY2UgOiBtX2xlZ2FjeVdlYkFyY2hpdmUtPnN1YnJlc291cmNlcygpKQogICAg
ICAgICAgICAgc3VicmVzb3VyY2VzLnVuY2hlY2tlZEFwcGVuZChXZWJBcmNoaXZlUmVzb3VyY2U6
OmNyZWF0ZShzdWJyZXNvdXJjZSkpOwogCi0gICAgICAgIG1fY2FjaGVkU3VicmVzb3VyY2VzID0g
QVBJOjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShzdWJyZXNvdXJjZXMpKTsKKyAgICAgICAgbV9j
YWNoZWRTdWJyZXNvdXJjZXMgPSBBUEk6OkFycmF5OjpjcmVhdGUoV1RGOjptb3ZlKHN1YnJlc291
cmNlcykpOwogICAgIH0KIAogICAgIHJldHVybiBtX2NhY2hlZFN1YnJlc291cmNlcy5nZXQoKTsK
QEAgLTEzMSw3ICsxMzEsNyBAQCBBUEk6OkFycmF5KiBXZWJBcmNoaXZlOjpzdWJmcmFtZUFyY2hp
dmVzKCkKICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBzdWJmcmFtZUFyY2hpdmUgOiBtX2xlZ2Fj
eVdlYkFyY2hpdmUtPnN1YmZyYW1lQXJjaGl2ZXMoKSkKICAgICAgICAgICAgIHN1YmZyYW1lV2Vi
QXJjaGl2ZXMudW5jaGVja2VkQXBwZW5kKFdlYkFyY2hpdmU6OmNyZWF0ZShzdGF0aWNfY2FzdDxM
ZWdhY3lXZWJBcmNoaXZlKj4oc3ViZnJhbWVBcmNoaXZlLmdldCgpKSkpOwogCi0gICAgICAgIG1f
Y2FjaGVkU3ViZnJhbWVBcmNoaXZlcyA9IEFQSTo6QXJyYXk6OmNyZWF0ZShzdGQ6Om1vdmUoc3Vi
ZnJhbWVXZWJBcmNoaXZlcykpOworICAgICAgICBtX2NhY2hlZFN1YmZyYW1lQXJjaGl2ZXMgPSBB
UEk6OkFycmF5OjpjcmVhdGUoV1RGOjptb3ZlKHN1YmZyYW1lV2ViQXJjaGl2ZXMpKTsKICAgICB9
CiAKICAgICByZXR1cm4gbV9jYWNoZWRTdWJmcmFtZUFyY2hpdmVzLmdldCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FzeW5jUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQXN5bmNSZXF1ZXN0LmNwcAppbmRleCA2YWJiY2Y0Li4wZTE5YmNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXN5bmNSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQXN5bmNSZXF1ZXN0LmNwcApAQCAtMzksNyArMzksNyBAQCBzdGF0aWMg
dWludDY0X3QgZ2VuZXJhdGVSZXF1ZXN0SUQoKQogfQogCiBBc3luY1JlcXVlc3Q6OkFzeW5jUmVx
dWVzdChzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGFib3J0SGFuZGxlcikKLSAgICA6IG1fYWJvcnRI
YW5kbGVyKHN0ZDo6bW92ZShhYm9ydEhhbmRsZXIpKQorICAgIDogbV9hYm9ydEhhbmRsZXIoV1RG
Ojptb3ZlKGFib3J0SGFuZGxlcikpCiAgICAgLCBtX3JlcXVlc3RJRChnZW5lcmF0ZVJlcXVlc3RJ
RCgpKQogewogfQpAQCAtNTEsNyArNTEsNyBAQCBBc3luY1JlcXVlc3Q6On5Bc3luY1JlcXVlc3Qo
KQogCiB2b2lkIEFzeW5jUmVxdWVzdDo6c2V0QWJvcnRIYW5kbGVyKHN0ZDo6ZnVuY3Rpb248dm9p
ZCAoKT4gaGFuZGxlcikKIHsKLSAgICBtX2Fib3J0SGFuZGxlciA9IHN0ZDo6bW92ZShoYW5kbGVy
KTsKKyAgICBtX2Fib3J0SGFuZGxlciA9IFdURjo6bW92ZShoYW5kbGVyKTsKIH0KIAogdm9pZCBB
c3luY1JlcXVlc3Q6OnJlcXVlc3RBYm9ydGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9Bc3luY1JlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Bc3luY1JlcXVl
c3QuaAppbmRleCBlOTI2NDk5Li5lMmVhOGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQXN5bmNSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FzeW5jUmVx
dWVzdC5oCkBAIC01OSwxMiArNTksMTIgQEAgY2xhc3MgQXN5bmNSZXF1ZXN0SW1wbCBmaW5hbCA6
IHB1YmxpYyBBc3luY1JlcXVlc3QgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFz
eW5jUmVxdWVzdD4gY3JlYXRlKHN0ZDo6ZnVuY3Rpb248dm9pZCAoQXJndW1lbnRzLi4uKT4gY29t
cGxldGlvbkhhbmRsZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFzeW5j
UmVxdWVzdEltcGw8QXJndW1lbnRzLi4uPihzdGQ6Om1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBu
dWxscHRyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXN5bmNSZXF1ZXN0SW1wbDxB
cmd1bWVudHMuLi4+KFdURjo6bW92ZShjb21wbGV0aW9uSGFuZGxlciksIG51bGxwdHIpKTsKICAg
ICB9CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxBc3luY1JlcXVlc3Q+IGNyZWF0ZShzdGQ6OmZ1
bmN0aW9uPHZvaWQgKEFyZ3VtZW50cy4uLik+IGNvbXBsZXRpb25IYW5kbGVyLCBzdGQ6OmZ1bmN0
aW9uPHZvaWQgKCk+IGFib3J0SGFuZGxlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgQXN5bmNSZXF1ZXN0SW1wbDxBcmd1bWVudHMuLi4+KHN0ZDo6bW92ZShjb21wbGV0aW9u
SGFuZGxlciksIHN0ZDo6bW92ZShhYm9ydEhhbmRsZXIpKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgQXN5bmNSZXF1ZXN0SW1wbDxBcmd1bWVudHMuLi4+KFdURjo6bW92ZShjb21wbGV0
aW9uSGFuZGxlciksIFdURjo6bW92ZShhYm9ydEhhbmRsZXIpKSk7CiAgICAgfQogCiAgICAgdmly
dHVhbCB+QXN5bmNSZXF1ZXN0SW1wbCgpCkBAIC04MCw4ICs4MCw4IEBAIHB1YmxpYzoKIAogcHJp
dmF0ZToKICAgICBBc3luY1JlcXVlc3RJbXBsKHN0ZDo6ZnVuY3Rpb248dm9pZCAoQXJndW1lbnRz
Li4uKT4gY29tcGxldGlvbkhhbmRsZXIsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gYWJvcnRIYW5k
bGVyKQotICAgICAgICA6IEFzeW5jUmVxdWVzdChzdGQ6Om1vdmUoYWJvcnRIYW5kbGVyKSkKLSAg
ICAgICAgLCBtX2NvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bW92ZShjb21wbGV0aW9uSGFuZGxlcikp
CisgICAgICAgIDogQXN5bmNSZXF1ZXN0KFdURjo6bW92ZShhYm9ydEhhbmRsZXIpKQorICAgICAg
ICAsIG1fY29tcGxldGlvbkhhbmRsZXIoV1RGOjptb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKICAg
ICB7CiAgICAgICAgIEFTU0VSVChtX2NvbXBsZXRpb25IYW5kbGVyKTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQmxvY2tpbmdSZXNwb25zZU1hcC5oIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0Jsb2NraW5nUmVzcG9uc2VNYXAuaAppbmRleCBmNDUyOWFmLi5lZTIz
MjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQmxvY2tpbmdSZXNwb25zZU1h
cC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9CbG9ja2luZ1Jlc3BvbnNlTWFwLmgKQEAg
LTU5LDcgKzU5LDcgQEAgcHVibGljOgogICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRl
eD4gbG9jayhtX211dGV4KTsKICAgICAgICAgQVNTRVJUKCFtX3Jlc3BvbnNlcy5jb250YWlucyhy
ZXF1ZXN0SUQpKTsKIAotICAgICAgICBtX3Jlc3BvbnNlcy5zZXQocmVxdWVzdElELCBzdGQ6Om1v
dmUocmVzcG9uc2UpKTsKKyAgICAgICAgbV9yZXNwb25zZXMuc2V0KHJlcXVlc3RJRCwgV1RGOjpt
b3ZlKHJlc3BvbnNlKSk7CiAKICAgICAgICAgLy8gRklYTUU6IFdha2luZyB1cCBhbGwgdGhyZWFk
cyBpcyBxdWl0ZSBpbmVmZmljaWVudC4KICAgICAgICAgbV9jb25kaXRpb24ubm90aWZ5X2FsbCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAKaW5kZXggMDFl
YzYxNS4uYTViYzJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJv
Y2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJv
eHkuY3BwCkBAIC05MSwxMSArOTEsMTEgQEAgYm9vbCBDaGlsZFByb2Nlc3NQcm94eTo6c2VuZE1l
c3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+IGVuY29kZXIKICAgICBz
d2l0Y2ggKHN0YXRlKCkpIHsKICAgICBjYXNlIFN0YXRlOjpMYXVuY2hpbmc6CiAgICAgICAgIC8v
IElmIHdlJ3JlIHdhaXRpbmcgZm9yIHRoZSBjaGlsZCBwcm9jZXNzIHRvIGxhdW5jaCwgd2UgbmVl
ZCB0byBzdGFzaCBhd2F5IHRoZSBtZXNzYWdlcyBzbyB3ZSBjYW4gc2VuZCB0aGVtIG9uY2Ugd2Ug
aGF2ZSBhIGNvbm5lY3Rpb24uCi0gICAgICAgIG1fcGVuZGluZ01lc3NhZ2VzLmFwcGVuZChzdGQ6
Om1ha2VfcGFpcihzdGQ6Om1vdmUoZW5jb2RlciksIG1lc3NhZ2VTZW5kRmxhZ3MpKTsKKyAgICAg
ICAgbV9wZW5kaW5nTWVzc2FnZXMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKFdURjo6bW92ZShlbmNv
ZGVyKSwgbWVzc2FnZVNlbmRGbGFncykpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGNh
c2UgU3RhdGU6OlJ1bm5pbmc6Ci0gICAgICAgIHJldHVybiBjb25uZWN0aW9uKCktPnNlbmRNZXNz
YWdlKHN0ZDo6bW92ZShlbmNvZGVyKSwgbWVzc2FnZVNlbmRGbGFncyk7CisgICAgICAgIHJldHVy
biBjb25uZWN0aW9uKCktPnNlbmRNZXNzYWdlKFdURjo6bW92ZShlbmNvZGVyKSwgbWVzc2FnZVNl
bmRGbGFncyk7CiAKICAgICBjYXNlIFN0YXRlOjpUZXJtaW5hdGVkOgogICAgICAgICByZXR1cm4g
ZmFsc2U7CkBAIC0xNDIsOSArMTQyLDkgQEAgdm9pZCBDaGlsZFByb2Nlc3NQcm94eTo6ZGlkRmlu
aXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciosIElQQzo6Q29ubmVjdGlvbjo6SWQKICAgICBt
X2Nvbm5lY3Rpb24tPm9wZW4oKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9wZW5k
aW5nTWVzc2FnZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPElQQzo6
TWVzc2FnZUVuY29kZXI+IG1lc3NhZ2UgPSBzdGQ6Om1vdmUobV9wZW5kaW5nTWVzc2FnZXNbaV0u
Zmlyc3QpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4gbWVz
c2FnZSA9IFdURjo6bW92ZShtX3BlbmRpbmdNZXNzYWdlc1tpXS5maXJzdCk7CiAgICAgICAgIHVu
c2lnbmVkIG1lc3NhZ2VTZW5kRmxhZ3MgPSBtX3BlbmRpbmdNZXNzYWdlc1tpXS5zZWNvbmQ7Ci0g
ICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZE1lc3NhZ2Uoc3RkOjptb3ZlKG1lc3NhZ2UpLCBtZXNz
YWdlU2VuZEZsYWdzKTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kTWVzc2FnZShXVEY6Om1v
dmUobWVzc2FnZSksIG1lc3NhZ2VTZW5kRmxhZ3MpOwogICAgIH0KIAogICAgIG1fcGVuZGluZ01l
c3NhZ2VzLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQ
cm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5o
CmluZGV4IGIyZTBjYjIuLjYzZmM1NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9DaGlsZFByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFBy
b2Nlc3NQcm94eS5oCkBAIC0xMDEsNyArMTAxLDcgQEAgYm9vbCBDaGlsZFByb2Nlc3NQcm94eTo6
c2VuZChUJiYgbWVzc2FnZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgdW5zaWduZWQgbWVzc2EK
ICAgICBhdXRvIGVuY29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPElQQzo6TWVzc2FnZUVuY29kZXI+
KFQ6OnJlY2VpdmVyTmFtZSgpLCBUOjpuYW1lKCksIGRlc3RpbmF0aW9uSUQpOwogICAgIGVuY29k
ZXItPmVuY29kZShtZXNzYWdlLmFyZ3VtZW50cygpKTsKIAotICAgIHJldHVybiBzZW5kTWVzc2Fn
ZShzdGQ6Om1vdmUoZW5jb2RlciksIG1lc3NhZ2VTZW5kRmxhZ3MpOworICAgIHJldHVybiBzZW5k
TWVzc2FnZShXVEY6Om1vdmUoZW5jb2RlciksIG1lc3NhZ2VTZW5kRmxhZ3MpOwogfQogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBVPiAKQEAgLTExMiw3ICsxMTIsNyBAQCBib29sIENoaWxkUHJvY2Vzc1By
b3h5OjpzZW5kU3luYyhVJiYgbWVzc2FnZSwgdHlwZW5hbWUgVTo6UmVwbHkmJiByZXBseSwgdWlu
dDY0XwogICAgIGlmICghbV9jb25uZWN0aW9uKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICByZXR1cm4gY29ubmVjdGlvbigpLT5zZW5kU3luYyhzdGQ6OmZvcndhcmQ8VT4obWVzc2FnZSks
IHN0ZDo6bW92ZShyZXBseSksIGRlc3RpbmF0aW9uSUQsIHRpbWVvdXQpOworICAgIHJldHVybiBj
b25uZWN0aW9uKCktPnNlbmRTeW5jKHN0ZDo6Zm9yd2FyZDxVPihtZXNzYWdlKSwgV1RGOjptb3Zl
KHJlcGx5KSwgZGVzdGluYXRpb25JRCwgdGltZW91dCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvY29hL1dLTlNEaWN0aW9u
YXJ5Lm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvY29hL1dLTlNEaWN0aW9uYXJ5Lm1tCmlu
ZGV4IDA0NGRlYmIuLmMxMmU5YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b2NvYS9XS05TRGljdGlvbmFyeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2Ev
V0tOU0RpY3Rpb25hcnkubW0KQEAgLTgyLDcgKzgyLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKICAgICAgICAgcmV0dXJuIFtzZWxmIHJldGFpbl07CiAKICAgICBhdXRvIG1hcCA9IF9kaWN0
aW9uYXJ5LT5tYXAoKTsKLSAgICByZXR1cm4gSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKHN0
ZDo6bW92ZShtYXApKS5yZWxlYXNlKCkubGVha1JlZigpLT53cmFwcGVyKCk7CisgICAgcmV0dXJu
IEltbXV0YWJsZURpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUobWFwKSkucmVsZWFzZSgpLmxl
YWtSZWYoKS0+d3JhcHBlcigpOwogfQogCiAjcHJhZ21hIG1hcmsgV0tPYmplY3QgcHJvdG9jb2wg
aW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9h
ZHMvRG93bmxvYWRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMv
RG93bmxvYWRNYW5hZ2VyLmNwcAppbmRleCBhMWQ2NTA2Li42N2FiNzRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwCkBAIC00
NCw3ICs0NCw3IEBAIHZvaWQgRG93bmxvYWRNYW5hZ2VyOjpzdGFydERvd25sb2FkKHVpbnQ2NF90
IGRvd25sb2FkSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYKICAgICBkb3dubG9hZC0+c3RhcnQo
KTsKIAogICAgIEFTU0VSVCghbV9kb3dubG9hZHMuY29udGFpbnMoZG93bmxvYWRJRCkpOwotICAg
IG1fZG93bmxvYWRzLmFkZChkb3dubG9hZElELCBzdGQ6Om1vdmUoZG93bmxvYWQpKTsKKyAgICBt
X2Rvd25sb2Fkcy5hZGQoZG93bmxvYWRJRCwgV1RGOjptb3ZlKGRvd25sb2FkKSk7CiB9CiAKIHZv
aWQgRG93bmxvYWRNYW5hZ2VyOjpjb252ZXJ0SGFuZGxlVG9Eb3dubG9hZCh1aW50NjRfdCBkb3du
bG9hZElELCBSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQpAQCAtNTMsNyArNTMsNyBA
QCB2b2lkIERvd25sb2FkTWFuYWdlcjo6Y29udmVydEhhbmRsZVRvRG93bmxvYWQodWludDY0X3Qg
ZG93bmxvYWRJRCwgUmVzb3VyY2VIYW5kbAogCiAgICAgZG93bmxvYWQtPnN0YXJ0V2l0aEhhbmRs
ZShoYW5kbGUsIHJlc3BvbnNlKTsKICAgICBBU1NFUlQoIW1fZG93bmxvYWRzLmNvbnRhaW5zKGRv
d25sb2FkSUQpKTsKLSAgICBtX2Rvd25sb2Fkcy5hZGQoZG93bmxvYWRJRCwgc3RkOjptb3ZlKGRv
d25sb2FkKSk7CisgICAgbV9kb3dubG9hZHMuYWRkKGRvd25sb2FkSUQsIFdURjo6bW92ZShkb3du
bG9hZCkpOwogfQogCiB2b2lkIERvd25sb2FkTWFuYWdlcjo6Y2FuY2VsRG93bmxvYWQodWludDY0
X3QgZG93bmxvYWRJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBv
aW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENT
ZXJ2aWNlRW50cnlQb2ludC5oCmluZGV4IGE2ZWIyMGQuLjM5NTA5MGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQ
Q1NlcnZpY2VFbnRyeVBvaW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5UG9p
bnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaApAQCAtNDMs
NyArNDMsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFhQQ1NlcnZpY2VJbml0aWFsaXpl
ckRlbGVnYXRlIHsKIHB1YmxpYzoKICAgICBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZShJ
UEM6OlhQQ1B0cjx4cGNfY29ubmVjdGlvbl90PiBjb25uZWN0aW9uLCB4cGNfb2JqZWN0X3QgaW5p
dGlhbGl6ZXJNZXNzYWdlKQotICAgICAgICA6IG1fY29ubmVjdGlvbihzdGQ6Om1vdmUoY29ubmVj
dGlvbikpCisgICAgICAgIDogbV9jb25uZWN0aW9uKFdURjo6bW92ZShjb25uZWN0aW9uKSkKICAg
ICAgICAgLCBtX2luaXRpYWxpemVyTWVzc2FnZShpbml0aWFsaXplck1lc3NhZ2UpCiAgICAgewog
ICAgIH0KQEAgLTY4LDcgKzY4LDcgQEAgcHJvdGVjdGVkOgogdGVtcGxhdGU8dHlwZW5hbWUgWFBD
U2VydmljZVR5cGUsIHR5cGVuYW1lIFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlVHlwZT4K
IHZvaWQgWFBDU2VydmljZUluaXRpYWxpemVyKElQQzo6WFBDUHRyPHhwY19jb25uZWN0aW9uX3Q+
IGNvbm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0aWFsaXplck1lc3NhZ2UpCiB7Ci0gICAgWFBD
U2VydmljZUluaXRpYWxpemVyRGVsZWdhdGVUeXBlIGRlbGVnYXRlKHN0ZDo6bW92ZShjb25uZWN0
aW9uKSwgaW5pdGlhbGl6ZXJNZXNzYWdlKTsKKyAgICBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxl
Z2F0ZVR5cGUgZGVsZWdhdGUoV1RGOjptb3ZlKGNvbm5lY3Rpb24pLCBpbml0aWFsaXplck1lc3Nh
Z2UpOwogCiAgICAgLy8gV2UgZG9uJ3Qgd2FudCBYUEMgdG8gYmUgaW4gY2hhcmdlIG9mIHdoZXRo
ZXIgdGhlIHByb2Nlc3Mgc2hvdWxkIGJlIHRlcm1pbmF0ZWQgb3Igbm90LAogICAgIC8vIHNvIGVu
c3VyZSB0aGF0IHdlIGhhdmUgYW4gb3V0c3RhbmRpbmcgdHJhbnNhY3Rpb24gaGVyZS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9JbW11dGFibGVEaWN0aW9uYXJ5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9JbW11dGFibGVEaWN0aW9uYXJ5LmNwcAppbmRleCBjYWMxNDAz
Li4wODFlZjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvSW1tdXRhYmxlRGlj
dGlvbmFyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0ltbXV0YWJsZURpY3Rpb25h
cnkuY3BwCkBAIC0zOCwxMSArMzgsMTEgQEAgUmVmUHRyPEltbXV0YWJsZURpY3Rpb25hcnk+IElt
bXV0YWJsZURpY3Rpb25hcnk6OmNyZWF0ZSgpCiAKIFJlZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5
PiBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoTWFwVHlwZSBtYXApCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBJbW11dGFibGVEaWN0aW9uYXJ5KHN0ZDo6bW92ZShtYXApKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBJbW11dGFibGVEaWN0aW9uYXJ5KFdURjo6bW92ZShtYXApKSk7
CiB9CiAKIEltbXV0YWJsZURpY3Rpb25hcnk6OkltbXV0YWJsZURpY3Rpb25hcnkoTWFwVHlwZSBt
YXApCi0gICAgOiBtX21hcChzdGQ6Om1vdmUobWFwKSkKKyAgICA6IG1fbWFwKFdURjo6bW92ZSht
YXApKQogewogfQogCkBAIC02MSw3ICs2MSw3IEBAIFBhc3NSZWZQdHI8QVBJOjpBcnJheT4gSW1t
dXRhYmxlRGljdGlvbmFyeTo6a2V5cygpIGNvbnN0CiAgICAgZm9yIChjb25zdCBhdXRvJiBrZXkg
OiBtX21hcC5rZXlzKCkpCiAgICAgICAgIGtleXMudW5jaGVja2VkQXBwZW5kKEFQSTo6U3RyaW5n
OjpjcmVhdGUoa2V5KSk7CiAKLSAgICByZXR1cm4gQVBJOjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92
ZShrZXlzKSk7CisgICAgcmV0dXJuIEFQSTo6QXJyYXk6OmNyZWF0ZShXVEY6Om1vdmUoa2V5cykp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL1BsdWdpbkluZm9ybWF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL1BsdWdpbkluZm9ybWF0aW9uLmNwcAppbmRl
eCBmMTg4NDhhLi5mOWZiMmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1
Z2lucy9OZXRzY2FwZS9QbHVnaW5JbmZvcm1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvUGx1Z2luSW5mb3JtYXRpb24uY3BwCkBAIC0xMjcsNyAr
MTI3LDcgQEAgUGFzc1JlZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiBjcmVhdGVQbHVnaW5JbmZv
cm1hdGlvbkRpY3Rpb25hcnkoY29uc3QgUGx1Z2luTW8KICAgICBJbW11dGFibGVEaWN0aW9uYXJ5
OjpNYXBUeXBlIG1hcDsKICAgICBnZXRQbHVnaW5Nb2R1bGVJbmZvcm1hdGlvbihwbHVnaW4sIG1h
cCk7CiAKLSAgICByZXR1cm4gSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKHN0ZDo6bW92ZSht
YXApKTsKKyAgICByZXR1cm4gSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZSht
YXApKTsKIH0KIAogUGFzc1JlZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiBjcmVhdGVQbHVnaW5J
bmZvcm1hdGlvbkRpY3Rpb25hcnkoY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYgcGx1Z2luLCBjb25z
dCBTdHJpbmcmIGZyYW1lVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBT
dHJpbmcmIHBhZ2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgcGx1Z2luc3BhZ2VBdHRyaWJ1dGVV
UkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgcGx1Z2luVVJMU3RyaW5nLCBib29sIHJlcGxhY2VtZW50
T2JzY3VyZWQpCkBAIC0xNDcsNyArMTQ3LDcgQEAgUGFzc1JlZlB0cjxJbW11dGFibGVEaWN0aW9u
YXJ5PiBjcmVhdGVQbHVnaW5JbmZvcm1hdGlvbkRpY3Rpb25hcnkoY29uc3QgUGx1Z2luTW8KICAg
ICAgICAgbWFwLnNldChwbHVnaW5JbmZvcm1hdGlvblBsdWdpblVSTEtleSgpLCBBUEk6OlVSTDo6
Y3JlYXRlKHBsdWdpblVSTFN0cmluZykpOwogICAgIG1hcC5zZXQocGx1Z0luSW5mb3JtYXRpb25S
ZXBsYWNlbWVudE9ic2N1cmVkS2V5KCksIEFQSTo6Qm9vbGVhbjo6Y3JlYXRlKHJlcGxhY2VtZW50
T2JzY3VyZWQpKTsKIAotICAgIHJldHVybiBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoc3Rk
Ojptb3ZlKG1hcCkpOworICAgIHJldHVybiBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoV1RG
Ojptb3ZlKG1hcCkpOwogfQogCiBQYXNzUmVmUHRyPEltbXV0YWJsZURpY3Rpb25hcnk+IGNyZWF0
ZVBsdWdpbkluZm9ybWF0aW9uRGljdGlvbmFyeShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25z
dCBTdHJpbmcmIGZyYW1lVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIHBhZ2VVUkxTdHJpbmcpCkBA
IC0xNjEsNyArMTYxLDcgQEAgUGFzc1JlZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiBjcmVhdGVQ
bHVnaW5JbmZvcm1hdGlvbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJgogICAgIGlmICghcGFnZVVS
TFN0cmluZy5pc0VtcHR5KCkpCiAgICAgICAgIG1hcC5zZXQocGx1Z2luSW5mb3JtYXRpb25QYWdl
VVJMS2V5KCksIEFQSTo6VVJMOjpjcmVhdGUocGFnZVVSTFN0cmluZykpOwogCi0gICAgcmV0dXJu
IEltbXV0YWJsZURpY3Rpb25hcnk6OmNyZWF0ZShzdGQ6Om1vdmUobWFwKSk7CisgICAgcmV0dXJu
IEltbXV0YWJsZURpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUobWFwKSk7CiB9CiAKICNpZiAh
UExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJp
dHlPcmlnaW5EYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZWN1cml0eU9yaWdpbkRh
dGEuY3BwCmluZGV4IGI2YjRhOWEuLjI3MzIyYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9TZWN1cml0eU9yaWdpbkRhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9TZWN1cml0eU9yaWdpbkRhdGEuY3BwCkBAIC05NSwxMCArOTUsMTAgQEAgdm9pZCBwZXJmb3Jt
QVBJQ2FsbGJhY2tXaXRoU2VjdXJpdHlPcmlnaW5EYXRhVmVjdG9yKGNvbnN0IFZlY3RvcjxTZWN1
cml0eU9yaWdpbkQKICAgICAgICAgUmVmUHRyPEFQSTo6T2JqZWN0PiBvcmlnaW4gPSBXZWJTZWN1
cml0eU9yaWdpbjo6Y3JlYXRlKG9yaWdpbkRhdGEucHJvdG9jb2wsIG9yaWdpbkRhdGEuaG9zdCwg
b3JpZ2luRGF0YS5wb3J0KTsKICAgICAgICAgaWYgKCFvcmlnaW4pCiAgICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgc2VjdXJpdHlPcmlnaW5zLnVuY2hlY2tlZEFwcGVuZChzdGQ6Om1vdmUo
b3JpZ2luKSk7CisgICAgICAgIHNlY3VyaXR5T3JpZ2lucy51bmNoZWNrZWRBcHBlbmQoV1RGOjpt
b3ZlKG9yaWdpbikpOwogICAgIH0KIAotICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRo
UmV0dXJuVmFsdWUoQVBJOjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShzZWN1cml0eU9yaWdpbnMp
KS5nZXQoKSk7CisgICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZShB
UEk6OkFycmF5OjpjcmVhdGUoV1RGOjptb3ZlKHNlY3VyaXR5T3JpZ2lucykpLmdldCgpKTsKIH0K
IAogYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgYSwgY29uc3QgU2Vj
dXJpdHlPcmlnaW5EYXRhJiBiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nl
c3Npb25UcmFja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5j
cHAKaW5kZXggYmRjZmZiOS4uYWM3OWE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1Nlc3Npb25UcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lv
blRyYWNrZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIHZvaWQgU2Vzc2lvblRyYWNrZXI6OnNldFNl
c3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9yCiB7
CiAgICAgQVNTRVJUKHNlc3Npb25JRCAhPSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7
CiAgICAgc3RvcmFnZVNlc3Npb25Ub0lEKCkuc2V0KHNlc3Npb24uZ2V0KCksIHNlc3Npb25JRCk7
Ci0gICAgc3RhdGljU2Vzc2lvbk1hcCgpLnNldChzZXNzaW9uSUQsIHN0ZDo6bW92ZShzZXNzaW9u
KSk7CisgICAgc3RhdGljU2Vzc2lvbk1hcCgpLnNldChzZXNzaW9uSUQsIFdURjo6bW92ZShzZXNz
aW9uKSk7CiB9CiAKIHZvaWQgU2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lTZXNzaW9uKFNlc3Npb25J
RCBzZXNzaW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlckRhdGEu
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJEYXRhLmNwcAppbmRleCA3YzVkYmE2Li4w
YWU1NmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlckRhdGEuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyRGF0YS5jcHAKQEAgLTY1LDcgKzY1LDcgQEAg
UmVmUHRyPEFQSTo6T2JqZWN0PiBVc2VyRGF0YTo6dHJhbnNmb3JtKEFQSTo6T2JqZWN0KiBvYmpl
Y3QsIGNvbnN0IHN0ZDo6ZnVuY3Rpb24KICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBlbGVtZW50
IDogYXJyYXkuZWxlbWVudHMoKSkKICAgICAgICAgICAgIGVsZW1lbnRzLnVuY2hlY2tlZEFwcGVu
ZCh0cmFuc2Zvcm0oZWxlbWVudC5nZXQoKSwgdHJhbnNmb3JtZXIpKTsKIAotICAgICAgICByZXR1
cm4gQVBJOjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShlbGVtZW50cykpOworICAgICAgICByZXR1
cm4gQVBJOjpBcnJheTo6Y3JlYXRlKFdURjo6bW92ZShlbGVtZW50cykpOwogICAgIH0KIAogICAg
IGlmIChvYmplY3QtPnR5cGUoKSA9PSBBUEk6Ok9iamVjdDo6VHlwZTo6RGljdGlvbmFyeSkgewpA
QCAtNzUsNyArNzUsNyBAQCBSZWZQdHI8QVBJOjpPYmplY3Q+IFVzZXJEYXRhOjp0cmFuc2Zvcm0o
QVBJOjpPYmplY3QqIG9iamVjdCwgY29uc3Qgc3RkOjpmdW5jdGlvbgogICAgICAgICBmb3IgKGNv
bnN0IGF1dG8mIGtleVZhbHVlUGFpciA6IGRpY3Rpb25hcnkubWFwKCkpCiAgICAgICAgICAgICBt
YXAuYWRkKGtleVZhbHVlUGFpci5rZXksIHRyYW5zZm9ybShrZXlWYWx1ZVBhaXIudmFsdWUuZ2V0
KCksIHRyYW5zZm9ybWVyKSk7CiAKLSAgICAgICAgcmV0dXJuIEltbXV0YWJsZURpY3Rpb25hcnk6
OmNyZWF0ZShzdGQ6Om1vdmUobWFwKSk7CisgICAgICAgIHJldHVybiBJbW11dGFibGVEaWN0aW9u
YXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1hcCkpOwogICAgIH0KIAogICAgIGlmIChhdXRvIHRyYW5z
Zm9ybWVkT2JqZWN0ID0gdHJhbnNmb3JtZXIoKm9iamVjdCkpCkBAIC0yMTYsMTAgKzIxNiwxMCBA
QCBib29sIFVzZXJEYXRhOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJl
ZlB0cjxBUEk6Ok9iamVjdD4mIHJlc3VsdAogICAgICAgICAgICAgaWYgKCFkZWNvZGUoZGVjb2Rl
ciwgZWxlbWVudCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgICAg
ICBlbGVtZW50cy5hcHBlbmQoc3RkOjptb3ZlKGVsZW1lbnQpKTsKKyAgICAgICAgICAgIGVsZW1l
bnRzLmFwcGVuZChXVEY6Om1vdmUoZWxlbWVudCkpOwogICAgICAgICB9CiAKLSAgICAgICAgcmVz
dWx0ID0gQVBJOjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShlbGVtZW50cykpOworICAgICAgICBy
ZXN1bHQgPSBBUEk6OkFycmF5OjpjcmVhdGUoV1RGOjptb3ZlKGVsZW1lbnRzKSk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KIApAQCAtMjQ4LDExICsyNDgsMTEgQEAgYm9vbCBVc2VyRGF0YTo6ZGVj
b2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8QVBJOjpPYmplY3Q+JiBy
ZXN1bHQKICAgICAgICAgICAgIGlmICghZGVjb2RlKGRlY29kZXIsIHZhbHVlKSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgICAgIGlmICghbWFwLmFkZChzdGQ6Om1v
dmUoa2V5KSwgc3RkOjptb3ZlKHZhbHVlKSkuaXNOZXdFbnRyeSkKKyAgICAgICAgICAgIGlmICgh
bWFwLmFkZChXVEY6Om1vdmUoa2V5KSwgV1RGOjptb3ZlKHZhbHVlKSkuaXNOZXdFbnRyeSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAgICByZXN1bHQg
PSBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoc3RkOjptb3ZlKG1hcCkpOworICAgICAgICBy
ZXN1bHQgPSBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1hcCkpOwogICAg
ICAgICBicmVhazsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9V
c2VyTWVzc2FnZUNvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29k
ZXJzLmgKaW5kZXggOGY0ZjU3Ni4uMDFiNjc2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Vz
ZXJNZXNzYWdlQ29kZXJzLmgKQEAgLTI4Myw3ICsyODMsNyBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICAgICAgdmVjdG9yLmFwcGVuZChlbGVtZW50LnJlbGVhc2UoKSk7CiAgICAgICAgICAgICB9CiAK
LSAgICAgICAgICAgIGNvZGVyLm1fcm9vdCA9IEFQSTo6QXJyYXk6OmNyZWF0ZShzdGQ6Om1vdmUo
dmVjdG9yKSk7CisgICAgICAgICAgICBjb2Rlci5tX3Jvb3QgPSBBUEk6OkFycmF5OjpjcmVhdGUo
V1RGOjptb3ZlKHZlY3RvcikpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6RGljdGlvbmFyeTogewpAQCAtMzA3LDcgKzMwNyw3
IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAg
ICAgfQogCi0gICAgICAgICAgICBjb2Rlci5tX3Jvb3QgPSBJbW11dGFibGVEaWN0aW9uYXJ5Ojpj
cmVhdGUoc3RkOjptb3ZlKG1hcCkpOworICAgICAgICAgICAgY29kZXIubV9yb290ID0gSW1tdXRh
YmxlRGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShtYXApKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OlN0cmluZzogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhY2tGb3J3YXJkTGlzdEl0ZW0u
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwCmlu
ZGV4IGFmZWM0M2QuLjM2MWY2NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJCYWNrRm9yd2FyZExpc3RJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbS5jcHAKQEAgLTM3LDEyICszNywxMiBAQCBzdGF0aWMgdWludDY0
X3QgaGlnaGVzdFVzZWRJdGVtSUQgPSAwOwogCiBQYXNzUmVmUHRyPFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW0+IFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW06OmNyZWF0ZSh1aW50NjRfdCBpdGVtSUQsIEJh
Y2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSBiYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJCYWNrRm9yd2FyZExpc3RJdGVtKGl0ZW1JRCwgc3RkOjpt
b3ZlKGJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0oaXRlbUlELCBXVEY6Om1vdmUoYmFja0ZvcndhcmRMaXN0
SXRlbVN0YXRlKSkpOwogfQogCiBXZWJCYWNrRm9yd2FyZExpc3RJdGVtOjpXZWJCYWNrRm9yd2Fy
ZExpc3RJdGVtKHVpbnQ2NF90IGl0ZW1JRCwgQmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlIGJhY2tG
b3J3YXJkTGlzdEl0ZW1TdGF0ZSkKICAgICA6IG1faXRlbUlEKGl0ZW1JRCkKLSAgICAsIG1faXRl
bVN0YXRlKHN0ZDo6bW92ZShiYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUpKQorICAgICwgbV9pdGVt
U3RhdGUoV1RGOjptb3ZlKGJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSkpCiB7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYWNrRm9yd2FyZExpc3RJdGVtLmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oCmluZGV4IGVhZTUw
NDAuLjc5ZmMwZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYWNrRm9y
d2FyZExpc3RJdGVtLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0uaApAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAKICAgICB1aW50NjRfdCBpdGVt
SUQoKSBjb25zdCB7IHJldHVybiBtX2l0ZW1JRDsgfQogCi0gICAgdm9pZCBzZXRQYWdlU3RhdGUo
UGFnZVN0YXRlIHBhZ2VTdGF0ZSkgeyBtX2l0ZW1TdGF0ZS5wYWdlU3RhdGUgPSBzdGQ6Om1vdmUo
cGFnZVN0YXRlKTsgfQorICAgIHZvaWQgc2V0UGFnZVN0YXRlKFBhZ2VTdGF0ZSBwYWdlU3RhdGUp
IHsgbV9pdGVtU3RhdGUucGFnZVN0YXRlID0gV1RGOjptb3ZlKHBhZ2VTdGF0ZSk7IH0KIAogICAg
IHZvaWQgc2V0T3JpZ2luYWxVUkwoY29uc3QgU3RyaW5nJiBvcmlnaW5hbFVSTCkgeyBtX2l0ZW1T
dGF0ZS5wYWdlU3RhdGUubWFpbkZyYW1lU3RhdGUub3JpZ2luYWxVUkxTdHJpbmcgPSBvcmlnaW5h
bFVSTDsgfQogICAgIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxVUkwoKSBjb25zdCB7IHJldHVybiBt
X2l0ZW1TdGF0ZS5wYWdlU3RhdGUubWFpbkZyYW1lU3RhdGUub3JpZ2luYWxVUkxTdHJpbmc7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb25uZWN0aW9uLmNwcAppbmRleCA3MTgwZmM2Li4zODUz
Y2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29ubmVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbm5lY3Rpb24uY3BwCkBAIC01NSw3ICs1
NSw3IEBAIHZvaWQgV2ViQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNz
YWdlTmFtZSwgQVBJOjpPYmplY3QqIG1lc3NhZ2VCCiAgICAgZW5jb2Rlci0+ZW5jb2RlKG1lc3Nh
Z2VOYW1lKTsKICAgICBlbmNvZGVNZXNzYWdlQm9keSgqZW5jb2RlciwgbWVzc2FnZUJvZHkpOwog
Ci0gICAgc2VuZE1lc3NhZ2Uoc3RkOjptb3ZlKGVuY29kZXIpLCAwKTsKKyAgICBzZW5kTWVzc2Fn
ZShXVEY6Om1vdmUoZW5jb2RlciksIDApOwogfQogCiB2b2lkIFdlYkNvbm5lY3Rpb246OmRpZENs
b3NlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0TWVudUl0
ZW0uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbS5jcHAKaW5k
ZXggY2ViOWE4Ni4uZWFmMTcwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkNvbnRleHRNZW51SXRlbS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbnRl
eHRNZW51SXRlbS5jcHAKQEAgLTczLDcgKzczLDcgQEAgUGFzc1JlZlB0cjxBUEk6OkFycmF5PiBX
ZWJDb250ZXh0TWVudUl0ZW06OnN1Ym1lbnVJdGVtc0FzQVBJQXJyYXkoKSBjb25zdAogICAgIGZv
ciAoY29uc3QgYXV0byYgaXRlbSA6IG1fd2ViQ29udGV4dE1lbnVJdGVtRGF0YS5zdWJtZW51KCkp
CiAgICAgICAgIHN1Ym1lbnVJdGVtcy51bmNoZWNrZWRBcHBlbmQoV2ViQ29udGV4dE1lbnVJdGVt
OjpjcmVhdGUoaXRlbSkpOwogCi0gICAgcmV0dXJuIEFQSTo6QXJyYXk6OmNyZWF0ZShzdGQ6Om1v
dmUoc3VibWVudUl0ZW1zKSk7CisgICAgcmV0dXJuIEFQSTo6QXJyYXk6OmNyZWF0ZShXVEY6Om1v
dmUoc3VibWVudUl0ZW1zKSk7CiB9CiAKIEFQSTo6T2JqZWN0KiBXZWJDb250ZXh0TWVudUl0ZW06
OnVzZXJEYXRhKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHAKaW5kZXggYzRkNjdiMS4uZTQ0YzcxMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTcwMCw3ICs3MDAsNyBA
QCBib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXF1ZXN0Pjo6ZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYgZGVjb2RlciwgUmVzb3VyY2VSZQogICAgICAgICBIVFRQSGVhZGVyTWFwIGhlYWRlcnM7
CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGVhZGVycykpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkcyhzdGQ6Om1vdmUo
aGVhZGVycykpOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZHMoV1RGOjptb3Zl
KGhlYWRlcnMpKTsKIAogICAgICAgICBib29sIGhhc0hUVFBCb2R5OwogICAgICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGhhc0hUVFBCb2R5KSkKQEAgLTE4MjMsNyArMTgyMyw3IEBAIGJvb2wgQXJn
dW1lbnRDb2RlcjxGaWx0ZXJPcGVyYXRpb25zPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVj
b2RlciwgRmlsdGVyT3BlCiAgICAgICAgIFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IGZpbHRlcjsK
ICAgICAgICAgaWYgKCFkZWNvZGVGaWx0ZXJPcGVyYXRpb24oZGVjb2RlciwgZmlsdGVyKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgZmlsdGVycy5vcGVyYXRpb25zKCkuYXBw
ZW5kKHN0ZDo6bW92ZShmaWx0ZXIpKTsKKyAgICAgICAgZmlsdGVycy5vcGVyYXRpb25zKCkuYXBw
ZW5kKFdURjo6bW92ZShmaWx0ZXIpKTsKICAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTIx
MzgsNyArMjEzOCw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxCbG9iUGFydD46OmRlY29kZShBcmd1
bWVudERlY29kZXImIGRlY29kZXIsIEJsb2JQYXJ0JiBibG9iUGFyCiAgICAgICAgIFZlY3Rvcjxj
aGFyPiBkYXRhOwogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGEpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBibG9iUGFydCA9IEJsb2JQYXJ0KHN0ZDo6bW92ZShk
YXRhKSk7CisgICAgICAgIGJsb2JQYXJ0ID0gQmxvYlBhcnQoV1RGOjptb3ZlKGRhdGEpKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgQmxvYlBhcnQ6OkJsb2I6IHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCmluZGV4IGVmM2E1YWQuLmI5NTJk
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3Jl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaApAQCAt
ODgsNyArODgsNyBAQCBzdHJ1Y3QgV2ViUHJlZmVyZW5jZXNTdG9yZSB7CiAgICAgICAgICAgICBj
YXNlIFR5cGU6Ok5vbmU6CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNl
IFR5cGU6OlN0cmluZzoKLSAgICAgICAgICAgICAgICBuZXcgKCZtX3N0cmluZykgU3RyaW5nKHN0
ZDo6bW92ZSh2YWx1ZS5tX3N0cmluZykpOworICAgICAgICAgICAgICAgIG5ldyAoJm1fc3RyaW5n
KSBTdHJpbmcoV1RGOjptb3ZlKHZhbHVlLm1fc3RyaW5nKSk7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICBjYXNlIFR5cGU6OkJvb2w6CiAgICAgICAgICAgICAgICAgbV9ib29s
ID0gdmFsdWUubV9ib29sOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJl
bmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZW5kZXJMYXllci5jcHAK
aW5kZXggZDY2YmQwNi4uYzk0ZjJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlJlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVuZGVy
TGF5ZXIuY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIFBhc3NSZWZQdHI8QVBJOjpBcnJheT4gV2ViUmVu
ZGVyTGF5ZXI6OmNyZWF0ZUFycmF5RnJvbUxheWVyTGlzdChWZWN0b3I8UmVuZGVyTGF5CiAgICAg
Zm9yIChjb25zdCBhdXRvJiBsYXllciA6ICpsaXN0KQogICAgICAgICBsYXllcnMudW5jaGVja2Vk
QXBwZW5kKGFkb3B0UmVmKG5ldyBXZWJSZW5kZXJMYXllcihsYXllcikpKTsKIAotICAgIHJldHVy
biBBUEk6OkFycmF5OjpjcmVhdGUoc3RkOjptb3ZlKGxheWVycykpOworICAgIHJldHVybiBBUEk6
OkFycmF5OjpjcmVhdGUoV1RGOjptb3ZlKGxheWVycykpOwogfQogCiBXZWJSZW5kZXJMYXllcjo6
V2ViUmVuZGVyTGF5ZXIoUmVuZGVyTGF5ZXIqIGxheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViUmVuZGVyT2JqZWN0LmNwcAppbmRleCBkNDY0NmNkLi4xMTA0ZDQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUmVuZGVyT2JqZWN0LmNwcApAQCAtNzgsNyArNzgsNyBAQCBXZWJSZW5k
ZXJPYmplY3Q6OldlYlJlbmRlck9iamVjdChSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBib29sIHNo
b3VsZEluY2x1ZGVEZXNjZQogICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwLCBzaXpl
ID0gZWxlbWVudC0+Y2xhc3NOYW1lcygpLnNpemUoKTsgaSA8IHNpemU7ICsraSkKICAgICAgICAg
ICAgICAgICAgICAgY2xhc3NOYW1lcy5hcHBlbmQoQVBJOjpTdHJpbmc6OmNyZWF0ZShlbGVtZW50
LT5jbGFzc05hbWVzKClbaV0pKTsKIAotICAgICAgICAgICAgICAgIG1fZWxlbWVudENsYXNzTmFt
ZXMgPSBBUEk6OkFycmF5OjpjcmVhdGUoc3RkOjptb3ZlKGNsYXNzTmFtZXMpKTsKKyAgICAgICAg
ICAgICAgICBtX2VsZW1lbnRDbGFzc05hbWVzID0gQVBJOjpBcnJheTo6Y3JlYXRlKFdURjo6bW92
ZShjbGFzc05hbWVzKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0xMDEs
NyArMTAxLDcgQEAgV2ViUmVuZGVyT2JqZWN0OjpXZWJSZW5kZXJPYmplY3QoUmVuZGVyT2JqZWN0
KiByZW5kZXJlciwgYm9vbCBzaG91bGRJbmNsdWRlRGVzY2UKIAogICAgIGZvciAoUmVuZGVyT2Jq
ZWN0KiBjb3JlQ2hpbGQgPSByZW5kZXJlci0+Zmlyc3RDaGlsZFNsb3coKTsgY29yZUNoaWxkOyBj
b3JlQ2hpbGQgPSBjb3JlQ2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgUmVmUHRyPFdl
YlJlbmRlck9iamVjdD4gY2hpbGQgPSBhZG9wdFJlZihuZXcgV2ViUmVuZGVyT2JqZWN0KGNvcmVD
aGlsZCwgc2hvdWxkSW5jbHVkZURlc2NlbmRhbnRzKSk7Ci0gICAgICAgIGNoaWxkcmVuLmFwcGVu
ZChzdGQ6Om1vdmUoY2hpbGQpKTsKKyAgICAgICAgY2hpbGRyZW4uYXBwZW5kKFdURjo6bW92ZShj
aGlsZCkpOwogICAgIH0KIAogICAgIGlmIChyZW5kZXJlci0+aXNXaWRnZXQoKSkgewpAQCAtMTEx
LDEzICsxMTEsMTMgQEAgV2ViUmVuZGVyT2JqZWN0OjpXZWJSZW5kZXJPYmplY3QoUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciwgYm9vbCBzaG91bGRJbmNsdWRlRGVzY2UKICAgICAgICAgICAgICAgICBp
ZiAoUmVuZGVyVmlldyogY29yZUNvbnRlbnRSZW5kZXJlciA9IGZyYW1lVmlldy0+ZnJhbWUoKS5j
b250ZW50UmVuZGVyZXIoKSkgewogICAgICAgICAgICAgICAgICAgICBSZWZQdHI8V2ViUmVuZGVy
T2JqZWN0PiBjb250ZW50UmVuZGVyZXIgPSBhZG9wdFJlZihuZXcgV2ViUmVuZGVyT2JqZWN0KGNv
cmVDb250ZW50UmVuZGVyZXIsIHNob3VsZEluY2x1ZGVEZXNjZW5kYW50cykpOwogCi0gICAgICAg
ICAgICAgICAgICAgIGNoaWxkcmVuLmFwcGVuZChzdGQ6Om1vdmUoY29udGVudFJlbmRlcmVyKSk7
CisgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLmFwcGVuZChXVEY6Om1vdmUoY29udGVudFJl
bmRlcmVyKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CiAg
ICAgfQogCi0gICAgbV9jaGlsZHJlbiA9IEFQSTo6QXJyYXk6OmNyZWF0ZShzdGQ6Om1vdmUoY2hp
bGRyZW4pKTsKKyAgICBtX2NoaWxkcmVuID0gQVBJOjpBcnJheTo6Y3JlYXRlKFdURjo6bW92ZShj
aGlsZHJlbikpOwogfQogCiBXZWJSZW5kZXJPYmplY3Q6OldlYlJlbmRlck9iamVjdChjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZWxlbWVudFRhZ05hbWUsIGNvbnN0IFN0cmluZyYg
ZWxlbWVudElELCBQYXNzUmVmUHRyPEFQSTo6QXJyYXk+IGVsZW1lbnRDbGFzc05hbWVzLCBXZWJD
b3JlOjpJbnRQb2ludCBhYnNvbHV0ZVBvc2l0aW9uLCBXZWJDb3JlOjpJbnRSZWN0IGZyYW1lUmVj
dCwgUGFzc1JlZlB0cjxBUEk6OkFycmF5PiBjaGlsZHJlbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9jZi9LZXllZERlY29kZXIuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L2NmL0tleWVkRGVjb2Rlci5jcHAKaW5kZXggNjQ5OThjOS4uNDc2OTIyNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL2NmL0tleWVkRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL2NmL0tleWVkRGVjb2Rlci5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgS2V5ZWRE
ZWNvZGVyOjpLZXllZERlY29kZXIoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUpCiAg
ICAgYXV0byBjZkRhdGEgPSBhZG9wdENGKENGRGF0YUNyZWF0ZVdpdGhCeXRlc05vQ29weShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBkYXRhLCBzaXplLCBrQ0ZBbGxvY2F0b3JOdWxsKSk7CiAKICAgICBp
ZiAoYXV0byByb290RGljdGlvbmFyeSA9IGFkb3B0Q0YoZHluYW1pY19jZl9jYXN0PENGRGljdGlv
bmFyeVJlZj4oQ0ZQcm9wZXJ0eUxpc3RDcmVhdGVXaXRoRGF0YShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBjZkRhdGEuZ2V0KCksIGtDRlByb3BlcnR5TGlzdEltbXV0YWJsZSwgbnVsbHB0ciwgbnVsbHB0
cikpKSkKLSAgICAgICAgbV9yb290RGljdGlvbmFyeSA9IHN0ZDo6bW92ZShyb290RGljdGlvbmFy
eSk7CisgICAgICAgIG1fcm9vdERpY3Rpb25hcnkgPSBXVEY6Om1vdmUocm9vdERpY3Rpb25hcnkp
OwogICAgIGVsc2UKICAgICAgICAgbV9yb290RGljdGlvbmFyeSA9IGFkb3B0Q0YoQ0ZEaWN0aW9u
YXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIG51bGxwdHIsIDAsICZrQ0ZU
eXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFj
a3MpKTsKICAgICBtX2RpY3Rpb25hcnlTdGFjay5hcHBlbmQobV9yb290RGljdGlvbmFyeS5nZXQo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbGludXgvU2VjY29tcEZpbHRl
cnMvT3BlblN5c2NhbGwuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2xpbnV4L1NlY2NvbXBG
aWx0ZXJzL09wZW5TeXNjYWxsLmNwcAppbmRleCBmZGU0OGUzLi5kOTUwNTVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbGludXgvU2VjY29tcEZpbHRlcnMvT3BlblN5c2NhbGwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9saW51eC9TZWNjb21wRmlsdGVycy9PcGVu
U3lzY2FsbC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFN5c2NhbGw+IE9w
ZW5TeXNjYWxsOjpjcmVhdGVGcm9tT3BlbmF0Q29udGV4dChtY29udGV4dF90KiBjb250ZXgKIAog
ICAgIGlmIChwYXRoWzBdID09ICcvJykgewogICAgICAgICBvcGVuLT5zZXRQYXRoKHBhdGgpOwot
ICAgICAgICByZXR1cm4gc3RkOjptb3ZlKG9wZW4pOworICAgICAgICByZXR1cm4gV1RGOjptb3Zl
KG9wZW4pOwogICAgIH0KIAogICAgIHN0cnVjdCBzdGF0IHBhdGhTdGF0OwpAQCAtOTAsNyArOTAs
NyBAQCBzdGQ6OnVuaXF1ZV9wdHI8U3lzY2FsbD4gT3BlblN5c2NhbGw6OmNyZWF0ZUZyb21PcGVu
YXRDb250ZXh0KG1jb250ZXh0X3QqIGNvbnRleAogICAgIHNwcmludGYoJmZkUGF0aFtzaXplXSwg
Ii8lcyIsIHBhdGgpOwogICAgIG9wZW4tPnNldFBhdGgoZmRQYXRoKTsKIAotICAgIHJldHVybiBz
dGQ6Om1vdmUob3Blbik7CisgICAgcmV0dXJuIFdURjo6bW92ZShvcGVuKTsKIH0KIAogc3RkOjp1
bmlxdWVfcHRyPFN5c2NhbGw+IE9wZW5TeXNjYWxsOjpjcmVhdGVGcm9tQ3JlYXRDb250ZXh0KG1j
b250ZXh0X3QqIGNvbnRleHQpCkBAIC0xMDIsNyArMTAyLDcgQEAgc3RkOjp1bmlxdWVfcHRyPFN5
c2NhbGw+IE9wZW5TeXNjYWxsOjpjcmVhdGVGcm9tQ3JlYXRDb250ZXh0KG1jb250ZXh0X3QqIGNv
bnRleHQKICAgICBvcGVuLT5zZXRNb2RlKGNvbnRleHQtPmdyZWdzW1JFR19BUkcxXSk7CiAgICAg
b3Blbi0+c2V0Q29udGV4dChjb250ZXh0KTsKIAotICAgIHJldHVybiBzdGQ6Om1vdmUob3Blbik7
CisgICAgcmV0dXJuIFdURjo6bW92ZShvcGVuKTsKIH0KIAogT3BlblN5c2NhbGw6Ok9wZW5TeXNj
YWxsKG1jb250ZXh0X3QqIGNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQppbmRleCBhMzE1MmZkLi4wZjBmNzY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0
b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5n
U3RvcmUubW0KQEAgLTM4MCw3ICszODAsNyBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
OjphcHBseUJhY2tpbmdTdG9yZVRvTGF5ZXIoQ0FMYXllciAqbGF5ZXIpCiAKIFJldGFpblB0cjxD
R0NvbnRleHRSZWY+IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjp0YWtlRnJvbnRDb250ZXh0UGVu
ZGluZ0ZsdXNoKCkKIHsKLSAgICByZXR1cm4gc3RkOjptb3ZlKG1fZnJvbnRDb250ZXh0UGVuZGlu
Z0ZsdXNoKTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKG1fZnJvbnRDb250ZXh0UGVuZGluZ0ZsdXNo
KTsKIH0KIAogI2lmIFVTRShJT1NVUkZBQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbQppbmRleCBlOTZlYWYwLi4x
ZGYyMzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KQEAgLTQxMCw3ICs0MTAsNyBAQCBib29sIFJlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6OmRlY29kZShJUEM6OkFyZ3VtZW50
RGVjb2RlciYgZAogICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSgqYmFja2luZ1N0b3Jl
KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAKLSAgICAgICAg
ICAgIHJlc3VsdC5iYWNraW5nU3RvcmUgPSBzdGQ6Om1vdmUoYmFja2luZ1N0b3JlKTsKKyAgICAg
ICAgICAgIHJlc3VsdC5iYWNraW5nU3RvcmUgPSBXVEY6Om1vdmUoYmFja2luZ1N0b3JlKTsKICAg
ICAgICAgfSBlbHNlCiAgICAgICAgICAgICByZXN1bHQuYmFja2luZ1N0b3JlID0gbnVsbHB0cjsK
ICAgICB9CkBAIC00MTksNyArNDE5LDcgQEAgYm9vbCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bjo6TGF5ZXJQcm9wZXJ0aWVzOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGQKICAgICAg
ICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlck9wZXJhdGlvbnM+IGZpbHRlcnMgPSBzdGQ6Om1ha2Vf
dW5pcXVlPEZpbHRlck9wZXJhdGlvbnM+KCk7CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
KmZpbHRlcnMpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICByZXN1bHQuZmls
dGVycyA9IHN0ZDo6bW92ZShmaWx0ZXJzKTsKKyAgICAgICAgcmVzdWx0LmZpbHRlcnMgPSBXVEY6
Om1vdmUoZmlsdGVycyk7CiAgICAgfQogCiAgICAgaWYgKHJlc3VsdC5jaGFuZ2VkUHJvcGVydGll
cyAmIEVkZ2VBbnRpYWxpYXNpbmdNYXNrQ2hhbmdlZCkgewpAQCAtNTAwLDcgKzUwMCw3IEBAIGJv
b2wgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2Rl
ciYgZGVjb2RlciwgUmVtb3RlTGF5CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoKmxheWVy
UHJvcGVydGllcykpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgcmVzdWx0
LmNoYW5nZWRMYXllclByb3BlcnRpZXMoKS5zZXQobGF5ZXJJRCwgc3RkOjptb3ZlKGxheWVyUHJv
cGVydGllcykpOworICAgICAgICByZXN1bHQuY2hhbmdlZExheWVyUHJvcGVydGllcygpLnNldChs
YXllcklELCBXVEY6Om1vdmUobGF5ZXJQcm9wZXJ0aWVzKSk7CiAgICAgfQogCiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShyZXN1bHQubV9kZXN0cm95ZWRMYXllcklEcykpCkBAIC01NjYsMTcgKzU2
NiwxNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpsYXllclByb3BlcnRpZXND
aGFuZ2VkKFBsYXRmb3JtQ0FMYXllclJlbW90ZSYgcgogCiB2b2lkIFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOjpzZXRDcmVhdGVkTGF5ZXJzKFZlY3RvcjxMYXllckNyZWF0aW9uUHJvcGVydGll
cz4gY3JlYXRlZExheWVycykKIHsKLSAgICBtX2NyZWF0ZWRMYXllcnMgPSBzdGQ6Om1vdmUoY3Jl
YXRlZExheWVycyk7CisgICAgbV9jcmVhdGVkTGF5ZXJzID0gV1RGOjptb3ZlKGNyZWF0ZWRMYXll
cnMpOwogfQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpzZXREZXN0cm95ZWRM
YXllcklEcyhWZWN0b3I8R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPiBkZXN0cm95ZWRM
YXllcklEcykKIHsKLSAgICBtX2Rlc3Ryb3llZExheWVySURzID0gc3RkOjptb3ZlKGRlc3Ryb3ll
ZExheWVySURzKTsKKyAgICBtX2Rlc3Ryb3llZExheWVySURzID0gV1RGOjptb3ZlKGRlc3Ryb3ll
ZExheWVySURzKTsKIH0KIAogdm9pZCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6c2V0TGF5
ZXJJRHNXaXRoTmV3bHlVbnJlYWNoYWJsZUJhY2tpbmdTdG9yZShWZWN0b3I8R3JhcGhpY3NMYXll
cjo6UGxhdGZvcm1MYXllcklEPiBsYXllcklEc1dpdGhOZXdseVVucmVhY2hhYmxlQmFja2luZ1N0
b3JlKQogewotICAgIG1fbGF5ZXJJRHNXaXRoTmV3bHlVbnJlYWNoYWJsZUJhY2tpbmdTdG9yZSA9
IHN0ZDo6bW92ZShsYXllcklEc1dpdGhOZXdseVVucmVhY2hhYmxlQmFja2luZ1N0b3JlKTsKKyAg
ICBtX2xheWVySURzV2l0aE5ld2x5VW5yZWFjaGFibGVCYWNraW5nU3RvcmUgPSBXVEY6Om1vdmUo
bGF5ZXJJRHNXaXRoTmV3bHlVbnJlYWNoYWJsZUJhY2tpbmdTdG9yZSk7CiB9CiAKICNpZiAhZGVm
aW5lZChOREVCVUcpIHx8ICFMT0dfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQVBJU2Vzc2lvblN0YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQVBJU2Vzc2lvblN0YXRlLmNwcAppbmRleCBiYjgxYWViLi40MzVhNmZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVNlc3Npb25TdGF0ZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElTZXNzaW9uU3RhdGUuY3BwCkBA
IC0zMCwxMSArMzAsMTEgQEAgbmFtZXNwYWNlIEFQSSB7CiAKIFBhc3NSZWZQdHI8U2Vzc2lvblN0
YXRlPiBTZXNzaW9uU3RhdGU6OmNyZWF0ZShXZWJLaXQ6OlNlc3Npb25TdGF0ZSBzZXNzaW9uU3Rh
dGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXNzaW9uU3RhdGUoc3RkOjptb3ZlKHNl
c3Npb25TdGF0ZSkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlc3Npb25TdGF0ZShXVEY6
Om1vdmUoc2Vzc2lvblN0YXRlKSkpOwogfQogCiBTZXNzaW9uU3RhdGU6OlNlc3Npb25TdGF0ZShX
ZWJLaXQ6OlNlc3Npb25TdGF0ZSBzZXNzaW9uU3RhdGUpCi0gICAgOiBtX3Nlc3Npb25TdGF0ZShz
dGQ6Om1vdmUoc2Vzc2lvblN0YXRlKSkKKyAgICA6IG1fc2Vzc2lvblN0YXRlKFdURjo6bW92ZShz
ZXNzaW9uU3RhdGUpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0FQSVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJ
Q2xpZW50LmgKaW5kZXggYmIxZTAwYy4uYzI1ODgwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQVBJVUlDbGllbnQuaApAQCAtMTQxLDcgKzE0MSw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgcGlubmVkU3RhdGVEaWRDaGFuZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHkmKSB7
IH0KIAogI2lmIFBMQVRGT1JNKElPUykKLSAgICB2aXJ0dWFsIFJldGFpblB0cjxOU0FycmF5PiBh
Y3Rpb25zRm9yRWxlbWVudChfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqLCBSZXRhaW5QdHI8TlNB
cnJheT4gZGVmYXVsdEFjdGlvbnMpIHsgcmV0dXJuIHN0ZDo6bW92ZShkZWZhdWx0QWN0aW9ucyk7
IH0KKyAgICB2aXJ0dWFsIFJldGFpblB0cjxOU0FycmF5PiBhY3Rpb25zRm9yRWxlbWVudChfV0tB
Y3RpdmF0ZWRFbGVtZW50SW5mbyAqLCBSZXRhaW5QdHI8TlNBcnJheT4gZGVmYXVsdEFjdGlvbnMp
IHsgcmV0dXJuIFdURjo6bW92ZShkZWZhdWx0QWN0aW9ucyk7IH0KICAgICB2aXJ0dWFsIHZvaWQg
ZGlkTm90SGFuZGxlVGFwQXNDbGljayhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIHsgfQogI2Vu
ZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCA3
MWI0ZWQzLi45NDM0NzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcApAQCAtOTY0LDkgKzk2NCw5IEBAIHZvaWQgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudChX
S1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlTG9hZGVyQ2xpZW50QmFzZSoKICAgICAgICAg
ICAgICAgICBWZWN0b3I8UmVmUHRyPEFQSTo6T2JqZWN0Pj4gcmVtb3ZlZEl0ZW1zVmVjdG9yOwog
ICAgICAgICAgICAgICAgIHJlbW92ZWRJdGVtc1ZlY3Rvci5yZXNlcnZlSW5pdGlhbENhcGFjaXR5
KHJlbW92ZWRJdGVtcy5zaXplKCkpOwogICAgICAgICAgICAgICAgIGZvciAoYXV0byYgcmVtb3Zl
ZEl0ZW0gOiByZW1vdmVkSXRlbXMpCi0gICAgICAgICAgICAgICAgICAgIHJlbW92ZWRJdGVtc1Zl
Y3Rvci5hcHBlbmQoc3RkOjptb3ZlKHJlbW92ZWRJdGVtKSk7CisgICAgICAgICAgICAgICAgICAg
IHJlbW92ZWRJdGVtc1ZlY3Rvci5hcHBlbmQoV1RGOjptb3ZlKHJlbW92ZWRJdGVtKSk7CiAKLSAg
ICAgICAgICAgICAgICByZW1vdmVkSXRlbXNBcnJheSA9IEFQSTo6QXJyYXk6OmNyZWF0ZShzdGQ6
Om1vdmUocmVtb3ZlZEl0ZW1zVmVjdG9yKSk7CisgICAgICAgICAgICAgICAgcmVtb3ZlZEl0ZW1z
QXJyYXkgPSBBUEk6OkFycmF5OjpjcmVhdGUoV1RGOjptb3ZlKHJlbW92ZWRJdGVtc1ZlY3Rvcikp
OwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBtX2NsaWVudC5kaWRDaGFuZ2VCYWNrRm9y
d2FyZExpc3QodG9BUEkocGFnZSksIHRvQVBJKGFkZGVkSXRlbSksIHRvQVBJKHJlbW92ZWRJdGVt
c0FycmF5LmdldCgpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKQEAgLTEwNzIsNyArMTA3
Miw3IEBAIHZvaWQgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwg
Y29uc3QgV0tQYWdlTG9hZGVyQ2xpZW50QmFzZSoKICAgICBpZiAobWlsZXN0b25lcykKICAgICAg
ICAgd2ViUGFnZVByb3h5LT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TGlzdGVu
Rm9yTGF5b3V0TWlsZXN0b25lcyhtaWxlc3RvbmVzKSwgd2ViUGFnZVByb3h5LT5wYWdlSUQoKSk7
CiAKLSAgICB3ZWJQYWdlUHJveHktPnNldExvYWRlckNsaWVudChzdGQ6Om1vdmUobG9hZGVyQ2xp
ZW50KSk7CisgICAgd2ViUGFnZVByb3h5LT5zZXRMb2FkZXJDbGllbnQoV1RGOjptb3ZlKGxvYWRl
ckNsaWVudCkpOwogfQogCiB2b2lkIFdLUGFnZVNldFBhZ2VQb2xpY3lDbGllbnQoV0tQYWdlUmVm
IHBhZ2VSZWYsIGNvbnN0IFdLUGFnZVBvbGljeUNsaWVudEJhc2UqIHdrQ2xpZW50KQpAQCAtMTE3
OCw3ICsxMTc4LDcgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VS
ZWYsIGNvbnN0IFdLUGFnZVVJQ2xpZW50QmFzZSogd2tDbGllbnQKICAgICAgICAgICAgIG1hcC5z
ZXQoInJlc2l6YWJsZSIsIEFQSTo6Qm9vbGVhbjo6Y3JlYXRlKHdpbmRvd0ZlYXR1cmVzLnJlc2l6
YWJsZSkpOwogICAgICAgICAgICAgbWFwLnNldCgiZnVsbHNjcmVlbiIsIEFQSTo6Qm9vbGVhbjo6
Y3JlYXRlKHdpbmRvd0ZlYXR1cmVzLmZ1bGxzY3JlZW4pKTsKICAgICAgICAgICAgIG1hcC5zZXQo
ImRpYWxvZyIsIEFQSTo6Qm9vbGVhbjo6Y3JlYXRlKHdpbmRvd0ZlYXR1cmVzLmRpYWxvZykpOwot
ICAgICAgICAgICAgUmVmUHRyPEltbXV0YWJsZURpY3Rpb25hcnk+IGZlYXR1cmVzTWFwID0gSW1t
dXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKHN0ZDo6bW92ZShtYXApKTsKKyAgICAgICAgICAgIFJl
ZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiBmZWF0dXJlc01hcCA9IEltbXV0YWJsZURpY3Rpb25h
cnk6OmNyZWF0ZShXVEY6Om1vdmUobWFwKSk7CiAKICAgICAgICAgICAgIGlmICghbV9jbGllbnQu
YmFzZS52ZXJzaW9uKQogICAgICAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZih0b0ltcGwobV9j
bGllbnQuY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwKHRvQVBJKHBhZ2UpLCB0
b0FQSShmZWF0dXJlc01hcC5nZXQoKSksIHRvQVBJKG5hdmlnYXRpb25BY3Rpb25EYXRhLm1vZGlm
aWVycyksIHRvQVBJKG5hdmlnYXRpb25BY3Rpb25EYXRhLm1vdXNlQnV0dG9uKSwgbV9jbGllbnQu
YmFzZS5jbGllbnRJbmZvKSkpOwpAQCAtMTc2NSw3ICsxNzY1LDcgQEAgV0tBcnJheVJlZiBXS1Bh
Z2VDb3B5UmVsYXRlZFBhZ2VzKFdLUGFnZVJlZiBwYWdlUmVmKQogICAgICAgICAgICAgcmVsYXRl
ZFBhZ2VzLmFwcGVuZChwYWdlKTsKICAgICB9CiAKLSAgICByZXR1cm4gdG9BUEkoQVBJOjpBcnJh
eTo6Y3JlYXRlKHN0ZDo6bW92ZShyZWxhdGVkUGFnZXMpKS5sZWFrUmVmKCkpOworICAgIHJldHVy
biB0b0FQSShBUEk6OkFycmF5OjpjcmVhdGUoV1RGOjptb3ZlKHJlbGF0ZWRQYWdlcykpLmxlYWtS
ZWYoKSk7CiB9CiAKIHZvaWQgV0tQYWdlU2V0TWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyhXS1Bh
Z2VSZWYgcGFnZVJlZiwgYm9vbCBtYXlTdGFydE1lZGlhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblN0YXRlUmVmLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25TdGF0ZVJlZi5jcHAKaW5kZXggNmIyOWNmNi4u
OTQ2YjAyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLU2Vz
c2lvblN0YXRlUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tT
ZXNzaW9uU3RhdGVSZWYuY3BwCkBAIC00Miw1ICs0Miw1IEBAIFdLU2Vzc2lvblN0YXRlUmVmIFdL
U2Vzc2lvblN0YXRlQ3JlYXRlRnJvbURhdGEoV0tEYXRhUmVmIGRhdGEpCiAgICAgaWYgKCFXZWJL
aXQ6OmRlY29kZUxlZ2FjeVNlc3Npb25TdGF0ZSgqV2ViS2l0Ojp0b0ltcGwoZGF0YSksIHNlc3Np
b25TdGF0ZSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIFdlYktpdDo6
dG9BUEkoQVBJOjpTZXNzaW9uU3RhdGU6OmNyZWF0ZShzdGQ6Om1vdmUoc2Vzc2lvblN0YXRlKSku
bGVha1JlZigpKTsKKyAgICByZXR1cm4gV2ViS2l0Ojp0b0FQSShBUEk6OlNlc3Npb25TdGF0ZTo6
Y3JlYXRlKFdURjo6bW92ZShzZXNzaW9uU3RhdGUpKS5sZWFrUmVmKCkpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL21hYy9XS0NvbnRleHRQcml2YXRlTWFj
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL21hYy9XS0NvbnRleHRQcml2YXRl
TWFjLm1tCmluZGV4IDdmMDAzM2MuLjE4Njc5N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJpdmF0ZU1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMubW0KQEAgLTc3
LDcgKzc3LDcgQEAgdm9pZCBXS0NvbnRleHRHZXRJbmZvRm9ySW5zdGFsbGVkUGx1Z0lucyhXS0Nv
bnRleHRSZWYgY29udGV4dFJlZiwgV0tDb250ZXh0R2V0SW4KICAgICBmb3IgKGNvbnN0IGF1dG8m
IHBsdWdpbjogcGx1Z2lucykKICAgICAgICAgcGx1Z2luSW5mb0RpY3Rpb25hcmllcy51bmNoZWNr
ZWRBcHBlbmQoY3JlYXRlUGx1Z2luSW5mb3JtYXRpb25EaWN0aW9uYXJ5KHBsdWdpbikpOwogCi0g
ICAgUmVmUHRyPEFQSTo6QXJyYXk+IGFycmF5ID0gQVBJOjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92
ZShwbHVnaW5JbmZvRGljdGlvbmFyaWVzKSk7CisgICAgUmVmUHRyPEFQSTo6QXJyYXk+IGFycmF5
ID0gQVBJOjpBcnJheTo6Y3JlYXRlKFdURjo6bW92ZShwbHVnaW5JbmZvRGljdGlvbmFyaWVzKSk7
CiAKICAgICB0b0ltcGwoY29udGV4dFJlZiktPnJlZigpOwogICAgIGRpc3BhdGNoX2FzeW5jKGRp
c3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF4oKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3JvdXAubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3JvdXAubW0KaW5k
ZXggMGMwNjk1ZC4uZjVmZDBjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdyb3VwLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91cC5tbQpAQCAtMTI2LDcg
KzEyNiw3IEBAIHN0YXRpYyBXS1JldGFpblB0cjxXS0FycmF5UmVmPiBjcmVhdGVXS0FycmF5KE5T
QXJyYXkgKmFycmF5KQogICAgICAgICAgICAgc3RyaW5ncy51bmNoZWNrZWRBcHBlbmQoYWRvcHRS
ZWYodG9JbXBsKFdLU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKChDRlN0cmluZ1JlZillbnRyeSkp
KSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHRvQVBJKEFQSTo6QXJyYXk6OmNyZWF0ZShzdGQ6Om1v
dmUoc3RyaW5ncykpLmxlYWtSZWYoKSk7CisgICAgcmV0dXJuIHRvQVBJKEFQSTo6QXJyYXk6OmNy
ZWF0ZShXVEY6Om1vdmUoc3RyaW5ncykpLmxlYWtSZWYoKSk7CiB9CiAKIC0odm9pZClhZGRVc2Vy
U3R5bGVTaGVldDooTlNTdHJpbmcgKilzb3VyY2UgYmFzZVVSTDooTlNVUkwgKiliYXNlVVJMIHdo
aXRlbGlzdGVkVVJMUGF0dGVybnM6KE5TQXJyYXkgKil3aGl0ZWxpc3QgYmxhY2tsaXN0ZWRVUkxQ
YXR0ZXJuczooTlNBcnJheSAqKWJsYWNrbGlzdCBtYWluRnJhbWVPbmx5OihCT09MKW1haW5GcmFt
ZU9ubHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cm9jZXNzR3JvdXAubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJv
Y2Vzc0dyb3VwLm1tCmluZGV4IGZlZTcyODkuLmFiNTEzZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5tbQpAQCAtMTk0LDcg
KzE5NCw3IEBAIHN0YXRpYyB2b2lkIHNldFVwSGlzdG9yeUNsaWVudChXS1Byb2Nlc3NHcm91cCAq
cHJvY2Vzc0dyb3VwLCBXS0NvbnRleHRSZWYgY29udGV4CiAKICAgICBXZWJDb250ZXh0OjphcHBs
eVBsYXRmb3JtU3BlY2lmaWNDb25maWd1cmF0aW9uRGVmYXVsdHMod2ViQ29udGV4dENvbmZpZ3Vy
YXRpb24pOwogCi0gICAgX2NvbnRleHQgPSBXZWJDb250ZXh0OjpjcmVhdGUoc3RkOjptb3ZlKHdl
YkNvbnRleHRDb25maWd1cmF0aW9uKSk7CisgICAgX2NvbnRleHQgPSBXZWJDb250ZXh0OjpjcmVh
dGUoV1RGOjptb3ZlKHdlYkNvbnRleHRDb25maWd1cmF0aW9uKSk7CiAKICAgICBzZXRVcENvbm5l
Y3Rpb25DbGllbnQoc2VsZiwgdG9BUEkoX2NvbnRleHQuZ2V0KCkpKTsKICAgICBzZXRVcEluZWN0
ZWRCdW5kbGVDbGllbnQoc2VsZiwgdG9BUEkoX2NvbnRleHQuZ2V0KCkpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQppbmRleCBj
ZTdhYmMyLi5jYjJhZjk5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpAQCAtMTY2LDcgKzE2Niw3IEBAIHN0YXRpYyBOU1VS
TCAqd2Vic2l0ZURhdGFEaXJlY3RvcnlVUkwoTlNTdHJpbmcgKmRpcmVjdG9yeU5hbWUpCiAgICAg
d2ViQ29udGV4dENvbmZpZ3VyYXRpb24ud2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkgPSB3ZWJzaXRl
RGF0YURpcmVjdG9yeVVSTChAIldlYlNRTCIpLmFic29sdXRlVVJMLnBhdGguZmlsZVN5c3RlbVJl
cHJlc2VudGF0aW9uOwogICAgIHdlYkNvbnRleHRDb25maWd1cmF0aW9uLmluZGV4ZWREQkRhdGFi
YXNlRGlyZWN0b3J5ID0gd2Vic2l0ZURhdGFEaXJlY3RvcnlVUkwoQCJJbmRleGVkREIiKS5hYnNv
bHV0ZVVSTC5wYXRoLmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbjsKIAotICAgIEFQSTo6T2JqZWN0
Ojpjb25zdHJ1Y3RJbldyYXBwZXI8V2ViS2l0OjpXZWJDb250ZXh0PihzZWxmLCBzdGQ6Om1vdmUo
d2ViQ29udGV4dENvbmZpZ3VyYXRpb24pKTsKKyAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5X
cmFwcGVyPFdlYktpdDo6V2ViQ29udGV4dD4oc2VsZiwgV1RGOjptb3ZlKHdlYkNvbnRleHRDb25m
aWd1cmF0aW9uKSk7CiAgICAgX2NvbnRleHQtPnNldEhpc3RvcnlDbGllbnQoc3RkOjptYWtlX3Vu
aXF1ZTxXZWJLaXQ6Okhpc3RvcnlDbGllbnQ+KCkpOwogICAgIF9jb250ZXh0LT5zZXRVc2VzTmV0
d29ya1Byb2Nlc3ModHJ1ZSk7CiAgICAgX2NvbnRleHQtPnNldFByb2Nlc3NNb2RlbChXZWJLaXQ6
OlByb2Nlc3NNb2RlbE11bHRpcGxlU2Vjb25kYXJ5UHJvY2Vzc2VzKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggZTYxYTUxNy4uZWMz
ZjFmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW0KQEAgLTI3Nyw3ICsyNzcsNyBAQCBzdGF0aWMgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlv
bigpCiAgICAgW3NlbGYgYWRkU3Vidmlldzpfc2Nyb2xsVmlldy5nZXQoKV07CiAgICAgW19zY3Jv
bGxWaWV3IHNldEJhY2tncm91bmRDb2xvcjpbVUlDb2xvciB3aGl0ZUNvbG9yXV07CiAKLSAgICBf
Y29udGVudFZpZXcgPSBhZG9wdE5TKFtbV0tDb250ZW50VmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpib3VuZHMgY29udGV4dDpjb250ZXh0IGNvbmZpZ3VyYXRpb246c3RkOjptb3ZlKHdlYlBhZ2VD
b25maWd1cmF0aW9uKSB3ZWJWaWV3OnNlbGZdKTsKKyAgICBfY29udGVudFZpZXcgPSBhZG9wdE5T
KFtbV0tDb250ZW50VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpib3VuZHMgY29udGV4dDpjb250
ZXh0IGNvbmZpZ3VyYXRpb246V1RGOjptb3ZlKHdlYlBhZ2VDb25maWd1cmF0aW9uKSB3ZWJWaWV3
OnNlbGZdKTsKIAogICAgIF9wYWdlID0gW19jb250ZW50VmlldyBwYWdlXTsKICAgICBfcGFnZS0+
c2V0QXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KFtAIk1vYmlsZS8iIHN0cmluZ0J5QXBwZW5k
aW5nU3RyaW5nOltVSURldmljZSBjdXJyZW50RGV2aWNlXS5idWlsZFZlcnNpb25dKTsKQEAgLTMw
Myw3ICszMDMsNyBAQCBzdGF0aWMgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbigpCiAjZW5kaWYK
IAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBfd2tWaWV3ID0gW1tXS1ZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6Ym91bmRzIGNvbnRleHQ6Y29udGV4dCBjb25maWd1cmF0aW9uOnN0ZDo6bW92ZSh3
ZWJQYWdlQ29uZmlndXJhdGlvbikgd2ViVmlldzpzZWxmXTsKKyAgICBfd2tWaWV3ID0gW1tXS1Zp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Ym91bmRzIGNvbnRleHQ6Y29udGV4dCBjb25maWd1cmF0
aW9uOldURjo6bW92ZSh3ZWJQYWdlQ29uZmlndXJhdGlvbikgd2ViVmlldzpzZWxmXTsKICAgICBb
c2VsZiBhZGRTdWJ2aWV3Ol93a1ZpZXcuZ2V0KCldOwogICAgIF9wYWdlID0gV2ViS2l0Ojp0b0lt
cGwoW193a1ZpZXcgcGFnZVJlZl0pOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudUl0ZW0uY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmNwcAppbmRleCA4
ZDU4MzcxLi5lMmVjOGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRDb250ZXh0TWVudUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51SXRlbS5jcHAKQEAgLTEwMyw3ICsxMDMsNyBA
QCBXZWJLaXRDb250ZXh0TWVudUl0ZW0qIHdlYmtpdENvbnRleHRNZW51SXRlbUNyZWF0ZShXZWJD
b250ZXh0TWVudUl0ZW0qIHdlYkl0ZW0pCiAgICAgc3ViTWVudUl0ZW1zLnJlc2VydmVJbml0aWFs
Q2FwYWNpdHkoc3ViTWVudS5zaXplKCkpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3Vi
TWVudS5zaXplKCk7ICsraSkKICAgICAgICAgc3ViTWVudUl0ZW1zLnVuY2hlY2tlZEFwcGVuZChX
ZWJDb250ZXh0TWVudUl0ZW06OmNyZWF0ZShzdWJNZW51W2ldKS5nZXQoKSk7Ci0gICAgd2Via2l0
Q29udGV4dE1lbnVJdGVtU2V0U3ViTWVudShpdGVtLCBhZG9wdEdSZWYod2Via2l0Q29udGV4dE1l
bnVDcmVhdGUoQVBJOjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShzdWJNZW51SXRlbXMpKS5nZXQo
KSkpKTsKKyAgICB3ZWJraXRDb250ZXh0TWVudUl0ZW1TZXRTdWJNZW51KGl0ZW0sIGFkb3B0R1Jl
Zih3ZWJraXRDb250ZXh0TWVudUNyZWF0ZShBUEk6OkFycmF5OjpjcmVhdGUoV1RGOjptb3ZlKHN1
Yk1lbnVJdGVtcykpLmdldCgpKSkpOwogCiAgICAgcmV0dXJuIGl0ZW07CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGaWxlQ2hvb3NlclJlcXVl
c3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RmlsZUNob29z
ZXJSZXF1ZXN0LmNwcAppbmRleCAwODU1ZGVlLi4zNzcwMzM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZpbGVDaG9vc2VyUmVx
dWVzdC5jcHAKQEAgLTMxNSw3ICszMTUsNyBAQCB2b2lkIHdlYmtpdF9maWxlX2Nob29zZXJfcmVx
dWVzdF9zZWxlY3RfZmlsZXMoV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0KiByZXF1ZXN0LAogICAg
IGdfcHRyX2FycmF5X2FkZChzZWxlY3RlZEZpbGVzLmdldCgpLCAwKTsKIAogICAgIC8vIFNlbGVj
dCB0aGUgZmlsZXMgaW4gV2ViQ29yZSBhbmQgdXBkYXRlIGxvY2FsIHByaXZhdGUgYXR0cmlidXRl
cy4KLSAgICByZXF1ZXN0LT5wcml2LT5saXN0ZW5lci0+Y2hvb3NlRmlsZXMoQVBJOjpBcnJheTo6
Y3JlYXRlKHN0ZDo6bW92ZShjaG9vc2VuRmlsZXMpKS5nZXQoKSk7CisgICAgcmVxdWVzdC0+cHJp
di0+bGlzdGVuZXItPmNob29zZUZpbGVzKEFQSTo6QXJyYXk6OmNyZWF0ZShXVEY6Om1vdmUoY2hv
b3NlbkZpbGVzKSkuZ2V0KCkpOwogICAgIHJlcXVlc3QtPnByaXYtPnNlbGVjdGVkRmlsZXMgPSBz
ZWxlY3RlZEZpbGVzOwogICAgIHJlcXVlc3QtPnByaXYtPmhhbmRsZWRSZXF1ZXN0ID0gdHJ1ZTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Q29udGV4dC5jcHAKaW5kZXggNjI4MDhiNy4uYWU2MDY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAKQEAgLTI1Niw3
ICsyNTYsNyBAQCBzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlRGVmYXVsdFdlYkNvbnRleHQoZ3BvaW50
ZXIpCiAgICAgV2ViQ29udGV4dENvbmZpZ3VyYXRpb24gd2ViQ29udGV4dENvbmZpZ3VyYXRpb247
CiAgICAgd2ViQ29udGV4dENvbmZpZ3VyYXRpb24uaW5qZWN0ZWRCdW5kbGVQYXRoID0gV2ViQ29y
ZTo6ZmlsZW5hbWVUb1N0cmluZyhpbmplY3RlZEJ1bmRsZUZpbGVuYW1lKCkuZGF0YSgpKTsKICAg
ICBXZWJDb250ZXh0OjphcHBseVBsYXRmb3JtU3BlY2lmaWNDb25maWd1cmF0aW9uRGVmYXVsdHMo
d2ViQ29udGV4dENvbmZpZ3VyYXRpb24pOwotICAgIHByaXYtPmNvbnRleHQgPSBXZWJDb250ZXh0
OjpjcmVhdGUoc3RkOjptb3ZlKHdlYkNvbnRleHRDb25maWd1cmF0aW9uKSk7CisgICAgcHJpdi0+
Y29udGV4dCA9IFdlYkNvbnRleHQ6OmNyZWF0ZShXVEY6Om1vdmUod2ViQ29udGV4dENvbmZpZ3Vy
YXRpb24pKTsKIAogICAgIHByaXYtPnJlcXVlc3RNYW5hZ2VyID0gd2ViQ29udGV4dC0+cHJpdi0+
Y29udGV4dC0+c3VwcGxlbWVudDxXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcj4o
KTsKICAgICBwcml2LT5jb250ZXh0LT5zZXRDYWNoZU1vZGVsKENhY2hlTW9kZWxQcmltYXJ5V2Vi
QnJvd3Nlcik7CkBAIC04OTMsNyArODkzLDcgQEAgdm9pZCB3ZWJraXRfd2ViX2NvbnRleHRfcHJl
ZmV0Y2hfZG5zKFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IGNoYXIqIGhvc3QKIAog
ICAgIEltbXV0YWJsZURpY3Rpb25hcnk6Ok1hcFR5cGUgbWVzc2FnZTsKICAgICBtZXNzYWdlLnNl
dChTdHJpbmc6OmZyb21VVEY4KCJIb3N0bmFtZSIpLCBBUEk6OlN0cmluZzo6Y3JlYXRlKFN0cmlu
Zzo6ZnJvbVVURjgoaG9zdG5hbWUpKSk7Ci0gICAgY29udGV4dC0+cHJpdi0+Y29udGV4dC0+cG9z
dE1lc3NhZ2VUb0luamVjdGVkQnVuZGxlKFN0cmluZzo6ZnJvbVVURjgoIlByZWZldGNoRE5TIiks
IEltbXV0YWJsZURpY3Rpb25hcnk6OmNyZWF0ZShzdGQ6Om1vdmUobWVzc2FnZSkpLmdldCgpKTsK
KyAgICBjb250ZXh0LT5wcml2LT5jb250ZXh0LT5wb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUo
U3RyaW5nOjpmcm9tVVRGOCgiUHJlZmV0Y2hETlMiKSwgSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3Jl
YXRlKFdURjo6bW92ZShtZXNzYWdlKSkuZ2V0KCkpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKaW5kZXggNGY4OGEw
Yi4uMzdkMjg5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0V2ViVmlldy5jcHAKQEAgLTMxMTQsNyArMzExNCw3IEBAIHZvaWQgd2Via2l0X3dlYl92
aWV3X2dldF9zbmFwc2hvdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRTbmFwc2hvdFJl
Z2lvbiByCiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiQ2FsbGJhY2tJRCIpLCBB
UEk6OlVJbnQ2NDo6Y3JlYXRlKGNhbGxiYWNrSUQpKTsKIAogICAgIHdlYlZpZXctPnByaXYtPnNu
YXBzaG90UmVzdWx0c01hcC5zZXQoY2FsbGJhY2tJRCwgYWRvcHRHUmVmKGdfdGFza19uZXcod2Vi
VmlldywgY2FuY2VsbGFibGUsIGNhbGxiYWNrLCB1c2VyRGF0YSkpKTsKLSAgICBnZXRQYWdlKHdl
YlZpZXcpLT5wb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUoU3RyaW5nOjpmcm9tVVRGOCgiR2V0
U25hcHNob3QiKSwgSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKHN0ZDo6bW92ZShtZXNzYWdl
KSkuZ2V0KCkpOworICAgIGdldFBhZ2Uod2ViVmlldyktPnBvc3RNZXNzYWdlVG9JbmplY3RlZEJ1
bmRsZShTdHJpbmc6OmZyb21VVEY4KCJHZXRTbmFwc2hvdCIpLCBJbW11dGFibGVEaWN0aW9uYXJ5
OjpjcmVhdGUoV1RGOjptb3ZlKG1lc3NhZ2UpKS5nZXQoKSk7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3Bw
CmluZGV4IDcxYzdjZTUuLjNkZWNiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKQEAgLTk4NCw3ICs5ODQsNyBA
QCB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlQ3JlYXRlV2ViUGFnZShXZWJLaXRXZWJWaWV3QmFzZSog
d2Via2l0V2ViVmlld0Jhc2UsIFdlYkNvbgogICAgIFdlYlBhZ2VDb25maWd1cmF0aW9uIHdlYlBh
Z2VDb25maWd1cmF0aW9uOwogICAgIHdlYlBhZ2VDb25maWd1cmF0aW9uLnBhZ2VHcm91cCA9IHBh
Z2VHcm91cDsKICAgICB3ZWJQYWdlQ29uZmlndXJhdGlvbi5yZWxhdGVkUGFnZSA9IHJlbGF0ZWRQ
YWdlOwotICAgIHByaXYtPnBhZ2VQcm94eSA9IGNvbnRleHQtPmNyZWF0ZVdlYlBhZ2UoKnByaXYt
PnBhZ2VDbGllbnQsIHN0ZDo6bW92ZSh3ZWJQYWdlQ29uZmlndXJhdGlvbikpOworICAgIHByaXYt
PnBhZ2VQcm94eSA9IGNvbnRleHQtPmNyZWF0ZVdlYlBhZ2UoKnByaXYtPnBhZ2VDbGllbnQsIFdU
Rjo6bW92ZSh3ZWJQYWdlQ29uZmlndXJhdGlvbikpOwogICAgIHByaXYtPnBhZ2VQcm94eS0+aW5p
dGlhbGl6ZVdlYlBhZ2UoKTsKIAogI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdHcm91cC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3R3JvdXAu
Y3BwCmluZGV4IGIyMWU3OWYuLmQyYTViZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdHcm91cC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0dyb3VwLmNwcApAQCAtMjQ3LDcgKzI0
Nyw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPEFQSTo6QXJyYXk+IHRvQVBJQXJyYXkoY29uc3QgY2hh
ciogY29uc3QqIGxpc3QpCiAgICAgICAgIGVudHJpZXMuYXBwZW5kKEFQSTo6U3RyaW5nOjpjcmVh
dGVGcm9tVVRGOFN0cmluZygqbGlzdCkpOwogICAgICAgICBsaXN0Kys7CiAgICAgfQotICAgIHJl
dHVybiBBUEk6OkFycmF5OjpjcmVhdGUoc3RkOjptb3ZlKGVudHJpZXMpKTsKKyAgICByZXR1cm4g
QVBJOjpBcnJheTo6Y3JlYXRlKFdURjo6bW92ZShlbnRyaWVzKSk7CiB9CiAKIC8qKgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3MvV0tWaWV3SU9TLm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3MvV0tWaWV3SU9TLm1tCmluZGV4IDg4NGMyNTEu
LmIxYWNiMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1dL
Vmlld0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9XS1ZpZXdJ
T1MubW0KQEAgLTIyNSw3ICsyMjUsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgIHdl
YlBhZ2VDb25maWd1cmF0aW9uLnBhZ2VHcm91cCA9IHRvSW1wbChwYWdlR3JvdXBSZWYpOwogICAg
IHdlYlBhZ2VDb25maWd1cmF0aW9uLnJlbGF0ZWRQYWdlID0gdG9JbXBsKHJlbGF0ZWRQYWdlKTsK
IAotICAgIF9jb250ZW50VmlldyA9IGFkb3B0TlMoW1tXS0NvbnRlbnRWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOmJvdW5kcyBjb250ZXh0Oip0b0ltcGwoY29udGV4dFJlZikgY29uZmlndXJhdGlv
bjpzdGQ6Om1vdmUod2ViUGFnZUNvbmZpZ3VyYXRpb24pIHdlYlZpZXc6bmlsXSk7CisgICAgX2Nv
bnRlbnRWaWV3ID0gYWRvcHROUyhbW1dLQ29udGVudFZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
Ym91bmRzIGNvbnRleHQ6KnRvSW1wbChjb250ZXh0UmVmKSBjb25maWd1cmF0aW9uOldURjo6bW92
ZSh3ZWJQYWdlQ29uZmlndXJhdGlvbikgd2ViVmlldzpuaWxdKTsKIAogICAgIFtbX2NvbnRlbnRW
aWV3IGxheWVyXSBzZXRBbmNob3JQb2ludDpDR1BvaW50WmVyb107CiAgICAgW19jb250ZW50Vmll
dyBzZXRGcmFtZTpib3VuZHNdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tW
aWV3Lm1tCmluZGV4IDBlMWQ5NGIuLmE4YWRiNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTM0NzMsNyArMzQ3Myw3IEBAIHN0YXRpYyBOU1N0cmlu
ZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAKICAgICBf
ZGF0YSA9IFtbV0tWaWV3RGF0YSBhbGxvY10gaW5pdF07CiAgICAgX2RhdGEtPl9wYWdlQ2xpZW50
ID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlQ2xpZW50SW1wbD4oc2VsZiwgd2ViVmlldyk7Ci0gICAg
X2RhdGEtPl9wYWdlID0gY29udGV4dC5jcmVhdGVXZWJQYWdlKCpfZGF0YS0+X3BhZ2VDbGllbnQs
IHN0ZDo6bW92ZSh3ZWJQYWdlQ29uZmlndXJhdGlvbikpOworICAgIF9kYXRhLT5fcGFnZSA9IGNv
bnRleHQuY3JlYXRlV2ViUGFnZSgqX2RhdGEtPl9wYWdlQ2xpZW50LCBXVEY6Om1vdmUod2ViUGFn
ZUNvbmZpZ3VyYXRpb24pKTsKICAgICBfZGF0YS0+X3BhZ2UtPnNldEFkZHNWaXNpdGVkTGlua3Mo
Y29udGV4dC5oaXN0b3J5Q2xpZW50KCkuYWRkc1Zpc2l0ZWRMaW5rcygpKTsKIAogICAgIF9kYXRh
LT5fcGFnZS0+c2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoW3NlbGYgX2ludHJpbnNpY0Rl
dmljZVNjYWxlRmFjdG9yXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvTmF2aWdhdGlvblN0YXRlLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L05hdmlnYXRpb25TdGF0ZS5tbQppbmRleCBhYTRlNDU2Li5jNjQ1YWM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KQEAgLTMzMSw3
ICszMzEsNyBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6UG9saWN5Q2xpZW50OjpkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdlYlBhZ2VQcm94eQogCiB2b2lkIE5hdmlnYXRpb25TdGF0
ZTo6UG9saWN5Q2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oV2ViUGFnZVBy
b3h5KiB3ZWJQYWdlUHJveHksIFdlYkZyYW1lUHJveHkqIHNvdXJjZUZyYW1lLCBjb25zdCBOYXZp
Z2F0aW9uQWN0aW9uRGF0YSYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgUmVm
UHRyPFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eT4gbGlzdGVuZXIsIEFQSTo6T2JqZWN0KiB1
c2VyRGF0YSkKIHsKLSAgICBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHdlYlBhZ2VQ
cm94eSwgbnVsbHB0ciwgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHNvdXJjZUZyYW1lLCByZXF1ZXN0
LCByZXF1ZXN0LCBzdGQ6Om1vdmUobGlzdGVuZXIpLCB1c2VyRGF0YSk7CisgICAgZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbih3ZWJQYWdlUHJveHksIG51bGxwdHIsIG5hdmlnYXRpb25B
Y3Rpb25EYXRhLCBzb3VyY2VGcmFtZSwgcmVxdWVzdCwgcmVxdWVzdCwgV1RGOjptb3ZlKGxpc3Rl
bmVyKSwgdXNlckRhdGEpOwogfQogCiB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6UG9saWN5Q2xpZW50
OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiBm
cmFtZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzb3VyY2VSZXNwb25zZSwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGJvb2wgY2Fu
U2hvd01JTUVUeXBlLCBSZWZQdHI8V2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5PiBsaXN0ZW5l
ciwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5tbQppbmRleCA4NDEzZjVkZC4uYTA1ZjRmNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTIzMiw3ICsyMzIsNyBAQCB2
b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpwcmludEZyYW1lKFdlYktpdDo6V2ViUGFnZVByb3h5
KiwgV2ViS2l0OjpXZWJGcmFtZVBybwogUmV0YWluUHRyPE5TQXJyYXk+IFVJRGVsZWdhdGU6OlVJ
Q2xpZW50OjphY3Rpb25zRm9yRWxlbWVudChfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqZWxlbWVu
dEluZm8sIFJldGFpblB0cjxOU0FycmF5PiBkZWZhdWx0QWN0aW9ucykKIHsKICAgICBpZiAoIW1f
dWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3QWN0aW9uc0ZvckVsZW1lbnREZWZh
dWx0QWN0aW9ucykKLSAgICAgICAgcmV0dXJuIHN0ZDo6bW92ZShkZWZhdWx0QWN0aW9ucyk7Cisg
ICAgICAgIHJldHVybiBXVEY6Om1vdmUoZGVmYXVsdEFjdGlvbnMpOwogCiAgICAgYXV0byBkZWxl
Z2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOwogICAgIGlmICghZGVsZWdhdGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5j
cHAKaW5kZXggNjhiMjM0Yy4uZmQ0OWQ1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcApAQCAtNTQsNyArNTQsNyBAQCB2b2lkIENv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5Ojp1cGRhdGVWaWV3cG9ydCgpCiAKIHZvaWQgQ29v
cmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OmRpc3BhdGNoVXBkYXRlKHN0ZDo6ZnVuY3Rpb248
dm9pZCgpPiBmdW5jdGlvbikKIHsKLSAgICBtX3NjZW5lLT5hcHBlbmRVcGRhdGUoc3RkOjptb3Zl
KGZ1bmN0aW9uKSk7CisgICAgbV9zY2VuZS0+YXBwZW5kVXBkYXRlKFdURjo6bW92ZShmdW5jdGlv
bikpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5Ojpjb21taXRDb29y
ZGluYXRlZEdyYXBoaWNzU3RhdGUoY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlJiBncmFw
aGljc1N0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRp
bmF0ZWRHcmFwaGljcy9XZWJWaWV3LmNwcAppbmRleCBkMjNlNDk2Zi4uMTFjZjY1MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
V2ViVmlldy5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgV2ViVmlldzo6V2ViVmlldyhXZWJDb250ZXh0
KiBjb250ZXh0LCBXZWJQYWdlR3JvdXAqIHBhZ2VHcm91cCkKICAgICB3ZWJQYWdlQ29uZmlndXJh
dGlvbi5wYWdlR3JvdXAgPSBwYWdlR3JvdXA7CiAKICAgICAvLyBOZWVkIHRvIGNhbGwgY3JlYXRl
V2ViUGFnZSBhZnRlciBvdGhlciBkYXRhIG1lbWJlcnMsIHNwZWNpZmljYWxseSBtX3Zpc2libGUs
IGFyZSBpbml0aWFsaXplZC4KLSAgICBtX3BhZ2UgPSBjb250ZXh0LT5jcmVhdGVXZWJQYWdlKCp0
aGlzLCBzdGQ6Om1vdmUod2ViUGFnZUNvbmZpZ3VyYXRpb24pKTsKKyAgICBtX3BhZ2UgPSBjb250
ZXh0LT5jcmVhdGVXZWJQYWdlKCp0aGlzLCBXVEY6Om1vdmUod2ViUGFnZUNvbmZpZ3VyYXRpb24p
KTsKIAogICAgIG1fcGFnZS0+cGFnZUdyb3VwKCkucHJlZmVyZW5jZXMoKS5zZXRBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRW5hYmxlZCh0cnVlKTsKICAgICBtX3BhZ2UtPnBhZ2VHcm91cCgpLnByZWZl
cmVuY2VzKCkuc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUodHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2VuZXJpY0NhbGxiYWNrLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvR2VuZXJpY0NhbGxiYWNrLmgKaW5kZXggNTNkZmVmYy4uOWY3M2E3YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dlbmVyaWNDYWxsYmFjay5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HZW5lcmljQ2FsbGJhY2suaApAQCAtNzEsNyArNzEsNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQ2FsbGJhY2tCYXNlKFR5cGUgdHlwZSwgc3RkOjp1
bmlxdWVfcHRyPFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2VuPiBhY3Rp
dml0eVRva2VuKQogICAgICAgICA6IG1fdHlwZSh0eXBlKQogICAgICAgICAsIG1fY2FsbGJhY2tJ
RChnZW5lcmF0ZUNhbGxiYWNrSUQoKSkKLSAgICAgICAgLCBtX2FjdGl2aXR5VG9rZW4oc3RkOjpt
b3ZlKGFjdGl2aXR5VG9rZW4pKQorICAgICAgICAsIG1fYWN0aXZpdHlUb2tlbihXVEY6Om1vdmUo
YWN0aXZpdHlUb2tlbikpCiAgICAgewogICAgIH0KIApAQCAtOTUsNyArOTUsNyBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZW5lcmljQ2FsbGJhY2s+IGNyZWF0ZShDYWxsYmFj
a0Z1bmN0aW9uIGNhbGxiYWNrLCBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc1Rocm90dGxlcjo6QmFj
a2dyb3VuZEFjdGl2aXR5VG9rZW4+IGFjdGl2aXR5VG9rZW4gPSBudWxscHRyKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZW5lcmljQ2FsbGJhY2soY2FsbGJhY2ssIHN0ZDo6
bW92ZShhY3Rpdml0eVRva2VuKSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdlbmVy
aWNDYWxsYmFjayhjYWxsYmFjaywgV1RGOjptb3ZlKGFjdGl2aXR5VG9rZW4pKSk7CiAgICAgfQog
CiAgICAgdmlydHVhbCB+R2VuZXJpY0NhbGxiYWNrKCkKQEAgLTEzMCw3ICsxMzAsNyBAQCBwdWJs
aWM6CiAKIHByaXZhdGU6CiAgICAgR2VuZXJpY0NhbGxiYWNrKENhbGxiYWNrRnVuY3Rpb24gY2Fs
bGJhY2ssIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZp
dHlUb2tlbj4gYWN0aXZpdHlUb2tlbikKLSAgICAgICAgOiBDYWxsYmFja0Jhc2UodHlwZSgpLCBz
dGQ6Om1vdmUoYWN0aXZpdHlUb2tlbikpCisgICAgICAgIDogQ2FsbGJhY2tCYXNlKHR5cGUoKSwg
V1RGOjptb3ZlKGFjdGl2aXR5VG9rZW4pKQogICAgICAgICAsIG1fY2FsbGJhY2soY2FsbGJhY2sp
CiAgICAgewogICAgIH0KQEAgLTE5Miw3ICsxOTIsNyBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUuLi4gVD4KICAgICB1aW50NjRfdCBwdXQoc3RkOjpmdW5jdGlvbjx2b2lkIChULi4u
KT4gZnVuY3Rpb24sIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5k
QWN0aXZpdHlUb2tlbj4gYWN0aXZpdHlUb2tlbikKICAgICB7Ci0gICAgICAgIGF1dG8gY2FsbGJh
Y2sgPSBHZW5lcmljQ2FsbGJhY2tUeXBlPHNpemVvZi4uLihUKSwgVC4uLj46OnR5cGU6OmNyZWF0
ZShzdGQ6Om1vdmUoZnVuY3Rpb24pLCBzdGQ6Om1vdmUoYWN0aXZpdHlUb2tlbikpOworICAgICAg
ICBhdXRvIGNhbGxiYWNrID0gR2VuZXJpY0NhbGxiYWNrVHlwZTxzaXplb2YuLi4oVCksIFQuLi4+
Ojp0eXBlOjpjcmVhdGUoV1RGOjptb3ZlKGZ1bmN0aW9uKSwgV1RGOjptb3ZlKGFjdGl2aXR5VG9r
ZW4pKTsKICAgICAgICAgcmV0dXJuIHB1dChjYWxsYmFjayk7CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYlNvY2tldFNlcnZl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYlNvY2tl
dFNlcnZlci5jcHAKaW5kZXggZmZiYzg4ZS4uMTI1NmMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJTb2NrZXRTZXJ2ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViU29ja2V0U2VydmVy
LmNwcApAQCAtNzksNyArNzksNyBAQCB2b2lkIFdlYlNvY2tldFNlcnZlcjo6Y2xvc2UoKQogCiB2
b2lkIFdlYlNvY2tldFNlcnZlcjo6ZGlkQWNjZXB0Q29ubmVjdGlvbihzdGQ6OnVuaXF1ZV9wdHI8
V2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbj4gY29ubmVjdGlvbikKIHsKLSAgICBtX2Nvbm5lY3Rp
b25zLmFwcGVuZChzdGQ6Om1vdmUoY29ubmVjdGlvbikpOworICAgIG1fY29ubmVjdGlvbnMuYXBw
ZW5kKFdURjo6bW92ZShjb25uZWN0aW9uKSk7CiB9CiAKIHZvaWQgV2ViU29ja2V0U2VydmVyOjpk
aWRDbG9zZVdlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24oV2ViU29ja2V0U2VydmVyQ29ubmVjdGlv
biogY29ubmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNw
ZWN0b3JTZXJ2ZXIvc291cC9XZWJTb2NrZXRTZXJ2ZXJTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvc291cC9XZWJTb2NrZXRTZXJ2ZXJTb3VwLmNwcApp
bmRleCAzOGU3ZGI1Li5kMDMwNTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvSW5zcGVjdG9yU2VydmVyL3NvdXAvV2ViU29ja2V0U2VydmVyU291cC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9zb3VwL1dlYlNvY2tldFNlcnZl
clNvdXAuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHN0YXRpYyBnYm9vbGVhbiBjb25uZWN0aW9uQ2Fs
bGJhY2soR1NvY2tldFNlcnZpY2UqIC8qc2VydmljZSovLCBHU29ja2V0Q29ubmVjdGlvCiAKICAg
ICBhdXRvIHdlYlNvY2tldENvbm5lY3Rpb24gPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYlNvY2tldFNl
cnZlckNvbm5lY3Rpb24+KHNlcnZlci0+Y2xpZW50KCksIHNlcnZlcik7CiAgICAgd2ViU29ja2V0
Q29ubmVjdGlvbi0+c2V0U29ja2V0SGFuZGxlKFNvY2tldFN0cmVhbUhhbmRsZTo6Y3JlYXRlKGNv
bm5lY3Rpb24sIHdlYlNvY2tldENvbm5lY3Rpb24uZ2V0KCkpKTsKLSAgICBzZXJ2ZXItPmRpZEFj
Y2VwdENvbm5lY3Rpb24oc3RkOjptb3ZlKHdlYlNvY2tldENvbm5lY3Rpb24pKTsKKyAgICBzZXJ2
ZXItPmRpZEFjY2VwdENvbm5lY3Rpb24oV1RGOjptb3ZlKHdlYlNvY2tldENvbm5lY3Rpb24pKTsK
IAogICAgIHJldHVybiBUUlVFOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eS5jcHAKaW5kZXggZDMyZDA0OS4uMDAzNDI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyUHJveHkuY3BwCkBAIC0yMTcsNyArMjE3LDcgQEAgdm9pZCBXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyUHJveHk6OnByb3ZpZGVyRGlkQ2xvc2VOb3RpZmljYXRpb25zKEFQSTo6QXJy
YXkqIGdsb2IKICAgICAgICAgICAgIGlmIChwYWdlSXQgPT0gcGFnZU5vdGlmaWNhdGlvbklEcy5l
bmQoKSkgewogICAgICAgICAgICAgICAgIFZlY3Rvcjx1aW50NjRfdD4gbmV3VmVjdG9yOwogICAg
ICAgICAgICAgICAgIG5ld1ZlY3Rvci5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHNpemUpOwotICAg
ICAgICAgICAgICAgIHBhZ2VJdCA9IHBhZ2VOb3RpZmljYXRpb25JRHMuYWRkKHdlYlBhZ2UsIHN0
ZDo6bW92ZShuZXdWZWN0b3IpKS5pdGVyYXRvcjsKKyAgICAgICAgICAgICAgICBwYWdlSXQgPSBw
YWdlTm90aWZpY2F0aW9uSURzLmFkZCh3ZWJQYWdlLCBXVEY6Om1vdmUobmV3VmVjdG9yKSkuaXRl
cmF0b3I7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHVpbnQ2NF90IHBhZ2VOb3RpZmlj
YXRpb25JRCA9IGl0LT52YWx1ZS5zZWNvbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRl
ci5jcHAKaW5kZXggNTQ1ZTQxNS4uYTg4M2NmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvblBy
b3ZpZGVyLmNwcApAQCAtNzEsNyArNzEsNyBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVy
OjpjbGVhck5vdGlmaWNhdGlvbnMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYgbm90aWZpYwogICAg
IGZvciAoY29uc3QgYXV0byYgbm90aWZpY2F0aW9uSUQgOiBub3RpZmljYXRpb25JRHMpCiAgICAg
ICAgIGFycmF5SURzLnVuY2hlY2tlZEFwcGVuZChBUEk6OlVJbnQ2NDo6Y3JlYXRlKG5vdGlmaWNh
dGlvbklEKSk7CiAKLSAgICBtX2NsaWVudC5jbGVhck5vdGlmaWNhdGlvbnModG9BUEkoQVBJOjpB
cnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShhcnJheUlEcykpLmdldCgpKSwgbV9jbGllbnQuYmFzZS5j
bGllbnRJbmZvKTsKKyAgICBtX2NsaWVudC5jbGVhck5vdGlmaWNhdGlvbnModG9BUEkoQVBJOjpB
cnJheTo6Y3JlYXRlKFdURjo6bW92ZShhcnJheUlEcykpLmdldCgpKSwgbV9jbGllbnQuYmFzZS5j
bGllbnRJbmZvKTsKIH0KIAogdm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6YWRkTm90aWZp
Y2F0aW9uTWFuYWdlcihXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkqIG1hbmFnZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUxvYWRTdGF0ZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUxvYWRTdGF0ZS5jcHAKaW5kZXggZjI3MDIwMC4uODBm
NTI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VMb2FkU3RhdGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlTG9hZFN0YXRlLmNwcApAQCAt
NTMsNyArNTMsNyBAQCBQYWdlTG9hZFN0YXRlOjpUcmFuc2FjdGlvbjo6VHJhbnNhY3Rpb24oUGFn
ZUxvYWRTdGF0ZSYgcGFnZUxvYWRTdGF0ZSkKIH0KIAogUGFnZUxvYWRTdGF0ZTo6VHJhbnNhY3Rp
b246OlRyYW5zYWN0aW9uKFRyYW5zYWN0aW9uJiYgb3RoZXIpCi0gICAgOiBtX3dlYlBhZ2VQcm94
eShzdGQ6Om1vdmUob3RoZXIubV93ZWJQYWdlUHJveHkpKQorICAgIDogbV93ZWJQYWdlUHJveHko
V1RGOjptb3ZlKG90aGVyLm1fd2ViUGFnZVByb3h5KSkKICAgICAsIG1fcGFnZUxvYWRTdGF0ZShv
dGhlci5tX3BhZ2VMb2FkU3RhdGUpCiB7CiAgICAgb3RoZXIubV9wYWdlTG9hZFN0YXRlID0gbnVs
bHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJ
bkF1dG9TdGFydFByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5z
L1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmNwcAppbmRleCBjMjM3NmMxLi4yODkxMGZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQ
cm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0lu
QXV0b1N0YXJ0UHJvdmlkZXIuY3BwCkBAIC05OSwxMCArOTksMTAgQEAgUGFzc1JlZlB0cjxJbW11
dGFibGVEaWN0aW9uYXJ5PiBQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6YXV0b1N0YXJ0T3JpZ2lu
c1RhYmxlQ28KICAgICAgICAgICAgICAgICBoYXNoTWFwLnNldChTdHJpbmc6Om51bWJlcihvcmln
aW5IYXNoLmtleSksIEFQSTo6RG91YmxlOjpjcmVhdGUob3JpZ2luSGFzaC52YWx1ZSkpOwogICAg
ICAgICB9CiAgICAgICAgIGlmIChoYXNoTWFwLnNpemUoKSkKLSAgICAgICAgICAgIG1hcC5zZXQo
c3RyaW5nT3JpZ2luSGFzaC5rZXksIEltbXV0YWJsZURpY3Rpb25hcnk6OmNyZWF0ZShzdGQ6Om1v
dmUoaGFzaE1hcCkpKTsKKyAgICAgICAgICAgIG1hcC5zZXQoc3RyaW5nT3JpZ2luSGFzaC5rZXks
IEltbXV0YWJsZURpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUoaGFzaE1hcCkpKTsKICAgICB9
CiAKLSAgICByZXR1cm4gSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKHN0ZDo6bW92ZShtYXAp
KTsKKyAgICByZXR1cm4gSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShtYXAp
KTsKIH0KIAogdm9pZCBQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6c2V0QXV0b1N0YXJ0T3JpZ2lu
c1RhYmxlKEltbXV0YWJsZURpY3Rpb25hcnkmIHRhYmxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwCmluZGV4
IDE1NmZiNmQuLjgwNzljOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5jcHAKQEAgLTcxLDcgKzcxLDcgQEAg
dWludDY0X3QgUGx1Z2luUHJvY2Vzc01hbmFnZXI6OnBsdWdpblByb2Nlc3NUb2tlbihjb25zdCBQ
bHVnaW5Nb2R1bGVJbmZvJiBwbHVnaW4KICAgICBhdHRyaWJ1dGVzLnByb2Nlc3NUeXBlID0gcGx1
Z2luUHJvY2Vzc1R5cGU7CiAgICAgYXR0cmlidXRlcy5zYW5kYm94UG9saWN5ID0gcGx1Z2luUHJv
Y2Vzc1NhbmRib3hQb2xpY3k7CiAKLSAgICBtX3BsdWdpblByb2Nlc3NUb2tlbnMuYXBwZW5kKHN0
ZDo6bWFrZV9wYWlyKHN0ZDo6bW92ZShhdHRyaWJ1dGVzKSwgdG9rZW4pKTsKKyAgICBtX3BsdWdp
blByb2Nlc3NUb2tlbnMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKFdURjo6bW92ZShhdHRyaWJ1dGVz
KSwgdG9rZW4pKTsKICAgICBtX2tub3duVG9rZW5zLmFkZCh0b2tlbik7CiAKICAgICByZXR1cm4g
dG9rZW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9XZWJQ
bHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdp
bnMvV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcAppbmRleCA0MjRkYjY5Li5lOGM1MzRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5TaXRl
RGF0YU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1dl
YlBsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAKQEAgLTE0MCw3ICsxNDAsNyBAQCB2b2lkIFdlYlBs
dWdpblNpdGVEYXRhTWFuYWdlcjo6aW52YWxpZGF0ZSgpCiAKIHZvaWQgV2ViUGx1Z2luU2l0ZURh
dGFNYW5hZ2VyOjpnZXRTaXRlc1dpdGhEYXRhKHN0ZDo6ZnVuY3Rpb248dm9pZCAoQVBJOjpBcnJh
eSosIENhbGxiYWNrQmFzZTo6RXJyb3IpPiBjYWxsYmFja0Z1bmN0aW9uKQogewotICAgIFJlZlB0
cjxBcnJheUNhbGxiYWNrPiBjYWxsYmFjayA9IEFycmF5Q2FsbGJhY2s6OmNyZWF0ZShzdGQ6Om1v
dmUoY2FsbGJhY2tGdW5jdGlvbikpOworICAgIFJlZlB0cjxBcnJheUNhbGxiYWNrPiBjYWxsYmFj
ayA9IEFycmF5Q2FsbGJhY2s6OmNyZWF0ZShXVEY6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwog
CiAgICAgaWYgKCFtX3dlYkNvbnRleHQpIHsKICAgICAgICAgY2FsbGJhY2stPmludmFsaWRhdGUo
KTsKQEAgLTE3MCw3ICsxNzAsNyBAQCB2b2lkIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcjo6ZGlk
R2V0U2l0ZXNXaXRoRGF0YShjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2l0ZXMsCiAKIHZvaWQgV2Vi
UGx1Z2luU2l0ZURhdGFNYW5hZ2VyOjpjbGVhclNpdGVEYXRhKEFQSTo6QXJyYXkqIHNpdGVzLCB1
aW50NjRfdCBmbGFncywgdWludDY0X3QgbWF4QWdlSW5TZWNvbmRzLCBzdGQ6OmZ1bmN0aW9uPHZv
aWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiBjYWxsYmFja0Z1bmN0aW9uKQogewotICAgIFJlZlB0
cjxWb2lkQ2FsbGJhY2s+IGNhbGxiYWNrID0gVm9pZENhbGxiYWNrOjpjcmVhdGUoc3RkOjptb3Zl
KGNhbGxiYWNrRnVuY3Rpb24pKTsKKyAgICBSZWZQdHI8Vm9pZENhbGxiYWNrPiBjYWxsYmFjayA9
IFZvaWRDYWxsYmFjazo6Y3JlYXRlKFdURjo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAg
aWYgKCFtX3dlYkNvbnRleHQpIHsKICAgICAgICAgLy8gRklYTUU6IElmIHRoZSBjb250ZXh0IGlz
IGludmFsaWQgd2Ugc2hvdWxkIG5vdCBjYWxsIHRoZSBjYWxsYmFjay4gSXQnZCBiZSBiZXR0ZXIg
dG8ganVzdCByZXR1cm4gZmFsc2UgZnJvbSBjbGVhclNpdGVEYXRhLgogICAgICAgICBjYWxsYmFj
ay0+aW52YWxpZGF0ZShDYWxsYmFja0Jhc2U6OkVycm9yOjpPd25lcldhc0ludmFsaWRhdGVkKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RhdGlzdGljc1JlcXVlc3QuY3BwCmluZGV4
IDMyMjNkYTUuLmJjMGExZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9T
dGF0aXN0aWNzUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0YXRp
c3RpY3NSZXF1ZXN0LmNwcApAQCAtOTAsNyArOTAsNyBAQCB2b2lkIFN0YXRpc3RpY3NSZXF1ZXN0
Ojpjb21wbGV0ZWRSZXF1ZXN0KHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RhdGlzdGljc0Rh
dAogICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHN0YXRpc3RpYyA6IGRhdGEud2ViQ29yZUNhY2hl
U3RhdGlzdGljcykKICAgICAgICAgICAgIGNhY2hlU3RhdGlzdGljcy51bmNoZWNrZWRBcHBlbmQo
Y3JlYXRlRGljdGlvbmFyeUZyb21IYXNoTWFwKHN0YXRpc3RpYykpOwogCi0gICAgICAgIG1fcmVz
cG9uc2VEaWN0aW9uYXJ5LT5zZXQoIldlYkNvcmVDYWNoZVN0YXRpc3RpY3MiLCBBUEk6OkFycmF5
OjpjcmVhdGUoc3RkOjptb3ZlKGNhY2hlU3RhdGlzdGljcykpLmdldCgpKTsKKyAgICAgICAgbV9y
ZXNwb25zZURpY3Rpb25hcnktPnNldCgiV2ViQ29yZUNhY2hlU3RhdGlzdGljcyIsIEFQSTo6QXJy
YXk6OmNyZWF0ZShXVEY6Om1vdmUoY2FjaGVTdGF0aXN0aWNzKSkuZ2V0KCkpOwogICAgIH0KIAog
ICAgIGlmIChtX291dHN0YW5kaW5nUmVxdWVzdHMuaXNFbXB0eSgpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggODFj
MDE5Ni4uMjk5ODgxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3Jh
Z2UvU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdG9y
YWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtNjU5LDcgKzY1OSw3IEBAIHZvaWQgU3RvcmFnZU1h
bmFnZXI6OmdldE9yaWdpbnNJbnRlcm5hbChGdW5jdGlvbkRpc3BhdGNoZXIqIGRpc3BhdGNoZXIs
IHZvaWQqIGNvCiB2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpnZXRTdG9yYWdlRGV0YWlsc0J5T3JpZ2lu
SW50ZXJuYWwoRnVuY3Rpb25EaXNwYXRjaGVyKiBkaXNwYXRjaGVyLCB2b2lkKiBjb250ZXh0LCB2
b2lkICgqY2FsbGJhY2tGdW5jdGlvbikoY29uc3QgVmVjdG9yPExvY2FsU3RvcmFnZURldGFpbHM+
JiBzdG9yYWdlRGV0YWlscywgdm9pZCogY29udGV4dCkpCiB7CiAgICAgVmVjdG9yPExvY2FsU3Rv
cmFnZURldGFpbHM+IHN0b3JhZ2VEZXRhaWxzID0gbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNr
ZXItPmRldGFpbHMoKTsKLSAgICBkaXNwYXRjaGVyLT5kaXNwYXRjaChiaW5kKGNhbGxiYWNrRnVu
Y3Rpb24sIHN0ZDo6bW92ZShzdG9yYWdlRGV0YWlscyksIGNvbnRleHQpKTsKKyAgICBkaXNwYXRj
aGVyLT5kaXNwYXRjaChiaW5kKGNhbGxiYWNrRnVuY3Rpb24sIFdURjo6bW92ZShzdG9yYWdlRGV0
YWlscyksIGNvbnRleHQpKTsKIH0KIAogdm9pZCBTdG9yYWdlTWFuYWdlcjo6ZGVsZXRlRW50cmll
c0Zvck9yaWdpbkludGVybmFsKFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJTY3JpcHRNZXNz
YWdlSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2Vi
U2NyaXB0TWVzc2FnZUhhbmRsZXIuY3BwCmluZGV4IDFiOGJhZDQuLmY5ZTJlZDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJTY3JpcHRNZXNzYWdl
SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dl
YlNjcmlwdE1lc3NhZ2VIYW5kbGVyLmNwcApAQCAtNTYsMTIgKzU2LDEyIEBAIHN0YXRpYyB1aW50
NjRfdCBnZW5lcmF0ZUlkZW50aWZpZXIoKQogCiBQYXNzUmVmUHRyPFdlYlNjcmlwdE1lc3NhZ2VI
YW5kbGVyPiBXZWJTY3JpcHRNZXNzYWdlSGFuZGxlcjo6Y3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxD
bGllbnQ+IGNsaWVudCwgY29uc3QgU3RyaW5nJiBuYW1lKQogewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgV2ViU2NyaXB0TWVzc2FnZUhhbmRsZXIoc3RkOjptb3ZlKGNsaWVudCksIG5hbWUpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlNjcmlwdE1lc3NhZ2VIYW5kbGVyKFdURjo6bW92
ZShjbGllbnQpLCBuYW1lKSk7CiB9CiAKIFdlYlNjcmlwdE1lc3NhZ2VIYW5kbGVyOjpXZWJTY3Jp
cHRNZXNzYWdlSGFuZGxlcihzdGQ6OnVuaXF1ZV9wdHI8Q2xpZW50PiBjbGllbnQsIGNvbnN0IFN0
cmluZyYgbmFtZSkKICAgICA6IG1faWRlbnRpZmllcihnZW5lcmF0ZUlkZW50aWZpZXIoKSkKLSAg
ICAsIG1fY2xpZW50KHN0ZDo6bW92ZShjbGllbnQpKQorICAgICwgbV9jbGllbnQoV1RGOjptb3Zl
KGNsaWVudCkpCiAgICAgLCBtX25hbWUobmFtZSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRl
bnRDb250cm9sbGVyUHJveHkuY3BwCmluZGV4IGYwZGQ2YzcuLmRlNjlhODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRy
b2xsZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJDb250ZW50
L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNwcApAQCAtODMsNyArODMsNyBAQCB2b2lk
IFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpyZW1vdmVQcm9jZXNzKFdlYlByb2Nlc3NQ
cm94eSYgd2ViUHJvY2Vzc1BybwogCiB2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5
OjphZGRVc2VyU2NyaXB0KFdlYkNvcmU6OlVzZXJTY3JpcHQgdXNlclNjcmlwdCkKIHsKLSAgICBt
X3VzZXJTY3JpcHRzLmFwcGVuZChzdGQ6Om1vdmUodXNlclNjcmlwdCkpOworICAgIG1fdXNlclNj
cmlwdHMuYXBwZW5kKFdURjo6bW92ZSh1c2VyU2NyaXB0KSk7CiAKICAgICBmb3IgKGF1dG8mIHBy
b2Nlc3NBbmRDb3VudCA6IG1fcHJvY2Vzc2VzKQogICAgICAgICBwcm9jZXNzQW5kQ291bnQua2V5
LT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6
QWRkVXNlclNjcmlwdHMoeyBtX3VzZXJTY3JpcHRzLmxhc3QoKSB9KSwgbV9pZGVudGlmaWVyKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlclByb3h5LmNwcAppbmRleCA0ZmFiZDMwLi5iYTdiYTk1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyUHJveHkuY3BwCkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJQcm94eTo6ZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpCiAKIHZvaWQgV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6Z2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnMoc3Rk
OjpmdW5jdGlvbjx2b2lkIChBUEk6OkFycmF5KiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+IGNhbGxi
YWNrRnVuY3Rpb24pCiB7Ci0gICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0gQXJy
YXlDYWxsYmFjazo6Y3JlYXRlKHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CisgICAgUmVm
UHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0gQXJyYXlDYWxsYmFjazo6Y3JlYXRlKFdURjo6
bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAKICAgICBpZiAoIWNvbnRleHQoKSkgewogICAgICAg
ICBjYWxsYmFjay0+aW52YWxpZGF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQmFja0ZvcndhcmRMaXN0LmNwcAppbmRleCA2MzY4MzhiLi5kYzlhMmY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcApAQCAtMTU2LDcg
KzE1Niw3IEBAIHZvaWQgV2ViQmFja0ZvcndhcmRMaXN0OjphZGRJdGVtKFdlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0qIG5ld0l0ZW0pCiAgICAgICAgICAgICBtX2VudHJpZXMuaW5zZXJ0KG1fY3VycmVu
dEluZGV4LCBuZXdJdGVtKTsKICAgICB9CiAKLSAgICBtX3BhZ2UtPmRpZENoYW5nZUJhY2tGb3J3
YXJkTGlzdChuZXdJdGVtLCBzdGQ6Om1vdmUocmVtb3ZlZEl0ZW1zKSk7CisgICAgbV9wYWdlLT5k
aWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QobmV3SXRlbSwgV1RGOjptb3ZlKHJlbW92ZWRJdGVtcykp
OwogfQogCiB2b2lkIFdlYkJhY2tGb3J3YXJkTGlzdDo6Z29Ub0l0ZW0oV2ViQmFja0ZvcndhcmRM
aXN0SXRlbSogaXRlbSkKQEAgLTI3Niw3ICsyNzYsNyBAQCBQYXNzUmVmUHRyPEFQSTo6QXJyYXk+
IFdlYkJhY2tGb3J3YXJkTGlzdDo6YmFja0xpc3RBc0FQSUFycmF5V2l0aExpbWl0KHVuc2lnbmVk
CiAgICAgICAgIHZlY3Rvci51bmNoZWNrZWRBcHBlbmQobV9lbnRyaWVzW2ldLmdldCgpKTsKICAg
ICB9CiAKLSAgICByZXR1cm4gQVBJOjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZSh2ZWN0b3IpKTsK
KyAgICByZXR1cm4gQVBJOjpBcnJheTo6Y3JlYXRlKFdURjo6bW92ZSh2ZWN0b3IpKTsKIH0KIAog
UGFzc1JlZlB0cjxBUEk6OkFycmF5PiBXZWJCYWNrRm9yd2FyZExpc3Q6OmZvcndhcmRMaXN0QXNB
UElBcnJheVdpdGhMaW1pdCh1bnNpZ25lZCBsaW1pdCkgY29uc3QKQEAgLTMwMCw3ICszMDAsNyBA
QCBQYXNzUmVmUHRyPEFQSTo6QXJyYXk+IFdlYkJhY2tGb3J3YXJkTGlzdDo6Zm9yd2FyZExpc3RB
c0FQSUFycmF5V2l0aExpbWl0KHVuc2lnbgogICAgICAgICB2ZWN0b3IudW5jaGVja2VkQXBwZW5k
KG1fZW50cmllc1tpXS5nZXQoKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIEFQSTo6QXJyYXk6OmNy
ZWF0ZShzdGQ6Om1vdmUodmVjdG9yKSk7CisgICAgcmV0dXJuIEFQSTo6QXJyYXk6OmNyZWF0ZShX
VEY6Om1vdmUodmVjdG9yKSk7CiB9CiAKIHZvaWQgV2ViQmFja0ZvcndhcmRMaXN0OjpyZW1vdmVB
bGxJdGVtcygpCkBAIC0zMTUsMTIgKzMxNSwxMiBAQCB2b2lkIFdlYkJhY2tGb3J3YXJkTGlzdDo6
cmVtb3ZlQWxsSXRlbXMoKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgbV9wYWdl
LT5iYWNrRm9yd2FyZFJlbW92ZWRJdGVtKGVudHJ5LT5pdGVtSUQoKSk7Ci0gICAgICAgIHJlbW92
ZWRJdGVtcy5hcHBlbmQoc3RkOjptb3ZlKGVudHJ5KSk7CisgICAgICAgIHJlbW92ZWRJdGVtcy5h
cHBlbmQoV1RGOjptb3ZlKGVudHJ5KSk7CiAgICAgfQogCiAgICAgbV9lbnRyaWVzLmNsZWFyKCk7
CiAgICAgbV9oYXNDdXJyZW50SW5kZXggPSBmYWxzZTsKLSAgICBtX3BhZ2UtPmRpZENoYW5nZUJh
Y2tGb3J3YXJkTGlzdChudWxscHRyLCBzdGQ6Om1vdmUocmVtb3ZlZEl0ZW1zKSk7CisgICAgbV9w
YWdlLT5kaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QobnVsbHB0ciwgV1RGOjptb3ZlKHJlbW92ZWRJ
dGVtcykpOwogfQogCiB2b2lkIFdlYkJhY2tGb3J3YXJkTGlzdDo6Y2xlYXIoKQpAQCAtMzUwLDcg
KzM1MCw3IEBAIHZvaWQgV2ViQmFja0ZvcndhcmRMaXN0OjpjbGVhcigpCiAKICAgICAgICAgbV9l
bnRyaWVzLmNsZWFyKCk7CiAgICAgICAgIG1faGFzQ3VycmVudEluZGV4ID0gZmFsc2U7Ci0gICAg
ICAgIG1fcGFnZS0+ZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KG51bGxwdHIsIHN0ZDo6bW92ZShy
ZW1vdmVkSXRlbXMpKTsKKyAgICAgICAgbV9wYWdlLT5kaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3Qo
bnVsbHB0ciwgV1RGOjptb3ZlKHJlbW92ZWRJdGVtcykpOwogCiAgICAgICAgIHJldHVybjsKICAg
ICB9CkBAIC0zNzcsNyArMzc3LDcgQEAgdm9pZCBXZWJCYWNrRm9yd2FyZExpc3Q6OmNsZWFyKCkK
ICAgICAgICAgbV9oYXNDdXJyZW50SW5kZXggPSBmYWxzZTsKICAgICB9CiAKLSAgICBtX3BhZ2Ut
PmRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdChudWxscHRyLCBzdGQ6Om1vdmUocmVtb3ZlZEl0ZW1z
KSk7CisgICAgbV9wYWdlLT5kaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QobnVsbHB0ciwgV1RGOjpt
b3ZlKHJlbW92ZWRJdGVtcykpOwogfQogCiB2b2lkIFdlYkJhY2tGb3J3YXJkTGlzdDo6cmVzdG9y
ZUZyb21TdGF0ZShCYWNrRm9yd2FyZExpc3RTdGF0ZSBiYWNrRm9yd2FyZExpc3RTdGF0ZSkKQEAg
LTM4NiwxMSArMzg2LDExIEBAIHZvaWQgV2ViQmFja0ZvcndhcmRMaXN0OjpyZXN0b3JlRnJvbVN0
YXRlKEJhY2tGb3J3YXJkTGlzdFN0YXRlIGJhY2tGb3J3YXJkTGlzdFN0CiAgICAgaXRlbXMucmVz
ZXJ2ZUluaXRpYWxDYXBhY2l0eShiYWNrRm9yd2FyZExpc3RTdGF0ZS5pdGVtcy5zaXplKCkpOwog
CiAgICAgZm9yIChhdXRvJiBiYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUgOiBiYWNrRm9yd2FyZExp
c3RTdGF0ZS5pdGVtcykKLSAgICAgICAgaXRlbXMudW5jaGVja2VkQXBwZW5kKFdlYkJhY2tGb3J3
YXJkTGlzdEl0ZW06OmNyZWF0ZShnZW5lcmF0ZVdlYkJhY2tGb3J3YXJkSXRlbUlEKCksIHN0ZDo6
bW92ZShiYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUpKSk7CisgICAgICAgIGl0ZW1zLnVuY2hlY2tl
ZEFwcGVuZChXZWJCYWNrRm9yd2FyZExpc3RJdGVtOjpjcmVhdGUoZ2VuZXJhdGVXZWJCYWNrRm9y
d2FyZEl0ZW1JRCgpLCBXVEY6Om1vdmUoYmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlKSkpOwogCiAg
ICAgbV9oYXNDdXJyZW50SW5kZXggPSAhIWJhY2tGb3J3YXJkTGlzdFN0YXRlLmN1cnJlbnRJbmRl
eDsKICAgICBtX2N1cnJlbnRJbmRleCA9IGJhY2tGb3J3YXJkTGlzdFN0YXRlLmN1cnJlbnRJbmRl
eC52YWx1ZU9yKDApOwotICAgIG1fZW50cmllcyA9IHN0ZDo6bW92ZShpdGVtcyk7CisgICAgbV9l
bnRyaWVzID0gV1RGOjptb3ZlKGl0ZW1zKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKaW5kZXggMDU4MzYxYy4uMDA2ZjE4
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcApAQCAtMTM2LDcgKzEz
Niw3IEBAIHZvaWQgV2ViQ29udGV4dDo6YXBwbHlQbGF0Zm9ybVNwZWNpZmljQ29uZmlndXJhdGlv
bkRlZmF1bHRzKFdlYkNvbnRleHRDb25maWd1cmF0CiBQYXNzUmVmUHRyPFdlYkNvbnRleHQ+IFdl
YkNvbnRleHQ6OmNyZWF0ZShXZWJDb250ZXh0Q29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQog
ewogICAgIEluaXRpYWxpemVXZWJLaXQyKCk7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJD
b250ZXh0KHN0ZDo6bW92ZShjb25maWd1cmF0aW9uKSkpOworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgV2ViQ29udGV4dChXVEY6Om1vdmUoY29uZmlndXJhdGlvbikpKTsKIH0KIAogc3RhdGljIFZl
Y3RvcjxXZWJDb250ZXh0Kj4mIGNvbnRleHRzKCkKQEAgLTE3MSw4ICsxNzEsOCBAQCBXZWJDb250
ZXh0OjpXZWJDb250ZXh0KFdlYkNvbnRleHRDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCiAj
aWYgVVNFKFNPVVApCiAgICAgLCBtX2luaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBD
b29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbikKICNlbmRpZgotICAg
ICwgbV93ZWJTUUxEYXRhYmFzZURpcmVjdG9yeShzdGQ6Om1vdmUoY29uZmlndXJhdGlvbi53ZWJT
UUxEYXRhYmFzZURpcmVjdG9yeSkpCi0gICAgLCBtX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5
KHN0ZDo6bW92ZShjb25maWd1cmF0aW9uLmluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KSkKKyAg
ICAsIG1fd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkoV1RGOjptb3ZlKGNvbmZpZ3VyYXRpb24ud2Vi
U1FMRGF0YWJhc2VEaXJlY3RvcnkpKQorICAgICwgbV9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9y
eShXVEY6Om1vdmUoY29uZmlndXJhdGlvbi5pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSkpCiAg
ICAgLCBtX3Nob3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbihmYWxzZSkKICAgICAsIG1fcHJv
Y2Vzc1Rlcm1pbmF0aW9uRW5hYmxlZCh0cnVlKQogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1Mp
CkBAIC0yOTYsNyArMjk2LDcgQEAgdm9pZCBXZWJDb250ZXh0OjpzZXRIaXN0b3J5Q2xpZW50KHN0
ZDo6dW5pcXVlX3B0cjxBUEk6Okhpc3RvcnlDbGllbnQ+IGhpc3RvcnlDbGkKICAgICBpZiAoIWhp
c3RvcnlDbGllbnQpCiAgICAgICAgIG1faGlzdG9yeUNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8
QVBJOjpIaXN0b3J5Q2xpZW50PigpOwogICAgIGVsc2UKLSAgICAgICAgbV9oaXN0b3J5Q2xpZW50
ID0gc3RkOjptb3ZlKGhpc3RvcnlDbGllbnQpOworICAgICAgICBtX2hpc3RvcnlDbGllbnQgPSBX
VEY6Om1vdmUoaGlzdG9yeUNsaWVudCk7CiB9CiAKIHZvaWQgV2ViQ29udGV4dDo6c2V0RG93bmxv
YWRDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6RG93bmxvYWRDbGllbnQ+IGRvd25sb2FkQ2xp
ZW50KQpAQCAtMzA0LDcgKzMwNCw3IEBAIHZvaWQgV2ViQ29udGV4dDo6c2V0RG93bmxvYWRDbGll
bnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6RG93bmxvYWRDbGllbnQ+IGRvd25sb2FkCiAgICAgaWYg
KCFkb3dubG9hZENsaWVudCkKICAgICAgICAgbV9kb3dubG9hZENsaWVudCA9IHN0ZDo6bWFrZV91
bmlxdWU8QVBJOjpEb3dubG9hZENsaWVudD4oKTsKICAgICBlbHNlCi0gICAgICAgIG1fZG93bmxv
YWRDbGllbnQgPSBzdGQ6Om1vdmUoZG93bmxvYWRDbGllbnQpOworICAgICAgICBtX2Rvd25sb2Fk
Q2xpZW50ID0gV1RGOjptb3ZlKGRvd25sb2FkQ2xpZW50KTsKIH0KIAogdm9pZCBXZWJDb250ZXh0
OjpzZXRQcm9jZXNzTW9kZWwoUHJvY2Vzc01vZGVsIHByb2Nlc3NNb2RlbCkKQEAgLTgyOCw3ICs4
MjgsNyBAQCBQYXNzUmVmUHRyPFdlYlBhZ2VQcm94eT4gV2ViQ29udGV4dDo6Y3JlYXRlV2ViUGFn
ZShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQYQogICAgICAgICAgICAgcHJvY2VzcyA9ICZj
cmVhdGVOZXdXZWJQcm9jZXNzUmVzcGVjdGluZ1Byb2Nlc3NDb3VudExpbWl0KCk7CiAgICAgfQog
Ci0gICAgcmV0dXJuIHByb2Nlc3MtPmNyZWF0ZVdlYlBhZ2UocGFnZUNsaWVudCwgc3RkOjptb3Zl
KGNvbmZpZ3VyYXRpb24pKTsKKyAgICByZXR1cm4gcHJvY2Vzcy0+Y3JlYXRlV2ViUGFnZShwYWdl
Q2xpZW50LCBXVEY6Om1vdmUoY29uZmlndXJhdGlvbikpOwogfQogCiBEb3dubG9hZFByb3h5KiBX
ZWJDb250ZXh0Ojpkb3dubG9hZChXZWJQYWdlUHJveHkqIGluaXRpYXRpbmdQYWdlLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCkBAIC0xMjM2LDcgKzEyMzYsNyBAQCB2b2lkIFdlYkNv
bnRleHQ6OmdldFN0YXRpc3RpY3ModWludDMyX3Qgc3RhdGlzdGljc01hc2ssIHN0ZDo6ZnVuY3Rp
b248dm9pZCAoSW1tdQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUmVmUHRyPFN0YXRp
c3RpY3NSZXF1ZXN0PiByZXF1ZXN0ID0gU3RhdGlzdGljc1JlcXVlc3Q6OmNyZWF0ZShEaWN0aW9u
YXJ5Q2FsbGJhY2s6OmNyZWF0ZShzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbikpKTsKKyAgICBS
ZWZQdHI8U3RhdGlzdGljc1JlcXVlc3Q+IHJlcXVlc3QgPSBTdGF0aXN0aWNzUmVxdWVzdDo6Y3Jl
YXRlKERpY3Rpb25hcnlDYWxsYmFjazo6Y3JlYXRlKFdURjo6bW92ZShjYWxsYmFja0Z1bmN0aW9u
KSkpOwogCiAgICAgaWYgKHN0YXRpc3RpY3NNYXNrICYgU3RhdGlzdGljc1JlcXVlc3RUeXBlV2Vi
Q29udGVudCkKICAgICAgICAgcmVxdWVzdFdlYkNvbnRlbnRTdGF0aXN0aWNzKHJlcXVlc3QuZ2V0
KCkpOwpAQCAtMTM4NCwxNyArMTM4NCwxNyBAQCB2b2lkIFdlYkNvbnRleHQ6OnBsdWdpbkluZm9T
dG9yZURpZExvYWRQbHVnaW5zKFBsdWdpbkluZm9TdG9yZSogc3RvcmUpCiAgICAgICAgIG1pbWVU
eXBlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHBsdWdpbk1vZHVsZS5pbmZvLm1pbWVzLnNpemUo
KSk7CiAgICAgICAgIGZvciAoY29uc3QgYXV0byYgbWltZUNsYXNzSW5mbyA6IHBsdWdpbk1vZHVs
ZS5pbmZvLm1pbWVzKQogICAgICAgICAgICAgbWltZVR5cGVzLnVuY2hlY2tlZEFwcGVuZChBUEk6
OlN0cmluZzo6Y3JlYXRlKG1pbWVDbGFzc0luZm8udHlwZSkpOwotICAgICAgICBtYXAuc2V0KEFT
Q0lJTGl0ZXJhbCgibWltZXMiKSwgQVBJOjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShtaW1lVHlw
ZXMpKSk7CisgICAgICAgIG1hcC5zZXQoQVNDSUlMaXRlcmFsKCJtaW1lcyIpLCBBUEk6OkFycmF5
OjpjcmVhdGUoV1RGOjptb3ZlKG1pbWVUeXBlcykpKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgICAgICBtYXAuc2V0KEFTQ0lJTGl0ZXJhbCgiYnVuZGxlSWQiKSwgQVBJOjpTdHJpbmc6OmNy
ZWF0ZShwbHVnaW5Nb2R1bGUuYnVuZGxlSWRlbnRpZmllcikpOwogICAgICAgICBtYXAuc2V0KEFT
Q0lJTGl0ZXJhbCgidmVyc2lvbiIpLCBBUEk6OlN0cmluZzo6Y3JlYXRlKHBsdWdpbk1vZHVsZS52
ZXJzaW9uU3RyaW5nKSk7CiAjZW5kaWYKIAotICAgICAgICBwbHVnaW5zLnVuY2hlY2tlZEFwcGVu
ZChJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoc3RkOjptb3ZlKG1hcCkpKTsKKyAgICAgICAg
cGx1Z2lucy51bmNoZWNrZWRBcHBlbmQoSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6
bW92ZShtYXApKSk7CiAgICAgfQogCi0gICAgbV9jbGllbnQucGx1Z0luSW5mb3JtYXRpb25CZWNh
bWVBdmFpbGFibGUodGhpcywgQVBJOjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShwbHVnaW5zKSku
Z2V0KCkpOworICAgIG1fY2xpZW50LnBsdWdJbkluZm9ybWF0aW9uQmVjYW1lQXZhaWxhYmxlKHRo
aXMsIEFQSTo6QXJyYXk6OmNyZWF0ZShXVEY6Om1vdmUocGx1Z2lucykpLmdldCgpKTsKIH0KICNl
bmRpZgogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tp
ZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFu
YWdlclByb3h5LmNwcAppbmRleCBjN2Q0NWM4Li4zYzM0ZDcyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcApAQCAtMTAxLDcgKzEw
MSw3IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpkZXJlZldlYkNvbnRleHRTdXBwbGVt
ZW50KCkKIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEhvc3RuYW1lc1dpdGhDb29r
aWVzKHN0ZDo6ZnVuY3Rpb248dm9pZCAoQVBJOjpBcnJheSosIENhbGxiYWNrQmFzZTo6RXJyb3Ip
PiBjYWxsYmFja0Z1bmN0aW9uKQogewotICAgIFJlZlB0cjxBcnJheUNhbGxiYWNrPiBjYWxsYmFj
ayA9IEFycmF5Q2FsbGJhY2s6OmNyZWF0ZShzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwor
ICAgIFJlZlB0cjxBcnJheUNhbGxiYWNrPiBjYWxsYmFjayA9IEFycmF5Q2FsbGJhY2s6OmNyZWF0
ZShXVEY6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQg
PSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOwogICAgIG1fYXJyYXlDYWxsYmFja3Muc2V0KGNhbGxi
YWNrSUQsIGNhbGxiYWNrLnJlbGVhc2UoKSk7CiAKQEAgLTE2Myw3ICsxNjMsNyBAQCB2b2lkIFdl
YkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2ll
QWNjZXB0UG9saWN5IHBvbAogCiB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeShzdGQ6OmZ1bmN0aW9uPHZvaWQgKEhUVFBDb29raWVBY2NlcHRQb2xp
Y3ksIENhbGxiYWNrQmFzZTo6RXJyb3IpPiBjYWxsYmFja0Z1bmN0aW9uKQogewotICAgIFJlZlB0
cjxIVFRQQ29va2llQWNjZXB0UG9saWN5Q2FsbGJhY2s+IGNhbGxiYWNrID0gSFRUUENvb2tpZUFj
Y2VwdFBvbGljeUNhbGxiYWNrOjpjcmVhdGUoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsK
KyAgICBSZWZQdHI8SFRUUENvb2tpZUFjY2VwdFBvbGljeUNhbGxiYWNrPiBjYWxsYmFjayA9IEhU
VFBDb29raWVBY2NlcHRQb2xpY3lDYWxsYmFjazo6Y3JlYXRlKFdURjo6bW92ZShjYWxsYmFja0Z1
bmN0aW9uKSk7CiAKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNr
SUQoKTsKICAgICBtX2h0dHBDb29raWVBY2NlcHRQb2xpY3lDYWxsYmFja3Muc2V0KGNhbGxiYWNr
SUQsIGNhbGxiYWNrLnJlbGVhc2UoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5LmNwcAppbmRleCBjMjBkZjJmLi41OTUzYTIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQ
cm94eS5jcHAKQEAgLTE1NCw3ICsxNTQsNyBAQCB2b2lkIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5
OjpkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkKIAogdm9pZCBXZWJEYXRhYmFzZU1hbmFnZXJQ
cm94eTo6Z2V0RGF0YWJhc2VzQnlPcmlnaW4oc3RkOjpmdW5jdGlvbjx2b2lkIChBUEk6OkFycmF5
KiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+IGNhbGxiYWNrRnVuY3Rpb24pCiB7Ci0gICAgUmVmUHRy
PEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0gQXJyYXlDYWxsYmFjazo6Y3JlYXRlKHN0ZDo6bW92
ZShjYWxsYmFja0Z1bmN0aW9uKSk7CisgICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNr
ID0gQXJyYXlDYWxsYmFjazo6Y3JlYXRlKFdURjo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAg
ICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7CiAgICAgbV9h
cnJheUNhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgY2FsbGJhY2sucmVsZWFzZSgpKTsKIApAQCAt
MTkwLDI0ICsxOTAsMjQgQEAgdm9pZCBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eTo6ZGlkR2V0RGF0
YWJhc2VzQnlPcmlnaW4oY29uc3QgVmVjdG9yPE9yaWdpbkFuZERhdGEKICAgICAgICAgICAgIGlm
IChkYXRhYmFzZURldGFpbHMubW9kaWZpY2F0aW9uVGltZSgpKQogICAgICAgICAgICAgICAgIGRl
dGFpbHNNYXAuc2V0KGRhdGFiYXNlRGV0YWlsc01vZGlmaWNhdGlvblRpbWVLZXkoKSwgQVBJOjpE
b3VibGU6OmNyZWF0ZShkYXRhYmFzZURldGFpbHMubW9kaWZpY2F0aW9uVGltZSgpKSk7CiAKLSAg
ICAgICAgICAgIGRhdGFiYXNlcy51bmNoZWNrZWRBcHBlbmQoSW1tdXRhYmxlRGljdGlvbmFyeTo6
Y3JlYXRlKHN0ZDo6bW92ZShkZXRhaWxzTWFwKSkpOworICAgICAgICAgICAgZGF0YWJhc2VzLnVu
Y2hlY2tlZEFwcGVuZChJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKGRldGFp
bHNNYXApKSk7CiAgICAgICAgIH0KIAogICAgICAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPEFQ
STo6T2JqZWN0Pj4gb3JpZ2luQW5kRGF0YWJhc2VzTWFwOwogICAgICAgICBvcmlnaW5BbmREYXRh
YmFzZXNNYXAuc2V0KG9yaWdpbktleSgpLCBvcmlnaW4pOwogICAgICAgICBvcmlnaW5BbmREYXRh
YmFzZXNNYXAuc2V0KG9yaWdpblF1b3RhS2V5KCksIEFQSTo6VUludDY0OjpjcmVhdGUob3JpZ2lu
QW5kRGF0YWJhc2VzLm9yaWdpblF1b3RhKSk7CiAgICAgICAgIG9yaWdpbkFuZERhdGFiYXNlc01h
cC5zZXQob3JpZ2luVXNhZ2VLZXkoKSwgQVBJOjpVSW50NjQ6OmNyZWF0ZShvcmlnaW5BbmREYXRh
YmFzZXMub3JpZ2luVXNhZ2UpKTsKLSAgICAgICAgb3JpZ2luQW5kRGF0YWJhc2VzTWFwLnNldChk
YXRhYmFzZURldGFpbHNLZXkoKSwgQVBJOjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShkYXRhYmFz
ZXMpKSk7CisgICAgICAgIG9yaWdpbkFuZERhdGFiYXNlc01hcC5zZXQoZGF0YWJhc2VEZXRhaWxz
S2V5KCksIEFQSTo6QXJyYXk6OmNyZWF0ZShXVEY6Om1vdmUoZGF0YWJhc2VzKSkpOwogCi0gICAg
ICAgIHJlc3VsdC51bmNoZWNrZWRBcHBlbmQoSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKHN0
ZDo6bW92ZShvcmlnaW5BbmREYXRhYmFzZXNNYXApKSk7CisgICAgICAgIHJlc3VsdC51bmNoZWNr
ZWRBcHBlbmQoSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShvcmlnaW5BbmRE
YXRhYmFzZXNNYXApKSk7CiAgICAgfQogCi0gICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dp
dGhSZXR1cm5WYWx1ZShBUEk6OkFycmF5OjpjcmVhdGUoc3RkOjptb3ZlKHJlc3VsdCkpLmdldCgp
KTsKKyAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKEFQSTo6QXJy
YXk6OmNyZWF0ZShXVEY6Om1vdmUocmVzdWx0KSkuZ2V0KCkpOwogfQogCiB2b2lkIFdlYkRhdGFi
YXNlTWFuYWdlclByb3h5OjpnZXREYXRhYmFzZU9yaWdpbnMoc3RkOjpmdW5jdGlvbjx2b2lkIChB
UEk6OkFycmF5KiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+IGNhbGxiYWNrRnVuY3Rpb24pCiB7Ci0g
ICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0gQXJyYXlDYWxsYmFjazo6Y3JlYXRl
KHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CisgICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+
IGNhbGxiYWNrID0gQXJyYXlDYWxsYmFjazo6Y3JlYXRlKFdURjo6bW92ZShjYWxsYmFja0Z1bmN0
aW9uKSk7CiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7
CiAgICAgbV9hcnJheUNhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgY2FsbGJhY2sucmVsZWFzZSgp
KTsKIApAQCAtMjI4LDcgKzIyOCw3IEBAIHZvaWQgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk6OmRp
ZEdldERhdGFiYXNlT3JpZ2lucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3JpZ2luCiAgICAgZm9y
IChjb25zdCBhdXRvJiBvcmlnaW5JZGVudGlmaWVyIDogb3JpZ2luSWRlbnRpZmllcnMpCiAgICAg
ICAgIHNlY3VyaXR5T3JpZ2lucy51bmNoZWNrZWRBcHBlbmQoV2ViU2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZShTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbURhdGFiYXNlSWRlbnRpZmllcihvcmlnaW5J
ZGVudGlmaWVyKSkpOwogCi0gICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5W
YWx1ZShBUEk6OkFycmF5OjpjcmVhdGUoc3RkOjptb3ZlKHNlY3VyaXR5T3JpZ2lucykpLmdldCgp
KTsKKyAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKEFQSTo6QXJy
YXk6OmNyZWF0ZShXVEY6Om1vdmUoc2VjdXJpdHlPcmlnaW5zKSkuZ2V0KCkpOwogfQogCiB2b2lk
IFdlYkRhdGFiYXNlTWFuYWdlclByb3h5OjpkZWxldGVEYXRhYmFzZVdpdGhOYW1lRm9yT3JpZ2lu
KGNvbnN0IFN0cmluZyYgZGF0YWJhc2VJZGVudGlmaWVyLCBXZWJTZWN1cml0eU9yaWdpbiogb3Jp
Z2luKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZvcm1DbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZvcm1DbGllbnQuY3BwCmluZGV4IDEy
ZjBjNzYuLmRmMzM4MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJG
b3JtQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRm9ybUNsaWVu
dC5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgYm9vbCBXZWJGb3JtQ2xpZW50Ojp3aWxsU3VibWl0Rm9y
bShXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBXZWIKICAgICBJbW11
dGFibGVEaWN0aW9uYXJ5OjpNYXBUeXBlIG1hcDsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHRleHRGaWVsZFZhbHVlcy5zaXplKCk7ICsraSkKICAgICAgICAgbWFwLnNldCh0ZXh0RmllbGRW
YWx1ZXNbaV0uZmlyc3QsIEFQSTo6U3RyaW5nOjpjcmVhdGUodGV4dEZpZWxkVmFsdWVzW2ldLnNl
Y29uZCkpOwotICAgIFJlZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiB0ZXh0RmllbGRzTWFwID0g
SW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKHN0ZDo6bW92ZShtYXApKTsKKyAgICBSZWZQdHI8
SW1tdXRhYmxlRGljdGlvbmFyeT4gdGV4dEZpZWxkc01hcCA9IEltbXV0YWJsZURpY3Rpb25hcnk6
OmNyZWF0ZShXVEY6Om1vdmUobWFwKSk7CiAKICAgICBtX2NsaWVudC53aWxsU3VibWl0Rm9ybSh0
b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSShzb3VyY2VGcmFtZSksIHRvQVBJKHRleHRG
aWVsZHNNYXAuZ2V0KCkpLCB0b0FQSSh1c2VyRGF0YSksIHRvQVBJKGxpc3RlbmVyKSwgbV9jbGll
bnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHcmFtbWFyRGV0YWlsLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJHcmFtbWFyRGV0YWlsLmNwcAppbmRleCAwNjRmYzM1Li43NWIwMzRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR3JhbW1hckRldGFpbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdyYW1tYXJEZXRhaWwuY3BwCkBAIC02
MSw3ICs2MSw3IEBAIFBhc3NSZWZQdHI8QVBJOjpBcnJheT4gV2ViR3JhbW1hckRldGFpbDo6Z3Vl
c3NlcygpIGNvbnN0CiAgICAgVmVjdG9yPFJlZlB0cjxBUEk6Ok9iamVjdD4gPiB3a0d1ZXNzZXMo
bnVtR3Vlc3Nlcyk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bUd1ZXNzZXM7ICsr
aSkKICAgICAgICAgd2tHdWVzc2VzW2ldID0gQVBJOjpTdHJpbmc6OmNyZWF0ZShtX2dyYW1tYXJE
ZXRhaWwuZ3Vlc3Nlc1tpXSk7Ci0gICAgcmV0dXJuIEFQSTo6QXJyYXk6OmNyZWF0ZShzdGQ6Om1v
dmUod2tHdWVzc2VzKSk7CisgICAgcmV0dXJuIEFQSTo6QXJyYXk6OmNyZWF0ZShXVEY6Om1vdmUo
d2tHdWVzc2VzKSk7CiB9CiAKIFdlYkdyYW1tYXJEZXRhaWw6OldlYkdyYW1tYXJEZXRhaWwoY29u
c3QgV2ViQ29yZTo6R3JhbW1hckRldGFpbCYgZ3JhbW1hckRldGFpbCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcAppbmRl
eCA1MWQzODE3Li5kZmYzNmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC05NiwxMiArOTYsMTIgQEAgc3Rh
dGljIHZvaWQgZGlkR2V0S2V5VmFsdWVTdG9yYWdlT3JpZ2lucyhjb25zdCBWZWN0b3I8UmVmUHRy
PFNlY3VyaXR5T3JpZ2luPj4mIHMKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2VjdXJp
dHlPcmlnaW5zLnNpemUoKTsgKytpKQogICAgICAgICB3ZWJTZWN1cml0eU9yaWdpbnMudW5jaGVj
a2VkQXBwZW5kKFdlYlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoc2VjdXJpdHlPcmlnaW5zW2ldKSk7
CiAKLSAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKEFQSTo6QXJy
YXk6OmNyZWF0ZShzdGQ6Om1vdmUod2ViU2VjdXJpdHlPcmlnaW5zKSkuZ2V0KCkpOworICAgIGNh
bGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUoQVBJOjpBcnJheTo6Y3JlYXRl
KFdURjo6bW92ZSh3ZWJTZWN1cml0eU9yaWdpbnMpKS5nZXQoKSk7CiB9CiAKIHZvaWQgV2ViS2V5
VmFsdWVTdG9yYWdlTWFuYWdlcjo6Z2V0S2V5VmFsdWVTdG9yYWdlT3JpZ2lucyhzdGQ6OmZ1bmN0
aW9uPHZvaWQgKEFQSTo6QXJyYXkqLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4gY2FsbGJhY2tGdW5j
dGlvbikKIHsKLSAgICBjb250ZXh0KCktPnN0b3JhZ2VNYW5hZ2VyKCkuZ2V0T3JpZ2lucyhSdW5M
b29wOjptYWluKCksIEFycmF5Q2FsbGJhY2s6OmNyZWF0ZShzdGQ6Om1vdmUoY2FsbGJhY2tGdW5j
dGlvbikpLmxlYWtSZWYoKSwgZGlkR2V0S2V5VmFsdWVTdG9yYWdlT3JpZ2lucyk7CisgICAgY29u
dGV4dCgpLT5zdG9yYWdlTWFuYWdlcigpLmdldE9yaWdpbnMoUnVuTG9vcDo6bWFpbigpLCBBcnJh
eUNhbGxiYWNrOjpjcmVhdGUoV1RGOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKS5sZWFrUmVmKCks
IGRpZEdldEtleVZhbHVlU3RvcmFnZU9yaWdpbnMpOwogfQogCiBzdGF0aWMgdm9pZCBkaWRHZXRT
dG9yYWdlRGV0YWlsc0J5T3JpZ2luKGNvbnN0IFZlY3RvcjxMb2NhbFN0b3JhZ2VEZXRhaWxzPiYg
c3RvcmFnZURldGFpbHMsIHZvaWQqIGNvbnRleHQpCkBAIC0xMjIsMTUgKzEyMiwxNSBAQCBzdGF0
aWMgdm9pZCBkaWRHZXRTdG9yYWdlRGV0YWlsc0J5T3JpZ2luKGNvbnN0IFZlY3RvcjxMb2NhbFN0
b3JhZ2VEZXRhaWxzPiYgc3RvcgogICAgICAgICBpZiAob3JpZ2luRGV0YWlscy5tb2RpZmljYXRp
b25UaW1lKQogICAgICAgICAgICAgZGV0YWlsc01hcC5zZXQoV2ViS2V5VmFsdWVTdG9yYWdlTWFu
YWdlcjo6bW9kaWZpY2F0aW9uVGltZUtleSgpLCBBUEk6OkRvdWJsZTo6Y3JlYXRlKG9yaWdpbkRl
dGFpbHMubW9kaWZpY2F0aW9uVGltZSkpOwogCi0gICAgICAgIHJlc3VsdC51bmNoZWNrZWRBcHBl
bmQoSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKHN0ZDo6bW92ZShkZXRhaWxzTWFwKSkpOwor
ICAgICAgICByZXN1bHQudW5jaGVja2VkQXBwZW5kKEltbXV0YWJsZURpY3Rpb25hcnk6OmNyZWF0
ZShXVEY6Om1vdmUoZGV0YWlsc01hcCkpKTsKICAgICB9CiAKLSAgICBjYWxsYmFjay0+cGVyZm9y
bUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKEFQSTo6QXJyYXk6OmNyZWF0ZShzdGQ6Om1vdmUocmVz
dWx0KSkuZ2V0KCkpOworICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFs
dWUoQVBJOjpBcnJheTo6Y3JlYXRlKFdURjo6bW92ZShyZXN1bHQpKS5nZXQoKSk7CiB9CiAKIHZv
aWQgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcjo6Z2V0U3RvcmFnZURldGFpbHNCeU9yaWdpbihz
dGQ6OmZ1bmN0aW9uPHZvaWQgKEFQSTo6QXJyYXkqLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4gY2Fs
bGJhY2tGdW5jdGlvbikKIHsKLSAgICBjb250ZXh0KCktPnN0b3JhZ2VNYW5hZ2VyKCkuZ2V0U3Rv
cmFnZURldGFpbHNCeU9yaWdpbihSdW5Mb29wOjptYWluKCksIEFycmF5Q2FsbGJhY2s6OmNyZWF0
ZShzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbikpLmxlYWtSZWYoKSwgZGlkR2V0U3RvcmFnZURl
dGFpbHNCeU9yaWdpbik7CisgICAgY29udGV4dCgpLT5zdG9yYWdlTWFuYWdlcigpLmdldFN0b3Jh
Z2VEZXRhaWxzQnlPcmlnaW4oUnVuTG9vcDo6bWFpbigpLCBBcnJheUNhbGxiYWNrOjpjcmVhdGUo
V1RGOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKS5sZWFrUmVmKCksIGRpZEdldFN0b3JhZ2VEZXRh
aWxzQnlPcmlnaW4pOwogfQogCiB2b2lkIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXI6OmRlbGV0
ZUVudHJpZXNGb3JPcmlnaW4oV2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmNwcApp
bmRleCAzYjNmNWFiLi5kNTJjYjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCkBAIC04Myw3ICs4Myw3IEBAIHZv
aWQgV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eTo6ZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVudCgp
CiAKIHZvaWQgV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eTo6Z2V0SG9zdG5hbWVzV2l0aE1lZGlh
Q2FjaGUoc3RkOjpmdW5jdGlvbjx2b2lkIChBUEk6OkFycmF5KiwgQ2FsbGJhY2tCYXNlOjpFcnJv
cik+IGNhbGxiYWNrRnVuY3Rpb24pCiB7Ci0gICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxi
YWNrID0gQXJyYXlDYWxsYmFjazo6Y3JlYXRlKHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7
CisgICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0gQXJyYXlDYWxsYmFjazo6Y3Jl
YXRlKFdURjo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgdWludDY0X3QgY2FsbGJhY2tJ
RCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7CiAgICAgbV9hcnJheUNhbGxiYWNrcy5zZXQoY2Fs
bGJhY2tJRCwgY2FsbGJhY2sucmVsZWFzZSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDA1NjA0MWYu
LjJkMmM1MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eS5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgdm9pZCBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5OjpkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkKIAogdm9pZCBXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5OjpnZXRPcmlnaW5zKFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVz
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKEFQSTo6QXJyYXkqLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4g
Y2FsbGJhY2tGdW5jdGlvbikKIHsKLSAgICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2FsbGJhY2sg
PSBBcnJheUNhbGxiYWNrOjpjcmVhdGUoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKKyAg
ICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2FsbGJhY2sgPSBBcnJheUNhbGxiYWNrOjpjcmVhdGUo
V1RGOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKIAogICAgIGlmICghY29udGV4dCgpKSB7CiAg
ICAgICAgIGNhbGxiYWNrLT5pbnZhbGlkYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwCmluZGV4IDJmYzM0MGYuLmFh
ZWNlYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlQ29udGV4
dE1lbnVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlQ29u
dGV4dE1lbnVDbGllbnQuY3BwCkBAIC01NCw5ICs1NCw5IEBAIGJvb2wgV2ViUGFnZUNvbnRleHRN
ZW51Q2xpZW50OjpnZXRDb250ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnUoV2ViUGFnZVByb3h5KiBw
YWdlCiAgICAgV0tBcnJheVJlZiBuZXdNZW51ID0gbnVsbHB0cjsKICAgICBpZiAobV9jbGllbnQu
YmFzZS52ZXJzaW9uID49IDIpIHsKICAgICAgICAgUmVmUHRyPFdlYkhpdFRlc3RSZXN1bHQ+IHdl
YkhpdFRlc3RSZXN1bHQgPSBXZWJIaXRUZXN0UmVzdWx0OjpjcmVhdGUoaGl0VGVzdFJlc3VsdERh
dGEpOwotICAgICAgICBtX2NsaWVudC5nZXRDb250ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnUodG9B
UEkocGFnZSksIHRvQVBJKEFQSTo6QXJyYXk6OmNyZWF0ZShzdGQ6Om1vdmUocHJvcG9zZWRNZW51
SXRlbXMpKS5nZXQoKSksICZuZXdNZW51LCB0b0FQSSh3ZWJIaXRUZXN0UmVzdWx0LmdldCgpKSwg
dG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICBtX2Ns
aWVudC5nZXRDb250ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnUodG9BUEkocGFnZSksIHRvQVBJKEFQ
STo6QXJyYXk6OmNyZWF0ZShXVEY6Om1vdmUocHJvcG9zZWRNZW51SXRlbXMpKS5nZXQoKSksICZu
ZXdNZW51LCB0b0FQSSh3ZWJIaXRUZXN0UmVzdWx0LmdldCgpKSwgdG9BUEkodXNlckRhdGEpLCBt
X2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgIH0gZWxzZQotICAgICAgICBtX2NsaWVudC5n
ZXRDb250ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnVfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCh0b0FQ
SShwYWdlKSwgdG9BUEkoQVBJOjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShwcm9wb3NlZE1lbnVJ
dGVtcykpLmdldCgpKSwgJm5ld01lbnUsIHRvQVBJKHVzZXJEYXRhKSwgbV9jbGllbnQuYmFzZS5j
bGllbnRJbmZvKTsKKyAgICAgICAgbV9jbGllbnQuZ2V0Q29udGV4dE1lbnVGcm9tUHJvcG9zZWRN
ZW51X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAodG9BUEkocGFnZSksIHRvQVBJKEFQSTo6QXJyYXk6
OmNyZWF0ZShXVEY6Om1vdmUocHJvcG9zZWRNZW51SXRlbXMpKS5nZXQoKSksICZuZXdNZW51LCB0
b0FQSSh1c2VyRGF0YSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAKICAgICBSZWZQdHI8
QVBJOjpBcnJheT4gYXJyYXkgPSBhZG9wdFJlZih0b0ltcGwobmV3TWVudSkpOwogICAgIApAQCAt
MTA0LDcgKzEwNCw3IEBAIGJvb2wgV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50OjpzaG93Q29udGV4
dE1lbnUoV2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBXZWJDb3JlCiAgICAgZm9yIChjb25zdCBh
dXRvJiBtZW51SXRlbSA6IG1lbnVJdGVtc1ZlY3RvcikKICAgICAgICAgbWVudUl0ZW1zLnVuY2hl
Y2tlZEFwcGVuZChXZWJDb250ZXh0TWVudUl0ZW06OmNyZWF0ZShtZW51SXRlbSkpOwogCi0gICAg
bV9jbGllbnQuc2hvd0NvbnRleHRNZW51KHRvQVBJKHBhZ2UpLCB0b0FQSShtZW51TG9jYXRpb24p
LCB0b0FQSShBUEk6OkFycmF5OjpjcmVhdGUoc3RkOjptb3ZlKG1lbnVJdGVtcykpLmdldCgpKSwg
bV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICBtX2NsaWVudC5zaG93Q29udGV4dE1lbnUo
dG9BUEkocGFnZSksIHRvQVBJKG1lbnVMb2NhdGlvbiksIHRvQVBJKEFQSTo6QXJyYXk6OmNyZWF0
ZShXVEY6Om1vdmUobWVudUl0ZW1zKSkuZ2V0KCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8p
OwogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCmluZGV4IGYwMGM0OTAuLjIwOGQ5YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMTUsMTIgKzIxNSwxMiBAQCBzdGQ6OnVuaXF1ZV9w
dHI8RXhjZWVkZWREYXRhYmFzZVF1b3RhUmVjb3Jkczo6UmVjb3JkPiBFeGNlZWRlZERhdGFiYXNl
UXVvdGFSZWNvcgogICAgIHJlY29yZC0+Y3VycmVudERhdGFiYXNlVXNhZ2UgPSBjdXJyZW50RGF0
YWJhc2VVc2FnZTsKICAgICByZWNvcmQtPmV4cGVjdGVkVXNhZ2UgPSBleHBlY3RlZFVzYWdlOwog
ICAgIHJlY29yZC0+cmVwbHkgPSByZXBseTsKLSAgICByZXR1cm4gc3RkOjptb3ZlKHJlY29yZCk7
CisgICAgcmV0dXJuIFdURjo6bW92ZShyZWNvcmQpOwogfQogCiB2b2lkIEV4Y2VlZGVkRGF0YWJh
c2VRdW90YVJlY29yZHM6OmFkZChzdGQ6OnVuaXF1ZV9wdHI8RXhjZWVkZWREYXRhYmFzZVF1b3Rh
UmVjb3Jkczo6UmVjb3JkPiByZWNvcmQpCiB7Ci0gICAgbV9yZWNvcmRzLmFwcGVuZChzdGQ6Om1v
dmUocmVjb3JkKSk7CisgICAgbV9yZWNvcmRzLmFwcGVuZChXVEY6Om1vdmUocmVjb3JkKSk7CiB9
CiAKIEV4Y2VlZGVkRGF0YWJhc2VRdW90YVJlY29yZHM6OlJlY29yZCogRXhjZWVkZWREYXRhYmFz
ZVF1b3RhUmVjb3Jkczo6bmV4dCgpCkBAIC00NzUsNyArNDc1LDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnNldExvYWRlckNsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpMb2FkZXJDbGllbnQ+IGxv
YWRlckNsaWUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fbG9hZGVyQ2xpZW50ID0g
c3RkOjptb3ZlKGxvYWRlckNsaWVudCk7CisgICAgbV9sb2FkZXJDbGllbnQgPSBXVEY6Om1vdmUo
bG9hZGVyQ2xpZW50KTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnNldFBvbGljeUNsaWVudChz
dGQ6OnVuaXF1ZV9wdHI8QVBJOjpQb2xpY3lDbGllbnQ+IHBvbGljeUNsaWVudCkKQEAgLTQ4NSw3
ICs0ODUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0UG9saWN5Q2xpZW50KHN0ZDo6dW5pcXVl
X3B0cjxBUEk6OlBvbGljeUNsaWVudD4gcG9saWN5Q2xpZQogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgbV9wb2xpY3lDbGllbnQgPSBzdGQ6Om1vdmUocG9saWN5Q2xpZW50KTsKKyAgICBt
X3BvbGljeUNsaWVudCA9IFdURjo6bW92ZShwb2xpY3lDbGllbnQpOwogfQogCiB2b2lkIFdlYlBh
Z2VQcm94eTo6c2V0Rm9ybUNsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpGb3JtQ2xpZW50PiBm
b3JtQ2xpZW50KQpAQCAtNDk1LDcgKzQ5NSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRGb3Jt
Q2xpZW50KHN0ZDo6dW5pcXVlX3B0cjxBUEk6OkZvcm1DbGllbnQ+IGZvcm1DbGllbnQpCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2Zvcm1DbGllbnQgPSBzdGQ6Om1vdmUoZm9ybUNs
aWVudCk7CisgICAgbV9mb3JtQ2xpZW50ID0gV1RGOjptb3ZlKGZvcm1DbGllbnQpOwogfQogCiB2
b2lkIFdlYlBhZ2VQcm94eTo6c2V0VUlDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6VUlDbGll
bnQ+IHVpQ2xpZW50KQpAQCAtNTA1LDcgKzUwNSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRV
SUNsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpVSUNsaWVudD4gdWlDbGllbnQpCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBtX3VpQ2xpZW50ID0gc3RkOjptb3ZlKHVpQ2xpZW50KTsK
KyAgICBtX3VpQ2xpZW50ID0gV1RGOjptb3ZlKHVpQ2xpZW50KTsKIAogICAgIGlmICghaXNWYWxp
ZCgpKQogICAgICAgICByZXR1cm47CkBAIC01MjEsNyArNTIxLDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnNldEZpbmRDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6RmluZENsaWVudD4gZmluZENs
aWVudCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBtX2ZpbmRDbGllbnQgPSBz
dGQ6Om1vdmUoZmluZENsaWVudCk7CisgICAgbV9maW5kQ2xpZW50ID0gV1RGOjptb3ZlKGZpbmRD
bGllbnQpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6aW5pdGlhbGl6ZUZpbmRNYXRjaGVzQ2xp
ZW50KGNvbnN0IFdLUGFnZUZpbmRNYXRjaGVzQ2xpZW50QmFzZSogY2xpZW50KQpAQCAtOTM0LDcg
KzkzNCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp0cnlSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQog
CiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdlYkJhY2tGb3J3
YXJkTGlzdEl0ZW0qIGFkZGVkLCBWZWN0b3I8UmVmUHRyPFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0+
PiByZW1vdmVkKQogewotICAgIG1fbG9hZGVyQ2xpZW50LT5kaWRDaGFuZ2VCYWNrRm9yd2FyZExp
c3QodGhpcywgYWRkZWQsIHN0ZDo6bW92ZShyZW1vdmVkKSk7CisgICAgbV9sb2FkZXJDbGllbnQt
PmRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdCh0aGlzLCBhZGRlZCwgV1RGOjptb3ZlKHJlbW92ZWQp
KTsKIAogICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX3BhZ2VMb2FkU3RhdGUudHJhbnNhY3Rpb24o
KTsKIApAQCAtMTI1Nyw3ICsxMjU3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnZhbGlkYXRlQ29t
bWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNr
cy5wdXQoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBzdGQ6Om1ha2VfdW5pcXVlPFByb2Nl
c3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2VuPihtX3Byb2Nlc3MtPnRocm90dGxl
cigpKSk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChXVEY6Om1v
dmUoY2FsbGJhY2tGdW5jdGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxlcjo6
QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4+KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKICAgICBt
X3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlZhbGlkYXRlQ29tbWFuZChjb21tYW5k
TmFtZSwgY2FsbGJhY2tJRCksIG1fcGFnZUlEKTsKIH0KIApAQCAtMTQ4MSw3ICsxNDgxLDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgTmF0aXZlV2ViV2hlZWxF
dmVudCYgZXZlbnQpCiAKICAgICBhdXRvIGNvYWxlc2NlZFdoZWVsRXZlbnQgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFZlY3RvcjxOYXRpdmVXZWJXaGVlbEV2ZW50Pj4oKTsKICAgICBjb2FsZXNjZWRXaGVl
bEV2ZW50LT5hcHBlbmQoZXZlbnQpOwotICAgIG1fY3VycmVudGx5UHJvY2Vzc2VkV2hlZWxFdmVu
dHMuYXBwZW5kKHN0ZDo6bW92ZShjb2FsZXNjZWRXaGVlbEV2ZW50KSk7CisgICAgbV9jdXJyZW50
bHlQcm9jZXNzZWRXaGVlbEV2ZW50cy5hcHBlbmQoV1RGOjptb3ZlKGNvYWxlc2NlZFdoZWVsRXZl
bnQpKTsKICAgICBzZW5kV2hlZWxFdmVudChldmVudCk7CiB9CiAKQEAgLTE0ODksNyArMTQ4OSw3
IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpwcm9jZXNzTmV4dFF1ZXVlZFdoZWVsRXZlbnQoKQogewog
ICAgIGF1dG8gbmV4dENvYWxlc2NlZEV2ZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxWZWN0b3I8TmF0
aXZlV2ViV2hlZWxFdmVudD4+KCk7CiAgICAgV2ViV2hlZWxFdmVudCBuZXh0V2hlZWxFdmVudCA9
IGNvYWxlc2NlZFdoZWVsRXZlbnQobV93aGVlbEV2ZW50UXVldWUsICpuZXh0Q29hbGVzY2VkRXZl
bnQuZ2V0KCkpOwotICAgIG1fY3VycmVudGx5UHJvY2Vzc2VkV2hlZWxFdmVudHMuYXBwZW5kKHN0
ZDo6bW92ZShuZXh0Q29hbGVzY2VkRXZlbnQpKTsKKyAgICBtX2N1cnJlbnRseVByb2Nlc3NlZFdo
ZWVsRXZlbnRzLmFwcGVuZChXVEY6Om1vdmUobmV4dENvYWxlc2NlZEV2ZW50KSk7CiAgICAgc2Vu
ZFdoZWVsRXZlbnQobmV4dFdoZWVsRXZlbnQpOwogfQogCkBAIC0xODQ4LDcgKzE4NDgsNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6cmVzdG9yZUZyb21TZXNzaW9uU3RhdGVEYXRhKEFQSTo6RGF0YSop
CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpyZXN0b3JlRnJvbVN0YXRlKFNlc3Npb25TdGF0ZSBzZXNz
aW9uU3RhdGUpCiB7Ci0gICAgbV9iYWNrRm9yd2FyZExpc3QtPnJlc3RvcmVGcm9tU3RhdGUoc3Rk
Ojptb3ZlKHNlc3Npb25TdGF0ZS5iYWNrRm9yd2FyZExpc3RTdGF0ZSkpOworICAgIG1fYmFja0Zv
cndhcmRMaXN0LT5yZXN0b3JlRnJvbVN0YXRlKFdURjo6bW92ZShzZXNzaW9uU3RhdGUuYmFja0Zv
cndhcmRMaXN0U3RhdGUpKTsKIAogICAgIExlZ2FjeVNlc3Npb25TdGF0ZSBzdGF0ZShtX2JhY2tG
b3J3YXJkTGlzdC0+ZW50cmllcygpLCBtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEluZGV4KCkp
OwogICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpSZXN0b3JlU2Vzc2lvbihz
dGF0ZSksIG1fcGFnZUlEKTsKQEAgLTIyMTgsNyArMjIxOCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUoY29uc3QgU3RyaW5nJiBzY3JpcHQsIHN0ZDo6ZnVu
Y3Rpb248CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lE
ID0gbV9jYWxsYmFja3MucHV0KHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgc3RkOjptYWtl
X3VuaXF1ZTxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbj4obV9wcm9j
ZXNzLT50aHJvdHRsZXIoKSkpOworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNr
cy5wdXQoV1RGOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBzdGQ6Om1ha2VfdW5pcXVlPFByb2Nl
c3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2VuPihtX3Byb2Nlc3MtPnRocm90dGxl
cigpKSk7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpSdW5KYXZhU2Ny
aXB0SW5NYWluRnJhbWUoc2NyaXB0LCBjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCkBAIC0y
MjI5LDcgKzIyMjksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0UmVuZGVyVHJlZUV4dGVybmFs
UmVwcmVzZW50YXRpb24oc3RkOjpmdW5jdGlvbjx2b2lkIChjb25zdAogICAgICAgICByZXR1cm47
CiAgICAgfQogICAgIAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQo
c3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBzdGQ6Om1ha2VfdW5pcXVlPFByb2Nlc3NUaHJv
dHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2VuPihtX3Byb2Nlc3MtPnRocm90dGxlcigpKSk7
CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChXVEY6Om1vdmUoY2Fs
bGJhY2tGdW5jdGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dy
b3VuZEFjdGl2aXR5VG9rZW4+KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKICAgICBtX3Byb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdldFJlbmRlclRyZWVFeHRlcm5hbFJlcHJlc2Vu
dGF0aW9uKGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAKQEAgLTIyNDAsNyArMjI0MCw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpnZXRTb3VyY2VGb3JGcmFtZShXZWJGcmFtZVByb3h5KiBmcmFt
ZSwgc3RkOjpmdW5jdGlvbjx2b2lkIChjCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0g
ICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChzdGQ6Om1vdmUoY2FsbGJh
Y2tGdW5jdGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3Vu
ZEFjdGl2aXR5VG9rZW4+KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKKyAgICB1aW50NjRfdCBj
YWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KFdURjo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSwg
c3RkOjptYWtlX3VuaXF1ZTxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tl
bj4obV9wcm9jZXNzLT50aHJvdHRsZXIoKSkpOwogICAgIG1fbG9hZERlcGVuZGVudFN0cmluZ0Nh
bGxiYWNrSURzLmFkZChjYWxsYmFja0lEKTsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OkdldFNvdXJjZUZvckZyYW1lKGZyYW1lLT5mcmFtZUlEKCksIGNhbGxiYWNrSUQp
LCBtX3BhZ2VJRCk7CiB9CkBAIC0yMjUyLDcgKzIyNTIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
Z2V0Q29udGVudHNBc1N0cmluZyhzdGQ6OmZ1bmN0aW9uPHZvaWQgKGNvbnN0IFN0cmluZyYsIENh
bGxiYQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIHVpbnQ2NF90IGNhbGxiYWNr
SUQgPSBtX2NhbGxiYWNrcy5wdXQoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBzdGQ6Om1h
a2VfdW5pcXVlPFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2VuPihtX3By
b2Nlc3MtPnRocm90dGxlcigpKSk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJh
Y2tzLnB1dChXVEY6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8UHJv
Y2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4+KG1fcHJvY2Vzcy0+dGhyb3R0
bGVyKCkpKTsKICAgICBtX2xvYWREZXBlbmRlbnRTdHJpbmdDYWxsYmFja0lEcy5hZGQoY2FsbGJh
Y2tJRCk7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRDb250ZW50
c0FzU3RyaW5nKGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CkBAIC0yMjY0LDcgKzIyNjQsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0Qnl0ZWNvZGVQcm9maWxlKHN0ZDo6ZnVuY3Rpb248dm9p
ZCAoY29uc3QgU3RyaW5nJiwgQ2FsbGJhYwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAot
ICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoc3RkOjptb3ZlKGNhbGxi
YWNrRnVuY3Rpb24pLCBzdGQ6Om1ha2VfdW5pcXVlPFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91
bmRBY3Rpdml0eVRva2VuPihtX3Byb2Nlc3MtPnRocm90dGxlcigpKSk7CisgICAgdWludDY0X3Qg
Y2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChXVEY6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbiks
IHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5VG9r
ZW4+KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKICAgICBtX2xvYWREZXBlbmRlbnRTdHJpbmdD
YWxsYmFja0lEcy5hZGQoY2FsbGJhY2tJRCk7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpHZXRCeXRlY29kZVByb2ZpbGUoY2FsbGJhY2tJRCksIG1fcGFnZUlEKTsKIH0K
QEAgLTIyNzcsNyArMjI3Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRDb250ZW50c0FzTUhU
TUxEYXRhKHN0ZDo6ZnVuY3Rpb248dm9pZCAoQVBJOjpEYXRhKiwgQ2FsbGJhCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0
KHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgc3RkOjptYWtlX3VuaXF1ZTxQcm9jZXNzVGhy
b3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbj4obV9wcm9jZXNzLT50aHJvdHRsZXIoKSkp
OworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RGOjptb3ZlKGNh
bGxiYWNrRnVuY3Rpb24pLCBzdGQ6Om1ha2VfdW5pcXVlPFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tn
cm91bmRBY3Rpdml0eVRva2VuPihtX3Byb2Nlc3MtPnRocm90dGxlcigpKSk7CiAgICAgbV9wcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRDb250ZW50c0FzTUhUTUxEYXRhKGNhbGxi
YWNrSUQsIHVzZUJpbmFyeUVuY29kaW5nKSwgbV9wYWdlSUQpOwogfQogI2VuZGlmCkBAIC0yMjg5
LDcgKzIyODksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0U2VsZWN0aW9uT3JDb250ZW50c0Fz
U3RyaW5nKHN0ZDo6ZnVuY3Rpb248dm9pZCAoY29uc3QgU3RyaQogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoc3Rk
Ojptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBzdGQ6Om1ha2VfdW5pcXVlPFByb2Nlc3NUaHJvdHRs
ZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2VuPihtX3Byb2Nlc3MtPnRocm90dGxlcigpKSk7Cisg
ICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChXVEY6Om1vdmUoY2FsbGJh
Y2tGdW5jdGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3Vu
ZEFjdGl2aXR5VG9rZW4+KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKICAgICBtX3Byb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdldFNlbGVjdGlvbk9yQ29udGVudHNBc1N0cmluZyhj
YWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCkBAIC0yMzAwLDcgKzIzMDAsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6Z2V0U2VsZWN0aW9uQXNXZWJBcmNoaXZlRGF0YShzdGQ6OmZ1bmN0aW9uPHZv
aWQgKEFQSTo6RGF0YSosCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgdWludDY0
X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlv
biksIHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5
VG9rZW4+KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lE
ID0gbV9jYWxsYmFja3MucHV0KFdURjo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgc3RkOjptYWtl
X3VuaXF1ZTxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbj4obV9wcm9j
ZXNzLT50aHJvdHRsZXIoKSkpOwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6R2V0U2VsZWN0aW9uQXNXZWJBcmNoaXZlRGF0YShjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwog
fQogCkBAIC0yMzExLDcgKzIzMTEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0TWFpblJlc291
cmNlRGF0YU9mRnJhbWUoV2ViRnJhbWVQcm94eSogZnJhbWUsIHN0ZDo6ZnVuY3RpbwogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxi
YWNrcy5wdXQoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBzdGQ6Om1ha2VfdW5pcXVlPFBy
b2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2VuPihtX3Byb2Nlc3MtPnRocm90
dGxlcigpKSk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChXVEY6
Om1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxl
cjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4+KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKICAg
ICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdldE1haW5SZXNvdXJjZURhdGFP
ZkZyYW1lKGZyYW1lLT5mcmFtZUlEKCksIGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAKQEAg
LTIzMjIsNyArMjMyMiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRSZXNvdXJjZURhdGFGcm9t
RnJhbWUoV2ViRnJhbWVQcm94eSogZnJhbWUsIEFQSTo6VVJMKiByZXNvCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgCi0gICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1
dChzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Ro
cm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4+KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkp
KTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KFdURjo6bW92ZShj
YWxsYmFja0Z1bmN0aW9uKSwgc3RkOjptYWtlX3VuaXF1ZTxQcm9jZXNzVGhyb3R0bGVyOjpCYWNr
Z3JvdW5kQWN0aXZpdHlUb2tlbj4obV9wcm9jZXNzLT50aHJvdHRsZXIoKSkpOwogICAgIG1fcHJv
Y2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R2V0UmVzb3VyY2VEYXRhRnJvbUZyYW1lKGZy
YW1lLT5mcmFtZUlEKCksIHJlc291cmNlVVJMLT5zdHJpbmcoKSwgY2FsbGJhY2tJRCksIG1fcGFn
ZUlEKTsKIH0KIApAQCAtMjMzMyw3ICsyMzMzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmdldFdl
YkFyY2hpdmVPZkZyYW1lKFdlYkZyYW1lUHJveHkqIGZyYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0g
bV9jYWxsYmFja3MucHV0KHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgc3RkOjptYWtlX3Vu
aXF1ZTxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbj4obV9wcm9jZXNz
LT50aHJvdHRsZXIoKSkpOworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5w
dXQoV1RGOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBzdGQ6Om1ha2VfdW5pcXVlPFByb2Nlc3NU
aHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2VuPihtX3Byb2Nlc3MtPnRocm90dGxlcigp
KSk7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRXZWJBcmNoaXZl
T2ZGcmFtZShmcmFtZS0+ZnJhbWVJRCgpLCBjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCkBA
IC0yNzk4LDcgKzI3OTgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBOYXZpZwogICAgIG1faW5EZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uID0gdHJ1ZTsKICAgICBtX3N5bmNOYXZpZ2F0aW9u
QWN0aW9uUG9saWN5QWN0aW9uSXNWYWxpZCA9IGZhbHNlOwogCi0gICAgbV9wb2xpY3lDbGllbnQt
PmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24odGhpcywgZnJhbWUsIG5hdmlnYXRpb25B
Y3Rpb25EYXRhLCBvcmlnaW5hdGluZ0ZyYW1lLCBvcmlnaW5hbFJlcXVlc3QsIHJlcXVlc3QsIHN0
ZDo6bW92ZShsaXN0ZW5lciksIHVzZXJEYXRhLmdldCgpKTsKKyAgICBtX3BvbGljeUNsaWVudC0+
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbih0aGlzLCBmcmFtZSwgbmF2aWdhdGlvbkFj
dGlvbkRhdGEsIG9yaWdpbmF0aW5nRnJhbWUsIG9yaWdpbmFsUmVxdWVzdCwgcmVxdWVzdCwgV1RG
Ojptb3ZlKGxpc3RlbmVyKSwgdXNlckRhdGEuZ2V0KCkpOwogCiAgICAgbV9pbkRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb24gPSBmYWxzZTsKIApAQCAtMjgyMyw3ICsyODIzLDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBOYXZpZ2EKIAogICAgIFJlZlB0cjxXZWJGcmFtZVBvbGljeUxpc3RlbmVy
UHJveHk+IGxpc3RlbmVyID0gZnJhbWUtPnNldFVwUG9saWN5TGlzdGVuZXJQcm94eShsaXN0ZW5l
cklEKTsKIAotICAgIG1fcG9saWN5Q2xpZW50LT5kZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rp
b24odGhpcywgZnJhbWUsIG5hdmlnYXRpb25BY3Rpb25EYXRhLCByZXF1ZXN0LCBmcmFtZU5hbWUs
IHN0ZDo6bW92ZShsaXN0ZW5lciksIHVzZXJEYXRhLmdldCgpKTsKKyAgICBtX3BvbGljeUNsaWVu
dC0+ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHRoaXMsIGZyYW1lLCBuYXZpZ2F0aW9u
QWN0aW9uRGF0YSwgcmVxdWVzdCwgZnJhbWVOYW1lLCBXVEY6Om1vdmUobGlzdGVuZXIpLCB1c2Vy
RGF0YS5nZXQoKSk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgdWlu
dDY0X3QgbGlzdGVuZXJJRCwgSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKQEAgLTI4NDAs
NyArMjg0MCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBSZXNvdXJjZVJlc3BvCiAKICAgICBSZWZQdHI8V2ViRnJh
bWVQb2xpY3lMaXN0ZW5lclByb3h5PiBsaXN0ZW5lciA9IGZyYW1lLT5zZXRVcFBvbGljeUxpc3Rl
bmVyUHJveHkobGlzdGVuZXJJRCk7CiAKLSAgICBtX3BvbGljeUNsaWVudC0+ZGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UodGhpcywgZnJhbWUsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5
cGUsIHN0ZDo6bW92ZShsaXN0ZW5lciksIHVzZXJEYXRhLmdldCgpKTsKKyAgICBtX3BvbGljeUNs
aWVudC0+ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodGhpcywgZnJhbWUsIHJlc3BvbnNlLCByZXF1
ZXN0LCBjYW5TaG93TUlNRVR5cGUsIFdURjo6bW92ZShsaXN0ZW5lciksIHVzZXJEYXRhLmdldCgp
KTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU3luYyh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgdWludDY0X3Qg
bGlzdGVuZXJJRCwgSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgYm9vbCYgcmVjZWl2ZWRQ
b2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBkb3dubG9hZElE
KQpAQCAtMzQ3MSwxMCArMzQ3MSwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluZFN0cmlu
Z01hdGNoZXMoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFZlY3RvcjxWZWN0bwogICAgICAg
ICBmb3IgKGNvbnN0IGF1dG8mIHJlY3QgOiByZWN0cykKICAgICAgICAgICAgIGFwaVJlY3RzLnVu
Y2hlY2tlZEFwcGVuZChBUEk6OlJlY3Q6OmNyZWF0ZSh0b0FQSShyZWN0KSkpOwogCi0gICAgICAg
IG1hdGNoZXMudW5jaGVja2VkQXBwZW5kKEFQSTo6QXJyYXk6OmNyZWF0ZShzdGQ6Om1vdmUoYXBp
UmVjdHMpKSk7CisgICAgICAgIG1hdGNoZXMudW5jaGVja2VkQXBwZW5kKEFQSTo6QXJyYXk6OmNy
ZWF0ZShXVEY6Om1vdmUoYXBpUmVjdHMpKSk7CiAgICAgfQogCi0gICAgbV9maW5kTWF0Y2hlc0Ns
aWVudC5kaWRGaW5kU3RyaW5nTWF0Y2hlcyh0aGlzLCBzdHJpbmcsIEFQSTo6QXJyYXk6OmNyZWF0
ZShzdGQ6Om1vdmUobWF0Y2hlcykpLmdldCgpLCBmaXJzdEluZGV4QWZ0ZXJTZWxlY3Rpb24pOwor
ICAgIG1fZmluZE1hdGNoZXNDbGllbnQuZGlkRmluZFN0cmluZ01hdGNoZXModGhpcywgc3RyaW5n
LCBBUEk6OkFycmF5OjpjcmVhdGUoV1RGOjptb3ZlKG1hdGNoZXMpKS5nZXQoKSwgZmlyc3RJbmRl
eEFmdGVyU2VsZWN0aW9uKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxUb0ZpbmRT
dHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCkBAIC0zNDg0LDcgKzM0ODQsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkRmFpbFRvRmluZFN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIAog
Ym9vbCBXZWJQYWdlUHJveHk6OnNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3Nh
Z2VFbmNvZGVyPiBlbmNvZGVyLCB1bnNpZ25lZCBtZXNzYWdlU2VuZEZsYWdzKQogewotICAgIHJl
dHVybiBtX3Byb2Nlc3MtPnNlbmRNZXNzYWdlKHN0ZDo6bW92ZShlbmNvZGVyKSwgbWVzc2FnZVNl
bmRGbGFncyk7CisgICAgcmV0dXJuIG1fcHJvY2Vzcy0+c2VuZE1lc3NhZ2UoV1RGOjptb3ZlKGVu
Y29kZXIpLCBtZXNzYWdlU2VuZEZsYWdzKTsKIH0KIAogSVBDOjpDb25uZWN0aW9uKiBXZWJQYWdl
UHJveHk6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkKQEAgLTQ0NjksNyArNDQ2OSw3IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpleGNlZWRlZERhdGFiYXNlUXVvdGEodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgU3RyaW5nJiBvcmlnaW5JCiAgICAgc3RkOjp1bmlxdWVfcHRyPEV4Y2VlZGVkRGF0YWJh
c2VRdW90YVJlY29yZHM6OlJlY29yZD4gbmV3UmVjb3JkID0gcmVjb3Jkcy5jcmVhdGVSZWNvcmQo
ZnJhbWVJRCwKICAgICAgICAgb3JpZ2luSWRlbnRpZmllciwgZGF0YWJhc2VOYW1lLCBkaXNwbGF5
TmFtZSwgY3VycmVudFF1b3RhLCBjdXJyZW50T3JpZ2luVXNhZ2UsCiAgICAgICAgIGN1cnJlbnRE
YXRhYmFzZVVzYWdlLCBleHBlY3RlZFVzYWdlLCByZXBseSk7Ci0gICAgcmVjb3Jkcy5hZGQoc3Rk
Ojptb3ZlKG5ld1JlY29yZCkpOworICAgIHJlY29yZHMuYWRkKFdURjo6bW92ZShuZXdSZWNvcmQp
KTsKIAogICAgIGlmIChyZWNvcmRzLmFyZUJlaW5nUHJvY2Vzc2VkKCkpCiAgICAgICAgIHJldHVy
bjsKQEAgLTQ5OTIsNyArNDk5Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRNYXJrZWRSYW5n
ZUFzeW5jKHN0ZDo6ZnVuY3Rpb248dm9pZCAoRWRpdGluZ1JhbmdlLCBDYWxsYmFjCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9jYWxsYmFja3Mu
cHV0KHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgc3RkOjptYWtlX3VuaXF1ZTxQcm9jZXNz
VGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbj4obV9wcm9jZXNzLT50aHJvdHRsZXIo
KSkpOworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RGOjptb3Zl
KGNhbGxiYWNrRnVuY3Rpb24pLCBzdGQ6Om1ha2VfdW5pcXVlPFByb2Nlc3NUaHJvdHRsZXI6OkJh
Y2tncm91bmRBY3Rpdml0eVRva2VuPihtX3Byb2Nlc3MtPnRocm90dGxlcigpKSk7CiAgICAgcHJv
Y2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdldE1hcmtlZFJhbmdlQXN5bmMoY2FsbGJh
Y2tJRCksIG1fcGFnZUlEKTsKIH0KIApAQCAtNTAwMyw3ICs1MDAzLDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmdldFNlbGVjdGVkUmFuZ2VBc3luYyhzdGQ6OmZ1bmN0aW9uPHZvaWQgKEVkaXRpbmdS
YW5nZSwgQ2FsbGIKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHVpbnQ2NF90IGNhbGxi
YWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBzdGQ6
Om1ha2VfdW5pcXVlPFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2VuPiht
X3Byb2Nlc3MtPnRocm90dGxlcigpKSk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2Fs
bGJhY2tzLnB1dChXVEY6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8
UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4+KG1fcHJvY2Vzcy0+dGhy
b3R0bGVyKCkpKTsKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R2V0U2Vs
ZWN0ZWRSYW5nZUFzeW5jKGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAKQEAgLTUwMTQsNyAr
NTAxNCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjaGFyYWN0ZXJJbmRleEZvclBvaW50QXN5bmMo
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvaW50LCBzCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KHN0ZDo6bW92ZShj
YWxsYmFja0Z1bmN0aW9uKSwgc3RkOjptYWtlX3VuaXF1ZTxQcm9jZXNzVGhyb3R0bGVyOjpCYWNr
Z3JvdW5kQWN0aXZpdHlUb2tlbj4obV9wcm9jZXNzLT50aHJvdHRsZXIoKSkpOworICAgIHVpbnQ2
NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RGOjptb3ZlKGNhbGxiYWNrRnVuY3Rp
b24pLCBzdGQ6Om1ha2VfdW5pcXVlPFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0
eVRva2VuPihtX3Byb2Nlc3MtPnRocm90dGxlcigpKSk7CiAgICAgcHJvY2VzcygpLnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OkNoYXJhY3RlckluZGV4Rm9yUG9pbnRBc3luYyhwb2ludCwgY2FsbGJh
Y2tJRCksIG1fcGFnZUlEKTsKIH0KIApAQCAtNTAyNSw3ICs1MDI1LDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlQXN5bmMoY29uc3QgRWRpdGluZ1Jhbmdl
JiByYW5nZSwgc3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHVpbnQ2NF90IGNhbGxi
YWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBzdGQ6
Om1ha2VfdW5pcXVlPFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2VuPiht
X3Byb2Nlc3MtPnRocm90dGxlcigpKSk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2Fs
bGJhY2tzLnB1dChXVEY6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8
UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4+KG1fcHJvY2Vzcy0+dGhy
b3R0bGVyKCkpKTsKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Rmlyc3RS
ZWN0Rm9yQ2hhcmFjdGVyUmFuZ2VBc3luYyhyYW5nZSwgY2FsbGJhY2tJRCksIG1fcGFnZUlEKTsK
IH0KIApAQCAtNTA1Nyw3ICs1MDU3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnRha2VTbmFwc2hv
dChJbnRSZWN0IHJlY3QsIEludFNpemUgYml0bWFwU2l6ZSwgU25hcHNob3RPcHRpb24KICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNr
cy5wdXQoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBzdGQ6Om1ha2VfdW5pcXVlPFByb2Nl
c3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2VuPihtX3Byb2Nlc3MtPnRocm90dGxl
cigpKSk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChXVEY6Om1v
dmUoY2FsbGJhY2tGdW5jdGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxlcjo6
QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4+KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKICAgICBt
X3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlRha2VTbmFwc2hvdChyZWN0LCBiaXRt
YXBTaXplLCBvcHRpb25zLCBjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDQxNTMwNzAuLjU4NzJm
MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBA
IC0zMTksNyArMzE5LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmFkZEJhY2tGb3J3YXJkSXRl
bSh1aW50NjRfdCBpdGVtSUQsIGNvbnN0IFBhZ2VTdGF0ZSYgcGFnZVMKICAgICBpZiAoIWJhY2tG
b3J3YXJkTGlzdEl0ZW0pIHsKICAgICAgICAgQmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlIGJhY2tG
b3J3YXJkTGlzdEl0ZW1TdGF0ZTsKICAgICAgICAgYmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlLnBh
Z2VTdGF0ZSA9IHBhZ2VTdGF0ZTsKLSAgICAgICAgYmFja0ZvcndhcmRMaXN0SXRlbSA9IFdlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW06OmNyZWF0ZShpdGVtSUQsIHN0ZDo6bW92ZShiYWNrRm9yd2FyZExp
c3RJdGVtU3RhdGUpKTsKKyAgICAgICAgYmFja0ZvcndhcmRMaXN0SXRlbSA9IFdlYkJhY2tGb3J3
YXJkTGlzdEl0ZW06OmNyZWF0ZShpdGVtSUQsIFdURjo6bW92ZShiYWNrRm9yd2FyZExpc3RJdGVt
U3RhdGUpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCmluZGV4
IGY5MjBhZTIuLmQwMWU2NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5jcHAKQEAgLTkwLDcgKzkwLDcgQEAg
dm9pZCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OjpkZXJlZldlYkNvbnRleHRTdXBwbGVt
ZW50KCkKIAogdm9pZCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OjpnZXRDYWNoZU9yaWdp
bnMoc3RkOjpmdW5jdGlvbjx2b2lkIChBUEk6OkFycmF5KiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+
IGNhbGxiYWNrRnVuY3Rpb24pCiB7Ci0gICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNr
ID0gQXJyYXlDYWxsYmFjazo6Y3JlYXRlKHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7Cisg
ICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0gQXJyYXlDYWxsYmFjazo6Y3JlYXRl
KFdURjo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9
IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7CiAgICAgbV9hcnJheUNhbGxiYWNrcy5zZXQoY2FsbGJh
Y2tJRCwgY2FsbGJhY2sucmVsZWFzZSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2NmL1dlYlBhZ2VQcm94eUNGLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9jZi9XZWJQYWdlUHJveHlDRi5jcHAKaW5kZXggMTI1MGJiMy4uNTM5MjUxOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2NmL1dlYlBhZ2VQcm94eUNGLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvY2YvV2ViUGFnZVByb3h5Q0YuY3BwCkBAIC01Miw3ICs1
Miw3IEBAIFBhc3NSZWZQdHI8QVBJOjpEYXRhPiBXZWJQYWdlUHJveHk6OnNlc3Npb25TdGF0ZURh
dGEoc3RkOjpmdW5jdGlvbjxib29sIChXZWJCYWNrCiAgICAgY29uc3Qgdm9pZCogdmFsdWVzWzJd
OwogICAgIENGSW5kZXggbnVtVmFsdWVzID0gMDsKIAotICAgIFJldGFpblB0cjxDRkRpY3Rpb25h
cnlSZWY+IHNlc3Npb25IaXN0b3J5RGljdGlvbmFyeSA9IGFkb3B0Q0YobV9iYWNrRm9yd2FyZExp
c3QtPmNyZWF0ZUNGRGljdGlvbmFyeVJlcHJlc2VudGF0aW9uKHN0ZDo6bW92ZShmaWx0ZXIpKSk7
CisgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gc2Vzc2lvbkhpc3RvcnlEaWN0aW9uYXJ5
ID0gYWRvcHRDRihtX2JhY2tGb3J3YXJkTGlzdC0+Y3JlYXRlQ0ZEaWN0aW9uYXJ5UmVwcmVzZW50
YXRpb24oV1RGOjptb3ZlKGZpbHRlcikpKTsKICAgICBpZiAoc2Vzc2lvbkhpc3RvcnlEaWN0aW9u
YXJ5KSB7CiAgICAgICAgIGtleXNbbnVtVmFsdWVzXSA9IHNlc3Npb25IaXN0b3J5S2V5OwogICAg
ICAgICB2YWx1ZXNbbnVtVmFsdWVzXSA9IHNlc3Npb25IaXN0b3J5RGljdGlvbmFyeS5nZXQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvSW5wdXRNZXRob2RDb250
ZXh0RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvSW5wdXRNZXRob2RDb250
ZXh0RWZsLmNwcAppbmRleCBjMDk4MzM4Li5mMmIyYWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL0lucHV0TWV0aG9kQ29udGV4dEVmbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2VmbC9JbnB1dE1ldGhvZENvbnRleHRFZmwuY3BwCkBAIC0zMyw3
ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBJbnB1dE1ldGhvZENvbnRleHRFZmw6Oklu
cHV0TWV0aG9kQ29udGV4dEVmbChFd2tWaWV3KiB2aWV3LCBFZmxVbmlxdWVQdHI8RWNvcmVfSU1G
X0NvbnRleHQ+IGNvbnRleHQpCiAgICAgOiBtX3ZpZXcodmlldykKLSAgICAsIG1fY29udGV4dChz
dGQ6Om1vdmUoY29udGV4dCkpCisgICAgLCBtX2NvbnRleHQoV1RGOjptb3ZlKGNvbnRleHQpKQog
ICAgICwgbV9mb2N1c2VkKGZhbHNlKQogewogICAgIEFTU0VSVChtX2NvbnRleHQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9JbnB1dE1ldGhvZENvbnRleHRFZmwu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvSW5wdXRNZXRob2RDb250ZXh0RWZsLmgK
aW5kZXggMDNkYmY3OC4uOWU5ZTk0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9JbnB1dE1ldGhvZENvbnRleHRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL0lucHV0TWV0aG9kQ29udGV4dEVmbC5oCkBAIC0zNyw3ICszNyw3IEBAIHB1Ymxp
YzoKICAgICAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
LSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8SW5wdXRNZXRob2RDb250ZXh0RWZsPih2
aWV3SW1wbCwgc3RkOjptb3ZlKGNvbnRleHQpKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8SW5wdXRNZXRob2RDb250ZXh0RWZsPih2aWV3SW1wbCwgV1RGOjptb3ZlKGNvbnRleHQp
KTsKICAgICB9CiAgICAgSW5wdXRNZXRob2RDb250ZXh0RWZsKEV3a1ZpZXcqLCBFZmxVbmlxdWVQ
dHI8RWNvcmVfSU1GX0NvbnRleHQ+KTsKICAgICB+SW5wdXRNZXRob2RDb250ZXh0RWZsKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlVJUG9wdXBNZW51Q2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVUlQb3B1cE1lbnVDbGll
bnQuY3BwCmluZGV4IDZiZTc1N2QuLjI0ZjMyMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvV2ViVUlQb3B1cE1lbnVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvV2ViVUlQb3B1cE1lbnVDbGllbnQuY3BwCkBAIC00Niw3ICs0Niw3
IEBAIHZvaWQgV2ViVUlQb3B1cE1lbnVDbGllbnQ6OnNob3dQb3B1cE1lbnUoV2ViUGFnZVByb3h5
KiBwYWdlUHJveHksIFdlYlBvcHVwTWVudVByCiAKICAgICBSZWZQdHI8QVBJOjpBcnJheT4gSXRl
bXNBcnJheTsKICAgICBpZiAoIXdlYlBvcHVwSXRlbXMuaXNFbXB0eSgpKQotICAgICAgICBJdGVt
c0FycmF5ID0gQVBJOjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZSh3ZWJQb3B1cEl0ZW1zKSk7Cisg
ICAgICAgIEl0ZW1zQXJyYXkgPSBBUEk6OkFycmF5OjpjcmVhdGUoV1RGOjptb3ZlKHdlYlBvcHVw
SXRlbXMpKTsKIAogICAgIG1fY2xpZW50LnNob3dQb3B1cE1lbnUodG9BUEkocGFnZVByb3h5KSwg
dG9BUEkoc3RhdGljX2Nhc3Q8V2ViUG9wdXBNZW51TGlzdGVuZXJFZmwqPihwb3B1cE1lbnVQcm94
eSkpLCB0b0FQSShyZWN0KSwgdG9BUEkodGV4dERpcmVjdGlvbiksIHBhZ2VTY2FsZUZhY3Rvciwg
dG9BUEkoSXRlbXNBcnJheS5nZXQoKSksIHNlbGVjdGVkSW5kZXgsIG1fY2xpZW50LmJhc2UuY2xp
ZW50SW5mbyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dL
QWN0aW9uU2hlZXRBc3Npc3RhbnQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dL
QWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KaW5kZXggN2JjMGNkNS4uODUzZmFhZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFu
dC5tbQpAQCAtMjM1LDcgKzIzNSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAgICAgYXV0
byBlbGVtZW50SW5mbyA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBhbGxvY10g
X2luaXRXaXRoVHlwZTpfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUltYWdlCiAgICAgICAgIFVSTDp0
YXJnZXRVUkwgbG9jYXRpb246cG9zaXRpb25JbmZvcm1hdGlvbi5wb2ludCB0aXRsZTpwb3NpdGlv
bkluZm9ybWF0aW9uLnRpdGxlIHJlY3Q6cG9zaXRpb25JbmZvcm1hdGlvbi5ib3VuZHNdKTsKIAot
ICAgIFJldGFpblB0cjxOU0FycmF5PiBhY3Rpb25zID0gX3ZpZXcucGFnZS0+dWlDbGllbnQoKS5h
Y3Rpb25zRm9yRWxlbWVudChlbGVtZW50SW5mby5nZXQoKSwgc3RkOjptb3ZlKGRlZmF1bHRBY3Rp
b25zKSk7CisgICAgUmV0YWluUHRyPE5TQXJyYXk+IGFjdGlvbnMgPSBfdmlldy5wYWdlLT51aUNs
aWVudCgpLmFjdGlvbnNGb3JFbGVtZW50KGVsZW1lbnRJbmZvLmdldCgpLCBXVEY6Om1vdmUoZGVm
YXVsdEFjdGlvbnMpKTsKIAogICAgIGlmICghW2FjdGlvbnMgY291bnRdKQogICAgICAgICByZXR1
cm47CkBAIC0yNDQsNyArMjQ0LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKICAgICBpZiAo
IV9pbnRlcmFjdGlvblNoZWV0KQogICAgICAgICByZXR1cm47CiAKLSAgICBfZWxlbWVudEluZm8g
PSBzdGQ6Om1vdmUoZWxlbWVudEluZm8pOworICAgIF9lbGVtZW50SW5mbyA9IFdURjo6bW92ZShl
bGVtZW50SW5mbyk7CiAKICAgICBpZiAoIVtfaW50ZXJhY3Rpb25TaGVldCBwcmVzZW50U2hlZXRd
KQogICAgICAgICBbc2VsZiBjbGVhbnVwU2hlZXRdOwpAQCAtMjcxLDcgKzI3MSw3IEBAIHVzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7CiAgICAgUmV0YWluUHRyPF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZv
PiBlbGVtZW50SW5mbyA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBhbGxvY10g
X2luaXRXaXRoVHlwZTpfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUxpbmsKICAgICAgICAgVVJMOnRh
cmdldFVSTCBsb2NhdGlvbjpwb3NpdGlvbkluZm9ybWF0aW9uLnBvaW50IHRpdGxlOnBvc2l0aW9u
SW5mb3JtYXRpb24udGl0bGUgcmVjdDpwb3NpdGlvbkluZm9ybWF0aW9uLmJvdW5kc10pOwogCi0g
ICAgUmV0YWluUHRyPE5TQXJyYXk+IGFjdGlvbnMgPSBfdmlldy5wYWdlLT51aUNsaWVudCgpLmFj
dGlvbnNGb3JFbGVtZW50KGVsZW1lbnRJbmZvLmdldCgpLCBzdGQ6Om1vdmUoZGVmYXVsdEFjdGlv
bnMpKTsKKyAgICBSZXRhaW5QdHI8TlNBcnJheT4gYWN0aW9ucyA9IF92aWV3LnBhZ2UtPnVpQ2xp
ZW50KCkuYWN0aW9uc0ZvckVsZW1lbnQoZWxlbWVudEluZm8uZ2V0KCksIFdURjo6bW92ZShkZWZh
dWx0QWN0aW9ucykpOwogCiAgICAgaWYgKCFbYWN0aW9ucyBjb3VudF0pCiAgICAgICAgIHJldHVy
bjsKQEAgLTI4MCw3ICsyODAsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgIGlmICgh
X2ludGVyYWN0aW9uU2hlZXQpCiAgICAgICAgIHJldHVybjsKIAotICAgIF9lbGVtZW50SW5mbyA9
IHN0ZDo6bW92ZShlbGVtZW50SW5mbyk7CisgICAgX2VsZW1lbnRJbmZvID0gV1RGOjptb3ZlKGVs
ZW1lbnRJbmZvKTsKIAogICAgIGlmICghW19pbnRlcmFjdGlvblNoZWV0IHByZXNlbnRTaGVldF0p
CiAgICAgICAgIFtzZWxmIGNsZWFudXBTaGVldF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXcubW0KaW5kZXggODEyYzg0Ni4uM2Y2YjY4OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQpAQCAtNDMyLDcgKzQz
Miw3IEBAIHN0YXRpYyB2b2lkIGxheWVyUGF0aChDQVNoYXBlTGF5ZXIgKmxheWVyLCBjb25zdCBG
bG9hdFF1YWQmIG91dGVyUXVhZCkKIAogICAgIF9wYWdlQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1
ZTxQYWdlQ2xpZW50SW1wbD4oc2VsZiwgd2ViVmlldyk7CiAKLSAgICBfcGFnZSA9IGNvbnRleHQu
Y3JlYXRlV2ViUGFnZSgqX3BhZ2VDbGllbnQsIHN0ZDo6bW92ZSh3ZWJQYWdlQ29uZmlndXJhdGlv
bikpOworICAgIF9wYWdlID0gY29udGV4dC5jcmVhdGVXZWJQYWdlKCpfcGFnZUNsaWVudCwgV1RG
Ojptb3ZlKHdlYlBhZ2VDb25maWd1cmF0aW9uKSk7CiAgICAgX3BhZ2UtPmluaXRpYWxpemVXZWJQ
YWdlKCk7CiAgICAgX3BhZ2UtPnNldEludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKFdLR2V0U2Nh
bGVGYWN0b3JGb3JTY3JlZW4oW1VJU2NyZWVuIG1haW5TY3JlZW5dKSk7CiAgICAgX3BhZ2UtPnNl
dFVzZUZpeGVkTGF5b3V0KHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQppbmRleCAyNTJmN2JkLi40Njdk
MDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRp
b25Qcm92aWRlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLR2Vv
bG9jYXRpb25Qcm92aWRlcklPUy5tbQpAQCAtMTcwLDcgKzE3MCw3IEBAIHN0YXRpYyB2b2lkIHNl
dEVuYWJsZUhpZ2hBY2N1cmFjeShXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiBnZW9sb2NhdGlvbk1h
bmFnZXIsIGJvCiAtICh2b2lkKWdlb2xvY2F0aW9uQXV0aG9yaXphdGlvbkdyYW50ZWQKIHsKICAg
ICAvLyBTdGVwIDI6IGFzayB0aGUgdXNlciBpZiB0aGUgdGhpcyBwYXJ0aWN1bGFyIHBhZ2UgY2Fu
IHVzZSBnZWxvY2F0aW9uLgotICAgIFZlY3RvcjxHZW9sb2NhdGlvblJlcXVlc3REYXRhPiByZXF1
ZXN0cyA9IHN0ZDo6bW92ZShfcmVxdWVzdHNXYWl0aW5nRm9yQ29yZUxvY2F0aW9uQXV0aG9yaXph
dGlvbik7CisgICAgVmVjdG9yPEdlb2xvY2F0aW9uUmVxdWVzdERhdGE+IHJlcXVlc3RzID0gV1RG
Ojptb3ZlKF9yZXF1ZXN0c1dhaXRpbmdGb3JDb3JlTG9jYXRpb25BdXRob3JpemF0aW9uKTsKICAg
ICBmb3IgKGNvbnN0IGF1dG8mIHJlcXVlc3QgOiByZXF1ZXN0cykgewogICAgICAgICBSZXRhaW5Q
dHI8V0tXZWJBbGxvd0RlbnlQb2xpY3lMaXN0ZW5lcj4gcG9saWN5TGlzdGVuZXIgPSBhZG9wdE5T
KFtbV0tXZWJBbGxvd0RlbnlQb2xpY3lMaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhQZXJtaXNzaW9u
UmVxdWVzdFByb3h5OnJlcXVlc3QucGVybWlzc2lvblJlcXVlc3QuZ2V0KCldKTsKICAgICAgICAg
ZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25SZXF1ZXN0RnJvbU9yaWdpbihyZXF1ZXN0Lm9yaWdp
bi5nZXQoKSwgcmVxdWVzdC5mcmFtZS0+dXJsKCksIHBvbGljeUxpc3RlbmVyLmdldCgpLCByZXF1
ZXN0LndpbmRvdy5nZXQoKSk7CkBAIC0xNzksNyArMTc5LDcgQEAgc3RhdGljIHZvaWQgc2V0RW5h
YmxlSGlnaEFjY3VyYWN5KFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIGdlb2xvY2F0aW9uTWFuYWdl
ciwgYm8KIAogLSAodm9pZClnZW9sb2NhdGlvbkF1dGhvcml6YXRpb25EZW5pZWQKIHsKLSAgICBW
ZWN0b3I8R2VvbG9jYXRpb25SZXF1ZXN0RGF0YT4gcmVxdWVzdHMgPSBzdGQ6Om1vdmUoX3JlcXVl
c3RzV2FpdGluZ0ZvckNvcmVMb2NhdGlvbkF1dGhvcml6YXRpb24pOworICAgIFZlY3RvcjxHZW9s
b2NhdGlvblJlcXVlc3REYXRhPiByZXF1ZXN0cyA9IFdURjo6bW92ZShfcmVxdWVzdHNXYWl0aW5n
Rm9yQ29yZUxvY2F0aW9uQXV0aG9yaXphdGlvbik7CiAgICAgZm9yIChjb25zdCBhdXRvJiByZXF1
ZXN0RGF0YSA6IHJlcXVlc3RzKQogICAgICAgICByZXF1ZXN0RGF0YS5wZXJtaXNzaW9uUmVxdWVz
dC0+ZGVueSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
ZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbQppbmRleCBjMzEyNWViLi4zNzRjNjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtMzIwLDcgKzMyMCw3IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpzZWxlY3RXaXRoR2VzdHVyZShjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCBwb2ludCwgV2ViQ29yZTo6VGV4CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICB1aW50
NjRfdCBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0
aW9uKSwgc3RkOjptYWtlX3VuaXF1ZTxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZp
dHlUb2tlbj4obV9wcm9jZXNzLT50aHJvdHRsZXIoKSkpOworICAgIHVpbnQ2NF90IGNhbGxiYWNr
SUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RGOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBzdGQ6Om1h
a2VfdW5pcXVlPFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2VuPihtX3By
b2Nlc3MtPnRocm90dGxlcigpKSk7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpTZWxlY3RXaXRoR2VzdHVyZShwb2ludCwgKHVpbnQzMl90KWdyYW51bGFyaXR5LCBnZXN0
dXJlVHlwZSwgZ2VzdHVyZVN0YXRlLCBjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCkBAIC0z
MzEsNyArMzMxLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZVNlbGVjdGlvbldpdGhUb3Vj
aGVzKGNvbnN0IFdlYkNvcmU6OkludFBvaW50IHBvaW50LCB1aW4KICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoc3RkOjpt
b3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBzdGQ6Om1ha2VfdW5pcXVlPFByb2Nlc3NUaHJvdHRsZXI6
OkJhY2tncm91bmRBY3Rpdml0eVRva2VuPihtX3Byb2Nlc3MtPnRocm90dGxlcigpKSk7CisgICAg
dWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChXVEY6Om1vdmUoY2FsbGJhY2tG
dW5jdGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFj
dGl2aXR5VG9rZW4+KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKICAgICBtX3Byb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVwZGF0ZVNlbGVjdGlvbldpdGhUb3VjaGVzKHBvaW50LCB0
b3VjaGVzLCBiYXNlSXNTdGFydCwgY2FsbGJhY2tJRCksIG1fcGFnZUlEKTsKIH0KICAgICAKQEAg
LTM1Miw3ICszNTIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEF1dG9jb3JyZWN0aW9u
RGF0YShjb25zdCBTdHJpbmcmIHRleHRGb3JBdXRvY29ycmVjdGlvbgogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChzdGQ6
Om1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxl
cjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4+KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKKyAg
ICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KFdURjo6bW92ZShjYWxsYmFj
a0Z1bmN0aW9uKSwgc3RkOjptYWtlX3VuaXF1ZTxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5k
QWN0aXZpdHlUb2tlbj4obV9wcm9jZXNzLT50aHJvdHRsZXIoKSkpOwogICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UmVxdWVzdEF1dG9jb3JyZWN0aW9uRGF0YSh0ZXh0Rm9y
QXV0b2NvcnJlY3Rpb24sIGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAKQEAgLTM2Myw3ICsz
NjMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6YXBwbHlBdXRvY29ycmVjdGlvbihjb25zdCBTdHJp
bmcmIGNvcnJlY3Rpb24sIGNvbnN0IFN0cmluZyYgbwogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChzdGQ6Om1vdmUoY2Fs
bGJhY2tGdW5jdGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dy
b3VuZEFjdGl2aXR5VG9rZW4+KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKKyAgICB1aW50NjRf
dCBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KFdURjo6bW92ZShjYWxsYmFja0Z1bmN0aW9u
KSwgc3RkOjptYWtlX3VuaXF1ZTxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlU
b2tlbj4obV9wcm9jZXNzLT50aHJvdHRsZXIoKSkpOwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6QXBwbHlBdXRvY29ycmVjdGlvbihjb3JyZWN0aW9uLCBvcmlnaW5hbFRl
eHQsIGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAKQEAgLTM4MSw3ICszODEsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6cmVxdWVzdERpY3RhdGlvbkNvbnRleHQoc3RkOjpmdW5jdGlvbjx2b2lk
IChjb25zdCBTdHJpbmcmLCBjbwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgdWludDY0
X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlv
biksIHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5
VG9rZW4+KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lE
ID0gbV9jYWxsYmFja3MucHV0KFdURjo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgc3RkOjptYWtl
X3VuaXF1ZTxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbj4obV9wcm9j
ZXNzLT50aHJvdHRsZXIoKSkpOwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6UmVxdWVzdERpY3RhdGlvbkNvbnRleHQoY2FsbGJhY2tJRCksIG1fcGFnZUlEKTsKIH0KIApA
QCAtMzkyLDcgKzM5Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0QXV0b2NvcnJlY3Rp
b25Db250ZXh0KHN0ZDo6ZnVuY3Rpb248dm9pZCAoY29uc3QgU3RyaW5nCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KHN0
ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgc3RkOjptYWtlX3VuaXF1ZTxQcm9jZXNzVGhyb3R0
bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbj4obV9wcm9jZXNzLT50aHJvdHRsZXIoKSkpOwor
ICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RGOjptb3ZlKGNhbGxi
YWNrRnVuY3Rpb24pLCBzdGQ6Om1ha2VfdW5pcXVlPFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91
bmRBY3Rpdml0eVRva2VuPihtX3Byb2Nlc3MtPnRocm90dGxlcigpKSk7CiAgICAgbV9wcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpSZXF1ZXN0QXV0b2NvcnJlY3Rpb25Db250ZXh0KGNh
bGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAKQEAgLTQwOCw3ICs0MDgsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6c2VsZWN0V2l0aFR3b1RvdWNoZXMoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQgZnJv
bSwgY29uc3QgV2ViQwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgdWludDY0X3QgY2Fs
bGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIHN0
ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4+
KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9j
YWxsYmFja3MucHV0KFdURjo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgc3RkOjptYWtlX3VuaXF1
ZTxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbj4obV9wcm9jZXNzLT50
aHJvdHRsZXIoKSkpOwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2Vs
ZWN0V2l0aFR3b1RvdWNoZXMoZnJvbSwgdG8sIGdlc3R1cmVUeXBlLCBnZXN0dXJlU3RhdGUsIGNh
bGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1tCmluZGV4IDY5NjFhMWIuLjQy
OTg0YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tG
aWxlVXBsb2FkUGFuZWwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9mb3Jt
cy9XS0ZpbGVVcGxvYWRQYW5lbC5tbQpAQCAtMjg1LDcgKzI4NSw3IEBAIHN0YXRpYyBVSUltYWdl
ICp0aHVtYm5haWxTaXplZEltYWdlRm9ySW1hZ2UoVUlJbWFnZSAqaW1hZ2UpCiAgICAgdXJscy5y
ZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNvdW50KTsKICAgICBmb3IgKE5TVVJMICpmaWxlVVJMIGlu
IGZpbGVVUkxzKQogICAgICAgICB1cmxzLnVuY2hlY2tlZEFwcGVuZChhZG9wdFJlZih0b0ltcGwo
V0tVUkxDcmVhdGVXaXRoQ0ZVUkwoKENGVVJMUmVmKWZpbGVVUkwpKSkpOwotICAgIFJlZlB0cjxB
UEk6OkFycmF5PiBmaWxlVVJMc1JlZiA9IEFQSTo6QXJyYXk6OmNyZWF0ZShzdGQ6Om1vdmUodXJs
cykpOworICAgIFJlZlB0cjxBUEk6OkFycmF5PiBmaWxlVVJMc1JlZiA9IEFQSTo6QXJyYXk6OmNy
ZWF0ZShXVEY6Om1vdmUodXJscykpOwogCiAgICAgTlNEYXRhICpqcGVnID0gVUlJbWFnZUpQRUdS
ZXByZXNlbnRhdGlvbihpY29uSW1hZ2UsIDEuMCk7CiAgICAgUmVmUHRyPEFQSTo6RGF0YT4gaWNv
bkltYWdlRGF0YVJlZiA9IGFkb3B0UmVmKHRvSW1wbChXS0RhdGFDcmVhdGUocmVpbnRlcnByZXRf
Y2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4oW2pwZWcgYnl0ZXNdKSwgW2pwZWcgbGVuZ3RoXSkp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvTGVnYWN5U2Vzc2lv
blN0YXRlQ29kaW5nLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvTGVnYWN5U2Vz
c2lvblN0YXRlQ29kaW5nLmNwcAppbmRleCA0MzUzY2Q5Li5hOTMxZjY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVDb2Rp
bmcuY3BwCkBAIC0xODIsNyArMTgyLDcgQEAgcHVibGljOgogICAgIE1hbGxvY1B0cjx1aW50OF90
PiBmaW5pc2hFbmNvZGluZyhzaXplX3QmIHNpemUpCiAgICAgewogICAgICAgICBzaXplID0gbV9i
dWZmZXJTaXplOwotICAgICAgICByZXR1cm4gc3RkOjptb3ZlKG1fYnVmZmVyKTsKKyAgICAgICAg
cmV0dXJuIFdURjo6bW92ZShtX2J1ZmZlcik7CiAgICAgfQogCiBwcml2YXRlOgpAQCAtNzA5LDcg
KzcwOSw3IEBAIHN0YXRpYyB2b2lkIGRlY29kZUZvcm1EYXRhKEhpc3RvcnlFbnRyeURhdGFEZWNv
ZGVyJiBkZWNvZGVyLCBIVFRQQm9keSYgZm9ybURhdGEpCiAgICAgICAgIEhUVFBCb2R5OjpFbGVt
ZW50IGZvcm1EYXRhRWxlbWVudDsKICAgICAgICAgZGVjb2RlRm9ybURhdGFFbGVtZW50KGRlY29k
ZXIsIGZvcm1EYXRhRWxlbWVudCk7CiAKLSAgICAgICAgZm9ybURhdGEuZWxlbWVudHMuYXBwZW5k
KHN0ZDo6bW92ZShmb3JtRGF0YUVsZW1lbnQpKTsKKyAgICAgICAgZm9ybURhdGEuZWxlbWVudHMu
YXBwZW5kKFdURjo6bW92ZShmb3JtRGF0YUVsZW1lbnQpKTsKICAgICB9CiAKICAgICBib29sIGhh
c0dlbmVyYXRlZEZpbGVzOwpAQCAtNzMwLDcgKzczMCw3IEBAIHN0YXRpYyB2b2lkIGRlY29kZUJh
Y2tGb3J3YXJkVHJlZU5vZGUoSGlzdG9yeUVudHJ5RGF0YURlY29kZXImIGRlY29kZXIsIEZyYW1l
U3RhCiAgICAgICAgIGRlY29kZXIgPj4gY2hpbGRGcmFtZVN0YXRlLnVybFN0cmluZzsKIAogICAg
ICAgICBkZWNvZGVCYWNrRm9yd2FyZFRyZWVOb2RlKGRlY29kZXIsIGNoaWxkRnJhbWVTdGF0ZSk7
Ci0gICAgICAgIGZyYW1lU3RhdGUuY2hpbGRyZW4uYXBwZW5kKHN0ZDo6bW92ZShjaGlsZEZyYW1l
U3RhdGUpKTsKKyAgICAgICAgZnJhbWVTdGF0ZS5jaGlsZHJlbi5hcHBlbmQoV1RGOjptb3ZlKGNo
aWxkRnJhbWVTdGF0ZSkpOwogICAgIH0KIAogICAgIGRlY29kZXIgPj4gZnJhbWVTdGF0ZS5kb2N1
bWVudFNlcXVlbmNlTnVtYmVyOwpAQCAtNzQyLDcgKzc0Miw3IEBAIHN0YXRpYyB2b2lkIGRlY29k
ZUJhY2tGb3J3YXJkVHJlZU5vZGUoSGlzdG9yeUVudHJ5RGF0YURlY29kZXImIGRlY29kZXIsIEZy
YW1lU3RhCiAgICAgICAgIFN0cmluZyBzdGF0ZTsKICAgICAgICAgZGVjb2RlciA+PiBzdGF0ZTsK
IAotICAgICAgICBmcmFtZVN0YXRlLmRvY3VtZW50U3RhdGUuYXBwZW5kKHN0ZDo6bW92ZShzdGF0
ZSkpOworICAgICAgICBmcmFtZVN0YXRlLmRvY3VtZW50U3RhdGUuYXBwZW5kKFdURjo6bW92ZShz
dGF0ZSkpOwogICAgIH0KIAogICAgIFN0cmluZyBmb3JtQ29udGVudFR5cGU7CkBAIC03NTMsMTEg
Kzc1MywxMSBAQCBzdGF0aWMgdm9pZCBkZWNvZGVCYWNrRm9yd2FyZFRyZWVOb2RlKEhpc3RvcnlF
bnRyeURhdGFEZWNvZGVyJiBkZWNvZGVyLCBGcmFtZVN0YQogCiAgICAgaWYgKGhhc0Zvcm1EYXRh
KSB7CiAgICAgICAgIEhUVFBCb2R5IGh0dHBCb2R5OwotICAgICAgICBodHRwQm9keS5jb250ZW50
VHlwZSA9IHN0ZDo6bW92ZShmb3JtQ29udGVudFR5cGUpOworICAgICAgICBodHRwQm9keS5jb250
ZW50VHlwZSA9IFdURjo6bW92ZShmb3JtQ29udGVudFR5cGUpOwogCiAgICAgICAgIGRlY29kZUZv
cm1EYXRhKGRlY29kZXIsIGh0dHBCb2R5KTsKIAotICAgICAgICBmcmFtZVN0YXRlLmh0dHBCb2R5
ID0gc3RkOjptb3ZlKGh0dHBCb2R5KTsKKyAgICAgICAgZnJhbWVTdGF0ZS5odHRwQm9keSA9IFdU
Rjo6bW92ZShodHRwQm9keSk7CiAgICAgfQogCiAgICAgZGVjb2RlciA+PiBmcmFtZVN0YXRlLml0
ZW1TZXF1ZW5jZU51bWJlcjsKQEAgLTc4MSw3ICs3ODEsNyBAQCBzdGF0aWMgdm9pZCBkZWNvZGVC
YWNrRm9yd2FyZFRyZWVOb2RlKEhpc3RvcnlFbnRyeURhdGFEZWNvZGVyJiBkZWNvZGVyLCBGcmFt
ZVN0YQogICAgICAgICBWZWN0b3I8dWludDhfdD4gc3RhdGVPYmplY3REYXRhOwogICAgICAgICBk
ZWNvZGVyID4+IHN0YXRlT2JqZWN0RGF0YTsKIAotICAgICAgICBmcmFtZVN0YXRlLnN0YXRlT2Jq
ZWN0RGF0YSA9IHN0ZDo6bW92ZShzdGF0ZU9iamVjdERhdGEpOworICAgICAgICBmcmFtZVN0YXRl
LnN0YXRlT2JqZWN0RGF0YSA9IFdURjo6bW92ZShzdGF0ZU9iamVjdERhdGEpOwogICAgIH0KIAog
ICAgIGRlY29kZXIgPj4gZnJhbWVTdGF0ZS50YXJnZXQ7CkBAIC04NTUsNyArODU1LDcgQEAgc3Rh
dGljIGJvb2wgZGVjb2RlU2Vzc2lvbkhpc3RvcnlFbnRyaWVzKENGQXJyYXlSZWYgZW50cmllc0Fy
cmF5LCBWZWN0b3I8QmFja0ZvcncKICAgICAgICAgaWYgKCFkZWNvZGVTZXNzaW9uSGlzdG9yeUVu
dHJ5KGVudHJ5RGljdGlvbmFyeSwgZW50cnkucGFnZVN0YXRlKSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgICAgICBlbnRyaWVzLmFwcGVuZChzdGQ6Om1vdmUoZW50cnkpKTsKKyAg
ICAgICAgZW50cmllcy5hcHBlbmQoV1RGOjptb3ZlKGVudHJ5KSk7CiAgICAgfQogCiAgICAgcmV0
dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdH
ZXN0dXJlQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2Vz
dHVyZUNvbnRyb2xsZXIuaAppbmRleCBjMTZmZjMyLi5hZmZhYjJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyLmgKQEAgLTk0
LDcgKzk0LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFuZGxlU2Nyb2xsV2hlZWxFdmVudChOU0V2
ZW50ICopOwogICAgIHZvaWQgd2hlZWxFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUoTlNFdmVu
dCAqKTsKIAotICAgIHZvaWQgc2V0Q3VzdG9tU3dpcGVWaWV3cyhWZWN0b3I8UmV0YWluUHRyPE5T
Vmlldz4+IHZpZXdzKSB7IG1fY3VzdG9tU3dpcGVWaWV3cyA9IHN0ZDo6bW92ZSh2aWV3cyk7IH0K
KyAgICB2b2lkIHNldEN1c3RvbVN3aXBlVmlld3MoVmVjdG9yPFJldGFpblB0cjxOU1ZpZXc+PiB2
aWV3cykgeyBtX2N1c3RvbVN3aXBlVmlld3MgPSBXVEY6Om1vdmUodmlld3MpOyB9CiAgICAgdm9p
ZCBzZXRDdXN0b21Td2lwZVZpZXdzVG9wQ29udGVudEluc2V0KGZsb2F0IHRvcENvbnRlbnRJbnNl
dCkgeyBtX2N1c3RvbVN3aXBlVmlld3NUb3BDb250ZW50SW5zZXQgPSB0b3BDb250ZW50SW5zZXQ7
IH0KICAgICBXZWJDb3JlOjpGbG9hdFJlY3Qgd2luZG93UmVsYXRpdmVCb3VuZHNGb3JDdXN0b21T
d2lwZVZpZXdzKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9X
ZWJQYWdlUHJveHlNYWMubW0KaW5kZXggNzEwMzkxOC4uYzMwMDQ3NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KQEAgLTMzMiw3ICszMzIs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6YXR0cmlidXRlZFN1YnN0cmluZ0ZvckNoYXJhY3RlclJh
bmdlQXN5bmMoY29uc3QgRWRpdGluZ1JhbmdlJgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChzdGQ6Om1vdmUoY2FsbGJh
Y2tGdW5jdGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3Vu
ZEFjdGl2aXR5VG9rZW4+KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKKyAgICB1aW50NjRfdCBj
YWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KFdURjo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSwg
c3RkOjptYWtlX3VuaXF1ZTxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tl
bj4obV9wcm9jZXNzLT50aHJvdHRsZXIoKSkpOwogCiAgICAgcHJvY2VzcygpLnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JDaGFyYWN0ZXJSYW5nZUFzeW5jKHJh
bmdlLCBjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2Uu
Y3BwCmluZGV4IDM4YTJhYjMuLjIxMTRmNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5j
cHAKQEAgLTE4NSw3ICsxODUsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxBUEk6OkFycmF5PiBjb250
ZXh0TWVudUl0ZW1zKGNvbnN0IFdlYkNvbnRleHRNZW51JiBjb250ZXh0TWVudQogICAgIGZvciAo
Y29uc3QgYXV0byYgaXRlbSA6IGl0ZW1zKQogICAgICAgICBtZW51SXRlbXMudW5jaGVja2VkQXBw
ZW5kKFdlYkNvbnRleHRNZW51SXRlbTo6Y3JlYXRlKGl0ZW0pKTsKIAotICAgIHJldHVybiBBUEk6
OkFycmF5OjpjcmVhdGUoc3RkOjptb3ZlKG1lbnVJdGVtcykpOworICAgIHJldHVybiBBUEk6OkFy
cmF5OjpjcmVhdGUoV1RGOjptb3ZlKG1lbnVJdGVtcykpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJL
aXRXZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9XZWJLaXRXZWJQYWdlLmNwcAppbmRleCBjMWRkZjkzLi4zMTA0YjQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2Vi
S2l0V2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuY3BwCkBAIC0xNTcsNyArMTU3LDcgQEAgc3RhdGlj
IHZvaWQgZGlkSW5pdGlhdGVMb2FkRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdL
QnVuZGxlRnJhbWVSZWYgZnIKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJGcmFt
ZSIpLCB0b0ltcGwoZnJhbWUpKTsKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJJ
ZGVudGlmaWVyIiksIEFQSTo6VUludDY0OjpjcmVhdGUoaWRlbnRpZmllcikpOwogICAgIG1lc3Nh
Z2Uuc2V0KFN0cmluZzo6ZnJvbVVURjgoIlJlcXVlc3QiKSwgdG9JbXBsKHJlcXVlc3QpKTsKLSAg
ICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5pbmplY3RlZEJ1bmRsZSgpLT5wb3N0TWVzc2FnZShTdHJp
bmc6OmZyb21VVEY4KCJXZWJQYWdlLkRpZEluaXRpYXRlTG9hZEZvclJlc291cmNlIiksIEltbXV0
YWJsZURpY3Rpb25hcnk6OmNyZWF0ZShzdGQ6Om1vdmUobWVzc2FnZSkpLmdldCgpKTsKKyAgICBX
ZWJQcm9jZXNzOjpzaGFyZWQoKS5pbmplY3RlZEJ1bmRsZSgpLT5wb3N0TWVzc2FnZShTdHJpbmc6
OmZyb21VVEY4KCJXZWJQYWdlLkRpZEluaXRpYXRlTG9hZEZvclJlc291cmNlIiksIEltbXV0YWJs
ZURpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUobWVzc2FnZSkpLmdldCgpKTsKIH0KIAogc3Rh
dGljIFdLVVJMUmVxdWVzdFJlZiB3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiwgdWludDY0X3QgaWRlbnRpZmllciwgV0tVUkxSZXF1
ZXN0UmVmIHdrUmVxdWVzdCwgV0tVUkxSZXNwb25zZVJlZiB3a1JlZGlyZWN0UmVzcG9uc2UsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCkBAIC0xODIsNyArMTgyLDcgQEAgc3RhdGljIFdLVVJMUmVx
dWVzdFJlZiB3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tC
dW5kbGVGcmEKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJSZXF1ZXN0IiksIG5l
d1JlcXVlc3QuZ2V0KCkpOwogICAgIGlmICghcmVkaXJlY3RSZXNvdXJjZVJlc3BvbnNlLmlzTnVs
bCgpKQogICAgICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJSZWRpcmVjdFJlc3Bv
bnNlIiksIHRvSW1wbCh3a1JlZGlyZWN0UmVzcG9uc2UpKTsKLSAgICBXZWJQcm9jZXNzOjpzaGFy
ZWQoKS5pbmplY3RlZEJ1bmRsZSgpLT5wb3N0TWVzc2FnZShTdHJpbmc6OmZyb21VVEY4KCJXZWJQ
YWdlLkRpZFNlbmRSZXF1ZXN0Rm9yUmVzb3VyY2UiKSwgSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3Jl
YXRlKHN0ZDo6bW92ZShtZXNzYWdlKSkuZ2V0KCkpOworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgp
LmluamVjdGVkQnVuZGxlKCktPnBvc3RNZXNzYWdlKFN0cmluZzo6ZnJvbVVURjgoIldlYlBhZ2Uu
RGlkU2VuZFJlcXVlc3RGb3JSZXNvdXJjZSIpLCBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUo
V1RGOjptb3ZlKG1lc3NhZ2UpKS5nZXQoKSk7CiAKICAgICByZXR1cm4gdG9BUEkobmV3UmVxdWVz
dC5yZWxlYXNlKCkubGVha1JlZigpKTsKIH0KQEAgLTE5Myw3ICsxOTMsNyBAQCBzdGF0aWMgdm9p
ZCBkaWRSZWNlaXZlUmVzcG9uc2VGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tC
dW5kbGVGcmFtZVJlZgogICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6ZnJvbVVURjgoIlBhZ2UiKSwg
dG9JbXBsKHBhZ2UpKTsKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJJZGVudGlm
aWVyIiksIEFQSTo6VUludDY0OjpjcmVhdGUoaWRlbnRpZmllcikpOwogICAgIG1lc3NhZ2Uuc2V0
KFN0cmluZzo6ZnJvbVVURjgoIlJlc3BvbnNlIiksIHRvSW1wbChyZXNwb25zZSkpOwotICAgIFdl
YlByb2Nlc3M6OnNoYXJlZCgpLmluamVjdGVkQnVuZGxlKCktPnBvc3RNZXNzYWdlKFN0cmluZzo6
ZnJvbVVURjgoIldlYlBhZ2UuRGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UiKSwgSW1tdXRh
YmxlRGljdGlvbmFyeTo6Y3JlYXRlKHN0ZDo6bW92ZShtZXNzYWdlKSkuZ2V0KCkpOworICAgIFdl
YlByb2Nlc3M6OnNoYXJlZCgpLmluamVjdGVkQnVuZGxlKCktPnBvc3RNZXNzYWdlKFN0cmluZzo6
ZnJvbVVURjgoIldlYlBhZ2UuRGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UiKSwgSW1tdXRh
YmxlRGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShtZXNzYWdlKSkuZ2V0KCkpOwogfQogCiBz
dGF0aWMgdm9pZCBkaWRSZWNlaXZlQ29udGVudExlbmd0aEZvclJlc291cmNlKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmLCB1aW50NjRfdCBpZGVudGlmaWVyLCB1aW50NjRf
dCBsZW5ndGgsIGNvbnN0IHZvaWQqKQpAQCAtMjAyLDcgKzIwMiw3IEBAIHN0YXRpYyB2b2lkIGRp
ZFJlY2VpdmVDb250ZW50TGVuZ3RoRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdL
QnVuZGxlRnJhCiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiUGFnZSIpLCB0b0lt
cGwocGFnZSkpOwogICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6ZnJvbVVURjgoIklkZW50aWZpZXIi
KSwgQVBJOjpVSW50NjQ6OmNyZWF0ZShpZGVudGlmaWVyKSk7CiAgICAgbWVzc2FnZS5zZXQoU3Ry
aW5nOjpmcm9tVVRGOCgiQ29udGVudExlbmd0aCIpLCBBUEk6OlVJbnQ2NDo6Y3JlYXRlKGxlbmd0
aCkpOwotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmluamVjdGVkQnVuZGxlKCktPnBvc3RNZXNz
YWdlKFN0cmluZzo6ZnJvbVVURjgoIldlYlBhZ2UuRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGhGb3JS
ZXNvdXJjZSIpLCBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoc3RkOjptb3ZlKG1lc3NhZ2Up
KS5nZXQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuaW5qZWN0ZWRCdW5kbGUoKS0+cG9z
dE1lc3NhZ2UoU3RyaW5nOjpmcm9tVVRGOCgiV2ViUGFnZS5EaWRSZWNlaXZlQ29udGVudExlbmd0
aEZvclJlc291cmNlIiksIEltbXV0YWJsZURpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUobWVz
c2FnZSkpLmdldCgpKTsKIH0KIAogc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZEZvclJlc291cmNl
KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmLCB1aW50NjRfdCBpZGVudGlm
aWVyLCBjb25zdCB2b2lkKikKQEAgLTIxMCw3ICsyMTAsNyBAQCBzdGF0aWMgdm9pZCBkaWRGaW5p
c2hMb2FkRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYs
IHVpbgogICAgIEltbXV0YWJsZURpY3Rpb25hcnk6Ok1hcFR5cGUgbWVzc2FnZTsKICAgICBtZXNz
YWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJQYWdlIiksIHRvSW1wbChwYWdlKSk7CiAgICAgbWVz
c2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiSWRlbnRpZmllciIpLCBBUEk6OlVJbnQ2NDo6Y3Jl
YXRlKGlkZW50aWZpZXIpKTsKLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5pbmplY3RlZEJ1bmRs
ZSgpLT5wb3N0TWVzc2FnZShTdHJpbmc6OmZyb21VVEY4KCJXZWJQYWdlLkRpZEZpbmlzaExvYWRG
b3JSZXNvdXJjZSIpLCBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoc3RkOjptb3ZlKG1lc3Nh
Z2UpKS5nZXQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuaW5qZWN0ZWRCdW5kbGUoKS0+
cG9zdE1lc3NhZ2UoU3RyaW5nOjpmcm9tVVRGOCgiV2ViUGFnZS5EaWRGaW5pc2hMb2FkRm9yUmVz
b3VyY2UiKSwgSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShtZXNzYWdlKSku
Z2V0KCkpOwogfQogCiBzdGF0aWMgdm9pZCBkaWRGYWlsTG9hZEZvclJlc291cmNlKFdLQnVuZGxl
UGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmLCB1aW50NjRfdCBpZGVudGlmaWVyLCBXS0Vy
cm9yUmVmIGVycm9yLCBjb25zdCB2b2lkKikKQEAgLTIxOSw3ICsyMTksNyBAQCBzdGF0aWMgdm9p
ZCBkaWRGYWlsTG9hZEZvclJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZy
YW1lUmVmLCB1aW50NgogICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6ZnJvbVVURjgoIlBhZ2UiKSwg
dG9JbXBsKHBhZ2UpKTsKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJJZGVudGlm
aWVyIiksIEFQSTo6VUludDY0OjpjcmVhdGUoaWRlbnRpZmllcikpOwogICAgIG1lc3NhZ2Uuc2V0
KFN0cmluZzo6ZnJvbVVURjgoIkVycm9yIiksIHRvSW1wbChlcnJvcikpOwotICAgIFdlYlByb2Nl
c3M6OnNoYXJlZCgpLmluamVjdGVkQnVuZGxlKCktPnBvc3RNZXNzYWdlKFN0cmluZzo6ZnJvbVVU
RjgoIldlYlBhZ2UuRGlkRmFpbExvYWRGb3JSZXNvdXJjZSIpLCBJbW11dGFibGVEaWN0aW9uYXJ5
OjpjcmVhdGUoc3RkOjptb3ZlKG1lc3NhZ2UpKS5nZXQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2hh
cmVkKCkuaW5qZWN0ZWRCdW5kbGUoKS0+cG9zdE1lc3NhZ2UoU3RyaW5nOjpmcm9tVVRGOCgiV2Vi
UGFnZS5EaWRGYWlsTG9hZEZvclJlc291cmNlIiksIEltbXV0YWJsZURpY3Rpb25hcnk6OmNyZWF0
ZShXVEY6Om1vdmUobWVzc2FnZSkpLmdldCgpKTsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0V2Vi
UGFnZUdldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBHVmFsdWUqIHZh
bHVlLCBHUGFyYW1TcGVjKiBwYXJhbVNwZWMpCkBAIC00MDIsNyArNDAyLDcgQEAgdm9pZCB3ZWJr
aXRXZWJQYWdlRGlkUmVjZWl2ZU1lc3NhZ2UoV2ViS2l0V2ViUGFnZSogcGFnZSwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlTmEKICAgICAgICAgbWVzc2FnZVJlcGx5LnNldCgiUGFnZSIsIHdlYlBhZ2Up
OwogICAgICAgICBtZXNzYWdlUmVwbHkuc2V0KCJDYWxsYmFja0lEIiwgQVBJOjpVSW50NjQ6OmNy
ZWF0ZShjYWxsYmFja0lEKSk7CiAgICAgICAgIG1lc3NhZ2VSZXBseS5zZXQoIlNuYXBzaG90Iiwg
c25hcHNob3RJbWFnZSk7Ci0gICAgICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmluamVjdGVkQnVu
ZGxlKCktPnBvc3RNZXNzYWdlKCJXZWJQYWdlLkRpZEdldFNuYXBzaG90IiwgSW1tdXRhYmxlRGlj
dGlvbmFyeTo6Y3JlYXRlKHN0ZDo6bW92ZShtZXNzYWdlUmVwbHkpKS5nZXQoKSk7CisgICAgICAg
IFdlYlByb2Nlc3M6OnNoYXJlZCgpLmluamVjdGVkQnVuZGxlKCktPnBvc3RNZXNzYWdlKCJXZWJQ
YWdlLkRpZEdldFNuYXBzaG90IiwgSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92
ZShtZXNzYWdlUmVwbHkpKS5nZXQoKSk7CiAgICAgfSBlbHNlCiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCAwYzQ2NWY4Li4xYTY3Mjdi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgSW5qZWN0
ZWRCdW5kbGU6OnBvc3RNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUsIEFQSTo6T2Jq
ZWN0KiBtZXNzYWdlCiAgICAgZW5jb2Rlci0+ZW5jb2RlKG1lc3NhZ2VOYW1lKTsKICAgICBlbmNv
ZGVyLT5lbmNvZGUoSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIobWVzc2FnZUJvZHkp
KTsKIAotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkt
PnNlbmRNZXNzYWdlKHN0ZDo6bW92ZShlbmNvZGVyKSk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVk
KCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZE1lc3NhZ2UoV1RGOjptb3ZlKGVuY29k
ZXIpKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZTo6cG9zdFN5bmNocm9ub3VzTWVzc2FnZShj
b25zdCBTdHJpbmcmIG1lc3NhZ2VOYW1lLCBBUEk6Ok9iamVjdCogbWVzc2FnZUJvZHksIFJlZlB0
cjxBUEk6Ok9iamVjdD4mIHJldHVybkRhdGEpCkBAIC0xMjksNyArMTI5LDcgQEAgdm9pZCBJbmpl
Y3RlZEJ1bmRsZTo6cG9zdFN5bmNocm9ub3VzTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2VO
YW1lLCBBUEk6Ok9iamUKICAgICBlbmNvZGVyLT5lbmNvZGUobWVzc2FnZU5hbWUpOwogICAgIGVu
Y29kZXItPmVuY29kZShJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlcihtZXNzYWdlQm9k
eSkpOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZURlY29kZXI+IHJlcGx5RGVj
b2RlciA9IFdlYlByb2Nlc3M6OnNoYXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmRTeW5jTWVzc2FnZShzeW5jUmVxdWVzdElELCBzdGQ6Om1vdmUoZW5jb2RlciksIHN0ZDo6Y2hy
b25vOjptaWxsaXNlY29uZHM6Om1heCgpKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNz
YWdlRGVjb2Rlcj4gcmVwbHlEZWNvZGVyID0gV2ViUHJvY2Vzczo6c2hhcmVkKCkucGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmNNZXNzYWdlKHN5bmNSZXF1ZXN0SUQsIFdURjo6bW92
ZShlbmNvZGVyKSwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kczo6bWF4KCkpOwogICAgIGlmICgh
cmVwbHlEZWNvZGVyIHx8ICFyZXBseURlY29kZXItPmRlY29kZShtZXNzYWdlRGVjb2RlcikpIHsK
ICAgICAgICAgcmV0dXJuRGF0YSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKQEAgLTQxNSw3
ICs0MTUsNyBAQCBQYXNzUmVmUHRyPEFQSTo6QXJyYXk+IEluamVjdGVkQnVuZGxlOjpvcmlnaW5z
V2l0aEFwcGxpY2F0aW9uQ2FjaGUoKQogICAgIGZvciAoY29uc3QgYXV0byYgb3JpZ2luIDogb3Jp
Z2lucykKICAgICAgICAgb3JpZ2luSWRlbnRpZmllcnMudW5jaGVja2VkQXBwZW5kKEFQSTo6U3Ry
aW5nOjpjcmVhdGUob3JpZ2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKSkpOwogCi0gICAgcmV0dXJu
IEFQSTo6QXJyYXk6OmNyZWF0ZShzdGQ6Om1vdmUob3JpZ2luSWRlbnRpZmllcnMpKTsKKyAgICBy
ZXR1cm4gQVBJOjpBcnJheTo6Y3JlYXRlKFdURjo6bW92ZShvcmlnaW5JZGVudGlmaWVycykpOwog
fQogCiBpbnQgSW5qZWN0ZWRCdW5kbGU6Om51bWJlck9mUGFnZXMoV2ViRnJhbWUqIGZyYW1lLCBk
b3VibGUgcGFnZVdpZHRoSW5QaXhlbHMsIGRvdWJsZSBwYWdlSGVpZ2h0SW5QaXhlbHMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAKaW5k
ZXggNzljNTQ1Yi4uMjg5MTkzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVCYWNrRm9yd2FyZExpc3RJdGVtLmNwcApAQCAtNDAsNyArNDAsNyBAQCBQYXNzUmVmUHRyPEFQ
STo6QXJyYXk+IEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbTo6Y2hpbGRyZW4oKSBj
b25zdAogICAgIGZvciAoY29uc3QgYXV0byYgY2hpbGQgOiBtX2l0ZW0tPmNoaWxkcmVuKCkpCiAg
ICAgICAgIGNoaWxkcmVuLnVuY2hlY2tlZEFwcGVuZChJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJk
TGlzdEl0ZW06OmNyZWF0ZShjaGlsZCkpOwogCi0gICAgcmV0dXJuIEFQSTo6QXJyYXk6OmNyZWF0
ZShzdGQ6Om1vdmUoY2hpbGRyZW4pKTsKKyAgICByZXR1cm4gQVBJOjpBcnJheTo6Y3JlYXRlKFdU
Rjo6bW92ZShjaGlsZHJlbikpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAKaW5k
ZXggMzYyMzM4Ny4uNGRlZGIzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgYm9vbCBJbmpl
Y3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudDo6Z2V0Q3VzdG9tTWVudUZyb21EZWZhdWx0
SXRlbXMoV2ViUGFnZSoKIAogICAgIFdLQXJyYXlSZWYgbmV3TWVudVdLID0gMDsKICAgICBXS1R5
cGVSZWYgdXNlckRhdGFUb1Bhc3MgPSAwOwotICAgIG1fY2xpZW50LmdldENvbnRleHRNZW51RnJv
bURlZmF1bHRNZW51KHRvQVBJKHBhZ2UpLCB0b0FQSShoaXRUZXN0UmVzdWx0KSwgdG9BUEkoQVBJ
OjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShkZWZhdWx0TWVudUl0ZW1zKSkuZ2V0KCkpLCAmbmV3
TWVudVdLLCAmdXNlckRhdGFUb1Bhc3MsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAg
bV9jbGllbnQuZ2V0Q29udGV4dE1lbnVGcm9tRGVmYXVsdE1lbnUodG9BUEkocGFnZSksIHRvQVBJ
KGhpdFRlc3RSZXN1bHQpLCB0b0FQSShBUEk6OkFycmF5OjpjcmVhdGUoV1RGOjptb3ZlKGRlZmF1
bHRNZW51SXRlbXMpKS5nZXQoKSksICZuZXdNZW51V0ssICZ1c2VyRGF0YVRvUGFzcywgbV9jbGll
bnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICBSZWZQdHI8QVBJOjpBcnJheT4gYXJyYXkgPSBhZG9w
dFJlZih0b0ltcGwobmV3TWVudVdLKSk7CiAgICAgdXNlckRhdGEgPSBhZG9wdFJlZih0b0ltcGwo
dXNlckRhdGFUb1Bhc3MpKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZUZvcm1DbGllbnQuY3BwCmluZGV4IDBjODM0N2UuLjYyYzJmOTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9y
bUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNwcApAQCAtMTM0LDcgKzEzNCw3IEBAIHZv
aWQgSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6d2lsbFNlbmRTdWJtaXRFdmVudChXZWJQ
YWdlKiBwYWdlLCBIVE1MRm9ybUVsCiAgICAgSW1tdXRhYmxlRGljdGlvbmFyeTo6TWFwVHlwZSBt
YXA7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2YWx1ZXMuc2l6ZSgpOyArK2kpCiAgICAg
ICAgIG1hcC5zZXQodmFsdWVzW2ldLmZpcnN0LCBBUEk6OlN0cmluZzo6Y3JlYXRlKHZhbHVlc1tp
XS5zZWNvbmQpKTsKLSAgICBhdXRvIHRleHRGaWVsZHNNYXAgPSBJbW11dGFibGVEaWN0aW9uYXJ5
OjpjcmVhdGUoc3RkOjptb3ZlKG1hcCkpOworICAgIGF1dG8gdGV4dEZpZWxkc01hcCA9IEltbXV0
YWJsZURpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUobWFwKSk7CiAKICAgICBtX2NsaWVudC53
aWxsU2VuZFN1Ym1pdEV2ZW50KHRvQVBJKHBhZ2UpLCB0b0FQSShub2RlSGFuZGxlLmdldCgpKSwg
dG9BUEkoZnJhbWUpLCB0b0FQSShzb3VyY2VGcmFtZSksIHRvQVBJKHRleHRGaWVsZHNNYXAuZ2V0
KCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQpAQCAtMTQ5LDcgKzE0OSw3IEBAIHZv
aWQgSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6d2lsbFN1Ym1pdEZvcm0oV2ViUGFnZSog
cGFnZSwgSFRNTEZvcm1FbGVtZW50CiAgICAgSW1tdXRhYmxlRGljdGlvbmFyeTo6TWFwVHlwZSBt
YXA7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2YWx1ZXMuc2l6ZSgpOyArK2kpCiAgICAg
ICAgIG1hcC5zZXQodmFsdWVzW2ldLmZpcnN0LCBBUEk6OlN0cmluZzo6Y3JlYXRlKHZhbHVlc1tp
XS5zZWNvbmQpKTsKLSAgICBhdXRvIHRleHRGaWVsZHNNYXAgPSBJbW11dGFibGVEaWN0aW9uYXJ5
OjpjcmVhdGUoc3RkOjptb3ZlKG1hcCkpOworICAgIGF1dG8gdGV4dEZpZWxkc01hcCA9IEltbXV0
YWJsZURpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUobWFwKSk7CiAKICAgICBXS1R5cGVSZWYg
dXNlckRhdGFUb1Bhc3MgPSAwOwogICAgIG1fY2xpZW50LndpbGxTdWJtaXRGb3JtKHRvQVBJKHBh
Z2UpLCB0b0FQSShub2RlSGFuZGxlLmdldCgpKSwgdG9BUEkoZnJhbWUpLCB0b0FQSShzb3VyY2VG
cmFtZSksIHRvQVBJKHRleHRGaWVsZHNNYXAuZ2V0KCkpLCAmdXNlckRhdGFUb1Bhc3MsIG1fY2xp
ZW50LmJhc2UuY2xpZW50SW5mbyk7CkBAIC0xNjcsNyArMTY3LDcgQEAgdm9pZCBJbmplY3RlZEJ1
bmRsZVBhZ2VGb3JtQ2xpZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoV2ViUGFnZSogcGFn
ZSwgY29uc3QKICAgICBmb3IgKGNvbnN0IGF1dG8mIGVsZW1lbnQgOiBlbGVtZW50cykKICAgICAg
ICAgZWxlbWVudEhhbmRsZXMudW5jaGVja2VkQXBwZW5kKEluamVjdGVkQnVuZGxlTm9kZUhhbmRs
ZTo6Z2V0T3JDcmVhdGUoZWxlbWVudC5nZXQoKSkpOwogCi0gICAgbV9jbGllbnQuZGlkQXNzb2Np
YXRlRm9ybUNvbnRyb2xzKHRvQVBJKHBhZ2UpLCB0b0FQSShBUEk6OkFycmF5OjpjcmVhdGUoc3Rk
Ojptb3ZlKGVsZW1lbnRIYW5kbGVzKSkuZ2V0KCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8p
OworICAgIG1fY2xpZW50LmRpZEFzc29jaWF0ZUZvcm1Db250cm9scyh0b0FQSShwYWdlKSwgdG9B
UEkoQVBJOjpBcnJheTo6Y3JlYXRlKFdURjo6bW92ZShlbGVtZW50SGFuZGxlcykpLmdldCgpKSwg
bV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIAogYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2VG
b3JtQ2xpZW50OjpzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKFdlYlBhZ2UqIHBhZ2UpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2Nh
cGVCcm93c2VyRnVuY3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcAppbmRleCA0YWMxZjQ4Li4zMjg2NDNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0
c2NhcGVCcm93c2VyRnVuY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAKQEAgLTI5OSw3ICsyOTksNyBA
QCBzdGF0aWMgTlBFcnJvciBOUE5fUG9zdFVSTChOUFAgbnBwLCBjb25zdCBjaGFyKiB1cmwsIGNv
bnN0IGNoYXIqIHRhcmdldCwgdWludDMyXwogICAgICAgICByZXR1cm4gZXJyb3I7CiAKICAgICBS
ZWZQdHI8TmV0c2NhcGVQbHVnaW4+IHBsdWdpbiA9IE5ldHNjYXBlUGx1Z2luOjpmcm9tTlBQKG5w
cCk7Ci0gICAgcGx1Z2luLT5sb2FkVVJMKCJQT1NUIiwgbWFrZVVSTFN0cmluZyh1cmwpLCB0YXJn
ZXQsIHN0ZDo6bW92ZShoZWFkZXJGaWVsZHMpLCBwb3N0RGF0YSwgZmFsc2UsIDApOworICAgIHBs
dWdpbi0+bG9hZFVSTCgiUE9TVCIsIG1ha2VVUkxTdHJpbmcodXJsKSwgdGFyZ2V0LCBXVEY6Om1v
dmUoaGVhZGVyRmllbGRzKSwgcG9zdERhdGEsIGZhbHNlLCAwKTsKICAgICByZXR1cm4gTlBFUlJf
Tk9fRVJST1I7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwCmluZGV4IDg2ZDMyYTEuLmRh
YWIyMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9OZXRzY2FwZVBsdWdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcApAQCAtMzYzLDcgKzM2Myw3IEBAIHVp
bnQzMl90IE5ldHNjYXBlUGx1Z2luOjpzY2hlZHVsZVRpbWVyKHVuc2lnbmVkIGludGVydmFsLCBi
b29sIHJlcGVhdCwgdm9pZCAoKnRpCiAgICAgCiAgICAgLy8gRklYTUU6IEJhc2VkIG9uIHRoZSBw
bHVnLWluIHZpc2liaWxpdHksIGZpZ3VyZSBvdXQgaWYgd2Ugc2hvdWxkIHRocm90dGxlIHRoZSB0
aW1lciwgb3IgaWYgd2Ugc2hvdWxkIHN0YXJ0IGl0IGF0IGFsbC4KICAgICB0aW1lci0+c3RhcnQo
KTsKLSAgICBtX3RpbWVycy5zZXQodGltZXJJRCwgc3RkOjptb3ZlKHRpbWVyKSk7CisgICAgbV90
aW1lcnMuc2V0KHRpbWVySUQsIFdURjo6bW92ZSh0aW1lcikpOwogCiAgICAgcmV0dXJuIHRpbWVy
SUQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQppbmRleCAzZWY0ZDM0
Li5mYjNkNjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KQEAgLTk5
NCw3ICs5OTQsNyBAQCBzdGF0aWMgYm9vbCBjb252ZXJ0U3RyaW5nVG9LZXlDb2RlcyhTdHJpbmdW
aWV3IHN0cmluZywgU2NyaXB0Q29kZSBzY3JpcHRDb2RlLCBWZQogICAgIGlmIChzdGF0dXMgIT0g
bm9FcnIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGtleUNvZGVzID0gc3RkOjptb3Zl
KG91dHB1dERhdGEpOworICAgIGtleUNvZGVzID0gV1RGOjptb3ZlKG91dHB1dERhdGEpOwogICAg
IHJldHVybiB0cnVlOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1Jlc291cmNlQ2FjaGUvY2YvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJDRk5ldC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUvY2YvV2ViUmVzb3VyY2VD
YWNoZU1hbmFnZXJDRk5ldC5jcHAKaW5kZXggN2M3ODhmOS4uNTg4ZTRmZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL2NmL1dlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3Vy
Y2VDYWNoZS9jZi9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlckNGTmV0LmNwcApAQCAtNzAsNyArNzAs
NyBAQCB2b2lkIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyOjpjZlVSTENhY2hlSG9zdE5hbWVzV2l0
aENhbGxiYWNrKENhY2hlQ2FsbGJhY2sgY2FsbAogICAgICAgICAgICAgQ0ZBcnJheUFwcGVuZEFy
cmF5KGhvc3ROYW1lcy5nZXQoKSwgcGFydGl0aW9uTmFtZXMsIENGUmFuZ2VNYWtlKDAsIENGQXJy
YXlHZXRDb3VudChwYXJ0aXRpb25OYW1lcykpKTsKICAgICAgICAgICAgIENGUmVsZWFzZShwYXJ0
aXRpb25OYW1lcyk7CiAgICAgICAgIH0KLSAgICAgICAgY2FsbGJhY2soc3RkOjptb3ZlKGhvc3RO
YW1lcykpOworICAgICAgICBjYWxsYmFjayhXVEY6Om1vdmUoaG9zdE5hbWVzKSk7CiAgICAgfSk7
CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwCmluZGV4IGI1
OTBkMjYuLmIwOTQwOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcApA
QCAtNjIsNyArNjIsNyBAQCBzdGF0aWMgSFRUUEJvZHkgdG9IVFRQQm9keShjb25zdCBGb3JtRGF0
YSYgZm9ybURhdGEpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAgICAgIGh0
dHBCb2R5LmVsZW1lbnRzLmFwcGVuZChzdGQ6Om1vdmUoZWxlbWVudCkpOworICAgICAgICBodHRw
Qm9keS5lbGVtZW50cy5hcHBlbmQoV1RGOjptb3ZlKGVsZW1lbnQpKTsKICAgICB9CiAKICAgICBy
ZXR1cm4gaHR0cEJvZHk7CkBAIC05MSw3ICs5MSw3IEBAIHN0YXRpYyBGcmFtZVN0YXRlIHRvRnJh
bWVTdGF0ZShjb25zdCBIaXN0b3J5SXRlbSYgaGlzdG9yeUl0ZW0pCiAgICAgICAgIEhUVFBCb2R5
IGh0dHBCb2R5ID0gdG9IVFRQQm9keSgqZm9ybURhdGEpOwogICAgICAgICBodHRwQm9keS5jb250
ZW50VHlwZSA9IGhpc3RvcnlJdGVtLmZvcm1Db250ZW50VHlwZSgpOwogCi0gICAgICAgIGZyYW1l
U3RhdGUuaHR0cEJvZHkgPSBzdGQ6Om1vdmUoaHR0cEJvZHkpOworICAgICAgICBmcmFtZVN0YXRl
Lmh0dHBCb2R5ID0gV1RGOjptb3ZlKGh0dHBCb2R5KTsKICAgICB9CiAKICNpZiBQTEFURk9STShJ
T1MpCkBAIC0xMDQsNyArMTA0LDcgQEAgc3RhdGljIEZyYW1lU3RhdGUgdG9GcmFtZVN0YXRlKGNv
bnN0IEhpc3RvcnlJdGVtJiBoaXN0b3J5SXRlbSkKIAogICAgIGZvciAoYXV0byYgY2hpbGRIaXN0
b3J5SXRlbSA6IGhpc3RvcnlJdGVtLmNoaWxkcmVuKCkpIHsKICAgICAgICAgRnJhbWVTdGF0ZSBj
aGlsZEZyYW1lU3RhdGUgPSB0b0ZyYW1lU3RhdGUoKmNoaWxkSGlzdG9yeUl0ZW0pOwotICAgICAg
ICBmcmFtZVN0YXRlLmNoaWxkcmVuLmFwcGVuZChzdGQ6Om1vdmUoY2hpbGRGcmFtZVN0YXRlKSk7
CisgICAgICAgIGZyYW1lU3RhdGUuY2hpbGRyZW4uYXBwZW5kKFdURjo6bW92ZShjaGlsZEZyYW1l
U3RhdGUpKTsKICAgICB9CiAKICAgICByZXR1cm4gZnJhbWVTdGF0ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAKaW5kZXggY2QyOWUzMy4uOWNiODAyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTY1Nyw3ICs2NTcsNyBAQCB2b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNl
UmVzcG9ucwogCiAgICAgYm9vbCBjYW5TaG93TUlNRVR5cGUgPSB3ZWJQYWdlLT5jYW5TaG93TUlN
RVR5cGUocmVzcG9uc2UubWltZVR5cGUoKSk7CiAKLSAgICB1aW50NjRfdCBsaXN0ZW5lcklEID0g
bV9mcmFtZS0+c2V0VXBQb2xpY3lMaXN0ZW5lcihzdGQ6Om1vdmUoZnVuY3Rpb24pKTsKKyAgICB1
aW50NjRfdCBsaXN0ZW5lcklEID0gbV9mcmFtZS0+c2V0VXBQb2xpY3lMaXN0ZW5lcihXVEY6Om1v
dmUoZnVuY3Rpb24pKTsKICAgICBib29sIHJlY2VpdmVkUG9saWN5QWN0aW9uOwogICAgIHVpbnQ2
NF90IHBvbGljeUFjdGlvbjsKICAgICB1aW50NjRfdCBkb3dubG9hZElEOwpAQCAtNjkxLDcgKzY5
MSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9y
TmV3V2luZG93QWN0aW9uKGNvbnN0IE5hdmlnYXRpCiAgICAgfQogCiAKLSAgICB1aW50NjRfdCBs
aXN0ZW5lcklEID0gbV9mcmFtZS0+c2V0VXBQb2xpY3lMaXN0ZW5lcihzdGQ6Om1vdmUoZnVuY3Rp
b24pKTsKKyAgICB1aW50NjRfdCBsaXN0ZW5lcklEID0gbV9mcmFtZS0+c2V0VXBQb2xpY3lMaXN0
ZW5lcihXVEY6Om1vdmUoZnVuY3Rpb24pKTsKIAogICAgIE5hdmlnYXRpb25BY3Rpb25EYXRhIG5h
dmlnYXRpb25BY3Rpb25EYXRhOwogICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLm5hdmlnYXRpb25U
eXBlID0gYWN0aW9uLT5uYXZpZ2F0aW9uVHlwZSgpOwpAQCAtNzI3LDcgKzcyNyw3IEBAIHZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbihjb25zdCBOYXZpZ2F0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgdWlu
dDY0X3QgbGlzdGVuZXJJRCA9IG1fZnJhbWUtPnNldFVwUG9saWN5TGlzdGVuZXIoc3RkOjptb3Zl
KGZ1bmN0aW9uKSk7CisgICAgdWludDY0X3QgbGlzdGVuZXJJRCA9IG1fZnJhbWUtPnNldFVwUG9s
aWN5TGlzdGVuZXIoV1RGOjptb3ZlKGZ1bmN0aW9uKSk7CiAgICAgYm9vbCByZWNlaXZlZFBvbGlj
eUFjdGlvbjsKICAgICB1aW50NjRfdCBwb2xpY3lBY3Rpb247CiAgICAgdWludDY0X3QgZG93bmxv
YWRJRDsKQEAgLTgyNCw3ICs4MjQsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaFdpbGxTdWJtaXRGb3JtKFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBwcnBGb3JtUwogICAgIHdl
YlBhZ2UtPmluamVjdGVkQnVuZGxlRm9ybUNsaWVudCgpLndpbGxTdWJtaXRGb3JtKHdlYlBhZ2Us
IGZvcm0sIG1fZnJhbWUsIHNvdXJjZUZyYW1lLCB2YWx1ZXMsIHVzZXJEYXRhKTsKIAogCi0gICAg
dWludDY0X3QgbGlzdGVuZXJJRCA9IG1fZnJhbWUtPnNldFVwUG9saWN5TGlzdGVuZXIoc3RkOjpt
b3ZlKGZ1bmN0aW9uKSk7CisgICAgdWludDY0X3QgbGlzdGVuZXJJRCA9IG1fZnJhbWUtPnNldFVw
UG9saWN5TGlzdGVuZXIoV1RGOjptb3ZlKGZ1bmN0aW9uKSk7CiAKICAgICB3ZWJQYWdlLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OldpbGxTdWJtaXRGb3JtKG1fZnJhbWUtPmZyYW1lSUQo
KSwgc291cmNlRnJhbWUtPmZyYW1lSUQoKSwgdmFsdWVzLCBsaXN0ZW5lcklELCBJbmplY3RlZEJ1
bmRsZVVzZXJNZXNzYWdlRW5jb2Rlcih1c2VyRGF0YS5nZXQoKSkpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGFzdGVib2FyZE92
ZXJyaWRlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlBhc3RlYm9hcmRPdmVycmlkZXMuY3BwCmluZGV4IDc2YjAwNGYuLjFhMTMxZjJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBhc3RlYm9h
cmRPdmVycmlkZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGFzdGVib2FyZE92ZXJyaWRlcy5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgdm9pZCBX
ZWJQYXN0ZWJvYXJkT3ZlcnJpZGVzOjphZGRPdmVycmlkZShjb25zdCBTdHJpbmcmIHBhc3RlYm9h
cmROYW1lLCBjb25zdCBTdHIKIAogICAgIGlmIChhZGRSZXN1bHQuaXNOZXdFbnRyeSkgewogICAg
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8SGFzaE1hcDxTdHJpbmcsIFZlY3Rvcjx1aW50OF90Pj4+IHR5
cGVNYXAgPSBzdGQ6Om1ha2VfdW5pcXVlPEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8dWludDhfdD4+
PigpOwotICAgICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gc3RkOjptb3ZlKHR5cGVN
YXApOworICAgICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gV1RGOjptb3ZlKHR5cGVN
YXApOwogICAgIH0KIAogICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUtPnNldCh0eXBlLCBk
YXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvZ3RrL1dlYkVkaXRvckNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFZGl0b3JDbGllbnRHdGsuY3BwCmluZGV4IGJmYmI0NDYu
LjQ2OWQ5NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvZ3RrL1dlYkVkaXRvckNsaWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRWRpdG9yQ2xpZW50R3RrLmNwcApAQCAtNTUs
NyArNTUsNyBAQCBib29sIFdlYkVkaXRvckNsaWVudDo6ZXhlY3V0ZVBlbmRpbmdFZGl0b3JDb21t
YW5kcyhGcmFtZSogZnJhbWUsIGNvbnN0IFZlY3RvcjxXVAogICAgICAgICBpZiAoY29tbWFuZC5p
c1RleHRJbnNlcnRpb24oKSAmJiAhYWxsb3dUZXh0SW5zZXJ0aW9uKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgICAgIGNvbW1hbmRzLmFwcGVuZChzdGQ6Om1vdmUoY29tbWFuZCkp
OworICAgICAgICBjb21tYW5kcy5hcHBlbmQoV1RGOjptb3ZlKGNvbW1hbmQpKTsKICAgICB9CiAK
ICAgICBmb3IgKGF1dG8mIGNvbW1hbmQgOiBjb21tYW5kcykgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCA2NjAy
MDM4Li5jOTg2NGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcApAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQgRXZlbnRE
aXNwYXRjaGVyOjpjbGVhclF1ZXVlZFRvdWNoRXZlbnRzRm9yUGFnZShjb25zdCBXZWJQYWdlJiB3
ZWJQYWdlKQogdm9pZCBFdmVudERpc3BhdGNoZXI6OmdldFF1ZXVlZFRvdWNoRXZlbnRzRm9yUGFn
ZShjb25zdCBXZWJQYWdlJiB3ZWJQYWdlLCBUb3VjaEV2ZW50UXVldWUmIGRlc3RpbmF0aW9uUXVl
dWUpCiB7CiAgICAgU3BpbkxvY2tIb2xkZXIgbG9ja2VyKCZtX3RvdWNoRXZlbnRzTG9jayk7Ci0g
ICAgZGVzdGluYXRpb25RdWV1ZSA9IHN0ZDo6bW92ZShtX3RvdWNoRXZlbnRzLnRha2Uod2ViUGFn
ZS5wYWdlSUQoKSkpOworICAgIGRlc3RpbmF0aW9uUXVldWUgPSBXVEY6Om1vdmUobV90b3VjaEV2
ZW50cy50YWtlKHdlYlBhZ2UucGFnZUlEKCkpKTsKIH0KIAogdm9pZCBFdmVudERpc3BhdGNoZXI6
OnRvdWNoRXZlbnQodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJLaXQ6OldlYlRvdWNoRXZlbnQm
IHRvdWNoRXZlbnQpCkBAIC0xNjUsNyArMTY1LDcgQEAgdm9pZCBFdmVudERpc3BhdGNoZXI6OnRv
dWNoRXZlbnQodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJLaXQ6OldlYlRvdWNoRXZlbnQmIHQK
ICAgICB7CiAgICAgICAgIFNwaW5Mb2NrSG9sZGVyIGxvY2tlcigmbV90b3VjaEV2ZW50c0xvY2sp
OwogICAgICAgICB1cGRhdGVMaXN0V2FzRW1wdHkgPSBtX3RvdWNoRXZlbnRzLmlzRW1wdHkoKTsK
LSAgICAgICAgYXV0byBhZGRSZXN1bHQgPSBtX3RvdWNoRXZlbnRzLmFkZChwYWdlSUQsIHN0ZDo6
bW92ZShUb3VjaEV2ZW50UXVldWUoKSkpOworICAgICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fdG91
Y2hFdmVudHMuYWRkKHBhZ2VJRCwgV1RGOjptb3ZlKFRvdWNoRXZlbnRRdWV1ZSgpKSk7CiAgICAg
ICAgIGlmIChhZGRSZXN1bHQuaXNOZXdFbnRyeSkKICAgICAgICAgICAgIGFkZFJlc3VsdC5pdGVy
YXRvci0+dmFsdWUuYXBwZW5kKHRvdWNoRXZlbnQpOwogICAgICAgICBlbHNlIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCmlu
ZGV4IGQwYjM4ZWMuLmJiODQ3ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcApAQCAtMjQ5LDcgKzI0OSw3IEBAIHZvaWQg
RmluZENvbnRyb2xsZXI6OmZpbmRTdHJpbmdNYXRjaGVzKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBG
aW5kT3B0aW9ucyBvcHRpb25zCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2ZpbmRNYXRj
aGVzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIFZlY3RvcjxJbnRSZWN0PiByZWN0czsKICAgICAg
ICAgbV9maW5kTWF0Y2hlc1tpXS0+dGV4dFJlY3RzKHJlY3RzKTsKLSAgICAgICAgbWF0Y2hSZWN0
cy5hcHBlbmQoc3RkOjptb3ZlKHJlY3RzKSk7CisgICAgICAgIG1hdGNoUmVjdHMuYXBwZW5kKFdU
Rjo6bW92ZShyZWN0cykpOwogICAgIH0KIAogICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpEaWRGaW5kU3RyaW5nTWF0Y2hlcyhzdHJpbmcsIG1hdGNoUmVjdHMsIGlu
ZGV4Rm9yU2VsZWN0aW9uKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCmluZGV4IGVkNmY0YTQuLjRm
N2IxOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdl
T3ZlcmxheUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCkBAIC0xMDYsNyArMTA2LDcgQEAgdm9pZCBQ
YWdlT3ZlcmxheUNvbnRyb2xsZXI6Omluc3RhbGxQYWdlT3ZlcmxheShQYXNzUmVmUHRyPFBhZ2VP
dmVybGF5PiBwYWdlT3ZlcmwKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgbV9vdmVybGF5
R3JhcGhpY3NMYXllcnMuc2V0KG92ZXJsYXkuZ2V0KCksIHN0ZDo6bW92ZShsYXllcikpOworICAg
IG1fb3ZlcmxheUdyYXBoaWNzTGF5ZXJzLnNldChvdmVybGF5LmdldCgpLCBXVEY6Om1vdmUobGF5
ZXIpKTsKIAogICAgIHVwZGF0ZUZvcmNlU3luY2hyb25vdXNTY3JvbGxMYXllclBvc2l0aW9uVXBk
YXRlcygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFt
ZS5jcHAKaW5kZXggZTk1ZTIwOC4uOTdkMTk5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC0xMzQsNyArMTM0LDcgQEAgUGFzc1JlZlB0
cjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZVN1YmZyYW1lKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0
IFN0cmluZyYgZnJhbWUKIAogUGFzc1JlZlB0cjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZShz
dGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+IGZyYW1lTG9hZGVyQ2xpZW50KQog
ewotICAgIFJlZlB0cjxXZWJGcmFtZT4gZnJhbWUgPSBhZG9wdFJlZihuZXcgV2ViRnJhbWUoc3Rk
Ojptb3ZlKGZyYW1lTG9hZGVyQ2xpZW50KSkpOworICAgIFJlZlB0cjxXZWJGcmFtZT4gZnJhbWUg
PSBhZG9wdFJlZihuZXcgV2ViRnJhbWUoV1RGOjptb3ZlKGZyYW1lTG9hZGVyQ2xpZW50KSkpOwog
CiAgICAgLy8gQWRkIGV4cGxpY3QgcmVmKCkgdGhhdCB3aWxsIGJlIGJhbGFuY2VkIGluIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpmcmFtZUxvYWRlckRlc3Ryb3llZCgpLgogICAgIGZyYW1lLT5yZWYo
KTsKQEAgLTE0Nyw3ICsxNDcsNyBAQCBXZWJGcmFtZTo6V2ViRnJhbWUoc3RkOjp1bmlxdWVfcHRy
PFdlYkZyYW1lTG9hZGVyQ2xpZW50PiBmcmFtZUxvYWRlckNsaWVudCkKICAgICAsIG1fcG9saWN5
TGlzdGVuZXJJRCgwKQogICAgICwgbV9wb2xpY3lGdW5jdGlvbigwKQogICAgICwgbV9wb2xpY3lE
b3dubG9hZElEKDApCi0gICAgLCBtX2ZyYW1lTG9hZGVyQ2xpZW50KHN0ZDo6bW92ZShmcmFtZUxv
YWRlckNsaWVudCkpCisgICAgLCBtX2ZyYW1lTG9hZGVyQ2xpZW50KFdURjo6bW92ZShmcmFtZUxv
YWRlckNsaWVudCkpCiAgICAgLCBtX2xvYWRMaXN0ZW5lcigwKQogICAgICwgbV9mcmFtZUlEKGdl
bmVyYXRlRnJhbWVJRCgpKQogewpAQCAtMjI4LDcgKzIyOCw3IEBAIHZvaWQgV2ViRnJhbWU6OmRp
ZFJlY2VpdmVQb2xpY3lEZWNpc2lvbih1aW50NjRfdCBsaXN0ZW5lcklELCBQb2xpY3lBY3Rpb24g
YWN0aW9uCiAKICAgICBBU1NFUlQobV9wb2xpY3lGdW5jdGlvbik7CiAKLSAgICBGcmFtZVBvbGlj
eUZ1bmN0aW9uIGZ1bmN0aW9uID0gc3RkOjptb3ZlKG1fcG9saWN5RnVuY3Rpb24pOworICAgIEZy
YW1lUG9saWN5RnVuY3Rpb24gZnVuY3Rpb24gPSBXVEY6Om1vdmUobV9wb2xpY3lGdW5jdGlvbik7
CiAKICAgICBpbnZhbGlkYXRlUG9saWN5TGlzdGVuZXIoKTsKIApAQCAtNDUxLDcgKzQ1MSw3IEBA
IFBhc3NSZWZQdHI8QVBJOjpBcnJheT4gV2ViRnJhbWU6OmNoaWxkRnJhbWVzKCkKICAgICAgICAg
dmVjdG9yLnVuY2hlY2tlZEFwcGVuZCh3ZWJGcmFtZSk7CiAgICAgfQogCi0gICAgcmV0dXJuIEFQ
STo6QXJyYXk6OmNyZWF0ZShzdGQ6Om1vdmUodmVjdG9yKSk7CisgICAgcmV0dXJuIEFQSTo6QXJy
YXk6OmNyZWF0ZShXVEY6Om1vdmUodmVjdG9yKSk7CiB9CiAKIFN0cmluZyBXZWJGcmFtZTo6bGF5
ZXJUcmVlQXNUZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKaW5kZXggYWYyNmQwMC4uODY0YzA4ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKQEAg
LTkyLDcgKzkyLDcgQEAgV2ViUGFnZSogV2ViSW5zcGVjdG9yOjpjcmVhdGVJbnNwZWN0b3JQYWdl
KCkKIAogICAgIGF1dG8gZnJvbnRlbmRDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkluc3Bl
Y3RvckZyb250ZW5kQ2xpZW50PihtX3BhZ2UsIG1faW5zcGVjdG9yUGFnZSk7CiAgICAgbV9mcm9u
dGVuZENsaWVudCA9IGZyb250ZW5kQ2xpZW50LmdldCgpOwotICAgIG1faW5zcGVjdG9yUGFnZS0+
Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLnNldEluc3BlY3RvckZyb250ZW5kQ2xp
ZW50KHN0ZDo6bW92ZShmcm9udGVuZENsaWVudCkpOworICAgIG1faW5zcGVjdG9yUGFnZS0+Y29y
ZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLnNldEluc3BlY3RvckZyb250ZW5kQ2xpZW50
KFdURjo6bW92ZShmcm9udGVuZENsaWVudCkpOwogICAgIHJldHVybiBtX2luc3BlY3RvclBhZ2U7
CiB9CiAKQEAgLTEyMiw3ICsxMjIsNyBAQCBXZWJQYWdlKiBXZWJJbnNwZWN0b3I6OmNyZWF0ZUlu
c3BlY3RvclBhZ2VGb3JUZXN0KCkKIAogICAgIGF1dG8gZnJvbnRlbmRDbGllbnQgPSBzdGQ6Om1h
a2VfdW5pcXVlPFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50PihtX3BhZ2UsIG1faW5zcGVjdG9y
UGFnZSk7CiAgICAgbV9mcm9udGVuZENsaWVudCA9IGZyb250ZW5kQ2xpZW50LmdldCgpOwotICAg
IG1faW5zcGVjdG9yUGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLnNldElu
c3BlY3RvckZyb250ZW5kQ2xpZW50KHN0ZDo6bW92ZShmcm9udGVuZENsaWVudCkpOworICAgIG1f
aW5zcGVjdG9yUGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLnNldEluc3Bl
Y3RvckZyb250ZW5kQ2xpZW50KFdURjo6bW92ZShmcm9udGVuZENsaWVudCkpOwogICAgIHJldHVy
biBtX2luc3BlY3RvclBhZ2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAppbmRleCBkM2ExN2IzLi42ODA3YWMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC01NjEsNyArNTYxLDcgQEAg
dm9pZCBXZWJQYWdlOjpzZXRJbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQoc3RkOjp1bmlxdWVfcHRy
PEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1f
Zm9ybUNsaWVudCA9IHN0ZDo6bW92ZShmb3JtQ2xpZW50KTsKKyAgICBtX2Zvcm1DbGllbnQgPSBX
VEY6Om1vdmUoZm9ybUNsaWVudCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6aW5pdGlhbGl6ZUluamVj
dGVkQnVuZGxlTG9hZGVyQ2xpZW50KFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudEJhc2UqIGNsaWVu
dCkKQEAgLTYwMCw3ICs2MDAsNyBAQCB2b2lkIFdlYlBhZ2U6OnNldEluamVjdGVkQnVuZGxlVUlD
bGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6SW5qZWN0ZWRCdW5kbGU6OlBhZwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgbV91aUNsaWVudCA9IHN0ZDo6bW92ZSh1aUNsaWVudCk7Cisg
ICAgbV91aUNsaWVudCA9IFdURjo6bW92ZSh1aUNsaWVudCk7CiB9CiAKICNpZiBFTkFCTEUoRlVM
TFNDUkVFTl9BUEkpCkBAIC03OTcsNyArNzk3LDcgQEAgUGFzc1JlZlB0cjxBUEk6OkFycmF5PiBX
ZWJQYWdlOjp0cmFja2VkUmVwYWludFJlY3RzKCkKICAgICBmb3IgKGNvbnN0IGF1dG8mIHJlcGFp
bnRSZWN0IDogdmlldy0+dHJhY2tlZFJlcGFpbnRSZWN0cygpKQogICAgICAgICByZXBhaW50UmVj
dHMudW5jaGVja2VkQXBwZW5kKEFQSTo6UmVjdDo6Y3JlYXRlKHRvQVBJKHJlcGFpbnRSZWN0KSkp
OwogCi0gICAgcmV0dXJuIEFQSTo6QXJyYXk6OmNyZWF0ZShzdGQ6Om1vdmUocmVwYWludFJlY3Rz
KSk7CisgICAgcmV0dXJuIEFQSTo6QXJyYXk6OmNyZWF0ZShXVEY6Om1vdmUocmVwYWludFJlY3Rz
KSk7CiB9CiAKIFBsdWdpblZpZXcqIFdlYlBhZ2U6OmZvY3VzZWRQbHVnaW5WaWV3Rm9yRnJhbWUo
RnJhbWUmIGZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5jcHAKaW5kZXggOTZiZDhiOC4uMWEyNmRiZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRy
ZWVIb3N0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3Rr
L0xheWVyVHJlZUhvc3RHdGsuY3BwCkBAIC0zNzEsNyArMzcxLDcgQEAgdm9pZCBMYXllclRyZWVI
b3N0R3RrOjpjcmVhdGVQYWdlT3ZlcmxheUxheWVyKFBhZ2VPdmVybGF5KiBwYWdlT3ZlcmxheSkK
ICAgICBsYXllci0+c2V0U2hvd1JlcGFpbnRDb3VudGVyKG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+
c2V0dGluZ3MoKS5zaG93UmVwYWludENvdW50ZXIoKSk7CiAKICAgICBtX3Jvb3RMYXllci0+YWRk
Q2hpbGQobGF5ZXIuZ2V0KCkpOwotICAgIG1fcGFnZU92ZXJsYXlMYXllcnMuYWRkKHBhZ2VPdmVy
bGF5LCBzdGQ6Om1vdmUobGF5ZXIpKTsKKyAgICBtX3BhZ2VPdmVybGF5TGF5ZXJzLmFkZChwYWdl
T3ZlcmxheSwgV1RGOjptb3ZlKGxheWVyKSk7CiB9CiAKIHZvaWQgTGF5ZXJUcmVlSG9zdEd0azo6
ZGVzdHJveVBhZ2VPdmVybGF5TGF5ZXIoUGFnZU92ZXJsYXkqIHBhZ2VPdmVybGF5KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmlu
ZGV4IDY5M2Y2ZDAuLmNiNTI2NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTI1MjcsNyArMjUyNyw3IEBAIHZvaWQg
V2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmRTdGFydERyYXdpbmdUb1BERih1aW50
NjRfdCBmcmFtZUlELCBjb25zCiAgICAgZG91YmxlIHRvdGFsU2NhbGVGYWN0b3IgPSAxOwogICAg
IGNvbXB1dGVQYWdlc0ZvclByaW50aW5nSW1wbChmcmFtZUlELCBwcmludEluZm8sIHBhZ2VSZWN0
cywgdG90YWxTY2FsZUZhY3Rvcik7CiAgICAgc3RkOjpzaXplX3QgcGFnZUNvdW50ID0gcGFnZVJl
Y3RzLnNpemUoKTsKLSAgICByZXBseS0+c2VuZChzdGQ6Om1vdmUocGFnZVJlY3RzKSwgdG90YWxT
Y2FsZUZhY3Rvcik7CisgICAgcmVwbHktPnNlbmQoV1RGOjptb3ZlKHBhZ2VSZWN0cyksIHRvdGFs
U2NhbGVGYWN0b3IpOwogCiAgICAgUmV0YWluUHRyPENGTXV0YWJsZURhdGFSZWY+IHBkZlBhZ2VE
YXRhOwogICAgIGRyYXdQYWdlc1RvUERGSW1wbChmcmFtZUlELCBwcmludEluZm8sIGZpcnN0UGFn
ZSwgcGFnZUNvdW50IC0gZmlyc3RQYWdlLCBwZGZQYWdlRGF0YSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1v
dGUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FB
bmltYXRpb25SZW1vdGUubW0KaW5kZXggNjE1YmY2YS4uZDNlZjE3ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVt
b3RlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZv
cm1DQUFuaW1hdGlvblJlbW90ZS5tbQpAQCAtNDAxLDcgKzQwMSw3IEBAIHZvaWQgUGxhdGZvcm1D
QUFuaW1hdGlvblJlbW90ZTo6c2V0VGltaW5nRnVuY3Rpb24oY29uc3QgVGltaW5nRnVuY3Rpb24q
IHZhbHVlLCBiCiAgICAgVmVjdG9yPFJlZlB0cjxUaW1pbmdGdW5jdGlvbj4+IHRpbWluZ0Z1bmN0
aW9uczsKICAgICB0aW1pbmdGdW5jdGlvbnMuYXBwZW5kKHZhbHVlLT5jbG9uZSgpKTsKIAotICAg
IG1fcHJvcGVydGllcy50aW1pbmdGdW5jdGlvbnMgPSBzdGQ6Om1vdmUodGltaW5nRnVuY3Rpb25z
KTsKKyAgICBtX3Byb3BlcnRpZXMudGltaW5nRnVuY3Rpb25zID0gV1RGOjptb3ZlKHRpbWluZ0Z1
bmN0aW9ucyk7CiAgICAgbV9wcm9wZXJ0aWVzLnJldmVyc2VUaW1pbmdGdW5jdGlvbnMgPSByZXZl
cnNlOwogfQogCkBAIC01NjksNyArNTY5LDcgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVt
b3RlOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYgdmFsdWVzKQogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgdmFsdWVzLnNpemUoKTsgKytpKQogICAgICAgICBrZXlmcmFtZXMudW5j
aGVja2VkQXBwZW5kKEtleWZyYW1lVmFsdWUodmFsdWVzW2ldKSk7CiAgICAgCi0gICAgbV9wcm9w
ZXJ0aWVzLmtleVZhbHVlcyA9IHN0ZDo6bW92ZShrZXlmcmFtZXMpOworICAgIG1fcHJvcGVydGll
cy5rZXlWYWx1ZXMgPSBXVEY6Om1vdmUoa2V5ZnJhbWVzKTsKIH0KIAogdm9pZCBQbGF0Zm9ybUNB
QW5pbWF0aW9uUmVtb3RlOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFRyYW5zZm9ybWF0aW9uTWF0
cml4PiYgdmFsdWVzKQpAQCAtNTgzLDcgKzU4Myw3IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
blJlbW90ZTo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD4mIHZh
CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2YWx1ZXMuc2l6ZSgpOyArK2kpCiAgICAgICAg
IGtleWZyYW1lcy51bmNoZWNrZWRBcHBlbmQoS2V5ZnJhbWVWYWx1ZSh2YWx1ZXNbaV0pKTsKICAg
ICAKLSAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVzID0gc3RkOjptb3ZlKGtleWZyYW1lcyk7Cisg
ICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlcyA9IFdURjo6bW92ZShrZXlmcmFtZXMpOwogfQogCiB2
b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8Rmxv
YXRQb2ludDNEPiYgdmFsdWVzKQpAQCAtNTk3LDcgKzU5Nyw3IEBAIHZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvblJlbW90ZTo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxGbG9hdFBvaW50M0Q+JiB2YWx1
ZXMpCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2YWx1ZXMuc2l6ZSgpOyArK2kpCiAgICAg
ICAgIGtleWZyYW1lcy51bmNoZWNrZWRBcHBlbmQoS2V5ZnJhbWVWYWx1ZSh2YWx1ZXNbaV0pKTsK
ICAgICAKLSAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVzID0gc3RkOjptb3ZlKGtleWZyYW1lcyk7
CisgICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlcyA9IFdURjo6bW92ZShrZXlmcmFtZXMpOwogfQog
CiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8
Q29sb3I+JiB2YWx1ZXMpCkBAIC02MTEsNyArNjExLDcgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0
aW9uUmVtb3RlOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPENvbG9yPiYgdmFsdWVzKQogICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFsdWVzLnNpemUoKTsgKytpKQogICAgICAgICBrZXlmcmFt
ZXMudW5jaGVja2VkQXBwZW5kKEtleWZyYW1lVmFsdWUodmFsdWVzW2ldKSk7CiAgICAgCi0gICAg
bV9wcm9wZXJ0aWVzLmtleVZhbHVlcyA9IHN0ZDo6bW92ZShrZXlmcmFtZXMpOworICAgIG1fcHJv
cGVydGllcy5rZXlWYWx1ZXMgPSBXVEY6Om1vdmUoa2V5ZnJhbWVzKTsKIH0KIAogI2lmIEVOQUJM
RShDU1NfRklMVEVSUykKQEAgLTYyOCw3ICs2MjgsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b25SZW1vdGU6OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4+
JgogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFsdWVzLnNpemUoKTsgKytpKQogICAgICAg
ICBrZXlmcmFtZXMudW5jaGVja2VkQXBwZW5kKEtleWZyYW1lVmFsdWUodmFsdWVzW2ldKSk7CiAg
ICAgCi0gICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlcyA9IHN0ZDo6bW92ZShrZXlmcmFtZXMpOwor
ICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXMgPSBXVEY6Om1vdmUoa2V5ZnJhbWVzKTsKIH0KICNl
bmRpZgogCkBAIC02NTcsNyArNjU3LDcgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3Rl
OjpzZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmMKICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHZhbHVlcy5zaXplKCk7ICsraSkKICAgICAgICAgdGltaW5n
RnVuY3Rpb25zLnVuY2hlY2tlZEFwcGVuZCh2YWx1ZXNbaV0tPmNsb25lKCkpOwogICAgIAotICAg
IG1fcHJvcGVydGllcy50aW1pbmdGdW5jdGlvbnMgPSBzdGQ6Om1vdmUodGltaW5nRnVuY3Rpb25z
KTsKKyAgICBtX3Byb3BlcnRpZXMudGltaW5nRnVuY3Rpb25zID0gV1RGOjptb3ZlKHRpbWluZ0Z1
bmN0aW9ucyk7CiAgICAgbV9wcm9wZXJ0aWVzLnJldmVyc2VUaW1pbmdGdW5jdGlvbnMgPSByZXZl
cnNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KaW5kZXggNjBjZmNmYy4uOTg4
ZmMzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9S
ZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbQpAQCAtMTA5LDggKzEwOSw4IEBA
IHZvaWQgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6YnVpbGRUcmFuc2FjdGlvbihSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbiYgdHJhbnNhCiAgICAgcm9vdExheWVyUmVtb3RlLnJlY3Vyc2l2ZUJ1
aWxkVHJhbnNhY3Rpb24oKnRoaXMsIHRyYW5zYWN0aW9uKTsKICAgICBtX2N1cnJlbnRUcmFuc2Fj
dGlvbiA9IG51bGxwdHI7CiAKLSAgICB0cmFuc2FjdGlvbi5zZXRDcmVhdGVkTGF5ZXJzKHN0ZDo6
bW92ZShtX2NyZWF0ZWRMYXllcnMpKTsKLSAgICB0cmFuc2FjdGlvbi5zZXREZXN0cm95ZWRMYXll
cklEcyhzdGQ6Om1vdmUobV9kZXN0cm95ZWRMYXllcnMpKTsKKyAgICB0cmFuc2FjdGlvbi5zZXRD
cmVhdGVkTGF5ZXJzKFdURjo6bW92ZShtX2NyZWF0ZWRMYXllcnMpKTsKKyAgICB0cmFuc2FjdGlv
bi5zZXREZXN0cm95ZWRMYXllcklEcyhXVEY6Om1vdmUobV9kZXN0cm95ZWRMYXllcnMpKTsKIH0K
IAogdm9pZCBSZW1vdGVMYXllclRyZWVDb250ZXh0OjpsYXllclByb3BlcnR5Q2hhbmdlZFdoaWxl
QnVpbGRpbmdUcmFuc2FjdGlvbihQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUmIGxheWVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KaW5kZXggZTA3ODEzMS4uOGMxOThlMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCkBAIC0zNTYsNyArMzU2LDcgQEAg
dm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Zmx1c2hMYXllcnMoKQogICAgIGlmICho
YWRBbnlDaGFuZ2VkQmFja2luZ1N0b3JlKQogICAgICAgICBiYWNraW5nU3RvcmVDb2xsZWN0aW9u
LnNjaGVkdWxlVm9sYXRpbGl0eVRpbWVyKCk7CiAKLSAgICBSZWZQdHI8QmFja2luZ1N0b3JlRmx1
c2hlcj4gYmFja2luZ1N0b3JlRmx1c2hlciA9IEJhY2tpbmdTdG9yZUZsdXNoZXI6OmNyZWF0ZShX
ZWJQcm9jZXNzOjpzaGFyZWQoKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLCBzdGQ6Om1vdmUo
Y29tbWl0RW5jb2RlciksIHN0ZDo6bW92ZShjb250ZXh0c1RvRmx1c2gpKTsKKyAgICBSZWZQdHI8
QmFja2luZ1N0b3JlRmx1c2hlcj4gYmFja2luZ1N0b3JlRmx1c2hlciA9IEJhY2tpbmdTdG9yZUZs
dXNoZXI6OmNyZWF0ZShXZWJQcm9jZXNzOjpzaGFyZWQoKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLCBXVEY6Om1vdmUoY29tbWl0RW5jb2RlciksIFdURjo6bW92ZShjb250ZXh0c1RvRmx1c2gp
KTsKICAgICBtX3BlbmRpbmdCYWNraW5nU3RvcmVGbHVzaGVyID0gYmFja2luZ1N0b3JlRmx1c2hl
cjsKIAogICAgIGRpc3BhdGNoX2FzeW5jKG1fY29tbWl0UXVldWUsIFtiYWNraW5nU3RvcmVGbHVz
aGVyXXsKQEAgLTQwMSwxMyArNDAxLDEzIEBAIGJvb2wgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWE6Om1hcmtMYXllcnNWb2xhdGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJsZSgpCiAKIFBhc3NSZWZQ
dHI8UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OkJhY2tpbmdTdG9yZUZsdXNoZXI+IFJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpCYWNraW5nU3RvcmVGbHVzaGVyOjpjcmVhdGUoSVBDOjpD
b25uZWN0aW9uKiBjb25uZWN0aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rl
cj4gZW5jb2RlciwgVmVjdG9yPFJldGFpblB0cjxDR0NvbnRleHRSZWY+PiBjb250ZXh0c1RvRmx1
c2gpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YTo6QmFja2luZ1N0b3JlRmx1c2hlcihjb25uZWN0aW9uLCBzdGQ6Om1vdmUoZW5jb2RlciksIHN0
ZDo6bW92ZShjb250ZXh0c1RvRmx1c2gpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYTo6QmFja2luZ1N0b3JlRmx1c2hlcihjb25uZWN0aW9uLCBX
VEY6Om1vdmUoZW5jb2RlciksIFdURjo6bW92ZShjb250ZXh0c1RvRmx1c2gpKSk7CiB9CiAKIFJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpCYWNraW5nU3RvcmVGbHVzaGVyOjpCYWNraW5nU3Rv
cmVGbHVzaGVyKElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgc3RkOjp1bmlxdWVfcHRyPElQ
Qzo6TWVzc2FnZUVuY29kZXI+IGVuY29kZXIsIFZlY3RvcjxSZXRhaW5QdHI8Q0dDb250ZXh0UmVm
Pj4gY29udGV4dHNUb0ZsdXNoKQogICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCi0gICAg
LCBtX2NvbW1pdEVuY29kZXIoc3RkOjptb3ZlKGVuY29kZXIpKQotICAgICwgbV9jb250ZXh0c1Rv
Rmx1c2goc3RkOjptb3ZlKGNvbnRleHRzVG9GbHVzaCkpCisgICAgLCBtX2NvbW1pdEVuY29kZXIo
V1RGOjptb3ZlKGVuY29kZXIpKQorICAgICwgbV9jb250ZXh0c1RvRmx1c2goV1RGOjptb3ZlKGNv
bnRleHRzVG9GbHVzaCkpCiAgICAgLCBtX2hhc0ZsdXNoZWQoZmFsc2UpCiB7CiB9CkBAIC00MjAs
NyArNDIwLDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6QmFja2luZ1N0b3Jl
Rmx1c2hlcjo6Zmx1c2goKQogICAgICAgICBDR0NvbnRleHRGbHVzaChjb250ZXh0LmdldCgpKTsK
ICAgICBtX2hhc0ZsdXNoZWQgPSB0cnVlOwogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kTWVzc2Fn
ZShzdGQ6Om1vdmUobV9jb21taXRFbmNvZGVyKSk7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kTWVz
c2FnZShXVEY6Om1vdmUobV9jb21taXRFbmNvZGVyKSk7CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWE6OnZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OkZsYWdzLCBib29s
IHdhbnRzRGlkVXBkYXRlVmlld1N0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KaW5kZXggOTg3MmFj
Yy4uZTBkMzNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCkBAIC0xNDIsNyArMTQyLDcgQEAgdm9p
ZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRTZWVrYWJsZVJhbmdlcyhjb25zdCBXZWJD
b3JlOjpUaW1lUmFuZ2VzJiB0aW0KICAgICAgICAgcmFuZ2VzVmVjdG9yLmFwcGVuZChzdGQ6OnBh
aXI8ZG91YmxlLGRvdWJsZT4oc3RhcnQsIGVuZCkpOwogICAgIH0KIAotICAgIG1fcGFnZS0+c2Vu
ZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRTZWVrYWJsZVJh
bmdlc1ZlY3RvcihzdGQ6Om1vdmUocmFuZ2VzVmVjdG9yKSksIG1fcGFnZS0+cGFnZUlEKCkpOwor
ICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
OjpTZXRTZWVrYWJsZVJhbmdlc1ZlY3RvcihXVEY6Om1vdmUocmFuZ2VzVmVjdG9yKSksIG1fcGFn
ZS0+cGFnZUlEKCkpOwogfQogCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldEF1
ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcHRpb25zLCB1
aW50NjRfdCBzZWxlY3RlZEluZGV4KQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IDkzYjk1MjkuLmVhZjJlYjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMyBAQAogMjAxNC0wNy0w
MSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKKyAgICAgICAgQWRkIFdURjo6
bW92ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzQ1MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
dWJzdGl0dXRlIFdURjo6bW92ZSgpIGZvciBzdGQ6Om1vdmUoKS4KKworICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL3dpbi9EUlREYXRhT2JqZWN0LmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9IYXNoTWFwLmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9IYXNoU2V0LmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZQdHIu
Y3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHA6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcDoKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9ucy9SZXRhaW5QdHIubW06CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0NhbGN1bGF0aW9uVmFsdWUuY3BwOgorCisyMDE0LTA3LTAx
ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKwogICAgICAgICBSZW1vdmUgdW5u
ZWNlc3NhcnkgY2FsbHMgdG8gc3RkOjptb3ZlKCkKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDQ5MwogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vRFJURGF0YU9iamVjdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4v
RFJURGF0YU9iamVjdC5jcHAKaW5kZXggMGE2ZDk2NC4uYTMzMDM2YiAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0RSVERhdGFPYmplY3QuY3BwCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9EUlREYXRhT2JqZWN0LmNwcApAQCAtMjU1LDEzICsyNTUsMTMgQEAgU1RE
TUVUSE9ESU1QIERSVERhdGFPYmplY3Q6OlNldERhdGEoRk9STUFURVRDKiBwZm9ybWF0ZXRjLCBT
VEdNRURJVU0qIHBtZWRpdW0sIEIKICAgICBaZXJvTWVtb3J5KHBTdGdNZWQuZ2V0KCksIHNpemVv
ZihTVEdNRURJVU0pKTsKIAogICAgICpmb3JtYXRldGMgPSAqcGZvcm1hdGV0YzsKLSAgICBtX2Zv
cm1hdHMuYXBwZW5kKHN0ZDo6bW92ZShmb3JtYXRldGMpKTsKKyAgICBtX2Zvcm1hdHMuYXBwZW5k
KFdURjo6bW92ZShmb3JtYXRldGMpKTsKIAogICAgIGlmIChmUmVsZWFzZSkKICAgICAgICAgKnBT
dGdNZWQgPSAqcG1lZGl1bTsKICAgICBlbHNlCiAgICAgICAgIENvcHlNZWRpdW0ocFN0Z01lZC5n
ZXQoKSwgcG1lZGl1bSwgcGZvcm1hdGV0Yyk7Ci0gICAgbV9tZWRpdW0uYXBwZW5kKHN0ZDo6bW92
ZShwU3RnTWVkKSk7CisgICAgbV9tZWRpdW0uYXBwZW5kKFdURjo6bW92ZShwU3RnTWVkKSk7CiAK
ICAgICByZXR1cm4gU19PSzsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0hhc2hNYXAuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGFzaE1h
cC5jcHAKaW5kZXggZDAzZmI5NS4uNDIyYmE2ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvSGFzaE1hcC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvSGFzaE1hcC5jcHAKQEAgLTkwLDcgKzkwLDcgQEAgVEVTVChXVEZfSGFzaE1hcCwgTW92
ZU9ubHlWYWx1ZXMpCiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDEwMDsgKytpKSB7CiAg
ICAgICAgIE1vdmVPbmx5IG1vdmVPbmx5KGkgKyAxKTsKLSAgICAgICAgbW92ZU9ubHlWYWx1ZXMu
c2V0KGkgKyAxLCBzdGQ6Om1vdmUobW92ZU9ubHkpKTsKKyAgICAgICAgbW92ZU9ubHlWYWx1ZXMu
c2V0KGkgKyAxLCBXVEY6Om1vdmUobW92ZU9ubHkpKTsKICAgICB9CiAKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IDEwMDsgKytpKSB7CkBAIC0xMTMsNyArMTEzLDcgQEAgVEVTVChXVEZfSGFz
aE1hcCwgTW92ZU9ubHlLZXlzKQogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCAxMDA7ICsr
aSkgewogICAgICAgICBNb3ZlT25seSBtb3ZlT25seShpICsgMSk7Ci0gICAgICAgIG1vdmVPbmx5
S2V5cy5zZXQoc3RkOjptb3ZlKG1vdmVPbmx5KSwgaSArIDEpOworICAgICAgICBtb3ZlT25seUtl
eXMuc2V0KFdURjo6bW92ZShtb3ZlT25seSksIGkgKyAxKTsKICAgICB9CiAKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IDEwMDsgKytpKSB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9IYXNoU2V0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0hhc2hTZXQuY3BwCmluZGV4IGRkNDkxM2QuLjEyODdiNzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hhc2hTZXQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0hhc2hTZXQuY3BwCkBAIC04NCw3ICs4NCw3IEBAIFRFU1QoV1RGX0hhc2hT
ZXQsIE1vdmVPbmx5KQogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCAxMDA7ICsraSkgewog
ICAgICAgICBNb3ZlT25seSBtb3ZlT25seShpICsgMSk7Ci0gICAgICAgIGhhc2hTZXQuYWRkKHN0
ZDo6bW92ZShtb3ZlT25seSkpOworICAgICAgICBoYXNoU2V0LmFkZChXVEY6Om1vdmUobW92ZU9u
bHkpKTsKICAgICB9CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDEwMDsgKytpKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZlB0ci5jcHAKaW5kZXggYmMxZTFlNC4uMjRhZTk0
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZQdHIuY3BwCkBAIC02OSw3ICs2
OSw3IEBAIFRFU1QoV1RGX1JlZlB0ciwgQmFzaWMpCiAKICAgICB7CiAgICAgICAgIFJlZlB0cjxS
ZWZMb2dnZXI+IHAxID0gJmE7Ci0gICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHAyID0gc3RkOjpt
b3ZlKHAxKTsKKyAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcDIgPSBXVEY6Om1vdmUocDEpOwog
ICAgICAgICBBU1NFUlRfRVEobnVsbHB0ciwgcDEuZ2V0KCkpOwogICAgICAgICBBU1NFUlRfRVEo
JmEsIHAyLmdldCgpKTsKICAgICB9CkBAIC03Nyw3ICs3Nyw3IEBAIFRFU1QoV1RGX1JlZlB0ciwg
QmFzaWMpCiAKICAgICB7CiAgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHAxID0gJmE7Ci0gICAg
ICAgIFJlZlB0cjxSZWZMb2dnZXI+IHAyKHN0ZDo6bW92ZShwMSkpOworICAgICAgICBSZWZQdHI8
UmVmTG9nZ2VyPiBwMihXVEY6Om1vdmUocDEpKTsKICAgICAgICAgQVNTRVJUX0VRKG51bGxwdHIs
IHAxLmdldCgpKTsKICAgICAgICAgQVNTRVJUX0VRKCZhLCBwMi5nZXQoKSk7CiAgICAgfQpAQCAt
OTMsNyArOTMsNyBAQCBURVNUKFdURl9SZWZQdHIsIEJhc2ljKQogCiAgICAgewogICAgICAgICBS
ZWZQdHI8RGVyaXZlZFJlZkxvZ2dlcj4gcDEgPSAmYTsKLSAgICAgICAgUmVmUHRyPFJlZkxvZ2dl
cj4gcDIgPSBzdGQ6Om1vdmUocDEpOworICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwMiA9IFdU
Rjo6bW92ZShwMSk7CiAgICAgICAgIEFTU0VSVF9FUShudWxscHRyLCBwMS5nZXQoKSk7CiAgICAg
ICAgIEFTU0VSVF9FUSgmYSwgcDIuZ2V0KCkpOwogICAgIH0KQEAgLTEyMSw3ICsxMjEsNyBAQCBU
RVNUKFdURl9SZWZQdHIsIEFzc2lnblBhc3NSZWZUb1JlZlB0cikKICAgICBEZXJpdmVkUmVmTG9n
Z2VyIGEoImEiKTsKICAgICB7CiAgICAgICAgIFBhc3NSZWY8UmVmTG9nZ2VyPiBwYXNzUmVmKGEp
OwotICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwdHIgPSBzdGQ6Om1vdmUocGFzc1JlZik7Cisg
ICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHB0ciA9IFdURjo6bW92ZShwYXNzUmVmKTsKICAgICAg
ICAgQVNTRVJUX0VRKCZhLCBwdHIuZ2V0KCkpOwogICAgICAgICBwdHIucmVsZWFzZSgpOwogICAg
ICAgICBBU1NFUlRfRVEobnVsbHB0ciwgcHRyLmdldCgpKTsKQEAgLTIwNCw3ICsyMDQsNyBAQCBU
RVNUKFdURl9SZWZQdHIsIEFzc2lnbm1lbnQpCiAgICAgICAgIEFTU0VSVF9FUSgmYSwgcDEuZ2V0
KCkpOwogICAgICAgICBBU1NFUlRfRVEoJmIsIHAyLmdldCgpKTsKICAgICAgICAgbG9nKCkgPDwg
InwgIjsKLSAgICAgICAgcDEgPSBzdGQ6Om1vdmUocDIpOworICAgICAgICBwMSA9IFdURjo6bW92
ZShwMik7CiAgICAgICAgIEFTU0VSVF9FUSgmYiwgcDEuZ2V0KCkpOwogICAgICAgICBBU1NFUlRf
RVEobnVsbHB0ciwgcDIuZ2V0KCkpOwogICAgICAgICBsb2coKSA8PCAifCAiOwpAQCAtMjUwLDcg
KzI1MCw3IEBAIFRFU1QoV1RGX1JlZlB0ciwgQXNzaWdubWVudCkKICAgICAgICAgQVNTRVJUX0VR
KCZhLCBwMS5nZXQoKSk7CiAgICAgICAgIEFTU0VSVF9FUSgmYywgcDIuZ2V0KCkpOwogICAgICAg
ICBsb2coKSA8PCAifCAiOwotICAgICAgICBwMSA9IHN0ZDo6bW92ZShwMik7CisgICAgICAgIHAx
ID0gV1RGOjptb3ZlKHAyKTsKICAgICAgICAgQVNTRVJUX0VRKCZjLCBwMS5nZXQoKSk7CiAgICAg
ICAgIEFTU0VSVF9FUShudWxscHRyLCBwMi5nZXQoKSk7CiAgICAgICAgIGxvZygpIDw8ICJ8ICI7
CkBAIC0yNzAsNyArMjcwLDcgQEAgVEVTVChXVEZfUmVmUHRyLCBBc3NpZ25tZW50KQogICAgIHsK
ICAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcHRyKCZhKTsKICAgICAgICAgQVNTRVJUX0VRKCZh
LCBwdHIuZ2V0KCkpOwotICAgICAgICBwdHIgPSBzdGQ6Om1vdmUocHRyKTsKKyAgICAgICAgcHRy
ID0gV1RGOjptb3ZlKHB0cik7CiAgICAgICAgIEFTU0VSVF9FUSgmYSwgcHRyLmdldCgpKTsKICAg
ICB9CiAgICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNf
c3RyKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9y
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKaW5kZXggYmJi
MWE2My4uZDIwN2EwZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
VmVjdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3Bw
CkBAIC0xNDksNyArMTQ5LDcgQEAgVEVTVChXVEZfVmVjdG9yLCBNb3ZlT25seV9VbmNoZWNrZWRB
cHBlbmQpCiAgICAgdmVjdG9yLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoMTAwKTsKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IDEwMDsgKytpKSB7CiAgICAgICAgIE1vdmVPbmx5IG1vdmVPbmx5
KGkpOwotICAgICAgICB2ZWN0b3IudW5jaGVja2VkQXBwZW5kKHN0ZDo6bW92ZShtb3ZlT25seSkp
OworICAgICAgICB2ZWN0b3IudW5jaGVja2VkQXBwZW5kKFdURjo6bW92ZShtb3ZlT25seSkpOwog
ICAgICAgICBFWFBFQ1RfRVEoMFUsIG1vdmVPbmx5LnZhbHVlKCkpOwogICAgIH0KIApAQCAtMTYz
LDcgKzE2Myw3IEBAIFRFU1QoV1RGX1ZlY3RvciwgTW92ZU9ubHlfQXBwZW5kKQogCiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCAxMDA7ICsraSkgewogICAgICAgICBNb3ZlT25seSBtb3ZlT25s
eShpKTsKLSAgICAgICAgdmVjdG9yLmFwcGVuZChzdGQ6Om1vdmUobW92ZU9ubHkpKTsKKyAgICAg
ICAgdmVjdG9yLmFwcGVuZChXVEY6Om1vdmUobW92ZU9ubHkpKTsKICAgICAgICAgRVhQRUNUX0VR
KDBVLCBtb3ZlT25seS52YWx1ZSgpKTsKICAgICB9CiAKQEAgLTE3Nyw3ICsxNzcsNyBAQCBURVNU
KFdURl9WZWN0b3IsIE1vdmVPbmx5X0FwcGVuZCkKIAogICAgICAgICBmb3IgKHNpemVfdCBqID0g
MDsgaiA8IGk7ICsraikKICAgICAgICAgICAgIHZlY3Rvci5hcHBlbmQoaik7Ci0gICAgICAgIHZl
Y3Rvci5hcHBlbmQoc3RkOjptb3ZlKHZlY3RvclswXSkpOworICAgICAgICB2ZWN0b3IuYXBwZW5k
KFdURjo6bW92ZSh2ZWN0b3JbMF0pKTsKIAogICAgICAgICBFWFBFQ1RfRVEoMFUsIHZlY3Rvclsw
XS52YWx1ZSgpKTsKIApAQCAtMTkzLDcgKzE5Myw3IEBAIFRFU1QoV1RGX1ZlY3RvciwgTW92ZU9u
bHlfSW5zZXJ0KQogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCAxMDA7ICsraSkgewogICAg
ICAgICBNb3ZlT25seSBtb3ZlT25seShpKTsKLSAgICAgICAgdmVjdG9yLmluc2VydCgwLCBzdGQ6
Om1vdmUobW92ZU9ubHkpKTsKKyAgICAgICAgdmVjdG9yLmluc2VydCgwLCBXVEY6Om1vdmUobW92
ZU9ubHkpKTsKICAgICAgICAgRVhQRUNUX0VRKDBVLCBtb3ZlT25seS52YWx1ZSgpKTsKICAgICB9
CiAKQEAgLTIwMyw3ICsyMDMsNyBAQCBURVNUKFdURl9WZWN0b3IsIE1vdmVPbmx5X0luc2VydCkK
IAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMjAwOyBpICs9IDIpIHsKICAgICAgICAgTW92
ZU9ubHkgbW92ZU9ubHkoMTAwMCArIGkpOwotICAgICAgICB2ZWN0b3IuaW5zZXJ0KGksIHN0ZDo6
bW92ZShtb3ZlT25seSkpOworICAgICAgICB2ZWN0b3IuaW5zZXJ0KGksIFdURjo6bW92ZShtb3Zl
T25seSkpOwogICAgICAgICBFWFBFQ1RfRVEoMFUsIG1vdmVPbmx5LnZhbHVlKCkpOwogICAgIH0K
IApAQCAtMjIyLDcgKzIyMiw3IEBAIFRFU1QoV1RGX1ZlY3RvciwgTW92ZU9ubHlfVGFrZUxhc3Qp
CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDEwMDsgKytpKSB7CiAgICAgICAgIE1vdmVP
bmx5IG1vdmVPbmx5KGkpOwotICAgICAgICB2ZWN0b3IuYXBwZW5kKHN0ZDo6bW92ZShtb3ZlT25s
eSkpOworICAgICAgICB2ZWN0b3IuYXBwZW5kKFdURjo6bW92ZShtb3ZlT25seSkpOwogICAgICAg
ICBFWFBFQ1RfRVEoMFUsIG1vdmVPbmx5LnZhbHVlKCkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAKaW5kZXggODI5OGMzMi4uYTM5NWY3OSAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCkBAIC0xNTYs
NyArMTU2LDcgQEAgVEVTVChXVEYsIFN0cmluZ1JlcGxhY2VXaXRoTGl0ZXJhbCkKIFRFU1QoV1RG
LCBTdHJpbmdJc29sYXRlZENvcHkpCiB7CiAgICAgU3RyaW5nIG9yaWdpbmFsID0gIjEyMzQiOwot
ICAgIGF1dG8gY29weSA9IHN0ZDo6bW92ZShvcmlnaW5hbCkuaXNvbGF0ZWRDb3B5KCk7CisgICAg
YXV0byBjb3B5ID0gV1RGOjptb3ZlKG9yaWdpbmFsKS5pc29sYXRlZENvcHkoKTsKICAgICBBU1NF
UlRfRkFMU0Uob3JpZ2luYWwuaW1wbCgpID09IGNvcHkuaW1wbCgpKTsKIH0KIApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvbnMvUmV0YWluUHRyLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvbnMvUmV0YWluUHRyLm1tCmluZGV4IGFkYWQ1ODEuLmMz
N2I5M2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL25zL1JldGFp
blB0ci5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9ucy9SZXRhaW5QdHIu
bW0KQEAgLTUzLDcgKzUzLDcgQEAgVEVTVChSZXRhaW5QdHIsIE1vdmVBc3NpZ25tZW50RnJvbVNh
bWVUeXBlKQogICAgIFJldGFpblB0cjxOU1N0cmluZz4gdGVtcCA9IHN0cmluZzsKIAogICAgIC8v
IFRoaXMgc2hvdWxkIGludm9rZSBSZXRhaW5QdHIncyBtb3ZlIGFzc2lnbm1lbnQgb3BlcmF0b3Iu
Ci0gICAgcHRyID0gc3RkOjptb3ZlKHRlbXApOworICAgIHB0ciA9IFdURjo6bW92ZSh0ZW1wKTsK
IAogICAgIEVYUEVDVF9FUShzdHJpbmcsIHB0cik7CiAgICAgRVhQRUNUX0VRKChOU1N0cmluZyAq
KTAsIHRlbXApOwpAQCAtNzMsNyArNzMsNyBAQCBURVNUKFJldGFpblB0ciwgTW92ZUFzc2lnbm1l
bnRGcm9tU2ltaWxhclR5cGUpCiAgICAgUmV0YWluUHRyPE5TTXV0YWJsZVN0cmluZz4gdGVtcCA9
IHN0cmluZzsKIAogICAgIC8vIFRoaXMgc2hvdWxkIGludm9rZSBSZXRhaW5QdHIncyBtb3ZlIGFz
c2lnbm1lbnQgb3BlcmF0b3IuCi0gICAgcHRyID0gc3RkOjptb3ZlKHRlbXApOworICAgIHB0ciA9
IFdURjo6bW92ZSh0ZW1wKTsKIAogICAgIEVYUEVDVF9FUShzdHJpbmcsIHB0cik7CiAgICAgRVhQ
RUNUX0VRKChOU1N0cmluZyAqKTAsIHRlbXApOwpAQCAtOTEsNyArOTEsNyBAQCBURVNUKFJldGFp
blB0ciwgQ29uc3RydWN0aW9uRnJvbVNhbWVUeXBlKQogICAgIFJldGFpblB0cjxOU1N0cmluZz4g
dGVtcCA9IHN0cmluZzsKIAogICAgIC8vIFRoaXMgc2hvdWxkIGludm9rZSBSZXRhaW5QdHIncyBt
b3ZlIGNvbnN0cnVjdG9yLgotICAgIFJldGFpblB0cjxOU1N0cmluZz4gcHRyMihzdGQ6Om1vdmUo
dGVtcCkpOworICAgIFJldGFpblB0cjxOU1N0cmluZz4gcHRyMihXVEY6Om1vdmUodGVtcCkpOwog
CiAgICAgRVhQRUNUX0VRKHN0cmluZywgcHRyMik7CiAgICAgRVhQRUNUX0VRKChOU1N0cmluZyAq
KTAsIHRlbXApOwpAQCAtMTA5LDcgKzEwOSw3IEBAIFRFU1QoUmV0YWluUHRyLCBDb25zdHJ1Y3Rp
b25Gcm9tU2ltaWxhclR5cGUpCiAgICAgUmV0YWluUHRyPE5TTXV0YWJsZVN0cmluZz4gdGVtcCA9
IHN0cmluZzsKIAogICAgIC8vIFRoaXMgc2hvdWxkIGludm9rZSBSZXRhaW5QdHIncyBtb3ZlIGNv
bnN0cnVjdG9yLgotICAgIFJldGFpblB0cjxOU1N0cmluZz4gcHRyMihzdGQ6Om1vdmUodGVtcCkp
OworICAgIFJldGFpblB0cjxOU1N0cmluZz4gcHRyMihXVEY6Om1vdmUodGVtcCkpOwogCiAgICAg
RVhQRUNUX0VRKHN0cmluZywgcHRyMik7CiAgICAgRVhQRUNUX0VRKChOU1N0cmluZyAqKTAsIHRl
bXApOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NhbGN1
bGF0aW9uVmFsdWUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NhbGN1
bGF0aW9uVmFsdWUuY3BwCmluZGV4IDQ5ZTc1MDQuLjBhZTg1ZDcgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DYWxjdWxhdGlvblZhbHVlLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ2FsY3VsYXRpb25WYWx1ZS5jcHAKQEAg
LTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogc3RhdGljIFBhc3NSZWY8V2ViQ29yZTo6Q2FsY3VsYXRp
b25WYWx1ZT4gY3JlYXRlVGVzdFZhbHVlKCkKIHsKICAgICBhdXRvIG5vZGUgPSBzdGQ6Om1ha2Vf
dW5pcXVlPENhbGN1bGF0aW9uRGVsZXRpb25UZXN0Tm9kZT4oKTsKLSAgICByZXR1cm4gV2ViQ29y
ZTo6Q2FsY3VsYXRpb25WYWx1ZTo6Y3JlYXRlKHN0ZDo6bW92ZShub2RlKSwgV2ViQ29yZTo6Q2Fs
Y3VsYXRpb25SYW5nZUFsbCk7CisgICAgcmV0dXJuIFdlYkNvcmU6OkNhbGN1bGF0aW9uVmFsdWU6
OmNyZWF0ZShXVEY6Om1vdmUobm9kZSksIFdlYkNvcmU6OkNhbGN1bGF0aW9uUmFuZ2VBbGwpOwog
fQogCiBURVNUKENhbGN1bGF0aW9uVmFsdWUsIExlbmd0aENvbnN0cnVjdGlvbikKQEAgLTczLDcg
KzczLDcgQEAgVEVTVChDYWxjdWxhdGlvblZhbHVlLCBMZW5ndGhDb25zdHJ1Y3Rpb24pCiAgICAg
ewogICAgICAgICBXZWJDb3JlOjpMZW5ndGggbGVuZ3RoQygqdmFsdWUpOwogICAgICAgICBFWFBF
Q1RfRVEoMlUsIHZhbHVlLT5yZWZDb3VudCgpKTsKLSAgICAgICAgV2ViQ29yZTo6TGVuZ3RoIGxl
bmd0aEQoc3RkOjptb3ZlKGxlbmd0aEMpKTsKKyAgICAgICAgV2ViQ29yZTo6TGVuZ3RoIGxlbmd0
aEQoV1RGOjptb3ZlKGxlbmd0aEMpKTsKICAgICAgICAgRVhQRUNUX0VRKDJVLCB2YWx1ZS0+cmVm
Q291bnQoKSk7CiAgICAgfQogCkBAIC0xMjMsNyArMTIzLDcgQEAgVEVTVChDYWxjdWxhdGlvblZh
bHVlLCBMZW5ndGhDb25zdHJ1Y3Rpb25SZWxlYXNlZFZhbHVlKQogICAgICAgICBhdXRvKiByYXdW
YWx1ZSA9IHZhbHVlLmdldCgpOwogICAgICAgICBXZWJDb3JlOjpMZW5ndGggbGVuZ3RoQyh2YWx1
ZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgRVhQRUNUX0VRKDFVLCByYXdWYWx1ZS0+cmVm
Q291bnQoKSk7Ci0gICAgICAgIFdlYkNvcmU6Okxlbmd0aCBsZW5ndGhEKHN0ZDo6bW92ZShsZW5n
dGhDKSk7CisgICAgICAgIFdlYkNvcmU6Okxlbmd0aCBsZW5ndGhEKFdURjo6bW92ZShsZW5ndGhD
KSk7CiAgICAgICAgIEVYUEVDVF9FUSgxVSwgcmF3VmFsdWUtPnJlZkNvdW50KCkpOwogCiAgICAg
ICAgIEVYUEVDVF9FUSgwVSwgZGVsZXRpb25Db3VudCk7CkBAIC0xNTMsNyArMTUzLDcgQEAgVEVT
VChDYWxjdWxhdGlvblZhbHVlLCBMZW5ndGhBc3NpZ25tZW50KQogICAgICAgICBXZWJDb3JlOjpM
ZW5ndGggbGVuZ3RoQygqdmFsdWUpOwogICAgICAgICBFWFBFQ1RfRVEoMlUsIHZhbHVlLT5yZWZD
b3VudCgpKTsKICAgICAgICAgV2ViQ29yZTo6TGVuZ3RoIGxlbmd0aEQ7Ci0gICAgICAgIGxlbmd0
aEQgPSBzdGQ6Om1vdmUobGVuZ3RoQyk7CisgICAgICAgIGxlbmd0aEQgPSBXVEY6Om1vdmUobGVu
Z3RoQyk7CiAgICAgICAgIEVYUEVDVF9FUSgyVSwgdmFsdWUtPnJlZkNvdW50KCkpOwogICAgIH0K
IApAQCAtMTg4LDcgKzE4OCw3IEBAIFRFU1QoQ2FsY3VsYXRpb25WYWx1ZSwgTGVuZ3RoQXNzaWdu
bWVudCkKICAgICAgICAgRVhQRUNUX0VRKDJVLCB2YWx1ZS0+cmVmQ291bnQoKSk7CiAgICAgICAg
IFdlYkNvcmU6Okxlbmd0aCBsZW5ndGhIKCp2YWx1ZTIpOwogICAgICAgICBFWFBFQ1RfRVEoMlUs
IHZhbHVlMi0+cmVmQ291bnQoKSk7Ci0gICAgICAgIGxlbmd0aEcgPSBzdGQ6Om1vdmUobGVuZ3Ro
SCk7CisgICAgICAgIGxlbmd0aEcgPSBXVEY6Om1vdmUobGVuZ3RoSCk7CiAgICAgICAgIEVYUEVD
VF9FUSgxVSwgdmFsdWUtPnJlZkNvdW50KCkpOwogICAgICAgICBFWFBFQ1RfRVEoMlUsIHZhbHVl
Mi0+cmVmQ291bnQoKSk7CiAgICAgfQpAQCAtMjI2LDcgKzIyNiw3IEBAIFRFU1QoQ2FsY3VsYXRp
b25WYWx1ZSwgTGVuZ3RoQXNzaWdubWVudFJlbGVhc2VkVmFsdWUpCiAgICAgICAgIFdlYkNvcmU6
Okxlbmd0aCBsZW5ndGhDKHZhbHVlLnJlbGVhc2VOb25OdWxsKCkpOwogICAgICAgICBFWFBFQ1Rf
RVEoMVUsIHJhd1ZhbHVlLT5yZWZDb3VudCgpKTsKICAgICAgICAgV2ViQ29yZTo6TGVuZ3RoIGxl
bmd0aEQ7Ci0gICAgICAgIGxlbmd0aEQgPSBzdGQ6Om1vdmUobGVuZ3RoQyk7CisgICAgICAgIGxl
bmd0aEQgPSBXVEY6Om1vdmUobGVuZ3RoQyk7CiAgICAgICAgIEVYUEVDVF9FUSgxVSwgcmF3VmFs
dWUtPnJlZkNvdW50KCkpOwogCiAgICAgICAgIEVYUEVDVF9FUSgwVSwgZGVsZXRpb25Db3VudCk7
CkBAIC0yNzEsNyArMjcxLDcgQEAgVEVTVChDYWxjdWxhdGlvblZhbHVlLCBMZW5ndGhBc3NpZ25t
ZW50UmVsZWFzZWRWYWx1ZSkKICAgICAgICAgV2ViQ29yZTo6TGVuZ3RoIGxlbmd0aEgodmFsdWUy
LnJlbGVhc2VOb25OdWxsKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMVUsIHJhd1ZhbHVlMi0+cmVm
Q291bnQoKSk7CiAKLSAgICAgICAgbGVuZ3RoRyA9IHN0ZDo6bW92ZShsZW5ndGhIKTsKKyAgICAg
ICAgbGVuZ3RoRyA9IFdURjo6bW92ZShsZW5ndGhIKTsKICAgICAgICAgRVhQRUNUX0VRKDFVLCBk
ZWxldGlvbkNvdW50KTsKICAgICAgICAgRVhQRUNUX0VRKDFVLCByYXdWYWx1ZTItPnJlZkNvdW50
KCkpOwogICAgIH0KLS0gCjEuOS4zIChBcHBsZSBHaXQtNTApCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234211</attachid>
            <date>2014-07-01 16:13:58 -0700</date>
            <delta_ts>2014-07-02 14:52:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>WK134500_1.patch</filename>
            <type>text/plain</type>
            <size>814861</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">RnJvbSAwYjk0ODA4ZjhjNDc2ZDgyNGE4Y2E3ZDQ5MTI5MzRjODlhZDk1NGRhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgQmF0ZXMgPGRiYXRlc0B3ZWJraXQub3JnPgpEYXRl
OiBUdWUsIDEgSnVsIDIwMTQgMTE6MDc6MDUgLTA3MDAKU3ViamVjdDogW1BBVENIXSBBZGQgV1RG
Ojptb3ZlKCkKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ1MDAK
ClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKU291cmNlL0phdmFTY3JpcHRDb3JlOgpTdWJz
dGl0dXRlIFdURjo6bW92ZSgpIGZvciBzdGQ6Om1vdmUoKS4KCiogYnl0ZWNvZGUvQ29kZUJsb2Nr
Lmg6CiogYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwOgoqIGJ5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5jcHA6CiogZGZnL0RGR0dyYXBoLmNwcDoKKiBkZmcvREZHSklUQ29tcGls
ZXIuY3BwOgoqIGRmZy9ERkdTdGFja0xheW91dFBoYXNlLmNwcDoKKiBkZmcvREZHV29ya2xpc3Qu
Y3BwOgoqIGhlYXAvRGVsYXllZFJlbGVhc2VTY29wZS5oOgoqIGhlYXAvSGVhcElubGluZXMuaDoK
KiBoZWFwL1dlYWtJbmxpbmVzLmg6CiogaW5zcGVjdG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnku
Y3BwOgoqIGluc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwOgoq
IGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcDoKKiBqaXQvQWNjZXNz
b3JDYWxsSklUU3R1YlJvdXRpbmUuY3BwOgoqIGppdC9Bcml0eUNoZWNrRmFpbFJldHVyblRodW5r
cy5jcHA6Ciogaml0L1JlcGF0Y2guY3BwOgoqIHBhcnNlci9Ob2Rlcy5jcHA6CiogcGFyc2VyL1Bh
cnNlci5jcHA6CiogcGFyc2VyL1BhcnNlci5oOgoqIHBhcnNlci9Tb3VyY2VQcm92aWRlckNhY2hl
LmNwcDoKKiByZXBsYXkvRW5jb2RlZFZhbHVlLmg6CiogcmVwbGF5L3NjcmlwdHMvQ29kZUdlbmVy
YXRvclJlcGxheUlucHV0cy5weToKKiByZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5l
cmF0ZS1lbnVtLXdpdGgtZ3VhcmQuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmNwcDoKKiByZXBsYXkv
c2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1tZW1vaXplZC10eXBlLW1vZGVzLmpzb24t
VGVzdFJlcGxheUlucHV0cy5jcHA6CiogcnVudGltZS9TeW1ib2xUYWJsZS5oOgoqIHJ1bnRpbWUv
V2Vha0dDTWFwLmg6CgpTb3VyY2UvV2ViQ29yZToKU3Vic3RpdHV0ZSBXVEY6Om1vdmUoKSBmb3Ig
c3RkOjptb3ZlKCkuCgoqIE1vZHVsZXMvYmF0dGVyeS9OYXZpZ2F0b3JCYXR0ZXJ5LmNwcDoKKiBN
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHA6CiogTW9kdWxlcy9nYW1lcGFkL05h
dmlnYXRvckdhbWVwYWQuY3BwOgoqIE1vZHVsZXMvZ2FtZXBhZC9kZXByZWNhdGVkL05hdmlnYXRv
ckdhbWVwYWQuY3BwOgoqIE1vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24u
Y3BwOgoqIE1vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5jcHA6Ciog
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmNwcDoKKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmQuaDoKKiBNb2R1bGVzL2luZGV4ZWRkYi9QYWdlR3JvdXBJ
bmRleGVkRGF0YWJhc2UuY3BwOgoqIE1vZHVsZXMvaW5kZXhlZGRiL1dvcmtlckdsb2JhbFNjb3Bl
SW5kZXhlZERhdGFiYXNlLmNwcDoKKiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJhY2tp
bmdTdG9yZUxldmVsREIuY3BwOgoqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3Bw
OgoqIE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcDoKKiBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0RUTUZTZW5kZXIuY3BwOgoqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNo
YW5uZWwuY3BwOgoqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwOgoq
IE1vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHA6
CiogTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxzLmg6
CiogTW9kdWxlcy9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwOgoqIE1v
ZHVsZXMvbm90aWZpY2F0aW9ucy9Xb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMuY3BwOgog
ICAgICAgWy4uLl0KClNvdXJjZS9XZWJLaXQvaW9zOgpTdWJzdGl0dXRlIFdURjo6bW92ZSgpIGZv
ciBzdGQ6Om1vdmUoKS4KCiogV2ViQ29yZVN1cHBvcnQvV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQu
bW06CigtW1dlYkZpeGVkUG9zaXRpb25Db250ZW50IHNldFZpZXdwb3J0Q29uc3RyYWluZWRMYXll
cnM6c3RpY2t5Q29udGFpbmVyTWFwOl0pOgoqIFdlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNs
aWVudElPUy5tbToKKFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpXZWJJbnNwZWN0b3JGcm9u
dGVuZENsaWVudCk6CgpTb3VyY2UvV2ViS2l0L21hYzoKU3Vic3RpdHV0ZSBXVEY6Om1vdmUoKSBm
b3Igc3RkOjptb3ZlKCkuCgoqIEhpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW06CigtW1dlYkhpc3Rv
cnlJdGVtIGluaXRGcm9tRGljdGlvbmFyeVJlcHJlc2VudGF0aW9uOl0pOgoqIFBsdWdpbnMvSG9z
dGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5oOgooV2ViS2l0OjpOZXRzY2FwZVBsdWdp
bkluc3RhbmNlUHJveHk6OnNldEN1cnJlbnRSZXBseSk6CiogUGx1Z2lucy9XZWJOZXRzY2FwZVBs
dWdpblZpZXcubW06CigtW1dlYk5ldHNjYXBlUGx1Z2luVmlldyBzY2hlZHVsZVRpbWVyV2l0aElu
dGVydmFsOnJlcGVhdDp0aW1lckZ1bmM6XSk6CiogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQubW06CihXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JSZXNwb25zZSk6CihXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JOZXdXaW5kb3dBY3Rpb24pOgooV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CihXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hXaWxsU3VibWl0Rm9ybSk6CiogV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1t
OgooV2ViSW5zcGVjdG9yQ2xpZW50OjpvcGVuSW5zcGVjdG9yRnJvbnRlbmQpOgooV2ViSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnQ6OldlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50KToKKiBXZWJWaWV3
L1dlYkFyY2hpdmUubW06CigtW1dlYkFyY2hpdmUgaW5pdFdpdGhNYWluUmVzb3VyY2U6c3VicmVz
b3VyY2VzOnN1YmZyYW1lQXJjaGl2ZXM6XSk6CgpTb3VyY2UvV2ViS2l0L3dpbjoKU3Vic3RpdHV0
ZSBXVEY6Om1vdmUoKSBmb3Igc3RkOjptb3ZlKCkuCgoqIFdlYkNvcmVTdXBwb3J0L1dlYkluc3Bl
Y3RvckNsaWVudC5jcHA6CihXZWJJbnNwZWN0b3JDbGllbnQ6Om9wZW5JbnNwZWN0b3JGcm9udGVu
ZCk6CihXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQpOgoqIFdlYkhpc3RvcnkuY3BwOgooY3JlYXRlVXNlckluZm9Gcm9tQXJyYXkpOgoqIFdlYkhp
c3RvcnlJdGVtLmNwcDoKKFdlYkhpc3RvcnlJdGVtOjppbml0RnJvbURpY3Rpb25hcnlSZXByZXNl
bnRhdGlvbik6CiogV2ViVmlldy5jcHA6CihXZWJWaWV3OjphZGRUb0RpcnR5UmVnaW9uKToKKFdl
YlZpZXc6OnNjcm9sbEJhY2tpbmdTdG9yZSk6CgpTb3VyY2UvV2ViS2l0MjoKU3Vic3RpdHV0ZSBX
VEY6Om1vdmUoKSBmb3Igc3RkOjptb3ZlKCkuCgoqIERhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVBy
b2Nlc3MuY3BwOgoqIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2Uu
Y3BwOgoqIE5ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvTmV0d29ya1Nl
cnZpY2VFbnRyeVBvaW50Lm1tOgoqIE5ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JS
ZWdpc3RyeS5jcHA6CiogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwOgoqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgoqIFBsYXRmb3JtL0lQQy9B
cmd1bWVudERlY29kZXIuY3BwOgoqIFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcDoKKiBQbGF0
Zm9ybS9JUEMvQ29ubmVjdGlvbi5oOgoqIFBsYXRmb3JtL0lQQy9IYW5kbGVNZXNzYWdlLmg6Ciog
UGxhdGZvcm0vSVBDL01lc3NhZ2VEZWNvZGVyLmNwcDoKKiBQbGF0Zm9ybS9JUEMvTWVzc2FnZVNl
bmRlci5jcHA6CiogUGxhdGZvcm0vSVBDL01lc3NhZ2VTZW5kZXIuaDoKKiBQbGF0Zm9ybS9JUEMv
bWFjL0Nvbm5lY3Rpb25NYWMubW06CiogUGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXgu
Y3BwOgoqIFBsYXRmb3JtL2VmbC9EaXNwYXRjaFF1ZXVlRWZsLmNwcDoKKiBQbGF0Zm9ybS9lZmwv
RGlzcGF0Y2hRdWV1ZVdvcmtJdGVtRWZsLmg6CiogUGxhdGZvcm0vZWZsL1dvcmtRdWV1ZUVmbC5j
cHA6CiogUGxhdGZvcm0vZ3RrL1dvcmtRdWV1ZUd0ay5jcHA6CiogUGx1Z2luUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tOgoqIFBsdWdp
blByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgogICAgICAgWy4uLl0KClNvdXJjZS9X
VEY6CkltcGxlbWVudCBXVEY6Om1vdmUoKSwgYSByZXBsYWNlbWVudCBmb3Igc3RkOjptb3ZlKCku
IFdURjo6bW92ZSgpIGlzIGxlc3MgZXJyb3IKcHJvbmUgdGhhbiBzdGQ6Om1vdmUoKSBhcyBpdCBj
b21waWxlIGFzc2VydHMgdGhhdCBpdHMgYXJndW1lbnQgaXMgbm9uLWNvbnN0IGFuZAppdHMgZGF0
YXR5cGUgaXMgbW92YWJsZSBiZWZvcmUgdWx0aW1hdGVseSBjYXN0aW5nIGl0IHRvIGFuIHJ2YWx1
ZSByZWZlcmVuY2UgKHZpYSBzdGQ6Om1vdmUpLgoKKiB3dGYvRGVxdWUuaDoKKiB3dGYvSGFzaE1h
cC5oOgoqIHd0Zi9IYXNoU2V0Lmg6Ciogd3RmL0hhc2hUYWJsZS5oOgoqIHd0Zi9JdGVyYXRvckFk
YXB0b3JzLmg6Ciogd3RmL0l0ZXJhdG9yUmFuZ2UuaDoKKiB3dGYvTGlzdEhhc2hTZXQuaDoKKiB3
dGYvTWFpblRocmVhZC5jcHA6Ciogd3RmL01hbGxvY1B0ci5oOgoqIHd0Zi9NZXNzYWdlUXVldWUu
aDoKKiB3dGYvT3B0aW9uYWwuaDoKKiB3dGYvT3duUHRyLmg6Ciogd3RmL1JlZlB0ci5oOgoqIHd0
Zi9SZWZQdHJIYXNoTWFwLmg6Ciogd3RmL1JldGFpblB0ci5oOgoqIHd0Zi9SdW5Mb29wLmNwcDoK
KiB3dGYvU3RkTGliRXh0cmFzLmg6CihXVEY6Om1vdmUpOiBBZGRlZC4KKiB3dGYvVmVjdG9yLmg6
Ciogd3RmL2dvYmplY3QvR01haW5Mb29wU291cmNlLmNwcDoKKiB3dGYvdGV4dC9BdG9taWNTdHJp
bmcuaDoKKiB3dGYvdGV4dC9XVEZTdHJpbmcuY3BwOgoqIHd0Zi93aW4vR0RJT2JqZWN0Lmg6CgpU
b29sczoKU3Vic3RpdHV0ZSBXVEY6Om1vdmUoKSBmb3Igc3RkOjptb3ZlKCkuCgoqIER1bXBSZW5k
ZXJUcmVlL3dpbi9EUlREYXRhT2JqZWN0LmNwcDoKKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9I
YXNoTWFwLmNwcDoKKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoU2V0LmNwcDoKKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZQdHIuY3BwOgoqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1ZlY3Rvci5jcHA6CiogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcDoKKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9ucy9SZXRhaW5QdHIubW06CiogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0NhbGN1bGF0aW9uVmFsdWUuY3BwOgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgIHwgIDM2ICsrKysrKysKIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaCAgICAgICAgIHwgICAyICstCiAuLi4v
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwICB8ICAgMiArLQog
Li4uL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAgICAgICAgICAgICAgfCAgIDIg
Ky0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwICAgICAgICAgICAgIHwg
ICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcCAgICAg
ICB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdGFja0xheW91dFBoYXNl
LmNwcCAgfCAgIDIgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3Bw
ICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9EZWxheWVkUmVs
ZWFzZVNjb3BlLmggICB8ICAgNCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcElu
bGluZXMuaCAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dl
YWtJbmxpbmVzLmggICAgICAgICAgIHwgICAyICstCiAuLi4vaW5zcGVjdG9yL0luc3BlY3RvckFn
ZW50UmVnaXN0cnkuY3BwICAgICAgICAgICB8ICAgMiArLQogLi4uL0pTR2xvYmFsT2JqZWN0SW5z
cGVjdG9yQ29udHJvbGxlci5jcHAgICAgICAgICAgfCAgIDYgKy0KIC4uLi9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAgICAgIHwgICAyICstCiAuLi4vaml0L0FjY2Vz
c29yQ2FsbEpJVFN0dWJSb3V0aW5lLmNwcCAgICAgICAgICAgICB8ICAgMiArLQogLi4uL2ppdC9B
cml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5jcHAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAgICAgICAgICAgICAgIHwgICAyICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmNwcCAgICAgICAgICAgICB8ICAgMiAr
LQogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwICAgICAgICAgICAgfCAg
IDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmggICAgICAgICAgICAg
IHwgICAyICstCiAuLi4vSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyQ2FjaGUu
Y3BwICB8ICAgMiArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9FbmNvZGVkVmFsdWUu
aCAgICAgICAgfCAgIDIgKy0KIC4uLi9yZXBsYXkvc2NyaXB0cy9Db2RlR2VuZXJhdG9yUmVwbGF5
SW5wdXRzLnB5ICAgIHwgICAyICstCiAuLi5lcmF0ZS1lbnVtLXdpdGgtZ3VhcmQuanNvbi1UZXN0
UmVwbGF5SW5wdXRzLmNwcCB8ICAgNCArLQogLi4uZS1tZW1vaXplZC10eXBlLW1vZGVzLmpzb24t
VGVzdFJlcGxheUlucHV0cy5jcHAgfCAgIDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N5bWJvbFRhYmxlLmggICAgICAgIHwgICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9XZWFrR0NNYXAuaCAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dURi9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzUgKysrKysrKwogU291cmNlL1dU
Ri93dGYvRGVxdWUuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJj
ZS9XVEYvd3RmL0hhc2hNYXAuaCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICstCiBT
b3VyY2UvV1RGL3d0Zi9IYXNoU2V0LmggICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCAr
LQogU291cmNlL1dURi93dGYvSGFzaFRhYmxlLmggICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDYgKy0KIFNvdXJjZS9XVEYvd3RmL0l0ZXJhdG9yQWRhcHRvcnMuaCAgICAgICAgICAgICAgICAg
IHwgIDEyICstLQogU291cmNlL1dURi93dGYvSXRlcmF0b3JSYW5nZS5oICAgICAgICAgICAgICAg
ICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XVEYvd3RmL0xpc3RIYXNoU2V0LmggICAgICAgICAgICAg
ICAgICAgICAgIHwgIDE0ICstLQogU291cmNlL1dURi93dGYvTWFpblRocmVhZC5jcHAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XVEYvd3RmL01hbGxvY1B0ci5oICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV1RGL3d0Zi9NZXNzYWdlUXVldWUu
aCAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArLQogU291cmNlL1dURi93dGYvT3B0aW9uYWwu
aCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XVEYvd3RmL093blB0
ci5oICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV1RGL3d0Zi9S
ZWZQdHIuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogU291cmNlL1dURi93
dGYvUmVmUHRySGFzaE1hcC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9X
VEYvd3RmL1JldGFpblB0ci5oICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3Vy
Y2UvV1RGL3d0Zi9SdW5Mb29wLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQog
U291cmNlL1dURi93dGYvU3RkTGliRXh0cmFzLmggICAgICAgICAgICAgICAgICAgICAgfCAgMTkg
KysrKwogU291cmNlL1dURi93dGYvVmVjdG9yLmggICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDYgKy0KIFNvdXJjZS9XVEYvd3RmL2dvYmplY3QvR01haW5Mb29wU291cmNlLmNwcCAgICAg
ICAgIHwgIDMwICsrKy0tLQogU291cmNlL1dURi93dGYvdGV4dC9BdG9taWNTdHJpbmcuaCAgICAg
ICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcCAg
ICAgICAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV1RGL3d0Zi93aW4vR0RJT2JqZWN0Lmgg
ICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzEgKysrKysrCiAuLi4vV2ViQ29yZS9Nb2R1bGVz
L2JhdHRlcnkvTmF2aWdhdG9yQmF0dGVyeS5jcHAgICB8ICAgMiArLQogLi4uL1dlYkNvcmUvTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3BwICAgfCAgIDQgKy0KIC4uLi9XZWJDb3Jl
L01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcCAgIHwgICAyICstCiAuLi4vZ2Ft
ZXBhZC9kZXByZWNhdGVkL05hdmlnYXRvckdhbWVwYWQuY3BwICAgICAgICB8ICAgMiArLQogLi4u
L01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwICAgfCAgIDIgKy0K
IC4uLi9Nb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuY3BwIHwgICAy
ICstCiAuLi4vTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmNwcCAgICAgICB8
ICAgMiArLQogLi4uL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5k
LmggfCAgIDIgKy0KIC4uLi9Nb2R1bGVzL2luZGV4ZWRkYi9QYWdlR3JvdXBJbmRleGVkRGF0YWJh
c2UuY3BwIHwgICAyICstCiAuLi4vaW5kZXhlZGRiL1dvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERh
dGFiYXNlLmNwcCB8ICAgMiArLQogLi4uL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJhY2tpbmdTdG9y
ZUxldmVsREIuY3BwICAgfCAgMTAgKy0KIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvTWVkaWFTb3VyY2UuY3BwIHwgICAyICstCiAuLi4vV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlci5jcHAgICB8ICAgNCArLQogLi4uL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENEVE1GU2VuZGVyLmNwcCAgfCAgIDQgKy0KIC4uLi9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwIHwgICA2ICstCiAuLi4vTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAgICAgICB8ICAgMiArLQogLi4uL05hdmlnYXRv
ckNvbnRlbnRVdGlscy5jcHAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIC4uLi9uYXZp
Z2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxzLmggIHwgICAyICstCiAuLi4v
bm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcCAgICAgICB8ICAgMiArLQog
Li4uL1dvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9ucy5jcHAgICAgICAgICAgICAgfCAgIDIg
Ky0KIC4uLi9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0gIHwg
ICAyICstCiAuLi4vTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAg
ICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90YS9ET01XaW5kb3dRdW90YS5j
cHAgICAgfCAgIDIgKy0KIC4uLi9Nb2R1bGVzL3F1b3RhL05hdmlnYXRvclN0b3JhZ2VRdW90YS5j
cHAgICAgICAgIHwgICAyICstCiAuLi4vTW9kdWxlcy9xdW90YS9Xb3JrZXJOYXZpZ2F0b3JTdG9y
YWdlUXVvdGEuY3BwICB8ICAgMiArLQogLi4uL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVj
aFN5bnRoZXNpcy5jcHAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpcy5jcHAgIHwgICAyICstCiAuLi4vV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0FzeW5jQXVkaW9EZWNvZGVyLmNwcCB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb05vZGUuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcCAgICB8ICAgNCArLQogLi4uL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VCYWNrZW5kLmNwcCAgICAgICAgfCAgIDYgKy0KIC4uLi9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwIHwgIDEwICstCiAu
Li4vTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnRCYWNrZW5kLmNwcCAgICB8ICAgNCAr
LQogLi4uL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5jcHAgfCAg
IDIgKy0KIC4uLi9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAg
IHwgICAyICstCiAuLi4vVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNw
cCAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dC5jcHAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5jcHAgICAgIHwgICAyICstCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5jcHAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmggfCAgIDIgKy0KIC4uLi9iaW5kaW5ncy9qcy9KU0NyeXB0b0Fs
Z29yaXRobURpY3Rpb25hcnkuY3BwICAgIHwgIDE2ICsrLS0KIC4uLi9iaW5kaW5ncy9qcy9KU0Ny
eXB0b0tleVNlcmlhbGl6YXRpb25KV0suY3BwICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgICB8ICAgNCArLQogLi4uL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICAgfCAgIDIgKy0KIC4uLi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcCAgIHwgIDI2ICsrKy0tLQog
Li4uL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwICAgICAgfCAgIDQg
Ky0KIC4uLi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgIHwg
IDEwICstCiAuLi4vY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5jcHAg
ICB8ICAgNCArLQogLi4uL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5j
cHAgICAgfCAgIDQgKy0KIC4uLi9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFD
LmNwcCAgICAgIHwgICA0ICstCiAuLi4vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19Q
S0NTMV92MV81LmNwcCB8ICAgNiArLQogLi4uL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92
MV81LmNwcCAgICAgICAgICAgfCAgIDYgKy0KIC4uLi9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1SU0FfT0FFUC5jcHAgIHwgICA2ICstCiAuLi4vY3J5cHRvL21hYy9DcnlwdG9BbGdv
cml0aG1BRVNfQ0JDTWFjLmNwcCAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3J5cHRv
L21hYy9DcnlwdG9LZXlSU0FNYWMuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcCAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5oICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dl
YkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgfCAgMTIgKy0tCiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwICAgICAgICAgICB8ICAgMiArLQog
U291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwICAgICAgICAgfCAgIDIg
Ky0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmggICAgICAgICAgIHwg
ICAyICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHAgICAgICAg
ICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuaCAgICAg
ICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAgICAgICAg
ICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNw
cCAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5p
biAgICAgICAgICAgICAgICAgfCAgMTggKystLQogU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ci5jcHAgICAgICAgICAgICAgICAgICAgfCAgMTggKystLQogU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlclZhbHVlcy5jcHAgICAgICAgICAgICAgfCAgMjIgKystLS0KIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaCAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwICAgICAgICAgICB8ICAgMiArLQogU291cmNl
L1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcCAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcCAgICAgICAgICAgICAgIHwgICA4ICst
CiBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAgICAgICB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvY3NzL0RvY3VtZW50UnVsZVNldHMuY3BwICAgICAgICAgICAg
fCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwICAgICAgICAgICAgICAg
ICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5jcHAgICAgICAgICAg
ICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwICAgICAgICAg
ICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmggICAgICAg
ICAgICAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTU3R5bGVT
ZWxlY3Rvci5jcHAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvY3NzL1NvdXJjZVNp
emVMaXN0LmNwcCAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9Tb3Vy
Y2VTaXplTGlzdC5oICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5jcHAgICAgICAgICAgICAgICB8ICAxMCArLQogU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUmVzb2x2ZXIuaCAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJ1bGUuY3BwICAgICAgICAgICAgICAgICAgIHwgIDEyICstLQogU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5oICAgICAgICAgICAgICAgICAgICAgfCAgMTIgKy0tCiBT
b3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcCAgICAgICB8ICAgMiAr
LQogU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5oICAgICAgICAgfCAg
IDIgKy0KIFNvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmNwcCAgICAg
IHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwICAgICAg
ICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCAgICAgICAgICAg
ICAgICAgICAgfCAgIDggKy0KIC4uLi9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xs
ZWN0aW9uLmNwcCAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJl
RGF0YS5oICAgICAgICAgICAgICAgfCAgIDYgKy0KIFNvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdl
RXZlbnQuY3BwICAgICAgICAgICAgICAgIHwgIDEwICstCiBTb3VyY2UvV2ViQ29yZS9kb20vTWVz
c2FnZUV2ZW50LmggICAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvZG9t
L01lc3NhZ2VQb3J0LmNwcCAgICAgICAgICAgICAgICAgfCAgMTQgKy0tCiBTb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dl
YkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAgICAgICAgfCAgIDIgKy0KIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmNwcCAgICAgICAgICAgICAgIHwgICAyICstCiBT
b3VyY2UvV2ViQ29yZS9kb20vU2NvcGVkRXZlbnRRdWV1ZS5jcHAgICAgICAgICAgICB8ICAgMiAr
LQogU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwICAgICAgfCAg
IDIgKy0KIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggICAgICAg
IHwgICA2ICstCiBTb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcCAgICAgICAg
ICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuY3BwICAgICAg
ICAgICAgICAgfCAgIDIgKy0KIC4uLi9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hh
bm5lbC5jcHAgICAgIHwgICA4ICstCiAuLi4vZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9y
dENoYW5uZWwuaCAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hl
Y2tpbmdIZWxwZXIuY3BwICAgICAgfCAgIDYgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4
dEl0ZXJhdG9yLmNwcCAgICAgICAgICAgIHwgIDEwICstCiBTb3VyY2UvV2ViQ29yZS9maWxlYXBp
L0Jsb2IuY3BwICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogU291cmNlL1dlYkNvcmUvZmls
ZWFwaS9CbG9iLmggICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvRmlsZUxpc3QuaCAgICAgICAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL0ZpbGVUaHJlYWQuY3BwICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNl
L1dlYkNvcmUvZmlsZWFwaS9GaWxlVGhyZWFkLmggICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNv
dXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHAgIHwgICA4ICst
CiBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL1dlYktpdEJsb2JCdWlsZGVyLmNwcCAgICAgICB8ICAg
NiArLQogU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAgICAgICAgICAgICAg
fCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwICAgICAgICAg
ICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAgICAgICAg
ICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBl
LmNwcCAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5j
cHAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9s
bGVyLmNwcCAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBw
bGV0RWxlbWVudC5jcHAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEJSRWxlbWVudC5jcHAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxCb2R5RWxlbWVudC5jcHAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwICAgICAgICAgIHwgICA0ICstCiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmNwcCAgICAgICAgICAgICB8ICAgMiArLQogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5oICAgICAgICAgICAgICAgfCAgIDIgKy0K
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcCAgICAgICAgIHwgICAy
ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCAgICAgICAgICAgICAgICB8
ICAgNCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcCAgICAg
ICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rp
b24uY3BwIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuY3Bw
ICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVt
ZW50LmNwcCAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVs
ZW1lbnQuY3BwICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFn
ZUVsZW1lbnQuY3BwICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmNwcCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAgICAgIHwgIDEyICstLQogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCAgICAgICAgfCAgIDQgKy0K
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwICAgICAgICAgIHwgICA2
ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAgICAgICAgICB8
ICAgMiArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCAgICAg
ICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAgICAg
ICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcCAg
ICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwICAg
ICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5
cGUuY3BwICAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElu
cHV0VHlwZS5jcHAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
RmllbGRJbnB1dFR5cGUuY3BwICAgICAgICAgfCAgIDIgKy0KIC4uLi9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAgIHwgICAyICstCiAuLi4vV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAgICB8ICAgMiArLQogU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5jcHAgICAgfCAgIDQgKy0KIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suaCAgICAgIHwgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwICB8ICAgNCArLQog
Li4uL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFJlc291cmNlUHJlbG9hZGVyLmNwcCAgfCAgIDIg
Ky0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbi5oICAgICAgICAgICAgIHwg
ICAyICstCiAuLi4vV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAg
ICB8ICAgMiArLQogLi4uL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMu
Y3BwICAgfCAgIDYgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxl
bWVudC5jcHAgIHwgICAyICstCiAuLi4vV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRv
d0VsZW1lbnQuY3BwICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVy
VGh1bWJFbGVtZW50LmNwcCAgfCAgIDggKy0KIC4uLi9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElu
bmVyRWxlbWVudHMuY3BwICAgICAgIHwgICA0ICstCiAuLi4vc2hhZG93L21hYy9JbWFnZUNvbnRy
b2xzQnV0dG9uRWxlbWVudE1hYy5jcHAgICB8ICAgNCArLQogLi4uL3NoYWRvdy9tYWMvSW1hZ2VD
b250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVlRUQ3VlLmNwcCAgICAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvQ29tbWFuZExpbmVBUElIb3N0LmNwcCAgICB8ICAgMiArLQogU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0RPTUVkaXRvci5jcHAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9ET01QYXRjaFN1cHBvcnQuY3BwICAgICAgIHwgICAyICstCiBT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwICAgICB8ICAgMiAr
LQogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwICAgfCAg
MjYgKysrLS0tCiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3Bw
ICAgICB8ICAgNiArLQogLi4uL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2Fs
LmNwcCAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIaXN0
b3J5LmNwcCAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
T3ZlcmxheS5jcHAgICAgICB8ICAgMiArLQogLi4uL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clJlc291cmNlQWdlbnQuY3BwICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JTdHlsZVNoZWV0LmNwcCAgIHwgICAyICstCiAuLi4vaW5zcGVjdG9yL1dvcmtlcklu
c3BlY3RvckNvbnRyb2xsZXIuY3BwICAgICAgICB8ICAgOCArLQogLi4uL2xvYWRlci9Dcm9zc09y
aWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcCAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcCB8ICAgMiArLQogU291cmNl
L1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwICAgICAgfCAgIDYgKy0KIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDYWxsYmFjay5jcHAgICAgICAgICAgIHwgICA2ICst
CiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAgICAgICAgICAgICB8ICAg
OCArLQogLi4uL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAg
fCAgMTggKystLQogLi4uL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQu
Y3BwICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5j
cHAgICAgICAgIHwgICA0ICstCiAuLi4vbWF0aG1sL01hdGhNTElubGluZUNvbnRhaW5lckVsZW1l
bnQuY3BwICAgICAgICB8ICAzMCArKystLS0KIFNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxN
YXRoRWxlbWVudC5jcHAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0
aE1MTWVuY2xvc2VFbGVtZW50LmNwcCAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvbWF0aG1s
L01hdGhNTFNlbGVjdEVsZW1lbnQuY3BwICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL21h
dGhtbC9NYXRoTUxUZXh0RWxlbWVudC5jcHAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVRpbWVyLmNwcCAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwICAgICAgICAgICAgICAgICAgfCAgMTQgKy0tCiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQog
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwICAgICAgICAgICAgICAgICAgfCAgIDQg
Ky0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRDb250cm9sbGVyLmNwcCAgICAgIHwg
ICA0ICstCiAuLi4vV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNw
cCB8ICAgNiArLQogLi4uL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcCAg
ICAgICAgfCAgMjAgKystLQogLi4uL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3Rh
dGVUcmVlLmNwcCAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RocmVhZC5jcHAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DYWxjdWxh
dGlvblZhbHVlLmNwcCAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ2Fs
Y3VsYXRpb25WYWx1ZS5oICAgICAgICAgfCAgIDYgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0tleWVkQ29kaW5nLmggICAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9MZW5ndGguY3BwICAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTGVuZ3RoQm94LmggICAgICAgICAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xlbmd0aFNpemUuaCAgICAgICAgICAgICAgIHwgICA4ICstCiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaCAgICAgICAgICAgICB8ICAgMiArLQogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3VwcGxlbWVudGFibGUuaCAgICAgICAgICAgfCAgIDQgKy0K
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmggICAgICAgICAgICAgICAgICAgIHwgICAy
ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHAgICAgICAgICB8
ICAgMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlLmNwcCAg
ICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24u
Y3BwICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRWxldmF0
aW9uLmggICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURktl
cm5lbC5jcHAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hS
VEZLZXJuZWwuaCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9SZXZlcmJDb252b2x2ZXIuY3BwICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZWZsL1JlbmRlclRoZW1lRWZsLmNwcCAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0Zsb2F0UG9seWdvbi5jcHAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcCAgICAgICAgICB8ICAgNCArLQogLi4uL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuY3BwICAgfCAgIDIgKy0KIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmggIHwgICAyICstCiAuLi4v
cGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuY3BwICAgICAgICB8ICAgMiArLQog
Li4uL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcCAgICAgICAgfCAgIDQg
Ky0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvQ2Fpcm9VdGlsaXRpZXNFZmwuY3BwICAgIHwg
ICAyICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNERWZsLmNw
cCB8ICAgMiArLQogLi4uL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3Bw
ICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RmlsdGVyLmggIHwgICAyICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJP
cGVyYXRpb24uaCAgICB8ICAgNCArLQogLi4uL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RP
cGVuR0xFUy5jcHAgICAgICAgfCAgIDIgKy0KIC4uLi90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9z
aXRpbmdDb29yZGluYXRvci5jcHAgIHwgICAyICstCiAuLi4vY29vcmRpbmF0ZWQvQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyLmNwcCAgICAgICB8ICAgMiArLQogLi4uL2Nvb3JkaW5hdGVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAgICAgICAgfCAgIDggKy0KIC4uLi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9Gb250Q2FjaGVXaW4uY3BwIHwgICAyICstCiAuLi4vZ3JhcGhpY3Mv
d2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwICAgICAgICB8ICAgMiArLQogLi4uL2dyYXBo
aWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uY3BwICAgfCAgIDIgKy0KIC4uLi9n
cmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YUNHV2luLmNwcCAgICAgICAgIHwgICAyICstCiAu
Li4vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDYWlyb1dpbi5jcHAgICAgICB8ICAgMiAr
LQogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhV2luLmNwcCAgfCAg
IDIgKy0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2hhcmVkR0RJT2JqZWN0LmggICAgICAg
IHwgICA0ICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhV2luLmNw
cCAgICB8ICAgMiArLQogLi4uL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1RvdWNoQ29udGV4dEhl
bHBlci5jcHAgfCAgIDIgKy0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL2xldmVsZGIvTGV2ZWxEQkRh
dGFiYXNlLmNwcCAgIHwgIDEwICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvSElER2Ft
ZXBhZFByb3ZpZGVyLmNwcCB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9CbG9iRGF0YS5oICAgICAgICAgfCAgIDYgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvQmxvYlBhcnQuaCAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL0hUVFBIZWFkZXJNYXAuY3BwICB8ICAgMiArLQogLi4uL3BsYXRmb3JtL25ldHdv
cmsvTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaCAgIHwgICAyICstCiAuLi4vcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcCAgICAgICB8ICAgNCArLQogLi4uL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwICAgICAgfCAgIDIgKy0KIC4u
Li9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Zvcm1EYXRhU3RyZWFtQ0ZOZXQuY3BwICAgIHwgICAyICst
CiAuLi4vcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCAgICB8ICAg
MiArLQogLi4uL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVNYW5hZ2VyLmNwcCAgICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5t
bSAgIHwgICA2ICstCiAuLi4vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAu
Y3BwICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1dDRGF0YU9iamVj
dC5jcHAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5j
cHAgICAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvYXRp
bmdPYmplY3RzLmNwcCAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xh
eW91dFN0YXRlLmNwcCAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAgICAgICAgICAgIHwgICA2ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwIHwgICA0ICstCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCAgICAgICAgICAgICB8ICAgNCArLQogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCAgfCAgIDQgKy0K
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwICAgICAgICAgIHwgICAy
ICstCiAuLi4vcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAgICAgICB8
ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRldGFpbHNNYXJrZXIuY3Bw
ICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCAg
ICAgICAgIHwgIDQ0ICsrKystLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVs
ZW1lbnQuaCAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJFbWJlZGRlZE9iamVjdC5jcHAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRmllbGRzZXQuY3BwICAgICAgICB8ICAgMiArLQogLi4uL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcCAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAgICAgICB8ICAgMiArLQogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lLmNwcCAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZUJhc2UuY3BwICAgICAgIHwgICAyICstCiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwICAgICAgICB8ICAgMiAr
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwICAgICAgfCAg
IDggKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCAgICAgICAgICAg
IHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5jcHAg
ICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5jcHAg
ICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5j
cHAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5s
aW5lLmNwcCAgICAgICAgICB8ICAxMiArLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwIHwgICAyICstCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpbmVCcmVhay5jcHAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcCAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uY3BwICAgICAgICB8ICAgNiArLQogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwICAgICAgfCAgIDIgKy0KIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5jcHAgICAgICAgICAgIHwgICA0ICstCiAu
Li4vcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCAgICAgICB8ICAgNiAr
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCAgICAgICAgfCAg
IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZXRlci5jcHAgICAgICAgICAg
IHwgICAyICstCiAuLi4vcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uRmxvd1RocmVhZC5jcHAg
ICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1u
U2V0LmNwcCAgfCAgIDIgKy0KIC4uLi9SZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRl
ci5jcHAgICAgICAgIHwgICAyICstCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRG
bG93RnJhZ21lbnQuY3BwICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck5hbWVkRmxvd1RocmVhZC5jcHAgfCAgIDYgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJQcm9ncmVzcy5jcHAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUHRyLmggICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclF1b3RlLmNwcCAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uU2V0LmNwcCAgICAgICB8ICAgMiArLQogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCAgICAgICAgfCAgIDYgKy0KIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmNwcCAgICAgICAgIHwgICAyICst
CiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieS5jcHAgICAgICAgICAgICB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmNwcCAgICAgICAg
fCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5UnVuLmNwcCAgICAg
ICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVRleHQuY3Bw
ICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJh
clBhcnQuY3BwICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFy
Y2hGaWVsZC5jcHAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U2xpZGVyLmNwcCAgICAgICAgICB8ICAgMiArLQogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNuYXBzaG90dGVkUGx1Z0luLmNwcCAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZS5jcHAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGFibGVDYXB0aW9uLmNwcCAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5jcHAgICAgICAgIHwgICAyICstCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuY3BwICAgICAgICB8ICAgNCArLQogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAgICAgfCAgIDQgKy0K
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAgICAgIHwgICAy
ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaCAgICAgICB8
ICAgMiArLQogLi4uL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAgICAg
ICAgfCAgIDIgKy0KIC4uLi9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNw
cCAgICAgIHwgICAyICstCiAuLi4vcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZS5oICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZUVEN1
ZS5jcHAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJW
aWRlby5jcHAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVmlldy5jcHAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclZpZXcuaCAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJXaWRnZXQuY3BwICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHAgICAgICAgICB8ICAgMiArLQogLi4uL1dlYkNvcmUv
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5jcHAgfCAgIDQgKy0KIC4uLi9XZWJD
b3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suaCAgIHwgICAyICstCiAuLi4v
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuY3BwICAgICAgICB8ICAgMiArLQog
Li4uL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRnJhY3Rpb24uY3BwICAgICAgfCAgIDIg
Ky0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MTWF0aC5jcHAgIHwg
ICAyICstCiAuLi4vcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxNZW5jbG9zZS5jcHAgICAg
ICB8ICAgMiArLQogLi4uL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuY3Bw
ICAgICAgfCAgIDYgKy0KIC4uLi9tYXRobWwvUmVuZGVyTWF0aE1MUmFkaWNhbE9wZXJhdG9yLmNw
cCAgICAgICAgIHwgICAyICstCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1h
dGhNTFJvb3QuY3BwICB8ICAxMCArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9S
ZW5kZXJNYXRoTUxSb290LmggfCAgIDIgKy0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MUm93LmNwcCAgIHwgICA0ICstCiAuLi4vcmVuZGVyaW5nL21hdGhtbC9SZW5k
ZXJNYXRoTUxTY3JpcHRzLmNwcCAgICAgICB8ICAgMiArLQogLi4uL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxTY3JpcHRzLmggfCAgIDIgKy0KIC4uLi9XZWJDb3JlL3JlbmRl
cmluZy9tYXRobWwvUmVuZGVyTWF0aE1MU3BhY2UuY3BwIHwgICAyICstCiAuLi4vcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxTcXVhcmVSb290LmNwcCAgICB8ICAgNCArLQogLi4uL1dlYkNv
cmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxUb2tlbi5jcHAgfCAgIDYgKy0KIC4uLi9y
ZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFVuZGVyT3Zlci5jcHAgICAgIHwgICAyICstCiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5oICAgICB8ICAgMiAr
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SYXN0ZXJTaGFwZS5oICAgICAgfCAg
IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGUuY3BwICAgICAgICAg
IHwgIDEwICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuY3Bw
ICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVz
LmggICAgICAgfCAgMzIgKysrLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Nv
bnRlbnREYXRhLmNwcCAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9Db250ZW50RGF0YS5oICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvRGF0YVJlZi5oICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL0ZpbGxMYXllci5jcHAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaCAgICAgICAgIHwgICA2ICstCiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuY3BwICB8ICAgNiArLQogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmggICAgfCAgIDYgKy0KIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgICAgIHwgIDIyICsrLS0t
CiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCAgICAgICB8IDEw
NCArKysrKysrKysrLS0tLS0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
VkdSZW5kZXJTdHlsZS5oICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU2hhZG93RGF0YS5oICAgICAgICB8ICAgMiArLQogLi4uL3JlbmRlcmluZy9zdHlsZS9TdHls
ZUdlbmVyYXRlZEltYWdlLmNwcCAgICAgICAgfCAgIDIgKy0KIC4uLi9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmggIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSZWZsZWN0aW9uLmggICB8ICAgMiArLQogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5jcHAgICAgfCAgIDIgKy0KIC4uLi9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcCAgIHwgICAyICstCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0VsbGlwc2UuY3BwICB8ICAgMiArLQog
Li4uL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHAgICAgICAgfCAgIDIg
Ky0KIC4uLi9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0dyYWRpZW50U3RvcC5jcHAgICAgICAgIHwg
ICAyICstCiAuLi4vcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdIaWRkZW5Db250YWluZXIuY3BwICAg
ICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5j
cHAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5s
aW5lLmNwcCAgIHwgICA0ICstCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lu
bGluZVRleHQuY3BwICB8ICAgMiArLQogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdNb2RlbE9iamVjdC5jcHAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUGF0aC5jcHAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1JlY3QuY3BwICAgICB8ICAgMiArLQogLi4uL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcCAgICAgfCAgIDIgKy0KIC4uLi9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyLmNwcCAgIHwgICAyICstCiAuLi4vcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAgICAgICB8ICAxMiArLS0KIC4uLi9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUuY3BwICAgICAgIHwgICAyICstCiAuLi4v
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUdyYWRpZW50LmNwcCAgICB8ICAgNCArLQog
Li4uL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50LmNwcCAgICAgICAgfCAgIDIg
Ky0KIC4uLi9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFya2VyLmNwcCAgICAgIHwg
ICAyICstCiAuLi4vcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAgICAg
ICB8ICAgMiArLQogLi4uL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmNw
cCAgICAgfCAgIDQgKy0KIC4uLi9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VSYWRpYWxHcmFkaWVudC5j
cHAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jvb3QuY3BwICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdTaGFwZS5jcHAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHVFNwYW4uaCAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1RleHQuY3BwICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdUZXh0UGF0aC5jcHAgfCAgIDIgKy0KIC4uLi9zdmcvUmVuZGVyU1ZH
VHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHAgICAgICAgIHwgICAyICstCiAuLi4vcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5jcHAgICB8ICAgMiArLQogLi4uL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmNwcCAgfCAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzQ2FjaGUuY3BwIHwgICAyICstCiBT
b3VyY2UvV2ViQ29yZS9yZXBsYXkvQ2FwdHVyaW5nSW5wdXRDdXJzb3IuY3BwICAgICB8ICAgMiAr
LQogU291cmNlL1dlYkNvcmUvcmVwbGF5L01lbW9pemVkRE9NUmVzdWx0LmNwcCAgICAgICAgfCAg
IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlDb250cm9sbGVyLmNwcCAgICAgICAg
IHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZXBsYXkvU2VnbWVudGVkSW5wdXRTdG9yYWdlLmNw
cCAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2Rz
LmNwcCAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3JlcGxheS9Vc2VySW5wdXRCcmlkZ2Uu
Y3BwICAgICAgICAgIHwgIDEyICstLQogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZl
VHJlZS5jcHAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVu
dC5jcHAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0
R2x5cGhFbGVtZW50LmNwcCAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkUGF0aC5jcHAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdDaXJjbGVFbGVtZW50LmNwcCAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcCAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmNwcCAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuY3BwICAgICAgIHwgICA2ICstCiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwICAgICAgICAgICB8ICAgMiAr
LQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwICAgICAgICAgICAgfCAg
IDIgKy0KIC4uLi9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcCAg
IHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuY3BwICAgICAgICAg
ICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50
LmNwcCAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAgICAg
ICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVt
ZW50LmNwcCAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxl
bWVudC5jcHAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5l
YXJHcmFkaWVudEVsZW1lbnQuY3BwICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TWFya2VyRWxlbWVudC5jcHAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01hc2tFbGVtZW50LmNwcCAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAgICAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwICAgICAgICAgICB8ICAgMiArLQogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAgICAgfCAgIDIgKy0KIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAgICAgICAgICAgICAgIHwgICAyICst
CiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAgICAgICAgICAgICAgICB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNwcCAgICAgICAgICAgICAg
fCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmNwcCAgICAgICAg
ICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAgICAg
ICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcCAg
ICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUU3BhbkVsZW1lbnQu
Y3BwICAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1l
bnQuY3BwICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQ
YXRoRWxlbWVudC5jcHAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdV
c2VFbGVtZW50LmNwcCAgICAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvU1ZHSW1hZ2UuY3BwICAgICAgICAgICB8ICAgMiArLQogLi4uL3N2Zy9wcm9wZXJ0
aWVzL1NWR0F0dHJpYnV0ZVRvUHJvcGVydHlNYXAuY3BwICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCAgICAgICAgICAgICAgIHwgICA2ICstCiAuLi4vV2Vi
Q29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcCB8ICAgNiArLQogU291
cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuY3BwICAgfCAgIDIgKy0K
IC4uLi93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcCAgICAgIHwgIDEw
ICstCiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlci5jcHAgICAgICAgICAgICB8
ICAgMiArLQogU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5j
cHAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyUmVwb3NpdG9y
eS5jcHAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlclRocmVh
ZC5jcHAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwICAg
ICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xv
YmFsU2NvcGUuY3BwICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ck1lc3NhZ2luZ1Byb3h5LmNwcCAgICB8ICAxNiArKy0tCiBTb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclJ1bkxvb3AuY3BwICAgICAgICAgICB8ICAxMCArLQogU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwICAgICAgICAgICAgICB8ICAgMiArLQogLi4uL3ht
bC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5jcHAgICAgfCAgIDIgKy0KIFNv
dXJjZS9XZWJDb3JlL3htbC9YUGF0aEV4cHJlc3Npb24uY3BwICAgICAgICAgICAgIHwgICA0ICst
CiBTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFeHByZXNzaW9uTm9kZS5jcHAgICAgICAgICB8ICAg
MiArLQogU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXhwcmVzc2lvbk5vZGUuaCAgICAgICAgICAg
fCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAgICAgICAgICAg
ICAgIHwgICA2ICstCiBTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkgICAgICAgICAg
ICAgICAgICB8ICAxOCArKy0tCiBTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhOb2RlU2V0LmNwcCAg
ICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUGFyc2VyLmNw
cCAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFBhcnNl
ci5oICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhQ
YXRoLmNwcCAgICAgICAgICAgICAgICAgICB8ICAxOCArKy0tCiBTb3VyY2UvV2ViQ29yZS94bWwv
WFBhdGhQcmVkaWNhdGUuY3BwICAgICAgICAgICAgICB8ICAyMCArKy0tCiBTb3VyY2UvV2ViQ29y
ZS94bWwvWFBhdGhTdGVwLmNwcCAgICAgICAgICAgICAgICAgICB8ICAxOCArKy0tCiBTb3VyY2Uv
V2ViQ29yZS94bWwvWFBhdGhTdGVwLmggICAgICAgICAgICAgICAgICAgICB8ICAxMiArLS0KIFNv
dXJjZS9XZWJDb3JlL3htbC9YUGF0aFZhbHVlLmggICAgICAgICAgICAgICAgICAgIHwgICA2ICst
CiAuLi4veG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwICAgICAgICB8ICAy
MCArKy0tCiBTb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAxNCArKysKIC4uLi9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViRml4ZWRQb3NpdGlvbkNvbnRl
bnQubW0gIHwgICA0ICstCiAuLi4vaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVu
dElPUy5tbSAgICB8ICAgMiArLQogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgMjYgKysrKysrCiBTb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dl
Ykhpc3RvcnlJdGVtLm1tICAgICAgICB8ICAgMiArLQogLi4uL1BsdWdpbnMvSG9zdGVkL05ldHNj
YXBlUGx1Z2luSW5zdGFuY2VQcm94eS5oICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIHwgICAyICstCiAuLi4vbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tICAgICB8ICAxMiArLS0KIC4uLi9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tICAgICAgIHwgICA0ICstCiBTb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkFyY2hpdmUubW0gICAgICAgICAgICB8ICAgMiArLQogU291
cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjAgKysr
KwogLi4uL3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwICAgICAgfCAg
IDQgKy0KIFNvdXJjZS9XZWJLaXQvd2luL1dlYkhpc3RvcnkuY3BwICAgICAgICAgICAgICAgICAg
IHwgICAyICstCiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJIaXN0b3J5SXRlbS5jcHAgICAgICAgICAg
ICAgICB8ICAgMiArLQogU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgIDMyICsrKysrKysKIFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vz
cy9EYXRhYmFzZVByb2Nlc3MuY3BwIHwgICAyICstCiAuLi4vSW5kZXhlZERCL1VuaXF1ZUlEQkRh
dGFiYXNlLmNwcCAgICAgICAgICAgICAgICB8ICAgNiArLQogLi4uL21hYy9YUENTZXJ2aWNlL05l
dHdvcmtTZXJ2aWNlRW50cnlQb2ludC5tbSAgICAgfCAgIDIgKy0KIC4uLi9OZXR3b3JrUHJvY2Vz
cy9GaWxlQVBJL05ldHdvcmtCbG9iUmVnaXN0cnkuY3BwIHwgICAyICstCiAuLi4vTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmggICAgICAgfCAgIDQgKy0KIFNvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudERlY29kZXIuY3BwICAgIHwgICAyICstCiBT
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAgICAgICAgICB8ICA0OCAr
KysrKy0tLS0tCiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oICAgICAg
ICAgICB8ICAgNiArLQogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0hhbmRsZU1lc3NhZ2Uu
aCAgICAgICAgfCAgMTYgKystLQogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VE
ZWNvZGVyLmNwcCAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNz
YWdlU2VuZGVyLmNwcCAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
TWVzc2FnZVNlbmRlci5oICAgICAgICB8ICAgNiArLQogU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL21hYy9Db25uZWN0aW9uTWFjLm1tICAgfCAgIDggKy0KIC4uLi9XZWJLaXQyL1BsYXRmb3Jt
L0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcCAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5jcHAgICB8ICAxMCArLQogLi4uL1BsYXRmb3Jt
L2VmbC9EaXNwYXRjaFF1ZXVlV29ya0l0ZW1FZmwuaCAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL2VmbC9Xb3JrUXVldWVFZmwuY3BwICAgICAgIHwgICA2ICstCiBTb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsvV29ya1F1ZXVlR3RrLmNwcCAgICAgICB8ICAgNCArLQog
Li4uL21hYy9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tICAgICAgfCAgIDIg
Ky0KIC4uLi9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIHwg
ICA0ICstCiAuLi4vd2Via2l0Mi9MZWdhY3lNZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3BwICAg
ICB8ICAgOCArLQogLi4uL1NjcmlwdHMvd2Via2l0Mi9NZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQu
Y3BwICAgfCAgIDggKy0KIFNvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5w
eSAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tBcnJheS5j
cHAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLRGlj
dGlvbmFyeS5jcHAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElBcnJh
eS5jcHAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
VVJMLmggICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSVdlYkFyY2hpdmUuY3BwICAgICAgICAgICAgfCAgIDYgKy0KIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9Bc3luY1JlcXVlc3QuY3BwICAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQXN5bmNSZXF1ZXN0LmggICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dl
YktpdDIvU2hhcmVkL0Jsb2NraW5nUmVzcG9uc2VNYXAuaCAgICAgICAgfCAgIDIgKy0KIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAgICAgICAgIHwgICA4ICstCiBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuaCAgICAgICAgICB8ICAgNCAr
LQogU291cmNlL1dlYktpdDIvU2hhcmVkL0NvY29hL1dLTlNEaWN0aW9uYXJ5Lm1tICAgICAgfCAg
IDIgKy0KIC4uLi9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcCAg
IHwgICA0ICstCiAuLi4vbWFjL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaCAgICAg
ICAgICB8ICAgNCArLQogU291cmNlL1dlYktpdDIvU2hhcmVkL0ltbXV0YWJsZURpY3Rpb25hcnku
Y3BwICAgICAgfCAgIDYgKy0KIC4uLi9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9QbHVnaW5JbmZv
cm1hdGlvbi5jcHAgIHwgICA2ICstCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJpdHlPcmln
aW5EYXRhLmNwcCAgICAgICB8ICAgNCArLQogU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25U
cmFja2VyLmNwcCAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2Vy
RGF0YS5jcHAgICAgICAgICAgICAgICAgIHwgIDEyICstLQogU291cmNlL1dlYktpdDIvU2hhcmVk
L1VzZXJNZXNzYWdlQ29kZXJzLmggICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oICAgICB8ICAgMiArLQogU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkNvbm5lY3Rpb24uY3BwICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW0uY3BwICAgICAgIHwgICAyICstCiBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCAgICB8ICAgNiAr
LQogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaCAgICAgICAgfCAg
IDIgKy0KIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZW5kZXJMYXllci5jcHAgICAgICAgICAg
IHwgICAyICstCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVuZGVyT2JqZWN0LmNwcCAgICAg
ICAgICB8ICAgOCArLQogU291cmNlL1dlYktpdDIvU2hhcmVkL2NmL0tleWVkRGVjb2Rlci5jcHAg
ICAgICAgICAgfCAgIDIgKy0KIC4uLi9TaGFyZWQvbGludXgvU2VjY29tcEZpbHRlcnMvT3BlblN5
c2NhbGwuY3BwICAgIHwgICA2ICstCiAuLi4vV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVy
QmFja2luZ1N0b3JlLm1tICB8ICAgMiArLQogLi4uL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb24ubW0gICAgICAgfCAgMTIgKy0tCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0FQSVNlc3Npb25TdGF0ZS5jcHAgICB8ICAgNCArLQogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9BUElVSUNsaWVudC5oICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwICAgICAgICAgIHwgIDEwICstCiAuLi4vV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tTZXNzaW9uU3RhdGVSZWYuY3BwICB8ICAgMiArLQogLi4uL1VJUHJv
Y2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJpdmF0ZU1hYy5tbSAgICAgfCAgIDIgKy0KIC4uLi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3JvdXAubW0gIHwgICAyICstCiAu
Li4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLm1tICB8ICAgMiAr
LQogLi4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tICAgfCAg
IDIgKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tICAg
IHwgICA0ICstCiAuLi4vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmNw
cCAgICB8ICAgMiArLQogLi4uL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZpbGVDaG9vc2VyUmVx
dWVzdC5jcHAgfCAgIDIgKy0KIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YkNvbnRleHQuY3BwIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRXZWJWaWV3LmNwcCB8ICAgMiArLQogLi4uL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YlZpZXdCYXNlLmNwcCAgICAgICAgfCAgIDIgKy0KIC4uLi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRXZWJWaWV3R3JvdXAuY3BwICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2lvcy9XS1ZpZXdJT1MubW0gICAgICB8ICAgMiArLQogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0gIHwgICAyICstCiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSAgICAgICB8ICAgMiArLQogLi4uL0Nv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcCAgICAgICAgICAgICAgfCAgIDIgKy0KIC4u
Li9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJWaWV3LmNwcCAgICAgIHwgICAyICst
CiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2VuZXJpY0NhbGxiYWNrLmggICAgICAgICB8ICAg
OCArLQogLi4uL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViU29ja2V0U2VydmVyLmNwcCAg
fCAgIDIgKy0KIC4uLi9JbnNwZWN0b3JTZXJ2ZXIvc291cC9XZWJTb2NrZXRTZXJ2ZXJTb3VwLmNw
cCAgIHwgICAyICstCiAuLi4vTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHkuY3BwICB8ICAgMiArLQogLi4uL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlk
ZXIuY3BwICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlTG9hZFN0
YXRlLmNwcCAgICAgICAgIHwgICAyICstCiAuLi4vVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0
b1N0YXJ0UHJvdmlkZXIuY3BwICB8ICAgNCArLQogLi4uL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb2Nlc3NNYW5hZ2VyLmNwcCAgICAgfCAgIDIgKy0KIC4uLi9VSVByb2Nlc3MvUGx1Z2lucy9X
ZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvU3RhdGlzdGljc1JlcXVlc3QuY3BwICAgICB8ICAgMiArLQogLi4uL1dlYktpdDIvVUlQ
cm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwICAgfCAgIDIgKy0KIC4uLi9Vc2VyQ29u
dGVudC9XZWJTY3JpcHRNZXNzYWdlSGFuZGxlci5jcHAgICAgICAgIHwgICA0ICstCiAuLi4vVXNl
ckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3BwICB8ICAgMiArLQogLi4u
L1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcCAgfCAgIDIgKy0K
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwICAgIHwgIDE4
ICsrLS0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCAgICAgICAgICAg
IHwgIDIwICsrLS0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJv
eHkuY3BwIHwgICA0ICstCiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2Vy
UHJveHkuY3BwICB8ICAxNCArLS0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGb3JtQ2xp
ZW50LmNwcCAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR3Jh
bW1hckRldGFpbC5jcHAgICAgICB8ICAgMiArLQogLi4uL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0
b3JhZ2VNYW5hZ2VyLmNwcCAgICAgICAgfCAgMTAgKy0KIC4uLi9VSVByb2Nlc3MvV2ViTWVkaWFD
YWNoZU1hbmFnZXJQcm94eS5jcHAgICAgICAgIHwgICAyICstCiAuLi4vVUlQcm9jZXNzL1dlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwICAgICAgICB8ICAgMiArLQogLi4uL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgfCAgIDYgKy0KIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwICAgICAgICAgIHwgIDcwICsrKysrKystLS0t
LS0tCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCAgICAgICB8
ICAgMiArLQogLi4uL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmNwcCAg
ICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9jZi9XZWJQYWdlUHJveHlDRi5j
cHAgICAgIHwgICAyICstCiAuLi4vVUlQcm9jZXNzL2VmbC9JbnB1dE1ldGhvZENvbnRleHRFZmwu
Y3BwICAgICAgICB8ICAgMiArLQogLi4uL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9JbnB1dE1ldGhv
ZENvbnRleHRFZmwuaCAgfCAgIDIgKy0KIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVUlQ
b3B1cE1lbnVDbGllbnQuY3BwIHwgICAyICstCiAuLi4vVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNo
ZWV0QXNzaXN0YW50Lm1tICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3Lm1tICAgICAgfCAgIDIgKy0KIC4uLi9VSVByb2Nlc3MvaW9zL1dL
R2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbSAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSAgICB8ICAxNCArLS0KIC4uLi9VSVByb2Nl
c3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1tICAgICAgIHwgICAyICstCiAuLi4vVUlQ
cm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuY3BwICAgICB8ICAxNiArKy0tCiAu
Li4vV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5oICB8ICAgMiAr
LQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0gICAgfCAg
IDIgKy0KIC4uLi9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwICAgICAgICAg
IHwgICAyICstCiAuLi4vSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdlLmNwcCAg
ICAgICB8ICAxNCArLS0KIC4uLi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcCAgIHwgICA2ICstCiAuLi4vSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVt
LmNwcCAgICAgICAgICB8ICAgMiArLQogLi4uL0luamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51
Q2xpZW50LmNwcCAgICAgICAgfCAgIDIgKy0KIC4uLi9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xp
ZW50LmNwcCAgICAgICAgICAgICAgIHwgICA2ICstCiAuLi4vUGx1Z2lucy9OZXRzY2FwZS9OZXRz
Y2FwZUJyb3dzZXJGdW5jcy5jcHAgICAgICB8ICAgMiArLQogLi4uL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5jcHAgfCAgIDIgKy0KIC4uLi9QbHVnaW5zL05ldHNj
YXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbSAgICAgIHwgICAyICstCiAuLi4vY2YvV2ViUmVz
b3VyY2VDYWNoZU1hbmFnZXJDRk5ldC5jcHAgICAgICAgICAgICB8ICAgMiArLQogLi4uL1dlYkNv
cmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwICAgICAgfCAgIDYgKy0KIC4uLi9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgICAgICAgIHwgICA4ICstCiAu
Li4vV2ViQ29yZVN1cHBvcnQvV2ViUGFzdGVib2FyZE92ZXJyaWRlcy5jcHAgICAgICB8ICAgMiAr
LQogLi4uL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFZGl0b3JDbGllbnRHdGsuY3BwICAgICAgfCAg
IDIgKy0KIC4uLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3Bw
IHwgICA0ICstCiAuLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIu
Y3BwICB8ICAgMiArLQogLi4uL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xs
ZXIuY3BwICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJG
cmFtZS5jcHAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViSW5zcGVjdG9yLmNwcCB8ICAgNCArLQogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwICAgICAgfCAgIDYgKy0KIC4uLi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3Rr
L0xheWVyVHJlZUhvc3RHdGsuY3BwICAgIHwgICAyICstCiAuLi4vV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gICB8ICAgMiArLQogLi4uL1dlYlBhZ2UvbWFjL1Bs
YXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0gICAgICAgfCAgMTQgKy0tCiAuLi4vV2ViUGFnZS9t
YWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbSAgICAgICAgICB8ICAgNCArLQogLi4uL1dlYlBh
Z2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tICAgICAgfCAgMTAgKy0KIC4uLi9X
ZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tICAgIHwgICAyICstCiBU
b29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxOCAr
KysrCiBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vRFJURGF0YU9iamVjdC5jcHAgICAgICAgICB8
ICAgNCArLQogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGFzaE1hcC5jcHAgICAgICAg
ICAgfCAgIDQgKy0KIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hhc2hTZXQuY3BwICAg
ICAgICAgIHwgICAyICstCiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZQdHIuY3Bw
ICAgICAgICAgICB8ICAxNCArLS0KIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rv
ci5jcHAgICAgICAgICAgIHwgIDEyICstLQogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
V1RGU3RyaW5nLmNwcCAgICAgICAgfCAgIDIgKy0KIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL25zL1JldGFpblB0ci5tbSAgICAgIHwgICA4ICstCiAuLi4vVGVzdHMvV2ViQ29yZS9DYWxj
dWxhdGlvblZhbHVlLmNwcCAgICAgICAgICAgICB8ICAxNCArLS0KIDY4OCBmaWxlcyBjaGFuZ2Vk
LCAxNzgwIGluc2VydGlvbnMoKyksIDE1NDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKaW5kZXggY2JjN2ExMi4uZmZlZDc5YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzkgQEAKKzIwMTQtMDctMDEgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBXVEY6Om1vdmUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0NTAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU3Vic3RpdHV0ZSBXVEY6Om1vdmUoKSBmb3Igc3RkOjpt
b3ZlKCkuCisKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKiBieXRl
Y29kZS9VbmxpbmtlZENvZGVCbG9jay5jcHA6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKiBkZmcvREZHR3JhcGguY3BwOgorICAgICAgICAq
IGRmZy9ERkdKSVRDb21waWxlci5jcHA6CisgICAgICAgICogZGZnL0RGR1N0YWNrTGF5b3V0UGhh
c2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdXb3JrbGlzdC5jcHA6CisgICAgICAgICogaGVhcC9E
ZWxheWVkUmVsZWFzZVNjb3BlLmg6CisgICAgICAgICogaGVhcC9IZWFwSW5saW5lcy5oOgorICAg
ICAgICAqIGhlYXAvV2Vha0lubGluZXMuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
QWdlbnRSZWdpc3RyeS5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5z
cGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JDb25zb2xlQWdlbnQuY3BwOgorICAgICAgICAqIGppdC9BY2Nlc3NvckNhbGxKSVRTdHViUm91
dGluZS5jcHA6CisgICAgICAgICogaml0L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcDoK
KyAgICAgICAgKiBqaXQvUmVwYXRjaC5jcHA6CisgICAgICAgICogcGFyc2VyL05vZGVzLmNwcDoK
KyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmg6
CisgICAgICAgICogcGFyc2VyL1NvdXJjZVByb3ZpZGVyQ2FjaGUuY3BwOgorICAgICAgICAqIHJl
cGxheS9FbmNvZGVkVmFsdWUuaDoKKyAgICAgICAgKiByZXBsYXkvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yUmVwbGF5SW5wdXRzLnB5OgorICAgICAgICAqIHJlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVj
dGVkL2dlbmVyYXRlLWVudW0td2l0aC1ndWFyZC5qc29uLVRlc3RSZXBsYXlJbnB1dHMuY3BwOgor
ICAgICAgICAqIHJlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLW1lbW9pemVk
LXR5cGUtbW9kZXMuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L1N5bWJvbFRhYmxlLmg6CisgICAgICAgICogcnVudGltZS9XZWFrR0NNYXAuaDoKKwogMjAxNC0w
Ni0zMCAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
b3B0aW9uIHRvIHJ1bi1qc2Mtc3RyZXNzLXRlc3RlcyB0byBmaWx0ZXIgb3V0IHRlc3RzIHRoYXQg
dXNlIGxhcmdlIGhlYXBzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2Nr
LmgKaW5kZXggZTYzZTVhNC4uMmZjN2Y3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlQmxvY2suaApAQCAtNjg3LDcgKzY4Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgewog
ICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKICAgICAgICAg
ICAgIGlmICghbV9saXZlbmVzc0FuYWx5c2lzKQotICAgICAgICAgICAgICAgIG1fbGl2ZW5lc3NB
bmFseXNpcyA9IHN0ZDo6bW92ZShhbmFseXNpcyk7CisgICAgICAgICAgICAgICAgbV9saXZlbmVz
c0FuYWx5c2lzID0gV1RGOjptb3ZlKGFuYWx5c2lzKTsKICAgICAgICAgICAgIHJldHVybiAqbV9s
aXZlbmVzc0FuYWx5c2lzOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5jcHAKaW5kZXggM2U3ZWFkMi4u
NWMyY2M1ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlu
a2VkQ29kZUJsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5s
aW5rZWRDb2RlQmxvY2suY3BwCkBAIC00NDEsNyArNDQxLDcgQEAgdm9pZCBVbmxpbmtlZEZ1bmN0
aW9uRXhlY3V0YWJsZTo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCiAKIHZvaWQgVW5saW5rZWRDb2Rl
QmxvY2s6OnNldEluc3RydWN0aW9ucyhzdGQ6OnVuaXF1ZV9wdHI8VW5saW5rZWRJbnN0cnVjdGlv
blN0cmVhbT4gaW5zdHJ1Y3Rpb25zKQogewotICAgIG1fdW5saW5rZWRJbnN0cnVjdGlvbnMgPSBz
dGQ6Om1vdmUoaW5zdHJ1Y3Rpb25zKTsKKyAgICBtX3VubGlua2VkSW5zdHJ1Y3Rpb25zID0gV1RG
Ojptb3ZlKGluc3RydWN0aW9ucyk7CiB9CiAKIGNvbnN0IFVubGlua2VkSW5zdHJ1Y3Rpb25TdHJl
YW0mIFVubGlua2VkQ29kZUJsb2NrOjppbnN0cnVjdGlvbnMoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNw
cAppbmRleCBkY2RhNjUyLi43MzQ1NDZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApAQCAtMzAzLDcgKzMw
Myw3IEBAIEJ5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcihWTSYgdm0sIEZ1bmN0
aW9uQm9keU5vZGUqIGZ1bmN0aW9uQm9keSwgVW5sCiAgICAgICAgICAgICBzbG93QXJndW1lbnRz
W2ldLnN0YXR1cyA9IFNsb3dBcmd1bWVudDo6Q2FwdHVyZWQ7CiAgICAgICAgICAgICBzbG93QXJn
dW1lbnRzW2ldLmluZGV4ID0gY2FwdHVyZWRBcmd1bWVudHNbaV0tPmluZGV4KCk7CiAgICAgICAg
IH0KLSAgICAgICAgbV9zeW1ib2xUYWJsZS0+c2V0U2xvd0FyZ3VtZW50cyhzdGQ6Om1vdmUoc2xv
d0FyZ3VtZW50cykpOworICAgICAgICBtX3N5bWJvbFRhYmxlLT5zZXRTbG93QXJndW1lbnRzKFdU
Rjo6bW92ZShzbG93QXJndW1lbnRzKSk7CiAgICAgfQogCiAgICAgUmVnaXN0ZXJJRCogY2FsbGVl
UmVnaXN0ZXIgPSByZXNvbHZlQ2FsbGVlKGZ1bmN0aW9uQm9keSk7IC8vIE1heSBwdXNoIHRvIHRo
ZSBzY29wZSBjaGFpbiBhbmQvb3IgYWRkIGEgY2FwdHVyZWQgdmFyLgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0dyYXBoLmNwcAppbmRleCA3YTczMjIwLi4wMTU2YzhiIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcApAQCAtNjk2LDcgKzY5Niw3IEBAIEZ1bGxCeXRlY29k
ZUxpdmVuZXNzJiBHcmFwaDo6bGl2ZW5lc3NGb3IoQ29kZUJsb2NrKiBjb2RlQmxvY2spCiAgICAg
c3RkOjp1bmlxdWVfcHRyPEZ1bGxCeXRlY29kZUxpdmVuZXNzPiBsaXZlbmVzcyA9IHN0ZDo6bWFr
ZV91bmlxdWU8RnVsbEJ5dGVjb2RlTGl2ZW5lc3M+KCk7CiAgICAgY29kZUJsb2NrLT5saXZlbmVz
c0FuYWx5c2lzKCkuY29tcHV0ZUZ1bGxMaXZlbmVzcygqbGl2ZW5lc3MpOwogICAgIEZ1bGxCeXRl
Y29kZUxpdmVuZXNzJiByZXN1bHQgPSAqbGl2ZW5lc3M7Ci0gICAgbV9ieXRlY29kZUxpdmVuZXNz
LmFkZChjb2RlQmxvY2ssIHN0ZDo6bW92ZShsaXZlbmVzcykpOworICAgIG1fYnl0ZWNvZGVMaXZl
bmVzcy5hZGQoY29kZUJsb2NrLCBXVEY6Om1vdmUobGl2ZW5lc3MpKTsKICAgICByZXR1cm4gcmVz
dWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENv
bXBpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuY3Bw
CmluZGV4IDA2ODIyMWMuLjM1ZGUwZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHSklUQ29tcGlsZXIuY3BwCkBAIC0xNTcsMTAgKzE1NywxMCBAQCB2b2lkIEpJVENvbXBpbGVy
OjpsaW5rKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpCiAgICAgICAgIG1faml0Q29kZS0+Y29tbW9u
LmlubGluZUNhbGxGcmFtZXMgPSBtX2dyYXBoLm1fcGxhbi5pbmxpbmVDYWxsRnJhbWVzOwogICAg
IAogICAgIG1faml0Q29kZS0+Y29tbW9uLm1hY2hpbmVDYXB0dXJlU3RhcnQgPSBtX2dyYXBoLm1f
bWFjaGluZUNhcHR1cmVTdGFydDsKLSAgICBtX2ppdENvZGUtPmNvbW1vbi5zbG93QXJndW1lbnRz
ID0gc3RkOjptb3ZlKG1fZ3JhcGgubV9zbG93QXJndW1lbnRzKTsKKyAgICBtX2ppdENvZGUtPmNv
bW1vbi5zbG93QXJndW1lbnRzID0gV1RGOjptb3ZlKG1fZ3JhcGgubV9zbG93QXJndW1lbnRzKTsK
IAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgbV9qaXRDb2RlLT5jb21tb24uZG91YmxlQ29u
c3RhbnRzID0gc3RkOjptb3ZlKG1fZ3JhcGgubV9kb3VibGVDb25zdGFudHMpOworICAgIG1faml0
Q29kZS0+Y29tbW9uLmRvdWJsZUNvbnN0YW50cyA9IFdURjo6bW92ZShtX2dyYXBoLm1fZG91Ymxl
Q29uc3RhbnRzKTsKICNlbmRpZgogCiAgICAgQml0VmVjdG9yIHVzZWRKdW1wVGFibGVzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdGFja0xheW91dFBoYXNlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAKaW5k
ZXggMTY3MjZiYy4uMGY4NjljMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTdGFja0xheW91dFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1N0YWNrTGF5b3V0UGhhc2UuY3BwCkBAIC0yMjgsNyArMjI4LDcgQEAgcHVibGljOgogICAg
ICAgICAgICAgICAgICAgICAgICAgbmV3U2xvd0FyZ3VtZW50c1tpXS5pbmRleCA9IHZpcnR1YWxS
ZWdpc3RlckZvckxvY2FsKGFsbG9jYXRpb25bcmVnLnRvTG9jYWwoKV0pLm9mZnNldCgpOwogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIG1fZ3JhcGgubV9z
bG93QXJndW1lbnRzID0gc3RkOjptb3ZlKG5ld1Nsb3dBcmd1bWVudHMpOworICAgICAgICAgICAg
ICAgIG1fZ3JhcGgubV9zbG93QXJndW1lbnRzID0gV1RGOjptb3ZlKG5ld1Nsb3dBcmd1bWVudHMp
OwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1dvcmtsaXN0LmNwcAppbmRleCBiZjI0MWRmLi40YWExNDI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcApAQCAtNjQsNyArNjQsNyBAQCB2b2lk
IFdvcmtsaXN0OjpmaW5pc2hDcmVhdGlvbih1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGludCBy
ZWxhdGl2ZVByaW9yaXR5KQogICAgICAgICBkYXRhLT5tX2lkZW50aWZpZXIgPSBjcmVhdGVUaHJl
YWQodGhyZWFkRnVuY3Rpb24sIGRhdGEuZ2V0KCksIG1fdGhyZWFkTmFtZS5kYXRhKCkpOwogICAg
ICAgICBpZiAocmVsYXRpdmVQcmlvcml0eSkKICAgICAgICAgICAgIGNoYW5nZVRocmVhZFByaW9y
aXR5KGRhdGEtPm1faWRlbnRpZmllciwgcmVsYXRpdmVQcmlvcml0eSk7Ci0gICAgICAgIG1fdGhy
ZWFkcy5hcHBlbmQoc3RkOjptb3ZlKGRhdGEpKTsKKyAgICAgICAgbV90aHJlYWRzLmFwcGVuZChX
VEY6Om1vdmUoZGF0YSkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvRGVsYXllZFJlbGVhc2VTY29wZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvRGVsYXllZFJlbGVhc2VTY29wZS5oCmluZGV4IGU2ZDM5YzAuLjg4M2M2NjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0RlbGF5ZWRSZWxlYXNlU2NvcGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9EZWxheWVkUmVsZWFzZVNjb3BlLmgKQEAg
LTYyLDcgKzYyLDcgQEAgcHVibGljOgogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogICAgIHZv
aWQgcmVsZWFzZVNvb24oUmV0YWluUHRyPFQ+JiYgb2JqZWN0KQogICAgIHsKLSAgICAgICAgbV9k
ZWxheWVkUmVsZWFzZU9iamVjdHMuYXBwZW5kKHN0ZDo6bW92ZShvYmplY3QpKTsKKyAgICAgICAg
bV9kZWxheWVkUmVsZWFzZU9iamVjdHMuYXBwZW5kKFdURjo6bW92ZShvYmplY3QpKTsKICAgICB9
CiAKICAgICBzdGF0aWMgYm9vbCBpc0luRWZmZWN0Rm9yKE1hcmtlZFNwYWNlJiBtYXJrZWRTcGFj
ZSkKQEAgLTc5LDcgKzc5LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBpbmxpbmUgdm9pZCBN
YXJrZWRTcGFjZTo6cmVsZWFzZVNvb24oUmV0YWluUHRyPFQ+JiYgb2JqZWN0KQogewogICAgIEFT
U0VSVChtX2N1cnJlbnREZWxheWVkUmVsZWFzZVNjb3BlKTsKLSAgICBtX2N1cnJlbnREZWxheWVk
UmVsZWFzZVNjb3BlLT5yZWxlYXNlU29vbihzdGQ6Om1vdmUob2JqZWN0KSk7CisgICAgbV9jdXJy
ZW50RGVsYXllZFJlbGVhc2VTY29wZS0+cmVsZWFzZVNvb24oV1RGOjptb3ZlKG9iamVjdCkpOwog
fQogCiAjZWxzZSAvLyBVU0UoQ0YpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9IZWFwSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcElubGlu
ZXMuaAppbmRleCBhY2U0NTE3Li41NmZiM2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9IZWFwSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0hlYXBJbmxpbmVzLmgKQEAgLTI0OSw3ICsyNDksNyBAQCBpbmxpbmUgQmxvY2tBbGxvY2F0b3Im
IEhlYXA6OmJsb2NrQWxsb2NhdG9yKCkKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogaW5saW5lIHZv
aWQgSGVhcDo6cmVsZWFzZVNvb24oUmV0YWluUHRyPFQ+JiYgb2JqZWN0KQogewotICAgIG1fb2Jq
ZWN0U3BhY2UucmVsZWFzZVNvb24oc3RkOjptb3ZlKG9iamVjdCkpOworICAgIG1fb2JqZWN0U3Bh
Y2UucmVsZWFzZVNvb24oV1RGOjptb3ZlKG9iamVjdCkpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtJbmxpbmVzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9XZWFrSW5saW5lcy5oCmluZGV4IDhjZmQ1MDEuLmZlNjE0NDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtJbmxpbmVzLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha0lubGluZXMuaApAQCAtNjUsNyArNjUsNyBA
QCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgdm9pZCBXZWFrPFQ+Ojpzd2FwKFdlYWsmIG90
aGVyKQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgYXV0byBXZWFrPFQ+OjpvcGVyYXRv
cj0oV2VhayYmIG90aGVyKSAtPiBXZWFrJgogewotICAgIFdlYWsgd2VhayA9IHN0ZDo6bW92ZShv
dGhlcik7CisgICAgV2VhayB3ZWFrID0gV1RGOjptb3ZlKG90aGVyKTsKICAgICBzd2FwKHdlYWsp
OwogICAgIHJldHVybiAqdGhpczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnkuY3BwCmluZGV4IGUwZDllZGUu
LjQxMjRjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQWdlbnRSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmNwcApAQCAtMzksNyArMzksNyBAQCBJbnNwZWN0
b3JBZ2VudFJlZ2lzdHJ5OjpJbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5KCkKIAogdm9pZCBJbnNwZWN0
b3JBZ2VudFJlZ2lzdHJ5OjphcHBlbmQoc3RkOjp1bmlxdWVfcHRyPEluc3BlY3RvckFnZW50QmFz
ZT4gYWdlbnQpCiB7Ci0gICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bW92ZShhZ2VudCkpOworICAg
IG1fYWdlbnRzLmFwcGVuZChXVEY6Om1vdmUoYWdlbnQpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JB
Z2VudFJlZ2lzdHJ5OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRnJvbnRl
bmRDaGFubmVsKiBmcm9udGVuZENoYW5uZWwsIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKiBi
YWNrZW5kRGlzcGF0Y2hlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNw
cAppbmRleCBjNWEyZjMxLi40YjgzMDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNv
bnRyb2xsZXIuY3BwCkBAIC03MCw5ICs3MCw5IEBAIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29u
dHJvbGxlcjo6SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyKEpTR2xvYmFsT2JqCiAg
ICAgcHJvZmlsZXJBZ2VudC0+c2V0U2NyaXB0RGVidWdTZXJ2ZXIoJmRlYnVnZ2VyQWdlbnQtPnNj
cmlwdERlYnVnU2VydmVyKCkpOwogCiAgICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bWFrZV91bmlx
dWU8SW5zcGVjdG9yQWdlbnQ+KCkpOwotICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1vdmUocnVu
dGltZUFnZW50KSk7Ci0gICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bW92ZShjb25zb2xlQWdlbnQp
KTsKLSAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjptb3ZlKGRlYnVnZ2VyQWdlbnQpKTsKKyAgICBt
X2FnZW50cy5hcHBlbmQoV1RGOjptb3ZlKHJ1bnRpbWVBZ2VudCkpOworICAgIG1fYWdlbnRzLmFw
cGVuZChXVEY6Om1vdmUoY29uc29sZUFnZW50KSk7CisgICAgbV9hZ2VudHMuYXBwZW5kKFdURjo6
bW92ZShkZWJ1Z2dlckFnZW50KSk7CiB9CiAKIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJv
bGxlcjo6fkpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdl
bnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
Q29uc29sZUFnZW50LmNwcAppbmRleCAzN2IyMjI3Li4yZGRlYzM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckNvbnNvbGVBZ2VudC5jcHAKQEAgLTIzNyw3ICsyMzcsNyBAQCB2b2lkIEluc3BlY3RvckNvbnNv
bGVBZ2VudDo6YWRkQ29uc29sZU1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPENvbnNvbGVNZXNzYWdl
PiBjbwogICAgICAgICAgICAgbV9wcmV2aW91c01lc3NhZ2UtPnVwZGF0ZVJlcGVhdENvdW50SW5D
b25zb2xlKG1fZnJvbnRlbmREaXNwYXRjaGVyLmdldCgpKTsKICAgICB9IGVsc2UgewogICAgICAg
ICBtX3ByZXZpb3VzTWVzc2FnZSA9IGNvbnNvbGVNZXNzYWdlLmdldCgpOwotICAgICAgICBtX2Nv
bnNvbGVNZXNzYWdlcy5hcHBlbmQoc3RkOjptb3ZlKGNvbnNvbGVNZXNzYWdlKSk7CisgICAgICAg
IG1fY29uc29sZU1lc3NhZ2VzLmFwcGVuZChXVEY6Om1vdmUoY29uc29sZU1lc3NhZ2UpKTsKICAg
ICAgICAgaWYgKG1fZnJvbnRlbmREaXNwYXRjaGVyICYmIG1fZW5hYmxlZCkKICAgICAgICAgICAg
IG1fcHJldmlvdXNNZXNzYWdlLT5hZGRUb0Zyb250ZW5kKG1fZnJvbnRlbmREaXNwYXRjaGVyLmdl
dCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlciwgdHJ1ZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9BY2Nlc3NvckNhbGxKSVRTdHViUm91dGluZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0FjY2Vzc29yQ2FsbEpJVFN0dWJSb3V0aW5lLmNw
cAppbmRleCBmNGE5NGI3Li5mNTczMDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0FjY2Vzc29yQ2FsbEpJVFN0dWJSb3V0aW5lLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0FjY2Vzc29yQ2FsbEpJVFN0dWJSb3V0aW5lLmNwcApAQCAtMzUsNyArMzUs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIEFjY2Vzc29yQ2FsbEpJVFN0dWJSb3V0aW5lOjpBY2Nlc3Nv
ckNhbGxKSVRTdHViUm91dGluZSgKICAgICBjb25zdCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYmIGNv
ZGUsIFZNJiB2bSwgc3RkOjp1bmlxdWVfcHRyPENhbGxMaW5rSW5mbz4gaW5mbykKICAgICA6IEdD
QXdhcmVKSVRTdHViUm91dGluZShjb2RlLCB2bSkKLSAgICAsIG1fY2FsbExpbmtJbmZvKHN0ZDo6
bW92ZShpbmZvKSkKKyAgICAsIG1fY2FsbExpbmtJbmZvKFdURjo6bW92ZShpbmZvKSkKIHsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bcml0eUNoZWNrRmFpbFJl
dHVyblRodW5rcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0FyaXR5Q2hlY2tGYWls
UmV0dXJuVGh1bmtzLmNwcAppbmRleCA5MGI2MDVkLi5kMjcxYjRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNw
cApAQCAtMTE1LDcgKzExNSw3IEBAIENvZGVMb2NhdGlvbkxhYmVsKiBBcml0eUNoZWNrRmFpbFJl
dHVyblRodW5rczo6cmV0dXJuUENzRm9yKAogCiAgICAgewogICAgICAgICBDb25jdXJyZW50SklU
TG9ja2VyIGxvY2tlcihtX2xvY2spOwotICAgICAgICBtX3JldHVyblBDQXJyYXlzLmFwcGVuZChz
dGQ6Om1vdmUocmV0dXJuUENzKSk7CisgICAgICAgIG1fcmV0dXJuUENBcnJheXMuYXBwZW5kKFdU
Rjo6bW92ZShyZXR1cm5QQ3MpKTsKICAgICAgICAgbV9yZWZzLmFwcGVuZChGSU5BTElaRV9DT0RF
KGxpbmtCdWZmZXIsICgiQXJpdHkgY2hlY2sgZmFpbCByZXR1cm4gdGh1bmtzIGZvciB1cCB0byBu
dW1BcmdzID0gJXUiLCBudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXMpKSk7CiAgICAg
ICAgIG1fbmV4dFNpemUgPSBudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXMgKyBzdGFj
a0FsaWdubWVudFJlZ2lzdGVycygpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0
Y2guY3BwCmluZGV4IDk2YjE4YzQuLjk4MGQ2MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9S
ZXBhdGNoLmNwcApAQCAtNTg5LDcgKzU4OSw3IEBAIHN0YXRpYyB2b2lkIGdlbmVyYXRlQnlJZFN0
dWIoCiAgICAgICAgICAgICBzdWNjZXNzTGFiZWwuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOwogICAg
IAogICAgIGlmIChraW5kID09IENhbGxHZXR0ZXIgfHwga2luZCA9PSBDYWxsU2V0dGVyKQotICAg
ICAgICBzdHViUm91dGluZSA9IGFkb3B0UmVmKG5ldyBBY2Nlc3NvckNhbGxKSVRTdHViUm91dGlu
ZShjb2RlLCAqdm0sIHN0ZDo6bW92ZShjYWxsTGlua0luZm8pKSk7CisgICAgICAgIHN0dWJSb3V0
aW5lID0gYWRvcHRSZWYobmV3IEFjY2Vzc29yQ2FsbEpJVFN0dWJSb3V0aW5lKGNvZGUsICp2bSwg
V1RGOjptb3ZlKGNhbGxMaW5rSW5mbykpKTsKICAgICBlbHNlCiAgICAgICAgIHN0dWJSb3V0aW5l
ID0gY3JlYXRlSklUU3R1YlJvdXRpbmUoY29kZSwgKnZtLCBjb2RlQmxvY2stPm93bmVyRXhlY3V0
YWJsZSgpLCB0cnVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvTm9kZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5jcHAKaW5k
ZXggYzNhZTU4N2MuLmJkYzNiZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvTm9kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMu
Y3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgUGFzc1JlZlB0cjxQcm9ncmFtTm9kZT4gUHJvZ3JhbU5v
ZGU6OmNyZWF0ZShWTSogdm0sIGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgc3RhcnQKIAogdm9pZCBQ
cm9ncmFtTm9kZTo6c2V0Q2xvc2VkVmFyaWFibGVzKFZlY3RvcjxSZWZQdHI8U3RyaW5nSW1wbD4+
JiYgY2xvc2VkVmFyaWFibGVzKQogewotICAgIG1fY2xvc2VkVmFyaWFibGVzID0gc3RkOjptb3Zl
KGNsb3NlZFZhcmlhYmxlcyk7CisgICAgbV9jbG9zZWRWYXJpYWJsZXMgPSBXVEY6Om1vdmUoY2xv
c2VkVmFyaWFibGVzKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEV2
YWxOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1BhcnNlci5jcHAKaW5kZXggNjA3YjA1OC4uZDFkNTBiNiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApAQCAtMjk2LDcgKzI5Niw3IEBAIFN0cmluZyBQYXJz
ZXI8TGV4ZXJUeXBlPjo6cGFyc2VJbm5lcigpCiAgICAgICAgIH0KICAgICB9CiAgICAgZGlkRmlu
aXNoUGFyc2luZyhzb3VyY2VFbGVtZW50cywgY29udGV4dC52YXJEZWNsYXJhdGlvbnMoKSwgY29u
dGV4dC5mdW5jRGVjbGFyYXRpb25zKCksIGZlYXR1cmVzLAotICAgICAgICBjb250ZXh0Lm51bUNv
bnN0YW50cygpLCBjYXB0dXJlZFZhcmlhYmxlcywgc3RkOjptb3ZlKGNsb3NlZFZhcmlhYmxlcykp
OworICAgICAgICBjb250ZXh0Lm51bUNvbnN0YW50cygpLCBjYXB0dXJlZFZhcmlhYmxlcywgV1RG
Ojptb3ZlKGNsb3NlZFZhcmlhYmxlcykpOwogCiAgICAgcmV0dXJuIHBhcnNlRXJyb3I7CiB9CkBA
IC0xMzMxLDcgKzEzMzEsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IGJvb2wgUGFy
c2VyPExleGVyVHlwZT46OnBhcnNlRnVuY3Rpb25JbmZvKFRyZWVCdWlsZAogICAgIG1hdGNoT3JG
YWlsKENMT1NFQlJBQ0UsICJFeHBlY3RlZCBhIGNsb3NpbmcgJ30nIGFmdGVyIGEgIiwgc3RyaW5n
Rm9yRnVuY3Rpb25Nb2RlKG1vZGUpLCAiIGJvZHkiKTsKICAgICAKICAgICBpZiAobmV3SW5mbykK
LSAgICAgICAgbV9mdW5jdGlvbkNhY2hlLT5hZGQob3BlbkJyYWNlT2Zmc2V0LCBzdGQ6Om1vdmUo
bmV3SW5mbykpOworICAgICAgICBtX2Z1bmN0aW9uQ2FjaGUtPmFkZChvcGVuQnJhY2VPZmZzZXQs
IFdURjo6bW92ZShuZXdJbmZvKSk7CiAgICAgCiAgICAgbmV4dCgpOwogICAgIHJldHVybiB0cnVl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKaW5kZXggMTFkMjY2MS4uYjg4ZjIw
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oCkBAIC00MDEsNyArNDAxLDcg
QEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8UGFyc2VkTm9kZT4gcGFyc2UoUGFyc2VyRXJyb3Im
LCBib29sIG5lZWRSZXBhcnNpbmdBZGp1c3RtZW50KTsKIAogICAgIEpTVGV4dFBvc2l0aW9uIHBv
c2l0aW9uQmVmb3JlTGFzdE5ld2xpbmUoKSBjb25zdCB7IHJldHVybiBtX2xleGVyLT5wb3NpdGlv
bkJlZm9yZUxhc3ROZXdsaW5lKCk7IH0KLSAgICBWZWN0b3I8UmVmUHRyPFN0cmluZ0ltcGw+PiYm
IGNsb3NlZFZhcmlhYmxlcygpIHsgcmV0dXJuIHN0ZDo6bW92ZShtX2Nsb3NlZFZhcmlhYmxlcyk7
IH0KKyAgICBWZWN0b3I8UmVmUHRyPFN0cmluZ0ltcGw+PiYmIGNsb3NlZFZhcmlhYmxlcygpIHsg
cmV0dXJuIFdURjo6bW92ZShtX2Nsb3NlZFZhcmlhYmxlcyk7IH0KIAogcHJpdmF0ZToKICAgICBz
dHJ1Y3QgQWxsb3dJbk92ZXJyaWRlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1NvdXJjZVByb3ZpZGVyQ2FjaGUuY3BwCmluZGV4IGM1ZTI0N2YuLmQ1OTU4ZTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXJDYWNo
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlckNh
Y2hlLmNwcApAQCAtNDIsNyArNDIsNyBAQCB2b2lkIFNvdXJjZVByb3ZpZGVyQ2FjaGU6OmNsZWFy
KCkKIAogdm9pZCBTb3VyY2VQcm92aWRlckNhY2hlOjphZGQoaW50IHNvdXJjZVBvc2l0aW9uLCBz
dGQ6OnVuaXF1ZV9wdHI8U291cmNlUHJvdmlkZXJDYWNoZUl0ZW0+IGl0ZW0pCiB7Ci0gICAgbV9t
YXAuYWRkKHNvdXJjZVBvc2l0aW9uLCBzdGQ6Om1vdmUoaXRlbSkpOworICAgIG1fbWFwLmFkZChz
b3VyY2VQb3NpdGlvbiwgV1RGOjptb3ZlKGl0ZW0pKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9FbmNvZGVkVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9yZXBsYXkvRW5jb2RlZFZhbHVlLmgKaW5kZXggZjE0NzdhYS4uZGU2YmZmNyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9FbmNvZGVkVmFsdWUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L0VuY29kZWRWYWx1ZS5oCkBAIC0xMTUsNyAr
MTE1LDcgQEAgc3RydWN0IEVuY29kaW5nVHJhaXRzPFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwg
T3ZlcmZsb3dIYW5kbGVyPj4gewogICAgICAgICBmb3IgKGNvbnN0IHR5cGVuYW1lIEVuY29kaW5n
VHJhaXRzPFQ+OjpEZWNvZGVkVHlwZSYgdmFsdWUgOiB2ZWN0b3JPZlZhbHVlcykKICAgICAgICAg
ICAgIGVuY29kZWRWZWN0b3IuYXBwZW5kPHR5cGVuYW1lIEVuY29kaW5nVHJhaXRzPFQ+OjpEZWNv
ZGVkVHlwZT4odmFsdWUpOwogCi0gICAgICAgIHJldHVybiBzdGQ6Om1vdmUoZW5jb2RlZFZlY3Rv
cik7CisgICAgICAgIHJldHVybiBXVEY6Om1vdmUoZW5jb2RlZFZlY3Rvcik7CiAgICAgfQogCiAg
ICAgc3RhdGljIGJvb2wgZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiBlbmNvZGVkVmVjdG9yLCBE
ZWNvZGVkVHlwZSYgZGVjb2RlZFZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3JlcGxheS9zY3JpcHRzL0NvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHMucHkgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvQ29kZUdlbmVyYXRvclJlcGxheUlucHV0cy5w
eQppbmRleCBlNmM4MmUyLi5kMTJlOWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcmVwbGF5L3NjcmlwdHMvQ29kZUdlbmVyYXRvclJlcGxheUlucHV0cy5weQorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvQ29kZUdlbmVyYXRvclJlcGxheUlucHV0
cy5weQpAQCAtOTQwLDcgKzk0MCw3IEBAIGNsYXNzIEdlbmVyYXRvcjoKICAgICBkZWYgZ2VuZXJh
dGVfbWVtYmVyX21vdmVfZXhwcmVzc2lvbihzZWxmLCBfbWVtYmVyKToKICAgICAgICAgX3R5cGUg
PSBzZWxmLl9tb2RlbC5nZXRfdHlwZV9mb3JfbWVtYmVyKF9tZW1iZXIpCiAgICAgICAgIGlmIF90
eXBlLm1vZGUgPT0gVHlwZU1vZGVzLk9XTkVEOgotICAgICAgICAgICAgcmV0dXJuICJzdGQ6Om1v
dmUoJXMpIiAlIF9tZW1iZXIubWVtYmVyTmFtZQorICAgICAgICAgICAgcmV0dXJuICJXVEY6Om1v
dmUoJXMpIiAlIF9tZW1iZXIubWVtYmVyTmFtZQogICAgICAgICBlbHNlOgogICAgICAgICAgICAg
cmV0dXJuIF9tZW1iZXIubWVtYmVyTmFtZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtZW51bS13aXRoLWd1
YXJkLmpzb24tVGVzdFJlcGxheUlucHV0cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVw
bGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtZW51bS13aXRoLWd1YXJkLmpzb24t
VGVzdFJlcGxheUlucHV0cy5jcHAKaW5kZXggOWE2ZDg0YS4uNWE3YzkwNyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVy
YXRlLWVudW0td2l0aC1ndWFyZC5qc29uLVRlc3RSZXBsYXlJbnB1dHMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1l
bnVtLXdpdGgtZ3VhcmQuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmNwcApAQCAtMzgsNyArMzgsNyBA
QAogbmFtZXNwYWNlIFRlc3QgewogSGFuZGxlV2hlZWxFdmVudDo6SGFuZGxlV2hlZWxFdmVudChz
dGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1XaGVlbEV2ZW50PiBwbGF0Zm9ybUV2ZW50KQogICAgIDog
RXZlbnRMb29wSW5wdXQ8SGFuZGxlV2hlZWxFdmVudD4oKQotICAgICwgbV9wbGF0Zm9ybUV2ZW50
KHN0ZDo6bW92ZShwbGF0Zm9ybUV2ZW50KSkKKyAgICAsIG1fcGxhdGZvcm1FdmVudChXVEY6Om1v
dmUocGxhdGZvcm1FdmVudCkpCiB7CiB9CiAKQEAgLTY1LDcgKzY1LDcgQEAgYm9vbCBJbnB1dFRy
YWl0czxUZXN0OjpIYW5kbGVXaGVlbEV2ZW50Pjo6ZGVjb2RlKEVuY29kZWRWYWx1ZSYgZW5jb2Rl
ZFZhbHVlLCBzdGQKICAgICBpZiAoIWVuY29kZWRWYWx1ZS5nZXQ8V2ViQ29yZTo6UGxhdGZvcm1X
aGVlbEV2ZW50PihBU0NJSUxpdGVyYWwoInBsYXRmb3JtRXZlbnQiKSwgcGxhdGZvcm1FdmVudCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlucHV0ID0gc3RkOjptYWtlX3VuaXF1ZTxU
ZXN0OjpIYW5kbGVXaGVlbEV2ZW50PihzdGQ6Om1vdmUocGxhdGZvcm1FdmVudCkpOworICAgIGlu
cHV0ID0gc3RkOjptYWtlX3VuaXF1ZTxUZXN0OjpIYW5kbGVXaGVlbEV2ZW50PihXVEY6Om1vdmUo
cGxhdGZvcm1FdmVudCkpOwogICAgIHJldHVybiB0cnVlOwogfQogI2lmIEVOQUJMRShEVU1NWV9G
RUFUVVJFKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRz
L3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLW1lbW9pemVkLXR5cGUtbW9kZXMuanNvbi1UZXN0UmVw
bGF5SW5wdXRzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0
cy9leHBlY3RlZC9nZW5lcmF0ZS1tZW1vaXplZC10eXBlLW1vZGVzLmpzb24tVGVzdFJlcGxheUlu
cHV0cy5jcHAKaW5kZXggM2UzMDJmMi4uMDI1Y2YwNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLW1lbW9pemVk
LXR5cGUtbW9kZXMuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtbWVtb2l6ZWQt
dHlwZS1tb2Rlcy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIFNj
YWxhcklucHV0Ojp+U2NhbGFySW5wdXQoKQogCiBNYXBJbnB1dDo6TWFwSW5wdXQoc3RkOjp1bmlx
dWVfcHRyPE1hcFR5cGU+IGRhdGEpCiAgICAgOiBOb25kZXRlcm1pbmlzdGljSW5wdXQ8TWFwSW5w
dXQ+KCkKLSAgICAsIG1fZGF0YShzdGQ6Om1vdmUoZGF0YSkpCisgICAgLCBtX2RhdGEoV1RGOjpt
b3ZlKGRhdGEpKQogewogfQogCkBAIC05NSw3ICs5NSw3IEBAIGJvb2wgSW5wdXRUcmFpdHM8VGVz
dDo6TWFwSW5wdXQ+OjpkZWNvZGUoRW5jb2RlZFZhbHVlJiBlbmNvZGVkVmFsdWUsIHN0ZDo6dW5p
cXVlCiAgICAgaWYgKCFlbmNvZGVkVmFsdWUuZ2V0PE1hcFR5cGU+KEFTQ0lJTGl0ZXJhbCgiZGF0
YSIpLCBkYXRhKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaW5wdXQgPSBzdGQ6Om1h
a2VfdW5pcXVlPFRlc3Q6Ok1hcElucHV0PihzdGQ6Om1vdmUoZGF0YSkpOworICAgIGlucHV0ID0g
c3RkOjptYWtlX3VuaXF1ZTxUZXN0OjpNYXBJbnB1dD4oV1RGOjptb3ZlKGRhdGEpKTsKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3ltYm9sVGFibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFRh
YmxlLmgKaW5kZXggNWFjMmU0MS4uNmIzYmM3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3ltYm9sVGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TeW1ib2xUYWJsZS5oCkBAIC00NjYsNyArNDY2LDcgQEAgcHVibGljOgogCiAgICAg
Ly8gMCBpZiB3ZSBkb24ndCBjYXB0dXJlIGFueSBhcmd1bWVudHM7IHBhcmFtZXRlckNvdW50KCkg
aW4gbGVuZ3RoIGlmIHdlIGRvLgogICAgIGNvbnN0IFNsb3dBcmd1bWVudCogc2xvd0FyZ3VtZW50
cygpIHsgcmV0dXJuIG1fc2xvd0FyZ3VtZW50cy5nZXQoKTsgfQotICAgIHZvaWQgc2V0U2xvd0Fy
Z3VtZW50cyhzdGQ6OnVuaXF1ZV9wdHI8U2xvd0FyZ3VtZW50W10+IHNsb3dBcmd1bWVudHMpIHsg
bV9zbG93QXJndW1lbnRzID0gc3RkOjptb3ZlKHNsb3dBcmd1bWVudHMpOyB9CisgICAgdm9pZCBz
ZXRTbG93QXJndW1lbnRzKHN0ZDo6dW5pcXVlX3B0cjxTbG93QXJndW1lbnRbXT4gc2xvd0FyZ3Vt
ZW50cykgeyBtX3Nsb3dBcmd1bWVudHMgPSBXVEY6Om1vdmUoc2xvd0FyZ3VtZW50cyk7IH0KICAg
ICAKICAgICBTeW1ib2xUYWJsZSogY2xvbmVDYXB0dXJlZE5hbWVzKFZNJik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtHQ01hcC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha0dDTWFwLmgKaW5kZXggZTU5ZWMwMy4uY2MwZmI4ZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha0dDTWFwLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha0dDTWFwLmgKQEAgLTYwLDcgKzYw
LDcgQEAgcHVibGljOgogICAgIEFkZFJlc3VsdCBzZXQoY29uc3QgS2V5VHlwZSYga2V5LCBWYWx1
ZVR5cGUgdmFsdWUpCiAgICAgewogICAgICAgICBnY01hcElmTmVlZGVkKCk7Ci0gICAgICAgIHJl
dHVybiBtX21hcC5zZXQoa2V5LCBzdGQ6Om1vdmUodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIG1f
bWFwLnNldChrZXksIFdURjo6bW92ZSh2YWx1ZSkpOwogICAgIH0KIAogICAgIEFMV0FZU19JTkxJ
TkUgQWRkUmVzdWx0IGFkZChjb25zdCBLZXlUeXBlJiBrZXksIFZhbHVlVHlwZSB2YWx1ZSkKQEAg
LTY5LDcgKzY5LDcgQEAgcHVibGljOgogICAgICAgICBBZGRSZXN1bHQgYWRkUmVzdWx0ID0gbV9t
YXAuZmFzdEFkZChrZXksIG51bGxwdHIpOwogICAgICAgICBpZiAoIWFkZFJlc3VsdC5pdGVyYXRv
ci0+dmFsdWUpIHsgLy8gTmV3IHZhbHVlIG9yIGZvdW5kIGEgem9tYmllIHZhbHVlLgogICAgICAg
ICAgICAgYWRkUmVzdWx0LmlzTmV3RW50cnkgPSB0cnVlOwotICAgICAgICAgICAgYWRkUmVzdWx0
Lml0ZXJhdG9yLT52YWx1ZSA9IHN0ZDo6bW92ZSh2YWx1ZSk7CisgICAgICAgICAgICBhZGRSZXN1
bHQuaXRlcmF0b3ItPnZhbHVlID0gV1RGOjptb3ZlKHZhbHVlKTsKICAgICAgICAgfQogICAgICAg
ICByZXR1cm4gYWRkUmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdl
TG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggMTUyMjRhYS4uNWIwNzEyMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzOCBAQAorMjAxNC0wNy0wMSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIFdURjo6bW92ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ1MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgV1RGOjptb3ZlKCksIGEgcmVwbGFjZW1l
bnQgZm9yIHN0ZDo6bW92ZSgpLiBXVEY6Om1vdmUoKSBpcyBsZXNzIGVycm9yCisgICAgICAgIHBy
b25lIHRoYW4gc3RkOjptb3ZlKCkgYXMgaXQgY29tcGlsZSBhc3NlcnRzIHRoYXQgaXRzIGFyZ3Vt
ZW50IGlzIG5vbi1jb25zdCBhbmQKKyAgICAgICAgaXRzIGRhdGF0eXBlIGlzIG1vdmFibGUgYmVm
b3JlIHVsdGltYXRlbHkgY2FzdGluZyBpdCB0byBhbiBydmFsdWUgcmVmZXJlbmNlICh2aWEgc3Rk
Ojptb3ZlKS4KKworICAgICAgICAqIHd0Zi9EZXF1ZS5oOgorICAgICAgICAqIHd0Zi9IYXNoTWFw
Lmg6CisgICAgICAgICogd3RmL0hhc2hTZXQuaDoKKyAgICAgICAgKiB3dGYvSGFzaFRhYmxlLmg6
CisgICAgICAgICogd3RmL0l0ZXJhdG9yQWRhcHRvcnMuaDoKKyAgICAgICAgKiB3dGYvSXRlcmF0
b3JSYW5nZS5oOgorICAgICAgICAqIHd0Zi9MaXN0SGFzaFNldC5oOgorICAgICAgICAqIHd0Zi9N
YWluVGhyZWFkLmNwcDoKKyAgICAgICAgKiB3dGYvTWFsbG9jUHRyLmg6CisgICAgICAgICogd3Rm
L01lc3NhZ2VRdWV1ZS5oOgorICAgICAgICAqIHd0Zi9PcHRpb25hbC5oOgorICAgICAgICAqIHd0
Zi9Pd25QdHIuaDoKKyAgICAgICAgKiB3dGYvUmVmUHRyLmg6CisgICAgICAgICogd3RmL1JlZlB0
ckhhc2hNYXAuaDoKKyAgICAgICAgKiB3dGYvUmV0YWluUHRyLmg6CisgICAgICAgICogd3RmL1J1
bkxvb3AuY3BwOgorICAgICAgICAqIHd0Zi9TdGRMaWJFeHRyYXMuaDoKKyAgICAgICAgKFdURjo6
bW92ZSk6IEFkZGVkLgorICAgICAgICAqIHd0Zi9WZWN0b3IuaDoKKyAgICAgICAgKiB3dGYvZ29i
amVjdC9HTWFpbkxvb3BTb3VyY2UuY3BwOgorICAgICAgICAqIHd0Zi90ZXh0L0F0b21pY1N0cmlu
Zy5oOgorICAgICAgICAqIHd0Zi90ZXh0L1dURlN0cmluZy5jcHA6CisgICAgICAgICogd3RmL3dp
bi9HRElPYmplY3QuaDoKKwogMjAxNC0wNi0zMCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVl
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE3MDYwNS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0RlcXVlLmggYi9Tb3VyY2UvV1RGL3d0Zi9EZXF1
ZS5oCmluZGV4IDg0MGI5YTEuLmMxZmUxNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Rl
cXVlLmgKKysrIGIvU291cmNlL1dURi93dGYvRGVxdWUuaApAQCAtMzkxLDcgKzM5MSw3IEBAIG5h
bWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgaW5saW5lIGF1dG8g
RGVxdWU8VD46OnRha2VGaXJzdCgpIC0+IFQKICAgICB7Ci0gICAgICAgIFQgb2xkRmlyc3QgPSBz
dGQ6Om1vdmUoZmlyc3QoKSk7CisgICAgICAgIFQgb2xkRmlyc3QgPSBXVEY6Om1vdmUoZmlyc3Qo
KSk7CiAgICAgICAgIHJlbW92ZUZpcnN0KCk7CiAgICAgICAgIHJldHVybiBvbGRGaXJzdDsKICAg
ICB9CkBAIC0zOTksNyArMzk5LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4KICAgICBpbmxpbmUgYXV0byBEZXF1ZTxUPjo6dGFrZUxhc3QoKSAtPiBUCiAgICAg
ewotICAgICAgICBUIG9sZExhc3QgPSBzdGQ6Om1vdmUobGFzdCgpKTsKKyAgICAgICAgVCBvbGRM
YXN0ID0gV1RGOjptb3ZlKGxhc3QoKSk7CiAgICAgICAgIHJlbW92ZUxhc3QoKTsKICAgICAgICAg
cmV0dXJuIG9sZExhc3Q7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvSGFzaE1h
cC5oIGIvU291cmNlL1dURi93dGYvSGFzaE1hcC5oCmluZGV4IGIxNzAzMjYuLmM5ZWE3MGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0hhc2hNYXAuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9I
YXNoTWFwLmgKQEAgLTI5Niw3ICsyOTYsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5
cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogdGVt
cGxhdGU8dHlwZW5hbWUgVD4KIGF1dG8gSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFy
ZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRUcmFpdHNBcmc+OjpzZXQoS2V5VHlwZSYmIGtleSwgVCYm
IG1hcHBlZCkgLT4gQWRkUmVzdWx0CiB7Ci0gICAgcmV0dXJuIGlubGluZVNldChzdGQ6Om1vdmUo
a2V5KSwgc3RkOjpmb3J3YXJkPFQ+KG1hcHBlZCkpOworICAgIHJldHVybiBpbmxpbmVTZXQoV1RG
Ojptb3ZlKGtleSksIHN0ZDo6Zm9yd2FyZDxUPihtYXBwZWQpKTsKIH0KIAogdGVtcGxhdGU8dHlw
ZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVu
YW1lIEtleVRyYWl0c0FyZywgdHlwZW5hbWUgTWFwcGVkVHJhaXRzQXJnPgpAQCAtMzE3LDcgKzMx
Nyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBl
bmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogYXV0
byBIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBl
ZFRyYWl0c0FyZz46OmFkZChLZXlUeXBlJiYga2V5LCBUJiYgbWFwcGVkKSAtPiBBZGRSZXN1bHQK
IHsKLSAgICByZXR1cm4gaW5saW5lQWRkKHN0ZDo6bW92ZShrZXkpLCBzdGQ6OmZvcndhcmQ8VD4o
bWFwcGVkKSk7CisgICAgcmV0dXJuIGlubGluZUFkZChXVEY6Om1vdmUoa2V5KSwgc3RkOjpmb3J3
YXJkPFQ+KG1hcHBlZCkpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1l
IE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBl
bmFtZSBNYXBwZWRUcmFpdHNBcmc+CkBAIC0zMzEsNyArMzMxLDcgQEAgdGVtcGxhdGU8dHlwZW5h
bWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1l
IEtleVRyYWkKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBBTFdBWVNfSU5MSU5FIGF1dG8gSGFzaE1h
cDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRUcmFpdHNB
cmc+OjpmYXN0QWRkKEtleVR5cGUmJiBrZXksIFQmJiBtYXBwZWQpIC0+IEFkZFJlc3VsdAogewot
ICAgIHJldHVybiBpbmxpbmVBZGQoc3RkOjptb3ZlKGtleSksIHN0ZDo6Zm9yd2FyZDxUPihtYXBw
ZWQpKTsKKyAgICByZXR1cm4gaW5saW5lQWRkKFdURjo6bW92ZShrZXkpLCBzdGQ6OmZvcndhcmQ8
VD4obWFwcGVkKSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVu
YW1lIFYsIHR5cGVuYW1lIFcsIHR5cGVuYW1lIE1hcHBlZFRyYWl0cz4KQEAgLTM3MSw3ICszNzEs
NyBAQCBhdXRvIEhhc2hNYXA8VCwgVSwgViwgVywgTWFwcGVkVHJhaXRzPjo6dGFrZShjb25zdCBL
ZXlUeXBlJiBrZXkpIC0+IE1hcHBlZFR5cGUKICAgICBpdGVyYXRvciBpdCA9IGZpbmQoa2V5KTsK
ICAgICBpZiAoaXQgPT0gZW5kKCkpCiAgICAgICAgIHJldHVybiBNYXBwZWRUcmFpdHM6OmVtcHR5
VmFsdWUoKTsKLSAgICBNYXBwZWRUeXBlIHZhbHVlID0gc3RkOjptb3ZlKGl0LT52YWx1ZSk7Cisg
ICAgTWFwcGVkVHlwZSB2YWx1ZSA9IFdURjo6bW92ZShpdC0+dmFsdWUpOwogICAgIHJlbW92ZShp
dCk7CiAgICAgcmV0dXJuIHZhbHVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvSGFz
aFNldC5oIGIvU291cmNlL1dURi93dGYvSGFzaFNldC5oCmluZGV4IDNmMzhjZWQuLjk4Y2Y4Y2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0hhc2hTZXQuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9IYXNoU2V0LmgKQEAgLTE5OSw3ICsxOTksNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBWPgogICAgIGlubGluZSBhdXRv
IEhhc2hTZXQ8VCwgVSwgVj46OmFkZChWYWx1ZVR5cGUmJiB2YWx1ZSkgLT4gQWRkUmVzdWx0CiAg
ICAgewotICAgICAgICByZXR1cm4gbV9pbXBsLmFkZChzdGQ6Om1vdmUodmFsdWUpKTsKKyAgICAg
ICAgcmV0dXJuIG1faW1wbC5hZGQoV1RGOjptb3ZlKHZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRy
YWl0cz4KQEAgLTI0Nyw3ICsyNDcsNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgaWYgKGl0
ID09IGVuZCgpKQogICAgICAgICAgICAgcmV0dXJuIFZhbHVlVHJhaXRzOjplbXB0eVZhbHVlKCk7
CiAKLSAgICAgICAgVmFsdWVUeXBlIHJlc3VsdCA9IHN0ZDo6bW92ZShjb25zdF9jYXN0PFZhbHVl
VHlwZSY+KCppdCkpOworICAgICAgICBWYWx1ZVR5cGUgcmVzdWx0ID0gV1RGOjptb3ZlKGNvbnN0
X2Nhc3Q8VmFsdWVUeXBlJj4oKml0KSk7CiAgICAgICAgIHJlbW92ZShpdCk7CiAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvSGFzaFRhYmxl
LmggYi9Tb3VyY2UvV1RGL3d0Zi9IYXNoVGFibGUuaAppbmRleCAzNjY2ZmU4Li43ODFiZmRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoVGFibGUuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9IYXNoVGFibGUuaApAQCAtMzczLDcgKzM3Myw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAg
ICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9rZXlDb3VudDsgfQogCiAgICAgICAg
IEFkZFJlc3VsdCBhZGQoY29uc3QgVmFsdWVUeXBlJiB2YWx1ZSkgeyByZXR1cm4gYWRkPElkZW50
aXR5VHJhbnNsYXRvclR5cGU+KEV4dHJhY3Rvcjo6ZXh0cmFjdCh2YWx1ZSksIHZhbHVlKTsgfQot
ICAgICAgICBBZGRSZXN1bHQgYWRkKFZhbHVlVHlwZSYmIHZhbHVlKSB7IHJldHVybiBhZGQ8SWRl
bnRpdHlUcmFuc2xhdG9yVHlwZT4oRXh0cmFjdG9yOjpleHRyYWN0KHZhbHVlKSwgc3RkOjptb3Zl
KHZhbHVlKSk7IH0KKyAgICAgICAgQWRkUmVzdWx0IGFkZChWYWx1ZVR5cGUmJiB2YWx1ZSkgeyBy
ZXR1cm4gYWRkPElkZW50aXR5VHJhbnNsYXRvclR5cGU+KEV4dHJhY3Rvcjo6ZXh0cmFjdCh2YWx1
ZSksIFdURjo6bW92ZSh2YWx1ZSkpOyB9CiAKICAgICAgICAgLy8gQSBzcGVjaWFsIHZlcnNpb24g
b2YgYWRkKCkgdGhhdCBmaW5kcyB0aGUgb2JqZWN0IGJ5IGhhc2hpbmcgYW5kIGNvbXBhcmluZwog
ICAgICAgICAvLyB3aXRoIHNvbWUgb3RoZXIgdHlwZSwgdG8gYXZvaWQgdGhlIGNvc3Qgb2YgdHlw
ZSBjb252ZXJzaW9uIGlmIHRoZSBvYmplY3QgaXMgYWxyZWFkeQpAQCAtOTE5LDcgKzkxOSw3IEBA
IG5hbWVzcGFjZSBXVEYgewogCiAgICAgICAgIFZhbHVlKiBuZXdFbnRyeSA9IGxvb2t1cEZvcldy
aXRpbmcoRXh0cmFjdG9yOjpleHRyYWN0KGVudHJ5KSkuZmlyc3Q7CiAgICAgICAgIG5ld0VudHJ5
LT5+VmFsdWUoKTsKLSAgICAgICAgbmV3IChOb3ROdWxsLCBuZXdFbnRyeSkgVmFsdWVUeXBlKHN0
ZDo6bW92ZShlbnRyeSkpOworICAgICAgICBuZXcgKE5vdE51bGwsIG5ld0VudHJ5KSBWYWx1ZVR5
cGUoV1RGOjptb3ZlKGVudHJ5KSk7CiAKICAgICAgICAgcmV0dXJuIG5ld0VudHJ5OwogICAgIH0K
QEAgLTEwOTYsNyArMTA5Niw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBWYWx1ZSogcmVpbnNlcnRlZEVu
dHJ5ID0gcmVpbnNlcnQoc3RkOjptb3ZlKG9sZFRhYmxlW2ldKSk7CisgICAgICAgICAgICBWYWx1
ZSogcmVpbnNlcnRlZEVudHJ5ID0gcmVpbnNlcnQoV1RGOjptb3ZlKG9sZFRhYmxlW2ldKSk7CiAg
ICAgICAgICAgICBpZiAoJm9sZFRhYmxlW2ldID09IGVudHJ5KSB7CiAgICAgICAgICAgICAgICAg
QVNTRVJUKCFuZXdFbnRyeSk7CiAgICAgICAgICAgICAgICAgbmV3RW50cnkgPSByZWluc2VydGVk
RW50cnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9JdGVyYXRvckFkYXB0b3JzLmggYi9T
b3VyY2UvV1RGL3d0Zi9JdGVyYXRvckFkYXB0b3JzLmgKaW5kZXggYzJkNjcwMy4uMTUyNDExZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSXRlcmF0b3JBZGFwdG9ycy5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL0l0ZXJhdG9yQWRhcHRvcnMuaApAQCAtMzQsOSArMzQsOSBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBQcmVkaWNhdGUsIHR5cGVuYW1lIEl0ZXJhdG9yPgogY2xhc3MgRmlsdGVySXRlcmF0
b3IgewogcHVibGljOgogICAgIEZpbHRlckl0ZXJhdG9yKFByZWRpY2F0ZSBwcmVkLCBJdGVyYXRv
ciBiZWdpbiwgSXRlcmF0b3IgZW5kKQotICAgICAgICA6IG1fcHJlZChzdGQ6Om1vdmUocHJlZCkp
Ci0gICAgICAgICwgbV9pdGVyKHN0ZDo6bW92ZShiZWdpbikpCi0gICAgICAgICwgbV9lbmQoc3Rk
Ojptb3ZlKGVuZCkpCisgICAgICAgIDogbV9wcmVkKFdURjo6bW92ZShwcmVkKSkKKyAgICAgICAg
LCBtX2l0ZXIoV1RGOjptb3ZlKGJlZ2luKSkKKyAgICAgICAgLCBtX2VuZChXVEY6Om1vdmUoZW5k
KSkKICAgICB7CiAgICAgICAgIHdoaWxlIChtX2l0ZXIgIT0gbV9lbmQgJiYgIW1fcHJlZCgqbV9p
dGVyKSkKICAgICAgICAgICAgICsrbV9pdGVyOwpAQCAtNzgsOCArNzgsOCBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBUcmFuc2Zvcm0sIHR5cGVuYW1lIEl0ZXJhdG9yPgogY2xhc3MgVHJhbnNmb3JtSXRl
cmF0b3IgewogcHVibGljOgogICAgIFRyYW5zZm9ybUl0ZXJhdG9yKFRyYW5zZm9ybSYmIHRyYW5z
Zm9ybSwgSXRlcmF0b3ImJiBpdGVyKQotICAgICAgICA6IG1fdHJhbnNmb3JtKHN0ZDo6bW92ZSh0
cmFuc2Zvcm0pKQotICAgICAgICAsIG1faXRlcihzdGQ6Om1vdmUoaXRlcikpCisgICAgICAgIDog
bV90cmFuc2Zvcm0oV1RGOjptb3ZlKHRyYW5zZm9ybSkpCisgICAgICAgICwgbV9pdGVyKFdURjo6
bW92ZShpdGVyKSkKICAgICB7CiAgICAgfQogCkBAIC0xMDUsNyArMTA1LDcgQEAgcHJpdmF0ZToK
IHRlbXBsYXRlPHR5cGVuYW1lIFRyYW5zZm9ybSwgdHlwZW5hbWUgSXRlcmF0b3I+CiBpbmxpbmUg
VHJhbnNmb3JtSXRlcmF0b3I8VHJhbnNmb3JtLCBJdGVyYXRvcj4gbWFrZVRyYW5zZm9ybUl0ZXJh
dG9yKFRyYW5zZm9ybSYmIHRyYW5zZm9ybSwgSXRlcmF0b3ImJiBpdGVyKQogewotICAgIHJldHVy
biBUcmFuc2Zvcm1JdGVyYXRvcjxUcmFuc2Zvcm0sIEl0ZXJhdG9yPihzdGQ6Om1vdmUodHJhbnNm
b3JtKSwgc3RkOjptb3ZlKGl0ZXIpKTsKKyAgICByZXR1cm4gVHJhbnNmb3JtSXRlcmF0b3I8VHJh
bnNmb3JtLCBJdGVyYXRvcj4oV1RGOjptb3ZlKHRyYW5zZm9ybSksIFdURjo6bW92ZShpdGVyKSk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvSXRl
cmF0b3JSYW5nZS5oIGIvU291cmNlL1dURi93dGYvSXRlcmF0b3JSYW5nZS5oCmluZGV4IDI5NWMy
MTQuLjkyZWMwOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0l0ZXJhdG9yUmFuZ2UuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9JdGVyYXRvclJhbmdlLmgKQEAgLTMyLDggKzMyLDggQEAgdGVt
cGxhdGU8dHlwZW5hbWUgSXRlcmF0b3I+CiBjbGFzcyBJdGVyYXRvclJhbmdlIHsKIHB1YmxpYzoK
ICAgICBJdGVyYXRvclJhbmdlKEl0ZXJhdG9yIGJlZ2luLCBJdGVyYXRvciBlbmQpCi0gICAgICAg
IDogbV9iZWdpbihzdGQ6Om1vdmUoYmVnaW4pKQotICAgICAgICAsIG1fZW5kKHN0ZDo6bW92ZShl
bmQpKQorICAgICAgICA6IG1fYmVnaW4oV1RGOjptb3ZlKGJlZ2luKSkKKyAgICAgICAgLCBtX2Vu
ZChXVEY6Om1vdmUoZW5kKSkKICAgICB7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9MaXN0SGFzaFNldC5oIGIvU291cmNlL1dURi93dGYvTGlzdEhhc2hTZXQuaAppbmRleCA0
ZTU0NTRlLi5kMzUzYjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9MaXN0SGFzaFNldC5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0xpc3RIYXNoU2V0LmgKQEAgLTQ3Nyw3ICs0NzcsNyBAQCBp
bmxpbmUgVCBMaXN0SGFzaFNldDxULCBpbmxpbmVDYXBhY2l0eSwgVT46OnRha2VGaXJzdCgpCiAg
ICAgQVNTRVJUKCFpc0VtcHR5KCkpOwogICAgIGF1dG8gaXQgPSBtX2ltcGwuZmluZChtX2hlYWQp
OwogCi0gICAgVCByZXN1bHQgPSBzdGQ6Om1vdmUoKCppdCktPm1fdmFsdWUpOworICAgIFQgcmVz
dWx0ID0gV1RGOjptb3ZlKCgqaXQpLT5tX3ZhbHVlKTsKICAgICBtX2ltcGwucmVtb3ZlKGl0KTsK
ICAgICB1bmxpbmtBbmREZWxldGUobV9oZWFkKTsKIApAQCAtNTE3LDcgKzUxNyw3IEBAIGlubGlu
ZSBUIExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6dGFrZUxhc3QoKQogICAgIEFT
U0VSVCghaXNFbXB0eSgpKTsKICAgICBhdXRvIGl0ID0gbV9pbXBsLmZpbmQobV90YWlsKTsKIAot
ICAgIFQgcmVzdWx0ID0gc3RkOjptb3ZlKCgqaXQpLT5tX3ZhbHVlKTsKKyAgICBUIHJlc3VsdCA9
IFdURjo6bW92ZSgoKml0KS0+bV92YWx1ZSk7CiAgICAgbV9pbXBsLnJlbW92ZShpdCk7CiAgICAg
dW5saW5rQW5kRGVsZXRlKG1fdGFpbCk7CiAKQEAgLTU5Myw3ICs1OTMsNyBAQCBhdXRvIExpc3RI
YXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6YWRkKGNvbnN0IFZhbHVlVHlwZSYgdmFsdWUp
IC0+IEFkZFJlc3VsdAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5
LCB0eXBlbmFtZSBVPgogYXV0byBMaXN0SGFzaFNldDxULCBpbmxpbmVDYXBhY2l0eSwgVT46OmFk
ZChWYWx1ZVR5cGUmJiB2YWx1ZSkgLT4gQWRkUmVzdWx0CiB7Ci0gICAgYXV0byByZXN1bHQgPSBt
X2ltcGwudGVtcGxhdGUgYWRkPEJhc2VUcmFuc2xhdG9yPihzdGQ6Om1vdmUodmFsdWUpLCBtX2Fs
bG9jYXRvci5nZXQoKSk7CisgICAgYXV0byByZXN1bHQgPSBtX2ltcGwudGVtcGxhdGUgYWRkPEJh
c2VUcmFuc2xhdG9yPihXVEY6Om1vdmUodmFsdWUpLCBtX2FsbG9jYXRvci5nZXQoKSk7CiAgICAg
aWYgKHJlc3VsdC5pc05ld0VudHJ5KQogICAgICAgICBhcHBlbmROb2RlKCpyZXN1bHQuaXRlcmF0
b3IpOwogICAgIHJldHVybiBBZGRSZXN1bHQobWFrZUl0ZXJhdG9yKCpyZXN1bHQuaXRlcmF0b3Ip
LCByZXN1bHQuaXNOZXdFbnRyeSk7CkBAIC02MTQsNyArNjE0LDcgQEAgYXV0byBMaXN0SGFzaFNl
dDxULCBpbmxpbmVDYXBhY2l0eSwgVT46OmFwcGVuZE9yTW92ZVRvTGFzdChjb25zdCBWYWx1ZVR5
cGUmIHZhbHUKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlw
ZW5hbWUgVT4KIGF1dG8gTGlzdEhhc2hTZXQ8VCwgaW5saW5lQ2FwYWNpdHksIFU+OjphcHBlbmRP
ck1vdmVUb0xhc3QoVmFsdWVUeXBlJiYgdmFsdWUpIC0+IEFkZFJlc3VsdAogewotICAgIGF1dG8g
cmVzdWx0ID0gbV9pbXBsLnRlbXBsYXRlIGFkZDxCYXNlVHJhbnNsYXRvcj4oc3RkOjptb3ZlKHZh
bHVlKSwgbV9hbGxvY2F0b3IuZ2V0KCkpOworICAgIGF1dG8gcmVzdWx0ID0gbV9pbXBsLnRlbXBs
YXRlIGFkZDxCYXNlVHJhbnNsYXRvcj4oV1RGOjptb3ZlKHZhbHVlKSwgbV9hbGxvY2F0b3IuZ2V0
KCkpOwogICAgIE5vZGUqIG5vZGUgPSAqcmVzdWx0Lml0ZXJhdG9yOwogICAgIGlmICghcmVzdWx0
LmlzTmV3RW50cnkpCiAgICAgICAgIHVubGluayhub2RlKTsKQEAgLTYzOCw3ICs2MzgsNyBAQCBh
dXRvIExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6cHJlcGVuZE9yTW92ZVRvRmly
c3QoY29uc3QgVmFsdWVUeXBlJiB2YQogdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGlu
ZUNhcGFjaXR5LCB0eXBlbmFtZSBVPgogYXV0byBMaXN0SGFzaFNldDxULCBpbmxpbmVDYXBhY2l0
eSwgVT46OnByZXBlbmRPck1vdmVUb0ZpcnN0KFZhbHVlVHlwZSYmIHZhbHVlKSAtPiBBZGRSZXN1
bHQKIHsKLSAgICBhdXRvIHJlc3VsdCA9IG1faW1wbC50ZW1wbGF0ZSBhZGQ8QmFzZVRyYW5zbGF0
b3I+KHN0ZDo6bW92ZSh2YWx1ZSksIG1fYWxsb2NhdG9yLmdldCgpKTsKKyAgICBhdXRvIHJlc3Vs
dCA9IG1faW1wbC50ZW1wbGF0ZSBhZGQ8QmFzZVRyYW5zbGF0b3I+KFdURjo6bW92ZSh2YWx1ZSks
IG1fYWxsb2NhdG9yLmdldCgpKTsKICAgICBOb2RlKiBub2RlID0gKnJlc3VsdC5pdGVyYXRvcjsK
ICAgICBpZiAoIXJlc3VsdC5pc05ld0VudHJ5KQogICAgICAgICB1bmxpbmsobm9kZSk7CkBAIC02
NTYsNyArNjU2LDcgQEAgYXV0byBMaXN0SGFzaFNldDxULCBpbmxpbmVDYXBhY2l0eSwgVT46Omlu
c2VydEJlZm9yZShjb25zdCBWYWx1ZVR5cGUmIGJlZm9yZVZhbHUKIHRlbXBsYXRlPHR5cGVuYW1l
IFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgVT4KIGF1dG8gTGlzdEhhc2hTZXQ8
VCwgaW5saW5lQ2FwYWNpdHksIFU+OjppbnNlcnRCZWZvcmUoY29uc3QgVmFsdWVUeXBlJiBiZWZv
cmVWYWx1ZSwgVmFsdWVUeXBlJiYgbmV3VmFsdWUpIC0+IEFkZFJlc3VsdAogewotICAgIHJldHVy
biBpbnNlcnRCZWZvcmUoZmluZChiZWZvcmVWYWx1ZSksIHN0ZDo6bW92ZShuZXdWYWx1ZSkpOwor
ICAgIHJldHVybiBpbnNlcnRCZWZvcmUoZmluZChiZWZvcmVWYWx1ZSksIFdURjo6bW92ZShuZXdW
YWx1ZSkpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHks
IHR5cGVuYW1lIFU+CkBAIC02NzEsNyArNjcxLDcgQEAgYXV0byBMaXN0SGFzaFNldDxULCBpbmxp
bmVDYXBhY2l0eSwgVT46Omluc2VydEJlZm9yZShpdGVyYXRvciBpdCwgY29uc3QgVmFsdWVUeXAK
IHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgVT4K
IGF1dG8gTGlzdEhhc2hTZXQ8VCwgaW5saW5lQ2FwYWNpdHksIFU+OjppbnNlcnRCZWZvcmUoaXRl
cmF0b3IgaXQsIFZhbHVlVHlwZSYmIG5ld1ZhbHVlKSAtPiBBZGRSZXN1bHQKIHsKLSAgICBhdXRv
IHJlc3VsdCA9IG1faW1wbC50ZW1wbGF0ZSBhZGQ8QmFzZVRyYW5zbGF0b3I+KHN0ZDo6bW92ZShu
ZXdWYWx1ZSksIG1fYWxsb2NhdG9yLmdldCgpKTsKKyAgICBhdXRvIHJlc3VsdCA9IG1faW1wbC50
ZW1wbGF0ZSBhZGQ8QmFzZVRyYW5zbGF0b3I+KFdURjo6bW92ZShuZXdWYWx1ZSksIG1fYWxsb2Nh
dG9yLmdldCgpKTsKICAgICBpZiAocmVzdWx0LmlzTmV3RW50cnkpCiAgICAgICAgIGluc2VydE5v
ZGVCZWZvcmUoaXQubm9kZSgpLCAqcmVzdWx0Lml0ZXJhdG9yKTsKICAgICByZXR1cm4gQWRkUmVz
dWx0KG1ha2VJdGVyYXRvcigqcmVzdWx0Lml0ZXJhdG9yKSwgcmVzdWx0LmlzTmV3RW50cnkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWFpblRocmVhZC5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi9NYWluVGhyZWFkLmNwcAppbmRleCBkYjViODgxLi5hMjVkODQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9NYWluVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFk
LmNwcApAQCAtMjE0LDcgKzIxNCw3IEBAIHN0YXRpYyB2b2lkIGNhbGxGdW5jdGlvbk9iamVjdCh2
b2lkKiBjb250ZXh0KQogCiB2b2lkIGNhbGxPbk1haW5UaHJlYWQoc3RkOjpmdW5jdGlvbjx2b2lk
ICgpPiBmdW5jdGlvbikKIHsKLSAgICBjYWxsT25NYWluVGhyZWFkKGNhbGxGdW5jdGlvbk9iamVj
dCwgc3RkOjptYWtlX3VuaXF1ZTxzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+PihzdGQ6Om1vdmUoZnVu
Y3Rpb24pKS5yZWxlYXNlKCkpOworICAgIGNhbGxPbk1haW5UaHJlYWQoY2FsbEZ1bmN0aW9uT2Jq
ZWN0LCBzdGQ6Om1ha2VfdW5pcXVlPHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4+KFdURjo6bW92ZShm
dW5jdGlvbikpLnJlbGVhc2UoKSk7CiB9CiAKIHZvaWQgc2V0TWFpblRocmVhZENhbGxiYWNrc1Bh
dXNlZChib29sIHBhdXNlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01hbGxvY1B0ci5o
IGIvU291cmNlL1dURi93dGYvTWFsbG9jUHRyLmgKaW5kZXggNzEyZjllMy4uMGY0MDI0ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWFsbG9jUHRyLmgKKysrIGIvU291cmNlL1dURi93dGYv
TWFsbG9jUHRyLmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogCiAgICAgTWFsbG9jUHRyJiBv
cGVyYXRvcj0oTWFsbG9jUHRyJiYgb3RoZXIpCiAgICAgewotICAgICAgICBNYWxsb2NQdHIgcHRy
ID0gc3RkOjptb3ZlKG90aGVyKTsKKyAgICAgICAgTWFsbG9jUHRyIHB0ciA9IFdURjo6bW92ZShv
dGhlcik7CiAgICAgICAgIHN3YXAocHRyKTsKIAogICAgICAgICByZXR1cm4gKnRoaXM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZXNzYWdlUXVldWUuaCBiL1NvdXJjZS9XVEYvd3RmL01l
c3NhZ2VRdWV1ZS5oCmluZGV4IDdhZjZkOGIuLjFhMzNkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL01lc3NhZ2VRdWV1ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL01lc3NhZ2VRdWV1ZS5o
CkBAIC05Miw3ICs5Miw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIGlubGluZSB2b2lkIE1lc3Nh
Z2VRdWV1ZTxEYXRhVHlwZT46OmFwcGVuZChzdGQ6OnVuaXF1ZV9wdHI8RGF0YVR5cGU+IG1lc3Nh
Z2UpCiAgICAgewogICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOwotICAgICAgICBt
X3F1ZXVlLmFwcGVuZChzdGQ6Om1vdmUobWVzc2FnZSkpOworICAgICAgICBtX3F1ZXVlLmFwcGVu
ZChXVEY6Om1vdmUobWVzc2FnZSkpOwogICAgICAgICBtX2NvbmRpdGlvbi5zaWduYWwoKTsKICAg
ICB9CiAKQEAgLTEwMCw3ICsxMDAsNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICBpbmxpbmUgdm9p
ZCBNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjphcHBlbmRBbmRLaWxsKHN0ZDo6dW5pcXVlX3B0cjxE
YXRhVHlwZT4gbWVzc2FnZSkKICAgICB7CiAgICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRl
eCk7Ci0gICAgICAgIG1fcXVldWUuYXBwZW5kKHN0ZDo6bW92ZShtZXNzYWdlKSk7CisgICAgICAg
IG1fcXVldWUuYXBwZW5kKFdURjo6bW92ZShtZXNzYWdlKSk7CiAgICAgICAgIG1fa2lsbGVkID0g
dHJ1ZTsKICAgICAgICAgbV9jb25kaXRpb24uYnJvYWRjYXN0KCk7CiAgICAgfQpAQCAtMTExLDcg
KzExMSw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIHsKICAgICAgICAgTXV0ZXhMb2NrZXIgbG9j
ayhtX211dGV4KTsKICAgICAgICAgYm9vbCB3YXNFbXB0eSA9IG1fcXVldWUuaXNFbXB0eSgpOwot
ICAgICAgICBtX3F1ZXVlLmFwcGVuZChzdGQ6Om1vdmUobWVzc2FnZSkpOworICAgICAgICBtX3F1
ZXVlLmFwcGVuZChXVEY6Om1vdmUobWVzc2FnZSkpOwogICAgICAgICBtX2NvbmRpdGlvbi5zaWdu
YWwoKTsKICAgICAgICAgcmV0dXJuIHdhc0VtcHR5OwogICAgIH0KQEAgLTEyMCw3ICsxMjAsNyBA
QCBuYW1lc3BhY2UgV1RGIHsKICAgICBpbmxpbmUgdm9pZCBNZXNzYWdlUXVldWU8RGF0YVR5cGU+
OjpwcmVwZW5kKHN0ZDo6dW5pcXVlX3B0cjxEYXRhVHlwZT4gbWVzc2FnZSkKICAgICB7CiAgICAg
ICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7Ci0gICAgICAgIG1fcXVldWUucHJlcGVuZChz
dGQ6Om1vdmUobWVzc2FnZSkpOworICAgICAgICBtX3F1ZXVlLnByZXBlbmQoV1RGOjptb3ZlKG1l
c3NhZ2UpKTsKICAgICAgICAgbV9jb25kaXRpb24uc2lnbmFsKCk7CiAgICAgfQogCkBAIC0xNjUs
NyArMTY1LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgIH0KIAogICAgICAgICBBU1NFUlQo
Zm91bmQgIT0gbV9xdWV1ZS5lbmQoKSk7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhVHlw
ZT4gbWVzc2FnZSA9IHN0ZDo6bW92ZSgqZm91bmQpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8
RGF0YVR5cGU+IG1lc3NhZ2UgPSBXVEY6Om1vdmUoKmZvdW5kKTsKICAgICAgICAgbV9xdWV1ZS5y
ZW1vdmUoZm91bmQpOwogICAgICAgICByZXN1bHQgPSBNZXNzYWdlUXVldWVNZXNzYWdlUmVjZWl2
ZWQ7CiAgICAgICAgIHJldHVybiBtZXNzYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
T3B0aW9uYWwuaCBiL1NvdXJjZS9XVEYvd3RmL09wdGlvbmFsLmgKaW5kZXggNjRhNjgxMS4uNTg2
MmRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvT3B0aW9uYWwuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9PcHRpb25hbC5oCkBAIC02OSwxMiArNjksMTIgQEAgcHVibGljOgogICAgICAgICA6
IG1faXNFbmdhZ2VkKG90aGVyLm1faXNFbmdhZ2VkKQogICAgIHsKICAgICAgICAgaWYgKG1faXNF
bmdhZ2VkKQotICAgICAgICAgICAgbmV3IChOb3ROdWxsLCBzdGQ6OmFkZHJlc3NvZihtX3ZhbHVl
KSkgVChzdGQ6Om1vdmUob3RoZXIubV92YWx1ZSkpOworICAgICAgICAgICAgbmV3IChOb3ROdWxs
LCBzdGQ6OmFkZHJlc3NvZihtX3ZhbHVlKSkgVChXVEY6Om1vdmUob3RoZXIubV92YWx1ZSkpOwog
ICAgIH0KIAogICAgIE9wdGlvbmFsKFQmJiB2YWx1ZSkKICAgICAgICAgOiBtX2lzRW5nYWdlZCh0
cnVlKQotICAgICAgICAsIG1fdmFsdWUoc3RkOjptb3ZlKHZhbHVlKSkKKyAgICAgICAgLCBtX3Zh
bHVlKFdURjo6bW92ZSh2YWx1ZSkpCiAgICAgewogICAgIH0KIApAQCAtMTIxLDE0ICsxMjEsMTQg
QEAgcHVibGljOgogICAgIHsKICAgICAgICAgaWYgKG1faXNFbmdhZ2VkID09IG90aGVyLm1faXNF
bmdhZ2VkKSB7CiAgICAgICAgICAgICBpZiAobV9pc0VuZ2FnZWQpCi0gICAgICAgICAgICAgICAg
bV92YWx1ZSA9IHN0ZDo6bW92ZShvdGhlci5tX3ZhbHVlKTsKKyAgICAgICAgICAgICAgICBtX3Zh
bHVlID0gV1RGOjptb3ZlKG90aGVyLm1fdmFsdWUpOwogICAgICAgICAgICAgcmV0dXJuICp0aGlz
OwogICAgICAgICB9CiAKICAgICAgICAgaWYgKG1faXNFbmdhZ2VkKQogICAgICAgICAgICAgbV92
YWx1ZS5+VCgpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBuZXcgKE5vdE51bGwsIHN0ZDo6
YWRkcmVzc29mKG1fdmFsdWUpKSBUKHN0ZDo6bW92ZShvdGhlci5tX3ZhbHVlKSk7CisgICAgICAg
ICAgICBuZXcgKE5vdE51bGwsIHN0ZDo6YWRkcmVzc29mKG1fdmFsdWUpKSBUKFdURjo6bW92ZShv
dGhlci5tX3ZhbHVlKSk7CiAgICAgICAgIG1faXNFbmdhZ2VkID0gb3RoZXIubV9pc0VuZ2FnZWQ7
CiAKICAgICAgICAgcmV0dXJuICp0aGlzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvT3du
UHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Pd25QdHIuaAppbmRleCAxMTEzNzVmLi40OGQwZTY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Pd25QdHIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9P
d25QdHIuaApAQCAtMTQzLDcgKzE0Myw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IGlubGluZSBhdXRvIE93blB0cjxUPjo6b3BlcmF0b3I9KE93blB0ciYmIG8p
IC0+IE93blB0ciYKICAgICB7CiAgICAgICAgIEFTU0VSVCghbyB8fCBvICE9IG1fcHRyKTsKLSAg
ICAgICAgT3duUHRyIHB0ciA9IHN0ZDo6bW92ZShvKTsKKyAgICAgICAgT3duUHRyIHB0ciA9IFdU
Rjo6bW92ZShvKTsKICAgICAgICAgc3dhcChwdHIpOwogICAgICAgICByZXR1cm4gKnRoaXM7CiAg
ICAgfQpAQCAtMTUxLDcgKzE1MSw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IHRlbXBsYXRlPHR5cGVuYW1lIFU+IGlubGluZSBhdXRvIE93blB0cjxUPjo6b3Bl
cmF0b3I9KE93blB0cjxVPiYmIG8pIC0+IE93blB0ciYKICAgICB7CiAgICAgICAgIEFTU0VSVCgh
byB8fCBvICE9IG1fcHRyKTsKLSAgICAgICAgT3duUHRyIHB0ciA9IHN0ZDo6bW92ZShvKTsKKyAg
ICAgICAgT3duUHRyIHB0ciA9IFdURjo6bW92ZShvKTsKICAgICAgICAgc3dhcChwdHIpOwogICAg
ICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUmVm
UHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAppbmRleCBkNjIyMmM5Li4yMmRmN2E3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9S
ZWZQdHIuaApAQCAtMTQwLDIxICsxNDAsMjEgQEAgbmFtZXNwYWNlIFdURiB7CiAKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgUmVmUHRyPFQ+JiBSZWZQdHI8VD46Om9wZXJhdG9yPShS
ZWZQdHImJiBvKQogICAgIHsKLSAgICAgICAgUmVmUHRyIHB0ciA9IHN0ZDo6bW92ZShvKTsKKyAg
ICAgICAgUmVmUHRyIHB0ciA9IFdURjo6bW92ZShvKTsKICAgICAgICAgc3dhcChwdHIpOwogICAg
ICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdGVt
cGxhdGU8dHlwZW5hbWUgVT4gaW5saW5lIFJlZlB0cjxUPiYgUmVmUHRyPFQ+OjpvcGVyYXRvcj0o
UmVmUHRyPFU+JiYgbykKICAgICB7Ci0gICAgICAgIFJlZlB0ciBwdHIgPSBzdGQ6Om1vdmUobyk7
CisgICAgICAgIFJlZlB0ciBwdHIgPSBXVEY6Om1vdmUobyk7CiAgICAgICAgIHN3YXAocHRyKTsK
ICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
IHRlbXBsYXRlPHR5cGVuYW1lIFU+IGlubGluZSBSZWZQdHI8VD4mIFJlZlB0cjxUPjo6b3BlcmF0
b3I9KFBhc3NSZWY8VT4gcmVmZXJlbmNlKQogICAgIHsKLSAgICAgICAgUmVmUHRyIHB0ciA9IHN0
ZDo6bW92ZShyZWZlcmVuY2UpOworICAgICAgICBSZWZQdHIgcHRyID0gV1RGOjptb3ZlKHJlZmVy
ZW5jZSk7CiAgICAgICAgIHN3YXAocHRyKTsKICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1JlZlB0ckhhc2hNYXAuaCBiL1NvdXJjZS9XVEYv
d3RmL1JlZlB0ckhhc2hNYXAuaAppbmRleCAxNTJiZGVlLi4zMzc3NzY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9SZWZQdHJIYXNoTWFwLmgKKysrIGIvU291cmNlL1dURi93dGYvUmVmUHRy
SGFzaE1hcC5oCkBAIC0zMTMsNyArMzEzLDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgIGl0
ZXJhdG9yIGl0ID0gZmluZChrZXkpOwogICAgICAgICBpZiAoaXQgPT0gZW5kKCkpCiAgICAgICAg
ICAgICByZXR1cm4gTWFwcGVkVHJhaXRzOjplbXB0eVZhbHVlKCk7Ci0gICAgICAgIE1hcHBlZFR5
cGUgdmFsdWUgPSBzdGQ6Om1vdmUoaXQtPnZhbHVlKTsKKyAgICAgICAgTWFwcGVkVHlwZSB2YWx1
ZSA9IFdURjo6bW92ZShpdC0+dmFsdWUpOwogICAgICAgICByZW1vdmUoaXQpOwogICAgICAgICBy
ZXR1cm4gdmFsdWU7CiAgICAgfQpAQCAtMzI0LDcgKzMyNCw3IEBAIG5hbWVzcGFjZSBXVEYgewog
ICAgICAgICBpdGVyYXRvciBpdCA9IGZpbmQoa2V5KTsKICAgICAgICAgaWYgKGl0ID09IGVuZCgp
KQogICAgICAgICAgICAgcmV0dXJuIE1hcHBlZFRyYWl0czo6ZW1wdHlWYWx1ZSgpOwotICAgICAg
ICBNYXBwZWRUeXBlIHZhbHVlID0gc3RkOjptb3ZlKGl0LT52YWx1ZSk7CisgICAgICAgIE1hcHBl
ZFR5cGUgdmFsdWUgPSBXVEY6Om1vdmUoaXQtPnZhbHVlKTsKICAgICAgICAgcmVtb3ZlKGl0KTsK
ICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L1JldGFpblB0ci5oIGIvU291cmNlL1dURi93dGYvUmV0YWluUHRyLmgKaW5kZXggOTg5ZjQwNC4u
MDQ1M2U1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUmV0YWluUHRyLmgKKysrIGIvU291
cmNlL1dURi93dGYvUmV0YWluUHRyLmgKQEAgLTE5NywxNCArMTk3LDE0IEBAIG5hbWVzcGFjZSBX
VEYgewogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFJldGFpblB0cjxUPiYgUmV0
YWluUHRyPFQ+OjpvcGVyYXRvcj0oUmV0YWluUHRyJiYgbykKICAgICB7Ci0gICAgICAgIFJldGFp
blB0ciBwdHIgPSBzdGQ6Om1vdmUobyk7CisgICAgICAgIFJldGFpblB0ciBwdHIgPSBXVEY6Om1v
dmUobyk7CiAgICAgICAgIHN3YXAocHRyKTsKICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0K
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHRlbXBsYXRlPHR5cGVuYW1lIFU+IGlubGluZSBS
ZXRhaW5QdHI8VD4mIFJldGFpblB0cjxUPjo6b3BlcmF0b3I9KFJldGFpblB0cjxVPiYmIG8pCiAg
ICAgewotICAgICAgICBSZXRhaW5QdHIgcHRyID0gc3RkOjptb3ZlKG8pOworICAgICAgICBSZXRh
aW5QdHIgcHRyID0gV1RGOjptb3ZlKG8pOwogICAgICAgICBzd2FwKHB0cik7CiAgICAgICAgIHJl
dHVybiAqdGhpczsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3BwCmluZGV4IGJhMGUwNGUuLjg1YWQ2ZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1J1bkxvb3AuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCBSdW5Mb29wOjpwZXJmb3JtV29y
aygpCiB2b2lkIFJ1bkxvb3A6OmRpc3BhdGNoKHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZnVuY3Rp
b24pCiB7CiAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZnVuY3Rpb25RdWV1ZUxvY2spOwotICAg
IG1fZnVuY3Rpb25RdWV1ZS5hcHBlbmQoc3RkOjptb3ZlKGZ1bmN0aW9uKSk7CisgICAgbV9mdW5j
dGlvblF1ZXVlLmFwcGVuZChXVEY6Om1vdmUoZnVuY3Rpb24pKTsKIAogICAgIHdha2VVcCgpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvU3RkTGliRXh0cmFzLmggYi9Tb3VyY2UvV1RG
L3d0Zi9TdGRMaWJFeHRyYXMuaAppbmRleCA4OTFmYTYxLi41YjgwMGY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TdGRMaWJF
eHRyYXMuaApAQCAtMTE5LDYgKzExOSwyNSBAQCBpbmxpbmUgYm9vbCBpc1BvaW50ZXJUeXBlQWxp
Z25tZW50T2theShUeXBlKikKIAogbmFtZXNwYWNlIFdURiB7CiAKK3RlbXBsYXRlPGNsYXNzIFQ+
CitBTFdBWVNfSU5MSU5FIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxUPjo6dHlwZSYm
IG1vdmUoVCYmIHZhbHVlKQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19sdmFsdWVfcmVm
ZXJlbmNlPFQ+Ojp2YWx1ZSwgIlQgaXMgbm90IGFuIGx2YWx1ZSByZWZlcmVuY2U7IG1vdmUoKSBp
cyB1bm5lY2Vzc2FyeS4iKTsKKworICAgIHVzaW5nIE5vblJlZlF1YWxpZmllZFR5cGUgPSB0eXBl
bmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8VD46OnR5cGU7CisgICAgc3RhdGljX2Fzc2VydCgh
c3RkOjppc19jb25zdDxOb25SZWZRdWFsaWZpZWRUeXBlPjo6dmFsdWUsICJUIGlzIGNvbnN0IHF1
YWxpZmllZC4iKTsKKworI2lmIENPTVBJTEVSKENMQU5HKQorICAgIC8vIEFzIG9mIHRoZSB0aW1l
IG9mIHdyaXRpbmcgKDA3LzAxLzIwMTQpLCBHQ0MgNC44IGFuZCBNU1ZDIDIwMTMgc2VlbSB0byBj
b25zaWRlciBhY2Nlc3MgY29udHJvbCBmYWlsdXJlcyB3aGVuCisgICAgLy8gZXZhbHVhdGluZyBz
dGQ6OmlzX21vdmVfY29uc3RydWN0aWJsZSBhbmQgc3RkOjppc19tb3ZlX2Fzc2lnbmFibGUgYXMg
YSBjb21waWxlciBlcnJvciBpbnN0ZWFkIG9mIGEgU3Vic3RpdHV0aW9uCisgICAgLy8gRmFpbHVy
ZSBJcyBOb3QgQW4gRXJyb3IgKFNGSU5BRSkgZGVkdWN0aW9uIGZhaWx1cmUuIFNlZSA8aHR0cDov
L2VuLndpa2lwZWRpYS5vcmcvd2lraS9TdWJzdGl0dXRpb25fZmFpbHVyZV9pc19ub3RfYW5fZXJy
b3I+LgorICAgIHVzaW5nIE5vbkNvbnN0Tm9uUmVmUXVhbGlmaWVkVHlwZSA9IHR5cGVuYW1lIHN0
ZDo6cmVtb3ZlX2NvbnN0PE5vblJlZlF1YWxpZmllZFR5cGU+Ojp0eXBlOworICAgIHN0YXRpY19h
c3NlcnQoc3RkOjppc19tb3ZlX2NvbnN0cnVjdGlibGU8Tm9uQ29uc3ROb25SZWZRdWFsaWZpZWRU
eXBlPjo6dmFsdWUgfHwgc3RkOjppc19tb3ZlX2Fzc2lnbmFibGU8Tm9uQ29uc3ROb25SZWZRdWFs
aWZpZWRUeXBlPjo6dmFsdWUsICJUIGlzIG5vdCBtb3ZhYmxlLiIpOworI2VuZGlmCisKKyAgICBy
ZXR1cm4gc3RkOjptb3ZlKHZhbHVlKTsKK30KKwogc3RhdGljIGNvbnN0IHNpemVfdCBLQiA9IDEw
MjQ7CiBzdGF0aWMgY29uc3Qgc2l6ZV90IE1CID0gMTAyNCAqIDEwMjQ7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oIGIvU291cmNlL1dURi93dGYvVmVjdG9yLmgKaW5kZXgg
MmU0NGE3Zi4uMjhhNDk1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVmVjdG9yLmgKKysr
IGIvU291cmNlL1dURi93dGYvVmVjdG9yLmgKQEAgLTk0LDcgKzk0LDcgQEAgc3RydWN0IFZlY3Rv
ck1vdmVyPGZhbHNlLCBUPgogICAgIHN0YXRpYyB2b2lkIG1vdmUoVCogc3JjLCBUKiBzcmNFbmQs
IFQqIGRzdCkKICAgICB7CiAgICAgICAgIHdoaWxlIChzcmMgIT0gc3JjRW5kKSB7Ci0gICAgICAg
ICAgICBuZXcgKE5vdE51bGwsIGRzdCkgVChzdGQ6Om1vdmUoKnNyYykpOworICAgICAgICAgICAg
bmV3IChOb3ROdWxsLCBkc3QpIFQoV1RGOjptb3ZlKCpzcmMpKTsKICAgICAgICAgICAgIHNyYy0+
flQoKTsKICAgICAgICAgICAgICsrZHN0OwogICAgICAgICAgICAgKytzcmM7CkBAIC0xMDksNyAr
MTA5LDcgQEAgc3RydWN0IFZlY3Rvck1vdmVyPGZhbHNlLCBUPgogICAgICAgICAgICAgd2hpbGUg
KHNyYyAhPSBzcmNFbmQpIHsKICAgICAgICAgICAgICAgICAtLXNyY0VuZDsKICAgICAgICAgICAg
ICAgICAtLWRzdEVuZDsKLSAgICAgICAgICAgICAgICBuZXcgKE5vdE51bGwsIGRzdEVuZCkgVChz
dGQ6Om1vdmUoKnNyY0VuZCkpOworICAgICAgICAgICAgICAgIG5ldyAoTm90TnVsbCwgZHN0RW5k
KSBUKFdURjo6bW92ZSgqc3JjRW5kKSk7CiAgICAgICAgICAgICAgICAgc3JjRW5kLT5+VCgpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC02NjEsNyArNjYxLDcgQEAgcHVibGljOgogICAg
IAogICAgIFQgdGFrZUxhc3QoKQogICAgIHsKLSAgICAgICAgVCByZXN1bHQgPSBzdGQ6Om1vdmUo
bGFzdCgpKTsKKyAgICAgICAgVCByZXN1bHQgPSBXVEY6Om1vdmUobGFzdCgpKTsKICAgICAgICAg
cmVtb3ZlTGFzdCgpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL2dvYmplY3QvR01haW5Mb29wU291cmNlLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL2dvYmplY3QvR01haW5Mb29wU291cmNlLmNwcAppbmRleCBmMWFmODhjLi42ZDhjNTBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9nb2JqZWN0L0dNYWluTG9vcFNvdXJjZS5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvZ29iamVjdC9HTWFpbkxvb3BTb3VyY2UuY3BwCkBAIC0xMDUsMTYg
KzEwNSwxNiBAQCB2b2lkIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVJZGxlU291cmNlKGNvbnN0
IGNoYXIqIG5hbWUsIEdTb3VyY2VGdW5jIHNvdXJjZUZ1bgogdm9pZCBHTWFpbkxvb3BTb3VyY2U6
OnNjaGVkdWxlKGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZnVuY3Rp
b24sIGludCBwcmlvcml0eSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBkZXN0cm95RnVuY3Rpb24s
IEdNYWluQ29udGV4dCogY29udGV4dCkKIHsKICAgICBjYW5jZWwoKTsKLSAgICBtX3ZvaWRDYWxs
YmFjayA9IHN0ZDo6bW92ZShmdW5jdGlvbik7Ci0gICAgbV9kZXN0cm95Q2FsbGJhY2sgPSBzdGQ6
Om1vdmUoZGVzdHJveUZ1bmN0aW9uKTsKKyAgICBtX3ZvaWRDYWxsYmFjayA9IFdURjo6bW92ZShm
dW5jdGlvbik7CisgICAgbV9kZXN0cm95Q2FsbGJhY2sgPSBXVEY6Om1vdmUoZGVzdHJveUZ1bmN0
aW9uKTsKICAgICBzY2hlZHVsZUlkbGVTb3VyY2UobmFtZSwgcmVpbnRlcnByZXRfY2FzdDxHU291
cmNlRnVuYz4odm9pZFNvdXJjZUNhbGxiYWNrKSwgcHJpb3JpdHksIGNvbnRleHQpOwogfQogCiB2
b2lkIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGUoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5j
dGlvbjxib29sICgpPiBmdW5jdGlvbiwgaW50IHByaW9yaXR5LCBzdGQ6OmZ1bmN0aW9uPHZvaWQg
KCk+IGRlc3Ryb3lGdW5jdGlvbiwgR01haW5Db250ZXh0KiBjb250ZXh0KQogewogICAgIGNhbmNl
bCgpOwotICAgIG1fYm9vbENhbGxiYWNrID0gc3RkOjptb3ZlKGZ1bmN0aW9uKTsKLSAgICBtX2Rl
c3Ryb3lDYWxsYmFjayA9IHN0ZDo6bW92ZShkZXN0cm95RnVuY3Rpb24pOworICAgIG1fYm9vbENh
bGxiYWNrID0gV1RGOjptb3ZlKGZ1bmN0aW9uKTsKKyAgICBtX2Rlc3Ryb3lDYWxsYmFjayA9IFdU
Rjo6bW92ZShkZXN0cm95RnVuY3Rpb24pOwogICAgIHNjaGVkdWxlSWRsZVNvdXJjZShuYW1lLCBy
ZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPihib29sU291cmNlQ2FsbGJhY2spLCBwcmlvcml0
eSwgY29udGV4dCk7CiB9CiAKQEAgLTEyNCw4ICsxMjQsOCBAQCB2b2lkIEdNYWluTG9vcFNvdXJj
ZTo6c2NoZWR1bGUoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sIChHSU9Db25k
aXRpbwogICAgIEFTU0VSVChtX3N0YXR1cyA9PSBSZWFkeSk7CiAgICAgbV9zdGF0dXMgPSBTY2hl
ZHVsZWQ7CiAKLSAgICBtX3NvY2tldENhbGxiYWNrID0gc3RkOjptb3ZlKGZ1bmN0aW9uKTsKLSAg
ICBtX2Rlc3Ryb3lDYWxsYmFjayA9IHN0ZDo6bW92ZShkZXN0cm95RnVuY3Rpb24pOworICAgIG1f
c29ja2V0Q2FsbGJhY2sgPSBXVEY6Om1vdmUoZnVuY3Rpb24pOworICAgIG1fZGVzdHJveUNhbGxi
YWNrID0gV1RGOjptb3ZlKGRlc3Ryb3lGdW5jdGlvbik7CiAgICAgbV9jYW5jZWxsYWJsZSA9IGFk
b3B0R1JlZihnX2NhbmNlbGxhYmxlX25ldygpKTsKICAgICBtX3NvdXJjZSA9IGFkb3B0R1JlZihn
X3NvY2tldF9jcmVhdGVfc291cmNlKHNvY2tldCwgY29uZGl0aW9uLCBtX2NhbmNlbGxhYmxlLmdl
dCgpKSk7CiAgICAgZ19zb3VyY2Vfc2V0X25hbWUobV9zb3VyY2UuZ2V0KCksIG5hbWUpOwpAQCAt
MTUwLDggKzE1MCw4IEBAIHZvaWQgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFmdGVyRGVsYXko
Y29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpCiB7CiAgICAgY2FuY2VsKCk7
CiAgICAgbV9zb3VyY2UgPSBhZG9wdEdSZWYoZ190aW1lb3V0X3NvdXJjZV9uZXcoZGVsYXkuY291
bnQoKSkpOwotICAgIG1fdm9pZENhbGxiYWNrID0gc3RkOjptb3ZlKGZ1bmN0aW9uKTsKLSAgICBt
X2Rlc3Ryb3lDYWxsYmFjayA9IHN0ZDo6bW92ZShkZXN0cm95RnVuY3Rpb24pOworICAgIG1fdm9p
ZENhbGxiYWNrID0gV1RGOjptb3ZlKGZ1bmN0aW9uKTsKKyAgICBtX2Rlc3Ryb3lDYWxsYmFjayA9
IFdURjo6bW92ZShkZXN0cm95RnVuY3Rpb24pOwogICAgIHNjaGVkdWxlVGltZW91dFNvdXJjZShu
YW1lLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPih2b2lkU291cmNlQ2FsbGJhY2spLCBw
cmlvcml0eSwgY29udGV4dCk7CiB9CiAKQEAgLTE1OSw4ICsxNTksOCBAQCB2b2lkIEdNYWluTG9v
cFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rp
b248Ym9vbCAoKQogewogICAgIGNhbmNlbCgpOwogICAgIG1fc291cmNlID0gYWRvcHRHUmVmKGdf
dGltZW91dF9zb3VyY2VfbmV3KGRlbGF5LmNvdW50KCkpKTsKLSAgICBtX2Jvb2xDYWxsYmFjayA9
IHN0ZDo6bW92ZShmdW5jdGlvbik7Ci0gICAgbV9kZXN0cm95Q2FsbGJhY2sgPSBzdGQ6Om1vdmUo
ZGVzdHJveUZ1bmN0aW9uKTsKKyAgICBtX2Jvb2xDYWxsYmFjayA9IFdURjo6bW92ZShmdW5jdGlv
bik7CisgICAgbV9kZXN0cm95Q2FsbGJhY2sgPSBXVEY6Om1vdmUoZGVzdHJveUZ1bmN0aW9uKTsK
ICAgICBzY2hlZHVsZVRpbWVvdXRTb3VyY2UobmFtZSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNl
RnVuYz4oYm9vbFNvdXJjZUNhbGxiYWNrKSwgcHJpb3JpdHksIGNvbnRleHQpOwogfQogCkBAIC0x
NjgsOCArMTY4LDggQEAgdm9pZCBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQWZ0ZXJEZWxheShj
b25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCkKIHsKICAgICBjYW5jZWwoKTsK
ICAgICBtX3NvdXJjZSA9IGFkb3B0R1JlZihnX3RpbWVvdXRfc291cmNlX25ld19zZWNvbmRzKGRl
bGF5LmNvdW50KCkpKTsKLSAgICBtX3ZvaWRDYWxsYmFjayA9IHN0ZDo6bW92ZShmdW5jdGlvbik7
Ci0gICAgbV9kZXN0cm95Q2FsbGJhY2sgPSBzdGQ6Om1vdmUoZGVzdHJveUZ1bmN0aW9uKTsKKyAg
ICBtX3ZvaWRDYWxsYmFjayA9IFdURjo6bW92ZShmdW5jdGlvbik7CisgICAgbV9kZXN0cm95Q2Fs
bGJhY2sgPSBXVEY6Om1vdmUoZGVzdHJveUZ1bmN0aW9uKTsKICAgICBzY2hlZHVsZVRpbWVvdXRT
b3VyY2UobmFtZSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4odm9pZFNvdXJjZUNhbGxi
YWNrKSwgcHJpb3JpdHksIGNvbnRleHQpOwogfQogCkBAIC0xNzcsOCArMTc3LDggQEAgdm9pZCBH
TWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQWZ0ZXJEZWxheShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6
OmZ1bmN0aW9uPGJvb2wgKCkKIHsKICAgICBjYW5jZWwoKTsKICAgICBtX3NvdXJjZSA9IGFkb3B0
R1JlZihnX3RpbWVvdXRfc291cmNlX25ld19zZWNvbmRzKGRlbGF5LmNvdW50KCkpKTsKLSAgICBt
X2Jvb2xDYWxsYmFjayA9IHN0ZDo6bW92ZShmdW5jdGlvbik7Ci0gICAgbV9kZXN0cm95Q2FsbGJh
Y2sgPSBzdGQ6Om1vdmUoZGVzdHJveUZ1bmN0aW9uKTsKKyAgICBtX2Jvb2xDYWxsYmFjayA9IFdU
Rjo6bW92ZShmdW5jdGlvbik7CisgICAgbV9kZXN0cm95Q2FsbGJhY2sgPSBXVEY6Om1vdmUoZGVz
dHJveUZ1bmN0aW9uKTsKICAgICBzY2hlZHVsZVRpbWVvdXRTb3VyY2UobmFtZSwgcmVpbnRlcnBy
ZXRfY2FzdDxHU291cmNlRnVuYz4oYm9vbFNvdXJjZUNhbGxiYWNrKSwgcHJpb3JpdHksIGNvbnRl
eHQpOwogfQogCkBAIC0yMzgsNyArMjM4LDcgQEAgYm9vbCBHTWFpbkxvb3BTb3VyY2U6OnNvY2tl
dENhbGxiYWNrKEdJT0NvbmRpdGlvbiBjb25kaXRpb24pCiAKIHZvaWQgR01haW5Mb29wU291cmNl
OjpkZXN0cm95KCkKIHsKLSAgICBhdXRvIGRlc3Ryb3lDYWxsYmFjayA9IHN0ZDo6bW92ZShtX2Rl
c3Ryb3lDYWxsYmFjayk7CisgICAgYXV0byBkZXN0cm95Q2FsbGJhY2sgPSBXVEY6Om1vdmUobV9k
ZXN0cm95Q2FsbGJhY2spOwogICAgIGF1dG8gZGVsZXRlT25EZXN0cm95ID0gbV9kZWxldGVPbkRl
c3Ryb3k7CiAgICAgcmVzZXQoKTsKICAgICBpZiAoZGVzdHJveUNhbGxiYWNrKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvdGV4dC9BdG9taWNTdHJpbmcuaCBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQXRvbWljU3RyaW5nLmgKaW5kZXggNTY1NzFhMC4uMzQ1YTQ4YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvdGV4dC9BdG9taWNTdHJpbmcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0F0b21pY1N0cmluZy5oCkBAIC03OCw5ICs3OCw5IEBAIHB1YmxpYzoKICAgICAvLyBXZSBoYXZl
IHRvIGRlY2xhcmUgdGhlIGNvcHkgY29uc3RydWN0b3IgYW5kIGNvcHkgYXNzaWdubWVudCBvcGVy
YXRvciBhcyB3ZWxsLCBvdGhlcndpc2UKICAgICAvLyB0aGV5J2xsIGJlIGltcGxpY2l0bHkgZGVs
ZXRlZCBieSBhZGRpbmcgdGhlIG1vdmUgY29uc3RydWN0b3IgYW5kIG1vdmUgYXNzaWdubWVudCBv
cGVyYXRvci4KICAgICBBdG9taWNTdHJpbmcoY29uc3QgQXRvbWljU3RyaW5nJiBvdGhlcikgOiBt
X3N0cmluZyhvdGhlci5tX3N0cmluZykgeyB9Ci0gICAgQXRvbWljU3RyaW5nKEF0b21pY1N0cmlu
ZyYmIG90aGVyKSA6IG1fc3RyaW5nKHN0ZDo6bW92ZShvdGhlci5tX3N0cmluZykpIHsgfQorICAg
IEF0b21pY1N0cmluZyhBdG9taWNTdHJpbmcmJiBvdGhlcikgOiBtX3N0cmluZyhXVEY6Om1vdmUo
b3RoZXIubV9zdHJpbmcpKSB7IH0KICAgICBBdG9taWNTdHJpbmcmIG9wZXJhdG9yPShjb25zdCBB
dG9taWNTdHJpbmcmIG90aGVyKSB7IG1fc3RyaW5nID0gb3RoZXIubV9zdHJpbmc7IHJldHVybiAq
dGhpczsgfQotICAgIEF0b21pY1N0cmluZyYgb3BlcmF0b3I9KEF0b21pY1N0cmluZyYmIG90aGVy
KSB7IG1fc3RyaW5nID0gc3RkOjptb3ZlKG90aGVyLm1fc3RyaW5nKTsgcmV0dXJuICp0aGlzOyB9
CisgICAgQXRvbWljU3RyaW5nJiBvcGVyYXRvcj0oQXRvbWljU3RyaW5nJiYgb3RoZXIpIHsgbV9z
dHJpbmcgPSBXVEY6Om1vdmUob3RoZXIubV9zdHJpbmcpOyByZXR1cm4gKnRoaXM7IH0KIAogICAg
IC8vIEhhc2ggdGFibGUgZGVsZXRlZCB2YWx1ZXMsIHdoaWNoIGFyZSBvbmx5IGNvbnN0cnVjdGVk
IGFuZCBuZXZlciBjb3BpZWQgb3IgZGVzdHJveWVkLgogICAgIEF0b21pY1N0cmluZyhXVEY6Okhh
c2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpIDogbV9zdHJpbmcoV1RGOjpIYXNoVGFibGVEZWxldGVk
VmFsdWUpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuY3Bw
IGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuY3BwCmluZGV4IDgzNGNiNjQuLmMxZDk0
MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAKQEAgLTY5Myw3ICs2OTMsNyBAQCBTdHJp
bmcgU3RyaW5nOjppc29sYXRlZENvcHkoKSAmJgogICAgIGlmIChpc1NhZmVUb1NlbmRUb0Fub3Ro
ZXJUaHJlYWQoKSkgewogICAgICAgICAvLyBTaW5jZSB3ZSBrbm93IHRoYXQgb3VyIHN0cmluZyBp
cyBhIHRlbXBvcmFyeSB0aGF0IHdpbGwgYmUgZGVzdHJveWVkCiAgICAgICAgIC8vIHdlIGNhbiBq
dXN0IHN0ZWFsIHRoZSBtX2ltcGwgZnJvbSBpdCwgdGh1cyBhdm9pZGluZyBhIGNvcHkuCi0gICAg
ICAgIHJldHVybiBTdHJpbmcoc3RkOjptb3ZlKCp0aGlzKSk7CisgICAgICAgIHJldHVybiBTdHJp
bmcoV1RGOjptb3ZlKCp0aGlzKSk7CiAgICAgfQogCiAgICAgaWYgKCFtX2ltcGwpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi93aW4vR0RJT2JqZWN0LmggYi9Tb3VyY2UvV1RGL3d0Zi93aW4v
R0RJT2JqZWN0LmgKaW5kZXggZThiMDBiZS4uN2UxZDRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvd2luL0dESU9iamVjdC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dpbi9HRElPYmplY3Qu
aApAQCAtOTUsNyArOTUsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgR0RJT2JqZWN0
PFQ+OjpHRElPYmplY3QoR0RJT2JqZWN0PFQ+JiYgb3RoZXIpCiAKIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IGlubGluZSBHRElPYmplY3Q8VD4mIEdESU9iamVjdDxUPjo6b3BlcmF0b3I9KEdESU9iamVj
dDxUPiYmIG90aGVyKQogewotICAgIGF1dG8gb2JqZWN0ID0gc3RkOjptb3ZlKG90aGVyKTsKKyAg
ICBhdXRvIG9iamVjdCA9IFdURjo6bW92ZShvdGhlcik7CiAgICAgc3dhcChvYmplY3QpOwogICAg
IHJldHVybiAqdGhpczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5ZTBjYTZjLi44ZThkNWQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTQtMDctMDEgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNA
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCBXVEY6Om1vdmUoKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0NTAwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3Vic3RpdHV0ZSBXVEY6Om1vdmUoKSBmb3Ig
c3RkOjptb3ZlKCkuCisKKyAgICAgICAgKiBNb2R1bGVzL2JhdHRlcnkvTmF2aWdhdG9yQmF0dGVy
eS5jcHA6CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3BwOgor
ICAgICAgICAqIE1vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcDoKKyAgICAgICAg
KiBNb2R1bGVzL2dhbWVwYWQvZGVwcmVjYXRlZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcDoKKyAgICAg
ICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmNwcDoKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuY3BwOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZC5jcHA6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmg6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvUGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlLmNwcDoKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5jcHA6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJCYWNraW5nU3RvcmVMZXZlbERC
LmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcDoKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHA6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1GU2VuZGVyLmNwcDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL25hdmlnYXRv
cmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMuY3BwOgorICAgICAgICAqIE1vZHVs
ZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5oOgorICAgICAg
ICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcDoKKyAg
ICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRp
b25zLmNwcDoKKyAgICAgICBbLi4uXQorCiAyMDE0LTA3LTAxICBKb3NlcGggUGVjb3Jhcm8gIDxw
ZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogU2VsZWN0ZWQgRE9N
IGVsZW1lbnQgaGlnaGxpZ2h0cyBpbnZpc2libGUgbmVhciBib3R0b20gb2YgdGhlIHZpZXdwb3J0
ICh0b3BDb250ZW50SW5zZXQ/KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9i
YXR0ZXJ5L05hdmlnYXRvckJhdHRlcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9iYXR0
ZXJ5L05hdmlnYXRvckJhdHRlcnkuY3BwCmluZGV4IDczOWQ0MDQuLjE0ZDdiZjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYmF0dGVyeS9OYXZpZ2F0b3JCYXR0ZXJ5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2JhdHRlcnkvTmF2aWdhdG9yQmF0dGVyeS5jcHAK
QEAgLTU4LDcgKzU4LDcgQEAgTmF2aWdhdG9yQmF0dGVyeSogTmF2aWdhdG9yQmF0dGVyeTo6ZnJv
bShOYXZpZ2F0b3IqIG5hdmlnYXRvcikKICAgICBpZiAoIXN1cHBsZW1lbnQpIHsKICAgICAgICAg
YXV0byBuZXdTdXBwbGVtZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxOYXZpZ2F0b3JCYXR0ZXJ5Pigp
OwogICAgICAgICBzdXBwbGVtZW50ID0gbmV3U3VwcGxlbWVudC5nZXQoKTsKLSAgICAgICAgcHJv
dmlkZVRvKG5hdmlnYXRvciwgc3VwcGxlbWVudE5hbWUoKSwgc3RkOjptb3ZlKG5ld1N1cHBsZW1l
bnQpKTsKKyAgICAgICAgcHJvdmlkZVRvKG5hdmlnYXRvciwgc3VwcGxlbWVudE5hbWUoKSwgV1RG
Ojptb3ZlKG5ld1N1cHBsZW1lbnQpKTsKICAgICB9CiAgICAgcmV0dXJuIHN1cHBsZW1lbnQ7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlh
S2V5cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5
cy5jcHAKaW5kZXggMjg2YWYyMC4uZjNjMjEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcApAQCAtNjIsMTMgKzYyLDEzIEBA
IFBhc3NSZWZQdHI8TWVkaWFLZXlzPiBNZWRpYUtleXM6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGtl
eVN5c3RlbSwgRXhjZXB0aW9uQ29kZSYKICAgICAvLyA1LiBDcmVhdGUgYSBuZXcgTWVkaWFLZXlz
IG9iamVjdC4KICAgICAvLyA1LjEgTGV0IHRoZSBrZXlTeXN0ZW0gYXR0cmlidXRlIGJlIGtleVN5
c3RlbS4KICAgICAvLyA2LiBSZXR1cm4gdGhlIG5ldyBvYmplY3QgdG8gdGhlIGNhbGxlci4KLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhS2V5cyhrZXlTeXN0ZW0sIHN0ZDo6bW92ZShjZG0p
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYUtleXMoa2V5U3lzdGVtLCBXVEY6Om1v
dmUoY2RtKSkpOwogfQogCiBNZWRpYUtleXM6Ok1lZGlhS2V5cyhjb25zdCBTdHJpbmcmIGtleVN5
c3RlbSwgc3RkOjp1bmlxdWVfcHRyPENETT4gY2RtKQogICAgIDogbV9tZWRpYUVsZW1lbnQoMCkK
ICAgICAsIG1fa2V5U3lzdGVtKGtleVN5c3RlbSkKLSAgICAsIG1fY2RtKHN0ZDo6bW92ZShjZG0p
KQorICAgICwgbV9jZG0oV1RGOjptb3ZlKGNkbSkpCiB7CiAgICAgbV9jZG0tPnNldENsaWVudCh0
aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZp
Z2F0b3JHYW1lcGFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0
b3JHYW1lcGFkLmNwcAppbmRleCAzNWIwMzIzLi43OWZmZjI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwCkBAIC02Miw3ICs2
Miw3IEBAIE5hdmlnYXRvckdhbWVwYWQqIE5hdmlnYXRvckdhbWVwYWQ6OmZyb20oTmF2aWdhdG9y
KiBuYXZpZ2F0b3IpCiAgICAgaWYgKCFzdXBwbGVtZW50KSB7CiAgICAgICAgIGF1dG8gbmV3U3Vw
cGxlbWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8TmF2aWdhdG9yR2FtZXBhZD4oKTsKICAgICAgICAg
c3VwcGxlbWVudCA9IG5ld1N1cHBsZW1lbnQuZ2V0KCk7Ci0gICAgICAgIHByb3ZpZGVUbyhuYXZp
Z2F0b3IsIHN1cHBsZW1lbnROYW1lKCksIHN0ZDo6bW92ZShuZXdTdXBwbGVtZW50KSk7CisgICAg
ICAgIHByb3ZpZGVUbyhuYXZpZ2F0b3IsIHN1cHBsZW1lbnROYW1lKCksIFdURjo6bW92ZShuZXdT
dXBwbGVtZW50KSk7CiAKICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG5hdmlnYXRvci0+ZnJh
bWUoKSkgewogICAgICAgICAgICAgaWYgKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciA9
IGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9nYW1lcGFkL2RlcHJlY2F0ZWQvTmF2aWdhdG9yR2FtZXBhZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvZGVwcmVjYXRlZC9OYXZpZ2F0b3JHYW1lcGFk
LmNwcAppbmRleCAyYzg5ODY2Li5mYThjNTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2dhbWVwYWQvZGVwcmVjYXRlZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvZGVwcmVjYXRlZC9OYXZpZ2F0b3JHYW1lcGFkLmNw
cApAQCAtNTMsNyArNTMsNyBAQCBOYXZpZ2F0b3JHYW1lcGFkKiBOYXZpZ2F0b3JHYW1lcGFkOjpm
cm9tKE5hdmlnYXRvciogbmF2aWdhdG9yKQogICAgIGlmICghc3VwcGxlbWVudCkgewogICAgICAg
ICBhdXRvIG5ld1N1cHBsZW1lbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPE5hdmlnYXRvckdhbWVwYWQ+
KCk7CiAgICAgICAgIHN1cHBsZW1lbnQgPSBuZXdTdXBwbGVtZW50LmdldCgpOwotICAgICAgICBw
cm92aWRlVG8obmF2aWdhdG9yLCBzdXBwbGVtZW50TmFtZSgpLCBzdGQ6Om1vdmUobmV3U3VwcGxl
bWVudCkpOworICAgICAgICBwcm92aWRlVG8obmF2aWdhdG9yLCBzdXBwbGVtZW50TmFtZSgpLCBX
VEY6Om1vdmUobmV3U3VwcGxlbWVudCkpOwogICAgIH0KICAgICByZXR1cm4gc3VwcGxlbWVudDsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdh
dG9yR2VvbG9jYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9O
YXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAKaW5kZXggNjVmNGZjNS4uN2Y5NWVjNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JH
ZW9sb2NhdGlvbi5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgTmF2aWdhdG9yR2VvbG9jYXRpb24qIE5h
dmlnYXRvckdlb2xvY2F0aW9uOjpmcm9tKE5hdmlnYXRvciogbmF2aWdhdG9yKQogICAgIGlmICgh
c3VwcGxlbWVudCkgewogICAgICAgICBhdXRvIG5ld1N1cHBsZW1lbnQgPSBzdGQ6Om1ha2VfdW5p
cXVlPE5hdmlnYXRvckdlb2xvY2F0aW9uPihuYXZpZ2F0b3ItPmZyYW1lKCkpOwogICAgICAgICBz
dXBwbGVtZW50ID0gbmV3U3VwcGxlbWVudC5nZXQoKTsKLSAgICAgICAgcHJvdmlkZVRvKG5hdmln
YXRvciwgc3VwcGxlbWVudE5hbWUoKSwgc3RkOjptb3ZlKG5ld1N1cHBsZW1lbnQpKTsKKyAgICAg
ICAgcHJvdmlkZVRvKG5hdmlnYXRvciwgc3VwcGxlbWVudE5hbWUoKSwgV1RGOjptb3ZlKG5ld1N1
cHBsZW1lbnQpKTsKICAgICB9CiAgICAgcmV0dXJuIHN1cHBsZW1lbnQ7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJh
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhl
ZERhdGFiYXNlLmNwcAppbmRleCBlNzA1YTJkLi4xYmYwODMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRh
YmFzZS5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgRE9NV2luZG93SW5kZXhlZERhdGFiYXNlKiBET01X
aW5kb3dJbmRleGVkRGF0YWJhc2U6OmZyb20oRE9NV2luZG93KiB3aW5kb3cpCiAgICAgaWYgKCFz
dXBwbGVtZW50KSB7CiAgICAgICAgIGF1dG8gbmV3U3VwcGxlbWVudCA9IHN0ZDo6bWFrZV91bmlx
dWU8RE9NV2luZG93SW5kZXhlZERhdGFiYXNlPih3aW5kb3cpOwogICAgICAgICBzdXBwbGVtZW50
ID0gbmV3U3VwcGxlbWVudC5nZXQoKTsKLSAgICAgICAgcHJvdmlkZVRvKHdpbmRvdywgc3VwcGxl
bWVudE5hbWUoKSwgc3RkOjptb3ZlKG5ld1N1cHBsZW1lbnQpKTsKKyAgICAgICAgcHJvdmlkZVRv
KHdpbmRvdywgc3VwcGxlbWVudE5hbWUoKSwgV1RGOjptb3ZlKG5ld1N1cHBsZW1lbnQpKTsKICAg
ICB9CiAgICAgcmV0dXJuIHN1cHBsZW1lbnQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmNwcAppbmRleCA3N2FmMjY3
Li5lZTUzODFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlQmFja2VuZC5jcHAKQEAgLTQxOSw3ICs0MTksNyBAQCB2b2lkIElEQkRh
dGFiYXNlQmFja2VuZDo6cHJvY2Vzc1BlbmRpbmdPcGVuQ2FsbHMoYm9vbCBzdWNjZXNzKQogICAg
ICAgICAgICAgaWYgKG1fbWV0YWRhdGEuaWQgPT0gSW52YWxpZElkKSB7CiAgICAgICAgICAgICAg
ICAgLy8gVGhpcyBkYXRhYmFzZSB3YXMgZGVsZXRlZCB0aGVuIHF1aWNrbHkgcmUtb3BlbmVkLgog
ICAgICAgICAgICAgICAgIC8vIG9wZW5JbnRlcm5hbEFzeW5jKCkgd2lsbCByZWNyZWF0ZSBpdCBp
biB0aGUgYmFja2luZyBzdG9yZSBhbmQgdGhlbiByZXN1bWUgcHJvY2Vzc2luZyBwZW5kaW5nIGNh
bGxiYWNrcy4KLSAgICAgICAgICAgICAgICBwZW5kaW5nT3BlbkNhbGxzLnByZXBlbmQoc3RkOjpt
b3ZlKHBlbmRpbmdPcGVuQ2FsbCkpOworICAgICAgICAgICAgICAgIHBlbmRpbmdPcGVuQ2FsbHMu
cHJlcGVuZChXVEY6Om1vdmUocGVuZGluZ09wZW5DYWxsKSk7CiAgICAgICAgICAgICAgICAgcGVu
ZGluZ09wZW5DYWxscy5zd2FwKG1fcGVuZGluZ09wZW5DYWxscyk7CiAKICAgICAgICAgICAgICAg
ICBvcGVuSW50ZXJuYWxBc3luYygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmQuaAppbmRleCAyMTRkMmY1Li5lYzQzNTBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJh
Y2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUJhY2tlbmQuaApAQCAtMTE5LDcgKzExOSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEN1cnJl
bnRWZXJzaW9uKHVpbnQ2NF90IHZlcnNpb24pIHsgbV9tZXRhZGF0YS52ZXJzaW9uID0gdmVyc2lv
bjsgfQogCiAgICAgYm9vbCBoYXNQZW5kaW5nU2Vjb25kSGFsZk9wZW4oKSB7IHJldHVybiBtX3Bl
bmRpbmdTZWNvbmRIYWxmT3Blbi5nZXQoKTsgfQotICAgIHZvaWQgc2V0UGVuZGluZ1NlY29uZEhh
bGZPcGVuKHN0ZDo6dW5pcXVlX3B0cjxJREJQZW5kaW5nT3BlbkNhbGw+IHBlbmRpbmdPcGVuQ2Fs
bCkgeyBtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbiA9IHN0ZDo6bW92ZShwZW5kaW5nT3BlbkNhbGwp
OyB9CisgICAgdm9pZCBzZXRQZW5kaW5nU2Vjb25kSGFsZk9wZW4oc3RkOjp1bmlxdWVfcHRyPElE
QlBlbmRpbmdPcGVuQ2FsbD4gcGVuZGluZ09wZW5DYWxsKSB7IG1fcGVuZGluZ1NlY29uZEhhbGZP
cGVuID0gV1RGOjptb3ZlKHBlbmRpbmdPcGVuQ2FsbCk7IH0KIAogICAgIElEQkZhY3RvcnlCYWNr
ZW5kSW50ZXJmYWNlJiBmYWN0b3J5QmFja2VuZCgpIHsgcmV0dXJuICptX2ZhY3Rvcnk7IH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvUGFnZUdyb3VwSW5k
ZXhlZERhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL1BhZ2VH
cm91cEluZGV4ZWREYXRhYmFzZS5jcHAKaW5kZXggMTg5Y2E5ZS4uY2ZhOTkwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvUGFnZUdyb3VwSW5kZXhlZERhdGFi
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9QYWdlR3JvdXBJ
bmRleGVkRGF0YWJhc2UuY3BwCkBAIC01NCw3ICs1NCw3IEBAIFBhZ2VHcm91cEluZGV4ZWREYXRh
YmFzZSogUGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlOjpmcm9tKFBhZ2VHcm91cCYgZ3JvdXApCiAg
ICAgaWYgKCFzdXBwbGVtZW50KSB7CiAgICAgICAgIGF1dG8gbmV3U3VwcGxlbWVudCA9IHN0ZDo6
bWFrZV91bmlxdWU8UGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlPihncm91cC5ncm91cFNldHRpbmdz
KCkuaW5kZXhlZERCRGF0YWJhc2VQYXRoKCkpOwogICAgICAgICBzdXBwbGVtZW50ID0gbmV3U3Vw
cGxlbWVudC5nZXQoKTsKLSAgICAgICAgcHJvdmlkZVRvKCZncm91cCwgc3VwcGxlbWVudE5hbWUo
KSwgc3RkOjptb3ZlKG5ld1N1cHBsZW1lbnQpKTsKKyAgICAgICAgcHJvdmlkZVRvKCZncm91cCwg
c3VwcGxlbWVudE5hbWUoKSwgV1RGOjptb3ZlKG5ld1N1cHBsZW1lbnQpKTsKICAgICB9CiAgICAg
cmV0dXJuIHN1cHBsZW1lbnQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFz
ZS5jcHAKaW5kZXggMDVlZThkNi4uOTFiMDQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL1dvcmtlckdsb2JhbFNjb3BlSW5k
ZXhlZERhdGFiYXNlLmNwcApAQCAtNjMsNyArNjMsNyBAQCBXb3JrZXJHbG9iYWxTY29wZUluZGV4
ZWREYXRhYmFzZSogV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2U6OmZyb20oU2NyaXB0
RQogCiAgICAgICAgIGF1dG8gbmV3U3VwcGxlbWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8V29ya2Vy
R2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2U+KGRhdGFiYXNlRGlyZWN0b3J5SWRlbnRpZmllcik7
CiAgICAgICAgIHN1cHBsZW1lbnQgPSBuZXdTdXBwbGVtZW50LmdldCgpOwotICAgICAgICBwcm92
aWRlVG8oY29udGV4dCwgc3VwcGxlbWVudE5hbWUoKSwgc3RkOjptb3ZlKG5ld1N1cHBsZW1lbnQp
KTsKKyAgICAgICAgcHJvdmlkZVRvKGNvbnRleHQsIHN1cHBsZW1lbnROYW1lKCksIFdURjo6bW92
ZShuZXdTdXBwbGVtZW50KSk7CiAgICAgfQogICAgIHJldHVybiBzdXBwbGVtZW50OwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJCYWNr
aW5nU3RvcmVMZXZlbERCLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xl
dmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5jcHAKaW5kZXggNWUwMDEwZS4uNDA0NWI3NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJC
YWNraW5nU3RvcmVMZXZlbERCLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9sZXZlbGRiL0lEQkJhY2tpbmdTdG9yZUxldmVsREIuY3BwCkBAIC0zMzAsOCArMzMwLDgg
QEAgcHVibGljOgogCiBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpJREJCYWNraW5nU3RvcmVMZXZl
bERCKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPExldmVsREJEYXRh
YmFzZT4gZGIsIHN0ZDo6dW5pcXVlX3B0cjxMZXZlbERCQ29tcGFyYXRvcj4gY29tcGFyYXRvcikK
ICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQotICAgICwgbV9kYihzdGQ6Om1vdmUoZGIp
KQotICAgICwgbV9jb21wYXJhdG9yKHN0ZDo6bW92ZShjb21wYXJhdG9yKSkKKyAgICAsIG1fZGIo
V1RGOjptb3ZlKGRiKSkKKyAgICAsIG1fY29tcGFyYXRvcihXVEY6Om1vdmUoY29tcGFyYXRvcikp
CiAgICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCiB7CiB9CkBAIC0zOTksNyArMzk5LDcgQEAgUGFz
c1JlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCPiBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpv
cGVuKGNvbnN0IFNlY3VyaXR5T3IKICAgICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8SURCQmFja2lu
Z1N0b3JlTGV2ZWxEQj4oKTsKICAgICB9CiAKLSAgICByZXR1cm4gY3JlYXRlKGZpbGVJZGVudGlm
aWVyLCBzdGQ6Om1vdmUoZGIpLCBzdGQ6Om1vdmUoY29tcGFyYXRvcikpOworICAgIHJldHVybiBj
cmVhdGUoZmlsZUlkZW50aWZpZXIsIFdURjo6bW92ZShkYiksIFdURjo6bW92ZShjb21wYXJhdG9y
KSk7CiB9CiAKIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQj4gSURCQmFja2luZ1N0
b3JlTGV2ZWxEQjo6b3BlbkluTWVtb3J5KGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikKQEAgLTQx
OSwxMyArNDE5LDEzIEBAIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQj4gSURCQmFj
a2luZ1N0b3JlTGV2ZWxEQjo6b3BlbkluTWVtb3J5KGNvbnN0IFN0CiAgICAgICAgIHJldHVybiBQ
YXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+KCk7CiAgICAgfQogCi0gICAgcmV0dXJu
IGNyZWF0ZShpZGVudGlmaWVyLCBzdGQ6Om1vdmUoZGIpLCBzdGQ6Om1vdmUoY29tcGFyYXRvcikp
OworICAgIHJldHVybiBjcmVhdGUoaWRlbnRpZmllciwgV1RGOjptb3ZlKGRiKSwgV1RGOjptb3Zl
KGNvbXBhcmF0b3IpKTsKIH0KIAogUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCPiBJ
REJCYWNraW5nU3RvcmVMZXZlbERCOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBz
dGQ6OnVuaXF1ZV9wdHI8TGV2ZWxEQkRhdGFiYXNlPiBkYiwgc3RkOjp1bmlxdWVfcHRyPExldmVs
REJDb21wYXJhdG9yPiBjb21wYXJhdG9yKQogewogICAgIC8vIEZJWE1FOiBIYW5kbGUgY29tcGFy
YXRvciBuYW1lIGNoYW5nZXMuCi0gICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+IGJh
Y2tpbmdTdG9yZShhZG9wdFJlZihuZXcgSURCQmFja2luZ1N0b3JlTGV2ZWxEQihpZGVudGlmaWVy
LCBzdGQ6Om1vdmUoZGIpLCBzdGQ6Om1vdmUoY29tcGFyYXRvcikpKSk7CisgICAgUmVmUHRyPElE
QkJhY2tpbmdTdG9yZUxldmVsREI+IGJhY2tpbmdTdG9yZShhZG9wdFJlZihuZXcgSURCQmFja2lu
Z1N0b3JlTGV2ZWxEQihpZGVudGlmaWVyLCBXVEY6Om1vdmUoZGIpLCBXVEY6Om1vdmUoY29tcGFy
YXRvcikpKSk7CiAKICAgICBpZiAoIXNldFVwTWV0YWRhdGEoYmFja2luZ1N0b3JlLT5tX2RiLmdl
dCgpLCBpZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0
b3JlTGV2ZWxEQj4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
b3VyY2UvTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9NZWRpYVNvdXJjZS5jcHAKaW5kZXggNTg4NWRmMC4uZWE4NTZhYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKQEAgLTExMiw3
ICsxMTIsNyBAQCB2b2lkIE1lZGlhU291cmNlOjpzZXRQcml2YXRlQW5kT3BlbihQYXNzUmVmPE1l
ZGlhU291cmNlUHJpdmF0ZT4gbWVkaWFTb3VyY2VQcml2YQogewogICAgIEFTU0VSVCghbV9wcml2
YXRlKTsKICAgICBBU1NFUlQobV9tZWRpYUVsZW1lbnQpOwotICAgIG1fcHJpdmF0ZSA9IHN0ZDo6
bW92ZShtZWRpYVNvdXJjZVByaXZhdGUpOworICAgIG1fcHJpdmF0ZSA9IFdURjo6bW92ZShtZWRp
YVNvdXJjZVByaXZhdGUpOwogICAgIHNldFJlYWR5U3RhdGUob3BlbktleXdvcmQoKSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVm
ZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVy
LmNwcAppbmRleCBlMmU0YWMyLi5lMjkxNGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCkBAIC05MCwxNCArOTAsMTQgQEAg
c3RydWN0IFNvdXJjZUJ1ZmZlcjo6VHJhY2tCdWZmZXIgewogCiBQYXNzUmVmPFNvdXJjZUJ1ZmZl
cj4gU291cmNlQnVmZmVyOjpjcmVhdGUoUGFzc1JlZjxTb3VyY2VCdWZmZXJQcml2YXRlPiBzb3Vy
Y2VCdWZmZXJQcml2YXRlLCBNZWRpYVNvdXJjZSogc291cmNlKQogewotICAgIFJlZlB0cjxTb3Vy
Y2VCdWZmZXI+IHNvdXJjZUJ1ZmZlcihhZG9wdFJlZihuZXcgU291cmNlQnVmZmVyKHN0ZDo6bW92
ZShzb3VyY2VCdWZmZXJQcml2YXRlKSwgc291cmNlKSkpOworICAgIFJlZlB0cjxTb3VyY2VCdWZm
ZXI+IHNvdXJjZUJ1ZmZlcihhZG9wdFJlZihuZXcgU291cmNlQnVmZmVyKFdURjo6bW92ZShzb3Vy
Y2VCdWZmZXJQcml2YXRlKSwgc291cmNlKSkpOwogICAgIHNvdXJjZUJ1ZmZlci0+c3VzcGVuZElm
TmVlZGVkKCk7CiAgICAgcmV0dXJuIHNvdXJjZUJ1ZmZlci5yZWxlYXNlTm9uTnVsbCgpOwogfQog
CiBTb3VyY2VCdWZmZXI6OlNvdXJjZUJ1ZmZlcihQYXNzUmVmPFNvdXJjZUJ1ZmZlclByaXZhdGU+
IHNvdXJjZUJ1ZmZlclByaXZhdGUsIE1lZGlhU291cmNlKiBzb3VyY2UpCiAgICAgOiBBY3RpdmVE
T01PYmplY3Qoc291cmNlLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgLCBtX3ByaXZh
dGUoc3RkOjptb3ZlKHNvdXJjZUJ1ZmZlclByaXZhdGUpKQorICAgICwgbV9wcml2YXRlKFdURjo6
bW92ZShzb3VyY2VCdWZmZXJQcml2YXRlKSkKICAgICAsIG1fc291cmNlKHNvdXJjZSkKICAgICAs
IG1fYXN5bmNFdmVudFF1ZXVlKCp0aGlzKQogICAgICwgbV91cGRhdGluZyhmYWxzZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuY3Bw
CmluZGV4IGY2YTZjMmUuLmU1YWRjZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENEVE1GU2VuZGVyLmNwcApAQCAtNTMsNyArNTMsNyBAQCBQYXNz
UmVmUHRyPFJUQ0RUTUZTZW5kZXI+IFJUQ0RUTUZTZW5kZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LAogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAg
ICBSZWZQdHI8UlRDRFRNRlNlbmRlcj4gZHRtZlNlbmRlciA9IGFkb3B0UmVmKG5ldyBSVENEVE1G
U2VuZGVyKGNvbnRleHQsIHRyYWNrLCBzdGQ6Om1vdmUoaGFuZGxlcikpKTsKKyAgICBSZWZQdHI8
UlRDRFRNRlNlbmRlcj4gZHRtZlNlbmRlciA9IGFkb3B0UmVmKG5ldyBSVENEVE1GU2VuZGVyKGNv
bnRleHQsIHRyYWNrLCBXVEY6Om1vdmUoaGFuZGxlcikpKTsKICAgICBkdG1mU2VuZGVyLT5zdXNw
ZW5kSWZOZWVkZWQoKTsKICAgICByZXR1cm4gZHRtZlNlbmRlci5yZWxlYXNlKCk7CiB9CkBAIC02
Myw3ICs2Myw3IEBAIFJUQ0RUTUZTZW5kZXI6OlJUQ0RUTUZTZW5kZXIoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxNZWRpYVN0CiAgICAgLCBtX3RyYWNrKHRyYWNr
KQogICAgICwgbV9kdXJhdGlvbihkZWZhdWx0VG9uZUR1cmF0aW9uTXMpCiAgICAgLCBtX2ludGVy
VG9uZUdhcChkZWZhdWx0SW50ZXJUb25lR2FwTXMpCi0gICAgLCBtX2hhbmRsZXIoc3RkOjptb3Zl
KGhhbmRsZXIpKQorICAgICwgbV9oYW5kbGVyKFdURjo6bW92ZShoYW5kbGVyKSkKICAgICAsIG1f
c3RvcHBlZChmYWxzZSkKICAgICAsIG1fc2NoZWR1bGVkRXZlbnRUaW1lcih0aGlzLCAmUlRDRFRN
RlNlbmRlcjo6c2NoZWR1bGVkRXZlbnRUaW1lckZpcmVkKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcAppbmRleCBiNDMx
NGRjLi5kZTc4NDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0RhdGFDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcApAQCAtODAsMTggKzgwLDE4IEBAIFBhc3NSZWZQdHI8
UlRDRGF0YUNoYW5uZWw+IFJUQ0RhdGFDaGFubmVsOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIH0KLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJUQ0RhdGFDaGFu
bmVsKGNvbnRleHQsIHN0ZDo6bW92ZShoYW5kbGVyKSkpOworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgUlRDRGF0YUNoYW5uZWwoY29udGV4dCwgV1RGOjptb3ZlKGhhbmRsZXIpKSk7CiB9CiAKIFBh
c3NSZWZQdHI8UlRDRGF0YUNoYW5uZWw+IFJUQ0RhdGFDaGFubmVsOjpjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFu
ZGxlcj4gaGFuZGxlcikKIHsKICAgICBBU1NFUlQoaGFuZGxlcik7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBSVENEYXRhQ2hhbm5lbChjb250ZXh0LCBzdGQ6Om1vdmUoaGFuZGxlcikpKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFJUQ0RhdGFDaGFubmVsKGNvbnRleHQsIFdURjo6bW92ZSho
YW5kbGVyKSkpOwogfQogCiBSVENEYXRhQ2hhbm5lbDo6UlRDRGF0YUNoYW5uZWwoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFu
ZGxlcj4gaGFuZGxlcikKICAgICA6IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dChjb250ZXh0KQot
ICAgICwgbV9oYW5kbGVyKHN0ZDo6bW92ZShoYW5kbGVyKSkKKyAgICAsIG1faGFuZGxlcihXVEY6
Om1vdmUoaGFuZGxlcikpCiAgICAgLCBtX3N0b3BwZWQoZmFsc2UpCiAgICAgLCBtX3JlYWR5U3Rh
dGUoUmVhZHlTdGF0ZUNvbm5lY3RpbmcpCiAgICAgLCBtX2JpbmFyeVR5cGUoQmluYXJ5VHlwZUFy
cmF5QnVmZmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAppbmRleCA2MDY0ZGQ0Li4yOWRjMTkyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLmNwcApAQCAtNjcwLDcgKzY3MCw3IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OmRp
ZEFkZFJlbW90ZURhdGFDaGFubmVsKHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhCiAg
ICAgaWYgKG1fc2lnbmFsaW5nU3RhdGUgPT0gU2lnbmFsaW5nU3RhdGVDbG9zZWQpCiAgICAgICAg
IHJldHVybjsKIAotICAgIFJlZlB0cjxSVENEYXRhQ2hhbm5lbD4gY2hhbm5lbCA9IFJUQ0RhdGFD
aGFubmVsOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzdGQ6Om1vdmUoaGFuZGxl
cikpOworICAgIFJlZlB0cjxSVENEYXRhQ2hhbm5lbD4gY2hhbm5lbCA9IFJUQ0RhdGFDaGFubmVs
OjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBXVEY6Om1vdmUoaGFuZGxlcikpOwog
ICAgIG1fZGF0YUNoYW5uZWxzLmFwcGVuZChjaGFubmVsKTsKIAogICAgIHNjaGVkdWxlRGlzcGF0
Y2hFdmVudChSVENEYXRhQ2hhbm5lbEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmRhdGFjaGFu
bmVsRXZlbnQsIGZhbHNlLCBmYWxzZSwgY2hhbm5lbC5yZWxlYXNlKCkpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNv
bnRlbnRVdGlscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1
dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMuY3BwCmluZGV4IGM0MmUwYWMuLjBjZjM0ZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05h
dmlnYXRvckNvbnRlbnRVdGlscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uYXZp
Z2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxzLmNwcApAQCAtMjAzLDcgKzIw
Myw3IEBAIGNvbnN0IGNoYXIqIE5hdmlnYXRvckNvbnRlbnRVdGlsczo6c3VwcGxlbWVudE5hbWUo
KQogCiB2b2lkIHByb3ZpZGVOYXZpZ2F0b3JDb250ZW50VXRpbHNUbyhQYWdlKiBwYWdlLCBzdGQ6
OnVuaXF1ZV9wdHI8TmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50PiBjbGllbnQpCiB7Ci0gICAg
TmF2aWdhdG9yQ29udGVudFV0aWxzOjpwcm92aWRlVG8ocGFnZSwgTmF2aWdhdG9yQ29udGVudFV0
aWxzOjpzdXBwbGVtZW50TmFtZSgpLCBzdGQ6Om1ha2VfdW5pcXVlPE5hdmlnYXRvckNvbnRlbnRV
dGlscz4oc3RkOjptb3ZlKGNsaWVudCkpKTsKKyAgICBOYXZpZ2F0b3JDb250ZW50VXRpbHM6OnBy
b3ZpZGVUbyhwYWdlLCBOYXZpZ2F0b3JDb250ZW50VXRpbHM6OnN1cHBsZW1lbnROYW1lKCksIHN0
ZDo6bWFrZV91bmlxdWU8TmF2aWdhdG9yQ29udGVudFV0aWxzPihXVEY6Om1vdmUoY2xpZW50KSkp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNv
bnRlbnRVdGlscy5oCmluZGV4IGU4ZGQ4NjQuLmM0NTUzMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGls
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05h
dmlnYXRvckNvbnRlbnRVdGlscy5oCkBAIC00NCw3ICs0NCw3IEBAIHR5cGVkZWYgaW50IEV4Y2Vw
dGlvbkNvZGU7CiBjbGFzcyBOYXZpZ2F0b3JDb250ZW50VXRpbHMgZmluYWwgOiBwdWJsaWMgU3Vw
cGxlbWVudDxQYWdlPiB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgTmF2aWdhdG9yQ29udGVudFV0
aWxzKHN0ZDo6dW5pcXVlX3B0cjxOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQ+IGNsaWVudCkK
LSAgICAgICAgOiBtX2NsaWVudChzdGQ6Om1vdmUoY2xpZW50KSkKKyAgICAgICAgOiBtX2NsaWVu
dChXVEY6Om1vdmUoY2xpZW50KSkKICAgICB7IH0KIAogICAgIHZpcnR1YWwgfk5hdmlnYXRvckNv
bnRlbnRVdGlscygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmlj
YXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwCmluZGV4IDBhODlkMDYu
LmJkMmExYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9u
cy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAKQEAgLTU4LDcgKzU4LDcg
QEAgRE9NV2luZG93Tm90aWZpY2F0aW9ucyogRE9NV2luZG93Tm90aWZpY2F0aW9uczo6ZnJvbShE
T01XaW5kb3cqIHdpbmRvdykKICAgICBpZiAoIXN1cHBsZW1lbnQpIHsKICAgICAgICAgYXV0byBu
ZXdTdXBwbGVtZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxET01XaW5kb3dOb3RpZmljYXRpb25zPih3
aW5kb3cpOwogICAgICAgICBzdXBwbGVtZW50ID0gbmV3U3VwcGxlbWVudC5nZXQoKTsKLSAgICAg
ICAgcHJvdmlkZVRvKHdpbmRvdywgc3VwcGxlbWVudE5hbWUoKSwgc3RkOjptb3ZlKG5ld1N1cHBs
ZW1lbnQpKTsKKyAgICAgICAgcHJvdmlkZVRvKHdpbmRvdywgc3VwcGxlbWVudE5hbWUoKSwgV1RG
Ojptb3ZlKG5ld1N1cHBsZW1lbnQpKTsKICAgICB9CiAgICAgcmV0dXJuIHN1cHBsZW1lbnQ7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvV29ya2Vy
R2xvYmFsU2NvcGVOb3RpZmljYXRpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90
aWZpY2F0aW9ucy9Xb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMuY3BwCmluZGV4IGE4Y2Qw
ZTQuLjRlMWU2NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0
aW9ucy9Xb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Xb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMu
Y3BwCkBAIC01Niw3ICs1Niw3IEBAIFdvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9ucyogV29y
a2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zOjpmcm9tKFdvcmtlckdsb2JhCiAgICAgaWYgKCFz
dXBwbGVtZW50KSB7CiAgICAgICAgIGF1dG8gbmV3U3VwcGxlbWVudCA9IHN0ZDo6bWFrZV91bmlx
dWU8V29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zPihjb250ZXh0KTsKICAgICAgICAgc3Vw
cGxlbWVudCA9IG5ld1N1cHBsZW1lbnQuZ2V0KCk7Ci0gICAgICAgIHByb3ZpZGVUbyhjb250ZXh0
LCBzdXBwbGVtZW50TmFtZSgpLCBzdGQ6Om1vdmUobmV3U3VwcGxlbWVudCkpOworICAgICAgICBw
cm92aWRlVG8oY29udGV4dCwgc3VwcGxlbWVudE5hbWUoKSwgV1RGOjptb3ZlKG5ld1N1cHBsZW1l
bnQpKTsKICAgICB9CiAgICAgcmV0dXJuIHN1cHBsZW1lbnQ7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1l
bnQubW0KaW5kZXggNTY5ODZjZS4uZWIzYzI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQpA
QCAtMTM4LDcgKzEzOCw3IEBAIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBRdWlja1RpbWVQbHVn
aW5SZXBsYWNlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKEhUTUxQCiAgICAgQVNTRVJUX1VO
VVNFRChwbHVnaW4sIG1fcGFyZW50RWxlbWVudCA9PSAmcGx1Z2luKTsKIAogICAgIGlmIChtX21l
ZGlhRWxlbWVudCkKLSAgICAgICAgcmV0dXJuIG1fbWVkaWFFbGVtZW50LT5jcmVhdGVFbGVtZW50
UmVuZGVyZXIoc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBtX21lZGlhRWxlbWVu
dC0+Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFdURjo6bW92ZShzdHlsZSkpOwogCiAgICAgcmV0dXJu
IG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMv
WW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1
Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCmluZGV4IGRhNzVjNjYuLjhhMGUyMDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2lu
UmVwbGFjZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VU
dWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCkBAIC03Myw3ICs3Myw3IEBAIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihIVE1MUGx1CiAgICAgaWYgKCFtX2VtYmVkU2hhZG93RWxlbWVudCkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgCi0gICAgcmV0dXJuIG1fZW1iZWRTaGFkb3dFbGVtZW50LT5jcmVhdGVF
bGVtZW50UmVuZGVyZXIoc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIG1fZW1iZWRTaGFk
b3dFbGVtZW50LT5jcmVhdGVFbGVtZW50UmVuZGVyZXIoV1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAK
IGJvb2wgWW91VHViZVBsdWdpblJlcGxhY2VtZW50OjppbnN0YWxsUmVwbGFjZW1lbnQoU2hhZG93
Um9vdCogcm9vdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvRE9N
V2luZG93UXVvdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90YS9ET01XaW5kb3dR
dW90YS5jcHAKaW5kZXggMjg2YzMxMi4uMDA1ZjUxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9xdW90YS9ET01XaW5kb3dRdW90YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9xdW90YS9ET01XaW5kb3dRdW90YS5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgRE9NV2lu
ZG93UXVvdGEqIERPTVdpbmRvd1F1b3RhOjpmcm9tKERPTVdpbmRvdyogd2luZG93KQogICAgIGlm
ICghc3VwcGxlbWVudCkgewogICAgICAgICBhdXRvIG5ld1N1cHBsZW1lbnQgPSBzdGQ6Om1ha2Vf
dW5pcXVlPERPTVdpbmRvd1F1b3RhPih3aW5kb3cpOwogICAgICAgICBzdXBwbGVtZW50ID0gbmV3
U3VwcGxlbWVudC5nZXQoKTsKLSAgICAgICAgcHJvdmlkZVRvKHdpbmRvdywgc3VwcGxlbWVudE5h
bWUoKSwgc3RkOjptb3ZlKG5ld1N1cHBsZW1lbnQpKTsKKyAgICAgICAgcHJvdmlkZVRvKHdpbmRv
dywgc3VwcGxlbWVudE5hbWUoKSwgV1RGOjptb3ZlKG5ld1N1cHBsZW1lbnQpKTsKICAgICB9CiAg
ICAgcmV0dXJuIHN1cHBsZW1lbnQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3F1b3RhL05hdmlnYXRvclN0b3JhZ2VRdW90YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3F1b3RhL05hdmlnYXRvclN0b3JhZ2VRdW90YS5jcHAKaW5kZXggZjdiNTNiZC4uMjNiZTdm
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90YS9OYXZpZ2F0b3JTdG9y
YWdlUXVvdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvTmF2aWdhdG9y
U3RvcmFnZVF1b3RhLmNwcApAQCAtNTksNyArNTksNyBAQCBOYXZpZ2F0b3JTdG9yYWdlUXVvdGEq
IE5hdmlnYXRvclN0b3JhZ2VRdW90YTo6ZnJvbShOYXZpZ2F0b3IqIG5hdmlnYXRvcikKICAgICBp
ZiAoIXN1cHBsZW1lbnQpIHsKICAgICAgICAgYXV0byBuZXdTdXBwbGVtZW50ID0gc3RkOjptYWtl
X3VuaXF1ZTxOYXZpZ2F0b3JTdG9yYWdlUXVvdGE+KHdpbmRvdyk7CiAgICAgICAgIHN1cHBsZW1l
bnQgPSBuZXdTdXBwbGVtZW50LmdldCgpOwotICAgICAgICBwcm92aWRlVG8obmF2aWdhdG9yLCBz
dXBwbGVtZW50TmFtZSgpLCBzdGQ6Om1vdmUobmV3U3VwcGxlbWVudCkpOworICAgICAgICBwcm92
aWRlVG8obmF2aWdhdG9yLCBzdXBwbGVtZW50TmFtZSgpLCBXVEY6Om1vdmUobmV3U3VwcGxlbWVu
dCkpOwogICAgIH0KICAgICByZXR1cm4gc3VwcGxlbWVudDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvV29ya2VyTmF2aWdhdG9yU3RvcmFnZVF1b3RhLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvV29ya2VyTmF2aWdhdG9yU3RvcmFnZVF1b3Rh
LmNwcAppbmRleCA2ODQ3NGFlLi45OWIzY2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3F1b3RhL1dvcmtlck5hdmlnYXRvclN0b3JhZ2VRdW90YS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9xdW90YS9Xb3JrZXJOYXZpZ2F0b3JTdG9yYWdlUXVvdGEuY3BwCkBA
IC01Nyw3ICs1Nyw3IEBAIFdvcmtlck5hdmlnYXRvclN0b3JhZ2VRdW90YSogV29ya2VyTmF2aWdh
dG9yU3RvcmFnZVF1b3RhOjpmcm9tKFdvcmtlck5hdmlnYXRvcioKICAgICBpZiAoIXN1cHBsZW1l
bnQpIHsKICAgICAgICAgYXV0byBuZXdTdXBwbGVtZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxXb3Jr
ZXJOYXZpZ2F0b3JTdG9yYWdlUXVvdGE+KHdpbmRvdyk7CiAgICAgICAgIHN1cHBsZW1lbnQgPSBu
ZXdTdXBwbGVtZW50LmdldCgpOwotICAgICAgICBwcm92aWRlVG8obmF2aWdhdG9yLCBzdXBwbGVt
ZW50TmFtZSgpLCBzdGQ6Om1vdmUobmV3U3VwcGxlbWVudCkpOworICAgICAgICBwcm92aWRlVG8o
bmF2aWdhdG9yLCBzdXBwbGVtZW50TmFtZSgpLCBXVEY6Om1vdmUobmV3U3VwcGxlbWVudCkpOwog
ICAgIH0KICAgICByZXR1cm4gc3VwcGxlbWVudDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwCmluZGV4
IGFkMjQ3YTUuLmMzNzdiOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcApAQCAtNTksNyArNTksNyBA
QCBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMqIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpczo6ZnJv
bShET01XaW5kb3cqIHdpbmRvdykKICAgICBpZiAoIXN1cHBsZW1lbnQpIHsKICAgICAgICAgYXV0
byBuZXdTdXBwbGVtZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxET01XaW5kb3dTcGVlY2hTeW50aGVz
aXM+KHdpbmRvdyk7CiAgICAgICAgIHN1cHBsZW1lbnQgPSBuZXdTdXBwbGVtZW50LmdldCgpOwot
ICAgICAgICBwcm92aWRlVG8od2luZG93LCBzdXBwbGVtZW50TmFtZSgpLCBzdGQ6Om1vdmUobmV3
U3VwcGxlbWVudCkpOworICAgICAgICBwcm92aWRlVG8od2luZG93LCBzdXBwbGVtZW50TmFtZSgp
LCBXVEY6Om1vdmUobmV3U3VwcGxlbWVudCkpOwogICAgIH0KICAgICByZXR1cm4gc3VwcGxlbWVu
dDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5
bnRoZXNpcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVz
aXMuY3BwCmluZGV4IGE3MGJlMWUuLmI2YmIzY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcApAQCAtNTMsNyArNTMsNyBAQCBTcGVl
Y2hTeW50aGVzaXM6OlNwZWVjaFN5bnRoZXNpcygpCiAgICAgCiB2b2lkIFNwZWVjaFN5bnRoZXNp
czo6c2V0UGxhdGZvcm1TeW50aGVzaXplcihzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplcj4gc3ludGhlc2l6ZXIpCiB7Ci0gICAgbV9wbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVyID0gc3RkOjptb3ZlKHN5bnRoZXNpemVyKTsKKyAgICBtX3BsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXIgPSBXVEY6Om1vdmUoc3ludGhlc2l6ZXIpOwogICAgIG1fdm9pY2VMaXN0LmNsZWFyKCk7
CiAgICAgbV9jdXJyZW50U3BlZWNoVXR0ZXJhbmNlID0gMDsKICAgICBtX3V0dGVyYW5jZVF1ZXVl
LmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Fz
eW5jQXVkaW9EZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5
bmNBdWRpb0RlY29kZXIuY3BwCmluZGV4IDM2OThiZjUuLjQ0OWUzMzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwCkBA
IC01OSw3ICs1OSw3IEBAIHZvaWQgQXN5bmNBdWRpb0RlY29kZXI6OmRlY29kZUFzeW5jKEFycmF5
QnVmZmVyKiBhdWRpb0RhdGEsIGZsb2F0IHNhbXBsZVJhdGUsIFBhCiAgICAgICAgIHJldHVybjsK
IAogICAgIGF1dG8gZGVjb2RpbmdUYXNrID0gRGVjb2RpbmdUYXNrOjpjcmVhdGUoYXVkaW9EYXRh
LCBzYW1wbGVSYXRlLCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOwotICAgIG1fcXVl
dWUuYXBwZW5kKHN0ZDo6bW92ZShkZWNvZGluZ1Rhc2spKTsgLy8gbm90ZSB0aGF0IG93bmVyc2hp
cCBvZiB0aGUgdGFzayBpcyBlZmZlY3RpdmVseSB0YWtlbiBieSB0aGUgcXVldWUuCisgICAgbV9x
dWV1ZS5hcHBlbmQoV1RGOjptb3ZlKGRlY29kaW5nVGFzaykpOyAvLyBub3RlIHRoYXQgb3duZXJz
aGlwIG9mIHRoZSB0YXNrIGlzIGVmZmVjdGl2ZWx5IHRha2VuIGJ5IHRoZSBxdWV1ZS4KIH0KIAog
Ly8gQXN5bmNocm9ub3VzbHkgZGVjb2RlIGluIHRoaXMgdGhyZWFkLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3BwCmluZGV4IDUxNGVjN2EuLjRjNDA3MjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAKQEAg
LTEwMCwxMiArMTAwLDEyIEBAIHZvaWQgQXVkaW9Ob2RlOjpsYXp5SW5pdGlhbGl6ZSgpCiAKIHZv
aWQgQXVkaW9Ob2RlOjphZGRJbnB1dChzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9Ob2RlSW5wdXQ+IGlu
cHV0KQogewotICAgIG1faW5wdXRzLmFwcGVuZChzdGQ6Om1vdmUoaW5wdXQpKTsKKyAgICBtX2lu
cHV0cy5hcHBlbmQoV1RGOjptb3ZlKGlucHV0KSk7CiB9CiAKIHZvaWQgQXVkaW9Ob2RlOjphZGRP
dXRwdXQoc3RkOjp1bmlxdWVfcHRyPEF1ZGlvTm9kZU91dHB1dD4gb3V0cHV0KQogewotICAgIG1f
b3V0cHV0cy5hcHBlbmQoc3RkOjptb3ZlKG91dHB1dCkpOworICAgIG1fb3V0cHV0cy5hcHBlbmQo
V1RGOjptb3ZlKG91dHB1dCkpOwogfQogCiBBdWRpb05vZGVJbnB1dCogQXVkaW9Ob2RlOjppbnB1
dCh1bnNpZ25lZCBpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9Db252b2x2ZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29u
dm9sdmVyTm9kZS5jcHAKaW5kZXggYzVhYzVlYS4uNWExMDBlYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwCkBAIC0xNDYsNyArMTQ2
LDcgQEAgdm9pZCBDb252b2x2ZXJOb2RlOjpzZXRCdWZmZXIoQXVkaW9CdWZmZXIqIGJ1ZmZlcikK
ICAgICB7CiAgICAgICAgIC8vIFN5bmNocm9uaXplIHdpdGggcHJvY2VzcygpLgogICAgICAgICBz
dGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtX3Byb2Nlc3NNdXRleCk7Ci0gICAgICAg
IG1fcmV2ZXJiID0gc3RkOjptb3ZlKHJldmVyYik7CisgICAgICAgIG1fcmV2ZXJiID0gV1RGOjpt
b3ZlKHJldmVyYik7CiAgICAgICAgIG1fYnVmZmVyID0gYnVmZmVyOwogICAgIH0KIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKaW5kZXggZmU2
ZjNjNy4uMGFhZGFiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZS5jcHAKQEAgLTEzMCw3ICsxMzAsNyBAQCB2b2lkIERhdGFiYXNlOjptYXJrQXNE
ZWxldGVkQW5kQ2xvc2UoKQogICAgIH0KIAogICAgIGF1dG8gdGFzayA9IERhdGFiYXNlQ2xvc2VU
YXNrOjpjcmVhdGUodGhpcywgJnN5bmNocm9uaXplcik7Ci0gICAgZGF0YWJhc2VDb250ZXh0KCkt
PmRhdGFiYXNlVGhyZWFkKCktPnNjaGVkdWxlSW1tZWRpYXRlVGFzayhzdGQ6Om1vdmUodGFzaykp
OworICAgIGRhdGFiYXNlQ29udGV4dCgpLT5kYXRhYmFzZVRocmVhZCgpLT5zY2hlZHVsZUltbWVk
aWF0ZVRhc2soV1RGOjptb3ZlKHRhc2spKTsKICAgICBzeW5jaHJvbml6ZXIud2FpdEZvclRhc2tD
b21wbGV0aW9uKCk7CiB9CiAKQEAgLTIyMiw3ICsyMjIsNyBAQCBWZWN0b3I8U3RyaW5nPiBEYXRh
YmFzZTo6dGFibGVOYW1lcygpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKICAgICBhdXRvIHRh
c2sgPSBEYXRhYmFzZVRhYmxlTmFtZXNUYXNrOjpjcmVhdGUodGhpcywgJnN5bmNocm9uaXplciwg
cmVzdWx0KTsKLSAgICBkYXRhYmFzZUNvbnRleHQoKS0+ZGF0YWJhc2VUaHJlYWQoKS0+c2NoZWR1
bGVJbW1lZGlhdGVUYXNrKHN0ZDo6bW92ZSh0YXNrKSk7CisgICAgZGF0YWJhc2VDb250ZXh0KCkt
PmRhdGFiYXNlVGhyZWFkKCktPnNjaGVkdWxlSW1tZWRpYXRlVGFzayhXVEY6Om1vdmUodGFzaykp
OwogICAgIHN5bmNocm9uaXplci53YWl0Rm9yVGFza0NvbXBsZXRpb24oKTsKIAogICAgIHJldHVy
biByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlQmFja2VuZC5jcHAKaW5kZXggNDk1ZTg2YS4uYzc1YmJkOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUJhY2tlbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VCYWNrZW5kLmNw
cApAQCAtNTcsNyArNTcsNyBAQCBib29sIERhdGFiYXNlQmFja2VuZDo6b3BlbkFuZFZlcmlmeVZl
cnNpb24oYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRGF0YWJhcwogCiAgICAgYm9vbCBz
dWNjZXNzID0gZmFsc2U7CiAgICAgYXV0byB0YXNrID0gRGF0YWJhc2VPcGVuVGFzazo6Y3JlYXRl
KHRoaXMsIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCAmc3luY2hyb25pemVyLCBlcnJvciwgZXJy
b3JNZXNzYWdlLCBzdWNjZXNzKTsKLSAgICBkYXRhYmFzZUNvbnRleHQoKS0+ZGF0YWJhc2VUaHJl
YWQoKS0+c2NoZWR1bGVJbW1lZGlhdGVUYXNrKHN0ZDo6bW92ZSh0YXNrKSk7CisgICAgZGF0YWJh
c2VDb250ZXh0KCktPmRhdGFiYXNlVGhyZWFkKCktPnNjaGVkdWxlSW1tZWRpYXRlVGFzayhXVEY6
Om1vdmUodGFzaykpOwogICAgIHN5bmNocm9uaXplci53YWl0Rm9yVGFza0NvbXBsZXRpb24oKTsK
IAogICAgIHJldHVybiBzdWNjZXNzOwpAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgRGF0YWJhc2VC
YWNrZW5kOjpzY2hlZHVsZVRyYW5zYWN0aW9uKCkKICAgICAgICAgYXV0byB0YXNrID0gRGF0YWJh
c2VUcmFuc2FjdGlvblRhc2s6OmNyZWF0ZSh0cmFuc2FjdGlvbik7CiAgICAgICAgIExPRyhTdG9y
YWdlQVBJLCAiU2NoZWR1bGluZyBEYXRhYmFzZVRyYW5zYWN0aW9uVGFzayAlcCBmb3IgdHJhbnNh
Y3Rpb24gJXBcbiIsIHRhc2suZ2V0KCksIHRhc2stPnRyYW5zYWN0aW9uKCkpOwogICAgICAgICBt
X3RyYW5zYWN0aW9uSW5Qcm9ncmVzcyA9IHRydWU7Ci0gICAgICAgIGRhdGFiYXNlQ29udGV4dCgp
LT5kYXRhYmFzZVRocmVhZCgpLT5zY2hlZHVsZVRhc2soc3RkOjptb3ZlKHRhc2spKTsKKyAgICAg
ICAgZGF0YWJhc2VDb250ZXh0KCktPmRhdGFiYXNlVGhyZWFkKCktPnNjaGVkdWxlVGFzayhXVEY6
Om1vdmUodGFzaykpOwogICAgIH0gZWxzZQogICAgICAgICBtX3RyYW5zYWN0aW9uSW5Qcm9ncmVz
cyA9IGZhbHNlOwogfQpAQCAtMTU5LDcgKzE1OSw3IEBAIHZvaWQgRGF0YWJhc2VCYWNrZW5kOjpz
Y2hlZHVsZVRyYW5zYWN0aW9uU3RlcChTUUxUcmFuc2FjdGlvbkJhY2tlbmQqIHRyYW5zYWN0aW9u
CiAKICAgICBhdXRvIHRhc2sgPSBEYXRhYmFzZVRyYW5zYWN0aW9uVGFzazo6Y3JlYXRlKHRyYW5z
YWN0aW9uKTsKICAgICBMT0coU3RvcmFnZUFQSSwgIlNjaGVkdWxpbmcgRGF0YWJhc2VUcmFuc2Fj
dGlvblRhc2sgJXAgZm9yIHRoZSB0cmFuc2FjdGlvbiBzdGVwXG4iLCB0YXNrLmdldCgpKTsKLSAg
ICBkYXRhYmFzZUNvbnRleHQoKS0+ZGF0YWJhc2VUaHJlYWQoKS0+c2NoZWR1bGVUYXNrKHN0ZDo6
bW92ZSh0YXNrKSk7CisgICAgZGF0YWJhc2VDb250ZXh0KCktPmRhdGFiYXNlVGhyZWFkKCktPnNj
aGVkdWxlVGFzayhXVEY6Om1vdmUodGFzaykpOwogfQogCiBTUUxUcmFuc2FjdGlvbkNsaWVudCog
RGF0YWJhc2VCYWNrZW5kOjp0cmFuc2FjdGlvbkNsaWVudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCmluZGV4
IDkzMjBhZjkuLjg4MzJjYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCkBAIC0xNTUsNyArMTU1LDcgQEAgdm9pZCBE
YXRhYmFzZVRocmVhZDo6aGFuZGxlUGF1c2VkUXVldWUoKQogewogICAgIFZlY3RvcjxzdGQ6OnVu
aXF1ZV9wdHI8RGF0YWJhc2VUYXNrPiA+IHBhdXNlZFRhc2tzOwogICAgIHdoaWxlIChhdXRvIHRh
c2sgPSBtX3BhdXNlZFF1ZXVlLnRyeUdldE1lc3NhZ2UoKSkKLSAgICAgICAgcGF1c2VkVGFza3Mu
YXBwZW5kKHN0ZDo6bW92ZSh0YXNrKSk7CisgICAgICAgIHBhdXNlZFRhc2tzLmFwcGVuZChXVEY6
Om1vdmUodGFzaykpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBhdXNlZFRhc2tz
LnNpemUoKTsgKytpKSB7CiAgICAgICAgIEF1dG9kcmFpbmVkUG9vbCBwb29sOwpAQCAtMTY0LDcg
KzE2NCw3IEBAIHZvaWQgRGF0YWJhc2VUaHJlYWQ6OmhhbmRsZVBhdXNlZFF1ZXVlKCkKICAgICAg
ICAgewogICAgICAgICAgICAgTXV0ZXhMb2NrZXIgcGF1c2VkTG9ja2VyKG1fcGF1c2VkTXV0ZXgp
OwogICAgICAgICAgICAgaWYgKG1fcGF1c2VkKSB7Ci0gICAgICAgICAgICAgICAgbV9wYXVzZWRR
dWV1ZS5hcHBlbmQoc3RkOjptb3ZlKHRhc2spKTsKKyAgICAgICAgICAgICAgICBtX3BhdXNlZFF1
ZXVlLmFwcGVuZChXVEY6Om1vdmUodGFzaykpOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0xOTMsNyArMTkzLDcgQEAgdm9pZCBEYXRhYmFz
ZVRocmVhZDo6ZGF0YWJhc2VUaHJlYWQoKQogICAgICAgICBpZiAoIW1fcGF1c2VkIHx8IHRhc2st
PnNob3VsZFBlcmZvcm1XaGlsZVBhdXNlZCgpKQogICAgICAgICAgICAgdGFzay0+cGVyZm9ybVRh
c2soKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9wYXVzZWRRdWV1ZS5hcHBlbmQoc3Rk
Ojptb3ZlKHRhc2spKTsKKyAgICAgICAgICAgIG1fcGF1c2VkUXVldWUuYXBwZW5kKFdURjo6bW92
ZSh0YXNrKSk7CiAjZWxzZQogICAgICAgICB0YXNrLT5wZXJmb3JtVGFzaygpOwogI2VuZGlmCkBA
IC0yNDYsMTMgKzI0NiwxMyBAQCB2b2lkIERhdGFiYXNlVGhyZWFkOjpyZWNvcmREYXRhYmFzZUNs
b3NlZChEYXRhYmFzZUJhY2tlbmQqIGRhdGFiYXNlKQogdm9pZCBEYXRhYmFzZVRocmVhZDo6c2No
ZWR1bGVUYXNrKHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRhc2s+IHRhc2spCiB7CiAgICAgQVNT
RVJUKCF0YXNrLT5oYXNTeW5jaHJvbml6ZXIoKSB8fCB0YXNrLT5oYXNDaGVja2VkRm9yVGVybWlu
YXRpb24oKSk7Ci0gICAgbV9xdWV1ZS5hcHBlbmQoc3RkOjptb3ZlKHRhc2spKTsKKyAgICBtX3F1
ZXVlLmFwcGVuZChXVEY6Om1vdmUodGFzaykpOwogfQogCiB2b2lkIERhdGFiYXNlVGhyZWFkOjpz
Y2hlZHVsZUltbWVkaWF0ZVRhc2soc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVGFzaz4gdGFzaykK
IHsKICAgICBBU1NFUlQoIXRhc2stPmhhc1N5bmNocm9uaXplcigpIHx8IHRhc2stPmhhc0NoZWNr
ZWRGb3JUZXJtaW5hdGlvbigpKTsKLSAgICBtX3F1ZXVlLnByZXBlbmQoc3RkOjptb3ZlKHRhc2sp
KTsKKyAgICBtX3F1ZXVlLnByZXBlbmQoV1RGOjptb3ZlKHRhc2spKTsKIH0KIAogY2xhc3MgU2Ft
ZURhdGFiYXNlUHJlZGljYXRlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50QmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudEJhY2tlbmQuY3BwCmluZGV4IDE0ZmU2OGYuLmYz
ZGJmNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
U3RhdGVtZW50QmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9TUUxTdGF0ZW1lbnRCYWNrZW5kLmNwcApAQCAtNzcsMTIgKzc3LDEyIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIFBhc3NSZWZQdHI8U1FMU3RhdGVtZW50QmFja2VuZD4gU1FMU3RhdGVtZW50
QmFja2VuZDo6Y3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxBYnN0cmFjdFNRTFN0YXRlbWVudD4gZnJv
bnRlbmQsCiAgICAgY29uc3QgU3RyaW5nJiBzdGF0ZW1lbnQsIGNvbnN0IFZlY3RvcjxTUUxWYWx1
ZT4mIGFyZ3VtZW50cywgaW50IHBlcm1pc3Npb25zKQogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgU1FMU3RhdGVtZW50QmFja2VuZChzdGQ6Om1vdmUoZnJvbnRlbmQpLCBzdGF0ZW1lbnQsIGFy
Z3VtZW50cywgcGVybWlzc2lvbnMpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNRTFN0YXRl
bWVudEJhY2tlbmQoV1RGOjptb3ZlKGZyb250ZW5kKSwgc3RhdGVtZW50LCBhcmd1bWVudHMsIHBl
cm1pc3Npb25zKSk7CiB9CiAKIFNRTFN0YXRlbWVudEJhY2tlbmQ6OlNRTFN0YXRlbWVudEJhY2tl
bmQoc3RkOjp1bmlxdWVfcHRyPEFic3RyYWN0U1FMU3RhdGVtZW50PiBmcm9udGVuZCwKICAgICBj
b25zdCBTdHJpbmcmIHN0YXRlbWVudCwgY29uc3QgVmVjdG9yPFNRTFZhbHVlPiYgYXJndW1lbnRz
LCBpbnQgcGVybWlzc2lvbnMpCi0gICAgOiBtX2Zyb250ZW5kKHN0ZDo6bW92ZShmcm9udGVuZCkp
CisgICAgOiBtX2Zyb250ZW5kKFdURjo6bW92ZShmcm9udGVuZCkpCiAgICAgLCBtX3N0YXRlbWVu
dChzdGF0ZW1lbnQuaXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX2FyZ3VtZW50cyhhcmd1bWVudHMp
CiAgICAgLCBtX2hhc0NhbGxiYWNrKG1fZnJvbnRlbmQtPmhhc0NhbGxiYWNrKCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3Bw
CmluZGV4IDI1OTMxOTYuLmM5ZWUyMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3BwCkBAIC0yNjIsNyArMjYyLDcgQEAg
dm9pZCBTUUxUcmFuc2FjdGlvbjo6ZXhlY3V0ZVNRTChjb25zdCBTdHJpbmcmIHNxbFN0YXRlbWVu
dCwgY29uc3QgVmVjdG9yPFNRTFZhbHUKICAgICAgICAgcGVybWlzc2lvbnMgfD0gRGF0YWJhc2VB
dXRob3JpemVyOjpSZWFkT25seU1hc2s7CiAKICAgICBhdXRvIHN0YXRlbWVudCA9IHN0ZDo6bWFr
ZV91bmlxdWU8U1FMU3RhdGVtZW50PihtX2RhdGFiYXNlLmdldCgpLCBjYWxsYmFjaywgY2FsbGJh
Y2tFcnJvcik7Ci0gICAgbV9iYWNrZW5kLT5leGVjdXRlU1FMKHN0ZDo6bW92ZShzdGF0ZW1lbnQp
LCBzcWxTdGF0ZW1lbnQsIGFyZ3VtZW50cywgcGVybWlzc2lvbnMpOworICAgIG1fYmFja2VuZC0+
ZXhlY3V0ZVNRTChXVEY6Om1vdmUoc3RhdGVtZW50KSwgc3FsU3RhdGVtZW50LCBhcmd1bWVudHMs
IHBlcm1pc3Npb25zKTsKIH0KIAogYm9vbCBTUUxUcmFuc2FjdGlvbjo6Y29tcHV0ZU5leHRTdGF0
ZUFuZENsZWFudXBJZk5lZWRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAKaW5kZXggMDBiMDA2
Mi4uMjhhM2JmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcApAQCAtNTMwLDcgKzUzMCw3IEBA
IHZvaWQgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpleGVjdXRlU1FMKHN0ZDo6dW5pcXVlX3B0cjxB
YnN0cmFjdFNRTFN0YXRlbWVudD4gc3RhCiAgICAgY29uc3QgU3RyaW5nJiBzcWxTdGF0ZW1lbnQs
IGNvbnN0IFZlY3RvcjxTUUxWYWx1ZT4mIGFyZ3VtZW50cywgaW50IHBlcm1pc3Npb25zKQogewog
ICAgIFJlZlB0cjxTUUxTdGF0ZW1lbnRCYWNrZW5kPiBzdGF0ZW1lbnRCYWNrZW5kOwotICAgIHN0
YXRlbWVudEJhY2tlbmQgPSBTUUxTdGF0ZW1lbnRCYWNrZW5kOjpjcmVhdGUoc3RkOjptb3ZlKHN0
YXRlbWVudCksIHNxbFN0YXRlbWVudCwgYXJndW1lbnRzLCBwZXJtaXNzaW9ucyk7CisgICAgc3Rh
dGVtZW50QmFja2VuZCA9IFNRTFN0YXRlbWVudEJhY2tlbmQ6OmNyZWF0ZShXVEY6Om1vdmUoc3Rh
dGVtZW50KSwgc3FsU3RhdGVtZW50LCBhcmd1bWVudHMsIHBlcm1pc3Npb25zKTsKIAogICAgIGlm
IChEYXRhYmFzZTo6ZnJvbShtX2RhdGFiYXNlLmdldCgpKS0+ZGVsZXRlZCgpKQogICAgICAgICBz
dGF0ZW1lbnRCYWNrZW5kLT5zZXREYXRhYmFzZURlbGV0ZWRFcnJvcigpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50V3JhcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcAppbmRleCAwODVkNjcy
Li5mZWQ4N2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGll
bnRXcmFwcGVyLmNwcApAQCAtMjMxLDcgKzIzMSw3IEBAIHZvaWQgVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWxDbGllbnRXcmFwcGVyOjpwcm9jZXNzUGVuZGluZ1Rhc2tzKCkKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8U2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6VGFzaz4+IHBlbmRpbmdUYXNrcyA9IHN0ZDo6bW92ZShtX3BlbmRpbmdUYXNrcyk7
CisgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNr
Pj4gcGVuZGluZ1Rhc2tzID0gV1RGOjptb3ZlKG1fcGVuZGluZ1Rhc2tzKTsKICAgICBmb3IgKGF1
dG8mIHRhc2sgOiBwZW5kaW5nVGFza3MpCiAgICAgICAgIHRhc2stPnBlcmZvcm1UYXNrKCptX2Nv
bnRleHQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0LmNwcAppbmRleCA1MmZiZWE4Li4wZGNkMzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAtNTE5LDcgKzUxOSw3IEBAIHZvaWQg
V2ViU29ja2V0OjpkaWRSZWNlaXZlQmluYXJ5RGF0YShQYXNzT3duUHRyPFZlY3RvcjxjaGFyPj4g
YmluYXJ5RGF0YSkKICAgICBzd2l0Y2ggKG1fYmluYXJ5VHlwZSkgewogICAgIGNhc2UgQmluYXJ5
VHlwZUJsb2I6IHsKICAgICAgICAgLy8gRklYTUU6IFdlIGp1c3QgcmVjZWl2ZWQgdGhlIGRhdGEg
ZnJvbSBOZXR3b3JrUHJvY2VzcywgYW5kIGFyZSBzZW5kaW5nIGl0IGJhY2suIFRoaXMgaXMgaW5l
ZmZpY2llbnQuCi0gICAgICAgIFJlZlB0cjxCbG9iPiBibG9iID0gQmxvYjo6Y3JlYXRlKHN0ZDo6
bW92ZSgqYmluYXJ5RGF0YSksIGVtcHR5U3RyaW5nKCkpOworICAgICAgICBSZWZQdHI8QmxvYj4g
YmxvYiA9IEJsb2I6OmNyZWF0ZShXVEY6Om1vdmUoKmJpbmFyeURhdGEpLCBlbXB0eVN0cmluZygp
KTsKICAgICAgICAgZGlzcGF0Y2hFdmVudChNZXNzYWdlRXZlbnQ6OmNyZWF0ZShibG9iLnJlbGVh
c2UoKSwgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShtX3VybCktPnRvU3RyaW5nKCkpKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAKaW5kZXggZmU4N2U3MC4uZjE5NDgxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC03MDQsNyArNzA0LDcgQEAgdm9p
ZCBBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZChUaW1lcjxBWE9iamVj
dENhY2hlPiYpCiAgICAgCiAgICAgLy8gSW4gRFJULCBwb3N0aW5nIG5vdGlmaWNhdGlvbnMgaGFz
IGEgdGVuZGVuY3kgdG8gaW1tZWRpYXRlbHkgcXVldWUgdXAgb3RoZXIgbm90aWZpY2F0aW9ucywg
d2hpY2ggY2FuIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvcgogICAgIC8vIHdoZW4gdGhlIG5v
dGlmaWNhdGlvbiBsaXN0IGlzIGNsZWFyZWQgYXQgdGhlIGVuZC4gSW5zdGVhZCBjb3B5IHRoaXMg
bGlzdCBhdCB0aGUgc3RhcnQuCi0gICAgYXV0byBub3RpZmljYXRpb25zID0gc3RkOjptb3ZlKG1f
bm90aWZpY2F0aW9uc1RvUG9zdCk7CisgICAgYXV0byBub3RpZmljYXRpb25zID0gV1RGOjptb3Zl
KG1fbm90aWZpY2F0aW9uc1RvUG9zdCk7CiAgICAgCiAgICAgZm9yIChjb25zdCBhdXRvJiBub3Rl
IDogbm90aWZpY2F0aW9ucykgewogICAgICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBu
b3RlLmZpcnN0LmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCBlNjY5NzA1Li40YWMzMmQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmNwcApAQCAtMTQzOCw3ICsxNDM4LDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6YXJpYUxhYmVsZWRCeVRleHQoVmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiYg
dGV4dE8KICAgICAgICAgICAgIGF4RWxlbWVudHMuYXBwZW5kKGF4RWxlbWVudCk7CiAgICAgICAg
IH0KICAgICAgICAgCi0gICAgICAgIHRleHRPcmRlci5hcHBlbmQoQWNjZXNzaWJpbGl0eVRleHQo
YXJpYUxhYmVsZWRCeSwgQWx0ZXJuYXRpdmVUZXh0LCBzdGQ6Om1vdmUoYXhFbGVtZW50cykpKTsK
KyAgICAgICAgdGV4dE9yZGVyLmFwcGVuZChBY2Nlc3NpYmlsaXR5VGV4dChhcmlhTGFiZWxlZEJ5
LCBBbHRlcm5hdGl2ZVRleHQsIFdURjo6bW92ZShheEVsZW1lbnRzKSkpOwogICAgIH0KIH0KICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmgKaW5kZXggYzc4YmJjYS4uNWMyYjE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTIzMyw3ICsyMzMsNyBAQCBz
dHJ1Y3QgQWNjZXNzaWJpbGl0eVRleHQgewogICAgIEFjY2Vzc2liaWxpdHlUZXh0KGNvbnN0IFN0
cmluZyYgdCwgY29uc3QgQWNjZXNzaWJpbGl0eVRleHRTb3VyY2UmIHMsIFZlY3RvcjxSZWZQdHI8
QWNjZXNzaWJpbGl0eU9iamVjdD4+IGVsZW1lbnRzKQogICAgIDogdGV4dCh0KQogICAgICwgdGV4
dFNvdXJjZShzKQotICAgICwgdGV4dEVsZW1lbnRzKHN0ZDo6bW92ZShlbGVtZW50cykpCisgICAg
LCB0ZXh0RWxlbWVudHMoV1RGOjptb3ZlKGVsZW1lbnRzKSkKICAgICB7IH0KIAogICAgIEFjY2Vz
c2liaWxpdHlUZXh0KGNvbnN0IFN0cmluZyYgdCwgY29uc3QgQWNjZXNzaWJpbGl0eVRleHRTb3Vy
Y2UmIHMsIGNvbnN0IFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBlbGVtZW50KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9u
YXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGlj
dGlvbmFyeS5jcHAKaW5kZXggNzdlZGI4Yy4uZDk1YzE3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3Bw
CkBAIC0xNDYsNyArMTQ2LDcgQEAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzPiBjcmVhdGVBZXNDYmNQYXJhbXMoRXhlY1N0YXRlKgogCiAgICAgbWVtY3B5
KHJlc3VsdC0+aXYuZGF0YSgpLCBpdkRhdGEuZmlyc3QsIGl2RGF0YS5zZWNvbmQpOwogCi0gICAg
cmV0dXJuIHN0ZDo6bW92ZShyZXN1bHQpOworICAgIHJldHVybiBXVEY6Om1vdmUocmVzdWx0KTsK
IH0KIAogc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBj
cmVhdGVBZXNLZXlHZW5QYXJhbXMoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQpAQCAt
MTY0LDcgKzE2NCw3IEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycz4gY3JlYXRlQWVzS2V5R2VuUGFyYW1zKEV4ZWNTdGF0CiAKICAgICByZXN1bHQtPmxl
bmd0aCA9IHRvVUludDE2KGV4ZWMsIGxlbmd0aFZhbHVlLCBFbmZvcmNlUmFuZ2UpOwogCi0gICAg
cmV0dXJuIHN0ZDo6bW92ZShyZXN1bHQpOworICAgIHJldHVybiBXVEY6Om1vdmUocmVzdWx0KTsK
IH0KIAogc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBj
cmVhdGVIbWFjUGFyYW1zKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKQEAgLTE4Miw3
ICsxODIsNyBAQCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnM+IGNyZWF0ZUhtYWNQYXJhbXMoRXhlY1N0YXRlKiBleAogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CiAKLSAgICByZXR1cm4gc3RkOjptb3ZlKHJlc3VsdCk7CisgICAgcmV0dXJuIFdU
Rjo6bW92ZShyZXN1bHQpOwogfQogCiBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnM+IGNyZWF0ZUhtYWNLZXlQYXJhbXMoRXhlY1N0YXRlKiBleGVjLCBKU1Zh
bHVlIHZhbHVlKQpAQCAtMjA0LDcgKzIwNCw3IEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlSG1hY0tleVBhcmFtcyhFeGVjU3RhdGUqCiAg
ICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAot
ICAgIHJldHVybiBzdGQ6Om1vdmUocmVzdWx0KTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKHJlc3Vs
dCk7CiB9CiAKIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cz4gY3JlYXRlUnNhS2V5R2VuUGFyYW1zKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkK
QEAgLTIzNiw3ICsyMzYsNyBAQCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnM+IGNyZWF0ZVJzYUtleUdlblBhcmFtcyhFeGVjU3RhdAogICAgIH0KICAgICBy
ZXN1bHQtPnB1YmxpY0V4cG9uZW50LmFwcGVuZChwdWJsaWNFeHBvbmVudEFycmF5LT5kYXRhKCks
IHB1YmxpY0V4cG9uZW50QXJyYXktPmJ5dGVMZW5ndGgoKSk7CiAKLSAgICByZXR1cm4gc3RkOjpt
b3ZlKHJlc3VsdCk7CisgICAgcmV0dXJuIFdURjo6bW92ZShyZXN1bHQpOwogfQogCiBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZVJzYUtleVBh
cmFtc1dpdGhIYXNoKEV4ZWNTdGF0ZSosIEpTVmFsdWUpCkBAIC0yNjYsNyArMjY2LDcgQEAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVSc2FP
YWVwUGFyYW1zKEV4ZWNTdGF0ZSoKIAogICAgIHJlc3VsdC0+aGFzTGFiZWwgPSAhbGFiZWxWYWx1
ZS5pc1VuZGVmaW5lZE9yTnVsbCgpOwogICAgIGlmICghcmVzdWx0LT5oYXNMYWJlbCkKLSAgICAg
ICAgcmV0dXJuIHN0ZDo6bW92ZShyZXN1bHQpOworICAgICAgICByZXR1cm4gV1RGOjptb3ZlKHJl
c3VsdCk7CiAKICAgICBDcnlwdG9PcGVyYXRpb25EYXRhIGxhYmVsRGF0YTsKICAgICBpZiAoIWNy
eXB0b09wZXJhdGlvbkRhdGFGcm9tSlNWYWx1ZShleGVjLCBsYWJlbFZhbHVlLCBsYWJlbERhdGEp
KSB7CkBAIC0yNzYsNyArMjc2LDcgQEAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVSc2FPYWVwUGFyYW1zKEV4ZWNTdGF0ZSoKIAogICAgIHJl
c3VsdC0+bGFiZWwuYXBwZW5kKGxhYmVsRGF0YS5maXJzdCwgbGFiZWxEYXRhLnNlY29uZCk7CiAK
LSAgICByZXR1cm4gc3RkOjptb3ZlKHJlc3VsdCk7CisgICAgcmV0dXJuIFdURjo6bW92ZShyZXN1
bHQpOwogfQogCiBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnM+IGNyZWF0ZVJzYVNzYVBhcmFtcyhFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCkBA
IC0yOTQsNyArMjk0LDcgQEAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzPiBjcmVhdGVSc2FTc2FQYXJhbXMoRXhlY1N0YXRlKgogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICB9CiAKLSAgICByZXR1cm4gc3RkOjptb3ZlKHJlc3VsdCk7CisgICAgcmV0
dXJuIFdURjo6bW92ZShyZXN1bHQpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0
ZXJzRm9yRW5jcnlwdChFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIg
YWxnb3JpdGhtLCBKU1ZhbHVlIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5jcHAKaW5kZXggMjYzZTVj
Yi4uYmU2ZTFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlw
dG9LZXlTZXJpYWxpemF0aW9uSldLLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suY3BwCkBAIC0xNTIsNyArMTUyLDcgQEAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVITUFD
UGFyYW1ldGVycyhDcnlwdG9BbGcKIHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3Jp
dGhtSG1hY1BhcmFtcz4gaG1hY1BhcmFtZXRlcnMgPSBzdGQ6Om1ha2VfdW5pcXVlPENyeXB0b0Fs
Z29yaXRobUhtYWNQYXJhbXM+KCk7CiAgICAgaG1hY1BhcmFtZXRlcnMtPmhhc2ggPSBoYXNoRnVu
Y3Rpb247Ci0gICAgcmV0dXJuIHN0ZDo6bW92ZShobWFjUGFyYW1ldGVycyk7CisgICAgcmV0dXJu
IFdURjo6bW92ZShobWFjUGFyYW1ldGVycyk7CiB9CiAKIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlUlNBS2V5UGFyYW1ldGVyc1dpdGhIYXNo
KENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaEZ1bmN0aW9uKQpAQCAtMTYwLDcgKzE2MCw3
IEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3Jl
YXRlUlNBS2V5UGFyYW1ldGVyc1dpdGhIYXNoCiAgICAgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0Fs
Z29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoPiByc2FLZXlQYXJhbWV0ZXJzID0gc3RkOjptYWtl
X3VuaXF1ZTxDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaD4oKTsKICAgICByc2FL
ZXlQYXJhbWV0ZXJzLT5oYXNIYXNoID0gdHJ1ZTsKICAgICByc2FLZXlQYXJhbWV0ZXJzLT5oYXNo
ID0gaGFzaEZ1bmN0aW9uOwotICAgIHJldHVybiBzdGQ6Om1vdmUocnNhS2V5UGFyYW1ldGVycyk7
CisgICAgcmV0dXJuIFdURjo6bW92ZShyc2FLZXlQYXJhbWV0ZXJzKTsKIH0KIAogYm9vbCBKU0Ny
eXB0b0tleVNlcmlhbGl6YXRpb25KV0s6OnJlY29uY2lsZUFsZ29yaXRobShzdGQ6OnVuaXF1ZV9w
dHI8Q3J5cHRvQWxnb3JpdGhtPiYgc3VnZ2VzdGVkQWxnb3JpdGhtLCBzdGQ6OnVuaXF1ZV9wdHI8
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4mIHN1Z2dlc3RlZFBhcmFtZXRlcnMpIGNvbnN0CkBA
IC0yMjAsOCArMjIwLDggQEAgYm9vbCBKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0s6OnJlY29u
Y2lsZUFsZ29yaXRobShzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3IKICAgICB9CiAKICAgICBp
ZiAoIXN1Z2dlc3RlZEFsZ29yaXRobSkgewotICAgICAgICBzdWdnZXN0ZWRBbGdvcml0aG0gPSBz
dGQ6Om1vdmUoYWxnb3JpdGhtKTsKLSAgICAgICAgc3VnZ2VzdGVkUGFyYW1ldGVycyA9ICBzdGQ6
Om1vdmUocGFyYW1ldGVycyk7CisgICAgICAgIHN1Z2dlc3RlZEFsZ29yaXRobSA9IFdURjo6bW92
ZShhbGdvcml0aG0pOworICAgICAgICBzdWdnZXN0ZWRQYXJhbWV0ZXJzID0gIFdURjo6bW92ZShw
YXJhbWV0ZXJzKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKaW5kZXggMWI2YWU3ZC4u
MmNkZTEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
Q3VzdG9tLmNwcApAQCAtNTg0LDcgKzU4NCw3IEBAIEpTVmFsdWUgSlNET01XaW5kb3c6OnNldFRp
bWVvdXQoRXhlY1N0YXRlKiBleGVjKQogICAgIGludCBkZWxheSA9IGV4ZWMtPmFyZ3VtZW50KDEp
LnRvSW50MzIoZXhlYyk7CiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpbnQgcmVz
dWx0ID0gaW1wbCgpLnNldFRpbWVvdXQoc3RkOjptb3ZlKGFjdGlvbiksIGRlbGF5LCBlYyk7Cisg
ICAgaW50IHJlc3VsdCA9IGltcGwoKS5zZXRUaW1lb3V0KFdURjo6bW92ZShhY3Rpb24pLCBkZWxh
eSwgZWMpOwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAKICAgICByZXR1cm4ganNO
dW1iZXIocmVzdWx0KTsKQEAgLTYwMiw3ICs2MDIsNyBAQCBKU1ZhbHVlIEpTRE9NV2luZG93Ojpz
ZXRJbnRlcnZhbChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBqc051bWJlcigwKTsK
IAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGludCByZXN1bHQgPSBpbXBsKCkuc2V0
SW50ZXJ2YWwoc3RkOjptb3ZlKGFjdGlvbiksIGRlbGF5LCBlYyk7CisgICAgaW50IHJlc3VsdCA9
IGltcGwoKS5zZXRJbnRlcnZhbChXVEY6Om1vdmUoYWN0aW9uKSwgZGVsYXksIGVjKTsKICAgICBz
ZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwogCiAgICAgcmV0dXJuIGpzTnVtYmVyKHJlc3VsdCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3Rv
bS5jcHAKaW5kZXggZWE5YzQ1Zi4uYmE5ZTNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcApAQCAtMTEwLDcgKzExMCw3IEBA
IHN0YXRpYyBKU0M6OkpTVmFsdWUgaGFuZGxlSW5pdE1lc3NhZ2VFdmVudChKU01lc3NhZ2VFdmVu
dCoganNFdmVudCwgSlNDOjpFeGVjU3RhCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwog
CiAgICAgTWVzc2FnZUV2ZW50JiBldmVudCA9IGpzRXZlbnQtPmltcGwoKTsKLSAgICBldmVudC5p
bml0TWVzc2FnZUV2ZW50KHR5cGVBcmcsIGNhbkJ1YmJsZUFyZywgY2FuY2VsYWJsZUFyZywgZGF0
YUFyZywgb3JpZ2luQXJnLCBsYXN0RXZlbnRJZEFyZywgc291cmNlQXJnLCBzdGQ6Om1vdmUobWVz
c2FnZVBvcnRzKSk7CisgICAgZXZlbnQuaW5pdE1lc3NhZ2VFdmVudCh0eXBlQXJnLCBjYW5CdWJi
bGVBcmcsIGNhbmNlbGFibGVBcmcsIGRhdGFBcmcsIG9yaWdpbkFyZywgbGFzdEV2ZW50SWRBcmcs
IHNvdXJjZUFyZywgV1RGOjptb3ZlKG1lc3NhZ2VQb3J0cykpOwogICAgIGpzRXZlbnQtPm1fZGF0
YS5zZXQoZXhlYy0+dm0oKSwganNFdmVudCwgZGF0YUFyZy5qc1ZhbHVlKCkpOwogICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwCmluZGV4IGMxNWJjY2IuLmY0MDVhMDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAK
QEAgLTE3MSw3ICsxNzEsNyBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjplbmNyeXB0KEV4ZWNT
dGF0ZSogZXhlYykKICAgICB9OwogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgYWxn
b3JpdGhtLT5lbmNyeXB0KCpwYXJhbWV0ZXJzLCAqa2V5LCBkYXRhLCBzdGQ6Om1vdmUoc3VjY2Vz
c0NhbGxiYWNrKSwgc3RkOjptb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKKyAgICBhbGdvcml0
aG0tPmVuY3J5cHQoKnBhcmFtZXRlcnMsICprZXksIGRhdGEsIFdURjo6bW92ZShzdWNjZXNzQ2Fs
bGJhY2spLCBXVEY6Om1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOwogICAgIGlmIChlYykgewog
ICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwogICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKQEAgLTIyMiw3ICsyMjIsNyBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjpkZWNy
eXB0KEV4ZWNTdGF0ZSogZXhlYykKICAgICB9OwogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
Ci0gICAgYWxnb3JpdGhtLT5kZWNyeXB0KCpwYXJhbWV0ZXJzLCAqa2V5LCBkYXRhLCBzdGQ6Om1v
dmUoc3VjY2Vzc0NhbGxiYWNrKSwgc3RkOjptb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKKyAg
ICBhbGdvcml0aG0tPmRlY3J5cHQoKnBhcmFtZXRlcnMsICprZXksIGRhdGEsIFdURjo6bW92ZShz
dWNjZXNzQ2FsbGJhY2spLCBXVEY6Om1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOwogICAgIGlm
IChlYykgewogICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwogICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKQEAgLTI3Myw3ICsyNzMsNyBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5
cHRvOjpzaWduKEV4ZWNTdGF0ZSogZXhlYykKICAgICB9OwogCiAgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7Ci0gICAgYWxnb3JpdGhtLT5zaWduKCpwYXJhbWV0ZXJzLCAqa2V5LCBkYXRhLCBzdGQ6
Om1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgc3RkOjptb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsK
KyAgICBhbGdvcml0aG0tPnNpZ24oKnBhcmFtZXRlcnMsICprZXksIGRhdGEsIFdURjo6bW92ZShz
dWNjZXNzQ2FsbGJhY2spLCBXVEY6Om1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOwogICAgIGlm
IChlYykgewogICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwogICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKQEAgLTMzMCw3ICszMzAsNyBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5
cHRvOjp2ZXJpZnkoRXhlY1N0YXRlKiBleGVjKQogICAgIH07CiAKICAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKLSAgICBhbGdvcml0aG0tPnZlcmlmeSgqcGFyYW1ldGVycywgKmtleSwgc2lnbmF0
dXJlLCBkYXRhLCBzdGQ6Om1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgc3RkOjptb3ZlKGZhaWx1cmVD
YWxsYmFjayksIGVjKTsKKyAgICBhbGdvcml0aG0tPnZlcmlmeSgqcGFyYW1ldGVycywgKmtleSwg
c2lnbmF0dXJlLCBkYXRhLCBXVEY6Om1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgV1RGOjptb3ZlKGZh
aWx1cmVDYWxsYmFjayksIGVjKTsKICAgICBpZiAoZWMpIHsKICAgICAgICAgc2V0RE9NRXhjZXB0
aW9uKGV4ZWMsIGVjKTsKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC0zNzEsNyAr
MzcxLDcgQEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6ZGlnZXN0KEV4ZWNTdGF0ZSogZXhlYykK
ICAgICB9OwogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgYWxnb3JpdGhtLT5kaWdl
c3QoKnBhcmFtZXRlcnMsIGRhdGEsIHN0ZDo6bW92ZShzdWNjZXNzQ2FsbGJhY2spLCBzdGQ6Om1v
dmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOworICAgIGFsZ29yaXRobS0+ZGlnZXN0KCpwYXJhbWV0
ZXJzLCBkYXRhLCBXVEY6Om1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgV1RGOjptb3ZlKGZhaWx1cmVD
YWxsYmFjayksIGVjKTsKICAgICBpZiAoZWMpIHsKICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4
ZWMsIGVjKTsKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC00MjYsNyArNDI2LDcg
QEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6Z2VuZXJhdGVLZXkoRXhlY1N0YXRlKiBleGVjKQog
ICAgIH07CiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBhbGdvcml0aG0tPmdlbmVy
YXRlS2V5KCpwYXJhbWV0ZXJzLCBleHRyYWN0YWJsZSwga2V5VXNhZ2VzLCBzdGQ6Om1vdmUoc3Vj
Y2Vzc0NhbGxiYWNrKSwgc3RkOjptb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKKyAgICBhbGdv
cml0aG0tPmdlbmVyYXRlS2V5KCpwYXJhbWV0ZXJzLCBleHRyYWN0YWJsZSwga2V5VXNhZ2VzLCBX
VEY6Om1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgV1RGOjptb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVj
KTsKICAgICBpZiAoZWMpIHsKICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC00OTAsNyArNDkwLDcgQEAgc3RhdGljIHZv
aWQgaW1wb3J0S2V5KEV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvS2V5Rm9ybWF0IGtleUZvcm1hdCwg
Q3J5cHRvT3BlcmF0aW8KICAgICAgICAgcmV0dXJuOwogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9
IDA7Ci0gICAgYWxnb3JpdGhtLT5pbXBvcnRLZXkoKnBhcmFtZXRlcnMsICprZXlEYXRhLCBleHRy
YWN0YWJsZSwga2V5VXNhZ2VzLCBzdGQ6Om1vdmUoY2FsbGJhY2spLCBzdGQ6Om1vdmUoZmFpbHVy
ZUNhbGxiYWNrKSwgZWMpOworICAgIGFsZ29yaXRobS0+aW1wb3J0S2V5KCpwYXJhbWV0ZXJzLCAq
a2V5RGF0YSwgZXh0cmFjdGFibGUsIGtleVVzYWdlcywgV1RGOjptb3ZlKGNhbGxiYWNrKSwgV1RG
Ojptb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHNldERP
TUV4Y2VwdGlvbihleGVjLCBlYyk7CiB9CkBAIC01NTAsNyArNTUwLDcgQEAgSlNWYWx1ZSBKU1N1
YnRsZUNyeXB0bzo6aW1wb3J0S2V5KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgd3JhcHBlci5y
ZWplY3QobnVsbHB0cik7CiAgICAgfTsKIAotICAgIFdlYkNvcmU6OmltcG9ydEtleShleGVjLCBr
ZXlGb3JtYXQsIGRhdGEsIGFsZ29yaXRobS5yZWxlYXNlKCksIHBhcmFtZXRlcnMucmVsZWFzZSgp
LCBleHRyYWN0YWJsZSwga2V5VXNhZ2VzLCBzdGQ6Om1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgc3Rk
Ojptb3ZlKGZhaWx1cmVDYWxsYmFjaykpOworICAgIFdlYkNvcmU6OmltcG9ydEtleShleGVjLCBr
ZXlGb3JtYXQsIGRhdGEsIGFsZ29yaXRobS5yZWxlYXNlKCksIHBhcmFtZXRlcnMucmVsZWFzZSgp
LCBleHRyYWN0YWJsZSwga2V5VXNhZ2VzLCBXVEY6Om1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgV1RG
Ojptb3ZlKGZhaWx1cmVDYWxsYmFjaykpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkK
ICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKQEAgLTYxMiw3ICs2MTIsNyBAQCBKU1Zh
bHVlIEpTU3VidGxlQ3J5cHRvOjpleHBvcnRLZXkoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICB3
cmFwcGVyLnJlamVjdChudWxscHRyKTsKICAgICB9OwogCi0gICAgV2ViQ29yZTo6ZXhwb3J0S2V5
KGV4ZWMsIGtleUZvcm1hdCwgKmtleSwgc3RkOjptb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIHN0ZDo6
bW92ZShmYWlsdXJlQ2FsbGJhY2spKTsKKyAgICBXZWJDb3JlOjpleHBvcnRLZXkoZXhlYywga2V5
Rm9ybWF0LCAqa2V5LCBXVEY6Om1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgV1RGOjptb3ZlKGZhaWx1
cmVDYWxsYmFjaykpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0
dXJuIGpzVW5kZWZpbmVkKCk7CiAKQEAgLTY3Myw3ICs2NzMsNyBAQCBKU1ZhbHVlIEpTU3VidGxl
Q3J5cHRvOjp3cmFwS2V5KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIHdyYXBwZXIucmVq
ZWN0KG51bGxwdHIpOwogICAgICAgICB9OwogICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
LSAgICAgICAgYWxnb3JpdGhtUHRyLT5lbmNyeXB0Rm9yV3JhcEtleSgqcGFyYW1ldGVyc1B0ciwg
KndyYXBwaW5nS2V5LCBzdGQ6Om1ha2VfcGFpcihleHBvcnRlZEtleURhdGEuZGF0YSgpLCBleHBv
cnRlZEtleURhdGEuc2l6ZSgpKSwgc3RkOjptb3ZlKGVuY3J5cHRTdWNjZXNzQ2FsbGJhY2spLCBz
dGQ6Om1vdmUoZW5jcnlwdEZhaWx1cmVDYWxsYmFjayksIGVjKTsKKyAgICAgICAgYWxnb3JpdGht
UHRyLT5lbmNyeXB0Rm9yV3JhcEtleSgqcGFyYW1ldGVyc1B0ciwgKndyYXBwaW5nS2V5LCBzdGQ6
Om1ha2VfcGFpcihleHBvcnRlZEtleURhdGEuZGF0YSgpLCBleHBvcnRlZEtleURhdGEuc2l6ZSgp
KSwgV1RGOjptb3ZlKGVuY3J5cHRTdWNjZXNzQ2FsbGJhY2spLCBXVEY6Om1vdmUoZW5jcnlwdEZh
aWx1cmVDYWxsYmFjayksIGVjKTsKICAgICAgICAgaWYgKGVjKSB7CiAgICAgICAgICAgICAvLyBG
SVhNRTogUmVwb3J0IGZhaWx1cmUgZGV0YWlscyB0byBjb25zb2xlLCBhbmQgcG9zc2libHkgdG8g
Y2FsbGluZyBzY3JpcHQgb25jZSB0aGVyZSBpcyBhIHN0YW5kYXJkaXplZCB3YXkgdG8gcGFzcyBl
cnJvcnMgdG8gV2ViQ3J5cHRvIHByb21pc2UgcmVqZWN0IGZ1bmN0aW9ucy4KICAgICAgICAgICAg
IGVuY3J5cHRGYWlsdXJlQ2FsbGJhY2soKTsKQEAgLTY4Nyw3ICs2ODcsNyBAQCBKU1ZhbHVlIEpT
U3VidGxlQ3J5cHRvOjp3cmFwS2V5KEV4ZWNTdGF0ZSogZXhlYykKICAgICB9OwogCiAgICAgRXhj
ZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgV2ViQ29yZTo6ZXhwb3J0S2V5KGV4ZWMsIGtleUZvcm1h
dCwgKmtleSwgc3RkOjptb3ZlKGV4cG9ydFN1Y2Nlc3NDYWxsYmFjayksIHN0ZDo6bW92ZShleHBv
cnRGYWlsdXJlQ2FsbGJhY2spKTsKKyAgICBXZWJDb3JlOjpleHBvcnRLZXkoZXhlYywga2V5Rm9y
bWF0LCAqa2V5LCBXVEY6Om1vdmUoZXhwb3J0U3VjY2Vzc0NhbGxiYWNrKSwgV1RGOjptb3ZlKGV4
cG9ydEZhaWx1cmVDYWxsYmFjaykpOwogICAgIGlmIChlYykgewogICAgICAgICBzZXRET01FeGNl
cHRpb24oZXhlYywgZWMpOwogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKQEAgLTc4MCw3
ICs3ODAsNyBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjp1bndyYXBLZXkoRXhlY1N0YXRlKiBl
eGVjKQogICAgICAgICAgICAgd3JhcHBlci5yZWplY3QobnVsbHB0cik7CiAgICAgICAgIH07CiAg
ICAgICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGRvbUdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwot
ICAgICAgICBXZWJDb3JlOjppbXBvcnRLZXkoZXhlYywga2V5Rm9ybWF0LCBzdGQ6Om1ha2VfcGFp
cihyZXN1bHQuZGF0YSgpLCByZXN1bHQuc2l6ZSgpKSwgdW53cmFwcGVkS2V5QWxnb3JpdGhtUHRy
LCB1bndyYXBwZWRLZXlBbGdvcml0aG1QYXJhbWV0ZXJzUHRyLCBleHRyYWN0YWJsZSwga2V5VXNh
Z2VzLCBzdGQ6Om1vdmUoaW1wb3J0U3VjY2Vzc0NhbGxiYWNrKSwgc3RkOjptb3ZlKGltcG9ydEZh
aWx1cmVDYWxsYmFjaykpOworICAgICAgICBXZWJDb3JlOjppbXBvcnRLZXkoZXhlYywga2V5Rm9y
bWF0LCBzdGQ6Om1ha2VfcGFpcihyZXN1bHQuZGF0YSgpLCByZXN1bHQuc2l6ZSgpKSwgdW53cmFw
cGVkS2V5QWxnb3JpdGhtUHRyLCB1bndyYXBwZWRLZXlBbGdvcml0aG1QYXJhbWV0ZXJzUHRyLCBl
eHRyYWN0YWJsZSwga2V5VXNhZ2VzLCBXVEY6Om1vdmUoaW1wb3J0U3VjY2Vzc0NhbGxiYWNrKSwg
V1RGOjptb3ZlKGltcG9ydEZhaWx1cmVDYWxsYmFjaykpOwogICAgICAgICBpZiAoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBSZXBvcnQgZXhjZXB0aW9uIGRl
dGFpbHMgdG8gY29uc29sZSwgYW5kIHBvc3NpYmx5IHRvIGNhbGxpbmcgc2NyaXB0IG9uY2UgdGhl
cmUgaXMgYSBzdGFuZGFyZGl6ZWQgd2F5IHRvIHBhc3MgZXJyb3JzIHRvIFdlYkNyeXB0byBwcm9t
aXNlIHJlamVjdCBmdW5jdGlvbnMuCiAgICAgICAgICAgICBleGVjLT5jbGVhckV4Y2VwdGlvbigp
OwpAQCAtNzk1LDcgKzc5NSw3IEBAIEpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86OnVud3JhcEtleShF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgfTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAg
IHVud3JhcEFsZ29yaXRobS0+ZGVjcnlwdEZvclVud3JhcEtleSgqdW53cmFwQWxnb3JpdGhtUGFy
YW1ldGVycywgKnVud3JhcHBpbmdLZXksIHdyYXBwZWRLZXlEYXRhLCBzdGQ6Om1vdmUoZGVjcnlw
dFN1Y2Nlc3NDYWxsYmFjayksIHN0ZDo6bW92ZShkZWNyeXB0RmFpbHVyZUNhbGxiYWNrKSwgZWMp
OworICAgIHVud3JhcEFsZ29yaXRobS0+ZGVjcnlwdEZvclVud3JhcEtleSgqdW53cmFwQWxnb3Jp
dGhtUGFyYW1ldGVycywgKnVud3JhcHBpbmdLZXksIHdyYXBwZWRLZXlEYXRhLCBXVEY6Om1vdmUo
ZGVjcnlwdFN1Y2Nlc3NDYWxsYmFjayksIFdURjo6bW92ZShkZWNyeXB0RmFpbHVyZUNhbGxiYWNr
KSwgZWMpOwogICAgIGlmIChlYykgewogICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMp
OwogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAKaW5kZXggYTZk
YWMyNi4uODU3ZDQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
b3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAKQEAgLTkzLDcgKzkzLDcgQEAgSlNWYWx1
ZSBKU1dvcmtlckdsb2JhbFNjb3BlOjpzZXRUaW1lb3V0KEV4ZWNTdGF0ZSogZXhlYykKICAgICBp
ZiAoIWFjdGlvbikKICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKDApOwogICAgIGludCBkZWxheSA9
IGV4ZWMtPmFyZ3VtZW50KDEpLnRvSW50MzIoZXhlYyk7Ci0gICAgcmV0dXJuIGpzTnVtYmVyKGlt
cGwoKS5zZXRUaW1lb3V0KHN0ZDo6bW92ZShhY3Rpb24pLCBkZWxheSkpOworICAgIHJldHVybiBq
c051bWJlcihpbXBsKCkuc2V0VGltZW91dChXVEY6Om1vdmUoYWN0aW9uKSwgZGVsYXkpKTsKIH0K
IAogSlNWYWx1ZSBKU1dvcmtlckdsb2JhbFNjb3BlOjpzZXRJbnRlcnZhbChFeGVjU3RhdGUqIGV4
ZWMpCkBAIC0xMDQsNyArMTA0LDcgQEAgSlNWYWx1ZSBKU1dvcmtlckdsb2JhbFNjb3BlOjpzZXRJ
bnRlcnZhbChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKCFhY3Rpb24pCiAgICAgICAgIHJldHVy
biBqc051bWJlcigwKTsKICAgICBpbnQgZGVsYXkgPSBleGVjLT5hcmd1bWVudCgxKS50b0ludDMy
KGV4ZWMpOwotICAgIHJldHVybiBqc051bWJlcihpbXBsKCkuc2V0SW50ZXJ2YWwoc3RkOjptb3Zl
KGFjdGlvbiksIGRlbGF5KSk7CisgICAgcmV0dXJuIGpzTnVtYmVyKGltcGwoKS5zZXRJbnRlcnZh
bChXVEY6Om1vdmUoYWN0aW9uKSwgZGVsYXkpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5jcHAKaW5kZXggN2FjMGYxYS4uMjhmMjJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC0xOTkxLDcgKzE5
OTEsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgYXV0byBrZXkgPSBDcnlwdG9LZXlSU0E6OmNy
ZWF0ZShhbGdvcml0aG0sICprZXlEYXRhLCBleHRyYWN0YWJsZSwgdXNhZ2VzKTsKICAgICAgICAg
ICAgIGlmIChpc1Jlc3RyaWN0ZWRUb0hhc2gpCiAgICAgICAgICAgICAgICAga2V5LT5yZXN0cmlj
dFRvSGFzaChoYXNoKTsKLSAgICAgICAgICAgIHJlc3VsdCA9IHN0ZDo6bW92ZShrZXkpOworICAg
ICAgICAgICAgcmVzdWx0ID0gV1RGOjptb3ZlKGtleSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgfQogCkBAIC0yMDA4LDcgKzIwMDgsNyBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgYXV0byBrZXkgPSBDcnlwdG9LZXlSU0E6OmNyZWF0ZShhbGdvcml0aG0sICprZXlEYXRhLCBl
eHRyYWN0YWJsZSwgdXNhZ2VzKTsKICAgICAgICAgICAgIGlmIChpc1Jlc3RyaWN0ZWRUb0hhc2gp
CiAgICAgICAgICAgICAgICAga2V5LT5yZXN0cmljdFRvSGFzaChoYXNoKTsKLSAgICAgICAgICAg
IHJlc3VsdCA9IHN0ZDo6bW92ZShrZXkpOworICAgICAgICAgICAgcmVzdWx0ID0gV1RGOjptb3Zl
KGtleSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCkBAIC0yMDQyLDcg
KzIwNDIsNyBAQCBwcml2YXRlOgogICAgICAgICBhdXRvIGtleSA9IENyeXB0b0tleVJTQTo6Y3Jl
YXRlKGFsZ29yaXRobSwgKmtleURhdGEsIGV4dHJhY3RhYmxlLCB1c2FnZXMpOwogICAgICAgICBp
ZiAoaXNSZXN0cmljdGVkVG9IYXNoKQogICAgICAgICAgICAga2V5LT5yZXN0cmljdFRvSGFzaCho
YXNoKTsKLSAgICAgICAgcmVzdWx0ID0gc3RkOjptb3ZlKGtleSk7CisgICAgICAgIHJlc3VsdCA9
IFdURjo6bW92ZShrZXkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTIxOTQs
MTEgKzIxOTQsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBpZiAoIXJlYWRGaWxlKGZp
bGUpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOwogICAgICAgICAgICAg
ICAgIGlmIChtX2lzRE9NR2xvYmFsT2JqZWN0KQotICAgICAgICAgICAgICAgICAgICBmaWxlcy5h
cHBlbmQoc3RkOjptb3ZlKGZpbGUpKTsKKyAgICAgICAgICAgICAgICAgICAgZmlsZXMuYXBwZW5k
KFdURjo6bW92ZShmaWxlKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoIW1faXNE
T01HbG9iYWxPYmplY3QpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwotICAgICAg
ICAgICAgcmV0dXJuIGdldEpTVmFsdWUoRmlsZUxpc3Q6OmNyZWF0ZShzdGQ6Om1vdmUoZmlsZXMp
KS5nZXQoKSk7CisgICAgICAgICAgICByZXR1cm4gZ2V0SlNWYWx1ZShGaWxlTGlzdDo6Y3JlYXRl
KFdURjo6bW92ZShmaWxlcykpLmdldCgpKTsKICAgICAgICAgfQogICAgICAgICBjYXNlIEltYWdl
RGF0YVRhZzogewogICAgICAgICAgICAgaW50MzJfdCB3aWR0aDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5j
cHAKaW5kZXggZTdkOGRiYS4uYzUxYzZmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5jcHAKQEAgLTc0
LDcgKzc0LDcgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjplbmNyeXB0KGNvbnN0IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIHBsYXRmb3JtRW5jcnlwdChhZXNDQkNQYXJhbWV0ZXJzLCB0b0NyeXB0b0tleUFF
UyhrZXkpLCBkYXRhLCBzdGQ6Om1vdmUoY2FsbGJhY2spLCBzdGQ6Om1vdmUoZmFpbHVyZUNhbGxi
YWNrKSwgZWMpOworICAgIHBsYXRmb3JtRW5jcnlwdChhZXNDQkNQYXJhbWV0ZXJzLCB0b0NyeXB0
b0tleUFFUyhrZXkpLCBkYXRhLCBXVEY6Om1vdmUoY2FsbGJhY2spLCBXVEY6Om1vdmUoZmFpbHVy
ZUNhbGxiYWNrKSwgZWMpOwogfQogCiB2b2lkIENyeXB0b0FsZ29yaXRobUFFU19DQkM6OmRlY3J5
cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29uc3QgQ3J5
cHRvS2V5JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxi
YWNrIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2Rl
JiBlYykKQEAgLTg2LDcgKzg2LDcgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpkZWNy
eXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIHBsYXRmb3JtRGVjcnlwdChhZXNDQkNQYXJhbWV0ZXJzLCB0
b0NyeXB0b0tleUFFUyhrZXkpLCBkYXRhLCBzdGQ6Om1vdmUoY2FsbGJhY2spLCBzdGQ6Om1vdmUo
ZmFpbHVyZUNhbGxiYWNrKSwgZWMpOworICAgIHBsYXRmb3JtRGVjcnlwdChhZXNDQkNQYXJhbWV0
ZXJzLCB0b0NyeXB0b0tleUFFUyhrZXkpLCBkYXRhLCBXVEY6Om1vdmUoY2FsbGJhY2spLCBXVEY6
Om1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOwogfQogCiB2b2lkIENyeXB0b0FsZ29yaXRobUFF
U19DQkM6OmdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFt
ZXRlcnMsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlcywgS2V5T3JLZXlQ
YWlyQ2FsbGJhY2sgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2Vw
dGlvbkNvZGUmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtQUVTX0tXLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5jcHAKaW5kZXggYzMzNGZiMC4uYzI4OTAzYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
QUVTX0tXLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1BRVNfS1cuY3BwCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGht
QUVTX0tXOjplbmNyeXB0Rm9yV3JhcEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
JiwKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHBsYXRmb3JtRW5jcnlwdCh0b0NyeXB0
b0tleUFFUyhrZXkpLCBkYXRhLCBzdGQ6Om1vdmUoY2FsbGJhY2spLCBzdGQ6Om1vdmUoZmFpbHVy
ZUNhbGxiYWNrKSwgZWMpOworICAgIHBsYXRmb3JtRW5jcnlwdCh0b0NyeXB0b0tleUFFUyhrZXkp
LCBkYXRhLCBXVEY6Om1vdmUoY2FsbGJhY2spLCBXVEY6Om1vdmUoZmFpbHVyZUNhbGxiYWNrKSwg
ZWMpOwogfQogCiB2b2lkIENyeXB0b0FsZ29yaXRobUFFU19LVzo6ZGVjcnlwdEZvclVud3JhcEtl
eShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiBrZXks
IGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrIGNhbGxiYWNr
LCBWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTgx
LDcgKzgxLDcgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfS1c6OmRlY3J5cHRGb3JVbndyYXBL
ZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIHBsYXRmb3JtRGVjcnlwdCh0b0NyeXB0b0tleUFFUyhrZXkpLCBkYXRhLCBzdGQ6
Om1vdmUoY2FsbGJhY2spLCBzdGQ6Om1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOworICAgIHBs
YXRmb3JtRGVjcnlwdCh0b0NyeXB0b0tleUFFUyhrZXkpLCBkYXRhLCBXVEY6Om1vdmUoY2FsbGJh
Y2spLCBXVEY6Om1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOwogfQogCiB2b2lkIENyeXB0b0Fs
Z29yaXRobUFFU19LVzo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cyYgcGFyYW1ldGVycywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2VzLCBL
ZXlPcktleVBhaXJDYWxsYmFjayBjYWxsYmFjaywgVm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFj
aywgRXhjZXB0aW9uQ29kZSYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuY3BwCmluZGV4IDlhODJiZGYuLjQ3NjdkMmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobUhNQUMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobUhNQUMuY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGht
SE1BQzo6c2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBj
b25zCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBwbGF0Zm9ybVNpZ24oaG1hY1BhcmFt
ZXRlcnMsIHRvQ3J5cHRvS2V5SE1BQyhrZXkpLCBkYXRhLCBzdGQ6Om1vdmUoY2FsbGJhY2spLCBz
dGQ6Om1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOworICAgIHBsYXRmb3JtU2lnbihobWFjUGFy
YW1ldGVycywgdG9DcnlwdG9LZXlITUFDKGtleSksIGRhdGEsIFdURjo6bW92ZShjYWxsYmFjayks
IFdURjo6bW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CiB9CiAKIHZvaWQgQ3J5cHRvQWxnb3Jp
dGhtSE1BQzo6dmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRl
cnMsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBleHBl
Y3RlZFNpZ25hdHVyZSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgQm9vbENhbGxi
YWNrIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2Rl
JiBlYykKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1ITUFDOjp2ZXJpZnko
Y29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycywgY28KICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIHBsYXRmb3JtVmVyaWZ5KGhtYWNQYXJhbWV0ZXJzLCB0b0Ny
eXB0b0tleUhNQUMoa2V5KSwgZXhwZWN0ZWRTaWduYXR1cmUsIGRhdGEsIHN0ZDo6bW92ZShjYWxs
YmFjayksIHN0ZDo6bW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CisgICAgcGxhdGZvcm1WZXJp
ZnkoaG1hY1BhcmFtZXRlcnMsIHRvQ3J5cHRvS2V5SE1BQyhrZXkpLCBleHBlY3RlZFNpZ25hdHVy
ZSwgZGF0YSwgV1RGOjptb3ZlKGNhbGxiYWNrKSwgV1RGOjptb3ZlKGZhaWx1cmVDYWxsYmFjayks
IGVjKTsKIH0KIAogdm9pZCBDcnlwdG9BbGdvcml0aG1ITUFDOjpnZW5lcmF0ZUtleShjb25zdCBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBib29sIGV4dHJhY3RhYmxlLCBD
cnlwdG9LZXlVc2FnZSB1c2FnZXMsIEtleU9yS2V5UGFpckNhbGxiYWNrIGNhbGxiYWNrLCBWb2lk
Q2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1Mx
X3YxXzUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtUlNBRVNfUEtDUzFfdjFfNS5jcHAKaW5kZXggNWIwYzYzMi4uOTA0NDMzNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNf
UEtDUzFfdjFfNS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBD
cnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81OjplbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnMmLAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcGxhdGZvcm1F
bmNyeXB0KHRvQ3J5cHRvS2V5UlNBKGtleSksIGRhdGEsIHN0ZDo6bW92ZShjYWxsYmFjayksIHN0
ZDo6bW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CisgICAgcGxhdGZvcm1FbmNyeXB0KHRvQ3J5
cHRvS2V5UlNBKGtleSksIGRhdGEsIFdURjo6bW92ZShjYWxsYmFjayksIFdURjo6bW92ZShmYWls
dXJlQ2FsbGJhY2spLCBlYyk7CiB9CiAKIHZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFf
djFfNTo6ZGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5
cHRvS2V5JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxi
YWNrIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2Rl
JiBlYykKQEAgLTgxLDcgKzgxLDcgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92
MV81OjpkZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLAogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgcGxhdGZvcm1EZWNyeXB0KHRvQ3J5cHRvS2V5UlNBKGtleSks
IGRhdGEsIHN0ZDo6bW92ZShjYWxsYmFjayksIHN0ZDo6bW92ZShmYWlsdXJlQ2FsbGJhY2spLCBl
Yyk7CisgICAgcGxhdGZvcm1EZWNyeXB0KHRvQ3J5cHRvS2V5UlNBKGtleSksIGRhdGEsIFdURjo6
bW92ZShjYWxsYmFjayksIFdURjo6bW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CiB9CiAKIHZv
aWQgQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNTo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5
cHRvS2V5VXNhZ2UgdXNhZ2VzLCBLZXlPcktleVBhaXJDYWxsYmFjayBjYWxsYmFjaywgVm9pZENh
bGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCkBAIC05Miw3ICs5Miw3IEBA
IHZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNTo6Z2VuZXJhdGVLZXkoY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyCiAgICAgICAgIGNhbGxiYWNrKG51bGxwdHIsICZwYWly
KTsKICAgICB9OwogCi0gICAgQ3J5cHRvS2V5UlNBOjpnZW5lcmF0ZVBhaXIoQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNSwgcnNhUGFyYW1ldGVycy5tb2R1bHVzTGVu
Z3RoLCByc2FQYXJhbWV0ZXJzLnB1YmxpY0V4cG9uZW50LCBleHRyYWN0YWJsZSwgdXNhZ2VzLCBz
dGQ6Om1vdmUoa2V5UGFpckNhbGxiYWNrKSwgc3RkOjptb3ZlKGZhaWx1cmVDYWxsYmFjaykpOwor
ICAgIENyeXB0b0tleVJTQTo6Z2VuZXJhdGVQYWlyKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6
OlJTQUVTX1BLQ1MxX3YxXzUsIHJzYVBhcmFtZXRlcnMubW9kdWx1c0xlbmd0aCwgcnNhUGFyYW1l
dGVycy5wdWJsaWNFeHBvbmVudCwgZXh0cmFjdGFibGUsIHVzYWdlcywgV1RGOjptb3ZlKGtleVBh
aXJDYWxsYmFjayksIFdURjo6bW92ZShmYWlsdXJlQ2FsbGJhY2spKTsKIH0KIAogdm9pZCBDcnlw
dG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81OjppbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleURhdGEmIGtleURhdGEsIGJvb2wgZXh0cmFj
dGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlLCBLZXlDYWxsYmFjayBjYWxsYmFjaywgVm9pZENh
bGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFf
djFfNS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHAKaW5kZXggOWU0NzEwZi4uNGYwZjNjZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NB
X1BLQ1MxX3YxXzUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmNwcApAQCAtNzksNyArNzksNyBAQCB2b2lk
IENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjpzaWduKGNvbnN0IENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnMmIHBhcgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcGxhdGZv
cm1TaWduKHJzYVNTQVBhcmFtZXRlcnMsIHRvQ3J5cHRvS2V5UlNBKGtleSksIGRhdGEsIHN0ZDo6
bW92ZShjYWxsYmFjayksIHN0ZDo6bW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CisgICAgcGxh
dGZvcm1TaWduKHJzYVNTQVBhcmFtZXRlcnMsIHRvQ3J5cHRvS2V5UlNBKGtleSksIGRhdGEsIFdU
Rjo6bW92ZShjYWxsYmFjayksIFdURjo6bW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CiB9CiAK
IHZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OnZlcmlmeShjb25zdCBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSwg
Y29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgc2lnbmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRp
b25EYXRhJiBkYXRhLCBCb29sQ2FsbGJhY2sgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayBmYWlsdXJl
Q2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtOTEsNyArOTEsNyBAQCB2b2lkIENyeXB0
b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81Ojp2ZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVycyYgcAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcGxhdGZvcm1WZXJp
ZnkocnNhU1NBUGFyYW1ldGVycywgdG9DcnlwdG9LZXlSU0Eoa2V5KSwgc2lnbmF0dXJlLCBkYXRh
LCBzdGQ6Om1vdmUoY2FsbGJhY2spLCBzdGQ6Om1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOwor
ICAgIHBsYXRmb3JtVmVyaWZ5KHJzYVNTQVBhcmFtZXRlcnMsIHRvQ3J5cHRvS2V5UlNBKGtleSks
IHNpZ25hdHVyZSwgZGF0YSwgV1RGOjptb3ZlKGNhbGxiYWNrKSwgV1RGOjptb3ZlKGZhaWx1cmVD
YWxsYmFjayksIGVjKTsKIH0KIAogdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFf
NTo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVy
cywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2VzLCBLZXlPcktleVBhaXJD
YWxsYmFjayBjYWxsYmFjaywgVm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9u
Q29kZSYpCkBAIC0xMDIsNyArMTAyLDcgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtD
UzFfdjFfNTo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGUKICAgICAg
ICAgY2FsbGJhY2sobnVsbHB0ciwgJnBhaXIpOwogICAgIH07CiAKLSAgICBDcnlwdG9LZXlSU0E6
OmdlbmVyYXRlUGFpcihDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FTU0FfUEtDUzFfdjFf
NSwgcnNhUGFyYW1ldGVycy5tb2R1bHVzTGVuZ3RoLCByc2FQYXJhbWV0ZXJzLnB1YmxpY0V4cG9u
ZW50LCBleHRyYWN0YWJsZSwgdXNhZ2VzLCBzdGQ6Om1vdmUoa2V5UGFpckNhbGxiYWNrKSwgc3Rk
Ojptb3ZlKGZhaWx1cmVDYWxsYmFjaykpOworICAgIENyeXB0b0tleVJTQTo6Z2VuZXJhdGVQYWly
KENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQVNTQV9QS0NTMV92MV81LCByc2FQYXJhbWV0
ZXJzLm1vZHVsdXNMZW5ndGgsIHJzYVBhcmFtZXRlcnMucHVibGljRXhwb25lbnQsIGV4dHJhY3Rh
YmxlLCB1c2FnZXMsIFdURjo6bW92ZShrZXlQYWlyQ2FsbGJhY2spLCBXVEY6Om1vdmUoZmFpbHVy
ZUNhbGxiYWNrKSk7CiB9CiAKIHZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6
OmltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBj
b25zdCBDcnlwdG9LZXlEYXRhJiBrZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlV
c2FnZSB1c2FnZSwgS2V5Q2FsbGJhY2sgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayBmYWlsdXJlQ2Fs
bGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuY3BwCmluZGV4IGExOTc2
NGEuLmUyZGVjODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUC5jcHAKQEAgLTc5LDcgKzc5LDcgQEAg
dm9pZCBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6ZW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXIKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHBs
YXRmb3JtRW5jcnlwdChyc2FPQUVQUGFyYW1ldGVycywgdG9DcnlwdG9LZXlSU0Eoa2V5KSwgZGF0
YSwgc3RkOjptb3ZlKGNhbGxiYWNrKSwgc3RkOjptb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsK
KyAgICBwbGF0Zm9ybUVuY3J5cHQocnNhT0FFUFBhcmFtZXRlcnMsIHRvQ3J5cHRvS2V5UlNBKGtl
eSksIGRhdGEsIFdURjo6bW92ZShjYWxsYmFjayksIFdURjo6bW92ZShmYWlsdXJlQ2FsbGJhY2sp
LCBlYyk7CiB9CiAKIHZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6OmRlY3J5cHQoY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JiBr
ZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrIGNhbGxi
YWNrLCBWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKQEAg
LTkxLDcgKzkxLDcgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6ZGVjcnlwdChjb25z
dCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXIKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIHBsYXRmb3JtRGVjcnlwdChyc2FPQUVQUGFyYW1ldGVycywgdG9DcnlwdG9L
ZXlSU0Eoa2V5KSwgZGF0YSwgc3RkOjptb3ZlKGNhbGxiYWNrKSwgc3RkOjptb3ZlKGZhaWx1cmVD
YWxsYmFjayksIGVjKTsKKyAgICBwbGF0Zm9ybURlY3J5cHQocnNhT0FFUFBhcmFtZXRlcnMsIHRv
Q3J5cHRvS2V5UlNBKGtleSksIGRhdGEsIFdURjo6bW92ZShjYWxsYmFjayksIFdURjo6bW92ZShm
YWlsdXJlQ2FsbGJhY2spLCBlYyk7CiB9CiAKIHZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6
OmdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMs
IGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlcywgS2V5T3JLZXlQYWlyQ2Fs
bGJhY2sgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNv
ZGUmKQpAQCAtMTAyLDcgKzEwMiw3IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6Omdl
bmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtCiAgICAgICAg
IGNhbGxiYWNrKG51bGxwdHIsICZwYWlyKTsKICAgICB9OwogCi0gICAgQ3J5cHRvS2V5UlNBOjpn
ZW5lcmF0ZVBhaXIoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBX09BRVAsIHJzYVBhcmFt
ZXRlcnMubW9kdWx1c0xlbmd0aCwgcnNhUGFyYW1ldGVycy5wdWJsaWNFeHBvbmVudCwgZXh0cmFj
dGFibGUsIHVzYWdlcywgc3RkOjptb3ZlKGtleVBhaXJDYWxsYmFjayksIHN0ZDo6bW92ZShmYWls
dXJlQ2FsbGJhY2spKTsKKyAgICBDcnlwdG9LZXlSU0E6OmdlbmVyYXRlUGFpcihDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyOjpSU0FfT0FFUCwgcnNhUGFyYW1ldGVycy5tb2R1bHVzTGVuZ3RoLCBy
c2FQYXJhbWV0ZXJzLnB1YmxpY0V4cG9uZW50LCBleHRyYWN0YWJsZSwgdXNhZ2VzLCBXVEY6Om1v
dmUoa2V5UGFpckNhbGxiYWNrKSwgV1RGOjptb3ZlKGZhaWx1cmVDYWxsYmFjaykpOwogfQogCiB2
b2lkIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQOjppbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5RGF0YSYga2V5RGF0YSwg
Ym9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2UsIEtleUNhbGxiYWNrIGNhbGxi
YWNrLCBWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ01h
Yy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19DQkNN
YWMuY3BwCmluZGV4IDRiOGNmZDQuLjVhYWE3NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ01hYy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDTWFjLmNwcApAQCAtODQsMTIg
Kzg0LDEyIEBAIHN0YXRpYyB2b2lkIHRyYW5zZm9ybUFFU19DQkMoQ0NPcGVyYXRpb24gb3BlcmF0
aW9uLCBjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNQCiAKIHZvaWQgQ3J5cHRvQWxnb3JpdGht
QUVTX0NCQzo6cGxhdGZvcm1FbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFt
cyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5QUVTJiBrZXksIGNvbnN0IENyeXB0b09wZXJh
dGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sgZmFp
bHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKIHsKLSAgICB0cmFuc2Zvcm1BRVNfQ0JDKGtD
Q0VuY3J5cHQsIHBhcmFtZXRlcnMsIGtleSwgZGF0YSwgc3RkOjptb3ZlKGNhbGxiYWNrKSwgc3Rk
Ojptb3ZlKGZhaWx1cmVDYWxsYmFjaykpOworICAgIHRyYW5zZm9ybUFFU19DQkMoa0NDRW5jcnlw
dCwgcGFyYW1ldGVycywga2V5LCBkYXRhLCBXVEY6Om1vdmUoY2FsbGJhY2spLCBXVEY6Om1vdmUo
ZmFpbHVyZUNhbGxiYWNrKSk7CiB9CiAKIHZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6cGxh
dGZvcm1EZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtcyYgcGFyYW1ldGVy
cywgY29uc3QgQ3J5cHRvS2V5QUVTJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRh
dGEsIFZlY3RvckNhbGxiYWNrIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNr
LCBFeGNlcHRpb25Db2RlJikKIHsKLSAgICB0cmFuc2Zvcm1BRVNfQ0JDKGtDQ0RlY3J5cHQsIHBh
cmFtZXRlcnMsIGtleSwgZGF0YSwgc3RkOjptb3ZlKGNhbGxiYWNrKSwgc3RkOjptb3ZlKGZhaWx1
cmVDYWxsYmFjaykpOworICAgIHRyYW5zZm9ybUFFU19DQkMoa0NDRGVjcnlwdCwgcGFyYW1ldGVy
cywga2V5LCBkYXRhLCBXVEY6Om1vdmUoY2FsbGJhY2spLCBXVEY6Om1vdmUoZmFpbHVyZUNhbGxi
YWNrKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvS2V5UlNBTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9tYWMvQ3J5cHRvS2V5UlNBTWFjLmNwcAppbmRleCBkMWYzMWJjLi4yNWExNTZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0tleVJTQU1hYy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9LZXlSU0FNYWMuY3BwCkBAIC0yNTEs
OCArMjUxLDggQEAgdm9pZCBDcnlwdG9LZXlSU0E6OmdlbmVyYXRlUGFpcihDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgdW5zaWduZWQgbW8KICAgICB9CiAKICAgICAvLyBXZSBv
bmx5IHVzZSB0aGUgY2FsbGJhY2sgZnVuY3Rpb25zIHdoZW4gYmFjayBvbiB0aGUgbWFpbiB0aHJl
YWQsIGJ1dCBjYXB0dXJlZCB2YXJpYWJsZXMgYXJlIGNvcGllZCBvbiBhIHNlY29uZGFyeSB0aHJl
YWQgdG9vLgotICAgIEtleVBhaXJDYWxsYmFjayogbG9jYWxDYWxsYmFjayA9IG5ldyBLZXlQYWly
Q2FsbGJhY2soc3RkOjptb3ZlKGNhbGxiYWNrKSk7Ci0gICAgVm9pZENhbGxiYWNrKiBsb2NhbEZh
aWx1cmVDYWxsYmFjayA9IG5ldyBWb2lkQ2FsbGJhY2soc3RkOjptb3ZlKGZhaWx1cmVDYWxsYmFj
aykpOworICAgIEtleVBhaXJDYWxsYmFjayogbG9jYWxDYWxsYmFjayA9IG5ldyBLZXlQYWlyQ2Fs
bGJhY2soV1RGOjptb3ZlKGNhbGxiYWNrKSk7CisgICAgVm9pZENhbGxiYWNrKiBsb2NhbEZhaWx1
cmVDYWxsYmFjayA9IG5ldyBWb2lkQ2FsbGJhY2soV1RGOjptb3ZlKGZhaWx1cmVDYWxsYmFjaykp
OwogCiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZShESVNQQVRD
SF9RVUVVRV9QUklPUklUWV9ERUZBVUxULCAwKSwgXnsKICAgICAgICAgQ0NSU0FDcnlwdG9yUmVm
IGNjUHVibGljS2V5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0
aW9uVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3Bw
CmluZGV4IDYzNWRhODMuLjAwY2EzNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDYWxjdWxhdGlvblZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FsY3Vs
YXRpb25WYWx1ZS5jcHAKQEAgLTQyNyw3ICs0MjcsNyBAQCBwcml2YXRlOgogICAgICAgICBzdGQ6
OnVuaXF1ZV9wdHI8Q2FsY0V4cHJlc3Npb25Ob2RlPiByaWdodChtX3JpZ2h0U2lkZS0+Y3JlYXRl
Q2FsY0V4cHJlc3Npb24oY29udmVyc2lvbkRhdGEpKTsKICAgICAgICAgaWYgKCFyaWdodCkKICAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxDYWxjRXhwcmVzc2lvbkJpbmFyeU9wZXJhdGlvbj4oc3RkOjptb3ZlKGxlZnQpLCBzdGQ6Om1v
dmUocmlnaHQpLCBtX29wZXJhdG9yKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8
Q2FsY0V4cHJlc3Npb25CaW5hcnlPcGVyYXRpb24+KFdURjo6bW92ZShsZWZ0KSwgV1RGOjptb3Zl
KHJpZ2h0KSwgbV9vcGVyYXRvcik7CiAgICAgfQogCiAgICAgdmlydHVhbCBkb3VibGUgZG91Ymxl
VmFsdWUoKSBjb25zdCBvdmVycmlkZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NhbGN1bGF0aW9uVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZh
bHVlLmgKaW5kZXggZGY2ODY3Ni4uY2UwY2I1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2Fs
Y3VsYXRpb25WYWx1ZS5oCkBAIC0xMTEsNyArMTExLDcgQEAgcHJpdmF0ZToKIAogaW5saW5lIENT
U0NhbGNWYWx1ZTo6Q1NTQ2FsY1ZhbHVlKFBhc3NSZWY8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPiBl
eHByZXNzaW9uLCBib29sIHNob3VsZENsYW1wVG9Ob25OZWdhdGl2ZSkKICAgICA6IENTU1ZhbHVl
KENhbGN1bGF0aW9uQ2xhc3MpCi0gICAgLCBtX2V4cHJlc3Npb24oc3RkOjptb3ZlKGV4cHJlc3Np
b24pKQorICAgICwgbV9leHByZXNzaW9uKFdURjo6bW92ZShleHByZXNzaW9uKSkKICAgICAsIG1f
c2hvdWxkQ2xhbXBUb05vbk5lZ2F0aXZlKHNob3VsZENsYW1wVG9Ob25OZWdhdGl2ZSkKIHsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKaW5kZXggZGJiOGRiNi4uM2YzOGM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTgzMSw3ICs4MzEsNyBAQCBzdGF0
aWMgUGFzc1JlZjxDU1NWYWx1ZT4gY29tcHV0ZWRUcmFuc2Zvcm0oUmVuZGVyT2JqZWN0KiByZW5k
ZXJlciwgY29uc3QgUmVuZGVyUwogICAgIC8vIEZJWE1FOiBOZWVkIHRvIHByaW50IG91dCBpbmRp
dmlkdWFsIGZ1bmN0aW9ucyAoaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzOTI0KQogICAgIGF1dG8gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0
ZWQoKTsKICAgICBsaXN0LmdldCgpLmFwcGVuZChtYXRyaXhUcmFuc2Zvcm1WYWx1ZSh0cmFuc2Zv
cm0sIHN0eWxlKSk7Ci0gICAgcmV0dXJuIHN0ZDo6bW92ZShsaXN0KTsKKyAgICByZXR1cm4gV1RG
Ojptb3ZlKGxpc3QpOwogfQogCiBzdGF0aWMgaW5saW5lIFBhc3NSZWY8Q1NTUHJpbWl0aXZlVmFs
dWU+IGFkanVzdExlbmd0aEZvclpvb20oZG91YmxlIGxlbmd0aCwgY29uc3QgUmVuZGVyU3R5bGUq
IHN0eWxlLCBBZGp1c3RQaXhlbFZhbHVlc0ZvckNvbXB1dGVkU3R5bGUgYWRqdXN0KQpAQCAtOTUx
LDcgKzk1MSw3IEBAIFBhc3NSZWY8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnZh
bHVlRm9yRmlsdGVyKGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsCiAgICAgICAgIGxpc3QuZ2V0KCku
YXBwZW5kKGZpbHRlclZhbHVlLnJlbGVhc2UoKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHN0ZDo6
bW92ZShsaXN0KTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKGxpc3QpOwogfQogI2VuZGlmCiAKQEAg
LTEwMjUsNyArMTAyNSw3IEBAIHN0YXRpYyBQYXNzUmVmPENTU1ZhbHVlPiB2YWx1ZUZvckdyaWRU
cmFja0xpc3QoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvCiAKICAgICAvLyBUaG9z
ZSBhcmUgdGhlIHRyYWlsaW5nIDxpZGVudD4qIGFsbG93ZWQgaW4gdGhlIHN5bnRheC4KICAgICBh
ZGRWYWx1ZXNGb3JOYW1lZEdyaWRMaW5lc0F0SW5kZXgob3JkZXJlZE5hbWVkR3JpZExpbmVzLCB0
cmFja1NpemVzLnNpemUoKSwgbGlzdC5nZXQoKSk7Ci0gICAgcmV0dXJuIHN0ZDo6bW92ZShsaXN0
KTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKGxpc3QpOwogfQogCiBzdGF0aWMgUGFzc1JlZjxDU1NW
YWx1ZT4gdmFsdWVGb3JHcmlkUG9zaXRpb24oY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbikK
QEAgLTEwNDUsNyArMTA0NSw3IEBAIHN0YXRpYyBQYXNzUmVmPENTU1ZhbHVlPiB2YWx1ZUZvckdy
aWRQb3NpdGlvbihjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uKQogCiAgICAgaWYgKCFwb3Np
dGlvbi5uYW1lZEdyaWRMaW5lKCkuaXNOdWxsKCkpCiAgICAgICAgIGxpc3QuZ2V0KCkuYXBwZW5k
KGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlKHBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKSwgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkcpKTsKLSAgICByZXR1cm4gc3RkOjptb3ZlKGxpc3Qp
OworICAgIHJldHVybiBXVEY6Om1vdmUobGlzdCk7CiB9CiAjZW5kaWYKIApAQCAtMTM1OCw3ICsx
MzU4LDcgQEAgc3RhdGljIFBhc3NSZWY8Q1NTVmFsdWU+IGZpbGxSZXBlYXRUb0NTU1ZhbHVlKEVG
aWxsUmVwZWF0IHhSZXBlYXQsIEVGaWxsUmVwZWF0IHkKICAgICBhdXRvIGxpc3QgPSBDU1NWYWx1
ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7CiAgICAgbGlzdC5nZXQoKS5hcHBlbmQoY3Nz
VmFsdWVQb29sKCkuY3JlYXRlVmFsdWUoeFJlcGVhdCkpOwogICAgIGxpc3QuZ2V0KCkuYXBwZW5k
KGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlKHlSZXBlYXQpKTsKLSAgICByZXR1cm4gc3RkOjpt
b3ZlKGxpc3QpOworICAgIHJldHVybiBXVEY6Om1vdmUobGlzdCk7CiB9CiAKIHN0YXRpYyBQYXNz
UmVmUHRyPENTU1ZhbHVlPiBmaWxsU291cmNlVHlwZVRvQ1NTVmFsdWUoRU1hc2tTb3VyY2VUeXBl
IHR5cGUpCkBAIC0xMzg5LDcgKzEzODksNyBAQCBzdGF0aWMgUGFzc1JlZjxDU1NWYWx1ZT4gZmls
bFNpemVUb0NTU1ZhbHVlKGNvbnN0IEZpbGxTaXplJiBmaWxsU2l6ZSwgY29uc3QgUmVuZAogICAg
IGF1dG8gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0ZWQoKTsKICAgICBs
aXN0LmdldCgpLmFwcGVuZCh6b29tQWRqdXN0ZWRQaXhlbFZhbHVlRm9yTGVuZ3RoKGZpbGxTaXpl
LnNpemUud2lkdGgoKSwgc3R5bGUpKTsKICAgICBsaXN0LmdldCgpLmFwcGVuZCh6b29tQWRqdXN0
ZWRQaXhlbFZhbHVlRm9yTGVuZ3RoKGZpbGxTaXplLnNpemUuaGVpZ2h0KCksIHN0eWxlKSk7Ci0g
ICAgcmV0dXJuIHN0ZDo6bW92ZShsaXN0KTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKGxpc3QpOwog
fQogCiBzdGF0aWMgUGFzc1JlZjxDU1NWYWx1ZT4gYWx0VGV4dFRvQ1NTVmFsdWUoY29uc3QgUmVu
ZGVyU3R5bGUqIHN0eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3Nz
ZmFkZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAK
aW5kZXggNjkyZjQzMy4uZDQzZGIxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0Nyb3NzZmFkZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRl
VmFsdWUuY3BwCkBAIC0xOTIsNyArMTkyLDcgQEAgUGFzc1JlZlB0cjxDU1NDcm9zc2ZhZGVWYWx1
ZT4gQ1NTQ3Jvc3NmYWRlVmFsdWU6OmJsZW5kKGNvbnN0IENTU0Nyb3NzZmFkZVZhbHVlJgogICAg
IGF1dG8gZnJvbUltYWdlVmFsdWUgPSBDU1NJbWFnZVZhbHVlOjpjcmVhdGUobV9jYWNoZWRGcm9t
SW1hZ2UtPnVybCgpLCBmcm9tU3R5bGVkSW1hZ2UuZ2V0KCkpOwogICAgIGF1dG8gdG9JbWFnZVZh
bHVlID0gQ1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKG1fY2FjaGVkVG9JbWFnZS0+dXJsKCksIHRvU3R5
bGVkSW1hZ2UuZ2V0KCkpOwogCi0gICAgUmVmUHRyPENTU0Nyb3NzZmFkZVZhbHVlPiBjcm9zc2Zh
ZGVWYWx1ZSA9IENTU0Nyb3NzZmFkZVZhbHVlOjpjcmVhdGUoc3RkOjptb3ZlKGZyb21JbWFnZVZh
bHVlKSwgc3RkOjptb3ZlKHRvSW1hZ2VWYWx1ZSkpOworICAgIFJlZlB0cjxDU1NDcm9zc2ZhZGVW
YWx1ZT4gY3Jvc3NmYWRlVmFsdWUgPSBDU1NDcm9zc2ZhZGVWYWx1ZTo6Y3JlYXRlKFdURjo6bW92
ZShmcm9tSW1hZ2VWYWx1ZSksIFdURjo6bW92ZSh0b0ltYWdlVmFsdWUpKTsKIAogICAgIGRvdWJs
ZSBmcm9tUGVyY2VudGFnZSA9IGZyb20ubV9wZXJjZW50YWdlVmFsdWUtPmdldERvdWJsZVZhbHVl
KCk7CiAgICAgaWYgKGZyb20ubV9wZXJjZW50YWdlVmFsdWUtPmlzUGVyY2VudGFnZSgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCmluZGV4IGFiYTYyNDguLjMx
NDQyMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAKQEAg
LTU1LDcgKzU1LDcgQEAgc3RhdGljIGlubGluZSBTVkdDdXJzb3JFbGVtZW50KiByZXNvdXJjZVJl
ZmVyZW5jZWRCeUN1cnNvckVsZW1lbnQoY29uc3QgU3RyaW5nJgogCiBDU1NDdXJzb3JJbWFnZVZh
bHVlOjpDU1NDdXJzb3JJbWFnZVZhbHVlKFBhc3NSZWY8Q1NTVmFsdWU+IGltYWdlVmFsdWUsIGJv
b2wgaGFzSG90U3BvdCwgY29uc3QgSW50UG9pbnQmIGhvdFNwb3QpCiAgICAgOiBDU1NWYWx1ZShD
dXJzb3JJbWFnZUNsYXNzKQotICAgICwgbV9pbWFnZVZhbHVlKHN0ZDo6bW92ZShpbWFnZVZhbHVl
KSkKKyAgICAsIG1faW1hZ2VWYWx1ZShXVEY6Om1vdmUoaW1hZ2VWYWx1ZSkpCiAgICAgLCBtX2hh
c0hvdFNwb3QoaGFzSG90U3BvdCkKICAgICAsIG1faG90U3BvdChob3RTcG90KQogICAgICwgbV9h
Y2Nlc3NlZEltYWdlKGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1
cnNvckltYWdlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVl
LmgKaW5kZXggNjNiYzI4NC4uNjUxY2Q2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0N1cnNvckltYWdlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29y
SW1hZ2VWYWx1ZS5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIENTU0N1cnNvckltYWdlVmFsdWUg
OiBwdWJsaWMgQ1NTVmFsdWUgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmPENTU0N1cnNv
ckltYWdlVmFsdWU+IGNyZWF0ZShQYXNzUmVmPENTU1ZhbHVlPiBpbWFnZVZhbHVlLCBib29sIGhh
c0hvdFNwb3QsIGNvbnN0IEludFBvaW50JiBob3RTcG90KQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQ1NTQ3Vyc29ySW1hZ2VWYWx1ZShzdGQ6Om1vdmUoaW1hZ2VWYWx1ZSks
IGhhc0hvdFNwb3QsIGhvdFNwb3QpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NT
Q3Vyc29ySW1hZ2VWYWx1ZShXVEY6Om1vdmUoaW1hZ2VWYWx1ZSksIGhhc0hvdFNwb3QsIGhvdFNw
b3QpKTsKICAgICB9CiAKICAgICB+Q1NTQ3Vyc29ySW1hZ2VWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwCmluZGV4IGQ5ODBlNjIuLmIwYTdlNjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHAKQEAgLTEyMCw3ICsx
MjAsNyBAQCBQYXNzUmVmUHRyPEltYWdlPiBDU1NGaWx0ZXJJbWFnZVZhbHVlOjppbWFnZShSZW5k
ZXJFbGVtZW50KiByZW5kZXJlciwgY29uc3QgRmxvYQogICAgIHRleHR1cmUtPmNvbnRleHQoKS0+
ZHJhd0ltYWdlKGltYWdlLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBJbnRQb2ludCgpKTsKIAogICAg
IFJlZlB0cjxGaWx0ZXJFZmZlY3RSZW5kZXJlcj4gZmlsdGVyUmVuZGVyZXIgPSBGaWx0ZXJFZmZl
Y3RSZW5kZXJlcjo6Y3JlYXRlKCk7Ci0gICAgZmlsdGVyUmVuZGVyZXItPnNldFNvdXJjZUltYWdl
KHN0ZDo6bW92ZSh0ZXh0dXJlKSk7CisgICAgZmlsdGVyUmVuZGVyZXItPnNldFNvdXJjZUltYWdl
KFdURjo6bW92ZSh0ZXh0dXJlKSk7CiAgICAgZmlsdGVyUmVuZGVyZXItPnNldFNvdXJjZUltYWdl
UmVjdChGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBzaXplKSk7CiAgICAgZmlsdGVyUmVuZGVyZXIt
PnNldEZpbHRlclJlZ2lvbihGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBzaXplKSk7CiAgICAgaWYg
KCFmaWx0ZXJSZW5kZXJlci0+YnVpbGQocmVuZGVyZXIsIG1fZmlsdGVyT3BlcmF0aW9ucywgRmls
dGVyRnVuY3Rpb24pKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlcklt
YWdlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmgKaW5k
ZXggNDJmMjJjZC4uNWIyNDAyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Zp
bHRlckltYWdlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VW
YWx1ZS5oCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIENTU0ZpbHRlckltYWdlVmFsdWUgOiBwdWJs
aWMgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWY8
Q1NTRmlsdGVySW1hZ2VWYWx1ZT4gY3JlYXRlKFBhc3NSZWY8Q1NTVmFsdWU+IGltYWdlVmFsdWUs
IFBhc3NSZWY8Q1NTVmFsdWU+IGZpbHRlclZhbHVlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgQ1NTRmlsdGVySW1hZ2VWYWx1ZShzdGQ6Om1vdmUoaW1hZ2VWYWx1ZSksIHN0
ZDo6bW92ZShmaWx0ZXJWYWx1ZSkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NT
RmlsdGVySW1hZ2VWYWx1ZShXVEY6Om1vdmUoaW1hZ2VWYWx1ZSksIFdURjo6bW92ZShmaWx0ZXJW
YWx1ZSkpKTsKICAgICB9CiAKICAgICB+Q1NTRmlsdGVySW1hZ2VWYWx1ZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZS5jcHAKaW5kZXggNGI3YTlhZC4uYjUzNDYzYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udEZhY2UuY3BwCkBAIC03MCw3ICs3MCw3IEBAIHZvaWQgQ1NTRm9udEZhY2U6OnJlbW92
ZWRGcm9tU2VnbWVudGVkRm9udEZhY2UoQ1NTU2VnbWVudGVkRm9udEZhY2UqIHNlZ21lbnRlZEZv
CiB2b2lkIENTU0ZvbnRGYWNlOjphZGRTb3VyY2Uoc3RkOjp1bmlxdWVfcHRyPENTU0ZvbnRGYWNl
U291cmNlPiBzb3VyY2UpCiB7CiAgICAgc291cmNlLT5zZXRGb250RmFjZSh0aGlzKTsKLSAgICBt
X3NvdXJjZXMuYXBwZW5kKHN0ZDo6bW92ZShzb3VyY2UpKTsKKyAgICBtX3NvdXJjZXMuYXBwZW5k
KFdURjo6bW92ZShzb3VyY2UpKTsKIH0KIAogdm9pZCBDU1NGb250RmFjZTo6Zm9udExvYWRlZChD
U1NGb250RmFjZVNvdXJjZSogc291cmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9y
LmNwcAppbmRleCAwMTIxNzQ4Li5mNzgxNWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRm9udFNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNl
bGVjdG9yLmNwcApAQCAtMjM5LDcgKzIzOSw3IEBAIHZvaWQgQ1NTRm9udFNlbGVjdG9yOjphZGRG
b250RmFjZVJ1bGUoY29uc3QgU3R5bGVSdWxlRm9udEZhY2UqIGZvbnRGYWNlUnVsZSkKICNpZiBF
TkFCTEUoU1ZHX0ZPTlRTKQogICAgICAgICAgICAgc291cmNlLT5zZXRTVkdGb250RmFjZUVsZW1l
bnQoaXRlbS0+c3ZnRm9udEZhY2VFbGVtZW50KCkpOwogI2VuZGlmCi0gICAgICAgICAgICBmb250
RmFjZS0+YWRkU291cmNlKHN0ZDo6bW92ZShzb3VyY2UpKTsKKyAgICAgICAgICAgIGZvbnRGYWNl
LT5hZGRTb3VyY2UoV1RGOjptb3ZlKHNvdXJjZSkpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0z
MTEsNyArMzExLDcgQEAgdm9pZCBDU1NGb250U2VsZWN0b3I6OmFkZEZvbnRGYWNlUnVsZShjb25z
dCBTdHlsZVJ1bGVGb250RmFjZSogZm9udEZhY2VSdWxlKQogICAgICAgICAgICAgICAgICAgICBm
YW1pbHlMb2NhbGx5SW5zdGFsbGVkRmFjZXMtPmFwcGVuZChsb2NhbGx5SW5zdGFsbGVkRm9udEZh
Y2UpOwogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIG1fbG9jYWxseUluc3Rh
bGxlZEZvbnRGYWNlcy5zZXQoZmFtaWx5TmFtZSwgc3RkOjptb3ZlKGZhbWlseUxvY2FsbHlJbnN0
YWxsZWRGYWNlcykpOworICAgICAgICAgICAgICAgIG1fbG9jYWxseUluc3RhbGxlZEZvbnRGYWNl
cy5zZXQoZmFtaWx5TmFtZSwgV1RGOjptb3ZlKGZhbWlseUxvY2FsbHlJbnN0YWxsZWRGYWNlcykp
OwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NHcmFtbWFyLnkuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55Lmlu
CmluZGV4IDM1ZDlhYmQuLmIxZGJmZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NHcmFtbWFyLnkuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgpA
QCAtNjU2LDcgKzY1Niw3IEBAIG1lZGlhX2xpc3Q6CiAgICAgICAgICQkID0gJDE7CiAgICAgICAg
IHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVF1ZXJ5PiBtZWRpYVF1ZXJ5KCQ0KTsKICAgICAgICAgaWYg
KCQkKSB7Ci0gICAgICAgICAgICAkJC0+YWRkTWVkaWFRdWVyeShzdGQ6Om1vdmUobWVkaWFRdWVy
eSkpOworICAgICAgICAgICAgJCQtPmFkZE1lZGlhUXVlcnkoV1RGOjptb3ZlKG1lZGlhUXVlcnkp
KTsKICAgICAgICAgICAgIHBhcnNlci0+dXBkYXRlTGFzdE1lZGlhTGluZSgkJCk7CiAgICAgICAg
IH0KICAgICB9CkBAIC03NTMsNyArNzUzLDcgQEAgc3VwcG9ydHNfZGVjbGFyYXRpb25fY29uZGl0
aW9uOgogICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJz
ZXIpOwogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyVmFsdWVMaXN0PiBwcm9wZXJ0
eVZhbHVlKCQ2KTsKICAgICAgICAgaWYgKCQzICYmIHByb3BlcnR5VmFsdWUpIHsKLSAgICAgICAg
ICAgIHAtPm1fdmFsdWVMaXN0ID0gc3RkOjptb3ZlKHByb3BlcnR5VmFsdWUpOworICAgICAgICAg
ICAgcC0+bV92YWx1ZUxpc3QgPSBXVEY6Om1vdmUocHJvcGVydHlWYWx1ZSk7CiAgICAgICAgICAg
ICBpbnQgb2xkUGFyc2VkUHJvcGVydGllcyA9IHAtPm1fcGFyc2VkUHJvcGVydGllcy5zaXplKCk7
CiAgICAgICAgICAgICAkJCA9IHAtPnBhcnNlVmFsdWUoJDMsICQ3KTsKICAgICAgICAgICAgIC8v
IFdlIGp1c3QgbmVlZCB0byBrbm93IGlmIHRoZSBkZWNsYXJhdGlvbiBpcyBzdXBwb3J0ZWQgYXMg
aXQgaXMgd3JpdHRlbi4gUm9sbGJhY2sgYW55IGFkZGl0aW9ucy4KQEAgLTEwNTEsNyArMTA1MSw3
IEBAIHNlbGVjdG9yX2xpc3Q6CiAgICAgICAgICQkID0gbnVsbHB0cjsKICAgICAgICAgaWYgKHNl
bGVjdG9yTGlzdCAmJiBzZWxlY3RvcikgewogICAgICAgICAgICAgJCQgPSBzZWxlY3Rvckxpc3Qu
cmVsZWFzZSgpOwotICAgICAgICAgICAgJCQtPmFwcGVuZChzdGQ6Om1vdmUoc2VsZWN0b3IpKTsK
KyAgICAgICAgICAgICQkLT5hcHBlbmQoV1RGOjptb3ZlKHNlbGVjdG9yKSk7CiAgICAgICAgICAg
ICBwYXJzZXItPnVwZGF0ZUxhc3RTZWxlY3RvckxpbmVBbmRQb3NpdGlvbigpOwogICAgICAgICB9
CiAgICAgfQpAQCAtMTA3Miw3ICsxMDcyLDcgQEAgc2VsZWN0b3I6CiAgICAgICAgIHN0ZDo6dW5p
cXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gcmlnaHQoJDIpOwogICAgICAgICAkJCA9IG51bGxw
dHI7CiAgICAgICAgIGlmIChsZWZ0ICYmIHJpZ2h0KSB7Ci0gICAgICAgICAgICByaWdodC0+YXBw
ZW5kVGFnSGlzdG9yeShDU1NTZWxlY3Rvcjo6RGVzY2VuZGFudCwgc3RkOjptb3ZlKGxlZnQpKTsK
KyAgICAgICAgICAgIHJpZ2h0LT5hcHBlbmRUYWdIaXN0b3J5KENTU1NlbGVjdG9yOjpEZXNjZW5k
YW50LCBXVEY6Om1vdmUobGVmdCkpOwogICAgICAgICAgICAgJCQgPSByaWdodC5yZWxlYXNlKCk7
CiAgICAgICAgIH0KICAgICB9CkBAIC0xMDgxLDcgKzEwODEsNyBAQCBzZWxlY3RvcjoKICAgICAg
ICAgc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPiByaWdodCgkMyk7CiAgICAgICAg
ICQkID0gbnVsbHB0cjsKICAgICAgICAgaWYgKGxlZnQgJiYgcmlnaHQpIHsKLSAgICAgICAgICAg
IHJpZ2h0LT5hcHBlbmRUYWdIaXN0b3J5KCQyLCBzdGQ6Om1vdmUobGVmdCkpOworICAgICAgICAg
ICAgcmlnaHQtPmFwcGVuZFRhZ0hpc3RvcnkoJDIsIFdURjo6bW92ZShsZWZ0KSk7CiAgICAgICAg
ICAgICAkJCA9IHJpZ2h0LnJlbGVhc2UoKTsKICAgICAgICAgfQogICAgIH0KQEAgLTExNDAsNyAr
MTE0MCw3IEBAIHNpbXBsZV9zZWxlY3Rvcl9saXN0OgogICAgICAgICAkJCA9IG51bGxwdHI7CiAg
ICAgICAgIGlmIChsaXN0ICYmIHNlbGVjdG9yKSB7CiAgICAgICAgICAgICAkJCA9IGxpc3QucmVs
ZWFzZSgpOwotICAgICAgICAgICAgJCQtPmFwcGVuZChzdGQ6Om1vdmUoc2VsZWN0b3IpKTsKKyAg
ICAgICAgICAgICQkLT5hcHBlbmQoV1RGOjptb3ZlKHNlbGVjdG9yKSk7CiAgICAgICAgIH0KICAg
ICB9CiAgICAgfCBzaW1wbGVfc2VsZWN0b3JfbGlzdCBlcnJvciB7CkBAIC0xMTY4LDcgKzExNjgs
NyBAQCBzcGVjaWZpZXJfbGlzdDoKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNl
bGVjdG9yPiBzcGVjaWZpZXIoJDIpOwogICAgICAgICAkJCA9IG51bGxwdHI7CiAgICAgICAgIGlm
IChsaXN0ICYmIHNwZWNpZmllcikKLSAgICAgICAgICAgICQkID0gcGFyc2VyLT5yZXdyaXRlU3Bl
Y2lmaWVycyhzdGQ6Om1vdmUobGlzdCksIHN0ZDo6bW92ZShzcGVjaWZpZXIpKS5yZWxlYXNlKCk7
CisgICAgICAgICAgICAkJCA9IHBhcnNlci0+cmV3cml0ZVNwZWNpZmllcnMoV1RGOjptb3ZlKGxp
c3QpLCBXVEY6Om1vdmUoc3BlY2lmaWVyKSkucmVsZWFzZSgpOwogICAgIH0KICAgICB8IHNwZWNp
Zmllcl9saXN0IGVycm9yIHsKICAgICAgICAgJCQgPSBudWxscHRyOwpAQCAtMTMzOSw3ICsxMzM5
LDcgQEAgcHNldWRvOgogICAgICAgICAgICAgJCQtPnNldE1hdGNoKENTU1NlbGVjdG9yOjpQc2V1
ZG9DbGFzcyk7CiAKICAgICAgICAgICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2Vy
U2VsZWN0b3I+PiBzZWxlY3RvclZlY3RvcjsKLSAgICAgICAgICAgIHNlbGVjdG9yVmVjdG9yLmFw
cGVuZChzdGQ6Om1vdmUoc2VsZWN0b3IpKTsKKyAgICAgICAgICAgIHNlbGVjdG9yVmVjdG9yLmFw
cGVuZChXVEY6Om1vdmUoc2VsZWN0b3IpKTsKICAgICAgICAgICAgICQkLT5hZG9wdFNlbGVjdG9y
VmVjdG9yKHNlbGVjdG9yVmVjdG9yKTsKICAgICAgICAgICAgICQkLT5zZXRQc2V1ZG9DbGFzc1Zh
bHVlKCQyKTsKICAgICAgICAgfQpAQCAtMTM4OCw3ICsxMzg4LDcgQEAgZGVjbGFyYXRpb246CiAg
ICAgICAgIGJvb2wgaXNQcm9wZXJ0eVBhcnNlZCA9IGZhbHNlOwogICAgICAgICBzdGQ6OnVuaXF1
ZV9wdHI8Q1NTUGFyc2VyVmFsdWVMaXN0PiBwcm9wZXJ0eVZhbHVlKCQ0KTsKICAgICAgICAgaWYg
KCQxICYmIHByb3BlcnR5VmFsdWUpIHsKLSAgICAgICAgICAgIHBhcnNlci0+bV92YWx1ZUxpc3Qg
PSBzdGQ6Om1vdmUocHJvcGVydHlWYWx1ZSk7CisgICAgICAgICAgICBwYXJzZXItPm1fdmFsdWVM
aXN0ID0gV1RGOjptb3ZlKHByb3BlcnR5VmFsdWUpOwogICAgICAgICAgICAgaW50IG9sZFBhcnNl
ZFByb3BlcnRpZXMgPSBwYXJzZXItPm1fcGFyc2VkUHJvcGVydGllcy5zaXplKCk7CiAgICAgICAg
ICAgICAkJCA9IHBhcnNlci0+cGFyc2VWYWx1ZSgkMSwgJDUpOwogICAgICAgICAgICAgaWYgKCEk
JCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggN2JjMTk3Mi4uNjgzNWQ2NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTE0NTIsNyArMTQ1Miw3IEBAIHN0ZDo6dW5pcXVlX3B0
cjxNZWRpYVF1ZXJ5PiBDU1NQYXJzZXI6OnBhcnNlTWVkaWFRdWVyeShjb25zdCBTdHJpbmcmIHN0
cmluZykKICAgICBzZXR1cFBhcnNlcigiQC13ZWJraXQtbWVkaWFxdWVyeSAiLCBzdHJpbmcsICJ9
ICIpOwogICAgIGNzc3l5cGFyc2UodGhpcyk7CiAKLSAgICByZXR1cm4gc3RkOjptb3ZlKG1fbWVk
aWFRdWVyeSk7CisgICAgcmV0dXJuIFdURjo6bW92ZShtX21lZGlhUXVlcnkpOwogfQogCiAjaWYg
RU5BQkxFKFBJQ1RVUkVfU0laRVMpCkBAIC0xNDY2LDcgKzE0NjYsNyBAQCBzdGQ6OnVuaXF1ZV9w
dHI8U291cmNlU2l6ZUxpc3Q+IENTU1BhcnNlcjo6cGFyc2VTaXplc0F0dHJpYnV0ZShjb25zdCBT
dHJpbmcmIHN0cgogICAgIHNldHVwUGFyc2VyKCJALXdlYmtpdC1zaXplc2F0dHIgIiwgc3RyaW5n
LCAifSIpOwogICAgIGNzc3l5cGFyc2UodGhpcyk7CiAKLSAgICByZXR1cm4gc3RkOjptb3ZlKG1f
c291cmNlU2l6ZUxpc3QpOworICAgIHJldHVybiBXVEY6Om1vdmUobV9zb3VyY2VTaXplTGlzdCk7
CiB9CiAjZW5kaWYKIApAQCAtMTE0MjgsNyArMTE0MjgsNyBAQCB2b2lkIENTU1BhcnNlcjo6bG9n
RXJyb3IoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBpbnQgbGluZU51bWJlcikKIAogUGFzc1JlZlB0
cjxTdHlsZVJ1bGVLZXlmcmFtZXM+IENTU1BhcnNlcjo6Y3JlYXRlS2V5ZnJhbWVzUnVsZShjb25z
dCBTdHJpbmcmIG5hbWUsIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8UmVmUHRyPFN0eWxlS2V5ZnJh
bWU+Pj4gcG9wS2V5ZnJhbWVzKQogewotICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8UmVmUHRy
PFN0eWxlS2V5ZnJhbWU+Pj4ga2V5ZnJhbWVzID0gc3RkOjptb3ZlKHBvcEtleWZyYW1lcyk7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxSZWZQdHI8U3R5bGVLZXlmcmFtZT4+PiBrZXlmcmFt
ZXMgPSBXVEY6Om1vdmUocG9wS2V5ZnJhbWVzKTsKICAgICBtX2FsbG93SW1wb3J0UnVsZXMgPSBt
X2FsbG93TmFtZXNwYWNlRGVjbGFyYXRpb25zID0gZmFsc2U7CiAgICAgUmVmUHRyPFN0eWxlUnVs
ZUtleWZyYW1lcz4gcnVsZSA9IFN0eWxlUnVsZUtleWZyYW1lczo6Y3JlYXRlKCk7CiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBrZXlmcmFtZXMtPnNpemUoKTsgKytpKQpAQCAtMTE1MzgsMTUg
KzExNTM4LDE1IEBAIHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gQ1NTUGFyc2Vy
OjpyZXdyaXRlU3BlY2lmaWVycyhzdGQ6OnVuaXF1ZV9wdHI8CiB7CiAgICAgaWYgKG5ld1NwZWNp
Zmllci0+aXNDdXN0b21Qc2V1ZG9FbGVtZW50KCkgfHwgbmV3U3BlY2lmaWVyLT5pc1BzZXVkb0Vs
ZW1lbnRDdWVGdW5jdGlvbigpKSB7CiAgICAgICAgIC8vIFVua25vd24gcHNldWRvIGVsZW1lbnQg
YWx3YXlzIGdvZXMgYXQgdGhlIHRvcCBvZiBzZWxlY3RvciBjaGFpbi4KLSAgICAgICAgbmV3U3Bl
Y2lmaWVyLT5hcHBlbmRUYWdIaXN0b3J5KENTU1NlbGVjdG9yOjpTaGFkb3dEZXNjZW5kYW50LCBz
dGQ6Om1vdmUoc3BlY2lmaWVycykpOworICAgICAgICBuZXdTcGVjaWZpZXItPmFwcGVuZFRhZ0hp
c3RvcnkoQ1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQsIFdURjo6bW92ZShzcGVjaWZpZXJz
KSk7CiAgICAgICAgIHJldHVybiBuZXdTcGVjaWZpZXI7CiAgICAgfQogICAgIGlmIChzcGVjaWZp
ZXJzLT5pc0N1c3RvbVBzZXVkb0VsZW1lbnQoKSkgewogICAgICAgICAvLyBTcGVjaWZpZXJzIGZv
ciB1bmtub3duIHBzZXVkbyBlbGVtZW50IGdvIHJpZ2h0IGJlaGluZCBpdCBpbiB0aGUgY2hhaW4u
Ci0gICAgICAgIHNwZWNpZmllcnMtPmluc2VydFRhZ0hpc3RvcnkoQ1NTU2VsZWN0b3I6OlN1YlNl
bGVjdG9yLCBzdGQ6Om1vdmUobmV3U3BlY2lmaWVyKSwgQ1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2Nl
bmRhbnQpOworICAgICAgICBzcGVjaWZpZXJzLT5pbnNlcnRUYWdIaXN0b3J5KENTU1NlbGVjdG9y
OjpTdWJTZWxlY3RvciwgV1RGOjptb3ZlKG5ld1NwZWNpZmllciksIENTU1NlbGVjdG9yOjpTaGFk
b3dEZXNjZW5kYW50KTsKICAgICAgICAgcmV0dXJuIHNwZWNpZmllcnM7CiAgICAgfQotICAgIHNw
ZWNpZmllcnMtPmFwcGVuZFRhZ0hpc3RvcnkoQ1NTU2VsZWN0b3I6OlN1YlNlbGVjdG9yLCBzdGQ6
Om1vdmUobmV3U3BlY2lmaWVyKSk7CisgICAgc3BlY2lmaWVycy0+YXBwZW5kVGFnSGlzdG9yeShD
U1NTZWxlY3Rvcjo6U3ViU2VsZWN0b3IsIFdURjo6bW92ZShuZXdTcGVjaWZpZXIpKTsKICAgICBy
ZXR1cm4gc3BlY2lmaWVyczsKIH0KIApAQCAtMTE1NTgsNyArMTE1NTgsNyBAQCBQYXNzUmVmUHRy
PFN0eWxlUnVsZUJhc2U+IENTU1BhcnNlcjo6Y3JlYXRlUGFnZVJ1bGUoc3RkOjp1bmlxdWVfcHRy
PENTU1BhcnNlclNlbAogICAgIGlmIChwYWdlU2VsZWN0b3IpIHsKICAgICAgICAgcnVsZSA9IFN0
eWxlUnVsZVBhZ2U6OmNyZWF0ZShjcmVhdGVTdHlsZVByb3BlcnRpZXMoKSk7CiAgICAgICAgIFZl
Y3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+PiBzZWxlY3RvclZlY3RvcjsK
LSAgICAgICAgc2VsZWN0b3JWZWN0b3IuYXBwZW5kKHN0ZDo6bW92ZShwYWdlU2VsZWN0b3IpKTsK
KyAgICAgICAgc2VsZWN0b3JWZWN0b3IuYXBwZW5kKFdURjo6bW92ZShwYWdlU2VsZWN0b3IpKTsK
ICAgICAgICAgcnVsZS0+cGFyc2VyQWRvcHRTZWxlY3RvclZlY3RvcihzZWxlY3RvclZlY3Rvcik7
CiAgICAgICAgIHByb2Nlc3NBbmRBZGROZXdSdWxlVG9Tb3VyY2VUcmVlSWZOZWVkZWQoKTsKICAg
ICB9IGVsc2UKQEAgLTExNTcxLDcgKzExNTcxLDcgQEAgc3RkOjp1bmlxdWVfcHRyPFZlY3Rvcjxz
dGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+Pj4gQ1NTUGFyc2VyOjpjcmVhdGVTZWwK
IHsKICAgICBpZiAobV9yZWN5Y2xlZFNlbGVjdG9yVmVjdG9yKSB7CiAgICAgICAgIG1fcmVjeWNs
ZWRTZWxlY3RvclZlY3Rvci0+c2hyaW5rKDApOwotICAgICAgICByZXR1cm4gc3RkOjptb3ZlKG1f
cmVjeWNsZWRTZWxlY3RvclZlY3Rvcik7CisgICAgICAgIHJldHVybiBXVEY6Om1vdmUobV9yZWN5
Y2xlZFNlbGVjdG9yVmVjdG9yKTsKICAgICB9CiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8
VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4+PigpOwogfQpAQCAtMTE1
NzksNyArMTE1NzksNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxD
U1NQYXJzZXJTZWxlY3Rvcj4+PiBDU1NQYXJzZXI6OmNyZWF0ZVNlbAogdm9pZCBDU1NQYXJzZXI6
OnJlY3ljbGVTZWxlY3RvclZlY3RvcihzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5pcXVl
X3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4+PiB2ZWN0b3IpCiB7CiAgICAgaWYgKHZlY3RvciAmJiAh
bV9yZWN5Y2xlZFNlbGVjdG9yVmVjdG9yKQotICAgICAgICBtX3JlY3ljbGVkU2VsZWN0b3JWZWN0
b3IgPSBzdGQ6Om1vdmUodmVjdG9yKTsKKyAgICAgICAgbV9yZWN5Y2xlZFNlbGVjdG9yVmVjdG9y
ID0gV1RGOjptb3ZlKHZlY3Rvcik7CiB9CiAKIFBhc3NSZWZQdHI8U3R5bGVSdWxlQmFzZT4gQ1NT
UGFyc2VyOjpjcmVhdGVSZWdpb25SdWxlKFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2Vy
U2VsZWN0b3I+PiogcmVnaW9uU2VsZWN0b3IsIFJ1bGVMaXN0KiBydWxlcykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlclZhbHVlcy5jcHAKaW5kZXggYzIzZDhiMC4uM2NmZDFkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAKQEAgLTIzOCwxMyArMjM4LDEzIEBAIENTU1Bh
cnNlclNlbGVjdG9yOjp+Q1NTUGFyc2VyU2VsZWN0b3IoKQogICAgIGlmICghbV90YWdIaXN0b3J5
KQogICAgICAgICByZXR1cm47CiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJT
ZWxlY3Rvcj4sIDE2PiB0b0RlbGV0ZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2Vs
ZWN0b3I+IHNlbGVjdG9yID0gc3RkOjptb3ZlKG1fdGFnSGlzdG9yeSk7CisgICAgc3RkOjp1bmlx
dWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPiBzZWxlY3RvciA9IFdURjo6bW92ZShtX3RhZ0hpc3Rv
cnkpOwogICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJz
ZXJTZWxlY3Rvcj4gbmV4dCA9IHN0ZDo6bW92ZShzZWxlY3Rvci0+bV90YWdIaXN0b3J5KTsKLSAg
ICAgICAgdG9EZWxldGUuYXBwZW5kKHN0ZDo6bW92ZShzZWxlY3RvcikpOworICAgICAgICBzdGQ6
OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IG5leHQgPSBXVEY6Om1vdmUoc2VsZWN0b3It
Pm1fdGFnSGlzdG9yeSk7CisgICAgICAgIHRvRGVsZXRlLmFwcGVuZChXVEY6Om1vdmUoc2VsZWN0
b3IpKTsKICAgICAgICAgaWYgKCFuZXh0KQogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIHNl
bGVjdG9yID0gc3RkOjptb3ZlKG5leHQpOworICAgICAgICBzZWxlY3RvciA9IFdURjo6bW92ZShu
ZXh0KTsKICAgICB9CiB9CiAKQEAgLTI1Miw3ICsyNTIsNyBAQCB2b2lkIENTU1BhcnNlclNlbGVj
dG9yOjphZG9wdFNlbGVjdG9yVmVjdG9yKFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2Vy
U2VsZQogewogICAgIGF1dG8gc2VsZWN0b3JMaXN0ID0gc3RkOjptYWtlX3VuaXF1ZTxDU1NTZWxl
Y3Rvckxpc3Q+KCk7CiAgICAgc2VsZWN0b3JMaXN0LT5hZG9wdFNlbGVjdG9yVmVjdG9yKHNlbGVj
dG9yVmVjdG9yKTsKLSAgICBtX3NlbGVjdG9yLT5zZXRTZWxlY3Rvckxpc3Qoc3RkOjptb3ZlKHNl
bGVjdG9yTGlzdCkpOworICAgIG1fc2VsZWN0b3ItPnNldFNlbGVjdG9yTGlzdChXVEY6Om1vdmUo
c2VsZWN0b3JMaXN0KSk7CiB9CiAKIHZvaWQgQ1NTUGFyc2VyU2VsZWN0b3I6OnNldFBzZXVkb0Ns
YXNzVmFsdWUoY29uc3QgQ1NTUGFyc2VyU3RyaW5nJiBwc2V1ZG9DbGFzc1N0cmluZykKQEAgLTI4
NiwxMCArMjg2LDEwIEBAIGJvb2wgQ1NTUGFyc2VyU2VsZWN0b3I6OmlzU2ltcGxlKCkgY29uc3QK
IHZvaWQgQ1NTUGFyc2VyU2VsZWN0b3I6Omluc2VydFRhZ0hpc3RvcnkoQ1NTU2VsZWN0b3I6OlJl
bGF0aW9uIGJlZm9yZSwgc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPiBzZWxlY3Rv
ciwgQ1NTU2VsZWN0b3I6OlJlbGF0aW9uIGFmdGVyKQogewogICAgIGlmIChtX3RhZ0hpc3Rvcnkp
Ci0gICAgICAgIHNlbGVjdG9yLT5zZXRUYWdIaXN0b3J5KHN0ZDo6bW92ZShtX3RhZ0hpc3Rvcnkp
KTsKKyAgICAgICAgc2VsZWN0b3ItPnNldFRhZ0hpc3RvcnkoV1RGOjptb3ZlKG1fdGFnSGlzdG9y
eSkpOwogICAgIHNldFJlbGF0aW9uKGJlZm9yZSk7CiAgICAgc2VsZWN0b3ItPnNldFJlbGF0aW9u
KGFmdGVyKTsKLSAgICBtX3RhZ0hpc3RvcnkgPSBzdGQ6Om1vdmUoc2VsZWN0b3IpOworICAgIG1f
dGFnSGlzdG9yeSA9IFdURjo6bW92ZShzZWxlY3Rvcik7CiB9CiAKIHZvaWQgQ1NTUGFyc2VyU2Vs
ZWN0b3I6OmFwcGVuZFRhZ0hpc3RvcnkoQ1NTU2VsZWN0b3I6OlJlbGF0aW9uIHJlbGF0aW9uLCBz
dGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IHNlbGVjdG9yKQpAQCAtMjk4LDE1ICsy
OTgsMTUgQEAgdm9pZCBDU1NQYXJzZXJTZWxlY3Rvcjo6YXBwZW5kVGFnSGlzdG9yeShDU1NTZWxl
Y3Rvcjo6UmVsYXRpb24gcmVsYXRpb24sIHN0ZDo6dW4KICAgICB3aGlsZSAoZW5kLT50YWdIaXN0
b3J5KCkpCiAgICAgICAgIGVuZCA9IGVuZC0+dGFnSGlzdG9yeSgpOwogICAgIGVuZC0+c2V0UmVs
YXRpb24ocmVsYXRpb24pOwotICAgIGVuZC0+c2V0VGFnSGlzdG9yeShzdGQ6Om1vdmUoc2VsZWN0
b3IpKTsKKyAgICBlbmQtPnNldFRhZ0hpc3RvcnkoV1RGOjptb3ZlKHNlbGVjdG9yKSk7CiB9CiAK
IHZvaWQgQ1NTUGFyc2VyU2VsZWN0b3I6OnByZXBlbmRUYWdTZWxlY3Rvcihjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdRTmFtZSwgYm9vbCB0YWdJc0Zvck5hbWVzcGFjZVJ1bGUpCiB7CiAgICAgYXV0
byBzZWNvbmQgPSBzdGQ6Om1ha2VfdW5pcXVlPENTU1BhcnNlclNlbGVjdG9yPigpOwotICAgIHNl
Y29uZC0+bV9zZWxlY3RvciA9IHN0ZDo6bW92ZShtX3NlbGVjdG9yKTsKLSAgICBzZWNvbmQtPm1f
dGFnSGlzdG9yeSA9IHN0ZDo6bW92ZShtX3RhZ0hpc3RvcnkpOwotICAgIG1fdGFnSGlzdG9yeSA9
IHN0ZDo6bW92ZShzZWNvbmQpOworICAgIHNlY29uZC0+bV9zZWxlY3RvciA9IFdURjo6bW92ZSht
X3NlbGVjdG9yKTsKKyAgICBzZWNvbmQtPm1fdGFnSGlzdG9yeSA9IFdURjo6bW92ZShtX3RhZ0hp
c3RvcnkpOworICAgIG1fdGFnSGlzdG9yeSA9IFdURjo6bW92ZShzZWNvbmQpOwogCiAgICAgbV9z
ZWxlY3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8Q1NTU2VsZWN0b3I+KHRhZ1FOYW1lLCB0YWdJc0Zv
ck5hbWVzcGFjZVJ1bGUpOwogICAgIG1fc2VsZWN0b3ItPm1fcmVsYXRpb24gPSBDU1NTZWxlY3Rv
cjo6U3ViU2VsZWN0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2Vy
VmFsdWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmgKaW5kZXggZGQ5
ZjE2MS4uYjRmOTI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZh
bHVlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaApAQCAtMTkw
LDcgKzE5MCw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBDU1NQYXJzZXJTZWxlY3Rvcihjb25z
dCBRdWFsaWZpZWROYW1lJik7CiAgICAgfkNTU1BhcnNlclNlbGVjdG9yKCk7CiAKLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8Q1NTU2VsZWN0b3I+IHJlbGVhc2VTZWxlY3RvcigpIHsgcmV0dXJuIHN0ZDo6
bW92ZShtX3NlbGVjdG9yKTsgfQorICAgIHN0ZDo6dW5pcXVlX3B0cjxDU1NTZWxlY3Rvcj4gcmVs
ZWFzZVNlbGVjdG9yKCkgeyByZXR1cm4gV1RGOjptb3ZlKG1fc2VsZWN0b3IpOyB9CiAKICAgICB2
b2lkIHNldFZhbHVlKGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpIHsgbV9zZWxlY3Rvci0+c2V0
VmFsdWUodmFsdWUpOyB9CiAgICAgdm9pZCBzZXRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdmFsdWUsIGJvb2wgaXNDYXNlSW5zZW5zaXRpdmUpIHsgbV9zZWxlY3Rvci0+c2V0QXR0cmli
dXRlKHZhbHVlLCBpc0Nhc2VJbnNlbnNpdGl2ZSk7IH0KQEAgLTIxOSw3ICsyMTksNyBAQCBwdWJs
aWM6CiAgICAgYm9vbCBoYXNTaGFkb3dEZXNjZW5kYW50KCkgY29uc3Q7CiAKICAgICBDU1NQYXJz
ZXJTZWxlY3RvciogdGFnSGlzdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fdGFnSGlzdG9yeS5nZXQo
KTsgfQotICAgIHZvaWQgc2V0VGFnSGlzdG9yeShzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2Vs
ZWN0b3I+IHNlbGVjdG9yKSB7IG1fdGFnSGlzdG9yeSA9IHN0ZDo6bW92ZShzZWxlY3Rvcik7IH0K
KyAgICB2b2lkIHNldFRhZ0hpc3Rvcnkoc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9y
PiBzZWxlY3RvcikgeyBtX3RhZ0hpc3RvcnkgPSBXVEY6Om1vdmUoc2VsZWN0b3IpOyB9CiAgICAg
dm9pZCBjbGVhclRhZ0hpc3RvcnkoKSB7IG1fdGFnSGlzdG9yeS5yZXNldCgpOyB9CiAgICAgdm9p
ZCBpbnNlcnRUYWdIaXN0b3J5KENTU1NlbGVjdG9yOjpSZWxhdGlvbiBiZWZvcmUsIHN0ZDo6dW5p
cXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4sIENTU1NlbGVjdG9yOjpSZWxhdGlvbiBhZnRlcik7
CiAgICAgdm9pZCBhcHBlbmRUYWdIaXN0b3J5KENTU1NlbGVjdG9yOjpSZWxhdGlvbiwgc3RkOjp1
bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1p
dGl2ZVZhbHVlLmNwcAppbmRleCBlYWUzNDQzLi5lZmYwNmFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKQEAgLTkzNCw3ICs5MzQsNyBAQCBORVZFUl9JTkxJTkUg
UGFzc1JlZjxTdHJpbmdJbXBsPiBDU1NQcmltaXRpdmVWYWx1ZTo6Zm9ybWF0TnVtYmVyVmFsdWUo
Y29uc3QgY2hhcgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzdWZmaXhMZW5ndGg7ICsr
aSkKICAgICAgICAgYnVmZmVyW2xlbmd0aCArIGldID0gc3RhdGljX2Nhc3Q8TENoYXI+KHN1ZmZp
eFtpXSk7CiAKLSAgICByZXR1cm4gc3RkOjptb3ZlKHN0cmluZyk7CisgICAgcmV0dXJuIFdURjo6
bW92ZShzdHJpbmcpOwogfQogCiB0ZW1wbGF0ZSA8dW5zaWduZWQgY2hhcmFjdGVyQ291bnQ+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAppbmRleCBiM2VlNzNhLi43MjRjNWRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKQEAgLTU2Miw3ICs1NjIsNyBAQCB2b2lkIENTU1NlbGVj
dG9yOjpzZXRBcmd1bWVudChjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQogdm9pZCBDU1NTZWxl
Y3Rvcjo6c2V0U2VsZWN0b3JMaXN0KHN0ZDo6dW5pcXVlX3B0cjxDU1NTZWxlY3Rvckxpc3Q+IHNl
bGVjdG9yTGlzdCkKIHsKICAgICBjcmVhdGVSYXJlRGF0YSgpOwotICAgIG1fZGF0YS5tX3JhcmVE
YXRhLT5tX3NlbGVjdG9yTGlzdCA9IHN0ZDo6bW92ZShzZWxlY3Rvckxpc3QpOworICAgIG1fZGF0
YS5tX3JhcmVEYXRhLT5tX3NlbGVjdG9yTGlzdCA9IFdURjo6bW92ZShzZWxlY3Rvckxpc3QpOwog
fQogCiBib29sIENTU1NlbGVjdG9yOjpwYXJzZU50aCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVTaGVldC5jcHAKaW5kZXggNjNhZDAxNi4uYjgzODM1NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVNoZWV0LmNwcApAQCAtNzYsMTIgKzc2LDEyIEBAIHN0YXRpYyBib29sIGlzQWNjZXB0
YWJsZUNTU1N0eWxlU2hlZXRQYXJlbnQoTm9kZSogcGFyZW50Tm9kZSkKIAogUGFzc1JlZjxDU1NT
dHlsZVNoZWV0PiBDU1NTdHlsZVNoZWV0OjpjcmVhdGUoUGFzc1JlZjxTdHlsZVNoZWV0Q29udGVu
dHM+IHNoZWV0LCBDU1NJbXBvcnRSdWxlKiBvd25lclJ1bGUpCiB7IAotICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IENTU1N0eWxlU2hlZXQoc3RkOjptb3ZlKHNoZWV0KSwgb3duZXJSdWxlKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTU3R5bGVTaGVldChXVEY6Om1vdmUoc2hlZXQpLCBv
d25lclJ1bGUpKTsKIH0KIAogUGFzc1JlZjxDU1NTdHlsZVNoZWV0PiBDU1NTdHlsZVNoZWV0Ojpj
cmVhdGUoUGFzc1JlZjxTdHlsZVNoZWV0Q29udGVudHM+IHNoZWV0LCBOb2RlKiBvd25lck5vZGUp
CiB7IAotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU1N0eWxlU2hlZXQoc3RkOjptb3ZlKHNo
ZWV0KSwgb3duZXJOb2RlLCBmYWxzZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU1N0
eWxlU2hlZXQoV1RGOjptb3ZlKHNoZWV0KSwgb3duZXJOb2RlLCBmYWxzZSkpOwogfQogCiBQYXNz
UmVmPENTU1N0eWxlU2hlZXQ+IENTU1N0eWxlU2hlZXQ6OmNyZWF0ZUlubGluZShOb2RlJiBvd25l
ck5vZGUsIGNvbnN0IFVSTCYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiBlbmNvZGluZykKQEAgLTkx
LDcgKzkxLDcgQEAgUGFzc1JlZjxDU1NTdHlsZVNoZWV0PiBDU1NTdHlsZVNoZWV0OjpjcmVhdGVJ
bmxpbmUoTm9kZSYgb3duZXJOb2RlLCBjb25zdCBVUkwmIGIKIH0KIAogQ1NTU3R5bGVTaGVldDo6
Q1NTU3R5bGVTaGVldChQYXNzUmVmPFN0eWxlU2hlZXRDb250ZW50cz4gY29udGVudHMsIENTU0lt
cG9ydFJ1bGUqIG93bmVyUnVsZSkKLSAgICA6IG1fY29udGVudHMoc3RkOjptb3ZlKGNvbnRlbnRz
KSkKKyAgICA6IG1fY29udGVudHMoV1RGOjptb3ZlKGNvbnRlbnRzKSkKICAgICAsIG1faXNJbmxp
bmVTdHlsZXNoZWV0KGZhbHNlKQogICAgICwgbV9pc0Rpc2FibGVkKGZhbHNlKQogICAgICwgbV9v
d25lck5vZGUoMCkKQEAgLTEwMSw3ICsxMDEsNyBAQCBDU1NTdHlsZVNoZWV0OjpDU1NTdHlsZVNo
ZWV0KFBhc3NSZWY8U3R5bGVTaGVldENvbnRlbnRzPiBjb250ZW50cywgQ1NTSW1wb3J0UnVsZQog
fQogCiBDU1NTdHlsZVNoZWV0OjpDU1NTdHlsZVNoZWV0KFBhc3NSZWY8U3R5bGVTaGVldENvbnRl
bnRzPiBjb250ZW50cywgTm9kZSogb3duZXJOb2RlLCBib29sIGlzSW5saW5lU3R5bGVzaGVldCkK
LSAgICA6IG1fY29udGVudHMoc3RkOjptb3ZlKGNvbnRlbnRzKSkKKyAgICA6IG1fY29udGVudHMo
V1RGOjptb3ZlKGNvbnRlbnRzKSkKICAgICAsIG1faXNJbmxpbmVTdHlsZXNoZWV0KGlzSW5saW5l
U3R5bGVzaGVldCkKICAgICAsIG1faXNEaXNhYmxlZChmYWxzZSkKICAgICAsIG1fb3duZXJOb2Rl
KG93bmVyTm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkU3R5
bGVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVy
LmNwcAppbmRleCBjNTM4ODdmLi4zYzYwYWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0Rl
cHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwCkBAIC0zNTQsNyArMzU0LDcgQEAgdGVtcGxhdGUgPGNv
bnN0IExlbmd0aCYgKFJlbmRlclN0eWxlOjoqZ2V0dGVyRnVuY3Rpb24pKCkgY29uc3QsCiAgICAg
ICAgICAgTGVuZ3RoVW5kZWZpbmVkIG5vbmVVbmRlZmluZWQgPSBVbmRlZmluZWREaXNhYmxlZD4K
IGNsYXNzIEFwcGx5UHJvcGVydHlMZW5ndGggewogcHVibGljOgotICAgIHN0YXRpYyB2b2lkIHNl
dFZhbHVlKFJlbmRlclN0eWxlKiBzdHlsZSwgTGVuZ3RoIHZhbHVlKSB7IChzdHlsZS0+KnNldHRl
ckZ1bmN0aW9uKShzdGQ6Om1vdmUodmFsdWUpKTsgfQorICAgIHN0YXRpYyB2b2lkIHNldFZhbHVl
KFJlbmRlclN0eWxlKiBzdHlsZSwgTGVuZ3RoIHZhbHVlKSB7IChzdHlsZS0+KnNldHRlckZ1bmN0
aW9uKShXVEY6Om1vdmUodmFsdWUpKTsgfQogICAgIHN0YXRpYyB2b2lkIGFwcGx5VmFsdWUoQ1NT
UHJvcGVydHlJRCwgU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciwgQ1NTVmFsdWUqIHZhbHVl
KQogICAgIHsKICAgICAgICAgaWYgKCF2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQpAQCAtNDI5
LDcgKzQyOSw3IEBAIHB1YmxpYzoKIHRlbXBsYXRlIDxjb25zdCBMZW5ndGhTaXplJiAoUmVuZGVy
U3R5bGU6OipnZXR0ZXJGdW5jdGlvbikoKSBjb25zdCwgdm9pZCAoUmVuZGVyU3R5bGU6OipzZXR0
ZXJGdW5jdGlvbikoTGVuZ3RoU2l6ZSksIExlbmd0aFNpemUgKCppbml0aWFsRnVuY3Rpb24pKCk+
CiBjbGFzcyBBcHBseVByb3BlcnR5Qm9yZGVyUmFkaXVzIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
dm9pZCBzZXRWYWx1ZShSZW5kZXJTdHlsZSogc3R5bGUsIExlbmd0aFNpemUgdmFsdWUpIHsgKHN0
eWxlLT4qc2V0dGVyRnVuY3Rpb24pKHN0ZDo6bW92ZSh2YWx1ZSkpOyB9CisgICAgc3RhdGljIHZv
aWQgc2V0VmFsdWUoUmVuZGVyU3R5bGUqIHN0eWxlLCBMZW5ndGhTaXplIHZhbHVlKSB7IChzdHls
ZS0+KnNldHRlckZ1bmN0aW9uKShXVEY6Om1vdmUodmFsdWUpKTsgfQogICAgIHN0YXRpYyB2b2lk
IGFwcGx5VmFsdWUoQ1NTUHJvcGVydHlJRCwgU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciwg
Q1NTVmFsdWUqIHZhbHVlKQogICAgIHsKICAgICAgICAgaWYgKCF2YWx1ZS0+aXNQcmltaXRpdmVW
YWx1ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RvY3VtZW50UnVsZVNldHMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RvY3VtZW50UnVsZVNldHMuY3BwCmluZGV4IDhmYTI3
MmEuLjI5MmE5YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Eb2N1bWVudFJ1bGVT
ZXRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRG9jdW1lbnRSdWxlU2V0cy5jcHAKQEAg
LTU0LDcgKzU0LDcgQEAgdm9pZCBEb2N1bWVudFJ1bGVTZXRzOjppbml0VXNlclN0eWxlKERvY3Vt
ZW50U3R5bGVTaGVldENvbGxlY3Rpb24mIHN0eWxlU2hlZXRDb2wKICAgICBjb2xsZWN0UnVsZXNG
cm9tVXNlclN0eWxlU2hlZXRzKHN0eWxlU2hlZXRDb2xsZWN0aW9uLmluamVjdGVkVXNlclN0eWxl
U2hlZXRzKCksICp0ZW1wVXNlclN0eWxlLCBtZWRpdW0sIHJlc29sdmVyKTsKICAgICBjb2xsZWN0
UnVsZXNGcm9tVXNlclN0eWxlU2hlZXRzKHN0eWxlU2hlZXRDb2xsZWN0aW9uLmRvY3VtZW50VXNl
clN0eWxlU2hlZXRzKCksICp0ZW1wVXNlclN0eWxlLCBtZWRpdW0sIHJlc29sdmVyKTsKICAgICBp
ZiAodGVtcFVzZXJTdHlsZS0+cnVsZUNvdW50KCkgPiAwIHx8IHRlbXBVc2VyU3R5bGUtPnBhZ2VS
dWxlcygpLnNpemUoKSA+IDApCi0gICAgICAgIG1fdXNlclN0eWxlID0gc3RkOjptb3ZlKHRlbXBV
c2VyU3R5bGUpOworICAgICAgICBtX3VzZXJTdHlsZSA9IFdURjo6bW92ZSh0ZW1wVXNlclN0eWxl
KTsKIH0KIAogdm9pZCBEb2N1bWVudFJ1bGVTZXRzOjpjb2xsZWN0UnVsZXNGcm9tVXNlclN0eWxl
U2hlZXRzKGNvbnN0IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4+JiB1c2VyU2hlZXRzLCBS
dWxlU2V0JiB1c2VyU3R5bGUsIGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImIG1lZGl1bSwgU3R5
bGVSZXNvbHZlciYgcmVzb2x2ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVk
aWFMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwCmluZGV4IDdkNDk0
YmMuLjk0NDUwODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwCkBAIC0xNDMsNyArMTQzLDcg
QEAgYm9vbCBNZWRpYVF1ZXJ5U2V0OjpwYXJzZShjb25zdCBTdHJpbmcmIG1lZGlhU3RyaW5nKQog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgbWVkaWFRdWVyeSA9IHN0ZDo6
bWFrZV91bmlxdWU8TWVkaWFRdWVyeT4oTWVkaWFRdWVyeTo6Tm9uZSwgbWVkaWFEZXNjcmlwdG9y
LCBudWxscHRyKTsKICAgICAgICAgfQotICAgICAgICByZXN1bHQuYXBwZW5kKHN0ZDo6bW92ZSht
ZWRpYVF1ZXJ5KSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoV1RGOjptb3ZlKG1lZGlhUXVlcnkp
KTsKICAgICB9CiAgICAgLy8gIiwsLCwiIGZhbGxzIHN0cmFpZ2h0IHRocm91Z2gsIGJ1dCBpcyBu
b3QgdmFsaWQgdW5sZXNzIGZhbGxiYWNrCiAgICAgaWYgKCFtX2ZhbGxiYWNrVG9EZXNjcmlwdG9y
ICYmIGxpc3QuaXNFbXB0eSgpKSB7CkBAIC0xNTEsNyArMTUxLDcgQEAgYm9vbCBNZWRpYVF1ZXJ5
U2V0OjpwYXJzZShjb25zdCBTdHJpbmcmIG1lZGlhU3RyaW5nKQogICAgICAgICBpZiAoIXN0cmlw
cGVkTWVkaWFTdHJpbmcuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KLSAgICBtX3F1ZXJpZXMgPSBzdGQ6Om1vdmUocmVzdWx0KTsKKyAgICBtX3F1ZXJpZXMgPSBX
VEY6Om1vdmUocmVzdWx0KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTY4LDcgKzE2OCw3
IEBAIGJvb2wgTWVkaWFRdWVyeVNldDo6YWRkKGNvbnN0IFN0cmluZyYgcXVlcnlTdHJpbmcpCiAg
ICAgaWYgKCFwYXJzZWRRdWVyeSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgbV9xdWVy
aWVzLmFwcGVuZChzdGQ6Om1vdmUocGFyc2VkUXVlcnkpKTsKKyAgICBtX3F1ZXJpZXMuYXBwZW5k
KFdURjo6bW92ZShwYXJzZWRRdWVyeSkpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0xOTcs
NyArMTk3LDcgQEAgYm9vbCBNZWRpYVF1ZXJ5U2V0OjpyZW1vdmUoY29uc3QgU3RyaW5nJiBxdWVy
eVN0cmluZ1RvUmVtb3ZlKQogCiB2b2lkIE1lZGlhUXVlcnlTZXQ6OmFkZE1lZGlhUXVlcnkoc3Rk
Ojp1bmlxdWVfcHRyPE1lZGlhUXVlcnk+IG1lZGlhUXVlcnkpCiB7Ci0gICAgbV9xdWVyaWVzLmFw
cGVuZChzdGQ6Om1vdmUobWVkaWFRdWVyeSkpOworICAgIG1fcXVlcmllcy5hcHBlbmQoV1RGOjpt
b3ZlKG1lZGlhUXVlcnkpKTsKIH0KIAogU3RyaW5nIE1lZGlhUXVlcnlTZXQ6Om1lZGlhVGV4dCgp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5jcHAKaW5kZXggZjFkYjNiZC4uYzZkZDUyYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcApAQCAtNzUsNyArNzUsNyBAQCBTdHJpbmcgTWVk
aWFRdWVyeTo6c2VyaWFsaXplKCkgY29uc3QKIE1lZGlhUXVlcnk6Ok1lZGlhUXVlcnkoUmVzdHJp
Y3RvciByLCBjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Np
b25WZWN0b3I+IGV4cHJzKQogICAgIDogbV9yZXN0cmljdG9yKHIpCiAgICAgLCBtX21lZGlhVHlw
ZShtZWRpYVR5cGUubG93ZXIoKSkKLSAgICAsIG1fZXhwcmVzc2lvbnMoc3RkOjptb3ZlKGV4cHJz
KSkKKyAgICAsIG1fZXhwcmVzc2lvbnMoV1RGOjptb3ZlKGV4cHJzKSkKICAgICAsIG1faWdub3Jl
ZChmYWxzZSkKIHsKICAgICBpZiAoIW1fZXhwcmVzc2lvbnMpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNw
cAppbmRleCBmMzNmZDM3Li43NzdlNzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
UnVsZVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwCkBAIC0yNjcs
NyArMjY3LDcgQEAgdm9pZCBSdWxlU2V0OjphZGRSZWdpb25SdWxlKFN0eWxlUnVsZVJlZ2lvbiog
cmVnaW9uUnVsZSwgYm9vbCBoYXNEb2N1bWVudFNlY3VyaXQKICAgICAvLyBVcGRhdGUgdGhlICJn
bG9iYWwiIHJ1bGUgY291bnQgc28gdGhhdCBwcm9wZXIgb3JkZXIgaXMgbWFpbnRhaW5lZAogICAg
IG1fcnVsZUNvdW50ID0gcmVnaW9uUnVsZVNldC0+bV9ydWxlQ291bnQ7CiAKLSAgICBtX3JlZ2lv
blNlbGVjdG9yc0FuZFJ1bGVTZXRzLmFwcGVuZChSdWxlU2V0U2VsZWN0b3JQYWlyKHJlZ2lvblJ1
bGUtPnNlbGVjdG9yTGlzdCgpLmZpcnN0KCksIHN0ZDo6bW92ZShyZWdpb25SdWxlU2V0KSkpOwor
ICAgIG1fcmVnaW9uU2VsZWN0b3JzQW5kUnVsZVNldHMuYXBwZW5kKFJ1bGVTZXRTZWxlY3RvclBh
aXIocmVnaW9uUnVsZS0+c2VsZWN0b3JMaXN0KCkuZmlyc3QoKSwgV1RGOjptb3ZlKHJlZ2lvblJ1
bGVTZXQpKSk7CiB9CiAKIHZvaWQgUnVsZVNldDo6YWRkQ2hpbGRSdWxlcyhjb25zdCBWZWN0b3I8
UmVmUHRyPFN0eWxlUnVsZUJhc2U+PiYgcnVsZXMsIGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3Im
IG1lZGl1bSwgU3R5bGVSZXNvbHZlciogcmVzb2x2ZXIsIGJvb2wgaGFzRG9jdW1lbnRTZWN1cml0
eU9yaWdpbiwgQWRkUnVsZUZsYWdzIGFkZFJ1bGVGbGFncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9SdWxlU2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5oCmluZGV4
IDcyMGM0N2IuLjcyMDE3YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaApAQCAtMTI4LDcgKzEyOCw3IEBA
IGNsYXNzIFJ1bGVTZXQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJ1bGVTZXQpOyBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBzdHJ1Y3QgUnVsZVNldFNlbGVjdG9y
UGFpciB7Ci0gICAgICAgIFJ1bGVTZXRTZWxlY3RvclBhaXIoY29uc3QgQ1NTU2VsZWN0b3IqIHNl
bGVjdG9yLCBzdGQ6OnVuaXF1ZV9wdHI8UnVsZVNldD4gcnVsZVNldCkgOiBzZWxlY3RvcihzZWxl
Y3RvciksIHJ1bGVTZXQoc3RkOjptb3ZlKHJ1bGVTZXQpKSB7IH0KKyAgICAgICAgUnVsZVNldFNl
bGVjdG9yUGFpcihjb25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IsIHN0ZDo6dW5pcXVlX3B0cjxS
dWxlU2V0PiBydWxlU2V0KSA6IHNlbGVjdG9yKHNlbGVjdG9yKSwgcnVsZVNldChXVEY6Om1vdmUo
cnVsZVNldCkpIHsgfQogICAgICAgICBSdWxlU2V0U2VsZWN0b3JQYWlyKGNvbnN0IFJ1bGVTZXRT
ZWxlY3RvclBhaXImIHBhaXIpIDogc2VsZWN0b3IocGFpci5zZWxlY3RvciksIHJ1bGVTZXQoY29u
c3RfY2FzdDxSdWxlU2V0U2VsZWN0b3JQYWlyKj4oJnBhaXIpLT5ydWxlU2V0LnJlbGVhc2UoKSkg
eyB9CiAKICAgICAgICAgY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4IDZlMDljYWYuLmRlOTg1YzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAgLTYwNSw3ICs2
MDUsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5U1ZHUHJvcGVydHkoQ1NTUHJvcGVydHlJ
RCBpZCwgQ1NTVmFsdWUqIHZhbHVlKQogICAgICAgICAgICAgQVNTRVJUKCFpdGVtLT5zdHlsZSk7
CiAKICAgICAgICAgICAgIGF1dG8gc2hhZG93RGF0YSA9IHN0ZDo6bWFrZV91bmlxdWU8U2hhZG93
RGF0YT4obG9jYXRpb24sIGJsdXIsIDAsIE5vcm1hbCwgZmFsc2UsIGNvbG9yLmlzVmFsaWQoKSA/
IGNvbG9yIDogQ29sb3I6OnRyYW5zcGFyZW50KTsKLSAgICAgICAgICAgIHN2Z1N0eWxlLnNldFNo
YWRvdyhzdGQ6Om1vdmUoc2hhZG93RGF0YSkpOworICAgICAgICAgICAgc3ZnU3R5bGUuc2V0U2hh
ZG93KFdURjo6bW92ZShzaGFkb3dEYXRhKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVZlY3RvckVmZmVjdDogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1NvdXJjZVNpemVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9Tb3VyY2VTaXplTGlzdC5jcHAKaW5kZXggN2ZhYzlhYy4uN2Q4NjJlMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL1NvdXJjZVNpemVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU291cmNlU2l6ZUxpc3QuY3BwCkBAIC00MSw3ICs0MSw3IEBAIGJvb2wgU291cmNlU2l6
ZTo6bWF0Y2goUmVuZGVyU3R5bGUmIHN0eWxlLCBGcmFtZSogZnJhbWUpCiAgICAgZXhwTGlzdC0+
YXBwZW5kKG1fbWVkaWFFeHAucmVsZWFzZSgpKTsKIAogICAgIFJlZlB0cjxNZWRpYVF1ZXJ5U2V0
PiBtZWRpYVF1ZXJ5U2V0ID0gTWVkaWFRdWVyeVNldDo6Y3JlYXRlKCk7Ci0gICAgbWVkaWFRdWVy
eVNldC0+YWRkTWVkaWFRdWVyeShzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUXVlcnk+KE1lZGlhUXVl
cnk6Ok5vbmUsICJhbGwiLCBzdGQ6Om1vdmUoZXhwTGlzdCkpKTsKKyAgICBtZWRpYVF1ZXJ5U2V0
LT5hZGRNZWRpYVF1ZXJ5KHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFRdWVyeT4oTWVkaWFRdWVyeTo6
Tm9uZSwgImFsbCIsIFdURjo6bW92ZShleHBMaXN0KSkpOwogCiAgICAgTWVkaWFRdWVyeUV2YWx1
YXRvciBtZWRpYVF1ZXJ5RXZhbHVhdG9yKCJzY3JlZW4iLCBmcmFtZSwgJnN0eWxlKTsKICAgICBy
ZXR1cm4gbWVkaWFRdWVyeUV2YWx1YXRvci5ldmFsKG1lZGlhUXVlcnlTZXQuZ2V0KCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NvdXJjZVNpemVMaXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU291cmNlU2l6ZUxpc3QuaAppbmRleCAxZDZhNWMwLi5kYTE2OTdiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU291cmNlU2l6ZUxpc3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU291cmNlU2l6ZUxpc3QuaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBGcmFtZTsK
IGNsYXNzIFNvdXJjZVNpemUgewogcHVibGljOgogICAgIFNvdXJjZVNpemUoc3RkOjp1bmlxdWVf
cHRyPE1lZGlhUXVlcnlFeHA+IG1lZGlhRXhwLCBjb25zdCBDU1NQYXJzZXJWYWx1ZSYgbGVuZ3Ro
KQotICAgICAgICA6IG1fbWVkaWFFeHAoc3RkOjptb3ZlKG1lZGlhRXhwKSkKKyAgICAgICAgOiBt
X21lZGlhRXhwKFdURjo6bW92ZShtZWRpYUV4cCkpCiAgICAgICAgICwgbV9sZW5ndGgobGVuZ3Ro
KQogICAgIHsKICAgICB9CkBAIC01Miw3ICs1Miw3IEBAIGNsYXNzIFNvdXJjZVNpemVMaXN0IHsK
IHB1YmxpYzoKICAgICB2b2lkIGFwcGVuZChzdGQ6OnVuaXF1ZV9wdHI8U291cmNlU2l6ZT4gc291
cmNlU2l6ZSkKICAgICB7Ci0gICAgICAgIG1fbGlzdC5hcHBlbmQoc3RkOjptb3ZlKHNvdXJjZVNp
emUpKTsKKyAgICAgICAgbV9saXN0LmFwcGVuZChXVEY6Om1vdmUoc291cmNlU2l6ZSkpOwogICAg
IH0KIAogICAgIHN0YXRpYyB1bnNpZ25lZCBwYXJzZVNpemVzQXR0cmlidXRlKGNvbnN0IFN0cmlu
ZyYgc2l6ZXNBdHRyaWJ1dGUsIFJlbmRlclZpZXcqLCBGcmFtZSopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDViZDM0NzEuLjc5Y2ZkYzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5jcHAKQEAgLTQyOCw3ICs0MjgsNyBAQCBpbmxpbmUgdm9pZCBTdHlsZVJl
c29sdmVyOjpTdGF0ZTo6aW5pdEZvclN0eWxlUmVzb2x2ZShEb2N1bWVudCYgZG9jdW1lbnQsIEVs
ZW1lbgogCiBpbmxpbmUgdm9pZCBTdHlsZVJlc29sdmVyOjpTdGF0ZTo6c2V0U3R5bGUoUGFzc1Jl
ZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgbV9zdHlsZSA9IHN0ZDo6bW92ZShzdHlsZSk7
CisgICAgbV9zdHlsZSA9IFdURjo6bW92ZShzdHlsZSk7CiAgICAgdXBkYXRlQ29udmVyc2lvbkRh
dGEoKTsKIH0KIApAQCAtMTU4NCw3ICsxNTg0LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphZGRU
b01hdGNoZWRQcm9wZXJ0aWVzQ2FjaGUoY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlLCBjb25zdAog
ICAgIC8vIFRoZSBSZW5kZXJTdHlsZSBpbiB0aGUgY2FjaGUgaXMgcmVhbGx5IGp1c3QgYSBob2xk
ZXIgZm9yIHRoZSBzdWJzdHJ1Y3R1cmVzIGFuZCBuZXZlciB1c2VkIGFzLWlzLgogICAgIGNhY2hl
SXRlbS5yZW5kZXJTdHlsZSA9IFJlbmRlclN0eWxlOjpjbG9uZShzdHlsZSk7CiAgICAgY2FjaGVJ
dGVtLnBhcmVudFJlbmRlclN0eWxlID0gUmVuZGVyU3R5bGU6OmNsb25lKHBhcmVudFN0eWxlKTsK
LSAgICBtX21hdGNoZWRQcm9wZXJ0aWVzQ2FjaGUuYWRkKGhhc2gsIHN0ZDo6bW92ZShjYWNoZUl0
ZW0pKTsKKyAgICBtX21hdGNoZWRQcm9wZXJ0aWVzQ2FjaGUuYWRkKGhhc2gsIFdURjo6bW92ZShj
YWNoZUl0ZW0pKTsKIH0KIAogdm9pZCBTdHlsZVJlc29sdmVyOjppbnZhbGlkYXRlTWF0Y2hlZFBy
b3BlcnRpZXNDYWNoZSgpCkBAIC0yMTMxLDcgKzIxMzEsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6
OmFwcGx5UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFsdWUqIHZhbHVlKQogICAgICAg
ICAgICAgICAgICAgICBpZiAobGlzdFN0eWxlSWRlbnQgIT0gQ1NTVmFsdWVOb25lKQogICAgICAg
ICAgICAgICAgICAgICAgICAgbGlzdFN0eWxlVHlwZSA9IHN0YXRpY19jYXN0PEVMaXN0U3R5bGVU
eXBlPihsaXN0U3R5bGVJZGVudCAtIENTU1ZhbHVlRGlzYyk7CiAgICAgICAgICAgICAgICAgICAg
IGF1dG8gY291bnRlciA9IHN0ZDo6bWFrZV91bmlxdWU8Q291bnRlckNvbnRlbnQ+KGNvdW50ZXJW
YWx1ZS0+aWRlbnRpZmllcigpLCBsaXN0U3R5bGVUeXBlLCBjb3VudGVyVmFsdWUtPnNlcGFyYXRv
cigpKTsKLSAgICAgICAgICAgICAgICAgICAgc3RhdGUuc3R5bGUoKS0+c2V0Q29udGVudChzdGQ6
Om1vdmUoY291bnRlciksIGRpZFNldCk7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlLnN0eWxl
KCktPnNldENvbnRlbnQoV1RGOjptb3ZlKGNvdW50ZXIpLCBkaWRTZXQpOwogICAgICAgICAgICAg
ICAgICAgICBkaWRTZXQgPSB0cnVlOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICAgICAgICAgIHN3aXRjaCAoY29udGVudFZhbHVlLT5nZXRWYWx1ZUlEKCkpIHsKQEAgLTIz
NTQsOSArMjM1NCw5IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eShDU1NQcm9w
ZXJ0eUlEIGlkLCBDU1NWYWx1ZSogdmFsdWUpCiAKICAgICAgICAgICAgIGF1dG8gc2hhZG93RGF0
YSA9IHN0ZDo6bWFrZV91bmlxdWU8U2hhZG93RGF0YT4oSW50UG9pbnQoeCwgeSksIGJsdXIsIHNw
cmVhZCwgc2hhZG93U3R5bGUsIGlkID09IENTU1Byb3BlcnR5V2Via2l0Qm94U2hhZG93LCBjb2xv
ci5pc1ZhbGlkKCkgPyBjb2xvciA6IENvbG9yOjp0cmFuc3BhcmVudCk7CiAgICAgICAgICAgICBp
ZiAoaWQgPT0gQ1NTUHJvcGVydHlUZXh0U2hhZG93KQotICAgICAgICAgICAgICAgIHN0YXRlLnN0
eWxlKCktPnNldFRleHRTaGFkb3coc3RkOjptb3ZlKHNoYWRvd0RhdGEpLCBpLmluZGV4KCkpOyAv
LyBhZGQgdG8gdGhlIGxpc3QgaWYgdGhpcyBpcyBub3QgdGhlIGZpcnN0IGVudHJ5CisgICAgICAg
ICAgICAgICAgc3RhdGUuc3R5bGUoKS0+c2V0VGV4dFNoYWRvdyhXVEY6Om1vdmUoc2hhZG93RGF0
YSksIGkuaW5kZXgoKSk7IC8vIGFkZCB0byB0aGUgbGlzdCBpZiB0aGlzIGlzIG5vdCB0aGUgZmly
c3QgZW50cnkKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBzdGF0ZS5zdHlsZSgp
LT5zZXRCb3hTaGFkb3coc3RkOjptb3ZlKHNoYWRvd0RhdGEpLCBpLmluZGV4KCkpOyAvLyBhZGQg
dG8gdGhlIGxpc3QgaWYgdGhpcyBpcyBub3QgdGhlIGZpcnN0IGVudHJ5CisgICAgICAgICAgICAg
ICAgc3RhdGUuc3R5bGUoKS0+c2V0Qm94U2hhZG93KFdURjo6bW92ZShzaGFkb3dEYXRhKSwgaS5p
bmRleCgpKTsgLy8gYWRkIHRvIHRoZSBsaXN0IGlmIHRoaXMgaXMgbm90IHRoZSBmaXJzdCBlbnRy
eQogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVz
b2x2ZXIuaAppbmRleCA3MjNkMGQyLi5jYzk0ZjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmgKQEAgLTM2Myw3ICszNjMsNyBAQCBwdWJsaWM6CiAgICAgICAgIFJlbmRlclN0eWxlKiBz
dHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3R5bGUuZ2V0KCk7IH0KICAgICAgICAgUGFzc1JlZjxS
ZW5kZXJTdHlsZT4gdGFrZVN0eWxlKCkgeyByZXR1cm4gbV9zdHlsZS5yZWxlYXNlTm9uTnVsbCgp
OyB9CiAKLSAgICAgICAgdm9pZCBzZXRQYXJlbnRTdHlsZShQYXNzUmVmPFJlbmRlclN0eWxlPiBw
YXJlbnRTdHlsZSkgeyBtX3BhcmVudFN0eWxlID0gc3RkOjptb3ZlKHBhcmVudFN0eWxlKTsgfQor
ICAgICAgICB2b2lkIHNldFBhcmVudFN0eWxlKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHBhcmVudFN0
eWxlKSB7IG1fcGFyZW50U3R5bGUgPSBXVEY6Om1vdmUocGFyZW50U3R5bGUpOyB9CiAgICAgICAg
IFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50U3R5bGUu
Z2V0KCk7IH0KICAgICAgICAgUmVuZGVyU3R5bGUqIHJvb3RFbGVtZW50U3R5bGUoKSBjb25zdCB7
IHJldHVybiBtX3Jvb3RFbGVtZW50U3R5bGU7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcApp
bmRleCA1ZjdiNDg1Li44Mzc0MWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcApAQCAtMjAz
LDcgKzIwMyw3IEBAIHVuc2lnbmVkIFN0eWxlUnVsZTo6YXZlcmFnZVNpemVJbkJ5dGVzKCkKIAog
U3R5bGVSdWxlOjpTdHlsZVJ1bGUoaW50IHNvdXJjZUxpbmUsIFBhc3NSZWY8U3R5bGVQcm9wZXJ0
aWVzPiBwcm9wZXJ0aWVzKQogICAgIDogU3R5bGVSdWxlQmFzZShTdHlsZSwgc291cmNlTGluZSkK
LSAgICAsIG1fcHJvcGVydGllcyhzdGQ6Om1vdmUocHJvcGVydGllcykpCisgICAgLCBtX3Byb3Bl
cnRpZXMoV1RGOjptb3ZlKHByb3BlcnRpZXMpKQogewogfQogCkBAIC0yMzIsNyArMjMyLDcgQEAg
UGFzc1JlZjxTdHlsZVJ1bGU+IFN0eWxlUnVsZTo6Y3JlYXRlKGludCBzb3VyY2VMaW5lLCBjb25z
dCBWZWN0b3I8Y29uc3QgQ1NTU2VsZWMKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2Vs
ZWN0b3JzLnNpemUoKTsgKytpKQogICAgICAgICBuZXcgKE5vdE51bGwsICZzZWxlY3Rvckxpc3RB
cnJheVtpXSkgQ1NTU2VsZWN0b3IoKnNlbGVjdG9ycy5hdChpKSk7CiAgICAgc2VsZWN0b3JMaXN0
QXJyYXlbc2VsZWN0b3JzLnNpemUoKSAtIDFdLnNldExhc3RJblNlbGVjdG9yTGlzdCgpOwotICAg
IGF1dG8gcnVsZSA9IFN0eWxlUnVsZTo6Y3JlYXRlKHNvdXJjZUxpbmUsIHN0ZDo6bW92ZShwcm9w
ZXJ0aWVzKSk7CisgICAgYXV0byBydWxlID0gU3R5bGVSdWxlOjpjcmVhdGUoc291cmNlTGluZSwg
V1RGOjptb3ZlKHByb3BlcnRpZXMpKTsKICAgICBydWxlLmdldCgpLnBhcnNlckFkb3B0U2VsZWN0
b3JBcnJheShzZWxlY3Rvckxpc3RBcnJheSk7CiAgICAgcmV0dXJuIHJ1bGU7CiB9CkBAIC0yNjUs
NyArMjY1LDcgQEAgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGU+PiBTdHlsZVJ1bGU6OnNwbGl0SW50
b011bHRpcGxlUnVsZXNXaXRoTWF4aW11bVNlbGVjdG9yQ28KIAogU3R5bGVSdWxlUGFnZTo6U3R5
bGVSdWxlUGFnZShQYXNzUmVmPFN0eWxlUHJvcGVydGllcz4gcHJvcGVydGllcykKICAgICA6IFN0
eWxlUnVsZUJhc2UoUGFnZSkKLSAgICAsIG1fcHJvcGVydGllcyhzdGQ6Om1vdmUocHJvcGVydGll
cykpCisgICAgLCBtX3Byb3BlcnRpZXMoV1RGOjptb3ZlKHByb3BlcnRpZXMpKQogewogfQogCkBA
IC0yODksNyArMjg5LDcgQEAgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgU3R5bGVSdWxlUGFnZTo6
bXV0YWJsZVByb3BlcnRpZXMoKQogCiBTdHlsZVJ1bGVGb250RmFjZTo6U3R5bGVSdWxlRm9udEZh
Y2UoUGFzc1JlZjxTdHlsZVByb3BlcnRpZXM+IHByb3BlcnRpZXMpCiAgICAgOiBTdHlsZVJ1bGVC
YXNlKEZvbnRGYWNlLCAwKQotICAgICwgbV9wcm9wZXJ0aWVzKHN0ZDo6bW92ZShwcm9wZXJ0aWVz
KSkKKyAgICAsIG1fcHJvcGVydGllcyhXVEY6Om1vdmUocHJvcGVydGllcykpCiB7CiB9CiAKQEAg
LTMyNiw3ICszMjYsNyBAQCBTdHlsZVJ1bGVHcm91cDo6U3R5bGVSdWxlR3JvdXAoY29uc3QgU3R5
bGVSdWxlR3JvdXAmIG8pCiAKIHZvaWQgU3R5bGVSdWxlR3JvdXA6OndyYXBwZXJJbnNlcnRSdWxl
KHVuc2lnbmVkIGluZGV4LCBQYXNzUmVmPFN0eWxlUnVsZUJhc2U+IHJ1bGUpCiB7Ci0gICAgbV9j
aGlsZFJ1bGVzLmluc2VydChpbmRleCwgc3RkOjptb3ZlKHJ1bGUpKTsKKyAgICBtX2NoaWxkUnVs
ZXMuaW5zZXJ0KGluZGV4LCBXVEY6Om1vdmUocnVsZSkpOwogfQogICAgIAogdm9pZCBTdHlsZVJ1
bGVHcm91cDo6d3JhcHBlclJlbW92ZVJ1bGUodW5zaWduZWQgaW5kZXgpCkBAIC0zODEsNyArMzgx
LDcgQEAgU3R5bGVSdWxlUmVnaW9uOjpTdHlsZVJ1bGVSZWdpb24oY29uc3QgU3R5bGVSdWxlUmVn
aW9uJiBvKQogI2lmIEVOQUJMRShDU1NfREVWSUNFX0FEQVBUQVRJT04pCiBTdHlsZVJ1bGVWaWV3
cG9ydDo6U3R5bGVSdWxlVmlld3BvcnQoUGFzc1JlZjxTdHlsZVByb3BlcnRpZXM+IHByb3BlcnRp
ZXMpCiAgICAgOiBTdHlsZVJ1bGVCYXNlKFZpZXdwb3J0LCAwKQotICAgICwgbV9wcm9wZXJ0aWVz
KHN0ZDo6bW92ZShwcm9wZXJ0aWVzKSkKKyAgICAsIG1fcHJvcGVydGllcyhXVEY6Om1vdmUocHJv
cGVydGllcykpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1
bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuaAppbmRleCBhYTZiODE1Li43ZTc3
MGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5oCkBAIC0xMDgsNyArMTA4LDcgQEAgY2xhc3MgU3R5
bGVSdWxlIDogcHVibGljIFN0eWxlUnVsZUJhc2UgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNz
UmVmPFN0eWxlUnVsZT4gY3JlYXRlKGludCBzb3VyY2VMaW5lLCBQYXNzUmVmPFN0eWxlUHJvcGVy
dGllcz4gcHJvcGVydGllcykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0
eWxlUnVsZShzb3VyY2VMaW5lLCBzdGQ6Om1vdmUocHJvcGVydGllcykpKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU3R5bGVSdWxlKHNvdXJjZUxpbmUsIFdURjo6bW92ZShwcm9wZXJ0
aWVzKSkpOwogICAgIH0KICAgICAKICAgICB+U3R5bGVSdWxlKCk7CkBAIC0xMTgsNyArMTE4LDcg
QEAgcHVibGljOgogICAgIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIG11dGFibGVQcm9wZXJ0aWVz
KCk7CiAgICAgCiAgICAgdm9pZCBwYXJzZXJBZG9wdFNlbGVjdG9yVmVjdG9yKFZlY3RvcjxzdGQ6
OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+PiYgc2VsZWN0b3JzKSB7IG1fc2VsZWN0b3JM
aXN0LmFkb3B0U2VsZWN0b3JWZWN0b3Ioc2VsZWN0b3JzKTsgfQotICAgIHZvaWQgd3JhcHBlckFk
b3B0U2VsZWN0b3JMaXN0KENTU1NlbGVjdG9yTGlzdCYgc2VsZWN0b3JzKSB7IG1fc2VsZWN0b3JM
aXN0ID0gc3RkOjptb3ZlKHNlbGVjdG9ycyk7IH0KKyAgICB2b2lkIHdyYXBwZXJBZG9wdFNlbGVj
dG9yTGlzdChDU1NTZWxlY3Rvckxpc3QmIHNlbGVjdG9ycykgeyBtX3NlbGVjdG9yTGlzdCA9IFdU
Rjo6bW92ZShzZWxlY3RvcnMpOyB9CiAgICAgdm9pZCBwYXJzZXJBZG9wdFNlbGVjdG9yQXJyYXko
Q1NTU2VsZWN0b3IqIHNlbGVjdG9ycykgeyBtX3NlbGVjdG9yTGlzdC5hZG9wdFNlbGVjdG9yQXJy
YXkoc2VsZWN0b3JzKTsgfQogCiAgICAgUGFzc1JlZjxTdHlsZVJ1bGU+IGNvcHkoKSBjb25zdCB7
IHJldHVybiBhZG9wdFJlZigqbmV3IFN0eWxlUnVsZSgqdGhpcykpOyB9CkBAIC0xNDUsNyArMTQ1
LDcgQEAgaW5saW5lIGNvbnN0IFN0eWxlUnVsZSogdG9TdHlsZVJ1bGUoY29uc3QgU3R5bGVSdWxl
QmFzZSogcnVsZSkKIAogY2xhc3MgU3R5bGVSdWxlRm9udEZhY2UgOiBwdWJsaWMgU3R5bGVSdWxl
QmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWY8U3R5bGVSdWxlRm9udEZhY2U+IGNy
ZWF0ZShQYXNzUmVmPFN0eWxlUHJvcGVydGllcz4gcHJvcGVydGllcykgeyByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTdHlsZVJ1bGVGb250RmFjZShzdGQ6Om1vdmUocHJvcGVydGllcykpKTsgfQorICAg
IHN0YXRpYyBQYXNzUmVmPFN0eWxlUnVsZUZvbnRGYWNlPiBjcmVhdGUoUGFzc1JlZjxTdHlsZVBy
b3BlcnRpZXM+IHByb3BlcnRpZXMpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3R5bGVSdWxlRm9u
dEZhY2UoV1RGOjptb3ZlKHByb3BlcnRpZXMpKSk7IH0KICAgICAKICAgICB+U3R5bGVSdWxlRm9u
dEZhY2UoKTsKIApAQCAtMTY0LDcgKzE2NCw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIFN0eWxlUnVs
ZVBhZ2UgOiBwdWJsaWMgU3R5bGVSdWxlQmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWY8U3R5bGVSdWxlUGFnZT4gY3JlYXRlKFBhc3NSZWY8U3R5bGVQcm9wZXJ0aWVzPiBwcm9wZXJ0
aWVzKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFN0eWxlUnVsZVBhZ2Uoc3RkOjptb3ZlKHByb3Bl
cnRpZXMpKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZjxTdHlsZVJ1bGVQYWdlPiBjcmVhdGUoUGFz
c1JlZjxTdHlsZVByb3BlcnRpZXM+IHByb3BlcnRpZXMpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U3R5bGVSdWxlUGFnZShXVEY6Om1vdmUocHJvcGVydGllcykpKTsgfQogCiAgICAgflN0eWxlUnVs
ZVBhZ2UoKTsKIApAQCAtMTczLDcgKzE3Myw3IEBAIHB1YmxpYzoKICAgICBNdXRhYmxlU3R5bGVQ
cm9wZXJ0aWVzJiBtdXRhYmxlUHJvcGVydGllcygpOwogCiAgICAgdm9pZCBwYXJzZXJBZG9wdFNl
bGVjdG9yVmVjdG9yKFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+PiYg
c2VsZWN0b3JzKSB7IG1fc2VsZWN0b3JMaXN0LmFkb3B0U2VsZWN0b3JWZWN0b3Ioc2VsZWN0b3Jz
KTsgfQotICAgIHZvaWQgd3JhcHBlckFkb3B0U2VsZWN0b3JMaXN0KENTU1NlbGVjdG9yTGlzdCYg
c2VsZWN0b3JzKSB7IG1fc2VsZWN0b3JMaXN0ID0gc3RkOjptb3ZlKHNlbGVjdG9ycyk7IH0KKyAg
ICB2b2lkIHdyYXBwZXJBZG9wdFNlbGVjdG9yTGlzdChDU1NTZWxlY3Rvckxpc3QmIHNlbGVjdG9y
cykgeyBtX3NlbGVjdG9yTGlzdCA9IFdURjo6bW92ZShzZWxlY3RvcnMpOyB9CiAKICAgICBQYXNz
UmVmPFN0eWxlUnVsZVBhZ2U+IGNvcHkoKSBjb25zdCB7IHJldHVybiBhZG9wdFJlZigqbmV3IFN0
eWxlUnVsZVBhZ2UoKnRoaXMpKTsgfQogCkBAIC0yNjAsNyArMjYwLDcgQEAgcHJpdmF0ZToKICNp
ZiBFTkFCTEUoQ1NTX0RFVklDRV9BREFQVEFUSU9OKQogY2xhc3MgU3R5bGVSdWxlVmlld3BvcnQg
OiBwdWJsaWMgU3R5bGVSdWxlQmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWY8U3R5
bGVSdWxlVmlld3BvcnQ+IGNyZWF0ZShQYXNzUmVmPFN0eWxlUHJvcGVydGllcz4gcHJvcGVydGll
cykgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdHlsZVJ1bGVWaWV3cG9ydChzdGQ6Om1vdmUocHJv
cGVydGllcykpKTsgfQorICAgIHN0YXRpYyBQYXNzUmVmPFN0eWxlUnVsZVZpZXdwb3J0PiBjcmVh
dGUoUGFzc1JlZjxTdHlsZVByb3BlcnRpZXM+IHByb3BlcnRpZXMpIHsgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU3R5bGVSdWxlVmlld3BvcnQoV1RGOjptb3ZlKHByb3BlcnRpZXMpKSk7IH0KIAogICAg
IH5TdHlsZVJ1bGVWaWV3cG9ydCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
V2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NL
ZXlmcmFtZVJ1bGUuY3BwCmluZGV4IGVlNDI5ZGYuLjA4NzEwN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwCkBAIC0zNCw3ICszNCw3IEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIFN0eWxlS2V5ZnJhbWU6OlN0eWxlS2V5ZnJhbWUoUGFzc1JlZjxT
dHlsZVByb3BlcnRpZXM+IHByb3BlcnRpZXMpCi0gICAgOiBtX3Byb3BlcnRpZXMoc3RkOjptb3Zl
KHByb3BlcnRpZXMpKQorICAgIDogbV9wcm9wZXJ0aWVzKFdURjo6bW92ZShwcm9wZXJ0aWVzKSkK
IHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1l
UnVsZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5oCmluZGV4
IGFlODhiN2MuLjMwNDY5ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRD
U1NLZXlmcmFtZVJ1bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJh
bWVSdWxlLmgKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgU3R5bGVLZXlmcmFtZSA6IHB1YmxpYyBS
ZWZDb3VudGVkPFN0eWxlS2V5ZnJhbWU+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTdHlsZUtleWZyYW1lPiBjcmVhdGUoUGFzc1JlZjxTdHlsZVByb3BlcnRpZXM+IHByb3BlcnRp
ZXMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFN0eWxlS2V5ZnJhbWUoc3Rk
Ojptb3ZlKHByb3BlcnRpZXMpKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3R5bGVL
ZXlmcmFtZShXVEY6Om1vdmUocHJvcGVydGllcykpKTsKICAgICB9CiAgICAgflN0eWxlS2V5ZnJh
bWUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9u
U2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuY3Bw
CmluZGV4IDRiODA4ZDQuLjliMTZjNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9D
aGlsZExpc3RNdXRhdGlvblNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRM
aXN0TXV0YXRpb25TY29wZS5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgc3RhdGljIEFjY3VtdWxhdG9y
TWFwJiBhY2N1bXVsYXRvck1hcCgpCiBDaGlsZExpc3RNdXRhdGlvbkFjY3VtdWxhdG9yOjpDaGls
ZExpc3RNdXRhdGlvbkFjY3VtdWxhdG9yKENvbnRhaW5lck5vZGUmIHRhcmdldCwgc3RkOjp1bmlx
dWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBvYnNlcnZlcnMpCiAgICAgOiBt
X3RhcmdldCh0YXJnZXQpCiAgICAgLCBtX2xhc3RBZGRlZChudWxscHRyKQotICAgICwgbV9vYnNl
cnZlcnMoc3RkOjptb3ZlKG9ic2VydmVycykpCisgICAgLCBtX29ic2VydmVycyhXVEY6Om1vdmUo
b2JzZXJ2ZXJzKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUlt
cGxlbWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5j
cHAKaW5kZXggZmQ5ZGQ3ZC4uZDkyMjYxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RPTUltcGxlbWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVt
ZW50YXRpb24uY3BwCkBAIC0yNDUsNyArMjQ1LDcgQEAgUGFzc1JlZlB0cjxDU1NTdHlsZVNoZWV0
PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlQ1NTU3R5bGVTaGVldChjb25zdCBTdHJpbmcmLAog
ICAgIC8vIEZJWE1FOiBNZWRpYSBjb3VsZCBoYXZlIHdyb25nIHN5bnRheCwgaW4gd2hpY2ggY2Fz
ZSB3ZSBzaG91bGQgZ2VuZXJhdGUgYW4gZXhjZXB0aW9uLgogICAgIGF1dG8gc2hlZXQgPSBDU1NT
dHlsZVNoZWV0OjpjcmVhdGUoU3R5bGVTaGVldENvbnRlbnRzOjpjcmVhdGUoKSk7CiAgICAgc2hl
ZXQuZ2V0KCkuc2V0TWVkaWFRdWVyaWVzKE1lZGlhUXVlcnlTZXQ6OmNyZWF0ZUFsbG93aW5nRGVz
Y3JpcHRpb25TeW50YXgobWVkaWEpKTsKLSAgICByZXR1cm4gc3RkOjptb3ZlKHNoZWV0KTsKKyAg
ICByZXR1cm4gV1RGOjptb3ZlKHNoZWV0KTsKIH0KIAogc3RhdGljIGlubGluZSBib29sIGlzVmFs
aWRYTUxNSU1FVHlwZUNoYXIoVUNoYXIgYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDE4
MzA2NjAuLjViNTNhYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDMzMCw3ICs0MzMw
LDcgQEAgdm9pZCBEb2N1bWVudDo6YXBwbHlYU0xUcmFuc2Zvcm0oUHJvY2Vzc2luZ0luc3RydWN0
aW9uKiBwaSkKIAogdm9pZCBEb2N1bWVudDo6c2V0VHJhbnNmb3JtU291cmNlKHN0ZDo6dW5pcXVl
X3B0cjxUcmFuc2Zvcm1Tb3VyY2U+IHNvdXJjZSkKIHsKLSAgICBtX3RyYW5zZm9ybVNvdXJjZSA9
IHN0ZDo6bW92ZShzb3VyY2UpOworICAgIG1fdHJhbnNmb3JtU291cmNlID0gV1RGOjptb3ZlKHNv
dXJjZSk7CiB9CiAKICNlbmRpZgpAQCAtNDkwMiw3ICs0OTAyLDcgQEAgU2VjdXJpdHlPcmlnaW4q
IERvY3VtZW50Ojp0b3BPcmlnaW4oKSBjb25zdAogCiB2b2lkIERvY3VtZW50Ojpwb3N0VGFzayhU
YXNrIHRhc2spCiB7Ci0gICAgVGFzayogdGFza1B0ciA9IHN0ZDo6bWFrZV91bmlxdWU8VGFzaz4o
c3RkOjptb3ZlKHRhc2spKS5yZWxlYXNlKCk7CisgICAgVGFzayogdGFza1B0ciA9IHN0ZDo6bWFr
ZV91bmlxdWU8VGFzaz4oV1RGOjptb3ZlKHRhc2spKS5yZWxlYXNlKCk7CiAgICAgV2Vha1B0cjxE
b2N1bWVudD4gZG9jdW1lbnRSZWZlcmVuY2UobV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCkp
OwogCiAgICAgY2FsbE9uTWFpblRocmVhZChbPV0gewpAQCAtNDkxNSw3ICs0OTE1LDcgQEAgdm9p
ZCBEb2N1bWVudDo6cG9zdFRhc2soVGFzayB0YXNrKQogCiAgICAgICAgIFBhZ2UqIHBhZ2UgPSBk
b2N1bWVudC0+cGFnZSgpOwogICAgICAgICBpZiAoKHBhZ2UgJiYgcGFnZS0+ZGVmZXJzTG9hZGlu
ZygpKSB8fCAhZG9jdW1lbnQtPm1fcGVuZGluZ1Rhc2tzLmlzRW1wdHkoKSkKLSAgICAgICAgICAg
IGRvY3VtZW50LT5tX3BlbmRpbmdUYXNrcy5hcHBlbmQoc3RkOjptb3ZlKCp0YXNrLnJlbGVhc2Uo
KSkpOworICAgICAgICAgICAgZG9jdW1lbnQtPm1fcGVuZGluZ1Rhc2tzLmFwcGVuZChXVEY6Om1v
dmUoKnRhc2sucmVsZWFzZSgpKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRhc2stPnBl
cmZvcm1UYXNrKCpkb2N1bWVudCk7CiAgICAgfSk7CkBAIC00OTIzLDcgKzQ5MjMsNyBAQCB2b2lk
IERvY3VtZW50Ojpwb3N0VGFzayhUYXNrIHRhc2spCiAKIHZvaWQgRG9jdW1lbnQ6OnBlbmRpbmdU
YXNrc1RpbWVyRmlyZWQoVGltZXI8RG9jdW1lbnQ+JikKIHsKLSAgICBWZWN0b3I8VGFzaz4gcGVu
ZGluZ1Rhc2tzID0gc3RkOjptb3ZlKG1fcGVuZGluZ1Rhc2tzKTsKKyAgICBWZWN0b3I8VGFzaz4g
cGVuZGluZ1Rhc2tzID0gV1RGOjptb3ZlKG1fcGVuZGluZ1Rhc2tzKTsKICAgICBmb3IgKGF1dG8m
IHRhc2sgOiBwZW5kaW5nVGFza3MpCiAgICAgICAgIHRhc2sucGVyZm9ybVRhc2soKnRoaXMpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxl
Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rp
b24uY3BwCmluZGV4IGE5NDljMWYuLmYzMTA0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHAKQEAgLTE4NCwxNCArMTg0LDE0
IEBAIHZvaWQgRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbjo6aW52YWxpZGF0ZUluamVjdGVk
U3R5bGVTaGVldENhY2hlKCkKIHZvaWQgRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbjo6YWRk
QXV0aG9yU2hlZXQoUGFzc1JlZjxTdHlsZVNoZWV0Q29udGVudHM+IGF1dGhvclNoZWV0KQogewog
ICAgIEFTU0VSVCghYXV0aG9yU2hlZXQuZ2V0KCkuaXNVc2VyU3R5bGVTaGVldCgpKTsKLSAgICBt
X2F1dGhvclN0eWxlU2hlZXRzLmFwcGVuZChDU1NTdHlsZVNoZWV0OjpjcmVhdGUoc3RkOjptb3Zl
KGF1dGhvclNoZWV0KSwgJm1fZG9jdW1lbnQpKTsKKyAgICBtX2F1dGhvclN0eWxlU2hlZXRzLmFw
cGVuZChDU1NTdHlsZVNoZWV0OjpjcmVhdGUoV1RGOjptb3ZlKGF1dGhvclNoZWV0KSwgJm1fZG9j
dW1lbnQpKTsKICAgICBtX2RvY3VtZW50LnN0eWxlUmVzb2x2ZXJDaGFuZ2VkKFJlY2FsY1N0eWxl
SW1tZWRpYXRlbHkpOwogfQogCiB2b2lkIERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246OmFk
ZFVzZXJTaGVldChQYXNzUmVmPFN0eWxlU2hlZXRDb250ZW50cz4gdXNlclNoZWV0KQogewogICAg
IEFTU0VSVCh1c2VyU2hlZXQuZ2V0KCkuaXNVc2VyU3R5bGVTaGVldCgpKTsKLSAgICBtX3VzZXJT
dHlsZVNoZWV0cy5hcHBlbmQoQ1NTU3R5bGVTaGVldDo6Y3JlYXRlKHN0ZDo6bW92ZSh1c2VyU2hl
ZXQpLCAmbV9kb2N1bWVudCkpOworICAgIG1fdXNlclN0eWxlU2hlZXRzLmFwcGVuZChDU1NTdHls
ZVNoZWV0OjpjcmVhdGUoV1RGOjptb3ZlKHVzZXJTaGVldCksICZtX2RvY3VtZW50KSk7CiAgICAg
bV9kb2N1bWVudC5zdHlsZVJlc29sdmVyQ2hhbmdlZChSZWNhbGNTdHlsZUltbWVkaWF0ZWx5KTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDc1MzczMzAuLjg3MTdlYzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAKQEAgLTEzMjgsNyArMTMyOCw3IEBAIGJvb2wgRWxlbWVudDo6cmVuZGVy
ZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAKIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHls
ZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywg
c3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigq
dGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAKIE5vZGU6Okluc2VydGlvbk5vdGlmaWNhdGlv
blJlcXVlc3QgRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmIGluc2VydGlvblBv
aW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCmluZGV4IGRlYTNhY2MuLjI5ZTIx
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKQEAgLTk1LDEwICs5NSwxMCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBdHRyaWJ1dGVNYXAoUGFzc093blB0cjxOYW1lZE5vZGVN
YXA+IGF0dHJpYnV0ZU1hcCkgeyBtX2F0dHJpYnV0ZU1hcCA9IGF0dHJpYnV0ZU1hcDsgfQogCiAg
ICAgUmVuZGVyU3R5bGUqIGNvbXB1dGVkU3R5bGUoKSBjb25zdCB7IHJldHVybiBtX2NvbXB1dGVk
U3R5bGUuZ2V0KCk7IH0KLSAgICB2b2lkIHNldENvbXB1dGVkU3R5bGUoUGFzc1JlZjxSZW5kZXJT
dHlsZT4gY29tcHV0ZWRTdHlsZSkgeyBtX2NvbXB1dGVkU3R5bGUgPSBzdGQ6Om1vdmUoY29tcHV0
ZWRTdHlsZSk7IH0KKyAgICB2b2lkIHNldENvbXB1dGVkU3R5bGUoUGFzc1JlZjxSZW5kZXJTdHls
ZT4gY29tcHV0ZWRTdHlsZSkgeyBtX2NvbXB1dGVkU3R5bGUgPSBXVEY6Om1vdmUoY29tcHV0ZWRT
dHlsZSk7IH0KIAogICAgIENsYXNzTGlzdCogY2xhc3NMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9j
bGFzc0xpc3QuZ2V0KCk7IH0KLSAgICB2b2lkIHNldENsYXNzTGlzdChzdGQ6OnVuaXF1ZV9wdHI8
Q2xhc3NMaXN0PiBjbGFzc0xpc3QpIHsgbV9jbGFzc0xpc3QgPSBzdGQ6Om1vdmUoY2xhc3NMaXN0
KTsgfQorICAgIHZvaWQgc2V0Q2xhc3NMaXN0KHN0ZDo6dW5pcXVlX3B0cjxDbGFzc0xpc3Q+IGNs
YXNzTGlzdCkgeyBtX2NsYXNzTGlzdCA9IFdURjo6bW92ZShjbGFzc0xpc3QpOyB9CiAgICAgdm9p
ZCBjbGVhckNsYXNzTGlzdFZhbHVlRm9yUXVpcmtzTW9kZSgpCiAgICAgewogICAgICAgICBpZiAo
IW1fY2xhc3NMaXN0KQpAQCAtMTA3LDcgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBE
YXRhc2V0RE9NU3RyaW5nTWFwKiBkYXRhc2V0KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhc2V0Lmdl
dCgpOyB9Ci0gICAgdm9pZCBzZXREYXRhc2V0KHN0ZDo6dW5pcXVlX3B0cjxEYXRhc2V0RE9NU3Ry
aW5nTWFwPiBkYXRhc2V0KSB7IG1fZGF0YXNldCA9IHN0ZDo6bW92ZShkYXRhc2V0KTsgfQorICAg
IHZvaWQgc2V0RGF0YXNldChzdGQ6OnVuaXF1ZV9wdHI8RGF0YXNldERPTVN0cmluZ01hcD4gZGF0
YXNldCkgeyBtX2RhdGFzZXQgPSBXVEY6Om1vdmUoZGF0YXNldCk7IH0KIAogICAgIExheW91dFNp
emUgbWluaW11bVNpemVGb3JSZXNpemluZygpIGNvbnN0IHsgcmV0dXJuIG1fbWluaW11bVNpemVG
b3JSZXNpemluZzsgfQogICAgIHZvaWQgc2V0TWluaW11bVNpemVGb3JSZXNpemluZyhMYXlvdXRT
aXplIHNpemUpIHsgbV9taW5pbXVtU2l6ZUZvclJlc2l6aW5nID0gc2l6ZTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTWVzc2FnZUV2ZW50LmNwcAppbmRleCA4ZjE4ZDFhLi4xMWQyYzUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTWVzc2FnZUV2ZW50LmNwcApAQCAtNjQsNyArNjQsNyBAQCBNZXNzYWdlRXZlbnQ6Ok1lc3Nh
Z2VFdmVudChjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgZGF0YSwgY29uc3QgU3RyaW5n
JiBvcgogICAgICwgbV9vcmlnaW4ob3JpZ2luKQogICAgICwgbV9sYXN0RXZlbnRJZChsYXN0RXZl
bnRJZCkKICAgICAsIG1fc291cmNlKHNvdXJjZSkKLSAgICAsIG1fcG9ydHMoc3RkOjptb3ZlKHBv
cnRzKSkKKyAgICAsIG1fcG9ydHMoV1RGOjptb3ZlKHBvcnRzKSkKIHsKICAgICBBU1NFUlQoaXNW
YWxpZFNvdXJjZShtX3NvdXJjZS5nZXQoKSkpOwogfQpAQCAtNzYsNyArNzYsNyBAQCBNZXNzYWdl
RXZlbnQ6Ok1lc3NhZ2VFdmVudChQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gZGF0
YSwgY29uc3QgU3RyaW5nJgogICAgICwgbV9vcmlnaW4ob3JpZ2luKQogICAgICwgbV9sYXN0RXZl
bnRJZChsYXN0RXZlbnRJZCkKICAgICAsIG1fc291cmNlKHNvdXJjZSkKLSAgICAsIG1fcG9ydHMo
c3RkOjptb3ZlKHBvcnRzKSkKKyAgICAsIG1fcG9ydHMoV1RGOjptb3ZlKHBvcnRzKSkKIHsKICAg
ICBBU1NFUlQoaXNWYWxpZFNvdXJjZShtX3NvdXJjZS5nZXQoKSkpOwogfQpAQCAtMTIxLDcgKzEy
MSw3IEBAIHZvaWQgTWVzc2FnZUV2ZW50Ojppbml0TWVzc2FnZUV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvCiAgICAgbV9vcmlnaW4gPSBvcmlnaW47CiAg
ICAgbV9sYXN0RXZlbnRJZCA9IGxhc3RFdmVudElkOwogICAgIG1fc291cmNlID0gc291cmNlOwot
ICAgIG1fcG9ydHMgPSBzdGQ6Om1vdmUocG9ydHMpOworICAgIG1fcG9ydHMgPSBXVEY6Om1vdmUo
cG9ydHMpOwogfQogCiB2b2lkIE1lc3NhZ2VFdmVudDo6aW5pdE1lc3NhZ2VFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFBhc3NS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBkYXRhLCBjb25zdCBTdHJpbmcmIG9yaWdpbiwg
Y29uc3QgU3RyaW5nJiBsYXN0RXZlbnRJZCwgRE9NV2luZG93KiBzb3VyY2UsIHN0ZDo6dW5pcXVl
X3B0cjxNZXNzYWdlUG9ydEFycmF5PiBwb3J0cykKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lkIE1l
c3NhZ2VFdmVudDo6aW5pdE1lc3NhZ2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJv
b2wgY2FuQnViYmxlLCBibwogICAgIG1fb3JpZ2luID0gb3JpZ2luOwogICAgIG1fbGFzdEV2ZW50
SWQgPSBsYXN0RXZlbnRJZDsKICAgICBtX3NvdXJjZSA9IHNvdXJjZTsKLSAgICBtX3BvcnRzID0g
c3RkOjptb3ZlKHBvcnRzKTsKKyAgICBtX3BvcnRzID0gV1RGOjptb3ZlKHBvcnRzKTsKIH0KIAog
Ly8gRklYTUU6IFJlbW92ZSB0aGlzIHdoZW4gd2UgaGF2ZSBjdXN0b20gT2JqQyBiaW5kaW5nIHN1
cHBvcnQuCkBAIC0xNjIsNyArMTYyLDcgQEAgdm9pZCBNZXNzYWdlRXZlbnQ6OmluaXRNZXNzYWdl
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm8KICAgICAg
ICAgcG9ydHMgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VQb3J0QXJyYXk+KCk7CiAgICAgICAg
IHBvcnRzLT5hcHBlbmQocG9ydCk7CiAgICAgfQotICAgIGluaXRNZXNzYWdlRXZlbnQodHlwZSwg
Y2FuQnViYmxlLCBjYW5jZWxhYmxlLCBkYXRhLCBvcmlnaW4sIGxhc3RFdmVudElkLCBzb3VyY2Us
IHN0ZDo6bW92ZShwb3J0cykpOworICAgIGluaXRNZXNzYWdlRXZlbnQodHlwZSwgY2FuQnViYmxl
LCBjYW5jZWxhYmxlLCBkYXRhLCBvcmlnaW4sIGxhc3RFdmVudElkLCBzb3VyY2UsIFdURjo6bW92
ZShwb3J0cykpOwogfQogCiBFdmVudEludGVyZmFjZSBNZXNzYWdlRXZlbnQ6OmV2ZW50SW50ZXJm
YWNlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQuaAppbmRleCA4ODdlMWNlLi5jNzRh
ZTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5oCkBAIC01OSwxMSArNTksMTEgQEAgcHVi
bGljOgogICAgIH0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZXNzYWdlRXZlbnQ+IGNyZWF0ZShz
dGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRBcnJheT4gcG9ydHMsIGNvbnN0IERlcHJlY2F0ZWQ6
OlNjcmlwdFZhbHVlJiBkYXRhID0gRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUoKSwgY29uc3QgU3Ry
aW5nJiBvcmlnaW4gPSBTdHJpbmcoKSwgY29uc3QgU3RyaW5nJiBsYXN0RXZlbnRJZCA9IFN0cmlu
ZygpLCBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0PiBzb3VyY2UgPSAwKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBNZXNzYWdlRXZlbnQoZGF0YSwgb3JpZ2luLCBsYXN0RXZlbnRJ
ZCwgc291cmNlLCBzdGQ6Om1vdmUocG9ydHMpKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgTWVzc2FnZUV2ZW50KGRhdGEsIG9yaWdpbiwgbGFzdEV2ZW50SWQsIHNvdXJjZSwgV1RGOjpt
b3ZlKHBvcnRzKSkpOwogICAgIH0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZXNzYWdlRXZlbnQ+
IGNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRBcnJheT4gcG9ydHMsIFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBkYXRhLCBjb25zdCBTdHJpbmcmIG9yaWdpbiA9IFN0
cmluZygpLCBjb25zdCBTdHJpbmcmIGxhc3RFdmVudElkID0gU3RyaW5nKCksIFBhc3NSZWZQdHI8
RXZlbnRUYXJnZXQ+IHNvdXJjZSA9IDApCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IE1lc3NhZ2VFdmVudChkYXRhLCBvcmlnaW4sIGxhc3RFdmVudElkLCBzb3VyY2UsIHN0ZDo6
bW92ZShwb3J0cykpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZXNzYWdlRXZlbnQo
ZGF0YSwgb3JpZ2luLCBsYXN0RXZlbnRJZCwgc291cmNlLCBXVEY6Om1vdmUocG9ydHMpKSk7CiAg
ICAgfQogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lc3NhZ2VFdmVudD4gY3JlYXRlKGNvbnN0IFN0
cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiBvcmlnaW4gPSBTdHJpbmcoKSkKICAgICB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL01lc3NhZ2VQb3J0LmNwcAppbmRleCAyY2EyYjgzLi5mMjRkNmM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NZXNzYWdlUG9ydC5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgdm9pZCBNZXNzYWdlUG9ydDo6
cG9zdE1lc3NhZ2UoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIGNv
bnN0IE0KICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBt
X2VudGFuZ2xlZENoYW5uZWwtPnBvc3RNZXNzYWdlVG9SZW1vdGUobWVzc2FnZSwgc3RkOjptb3Zl
KGNoYW5uZWxzKSk7CisgICAgbV9lbnRhbmdsZWRDaGFubmVsLT5wb3N0TWVzc2FnZVRvUmVtb3Rl
KG1lc3NhZ2UsIFdURjo6bW92ZShjaGFubmVscykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8TWVz
c2FnZVBvcnRDaGFubmVsPiBNZXNzYWdlUG9ydDo6ZGlzZW50YW5nbGUoKQpAQCAtOTQsNyArOTQs
NyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsPiBNZXNzYWdlUG9ydDo6ZGlz
ZW50YW5nbGUoKQogICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+ZGVzdHJveWVkTWVzc2Fn
ZVBvcnQoKnRoaXMpOwogICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCA9IG51bGxwdHI7CiAK
LSAgICByZXR1cm4gc3RkOjptb3ZlKG1fZW50YW5nbGVkQ2hhbm5lbCk7CisgICAgcmV0dXJuIFdU
Rjo6bW92ZShtX2VudGFuZ2xlZENoYW5uZWwpOwogfQogCiAvLyBJbnZva2VkIHRvIG5vdGlmeSB1
cyB0aGF0IHRoZXJlIGFyZSBtZXNzYWdlcyBhdmFpbGFibGUgZm9yIHRoaXMgcG9ydC4KQEAgLTEz
NCw3ICsxMzQsNyBAQCB2b2lkIE1lc3NhZ2VQb3J0OjplbnRhbmdsZShzdGQ6OnVuaXF1ZV9wdHI8
TWVzc2FnZVBvcnRDaGFubmVsPiByZW1vdGUpCiAKICAgICAvLyBEb24ndCBlbnRhbmdsZSB0aGUg
cG9ydHMgaWYgdGhlIGNoYW5uZWwgaXMgY2xvc2VkLgogICAgIGlmIChyZW1vdGUtPmVudGFuZ2xl
SWZPcGVuKHRoaXMpKQotICAgICAgICBtX2VudGFuZ2xlZENoYW5uZWwgPSBzdGQ6Om1vdmUocmVt
b3RlKTsKKyAgICAgICAgbV9lbnRhbmdsZWRDaGFubmVsID0gV1RGOjptb3ZlKHJlbW90ZSk7CiB9
CiAKIHZvaWQgTWVzc2FnZVBvcnQ6OmNvbnRleHREZXN0cm95ZWQoKQpAQCAtMTYwLDggKzE2MCw4
IEBAIHZvaWQgTWVzc2FnZVBvcnQ6OmRpc3BhdGNoTWVzc2FnZXMoKQogICAgICAgICBpZiAobV9z
Y3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc1dvcmtlckdsb2JhbFNjb3BlKCkgJiYgdG9Xb3JrZXJH
bG9iYWxTY29wZShtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpLT5pc0Nsb3NpbmcoKSkKICAgICAg
ICAgICAgIHJldHVybjsKIAotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRBcnJh
eT4gcG9ydHMgPSBNZXNzYWdlUG9ydDo6ZW50YW5nbGVQb3J0cygqbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0LCBzdGQ6Om1vdmUoY2hhbm5lbHMpKTsKLSAgICAgICAgUmVmUHRyPEV2ZW50PiBldnQg
PSBNZXNzYWdlRXZlbnQ6OmNyZWF0ZShzdGQ6Om1vdmUocG9ydHMpLCBtZXNzYWdlLnJlbGVhc2Uo
KSk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydEFycmF5PiBwb3J0cyA9IE1l
c3NhZ2VQb3J0OjplbnRhbmdsZVBvcnRzKCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIFdURjo6
bW92ZShjaGFubmVscykpOworICAgICAgICBSZWZQdHI8RXZlbnQ+IGV2dCA9IE1lc3NhZ2VFdmVu
dDo6Y3JlYXRlKFdURjo6bW92ZShwb3J0cyksIG1lc3NhZ2UucmVsZWFzZSgpKTsKIAogICAgICAg
ICBkaXNwYXRjaEV2ZW50KGV2dC5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAg
IH0KQEAgLTIwNSw3ICsyMDUsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVs
QXJyYXk+IE1lc3NhZ2VQb3J0OjpkaXNlbnRhbmdsZVBvcnRzKGNvbnN0IE1lcwogICAgIGF1dG8g
cG9ydEFycmF5ID0gc3RkOjptYWtlX3VuaXF1ZTxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4ocG9y
dHMtPnNpemUoKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDAgOyBpIDwgcG9ydHMtPnNp
emUoKSA7ICsraSkgewogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVs
PiBjaGFubmVsID0gKCpwb3J0cylbaV0tPmRpc2VudGFuZ2xlKCk7Ci0gICAgICAgICgqcG9ydEFy
cmF5KVtpXSA9IHN0ZDo6bW92ZShjaGFubmVsKTsKKyAgICAgICAgKCpwb3J0QXJyYXkpW2ldID0g
V1RGOjptb3ZlKGNoYW5uZWwpOwogICAgIH0KICAgICByZXR1cm4gcG9ydEFycmF5OwogfQpAQCAt
MjE4LDcgKzIxOCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydEFycmF5PiBNZXNzYWdl
UG9ydDo6ZW50YW5nbGVQb3J0cyhTY3JpcHRFeGVjdXRpb25Db250CiAgICAgYXV0byBwb3J0QXJy
YXkgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VQb3J0QXJyYXk+KGNoYW5uZWxzLT5zaXplKCkp
OwogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgY2hhbm5lbHMtPnNpemUoKTsgKytp
KSB7CiAgICAgICAgIFJlZlB0cjxNZXNzYWdlUG9ydD4gcG9ydCA9IE1lc3NhZ2VQb3J0OjpjcmVh
dGUoY29udGV4dCk7Ci0gICAgICAgIHBvcnQtPmVudGFuZ2xlKHN0ZDo6bW92ZSgoKmNoYW5uZWxz
KVtpXSkpOworICAgICAgICBwb3J0LT5lbnRhbmdsZShXVEY6Om1vdmUoKCpjaGFubmVscylbaV0p
KTsKICAgICAgICAgKCpwb3J0QXJyYXkpW2ldID0gcG9ydC5yZWxlYXNlKCk7CiAgICAgfQogICAg
IHJldHVybiBwb3J0QXJyYXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggYWQ2YjhiMC4uMjhlYWEyYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmNwcApAQCAtNzI0LDEwICs3MjQsMTAgQEAgdm9pZCBEb2N1bWVudDo6aW52
YWxpZGF0ZU5vZGVMaXN0QW5kQ29sbGVjdGlvbkNhY2hlcyhjb25zdCBRdWFsaWZpZWROYW1lKiBh
dHRyTmEKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgbV9pbkludmFsaWRhdGVOb2RlTGlzdEFu
ZENvbGxlY3Rpb25DYWNoZXMgPSB0cnVlOwogI2VuZGlmCi0gICAgSGFzaFNldDxMaXZlTm9kZUxp
c3QqPiBsaXN0cyA9IHN0ZDo6bW92ZShtX2xpc3RzSW52YWxpZGF0ZWRBdERvY3VtZW50KTsKKyAg
ICBIYXNoU2V0PExpdmVOb2RlTGlzdCo+IGxpc3RzID0gV1RGOjptb3ZlKG1fbGlzdHNJbnZhbGlk
YXRlZEF0RG9jdW1lbnQpOwogICAgIGZvciAoYXV0byogbGlzdCA6IGxpc3RzKQogICAgICAgICBs
aXN0LT5pbnZhbGlkYXRlQ2FjaGVGb3JBdHRyaWJ1dGUoYXR0ck5hbWUpOwotICAgIEhhc2hTZXQ8
SFRNTENvbGxlY3Rpb24qPiBjb2xsZWN0aW9ucyA9IHN0ZDo6bW92ZShtX2NvbGxlY3Rpb25zSW52
YWxpZGF0ZWRBdERvY3VtZW50KTsKKyAgICBIYXNoU2V0PEhUTUxDb2xsZWN0aW9uKj4gY29sbGVj
dGlvbnMgPSBXVEY6Om1vdmUobV9jb2xsZWN0aW9uc0ludmFsaWRhdGVkQXREb2N1bWVudCk7CiAg
ICAgZm9yIChhdXRvKiBjb2xsZWN0aW9uIDogY29sbGVjdGlvbnMpCiAgICAgICAgIGNvbGxlY3Rp
b24tPmludmFsaWRhdGVDYWNoZShhdHRyTmFtZSk7CiAjaWYgIUFTU0VSVF9ESVNBQkxFRApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAppbmRleCBkMzU0MmUw
Li5kNmRkZGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9u
LmNwcApAQCAtMjAyLDcgKzIwMiw3IEBAIHZvaWQgUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpzZXRD
U1NTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYgaHJlZiwgY29uc3QgVVJMJiBiYXNlCiAgICAgY3Nz
U2hlZXQuZ2V0KCkuc2V0VGl0bGUobV90aXRsZSk7CiAgICAgY3NzU2hlZXQuZ2V0KCkuc2V0TWVk
aWFRdWVyaWVzKE1lZGlhUXVlcnlTZXQ6OmNyZWF0ZShtX21lZGlhKSk7CiAKLSAgICBtX3NoZWV0
ID0gc3RkOjptb3ZlKGNzc1NoZWV0KTsKKyAgICBtX3NoZWV0ID0gV1RGOjptb3ZlKGNzc1NoZWV0
KTsKIAogICAgIC8vIFdlIGRvbid0IG5lZWQgdGhlIGNyb3NzLW9yaWdpbiBzZWN1cml0eSBjaGVj
ayBoZXJlIGJlY2F1c2Ugd2UgYXJlCiAgICAgLy8gZ2V0dGluZyB0aGUgc2hlZXQgdGV4dCBpbiAi
c3RyaWN0IiBtb2RlLiBUaGlzIGVuZm9yY2VzIGEgdmFsaWQgQ1NTIE1JTUUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Qc2V1ZG9FbGVtZW50LmNwcAppbmRleCAyY2NlYmVjLi4zYjRhOTc5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vUHNldWRvRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1BzZXVkb0VsZW1lbnQuY3BwCkBAIC0xMTMsNyArMTEzLDcgQEAgdm9pZCBQc2V1ZG9FbGVt
ZW50OjpkaWRSZWNhbGNTdHlsZShTdHlsZTo6Q2hhbmdlKQogICAgICAgICBpZiAoIWNoaWxkLT5p
c1JlbmRlckltYWdlKCkgJiYgIWNoaWxkLT5pc1F1b3RlKCkpCiAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgUGFzc1JlZjxSZW5kZXJTdHlsZT4gY3JlYXRlZFN0eWxlID0gUmVuZGVyU3R5
bGU6OmNyZWF0ZVN0eWxlSW5oZXJpdGluZ0Zyb21Qc2V1ZG9TdHlsZShyZW5kZXJlci0+c3R5bGUo
KSk7Ci0gICAgICAgIHRvUmVuZGVyRWxlbWVudCgqY2hpbGQpLnNldFN0eWxlKHN0ZDo6bW92ZShj
cmVhdGVkU3R5bGUpKTsKKyAgICAgICAgdG9SZW5kZXJFbGVtZW50KCpjaGlsZCkuc2V0U3R5bGUo
V1RGOjptb3ZlKGNyZWF0ZWRTdHlsZSkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1Njb3BlZEV2ZW50UXVldWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Nj
b3BlZEV2ZW50UXVldWUuY3BwCmluZGV4IDUwMzg0M2IuLjE3ZDUyM2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY29wZWRFdmVudFF1ZXVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NvcGVkRXZlbnRRdWV1ZS5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBTY29wZWRF
dmVudFF1ZXVlOjpkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KSBjb25zdAog
CiB2b2lkIFNjb3BlZEV2ZW50UXVldWU6OmRpc3BhdGNoQWxsRXZlbnRzKCkKIHsKLSAgICBWZWN0
b3I8UmVmUHRyPEV2ZW50Pj4gcXVldWVkRXZlbnRzID0gc3RkOjptb3ZlKG1fcXVldWVkRXZlbnRz
KTsKKyAgICBWZWN0b3I8UmVmUHRyPEV2ZW50Pj4gcXVldWVkRXZlbnRzID0gV1RGOjptb3ZlKG1f
cXVldWVkRXZlbnRzKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHF1ZXVlZEV2ZW50cy5z
aXplKCk7IGkrKykKICAgICAgICAgZGlzcGF0Y2hFdmVudChxdWV1ZWRFdmVudHNbaV0ucmVsZWFz
ZSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25D
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNw
cAppbmRleCBhOTY4YmJmLi45NTFjODA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQuY3BwCkBAIC0zNjAsNyArMzYwLDcgQEAgdm9pZCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjpyZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2Us
IGludCBsaW4KICAgICBpZiAoIW1fcGVuZGluZ0V4Y2VwdGlvbnMpCiAgICAgICAgIHJldHVybjsK
IAotICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFBlbmRpbmdFeGNl
cHRpb24+Pj4gcGVuZGluZ0V4Y2VwdGlvbnMgPSBzdGQ6Om1vdmUobV9wZW5kaW5nRXhjZXB0aW9u
cyk7CisgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8UGVuZGluZ0V4
Y2VwdGlvbj4+PiBwZW5kaW5nRXhjZXB0aW9ucyA9IFdURjo6bW92ZShtX3BlbmRpbmdFeGNlcHRp
b25zKTsKICAgICBmb3IgKGF1dG8mIGV4Y2VwdGlvbiA6ICpwZW5kaW5nRXhjZXB0aW9ucykKICAg
ICAgICAgbG9nRXhjZXB0aW9uVG9Db25zb2xlKGV4Y2VwdGlvbi0+bV9lcnJvck1lc3NhZ2UsIGV4
Y2VwdGlvbi0+bV9zb3VyY2VVUkwsIGV4Y2VwdGlvbi0+bV9saW5lTnVtYmVyLCBleGNlcHRpb24t
Pm1fY29sdW1uTnVtYmVyLCBleGNlcHRpb24tPm1fY2FsbFN0YWNrKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IGNkOGJjMzcuLjI2OWMzYTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtMTE5
LDIwICsxMTksMjAgQEAgcHVibGljOgogCiAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5
cGVuYW1lID0gdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8IXN0ZDo6aXNfYmFzZV9vZjxUYXNrLCBU
Pjo6dmFsdWUgJiYgc3RkOjppc19jb252ZXJ0aWJsZTxULCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmKT4+Ojp2YWx1ZT46OnR5cGU+CiAgICAgICAgIFRhc2soVCB0
YXNrKQotICAgICAgICAgICAgOiBtX3Rhc2soc3RkOjptb3ZlKHRhc2spKQorICAgICAgICAgICAg
OiBtX3Rhc2soV1RGOjptb3ZlKHRhc2spKQogICAgICAgICAgICAgLCBtX2lzQ2xlYW51cFRhc2so
ZmFsc2UpCiAgICAgICAgIHsKICAgICAgICAgfQogCiAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFQsIHR5cGVuYW1lID0gdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19jb252ZXJ0aWJs
ZTxULCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKT4+Ojp2YWx1
ZT46OnR5cGU+CiAgICAgICAgIFRhc2soQ2xlYW51cFRhc2tUYWcsIFQgdGFzaykKLSAgICAgICAg
ICAgIDogbV90YXNrKHN0ZDo6bW92ZSh0YXNrKSkKKyAgICAgICAgICAgIDogbV90YXNrKFdURjo6
bW92ZSh0YXNrKSkKICAgICAgICAgICAgICwgbV9pc0NsZWFudXBUYXNrKHRydWUpCiAgICAgICAg
IHsKICAgICAgICAgfQogCiAgICAgICAgIFRhc2soVGFzayYmIG90aGVyKQotICAgICAgICAgICAg
OiBtX3Rhc2soc3RkOjptb3ZlKG90aGVyLm1fdGFzaykpCisgICAgICAgICAgICA6IG1fdGFzayhX
VEY6Om1vdmUob3RoZXIubV90YXNrKSkKICAgICAgICAgICAgICwgbV9pc0NsZWFudXBUYXNrKG90
aGVyLm1faXNDbGVhbnVwVGFzaykKICAgICAgICAgewogICAgICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TZWN1cml0eUNvbnRleHQuY3BwCmluZGV4IDI0Nzc4YjAuLjlmMzk0ZTY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcApAQCAtNTIsNyArNTIsNyBAQCB2b2lkIFNlY3Vy
aXR5Q29udGV4dDo6c2V0U2VjdXJpdHlPcmlnaW4oUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4g
c2VjdXJpdHlPcmlnaQogCiB2b2lkIFNlY3VyaXR5Q29udGV4dDo6c2V0Q29udGVudFNlY3VyaXR5
UG9saWN5KHN0ZDo6dW5pcXVlX3B0cjxDb250ZW50U2VjdXJpdHlQb2xpY3k+IGNvbnRlbnRTZWN1
cml0eVBvbGljeSkKIHsKLSAgICBtX2NvbnRlbnRTZWN1cml0eVBvbGljeSA9IHN0ZDo6bW92ZShj
b250ZW50U2VjdXJpdHlQb2xpY3kpOworICAgIG1fY29udGVudFNlY3VyaXR5UG9saWN5ID0gV1RG
Ojptb3ZlKGNvbnRlbnRTZWN1cml0eVBvbGljeSk7CiB9CiAKIGJvb2wgU2VjdXJpdHlDb250ZXh0
Ojppc1NlY3VyZVRyYW5zaXRpb25Ubyhjb25zdCBVUkwmIHVybCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TZWxlY3RvclF1ZXJ5LmNwcAppbmRleCA0NWU0MTFkLi5iNTMyMjkzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NlbGVjdG9yUXVlcnkuY3BwCkBAIC00OTAsNyArNDkwLDcgQEAgU2VsZWN0b3JRdWVyeSog
U2VsZWN0b3JRdWVyeUNhY2hlOjphZGQoY29uc3QgU3RyaW5nJiBzZWxlY3RvcnMsIERvY3VtZW50
JiBkb2N1bWUKICAgICBpZiAobV9lbnRyaWVzLnNpemUoKSA9PSBtYXhpbXVtU2VsZWN0b3JRdWVy
eUNhY2hlU2l6ZSkKICAgICAgICAgbV9lbnRyaWVzLnJlbW92ZShtX2VudHJpZXMuYmVnaW4oKSk7
CiAgICAgCi0gICAgcmV0dXJuIG1fZW50cmllcy5hZGQoc2VsZWN0b3JzLCBzdGQ6Om1ha2VfdW5p
cXVlPFNlbGVjdG9yUXVlcnk+KHN0ZDo6bW92ZShzZWxlY3Rvckxpc3QpKSkuaXRlcmF0b3ItPnZh
bHVlLmdldCgpOworICAgIHJldHVybiBtX2VudHJpZXMuYWRkKHNlbGVjdG9ycywgc3RkOjptYWtl
X3VuaXF1ZTxTZWxlY3RvclF1ZXJ5PihXVEY6Om1vdmUoc2VsZWN0b3JMaXN0KSkpLml0ZXJhdG9y
LT52YWx1ZS5nZXQoKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL2Rl
ZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuY3BwCmluZGV4IDM0MmVmNjcuLjZj
YjBlMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVz
c2FnZVBvcnRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0
Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6RXZlbnREYXRhOjpFdmVudERh
dGEoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIHN0ZDo6dW5pcXVl
X3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4gY2hhbm5lbHMpCiAgICAgOiBtX21lc3NhZ2Uo
bWVzc2FnZSkKLSAgICAsIG1fY2hhbm5lbHMoc3RkOjptb3ZlKGNoYW5uZWxzKSkKKyAgICAsIG1f
Y2hhbm5lbHMoV1RGOjptb3ZlKGNoYW5uZWxzKSkKIHsKIH0KIApAQCAtNTQsOCArNTQsOCBAQCB2
b2lkIE1lc3NhZ2VQb3J0Q2hhbm5lbDo6Y3JlYXRlQ2hhbm5lbChQYXNzUmVmUHRyPE1lc3NhZ2VQ
b3J0PiBwb3J0MSwgUGFzc1JlZlB0cgogICAgIGNoYW5uZWwxLT5tX2NoYW5uZWwtPm1fZW50YW5n
bGVkQ2hhbm5lbCA9IGNoYW5uZWwyLT5tX2NoYW5uZWw7CiAgICAgY2hhbm5lbDItPm1fY2hhbm5l
bC0+bV9lbnRhbmdsZWRDaGFubmVsID0gY2hhbm5lbDEtPm1fY2hhbm5lbDsKIAotICAgIHBvcnQx
LT5lbnRhbmdsZShzdGQ6Om1vdmUoY2hhbm5lbDIpKTsKLSAgICBwb3J0Mi0+ZW50YW5nbGUoc3Rk
Ojptb3ZlKGNoYW5uZWwxKSk7CisgICAgcG9ydDEtPmVudGFuZ2xlKFdURjo6bW92ZShjaGFubmVs
MikpOworICAgIHBvcnQyLT5lbnRhbmdsZShXVEY6Om1vdmUoY2hhbm5lbDEpKTsKIH0KIAogTWVz
c2FnZVBvcnRDaGFubmVsOjpNZXNzYWdlUG9ydENoYW5uZWwoUGFzc1JlZlB0cjxQbGF0Zm9ybU1l
c3NhZ2VQb3J0Q2hhbm5lbD4gY2hhbm5lbCkKQEAgLTkxLDcgKzkxLDcgQEAgdm9pZCBNZXNzYWdl
UG9ydENoYW5uZWw6OnBvc3RNZXNzYWdlVG9SZW1vdGUoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IG0KICAgICBNdXRleExvY2tlciBsb2NrKG1fY2hhbm5lbC0+bV9tdXRleCk7CiAg
ICAgaWYgKCFtX2NoYW5uZWwtPm1fb3V0Z29pbmdRdWV1ZSkKICAgICAgICAgcmV0dXJuOwotICAg
IGJvb2wgd2FzRW1wdHkgPSBtX2NoYW5uZWwtPm1fb3V0Z29pbmdRdWV1ZS0+YXBwZW5kQW5kQ2hl
Y2tFbXB0eShzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsOjpFdmVu
dERhdGE+KG1lc3NhZ2UsIHN0ZDo6bW92ZShjaGFubmVscykpKTsKKyAgICBib29sIHdhc0VtcHR5
ID0gbV9jaGFubmVsLT5tX291dGdvaW5nUXVldWUtPmFwcGVuZEFuZENoZWNrRW1wdHkoc3RkOjpt
YWtlX3VuaXF1ZTxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbDo6RXZlbnREYXRhPihtZXNzYWdl
LCBXVEY6Om1vdmUoY2hhbm5lbHMpKSk7CiAgICAgaWYgKHdhc0VtcHR5ICYmIG1fY2hhbm5lbC0+
bV9yZW1vdGVQb3J0KQogICAgICAgICBtX2NoYW5uZWwtPm1fcmVtb3RlUG9ydC0+bWVzc2FnZUF2
YWlsYWJsZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxh
dGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1Bs
YXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmgKaW5kZXggNTA5ODRmOS4uOTU0ZWI4OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5u
ZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0
Q2hhbm5lbC5oCkBAIC01Miw3ICs1Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
ICAgIEV2ZW50RGF0YShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSwg
c3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5Pik7CiAKICAgICAgICAgICAg
IFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlKCkgeyByZXR1cm4gbV9t
ZXNzYWdlOyB9Ci0gICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVs
QXJyYXk+IGNoYW5uZWxzKCkgeyByZXR1cm4gc3RkOjptb3ZlKG1fY2hhbm5lbHMpOyB9CisgICAg
ICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IGNoYW5uZWxz
KCkgeyByZXR1cm4gV1RGOjptb3ZlKG1fY2hhbm5lbHMpOyB9CiAKICAgICAgICAgcHJpdmF0ZToK
ICAgICAgICAgICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1fbWVzc2FnZTsKQEAg
LTcxLDcgKzcxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgICAgICBib29sIGFw
cGVuZEFuZENoZWNrRW1wdHkoc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFu
bmVsOjpFdmVudERhdGE+IG1lc3NhZ2UpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIG1fcXVldWUuYXBwZW5kQW5kQ2hlY2tFbXB0eShzdGQ6Om1vdmUobWVzc2FnZSkpOwor
ICAgICAgICAgICAgICAgIHJldHVybiBtX3F1ZXVlLmFwcGVuZEFuZENoZWNrRW1wdHkoV1RGOjpt
b3ZlKG1lc3NhZ2UpKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgYm9vbCBpc0VtcHR5
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcAppbmRl
eCBkZGM4ZTllLi40MmY3ZjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Rl
eHRDaGVja2luZ0hlbHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hl
Y2tpbmdIZWxwZXIuY3BwCkBAIC02Myw3ICs2Myw3IEBAIHN0YXRpYyB2b2lkIGZpbmRHcmFtbWF0
aWNhbEVycm9ycyhUZXh0Q2hlY2tlckNsaWVudCYgY2xpZW50LCBTdHJpbmdWaWV3IHRleHQsIFZl
CiAgICAgICAgIGJhZEdyYW1tYXIudHlwZSA9IFRleHRDaGVja2luZ1R5cGVHcmFtbWFyOwogICAg
ICAgICBiYWRHcmFtbWFyLmxvY2F0aW9uID0gY2hlY2tMb2NhdGlvbiArIGJhZEdyYW1tYXJMb2Nh
dGlvbjsKICAgICAgICAgYmFkR3JhbW1hci5sZW5ndGggPSBiYWRHcmFtbWFyTGVuZ3RoOwotICAg
ICAgICBiYWRHcmFtbWFyLmRldGFpbHMgPSBzdGQ6Om1vdmUoYmFkR3JhbW1hckRldGFpbHMpOwor
ICAgICAgICBiYWRHcmFtbWFyLmRldGFpbHMgPSBXVEY6Om1vdmUoYmFkR3JhbW1hckRldGFpbHMp
OwogICAgICAgICByZXN1bHRzLmFwcGVuZChiYWRHcmFtbWFyKTsKIAogICAgICAgICBjaGVja0xv
Y2F0aW9uICs9IGJhZEdyYW1tYXJMb2NhdGlvbiArIGJhZEdyYW1tYXJMZW5ndGg7CkBAIC02Njks
MTEgKzY2OSwxMSBAQCB2b2lkIGNoZWNrVGV4dE9mUGFyYWdyYXBoKFRleHRDaGVja2VyQ2xpZW50
JiBjbGllbnQsIFN0cmluZ1ZpZXcgdGV4dCwgVGV4dENoZWNraQogICAgICAgICBmaW5kR3JhbW1h
dGljYWxFcnJvcnMoY2xpZW50LCB0ZXh0LnN1YnN0cmluZygwLCBncmFtbWFyQ2hlY2tMZW5ndGgp
LCBncmFtbWF0aWNhbEVycm9ycyk7CiAgICAgfQogCi0gICAgcmVzdWx0cyA9IHN0ZDo6bW92ZShn
cmFtbWF0aWNhbEVycm9ycyk7CisgICAgcmVzdWx0cyA9IFdURjo6bW92ZShncmFtbWF0aWNhbEVy
cm9ycyk7CiAjZW5kaWYKIAogICAgIGlmIChyZXN1bHRzLmlzRW1wdHkoKSkKLSAgICAgICAgcmVz
dWx0cyA9IHN0ZDo6bW92ZShtaXNwZWxsaW5ncyk7CisgICAgICAgIHJlc3VsdHMgPSBXVEY6Om1v
dmUobWlzcGVsbGluZ3MpOwogICAgIGVsc2UKICAgICAgICAgcmVzdWx0cy5hcHBlbmRWZWN0b3Io
bWlzcGVsbGluZ3MpOwogI2VuZGlmIC8vIFVTRShVTklGSUVEX1RFWFRfQ0hFQ0tJTkcpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKaW5kZXggYmE3OTBjOS4uNjZmMzRlNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcApAQCAtMjc3LDcgKzI3Nyw3
IEBAIGlubGluZSB2b2lkIFRleHRJdGVyYXRvckNvcHlhYmxlVGV4dDo6cmVzZXQoKQogaW5saW5l
IHZvaWQgVGV4dEl0ZXJhdG9yQ29weWFibGVUZXh0OjpzZXQoU3RyaW5nJiYgc3RyaW5nKQogewog
ICAgIG1fc2luZ2xlQ2hhcmFjdGVyID0gMDsKLSAgICBtX3N0cmluZyA9IHN0ZDo6bW92ZShzdHJp
bmcpOworICAgIG1fc3RyaW5nID0gV1RGOjptb3ZlKHN0cmluZyk7CiAgICAgbV9vZmZzZXQgPSAw
OwogICAgIG1fbGVuZ3RoID0gbV9zdHJpbmcubGVuZ3RoKCk7CiB9CkBAIC0yODksNyArMjg5LDcg
QEAgaW5saW5lIHZvaWQgVGV4dEl0ZXJhdG9yQ29weWFibGVUZXh0OjpzZXQoU3RyaW5nJiYgc3Ry
aW5nLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2kKICAgICBBU1NFUlQobGVuZ3RoIDw9IHN0cmluZy5s
ZW5ndGgoKSAtIG9mZnNldCk7CiAKICAgICBtX3NpbmdsZUNoYXJhY3RlciA9IDA7Ci0gICAgbV9z
dHJpbmcgPSBzdGQ6Om1vdmUoc3RyaW5nKTsKKyAgICBtX3N0cmluZyA9IFdURjo6bW92ZShzdHJp
bmcpOwogICAgIG1fb2Zmc2V0ID0gb2Zmc2V0OwogICAgIG1fbGVuZ3RoID0gbGVuZ3RoOwogfQpA
QCAtNzYyLDcgKzc2Miw3IEBAIGJvb2wgVGV4dEl0ZXJhdG9yOjpoYW5kbGVSZXBsYWNlZEVsZW1l
bnQoKQogICAgICAgICBTdHJpbmcgYWx0VGV4dCA9IHRvUmVuZGVySW1hZ2UocmVuZGVyZXIpLmFs
dFRleHQoKTsKICAgICAgICAgaWYgKHVuc2lnbmVkIGxlbmd0aCA9IGFsdFRleHQubGVuZ3RoKCkp
IHsKICAgICAgICAgICAgIG1fbGFzdENoYXJhY3RlciA9IGFsdFRleHRbbGVuZ3RoIC0gMV07Ci0g
ICAgICAgICAgICBtX2NvcHlhYmxlVGV4dC5zZXQoc3RkOjptb3ZlKGFsdFRleHQpKTsKKyAgICAg
ICAgICAgIG1fY29weWFibGVUZXh0LnNldChXVEY6Om1vdmUoYWx0VGV4dCkpOwogICAgICAgICAg
ICAgbV90ZXh0ID0gbV9jb3B5YWJsZVRleHQudGV4dCgpOwogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIH0KQEAgLTEwODEsNyArMTA4MSw3IEBAIHZvaWQgVGV4dEl0ZXJhdG9yOjpl
bWl0VGV4dChUZXh0JiB0ZXh0Tm9kZSwgUmVuZGVyVGV4dCYgcmVuZGVyZXIsIGludCB0ZXh0U3Rh
cnRPCiAgICAgbV9wb3NpdGlvbkVuZE9mZnNldCA9IHRleHRFbmRPZmZzZXQ7CiAKICAgICBtX2xh
c3RDaGFyYWN0ZXIgPSBzdHJpbmdbdGV4dEVuZE9mZnNldCAtIDFdOwotICAgIG1fY29weWFibGVU
ZXh0LnNldChzdGQ6Om1vdmUoc3RyaW5nKSwgdGV4dFN0YXJ0T2Zmc2V0LCB0ZXh0RW5kT2Zmc2V0
IC0gdGV4dFN0YXJ0T2Zmc2V0KTsKKyAgICBtX2NvcHlhYmxlVGV4dC5zZXQoV1RGOjptb3ZlKHN0
cmluZyksIHRleHRTdGFydE9mZnNldCwgdGV4dEVuZE9mZnNldCAtIHRleHRTdGFydE9mZnNldCk7
CiAgICAgbV90ZXh0ID0gbV9jb3B5YWJsZVRleHQudGV4dCgpOwogCiAgICAgbV9sYXN0VGV4dE5v
ZGVFbmRlZFdpdGhDb2xsYXBzZWRTcGFjZSA9IGZhbHNlOwpAQCAtMTI4OSw3ICsxMjg5LDcgQEAg
Ym9vbCBTaW1wbGlmaWVkQmFja3dhcmRzVGV4dEl0ZXJhdG9yOjpoYW5kbGVUZXh0Tm9kZSgpCiAg
ICAgQVNTRVJUKG1fcG9zaXRpb25FbmRPZmZzZXQgLSBvZmZzZXRJbk5vZGUgPD0gc3RhdGljX2Nh
c3Q8aW50Pih0ZXh0Lmxlbmd0aCgpKSk7CiAKICAgICBtX2xhc3RDaGFyYWN0ZXIgPSB0ZXh0W21f
cG9zaXRpb25FbmRPZmZzZXQgLSBvZmZzZXRJbk5vZGUgLSAxXTsKLSAgICBtX2NvcHlhYmxlVGV4
dC5zZXQoc3RkOjptb3ZlKHRleHQpLCBtX3Bvc2l0aW9uU3RhcnRPZmZzZXQgLSBvZmZzZXRJbk5v
ZGUsIG1fcG9zaXRpb25FbmRPZmZzZXQgLSBtX3Bvc2l0aW9uU3RhcnRPZmZzZXQpOworICAgIG1f
Y29weWFibGVUZXh0LnNldChXVEY6Om1vdmUodGV4dCksIG1fcG9zaXRpb25TdGFydE9mZnNldCAt
IG9mZnNldEluTm9kZSwgbV9wb3NpdGlvbkVuZE9mZnNldCAtIG1fcG9zaXRpb25TdGFydE9mZnNl
dCk7CiAgICAgbV90ZXh0ID0gbV9jb3B5YWJsZVRleHQudGV4dCgpOwogCiAgICAgcmV0dXJuICFt
X3Nob3VsZEhhbmRsZUZpcnN0TGV0dGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmls
ZWFwaS9CbG9iLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5jcHAKaW5kZXggZjFm
MjliOC4uMDFkMzMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwCkBAIC04Miw5ICs4Miw5IEBA
IEJsb2I6OkJsb2IoVmVjdG9yPGNoYXI+IGRhdGEsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUp
CiAgICAgLCBtX3NpemUoZGF0YS5zaXplKCkpCiB7CiAgICAgVmVjdG9yPEJsb2JQYXJ0PiBibG9i
UGFydHM7Ci0gICAgYmxvYlBhcnRzLmFwcGVuZChCbG9iUGFydChzdGQ6Om1vdmUoZGF0YSkpKTsK
KyAgICBibG9iUGFydHMuYXBwZW5kKEJsb2JQYXJ0KFdURjo6bW92ZShkYXRhKSkpOwogICAgIG1f
aW50ZXJuYWxVUkwgPSBCbG9iVVJMOjpjcmVhdGVJbnRlcm5hbFVSTCgpOwotICAgIFRocmVhZGFi
bGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTChtX2ludGVybmFsVVJMLCBzdGQ6Om1vdmUo
YmxvYlBhcnRzKSwgY29udGVudFR5cGUpOworICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJl
Z2lzdGVyQmxvYlVSTChtX2ludGVybmFsVVJMLCBXVEY6Om1vdmUoYmxvYlBhcnRzKSwgY29udGVu
dFR5cGUpOwogfQogCiBCbG9iOjpCbG9iKFZlY3RvcjxCbG9iUGFydD4gYmxvYlBhcnRzLCBjb25z
dCBTdHJpbmcmIGNvbnRlbnRUeXBlKQpAQCAtOTIsNyArOTIsNyBAQCBCbG9iOjpCbG9iKFZlY3Rv
cjxCbG9iUGFydD4gYmxvYlBhcnRzLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKQogICAgICwg
bV9zaXplKC0xKQogewogICAgIG1faW50ZXJuYWxVUkwgPSBCbG9iVVJMOjpjcmVhdGVJbnRlcm5h
bFVSTCgpOwotICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTChtX2lu
dGVybmFsVVJMLCBzdGQ6Om1vdmUoYmxvYlBhcnRzKSwgY29udGVudFR5cGUpOworICAgIFRocmVh
ZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTChtX2ludGVybmFsVVJMLCBXVEY6Om1v
dmUoYmxvYlBhcnRzKSwgY29udGVudFR5cGUpOwogfQogCiBCbG9iOjpCbG9iKERlc2VyaWFsaXph
dGlvbkNvbnRydWN0b3IsIGNvbnN0IFVSTCYgc3JjVVJMLCBjb25zdCBTdHJpbmcmIHR5cGUsIGxv
bmcgbG9uZyBzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuaAppbmRleCBhMmFiNWFmLi5kZmZjYWQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL0Jsb2IuaApAQCAtNTEsMTIgKzUxLDEyIEBAIHB1YmxpYzoKIAogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEJsb2I+IGNyZWF0ZShWZWN0b3I8Y2hhcj4gZGF0YSwgY29uc3QgU3Ry
aW5nJiBjb250ZW50VHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQmxv
YihzdGQ6Om1vdmUoZGF0YSksIGNvbnRlbnRUeXBlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgQmxvYihXVEY6Om1vdmUoZGF0YSksIGNvbnRlbnRUeXBlKSk7CiAgICAgfQogCiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8QmxvYj4gY3JlYXRlKFZlY3RvcjxCbG9iUGFydD4gYmxvYlBhcnRz
LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBCbG9iKHN0ZDo6bW92ZShibG9iUGFydHMpLCBjb250ZW50VHlwZSkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEJsb2IoV1RGOjptb3ZlKGJsb2JQYXJ0cyksIGNvbnRlbnRU
eXBlKSk7CiAgICAgfQogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8QmxvYj4gZGVzZXJpYWxpemUo
Y29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgdHlwZSwgbG9uZyBsb25nIHNpemUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVMaXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL0ZpbGVMaXN0LmgKaW5kZXggMmQ4NWNjMC4uYmJlNmRlYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvRmlsZUxpc3QuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxGaWxlTGlzdD4gY3JlYXRlKFZlY3RvcjxSZWZQdHI8RmlsZT4+JiYgZmls
ZXMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZpbGVMaXN0KHN0ZDo6bW92
ZShmaWxlcykpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGaWxlTGlzdChXVEY6Om1v
dmUoZmlsZXMpKSk7CiAgICAgfQogCiAgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1
cm4gbV9maWxlcy5zaXplKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
RmlsZVRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVUaHJlYWQuY3BwCmlu
ZGV4IGVmYzA3ZGYuLjM0ZWE1ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
RmlsZVRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlVGhyZWFkLmNw
cApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIEZpbGVUaHJlYWQ6OnN0b3AoKQogCiB2b2lkIEZpbGVU
aHJlYWQ6OnBvc3RUYXNrKFRhc2sgdGFzaykKIHsKLSAgICBtX3F1ZXVlLmFwcGVuZChzdGQ6Om1h
a2VfdW5pcXVlPEZpbGVUaHJlYWQ6OlRhc2s+KHN0ZDo6bW92ZSh0YXNrKSkpOworICAgIG1fcXVl
dWUuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8RmlsZVRocmVhZDo6VGFzaz4oV1RGOjptb3ZlKHRh
c2spKSk7CiB9CiAKIGNsYXNzIFNhbWVJbnN0YW5jZVByZWRpY2F0ZSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvRmlsZVRocmVhZC5oCmluZGV4IDYzZDExNTkuLjlkZTJmZWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvRmlsZVRocmVhZC5oCkBAIC01NywxMyArNTcsMTMgQEAgcHVibGljOgogICAgIHB1YmxpYzoK
ICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUgPSB0eXBl
bmFtZSBzdGQ6OmVuYWJsZV9pZjwhc3RkOjppc19iYXNlX29mPFRhc2ssIFU+Ojp2YWx1ZSAmJiBz
dGQ6OmlzX2NvbnZlcnRpYmxlPFUsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4+Ojp2YWx1ZT46OnR5
cGU+CiAgICAgICAgIFRhc2soVCogaW5zdGFuY2UsIFUgbWV0aG9kKQotICAgICAgICAgICAgOiBt
X3Rhc2soc3RkOjptb3ZlKG1ldGhvZCkpCisgICAgICAgICAgICA6IG1fdGFzayhXVEY6Om1vdmUo
bWV0aG9kKSkKICAgICAgICAgICAgICwgbV9pbnN0YW5jZShpbnN0YW5jZSkKICAgICAgICAgewog
ICAgICAgICB9CiAKICAgICAgICAgVGFzayhUYXNrJiYgb3RoZXIpCi0gICAgICAgICAgICA6IG1f
dGFzayhzdGQ6Om1vdmUob3RoZXIubV90YXNrKSkKKyAgICAgICAgICAgIDogbV90YXNrKFdURjo6
bW92ZShvdGhlci5tX3Rhc2spKQogICAgICAgICAgICAgLCBtX2luc3RhbmNlKG90aGVyLm1faW5z
dGFuY2UpCiAgICAgICAgIHsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHAKaW5kZXggNzllZjNlMi4uZWFlZWRmMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3Bw
CkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICBCbG9iUmVnaXN0cnlDb250ZXh0KGNvbnN0
IFVSTCYgdXJsLCBWZWN0b3I8QmxvYlBhcnQ+IGJsb2JQYXJ0cywgY29uc3QgU3RyaW5nJiBjb250
ZW50VHlwZSkKICAgICAgICAgOiB1cmwodXJsLmNvcHkoKSkKICAgICAgICAgLCBjb250ZW50VHlw
ZShjb250ZW50VHlwZS5pc29sYXRlZENvcHkoKSkKLSAgICAgICAgLCBibG9iUGFydHMoc3RkOjpt
b3ZlKGJsb2JQYXJ0cykpCisgICAgICAgICwgYmxvYlBhcnRzKFdURjo6bW92ZShibG9iUGFydHMp
KQogICAgIHsKICAgICAgICAgZm9yIChCbG9iUGFydCYgcGFydCA6IGJsb2JQYXJ0cykKICAgICAg
ICAgICAgIHBhcnQuZGV0YWNoRnJvbUN1cnJlbnRUaHJlYWQoKTsKQEAgLTExNSwxMyArMTE1LDEz
IEBAIHZvaWQgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6cmVnaXN0ZXJGaWxlQmxvYlVSTChjb25z
dCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwCiB2b2lkIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6
OnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmIHVybCwgVmVjdG9yPEJsb2JQYXJ0PiBibG9iUGFy
dHMsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCiB7CiAgICAgaWYgKGlzTWFpblRocmVhZCgp
KQotICAgICAgICBibG9iUmVnaXN0cnkoKS5yZWdpc3RlckJsb2JVUkwodXJsLCBzdGQ6Om1vdmUo
YmxvYlBhcnRzKSwgY29udGVudFR5cGUpOworICAgICAgICBibG9iUmVnaXN0cnkoKS5yZWdpc3Rl
ckJsb2JVUkwodXJsLCBXVEY6Om1vdmUoYmxvYlBhcnRzKSwgY29udGVudFR5cGUpOwogICAgIGVs
c2UgewogICAgICAgICAvLyBCbG9iUmVnaXN0cnlDb250ZXh0IHBlcmZvcm1zIGFuIGlzb2xhdGVk
IGNvcHkgb2YgZGF0YS4KLSAgICAgICAgQmxvYlJlZ2lzdHJ5Q29udGV4dCogY29udGV4dCA9IG5l
dyBCbG9iUmVnaXN0cnlDb250ZXh0KHVybCwgc3RkOjptb3ZlKGJsb2JQYXJ0cyksIGNvbnRlbnRU
eXBlKTsKKyAgICAgICAgQmxvYlJlZ2lzdHJ5Q29udGV4dCogY29udGV4dCA9IG5ldyBCbG9iUmVn
aXN0cnlDb250ZXh0KHVybCwgV1RGOjptb3ZlKGJsb2JQYXJ0cyksIGNvbnRlbnRUeXBlKTsKICAg
ICAgICAgY2FsbE9uTWFpblRocmVhZChbY29udGV4dF0gewogICAgICAgICAgICAgc3RkOjp1bmlx
dWVfcHRyPEJsb2JSZWdpc3RyeUNvbnRleHQ+IGJsb2JSZWdpc3RyeUNvbnRleHQoY29udGV4dCk7
Ci0gICAgICAgICAgICBibG9iUmVnaXN0cnkoKS5yZWdpc3RlckJsb2JVUkwoYmxvYlJlZ2lzdHJ5
Q29udGV4dC0+dXJsLCBzdGQ6Om1vdmUoYmxvYlJlZ2lzdHJ5Q29udGV4dC0+YmxvYlBhcnRzKSwg
YmxvYlJlZ2lzdHJ5Q29udGV4dC0+Y29udGVudFR5cGUpOworICAgICAgICAgICAgYmxvYlJlZ2lz
dHJ5KCkucmVnaXN0ZXJCbG9iVVJMKGJsb2JSZWdpc3RyeUNvbnRleHQtPnVybCwgV1RGOjptb3Zl
KGJsb2JSZWdpc3RyeUNvbnRleHQtPmJsb2JQYXJ0cyksIGJsb2JSZWdpc3RyeUNvbnRleHQtPmNv
bnRlbnRUeXBlKTsKICAgICAgICAgfSk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9XZWJLaXRCbG9iQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxl
YXBpL1dlYktpdEJsb2JCdWlsZGVyLmNwcAppbmRleCA2NDVlYjkxLi5lZmMyOWFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL1dlYktpdEJsb2JCdWlsZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL1dlYktpdEJsb2JCdWlsZGVyLmNwcApAQCAtOTAsMTUgKzkw
LDE1IEBAIHZvaWQgQmxvYkJ1aWxkZXI6OmFwcGVuZChCbG9iKiBibG9iKQogICAgIGlmICghYmxv
YikKICAgICAgICAgcmV0dXJuOwogICAgIGlmICghbV9hcHBlbmRhYmxlRGF0YS5pc0VtcHR5KCkp
Ci0gICAgICAgIG1faXRlbXMuYXBwZW5kKEJsb2JQYXJ0KHN0ZDo6bW92ZShtX2FwcGVuZGFibGVE
YXRhKSkpOworICAgICAgICBtX2l0ZW1zLmFwcGVuZChCbG9iUGFydChXVEY6Om1vdmUobV9hcHBl
bmRhYmxlRGF0YSkpKTsKICAgICBtX2l0ZW1zLmFwcGVuZChCbG9iUGFydChibG9iLT51cmwoKSkp
OwogfQogCiBWZWN0b3I8QmxvYlBhcnQ+IEJsb2JCdWlsZGVyOjpmaW5hbGl6ZSgpCiB7CiAgICAg
aWYgKCFtX2FwcGVuZGFibGVEYXRhLmlzRW1wdHkoKSkKLSAgICAgICAgbV9pdGVtcy5hcHBlbmQo
QmxvYlBhcnQoc3RkOjptb3ZlKG1fYXBwZW5kYWJsZURhdGEpKSk7Ci0gICAgcmV0dXJuIHN0ZDo6
bW92ZShtX2l0ZW1zKTsKKyAgICAgICAgbV9pdGVtcy5hcHBlbmQoQmxvYlBhcnQoV1RGOjptb3Zl
KG1fYXBwZW5kYWJsZURhdGEpKSk7CisgICAgcmV0dXJuIFdURjo6bW92ZShtX2l0ZW1zKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlz
dG9yeS9DYWNoZWRGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1l
LmNwcAppbmRleCAzNDg2OTBhLi43NjQ5NzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
aXN0b3J5L0NhY2hlZEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hl
ZEZyYW1lLmNwcApAQCAtMjc4LDcgKzI3OCw3IEBAIHZvaWQgQ2FjaGVkRnJhbWU6OmRlc3Ryb3ko
KQogCiB2b2lkIENhY2hlZEZyYW1lOjpzZXRDYWNoZWRGcmFtZVBsYXRmb3JtRGF0YShzdGQ6OnVu
aXF1ZV9wdHI8Q2FjaGVkRnJhbWVQbGF0Zm9ybURhdGE+IGRhdGEpCiB7Ci0gICAgbV9jYWNoZWRG
cmFtZVBsYXRmb3JtRGF0YSA9IHN0ZDo6bW92ZShkYXRhKTsKKyAgICBtX2NhY2hlZEZyYW1lUGxh
dGZvcm1EYXRhID0gV1RGOjptb3ZlKGRhdGEpOwogfQogCiBDYWNoZWRGcmFtZVBsYXRmb3JtRGF0
YSogQ2FjaGVkRnJhbWU6OmNhY2hlZEZyYW1lUGxhdGZvcm1EYXRhKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvaGlz
dG9yeS9IaXN0b3J5SXRlbS5jcHAKaW5kZXggZWMxMzRjNS4uNDAwNjEzZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKQEAgLTU3Myw3ICs1NzMsNyBAQCBWZWN0b3I8U3Ry
aW5nPiogSGlzdG9yeUl0ZW06OnJlZGlyZWN0VVJMcygpIGNvbnN0CiAKIHZvaWQgSGlzdG9yeUl0
ZW06OnNldFJlZGlyZWN0VVJMcyhzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPFN0cmluZz4+IHJlZGly
ZWN0VVJMcykKIHsKLSAgICBtX3JlZGlyZWN0VVJMcyA9IHN0ZDo6bW92ZShyZWRpcmVjdFVSTHMp
OworICAgIG1fcmVkaXJlY3RVUkxzID0gV1RGOjptb3ZlKHJlZGlyZWN0VVJMcyk7CiB9CiAKIHZv
aWQgSGlzdG9yeUl0ZW06OmVuY29kZUJhY2tGb3J3YXJkVHJlZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCmluZGV4IGVhZmY3NDMuLjA4MzVm
YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAKQEAgLTQzNyw3ICs0MzcsNyBA
QCBzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUGFnZT4gUGFnZUNhY2hlOjp0YWtlKEhpc3RvcnlJdGVt
KiBpdGVtKQogICAgIGlmICghaXRlbSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUGFnZT4gY2FjaGVkUGFnZSA9IHN0ZDo6bW92ZShpdGVtLT5t
X2NhY2hlZFBhZ2UpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRQYWdlPiBjYWNoZWRQYWdl
ID0gV1RGOjptb3ZlKGl0ZW0tPm1fY2FjaGVkUGFnZSk7CiAKICAgICByZW1vdmVGcm9tTFJVTGlz
dChpdGVtKTsKICAgICAtLW1fc2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
QmFzZUJ1dHRvbklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25J
bnB1dFR5cGUuY3BwCmluZGV4IDBiMThiNGYuLjg5YjI1NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmNwcApAQCAtNTQsNyArNTQsNyBAQCBib29sIEJhc2VC
dXR0b25JbnB1dFR5cGU6OmFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wpIGNvbnN0
CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBCYXNlQnV0dG9uSW5wdXRUeXBlOjpjcmVhdGVJ
bnB1dFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBj
cmVhdGVSZW5kZXJlcjxSZW5kZXJCdXR0b24+KGVsZW1lbnQoKSwgc3RkOjptb3ZlKHN0eWxlKSk7
CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckJ1dHRvbj4oZWxlbWVudCgpLCBXVEY6
Om1vdmUoc3R5bGUpKTsKIH0KIAogYm9vbCBCYXNlQnV0dG9uSW5wdXRUeXBlOjpzdG9yZXNWYWx1
ZVNlcGFyYXRlRnJvbUF0dHJpYnV0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNw
cAppbmRleCAyZmJmODc4Li5kYTA3YmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ZpbGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlw
ZS5jcHAKQEAgLTIwNSw3ICsyMDUsNyBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6OmhhbmRsZURPTUFj
dGl2YXRlRXZlbnQoRXZlbnQqIGV2ZW50KQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gRmls
ZUlucHV0VHlwZTo6Y3JlYXRlSW5wdXRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHls
ZSkKIHsKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w+
KGVsZW1lbnQoKSwgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVy
PFJlbmRlckZpbGVVcGxvYWRDb250cm9sPihlbGVtZW50KCksIFdURjo6bW92ZShzdHlsZSkpOwog
fQogCiBib29sIEZpbGVJbnB1dFR5cGU6OmNhblNldFN0cmluZ1ZhbHVlKCkgY29uc3QKQEAgLTI2
OCw3ICsyNjgsNyBAQCBQYXNzUmVmUHRyPEZpbGVMaXN0PiBGaWxlSW5wdXRUeXBlOjpjcmVhdGVG
aWxlTGlzdChjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSQogICAgIGZvciAoY29uc3QgRmls
ZUNob29zZXJGaWxlSW5mbyYgaW5mbyA6IGZpbGVzKQogICAgICAgICBmaWxlT2JqZWN0cy5hcHBl
bmQoRmlsZTo6Y3JlYXRlV2l0aE5hbWUoaW5mby5wYXRoLCBpbmZvLmRpc3BsYXlOYW1lKSk7CiAK
LSAgICByZXR1cm4gRmlsZUxpc3Q6OmNyZWF0ZShzdGQ6Om1vdmUoZmlsZU9iamVjdHMpKTsKKyAg
ICByZXR1cm4gRmlsZUxpc3Q6OmNyZWF0ZShXVEY6Om1vdmUoZmlsZU9iamVjdHMpKTsKIH0KIAog
Ym9vbCBGaWxlSW5wdXRUeXBlOjppc0ZpbGVVcGxvYWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0Zvcm1Db250cm9sbGVyLmNwcAppbmRleCAzMmRiNDg5Li40NTEwMGQxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcApAQCAtNDYxLDcgKzQ2MSw3IEBAIHZvaWQgRm9ybUNv
bnRyb2xsZXI6OmZvcm1TdGF0ZXNGcm9tU3RhdGVWZWN0b3IoY29uc3QgVmVjdG9yPFN0cmluZz4m
IHN0YXRlVmVjdG9yCiAgICAgICAgICAgICBpID0gMDsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9Ci0gICAgICAgIG1hcC5hZGQoZm9ybUtleS5pbXBsKCksIHN0ZDo6bW92ZShzdGF0ZSkp
OworICAgICAgICBtYXAuYWRkKGZvcm1LZXkuaW1wbCgpLCBXVEY6Om1vdmUoc3RhdGUpKTsKICAg
ICB9CiAgICAgaWYgKGkgIT0gc3RhdGVWZWN0b3Iuc2l6ZSgpKQogICAgICAgICBtYXAuY2xlYXIo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5jcHAKaW5kZXggOTM0ZTM1
Yi4uYmJiOGExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5jcHAK
QEAgLTc4LDkgKzc4LDkgQEAgYm9vbCBIVE1MQXBwbGV0RWxlbWVudDo6cmVuZGVyZXJJc05lZWRl
ZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRN
TEFwcGxldEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxl
PiBzdHlsZSkKIHsKICAgICBpZiAoIWNhbkVtYmVkSmF2YSgpKQotICAgICAgICByZXR1cm4gUmVu
ZGVyRWxlbWVudDo6Y3JlYXRlRm9yKCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAg
cmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7
CiAKLSAgICByZXR1cm4gUmVuZGVyRW1iZWRkZWRPYmplY3Q6OmNyZWF0ZUZvckFwcGxldCgqdGhp
cywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIFJlbmRlckVtYmVkZGVkT2JqZWN0Ojpj
cmVhdGVGb3JBcHBsZXQoKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiBSZW5kZXJXaWRn
ZXQqIEhUTUxBcHBsZXRFbGVtZW50OjpyZW5kZXJXaWRnZXRGb3JKU0JpbmRpbmdzKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuY3BwCmluZGV4IDVlZWE4NWEuLjYxNzM3MzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQlJFbGVtZW50LmNwcApAQCAtNzQsOSArNzQsOSBAQCB2
b2lkIEhUTUxCUkVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYQogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxCUkVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkK
IHsKICAgICBpZiAoc3R5bGUuZ2V0KCkuaGFzQ29udGVudCgpKQotICAgICAgICByZXR1cm4gUmVu
ZGVyRWxlbWVudDo6Y3JlYXRlRm9yKCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAg
cmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7
CiAKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTGluZUJyZWFrPigqdGhpcywgc3Rk
Ojptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckxpbmVCcmVh
az4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCb2R5RWxlbWVudC5jcHAKaW5kZXggYzFiY2ZiYy4uMWE0NjE2OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcApAQCAtNzUsNyArNzUsNyBAQCB2b2lkIEhUTUxCb2R5
RWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmCiAgICAgICAgIGlmICghdXJsLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgYXV0
byBpbWFnZVZhbHVlID0gQ1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKGRvY3VtZW50KCkuY29tcGxldGVV
UkwodXJsKS5zdHJpbmcoKSk7CiAgICAgICAgICAgICBpbWFnZVZhbHVlLmdldCgpLnNldEluaXRp
YXRvcihsb2NhbE5hbWUoKSk7Ci0gICAgICAgICAgICBzdHlsZS5zZXRQcm9wZXJ0eShDU1NQcm9w
ZXJ0eShDU1NQcm9wZXJ0eUJhY2tncm91bmRJbWFnZSwgc3RkOjptb3ZlKGltYWdlVmFsdWUpKSk7
CisgICAgICAgICAgICBzdHlsZS5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eShDU1NQcm9wZXJ0eUJh
Y2tncm91bmRJbWFnZSwgV1RGOjptb3ZlKGltYWdlVmFsdWUpKSk7CiAgICAgICAgIH0KICAgICB9
IGVsc2UgaWYgKG5hbWUgPT0gbWFyZ2lud2lkdGhBdHRyIHx8IG5hbWUgPT0gbGVmdG1hcmdpbkF0
dHIpIHsKICAgICAgICAgYWRkSFRNTExlbmd0aFRvU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5TWFy
Z2luUmlnaHQsIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1
dHRvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5j
cHAKaW5kZXggYjYyNWQ3ZS4uOTQ3ZTcxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQnV0dG9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0
dG9uRWxlbWVudC5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBIVE1MQnV0dG9uRWxlbWVudDo6
c2V0VHlwZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUpCiAKIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBIVE1MQnV0dG9uRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVu
ZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJCdXR0
b24+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8
UmVuZGVyQnV0dG9uPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAKIGNvbnN0IEF0b21p
Y1N0cmluZyYgSFRNTEJ1dHRvbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IGNiMGE0MjcuLjEzZTNl
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC0xMTgs
MTEgKzExOCwxMSBAQCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTENhbnZhc0VsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlcgogICAgIEZyYW1lKiBmcmFtZSA9
IGRvY3VtZW50KCkuZnJhbWUoKTsKICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPnNjcmlwdCgpLmNh
bkV4ZWN1dGVTY3JpcHRzKE5vdEFib3V0VG9FeGVjdXRlU2NyaXB0KSkgewogICAgICAgICBtX3Jl
bmRlcmVySXNDYW52YXMgPSB0cnVlOwotICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVu
ZGVySFRNTENhbnZhcz4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4g
Y3JlYXRlUmVuZGVyZXI8UmVuZGVySFRNTENhbnZhcz4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkp
OwogICAgIH0KIAogICAgIG1fcmVuZGVyZXJJc0NhbnZhcyA9IGZhbHNlOwotICAgIHJldHVybiBI
VE1MRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKHN0ZDo6bW92ZShzdHlsZSkpOworICAg
IHJldHVybiBIVE1MRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFdURjo6bW92ZShzdHls
ZSkpOwogfQogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50Ojp3aWxsQXR0YWNoUmVuZGVyZXJzKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAKaW5kZXggOTUyYTA2MS4uZWMxNTE2
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAKQEAgLTQ1MSw3ICs0NTEs
NyBAQCB2b2lkIEhUTUxDb2xsZWN0aW9uOjp1cGRhdGVOYW1lZEVsZW1lbnRDYWNoZSgpIGNvbnN0
CiAgICAgfQogCiAgICAgY2FjaGUtPmRpZFBvcHVsYXRlKCk7Ci0gICAgc2V0TmFtZUl0ZW1DYWNo
ZShzdGQ6Om1vdmUoY2FjaGUpKTsKKyAgICBzZXROYW1lSXRlbUNhY2hlKFdURjo6bW92ZShjYWNo
ZSkpOwogfQogCiBib29sIEhUTUxDb2xsZWN0aW9uOjpoYXNOYW1lZEl0ZW0oY29uc3QgQXRvbWlj
U3RyaW5nJiBuYW1lKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Q29sbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5oCmluZGV4
IDNkODFhMzguLjMyYmRiZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENv
bGxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmgKQEAg
LTE0NCw3ICsxNDQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXROYW1lSXRlbUNhY2hlKHN0
ZDo6dW5pcXVlX3B0cjxDb2xsZWN0aW9uTmFtZWRFbGVtZW50Q2FjaGU+IGNhY2hlKSBjb25zdAog
ICAgIHsKICAgICAgICAgQVNTRVJUKCFtX25hbWVkRWxlbWVudENhY2hlKTsKLSAgICAgICAgbV9u
YW1lZEVsZW1lbnRDYWNoZSA9IHN0ZDo6bW92ZShjYWNoZSk7CisgICAgICAgIG1fbmFtZWRFbGVt
ZW50Q2FjaGUgPSBXVEY6Om1vdmUoY2FjaGUpOwogICAgICAgICBkb2N1bWVudCgpLmNvbGxlY3Rp
b25DYWNoZWRJZE5hbWVNYXAoKnRoaXMpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRGV0YWlsc0VsZW1lbnQuY3BwCmluZGV4IGRiZDc3NTUuLjIzZDIxOTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKQEAgLTExMyw3ICsxMTMsNyBAQCBI
VE1MRGV0YWlsc0VsZW1lbnQ6OkhUTUxEZXRhaWxzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCYgZAogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTERl
dGFpbHNFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4g
c3R5bGUpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckJsb2NrRmxvdz4oKnRo
aXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJC
bG9ja0Zsb3c+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogdm9pZCBIVE1MRGV0YWls
c0VsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCogcm9vdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKaW5kZXggYWRlNjlkYy4uZjVlNTJlOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKQEAgLTgwOSw4ICs4MDksOCBAQCBib29sIEhUTUxF
bGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKIFJlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBIVE1MRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBh
c3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewogICAgIGlmIChoYXNUYWdOYW1lKHdiclRhZykp
Ci0gICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJMaW5lQnJlYWs+KCp0aGlzLCBz
dGQ6Om1vdmUoc3R5bGUpKTsKLSAgICByZXR1cm4gUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKCp0
aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJl
bmRlckxpbmVCcmVhaz4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBSZW5k
ZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiBIVE1M
Rm9ybUVsZW1lbnQqIEhUTUxFbGVtZW50Ojp2aXJ0dWFsRm9ybSgpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcAppbmRleCBkOTRjMDhlLi42ODFlNTUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKQEAgLTE0
MSw3ICsxNDEsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxGaWVsZFNldEVsZW1lbnQ6OmZv
cm1Db250cm9sVHlwZSgpIGNvbnN0CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MRmll
bGRTZXRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4g
c3R5bGUpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckZpZWxkc2V0PigqdGhp
cywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckZp
ZWxkc2V0PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAKIEhUTUxMZWdlbmRFbGVtZW50
KiBIVE1MRmllbGRTZXRFbGVtZW50OjpsZWdlbmQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNwcAppbmRleCBlMmM2YmVmLi43
N2FkNzQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbHND
b2xsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbHND
b2xsZWN0aW9uLmNwcApAQCAtMTc1LDcgKzE3NSw3IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sc0Nv
bGxlY3Rpb246OnVwZGF0ZU5hbWVkRWxlbWVudENhY2hlKCkgY29uc3QKICAgICB9CiAKICAgICBj
YWNoZS0+ZGlkUG9wdWxhdGUoKTsKLSAgICBzZXROYW1lSXRlbUNhY2hlKHN0ZDo6bW92ZShjYWNo
ZSkpOworICAgIHNldE5hbWVJdGVtQ2FjaGUoV1RGOjptb3ZlKGNhY2hlKSk7CiB9CiAKIHZvaWQg
SFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb246OmludmFsaWRhdGVDYWNoZShEb2N1bWVudCYgZG9j
dW1lbnQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmNwcAppbmRl
eCBjOTYxZDJmLi45N2JhYmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
cmFtZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVu
dC5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgYm9vbCBIVE1MRnJhbWVFbGVtZW50OjpyZW5kZXJlcklz
TmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhU
TUxGcmFtZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxl
PiBzdHlsZSkKIHsKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyRnJhbWU+KCp0aGlz
LCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyRnJh
bWU+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogYm9vbCBIVE1MRnJhbWVFbGVtZW50
Ojpub1Jlc2l6ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
cmFtZVNldEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVt
ZW50LmNwcAppbmRleCA2NjdiZjc2Li40ZDA3YmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZyYW1lU2V0RWxlbWVudC5jcHAKQEAgLTE1OCw5ICsxNTgsOSBAQCBib29sIEhUTUxGcmFt
ZVNldEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQog
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxGcmFtZVNldEVsZW1lbnQ6OmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKICAgICBpZiAoc3R5bGUu
Z2V0KCkuaGFzQ29udGVudCgpKQotICAgICAgICByZXR1cm4gUmVuZGVyRWxlbWVudDo6Y3JlYXRl
Rm9yKCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIFJlbmRlckVsZW1l
bnQ6OmNyZWF0ZUZvcigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiAgICAgCi0gICAgcmV0dXJu
IGNyZWF0ZVJlbmRlcmVyPFJlbmRlckZyYW1lU2V0PigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7
CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckZyYW1lU2V0PigqdGhpcywgV1RGOjpt
b3ZlKHN0eWxlKSk7CiB9CiAKIEhUTUxGcmFtZVNldEVsZW1lbnQqIEhUTUxGcmFtZVNldEVsZW1l
bnQ6OmZpbmRDb250YWluaW5nKEVsZW1lbnQqIGRlc2NlbmRhbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCmluZGV4IGQzZWJhNDAuLjM1YTU2ZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCkBAIC05Miw3ICs5Miw3IEBAIGJv
b2wgSFRNTElGcmFtZUVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUm
IHN0eWxlKQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTElGcmFtZUVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKLSAgICBy
ZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVySUZyYW1lPigqdGhpcywgc3RkOjptb3ZlKHN0eWxl
KSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlcklGcmFtZT4oKnRoaXMsIFdURjo6
bW92ZShzdHlsZSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50
LmNwcAppbmRleCBmNTRiNzE3Li42MGQwNGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElt
YWdlRWxlbWVudC5jcHAKQEAgLTIxMSw5ICsyMTEsOSBAQCBTdHJpbmcgSFRNTEltYWdlRWxlbWVu
dDo6YWx0VGV4dCgpIGNvbnN0CiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEltYWdlRWxl
bWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQog
ewogICAgIGlmIChzdHlsZS5nZXQoKS5oYXNDb250ZW50KCkpCi0gICAgICAgIHJldHVybiBSZW5k
ZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAgICBy
ZXR1cm4gUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsK
IAotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJJbWFnZT4oKnRoaXMsIHN0ZDo6bW92
ZShzdHlsZSksIG51bGxwdHIsIG1faW1hZ2VEZXZpY2VQaXhlbFJhdGlvKTsKKyAgICByZXR1cm4g
Y3JlYXRlUmVuZGVyZXI8UmVuZGVySW1hZ2U+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpLCBudWxs
cHRyLCBtX2ltYWdlRGV2aWNlUGl4ZWxSYXRpbyk7CiB9CiAKIGJvb2wgSFRNTEltYWdlRWxlbWVu
dDo6Y2FuU3RhcnRTZWxlY3Rpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5jcHAKaW5kZXggYTU2MjlkNi4uZDdhYjEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC00NjcsNyArNDY3LDcgQEAgdm9pZCBIVE1MSW5wdXRF
bGVtZW50Ojp1cGRhdGVUeXBlKCkKIAogICAgIG1faW5wdXRUeXBlLT5kZXN0cm95U2hhZG93U3Vi
dHJlZSgpOwogCi0gICAgbV9pbnB1dFR5cGUgPSBzdGQ6Om1vdmUobmV3VHlwZSk7CisgICAgbV9p
bnB1dFR5cGUgPSBXVEY6Om1vdmUobmV3VHlwZSk7CiAgICAgbV9pbnB1dFR5cGUtPmNyZWF0ZVNo
YWRvd1N1YnRyZWUoKTsKICAgICB1cGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoKTsK
IApAQCAtNzU5LDcgKzc1OSw3IEBAIGJvb2wgSFRNTElucHV0RWxlbWVudDo6cmVuZGVyZXJJc05l
ZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBIVE1MSW5wdXRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJT
dHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIG1faW5wdXRUeXBlLT5jcmVhdGVJbnB1dFJlbmRl
cmVyKHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBtX2lucHV0VHlwZS0+Y3JlYXRlSW5w
dXRSZW5kZXJlcihXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogdm9pZCBIVE1MSW5wdXRFbGVtZW50
Ojp3aWxsQXR0YWNoUmVuZGVyZXJzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCmluZGV4IDczODdjMDAuLjdiMjk5OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcApAQCAtNjUyLDcgKzY1Miw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVu
dDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAKIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBIVE1MTWVkaWFFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVy
PFJlbmRlck1lZGlhPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0
ZVJlbmRlcmVyPFJlbmRlck1lZGlhPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAKIGJv
b2wgSFRNTE1lZGlhRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2Rl
JiBjaGlsZCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVy
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCmlu
ZGV4IGZiOWMxZjcuLmYyYWFjMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1ldGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVt
ZW50LmNwcApAQCAtNjAsOSArNjAsOSBAQCBQYXNzUmVmUHRyPEhUTUxNZXRlckVsZW1lbnQ+IEhU
TUxNZXRlckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYQogUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxNZXRlckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKICAgICBpZiAoIWRvY3VtZW50KCkucGFn
ZSgpLT50aGVtZSgpLnN1cHBvcnRzTWV0ZXIoc3R5bGUuZ2V0KCkuYXBwZWFyYW5jZSgpKSkKLSAg
ICAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgc3RkOjptb3ZlKHN0
eWxlKSk7CisgICAgICAgIHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIFdU
Rjo6bW92ZShzdHlsZSkpOwogCi0gICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1ldGVy
PigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJl
bmRlck1ldGVyPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAKIGJvb2wgSFRNTE1ldGVy
RWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJiBjaGlsZCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKaW5kZXggYzEwZGU5
ZC4uNGZkOWQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAK
QEAgLTI3OCw5ICsyNzgsOSBAQCBOUE9iamVjdCogSFRNTFBsdWdJbkVsZW1lbnQ6OmdldE5QT2Jq
ZWN0KCkKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MUGx1Z0luRWxlbWVudDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewogICAgIGlmICht
X3BsdWdpblJlcGxhY2VtZW50ICYmIG1fcGx1Z2luUmVwbGFjZW1lbnQtPndpbGxDcmVhdGVSZW5k
ZXJlcigpKQotICAgICAgICByZXR1cm4gbV9wbHVnaW5SZXBsYWNlbWVudC0+Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIG1fcGx1
Z2luUmVwbGFjZW1lbnQtPmNyZWF0ZUVsZW1lbnRSZW5kZXJlcigqdGhpcywgV1RGOjptb3ZlKHN0
eWxlKSk7CiAKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyRW1iZWRkZWRPYmplY3Q+
KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVu
ZGVyRW1iZWRkZWRPYmplY3Q+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogdm9pZCBI
VE1MUGx1Z0luRWxlbWVudDo6c3dhcFJlbmRlcmVyVGltZXJGaXJlZChUaW1lcjxIVE1MUGx1Z0lu
RWxlbWVudD4mKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1h
Z2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVu
dC5jcHAKaW5kZXggZDM2ODE4Ni4uZTYzMWFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC0xOTYsNyArMTk2LDcgQEAgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihQYXNzUmVmPFIKICAgICBBU1NFUlQoIWRvY3VtZW50KCkuaW5QYWdlQ2FjaGUoKSk7CiAK
ICAgICBpZiAoZGlzcGxheVN0YXRlKCkgPj0gUHJlcGFyaW5nUGx1Z2luUmVwbGFjZW1lbnQpCi0g
ICAgICAgIHJldHVybiBIVE1MUGx1Z0luRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKHN0
ZDo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4gSFRNTFBsdWdJbkVsZW1lbnQ6OmNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihXVEY6Om1vdmUoc3R5bGUpKTsKIAogICAgIC8vIE9uY2UgYSBQbHVn
SW4gRWxlbWVudCBjcmVhdGVzIGl0cyByZW5kZXJlciwgaXQgbmVlZHMgdG8gYmUgdG9sZCB3aGVu
IHRoZSBEb2N1bWVudCBnb2VzCiAgICAgLy8gaW5hY3RpdmUgb3IgcmVhY3RpdmF0ZXMgc28gaXQg
Y2FuIGNsZWFyIHRoZSByZW5kZXJlciBiZWZvcmUgZ29pbmcgaW50byB0aGUgcGFnZSBjYWNoZS4K
QEAgLTIwNiwyMSArMjA2LDIxIEBAIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSCiAgICAgfQogCiAg
ICAgaWYgKGRpc3BsYXlTdGF0ZSgpID09IERpc3BsYXlpbmdTbmFwc2hvdCkgewotICAgICAgICBh
dXRvIHJlbmRlclNuYXBzaG90dGVkUGx1Z0luID0gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU25hcHNo
b3R0ZWRQbHVnSW4+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgYXV0byByZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbiA9IGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNuYXBzaG90dGVkUGx1
Z0luPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiAgICAgICAgIHJlbmRlclNuYXBzaG90dGVk
UGx1Z0luLT51cGRhdGVTbmFwc2hvdChtX3NuYXBzaG90SW1hZ2UpOwotICAgICAgICByZXR1cm4g
c3RkOjptb3ZlKHJlbmRlclNuYXBzaG90dGVkUGx1Z0luKTsKKyAgICAgICAgcmV0dXJuIFdURjo6
bW92ZShyZW5kZXJTbmFwc2hvdHRlZFBsdWdJbik7CiAgICAgfQogCiAgICAgLy8gRmFsbGJhY2sg
Y29udGVudCBicmVha3MgdGhlIERPTS0+UmVuZGVyZXIgY2xhc3MgcmVsYXRpb25zaGlwIG9mIHRo
aXMKICAgICAvLyBjbGFzcyBhbmQgYWxsIHN1cGVyY2xhc3NlcyBiZWNhdXNlIGNyZWF0ZU9iamVj
dCB3b24ndCBuZWNlc3NhcmlseQogICAgIC8vIHJldHVybiBhIFJlbmRlckVtYmVkZGVkT2JqZWN0
IG9yIFJlbmRlcldpZGdldC4KICAgICBpZiAodXNlRmFsbGJhY2tDb250ZW50KCkpCi0gICAgICAg
IHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkp
OworICAgICAgICByZXR1cm4gUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKCp0aGlzLCBXVEY6Om1v
dmUoc3R5bGUpKTsKIAogICAgIGlmIChpc0ltYWdlVHlwZSgpKQotICAgICAgICByZXR1cm4gY3Jl
YXRlUmVuZGVyZXI8UmVuZGVySW1hZ2U+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAg
ICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckltYWdlPigqdGhpcywgV1RGOjptb3ZlKHN0
eWxlKSk7CiAKLSAgICByZXR1cm4gSFRNTFBsdWdJbkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gSFRNTFBsdWdJbkVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogYm9vbCBIVE1MUGx1
Z0luSW1hZ2VFbGVtZW50Ojp3aWxsUmVjYWxjU3R5bGUoU3R5bGU6OkNoYW5nZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCmluZGV4IDExODVkYTcuLmI1NDc1
NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcApAQCAt
NjAsOSArNjAsOSBAQCBQYXNzUmVmUHRyPEhUTUxQcm9ncmVzc0VsZW1lbnQ+IEhUTUxQcm9ncmVz
c0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJgogUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVm
PFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKICAgICBpZiAoIXN0eWxlLmdldCgpLmhhc0FwcGVhcmFu
Y2UoKSkKLSAgICAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgc3Rk
Ojptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3Io
KnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogCi0gICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJl
bmRlclByb2dyZXNzPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0
ZVJlbmRlcmVyPFJlbmRlclByb2dyZXNzPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAK
IGJvb2wgSFRNTFByb2dyZXNzRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25z
dCBOb2RlJiBjaGlsZCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5jcHAKaW5kZXggMGJiMjVjNS4uODY3ZGQyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U2VsZWN0RWxlbWVudC5jcHAKQEAgLTM1MCwxMCArMzUwLDEwIEBAIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBIVE1MU2VsZWN0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8
UmVuZGVyCiB7CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBpZiAodXNlc01lbnVMaXN0KCkpCi0g
ICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNZW51TGlzdD4oKnRoaXMsIHN0ZDo6
bW92ZShzdHlsZSkpOwotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJMaXN0Qm94Pigq
dGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxS
ZW5kZXJNZW51TGlzdD4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVh
dGVSZW5kZXJlcjxSZW5kZXJMaXN0Qm94PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiAjZWxz
ZQotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNZW51TGlzdD4oKnRoaXMsIHN0ZDo6
bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNZW51TGlzdD4o
KnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAppbmRleCBkNGM5ZTBiLi5mNjVjYjAwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCkBAIC02Niw3ICs2Niw3IEBA
IEhUTUxTdW1tYXJ5RWxlbWVudDo6SFRNTFN1bW1hcnlFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkCiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1M
U3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxl
PiBzdHlsZSkKIHsKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyQmxvY2tGbG93Pigq
dGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRl
ckJsb2NrRmxvdz4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiBib29sIEhUTUxTdW1t
YXJ5RWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJiBjaGlsZCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCmluZGV4
IDAxZWRhMTYuLmY0NmI5Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRl
eHRBcmVhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFF
bGVtZW50LmNwcApAQCAtMjEyLDcgKzIxMiw3IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljCiAK
IFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MVGV4dEFyZWFFbGVtZW50OjpjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIGNy
ZWF0ZVJlbmRlcmVyPFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lPigqdGhpcywgc3RkOjptb3Zl
KHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclRleHRDb250cm9sTXVs
dGlMaW5lPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAKIGJvb2wgSFRNTFRleHRBcmVh
RWxlbWVudDo6YXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiBlbmNvZGluZywgYm9vbCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCmluZGV4IGY1ZTQwMDIuLmI4Yjll
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcApAQCAtNjksNyAr
NjksNyBAQCBib29sIEhUTUxWaWRlb0VsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVu
ZGVyU3R5bGUmIHN0eWxlKQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFZpZGVvRWxl
bWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQog
ewotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJWaWRlbz4oKnRoaXMsIHN0ZDo6bW92
ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJWaWRlbz4oKnRoaXMs
IFdURjo6bW92ZShzdHlsZSkpOwogfQogCiB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OmRpZEF0dGFj
aFJlbmRlcmVycygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRU
eXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCmluZGV4IDAx
YmQ0NWEuLmQwZTI1YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCkBA
IC0xMDMsNyArMTAzLDcgQEAgdm9pZCBJbWFnZUlucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVF
dmVudChFdmVudCogZXZlbnQpCiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBJbWFnZUlucHV0
VHlwZTo6Y3JlYXRlSW5wdXRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsK
LSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVySW1hZ2U+KGVsZW1lbnQoKSwgc3RkOjpt
b3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckltYWdlPihlbGVt
ZW50KCksIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiB2b2lkIEltYWdlSW5wdXRUeXBlOjphbHRB
dHRyaWJ1dGVDaGFuZ2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAppbmRleCBiNmUzNzZl
Li5mNTZjNTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC00ODEsNyArNDgxLDcg
QEAgUGFzc1JlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+IElucHV0VHlwZTo6Zm9ybUZvclN1Ym1pc3Np
b24oKSBjb25zdAogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSW5wdXRUeXBlOjpjcmVhdGVJ
bnB1dFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4oUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKGVsZW1lbnQo
KSwgc3RkOjptb3ZlKHN0eWxlKSkpOworICAgIHJldHVybiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4oUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKGVsZW1lbnQoKSwgV1RGOjptb3ZlKHN0eWxlKSkp
OwogfQogCiB2b2lkIElucHV0VHlwZTo6Ymx1cigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1
dFR5cGUuY3BwCmluZGV4IGQ0YTI5YmQuLjc4ZDllODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFu
Z2VJbnB1dFR5cGUuY3BwCkBAIC0yODYsNyArMjg2LDcgQEAgSFRNTEVsZW1lbnQqIFJhbmdlSW5w
dXRUeXBlOjpzbGlkZXJUaHVtYkVsZW1lbnQoKSBjb25zdAogCiBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZUlucHV0UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJT
dHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNsaWRlcj4o
ZWxlbWVudCgpLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8
UmVuZGVyU2xpZGVyPihlbGVtZW50KCksIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiBEZWNpbWFs
IFJhbmdlSW5wdXRUeXBlOjpwYXJzZVRvTnVtYmVyKGNvbnN0IFN0cmluZyYgc3JjLCBjb25zdCBE
ZWNpbWFsJiBkZWZhdWx0VmFsdWUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1NlYXJjaElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0
VHlwZS5jcHAKaW5kZXggN2Q0NjgwMi4uZTNlM2JkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2Vh
cmNoSW5wdXRUeXBlLmNwcApAQCAtNjEsNyArNjEsNyBAQCB2b2lkIFNlYXJjaElucHV0VHlwZTo6
YWRkU2VhcmNoUmVzdWx0KCkKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNlYXJjaElucHV0
VHlwZTo6Y3JlYXRlSW5wdXRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsK
LSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU2VhcmNoRmllbGQ+KGVsZW1lbnQoKSwg
c3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNlYXJj
aEZpZWxkPihlbGVtZW50KCksIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiBjb25zdCBBdG9taWNT
dHJpbmcmIFNlYXJjaElucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRleCAwYjg4ZDAzLi5iMWQ5Yzc1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBAIC0yMTYs
NyArMjE2LDcgQEAgYm9vbCBUZXh0RmllbGRJbnB1dFR5cGU6OnNob3VsZFN1Ym1pdEltcGxpY2l0
bHkoRXZlbnQqIGV2ZW50KQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gVGV4dEZpZWxkSW5w
dXRUeXBlOjpjcmVhdGVJbnB1dFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQog
ewotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU+
KGVsZW1lbnQoKSwgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVy
PFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZT4oZWxlbWVudCgpLCBXVEY6Om1vdmUoc3R5bGUp
KTsKIH0KIAogYm9vbCBUZXh0RmllbGRJbnB1dFR5cGU6Om5lZWRzQ29udGFpbmVyKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHQuY3BwCmluZGV4IDRmOTBlMjAuLmQxNjdlNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtNjA0OCw3ICs2MDQ4
LDcgQEAgSW1hZ2VCdWZmZXIqIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6TFJVSW1hZ2VCdWZmZXJD
YWNoZTo6aW1hZ2VCdWZmZXIoY29uc3QgSW50U2kKICAgICBpZiAoIXRlbXApCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIGkgPSBzdGQ6Om1pbihtX2NhcGFjaXR5IC0gMSwgaSk7Ci0gICAg
bV9idWZmZXJzW2ldID0gc3RkOjptb3ZlKHRlbXApOworICAgIG1fYnVmZmVyc1tpXSA9IFdURjo6
bW92ZSh0ZW1wKTsKIAogICAgIEltYWdlQnVmZmVyKiBidWYgPSBtX2J1ZmZlcnNbaV0uZ2V0KCk7
CiAgICAgYnViYmxlVG9Gcm9udChpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAppbmRleCBjYmE2YTVmLi5mZTIwNGVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUu
Y3BwCkBAIC0xODcsNyArMTg3LDcgQEAgdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6ZXhlY3V0
ZVF1ZXVlZFRhc2tzKCkKIAogICAgIC8vIENvcHkgdGhlIHRhc2sgcXVldWUgaW50byBhIGxvY2Fs
IHZhcmlhYmxlIGluIGNhc2UgZXhlY3V0ZVRhc2sKICAgICAvLyByZS1lbnRlcnMgdGhlIHBhcnNl
ci4KLSAgICBUYXNrUXVldWUgcXVldWUgPSBzdGQ6Om1vdmUobV90YXNrUXVldWUpOworICAgIFRh
c2tRdWV1ZSBxdWV1ZSA9IFdURjo6bW92ZShtX3Rhc2tRdWV1ZSk7CiAKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHNpemU7ICsraSkKICAgICAgICAgZXhlY3V0ZVRhc2socXVldWVbaV0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcAppbmRl
eCAyYWFmNmRiLi5lNTgxODQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MRWxlbWVudFN0YWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MRWxlbWVudFN0YWNrLmNwcApAQCAtMTI3LDcgKzEyNyw3IEBAIGlubGluZSBib29sIGlzU2Vs
ZWN0U2NvcGVNYXJrZXIoSFRNTFN0YWNrSXRlbSogaXRlbSkKIAogSFRNTEVsZW1lbnRTdGFjazo6
RWxlbWVudFJlY29yZDo6RWxlbWVudFJlY29yZChQYXNzUmVmUHRyPEhUTUxTdGFja0l0ZW0+IGl0
ZW0sIHN0ZDo6dW5pcXVlX3B0cjxFbGVtZW50UmVjb3JkPiBuZXh0KQogICAgIDogbV9pdGVtKGl0
ZW0pCi0gICAgLCBtX25leHQoc3RkOjptb3ZlKG5leHQpKQorICAgICwgbV9uZXh0KFdURjo6bW92
ZShuZXh0KSkKIHsKICAgICBBU1NFUlQobV9pdGVtKTsKIH0KQEAgLTU2Nyw3ICs1NjcsNyBAQCB2
b2lkIEhUTUxFbGVtZW50U3RhY2s6OnB1c2hDb21tb24oUGFzc1JlZlB0cjxIVE1MU3RhY2tJdGVt
PiBpdGVtKQogICAgIEFTU0VSVChtX3Jvb3ROb2RlKTsKIAogICAgIG1fc3RhY2tEZXB0aCsrOwot
ICAgIG1fdG9wID0gc3RkOjptYWtlX3VuaXF1ZTxFbGVtZW50UmVjb3JkPihpdGVtLCBzdGQ6Om1v
dmUobV90b3ApKTsKKyAgICBtX3RvcCA9IHN0ZDo6bWFrZV91bmlxdWU8RWxlbWVudFJlY29yZD4o
aXRlbSwgV1RGOjptb3ZlKG1fdG9wKSk7CiB9CiAKIHZvaWQgSFRNTEVsZW1lbnRTdGFjazo6cG9w
Q29tbW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVt
ZW50U3RhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2su
aAppbmRleCBhMmM0ZjU0Li4zNzdkMTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTEVsZW1lbnRTdGFjay5oCkBAIC02NSw4ICs2NSw4IEBAIHB1YmxpYzoKICAgICBwcml2
YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgSFRNTEVsZW1lbnRTdGFjazsKIAotICAgICAgICBz
dGQ6OnVuaXF1ZV9wdHI8RWxlbWVudFJlY29yZD4gcmVsZWFzZU5leHQoKSB7IHJldHVybiBzdGQ6
Om1vdmUobV9uZXh0KTsgfQotICAgICAgICB2b2lkIHNldE5leHQoc3RkOjp1bmlxdWVfcHRyPEVs
ZW1lbnRSZWNvcmQ+IG5leHQpIHsgbV9uZXh0ID0gc3RkOjptb3ZlKG5leHQpOyB9CisgICAgICAg
IHN0ZDo6dW5pcXVlX3B0cjxFbGVtZW50UmVjb3JkPiByZWxlYXNlTmV4dCgpIHsgcmV0dXJuIFdU
Rjo6bW92ZShtX25leHQpOyB9CisgICAgICAgIHZvaWQgc2V0TmV4dChzdGQ6OnVuaXF1ZV9wdHI8
RWxlbWVudFJlY29yZD4gbmV4dCkgeyBtX25leHQgPSBXVEY6Om1vdmUobmV4dCk7IH0KIAogICAg
ICAgICBSZWZQdHI8SFRNTFN0YWNrSXRlbT4gbV9pdGVtOwogICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8RWxlbWVudFJlY29yZD4gbV9uZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAKaW5kZXggMDFiMzM4Zi4uNTY2ZWE2MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwCkBA
IC0zNDAsNyArMzQwLDcgQEAgdm9pZCBUb2tlblByZWxvYWRTY2FubmVyOjpzY2FuKGNvbnN0IEhU
TUxUb2tlbiYgdG9rZW4sIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8UHIKICNlbmRpZgogICAgICAg
ICAgICAgKTsKICAgICAgICAgaWYgKGF1dG8gcmVxdWVzdCA9IHNjYW5uZXIuY3JlYXRlUHJlbG9h
ZFJlcXVlc3QobV9wcmVkaWN0ZWRCYXNlRWxlbWVudFVSTCkpCi0gICAgICAgICAgICByZXF1ZXN0
cy5hcHBlbmQoc3RkOjptb3ZlKHJlcXVlc3QpKTsKKyAgICAgICAgICAgIHJlcXVlc3RzLmFwcGVu
ZChXVEY6Om1vdmUocmVxdWVzdCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0zOTcs
NyArMzk3LDcgQEAgdm9pZCBIVE1MUHJlbG9hZFNjYW5uZXI6OnNjYW4oSFRNTFJlc291cmNlUHJl
bG9hZGVyKiBwcmVsb2FkZXIsIGNvbnN0IFVSTCYgc3RhcnQKICAgICAgICAgbV90b2tlbi5jbGVh
cigpOwogICAgIH0KIAotICAgIHByZWxvYWRlci0+cHJlbG9hZChzdGQ6Om1vdmUocmVxdWVzdHMp
KTsKKyAgICBwcmVsb2FkZXItPnByZWxvYWQoV1RGOjptb3ZlKHJlcXVlc3RzKSk7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUmVzb3VyY2VQcmVsb2Fk
ZXIuY3BwCmluZGV4IGNmZDIzNDIuLjE2ZWE3NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFJlc291cmNlUHJlbG9hZGVyLmNwcApAQCAtNjQsNyArNjQsNyBA
QCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgUHJlbG9hZFJlcXVlc3Q6OnJlc291cmNlUmVxdWVzdChE
b2N1bWVudCYgZG9jdW1lbnQpCiB2b2lkIEhUTUxSZXNvdXJjZVByZWxvYWRlcjo6cHJlbG9hZChQ
cmVsb2FkUmVxdWVzdFN0cmVhbSByZXF1ZXN0cykKIHsKICAgICBmb3IgKGF1dG8mIHJlcXVlc3Qg
OiByZXF1ZXN0cykKLSAgICAgICAgcHJlbG9hZChzdGQ6Om1vdmUocmVxdWVzdCkpOworICAgICAg
ICBwcmVsb2FkKFdURjo6bW92ZShyZXF1ZXN0KSk7CiB9CiAKIHN0YXRpYyBib29sIG1lZGlhQXR0
cmlidXRlTWF0Y2hlcyhGcmFtZSogZnJhbWUsIFJlbmRlclN0eWxlKiByZW5kZXJTdHlsZSwgY29u
c3QgU3RyaW5nJiBhdHRyaWJ1dGVWYWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxUb2tlbi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRv
a2VuLmgKaW5kZXggNWIzYzkzOC4uNDIxYWYyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFRva2VuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFRva2VuLmgKQEAgLTIyNyw3ICsyMjcsNyBAQCBwdWJsaWM6CiAKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8RG9jdHlwZURhdGE+IHJlbGVhc2VEb2N0eXBlRGF0YSgpCiAgICAgewotICAgICAgICBy
ZXR1cm4gc3RkOjptb3ZlKG1fZG9jdHlwZURhdGEpOworICAgICAgICByZXR1cm4gV1RGOjptb3Zl
KG1fZG9jdHlwZURhdGEpOwogICAgIH0KIAogICAgIC8qIFN0YXJ0L0VuZCBUYWcgVG9rZW5zICov
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29u
dHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJv
bC5jcHAKaW5kZXggYzc1Y2Y5ZGIuLjY0NGZhYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAg
RGV0YWlsc01hcmtlckNvbnRyb2w6OkRldGFpbHNNYXJrZXJDb250cm9sKERvY3VtZW50JiBkb2N1
bWVudCkKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IERldGFpbHNNYXJrZXJDb250cm9sOjpj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAg
cmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckRldGFpbHNNYXJrZXI+KCp0aGlzLCBzdGQ6Om1v
dmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyRGV0YWlsc01hcmtl
cj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiBib29sIERldGFpbHNNYXJrZXJDb250
cm9sOjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAppbmRl
eCA1MzM5NTlhLi5iODEzYzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCkBAIC0zMzcsNyArMzM3LDcgQEAgdm9pZCBNZWRp
YUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6OnNldFRpbWVEaXNwbGF5c0hpZGRlbihi
b29sIGhpZGRlbikKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1lZGlhQ29udHJvbFRpbWVs
aW5lQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVy
U3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNZWRpYUNv
bnRyb2xUaW1lbGluZUNvbnRhaW5lcj4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJl
dHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lcj4o
KnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCkBAIC0zNTcsNyArMzU3LDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVT
bGlkZXJDb250YWluZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb24KIAogUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkK
IHsKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWVkaWFWb2x1bWVTbGlkZXJDb250
YWluZXI+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVy
ZXI8UmVuZGVyTWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXI+KCp0aGlzLCBXVEY6Om1vdmUoc3R5
bGUpKTsKIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50
OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKQEAgLTEyNDEsNyArMTI0MSw3IEBA
IFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudD4gTWVkaWFD
b250cm9sVGV4dFRyYWNrQ29udGFpbmVyCiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNZWRp
YUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVy
PFJlbmRlclRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUp
KTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyVGV4dFRyYWNrQ29udGFpbmVyRWxl
bWVudD4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcm
IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnRleHRUcmFja0NvbnRhaW5l
ckVsZW1lbnRTaGFkb3dQc2V1ZG9JZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWV0ZXJTaGFkb3dFbGVtZW50LmNwcAppbmRleCAwOTY2M2M5Li5hNTc2MzM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHAKQEAg
LTc1LDcgKzc1LDcgQEAgYm9vbCBNZXRlcklubmVyRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChj
b25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNZXRl
cklubmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+
IHN0eWxlKQogewotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNZXRlcj4oKnRoaXMs
IHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNZXRl
cj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1l
dGVyVmFsdWVFbGVtZW50Ojp2YWx1ZVBzZXVkb0lkKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwCmluZGV4IDRjYWYy
NDEuLmRjZDIyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dy
ZXNzU2hhZG93RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJv
Z3Jlc3NTaGFkb3dFbGVtZW50LmNwcApAQCAtNjIsNyArNjIsNyBAQCBQcm9ncmVzc0lubmVyRWxl
bWVudDo6UHJvZ3Jlc3NJbm5lckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogCiBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gUHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKLSAgICByZXR1cm4gY3JlYXRlUmVu
ZGVyZXI8UmVuZGVyUHJvZ3Jlc3M+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1
cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyUHJvZ3Jlc3M+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUp
KTsKIH0KIAogYm9vbCBQcm9ncmVzc0lubmVyRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYgc3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
U2xpZGVyVGh1bWJFbGVtZW50LmNwcAppbmRleCA3YzYwZGJmLi5iOTkyYjJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKQEAgLTc4
LDcgKzc4LDcgQEAgaW5saW5lIHN0YXRpYyBib29sIGhhc1ZlcnRpY2FsQXBwZWFyYW5jZShIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dCkKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKIFJlbmRlclNsaWRlclRodW1iOjpSZW5kZXJTbGlkZXJUaHVtYihTbGlkZXJUaHVtYkVsZW1l
bnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyQmxv
Y2tGbG93KGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJCbG9ja0Zsb3co
ZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKIHsKIH0KIApAQCAtMTEyLDcgKzExMiw3IEBAIGJv
b2wgUmVuZGVyU2xpZGVyVGh1bWI6OmlzU2xpZGVyVGh1bWIoKSBjb25zdAogY2xhc3MgUmVuZGVy
U2xpZGVyQ29udGFpbmVyIDogcHVibGljIFJlbmRlckZsZXhpYmxlQm94IHsKIHB1YmxpYzoKICAg
ICBSZW5kZXJTbGlkZXJDb250YWluZXIoU2xpZGVyQ29udGFpbmVyRWxlbWVudCYgZWxlbWVudCwg
UGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgICAgIDogUmVuZGVyRmxleGlibGVCb3go
ZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICAgICAgOiBSZW5kZXJGbGV4aWJsZUJveChl
bGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogICAgIHsKICAgICB9CiAKQEAgLTIxNiw3ICsyMTYs
NyBAQCB2b2lkIFNsaWRlclRodW1iRWxlbWVudDo6c2V0UG9zaXRpb25Gcm9tVmFsdWUoKQogCiBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU2xpZGVyVGh1bWJFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIGNyZWF0
ZVJlbmRlcmVyPFJlbmRlclNsaWRlclRodW1iPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7Cisg
ICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNsaWRlclRodW1iPigqdGhpcywgV1RGOjpt
b3ZlKHN0eWxlKSk7CiB9CiAKIGJvb2wgU2xpZGVyVGh1bWJFbGVtZW50Ojppc0Rpc2FibGVkRm9y
bUNvbnRyb2woKSBjb25zdApAQCAtNjE3LDcgKzYxNyw3IEBAIFBhc3NSZWZQdHI8U2xpZGVyQ29u
dGFpbmVyRWxlbWVudD4gU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBk
b2N1CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTbGlkZXJDb250YWluZXJFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAg
cmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNsaWRlckNvbnRhaW5lcj4oKnRoaXMsIHN0ZDo6
bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTbGlkZXJDb250
YWluZXI+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5n
JiBTbGlkZXJDb250YWluZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRz
LmNwcAppbmRleCAyMzk5NTA1Li40MDEwMzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKQEAgLTYwLDcgKzYw
LDcgQEAgUGFzc1JlZlB0cjxUZXh0Q29udHJvbElubmVyQ29udGFpbmVyPiBUZXh0Q29udHJvbElu
bmVyQ29udGFpbmVyOjpjcmVhdGUoRG9jdW1lbnQKICAgICAKIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBUZXh0Q29udHJvbElubmVyQ29udGFpbmVyOjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFz
c1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJl
bmRlclRleHRDb250cm9sSW5uZXJDb250YWluZXI+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsK
KyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyVGV4dENvbnRyb2xJbm5lckNvbnRhaW5l
cj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiBUZXh0Q29udHJvbElubmVyRWxlbWVu
dDo6VGV4dENvbnRyb2xJbm5lckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQpAQCAtMTE0LDcg
KzExNCw3IEBAIHZvaWQgVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpkZWZhdWx0RXZlbnRI
YW5kbGVyKEV2ZW50KiBldmVudCkKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFRleHRDb250
cm9sSW5uZXJUZXh0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVy
U3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJUZXh0Q29u
dHJvbElubmVyQmxvY2s+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3Jl
YXRlUmVuZGVyZXI8UmVuZGVyVGV4dENvbnRyb2xJbm5lckJsb2NrPigqdGhpcywgV1RGOjptb3Zl
KHN0eWxlKSk7CiB9CiAKIFJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jayogVGV4dENvbnRyb2xJ
bm5lclRleHRFbGVtZW50OjpyZW5kZXJlcigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50
TWFjLmNwcAppbmRleCBjYTg1NGUyLi5hMzVhNzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVu
dE1hYy5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgcHJpdmF0ZToKIH07CiAKIFJlbmRlckltYWdlQ29u
dHJvbHNCdXR0b246OlJlbmRlckltYWdlQ29udHJvbHNCdXR0b24oSFRNTEVsZW1lbnQmIGVsZW1l
bnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyQmxvY2tGbG93KGVs
ZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCwg
V1RGOjptb3ZlKHN0eWxlKSkKIHsKIH0KIApAQCAtMTI3LDcgKzEyNyw3IEBAIHZvaWQgSW1hZ2VD
b250cm9sc0J1dHRvbkVsZW1lbnRNYWM6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50
KQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRN
YWM6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsK
LSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVySW1hZ2VDb250cm9sc0J1dHRvbj4oKnRo
aXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJJ
bWFnZUNvbnRyb2xzQnV0dG9uPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAKaW5kZXggYzg0ZTM3
MC4uMTBiZjFhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0lt
YWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvbWFjL0ltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAKQEAgLTUwLDcgKzUwLDcg
QEAgcHJpdmF0ZToKIH07CiAKIFJlbmRlckltYWdlQ29udHJvbHM6OlJlbmRlckltYWdlQ29udHJv
bHMoSFRNTEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAg
IDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5k
ZXJCbG9ja0Zsb3coZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKIHsKIH0KIApAQCAtMTA0LDcg
KzEwNCw3IEBAIEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYzo6fkltYWdlQ29udHJvbHNSb290
RWxlbWVudE1hYygpCiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBJbWFnZUNvbnRyb2xzUm9v
dEVsZW1lbnRNYWM6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBz
dHlsZSkKIHsKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVySW1hZ2VDb250cm9scz4o
KnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5k
ZXJJbWFnZUNvbnRyb2xzPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRU
Q3VlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAppbmRleCA5NTg5
MmQ0Li5hY2FlMTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCkBAIC0yMTEs
NyArMjExLDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBWVFRDdWVCb3g6OnZ0dEN1ZUJveFNoYWRv
d1BzZXVkb0lkKCkKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFZUVEN1ZUJveDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJldHVy
biBjcmVhdGVSZW5kZXJlcjxSZW5kZXJWVFRDdWU+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsK
KyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyVlRUQ3VlPigqdGhpcywgV1RGOjptb3Zl
KHN0eWxlKSk7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db21tYW5kTGluZUFQSUhvc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbW1hbmRMaW5lQVBJSG9zdC5jcHAKaW5kZXggMDI5MTA2
OS4uNTdiOTIxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbW1hbmRM
aW5lQVBJSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbW1hbmRMaW5l
QVBJSG9zdC5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBD
b21tYW5kTGluZUFQSUhvc3Q6Okluc3BlY3RhYmxlT2JqZWN0OjpnZXQoSlNDOjpFeGVjU3RhdAog
CiB2b2lkIENvbW1hbmRMaW5lQVBJSG9zdDo6YWRkSW5zcGVjdGVkT2JqZWN0KHN0ZDo6dW5pcXVl
X3B0cjxDb21tYW5kTGluZUFQSUhvc3Q6Okluc3BlY3RhYmxlT2JqZWN0PiBvYmplY3QpCiB7Ci0g
ICAgbV9pbnNwZWN0ZWRPYmplY3RzLmluc2VydCgwLCBzdGQ6Om1vdmUob2JqZWN0KSk7CisgICAg
bV9pbnNwZWN0ZWRPYmplY3RzLmluc2VydCgwLCBXVEY6Om1vdmUob2JqZWN0KSk7CiAgICAgd2hp
bGUgKG1faW5zcGVjdGVkT2JqZWN0cy5zaXplKCkgPiA1KQogICAgICAgICBtX2luc3BlY3RlZE9i
amVjdHMucmVtb3ZlTGFzdCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0RPTUVkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NRWRpdG9yLmNw
cAppbmRleCBiOTEyZDE0Li4yNGUzYmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvRE9NRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NRWRp
dG9yLmNwcApAQCAtMzc0LDcgKzM3NCw3IEBAIGJvb2wgRE9NRWRpdG9yOjpzZXRPdXRlckhUTUwo
Tm9kZSYgbm9kZSwgY29uc3QgU3RyaW5nJiBodG1sLCBOb2RlKiogbmV3Tm9kZSwgRXhjCiB7CiAg
ICAgYXV0byBhY3Rpb24gPSBzdGQ6Om1ha2VfdW5pcXVlPFNldE91dGVySFRNTEFjdGlvbj4obm9k
ZSwgaHRtbCk7CiAgICAgU2V0T3V0ZXJIVE1MQWN0aW9uKiByYXdBY3Rpb24gPSBhY3Rpb24uZ2V0
KCk7Ci0gICAgYm9vbCByZXN1bHQgPSBtX2hpc3RvcnktPnBlcmZvcm0oc3RkOjptb3ZlKGFjdGlv
biksIGVjKTsKKyAgICBib29sIHJlc3VsdCA9IG1faGlzdG9yeS0+cGVyZm9ybShXVEY6Om1vdmUo
YWN0aW9uKSwgZWMpOwogICAgIGlmIChyZXN1bHQpCiAgICAgICAgICpuZXdOb2RlID0gcmF3QWN0
aW9uLT5uZXdOb2RlKCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9ET01QYXRjaFN1cHBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5jcHAKaW5kZXggZjZhMzhjNS4uM2YyZmE5YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5jcHAKQEAgLTQyMyw3ICs0
MjMsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8RE9NUGF0Y2hTdXBwb3J0OjpEaWdlc3Q+IERPTVBhdGNo
U3VwcG9ydDo6Y3JlYXRlRGlnZXN0KE5vZGUqIG5vZAogICAgICAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPERpZ2VzdD4gY2hpbGRJbmZvID0gY3JlYXRlRGlnZXN0KGNoaWxkLCB1bnVzZWROb2Rlc01h
cCk7CiAgICAgICAgICAgICBhZGRTdHJpbmdUb1NIQTEoc2hhMSwgY2hpbGRJbmZvLT5tX3NoYTEp
OwogICAgICAgICAgICAgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKTsKLSAgICAgICAgICAg
IGRpZ2VzdC0+bV9jaGlsZHJlbi5hcHBlbmQoc3RkOjptb3ZlKGNoaWxkSW5mbykpOworICAgICAg
ICAgICAgZGlnZXN0LT5tX2NoaWxkcmVuLmFwcGVuZChXVEY6Om1vdmUoY2hpbGRJbmZvKSk7CiAg
ICAgICAgIH0KICAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IHRvRWxlbWVudChub2RlKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKaW5kZXgg
MDZlNTRmYi4uMzA1YTk5NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNTU0FnZW50LmNwcApAQCAtNzk5LDcgKzc5OSw3IEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdl
bnQ6OmFkZFJ1bGUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBpbnQgY29udGV4dE5v
ZGVJCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgYXV0byBhY3Rpb24gPSBzdGQ6Om1h
a2VfdW5pcXVlPEFkZFJ1bGVBY3Rpb24+KGluc3BlY3RvclN0eWxlU2hlZXQsIHNlbGVjdG9yKTsK
ICAgICBBZGRSdWxlQWN0aW9uKiByYXdBY3Rpb24gPSBhY3Rpb24uZ2V0KCk7Ci0gICAgYm9vbCBz
dWNjZXNzID0gbV9kb21BZ2VudC0+aGlzdG9yeSgpLT5wZXJmb3JtKHN0ZDo6bW92ZShhY3Rpb24p
LCBlYyk7CisgICAgYm9vbCBzdWNjZXNzID0gbV9kb21BZ2VudC0+aGlzdG9yeSgpLT5wZXJmb3Jt
KFdURjo6bW92ZShhY3Rpb24pLCBlYyk7CiAgICAgaWYgKCFzdWNjZXNzKSB7CiAgICAgICAgICpl
cnJvclN0cmluZyA9IEluc3BlY3RvckRPTUFnZW50Ojp0b0Vycm9yU3RyaW5nKGVjKTsKICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuY3BwCmluZGV4IDhkMTUwMmYuLmM2NGYzMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTk3LDI4ICs5NywyOCBAQCBJ
bnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2UmIHBhZ2UsIEluc3Bl
Y3RvckNsaWVudCogaW5zcGVjdG9yQwogICAgIGF1dG8gaW5zcGVjdG9yQWdlbnRQdHIgPSBzdGQ6
Om1ha2VfdW5pcXVlPEluc3BlY3RvckFnZW50PigpOwogICAgIG1faW5zcGVjdG9yQWdlbnQgPSBp
bnNwZWN0b3JBZ2VudFB0ci5nZXQoKTsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldElu
c3BlY3RvckFnZW50KG1faW5zcGVjdG9yQWdlbnQpOwotICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6
Om1vdmUoaW5zcGVjdG9yQWdlbnRQdHIpKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoV1RGOjptb3Zl
KGluc3BlY3RvckFnZW50UHRyKSk7CiAKICAgICBhdXRvIHBhZ2VBZ2VudFB0ciA9IHN0ZDo6bWFr
ZV91bmlxdWU8SW5zcGVjdG9yUGFnZUFnZW50PihtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCks
ICZwYWdlLCBpbnNwZWN0b3JDbGllbnQsIG1fb3ZlcmxheS5nZXQoKSk7CiAgICAgSW5zcGVjdG9y
UGFnZUFnZW50KiBwYWdlQWdlbnQgPSBwYWdlQWdlbnRQdHIuZ2V0KCk7CiAgICAgbV9wYWdlQWdl
bnQgPSBwYWdlQWdlbnRQdHIuZ2V0KCk7Ci0gICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bW92ZShw
YWdlQWdlbnRQdHIpKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoV1RGOjptb3ZlKHBhZ2VBZ2VudFB0
cikpOwogCiAgICAgYXV0byBydW50aW1lQWdlbnRQdHIgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VS
dW50aW1lQWdlbnQ+KG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCAmcGFnZSwgcGFnZUFn
ZW50KTsKICAgICBQYWdlUnVudGltZUFnZW50KiBydW50aW1lQWdlbnQgPSBydW50aW1lQWdlbnRQ
dHIuZ2V0KCk7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRQYWdlUnVudGltZUFnZW50
KHJ1bnRpbWVBZ2VudCk7Ci0gICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bW92ZShydW50aW1lQWdl
bnRQdHIpKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoV1RGOjptb3ZlKHJ1bnRpbWVBZ2VudFB0cikp
OwogCiAgICAgYXV0byBkb21BZ2VudFB0ciA9IHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yRE9N
QWdlbnQ+KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgcGFnZUFnZW50LCBtX2luamVjdGVk
U2NyaXB0TWFuYWdlci5nZXQoKSwgbV9vdmVybGF5LmdldCgpKTsKICAgICBtX2RvbUFnZW50ID0g
ZG9tQWdlbnRQdHIuZ2V0KCk7Ci0gICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bW92ZShkb21BZ2Vu
dFB0cikpOworICAgIG1fYWdlbnRzLmFwcGVuZChXVEY6Om1vdmUoZG9tQWdlbnRQdHIpKTsKIAog
ICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvckNTU0FnZW50Piht
X2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fZG9tQWdlbnQpKTsKIAogI2lmIEVOQUJMRShT
UUxfREFUQUJBU0UpCiAgICAgYXV0byBkYXRhYmFzZUFnZW50UHRyID0gc3RkOjptYWtlX3VuaXF1
ZTxJbnNwZWN0b3JEYXRhYmFzZUFnZW50PihtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCkpOwog
ICAgIEluc3BlY3RvckRhdGFiYXNlQWdlbnQqIGRhdGFiYXNlQWdlbnQgPSBkYXRhYmFzZUFnZW50
UHRyLmdldCgpOwotICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1vdmUoZGF0YWJhc2VBZ2VudFB0
cikpOworICAgIG1fYWdlbnRzLmFwcGVuZChXVEY6Om1vdmUoZGF0YWJhc2VBZ2VudFB0cikpOwog
I2VuZGlmCiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKQEAgLTEzMSwzMiArMTMxLDMy
IEBAIEluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNvbnRyb2xsZXIoUGFnZSYgcGFnZSwg
SW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDCiAKICAgICBhdXRvIGRvbVN0b3JhZ2VBZ2VudFB0
ciA9IHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50PihtX2luc3RydW1l
bnRpbmdBZ2VudHMuZ2V0KCksIG1fcGFnZUFnZW50KTsKICAgICBJbnNwZWN0b3JET01TdG9yYWdl
QWdlbnQqIGRvbVN0b3JhZ2VBZ2VudCA9IGRvbVN0b3JhZ2VBZ2VudFB0ci5nZXQoKTsKLSAgICBt
X2FnZW50cy5hcHBlbmQoc3RkOjptb3ZlKGRvbVN0b3JhZ2VBZ2VudFB0cikpOworICAgIG1fYWdl
bnRzLmFwcGVuZChXVEY6Om1vdmUoZG9tU3RvcmFnZUFnZW50UHRyKSk7CiAKICAgICBhdXRvIHRp
bWVsaW5lQWdlbnRQdHIgPSBzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+
KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgcGFnZUFnZW50LCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjpQYWdlSW5zcGVjdG9yLCBpbnNwZWN0b3JDbGllbnQpOwogICAgIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSB0aW1lbGluZUFnZW50UHRyLmdldCgpOwotICAg
IG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1vdmUodGltZWxpbmVBZ2VudFB0cikpOworICAgIG1fYWdl
bnRzLmFwcGVuZChXVEY6Om1vdmUodGltZWxpbmVBZ2VudFB0cikpOwogCiAgICAgYXV0byByZXNv
dXJjZUFnZW50UHRyID0gc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JSZXNvdXJjZUFnZW50Piht
X2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2VBZ2VudCwgaW5zcGVjdG9yQ2xpZW50KTsK
ICAgICBtX3Jlc291cmNlQWdlbnQgPSByZXNvdXJjZUFnZW50UHRyLmdldCgpOwotICAgIG1fYWdl
bnRzLmFwcGVuZChzdGQ6Om1vdmUocmVzb3VyY2VBZ2VudFB0cikpOworICAgIG1fYWdlbnRzLmFw
cGVuZChXVEY6Om1vdmUocmVzb3VyY2VBZ2VudFB0cikpOwogCiAgICAgYXV0byBjb25zb2xlQWdl
bnRQdHIgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VDb25zb2xlQWdlbnQ+KG1faW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLmdldCgpLCBtX2RvbUFnZW50KTsKICAgICBXZWJDb25zb2xlQWdlbnQqIGNvbnNv
bGVBZ2VudCA9IGNvbnNvbGVBZ2VudFB0ci5nZXQoKTsKICAgICBtX2luc3RydW1lbnRpbmdBZ2Vu
dHMtPnNldFdlYkNvbnNvbGVBZ2VudChjb25zb2xlQWdlbnRQdHIuZ2V0KCkpOwotICAgIG1fYWdl
bnRzLmFwcGVuZChzdGQ6Om1vdmUoY29uc29sZUFnZW50UHRyKSk7CisgICAgbV9hZ2VudHMuYXBw
ZW5kKFdURjo6bW92ZShjb25zb2xlQWdlbnRQdHIpKTsKIAogICAgIGF1dG8gZGVidWdnZXJBZ2Vu
dFB0ciA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZURlYnVnZ2VyQWdlbnQ+KG1faW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLmdldCgpLCBtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2VBZ2VudCwg
bV9vdmVybGF5LmdldCgpKTsKICAgICBtX2RlYnVnZ2VyQWdlbnQgPSBkZWJ1Z2dlckFnZW50UHRy
LmdldCgpOwotICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1vdmUoZGVidWdnZXJBZ2VudFB0cikp
OworICAgIG1fYWdlbnRzLmFwcGVuZChXVEY6Om1vdmUoZGVidWdnZXJBZ2VudFB0cikpOwogCiAg
ICAgYXV0byBkb21EZWJ1Z2dlckFnZW50UHRyID0gc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JE
T01EZWJ1Z2dlckFnZW50PihtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fZG9tQWdlbnQs
IG1fZGVidWdnZXJBZ2VudCk7CiAgICAgbV9kb21EZWJ1Z2dlckFnZW50ID0gZG9tRGVidWdnZXJB
Z2VudFB0ci5nZXQoKTsKLSAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjptb3ZlKGRvbURlYnVnZ2Vy
QWdlbnRQdHIpKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoV1RGOjptb3ZlKGRvbURlYnVnZ2VyQWdl
bnRQdHIpKTsKIAogICAgIGF1dG8gcHJvZmlsZXJBZ2VudFB0ciA9IHN0ZDo6bWFrZV91bmlxdWU8
UGFnZVByb2ZpbGVyQWdlbnQ+KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgJnBhZ2UpOwog
ICAgIG1fcHJvZmlsZXJBZ2VudCA9IHByb2ZpbGVyQWdlbnRQdHIuZ2V0KCk7Ci0gICAgbV9hZ2Vu
dHMuYXBwZW5kKHN0ZDo6bW92ZShwcm9maWxlckFnZW50UHRyKSk7CisgICAgbV9hZ2VudHMuYXBw
ZW5kKFdURjo6bW92ZShwcm9maWxlckFnZW50UHRyKSk7CiAKICAgICBtX2FnZW50cy5hcHBlbmQo
c3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ+KG1faW5zdHJ1
bWVudGluZ0FnZW50cy5nZXQoKSwgcGFnZUFnZW50KSk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKHN0
ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yV29ya2VyQWdlbnQ+KG1faW5zdHJ1bWVudGluZ0FnZW50
cy5nZXQoKSkpOwpAQCAtMTk2LDcgKzE5Niw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6
aW5zcGVjdGVkUGFnZURlc3Ryb3llZCgpCiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c2V0
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEluc3BlY3RvckZyb250ZW5k
Q2xpZW50PiBpbnNwZWN0b3JGcm9udGVuZENsaWVudCkKIHsKLSAgICBtX2luc3BlY3RvckZyb250
ZW5kQ2xpZW50ID0gc3RkOjptb3ZlKGluc3BlY3RvckZyb250ZW5kQ2xpZW50KTsKKyAgICBtX2lu
c3BlY3RvckZyb250ZW5kQ2xpZW50ID0gV1RGOjptb3ZlKGluc3BlY3RvckZyb250ZW5kQ2xpZW50
KTsKIH0KIAogYm9vbCBJbnNwZWN0b3JDb250cm9sbGVyOjpoYXNMb2NhbEZyb250ZW5kKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmlu
ZGV4IDhmZjFhNzQuLjdkM2ZhNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50LmNwcApAQCAtMTA2Miw3ICsxMDYyLDcgQEAgdm9pZCBJbnNwZWN0b3JE
T01BZ2VudDo6c2V0SW5zcGVjdE1vZGVFbmFibGVkKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywg
Ym9vbCBlbmEKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmhpZ2hsaWdodFJlY3QoRXJyb3JTdHJp
bmcqLCBpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCwgY29uc3QgUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4qIGNvbG9yLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0Piogb3V0
bGluZUNvbG9yLCBjb25zdCBib29sKiB1c2VQYWdlQ29vcmRpbmF0ZXMpCiB7CiAgICAgYXV0byBx
dWFkID0gc3RkOjptYWtlX3VuaXF1ZTxGbG9hdFF1YWQ+KEZsb2F0UmVjdCh4LCB5LCB3aWR0aCwg
aGVpZ2h0KSk7Ci0gICAgaW5uZXJIaWdobGlnaHRRdWFkKHN0ZDo6bW92ZShxdWFkKSwgY29sb3Is
IG91dGxpbmVDb2xvciwgdXNlUGFnZUNvb3JkaW5hdGVzKTsKKyAgICBpbm5lckhpZ2hsaWdodFF1
YWQoV1RGOjptb3ZlKHF1YWQpLCBjb2xvciwgb3V0bGluZUNvbG9yLCB1c2VQYWdlQ29vcmRpbmF0
ZXMpOwogfQogCiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpoaWdobGlnaHRRdWFkKEVycm9yU3Ry
aW5nKiBlcnJvclN0cmluZywgY29uc3QgUmVmUHRyPEluc3BlY3RvckFycmF5PiYgcXVhZEFycmF5
LCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogY29sb3IsIGNvbnN0IFJlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+KiBvdXRsaW5lQ29sb3IsIGNvbnN0IGJvb2wqIHVzZVBhZ2VDb29yZGluYXRl
cykKQEAgLTEwNzIsNyArMTA3Miw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmhpZ2hsaWdo
dFF1YWQoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBSZWZQdHI8SW5zCiAgICAgICAg
ICplcnJvclN0cmluZyA9ICJJbnZhbGlkIFF1YWQgZm9ybWF0IjsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KLSAgICBpbm5lckhpZ2hsaWdodFF1YWQoc3RkOjptb3ZlKHF1YWQpLCBjb2xvciwgb3V0
bGluZUNvbG9yLCB1c2VQYWdlQ29vcmRpbmF0ZXMpOworICAgIGlubmVySGlnaGxpZ2h0UXVhZChX
VEY6Om1vdmUocXVhZCksIGNvbG9yLCBvdXRsaW5lQ29sb3IsIHVzZVBhZ2VDb29yZGluYXRlcyk7
CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmlubmVySGlnaGxpZ2h0UXVhZChzdGQ6OnVu
aXF1ZV9wdHI8RmxvYXRRdWFkPiBxdWFkLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0Piog
Y29sb3IsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBvdXRsaW5lQ29sb3IsIGNvbnN0
IGJvb2wqIHVzZVBhZ2VDb29yZGluYXRlcykKQEAgLTEwODEsNyArMTA4MSw3IEBAIHZvaWQgSW5z
cGVjdG9yRE9NQWdlbnQ6OmlubmVySGlnaGxpZ2h0UXVhZChzdGQ6OnVuaXF1ZV9wdHI8RmxvYXRR
dWFkPiBxdWFkLCBjb25zCiAgICAgaGlnaGxpZ2h0Q29uZmlnLT5jb250ZW50ID0gcGFyc2VDb2xv
cihjb2xvcik7CiAgICAgaGlnaGxpZ2h0Q29uZmlnLT5jb250ZW50T3V0bGluZSA9IHBhcnNlQ29s
b3Iob3V0bGluZUNvbG9yKTsKICAgICBoaWdobGlnaHRDb25maWctPnVzZVBhZ2VDb29yZGluYXRl
cyA9IHVzZVBhZ2VDb29yZGluYXRlcyA/ICp1c2VQYWdlQ29vcmRpbmF0ZXMgOiBmYWxzZTsKLSAg
ICBtX292ZXJsYXktPmhpZ2hsaWdodFF1YWQoc3RkOjptb3ZlKHF1YWQpLCAqaGlnaGxpZ2h0Q29u
ZmlnKTsKKyAgICBtX292ZXJsYXktPmhpZ2hsaWdodFF1YWQoV1RGOjptb3ZlKHF1YWQpLCAqaGln
aGxpZ2h0Q29uZmlnKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6aGlnaGxpZ2h0Tm9k
ZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
JiBoaWdobGlnaHRJbnNwZWN0b3JPYmplY3QsIGNvbnN0IGludCogbm9kZUlkLCBjb25zdCBTdHJp
bmcqIG9iamVjdElkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCmluZGV4IDQ4YTI2MTcuLjViODlkOGQ1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xp
ZW50TG9jYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZENsaWVudExvY2FsLmNwcApAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQgSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbDo6U2V0dGluZ3M6OnNldFByb3BlcnR5KGNvbnN0IFN0cmluZyYsIGNv
bnN0IFN0CiBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpJbnNwZWN0b3JGcm9udGVuZENs
aWVudExvY2FsKEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3RvckNvbnRyb2xsZXIsIFBhZ2Uq
IGZyb250ZW5kUGFnZSwgc3RkOjp1bmlxdWVfcHRyPFNldHRpbmdzPiBzZXR0aW5ncykKICAgICA6
IG1faW5zcGVjdG9yQ29udHJvbGxlcihpbnNwZWN0b3JDb250cm9sbGVyKQogICAgICwgbV9mcm9u
dGVuZFBhZ2UoZnJvbnRlbmRQYWdlKQotICAgICwgbV9zZXR0aW5ncyhzdGQ6Om1vdmUoc2V0dGlu
Z3MpKQorICAgICwgbV9zZXR0aW5ncyhXVEY6Om1vdmUoc2V0dGluZ3MpKQogICAgICwgbV9mcm9u
dGVuZExvYWRlZChmYWxzZSkKICAgICAsIG1fZG9ja1NpZGUoVU5ET0NLRUQpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGlzdG9yeS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGlzdG9yeS5jcHAKaW5kZXggODczYThmOS4u
ZTM4ZDg5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckhp
c3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIaXN0b3J5
LmNwcApAQCAtOTMsMTAgKzkzLDEwIEBAIGJvb2wgSW5zcGVjdG9ySGlzdG9yeTo6cGVyZm9ybShz
dGQ6OnVuaXF1ZV9wdHI8QWN0aW9uPiBhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIGlmICghYWN0aW9uLT5tZXJnZUlkKCkuaXNFbXB0eSgpICYm
IG1fYWZ0ZXJMYXN0QWN0aW9uSW5kZXggPiAwICYmIGFjdGlvbi0+bWVyZ2VJZCgpID09IG1faGlz
dG9yeVttX2FmdGVyTGFzdEFjdGlvbkluZGV4IC0gMV0tPm1lcmdlSWQoKSkKLSAgICAgICAgbV9o
aXN0b3J5W21fYWZ0ZXJMYXN0QWN0aW9uSW5kZXggLSAxXS0+bWVyZ2Uoc3RkOjptb3ZlKGFjdGlv
bikpOworICAgICAgICBtX2hpc3RvcnlbbV9hZnRlckxhc3RBY3Rpb25JbmRleCAtIDFdLT5tZXJn
ZShXVEY6Om1vdmUoYWN0aW9uKSk7CiAgICAgZWxzZSB7CiAgICAgICAgIG1faGlzdG9yeS5yZXNp
emUobV9hZnRlckxhc3RBY3Rpb25JbmRleCk7Ci0gICAgICAgIG1faGlzdG9yeS5hcHBlbmQoc3Rk
Ojptb3ZlKGFjdGlvbikpOworICAgICAgICBtX2hpc3RvcnkuYXBwZW5kKFdURjo6bW92ZShhY3Rp
b24pKTsKICAgICAgICAgKyttX2FmdGVyTGFzdEFjdGlvbkluZGV4OwogICAgIH0KICAgICByZXR1
cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JP
dmVybGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNw
cAppbmRleCA0ZDk3ZmIyLi42ZmY5MjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvck92ZXJsYXkuY3BwCkBAIC0zMDEsNyArMzAxLDcgQEAgdm9pZCBJbnNwZWN0b3JP
dmVybGF5OjpoaWdobGlnaHRRdWFkKHN0ZDo6dW5pcXVlX3B0cjxGbG9hdFF1YWQ+IHF1YWQsIGNv
bnN0IEhpZ2gKICAgICAgICAgKnF1YWQgLT0gbV9wYWdlLm1haW5GcmFtZSgpLnZpZXcoKS0+c2Ny
b2xsT2Zmc2V0KCk7CiAKICAgICBtX3F1YWRIaWdobGlnaHRDb25maWcgPSBoaWdobGlnaHRDb25m
aWc7Ci0gICAgbV9oaWdobGlnaHRRdWFkID0gc3RkOjptb3ZlKHF1YWQpOworICAgIG1faGlnaGxp
Z2h0UXVhZCA9IFdURjo6bW92ZShxdWFkKTsKICAgICB1cGRhdGUoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCmluZGV4
IDU1MGJkOTkuLmE0NzAzMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKQEAgLTQ4Nyw3ICs0ODcsNyBAQCB2b2lkIEluc3Bl
Y3RvclJlc291cmNlQWdlbnQ6OndpbGxMb2FkWEhSKFRocmVhZGFibGVMb2FkZXJDbGllbnQqIGNs
aWVudCwgY29uc3QgUwogewogICAgIFJlZlB0cjxYSFJSZXBsYXlEYXRhPiB4aHJSZXBsYXlEYXRh
ID0gWEhSUmVwbGF5RGF0YTo6Y3JlYXRlKG1ldGhvZCwgdXJsLCBhc3luYywgZm9ybURhdGEsIGhl
YWRlcnMsIGluY2x1ZGVDcmVkZW50aWFscyk7CiAKLSAgICBtX3BlbmRpbmdYSFJSZXBsYXlEYXRh
LnNldChjbGllbnQsIHN0ZDo6bW92ZSh4aHJSZXBsYXlEYXRhKSk7CisgICAgbV9wZW5kaW5nWEhS
UmVwbGF5RGF0YS5zZXQoY2xpZW50LCBXVEY6Om1vdmUoeGhyUmVwbGF5RGF0YSkpOwogfQogCiB2
b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZEZhaWxYSFJMb2FkaW5nKFRocmVhZGFibGVM
b2FkZXJDbGllbnQqIGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JTdHlsZVNoZWV0LmNwcAppbmRleCA4OTYxOWI0Li43Njg4MTAzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCkBAIC0xMjcxLDcg
KzEyNzEsNyBAQCBib29sIEluc3BlY3RvclN0eWxlU2hlZXQ6OmVuc3VyZVNvdXJjZURhdGEoKQog
ICAgIFJlZlB0cjxTdHlsZVNoZWV0Q29udGVudHM+IG5ld1N0eWxlU2hlZXQgPSBTdHlsZVNoZWV0
Q29udGVudHM6OmNyZWF0ZSgpOwogICAgIGF1dG8gcnVsZVNvdXJjZURhdGFSZXN1bHQgPSBzdGQ6
Om1ha2VfdW5pcXVlPFJ1bGVTb3VyY2VEYXRhTGlzdD4oKTsKICAgICBjcmVhdGVDU1NQYXJzZXIo
bV9wYWdlU3R5bGVTaGVldC0+b3duZXJEb2N1bWVudCgpKS0+cGFyc2VTaGVldChuZXdTdHlsZVNo
ZWV0LmdldCgpLCBtX3BhcnNlZFN0eWxlU2hlZXQtPnRleHQoKSwgMCwgcnVsZVNvdXJjZURhdGFS
ZXN1bHQuZ2V0KCkpOwotICAgIG1fcGFyc2VkU3R5bGVTaGVldC0+c2V0U291cmNlRGF0YShzdGQ6
Om1vdmUocnVsZVNvdXJjZURhdGFSZXN1bHQpKTsKKyAgICBtX3BhcnNlZFN0eWxlU2hlZXQtPnNl
dFNvdXJjZURhdGEoV1RGOjptb3ZlKHJ1bGVTb3VyY2VEYXRhUmVzdWx0KSk7CiAgICAgcmV0dXJu
IG1fcGFyc2VkU3R5bGVTaGVldC0+aGFzU291cmNlRGF0YSgpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5k
ZXggMDQyZGUyNS4uOGQzN2I2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtODYsMjEgKzg2LDIxIEBAIFdv
cmtlckluc3BlY3RvckNvbnRyb2xsZXI6Oldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIoV29ya2Vy
R2xvYmFsU2NvcGUmIHdvcmtlckdsCiAgICAgYXV0byBydW50aW1lQWdlbnQgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFdvcmtlclJ1bnRpbWVBZ2VudD4obV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCks
ICZ3b3JrZXJHbG9iYWxTY29wZSk7CiAgICAgbV9ydW50aW1lQWdlbnQgPSBydW50aW1lQWdlbnQu
Z2V0KCk7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRXb3JrZXJSdW50aW1lQWdlbnQo
bV9ydW50aW1lQWdlbnQpOwotICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1vdmUocnVudGltZUFn
ZW50KSk7CisgICAgbV9hZ2VudHMuYXBwZW5kKFdURjo6bW92ZShydW50aW1lQWdlbnQpKTsKIAog
ICAgIGF1dG8gY29uc29sZUFnZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxXb3JrZXJDb25zb2xlQWdl
bnQ+KG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKTsKICAgICBtX2luc3RydW1lbnRpbmdB
Z2VudHMtPnNldFdlYkNvbnNvbGVBZ2VudChjb25zb2xlQWdlbnQuZ2V0KCkpOwogCiAgICAgYXV0
byBkZWJ1Z2dlckFnZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxXb3JrZXJEZWJ1Z2dlckFnZW50Piht
X2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgbV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgp
LCAmd29ya2VyR2xvYmFsU2NvcGUpOwogICAgIG1fcnVudGltZUFnZW50LT5zZXRTY3JpcHREZWJ1
Z1NlcnZlcigmZGVidWdnZXJBZ2VudC0+c2NyaXB0RGVidWdTZXJ2ZXIoKSk7Ci0gICAgbV9hZ2Vu
dHMuYXBwZW5kKHN0ZDo6bW92ZShkZWJ1Z2dlckFnZW50KSk7CisgICAgbV9hZ2VudHMuYXBwZW5k
KFdURjo6bW92ZShkZWJ1Z2dlckFnZW50KSk7CiAKICAgICBhdXRvIHByb2ZpbGVyQWdlbnQgPSBz
dGQ6Om1ha2VfdW5pcXVlPFdvcmtlclByb2ZpbGVyQWdlbnQ+KG1faW5zdHJ1bWVudGluZ0FnZW50
cy5nZXQoKSwgJndvcmtlckdsb2JhbFNjb3BlKTsKICAgICBwcm9maWxlckFnZW50LT5zZXRTY3Jp
cHREZWJ1Z1NlcnZlcigmZGVidWdnZXJBZ2VudC0+c2NyaXB0RGVidWdTZXJ2ZXIoKSk7Ci0gICAg
bV9hZ2VudHMuYXBwZW5kKHN0ZDo6bW92ZShwcm9maWxlckFnZW50KSk7CisgICAgbV9hZ2VudHMu
YXBwZW5kKFdURjo6bW92ZShwcm9maWxlckFnZW50KSk7CiAKICAgICBtX2FnZW50cy5hcHBlbmQo
c3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JUaW1lbGluZUFnZW50PihtX2luc3RydW1lbnRpbmdB
Z2VudHMuZ2V0KCksIG51bGxwdHIsIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Oldvcmtlckluc3Bl
Y3RvciwgbnVsbHB0cikpOwotICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1vdmUoY29uc29sZUFn
ZW50KSk7CisgICAgbV9hZ2VudHMuYXBwZW5kKFdURjo6bW92ZShjb25zb2xlQWdlbnQpKTsKIAog
ICAgIGlmIChDb21tYW5kTGluZUFQSUhvc3QqIGNvbW1hbmRMaW5lQVBJSG9zdCA9IG1faW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLT5jb21tYW5kTGluZUFQSUhvc3QoKSkgewogICAgICAgICBjb21tYW5k
TGluZUFQSUhvc3QtPmluaXQobnVsbHB0cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwCmluZGV4IGQzNmM0OGUu
LjUxNmYxMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblBy
ZWZsaWdodFJlc3VsdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NP
cmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5jcHAKQEAgLTE2MCw3ICsxNjAsNyBAQCBDcm9zc09y
aWdpblByZWZsaWdodFJlc3VsdENhY2hlJiBDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hl
OjpzaGFyZWQoKQogdm9pZCBDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlOjphcHBlbmRF
bnRyeShjb25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgVVJMJiB1cmwsIHN0ZDo6dW5pcXVlX3B0
cjxDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlSXRlbT4gcHJlZmxpZ2h0UmVzdWx0KQog
ewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgbV9wcmVmbGlnaHRIYXNoTWFwLnNl
dChzdGQ6Om1ha2VfcGFpcihvcmlnaW4sIHVybCksIHN0ZDo6bW92ZShwcmVmbGlnaHRSZXN1bHQp
KTsKKyAgICBtX3ByZWZsaWdodEhhc2hNYXAuc2V0KHN0ZDo6bWFrZV9wYWlyKG9yaWdpbiwgdXJs
KSwgV1RGOjptb3ZlKHByZWZsaWdodFJlc3VsdCkpOwogfQogCiBib29sIENyb3NzT3JpZ2luUHJl
ZmxpZ2h0UmVzdWx0Q2FjaGU6OmNhblNraXBQcmVmbGlnaHQoY29uc3QgU3RyaW5nJiBvcmlnaW4s
IGNvbnN0IFVSTCYgdXJsLCBTdG9yZWRDcmVkZW50aWFscyBpbmNsdWRlQ3JlZGVudGlhbHMsIGNv
bnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBIVFRQSGVhZGVyTWFwJiByZXF1ZXN0SGVhZGVycykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDYyY2NhNzUuLjYy
YzMzZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtMTEx
NCw3ICsxMTE0LDcgQEAgVmVjdG9yPFJlZlB0cjxBcmNoaXZlUmVzb3VyY2U+PiBEb2N1bWVudExv
YWRlcjo6c3VicmVzb3VyY2VzKCkgY29uc3QKIAogICAgIGZvciAoYXV0byYgY2FjaGVkUmVzb3Vy
Y2VIYW5kbGUgOiBtX2NhY2hlZFJlc291cmNlTG9hZGVyLT5hbGxDYWNoZWRSZXNvdXJjZXMoKS52
YWx1ZXMoKSkgewogICAgICAgICBpZiAoUmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4gc3VicmVzb3Vy
Y2UgPSB0aGlzLT5zdWJyZXNvdXJjZShVUkwoUGFyc2VkVVJMU3RyaW5nLCBjYWNoZWRSZXNvdXJj
ZUhhbmRsZS0+dXJsKCkpKSkKLSAgICAgICAgICAgIHN1YnJlc291cmNlcy5hcHBlbmQoc3RkOjpt
b3ZlKHN1YnJlc291cmNlKSk7CisgICAgICAgICAgICBzdWJyZXNvdXJjZXMuYXBwZW5kKFdURjo6
bW92ZShzdWJyZXNvdXJjZSkpOwogICAgIH0KIAogICAgIHJldHVybiBzdWJyZXNvdXJjZXM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3Bw
CmluZGV4IGNjOTA4OTMuLjU4YzViOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCkBAIC0yNjEsNyArMjYxLDcgQEAgdm9pZCBE
b2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGNvbnMKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAg
ICAgIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OnNoYXJlZCgpLmFwcGVuZEVudHJ5
KHNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCksIG1fYWN0dWFsUmVxdWVzdC0+dXJsKCksIHN0
ZDo6bW92ZShwcmVmbGlnaHRSZXN1bHQpKTsKKyAgICAgICAgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRS
ZXN1bHRDYWNoZTo6c2hhcmVkKCkuYXBwZW5kRW50cnkoc2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJp
bmcoKSwgbV9hY3R1YWxSZXF1ZXN0LT51cmwoKSwgV1RGOjptb3ZlKHByZWZsaWdodFJlc3VsdCkp
OwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICghbV9zYW1lT3JpZ2luUmVxdWVzdCAmJiBtX29w
dGlvbnMuY3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5ID09IFVzZUFjY2Vzc0NvbnRyb2wpIHsKICAg
ICAgICAgICAgIGlmICghcGFzc2VzQWNjZXNzQ29udHJvbENoZWNrKHJlc3BvbnNlLCBtX29wdGlv
bnMuYWxsb3dDcmVkZW50aWFscygpLCBzZWN1cml0eU9yaWdpbigpLCBhY2Nlc3NDb250cm9sRXJy
b3JEZXNjcmlwdGlvbikpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZp
Z2F0aW9uU2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2No
ZWR1bGVyLmNwcAppbmRleCAzOTMxMzQzLi5mNWVmMmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwCkBAIC00MzcsNyArNDM3LDcgQEAgdm9pZCBO
YXZpZ2F0aW9uU2NoZWR1bGVyOjp0aW1lckZpcmVkKFRpbWVyPE5hdmlnYXRpb25TY2hlZHVsZXI+
JikKIAogICAgIFJlZjxGcmFtZT4gcHJvdGVjdChtX2ZyYW1lKTsKIAotICAgIHN0ZDo6dW5pcXVl
X3B0cjxTY2hlZHVsZWROYXZpZ2F0aW9uPiByZWRpcmVjdCA9IHN0ZDo6bW92ZShtX3JlZGlyZWN0
KTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkTmF2aWdhdGlvbj4gcmVkaXJlY3QgPSBX
VEY6Om1vdmUobV9yZWRpcmVjdCk7CiAgICAgcmVkaXJlY3QtPmZpcmUobV9mcmFtZSk7CiAgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9u
KG1fZnJhbWUpOwogfQpAQCAtNDU4LDcgKzQ1OCw3IEBAIHZvaWQgTmF2aWdhdGlvblNjaGVkdWxl
cjo6c2NoZWR1bGUoc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZE5hdmlnYXRpb24+IHJlZGlyZWN0
CiAgICAgfQogCiAgICAgY2FuY2VsKCk7Ci0gICAgbV9yZWRpcmVjdCA9IHN0ZDo6bW92ZShyZWRp
cmVjdCk7CisgICAgbV9yZWRpcmVjdCA9IFdURjo6bW92ZShyZWRpcmVjdCk7CiAKICAgICBpZiAo
IW1fZnJhbWUubG9hZGVyKCkuaXNDb21wbGV0ZSgpICYmIG1fcmVkaXJlY3QtPmlzTG9jYXRpb25D
aGFuZ2UoKSkKICAgICAgICAgbV9mcmFtZS5sb2FkZXIoKS5jb21wbGV0ZWQoKTsKQEAgLTQ5Miw3
ICs0OTIsNyBAQCB2b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OmNhbmNlbChib29sIG5ld0xvYWRJ
blByb2dyZXNzKQogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lQ2xlYXJl
ZFNjaGVkdWxlZE5hdmlnYXRpb24obV9mcmFtZSk7CiAgICAgbV90aW1lci5zdG9wKCk7CiAKLSAg
ICBpZiAoc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZE5hdmlnYXRpb24+IHJlZGlyZWN0ID0gc3Rk
Ojptb3ZlKG1fcmVkaXJlY3QpKQorICAgIGlmIChzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkTmF2
aWdhdGlvbj4gcmVkaXJlY3QgPSBXVEY6Om1vdmUobV9yZWRpcmVjdCkpCiAgICAgICAgIHJlZGly
ZWN0LT5kaWRTdG9wVGltZXIobV9mcmFtZSwgbmV3TG9hZEluUHJvZ3Jlc3MpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2FsbGJhY2suY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1BvbGljeUNhbGxiYWNrLmNwcAppbmRleCBjMTJhYzgyLi5iZGZmYmU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2FsbGJhY2suY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDYWxsYmFjay5jcHAKQEAgLTYxLDcgKzYx
LDcgQEAgdm9pZCBQb2xpY3lDYWxsYmFjazo6c2V0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+IGYKICAgICBtX2Zvcm1TdGF0ZSA9IGZvcm1TdGF0
ZTsKICAgICBtX2ZyYW1lTmFtZSA9IFN0cmluZygpOwogCi0gICAgbV9uYXZpZ2F0aW9uRnVuY3Rp
b24gPSBzdGQ6Om1vdmUoZnVuY3Rpb24pOworICAgIG1fbmF2aWdhdGlvbkZ1bmN0aW9uID0gV1RG
Ojptb3ZlKGZ1bmN0aW9uKTsKICAgICBtX25ld1dpbmRvd0Z1bmN0aW9uID0gbnVsbHB0cjsKICAg
ICBtX2NvbnRlbnRGdW5jdGlvbiA9IG51bGxwdHI7CiB9CkBAIC03NCw3ICs3NCw3IEBAIHZvaWQg
UG9saWN5Q2FsbGJhY2s6OnNldChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFBhc3NS
ZWZQdHI8Rm9ybVN0YXRlPiBmCiAgICAgbV9uYXZpZ2F0aW9uQWN0aW9uID0gbmF2aWdhdGlvbkFj
dGlvbjsKIAogICAgIG1fbmF2aWdhdGlvbkZ1bmN0aW9uID0gbnVsbHB0cjsKLSAgICBtX25ld1dp
bmRvd0Z1bmN0aW9uID0gc3RkOjptb3ZlKGZ1bmN0aW9uKTsKKyAgICBtX25ld1dpbmRvd0Z1bmN0
aW9uID0gV1RGOjptb3ZlKGZ1bmN0aW9uKTsKICAgICBtX2NvbnRlbnRGdW5jdGlvbiA9IG51bGxw
dHI7CiB9CiAKQEAgLTg2LDcgKzg2LDcgQEAgdm9pZCBQb2xpY3lDYWxsYmFjazo6c2V0KENvbnRl
bnRQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uIGZ1bmN0aW9uKQogCiAgICAgbV9uYXZpZ2F0aW9uRnVu
Y3Rpb24gPSBudWxscHRyOwogICAgIG1fbmV3V2luZG93RnVuY3Rpb24gPSBudWxscHRyOwotICAg
IG1fY29udGVudEZ1bmN0aW9uID0gc3RkOjptb3ZlKGZ1bmN0aW9uKTsKKyAgICBtX2NvbnRlbnRG
dW5jdGlvbiA9IFdURjo6bW92ZShmdW5jdGlvbik7CiB9CiAKIHZvaWQgUG9saWN5Q2FsbGJhY2s6
OmNhbGwoYm9vbCBzaG91bGRDb250aW51ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Qb2xpY3lDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVj
a2VyLmNwcAppbmRleCAzNDdlZjYxLi5lNzcwODBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Bv
bGljeUNoZWNrZXIuY3BwCkBAIC02Miw3ICs2Miw3IEBAIFBvbGljeUNoZWNrZXI6OlBvbGljeUNo
ZWNrZXIoRnJhbWUmIGZyYW1lKQogCiB2b2lkIFBvbGljeUNoZWNrZXI6OmNoZWNrTmF2aWdhdGlv
blBvbGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVlc3QsIE5hdmlnYXRpb25Qb2xp
Y3lEZWNpc2lvbkZ1bmN0aW9uIGZ1bmN0aW9uKQogewotICAgIGNoZWNrTmF2aWdhdGlvblBvbGlj
eShuZXdSZXF1ZXN0LCBtX2ZyYW1lLmxvYWRlcigpLmFjdGl2ZURvY3VtZW50TG9hZGVyKCksIG51
bGxwdHIsIHN0ZDo6bW92ZShmdW5jdGlvbikpOworICAgIGNoZWNrTmF2aWdhdGlvblBvbGljeShu
ZXdSZXF1ZXN0LCBtX2ZyYW1lLmxvYWRlcigpLmFjdGl2ZURvY3VtZW50TG9hZGVyKCksIG51bGxw
dHIsIFdURjo6bW92ZShmdW5jdGlvbikpOwogfQogCiB2b2lkIFBvbGljeUNoZWNrZXI6OmNoZWNr
TmF2aWdhdGlvblBvbGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIERvY3VtZW50
TG9hZGVyKiBsb2FkZXIsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUsIE5hdmlnYXRp
b25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uIGZ1bmN0aW9uKQpAQCAtOTksNyArOTksNyBAQCB2b2lk
IFBvbGljeUNoZWNrZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeShjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIERvY3VtZQogCiAgICAgbG9hZGVyLT5zZXRMYXN0Q2hlY2tlZFJlcXVlc3Qo
cmVxdWVzdCk7CiAKLSAgICBtX2NhbGxiYWNrLnNldChyZXF1ZXN0LCBmb3JtU3RhdGUuZ2V0KCks
IHN0ZDo6bW92ZShmdW5jdGlvbikpOworICAgIG1fY2FsbGJhY2suc2V0KHJlcXVlc3QsIGZvcm1T
dGF0ZS5nZXQoKSwgV1RGOjptb3ZlKGZ1bmN0aW9uKSk7CiAKICNpZiBVU0UoUVVJQ0tfTE9PSykK
ICAgICAvLyBBbHdheXMgYWxsb3cgUXVpY2tMb29rLWdlbmVyYXRlZCBVUkxzIGJhc2VkIG9uIHRo
ZSBwcm90b2NvbCBzY2hlbWUuCkBAIC0xMzMsNyArMTMzLDcgQEAgdm9pZCBQb2xpY3lDaGVja2Vy
OjpjaGVja05ld1dpbmRvd1BvbGljeShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIGNv
bnN0IFIKICAgICBpZiAoIURPTVdpbmRvdzo6YWxsb3dQb3BVcCgmbV9mcmFtZSkpCiAgICAgICAg
IHJldHVybiBjb250aW51ZUFmdGVyTmF2aWdhdGlvblBvbGljeShQb2xpY3lJZ25vcmUpOwogCi0g
ICAgbV9jYWxsYmFjay5zZXQocmVxdWVzdCwgZm9ybVN0YXRlLCBmcmFtZU5hbWUsIGFjdGlvbiwg
c3RkOjptb3ZlKGZ1bmN0aW9uKSk7CisgICAgbV9jYWxsYmFjay5zZXQocmVxdWVzdCwgZm9ybVN0
YXRlLCBmcmFtZU5hbWUsIGFjdGlvbiwgV1RGOjptb3ZlKGZ1bmN0aW9uKSk7CiAgICAgbV9mcmFt
ZS5sb2FkZXIoKS5jbGllbnQoKS5kaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlv
bihhY3Rpb24sIHJlcXVlc3QsIGZvcm1TdGF0ZSwgZnJhbWVOYW1lLCBbdGhpc10oUG9saWN5QWN0
aW9uIGFjdGlvbikgewogICAgICAgICBjb250aW51ZUFmdGVyTmV3V2luZG93UG9saWN5KGFjdGlv
bik7CiAgICAgfSk7CkBAIC0xNDEsNyArMTQxLDcgQEAgdm9pZCBQb2xpY3lDaGVja2VyOjpjaGVj
a05ld1dpbmRvd1BvbGljeShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIGNvbnN0IFIK
IAogdm9pZCBQb2xpY3lDaGVja2VyOjpjaGVja0NvbnRlbnRQb2xpY3koY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UsIENvbnRlbnRQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uIGZ1bmN0aW9u
KQogewotICAgIG1fY2FsbGJhY2suc2V0KHN0ZDo6bW92ZShmdW5jdGlvbikpOworICAgIG1fY2Fs
bGJhY2suc2V0KFdURjo6bW92ZShmdW5jdGlvbikpOwogICAgIG1fZnJhbWUubG9hZGVyKCkuY2xp
ZW50KCkuZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShyZXNwb25zZSwgbV9mcmFtZS5s
b2FkZXIoKS5hY3RpdmVEb2N1bWVudExvYWRlcigpLT5yZXF1ZXN0KCksIFt0aGlzXShQb2xpY3lB
Y3Rpb24gYWN0aW9uKSB7CiAgICAgICAgIGNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KGFjdGlv
bik7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9j
Zi9MZWdhY3lXZWJBcmNoaXZlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL2Nm
L0xlZ2FjeVdlYkFyY2hpdmUuY3BwCmluZGV4IDBlNTI1N2QuLmU4NDhlM2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3Bw
CkBAIC0yNDcsMTAgKzI0NywxMCBAQCBQYXNzUmVmUHRyPExlZ2FjeVdlYkFyY2hpdmU+IExlZ2Fj
eVdlYkFyY2hpdmU6OmNyZWF0ZShQYXNzUmVmUHRyPEFyY2hpdmVSZXNvdXJjZQogICAgIGFyY2hp
dmUtPnNldE1haW5SZXNvdXJjZShtYWluUmVzb3VyY2UpOwogICAgIAogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBzdWJyZXNvdXJjZXMuc2l6ZSgpOyArK2kpCi0gICAgICAgIGFyY2hpdmUt
PmFkZFN1YnJlc291cmNlKHN0ZDo6bW92ZShzdWJyZXNvdXJjZXNbaV0pKTsKKyAgICAgICAgYXJj
aGl2ZS0+YWRkU3VicmVzb3VyY2UoV1RGOjptb3ZlKHN1YnJlc291cmNlc1tpXSkpOwogICAgIAog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzdWJmcmFtZUFyY2hpdmVzLnNpemUoKTsgKytp
KQotICAgICAgICBhcmNoaXZlLT5hZGRTdWJmcmFtZUFyY2hpdmUoc3RkOjptb3ZlKHN1YmZyYW1l
QXJjaGl2ZXNbaV0pKTsKKyAgICAgICAgYXJjaGl2ZS0+YWRkU3ViZnJhbWVBcmNoaXZlKFdURjo6
bW92ZShzdWJmcmFtZUFyY2hpdmVzW2ldKSk7CiAgICAgICAgIAogICAgIHJldHVybiBhcmNoaXZl
LnJlbGVhc2UoKTsKIH0KQEAgLTQ0OSw3ICs0NDksNyBAQCBQYXNzUmVmUHRyPExlZ2FjeVdlYkFy
Y2hpdmU+IExlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0ZShOb2RlKiBub2RlLCBzdGQ6OmZ1bmN0aW9u
PAogICAgIGlmIChub2RlVHlwZSAhPSBOb2RlOjpET0NVTUVOVF9OT0RFICYmIG5vZGVUeXBlICE9
IE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERSkKICAgICAgICAgbWFya3VwU3RyaW5nID0gZG9jdW1l
bnRUeXBlU3RyaW5nKG5vZGUtPmRvY3VtZW50KCkpICsgbWFya3VwU3RyaW5nOwogCi0gICAgcmV0
dXJuIGNyZWF0ZShtYXJrdXBTdHJpbmcsIGZyYW1lLCBub2RlTGlzdCwgc3RkOjptb3ZlKGZyYW1l
RmlsdGVyKSk7CisgICAgcmV0dXJuIGNyZWF0ZShtYXJrdXBTdHJpbmcsIGZyYW1lLCBub2RlTGlz
dCwgV1RGOjptb3ZlKGZyYW1lRmlsdGVyKSk7CiB9CiAKIFBhc3NSZWZQdHI8TGVnYWN5V2ViQXJj
aGl2ZT4gTGVnYWN5V2ViQXJjaGl2ZTo6Y3JlYXRlKEZyYW1lKiBmcmFtZSkKQEAgLTQ2NSwxMSAr
NDY1LDExIEBAIFBhc3NSZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4gTGVnYWN5V2ViQXJjaGl2ZTo6
Y3JlYXRlKEZyYW1lKiBmcmFtZSkKICAgICAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
ZnJhbWUtPnRyZWUoKS5jaGlsZENvdW50KCk7ICsraSkgewogICAgICAgICBpZiAoUmVmUHRyPExl
Z2FjeVdlYkFyY2hpdmU+IGNoaWxkRnJhbWVBcmNoaXZlID0gY3JlYXRlKGZyYW1lLT50cmVlKCku
Y2hpbGQoaSkpKQotICAgICAgICAgICAgc3ViZnJhbWVBcmNoaXZlcy5hcHBlbmQoc3RkOjptb3Zl
KGNoaWxkRnJhbWVBcmNoaXZlKSk7CisgICAgICAgICAgICBzdWJmcmFtZUFyY2hpdmVzLmFwcGVu
ZChXVEY6Om1vdmUoY2hpbGRGcmFtZUFyY2hpdmUpKTsKICAgICB9CiAKICAgICBhdXRvIHN1YnJl
c291cmNlcyA9IGRvY3VtZW50TG9hZGVyLT5zdWJyZXNvdXJjZXMoKTsKLSAgICByZXR1cm4gY3Jl
YXRlKGRvY3VtZW50TG9hZGVyLT5tYWluUmVzb3VyY2UoKSwgc3RkOjptb3ZlKHN1YnJlc291cmNl
cyksIHN0ZDo6bW92ZShzdWJmcmFtZUFyY2hpdmVzKSk7CisgICAgcmV0dXJuIGNyZWF0ZShkb2N1
bWVudExvYWRlci0+bWFpblJlc291cmNlKCksIFdURjo6bW92ZShzdWJyZXNvdXJjZXMpLCBXVEY6
Om1vdmUoc3ViZnJhbWVBcmNoaXZlcykpOwogfQogCiBQYXNzUmVmUHRyPExlZ2FjeVdlYkFyY2hp
dmU+IExlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0ZShSYW5nZSogcmFuZ2UpCkBAIC01MjIsNyArNTIy
LDcgQEAgUGFzc1JlZlB0cjxMZWdhY3lXZWJBcmNoaXZlPiBMZWdhY3lXZWJBcmNoaXZlOjpjcmVh
dGUoY29uc3QgU3RyaW5nJiBtYXJrdXBTdHJpbmcKICAgICAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChSZWZQdHI8TGVnYWN5V2ViQXJjaGl2
ZT4gc3ViZnJhbWVBcmNoaXZlID0gY3JlYXRlKGNoaWxkRnJhbWUtPmRvY3VtZW50KCksIGZyYW1l
RmlsdGVyKSkKLSAgICAgICAgICAgICAgICBzdWJmcmFtZUFyY2hpdmVzLmFwcGVuZChzdGQ6Om1v
dmUoc3ViZnJhbWVBcmNoaXZlKSk7CisgICAgICAgICAgICAgICAgc3ViZnJhbWVBcmNoaXZlcy5h
cHBlbmQoV1RGOjptb3ZlKHN1YmZyYW1lQXJjaGl2ZSkpOwogICAgICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgICAgIExPR19FUlJPUigiVW5hYmxlZCB0byBhcmNoaXZlIHN1YmZyYW1lICVzIiwg
Y2hpbGRGcmFtZS0+dHJlZSgpLnVuaXF1ZU5hbWUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsK
IApAQCAtNTM5LDcgKzUzOSw3IEBAIFBhc3NSZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4gTGVnYWN5
V2ViQXJjaGl2ZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbWFya3VwU3RyaW5nCiAgICAgICAgICAg
ICAgICAgdW5pcXVlU3VicmVzb3VyY2VzLmFkZChzdWJyZXNvdXJjZVVSTCk7CiAKICAgICAgICAg
ICAgICAgICBpZiAoUmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4gcmVzb3VyY2UgPSBkb2N1bWVudExv
YWRlci0+c3VicmVzb3VyY2Uoc3VicmVzb3VyY2VVUkwpKSB7Ci0gICAgICAgICAgICAgICAgICAg
IHN1YnJlc291cmNlcy5hcHBlbmQoc3RkOjptb3ZlKHJlc291cmNlKSk7CisgICAgICAgICAgICAg
ICAgICAgIHN1YnJlc291cmNlcy5hcHBlbmQoV1RGOjptb3ZlKHJlc291cmNlKSk7CiAgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0KIApAQCAtNTUyLDcgKzU1
Miw3IEBAIFBhc3NSZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4gTGVnYWN5V2ViQXJjaGl2ZTo6Y3Jl
YXRlKGNvbnN0IFN0cmluZyYgbWFya3VwU3RyaW5nCiAgICAgICAgICAgICAgICAgICAgIFJlc291
cmNlQnVmZmVyKiBkYXRhID0gY2FjaGVkUmVzb3VyY2UtPnJlc291cmNlQnVmZmVyKCk7CiAKICAg
ICAgICAgICAgICAgICAgICAgaWYgKFJlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IHJlc291cmNlID0g
QXJjaGl2ZVJlc291cmNlOjpjcmVhdGUoZGF0YSA/IGRhdGEtPnNoYXJlZEJ1ZmZlcigpIDogMCwg
c3VicmVzb3VyY2VVUkwsIGNhY2hlZFJlc291cmNlLT5yZXNwb25zZSgpKSkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgc3VicmVzb3VyY2VzLmFwcGVuZChzdGQ6Om1vdmUocmVzb3VyY2UpKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHN1YnJlc291cmNlcy5hcHBlbmQoV1RGOjptb3ZlKHJl
c291cmNlKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KQEAgLTU3NCw3ICs1NzQsNyBAQCBQYXNzUmVm
UHRyPExlZ2FjeVdlYkFyY2hpdmU+IExlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0ZShjb25zdCBTdHJp
bmcmIG1hcmt1cFN0cmluZwogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIGNyZWF0ZSht
YWluUmVzb3VyY2UucmVsZWFzZSgpLCBzdWJyZXNvdXJjZXMsIHN0ZDo6bW92ZShzdWJmcmFtZUFy
Y2hpdmVzKSk7CisgICAgcmV0dXJuIGNyZWF0ZShtYWluUmVzb3VyY2UucmVsZWFzZSgpLCBzdWJy
ZXNvdXJjZXMsIFdURjo6bW92ZShzdWJmcmFtZUFyY2hpdmVzKSk7CiB9CiAKIFBhc3NSZWZQdHI8
TGVnYWN5V2ViQXJjaGl2ZT4gTGVnYWN5V2ViQXJjaGl2ZTo6Y3JlYXRlRnJvbVNlbGVjdGlvbihG
cmFtZSogZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkQ1NTU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
Q1NTU3R5bGVTaGVldC5jcHAKaW5kZXggZjk2NGNlMS4uODFkOTgyMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcApAQCAtMTgx
LDcgKzE4MSw3IEBAIHZvaWQgQ2FjaGVkQ1NTU3R5bGVTaGVldDo6c2F2ZVBhcnNlZFN0eWxlU2hl
ZXQoUGFzc1JlZjxTdHlsZVNoZWV0Q29udGVudHM+IHNoZWV0CiAKICAgICBpZiAobV9wYXJzZWRT
dHlsZVNoZWV0Q2FjaGUpCiAgICAgICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLT5yZW1vdmVk
RnJvbU1lbW9yeUNhY2hlKCk7Ci0gICAgbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUgPSBzdGQ6Om1v
dmUoc2hlZXQpOworICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlID0gV1RGOjptb3ZlKHNoZWV0
KTsKICAgICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+YWRkZWRUb01lbW9yeUNhY2hlKCk7CiAK
ICAgICBzZXREZWNvZGVkU2l6ZShtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+ZXN0aW1hdGVkU2l6
ZUluQnl0ZXMoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29u
RGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNw
cAppbmRleCA5YTJiNjJmLi45OTRiODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29u
L0ljb25EYXRhYmFzZS5jcHAKQEAgLTEzMzUsNyArMTMzNSw3IEBAIHZvaWQgSWNvbkRhdGFiYXNl
OjpzeW5jVGhyZWFkTWFpbkxvb3AoKQogCiAgICAgbV9zeW5jTG9jay5sb2NrKCk7CiAKLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8U3VkZGVuVGVybWluYXRpb25EaXNhYmxlcj4gZGlzYWJsZVN1ZGRlblRl
cm1pbmF0aW9uID0gc3RkOjptb3ZlKG1fZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uV2hpbGVTeW5j
VGhyZWFkSGFzV29ya1RvRG8pOworICAgIHN0ZDo6dW5pcXVlX3B0cjxTdWRkZW5UZXJtaW5hdGlv
bkRpc2FibGVyPiBkaXNhYmxlU3VkZGVuVGVybWluYXRpb24gPSBXVEY6Om1vdmUobV9kaXNhYmxl
U3VkZGVuVGVybWluYXRpb25XaGlsZVN5bmNUaHJlYWRIYXNXb3JrVG9Ebyk7CiAKICAgICAvLyBX
ZSdsbCBlaXRoZXIgZG8gYW55IHBlbmRpbmcgd29yayBvbiBvdXIgZmlyc3QgcGFzcyB0aHJvdWdo
IHRoZSBsb29wLCBvciB3ZSdsbCB0ZXJtaW5hdGUKICAgICAvLyB3aXRob3V0IGRvaW5nIGFueSB3
b3JrLiBFaXRoZXIgd2F5IHdlJ3JlIGRlYWxpbmcgd2l0aCBhbnkgY3VycmVudGx5LXBlbmRpbmcg
d29yay4KQEAgLTE0MjMsNyArMTQyMyw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpzeW5jVGhyZWFk
TWFpbkxvb3AoKQogICAgICAgICBtX3N5bmNUaHJlYWRIYXNXb3JrVG9EbyA9IGZhbHNlOwogCiAg
ICAgICAgIEFTU0VSVChtX2Rpc2FibGVTdWRkZW5UZXJtaW5hdGlvbldoaWxlU3luY1RocmVhZEhh
c1dvcmtUb0RvKTsKLSAgICAgICAgZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uID0gc3RkOjptb3Zl
KG1fZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uV2hpbGVTeW5jVGhyZWFkSGFzV29ya1RvRG8pOwor
ICAgICAgICBkaXNhYmxlU3VkZGVuVGVybWluYXRpb24gPSBXVEY6Om1vdmUobV9kaXNhYmxlU3Vk
ZGVuVGVybWluYXRpb25XaGlsZVN5bmNUaHJlYWRIYXNXb3JrVG9Ebyk7CiAgICAgfQogCiAgICAg
bV9zeW5jTG9jay51bmxvY2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9N
YXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9N
YXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmNwcAppbmRleCBhNDE0NGVjLi5lNTgzMDM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTElubGluZUNvbnRhaW5l
ckVsZW1lbnQuY3BwCkBAIC03MiwzNSArNzIsMzUgQEAgdm9pZCBNYXRoTUxJbmxpbmVDb250YWlu
ZXJFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7CiAgICAgaWYg
KGhhc1RhZ05hbWUoYW5ub3RhdGlvbl94bWxUYWcpKQotICAgICAgICByZXR1cm4gY3JlYXRlUmVu
ZGVyZXI8UmVuZGVyTWF0aE1MUm93PigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAg
IHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxSb3c+KCp0aGlzLCBXVEY6Om1vdmUo
c3R5bGUpKTsKICAgICBpZiAoaGFzVGFnTmFtZShtZXJyb3JUYWcpIHx8IGhhc1RhZ05hbWUobXBo
YW50b21UYWcpIHx8IGhhc1RhZ05hbWUobXJvd1RhZykgfHwgaGFzVGFnTmFtZShtc3R5bGVUYWcp
KQotICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MUm93PigqdGhpcywg
c3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJN
YXRoTUxSb3c+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKICAgICBpZiAoaGFzVGFnTmFtZSht
c3ViVGFnKSkKLSAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTFNjcmlw
dHM+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRl
cmVyPFJlbmRlck1hdGhNTFNjcmlwdHM+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKICAgICBp
ZiAoaGFzVGFnTmFtZShtc3VwVGFnKSkKLSAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJl
bmRlck1hdGhNTFNjcmlwdHM+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0
dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTFNjcmlwdHM+KCp0aGlzLCBXVEY6Om1vdmUo
c3R5bGUpKTsKICAgICBpZiAoaGFzVGFnTmFtZShtc3Vic3VwVGFnKSkKLSAgICAgICAgcmV0dXJu
IGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTFNjcmlwdHM+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5
bGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTFNjcmlwdHM+
KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKICAgICBpZiAoaGFzVGFnTmFtZShtbXVsdGlzY3Jp
cHRzVGFnKSkKLSAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTFNjcmlw
dHM+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRl
cmVyPFJlbmRlck1hdGhNTFNjcmlwdHM+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKICAgICBp
ZiAoaGFzVGFnTmFtZShtb3ZlclRhZykpCi0gICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxS
ZW5kZXJNYXRoTUxVbmRlck92ZXI+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAg
cmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTFVuZGVyT3Zlcj4oKnRoaXMsIFdURjo6
bW92ZShzdHlsZSkpOwogICAgIGlmIChoYXNUYWdOYW1lKG11bmRlclRhZykpCi0gICAgICAgIHJl
dHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxVbmRlck92ZXI+KCp0aGlzLCBzdGQ6Om1v
dmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTFVu
ZGVyT3Zlcj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogICAgIGlmIChoYXNUYWdOYW1lKG11
bmRlcm92ZXJUYWcpKQotICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1M
VW5kZXJPdmVyPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBjcmVh
dGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxVbmRlck92ZXI+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUp
KTsKICAgICBpZiAoaGFzVGFnTmFtZShtZnJhY1RhZykpCi0gICAgICAgIHJldHVybiBjcmVhdGVS
ZW5kZXJlcjxSZW5kZXJNYXRoTUxGcmFjdGlvbj4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOwor
ICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MRnJhY3Rpb24+KCp0aGlz
LCBXVEY6Om1vdmUoc3R5bGUpKTsKICAgICBpZiAoaGFzVGFnTmFtZShtc3FydFRhZykpCi0gICAg
ICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxTcXVhcmVSb290PigqdGhpcywg
c3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJN
YXRoTUxTcXVhcmVSb290PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiAgICAgaWYgKGhhc1Rh
Z05hbWUobXJvb3RUYWcpKQotICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0
aE1MUm9vdD4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4gY3JlYXRl
UmVuZGVyZXI8UmVuZGVyTWF0aE1MUm9vdD4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogICAg
IGlmIChoYXNUYWdOYW1lKG1mZW5jZWRUYWcpKQotICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVy
ZXI8UmVuZGVyTWF0aE1MRmVuY2VkPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAg
IHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxGZW5jZWQ+KCp0aGlzLCBXVEY6Om1v
dmUoc3R5bGUpKTsKICAgICBpZiAoaGFzVGFnTmFtZShtdGFibGVUYWcpKQotICAgICAgICByZXR1
cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MVGFibGU+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5
bGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTFRhYmxlPigq
dGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiAKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVu
ZGVyTWF0aE1MQmxvY2s+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3Jl
YXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MQmxvY2s+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsK
IH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5jcHAKaW5k
ZXggNmYyZjM4OS4uODJiM2NmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTE1hdGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0
aEVsZW1lbnQuY3BwCkBAIC01Myw3ICs1Myw3IEBAIE5vZGU6Okluc2VydGlvbk5vdGlmaWNhdGlv
blJlcXVlc3QgTWF0aE1MTWF0aEVsZW1lbnQ6Omluc2VydGVkSW50byhDb250YWluZXJOb2RlCiAK
IFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxNYXRoRWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBjcmVh
dGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxNYXRoPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7Cisg
ICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTE1hdGg+KCp0aGlzLCBXVEY6Om1v
dmUoc3R5bGUpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTE1lbmNsb3NlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVu
Y2xvc2VFbGVtZW50LmNwcAppbmRleCA0MDEzZDg4Li5kMmY5ZTRhIDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmNwcApAQCAtNTIsNyArNTIsNyBA
QCBQYXNzUmVmUHRyPE1hdGhNTE1lbmNsb3NlRWxlbWVudD4gTWF0aE1MTWVuY2xvc2VFbGVtZW50
OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTgogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWF0
aE1MTWVuY2xvc2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJT
dHlsZT4gc3R5bGUpCiB7ICAgIAotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRo
TUxNZW5jbG9zZT4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVS
ZW5kZXJlcjxSZW5kZXJNYXRoTUxNZW5jbG9zZT4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwog
fQogCiBib29sIE1hdGhNTE1lbmNsb3NlRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGht
bC9NYXRoTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCAzMjZlYTEyLi5iMzM0ZjhiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuY3BwCkBAIC01Myw3ICs1
Myw3IEBAIFBhc3NSZWZQdHI8TWF0aE1MU2VsZWN0RWxlbWVudD4gTWF0aE1MU2VsZWN0RWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmCiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBNYXRoTUxTZWxlY3RFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5k
ZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhN
TFJvdz4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJl
cjxSZW5kZXJNYXRoTUxSb3c+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogLy8gIFdl
IHJlY29nbml6ZSB0aGUgZm9sbG93aW5nIHZhbHVlcyBmb3IgdGhlIGVuY29kaW5nIGF0dHJpYnV0
ZSBvZiB0aGUgPHNlbWFudGljcz4gZWxlbWVudDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0
aE1MVGV4dEVsZW1lbnQuY3BwCmluZGV4IDEwZTMwODcuLjIyMzgzYzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcApAQCAtNjcsMTUgKzY3LDE1IEBAIHZv
aWQgTWF0aE1MVGV4dEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYg
Y2hhbmdlKQogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1hdGhNTFRleHRFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7CiAgICAgaWYg
KGhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6Om1vVGFnKSkKLSAgICAgICAgcmV0dXJuIGNyZWF0ZVJl
bmRlcmVyPFJlbmRlck1hdGhNTE9wZXJhdG9yPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7Cisg
ICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxPcGVyYXRvcj4oKnRoaXMs
IFdURjo6bW92ZShzdHlsZSkpOwogICAgIGlmIChoYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptc3Bh
Y2VUYWcpKQotICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MU3BhY2U+
KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVy
PFJlbmRlck1hdGhNTFNwYWNlPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiAgICAgaWYgKGhh
c1RhZ05hbWUoTWF0aE1MTmFtZXM6OmFubm90YXRpb25UYWcpKQotICAgICAgICByZXR1cm4gTWF0
aE1MRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKHN0ZDo6bW92ZShzdHlsZSkpOworICAg
ICAgICByZXR1cm4gTWF0aE1MRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFdURjo6bW92
ZShzdHlsZSkpOwogCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6Om1pVGFnKSB8
fCBoYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptblRhZykgfHwgaGFzVGFnTmFtZShNYXRoTUxOYW1l
czo6bXNUYWcpIHx8IGhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6Om10ZXh0VGFnKSk7CiAKLSAgICBy
ZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MVG9rZW4+KCp0aGlzLCBzdGQ6Om1vdmUo
c3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MVG9rZW4+KCp0
aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogYm9vbCBNYXRoTUxUZXh0RWxlbWVudDo6Y2hp
bGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJiBjaGlsZCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01UaW1lci5jcHAKaW5kZXggNzNmNzIwNy4uMDcxMjU1NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01U
aW1lci5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNob3VsZEZvcndh
cmRVc2VyR2VzdHVyZShpbnQgaW50ZXJ2YWwsIGludCBuZXN0aW5nTGV2ZWwpCiBET01UaW1lcjo6
RE9NVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgc3RkOjp1bmlxdWVfcHRy
PFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uLCBpbnQgaW50ZXJ2YWwsIGJvb2wgc2luZ2xlU2hvdCkK
ICAgICA6IFN1c3BlbmRhYmxlVGltZXIoY29udGV4dCkKICAgICAsIG1fbmVzdGluZ0xldmVsKHRp
bWVyTmVzdGluZ0xldmVsICsgMSkKLSAgICAsIG1fYWN0aW9uKHN0ZDo6bW92ZShhY3Rpb24pKQor
ICAgICwgbV9hY3Rpb24oV1RGOjptb3ZlKGFjdGlvbikpCiAgICAgLCBtX29yaWdpbmFsSW50ZXJ2
YWwoaW50ZXJ2YWwpCiAgICAgLCBtX3Nob3VsZEZvcndhcmRVc2VyR2VzdHVyZShzaG91bGRGb3J3
YXJkVXNlckdlc3R1cmUoaW50ZXJ2YWwsIG1fbmVzdGluZ0xldmVsKSkKIHsKQEAgLTg4LDcgKzg4
LDcgQEAgaW50IERPTVRpbWVyOjppbnN0YWxsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWQKICAgICAvLyBET01UaW1lciBjb25zdHJ1Y3Rv
ciBsaW5rcyB0aGUgbmV3IHRpbWVyIGludG8gYSBsaXN0IG9mIEFjdGl2ZURPTU9iamVjdHMgaGVs
ZCBieSB0aGUgJ2NvbnRleHQnLgogICAgIC8vIFRoZSB0aW1lciBpcyBkZWxldGVkIHdoZW4gY29u
dGV4dCBpcyBkZWxldGVkIChET01UaW1lcjo6Y29udGV4dERlc3Ryb3llZCkgb3IgZXhwbGljaXRs
eSB2aWEgRE9NVGltZXI6OnJlbW92ZUJ5SWQoKSwKICAgICAvLyBvciBpZiBpdCBpcyBhIG9uZS10
aW1lIHRpbWVyIGFuZCBpdCBoYXMgZmlyZWQgKERPTVRpbWVyOjpmaXJlZCkuCi0gICAgRE9NVGlt
ZXIqIHRpbWVyID0gbmV3IERPTVRpbWVyKGNvbnRleHQsIHN0ZDo6bW92ZShhY3Rpb24pLCB0aW1l
b3V0LCBzaW5nbGVTaG90KTsKKyAgICBET01UaW1lciogdGltZXIgPSBuZXcgRE9NVGltZXIoY29u
dGV4dCwgV1RGOjptb3ZlKGFjdGlvbiksIHRpbWVvdXQsIHNpbmdsZVNob3QpOwogI2lmIFBMQVRG
T1JNKElPUykKICAgICBpZiAoY29udGV4dC0+aXNEb2N1bWVudCgpKSB7CiAgICAgICAgIERvY3Vt
ZW50JiBkb2N1bWVudCA9IHRvRG9jdW1lbnQoKmNvbnRleHQpOwpAQCAtMTU3LDcgKzE1Nyw3IEBA
IHZvaWQgRE9NVGltZXI6OmZpcmVkKCkKICAgICB9CiAKICAgICAvLyBEZWxldGUgdGltZXIgYmVm
b3JlIGV4ZWN1dGluZyB0aGUgYWN0aW9uIGZvciBvbmUtc2hvdCB0aW1lcnMuCi0gICAgc3RkOjp1
bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uID0gc3RkOjptb3ZlKG1fYWN0aW9uKTsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24gPSBXVEY6Om1vdmUo
bV9hY3Rpb24pOwogCiAgICAgLy8gTm8gYWNjZXNzIHRvIG1lbWJlciB2YXJpYWJsZXMgYWZ0ZXIg
dGhpcyBwb2ludC4KICAgICBkZWxldGUgdGhpczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApp
bmRleCAwZTRlMGU1Li44M2FmZjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0x
NDIsNyArMTQyLDcgQEAgcHVibGljOgogICAgICAgICAsIG1fbWVzc2FnZShtZXNzYWdlKQogICAg
ICAgICAsIG1fb3JpZ2luKHNvdXJjZU9yaWdpbikKICAgICAgICAgLCBtX3NvdXJjZShzb3VyY2Up
Ci0gICAgICAgICwgbV9jaGFubmVscyhzdGQ6Om1vdmUoY2hhbm5lbHMpKQorICAgICAgICAsIG1f
Y2hhbm5lbHMoV1RGOjptb3ZlKGNoYW5uZWxzKSkKICAgICAgICAgLCBtX3RhcmdldE9yaWdpbih0
YXJnZXRPcmlnaW4pCiAgICAgICAgICwgbV9zdGFja1RyYWNlKHN0YWNrVHJhY2UpCiAgICAgewpA
QCAtMTUwLDggKzE1MCw4IEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQdHI8TWVzc2FnZUV2ZW50
PiBldmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogICAgIHsKLSAgICAgICAg
c3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0QXJyYXk+IG1lc3NhZ2VQb3J0cyA9IE1lc3NhZ2VQ
b3J0OjplbnRhbmdsZVBvcnRzKCpjb250ZXh0LCBzdGQ6Om1vdmUobV9jaGFubmVscykpOwotICAg
ICAgICByZXR1cm4gTWVzc2FnZUV2ZW50OjpjcmVhdGUoc3RkOjptb3ZlKG1lc3NhZ2VQb3J0cyks
IG1fbWVzc2FnZSwgbV9vcmlnaW4sIFN0cmluZygpLCBtX3NvdXJjZSk7CisgICAgICAgIHN0ZDo6
dW5pcXVlX3B0cjxNZXNzYWdlUG9ydEFycmF5PiBtZXNzYWdlUG9ydHMgPSBNZXNzYWdlUG9ydDo6
ZW50YW5nbGVQb3J0cygqY29udGV4dCwgV1RGOjptb3ZlKG1fY2hhbm5lbHMpKTsKKyAgICAgICAg
cmV0dXJuIE1lc3NhZ2VFdmVudDo6Y3JlYXRlKFdURjo6bW92ZShtZXNzYWdlUG9ydHMpLCBtX21l
c3NhZ2UsIG1fb3JpZ2luLCBTdHJpbmcoKSwgbV9zb3VyY2UpOwogICAgIH0KICAgICBTZWN1cml0
eU9yaWdpbiogdGFyZ2V0T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV90YXJnZXRPcmlnaW4uZ2V0
KCk7IH0KICAgICBTY3JpcHRDYWxsU3RhY2sqIHN0YWNrVHJhY2UoKSBjb25zdCB7IHJldHVybiBt
X3N0YWNrVHJhY2UuZ2V0KCk7IH0KQEAgLTg4Miw3ICs4ODIsNyBAQCB2b2lkIERPTVdpbmRvdzo6
cG9zdE1lc3NhZ2UoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIGNv
bnN0IE1lcwogICAgICAgICBzdGFja1RyYWNlID0gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKEpTTWFp
blRocmVhZEV4ZWNTdGF0ZTo6Y3VycmVudFN0YXRlKCksIFNjcmlwdENhbGxTdGFjazo6bWF4Q2Fs
bFN0YWNrU2l6ZVRvQ2FwdHVyZSk7CiAKICAgICAvLyBTY2hlZHVsZSB0aGUgbWVzc2FnZS4KLSAg
ICBQb3N0TWVzc2FnZVRpbWVyKiB0aW1lciA9IG5ldyBQb3N0TWVzc2FnZVRpbWVyKHRoaXMsIG1l
c3NhZ2UsIHNvdXJjZU9yaWdpbiwgJnNvdXJjZSwgc3RkOjptb3ZlKGNoYW5uZWxzKSwgdGFyZ2V0
LmdldCgpLCBzdGFja1RyYWNlLnJlbGVhc2UoKSk7CisgICAgUG9zdE1lc3NhZ2VUaW1lciogdGlt
ZXIgPSBuZXcgUG9zdE1lc3NhZ2VUaW1lcih0aGlzLCBtZXNzYWdlLCBzb3VyY2VPcmlnaW4sICZz
b3VyY2UsIFdURjo6bW92ZShjaGFubmVscyksIHRhcmdldC5nZXQoKSwgc3RhY2tUcmFjZS5yZWxl
YXNlKCkpOwogICAgIHRpbWVyLT5zdGFydE9uZVNob3QoMCk7CiB9CiAKQEAgLTE1NzMsNyArMTU3
Myw3IEBAIGludCBET01XaW5kb3c6OnNldFRpbWVvdXQoc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxl
ZEFjdGlvbj4gYWN0aW9uLCBpbnQgdGltZW91dCwKICAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VT
U19FUlI7CiAgICAgICAgIHJldHVybiAtMTsKICAgICB9Ci0gICAgcmV0dXJuIERPTVRpbWVyOjpp
bnN0YWxsKGNvbnRleHQsIHN0ZDo6bW92ZShhY3Rpb24pLCB0aW1lb3V0LCB0cnVlKTsKKyAgICBy
ZXR1cm4gRE9NVGltZXI6Omluc3RhbGwoY29udGV4dCwgV1RGOjptb3ZlKGFjdGlvbiksIHRpbWVv
dXQsIHRydWUpOwogfQogCiB2b2lkIERPTVdpbmRvdzo6Y2xlYXJUaW1lb3V0KGludCB0aW1lb3V0
SWQpCkBAIC0xNjA3LDcgKzE2MDcsNyBAQCBpbnQgRE9NV2luZG93OjpzZXRJbnRlcnZhbChzdGQ6
OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sIGludCB0aW1lb3V0LAogICAgICAg
ICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KLSAg
ICByZXR1cm4gRE9NVGltZXI6Omluc3RhbGwoY29udGV4dCwgc3RkOjptb3ZlKGFjdGlvbiksIHRp
bWVvdXQsIGZhbHNlKTsKKyAgICByZXR1cm4gRE9NVGltZXI6Omluc3RhbGwoY29udGV4dCwgV1RG
Ojptb3ZlKGFjdGlvbiksIHRpbWVvdXQsIGZhbHNlKTsKIH0KIAogdm9pZCBET01XaW5kb3c6OmNs
ZWFySW50ZXJ2YWwoaW50IHRpbWVvdXRJZCkKQEAgLTIxNTgsNyArMjE1OCw3IEBAIHZvaWQgRE9N
V2luZG93OjpzaG93TW9kYWxEaWFsb2coY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0
cmluZyYgZGlhbG9nRmVhCiAgICAgICAgIHJldHVybjsKIAogICAgIFdpbmRvd0ZlYXR1cmVzIHdp
bmRvd0ZlYXR1cmVzKGRpYWxvZ0ZlYXR1cmVzU3RyaW5nLCBzY3JlZW5BdmFpbGFibGVSZWN0KG1f
ZnJhbWUtPnZpZXcoKSkpOwotICAgIFJlZlB0cjxGcmFtZT4gZGlhbG9nRnJhbWUgPSBjcmVhdGVX
aW5kb3codXJsU3RyaW5nLCBlbXB0eUF0b20sIHdpbmRvd0ZlYXR1cmVzLCBhY3RpdmVXaW5kb3cs
IGZpcnN0RnJhbWUsIG1fZnJhbWUsIHN0ZDo6bW92ZShwcmVwYXJlRGlhbG9nRnVuY3Rpb24pKTsK
KyAgICBSZWZQdHI8RnJhbWU+IGRpYWxvZ0ZyYW1lID0gY3JlYXRlV2luZG93KHVybFN0cmluZywg
ZW1wdHlBdG9tLCB3aW5kb3dGZWF0dXJlcywgYWN0aXZlV2luZG93LCBmaXJzdEZyYW1lLCBtX2Zy
YW1lLCBXVEY6Om1vdmUocHJlcGFyZURpYWxvZ0Z1bmN0aW9uKSk7CiAgICAgaWYgKCFkaWFsb2dG
cmFtZSkKICAgICAgICAgcmV0dXJuOwogICAgIGRpYWxvZ0ZyYW1lLT5wYWdlKCktPmNocm9tZSgp
LnJ1bk1vZGFsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBjYjcyZTZjLi4zOGJiNDUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAKQEAgLTE5Nyw4ICsxOTcsOCBAQCBQYWdlOjpQYWdlKFBhZ2VDbGllbnRz
JiBwYWdlQ2xpZW50cykKICNlbmRpZgogICAgICwgbV9sYXN0U3BhdGlhbE5hdmlnYXRpb25DYW5k
aWRhdGVzQ291bnQoMCkgLy8gTk9URTogT25seSBjYWxsZWQgZnJvbSBJbnRlcm5hbHMgZm9yIFNw
YXRpYWwgTmF2aWdhdGlvbiB0ZXN0aW5nLgogICAgICwgbV9mcmFtZXNIYW5kbGluZ0JlZm9yZVVu
bG9hZEV2ZW50KDApCi0gICAgLCBtX3VzZXJDb250ZW50Q29udHJvbGxlcihzdGQ6Om1vdmUocGFn
ZUNsaWVudHMudXNlckNvbnRlbnRDb250cm9sbGVyKSkKLSAgICAsIG1fdmlzaXRlZExpbmtTdG9y
ZShzdGQ6Om1vdmUocGFnZUNsaWVudHMudmlzaXRlZExpbmtTdG9yZSkpCisgICAgLCBtX3VzZXJD
b250ZW50Q29udHJvbGxlcihXVEY6Om1vdmUocGFnZUNsaWVudHMudXNlckNvbnRlbnRDb250cm9s
bGVyKSkKKyAgICAsIG1fdmlzaXRlZExpbmtTdG9yZShXVEY6Om1vdmUocGFnZUNsaWVudHMudmlz
aXRlZExpbmtTdG9yZSkpCiAgICAgLCBtX3Nlc3Npb25JRChTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKSkKIHsKICAgICBBU1NFUlQobV9lZGl0b3JDbGllbnQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
R3JvdXAuY3BwCmluZGV4IDM3YTZjOTguLjBlNzFlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91
cC5jcHAKQEAgLTI4OSwxMyArMjg5LDEzIEBAIFN0b3JhZ2VOYW1lc3BhY2UqIFBhZ2VHcm91cDo6
dHJhbnNpZW50TG9jYWxTdG9yYWdlKFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pCiB2b2lkIFBh
Z2VHcm91cDo6YWRkVXNlclNjcmlwdFRvV29ybGQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgY29u
c3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
d2hpdGVsaXN0LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxhY2tsaXN0LCBVc2VyU2NyaXB0SW5q
ZWN0aW9uVGltZSBpbmplY3Rpb25UaW1lLCBVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIGluamVj
dGVkRnJhbWVzKQogewogICAgIGF1dG8gdXNlclNjcmlwdCA9IHN0ZDo6bWFrZV91bmlxdWU8VXNl
clNjcmlwdD4oc291cmNlLCB1cmwsIHdoaXRlbGlzdCwgYmxhY2tsaXN0LCBpbmplY3Rpb25UaW1l
LCBpbmplY3RlZEZyYW1lcyk7Ci0gICAgbV91c2VyQ29udGVudENvbnRyb2xsZXItPmFkZFVzZXJT
Y3JpcHQod29ybGQsIHN0ZDo6bW92ZSh1c2VyU2NyaXB0KSk7CisgICAgbV91c2VyQ29udGVudENv
bnRyb2xsZXItPmFkZFVzZXJTY3JpcHQod29ybGQsIFdURjo6bW92ZSh1c2VyU2NyaXB0KSk7CiB9
CiAKIHZvaWQgUGFnZUdyb3VwOjphZGRVc2VyU3R5bGVTaGVldFRvV29ybGQoRE9NV3JhcHBlcldv
cmxkJiB3b3JsZCwgY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgd2hpdGVsaXN0LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxhY2tsaXN0
LCBVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIGluamVjdGVkRnJhbWVzLCBVc2VyU3R5bGVMZXZl
bCBsZXZlbCwgVXNlclN0eWxlSW5qZWN0aW9uVGltZSBpbmplY3Rpb25UaW1lKQogewogICAgIGF1
dG8gdXNlclN0eWxlU2hlZXQgPSBzdGQ6Om1ha2VfdW5pcXVlPFVzZXJTdHlsZVNoZWV0Pihzb3Vy
Y2UsIHVybCwgd2hpdGVsaXN0LCBibGFja2xpc3QsIGluamVjdGVkRnJhbWVzLCBsZXZlbCk7Ci0g
ICAgbV91c2VyQ29udGVudENvbnRyb2xsZXItPmFkZFVzZXJTdHlsZVNoZWV0KHdvcmxkLCBzdGQ6
Om1vdmUodXNlclN0eWxlU2hlZXQpLCBpbmplY3Rpb25UaW1lKTsKKyAgICBtX3VzZXJDb250ZW50
Q29udHJvbGxlci0+YWRkVXNlclN0eWxlU2hlZXQod29ybGQsIFdURjo6bW92ZSh1c2VyU3R5bGVT
aGVldCksIGluamVjdGlvblRpbWUpOwogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvVXNlckNvbnRlbnRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVXNl
ckNvbnRlbnRDb250cm9sbGVyLmNwcAppbmRleCA0M2ZkOTRmLi5mNmE5ZDVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50Q29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Vc2VyQ29udGVudENvbnRyb2xsZXIuY3BwCkBAIC03Miw3ICs3Miw3
IEBAIHZvaWQgVXNlckNvbnRlbnRDb250cm9sbGVyOjphZGRVc2VyU2NyaXB0KERPTVdyYXBwZXJX
b3JsZCYgd29ybGQsIHN0ZDo6dW5pcXVlX3B0CiAgICAgYXV0byYgc2NyaXB0c0luV29ybGQgPSBt
X3VzZXJTY3JpcHRzLT5hZGQoJndvcmxkLCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CiAgICAg
aWYgKCFzY3JpcHRzSW5Xb3JsZCkKICAgICAgICAgc2NyaXB0c0luV29ybGQgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFVzZXJTY3JpcHRWZWN0b3I+KCk7Ci0gICAgc2NyaXB0c0luV29ybGQtPmFwcGVuZChz
dGQ6Om1vdmUodXNlclNjcmlwdCkpOworICAgIHNjcmlwdHNJbldvcmxkLT5hcHBlbmQoV1RGOjpt
b3ZlKHVzZXJTY3JpcHQpKTsKIH0KIAogdm9pZCBVc2VyQ29udGVudENvbnRyb2xsZXI6OnJlbW92
ZVVzZXJTY3JpcHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgY29uc3QgVVJMJiB1cmwpCkBAIC0x
MTAsNyArMTEwLDcgQEAgdm9pZCBVc2VyQ29udGVudENvbnRyb2xsZXI6OmFkZFVzZXJTdHlsZVNo
ZWV0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIHN0ZDo6dW5pcXUKICAgICBhdXRvJiBzdHlsZVNo
ZWV0c0luV29ybGQgPSBtX3VzZXJTdHlsZVNoZWV0cy0+YWRkKCZ3b3JsZCwgbnVsbHB0cikuaXRl
cmF0b3ItPnZhbHVlOwogICAgIGlmICghc3R5bGVTaGVldHNJbldvcmxkKQogICAgICAgICBzdHls
ZVNoZWV0c0luV29ybGQgPSBzdGQ6Om1ha2VfdW5pcXVlPFVzZXJTdHlsZVNoZWV0VmVjdG9yPigp
OwotICAgIHN0eWxlU2hlZXRzSW5Xb3JsZC0+YXBwZW5kKHN0ZDo6bW92ZSh1c2VyU3R5bGVTaGVl
dCkpOworICAgIHN0eWxlU2hlZXRzSW5Xb3JsZC0+YXBwZW5kKFdURjo6bW92ZSh1c2VyU3R5bGVT
aGVldCkpOwogCiAgICAgaWYgKGluamVjdGlvblRpbWUgPT0gSW5qZWN0SW5FeGlzdGluZ0RvY3Vt
ZW50cykKICAgICAgICAgaW52YWxpZGF0ZUluamVjdGVkU3R5bGVTaGVldENhY2hlSW5BbGxGcmFt
ZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlv
bkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9u
Q29udHJvbGxlci5jcHAKaW5kZXggNzQ2ZDVlNS4uOWQyYjU0NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKQEAgLTE2
Nyw3ICsxNjcsNyBAQCB2b2lkIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjpmaXJlRXZlbnRz
QW5kVXBkYXRlU3R5bGUoKQogICAgIGJvb2wgdXBkYXRlU3R5bGUgPSAhbV9ldmVudHNUb0Rpc3Bh
dGNoLmlzRW1wdHkoKSB8fCAhbV9lbGVtZW50Q2hhbmdlc1RvRGlzcGF0Y2guaXNFbXB0eSgpOwog
CiAgICAgLy8gZmlyZSBhbGwgdGhlIGV2ZW50cwotICAgIFZlY3RvcjxFdmVudFRvRGlzcGF0Y2g+
IGV2ZW50c1RvRGlzcGF0Y2ggPSBzdGQ6Om1vdmUobV9ldmVudHNUb0Rpc3BhdGNoKTsKKyAgICBW
ZWN0b3I8RXZlbnRUb0Rpc3BhdGNoPiBldmVudHNUb0Rpc3BhdGNoID0gV1RGOjptb3ZlKG1fZXZl
bnRzVG9EaXNwYXRjaCk7CiAgICAgVmVjdG9yPEV2ZW50VG9EaXNwYXRjaD46OmNvbnN0X2l0ZXJh
dG9yIGV2ZW50c1RvRGlzcGF0Y2hFbmQgPSBldmVudHNUb0Rpc3BhdGNoLmVuZCgpOwogICAgIGZv
ciAoVmVjdG9yPEV2ZW50VG9EaXNwYXRjaD46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gZXZlbnRzVG9E
aXNwYXRjaC5iZWdpbigpOyBpdCAhPSBldmVudHNUb0Rpc3BhdGNoRW5kOyArK2l0KSB7CiAgICAg
ICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBpdC0+ZWxlbWVudC5nZXQoKTsKQEAgLTIwNiw3ICsyMDYs
NyBAQCB2b2lkIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRFdmVudFRvRGlzcGF0Y2go
UGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50LAogCiB2b2lkIEFuaW1hdGlvbkNvbnRyb2xsZXJQ
cml2YXRlOjphZGRFbGVtZW50Q2hhbmdlVG9EaXNwYXRjaChQYXNzUmVmPEVsZW1lbnQ+IGVsZW1l
bnQpCiB7Ci0gICAgbV9lbGVtZW50Q2hhbmdlc1RvRGlzcGF0Y2guYXBwZW5kKHN0ZDo6bW92ZShl
bGVtZW50KSk7CisgICAgbV9lbGVtZW50Q2hhbmdlc1RvRGlzcGF0Y2guYXBwZW5kKFdURjo6bW92
ZShlbGVtZW50KSk7CiAgICAgQVNTRVJUKCFtX2VsZW1lbnRDaGFuZ2VzVG9EaXNwYXRjaC5sYXN0
KCktPmRvY3VtZW50KCkuaW5QYWdlQ2FjaGUoKSk7CiAgICAgc3RhcnRVcGRhdGVTdHlsZUlmTmVl
ZGVkRGlzcGF0Y2hlcigpOwogfQpAQCAtNTA4LDcgKzUwOCw3IEBAIFBhc3NSZWY8UmVuZGVyU3R5
bGU+IEFuaW1hdGlvbkNvbnRyb2xsZXI6OnVwZGF0ZUFuaW1hdGlvbnMoUmVuZGVyRWxlbWVudCYg
cmVuZGVyCiAgICAgLy8gV2UgZG9uJ3Qgc3VwcG9ydCBhbm9ueW1vdXMgcHNldWRvIGVsZW1lbnRz
IGxpa2UgOmZpcnN0LWxpbmUgb3IgOmZpcnN0LWxldHRlci4KICAgICBBU1NFUlQocmVuZGVyZXIu
ZWxlbWVudCgpKTsKIAotICAgIFJlZjxSZW5kZXJTdHlsZT4gbmV3U3R5bGVCZWZvcmVBbmltYXRp
b24oc3RkOjptb3ZlKG5ld1N0eWxlKSk7CisgICAgUmVmPFJlbmRlclN0eWxlPiBuZXdTdHlsZUJl
Zm9yZUFuaW1hdGlvbihXVEY6Om1vdmUobmV3U3R5bGUpKTsKIAogICAgIENvbXBvc2l0ZUFuaW1h
dGlvbiYgcmVuZGVyZXJBbmltYXRpb25zID0gbV9kYXRhLT5lbnN1cmVDb21wb3NpdGVBbmltYXRp
b24oJnJlbmRlcmVyKTsKICAgICBhdXRvIGJsZW5kZWRTdHlsZSA9IHJlbmRlcmVyQW5pbWF0aW9u
cy5hbmltYXRlKHJlbmRlcmVyLCBvbGRTdHlsZSwgbmV3U3R5bGVCZWZvcmVBbmltYXRpb24uZ2V0
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVy
dHlBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVy
dHlBbmltYXRpb24uY3BwCmluZGV4IGYzNjg1ZTEuLjVlNmVmMmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKQEAg
LTIyMCw5ICsyMjAsOSBAQCBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gYmxl
bmRGaWx0ZXIoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgQ2FjaAogICAgIGF1dG8gaW1hZ2VW
YWx1ZSA9IENTU0ltYWdlVmFsdWU6OmNyZWF0ZShpbWFnZS0+dXJsKCksIHN0eWxlZEltYWdlLmdl
dCgpKTsKICAgICBhdXRvIGZpbHRlclZhbHVlID0gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6dmFs
dWVGb3JGaWx0ZXIoJmFuaW0tPnJlbmRlcmVyKCktPnN0eWxlKCksIGZpbHRlclJlc3VsdCwgRG9O
b3RBZGp1c3RQaXhlbFZhbHVlcyk7CiAKLSAgICBhdXRvIHJlc3VsdCA9IENTU0ZpbHRlckltYWdl
VmFsdWU6OmNyZWF0ZShzdGQ6Om1vdmUoaW1hZ2VWYWx1ZSksIHN0ZDo6bW92ZShmaWx0ZXJWYWx1
ZSkpOworICAgIGF1dG8gcmVzdWx0ID0gQ1NTRmlsdGVySW1hZ2VWYWx1ZTo6Y3JlYXRlKFdURjo6
bW92ZShpbWFnZVZhbHVlKSwgV1RGOjptb3ZlKGZpbHRlclZhbHVlKSk7CiAgICAgcmVzdWx0Lmdl
dCgpLnNldEZpbHRlck9wZXJhdGlvbnMoZmlsdGVyUmVzdWx0KTsKLSAgICByZXR1cm4gU3R5bGVH
ZW5lcmF0ZWRJbWFnZTo6Y3JlYXRlKHN0ZDo6bW92ZShyZXN1bHQpKTsKKyAgICByZXR1cm4gU3R5
bGVHZW5lcmF0ZWRJbWFnZTo6Y3JlYXRlKFdURjo6bW92ZShyZXN1bHQpKTsKIH0KICNlbmRpZiAv
LyBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAKQEAgLTI4NCw5ICsyODQsOSBAQCBzdGF0aWMgaW5saW5l
IFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gY3Jvc3NmYWRlQmxlbmQoY29uc3QgQW5pbWF0aW9uQmFz
ZSosIFN0eWxlQwogICAgIGF1dG8gZnJvbUltYWdlVmFsdWUgPSBDU1NJbWFnZVZhbHVlOjpjcmVh
dGUoZnJvbVN0eWxlSW1hZ2UtPmNhY2hlZEltYWdlKCktPnVybCgpLCBmcm9tU3R5bGVJbWFnZSk7
CiAgICAgYXV0byB0b0ltYWdlVmFsdWUgPSBDU1NJbWFnZVZhbHVlOjpjcmVhdGUodG9TdHlsZUlt
YWdlLT5jYWNoZWRJbWFnZSgpLT51cmwoKSwgdG9TdHlsZUltYWdlKTsKIAotICAgIGF1dG8gY3Jv
c3NmYWRlVmFsdWUgPSBDU1NDcm9zc2ZhZGVWYWx1ZTo6Y3JlYXRlKHN0ZDo6bW92ZShmcm9tSW1h
Z2VWYWx1ZSksIHN0ZDo6bW92ZSh0b0ltYWdlVmFsdWUpKTsKKyAgICBhdXRvIGNyb3NzZmFkZVZh
bHVlID0gQ1NTQ3Jvc3NmYWRlVmFsdWU6OmNyZWF0ZShXVEY6Om1vdmUoZnJvbUltYWdlVmFsdWUp
LCBXVEY6Om1vdmUodG9JbWFnZVZhbHVlKSk7CiAgICAgY3Jvc3NmYWRlVmFsdWUuZ2V0KCkuc2V0
UGVyY2VudGFnZShDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHByb2dyZXNzLCBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTX05VTUJFUikpOwotICAgIHJldHVybiBTdHlsZUdlbmVyYXRlZEltYWdlOjpj
cmVhdGUoc3RkOjptb3ZlKGNyb3NzZmFkZVZhbHVlKSk7CisgICAgcmV0dXJuIFN0eWxlR2VuZXJh
dGVkSW1hZ2U6OmNyZWF0ZShXVEY6Om1vdmUoY3Jvc3NmYWRlVmFsdWUpKTsKIH0KIAogc3RhdGlj
IGlubGluZSBQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25C
YXNlKiBhbmltLCBTdHlsZUltYWdlKiBmcm9tLCBTdHlsZUltYWdlKiB0bywgZG91YmxlIHByb2dy
ZXNzKQpAQCAtNjYyLDkgKzY2Miw5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBTaGFkb3dEYXRh
KiBibGVuZGVkU2hhZG93UHRyID0gYmxlbmRlZFNoYWRvdy5nZXQoKTsKIAogICAgICAgICAgICAg
aWYgKCFsYXN0U2hhZG93KQotICAgICAgICAgICAgICAgIG5ld1NoYWRvd0RhdGEgPSBzdGQ6Om1v
dmUoYmxlbmRlZFNoYWRvdyk7CisgICAgICAgICAgICAgICAgbmV3U2hhZG93RGF0YSA9IFdURjo6
bW92ZShibGVuZGVkU2hhZG93KTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBs
YXN0U2hhZG93LT5zZXROZXh0KHN0ZDo6bW92ZShibGVuZGVkU2hhZG93KSk7CisgICAgICAgICAg
ICAgICAgbGFzdFNoYWRvdy0+c2V0TmV4dChXVEY6Om1vdmUoYmxlbmRlZFNoYWRvdykpOwogCiAg
ICAgICAgICAgICBsYXN0U2hhZG93ID0gYmxlbmRlZFNoYWRvd1B0cjsKIApAQCAtNzAzLDggKzcw
Myw4IEBAIHByaXZhdGU6CiAKICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxTaGFkb3dEYXRh
PiBibGVuZGVkU2hhZG93ID0gYmxlbmRGdW5jKGFuaW0sIHNyY1NoYWRvdywgZHN0U2hhZG93LCBw
cm9ncmVzcyk7CiAgICAgICAgICAgICAvLyBJbnNlcnQgYXQgdGhlIHN0YXJ0IG9mIHRoZSBsaXN0
IHRvIHByZXNlcnZlIHRoZSBvcmRlci4KLSAgICAgICAgICAgIGJsZW5kZWRTaGFkb3ctPnNldE5l
eHQoc3RkOjptb3ZlKG5ld1NoYWRvd0RhdGEpKTsKLSAgICAgICAgICAgIG5ld1NoYWRvd0RhdGEg
PSBzdGQ6Om1vdmUoYmxlbmRlZFNoYWRvdyk7CisgICAgICAgICAgICBibGVuZGVkU2hhZG93LT5z
ZXROZXh0KFdURjo6bW92ZShuZXdTaGFkb3dEYXRhKSk7CisgICAgICAgICAgICBuZXdTaGFkb3dE
YXRhID0gV1RGOjptb3ZlKGJsZW5kZWRTaGFkb3cpOwogICAgICAgICB9CiAKICAgICAgICAgcmV0
dXJuIG5ld1NoYWRvd0RhdGE7CkBAIC05NjAsNyArOTYwLDcgQEAgY2xhc3MgU2hvcnRoYW5kUHJv
cGVydHlXcmFwcGVyIDogcHVibGljIEFuaW1hdGlvblByb3BlcnR5V3JhcHBlckJhc2UgewogcHVi
bGljOgogICAgIFNob3J0aGFuZFByb3BlcnR5V3JhcHBlcihDU1NQcm9wZXJ0eUlEIHByb3BlcnR5
LCBWZWN0b3I8QW5pbWF0aW9uUHJvcGVydHlXcmFwcGVyQmFzZSo+IGxvbmdoYW5kV3JhcHBlcnMp
CiAgICAgICAgIDogQW5pbWF0aW9uUHJvcGVydHlXcmFwcGVyQmFzZShwcm9wZXJ0eSkKLSAgICAg
ICAgLCBtX3Byb3BlcnR5V3JhcHBlcnMoc3RkOjptb3ZlKGxvbmdoYW5kV3JhcHBlcnMpKQorICAg
ICAgICAsIG1fcHJvcGVydHlXcmFwcGVycyhXVEY6Om1vdmUobG9uZ2hhbmRXcmFwcGVycykpCiAg
ICAgewogICAgIH0KIApAQCAtMTMzNSw3ICsxMzM1LDcgQEAgQ1NTUHJvcGVydHlBbmltYXRpb25X
cmFwcGVyTWFwOjpDU1NQcm9wZXJ0eUFuaW1hdGlvbldyYXBwZXJNYXAoKQogICAgICAgICAgICAg
bG9uZ2hhbmRXcmFwcGVycy51bmNoZWNrZWRBcHBlbmQobV9wcm9wZXJ0eVdyYXBwZXJzW3dyYXBw
ZXJJbmRleF0uZ2V0KCkpOwogICAgICAgICB9CiAKLSAgICAgICAgbV9wcm9wZXJ0eVdyYXBwZXJz
LnVuY2hlY2tlZEFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPFNob3J0aGFuZFByb3BlcnR5V3JhcHBl
cj4ocHJvcGVydHlJRCwgc3RkOjptb3ZlKGxvbmdoYW5kV3JhcHBlcnMpKSk7CisgICAgICAgIG1f
cHJvcGVydHlXcmFwcGVycy51bmNoZWNrZWRBcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxTaG9ydGhh
bmRQcm9wZXJ0eVdyYXBwZXI+KHByb3BlcnR5SUQsIFdURjo6bW92ZShsb25naGFuZFdyYXBwZXJz
KSkpOwogICAgICAgICBpbmRleEZyb21Qcm9wZXJ0eUlEKHByb3BlcnR5SUQpID0gYW5pbWF0YWJs
ZUxvbmdoYW5kUHJvcGVydGllc0NvdW50ICsgaTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcAppbmRleCBkMTcw
MGMxMy4uOWM3NmZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nU3RhdGVUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZVRyZWUuY3BwCkBAIC0yMjgsNyArMjI4LDcgQEAgdm9pZCBTY3JvbGxp
bmdTdGF0ZVRyZWU6OndpbGxSZW1vdmVOb2RlKFNjcm9sbGluZ1N0YXRlTm9kZSogbm9kZSkKIAog
dm9pZCBTY3JvbGxpbmdTdGF0ZVRyZWU6OnNldFJlbW92ZWROb2RlcyhIYXNoU2V0PFNjcm9sbGlu
Z05vZGVJRD4gbm9kZXMpCiB7Ci0gICAgbV9ub2Rlc1JlbW92ZWRTaW5jZUxhc3RDb21taXQgPSBz
dGQ6Om1vdmUobm9kZXMpOworICAgIG1fbm9kZXNSZW1vdmVkU2luY2VMYXN0Q29tbWl0ID0gV1RG
Ojptb3ZlKG5vZGVzKTsKIH0KIAogU2Nyb2xsaW5nU3RhdGVOb2RlKiBTY3JvbGxpbmdTdGF0ZVRy
ZWU6OnN0YXRlTm9kZUZvcklEKFNjcm9sbGluZ05vZGVJRCBzY3JvbGxMYXllcklEKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVhZC5jcHAKaW5kZXgg
YmVjNDkyMS4uOWM4ZTJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUaHJlYWQuY3BwCkBAIC02MSw3ICs2MSw3IEBAIHZvaWQgU2Nyb2xsaW5nVGhy
ZWFkOjpkaXNwYXRjaChzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGZ1bmN0aW9uKQogdm9pZCBTY3Jv
bGxpbmdUaHJlYWQ6OmRpc3BhdGNoQmFycmllcihzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGZ1bmN0
aW9uKQogewogICAgIGRpc3BhdGNoKFtmdW5jdGlvbl0oKSBtdXRhYmxlIHsKLSAgICAgICAgY2Fs
bE9uTWFpblRocmVhZChzdGQ6Om1vdmUoZnVuY3Rpb24pKTsKKyAgICAgICAgY2FsbE9uTWFpblRo
cmVhZChXVEY6Om1vdmUoZnVuY3Rpb24pKTsKICAgICB9KTsKIH0KIApAQCAtMTA4LDcgKzEwOCw3
IEBAIHZvaWQgU2Nyb2xsaW5nVGhyZWFkOjpkaXNwYXRjaEZ1bmN0aW9uc0Zyb21TY3JvbGxpbmdU
aHJlYWQoKQogICAgIAogICAgIHsKICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+
IGxvY2sobV9mdW5jdGlvbnNNdXRleCk7Ci0gICAgICAgIGZ1bmN0aW9ucyA9IHN0ZDo6bW92ZSht
X2Z1bmN0aW9ucyk7CisgICAgICAgIGZ1bmN0aW9ucyA9IFdURjo6bW92ZShtX2Z1bmN0aW9ucyk7
CiAgICAgfQogCiAgICAgZm9yIChhdXRvJiBmdW5jdGlvbiA6IGZ1bmN0aW9ucykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NhbGN1bGF0aW9uVmFsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vQ2FsY3VsYXRpb25WYWx1ZS5jcHAKaW5kZXggOGQ5NjViMC4uYjlk
ZmNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ2FsY3VsYXRpb25WYWx1
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ2FsY3VsYXRpb25WYWx1ZS5jcHAK
QEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBQYXNzUmVmPENhbGN1bGF0
aW9uVmFsdWU+IENhbGN1bGF0aW9uVmFsdWU6OmNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8Q2FsY0V4
cHJlc3Npb25Ob2RlPiB2YWx1ZSwgQ2FsY3VsYXRpb25QZXJtaXR0ZWRWYWx1ZVJhbmdlIHJhbmdl
KQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENhbGN1bGF0aW9uVmFsdWUoc3RkOjptb3Zl
KHZhbHVlKSwgcmFuZ2UpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDYWxjdWxhdGlvblZh
bHVlKFdURjo6bW92ZSh2YWx1ZSksIHJhbmdlKSk7CiB9CiAKIGZsb2F0IENhbGNFeHByZXNzaW9u
TnVtYmVyOjpldmFsdWF0ZShmbG9hdCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0NhbGN1bGF0aW9uVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nh
bGN1bGF0aW9uVmFsdWUuaAppbmRleCA0NDE3MzIwLi4zMGVjNzgwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9DYWxjdWxhdGlvblZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vQ2FsY3VsYXRpb25WYWx1ZS5oCkBAIC0xNTUsNyArMTU1LDcgQEAgaW5saW5l
IENhbGNFeHByZXNzaW9uTm9kZTo6Q2FsY0V4cHJlc3Npb25Ob2RlKENhbGNFeHByZXNzaW9uTm9k
ZVR5cGUgdHlwZSkKIH0KIAogaW5saW5lIENhbGN1bGF0aW9uVmFsdWU6OkNhbGN1bGF0aW9uVmFs
dWUoc3RkOjp1bmlxdWVfcHRyPENhbGNFeHByZXNzaW9uTm9kZT4gZXhwcmVzc2lvbiwgQ2FsY3Vs
YXRpb25QZXJtaXR0ZWRWYWx1ZVJhbmdlIHJhbmdlKQotICAgIDogbV9leHByZXNzaW9uKHN0ZDo6
bW92ZShleHByZXNzaW9uKSkKKyAgICA6IG1fZXhwcmVzc2lvbihXVEY6Om1vdmUoZXhwcmVzc2lv
bikpCiAgICAgLCBtX3Nob3VsZENsYW1wVG9Ob25OZWdhdGl2ZShyYW5nZSA9PSBDYWxjdWxhdGlv
blJhbmdlTm9uTmVnYXRpdmUpCiB7CiB9CkBAIC0yMDEsOCArMjAxLDggQEAgaW5saW5lIGNvbnN0
IENhbGNFeHByZXNzaW9uTGVuZ3RoJiB0b0NhbGNFeHByZXNzaW9uTGVuZ3RoKGNvbnN0IENhbGNF
eHByZXNzaW9uTm8KIAogaW5saW5lIENhbGNFeHByZXNzaW9uQmluYXJ5T3BlcmF0aW9uOjpDYWxj
RXhwcmVzc2lvbkJpbmFyeU9wZXJhdGlvbihzdGQ6OnVuaXF1ZV9wdHI8Q2FsY0V4cHJlc3Npb25O
b2RlPiBsZWZ0U2lkZSwgc3RkOjp1bmlxdWVfcHRyPENhbGNFeHByZXNzaW9uTm9kZT4gcmlnaHRT
aWRlLCBDYWxjT3BlcmF0b3Igb3ApCiAgICAgOiBDYWxjRXhwcmVzc2lvbk5vZGUoQ2FsY0V4cHJl
c3Npb25Ob2RlQmluYXJ5T3BlcmF0aW9uKQotICAgICwgbV9sZWZ0U2lkZShzdGQ6Om1vdmUobGVm
dFNpZGUpKQotICAgICwgbV9yaWdodFNpZGUoc3RkOjptb3ZlKHJpZ2h0U2lkZSkpCisgICAgLCBt
X2xlZnRTaWRlKFdURjo6bW92ZShsZWZ0U2lkZSkpCisgICAgLCBtX3JpZ2h0U2lkZShXVEY6Om1v
dmUocmlnaHRTaWRlKSkKICAgICAsIG1fb3BlcmF0b3Iob3ApCiB7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9LZXllZENvZGluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vS2V5ZWRDb2RpbmcuaAppbmRleCAyYzRiMTc4Li45ZmE1YzhmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9LZXllZENvZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0tleWVkQ29kaW5nLmgKQEAgLTExNyw3ICsxMTcsNyBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBvYmplY3RzLmFwcGVuZChzdGQ6Om1vdmUoZWxlbWVudCkp
OworICAgICAgICAgICAgb2JqZWN0cy5hcHBlbmQoV1RGOjptb3ZlKGVsZW1lbnQpKTsKICAgICAg
ICAgICAgIGVuZEFycmF5RWxlbWVudCgpOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
ZW5ndGguY3BwCmluZGV4IDY2OTkyYWUuLjZkNWE2NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xlbmd0aC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVu
Z3RoLmNwcApAQCAtMjQ4LDcgKzI0OCw3IEBAIExlbmd0aDo6TGVuZ3RoKFBhc3NSZWY8Q2FsY3Vs
YXRpb25WYWx1ZT4gdmFsdWUpCiAgICAgLCBtX3R5cGUoQ2FsY3VsYXRlZCkKICAgICAsIG1faXNG
bG9hdChmYWxzZSkKIHsKLSAgICBtX2NhbGN1bGF0aW9uVmFsdWVIYW5kbGUgPSBjYWxjdWxhdGlv
blZhbHVlcygpLmluc2VydChzdGQ6Om1vdmUodmFsdWUpKTsKKyAgICBtX2NhbGN1bGF0aW9uVmFs
dWVIYW5kbGUgPSBjYWxjdWxhdGlvblZhbHVlcygpLmluc2VydChXVEY6Om1vdmUodmFsdWUpKTsK
IH0KICAgICAgICAgCiBMZW5ndGggTGVuZ3RoOjpibGVuZE1peGVkVHlwZXMoY29uc3QgTGVuZ3Ro
JiBmcm9tLCBkb3VibGUgcHJvZ3Jlc3MpIGNvbnN0CkBAIC0yNjAsNyArMjYwLDcgQEAgTGVuZ3Ro
IExlbmd0aDo6YmxlbmRNaXhlZFR5cGVzKGNvbnN0IExlbmd0aCYgZnJvbSwgZG91YmxlIHByb2dy
ZXNzKSBjb25zdAogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgICAgIAogICAgIGF1dG8gYmxl
bmQgPSBzdGQ6Om1ha2VfdW5pcXVlPENhbGNFeHByZXNzaW9uQmxlbmRMZW5ndGg+KGZyb20sICp0
aGlzLCBwcm9ncmVzcyk7Ci0gICAgcmV0dXJuIExlbmd0aChDYWxjdWxhdGlvblZhbHVlOjpjcmVh
dGUoc3RkOjptb3ZlKGJsZW5kKSwgQ2FsY3VsYXRpb25SYW5nZUFsbCkpOworICAgIHJldHVybiBM
ZW5ndGgoQ2FsY3VsYXRpb25WYWx1ZTo6Y3JlYXRlKFdURjo6bW92ZShibGVuZCksIENhbGN1bGF0
aW9uUmFuZ2VBbGwpKTsKIH0KIAogQ2FsY3VsYXRpb25WYWx1ZSYgTGVuZ3RoOjpjYWxjdWxhdGlv
blZhbHVlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0
aEJveC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoQm94LmgKaW5kZXggMjY1NWY2
ZC4uYWY5ZWNmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoQm94
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoQm94LmgKQEAgLTUwLDEwICs1
MCwxMCBAQCBzdHJ1Y3QgTGVuZ3RoQm94IHsKICAgICB9CiAKICAgICBMZW5ndGhCb3goTGVuZ3Ro
IHRvcCwgTGVuZ3RoIHJpZ2h0LCBMZW5ndGggYm90dG9tLCBMZW5ndGggbGVmdCkKLSAgICAgICAg
OiBtX2xlZnQoc3RkOjptb3ZlKGxlZnQpKQotICAgICAgICAsIG1fcmlnaHQoc3RkOjptb3ZlKHJp
Z2h0KSkKLSAgICAgICAgLCBtX3RvcChzdGQ6Om1vdmUodG9wKSkKLSAgICAgICAgLCBtX2JvdHRv
bShzdGQ6Om1vdmUoYm90dG9tKSkKKyAgICAgICAgOiBtX2xlZnQoV1RGOjptb3ZlKGxlZnQpKQor
ICAgICAgICAsIG1fcmlnaHQoV1RGOjptb3ZlKHJpZ2h0KSkKKyAgICAgICAgLCBtX3RvcChXVEY6
Om1vdmUodG9wKSkKKyAgICAgICAgLCBtX2JvdHRvbShXVEY6Om1vdmUoYm90dG9tKSkKICAgICB7
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGhTaXpl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGhTaXplLmgKaW5kZXggY2JjMmQ3OC4u
YTY3YmM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoU2l6ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aFNpemUuaApAQCAtMzIsOCArMzIs
OCBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogICAgIExlbmd0aFNpemUoTGVuZ3RoIHdpZHRoLCBM
ZW5ndGggaGVpZ2h0KQotICAgICAgICA6IG1fd2lkdGgoc3RkOjptb3ZlKHdpZHRoKSkKLSAgICAg
ICAgLCBtX2hlaWdodChzdGQ6Om1vdmUoaGVpZ2h0KSkKKyAgICAgICAgOiBtX3dpZHRoKFdURjo6
bW92ZSh3aWR0aCkpCisgICAgICAgICwgbV9oZWlnaHQoV1RGOjptb3ZlKGhlaWdodCkpCiAgICAg
ewogICAgIH0KIApAQCAtNDIsMTAgKzQyLDEwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1f
d2lkdGggPT0gby5tX3dpZHRoICYmIG1faGVpZ2h0ID09IG8ubV9oZWlnaHQ7CiAgICAgfQogCi0g
ICAgdm9pZCBzZXRXaWR0aChMZW5ndGggd2lkdGgpIHsgbV93aWR0aCA9IHN0ZDo6bW92ZSh3aWR0
aCk7IH0KKyAgICB2b2lkIHNldFdpZHRoKExlbmd0aCB3aWR0aCkgeyBtX3dpZHRoID0gV1RGOjpt
b3ZlKHdpZHRoKTsgfQogICAgIGNvbnN0IExlbmd0aCYgd2lkdGgoKSBjb25zdCB7IHJldHVybiBt
X3dpZHRoOyB9CiAKLSAgICB2b2lkIHNldEhlaWdodChMZW5ndGggaGVpZ2h0KSB7IG1faGVpZ2h0
ID0gc3RkOjptb3ZlKGhlaWdodCk7IH0KKyAgICB2b2lkIHNldEhlaWdodChMZW5ndGggaGVpZ2h0
KSB7IG1faGVpZ2h0ID0gV1RGOjptb3ZlKGhlaWdodCk7IH0KICAgICBjb25zdCBMZW5ndGgmIGhl
aWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGVpZ2h0OyB9CiAKICAgICBMZW5ndGhTaXplIGJsZW5k
KGNvbnN0IExlbmd0aFNpemUmIGZyb20sIGRvdWJsZSBwcm9ncmVzcykgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmgKaW5kZXggYjk4MjA1OS4uM2M4ZmE1NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmgKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGlj
OgogICAgIHB1YmxpYzoKICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICAgICAgTlNE
YXRhUmV0YWluUHRyV2l0aG91dEltcGxpY2l0Q29udmVyc2lvbk9wZXJhdG9yKFJldGFpblB0cjxU
Kj4mJiBvdGhlcikKLSAgICAgICAgICAgIDogUmV0YWluUHRyPE5TRGF0YSo+KHN0ZDo6bW92ZShv
dGhlcikpCisgICAgICAgICAgICA6IFJldGFpblB0cjxOU0RhdGEqPihXVEY6Om1vdmUob3RoZXIp
KQogICAgICAgICB7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU3VwcGxlbWVudGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1cHBsZW1l
bnRhYmxlLmgKaW5kZXggNjdkZGYyZi4uNjFiZjEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU3VwcGxlbWVudGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TdXBwbGVtZW50YWJsZS5oCkBAIC04Niw3ICs4Niw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRp
YyB2b2lkIHByb3ZpZGVUbyhTdXBwbGVtZW50YWJsZTxUPiogaG9zdCwgY29uc3QgY2hhcioga2V5
LCBzdGQ6OnVuaXF1ZV9wdHI8U3VwcGxlbWVudDxUPj4gc3VwcGxlbWVudCkKICAgICB7Ci0gICAg
ICAgIGhvc3QtPnByb3ZpZGVTdXBwbGVtZW50KGtleSwgc3RkOjptb3ZlKHN1cHBsZW1lbnQpKTsK
KyAgICAgICAgaG9zdC0+cHJvdmlkZVN1cHBsZW1lbnQoa2V5LCBXVEY6Om1vdmUoc3VwcGxlbWVu
dCkpOwogICAgIH0KIAogICAgIHN0YXRpYyBTdXBwbGVtZW50PFQ+KiBmcm9tKFN1cHBsZW1lbnRh
YmxlPFQ+KiBob3N0LCBjb25zdCBjaGFyKiBrZXkpCkBAIC0xMDIsNyArMTAyLDcgQEAgcHVibGlj
OgogICAgIHsKICAgICAgICAgQVNTRVJUKGNhbkFjY2Vzc1RocmVhZExvY2FsRGF0YUZvclRocmVh
ZChtX3RocmVhZElkKSk7CiAgICAgICAgIEFTU0VSVCghbV9zdXBwbGVtZW50cy5nZXQoa2V5KSk7
Ci0gICAgICAgIG1fc3VwcGxlbWVudHMuc2V0KGtleSwgc3RkOjptb3ZlKHN1cHBsZW1lbnQpKTsK
KyAgICAgICAgbV9zdXBwbGVtZW50cy5zZXQoa2V5LCBXVEY6Om1vdmUoc3VwcGxlbWVudCkpOwog
ICAgIH0KIAogICAgIHZvaWQgcmVtb3ZlU3VwcGxlbWVudChjb25zdCBjaGFyKiBrZXkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vVGltZXIuaAppbmRleCBiOWVmYWUyLi44NDNkNjc2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1RpbWVyLmgKQEAgLTE1Niw3ICsxNTYsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgRGVmZXJy
YWJsZU9uZVNob3RUaW1lcihzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGZ1bmN0aW9uLCBzdGQ6OmNo
cm9ubzo6bWlsbGlzZWNvbmRzIGRlbGF5KQotICAgICAgICA6IG1fZnVuY3Rpb24oc3RkOjptb3Zl
KGZ1bmN0aW9uKSkKKyAgICAgICAgOiBtX2Z1bmN0aW9uKFdURjo6bW92ZShmdW5jdGlvbikpCiAg
ICAgICAgICwgbV9kZWxheShkZWxheSkKICAgICAgICAgLCBtX3Nob3VsZFJlc3RhcnRXaGVuVGlt
ZXJGaXJlcyhmYWxzZSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9BdWRpb0J1cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRp
b0J1cy5jcHAKaW5kZXggY2Y1ZTY4NS4uOWRhYzA5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcApAQCAtNjUsNyArNjUsNyBAQCBBdWRpb0J1czo6QXVkaW9C
dXModW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGxlbmd0aCwgYm9vbCBhbGxvY2F0
ZSkKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJPZkNoYW5uZWxzOyArK2kp
IHsKICAgICAgICAgYXV0byBjaGFubmVsID0gYWxsb2NhdGUgPyBzdGQ6Om1ha2VfdW5pcXVlPEF1
ZGlvQ2hhbm5lbD4obGVuZ3RoKSA6IHN0ZDo6bWFrZV91bmlxdWU8QXVkaW9DaGFubmVsPihudWxs
cHRyLCBsZW5ndGgpOwotICAgICAgICBtX2NoYW5uZWxzLmFwcGVuZChzdGQ6Om1vdmUoY2hhbm5l
bCkpOworICAgICAgICBtX2NoYW5uZWxzLmFwcGVuZChXVEY6Om1vdmUoY2hhbm5lbCkpOwogICAg
IH0KIAogICAgIG1fbGF5b3V0ID0gTGF5b3V0Q2Fub25pY2FsOyAvLyBmb3Igbm93IHRoaXMgaXMg
dGhlIG9ubHkgbGF5b3V0IHdlIGRlZmluZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0hSVEZEYXRhYmFzZS5jcHAKaW5kZXggNDhkM2QzMy4uOTM0MDI0YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2UuY3BwCkBAIC01NCw3ICs1NCw3
IEBAIEhSVEZEYXRhYmFzZTo6SFJURkRhdGFiYXNlKGZsb2F0IHNhbXBsZVJhdGUpCiAgICAgICAg
IGlmICghaHJ0ZkVsZXZhdGlvbi5nZXQoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
Ci0gICAgICAgIG1fZWxldmF0aW9uc1tlbGV2YXRpb25JbmRleF0gPSBzdGQ6Om1vdmUoaHJ0ZkVs
ZXZhdGlvbik7CisgICAgICAgIG1fZWxldmF0aW9uc1tlbGV2YXRpb25JbmRleF0gPSBXVEY6Om1v
dmUoaHJ0ZkVsZXZhdGlvbik7CiAgICAgICAgIGVsZXZhdGlvbkluZGV4ICs9IEludGVycG9sYXRp
b25GYWN0b3I7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9IUlRGRWxldmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hS
VEZFbGV2YXRpb24uY3BwCmluZGV4IGU1ODA4YjQuLjNlNzc0NzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uY3BwCkBAIC0yNzMsNyArMjczLDcg
QEAgc3RkOjp1bmlxdWVfcHRyPEhSVEZFbGV2YXRpb24+IEhSVEZFbGV2YXRpb246OmNyZWF0ZUZv
clN1YmplY3QoY29uc3QgU3RyaW5nJiBzdWIKICAgICAgICAgfQogICAgIH0KICAgICAKLSAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxIUlRGRWxldmF0aW9uPihzdGQ6Om1vdmUoa2VybmVsTGlz
dEwpLCBzdGQ6Om1vdmUoa2VybmVsTGlzdFIpLCBlbGV2YXRpb24sIHNhbXBsZVJhdGUpOworICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEhSVEZFbGV2YXRpb24+KFdURjo6bW92ZShrZXJuZWxM
aXN0TCksIFdURjo6bW92ZShrZXJuZWxMaXN0UiksIGVsZXZhdGlvbiwgc2FtcGxlUmF0ZSk7CiB9
CiAKIHN0ZDo6dW5pcXVlX3B0cjxIUlRGRWxldmF0aW9uPiBIUlRGRWxldmF0aW9uOjpjcmVhdGVC
eUludGVycG9sYXRpbmdTbGljZXMoSFJURkVsZXZhdGlvbiogaHJ0ZkVsZXZhdGlvbjEsIEhSVEZF
bGV2YXRpb24qIGhydGZFbGV2YXRpb24yLCBmbG9hdCB4LCBmbG9hdCBzYW1wbGVSYXRlKQpAQCAt
MzAxLDcgKzMwMSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxIUlRGRWxldmF0aW9uPiBIUlRGRWxldmF0
aW9uOjpjcmVhdGVCeUludGVycG9sYXRpbmdTbGljZXMoSFJURkVsCiAgICAgLy8gSW50ZXJwb2xh
dGUgZWxldmF0aW9uIGFuZ2xlLgogICAgIGRvdWJsZSBhbmdsZSA9ICgxLjAgLSB4KSAqIGhydGZF
bGV2YXRpb24xLT5lbGV2YXRpb25BbmdsZSgpICsgeCAqIGhydGZFbGV2YXRpb24yLT5lbGV2YXRp
b25BbmdsZSgpOwogICAgIAotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEhSVEZFbGV2YXRp
b24+KHN0ZDo6bW92ZShrZXJuZWxMaXN0TCksIHN0ZDo6bW92ZShrZXJuZWxMaXN0UiksIHN0YXRp
Y19jYXN0PGludD4oYW5nbGUpLCBzYW1wbGVSYXRlKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3Vu
aXF1ZTxIUlRGRWxldmF0aW9uPihXVEY6Om1vdmUoa2VybmVsTGlzdEwpLCBXVEY6Om1vdmUoa2Vy
bmVsTGlzdFIpLCBzdGF0aWNfY2FzdDxpbnQ+KGFuZ2xlKSwgc2FtcGxlUmF0ZSk7CiB9CiAKIHZv
aWQgSFJURkVsZXZhdGlvbjo6Z2V0S2VybmVsc0Zyb21BemltdXRoKGRvdWJsZSBhemltdXRoQmxl
bmQsIHVuc2lnbmVkIGF6aW11dGhJbmRleCwgSFJURktlcm5lbCogJmtlcm5lbEwsIEhSVEZLZXJu
ZWwqICZrZXJuZWxSLCBkb3VibGUmIGZyYW1lRGVsYXlMLCBkb3VibGUmIGZyYW1lRGVsYXlSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkVsZXZhdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkVsZXZhdGlvbi5oCmluZGV4IDk4
YTZjNDcuLmYxZGMzYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0hSVEZFbGV2YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRG
RWxldmF0aW9uLmgKQEAgLTQ2LDggKzQ2LDggQEAgY2xhc3MgSFJURkVsZXZhdGlvbiB7CiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoSFJURkVsZXZhdGlvbik7CiBwdWJsaWM6CiAgICAgSFJURkVs
ZXZhdGlvbihzdGQ6OnVuaXF1ZV9wdHI8SFJURktlcm5lbExpc3Q+IGtlcm5lbExpc3RMLCBzdGQ6
OnVuaXF1ZV9wdHI8SFJURktlcm5lbExpc3Q+IGtlcm5lbExpc3RSLCBpbnQgZWxldmF0aW9uLCBm
bG9hdCBzYW1wbGVSYXRlKQotICAgICAgICA6IG1fa2VybmVsTGlzdEwoc3RkOjptb3ZlKGtlcm5l
bExpc3RMKSkKLSAgICAgICAgLCBtX2tlcm5lbExpc3RSKHN0ZDo6bW92ZShrZXJuZWxMaXN0Uikp
CisgICAgICAgIDogbV9rZXJuZWxMaXN0TChXVEY6Om1vdmUoa2VybmVsTGlzdEwpKQorICAgICAg
ICAsIG1fa2VybmVsTGlzdFIoV1RGOjptb3ZlKGtlcm5lbExpc3RSKSkKICAgICAgICAgLCBtX2Vs
ZXZhdGlvbkFuZ2xlKGVsZXZhdGlvbikKICAgICAgICAgLCBtX3NhbXBsZVJhdGUoc2FtcGxlUmF0
ZSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRG
S2VybmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZLZXJuZWwuY3Bw
CmluZGV4IDMxODU5OTQuLmY2ODkwODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0hSVEZLZXJuZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0hSVEZLZXJuZWwuY3BwCkBAIC0xMzIsNyArMTMyLDcgQEAgUGFzc1JlZlB0cjxIUlRGS2Vy
bmVsPiBIUlRGS2VybmVsOjpjcmVhdGVJbnRlcnBvbGF0ZWRLZXJuZWwoSFJURktlcm5lbCoga2Vy
bmVsMSwKICAgICBmbG9hdCBmcmFtZURlbGF5ID0gKDEgLSB4KSAqIGtlcm5lbDEtPmZyYW1lRGVs
YXkoKSArIHggKiBrZXJuZWwyLT5mcmFtZURlbGF5KCk7CiAgICAgCiAgICAgc3RkOjp1bmlxdWVf
cHRyPEZGVEZyYW1lPiBpbnRlcnBvbGF0ZWRGcmFtZSA9IEZGVEZyYW1lOjpjcmVhdGVJbnRlcnBv
bGF0ZWRGcmFtZSgqa2VybmVsMS0+ZmZ0RnJhbWUoKSwgKmtlcm5lbDItPmZmdEZyYW1lKCksIHgp
OwotICAgIHJldHVybiBIUlRGS2VybmVsOjpjcmVhdGUoc3RkOjptb3ZlKGludGVycG9sYXRlZEZy
YW1lKSwgZnJhbWVEZWxheSwgc2FtcGxlUmF0ZTEpOworICAgIHJldHVybiBIUlRGS2VybmVsOjpj
cmVhdGUoV1RGOjptb3ZlKGludGVycG9sYXRlZEZyYW1lKSwgZnJhbWVEZWxheSwgc2FtcGxlUmF0
ZTEpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGS2VybmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9IUlRGS2VybmVsLmgKaW5kZXggNWYwNjc4Yy4uZGQwYWM0ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURktlcm5lbC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZLZXJuZWwuaApAQCAtNTcsNyArNTcsNyBAQCBwdWJs
aWM6CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxIUlRGS2VybmVsPiBjcmVhdGUoc3RkOjp1bmlx
dWVfcHRyPEZGVEZyYW1lPiBmZnRGcmFtZSwgZmxvYXQgZnJhbWVEZWxheSwgZmxvYXQgc2FtcGxl
UmF0ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFJURktlcm5lbChzdGQ6
Om1vdmUoZmZ0RnJhbWUpLCBmcmFtZURlbGF5LCBzYW1wbGVSYXRlKSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgSFJURktlcm5lbChXVEY6Om1vdmUoZmZ0RnJhbWUpLCBmcmFtZURlbGF5
LCBzYW1wbGVSYXRlKSk7CiAgICAgfQogCiAgICAgLy8gR2l2ZW4gdHdvIEhSVEZLZXJuZWxzLCBh
bmQgYW4gaW50ZXJwb2xhdGlvbiBmYWN0b3IgeDogMCAtPiAxLCByZXR1cm5zIGFuIGludGVycG9s
YXRlZCBIUlRGS2VybmVsLgpAQCAtNzksNyArNzksNyBAQCBwcml2YXRlOgogICAgIEhSVEZLZXJu
ZWwoQXVkaW9DaGFubmVsKiwgc2l6ZV90IGZmdFNpemUsIGZsb2F0IHNhbXBsZVJhdGUpOwogICAg
IAogICAgIEhSVEZLZXJuZWwoc3RkOjp1bmlxdWVfcHRyPEZGVEZyYW1lPiBmZnRGcmFtZSwgZmxv
YXQgZnJhbWVEZWxheSwgZmxvYXQgc2FtcGxlUmF0ZSkKLSAgICAgICAgOiBtX2ZmdEZyYW1lKHN0
ZDo6bW92ZShmZnRGcmFtZSkpCisgICAgICAgIDogbV9mZnRGcmFtZShXVEY6Om1vdmUoZmZ0RnJh
bWUpKQogICAgICAgICAsIG1fZnJhbWVEZWxheShmcmFtZURlbGF5KQogICAgICAgICAsIG1fc2Ft
cGxlUmF0ZShzYW1wbGVSYXRlKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwCmluZGV4IDkwNmFiMDEuLmVjZjM1NWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcApA
QCAtMTA3LDEwICsxMDcsMTAgQEAgUmV2ZXJiQ29udm9sdmVyOjpSZXZlcmJDb252b2x2ZXIoQXVk
aW9DaGFubmVsKiBpbXB1bHNlUmVzcG9uc2UsIHNpemVfdCByZW5kZXJTbGkKICAgICAgICAgYm9v
bCBpc0JhY2tncm91bmRTdGFnZSA9IGZhbHNlOwogCiAgICAgICAgIGlmICh0aGlzLT51c2VCYWNr
Z3JvdW5kVGhyZWFkcygpICYmIHN0YWdlT2Zmc2V0ID4gUmVhbHRpbWVGcmFtZUxpbWl0KSB7Ci0g
ICAgICAgICAgICBtX2JhY2tncm91bmRTdGFnZXMuYXBwZW5kKHN0ZDo6bW92ZShzdGFnZSkpOwor
ICAgICAgICAgICAgbV9iYWNrZ3JvdW5kU3RhZ2VzLmFwcGVuZChXVEY6Om1vdmUoc3RhZ2UpKTsK
ICAgICAgICAgICAgIGlzQmFja2dyb3VuZFN0YWdlID0gdHJ1ZTsKICAgICAgICAgfSBlbHNlCi0g
ICAgICAgICAgICBtX3N0YWdlcy5hcHBlbmQoc3RkOjptb3ZlKHN0YWdlKSk7CisgICAgICAgICAg
ICBtX3N0YWdlcy5hcHBlbmQoV1RGOjptb3ZlKHN0YWdlKSk7CiAKICAgICAgICAgc3RhZ2VPZmZz
ZXQgKz0gc3RhZ2VTaXplOwogICAgICAgICArK2k7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcAppbmRleCAwOGQ3OGRjLi5lOGM1MzkyIDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAKQEAgLTQ4NSw3
ICs0ODUsNyBAQCBib29sIFJlbmRlclRoZW1lRWZsOjpsb2FkVGhlbWUoKQogICAgICAgICBjbGVh
clRoZW1lUGFydENhY2hlKCk7CiAKICAgICAvLyBTZXQgbmV3IGxvYWRlZCB0aGVtZSwgYW5kIGFw
cGx5IGl0LgotICAgIG1fZWRqZSA9IHN0ZDo6bW92ZShvKTsKKyAgICBtX2VkamUgPSBXVEY6Om1v
dmUobyk7CiAKICAgICBjb25zdCBjaGFyKiB0aGlja25lc3MgPSBlZGplX29iamVjdF9kYXRhX2dl
dChtX2VkamUuZ2V0KCksICJzY3JvbGxiYXIudGhpY2tuZXNzIik7CiAgICAgaWYgKHRoaWNrbmVz
cyAmJiAhU2V0dGluZ3M6Om1vY2tTY3JvbGxiYXJzRW5hYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2x5Z29uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9seWdvbi5jcHAKaW5kZXggNzgxYmQyZC4u
NzU2OTRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxv
YXRQb2x5Z29uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9h
dFBvbHlnb24uY3BwCkBAIC04MCw3ICs4MCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBmaW5kTmV4dEVk
Z2VWZXJ0ZXhJbmRleChjb25zdCBGbG9hdFBvbHlnb24mIHBvbHlnb24sIHVuc2lnbmVkIHZlCiB9
CiAKIEZsb2F0UG9seWdvbjo6RmxvYXRQb2x5Z29uKHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8Rmxv
YXRQb2ludD4+IHZlcnRpY2VzLCBXaW5kUnVsZSBmaWxsUnVsZSkKLSAgICA6IG1fdmVydGljZXMo
c3RkOjptb3ZlKHZlcnRpY2VzKSkKKyAgICA6IG1fdmVydGljZXMoV1RGOjptb3ZlKHZlcnRpY2Vz
KSkKICAgICAsIG1fZmlsbFJ1bGUoZmlsbFJ1bGUpCiB7CiAgICAgdW5zaWduZWQgblZlcnRpY2Vz
ID0gbnVtYmVyT2ZWZXJ0aWNlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250LmNwcAppbmRleCA3MzlhNWIzLi4wMzZjZmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250LmNwcApAQCAtMjE1LDcgKzIxNSw3IEBAIHN0cnVjdCBGb250R2x5cGhz
Q2FjaGVLZXkgewogc3RydWN0IEZvbnRHbHlwaHNDYWNoZUVudHJ5IHsKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBGb250R2x5cGhzQ2FjaGVFbnRyeShGb250R2x5
cGhzQ2FjaGVLZXkmJiBrLCBQYXNzUmVmPEZvbnRHbHlwaHM+IGcpIDoga2V5KHN0ZDo6bW92ZShr
KSksIGdseXBocyhzdGQ6Om1vdmUoZykpIHsgfQorICAgIEZvbnRHbHlwaHNDYWNoZUVudHJ5KEZv
bnRHbHlwaHNDYWNoZUtleSYmIGssIFBhc3NSZWY8Rm9udEdseXBocz4gZykgOiBrZXkoV1RGOjpt
b3ZlKGspKSwgZ2x5cGhzKFdURjo6bW92ZShnKSkgeyB9CiAgICAgRm9udEdseXBoc0NhY2hlS2V5
IGtleTsKICAgICBSZWY8Rm9udEdseXBocz4gZ2x5cGhzOwogfTsKQEAgLTMwNyw3ICszMDcsNyBA
QCBzdGF0aWMgUGFzc1JlZjxGb250R2x5cGhzPiByZXRyaWV2ZU9yQWRkQ2FjaGVkRm9udEdseXBo
cyhjb25zdCBGb250RGVzY3JpcHRpb24mCiAgICAgICAgIHJldHVybiBhZGRSZXN1bHQuaXRlcmF0
b3ItPnZhbHVlLT5nbHlwaHMuZ2V0KCk7CiAKICAgICBPd25QdHI8Rm9udEdseXBoc0NhY2hlRW50
cnk+JiBuZXdFbnRyeSA9IGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWU7Ci0gICAgbmV3RW50cnkg
PSBhZG9wdFB0cihuZXcgRm9udEdseXBoc0NhY2hlRW50cnkoc3RkOjptb3ZlKGtleSksIEZvbnRH
bHlwaHM6OmNyZWF0ZShmb250U2VsZWN0b3IpKSk7CisgICAgbmV3RW50cnkgPSBhZG9wdFB0cihu
ZXcgRm9udEdseXBoc0NhY2hlRW50cnkoV1RGOjptb3ZlKGtleSksIEZvbnRHbHlwaHM6OmNyZWF0
ZShmb250U2VsZWN0b3IpKSk7CiAgICAgUGFzc1JlZjxGb250R2x5cGhzPiBnbHlwaHMgPSBuZXdF
bnRyeS0+Z2x5cGhzLmdldCgpOwogCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVucmVmZXJl
bmNlZFBydW5lSW50ZXJ2YWwgPSA1MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcAppbmRleCBiYWU2YWNjLi4yY2JjM2I4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEu
Y3BwCkBAIC03Miw3ICs3Miw3IEBAIFNpbXBsZUZvbnREYXRhOjpTaW1wbGVGb250RGF0YShjb25z
dCBGb250UGxhdGZvcm1EYXRhJiBwbGF0Zm9ybURhdGEsIGJvb2wgaXNDdXN0CiAKIFNpbXBsZUZv
bnREYXRhOjpTaW1wbGVGb250RGF0YShzdGQ6OnVuaXF1ZV9wdHI8QWRkaXRpb25hbEZvbnREYXRh
PiBmb250RGF0YSwgZmxvYXQgZm9udFNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50
aGV0aWNJdGFsaWMpCiAgICAgOiBtX3BsYXRmb3JtRGF0YShGb250UGxhdGZvcm1EYXRhKGZvbnRT
aXplLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMpKQotICAgICwgbV9mb250RGF0YShz
dGQ6Om1vdmUoZm9udERhdGEpKQorICAgICwgbV9mb250RGF0YShXVEY6Om1vdmUoZm9udERhdGEp
KQogICAgICwgbV90cmVhdEFzRml4ZWRQaXRjaChmYWxzZSkKICAgICAsIG1faXNDdXN0b21Gb250
KHRydWUpCiAgICAgLCBtX2lzTG9hZGluZyhmYWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCmluZGV4IDg2Yjk1YjEuLjJiZGVkNWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnRE
YXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERh
dGEuaApAQCAtMTAxLDcgKzEwMSw3IEBAIHB1YmxpYzoKICAgICAvLyBVc2VkIHRvIGNyZWF0ZSBT
VkcgRm9udHMuCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2ltcGxlRm9udERhdGE+IGNyZWF0ZShz
dGQ6OnVuaXF1ZV9wdHI8QWRkaXRpb25hbEZvbnREYXRhPiBmb250RGF0YSwgZmxvYXQgZm9udFNp
emUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNpbXBsZUZvbnREYXRhKHN0ZDo6bW92ZShmb250RGF0
YSksIGZvbnRTaXplLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTaW1wbGVGb250RGF0YShXVEY6Om1vdmUoZm9udERhdGEpLCBm
b250U2l6ZSwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljKSk7CiAgICAgfQogCiAgICAg
dmlydHVhbCB+U2ltcGxlRm9udERhdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmNwcAppbmRleCAwYmQ5NDU4Li4yNTM3
ZDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJh
Y2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGls
ZWRCYWNraW5nU3RvcmUuY3BwCkBAIC0zNyw3ICszNyw3IEBAIHN0YXRpYyBJbnRQb2ludCBpbm5l
ckJvdHRvbVJpZ2h0KGNvbnN0IEludFJlY3QmIHJlY3QpCiAKIFRpbGVkQmFja2luZ1N0b3JlOjpU
aWxlZEJhY2tpbmdTdG9yZShUaWxlZEJhY2tpbmdTdG9yZUNsaWVudCogY2xpZW50LCBzdGQ6OnVu
aXF1ZV9wdHI8VGlsZWRCYWNraW5nU3RvcmVCYWNrZW5kPiBiYWNrZW5kKQogICAgIDogbV9jbGll
bnQoY2xpZW50KQotICAgICwgbV9iYWNrZW5kKHN0ZDo6bW92ZShiYWNrZW5kKSkKKyAgICAsIG1f
YmFja2VuZChXVEY6Om1vdmUoYmFja2VuZCkpCiAgICAgLCBtX3RpbGVCdWZmZXJVcGRhdGVUaW1l
cih0aGlzLCAmVGlsZWRCYWNraW5nU3RvcmU6OnRpbGVCdWZmZXJVcGRhdGVUaW1lckZpcmVkKQog
ICAgICwgbV9iYWNraW5nU3RvcmVVcGRhdGVUaW1lcih0aGlzLCAmVGlsZWRCYWNraW5nU3RvcmU6
OmJhY2tpbmdTdG9yZVVwZGF0ZVRpbWVyRmlyZWQpCiAgICAgLCBtX3RpbGVTaXplKGRlZmF1bHRU
aWxlRGltZW5zaW9uLCBkZWZhdWx0VGlsZURpbWVuc2lvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcAppbmRleCBmNzkz
ZGI2Li45MWQzOTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9UaWxlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwCkBAIC0xMTYsMTMgKzExNiwxMyBAQCB2b2lkIFRp
bGVDb250cm9sbGVyOjpzZXRDb250ZW50c1NjYWxlKGZsb2F0IHNjYWxlKQogICAgICAgICBtX2Nv
dmVyYWdlTWFwLT5zZXREZXZpY2VTY2FsZUZhY3RvcihkZXZpY2VTY2FsZUZhY3Rvcik7CiAKICAg
ICBpZiAobV96b29tZWRPdXRUaWxlR3JpZCAmJiBtX3pvb21lZE91dFRpbGVHcmlkLT5zY2FsZSgp
ID09IHNjYWxlKSB7Ci0gICAgICAgIG1fdGlsZUdyaWQgPSBzdGQ6Om1vdmUobV96b29tZWRPdXRU
aWxlR3JpZCk7CisgICAgICAgIG1fdGlsZUdyaWQgPSBXVEY6Om1vdmUobV96b29tZWRPdXRUaWxl
R3JpZCk7CiAgICAgICAgIG1fdGlsZUdyaWQtPnJldmFsaWRhdGVUaWxlcygwKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAogICAgIGlmIChtX3pvb21lZE91dENvbnRlbnRzU2NhbGUgJiYgbV96
b29tZWRPdXRDb250ZW50c1NjYWxlID09IHRpbGVHcmlkKCkuc2NhbGUoKSAmJiB0aWxlR3JpZCgp
LnNjYWxlKCkgIT0gc2NhbGUgJiYgIW1faGFzVGlsZXNXaXRoVGVtcG9yYXJ5U2NhbGVGYWN0b3Ip
IHsKLSAgICAgICAgbV96b29tZWRPdXRUaWxlR3JpZCA9IHN0ZDo6bW92ZShtX3RpbGVHcmlkKTsK
KyAgICAgICAgbV96b29tZWRPdXRUaWxlR3JpZCA9IFdURjo6bW92ZShtX3RpbGVHcmlkKTsKICAg
ICAgICAgbV90aWxlR3JpZCA9IHN0ZDo6bWFrZV91bmlxdWU8VGlsZUdyaWQ+KCp0aGlzKTsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9D
YWlyb1V0aWxpdGllc0VmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9l
ZmwvQ2Fpcm9VdGlsaXRpZXNFZmwuY3BwCmluZGV4IGM3MWQwNzguLjUxYWM2OTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9DYWlyb1V0aWxpdGllc0Vm
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0NhaXJvVXRp
bGl0aWVzRWZsLmNwcApAQCAtODIsNyArODIsNyBAQCBFZmxVbmlxdWVQdHI8RXZhc19PYmplY3Q+
IGV2YXNPYmplY3RGcm9tQ2Fpcm9JbWFnZVN1cmZhY2UoRXZhcyogY2FudmFzLCBjYWlyb19zdQog
CiAgICAgZXZhc19vYmplY3RfaW1hZ2VfZGF0YV9jb3B5X3NldChpbWFnZS5nZXQoKSwgZGF0YSk7
CiAKLSAgICByZXR1cm4gc3RkOjptb3ZlKGltYWdlKTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKGlt
YWdlKTsKIH0KIAogUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGNyZWF0ZVN1cmZhY2VGb3JC
YWNraW5nU3RvcmUoRWNvcmVfRXZhcyogZWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RFZmwuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNERWZsLmNwcAppbmRl
eCBkZjdiNzFjLi42Y2RkNWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzREVmbC5jcHAKQEAgLTE5OSw3
ICsxOTksNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjppc0dMRVMyQ29tcGxpYW50KCkgY29u
c3QKIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c2V0Q29udGV4dExvc3RDYWxsYmFjayhzdGQ6
OnVuaXF1ZV9wdHI8Q29udGV4dExvc3RDYWxsYmFjaz4gY2FsbEJhY2spCiB7Ci0gICAgbV9wcml2
YXRlLT5zZXRDb250ZXh0TG9zdENhbGxiYWNrKHN0ZDo6bW92ZShjYWxsQmFjaykpOworICAgIG1f
cHJpdmF0ZS0+c2V0Q29udGV4dExvc3RDYWxsYmFjayhXVEY6Om1vdmUoY2FsbEJhY2spKTsKIH0K
IAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c2V0RXJyb3JNZXNzYWdlQ2FsbGJhY2soc3RkOjp1
bmlxdWVfcHRyPEVycm9yTWVzc2FnZUNhbGxiYWNrPikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZS5jcHAKaW5kZXggYWEwZjg1Zi4uZmEwNmQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNE
UHJpdmF0ZS5jcHAKQEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZTo6cmVsZWFzZVJlc291cmNlcygpCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
OjpzZXRDb250ZXh0TG9zdENhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQz
RDo6Q29udGV4dExvc3RDYWxsYmFjaz4gY2FsbEJhY2spCiB7Ci0gICAgbV9jb250ZXh0TG9zdENh
bGxiYWNrID0gc3RkOjptb3ZlKGNhbGxCYWNrKTsKKyAgICBtX2NvbnRleHRMb3N0Q2FsbGJhY2sg
PSBXVEY6Om1vdmUoY2FsbEJhY2spOwogfQogCiBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIEdy
YXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Zp
bHRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIu
aAppbmRleCAxOTBjMmJkLi5iMjA1N2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgog
ICAgIHsgfQogICAgIHZpcnR1YWwgfkZpbHRlcigpIHsgfQogCi0gICAgdm9pZCBzZXRTb3VyY2VJ
bWFnZShzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IHNvdXJjZUltYWdlKSB7IG1fc291cmNl
SW1hZ2UgPSBzdGQ6Om1vdmUoc291cmNlSW1hZ2UpOyB9CisgICAgdm9pZCBzZXRTb3VyY2VJbWFn
ZShzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IHNvdXJjZUltYWdlKSB7IG1fc291cmNlSW1h
Z2UgPSBXVEY6Om1vdmUoc291cmNlSW1hZ2UpOyB9CiAgICAgSW1hZ2VCdWZmZXIqIHNvdXJjZUlt
YWdlKCkgeyByZXR1cm4gbV9zb3VyY2VJbWFnZS5nZXQoKTsgfQogCiAgICAgRmxvYXRTaXplIGZp
bHRlclJlc29sdXRpb24oKSBjb25zdCB7IHJldHVybiBtX2ZpbHRlclJlc29sdXRpb247IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVy
T3BlcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Zp
bHRlck9wZXJhdGlvbi5oCmluZGV4IDVmNzNmMGEuLjk5MDM3NTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRp
b24uaApAQCAtMjg3LDcgKzI4Nyw3IEBAIGNsYXNzIEJsdXJGaWx0ZXJPcGVyYXRpb24gOiBwdWJs
aWMgRmlsdGVyT3BlcmF0aW9uIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxCbHVy
RmlsdGVyT3BlcmF0aW9uPiBjcmVhdGUoTGVuZ3RoIHN0ZERldmlhdGlvbikKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgQmx1ckZpbHRlck9wZXJhdGlvbihzdGQ6Om1vdmUoc3Rk
RGV2aWF0aW9uKSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJsdXJGaWx0ZXJPcGVy
YXRpb24oV1RGOjptb3ZlKHN0ZERldmlhdGlvbikpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiBjbG9uZSgpIGNvbnN0IG92ZXJyaWRlCkBAIC0zMDcs
NyArMzA3LDcgQEAgcHJpdmF0ZToKIAogICAgIEJsdXJGaWx0ZXJPcGVyYXRpb24oTGVuZ3RoIHN0
ZERldmlhdGlvbikKICAgICAgICAgOiBGaWx0ZXJPcGVyYXRpb24oQkxVUikKLSAgICAgICAgLCBt
X3N0ZERldmlhdGlvbihzdGQ6Om1vdmUoc3RkRGV2aWF0aW9uKSkKKyAgICAgICAgLCBtX3N0ZERl
dmlhdGlvbihXVEY6Om1vdmUoc3RkRGV2aWF0aW9uKSkKICAgICB7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNE
T3BlbkdMRVMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4
dGVuc2lvbnMzRE9wZW5HTEVTLmNwcAppbmRleCA2OGFmMTQwLi44YTMyN2QzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3Bl
bkdMRVMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9F
eHRlbnNpb25zM0RPcGVuR0xFUy5jcHAKQEAgLTE4Nyw3ICsxODcsNyBAQCBpbnQgRXh0ZW5zaW9u
czNET3BlbkdMRVM6OmdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKQogCiB2b2lkIEV4dGVuc2lv
bnMzRE9wZW5HTEVTOjpzZXRFWFRDb250ZXh0TG9zdENhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0cjxH
cmFwaGljc0NvbnRleHQzRDo6Q29udGV4dExvc3RDYWxsYmFjaz4gY2FsbGJhY2spCiB7Ci0gICAg
bV9jb250ZXh0TG9zdENhbGxiYWNrID0gc3RkOjptb3ZlKGNhbGxiYWNrKTsKKyAgICBtX2NvbnRl
eHRMb3N0Q2FsbGJhY2sgPSBXVEY6Om1vdmUoY2FsbGJhY2spOwogfQogCiB2b2lkIEV4dGVuc2lv
bnMzRE9wZW5HTEVTOjpyZWFkblBpeGVsc0VYVChpbnQgeCwgaW50IHksIEdDM0RzaXplaSB3aWR0
aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBHQzNE
c2l6ZWkgYnVmU2l6ZSwgdm9pZCAqZGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCA1MmIxZTFkLi40Y2I0MTVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3Bw
CkBAIC00MTIsNyArNDEyLDcgQEAgdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpyZWxlYXNl
SW5hY3RpdmVBdGxhc2VzVGltZXJGaXJlZChUaW1lcjxDb21wb3NpdGluZ0MKICAgICAgICAgYm9v
bCB1c2FibGVGb3JSb290Q29udGVudHNMYXllciA9ICFhdGxhcy0+c3VwcG9ydHNBbHBoYSgpOwog
ICAgICAgICBpZiAoYXRsYXMtPmlzSW5hY3RpdmUoKSkgewogICAgICAgICAgICAgaWYgKCFmb3Vu
ZEFjdGl2ZUF0bGFzRm9yUm9vdENvbnRlbnRzTGF5ZXIgJiYgIWF0bGFzVG9LZWVwQW55d2F5ICYm
IHVzYWJsZUZvclJvb3RDb250ZW50c0xheWVyKQotICAgICAgICAgICAgICAgIGF0bGFzVG9LZWVw
QW55d2F5ID0gc3RkOjptb3ZlKG1fdXBkYXRlQXRsYXNlc1tpXSk7CisgICAgICAgICAgICAgICAg
YXRsYXNUb0tlZXBBbnl3YXkgPSBXVEY6Om1vdmUobV91cGRhdGVBdGxhc2VzW2ldKTsKICAgICAg
ICAgICAgIG1fdXBkYXRlQXRsYXNlcy5yZW1vdmUoaSk7CiAgICAgICAgIH0gZWxzZSBpZiAodXNh
YmxlRm9yUm9vdENvbnRlbnRzTGF5ZXIpCiAgICAgICAgICAgICBmb3VuZEFjdGl2ZUF0bGFzRm9y
Um9vdENvbnRlbnRzTGF5ZXIgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAppbmRleCAyOWYwMThjLi5mNjRmZWYyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRp
bmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyLmNwcApAQCAtODg1LDcgKzg4NSw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjphZGp1c3RDb250ZW50c1NjYWxlKCkKICAgICAvLyB3ZSBkbyBub3Qgd2FudCB0byBkcm9wIHRo
ZSBwcmV2aW91cyBvbmUgYXMgdGhhdCBtaWdodCByZXN1bHQgaW4KICAgICAvLyBicmllZmx5IHNl
ZWluZyBmbGlja2VyaW5nIGFzIHRoZSBvbGQgdGlsZXMgbWF5IGJlIGRyb3BwZWQgYmVmb3JlCiAg
ICAgLy8gc29tZXRoaW5nIHJlcGxhY2VzIHRoZW0uCi0gICAgbV9wcmV2aW91c0JhY2tpbmdTdG9y
ZSA9IHN0ZDo6bW92ZShtX21haW5CYWNraW5nU3RvcmUpOworICAgIG1fcHJldmlvdXNCYWNraW5n
U3RvcmUgPSBXVEY6Om1vdmUobV9tYWluQmFja2luZ1N0b3JlKTsKIAogICAgIC8vIE5vIHJlYXNv
biB0byBzYXZlIHRoZSBwcmV2aW91cyBiYWNraW5nIHN0b3JlIGZvciBub24tdmlzaWJsZSBhcmVh
cy4KICAgICBtX3ByZXZpb3VzQmFja2luZ1N0b3JlLT5yZW1vdmVBbGxOb25WaXNpYmxlVGlsZXMo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9j
b29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NT
Y2VuZS5jcHAKaW5kZXggMzU3N2ZhOC4uNmNjZWE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKQEAgLTM5LDcgKzM5LDcg
QEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmRpc3BhdGNoT25NYWluVGhyZWFkKHN0
ZDo6ZnVuY3Rpb248dm9pZCgpPiBmdW5jdGkKICAgICBpZiAoaXNNYWluVGhyZWFkKCkpCiAgICAg
ICAgIGZ1bmN0aW9uKCk7CiAgICAgZWxzZQotICAgICAgICBjYWxsT25NYWluVGhyZWFkKHN0ZDo6
bW92ZShmdW5jdGlvbikpOworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURjo6bW92ZShmdW5j
dGlvbikpOwogfQogCiBzdGF0aWMgYm9vbCBsYXllclNob3VsZEhhdmVCYWNraW5nU3RvcmUoVGV4
dHVyZU1hcHBlckxheWVyKiBsYXllcikKQEAgLTM0MSw3ICszNDEsNyBAQCB2b2lkIENvb3JkaW5h
dGVkR3JhcGhpY3NTY2VuZTo6Y3JlYXRlTGF5ZXIoQ29vcmRpbmF0ZWRMYXllcklEIGlkKQogICAg
IHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlTWFwcGVyTGF5ZXI+IG5ld0xheWVyID0gc3RkOjptYWtl
X3VuaXF1ZTxUZXh0dXJlTWFwcGVyTGF5ZXI+KCk7CiAgICAgbmV3TGF5ZXItPnNldElEKGlkKTsK
ICAgICBuZXdMYXllci0+c2V0U2Nyb2xsQ2xpZW50KHRoaXMpOwotICAgIG1fbGF5ZXJzLmFkZChp
ZCwgc3RkOjptb3ZlKG5ld0xheWVyKSk7CisgICAgbV9sYXllcnMuYWRkKGlkLCBXVEY6Om1vdmUo
bmV3TGF5ZXIpKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmRlbGV0ZUxh
eWVycyhjb25zdCBWZWN0b3I8Q29vcmRpbmF0ZWRMYXllcklEPiYgbGF5ZXJJRHMpCkBAIC02MjUs
NyArNjI1LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnN5bmNSZW1vdGVDb250
ZW50KCkKICAgICBib29sIGNhbGxlZE9uTWFpblRocmVhZCA9IFdURjo6aXNNYWluVGhyZWFkKCk7
CiAgICAgaWYgKCFjYWxsZWRPbk1haW5UaHJlYWQpCiAgICAgICAgIG1fcmVuZGVyUXVldWVNdXRl
eC5sb2NrKCk7Ci0gICAgcmVuZGVyUXVldWUgPSBzdGQ6Om1vdmUobV9yZW5kZXJRdWV1ZSk7Cisg
ICAgcmVuZGVyUXVldWUgPSBXVEY6Om1vdmUobV9yZW5kZXJRdWV1ZSk7CiAgICAgaWYgKCFjYWxs
ZWRPbk1haW5UaHJlYWQpCiAgICAgICAgIG1fcmVuZGVyUXVldWVNdXRleC51bmxvY2soKTsKIApA
QCAtNjk5LDcgKzY5OSw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjphcHBlbmRV
cGRhdGUoc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGZ1bmN0aW9uKQogCiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKICAgICBNdXRleExvY2tlciBsb2NrZXIobV9yZW5kZXJRdWV1ZU11dGV4KTsK
LSAgICBtX3JlbmRlclF1ZXVlLmFwcGVuZChzdGQ6Om1vdmUoZnVuY3Rpb24pKTsKKyAgICBtX3Jl
bmRlclF1ZXVlLmFwcGVuZChXVEY6Om1vdmUoZnVuY3Rpb24pKTsKIH0KIAogdm9pZCBDb29yZGlu
YXRlZEdyYXBoaWNzU2NlbmU6OnNldEFjdGl2ZShib29sIGFjdGl2ZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q2FjaGVXaW4uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKaW5kZXgg
NDEwMjNhOC4uODQ1Yzc3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKQEAgLTU2OSw3ICs1NjksNyBAQCBQYXNzT3du
UHRyPEZvbnRQbGF0Zm9ybURhdGE+IEZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YShj
b25zdCBGb250RGVzY3JpcAogICAgIGJvb2wgc3ludGhlc2l6ZUJvbGQgPSBpc0dESUZvbnRXZWln
aHRCb2xkKHdlaWdodCkgJiYgIWlzR0RJRm9udFdlaWdodEJvbGQobG9nRm9udC5sZldlaWdodCk7
CiAgICAgYm9vbCBzeW50aGVzaXplSXRhbGljID0gZm9udERlc2NyaXB0aW9uLml0YWxpYygpICYm
ICFsb2dGb250LmxmSXRhbGljOwogCi0gICAgRm9udFBsYXRmb3JtRGF0YSogcmVzdWx0ID0gbmV3
IEZvbnRQbGF0Zm9ybURhdGEoc3RkOjptb3ZlKGhmb250KSwgZm9udERlc2NyaXB0aW9uLmNvbXB1
dGVkUGl4ZWxTaXplKCksIHN5bnRoZXNpemVCb2xkLCBzeW50aGVzaXplSXRhbGljLCB1c2VHREkp
OworICAgIEZvbnRQbGF0Zm9ybURhdGEqIHJlc3VsdCA9IG5ldyBGb250UGxhdGZvcm1EYXRhKFdU
Rjo6bW92ZShoZm9udCksIGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgpLCBzeW50
aGVzaXplQm9sZCwgc3ludGhlc2l6ZUl0YWxpYywgdXNlR0RJKTsKIAogI2lmIFVTRShDRykKICAg
ICBib29sIGZvbnRDcmVhdGlvbkZhaWxlZCA9ICFyZXN1bHQtPmNnRm9udCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGEuY3BwCmluZGV4IDJjZjM3ODQuLjA5OGUwOWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YS5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgRm9udFBsYXRmb3JtRGF0YSBGb250
Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQs
IGIKICAgICBhdXRvIGhmb250ID0gYWRvcHRHRElPYmplY3QoOjpDcmVhdGVGb250SW5kaXJlY3Qo
JmxvZ0ZvbnQpKTsKIAogICAgIFJldGFpblB0cjxDR0ZvbnRSZWY+IGNnRm9udCA9IGFkb3B0Q0Yo
Q0dGb250Q3JlYXRlV2l0aFBsYXRmb3JtRm9udCgmbG9nRm9udCkpOwotICAgIHJldHVybiBGb250
UGxhdGZvcm1EYXRhKHN0ZDo6bW92ZShoZm9udCksIGNnRm9udC5nZXQoKSwgc2l6ZSwgYm9sZCwg
aXRhbGljLCByZW5kZXJpbmdNb2RlID09IEFsdGVybmF0ZVJlbmRlcmluZ01vZGUpOworICAgIHJl
dHVybiBGb250UGxhdGZvcm1EYXRhKFdURjo6bW92ZShoZm9udCksIGNnRm9udC5nZXQoKSwgc2l6
ZSwgYm9sZCwgaXRhbGljLCByZW5kZXJpbmdNb2RlID09IEFsdGVybmF0ZVJlbmRlcmluZ01vZGUp
OwogfQogCiAvLyBDcmVhdGVzIGEgdW5pcXVlIGFuZCB1bnByZWRpY3RhYmxlIGZvbnQgbmFtZSwg
aW4gb3JkZXIgdG8gYXZvaWQgY29sbGlzaW9ucyBhbmQgdG8KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGFDYWlyby5jcHAKaW5kZXggZmY2MzQ0OS4uOWU2NmNiZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFD
YWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRD
dXN0b21QbGF0Zm9ybURhdGFDYWlyby5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgRm9udFBsYXRmb3Jt
RGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBi
b29sIGJvbGQsIGIKIAogICAgIGNhaXJvX2ZvbnRfZmFjZV90KiBmb250RmFjZSA9IGNhaXJvX3dp
bjMyX2ZvbnRfZmFjZV9jcmVhdGVfZm9yX2hmb250KGhmb250LmdldCgpKTsKIAotICAgIEZvbnRQ
bGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShzdGQ6Om1vdmUoaGZvbnQpLCBmb250RmFjZSwg
c2l6ZSwgYm9sZCwgaXRhbGljKTsKKyAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURh
dGEoV1RGOjptb3ZlKGhmb250KSwgZm9udEZhY2UsIHNpemUsIGJvbGQsIGl0YWxpYyk7CiAKICAg
ICBjYWlyb19mb250X2ZhY2VfZGVzdHJveShmb250RmFjZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhQ0dXaW4uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFD
R1dpbi5jcHAKaW5kZXggMjg2YmUwOC4uZWQ5NTUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDR1dpbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDR1dp
bi5jcHAKQEAgLTEyMSw3ICsxMjEsNyBAQCBGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1E
YXRhKEdESU9iamVjdDxIRk9OVD4gaGZvbnQsIENHRm9udFJlZiBmb250LCBmbG9hdAogICAgICwg
bV9vcmllbnRhdGlvbihIb3Jpem9udGFsKQogICAgICwgbV9zaXplKHNpemUpCiAgICAgLCBtX3dp
ZHRoVmFyaWFudChSZWd1bGFyV2lkdGgpCi0gICAgLCBtX2ZvbnQoU2hhcmVkR0RJT2JqZWN0PEhG
T05UPjo6Y3JlYXRlKHN0ZDo6bW92ZShoZm9udCkpKQorICAgICwgbV9mb250KFNoYXJlZEdESU9i
amVjdDxIRk9OVD46OmNyZWF0ZShXVEY6Om1vdmUoaGZvbnQpKSkKICAgICAsIG1fY2dGb250KGZv
bnQpCiAgICAgLCBtX2lzQ29sb3JCaXRtYXBGb250KGZhbHNlKQogICAgICwgbV9pc0NvbXBvc2l0
ZUZvbnRSZWZlcmVuY2UoZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YUNhaXJvV2luLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhQ2Fpcm9XaW4uY3BwCmlu
ZGV4IGQ4ZjgxNzcuLjMzOWMxNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhQ2Fpcm9XaW4uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhQ2Fpcm9XaW4uY3Bw
CkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgRm9udFBsYXRmb3JtRGF0YTo6cGxhdGZvcm1EYXRhSW5p
dChIRk9OVCBmb250LCBmbG9hdCBzaXplLCBIREMgaGRjLCBXQ0hBUioKIH0KIAogRm9udFBsYXRm
b3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShHRElPYmplY3Q8SEZPTlQ+IGZvbnQsIGNhaXJvX2Zv
bnRfZmFjZV90KiBmb250RmFjZSwgZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIG9ibGlxdWUp
Ci0gICAgOiBtX2ZvbnQoU2hhcmVkR0RJT2JqZWN0PEhGT05UPjo6Y3JlYXRlKHN0ZDo6bW92ZShm
b250KSkpCisgICAgOiBtX2ZvbnQoU2hhcmVkR0RJT2JqZWN0PEhGT05UPjo6Y3JlYXRlKFdURjo6
bW92ZShmb250KSkpCiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1fb3JpZW50YXRpb24oSG9y
aXpvbnRhbCkKICAgICAsIG1fd2lkdGhWYXJpYW50KFJlZ3VsYXJXaWR0aCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhV2lu
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1E
YXRhV2luLmNwcAppbmRleCA4NTE5NDI3Li4wOTMzMmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YVdpbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFXaW4u
Y3BwCkBAIC0zOCw3ICszOCw3IEBAIHVzaW5nIHN0ZDo6bWluOwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKEdESU9iamVjdDxIRk9OVD4g
Zm9udCwgZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIG9ibGlxdWUsIGJvb2wgdXNlR0RJKQot
ICAgIDogbV9mb250KFNoYXJlZEdESU9iamVjdDxIRk9OVD46OmNyZWF0ZShzdGQ6Om1vdmUoZm9u
dCkpKQorICAgIDogbV9mb250KFNoYXJlZEdESU9iamVjdDxIRk9OVD46OmNyZWF0ZShXVEY6Om1v
dmUoZm9udCkpKQogICAgICwgbV9zaXplKHNpemUpCiAgICAgLCBtX29yaWVudGF0aW9uKEhvcml6
b250YWwpCiAgICAgLCBtX3dpZHRoVmFyaWFudChSZWd1bGFyV2lkdGgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2hhcmVkR0RJT2JqZWN0LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2hhcmVkR0RJT2JqZWN0LmgKaW5k
ZXggZGQyNjgzYS4uMmFlNDhhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL1NoYXJlZEdESU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9TaGFyZWRHRElPYmplY3QuaApAQCAtMzYsNyArMzYsNyBAQCB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgU2hhcmVkR0RJT2JqZWN0IDogcHVibGljIFJlZkNvdW50
ZWQ8U2hhcmVkR0RJT2JqZWN0PAogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJl
ZEdESU9iamVjdD4gY3JlYXRlKEdESU9iamVjdDxUPiBvYmplY3QpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFNoYXJlZEdESU9iamVjdDxUPihzdGQ6Om1vdmUob2JqZWN0KSkp
OworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNoYXJlZEdESU9iamVjdDxUPihXVEY6Om1v
dmUob2JqZWN0KSkpOwogICAgIH0KIAogICAgIFQgZ2V0KCkgY29uc3QKQEAgLTUxLDcgKzUxLDcg
QEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFNoYXJlZEdESU9iamVjdChHRElP
YmplY3Q8VD4gb2JqZWN0KQotICAgICAgICA6IG1fb2JqZWN0KHN0ZDo6bW92ZShvYmplY3QpKQor
ICAgICAgICA6IG1fb2JqZWN0KFdURjo6bW92ZShvYmplY3QpKQogICAgIHsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250
RGF0YVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxl
Rm9udERhdGFXaW4uY3BwCmluZGV4IGZlZGQzZWQuLjZjMTQ4NjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YVdpbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhV2lu
LmNwcApAQCAtMTQwLDcgKzE0MCw3IEBAIFBhc3NSZWZQdHI8U2ltcGxlRm9udERhdGE+IFNpbXBs
ZUZvbnREYXRhOjpwbGF0Zm9ybUNyZWF0ZVNjYWxlZEZvbnREYXRhKGNvbnN0IEZvCiAgICAgR2V0
T2JqZWN0KG1fcGxhdGZvcm1EYXRhLmhmb250KCksIHNpemVvZihMT0dGT05UKSwgJndpbmZvbnQp
OwogICAgIHdpbmZvbnQubGZIZWlnaHQgPSAtbHJvdW5kZihzY2FsZWRTaXplICogKG1fcGxhdGZv
cm1EYXRhLnVzZUdESSgpID8gMSA6IDMyKSk7CiAgICAgYXV0byBoZm9udCA9IGFkb3B0R0RJT2Jq
ZWN0KDo6Q3JlYXRlRm9udEluZGlyZWN0KCZ3aW5mb250KSk7Ci0gICAgcmV0dXJuIFNpbXBsZUZv
bnREYXRhOjpjcmVhdGUoRm9udFBsYXRmb3JtRGF0YShzdGQ6Om1vdmUoaGZvbnQpLCBzY2FsZWRT
aXplLCBtX3BsYXRmb3JtRGF0YS5zeW50aGV0aWNCb2xkKCksIG1fcGxhdGZvcm1EYXRhLnN5bnRo
ZXRpY09ibGlxdWUoKSwgbV9wbGF0Zm9ybURhdGEudXNlR0RJKCkpLCBpc0N1c3RvbUZvbnQoKSwg
ZmFsc2UpOworICAgIHJldHVybiBTaW1wbGVGb250RGF0YTo6Y3JlYXRlKEZvbnRQbGF0Zm9ybURh
dGEoV1RGOjptb3ZlKGhmb250KSwgc2NhbGVkU2l6ZSwgbV9wbGF0Zm9ybURhdGEuc3ludGhldGlj
Qm9sZCgpLCBtX3BsYXRmb3JtRGF0YS5zeW50aGV0aWNPYmxpcXVlKCksIG1fcGxhdGZvcm1EYXRh
LnVzZUdESSgpKSwgaXNDdXN0b21Gb250KCksIGZhbHNlKTsKIH0KIAogYm9vbCBTaW1wbGVGb250
RGF0YTo6Y29udGFpbnNDaGFyYWN0ZXJzKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBpbnQgbGVu
Z3RoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1Rv
dWNoQ29udGV4dEhlbHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVG91
Y2hDb250ZXh0SGVscGVyLmNwcAppbmRleCA1NTg1ODYxLi41N2YyZjgwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVG91Y2hDb250ZXh0SGVscGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVG91Y2hDb250ZXh0SGVscGVyLmNwcApA
QCAtMzksNyArMzksNyBAQCBib29sIEd0a1RvdWNoQ29udGV4dEhlbHBlcjo6aGFuZGxlRXZlbnQo
R2RrRXZlbnQqIHRvdWNoRXZlbnQpCiAgICAgY2FzZSBHREtfVE9VQ0hfQkVHSU46IHsKICAgICAg
ICAgQVNTRVJUKCFtX3RvdWNoRXZlbnRzLmNvbnRhaW5zKHNlcXVlbmNlKSk7CiAgICAgICAgIEdV
bmlxdWVQdHI8R2RrRXZlbnQ+IGV2ZW50KGdka19ldmVudF9jb3B5KHRvdWNoRXZlbnQpKTsKLSAg
ICAgICAgbV90b3VjaEV2ZW50cy5hZGQoc2VxdWVuY2UsIHN0ZDo6bW92ZShldmVudCkpOworICAg
ICAgICBtX3RvdWNoRXZlbnRzLmFkZChzZXF1ZW5jZSwgV1RGOjptb3ZlKGV2ZW50KSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEdES19UT1VDSF9VUERBVEU6IHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xldmVsZGIvTGV2ZWxEQkRhdGFiYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xldmVsZGIvTGV2ZWxEQkRhdGFiYXNlLmNwcAppbmRl
eCA5MzYwM2Y2Li43Mjk2ODYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9s
ZXZlbGRiL0xldmVsREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bGV2ZWxkYi9MZXZlbERCRGF0YWJhc2UuY3BwCkBAIC0xNDksNyArMTQ5LDcgQEAgc3RkOjp1bmlx
dWVfcHRyPExldmVsREJEYXRhYmFzZT4gTGV2ZWxEQkRhdGFiYXNlOjpvcGVuKGNvbnN0IFN0cmlu
ZyYgZmlsZU5hbWUsIGMKIAogICAgIGF1dG8gcmVzdWx0ID0gc3RkOjptYWtlX3VuaXF1ZTxMZXZl
bERCRGF0YWJhc2U+KCk7CiAgICAgcmVzdWx0LT5tX2RiID0gc3RkOjp1bmlxdWVfcHRyPGxldmVs
ZGI6OkRCPihkYik7Ci0gICAgcmVzdWx0LT5tX2NvbXBhcmF0b3JBZGFwdGVyID0gc3RkOjptb3Zl
KGNvbXBhcmF0b3JBZGFwdGVyKTsKKyAgICByZXN1bHQtPm1fY29tcGFyYXRvckFkYXB0ZXIgPSBX
VEY6Om1vdmUoY29tcGFyYXRvckFkYXB0ZXIpOwogICAgIHJlc3VsdC0+bV9jb21wYXJhdG9yID0g
Y29tcGFyYXRvcjsKIAogICAgIHJldHVybiByZXN1bHQ7CkBAIC0xNjksOSArMTY5LDkgQEAgc3Rk
Ojp1bmlxdWVfcHRyPExldmVsREJEYXRhYmFzZT4gTGV2ZWxEQkRhdGFiYXNlOjpvcGVuSW5NZW1v
cnkoY29uc3QgTGV2ZWxEQkNvbXAKICAgICB9CiAKICAgICBhdXRvIHJlc3VsdCA9IHN0ZDo6bWFr
ZV91bmlxdWU8TGV2ZWxEQkRhdGFiYXNlPigpOwotICAgIHJlc3VsdC0+bV9lbnYgPSBzdGQ6Om1v
dmUoaW5NZW1vcnlFbnYpOworICAgIHJlc3VsdC0+bV9lbnYgPSBXVEY6Om1vdmUoaW5NZW1vcnlF
bnYpOwogICAgIHJlc3VsdC0+bV9kYiA9IHN0ZDo6dW5pcXVlX3B0cjxsZXZlbGRiOjpEQj4oZGIp
OwotICAgIHJlc3VsdC0+bV9jb21wYXJhdG9yQWRhcHRlciA9IHN0ZDo6bW92ZShjb21wYXJhdG9y
QWRhcHRlcik7CisgICAgcmVzdWx0LT5tX2NvbXBhcmF0b3JBZGFwdGVyID0gV1RGOjptb3ZlKGNv
bXBhcmF0b3JBZGFwdGVyKTsKICAgICByZXN1bHQtPm1fY29tcGFyYXRvciA9IGNvbXBhcmF0b3I7
CiAKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMjU4LDcgKzI1OCw3IEBAIHByaXZhdGU6CiB9CiAK
IEl0ZXJhdG9ySW1wbDo6SXRlcmF0b3JJbXBsKHN0ZDo6dW5pcXVlX3B0cjxsZXZlbGRiOjpJdGVy
YXRvcj4gaXQpCi0gICAgOiBtX2l0ZXJhdG9yKHN0ZDo6bW92ZShpdCkpCisgICAgOiBtX2l0ZXJh
dG9yKFdURjo6bW92ZShpdCkpCiB7CiB9CiAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnVuaXF1
ZV9wdHI8TGV2ZWxEQkl0ZXJhdG9yPiBMZXZlbERCRGF0YWJhc2U6OmNyZWF0ZUl0ZXJhdG9yKGNv
bnN0IExldmVsREJTbgogICAgIHN0ZDo6dW5pcXVlX3B0cjxsZXZlbGRiOjpJdGVyYXRvcj4gaSht
X2RiLT5OZXdJdGVyYXRvcihyZWFkT3B0aW9ucykpOwogICAgIGlmICghaSkgLy8gRklYTUU6IERv
dWJsZSBjaGVjayBpZiB3ZSBhY3R1YWxseSBuZWVkIHRvIGNoZWNrIHRoaXMuCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEl0ZXJhdG9ySW1wbD4o
c3RkOjptb3ZlKGkpKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxJdGVyYXRvckltcGw+
KFdURjo6bW92ZShpKSk7CiB9CiAKIGNvbnN0IExldmVsREJDb21wYXJhdG9yKiBMZXZlbERCRGF0
YWJhc2U6OmNvbXBhcmF0b3IoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL0hJREdhbWVwYWRQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmNwcAppbmRleCA3YTMwNGNlLi44MjVjZDM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmNw
cApAQCAtMTc2LDcgKzE3Niw3IEBAIHZvaWQgSElER2FtZXBhZFByb3ZpZGVyOjpkZXZpY2VBZGRl
ZChJT0hJRERldmljZVJlZiBkZXZpY2UpCiAgICAgICAgIG1fZ2FtZXBhZFZlY3Rvci5yZXNpemUo
aW5kZXggKyAxKTsKIAogICAgIG1fZ2FtZXBhZFZlY3RvcltpbmRleF0gPSBnYW1lcGFkLmdldCgp
OwotICAgIG1fZ2FtZXBhZE1hcC5zZXQoZGV2aWNlLCBzdGQ6Om1vdmUoZ2FtZXBhZCkpOworICAg
IG1fZ2FtZXBhZE1hcC5zZXQoZGV2aWNlLCBXVEY6Om1vdmUoZ2FtZXBhZCkpOwogCiAgICAgaWYg
KCFtX3Nob3VsZERpc3BhdGNoQ2FsbGJhY2tzKSB7CiAgICAgICAgIC8vIFRoaXMgYWRkZWQgZGV2
aWNlIGlzIHRoZSByZXN1bHQgb2YgdXMgc3RhcnRpbmcgdG8gbW9uaXRvciBnYW1lcGFkcy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGEuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGEuaAppbmRleCBmNzZiZGVlLi4w
ZDBiM2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JE
YXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YS5oCkBA
IC00NCwxNCArNDQsMTQgQEAgY2xhc3MgUmF3RGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPFJhd0Rh
dGE+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxSYXdEYXRhPiBjcmVhdGUoVmVj
dG9yPGNoYXI+JiYgZGF0YSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmF3
RGF0YShzdGQ6Om1vdmUoZGF0YSkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSYXdE
YXRhKFdURjo6bW92ZShkYXRhKSkpOwogICAgIH0KIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJh
d0RhdGE+IGNyZWF0ZShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3Qgc2l6ZSkKICAgICB7CiAgICAg
ICAgIFZlY3RvcjxjaGFyPiBkYXRhVmVjdG9yKHNpemUpOwogICAgICAgICBtZW1jcHkoZGF0YVZl
Y3Rvci5kYXRhKCksIGRhdGEsIHNpemUpOwotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJh
d0RhdGEoc3RkOjptb3ZlKGRhdGFWZWN0b3IpKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgUmF3RGF0YShXVEY6Om1vdmUoZGF0YVZlY3RvcikpKTsKICAgICB9CiAKICAgICBjb25zdCBj
aGFyKiBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmRhdGEoKTsgfQpAQCAtNTksNyArNTks
NyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgUmF3RGF0YShWZWN0b3I8Y2hhcj4mJiBkYXRh
KQotICAgICAgICA6IG1fZGF0YShzdGQ6Om1vdmUoZGF0YSkpCisgICAgICAgIDogbV9kYXRhKFdU
Rjo6bW92ZShkYXRhKSkKICAgICB7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JQYXJ0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JQYXJ0LmgKaW5kZXggOTNlNzliNC4uMDNiNGFjZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUGFydC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlBhcnQuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6
CiAKICAgICBCbG9iUGFydChWZWN0b3I8Y2hhcj4gZGF0YSkKICAgICAgICAgOiBtX3R5cGUoRGF0
YSkKLSAgICAgICAgLCBtX2RhdGEoc3RkOjptb3ZlKGRhdGEpKQorICAgICAgICAsIG1fZGF0YShX
VEY6Om1vdmUoZGF0YSkpCiAgICAgewogICAgIH0KIApAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6
CiAgICAgVmVjdG9yPGNoYXI+IG1vdmVEYXRhKCkKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3R5
cGUgPT0gRGF0YSk7Ci0gICAgICAgIHJldHVybiBzdGQ6Om1vdmUobV9kYXRhKTsKKyAgICAgICAg
cmV0dXJuIFdURjo6bW92ZShtX2RhdGEpOwogICAgIH0KIAogICAgIGNvbnN0IFVSTCYgdXJsKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUEhl
YWRlck1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBIZWFkZXJN
YXAuY3BwCmluZGV4IGNjM2VjYzMuLmIyZjVlMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlck1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVyTWFwLmNwcApAQCAtNjEsNyArNjEsNyBAQCB2b2lk
IEhUVFBIZWFkZXJNYXA6OmFkb3B0KHN0ZDo6dW5pcXVlX3B0cjxDcm9zc1RocmVhZEhUVFBIZWFk
ZXJNYXBEYXRhPiBkYXRhKQogICAgIG1faGVhZGVycy5jbGVhcigpOwogCiAgICAgZm9yIChhdXRv
JiBoZWFkZXIgOiAqZGF0YSkKLSAgICAgICAgbV9oZWFkZXJzLmFkZChzdGQ6Om1vdmUoaGVhZGVy
LmZpcnN0KSwgc3RkOjptb3ZlKGhlYWRlci5zZWNvbmQpKTsKKyAgICAgICAgbV9oZWFkZXJzLmFk
ZChXVEY6Om1vdmUoaGVhZGVyLmZpcnN0KSwgV1RGOjptb3ZlKGhlYWRlci5zZWNvbmQpKTsKIH0K
IAogc3RhdGljIFN0cmluZyBpbnRlcm5IVFRQSGVhZGVyTmFtZVN0cmluZyhjb25zdCBTdHJpbmcm
IG5hbWVTdHJpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwCmluZGV4IDc1NDBhNzguLmJkYWNhMTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZp
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRl
Tm90aWZpZXIuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgTmV0d29ya1N0YXRlTm90aWZpZXI6
OmFkZE5ldHdvcmtTdGF0ZUNoYW5nZUxpc3RlbmVyKHN0ZDo6ZnVuY3Rpb248dm9pZCAoYm9vCiAg
ICAgcmVnaXN0ZXJPYnNlcnZlcklmTmVjZXNzYXJ5KCk7CiAjZW5kaWYKIAotICAgIG1fbGlzdGVu
ZXJzLmFwcGVuZChzdGQ6Om1vdmUobGlzdGVuZXIpKTsKKyAgICBtX2xpc3RlbmVycy5hcHBlbmQo
V1RGOjptb3ZlKGxpc3RlbmVyKSk7CiB9CiAKIHZvaWQgTmV0d29ya1N0YXRlTm90aWZpZXI6Om5v
dGlmeU5ldHdvcmtTdGF0ZUNoYW5nZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKaW5kZXggOGJkYWYyNS4uYmRmNDJlOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaApA
QCAtMTY0LDcgKzE2NCw3IEBAIHB1YmxpYzoKIAogI2lmIFVTRShRVUlDS19MT09LKQogICAgIFF1
aWNrTG9va0hhbmRsZSogcXVpY2tMb29rSGFuZGxlKCkgeyByZXR1cm4gbV9xdWlja0xvb2suZ2V0
KCk7IH0KLSAgICB2b2lkIHNldFF1aWNrTG9va0hhbmRsZShzdGQ6OnVuaXF1ZV9wdHI8UXVpY2tM
b29rSGFuZGxlPiBoYW5kbGUpIHsgbV9xdWlja0xvb2sgPSBzdGQ6Om1vdmUoaGFuZGxlKTsgfQor
ICAgIHZvaWQgc2V0UXVpY2tMb29rSGFuZGxlKHN0ZDo6dW5pcXVlX3B0cjxRdWlja0xvb2tIYW5k
bGU+IGhhbmRsZSkgeyBtX3F1aWNrTG9vayA9IFdURjo6bW92ZShoYW5kbGUpOyB9CiAjZW5kaWYK
IAogI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKENVUkwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAppbmRleCA3YWQw
NWM1Li4wOWQ4ZmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgUGFzc093blB0
cjxSZXNvdXJjZVJlcXVlc3Q+IFJlc291cmNlUmVxdWVzdEJhc2U6OmFkb3B0KFBhc3NPd25QdHI8
Q3Jvc3NUaHJlYWRSZXMKICAgICByZXF1ZXN0LT5zZXRQcmlvcml0eShkYXRhLT5tX3ByaW9yaXR5
KTsKIAogICAgIHJlcXVlc3QtPnVwZGF0ZVJlc291cmNlUmVxdWVzdCgpOwotICAgIHJlcXVlc3Qt
Pm1faHR0cEhlYWRlckZpZWxkcy5hZG9wdChzdGQ6Om1vdmUoZGF0YS0+bV9odHRwSGVhZGVycykp
OworICAgIHJlcXVlc3QtPm1faHR0cEhlYWRlckZpZWxkcy5hZG9wdChXVEY6Om1vdmUoZGF0YS0+
bV9odHRwSGVhZGVycykpOwogCiAgICAgc2l6ZV90IGVuY29kaW5nQ291bnQgPSBkYXRhLT5tX3Jl
c3BvbnNlQ29udGVudERpc3Bvc2l0aW9uRW5jb2RpbmdGYWxsYmFja0FycmF5LnNpemUoKTsKICAg
ICBpZiAoZW5jb2RpbmdDb3VudCA+IDApIHsKQEAgLTQ2Nyw3ICs0NjcsNyBAQCB2b2lkIFJlc291
cmNlUmVxdWVzdEJhc2U6OnNldEhUVFBIZWFkZXJGaWVsZHMoSFRUUEhlYWRlck1hcCBoZWFkZXJG
aWVsZHMpCiB7CiAgICAgdXBkYXRlUmVzb3VyY2VSZXF1ZXN0KCk7CiAKLSAgICBtX2h0dHBIZWFk
ZXJGaWVsZHMgPSBzdGQ6Om1vdmUoaGVhZGVyRmllbGRzKTsKKyAgICBtX2h0dHBIZWFkZXJGaWVs
ZHMgPSBXVEY6Om1vdmUoaGVhZGVyRmllbGRzKTsKIAogICAgIGlmICh1cmwoKS5wcm90b2NvbElz
SW5IVFRQRmFtaWx5KCkpCiAgICAgICAgIG1fcGxhdGZvcm1SZXF1ZXN0VXBkYXRlZCA9IGZhbHNl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJl
c3BvbnNlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
UmVzcG9uc2VCYXNlLmNwcAppbmRleCAwMWVlNTNiLi43OWQ0ZDc2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNw
cApAQCAtMTA3LDcgKzEwNyw3IEBAIFBhc3NPd25QdHI8UmVzb3VyY2VSZXNwb25zZT4gUmVzb3Vy
Y2VSZXNwb25zZUJhc2U6OmFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSCiAgICAgcmVzcG9u
c2UtPnNldEhUVFBTdGF0dXNUZXh0KGRhdGEtPm1faHR0cFN0YXR1c1RleHQpOwogCiAgICAgcmVz
cG9uc2UtPmxhenlJbml0KENvbW1vbkFuZFVuY29tbW9uRmllbGRzKTsKLSAgICByZXNwb25zZS0+
bV9odHRwSGVhZGVyRmllbGRzLmFkb3B0KHN0ZDo6bW92ZShkYXRhLT5tX2h0dHBIZWFkZXJzKSk7
CisgICAgcmVzcG9uc2UtPm1faHR0cEhlYWRlckZpZWxkcy5hZG9wdChXVEY6Om1vdmUoZGF0YS0+
bV9odHRwSGVhZGVycykpOwogICAgIHJlc3BvbnNlLT5tX3Jlc291cmNlTG9hZFRpbWluZyA9IGRh
dGEtPm1fcmVzb3VyY2VMb2FkVGltaW5nOwogICAgIHJlc3BvbnNlLT5kb1BsYXRmb3JtQWRvcHQo
ZGF0YSk7CiAgICAgcmV0dXJuIHJlc3BvbnNlLnJlbGVhc2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvRm9ybURhdGFTdHJlYW1DRk5ldC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Zvcm1EYXRhU3RyZWFtQ0ZOZXQuY3Bw
CmluZGV4IDNlZDgyNzYuLjIwYzc1MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvRm9ybURhdGFTdHJlYW1DRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9Gb3JtRGF0YVN0cmVhbUNGTmV0LmNwcApAQCAtMTM5LDcg
KzEzOSw3IEBAIHN0YXRpYyBib29sIGFkdmFuY2VDdXJyZW50U3RyZWFtKEZvcm1TdHJlYW1GaWVs
ZHMqIGZvcm0pCiAgICAgICAgIHNpemVfdCBzaXplID0gbmV4dElucHV0Lm1fZGF0YS5zaXplKCk7
CiAgICAgICAgIE1hbGxvY1B0cjxjaGFyPiBkYXRhID0gbmV4dElucHV0Lm1fZGF0YS5yZWxlYXNl
QnVmZmVyKCk7CiAgICAgICAgIGZvcm0tPmN1cnJlbnRTdHJlYW0gPSBDRlJlYWRTdHJlYW1DcmVh
dGVXaXRoQnl0ZXNOb0NvcHkoMCwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBVSW50OCo+KGRhdGEu
Z2V0KCkpLCBzaXplLCBrQ0ZBbGxvY2F0b3JOdWxsKTsKLSAgICAgICAgZm9ybS0+Y3VycmVudERh
dGEgPSBzdGQ6Om1vdmUoZGF0YSk7CisgICAgICAgIGZvcm0tPmN1cnJlbnREYXRhID0gV1RGOjpt
b3ZlKGRhdGEpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBmaWxlIGhh
cyBiZWVuIGNoYW5nZWQgb3Igbm90IGlmIHJlcXVpcmVkLgogICAgICAgICBpZiAoaXNWYWxpZEZp
bGVUaW1lKG5leHRJbnB1dC5tX2V4cGVjdGVkRmlsZU1vZGlmaWNhdGlvblRpbWUpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxl
Q0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhh
bmRsZUNGTmV0LmNwcAppbmRleCBiNmY2YTM4Li42NmI0MmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5j
cHAKQEAgLTQ5NCw3ICs0OTQsNyBAQCBDRlVSTENvbm5lY3Rpb25SZWYgUmVzb3VyY2VIYW5kbGU6
OmNvbm5lY3Rpb24oKSBjb25zdAogUmV0YWluUHRyPENGVVJMQ29ubmVjdGlvblJlZj4gUmVzb3Vy
Y2VIYW5kbGU6OnJlbGVhc2VDb25uZWN0aW9uRm9yRG93bmxvYWQoKQogewogICAgIExPRyhOZXR3
b3JrLCAiQ0ZOZXQgLSBKb2IgJXAgcmVsZWFzaW5nIGNvbm5lY3Rpb24gJXAgZm9yIGRvd25sb2Fk
IiwgdGhpcywgZC0+bV9jb25uZWN0aW9uLmdldCgpKTsKLSAgICByZXR1cm4gc3RkOjptb3ZlKGQt
Pm1fY29ubmVjdGlvbik7CisgICAgcmV0dXJuIFdURjo6bW92ZShkLT5tX2Nvbm5lY3Rpb24pOwog
fQogCiBDRlN0cmluZ1JlZiBSZXNvdXJjZUhhbmRsZTo6c3luY2hyb25vdXNMb2FkUnVuTG9vcE1v
ZGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1
cmxDYWNoZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L0N1cmxDYWNoZU1hbmFnZXIuY3BwCmluZGV4IDdmYjAwNTEuLjZiMjZkNTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVNYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENhY2hlTWFu
YWdlci5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIEN1cmxDYWNoZU1hbmFnZXI6OmxvYWRJ
bmRleCgpCiAgICAgICAgICAgICBtX2N1cnJlbnRTdG9yYWdlU2l6ZSArPSBjYWNoZUVudHJ5LT5l
bnRyeVNpemUoKTsKICAgICAgICAgICAgIG1ha2VSb29tRm9yTmV3RW50cnkoKTsKICAgICAgICAg
ICAgIG1fTFJVRW50cnlMaXN0LnByZXBlbmRPck1vdmVUb0ZpcnN0KHVybCk7Ci0gICAgICAgICAg
ICBtX2luZGV4LnNldCh1cmwsIHN0ZDo6bW92ZShjYWNoZUVudHJ5KSk7CisgICAgICAgICAgICBt
X2luZGV4LnNldCh1cmwsIFdURjo6bW92ZShjYWNoZUVudHJ5KSk7CiAgICAgICAgIH0gZWxzZQog
ICAgICAgICAgICAgY2FjaGVFbnRyeS0+aW52YWxpZGF0ZSgpOwogCkBAIC0yMTcsNyArMjE3LDcg
QEAgdm9pZCBDdXJsQ2FjaGVNYW5hZ2VyOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5k
bGUmIGpvYiwgUmVzb3VyY2VSZXNwb25zZSYKICAgICAgICAgYm9vbCBjYWNoZWFibGUgPSBjYWNo
ZUVudHJ5LT5wYXJzZVJlc3BvbnNlSGVhZGVycyhyZXNwb25zZSk7CiAgICAgICAgIGlmIChjYWNo
ZWFibGUpIHsKICAgICAgICAgICAgIG1fTFJVRW50cnlMaXN0LnByZXBlbmRPck1vdmVUb0ZpcnN0
KHVybCk7Ci0gICAgICAgICAgICBtX2luZGV4LnNldCh1cmwsIHN0ZDo6bW92ZShjYWNoZUVudHJ5
KSk7CisgICAgICAgICAgICBtX2luZGV4LnNldCh1cmwsIFdURjo6bW92ZShjYWNoZUVudHJ5KSk7
CiAgICAgICAgICAgICBzYXZlUmVzcG9uc2VIZWFkZXJzKHVybCwgcmVzcG9uc2UpOwogICAgICAg
ICB9CiAgICAgfSBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2lvcy9RdWlja0xvb2subW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lv
cy9RdWlja0xvb2subW0KaW5kZXggODlkZjQwOC4uOTZjODcxNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbQpAQCAtNDI4LDcgKzQyOCw3
IEBAIHN0ZDo6dW5pcXVlX3B0cjxRdWlja0xvb2tIYW5kbGU+IFF1aWNrTG9va0hhbmRsZTo6Y3Jl
YXRlKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UXVpY2tM
b29rSGFuZGxlPiBxdWlja0xvb2tIYW5kbGUobmV3IFF1aWNrTG9va0hhbmRsZShbaGFuZGxlLT5m
aXJzdFJlcXVlc3QoKS5uc1VSTFJlcXVlc3QoRG9Ob3RVcGRhdGVIVFRQQm9keSkgVVJMXSwgY29u
bmVjdGlvbiwgbnNSZXNwb25zZSwgZGVsZWdhdGUpKTsKICAgICBoYW5kbGUtPmNsaWVudCgpLT5k
aWRDcmVhdGVRdWlja0xvb2tIYW5kbGUoKnF1aWNrTG9va0hhbmRsZSk7Ci0gICAgcmV0dXJuIHN0
ZDo6bW92ZShxdWlja0xvb2tIYW5kbGUpOworICAgIHJldHVybiBXVEY6Om1vdmUocXVpY2tMb29r
SGFuZGxlKTsKIH0KIAogI2lmIFVTRShDRk5FVFdPUkspCkBAIC00NDIsNyArNDQyLDcgQEAgc3Rk
Ojp1bmlxdWVfcHRyPFF1aWNrTG9va0hhbmRsZT4gUXVpY2tMb29rSGFuZGxlOjpjcmVhdGUoUmVz
b3VyY2VIYW5kbGUqIGhhbmRsZSwKICAgICBXZWJRdWlja0xvb2tIYW5kbGVBc0RlbGVnYXRlICpk
ZWxlZ2F0ZSA9IFtbW1dlYlF1aWNrTG9va0hhbmRsZUFzRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRo
Q29ubmVjdGlvbkRlbGVnYXRlOmNvbm5lY3Rpb25EZWxlZ2F0ZV0gYXV0b3JlbGVhc2VdOwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxRdWlja0xvb2tIYW5kbGU+IHF1aWNrTG9va0hhbmRsZShuZXcgUXVp
Y2tMb29rSGFuZGxlKFtoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLm5zVVJMUmVxdWVzdChEb05vdFVw
ZGF0ZUhUVFBCb2R5KSBVUkxdLCBuaWwsIG5zUmVzcG9uc2UsIGRlbGVnYXRlKSk7CiAgICAgaGFu
ZGxlLT5jbGllbnQoKS0+ZGlkQ3JlYXRlUXVpY2tMb29rSGFuZGxlKCpxdWlja0xvb2tIYW5kbGUp
OwotICAgIHJldHVybiBzdGQ6Om1vdmUocXVpY2tMb29rSGFuZGxlKTsKKyAgICByZXR1cm4gV1RG
Ojptb3ZlKHF1aWNrTG9va0hhbmRsZSk7CiB9CiAKIENGVVJMUmVzcG9uc2VSZWYgUXVpY2tMb29r
SGFuZGxlOjpjZlJlc3BvbnNlKCkKQEAgLTQ2MCw3ICs0NjAsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8
UXVpY2tMb29rSGFuZGxlPiBRdWlja0xvb2tIYW5kbGU6OmNyZWF0ZShSZXNvdXJjZUxvYWRlciog
bG9hZGVyLAogICAgIFJldGFpblB0cjxXZWJSZXNvdXJjZUxvYWRlclF1aWNrTG9va0RlbGVnYXRl
PiBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXZWJSZXNvdXJjZUxvYWRlclF1aWNrTG9va0RlbGVnYXRl
IGFsbG9jXSBpbml0V2l0aFJlc291cmNlTG9hZGVyOmxvYWRlcl0pOwogICAgIHN0ZDo6dW5pcXVl
X3B0cjxRdWlja0xvb2tIYW5kbGU+IHF1aWNrTG9va0hhbmRsZShuZXcgUXVpY2tMb29rSGFuZGxl
KFtsb2FkZXItPm9yaWdpbmFsUmVxdWVzdCgpLm5zVVJMUmVxdWVzdChEb05vdFVwZGF0ZUhUVFBC
b2R5KSBVUkxdLCBuaWwsIHJlc3BvbnNlLCBkZWxlZ2F0ZS5nZXQoKSkpOwogICAgIGxvYWRlci0+
ZGlkQ3JlYXRlUXVpY2tMb29rSGFuZGxlKCpxdWlja0xvb2tIYW5kbGUpOwotICAgIHJldHVybiBz
dGQ6Om1vdmUocXVpY2tMb29rSGFuZGxlKTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKHF1aWNrTG9v
a0hhbmRsZSk7CiB9CiAKIE5TVVJMUmVzcG9uc2UgKlF1aWNrTG9va0hhbmRsZTo6bnNSZXNwb25z
ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKaW5kZXggY2JkNzRiNC4uMGRk
YTViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05l
dHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcApAQCAtMzcsNyArMzcs
NyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBOZXR3b3JrU3RvcmFnZVNlc3Npb246Ok5ldHdv
cmtTdG9yYWdlU2Vzc2lvbihzdGQ6OnVuaXF1ZV9wdHI8U291cE5ldHdvcmtTZXNzaW9uPiBzZXNz
aW9uKQotICAgIDogbV9zZXNzaW9uKHN0ZDo6bW92ZShzZXNzaW9uKSkKKyAgICA6IG1fc2Vzc2lv
bihXVEY6Om1vdmUoc2Vzc2lvbikpCiAgICAgLCBtX2lzUHJpdmF0ZShmYWxzZSkKIHsKIH0KQEAg
LTc5LDcgKzc5LDcgQEAgU291cE5ldHdvcmtTZXNzaW9uJiBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OnNvdXBOZXR3b3JrU2Vzc2lvbigpIGNvbnN0CiAKIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpzZXRTb3VwTmV0d29ya1Nlc3Npb24oc3RkOjp1bmlxdWVfcHRyPFNvdXBOZXR3b3JrU2Vzc2lv
bj4gc2Vzc2lvbikKIHsKLSAgICBtX3Nlc3Npb24gPSBzdGQ6Om1vdmUoc2Vzc2lvbik7CisgICAg
bV9zZXNzaW9uID0gV1RGOjptb3ZlKHNlc3Npb24pOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV0NEYXRhT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9XQ0RhdGFPYmplY3QuY3BwCmluZGV4IDI1ZGVlMTQuLmM3OTM3YjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XQ0RhdGFPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XQ0RhdGFPYmplY3QuY3BwCkBAIC0yNjQs
MTMgKzI2NCwxMyBAQCBTVERNRVRIT0RJTVAgV0NEYXRhT2JqZWN0OjpTZXREYXRhKEZPUk1BVEVU
QyogcGZvcm1hdGV0YywgU1RHTUVESVVNKiBwbWVkaXVtLCBCTwogICAgIFplcm9NZW1vcnkocFN0
Z01lZC5nZXQoKSwgc2l6ZW9mKFNUR01FRElVTSkpOwogCiAgICAgKmZldGMgPSAqcGZvcm1hdGV0
YzsKLSAgICBtX2Zvcm1hdHMuYXBwZW5kKHN0ZDo6bW92ZShmZXRjKSk7CisgICAgbV9mb3JtYXRz
LmFwcGVuZChXVEY6Om1vdmUoZmV0YykpOwogCiAgICAgaWYoZlJlbGVhc2UpCiAgICAgICAgICpw
U3RnTWVkID0gKnBtZWRpdW07CiAgICAgZWxzZQogICAgICAgICBDb3B5TWVkaXVtKHBTdGdNZWQu
Z2V0KCksIHBtZWRpdW0sIHBmb3JtYXRldGMpOwotICAgIG1fbWVkaXVtLmFwcGVuZChzdGQ6Om1v
dmUocFN0Z01lZCkpOworICAgIG1fbWVkaXVtLmFwcGVuZChXVEY6Om1vdmUocFN0Z01lZCkpOwog
CiAgICAgcmV0dXJuIFNfT0s7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5z
L1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcApp
bmRleCA2YmI0MGE1Li5hODhhZGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5z
L1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5j
cHAKQEAgLTExNzgsNyArMTE3OCw3IEBAIE5QRXJyb3IgUGx1Z2luVmlldzo6aGFuZGxlUG9zdChj
b25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHRhcmdldCwgdWludDMyX3QgbGVuCiAKICAgICBm
cmFtZUxvYWRSZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnNldEhUVFBNZXRob2QoIlBPU1QiKTsK
ICAgICBmcmFtZUxvYWRSZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnNldFVSTChtYWtlVVJMKG1f
cGFyZW50RnJhbWUtPmRvY3VtZW50KCktPmJhc2VVUkwoKSwgdXJsKSk7Ci0gICAgZnJhbWVMb2Fk
UmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRIVFRQSGVhZGVyRmllbGRzKHN0ZDo6bW92ZSho
ZWFkZXJGaWVsZHMpKTsKKyAgICBmcmFtZUxvYWRSZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnNl
dEhUVFBIZWFkZXJGaWVsZHMoV1RGOjptb3ZlKGhlYWRlckZpZWxkcykpOwogICAgIGZyYW1lTG9h
ZFJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuc2V0SFRUUEJvZHkoRm9ybURhdGE6OmNyZWF0ZShw
b3N0RGF0YSwgcG9zdERhdGFMZW5ndGgpKTsKICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldEZyYW1l
TmFtZSh0YXJnZXQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxv
YXRpbmdPYmplY3RzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG9hdGluZ09iamVj
dHMuY3BwCmluZGV4IDFiN2RhYTguLjViNWJmMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9GbG9hdGluZ09iamVjdHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9GbG9hdGluZ09iamVjdHMuY3BwCkBAIC0yODYsNyArMjg2LDcgQEAgdm9pZCBGbG9hdGlu
Z09iamVjdHM6Om1vdmVBbGxUb0Zsb2F0SW5mb01hcChSZW5kZXJlclRvRmxvYXRJbmZvTWFwJiBt
YXApCiAgICAgICAgIC8vIEZJWE1FOiBUaGUgb25seSByZWFzb24gaXQgaXMgc2FmZSB0byBtb3Zl
IHRoZXNlIG91dCBvZiB0aGUgc2V0IGlzIHRoYXQKICAgICAgICAgLy8gd2UgYXJlIGFib3V0IHRv
IGNsZWFyIGl0LiBPdGhlcndpc2UgaXQgd291bGQgYnJlYWsgdGhlIGhhc2ggdGFibGUgaW52YXJp
YW50LgogICAgICAgICAvLyBBIGNsZWFuIHdheSB0byBkbyB0aGlzIHdvdWxkIGJlIHRvIGFkZCBh
IHRha2VBbGwgZnVuY3Rpb24gdG8gSGFzaFNldC4KLSAgICAgICAgbWFwLmFkZCgmcmVuZGVyZXIs
IHN0ZDo6bW92ZSgqaXQpKTsKKyAgICAgICAgbWFwLmFkZCgmcmVuZGVyZXIsIFdURjo6bW92ZSgq
aXQpKTsKICAgICB9CiAgICAgY2xlYXIoKTsKIH0KQEAgLTM0OSw3ICszNDksNyBAQCBGbG9hdGlu
Z09iamVjdCogRmxvYXRpbmdPYmplY3RzOjphZGQoc3RkOjp1bmlxdWVfcHRyPEZsb2F0aW5nT2Jq
ZWN0PiBmbG9hdGluZ09iagogICAgIGluY3JlYXNlT2JqZWN0c0NvdW50KGZsb2F0aW5nT2JqZWN0
LT50eXBlKCkpOwogICAgIGlmIChmbG9hdGluZ09iamVjdC0+aXNQbGFjZWQoKSkKICAgICAgICAg
YWRkUGxhY2VkT2JqZWN0KGZsb2F0aW5nT2JqZWN0LmdldCgpKTsKLSAgICByZXR1cm4gbV9zZXQu
YWRkKHN0ZDo6bW92ZShmbG9hdGluZ09iamVjdCkpLml0ZXJhdG9yLT5nZXQoKTsKKyAgICByZXR1
cm4gbV9zZXQuYWRkKFdURjo6bW92ZShmbG9hdGluZ09iamVjdCkpLml0ZXJhdG9yLT5nZXQoKTsK
IH0KIAogdm9pZCBGbG9hdGluZ09iamVjdHM6OnJlbW92ZShGbG9hdGluZ09iamVjdCogZmxvYXRp
bmdPYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3Rh
dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAppbmRleCAx
MDQ2Yjg4Li4yZGQxNDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5
b3V0U3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5j
cHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBMYXlvdXRTdGF0ZTo6
TGF5b3V0U3RhdGUoc3RkOjp1bmlxdWVfcHRyPExheW91dFN0YXRlPiBuZXh0LCBSZW5kZXJCb3gq
IHJlbmRlcmVyLCBjb25zdCBMYXlvdXRTaXplJiBvZmZzZXQsIExheW91dFVuaXQgcGFnZUxvZ2lj
YWxIZWlnaHQsIGJvb2wgcGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkKQogICAgIDogbV9saW5lR3Jp
ZCgwKQotICAgICwgbV9uZXh0KHN0ZDo6bW92ZShuZXh0KSkKKyAgICAsIG1fbmV4dChXVEY6Om1v
dmUobmV4dCkpCiAjaWZuZGVmIE5ERUJVRwogICAgICwgbV9yZW5kZXJlcihyZW5kZXJlcikKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggODYzNmQz
Yi4uZDE0ZGIwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBA
IC0xNzMsNyArMTczLDcgQEAgcHJpdmF0ZToKIH07CiAKIFJlbmRlckJsb2NrOjpSZW5kZXJCbG9j
ayhFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSwgdW5zaWduZWQg
YmFzZVR5cGVGbGFncykKLSAgICA6IFJlbmRlckJveChlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUp
LCBiYXNlVHlwZUZsYWdzIHwgUmVuZGVyQmxvY2tGbGFnKQorICAgIDogUmVuZGVyQm94KGVsZW1l
bnQsIFdURjo6bW92ZShzdHlsZSksIGJhc2VUeXBlRmxhZ3MgfCBSZW5kZXJCbG9ja0ZsYWcpCiAg
ICAgLCBtX2xpbmVIZWlnaHQoLTEpCiAgICAgLCBtX2hhc01hcmdpbkJlZm9yZVF1aXJrKGZhbHNl
KQogICAgICwgbV9oYXNNYXJnaW5BZnRlclF1aXJrKGZhbHNlKQpAQCAtMTg1LDcgKzE4NSw3IEBA
IFJlbmRlckJsb2NrOjpSZW5kZXJCbG9jayhFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRl
clN0eWxlPiBzdHlsZSwgdW5zaWduZWQKIH0KIAogUmVuZGVyQmxvY2s6OlJlbmRlckJsb2NrKERv
Y3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUsIHVuc2lnbmVkIGJh
c2VUeXBlRmxhZ3MpCi0gICAgOiBSZW5kZXJCb3goZG9jdW1lbnQsIHN0ZDo6bW92ZShzdHlsZSks
IGJhc2VUeXBlRmxhZ3MgfCBSZW5kZXJCbG9ja0ZsYWcpCisgICAgOiBSZW5kZXJCb3goZG9jdW1l
bnQsIFdURjo6bW92ZShzdHlsZSksIGJhc2VUeXBlRmxhZ3MgfCBSZW5kZXJCbG9ja0ZsYWcpCiAg
ICAgLCBtX2xpbmVIZWlnaHQoLTEpCiAgICAgLCBtX2hhc01hcmdpbkJlZm9yZVF1aXJrKGZhbHNl
KQogICAgICwgbV9oYXNNYXJnaW5BZnRlclF1aXJrKGZhbHNlKQpAQCAtNDQ4LDcgKzQ0OCw3IEBA
IHZvaWQgUmVuZGVyQmxvY2s6OnNwbGl0QmxvY2tzKFJlbmRlckJsb2NrKiBmcm9tQmxvY2ssIFJl
bmRlckJsb2NrKiB0b0Jsb2NrLAogICAgICAgICBSZW5kZXJCbG9jayogYmxvY2tDdXJyID0gdG9S
ZW5kZXJCbG9jayhjdXJyKTsKICAgICAgICAgCiAgICAgICAgIC8vIENyZWF0ZSBhIG5ldyBjbG9u
ZS4KLSAgICAgICAgUmVuZGVyUHRyPFJlbmRlckJsb2NrPiBjbG9uZUNoaWxkID0gc3RkOjptb3Zl
KGNsb25lQmxvY2spOworICAgICAgICBSZW5kZXJQdHI8UmVuZGVyQmxvY2s+IGNsb25lQ2hpbGQg
PSBXVEY6Om1vdmUoY2xvbmVCbG9jayk7CiAgICAgICAgIGNsb25lQmxvY2sgPSBibG9ja0N1cnIt
PmNsb25lKCk7CiAKICAgICAgICAgLy8gSW5zZXJ0IG91ciBjaGlsZCBjbG9uZSBhcyB0aGUgZmly
c3QgY2hpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3Bw
CmluZGV4IDFiYzgwY2MuLmVhNjZhZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9ja0Zsb3cuY3BwCkBAIC05Miw3ICs5Miw3IEBAIFJlbmRlckJsb2NrRmxvdzo6TWFy
Z2luSW5mbzo6TWFyZ2luSW5mbyhSZW5kZXJCbG9ja0Zsb3cmIGJsb2NrLCBMYXlvdXRVbml0IGJl
Zm9yCiB9CiAKIFJlbmRlckJsb2NrRmxvdzo6UmVuZGVyQmxvY2tGbG93KEVsZW1lbnQmIGVsZW1l
bnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyQmxvY2soZWxlbWVu
dCwgc3RkOjptb3ZlKHN0eWxlKSwgUmVuZGVyQmxvY2tGbG93RmxhZykKKyAgICA6IFJlbmRlckJs
b2NrKGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSksIFJlbmRlckJsb2NrRmxvd0ZsYWcpCiAjaWYg
RU5BQkxFKElPU19URVhUX0FVVE9TSVpJTkcpCiAgICAgLCBtX3dpZHRoRm9yVGV4dEF1dG9zaXpp
bmcoLTEpCiAgICAgLCBtX2xpbmVDb3VudEZvclRleHRBdXRvc2l6aW5nKE5PVF9TRVQpCkBAIC0x
MDIsNyArMTAyLDcgQEAgUmVuZGVyQmxvY2tGbG93OjpSZW5kZXJCbG9ja0Zsb3coRWxlbWVudCYg
ZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB9CiAKIFJlbmRlckJsb2NrRmxv
dzo6UmVuZGVyQmxvY2tGbG93KERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZjxSZW5kZXJTdHls
ZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJCbG9jayhkb2N1bWVudCwgc3RkOjptb3ZlKHN0eWxlKSwg
UmVuZGVyQmxvY2tGbG93RmxhZykKKyAgICA6IFJlbmRlckJsb2NrKGRvY3VtZW50LCBXVEY6Om1v
dmUoc3R5bGUpLCBSZW5kZXJCbG9ja0Zsb3dGbGFnKQogI2lmIEVOQUJMRShJT1NfVEVYVF9BVVRP
U0laSU5HKQogICAgICwgbV93aWR0aEZvclRleHRBdXRvc2l6aW5nKC0xKQogICAgICwgbV9saW5l
Q291bnRGb3JUZXh0QXV0b3NpemluZyhOT1RfU0VUKQpAQCAtMTkxNiw3ICsxOTE2LDcgQEAgdm9p
ZCBSZW5kZXJCbG9ja0Zsb3c6OmxheW91dExpbmVHcmlkQm94KCkKICAgICBWZXJ0aWNhbFBvc2l0
aW9uQ2FjaGUgdmVydGljYWxQb3NpdGlvbkNhY2hlOwogICAgIGxpbmVHcmlkQm94LT5hbGlnbkJv
eGVzSW5CbG9ja0RpcmVjdGlvbihsb2dpY2FsSGVpZ2h0KCksIHRleHRCb3hEYXRhTWFwLCB2ZXJ0
aWNhbFBvc2l0aW9uQ2FjaGUpOwogICAgIAotICAgIHNldExpbmVHcmlkQm94KHN0ZDo6bW92ZShs
aW5lR3JpZEJveCkpOworICAgIHNldExpbmVHcmlkQm94KFdURjo6bW92ZShsaW5lR3JpZEJveCkp
OwogCiAgICAgLy8gRklYTUU6IElmIGFueSBvZiB0aGUgY2hhcmFjdGVyaXN0aWNzIG9mIHRoZSBi
b3ggY2hhbmdlIGNvbXBhcmVkIHRvIHRoZSBvbGQgb25lLCB0aGVuIHdlIG5lZWQgdG8gZG8gYSBk
ZWVwIGRpcnR5aW5nCiAgICAgLy8gKHNpbWlsYXIgdG8gd2hhdCBoYXBwZW5zIHdoZW4gdGhlIHBh
Z2UgaGVpZ2h0IGNoYW5nZXMpLiBJZGVhbGx5LCB0aG91Z2gsIHdlIG9ubHkgZG8gdGhpcyBpZiBz
b21lb25lIGlzIGFjdHVhbGx5IHNuYXBwaW5nCkBAIC0yMjIyLDcgKzIyMjIsNyBAQCBGbG9hdGlu
Z09iamVjdCogUmVuZGVyQmxvY2tGbG93OjppbnNlcnRGbG9hdGluZ09iamVjdChSZW5kZXJCb3gm
IGZsb2F0Qm94KQogCiAgICAgc2V0TG9naWNhbFdpZHRoRm9yRmxvYXQoZmxvYXRpbmdPYmplY3Qu
Z2V0KCksIGxvZ2ljYWxXaWR0aEZvckNoaWxkKGZsb2F0Qm94KSArIG1hcmdpblN0YXJ0Rm9yQ2hp
bGQoZmxvYXRCb3gpICsgbWFyZ2luRW5kRm9yQ2hpbGQoZmxvYXRCb3gpKTsKIAotICAgIHJldHVy
biBtX2Zsb2F0aW5nT2JqZWN0cy0+YWRkKHN0ZDo6bW92ZShmbG9hdGluZ09iamVjdCkpOworICAg
IHJldHVybiBtX2Zsb2F0aW5nT2JqZWN0cy0+YWRkKFdURjo6bW92ZShmbG9hdGluZ09iamVjdCkp
OwogfQogCiB2b2lkIFJlbmRlckJsb2NrRmxvdzo6cmVtb3ZlRmxvYXRpbmdPYmplY3QoUmVuZGVy
Qm94JiBmbG9hdEJveCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0Zsb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cu
aAppbmRleCA2YmYyNWQ2Li5kZWQ5MjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrRmxvdy5oCkBAIC0yNjksNyArMjY5LDcgQEAgcHVibGljOgogICAgIFJvb3RJbmxp
bmVCb3gqIGxpbmVHcmlkQm94KCkgY29uc3QgeyByZXR1cm4gaGFzUmFyZUJsb2NrRmxvd0RhdGEo
KSA/IHJhcmVCbG9ja0Zsb3dEYXRhKCktPm1fbGluZUdyaWRCb3guZ2V0KCkgOiBudWxscHRyOyB9
CiAgICAgdm9pZCBzZXRMaW5lR3JpZEJveChzdGQ6OnVuaXF1ZV9wdHI8Um9vdElubGluZUJveD4g
Ym94KQogICAgIHsKLSAgICAgICAgZW5zdXJlUmFyZUJsb2NrRmxvd0RhdGEoKS5tX2xpbmVHcmlk
Qm94ID0gc3RkOjptb3ZlKGJveCk7CisgICAgICAgIGVuc3VyZVJhcmVCbG9ja0Zsb3dEYXRhKCku
bV9saW5lR3JpZEJveCA9IFdURjo6bW92ZShib3gpOwogICAgIH0KICAgICB2b2lkIGxheW91dExp
bmVHcmlkQm94KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0xpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrTGluZUxheW91dC5jcHAKaW5kZXggZjc2YjM3MC4uMTM5MDRlNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKQEAgLTEyNiw3
ICsxMjYsNyBAQCBSb290SW5saW5lQm94KiBSZW5kZXJCbG9ja0Zsb3c6OmNyZWF0ZUFuZEFwcGVu
ZFJvb3RJbmxpbmVCb3goKQogewogICAgIGF1dG8gbmV3Um9vdEJveCA9IGNyZWF0ZVJvb3RJbmxp
bmVCb3goKTsKICAgICBSb290SW5saW5lQm94KiByb290Qm94ID0gbmV3Um9vdEJveC5nZXQoKTsK
LSAgICBtX2xpbmVCb3hlcy5hcHBlbmRMaW5lQm94KHN0ZDo6bW92ZShuZXdSb290Qm94KSk7Cisg
ICAgbV9saW5lQm94ZXMuYXBwZW5kTGluZUJveChXVEY6Om1vdmUobmV3Um9vdEJveCkpOwogCiAg
ICAgaWYgKFVOTElLRUxZKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpICYm
IGZpcnN0Um9vdEJveCgpID09IHJvb3RCb3gpIHsKICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUq
IGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKQEAgLTEzMTIsNyAr
MTMxMiw3IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpsaW5rVG9FbmRMaW5lSWZOZWVkZWQoTGlu
ZUxheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSkKICAgICAgICAgICAgIExheW91dFVuaXQgYm90dG9t
TGF5b3V0T3ZlcmZsb3cgPSBsYXN0Um9vdEJveCgpLT5sb2dpY2FsQm90dG9tTGF5b3V0T3ZlcmZs
b3coKTsKICAgICAgICAgICAgIGF1dG8gbmV3TGluZUJveCA9IHN0ZDo6bWFrZV91bmlxdWU8VHJh
aWxpbmdGbG9hdHNSb290SW5saW5lQm94PigqdGhpcyk7CiAgICAgICAgICAgICBhdXRvIHRyYWls
aW5nRmxvYXRzTGluZUJveCA9IG5ld0xpbmVCb3guZ2V0KCk7Ci0gICAgICAgICAgICBtX2xpbmVC
b3hlcy5hcHBlbmRMaW5lQm94KHN0ZDo6bW92ZShuZXdMaW5lQm94KSk7CisgICAgICAgICAgICBt
X2xpbmVCb3hlcy5hcHBlbmRMaW5lQm94KFdURjo6bW92ZShuZXdMaW5lQm94KSk7CiAgICAgICAg
ICAgICB0cmFpbGluZ0Zsb2F0c0xpbmVCb3gtPnNldENvbnN0cnVjdGVkKCk7CiAgICAgICAgICAg
ICBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCB0ZXh0Qm94RGF0YU1hcDsKICAgICAg
ICAgICAgIFZlcnRpY2FsUG9zaXRpb25DYWNoZSB2ZXJ0aWNhbFBvc2l0aW9uQ2FjaGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IGJjNWM5N2QuLjI4MTMyNGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC0xMDksNyArMTA5LDcgQEAg
c3RhdGljIGJvb2wgc2tpcEJvZHlCYWNrZ3JvdW5kKGNvbnN0IFJlbmRlckJveCogYm9keUVsZW1l
bnRSZW5kZXJlcikKIH0KIAogUmVuZGVyQm94OjpSZW5kZXJCb3goRWxlbWVudCYgZWxlbWVudCwg
UGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUsIHVuc2lnbmVkIGJhc2VUeXBlRmxhZ3MpCi0gICAg
OiBSZW5kZXJCb3hNb2RlbE9iamVjdChlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpLCBiYXNlVHlw
ZUZsYWdzKQorICAgIDogUmVuZGVyQm94TW9kZWxPYmplY3QoZWxlbWVudCwgV1RGOjptb3ZlKHN0
eWxlKSwgYmFzZVR5cGVGbGFncykKICAgICAsIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoKC0x
KQogICAgICwgbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgoLTEpCiAgICAgLCBtX2lubGluZUJv
eFdyYXBwZXIoMCkKQEAgLTExOCw3ICsxMTgsNyBAQCBSZW5kZXJCb3g6OlJlbmRlckJveChFbGVt
ZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSwgdW5zaWduZWQgYmFzZQog
fQogCiBSZW5kZXJCb3g6OlJlbmRlckJveChEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWY8UmVu
ZGVyU3R5bGU+IHN0eWxlLCB1bnNpZ25lZCBiYXNlVHlwZUZsYWdzKQotICAgIDogUmVuZGVyQm94
TW9kZWxPYmplY3QoZG9jdW1lbnQsIHN0ZDo6bW92ZShzdHlsZSksIGJhc2VUeXBlRmxhZ3MpCisg
ICAgOiBSZW5kZXJCb3hNb2RlbE9iamVjdChkb2N1bWVudCwgV1RGOjptb3ZlKHN0eWxlKSwgYmFz
ZVR5cGVGbGFncykKICAgICAsIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoKC0xKQogICAgICwg
bV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgoLTEpCiAgICAgLCBtX2lubGluZUJveFdyYXBwZXIo
MCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
Y3BwCmluZGV4IDRlZjM1MmEuLmM4YzM1Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtMTYxLDEyICsxNjEsMTIgQEAgYm9v
bCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6c2hvdWxkUGFpbnRBdExvd1F1YWxpdHkoR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0LCBJbWEKIH0KIAogUmVuZGVyQm94TW9kZWxPYmplY3Q6OlJlbmRlckJv
eE1vZGVsT2JqZWN0KEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxl
LCB1bnNpZ25lZCBiYXNlVHlwZUZsYWdzKQotICAgIDogUmVuZGVyTGF5ZXJNb2RlbE9iamVjdChl
bGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpLCBiYXNlVHlwZUZsYWdzIHwgUmVuZGVyQm94TW9kZWxP
YmplY3RGbGFnKQorICAgIDogUmVuZGVyTGF5ZXJNb2RlbE9iamVjdChlbGVtZW50LCBXVEY6Om1v
dmUoc3R5bGUpLCBiYXNlVHlwZUZsYWdzIHwgUmVuZGVyQm94TW9kZWxPYmplY3RGbGFnKQogewog
fQogCiBSZW5kZXJCb3hNb2RlbE9iamVjdDo6UmVuZGVyQm94TW9kZWxPYmplY3QoRG9jdW1lbnQm
IGRvY3VtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSwgdW5zaWduZWQgYmFzZVR5cGVG
bGFncykKLSAgICA6IFJlbmRlckxheWVyTW9kZWxPYmplY3QoZG9jdW1lbnQsIHN0ZDo6bW92ZShz
dHlsZSksIGJhc2VUeXBlRmxhZ3MgfCBSZW5kZXJCb3hNb2RlbE9iamVjdEZsYWcpCisgICAgOiBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KGRvY3VtZW50LCBXVEY6Om1vdmUoc3R5bGUpLCBiYXNlVHlw
ZUZsYWdzIHwgUmVuZGVyQm94TW9kZWxPYmplY3RGbGFnKQogewogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwCmluZGV4IGFiNmM5ZjguLmUwNjc4ODQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwCkBAIC0zOCw3ICszOCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIFJlbmRl
ckJ1dHRvbjo6UmVuZGVyQnV0dG9uKEhUTUxGb3JtQ29udHJvbEVsZW1lbnQmIGVsZW1lbnQsIFBh
c3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyRmxleGlibGVCb3goZWxlbWVu
dCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlckZsZXhpYmxlQm94KGVsZW1lbnQsIFdU
Rjo6bW92ZShzdHlsZSkpCiAgICAgLCBtX2J1dHRvblRleHQoMCkKICAgICAsIG1faW5uZXIoMCkK
ICAgICAsIG1fZGVmYXVsdChmYWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKaW5kZXggYmI1ZDE0Yy4uNzYw
NmFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0
ZWRGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRl
cHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKQEAgLTExOCw3ICsxMTgsNyBAQCBwcml2YXRlOgogfTsK
IAogUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpSZW5kZXJEZXByZWNhdGVkRmxleGlibGVC
b3goRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBS
ZW5kZXJCbG9jayhlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpLCAwKQorICAgIDogUmVuZGVyQmxv
Y2soZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSwgMCkKIHsKICAgICBzZXRDaGlsZHJlbklubGlu
ZShmYWxzZSk7IC8vIEFsbCBvZiBvdXIgY2hpbGRyZW4gbXVzdCBiZSBibG9jay1sZXZlbAogICAg
IG1fc3RyZXRjaGluZ0NoaWxkcmVuID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRGV0YWlsc01hcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRGV0YWlsc01hcmtlci5jcHAKaW5kZXggNDU1ZDc5Ny4uYTc2ZTdmZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRldGFpbHNNYXJrZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXRhaWxzTWFya2VyLmNwcApA
QCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRN
TE5hbWVzOwogCiBSZW5kZXJEZXRhaWxzTWFya2VyOjpSZW5kZXJEZXRhaWxzTWFya2VyKERldGFp
bHNNYXJrZXJDb250cm9sJiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAg
ICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVu
ZGVyQmxvY2tGbG93KGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiB7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAppbmRleCA5ZDNkODNkLi4yNTFkZDRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCkBAIC04Niwx
NyArODYsMTcgQEAgaW5saW5lIFJlbmRlckVsZW1lbnQ6OlJlbmRlckVsZW1lbnQoQ29udGFpbmVy
Tm9kZSYgZWxlbWVudE9yRG9jdW1lbnQsIFBhc3NSZWY8UmUKICAgICAsIG1faGFzUGF1c2VkSW1h
Z2VBbmltYXRpb25zKGZhbHNlKQogICAgICwgbV9maXJzdENoaWxkKG51bGxwdHIpCiAgICAgLCBt
X2xhc3RDaGlsZChudWxscHRyKQotICAgICwgbV9zdHlsZShzdGQ6Om1vdmUoc3R5bGUpKQorICAg
ICwgbV9zdHlsZShXVEY6Om1vdmUoc3R5bGUpKQogewogfQogCiBSZW5kZXJFbGVtZW50OjpSZW5k
ZXJFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlLCB1
bnNpZ25lZCBiYXNlVHlwZUZsYWdzKQotICAgIDogUmVuZGVyRWxlbWVudChzdGF0aWNfY2FzdDxD
b250YWluZXJOb2RlJj4oZWxlbWVudCksIHN0ZDo6bW92ZShzdHlsZSksIGJhc2VUeXBlRmxhZ3Mp
CisgICAgOiBSZW5kZXJFbGVtZW50KHN0YXRpY19jYXN0PENvbnRhaW5lck5vZGUmPihlbGVtZW50
KSwgV1RGOjptb3ZlKHN0eWxlKSwgYmFzZVR5cGVGbGFncykKIHsKIH0KIAogUmVuZGVyRWxlbWVu
dDo6UmVuZGVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+
IHN0eWxlLCB1bnNpZ25lZCBiYXNlVHlwZUZsYWdzKQotICAgIDogUmVuZGVyRWxlbWVudChzdGF0
aWNfY2FzdDxDb250YWluZXJOb2RlJj4oZG9jdW1lbnQpLCBzdGQ6Om1vdmUoc3R5bGUpLCBiYXNl
VHlwZUZsYWdzKQorICAgIDogUmVuZGVyRWxlbWVudChzdGF0aWNfY2FzdDxDb250YWluZXJOb2Rl
Jj4oZG9jdW1lbnQpLCBXVEY6Om1vdmUoc3R5bGUpLCBiYXNlVHlwZUZsYWdzKQogewogfQogCkBA
IC0xMzgsNTggKzEzOCw1OCBAQCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gUmVuZGVyRWxlbWVu
dDo6Y3JlYXRlRm9yKEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZAogICAgIGNvbnN0IENv
bnRlbnREYXRhKiBjb250ZW50RGF0YSA9IHN0eWxlLmdldCgpLmNvbnRlbnREYXRhKCk7CiAgICAg
aWYgKGNvbnRlbnREYXRhICYmICFjb250ZW50RGF0YS0+bmV4dCgpICYmIGNvbnRlbnREYXRhLT5p
c0ltYWdlKCkgJiYgIWVsZW1lbnQuaXNQc2V1ZG9FbGVtZW50KCkpIHsKICAgICAgICAgYXV0byYg
c3R5bGVJbWFnZSA9IHRvSW1hZ2VDb250ZW50RGF0YShjb250ZW50RGF0YSktPmltYWdlKCk7Ci0g
ICAgICAgIGF1dG8gaW1hZ2UgPSBjcmVhdGVSZW5kZXJlcjxSZW5kZXJJbWFnZT4oZWxlbWVudCwg
c3RkOjptb3ZlKHN0eWxlKSwgY29uc3RfY2FzdDxTdHlsZUltYWdlKj4oJnN0eWxlSW1hZ2UpKTsK
KyAgICAgICAgYXV0byBpbWFnZSA9IGNyZWF0ZVJlbmRlcmVyPFJlbmRlckltYWdlPihlbGVtZW50
LCBXVEY6Om1vdmUoc3R5bGUpLCBjb25zdF9jYXN0PFN0eWxlSW1hZ2UqPigmc3R5bGVJbWFnZSkp
OwogICAgICAgICBpbWFnZS0+c2V0SXNHZW5lcmF0ZWRDb250ZW50KCk7Ci0gICAgICAgIHJldHVy
biBzdGQ6Om1vdmUoaW1hZ2UpOworICAgICAgICByZXR1cm4gV1RGOjptb3ZlKGltYWdlKTsKICAg
ICB9CiAKICAgICBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKEhUTUxOYW1lczo6cnVieVRhZykpIHsK
ICAgICAgICAgaWYgKHN0eWxlLmdldCgpLmRpc3BsYXkoKSA9PSBJTkxJTkUpCi0gICAgICAgICAg
ICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyUnVieUFzSW5saW5lPihlbGVtZW50LCBzdGQ6
Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJS
dWJ5QXNJbmxpbmU+KGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpOwogICAgICAgICBpZiAoc3R5
bGUuZ2V0KCkuZGlzcGxheSgpID09IEJMT0NLKQotICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVJl
bmRlcmVyPFJlbmRlclJ1YnlBc0Jsb2NrPihlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAg
ICAgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJSdWJ5QXNCbG9jaz4oZWxlbWVu
dCwgV1RGOjptb3ZlKHN0eWxlKSk7CiAgICAgfQogICAgIC8vIHRyZWF0IDxydD4gYXMgcnVieSB0
ZXh0IE9OTFkgaWYgaXQgc3RpbGwgaGFzIGl0cyBkZWZhdWx0IHRyZWF0bWVudCBvZiBibG9jawog
ICAgIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpydFRhZykgJiYgc3R5bGUuZ2V0
KCkuZGlzcGxheSgpID09IEJMT0NLKQotICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVu
ZGVyUnVieVRleHQ+KGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4g
Y3JlYXRlUmVuZGVyZXI8UmVuZGVyUnVieVRleHQ+KGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkp
OwogICAgIHN3aXRjaCAoc3R5bGUuZ2V0KCkuZGlzcGxheSgpKSB7CiAgICAgY2FzZSBOT05FOgog
ICAgICAgICBzdHlsZS5kcm9wUmVmKCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGNh
c2UgSU5MSU5FOgotICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVySW5saW5lPihl
bGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVy
PFJlbmRlcklubGluZT4oZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSk7CiAgICAgY2FzZSBCTE9D
SzoKICAgICBjYXNlIElOTElORV9CTE9DSzoKICAgICBjYXNlIENPTVBBQ1Q6Ci0gICAgICAgIHJl
dHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJCbG9ja0Zsb3c+KGVsZW1lbnQsIHN0ZDo6bW92ZShz
dHlsZSkpOworICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyQmxvY2tGbG93Pihl
bGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKTsKICAgICBjYXNlIExJU1RfSVRFTToKLSAgICAgICAg
cmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckxpc3RJdGVtPihlbGVtZW50LCBzdGQ6Om1vdmUo
c3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckxpc3RJdGVtPihl
bGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKTsKICAgICBjYXNlIFRBQkxFOgogICAgIGNhc2UgSU5M
SU5FX1RBQkxFOgotICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyVGFibGU+KGVs
ZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8
UmVuZGVyVGFibGU+KGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpOwogICAgIGNhc2UgVEFCTEVf
Uk9XX0dST1VQOgogICAgIGNhc2UgVEFCTEVfSEVBREVSX0dST1VQOgogICAgIGNhc2UgVEFCTEVf
Rk9PVEVSX0dST1VQOgotICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyVGFibGVT
ZWN0aW9uPihlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0
ZVJlbmRlcmVyPFJlbmRlclRhYmxlU2VjdGlvbj4oZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSk7
CiAgICAgY2FzZSBUQUJMRV9ST1c6Ci0gICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5k
ZXJUYWJsZVJvdz4oZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBj
cmVhdGVSZW5kZXJlcjxSZW5kZXJUYWJsZVJvdz4oZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSk7
CiAgICAgY2FzZSBUQUJMRV9DT0xVTU5fR1JPVVA6CiAgICAgY2FzZSBUQUJMRV9DT0xVTU46Ci0g
ICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJUYWJsZUNvbD4oZWxlbWVudCwgc3Rk
Ojptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJUYWJs
ZUNvbD4oZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSk7CiAgICAgY2FzZSBUQUJMRV9DRUxMOgot
ICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyVGFibGVDZWxsPihlbGVtZW50LCBz
dGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclRh
YmxlQ2VsbD4oZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSk7CiAgICAgY2FzZSBUQUJMRV9DQVBU
SU9OOgotICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyVGFibGVDYXB0aW9uPihl
bGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVy
PFJlbmRlclRhYmxlQ2FwdGlvbj4oZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSk7CiAgICAgY2Fz
ZSBCT1g6CiAgICAgY2FzZSBJTkxJTkVfQk9YOgotICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVy
ZXI8UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94PihlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUp
KTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJs
ZUJveD4oZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSk7CiAgICAgY2FzZSBGTEVYOgogICAgIGNh
c2UgSU5MSU5FX0ZMRVg6Ci0gICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJGbGV4
aWJsZUJveD4oZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBjcmVh
dGVSZW5kZXJlcjxSZW5kZXJGbGV4aWJsZUJveD4oZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSk7
CiAjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKICAgICBjYXNlIEdSSUQ6CiAgICAgY2FzZSBJ
TkxJTkVfR1JJRDoKLSAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckdyaWQ+KGVs
ZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8
UmVuZGVyR3JpZD4oZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSk7CiAjZW5kaWYKICAgICB9CiAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC00MDcsNyArNDA3LDcgQEAgdm9pZCBSZW5kZXJF
bGVtZW50OjpzZXRTdHlsZShQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIAogICAgIHN0eWxl
V2lsbENoYW5nZShkaWZmLCBzdHlsZS5nZXQoKSk7CiAKLSAgICBSZWY8UmVuZGVyU3R5bGU+IG9s
ZFN0eWxlKG1fc3R5bGUucmVwbGFjZShzdGQ6Om1vdmUoc3R5bGUpKSk7CisgICAgUmVmPFJlbmRl
clN0eWxlPiBvbGRTdHlsZShtX3N0eWxlLnJlcGxhY2UoV1RGOjptb3ZlKHN0eWxlKSkpOwogCiAg
ICAgdXBkYXRlRmlsbEltYWdlcyhvbGRTdHlsZS5nZXQoKS5iYWNrZ3JvdW5kTGF5ZXJzKCksIG1f
c3R5bGUtPmJhY2tncm91bmRMYXllcnMoKSk7CiAgICAgdXBkYXRlRmlsbEltYWdlcyhvbGRTdHls
ZS5nZXQoKS5tYXNrTGF5ZXJzKCksIG1fc3R5bGUtPm1hc2tMYXllcnMoKSk7CkBAIC03ODYsNyAr
Nzg2LDcgQEAgdm9pZCBSZW5kZXJFbGVtZW50Ojpwcm9wYWdhdGVTdHlsZVRvQW5vbnltb3VzQ2hp
bGRyZW4oU3R5bGVQcm9wYWdhdGlvblR5cGUgcHJvcGEKICAgICAgICAgaWYgKGVsZW1lbnRDaGls
ZC5pc0luRmxvd1Bvc2l0aW9uZWQoKSAmJiB0b1JlbmRlckJsb2NrKGVsZW1lbnRDaGlsZCkuaXNB
bm9ueW1vdXNCbG9ja0NvbnRpbnVhdGlvbigpKQogICAgICAgICAgICAgbmV3U3R5bGUuZ2V0KCku
c2V0UG9zaXRpb24oZWxlbWVudENoaWxkLnN0eWxlKCkucG9zaXRpb24oKSk7CiAKLSAgICAgICAg
ZWxlbWVudENoaWxkLnNldFN0eWxlKHN0ZDo6bW92ZShuZXdTdHlsZSkpOworICAgICAgICBlbGVt
ZW50Q2hpbGQuc2V0U3R5bGUoV1RGOjptb3ZlKG5ld1N0eWxlKSk7CiAgICAgfQogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAppbmRleCBjZWIxZTJiLi5kNDM4MDk5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKQEAgLTExMCw3ICsx
MTAsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBVcGRhdGVzIG9ubHkgdGhlIGxvY2FsIHN0eWxlIHB0
ciBvZiB0aGUgb2JqZWN0LiBEb2VzIG5vdCB1cGRhdGUgdGhlIHN0YXRlIG9mIHRoZSBvYmplY3Qs
CiAgICAgLy8gYW5kIHNvIG9ubHkgc2hvdWxkIGJlIGNhbGxlZCB3aGVuIHRoZSBzdHlsZSBpcyBr
bm93biBub3QgdG8gaGF2ZSBjaGFuZ2VkIChvciBmcm9tIHNldFN0eWxlKS4KLSAgICB2b2lkIHNl
dFN0eWxlSW50ZXJuYWwoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpIHsgbV9zdHlsZSA9IHN0
ZDo6bW92ZShzdHlsZSk7IH0KKyAgICB2b2lkIHNldFN0eWxlSW50ZXJuYWwoUGFzc1JlZjxSZW5k
ZXJTdHlsZT4gc3R5bGUpIHsgbV9zdHlsZSA9IFdURjo6bW92ZShzdHlsZSk7IH0KIAogICAgIC8v
IFJlcGFpbnQgb25seSBpZiBvdXIgb2xkIGJvdW5kcyBhbmQgbmV3IGJvdW5kcyBhcmUgZGlmZmVy
ZW50LiBUaGUgY2FsbGVyIG1heSBwYXNzIGluIG5ld0JvdW5kcyBhbmQgbmV3T3V0bGluZUJveCBp
ZiB0aGV5IGFyZSBrbm93bi4KICAgICBib29sIHJlcGFpbnRBZnRlckxheW91dElmTmVlZGVkKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGNvbnN0IExheW91
dFJlY3QmIG9sZEJvdW5kcywgY29uc3QgTGF5b3V0UmVjdCYgb2xkT3V0bGluZUJveCwgY29uc3Qg
TGF5b3V0UmVjdCogbmV3Qm91bmRzUHRyID0gbnVsbHB0ciwgY29uc3QgTGF5b3V0UmVjdCogbmV3
T3V0bGluZUJveFB0ciA9IG51bGxwdHIpOwpAQCAtMjQ3LDcgKzI0Nyw3IEBAIFJFTkRFUl9PQkpF
Q1RfVFlQRV9DQVNUUyhSZW5kZXJFbGVtZW50LCBpc1JlbmRlckVsZW1lbnQoKSkKIAogaW5saW5l
IHZvaWQgUmVuZGVyRWxlbWVudDo6c2V0QW5pbWF0YWJsZVN0eWxlKFBhc3NSZWY8UmVuZGVyU3R5
bGU+IHN0eWxlKQogewotICAgIHNldFN0eWxlKGFuaW1hdGlvbigpLnVwZGF0ZUFuaW1hdGlvbnMo
KnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpKTsKKyAgICBzZXRTdHlsZShhbmltYXRpb24oKS51cGRh
dGVBbmltYXRpb25zKCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKSk7CiB9CiAKIGlubGluZSBSZW5k
ZXJTdHlsZSYgUmVuZGVyRWxlbWVudDo6Zmlyc3RMaW5lU3R5bGUoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKaW5kZXggNmYw
M2FhMS4uY2JjMmNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVtYmVkZGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RW1iZWRkZWRPYmplY3QuY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIHN0YXRpYyBjb25zdCBDb2xvciYg
dW5hdmFpbGFibGVQbHVnaW5Cb3JkZXJDb2xvcigpCiB9CiAKIFJlbmRlckVtYmVkZGVkT2JqZWN0
OjpSZW5kZXJFbWJlZGRlZE9iamVjdChIVE1MRnJhbWVPd25lckVsZW1lbnQmIGVsZW1lbnQsIFBh
c3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyV2lkZ2V0KGVsZW1lbnQsIHN0
ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJXaWRnZXQoZWxlbWVudCwgV1RGOjptb3ZlKHN0
eWxlKSkKICAgICAsIG1faXNQbHVnaW5VbmF2YWlsYWJsZShmYWxzZSkKICAgICAsIG1faXNVbmF2
YWlsYWJsZVBsdWdpbkluZGljYXRvckhpZGRlbihmYWxzZSkKICAgICAsIG1fdW5hdmFpbGFibGVQ
bHVnaW5JbmRpY2F0b3JJc1ByZXNzZWQoZmFsc2UpCkBAIC0xMTQsNyArMTE0LDcgQEAgUmVuZGVy
RW1iZWRkZWRPYmplY3Q6On5SZW5kZXJFbWJlZGRlZE9iamVjdCgpCiAKIFJlbmRlclB0cjxSZW5k
ZXJFbWJlZGRlZE9iamVjdD4gUmVuZGVyRW1iZWRkZWRPYmplY3Q6OmNyZWF0ZUZvckFwcGxldChI
VE1MQXBwbGV0RWxlbWVudCYgYXBwbGV0LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsK
LSAgICBhdXRvIHJlbmRlcmVyID0gY3JlYXRlUmVuZGVyZXI8UmVuZGVyRW1iZWRkZWRPYmplY3Q+
KGFwcGxldCwgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgYXV0byByZW5kZXJlciA9IGNyZWF0ZVJl
bmRlcmVyPFJlbmRlckVtYmVkZGVkT2JqZWN0PihhcHBsZXQsIFdURjo6bW92ZShzdHlsZSkpOwog
ICAgIHJlbmRlcmVyLT5zZXRJbmxpbmUodHJ1ZSk7CiAgICAgcmV0dXJuIHJlbmRlcmVyOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5jcHAKaW5kZXggNjlkMDc4
OC4uNGRkYjVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZp
ZWxkc2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQu
Y3BwCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7CiAKIFJlbmRlckZpZWxkc2V0OjpSZW5kZXJGaWVsZHNldChIVE1MRmllbGRT
ZXRFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJl
bmRlckJsb2NrRmxvdyhlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyQmxv
Y2tGbG93KGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCmluZGV4IDgy
ZWUwN2EuLjU1ZTZlNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZpbGVVcGxvYWRDb250cm9sLmNwcApAQCAtNTksNyArNTksNyBAQCBjb25zdCBpbnQgZGVm
YXVsdFdpZHRoTnVtQ2hhcnMgPSAzODsKIGNvbnN0IGludCBidXR0b25TaGFkb3dIZWlnaHQgPSAy
OwogCiBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2woSFRN
TElucHV0RWxlbWVudCYgaW5wdXQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDog
UmVuZGVyQmxvY2tGbG93KGlucHV0LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyQmxv
Y2tGbG93KGlucHV0LCBXVEY6Om1vdmUoc3R5bGUpKQogICAgICwgbV9jYW5SZWNlaXZlRHJvcHBl
ZEZpbGVzKGlucHV0LmNhblJlY2VpdmVEcm9wcGVkRmlsZXMoKSkKIHsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCmluZGV4IGRhZWNiZmQuLjdm
ODFkYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJs
ZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94
LmNwcApAQCAtNjcsNyArNjcsNyBAQCBzdHJ1Y3QgUmVuZGVyRmxleGlibGVCb3g6OlZpb2xhdGlv
biB7CiAKIAogUmVuZGVyRmxleGlibGVCb3g6OlJlbmRlckZsZXhpYmxlQm94KEVsZW1lbnQmIGVs
ZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyQmxvY2soZWxl
bWVudCwgc3RkOjptb3ZlKHN0eWxlKSwgMCkKKyAgICA6IFJlbmRlckJsb2NrKGVsZW1lbnQsIFdU
Rjo6bW92ZShzdHlsZSksIDApCiAgICAgLCBtX29yZGVySXRlcmF0b3IoKnRoaXMpCiAgICAgLCBt
X251bWJlck9mSW5GbG93Q2hpbGRyZW5PbkZpcnN0TGluZSgtMSkKIHsKQEAgLTc1LDcgKzc1LDcg
QEAgUmVuZGVyRmxleGlibGVCb3g6OlJlbmRlckZsZXhpYmxlQm94KEVsZW1lbnQmIGVsZW1lbnQs
IFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWwKIH0KIAogUmVuZGVyRmxleGlibGVCb3g6OlJlbmRl
ckZsZXhpYmxlQm94KERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5
bGUpCi0gICAgOiBSZW5kZXJCbG9jayhkb2N1bWVudCwgc3RkOjptb3ZlKHN0eWxlKSwgMCkKKyAg
ICA6IFJlbmRlckJsb2NrKGRvY3VtZW50LCBXVEY6Om1vdmUoc3R5bGUpLCAwKQogICAgICwgbV9v
cmRlckl0ZXJhdG9yKCp0aGlzKQogICAgICwgbV9udW1iZXJPZkluRmxvd0NoaWxkcmVuT25GaXJz
dExpbmUoLTEpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Rmxvd1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVh
ZC5jcHAKaW5kZXggMGY0NWEyYi4uMjYyZTNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcApAQCAtNTIsNyArNTIsNyBAQAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBSZW5kZXJGbG93VGhyZWFkOjpSZW5kZXJGbG93VGhyZWFkKERvY3VtZW50JiBk
b2N1bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJCbG9ja0Zs
b3coZG9jdW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJCbG9ja0Zsb3coZG9j
dW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiAgICAgLCBtX3ByZXZpb3VzUmVnaW9uQ291bnQoMCkK
ICAgICAsIG1fYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQoMCkKICAgICAsIG1fY3VycmVu
dFJlZ2lvbk1haW50YWluZXIobnVsbHB0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RnJhbWUuY3BwCmluZGV4IDE4NmUwZjQuLmQ4YmEzMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZyYW1lLmNwcApAQCAtMjksNyArMjksNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBSZW5kZXJGcmFtZTo6UmVuZGVyRnJhbWUoSFRNTEZyYW1lRWxlbWVudCYgZnJhbWUsIFBh
c3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyRnJhbWVCYXNlKGZyYW1lLCBz
dGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyRnJhbWVCYXNlKGZyYW1lLCBXVEY6Om1vdmUo
c3R5bGUpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRnJhbWVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZUJh
c2UuY3BwCmluZGV4IDU0N2ZkYWMuLjNhZTQ0YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGcmFtZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGcmFtZUJhc2UuY3BwCkBAIC0zNCw3ICszNCw3IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIFJlbmRlckZyYW1lQmFzZTo6UmVuZGVyRnJhbWVCYXNlKEhUTUxGcmFtZUVsZW1l
bnRCYXNlJiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRl
cldpZGdldChlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyV2lkZ2V0KGVs
ZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRnJhbWVTZXQuY3BwCmluZGV4IGQ4YWViNDIuLmNlZDExMmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNwcApAQCAtNDYsNyArNDYsNyBAQAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJGcmFtZVNldDo6UmVuZGVyRnJhbWVTZXQoSFRN
TEZyYW1lU2V0RWxlbWVudCYgZnJhbWVTZXQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQot
ICAgIDogUmVuZGVyQm94KGZyYW1lU2V0LCBzdGQ6Om1vdmUoc3R5bGUpLCAwKQorICAgIDogUmVu
ZGVyQm94KGZyYW1lU2V0LCBXVEY6Om1vdmUoc3R5bGUpLCAwKQogICAgICwgbV9pc1Jlc2l6aW5n
KGZhbHNlKQogICAgICwgbV9pc0NoaWxkUmVzaXppbmcoZmFsc2UpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHAKaW5kZXggZTM1MmE1MS4uNjQ0MzNm
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcApA
QCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSZW5kZXJGdWxsU2Ny
ZWVuUGxhY2Vob2xkZXIgZmluYWwgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoK
ICAgICBSZW5kZXJGdWxsU2NyZWVuUGxhY2Vob2xkZXIoUmVuZGVyRnVsbFNjcmVlbiYgb3duZXIs
IFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgICAgICA6IFJlbmRlckJsb2NrRmxvdyhv
d25lci5kb2N1bWVudCgpLCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgICAgICA6IFJlbmRlckJsb2Nr
Rmxvdyhvd25lci5kb2N1bWVudCgpLCBXVEY6Om1vdmUoc3R5bGUpKQogICAgICAgICAsIG1fb3du
ZXIob3duZXIpIAogICAgIHsKICAgICB9CkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgUmVuZGVyRnVs
bFNjcmVlblBsYWNlaG9sZGVyOjp3aWxsQmVEZXN0cm95ZWQoKQogfQogCiBSZW5kZXJGdWxsU2Ny
ZWVuOjpSZW5kZXJGdWxsU2NyZWVuKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZjxSZW5kZXJT
dHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJGbGV4aWJsZUJveChkb2N1bWVudCwgc3RkOjptb3Zl
KHN0eWxlKSkKKyAgICA6IFJlbmRlckZsZXhpYmxlQm94KGRvY3VtZW50LCBXVEY6Om1vdmUoc3R5
bGUpKQogICAgICwgbV9wbGFjZWhvbGRlcigwKQogewogICAgIHNldFJlcGxhY2VkKGZhbHNlKTsg
CkBAIC0xOTMsMTEgKzE5MywxMSBAQCB2b2lkIFJlbmRlckZ1bGxTY3JlZW46OmNyZWF0ZVBsYWNl
aG9sZGVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlLCBjb25zdCBMYXlvdQogICAgICAgICBz
dHlsZS5nZXQoKS5zZXRIZWlnaHQoTGVuZ3RoKGZyYW1lUmVjdC5oZWlnaHQoKSwgRml4ZWQpKTsK
IAogICAgIGlmIChtX3BsYWNlaG9sZGVyKSB7Ci0gICAgICAgIG1fcGxhY2Vob2xkZXItPnNldFN0
eWxlKHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAgICBtX3BsYWNlaG9sZGVyLT5zZXRTdHlsZShX
VEY6Om1vdmUoc3R5bGUpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fcGxhY2Vo
b2xkZXIgPSBuZXcgUmVuZGVyRnVsbFNjcmVlblBsYWNlaG9sZGVyKCp0aGlzLCBzdGQ6Om1vdmUo
c3R5bGUpKTsKKyAgICBtX3BsYWNlaG9sZGVyID0gbmV3IFJlbmRlckZ1bGxTY3JlZW5QbGFjZWhv
bGRlcigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiAgICAgbV9wbGFjZWhvbGRlci0+aW5pdGlh
bGl6ZVN0eWxlKCk7CiAgICAgaWYgKHBhcmVudCgpKSB7CiAgICAgICAgIHBhcmVudCgpLT5hZGRD
aGlsZChtX3BsYWNlaG9sZGVyLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJH
cmlkLmNwcAppbmRleCBjNjFiNGMxLi5iNjVjNDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckdyaWQuY3BwCkBAIC0xODUsNyArMTg1LDcgQEAgcHVibGljOgogfTsKIAogUmVuZGVy
R3JpZDo6UmVuZGVyR3JpZChFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBz
dHlsZSkKLSAgICA6IFJlbmRlckJsb2NrKGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSksIDApCisg
ICAgOiBSZW5kZXJCbG9jayhlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpLCAwKQogICAgICwgbV9v
cmRlckl0ZXJhdG9yKCp0aGlzKQogewogICAgIC8vIEFsbCBvZiBvdXIgY2hpbGRyZW4gbXVzdCBi
ZSBibG9jayBsZXZlbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJIVE1MQ2FudmFzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2Fu
dmFzLmNwcAppbmRleCA4YTlmOWMzLi42OTIzOWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuY3BwCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIFJlbmRlckhUTUxDYW52YXM6
OlJlbmRlckhUTUxDYW52YXMoSFRNTENhbnZhc0VsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVu
ZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyUmVwbGFjZWQoZWxlbWVudCwgc3RkOjptb3Zl
KHN0eWxlKSwgZWxlbWVudC5zaXplKCkpCisgICAgOiBSZW5kZXJSZXBsYWNlZChlbGVtZW50LCBX
VEY6Om1vdmUoc3R5bGUpLCBlbGVtZW50LnNpemUoKSkKIHsKICAgICAvLyBBY3R1YWwgc2l6ZSBp
cyBub3Qga25vd24geWV0LCByZXBvcnQgdGhlIGRlZmF1bHQgaW50cmluc2ljIHNpemUuCiAgICAg
dmlldygpLmZyYW1lVmlldygpLmluY3JlbWVudFZpc3VhbGx5Tm9uRW1wdHlQaXhlbENvdW50KHJv
dW5kZWRJbnRTaXplKGludHJpbnNpY1NpemUoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySUZyYW1lLmNwcAppbmRleCBkNjU1ZTcxLi4wZWRjZTJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogICAgIAogUmVuZGVySUZyYW1l
OjpSZW5kZXJJRnJhbWUoSFRNTElGcmFtZUVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVy
U3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyRnJhbWVCYXNlKGVsZW1lbnQsIHN0ZDo6bW92ZShz
dHlsZSkpCisgICAgOiBSZW5kZXJGcmFtZUJhc2UoZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkK
IHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggMDRi
MWIzNy4uOWQxZmYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3Bw
CkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBSZW5kZXJJbWFnZTo6Y29sbGVjdFNlbGVjdGlvblJl
Y3RzKFZlY3RvcjxTZWxlY3Rpb25SZWN0PiYgcmVjdHMsIHVuc2lnbmVkLAogdXNpbmcgbmFtZXNw
YWNlIEhUTUxOYW1lczsKIAogUmVuZGVySW1hZ2U6OlJlbmRlckltYWdlKEVsZW1lbnQmIGVsZW1l
bnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlLCBTdHlsZUltYWdlKiBzdHlsZUltYWdlLCBj
b25zdCBmbG9hdCBpbWFnZURldmljZVBpeGVsUmF0aW8pCi0gICAgOiBSZW5kZXJSZXBsYWNlZChl
bGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpLCBJbnRTaXplKCkpCisgICAgOiBSZW5kZXJSZXBsYWNl
ZChlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpLCBJbnRTaXplKCkpCiAgICAgLCBtX2ltYWdlUmVz
b3VyY2Uoc3R5bGVJbWFnZSA/IHN0ZDo6bWFrZV91bmlxdWU8UmVuZGVySW1hZ2VSZXNvdXJjZVN0
eWxlSW1hZ2U+KCpzdHlsZUltYWdlKSA6IHN0ZDo6bWFrZV91bmlxdWU8UmVuZGVySW1hZ2VSZXNv
dXJjZT4oKSkKICAgICAsIG1fbmVlZHNUb1NldFNpemVGb3JBbHRUZXh0KGZhbHNlKQogICAgICwg
bV9kaWRJbmNyZW1lbnRWaXN1YWxseU5vbkVtcHR5UGl4ZWxDb3VudChmYWxzZSkKQEAgLTEzNSw3
ICsxMzUsNyBAQCBSZW5kZXJJbWFnZTo6UmVuZGVySW1hZ2UoRWxlbWVudCYgZWxlbWVudCwgUGFz
c1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUsIFN0eWxlSW1hZwogfQogCiBSZW5kZXJJbWFnZTo6UmVu
ZGVySW1hZ2UoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSwg
U3R5bGVJbWFnZSogc3R5bGVJbWFnZSkKLSAgICA6IFJlbmRlclJlcGxhY2VkKGRvY3VtZW50LCBz
dGQ6Om1vdmUoc3R5bGUpLCBJbnRTaXplKCkpCisgICAgOiBSZW5kZXJSZXBsYWNlZChkb2N1bWVu
dCwgV1RGOjptb3ZlKHN0eWxlKSwgSW50U2l6ZSgpKQogICAgICwgbV9pbWFnZVJlc291cmNlKHN0
eWxlSW1hZ2UgPyBzdGQ6Om1ha2VfdW5pcXVlPFJlbmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdl
Pigqc3R5bGVJbWFnZSkgOiBzdGQ6Om1ha2VfdW5pcXVlPFJlbmRlckltYWdlUmVzb3VyY2U+KCkp
CiAgICAgLCBtX25lZWRzVG9TZXRTaXplRm9yQWx0VGV4dChmYWxzZSkKICAgICAsIG1fZGlkSW5j
cmVtZW50VmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnQoZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCmluZGV4IDNjOGExNzIuLjMwMjhhNGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCkBAIC01MCwxMyArNTAsMTMgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVySW5saW5lOjpSZW5kZXJJbmxpbmUoRWxlbWVu
dCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJCb3hN
b2RlbE9iamVjdChlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpLCBSZW5kZXJJbmxpbmVGbGFnKQor
ICAgIDogUmVuZGVyQm94TW9kZWxPYmplY3QoZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSwgUmVu
ZGVySW5saW5lRmxhZykKIHsKICAgICBzZXRDaGlsZHJlbklubGluZSh0cnVlKTsKIH0KIAogUmVu
ZGVySW5saW5lOjpSZW5kZXJJbmxpbmUoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmPFJlbmRl
clN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlckJveE1vZGVsT2JqZWN0KGRvY3VtZW50LCBzdGQ6
Om1vdmUoc3R5bGUpLCBSZW5kZXJJbmxpbmVGbGFnKQorICAgIDogUmVuZGVyQm94TW9kZWxPYmpl
Y3QoZG9jdW1lbnQsIFdURjo6bW92ZShzdHlsZSksIFJlbmRlcklubGluZUZsYWcpCiB7CiAgICAg
c2V0Q2hpbGRyZW5JbmxpbmUodHJ1ZSk7CiB9CkBAIC0xNjcsNyArMTY3LDcgQEAgc3RhdGljIHZv
aWQgdXBkYXRlU3R5bGVPZkFub255bW91c0Jsb2NrQ29udGludWF0aW9ucyhSZW5kZXJCb3gqIGJv
eCwgY29uc3QgUmVuZGUKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBhdXRvIGJsb2Nr
U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlQW5vbnltb3VzU3R5bGVXaXRoRGlzcGxheSgmYmxv
Y2stPnN0eWxlKCksIEJMT0NLKTsKICAgICAgICAgYmxvY2tTdHlsZS5nZXQoKS5zZXRQb3NpdGlv
bihuZXdTdHlsZS0+cG9zaXRpb24oKSk7Ci0gICAgICAgIGJsb2NrLT5zZXRTdHlsZShzdGQ6Om1v
dmUoYmxvY2tTdHlsZSkpOworICAgICAgICBibG9jay0+c2V0U3R5bGUoV1RGOjptb3ZlKGJsb2Nr
U3R5bGUpKTsKICAgICB9CiB9CiAKQEAgLTMyNiw3ICszMjYsNyBAQCB2b2lkIFJlbmRlcklubGlu
ZTo6YWRkQ2hpbGRJZ25vcmluZ0NvbnRpbnVhdGlvbihSZW5kZXJPYmplY3QqIG5ld0NoaWxkLCBS
ZW5kZXJPYgogICAgICAgICBpZiAoYXV0byBwb3NpdGlvbmVkQW5jZXN0b3IgPSBpbkZsb3dQb3Np
dGlvbmVkSW5saW5lQW5jZXN0b3IodGhpcykpCiAgICAgICAgICAgICBuZXdTdHlsZS5nZXQoKS5z
ZXRQb3NpdGlvbihwb3NpdGlvbmVkQW5jZXN0b3ItPnN0eWxlKCkucG9zaXRpb24oKSk7CiAKLSAg
ICAgICAgUmVuZGVyQmxvY2sqIG5ld0JveCA9IG5ldyBSZW5kZXJCbG9ja0Zsb3coZG9jdW1lbnQo
KSwgc3RkOjptb3ZlKG5ld1N0eWxlKSk7CisgICAgICAgIFJlbmRlckJsb2NrKiBuZXdCb3ggPSBu
ZXcgUmVuZGVyQmxvY2tGbG93KGRvY3VtZW50KCksIFdURjo6bW92ZShuZXdTdHlsZSkpOwogICAg
ICAgICBuZXdCb3gtPmluaXRpYWxpemVTdHlsZSgpOwogICAgICAgICBSZW5kZXJCb3hNb2RlbE9i
amVjdCogb2xkQ29udGludWF0aW9uID0gY29udGludWF0aW9uKCk7CiAgICAgICAgIHNldENvbnRp
bnVhdGlvbihuZXdCb3gpOwpAQCAtMzk3LDcgKzM5Nyw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjpz
cGxpdElubGluZXMoUmVuZGVyQmxvY2sqIGZyb21CbG9jaywgUmVuZGVyQmxvY2sqIHRvQmxvY2ss
CiAgICAgICAgIEFTU0VSVChjdXJyLT5pc1JlbmRlcklubGluZSgpKTsKICAgICAgICAgaWYgKHNw
bGl0RGVwdGggPCBjTWF4U3BsaXREZXB0aCkgewogICAgICAgICAgICAgLy8gQ3JlYXRlIGEgbmV3
IGNsb25lLgotICAgICAgICAgICAgUmVuZGVyUHRyPFJlbmRlcklubGluZT4gY2xvbmVDaGlsZCA9
IHN0ZDo6bW92ZShjbG9uZUlubGluZSk7CisgICAgICAgICAgICBSZW5kZXJQdHI8UmVuZGVySW5s
aW5lPiBjbG9uZUNoaWxkID0gV1RGOjptb3ZlKGNsb25lSW5saW5lKTsKICAgICAgICAgICAgIGNs
b25lSW5saW5lID0gdG9SZW5kZXJJbmxpbmUoY3VyciktPmNsb25lKCk7CiAKICAgICAgICAgICAg
IC8vIEluc2VydCBvdXIgY2hpbGQgY2xvbmUgYXMgdGhlIGZpcnN0IGNoaWxkLgpAQCAtMTM4OCw3
ICsxMzg4LDcgQEAgSW5saW5lRmxvd0JveCogUmVuZGVySW5saW5lOjpjcmVhdGVBbmRBcHBlbmRJ
bmxpbmVGbG93Qm94KCkKICAgICBzZXRBbHdheXNDcmVhdGVMaW5lQm94ZXMoKTsKICAgICBhdXRv
IG5ld0Zsb3dCb3ggPSBjcmVhdGVJbmxpbmVGbG93Qm94KCk7CiAgICAgYXV0byBmbG93Qm94ID0g
bmV3Rmxvd0JveC5nZXQoKTsKLSAgICBtX2xpbmVCb3hlcy5hcHBlbmRMaW5lQm94KHN0ZDo6bW92
ZShuZXdGbG93Qm94KSk7CisgICAgbV9saW5lQm94ZXMuYXBwZW5kTGluZUJveChXVEY6Om1vdmUo
bmV3Rmxvd0JveCkpOwogICAgIHJldHVybiBmbG93Qm94OwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IGRlMzJmZDIu
LmRhM2M0NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuY3BwCkBAIC0zNzg1LDcgKzM3ODUsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29t
cG9zaXRvcjo6cmVnaXN0ZXJBbGxWaWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJzKCkKICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgbGF5ZXJNYXAuYWRkKGxheWVy
LmJhY2tpbmcoKS0+Z3JhcGhpY3NMYXllcigpLT5wbGF0Zm9ybUxheWVyKCksIHN0ZDo6bW92ZShj
b25zdHJhaW50cykpOworICAgICAgICBsYXllck1hcC5hZGQobGF5ZXIuYmFja2luZygpLT5ncmFw
aGljc0xheWVyKCktPnBsYXRmb3JtTGF5ZXIoKSwgV1RGOjptb3ZlKGNvbnN0cmFpbnRzKSk7CiAg
ICAgfQogICAgIAogICAgIGlmIChDaHJvbWVDbGllbnQqIGNsaWVudCA9IHRoaXMtPmNocm9tZUNs
aWVudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
TW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9k
ZWxPYmplY3QuY3BwCmluZGV4IGJlZGY2MzIuLmE5MjkwYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKQEAgLTM2LDEyICsz
NiwxMiBAQCBib29sIFJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnNfaGFkVHJhbnNmb3JtID0gZmFs
c2U7CiBib29sIFJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnNfbGF5ZXJXYXNTZWxmUGFpbnRpbmcg
PSBmYWxzZTsKIAogUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6UmVuZGVyTGF5ZXJNb2RlbE9iamVj
dChFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSwgdW5zaWduZWQg
YmFzZVR5cGVGbGFncykKLSAgICA6IFJlbmRlckVsZW1lbnQoZWxlbWVudCwgc3RkOjptb3ZlKHN0
eWxlKSwgYmFzZVR5cGVGbGFncyB8IFJlbmRlckxheWVyTW9kZWxPYmplY3RGbGFnKQorICAgIDog
UmVuZGVyRWxlbWVudChlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpLCBiYXNlVHlwZUZsYWdzIHwg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdEZsYWcpCiB7CiB9CiAKIFJlbmRlckxheWVyTW9kZWxPYmpl
Y3Q6OlJlbmRlckxheWVyTW9kZWxPYmplY3QoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmPFJl
bmRlclN0eWxlPiBzdHlsZSwgdW5zaWduZWQgYmFzZVR5cGVGbGFncykKLSAgICA6IFJlbmRlckVs
ZW1lbnQoZG9jdW1lbnQsIHN0ZDo6bW92ZShzdHlsZSksIGJhc2VUeXBlRmxhZ3MgfCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0RmxhZykKKyAgICA6IFJlbmRlckVsZW1lbnQoZG9jdW1lbnQsIFdURjo6
bW92ZShzdHlsZSksIGJhc2VUeXBlRmxhZ3MgfCBSZW5kZXJMYXllck1vZGVsT2JqZWN0RmxhZykK
IHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVC
cmVhay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmNwcApp
bmRleCAwYTI3Y2Q1Li41ZTVlNTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGluZUJyZWFrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGluZUJyZWFrLmNwcApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBz
dGF0aWMgY29uc3QgaW50IGludmFsaWRMaW5lSGVpZ2h0ID0gLTE7CiAKIFJlbmRlckxpbmVCcmVh
azo6UmVuZGVyTGluZUJyZWFrKEhUTUxFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0
eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlckJveE1vZGVsT2JqZWN0KGVsZW1lbnQsIHN0ZDo6bW92
ZShzdHlsZSksIDApCisgICAgOiBSZW5kZXJCb3hNb2RlbE9iamVjdChlbGVtZW50LCBXVEY6Om1v
dmUoc3R5bGUpLCAwKQogICAgICwgbV9pbmxpbmVCb3hXcmFwcGVyKG51bGxwdHIpCiAgICAgLCBt
X2NhY2hlZExpbmVIZWlnaHQoaW52YWxpZExpbmVIZWlnaHQpCiAgICAgLCBtX2lzV0JSKGVsZW1l
bnQuaGFzVGFnTmFtZShIVE1MTmFtZXM6OndiclRhZykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXggM2M0MzFlOC4uZDcyZmU2YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtODEsNyArODEsNyBAQCBjb25z
dCBpbnQgZGVmYXVsdFNpemUgPSA0OwogY29uc3QgaW50IGJhc2VsaW5lQWRqdXN0bWVudCA9IDc7
CiAKIFJlbmRlckxpc3RCb3g6OlJlbmRlckxpc3RCb3goSFRNTFNlbGVjdEVsZW1lbnQmIGVsZW1l
bnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyQmxvY2tGbG93KGVs
ZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCwg
V1RGOjptb3ZlKHN0eWxlKSkKICAgICAsIG1fb3B0aW9uc0NoYW5nZWQodHJ1ZSkKICAgICAsIG1f
c2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb25BZnRlckxheW91dChmYWxzZSkKICAgICAsIG1faW5BdXRv
c2Nyb2xsKGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpc3RJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5j
cHAKaW5kZXggZjllMjExMC4uZjlkODQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxpc3RJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdEl0ZW0uY3BwCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIFJlbmRlckxpc3RJdGVtOjpSZW5kZXJMaXN0
SXRlbShFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6
IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVy
QmxvY2tGbG93KGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiAgICAgLCBtX2hhc0V4cGxpY2l0
VmFsdWUoZmFsc2UpCiAgICAgLCBtX2lzVmFsdWVVcFRvRGF0ZShmYWxzZSkKICAgICAsIG1fbm90
SW5MaXN0KGZhbHNlKQpAQCAtNjQsMTAgKzY0LDEwIEBAIHZvaWQgUmVuZGVyTGlzdEl0ZW06OnN0
eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xk
CiAgICAgLy8gdXAgKGUuZy4sIGluIHNvbWUgZGVlcGx5IG5lc3RlZCBsaW5lIGJveCkuIFNlZSBD
U1MzIHNwZWMuCiAgICAgbmV3U3R5bGUuZ2V0KCkuaW5oZXJpdEZyb20oJnN0eWxlKCkpOwogICAg
IGlmICghbV9tYXJrZXIpIHsKLSAgICAgICAgbV9tYXJrZXIgPSBjcmVhdGVSZW5kZXJlcjxSZW5k
ZXJMaXN0TWFya2VyPigqdGhpcywgc3RkOjptb3ZlKG5ld1N0eWxlKSk7CisgICAgICAgIG1fbWFy
a2VyID0gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTGlzdE1hcmtlcj4oKnRoaXMsIFdURjo6bW92ZShu
ZXdTdHlsZSkpOwogICAgICAgICBtX21hcmtlci0+aW5pdGlhbGl6ZVN0eWxlKCk7CiAgICAgfSBl
bHNlCi0gICAgICAgIG1fbWFya2VyLT5zZXRTdHlsZShzdGQ6Om1vdmUobmV3U3R5bGUpKTsKKyAg
ICAgICAgbV9tYXJrZXItPnNldFN0eWxlKFdURjo6bW92ZShuZXdTdHlsZSkpOwogfQogCiB2b2lk
IFJlbmRlckxpc3RJdGVtOjp3aWxsQmVEZXN0cm95ZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCmluZGV4IDY3MmYzOTAuLjI4YTA1OGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKQEAgLTExMTgs
NyArMTExOCw3IEBAIFN0cmluZyBsaXN0TWFya2VyVGV4dChFTGlzdFN0eWxlVHlwZSB0eXBlLCBp
bnQgdmFsdWUpCiB9CiAKIFJlbmRlckxpc3RNYXJrZXI6OlJlbmRlckxpc3RNYXJrZXIoUmVuZGVy
TGlzdEl0ZW0mIGxpc3RJdGVtLCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJl
bmRlckJveChsaXN0SXRlbS5kb2N1bWVudCgpLCBzdGQ6Om1vdmUoc3R5bGUpLCAwKQorICAgIDog
UmVuZGVyQm94KGxpc3RJdGVtLmRvY3VtZW50KCksIFdURjo6bW92ZShzdHlsZSksIDApCiAgICAg
LCBtX2xpc3RJdGVtKGxpc3RJdGVtKQogewogICAgIC8vIGluaXQgUmVuZGVyT2JqZWN0IGF0dHJp
YnV0ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuY3BwCmluZGV4IGU3YzJm
NjIuLjAwNTQ2YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
ZWRpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhLmNwcApA
QCAtMzUsMTMgKzM1LDEzIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlck1lZGlhOjpS
ZW5kZXJNZWRpYShIVE1MTWVkaWFFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxl
PiBzdHlsZSkKLSAgICA6IFJlbmRlckltYWdlKGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisg
ICAgOiBSZW5kZXJJbWFnZShlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogewogICAgIHNldEhh
c1NoYWRvd0NvbnRyb2xzKHRydWUpOwogfQogCiBSZW5kZXJNZWRpYTo6UmVuZGVyTWVkaWEoSFRN
TE1lZGlhRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUsIGNvbnN0
IEludFNpemUmIGludHJpbnNpY1NpemUpCi0gICAgOiBSZW5kZXJJbWFnZShlbGVtZW50LCBzdGQ6
Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVySW1hZ2UoZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxl
KSkKIHsKICAgICBzZXRJbnRyaW5zaWNTaXplKGludHJpbnNpY1NpemUpOwogICAgIHNldEhhc1No
YWRvd0NvbnRyb2xzKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXggN2RlOTgyYS4uZGE4OTJiMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbEVs
ZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250
cm9sRWxlbWVudHMuY3BwCkBAIC0zNiw3ICszNiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IFJlbmRlck1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyOjpSZW5kZXJNZWRpYVZvbHVtZVNsaWRl
ckNvbnRhaW5lcihFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkK
LSAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDog
UmVuZGVyQmxvY2tGbG93KGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiB7CiB9CiAKQEAgLTYw
LDcgKzYwLDcgQEAgdm9pZCBSZW5kZXJNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lcjo6bGF5b3V0
KCkKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogUmVuZGVyTWVkaWFDb250cm9s
VGltZWxpbmVDb250YWluZXI6OlJlbmRlck1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyKEVs
ZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVy
RmxleGlibGVCb3goZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlckZsZXhp
YmxlQm94KGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiB7CiB9CiAKQEAgLTgyLDcgKzgyLDcg
QEAgdm9pZCBSZW5kZXJNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lcjo6bGF5b3V0KCkKICNp
ZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKIFJlbmRlclRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6
OlJlbmRlclRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCwgUGFzc1Jl
ZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCwgc3Rk
Ojptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50LCBXVEY6Om1vdmUo
c3R5bGUpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTWVudUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0
LmNwcAppbmRleCBjNjA3MGMwLi45YWFiMTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgc3RhdGljIHNpemVfdCBzZWxl
Y3RlZE9wdGlvbkNvdW50KGNvbnN0IFJlbmRlck1lbnVMaXN0JiByZW5kZXJNZW51TGlzdCkKICNl
bmRpZgogCiBSZW5kZXJNZW51TGlzdDo6UmVuZGVyTWVudUxpc3QoSFRNTFNlbGVjdEVsZW1lbnQm
IGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyRmxleGli
bGVCb3goZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlckZsZXhpYmxlQm94
KGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiAgICAgLCBtX2J1dHRvblRleHQobnVsbHB0cikK
ICAgICAsIG1faW5uZXJCbG9jayhudWxscHRyKQogICAgICwgbV9uZWVkc09wdGlvbnNXaWR0aFVw
ZGF0ZSh0cnVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZXRlci5jcHAKaW5kZXgg
OTc3NDJlOC4uM2MxNmZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck1ldGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWV0ZXIu
Y3BwCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7CiAKIFJlbmRlck1ldGVyOjpSZW5kZXJNZXRlcihIVE1MRWxlbWVudCYgZWxl
bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJCbG9ja0Zsb3co
ZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50
LCBXVEY6Om1vdmUoc3R5bGUpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQuY3BwCmluZGV4IGE1ZmZkOTIu
LjdjOTIwODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0
aUNvbHVtbkZsb3dUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQuY3BwCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGJvb2wgUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkOjpnU2hpZnRpbmdTcGFu
bmVyID0gZmFsc2U7CiAKIFJlbmRlck11bHRpQ29sdW1uRmxvd1RocmVhZDo6UmVuZGVyTXVsdGlD
b2x1bW5GbG93VGhyZWFkKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4g
c3R5bGUpCi0gICAgOiBSZW5kZXJGbG93VGhyZWFkKGRvY3VtZW50LCBzdGQ6Om1vdmUoc3R5bGUp
KQorICAgIDogUmVuZGVyRmxvd1RocmVhZChkb2N1bWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKICAg
ICAsIG1fbGFzdFNldFdvcmtlZE9uKG51bGxwdHIpCiAgICAgLCBtX2NvbHVtbkNvdW50KDEpCiAg
ICAgLCBtX2NvbHVtbldpZHRoKDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck11bHRpQ29sdW1uU2V0LmNwcAppbmRleCAyMmQ4MTAxLi4zMGY5MjZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHAKQEAgLTM3
LDcgKzM3LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyTXVsdGlDb2x1bW5TZXQ6
OlJlbmRlck11bHRpQ29sdW1uU2V0KFJlbmRlckZsb3dUaHJlYWQmIGZsb3dUaHJlYWQsIFBhc3NS
ZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyUmVnaW9uU2V0KGZsb3dUaHJlYWQu
ZG9jdW1lbnQoKSwgc3RkOjptb3ZlKHN0eWxlKSwgZmxvd1RocmVhZCkKKyAgICA6IFJlbmRlclJl
Z2lvblNldChmbG93VGhyZWFkLmRvY3VtZW50KCksIFdURjo6bW92ZShzdHlsZSksIGZsb3dUaHJl
YWQpCiAgICAgLCBtX2NvbXB1dGVkQ29sdW1uQ291bnQoMSkKICAgICAsIG1fY29tcHV0ZWRDb2x1
bW5XaWR0aCgwKQogICAgICwgbV9jb21wdXRlZENvbHVtbkhlaWdodCgwKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9s
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNwYW5u
ZXJQbGFjZWhvbGRlci5jcHAKaW5kZXggYWQxZjAxYi4uZWFhMWYzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TcGFu
bmVyUGxhY2Vob2xkZXIuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFJlbmRlck11bHRpQ29sdW1uU3Bh
bm5lclBsYWNlaG9sZGVyKiBSZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlcjo6Y3Jl
YXRlCiB9CiAKIFJlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyOjpSZW5kZXJNdWx0
aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlcihSZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQqIGZs
b3dUaHJlYWQsIFJlbmRlckJveCogc3Bhbm5lciwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUp
Ci0gICAgOiBSZW5kZXJCb3goZmxvd1RocmVhZC0+ZG9jdW1lbnQoKSwgc3RkOjptb3ZlKHN0eWxl
KSwgUmVuZGVyQm94TW9kZWxPYmplY3RGbGFnKQorICAgIDogUmVuZGVyQm94KGZsb3dUaHJlYWQt
PmRvY3VtZW50KCksIFdURjo6bW92ZShzdHlsZSksIFJlbmRlckJveE1vZGVsT2JqZWN0RmxhZykK
ICAgICAsIG1fc3Bhbm5lcihzcGFubmVyKQogICAgICwgbV9mbG93VGhyZWFkKGZsb3dUaHJlYWQp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93
RnJhZ21lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd0Zy
YWdtZW50LmNwcAppbmRleCA5NzI4MzgzLi42MTM2MmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5jcHAKQEAgLTQ0LDcgKzQ0
LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQ6OlJl
bmRlck5hbWVkRmxvd0ZyYWdtZW50KERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZjxSZW5kZXJT
dHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJSZWdpb24oZG9jdW1lbnQsIHN0ZDo6bW92ZShzdHls
ZSksIG51bGxwdHIpCisgICAgOiBSZW5kZXJSZWdpb24oZG9jdW1lbnQsIFdURjo6bW92ZShzdHls
ZSksIG51bGxwdHIpCiAgICAgLCBtX2hhc0N1c3RvbVJlZ2lvblN0eWxlKGZhbHNlKQogICAgICwg
bV9oYXNBdXRvTG9naWNhbEhlaWdodChmYWxzZSkKICAgICAsIG1faGFzQ29tcHV0ZWRBdXRvSGVp
Z2h0KGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5h
bWVkRmxvd1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRG
bG93VGhyZWFkLmNwcAppbmRleCA3ODA3ZWU5Li5jZDAzOWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcApAQCAtNDYsMTAgKzQ2
LDEwIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6UmVu
ZGVyTmFtZWRGbG93VGhyZWFkKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZjxSZW5kZXJTdHls
ZT4gc3R5bGUsIFBhc3NSZWY8V2ViS2l0TmFtZWRGbG93PiBuYW1lZEZsb3cpCi0gICAgOiBSZW5k
ZXJGbG93VGhyZWFkKGRvY3VtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyRmxv
d1RocmVhZChkb2N1bWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKICAgICAsIG1faGFzUmVnaW9uc1dp
dGhTdHlsaW5nKGZhbHNlKQogICAgICwgbV9kaXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVu
dChmYWxzZSkKLSAgICAsIG1fbmFtZWRGbG93KHN0ZDo6bW92ZShuYW1lZEZsb3cpKQorICAgICwg
bV9uYW1lZEZsb3coV1RGOjptb3ZlKG5hbWVkRmxvdykpCiAgICAgLCBtX3JlZ2lvbk92ZXJzZXRD
aGFuZ2VFdmVudFRpbWVyKHRoaXMsICZSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnJlZ2lvbk92ZXJz
ZXRDaGFuZ2VFdmVudFRpbWVyRmlyZWQpCiB7CiB9CkBAIC05Myw3ICs5Myw3IEBAIHZvaWQgUmVu
ZGVyTmFtZWRGbG93VGhyZWFkOjp1cGRhdGVXcml0aW5nTW9kZSgpCiAgICAgLy8gVGhlIGZpcnN0
IHJlZ2lvbiBkZWZpbmVzIHRoZSBwcmluY2lwYWwgd3JpdGluZyBtb2RlIGZvciB0aGUgZW50aXJl
IGZsb3cuCiAgICAgYXV0byBuZXdTdHlsZSA9IFJlbmRlclN0eWxlOjpjbG9uZSgmc3R5bGUoKSk7
CiAgICAgbmV3U3R5bGUuZ2V0KCkuc2V0V3JpdGluZ01vZGUoZmlyc3RGcmFnbWVudC0+c3R5bGUo
KS53cml0aW5nTW9kZSgpKTsKLSAgICBzZXRTdHlsZShzdGQ6Om1vdmUobmV3U3R5bGUpKTsKKyAg
ICBzZXRTdHlsZShXVEY6Om1vdmUobmV3U3R5bGUpKTsKIH0KIAogUmVuZGVyRWxlbWVudCogUmVu
ZGVyTmFtZWRGbG93VGhyZWFkOjpuZXh0UmVuZGVyZXJGb3JFbGVtZW50KEVsZW1lbnQmIGVsZW1l
bnQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJv
Z3Jlc3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmNwcApp
bmRleCA4N2ZhZjNiLi5jYjhiMWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUHJvZ3Jlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJQcm9ncmVzcy5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
UmVuZGVyUHJvZ3Jlc3M6OlJlbmRlclByb2dyZXNzKEhUTUxFbGVtZW50JiBlbGVtZW50LCBQYXNz
UmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50LCBz
dGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQsIFdURjo6bW92
ZShzdHlsZSkpCiAgICAgLCBtX3Bvc2l0aW9uKEhUTUxQcm9ncmVzc0VsZW1lbnQ6OkludmFsaWRQ
b3NpdGlvbikKICAgICAsIG1fYW5pbWF0aW9uU3RhcnRUaW1lKDApCiAgICAgLCBtX2FuaW1hdGlv
blJlcGVhdEludGVydmFsKDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUHRyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHRyLmgKaW5kZXgg
ZWYwNjkyMi4uODFjMTNmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclB0ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQdHIuaApAQCAt
MTA5LDcgKzEwOSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHRlbXBsYXRlPHR5cGVuYW1lIFU+
IGlubGluZSBSZW5kZXJQdHI8VD46OlJlbmRlclB0cihSZW5kZXJQCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBpbmxpbmUgYXV0byBSZW5kZXJQdHI8VD46Om9wZXJhdG9yPShSZW5kZXJQdHImJiBvKSAt
PiBSZW5kZXJQdHImCiB7CiAgICAgQVNTRVJUKCFvIHx8IG8gIT0gbV9wdHIpOwotICAgIFJlbmRl
clB0ciBwdHIgPSBzdGQ6Om1vdmUobyk7CisgICAgUmVuZGVyUHRyIHB0ciA9IFdURjo6bW92ZShv
KTsKICAgICBzd2FwKHB0cik7CiAgICAgcmV0dXJuICp0aGlzOwogfQpAQCAtMTE3LDcgKzExNyw3
IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBhdXRvIFJlbmRlclB0cjxUPjo6b3BlcmF0
b3I9KFJlbmRlclB0ciYmIG8pIC0+IFJlbmRlCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB0ZW1wbGF0
ZTx0eXBlbmFtZSBVPiBpbmxpbmUgYXV0byBSZW5kZXJQdHI8VD46Om9wZXJhdG9yPShSZW5kZXJQ
dHI8VT4mJiBvKSAtPiBSZW5kZXJQdHImCiB7CiAgICAgQVNTRVJUKCFvIHx8IG8gIT0gbV9wdHIp
OwotICAgIFJlbmRlclB0ciBwdHIgPSBzdGQ6Om1vdmUobyk7CisgICAgUmVuZGVyUHRyIHB0ciA9
IFdURjo6bW92ZShvKTsKICAgICBzd2FwKHB0cik7CiAgICAgcmV0dXJuICp0aGlzOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJRdW90ZS5jcHAKaW5kZXggYTExZDljYS4uNDIwZWI0
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUXVvdGUuY3BwCkBAIC0zMiw3ICsz
Miw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXVEY6OlVuaWNvZGU7CiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIFJlbmRlclF1b3RlOjpSZW5kZXJRdW90ZShEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWY8
UmVuZGVyU3R5bGU+IHN0eWxlLCBRdW90ZVR5cGUgcXVvdGUpCi0gICAgOiBSZW5kZXJJbmxpbmUo
ZG9jdW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJJbmxpbmUoZG9jdW1lbnQs
IFdURjo6bW92ZShzdHlsZSkpCiAgICAgLCBtX3R5cGUocXVvdGUpCiAgICAgLCBtX2RlcHRoKC0x
KQogICAgICwgbV9uZXh0KDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVnaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24u
Y3BwCmluZGV4IDkyNTkwY2QuLmRlMzYyMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZWdpb24uY3BwCkBAIC00OSw3ICs0OSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IFJlbmRlclJlZ2lvbjo6UmVuZGVyUmVnaW9uKEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVu
ZGVyU3R5bGU+IHN0eWxlLCBSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkKQotICAgIDogUmVu
ZGVyQmxvY2tGbG93KGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJCbG9j
a0Zsb3coZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKICAgICAsIG1fZmxvd1RocmVhZChmbG93
VGhyZWFkKQogICAgICwgbV9wYXJlbnROYW1lZEZsb3dUaHJlYWQobnVsbHB0cikKICAgICAsIG1f
aXNWYWxpZChmYWxzZSkKQEAgLTU3LDcgKzU3LDcgQEAgUmVuZGVyUmVnaW9uOjpSZW5kZXJSZWdp
b24oRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUsIFJlbmRlckYK
IH0KIAogUmVuZGVyUmVnaW9uOjpSZW5kZXJSZWdpb24oRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNz
UmVmPFJlbmRlclN0eWxlPiBzdHlsZSwgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCkKLSAg
ICA6IFJlbmRlckJsb2NrRmxvdyhkb2N1bWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJl
bmRlckJsb2NrRmxvdyhkb2N1bWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKICAgICAsIG1fZmxvd1Ro
cmVhZChmbG93VGhyZWFkKQogICAgICwgbV9wYXJlbnROYW1lZEZsb3dUaHJlYWQobnVsbHB0cikK
ICAgICAsIG1faXNWYWxpZChmYWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSZWdpb25TZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJlZ2lvblNldC5jcHAKaW5kZXggM2ZiM2RmZC4uYWUwNzNiMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvblNldC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvblNldC5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyUmVnaW9uU2V0OjpSZW5kZXJSZWdpb25TZXQoRG9jdW1l
bnQmIGRvY3VtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSwgUmVuZGVyRmxvd1RocmVh
ZCYgZmxvd1RocmVhZCkKLSAgICA6IFJlbmRlclJlZ2lvbihkb2N1bWVudCwgc3RkOjptb3ZlKHN0
eWxlKSwgJmZsb3dUaHJlYWQpCisgICAgOiBSZW5kZXJSZWdpb24oZG9jdW1lbnQsIFdURjo6bW92
ZShzdHlsZSksICZmbG93VGhyZWFkKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclJlcGxhY2VkLmNwcAppbmRleCA4MmU5YzE0Li45NzRlNzcyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKQEAgLTQ3LDIxICs0NywyMSBAQCBj
b25zdCBpbnQgY0RlZmF1bHRXaWR0aCA9IDMwMDsKIGNvbnN0IGludCBjRGVmYXVsdEhlaWdodCA9
IDE1MDsKIAogUmVuZGVyUmVwbGFjZWQ6OlJlbmRlclJlcGxhY2VkKEVsZW1lbnQmIGVsZW1lbnQs
IFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyQm94KGVsZW1lbnQsIHN0
ZDo6bW92ZShzdHlsZSksIFJlbmRlclJlcGxhY2VkRmxhZykKKyAgICA6IFJlbmRlckJveChlbGVt
ZW50LCBXVEY6Om1vdmUoc3R5bGUpLCBSZW5kZXJSZXBsYWNlZEZsYWcpCiAgICAgLCBtX2ludHJp
bnNpY1NpemUoY0RlZmF1bHRXaWR0aCwgY0RlZmF1bHRIZWlnaHQpCiB7CiAgICAgc2V0UmVwbGFj
ZWQodHJ1ZSk7CiB9CiAKIFJlbmRlclJlcGxhY2VkOjpSZW5kZXJSZXBsYWNlZChFbGVtZW50JiBl
bGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSwgY29uc3QgTGF5b3V0U2l6ZSYgaW50
cmluc2ljU2l6ZSkKLSAgICA6IFJlbmRlckJveChlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpLCBS
ZW5kZXJSZXBsYWNlZEZsYWcpCisgICAgOiBSZW5kZXJCb3goZWxlbWVudCwgV1RGOjptb3ZlKHN0
eWxlKSwgUmVuZGVyUmVwbGFjZWRGbGFnKQogICAgICwgbV9pbnRyaW5zaWNTaXplKGludHJpbnNp
Y1NpemUpCiB7CiAgICAgc2V0UmVwbGFjZWQodHJ1ZSk7CiB9CiAKIFJlbmRlclJlcGxhY2VkOjpS
ZW5kZXJSZXBsYWNlZChEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0
eWxlLCBjb25zdCBMYXlvdXRTaXplJiBpbnRyaW5zaWNTaXplKQotICAgIDogUmVuZGVyQm94KGRv
Y3VtZW50LCBzdGQ6Om1vdmUoc3R5bGUpLCBSZW5kZXJSZXBsYWNlZEZsYWcpCisgICAgOiBSZW5k
ZXJCb3goZG9jdW1lbnQsIFdURjo6bW92ZShzdHlsZSksIFJlbmRlclJlcGxhY2VkRmxhZykKICAg
ICAsIG1faW50cmluc2ljU2l6ZShpbnRyaW5zaWNTaXplKQogewogICAgIHNldFJlcGxhY2VkKHRy
dWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxpY2Eu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxpY2EuY3BwCmluZGV4IDM2
N2QyYzMuLjM2YWQ5ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJSZXBsaWNhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGlj
YS5jcHAKQEAgLTM1LDcgKzM1LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyUmVw
bGljYTo6UmVuZGVyUmVwbGljYShEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5
bGU+IHN0eWxlKQotICAgIDogUmVuZGVyQm94KGRvY3VtZW50LCBzdGQ6Om1vdmUoc3R5bGUpLCAw
KQorICAgIDogUmVuZGVyQm94KGRvY3VtZW50LCBXVEY6Om1vdmUoc3R5bGUpLCAwKQogewogICAg
IC8vIFRoaXMgaXMgYSBoYWNrLiBSZXBsaWNhcyBhcmUgc3ludGhldGljLCBhbmQgZG9uJ3QgcGlj
ayB1cCB0aGUgYXR0cmlidXRlcyBvZiB0aGUKICAgICAvLyByZW5kZXJlcnMgYmVpbmcgcmVwbGlj
YXRlZCwgc28gdGhleSBhbHdheXMgcmVwb3J0IHRoYXQgdGhleSBhcmUgaW5saW5lLCBub24tcmVw
bGFjZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieS5jcHAKaW5kZXggMzczZmNj
Ni4uNTFiMGQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1
YnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmNwcApAQCAt
MTA4LDcgKzEwOCw3IEBAIHN0YXRpYyBpbmxpbmUgUmVuZGVyUnVieVJ1biYgZmluZFJ1YnlSdW5Q
YXJlbnQoUmVuZGVyT2JqZWN0JiBjaGlsZCkKIC8vPT09IHJ1YnkgYXMgaW5saW5lIG9iamVjdCA9
PT0KIAogUmVuZGVyUnVieUFzSW5saW5lOjpSZW5kZXJSdWJ5QXNJbmxpbmUoRWxlbWVudCYgZWxl
bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJJbmxpbmUoZWxl
bWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlcklubGluZShlbGVtZW50LCBXVEY6
Om1vdmUoc3R5bGUpKQogewogfQogCkBAIC0yMTIsNyArMjEyLDcgQEAgUmVuZGVyT2JqZWN0KiBS
ZW5kZXJSdWJ5QXNJbmxpbmU6OnJlbW92ZUNoaWxkKFJlbmRlck9iamVjdCYgY2hpbGQpCiAvLz09
PSBydWJ5IGFzIGJsb2NrIG9iamVjdCA9PT0KIAogUmVuZGVyUnVieUFzQmxvY2s6OlJlbmRlclJ1
YnlBc0Jsb2NrKEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQot
ICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBS
ZW5kZXJCbG9ja0Zsb3coZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKIHsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5jcHAKaW5kZXggNDI2YmU5Zi4uN2Ri
ZTE0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuY3BwCkBA
IC0zNyw3ICszNyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclJ1YnlCYXNlOjpS
ZW5kZXJSdWJ5QmFzZShEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0
eWxlKQotICAgIDogUmVuZGVyQmxvY2tGbG93KGRvY3VtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQor
ICAgIDogUmVuZGVyQmxvY2tGbG93KGRvY3VtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogewogICAg
IHNldElubGluZShmYWxzZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUnVieVJ1bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVi
eVJ1bi5jcHAKaW5kZXggZjAzOGE3Ny4uYjJiMWY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSdWJ5UnVuLmNwcApAQCAtNDIsNyArNDIsNyBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBSZW5kZXJSdWJ5UnVuOjpSZW5kZXJSdWJ5UnVuKERvY3VtZW50JiBkb2N1bWVudCwg
UGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJCbG9ja0Zsb3coZG9jdW1l
bnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJCbG9ja0Zsb3coZG9jdW1lbnQsIFdU
Rjo6bW92ZShzdHlsZSkpCiB7CiAgICAgc2V0UmVwbGFjZWQodHJ1ZSk7CiAgICAgc2V0SW5saW5l
KHRydWUpOwpAQCAtMjAzLDcgKzIwMyw3IEBAIFJlbmRlclJ1YnlCYXNlKiBSZW5kZXJSdWJ5UnVu
OjpjcmVhdGVSdWJ5QmFzZSgpIGNvbnN0CiB7CiAgICAgYXV0byBuZXdTdHlsZSA9IFJlbmRlclN0
eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZVdpdGhEaXNwbGF5KCZzdHlsZSgpLCBCTE9DSyk7CiAg
ICAgbmV3U3R5bGUuZ2V0KCkuc2V0VGV4dEFsaWduKENFTlRFUik7IC8vIEZJWE1FOiB1c2UgV0VC
S0lUX0NFTlRFUj8KLSAgICBhdXRvIHJlbmRlcmVyID0gbmV3IFJlbmRlclJ1YnlCYXNlKGRvY3Vt
ZW50KCksIHN0ZDo6bW92ZShuZXdTdHlsZSkpOworICAgIGF1dG8gcmVuZGVyZXIgPSBuZXcgUmVu
ZGVyUnVieUJhc2UoZG9jdW1lbnQoKSwgV1RGOjptb3ZlKG5ld1N0eWxlKSk7CiAgICAgcmVuZGVy
ZXItPmluaXRpYWxpemVTdHlsZSgpOwogICAgIHJldHVybiByZW5kZXJlcjsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5VGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVRleHQuY3BwCmluZGV4IDI0YzcyMjIuLmE4NDFl
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5VGV4dC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlUZXh0LmNwcApAQCAt
MzYsNyArMzYsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJSdWJ5VGV4dDo6UmVu
ZGVyUnVieVRleHQoRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUp
Ci0gICAgOiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6
IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogewogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyUGFydC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyUGFydC5jcHAKaW5kZXgg
ZTZhY2RhNS4uMTA3YzVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNjcm9sbGJhclBhcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTY3JvbGxiYXJQYXJ0LmNwcApAQCAtMzUsNyArMzUsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBSZW5kZXJTY3JvbGxiYXJQYXJ0OjpSZW5kZXJTY3JvbGxiYXJQYXJ0KERvY3VtZW50JiBk
b2N1bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUsIFJlbmRlclNjcm9sbGJhciogc2Ny
b2xsYmFyLCBTY3JvbGxiYXJQYXJ0IHBhcnQpCi0gICAgOiBSZW5kZXJCbG9jayhkb2N1bWVudCwg
c3RkOjptb3ZlKHN0eWxlKSwgMCkKKyAgICA6IFJlbmRlckJsb2NrKGRvY3VtZW50LCBXVEY6Om1v
dmUoc3R5bGUpLCAwKQogICAgICwgbV9zY3JvbGxiYXIoc2Nyb2xsYmFyKQogICAgICwgbV9wYXJ0
KHBhcnQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Vh
cmNoRmllbGQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxk
LmNwcAppbmRleCAyM2FjNWEwLi44ZjA4OTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogUmVuZGVyU2VhcmNoRmllbGQ6
OlJlbmRlclNlYXJjaEZpZWxkKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVu
ZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lKGVsZW1l
bnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUo
ZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKICAgICAsIG1fc2VhcmNoUG9wdXBJc1Zpc2libGUo
ZmFsc2UpCiAgICAgLCBtX3NlYXJjaFBvcHVwKDApCiB7CkBAIC0xODEsNyArMTgxLDcgQEAgdm9p
ZCBSZW5kZXJTZWFyY2hGaWVsZDo6dXBkYXRlQ2FuY2VsQnV0dG9uVmlzaWJpbGl0eSgpIGNvbnN0
CiAKICAgICBhdXRvIGNhbmNlbEJ1dHRvblN0eWxlID0gUmVuZGVyU3R5bGU6OmNsb25lKCZjdXJT
dHlsZSk7CiAgICAgY2FuY2VsQnV0dG9uU3R5bGUuZ2V0KCkuc2V0VmlzaWJpbGl0eShidXR0b25W
aXNpYmlsaXR5KTsKLSAgICBjYW5jZWxCdXR0b25SZW5kZXJlci0+c2V0U3R5bGUoc3RkOjptb3Zl
KGNhbmNlbEJ1dHRvblN0eWxlKSk7CisgICAgY2FuY2VsQnV0dG9uUmVuZGVyZXItPnNldFN0eWxl
KFdURjo6bW92ZShjYW5jZWxCdXR0b25TdHlsZSkpOwogfQogCiBFVmlzaWJpbGl0eSBSZW5kZXJT
ZWFyY2hGaWVsZDo6dmlzaWJpbGl0eUZvckNhbmNlbEJ1dHRvbigpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCmluZGV4IDBmYzQ0MGEuLmFlYjg4YmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCkBAIC00OCw3ICs0OCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNvbnN0IGludCBSZW5kZXJTbGlkZXI6OmRlZmF1bHRU
cmFja0xlbmd0aCA9IDEyOTsKIAogUmVuZGVyU2xpZGVyOjpSZW5kZXJTbGlkZXIoSFRNTElucHV0
RWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5k
ZXJGbGV4aWJsZUJveChlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyRmxl
eGlibGVCb3goZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKIHsKICAgICAvLyBXZSBhc3N1bWUg
UmVuZGVyU2xpZGVyIHdvcmtzIG9ubHkgd2l0aCA8aW5wdXQgdHlwZT1yYW5nZT4uCiAgICAgQVNT
RVJUKGVsZW1lbnQuaXNSYW5nZUNvbnRyb2woKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcAppbmRleCBlMDg3NjdhLi43NmM2
YjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0
ZWRQbHVnSW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbi5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luKEhUTUxQbHVn
SW5JbWFnZUVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAg
IDogUmVuZGVyRW1iZWRkZWRPYmplY3QoZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6
IFJlbmRlckVtYmVkZGVkT2JqZWN0KGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiAgICAgLCBt
X3NuYXBzaG90UmVzb3VyY2Uoc3RkOjptYWtlX3VuaXF1ZTxSZW5kZXJJbWFnZVJlc291cmNlPigp
KQogICAgICwgbV9pc1BvdGVudGlhbE1vdXNlQWN0aXZhdGlvbihmYWxzZSkKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCmluZGV4IDRlNDgzZmMuLjViNjE4NjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcApAQCAtNTEsNyArNTEsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBSZW5k
ZXJUYWJsZTo6UmVuZGVyVGFibGUoRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHls
ZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpLCAw
KQorICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSwgMCkKICAgICAs
IG1faGVhZChudWxscHRyKQogICAgICwgbV9mb290KG51bGxwdHIpCiAgICAgLCBtX2ZpcnN0Qm9k
eShudWxscHRyKQpAQCAtNzQsNyArNzQsNyBAQCBSZW5kZXJUYWJsZTo6UmVuZGVyVGFibGUoRWxl
bWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB9CiAKIFJlbmRlclRh
YmxlOjpSZW5kZXJUYWJsZShEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+
IHN0eWxlKQotICAgIDogUmVuZGVyQmxvY2soZG9jdW1lbnQsIHN0ZDo6bW92ZShzdHlsZSksIDAp
CisgICAgOiBSZW5kZXJCbG9jayhkb2N1bWVudCwgV1RGOjptb3ZlKHN0eWxlKSwgMCkKICAgICAs
IG1faGVhZChudWxscHRyKQogICAgICwgbV9mb290KG51bGxwdHIpCiAgICAgLCBtX2ZpcnN0Qm9k
eShudWxscHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlQ2FwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDYXB0
aW9uLmNwcAppbmRleCAzOGM0ZDdjLi5jYTE4YzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDYXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGVDYXB0aW9uLmNwcApAQCAtMjUsNyArMjUsNyBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBSZW5kZXJUYWJsZUNhcHRpb246OlJlbmRlclRhYmxlQ2FwdGlvbihF
bGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRl
ckJsb2NrRmxvdyhlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyQmxvY2tG
bG93KGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKaW5kZXggMzQyZGNjNi4uYWFlNTVhNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKQEAgLTU1LDcg
KzU1LDcgQEAgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFJlbmRlclRhYmxlQ2VsbCkgPT0gc2l6ZW9m
KFNhbWVTaXplQXNSZW5kZXJUYWJsZUNlbGwpLCBSZW4KIENPTVBJTEVfQVNTRVJUKHNpemVvZihD
b2xsYXBzZWRCb3JkZXJWYWx1ZSkgPT0gOCwgQ29sbGFwc2VkQm9yZGVyVmFsdWVfc2hvdWxkX3N0
YXlfc21hbGwpOwogCiBSZW5kZXJUYWJsZUNlbGw6OlJlbmRlclRhYmxlQ2VsbChFbGVtZW50JiBl
bGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlckJsb2NrRmxv
dyhlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1l
bnQsIFdURjo6bW92ZShzdHlsZSkpCiAgICAgLCBtX2NvbHVtbih1bnNldENvbHVtbkluZGV4KQog
ICAgICwgbV9jZWxsV2lkdGhDaGFuZ2VkKGZhbHNlKQogICAgICwgbV9pbnRyaW5zaWNQYWRkaW5n
QmVmb3JlKDApCkBAIC02Nyw3ICs2Nyw3IEBAIFJlbmRlclRhYmxlQ2VsbDo6UmVuZGVyVGFibGVD
ZWxsKEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogfQogCiBS
ZW5kZXJUYWJsZUNlbGw6OlJlbmRlclRhYmxlQ2VsbChEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NS
ZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyQmxvY2tGbG93KGRvY3VtZW50LCBz
dGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyQmxvY2tGbG93KGRvY3VtZW50LCBXVEY6Om1v
dmUoc3R5bGUpKQogICAgICwgbV9jb2x1bW4odW5zZXRDb2x1bW5JbmRleCkKICAgICAsIG1fY2Vs
bFdpZHRoQ2hhbmdlZChmYWxzZSkKICAgICAsIG1faGFzQ29sU3BhbihmYWxzZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuY3BwCmluZGV4IDQ5YzZkNjcuLjZmZGU0
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmNwcApAQCAt
MzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5h
bWVzOwogCiBSZW5kZXJUYWJsZUNvbDo6UmVuZGVyVGFibGVDb2woRWxlbWVudCYgZWxlbWVudCwg
UGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJCb3goZWxlbWVudCwgc3Rk
Ojptb3ZlKHN0eWxlKSwgMCkKKyAgICA6IFJlbmRlckJveChlbGVtZW50LCBXVEY6Om1vdmUoc3R5
bGUpLCAwKQogICAgICwgbV9zcGFuKDEpCiB7CiAgICAgLy8gaW5pdCBSZW5kZXJPYmplY3QgYXR0
cmlidXRlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
Um93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5jcHAKaW5k
ZXggNzQxYWFhYy4uNjk3MGViMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlUm93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGFibGVSb3cuY3BwCkBAIC0zOSwxNCArMzksMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNp
bmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogUmVuZGVyVGFibGVSb3c6OlJlbmRlclRhYmxlUm93
KEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVu
ZGVyQm94KGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSksIDApCisgICAgOiBSZW5kZXJCb3goZWxl
bWVudCwgV1RGOjptb3ZlKHN0eWxlKSwgMCkKICAgICAsIG1fcm93SW5kZXgodW5zZXRSb3dJbmRl
eCkKIHsKICAgICBzZXRJbmxpbmUoZmFsc2UpOwogfQogCiBSZW5kZXJUYWJsZVJvdzo6UmVuZGVy
VGFibGVSb3coRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkK
LSAgICA6IFJlbmRlckJveChkb2N1bWVudCwgc3RkOjptb3ZlKHN0eWxlKSwgMCkKKyAgICA6IFJl
bmRlckJveChkb2N1bWVudCwgV1RGOjptb3ZlKHN0eWxlKSwgMCkKICAgICAsIG1fcm93SW5kZXgo
dW5zZXRSb3dJbmRleCkKIHsKICAgICBzZXRJbmxpbmUoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAppbmRleCBjOTI4OGU5Li5hZjg0
N2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9u
LmNwcApAQCAtODIsNyArODIsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgdXBkYXRlTG9naWNhbEhl
aWdodEZvckNlbGwoUmVuZGVyVGFibGVTZWN0aW9uOjpSb3dTdHJ1Y3QmIHJvdwogfQogCiBSZW5k
ZXJUYWJsZVNlY3Rpb246OlJlbmRlclRhYmxlU2VjdGlvbihFbGVtZW50JiBlbGVtZW50LCBQYXNz
UmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlckJveChlbGVtZW50LCBzdGQ6Om1v
dmUoc3R5bGUpLCAwKQorICAgIDogUmVuZGVyQm94KGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSks
IDApCiAgICAgLCBtX2NDb2woMCkKICAgICAsIG1fY1JvdygwKQogICAgICwgbV9vdXRlckJvcmRl
clN0YXJ0KDApCkBAIC05Niw3ICs5Niw3IEBAIFJlbmRlclRhYmxlU2VjdGlvbjo6UmVuZGVyVGFi
bGVTZWN0aW9uKEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0CiB9CiAK
IFJlbmRlclRhYmxlU2VjdGlvbjo6UmVuZGVyVGFibGVTZWN0aW9uKERvY3VtZW50JiBkb2N1bWVu
dCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJCb3goZG9jdW1lbnQs
IHN0ZDo6bW92ZShzdHlsZSksIDApCisgICAgOiBSZW5kZXJCb3goZG9jdW1lbnQsIFdURjo6bW92
ZShzdHlsZSksIDApCiAgICAgLCBtX2NDb2woMCkKICAgICAsIG1fY1JvdygwKQogICAgICwgbV9v
dXRlckJvcmRlclN0YXJ0KDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dENvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sLmNwcAppbmRleCBlMTcxODRiNy4uYmM3MWQwNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCkBAIC0zOCw3ICszOCw3IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclRleHRDb250cm9sOjpSZW5kZXJUZXh0Q29udHJv
bChIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHls
ZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxl
KSkKKyAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogewog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2wuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCmluZGV4
IGY4ZTc3MmUuLjFjNTc0YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0Q29udHJvbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbC5oCkBAIC05Niw3ICs5Niw3IEBAIFJFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhS
ZW5kZXJUZXh0Q29udHJvbCwgaXNUZXh0Q29udHJvbCgpKQogY2xhc3MgUmVuZGVyVGV4dENvbnRy
b2xJbm5lckNvbnRhaW5lciBmaW5hbCA6IHB1YmxpYyBSZW5kZXJGbGV4aWJsZUJveCB7CiBwdWJs
aWM6CiAgICAgZXhwbGljaXQgUmVuZGVyVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcihFbGVtZW50
JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICAgICAgOiBSZW5kZXJG
bGV4aWJsZUJveChlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgICAgICA6IFJlbmRlckZs
ZXhpYmxlQm94KGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiAgICAgeyB9CiAgICAgdmlydHVh
bCB+UmVuZGVyVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcigpIHsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNwcApp
bmRleCBjNWExYjM4Li45MWRiNTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAKQEAgLTMzLDcgKzMzLDcgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU6OlJlbmRl
clRleHRDb250cm9sTXVsdGlMaW5lKEhUTUxUZXh0QXJlYUVsZW1lbnQmIGVsZW1lbnQsIFBhc3NS
ZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyVGV4dENvbnRyb2woZWxlbWVudCwg
c3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlclRleHRDb250cm9sKGVsZW1lbnQsIFdURjo6
bW92ZShzdHlsZSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKaW5kZXggMmZkNDQxYi4uN2E1ODY4
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVu
dCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJUZXh0Q29udHJvbChl
bGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyVGV4dENvbnRyb2woZWxlbWVu
dCwgV1RGOjptb3ZlKHN0eWxlKSkKICAgICAsIG1fc2hvdWxkRHJhd0NhcHNMb2NrSW5kaWNhdG9y
KGZhbHNlKQogICAgICwgbV9kZXNpcmVkSW5uZXJUZXh0TG9naWNhbEhlaWdodCgtMSkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmUuaAppbmRleCA3OWM2MDI2Li5mZWI4MDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCkBAIC0xMDQsNyAr
MTA0LDcgQEAgUkVOREVSX09CSkVDVF9UWVBFX0NBU1RTKFJlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZSwgaXNUZXh0RmllbGQoKSkKIGNsYXNzIFJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jayBm
aW5hbCA6IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cgewogcHVibGljOgogICAgIFJlbmRlclRleHRD
b250cm9sSW5uZXJCbG9jayhFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBz
dHlsZSkKLSAgICAgICAgOiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxl
KSkKKyAgICAgICAgOiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkK
ICAgICB7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVlRUQ3VlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWVFRDdWUuY3Bw
CmluZGV4IDg4M2YxMzYuLjJlMjZjY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWVFRDdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWVFRDdWUuY3BwCkBAIC0zNyw3ICszNyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJl
bmRlclZUVEN1ZTo6UmVuZGVyVlRUQ3VlKFZUVEN1ZUJveCYgZWxlbWVudCwgUGFzc1JlZjxSZW5k
ZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCwgc3RkOjptb3Zl
KHN0eWxlKSkKKyAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUp
KQogICAgICwgbV9jdWUoZWxlbWVudC5nZXRDdWUoKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVmlkZW8uY3BwCmluZGV4IDlkMjllMGMuLjc3MTVkMDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcApAQCAtNDksNyArNDksNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBSZW5kZXJWaWRlbzo6
UmVuZGVyVmlkZW8oSFRNTFZpZGVvRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHls
ZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJNZWRpYShlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQor
ICAgIDogUmVuZGVyTWVkaWEoZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKIHsKICAgICBzZXRJ
bnRyaW5zaWNTaXplKGNhbGN1bGF0ZUludHJpbnNpY1NpemUoKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggMjZkNTJkMC4uM2ExNWU1MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAtOTQsNyArOTQsNyBAQCBzdHJ1Y3Qg
U2VsZWN0aW9uSXRlcmF0b3IgewogfTsKIAogUmVuZGVyVmlldzo6UmVuZGVyVmlldyhEb2N1bWVu
dCYgZG9jdW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyQmxv
Y2tGbG93KGRvY3VtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyQmxvY2tGbG93
KGRvY3VtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogICAgICwgbV9mcmFtZVZpZXcoKmRvY3VtZW50
LnZpZXcoKSkKICAgICAsIG1fc2VsZWN0aW9uU3RhcnQoMCkKICAgICAsIG1fc2VsZWN0aW9uRW5k
KDApCkBAIC05OTUsNyArOTk1LDcgQEAgdm9pZCBSZW5kZXJWaWV3OjpzZXRTdWJ0cmVlU2VsZWN0
aW9uKFNlbGVjdGlvblN1YnRyZWVSb290JiByb290LCBSZW5kZXJPYmplY3QqIHMKICAgICAgICAg
ICAgIG1fc2VsZWN0aW9uUmVjdEdhdGhlcmVyLmFkZFJlY3Qoc2VsZWN0aW9uSW5mby0+cmVjdCgp
KTsKICNlbmRpZgogCi0gICAgICAgICAgICBuZXdTZWxlY3RlZE9iamVjdHMuc2V0KG8sIHN0ZDo6
bW92ZShzZWxlY3Rpb25JbmZvKSk7CisgICAgICAgICAgICBuZXdTZWxlY3RlZE9iamVjdHMuc2V0
KG8sIFdURjo6bW92ZShzZWxlY3Rpb25JbmZvKSk7CiAKICAgICAgICAgICAgIFJlbmRlckJsb2Nr
KiBjYiA9IG8tPmNvbnRhaW5pbmdCbG9jaygpOwogICAgICAgICAgICAgd2hpbGUgKGNiICYmICFj
Yi0+aXNSZW5kZXJWaWV3KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCmlu
ZGV4IGJiODIxMTIuLjBjMjZiNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcu
aApAQCAtMjY5LDcgKzI2OSw3IEBAIHByaXZhdGU6CiAgICAgICAgIC8vIFdlIHB1c2ggTGF5b3V0
U3RhdGUgZXZlbiBpZiBsYXlvdXRTdGF0ZSBpcyBkaXNhYmxlZCBiZWNhdXNlIGl0IHN0b3JlcyBs
YXlvdXREZWx0YSB0b28uCiAgICAgICAgIGlmICghZG9pbmdGdWxsUmVwYWludCgpIHx8IG1fbGF5
b3V0U3RhdGUtPmlzUGFnaW5hdGVkKCkgfHwgcmVuZGVyZXIuZmxvd1RocmVhZENvbnRhaW5pbmdC
bG9jaygpCiAgICAgICAgICAgICB8fCBtX2xheW91dFN0YXRlLT5saW5lR3JpZCgpIHx8IChyZW5k
ZXJlci5zdHlsZSgpLmxpbmVHcmlkKCkgIT0gUmVuZGVyU3R5bGU6OmluaXRpYWxMaW5lR3JpZCgp
ICYmIHJlbmRlcmVyLmlzUmVuZGVyQmxvY2tGbG93KCkpKSB7Ci0gICAgICAgICAgICBtX2xheW91
dFN0YXRlID0gc3RkOjptYWtlX3VuaXF1ZTxMYXlvdXRTdGF0ZT4oc3RkOjptb3ZlKG1fbGF5b3V0
U3RhdGUpLCAmcmVuZGVyZXIsIG9mZnNldCwgcGFnZUhlaWdodCwgcGFnZUhlaWdodENoYW5nZWQp
OworICAgICAgICAgICAgbV9sYXlvdXRTdGF0ZSA9IHN0ZDo6bWFrZV91bmlxdWU8TGF5b3V0U3Rh
dGU+KFdURjo6bW92ZShtX2xheW91dFN0YXRlKSwgJnJlbmRlcmVyLCBvZmZzZXQsIHBhZ2VIZWln
aHQsIHBhZ2VIZWlnaHRDaGFuZ2VkKTsKICAgICAgICAgICAgIHB1c2hMYXlvdXRTdGF0ZUZvckN1
cnJlbnRGbG93VGhyZWFkKHJlbmRlcmVyKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICB9CkBAIC0yNzksNyArMjc5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBvcExheW91dFN0
YXRlKCkKICAgICB7CiAgICAgICAgIHBvcExheW91dFN0YXRlRm9yQ3VycmVudEZsb3dUaHJlYWQo
KTsKLSAgICAgICAgbV9sYXlvdXRTdGF0ZSA9IHN0ZDo6bW92ZShtX2xheW91dFN0YXRlLT5tX25l
eHQpOworICAgICAgICBtX2xheW91dFN0YXRlID0gV1RGOjptb3ZlKG1fbGF5b3V0U3RhdGUtPm1f
bmV4dCk7CiAgICAgfQogCiAgICAgLy8gU3VzcGVuZHMgdGhlIExheW91dFN0YXRlIG9wdGltaXph
dGlvbi4gVXNlZCB1bmRlciB0cmFuc2Zvcm1zIHRoYXQgY2Fubm90IGJlIHJlcHJlc2VudGVkIGJ5
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCmluZGV4IDc1YmE1YjEu
LjFmZjgzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRn
ZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCkBA
IC04MSw3ICs4MSw3IEBAIHN0YXRpYyB2b2lkIG1vdmVXaWRnZXRUb1BhcmVudFNvb24oV2lkZ2V0
KiBjaGlsZCwgRnJhbWVWaWV3KiBwYXJlbnQpCiB9CiAKIFJlbmRlcldpZGdldDo6UmVuZGVyV2lk
Z2V0KEhUTUxGcmFtZU93bmVyRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4g
c3R5bGUpCi0gICAgOiBSZW5kZXJSZXBsYWNlZChlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQor
ICAgIDogUmVuZGVyUmVwbGFjZWQoZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKICAgICAsIG1f
d2Vha1B0ckZhY3RvcnkodGhpcykKIHsKICAgICBzZXRJbmxpbmUoZmFsc2UpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCmluZGV4IDBhZTBhMDkuLmYzZjg3Yzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHAKQEAgLTEzNSw3
ICsxMzUsNyBAQCBmbG9hdCBSb290SW5saW5lQm94OjpwbGFjZUVsbGlwc2lzKGNvbnN0IEF0b21p
Y1N0cmluZyYgZWxsaXBzaXNTdHIsICBib29sIGx0ciwgZgogICAgIGF1dG8gbmV3RWxsaXBzaXNC
b3ggPSBzdGQ6Om1ha2VfdW5pcXVlPEVsbGlwc2lzQm94PihibG9ja0Zsb3coKSwgZWxsaXBzaXNT
dHIsIHRoaXMsIGVsbGlwc2lzV2lkdGggLSAobWFya3VwQm94ID8gbWFya3VwQm94LT5sb2dpY2Fs
V2lkdGgoKSA6IDApLCBsb2dpY2FsSGVpZ2h0KCksIHkoKSwgIXByZXZSb290Qm94KCksIGlzSG9y
aXpvbnRhbCgpLCBtYXJrdXBCb3gpOwogICAgIGF1dG8gZWxsaXBzaXNCb3ggPSBuZXdFbGxpcHNp
c0JveC5nZXQoKTsKIAotICAgIGdFbGxpcHNpc0JveE1hcC0+YWRkKHRoaXMsIHN0ZDo6bW92ZShu
ZXdFbGxpcHNpc0JveCkpOworICAgIGdFbGxpcHNpc0JveE1hcC0+YWRkKHRoaXMsIFdURjo6bW92
ZShuZXdFbGxpcHNpc0JveCkpOwogICAgIHNldEhhc0VsbGlwc2lzQm94KHRydWUpOwogCiAgICAg
Ly8gRklYTUU6IERvIHdlIG5lZWQgYW4gUlRMIHZlcnNpb24gb2YgdGhpcz8KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5jcHAKaW5k
ZXggMWJjYWY0MC4uMGFmOTE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5jcHAKQEAgLTQ0LDEyICs0NCwxMiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgTWF0aE1MTmFtZXM7CiAgICAgCiBSZW5k
ZXJNYXRoTUxCbG9jazo6UmVuZGVyTWF0aE1MQmxvY2soRWxlbWVudCYgY29udGFpbmVyLCBQYXNz
UmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlckZsZXhpYmxlQm94KGNvbnRhaW5l
ciwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlckZsZXhpYmxlQm94KGNvbnRhaW5lciwg
V1RGOjptb3ZlKHN0eWxlKSkKIHsKIH0KIAogUmVuZGVyTWF0aE1MQmxvY2s6OlJlbmRlck1hdGhN
TEJsb2NrKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0g
ICAgOiBSZW5kZXJGbGV4aWJsZUJveChkb2N1bWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6
IFJlbmRlckZsZXhpYmxlQm94KGRvY3VtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogewogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJs
b2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2Nr
LmgKaW5kZXggOTdlYmEzNi4uZjQxNTAwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suaApAQCAtNzQsNyArNzQsNyBAQCBSRU5E
RVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyTWF0aE1MQmxvY2ssIGlzUmVuZGVyTWF0aE1MQmxv
Y2soKSkKIGNsYXNzIFJlbmRlck1hdGhNTFRhYmxlIGZpbmFsIDogcHVibGljIFJlbmRlclRhYmxl
IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW5kZXJNYXRoTUxUYWJsZShFbGVtZW50JiBlbGVt
ZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICAgICAgOiBSZW5kZXJUYWJsZShl
bGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgICAgICA6IFJlbmRlclRhYmxlKGVsZW1lbnQs
IFdURjo6bW92ZShzdHlsZSkpCiAgICAgewogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmNwcAppbmRleCBl
YjYxOTdiLi4zMWRlZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0
aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuY3BwCkBAIC00NCw3ICs0NCw3IEBAIHN0YXRpYyBj
b25zdCBjaGFyKiBnT3BlbmluZ0JyYWNlQ2hhciA9ICIoIjsKIHN0YXRpYyBjb25zdCBjaGFyKiBn
Q2xvc2luZ0JyYWNlQ2hhciA9ICIpIjsKIAogUmVuZGVyTWF0aE1MRmVuY2VkOjpSZW5kZXJNYXRo
TUxGZW5jZWQoTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxS
ZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJNYXRoTUxSb3coZWxlbWVudCwgc3RkOjpt
b3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlck1hdGhNTFJvdyhlbGVtZW50LCBXVEY6Om1vdmUoc3R5
bGUpKQogICAgICwgbV9jbG9zZUZlbmNlUmVuZGVyZXIobnVsbHB0cikKIHsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRnJhY3Rpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGcmFjdGlv
bi5jcHAKaW5kZXggMDY1NTI4OS4uY2NlYzQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGcmFjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGcmFjdGlvbi5jcHAKQEAgLTQ0LDcg
KzQ0LDcgQEAgc3RhdGljIGNvbnN0IGZsb2F0IGdMaW5lVGhpY2sgPSAzLmY7CiBzdGF0aWMgY29u
c3QgZmxvYXQgZ0ZyYWN0aW9uQmFyV2lkdGggPSAwLjA1ZjsKIAogUmVuZGVyTWF0aE1MRnJhY3Rp
b246OlJlbmRlck1hdGhNTEZyYWN0aW9uKE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQmIGVs
ZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyTWF0aE1MQmxv
Y2soZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlck1hdGhNTEJsb2NrKGVs
ZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiAgICAgLCBtX2xpbmVUaGlja25lc3MoZ0xpbmVNZWRp
dW0pCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1Jl
bmRlck1hdGhNTE1hdGguY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5k
ZXJNYXRoTUxNYXRoLmNwcAppbmRleCBlNmUxYTg4Li40N2UwMGMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE1hdGguY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MTWF0aC5jcHAKQEAgLTM2
LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIE1hdGhNTE5h
bWVzOwogCiBSZW5kZXJNYXRoTUxNYXRoOjpSZW5kZXJNYXRoTUxNYXRoKEVsZW1lbnQmIGVsZW1l
bnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyTWF0aE1MUm93KGVs
ZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJNYXRoTUxSb3coZWxlbWVudCwg
V1RGOjptb3ZlKHN0eWxlKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxNZW5jbG9zZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE1lbmNsb3NlLmNwcAppbmRleCA4YWEwNTQ5Li5i
MmNjYjllIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRl
ck1hdGhNTE1lbmNsb3NlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1s
L1JlbmRlck1hdGhNTE1lbmNsb3NlLmNwcApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiB1c2luZyBuYW1lc3BhY2UgTWF0aE1MTmFtZXM7CiAKIFJlbmRlck1hdGhNTE1lbmNs
b3NlOjpSZW5kZXJNYXRoTUxNZW5jbG9zZShFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRl
clN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlck1hdGhNTFJvdyhlbGVtZW50LCBzdGQ6Om1vdmUo
c3R5bGUpKQorICAgIDogUmVuZGVyTWF0aE1MUm93KGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkp
CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVu
ZGVyTWF0aE1MT3BlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9S
ZW5kZXJNYXRoTUxPcGVyYXRvci5jcHAKaW5kZXggMmM2OGE4Zi4uY2UzMjMwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVy
YXRvci5jcHAKQEAgLTExMzYsNyArMTEzNiw3IEBAIHN0YXRpYyBjb25zdCBVQ2hhciBob3Jpem9u
dGFsT3BlcmF0b3JzW10gPSB7CiB9CiAKIFJlbmRlck1hdGhNTE9wZXJhdG9yOjpSZW5kZXJNYXRo
TUxPcGVyYXRvcihNYXRoTUxFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBz
dHlsZSkKLSAgICA6IFJlbmRlck1hdGhNTFRva2VuKGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkp
CisgICAgOiBSZW5kZXJNYXRoTUxUb2tlbihlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogICAg
ICwgbV9zdHJldGNoSGVpZ2h0QWJvdmVCYXNlbGluZSgwKQogICAgICwgbV9zdHJldGNoRGVwdGhC
ZWxvd0Jhc2VsaW5lKDApCiAgICAgLCBtX29wZXJhdG9yKDApCkBAIC0xMTQ2LDcgKzExNDYsNyBA
QCBSZW5kZXJNYXRoTUxPcGVyYXRvcjo6UmVuZGVyTWF0aE1MT3BlcmF0b3IoTWF0aE1MRWxlbWVu
dCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZQogfQogCiBSZW5kZXJNYXRoTUxPcGVyYXRvcjo6UmVu
ZGVyTWF0aE1MT3BlcmF0b3IoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxl
PiBzdHlsZSwgY29uc3QgU3RyaW5nJiBvcGVyYXRvclN0cmluZywgTWF0aE1MT3BlcmF0b3JEaWN0
aW9uYXJ5OjpGb3JtIGZvcm0sIHVuc2lnbmVkIHNob3J0IGZsYWdzKQotICAgIDogUmVuZGVyTWF0
aE1MVG9rZW4oZG9jdW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJNYXRoTUxU
b2tlbihkb2N1bWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKICAgICAsIG1fc3RyZXRjaEhlaWdodEFi
b3ZlQmFzZWxpbmUoMCkKICAgICAsIG1fc3RyZXRjaERlcHRoQmVsb3dCYXNlbGluZSgwKQogICAg
ICwgbV9vcGVyYXRvcigwKQpAQCAtMTY0OSw3ICsxNjQ5LDcgQEAgdm9pZCBSZW5kZXJNYXRoTUxP
cGVyYXRvcjo6dXBkYXRlU3R5bGUoKQogICAgIGF1dG8gbmV3U3R5bGUgPSBSZW5kZXJTdHlsZTo6
Y3JlYXRlQW5vbnltb3VzU3R5bGVXaXRoRGlzcGxheSgmc3R5bGUoKSwgRkxFWCk7CiAgICAgbmV3
U3R5bGUuZ2V0KCkuc2V0TWFyZ2luU3RhcnQoTGVuZ3RoKG1fbGVhZGluZ1NwYWNlLCBGaXhlZCkp
OwogICAgIG5ld1N0eWxlLmdldCgpLnNldE1hcmdpbkVuZChMZW5ndGgobV90cmFpbGluZ1NwYWNl
LCBGaXhlZCkpOwotICAgIHdyYXBwZXItPnNldFN0eWxlKHN0ZDo6bW92ZShuZXdTdHlsZSkpOwor
ICAgIHdyYXBwZXItPnNldFN0eWxlKFdURjo6bW92ZShuZXdTdHlsZSkpOwogICAgIHdyYXBwZXIt
PnNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOwogCiAgICAgaWYgKCFzaG91bGRB
bGxvd1N0cmV0Y2hpbmcoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9t
YXRobWwvUmVuZGVyTWF0aE1MUmFkaWNhbE9wZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUmFkaWNhbE9wZXJhdG9yLmNwcAppbmRleCAxMzA5
Y2ZlLi5iNjFiOGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1s
L1JlbmRlck1hdGhNTFJhZGljYWxPcGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSYWRpY2FsT3BlcmF0b3IuY3BwCkBAIC01Nyw3ICs1
Nyw3IEBAIGNvbnN0IGZsb2F0IGdSYWRpY2FsTGluZVRoaWNrbmVzc0VtcyA9IDAuMDJmOwogY29u
c3QgZmxvYXQgZ1JhZGljYWxUaGlja0xpbmVUaGlja25lc3NFbXMgPSAwLjFmOwogCiBSZW5kZXJN
YXRoTUxSYWRpY2FsT3BlcmF0b3I6OlJlbmRlck1hdGhNTFJhZGljYWxPcGVyYXRvcihEb2N1bWVu
dCYgZG9jdW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyTWF0
aE1MT3BlcmF0b3IoZG9jdW1lbnQsIHN0ZDo6bW92ZShzdHlsZSksIFN0cmluZygmZ1JhZGljYWxD
aGFyYWN0ZXIsIDEpLCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OlByZWZpeCkKKyAgICA6IFJl
bmRlck1hdGhNTE9wZXJhdG9yKGRvY3VtZW50LCBXVEY6Om1vdmUoc3R5bGUpLCBTdHJpbmcoJmdS
YWRpY2FsQ2hhcmFjdGVyLCAxKSwgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpQcmVmaXgpCiB7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MUm9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1h
dGhNTFJvb3QuY3BwCmluZGV4IGQwN2NlMjMuLjI3NTYzNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm9vdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSb290LmNwcApAQCAtNTUsMTIg
KzU1LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIFdlIHdpbGwgYWxsb3cgdGhlIEluZGV4
V3JhcHBlciB0byBiZSBlbXB0eSBhbmQgaXQgd2lsbCBhbHdheXMgY29udGFpbiB0aGUgbGFzdCBj
aGlsZCBvZiB0aGUgPG1yb290PiBpZiB0aGVyZSBhcmUgYXQgbGVhc3QgMiBlbGVtZW50cy4KIAog
UmVuZGVyTWF0aE1MUm9vdDo6UmVuZGVyTWF0aE1MUm9vdChFbGVtZW50JiBlbGVtZW50LCBQYXNz
UmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlck1hdGhNTEJsb2NrKGVsZW1lbnQs
IHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJNYXRoTUxCbG9jayhlbGVtZW50LCBXVEY6
Om1vdmUoc3R5bGUpKQogewogfQogCiBSZW5kZXJNYXRoTUxSb290OjpSZW5kZXJNYXRoTUxSb290
KERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBS
ZW5kZXJNYXRoTUxCbG9jayhkb2N1bWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRl
ck1hdGhNTEJsb2NrKGRvY3VtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogewogfQogCkBAIC0yMjYs
MTQgKzIyNiwxNCBAQCB2b2lkIFJlbmRlck1hdGhNTFJvb3Q6OnVwZGF0ZVN0eWxlKCkKICAgICBh
dXRvIHJhZGljYWwgPSByYWRpY2FsV3JhcHBlcigpOwogICAgIGF1dG8gcmFkaWNhbFN0eWxlID0g
UmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91c1N0eWxlV2l0aERpc3BsYXkoJnN0eWxlKCksIEZM
RVgpOwogICAgIHJhZGljYWxTdHlsZS5nZXQoKS5zZXRNYXJnaW5Ub3AoTGVuZ3RoKDAsIEZpeGVk
KSk7IC8vIFRoaXMgd2lsbCBiZSB1cGRhdGVkIGluIFJlbmRlck1hdGhNTFJvb3Q6OmxheW91dCgp
LgotICAgIHJhZGljYWwtPnNldFN0eWxlKHN0ZDo6bW92ZShyYWRpY2FsU3R5bGUpKTsKKyAgICBy
YWRpY2FsLT5zZXRTdHlsZShXVEY6Om1vdmUocmFkaWNhbFN0eWxlKSk7CiAgICAgcmFkaWNhbC0+
c2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7CiAKICAgICBhdXRvIGJhc2UgPSBi
YXNlV3JhcHBlcigpOwogICAgIGF1dG8gYmFzZVN0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZUFu
b255bW91c1N0eWxlV2l0aERpc3BsYXkoJnN0eWxlKCksIEZMRVgpOwogICAgIGJhc2VTdHlsZS5n
ZXQoKS5zZXRNYXJnaW5Ub3AoTGVuZ3RoKDAsIEZpeGVkKSk7IC8vIFRoaXMgd2lsbCBiZSB1cGRh
dGVkIGluIFJlbmRlck1hdGhNTFJvb3Q6OmxheW91dCgpLgogICAgIGJhc2VTdHlsZS5nZXQoKS5z
ZXRBbGlnbkl0ZW1zKEFsaWduQmFzZWxpbmUpOwotICAgIGJhc2UtPnNldFN0eWxlKHN0ZDo6bW92
ZShiYXNlU3R5bGUpKTsKKyAgICBiYXNlLT5zZXRTdHlsZShXVEY6Om1vdmUoYmFzZVN0eWxlKSk7
CiAgICAgYmFzZS0+c2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7CiAKICAgICBp
ZiAoIWlzUmVuZGVyTWF0aE1MU3F1YXJlUm9vdCgpKSB7CkBAIC0yNDQsNyArMjQ0LDcgQEAgdm9p
ZCBSZW5kZXJNYXRoTUxSb290Ojp1cGRhdGVTdHlsZSgpCiAgICAgICAgIGluZGV4U3R5bGUuZ2V0
KCkuc2V0TWFyZ2luU3RhcnQoTGVuZ3RoKGtlcm5CZWZvcmVEZWdyZWUsIEZpeGVkKSk7CiAgICAg
ICAgIGluZGV4U3R5bGUuZ2V0KCkuc2V0TWFyZ2luRW5kKExlbmd0aChrZXJuQWZ0ZXJEZWdyZWUs
IEZpeGVkKSk7CiAgICAgICAgIGluZGV4U3R5bGUuZ2V0KCkuc2V0QWxpZ25JdGVtcyhBbGlnbkJh
c2VsaW5lKTsKLSAgICAgICAgaW5kZXgtPnNldFN0eWxlKHN0ZDo6bW92ZShpbmRleFN0eWxlKSk7
CisgICAgICAgIGluZGV4LT5zZXRTdHlsZShXVEY6Om1vdmUoaW5kZXhTdHlsZSkpOwogICAgICAg
ICBpbmRleC0+c2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7CiAgICAgfQogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxS
b290LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFJvb3Qu
aAppbmRleCAzMjEyNzJiLi5mZTkzZGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFJvb3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFJvb3QuaApAQCAtODEsNyArODEsNyBAQCBmcmllbmQg
Y2xhc3MgUmVuZGVyTWF0aE1MUm9vdDsKIAogcHVibGljOgogICAgIFJlbmRlck1hdGhNTFJvb3RX
cmFwcGVyKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0g
ICAgICAgIDogUmVuZGVyTWF0aE1MUm93KGRvY3VtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKSB7IH0K
KyAgICAgICAgOiBSZW5kZXJNYXRoTUxSb3coZG9jdW1lbnQsIFdURjo6bW92ZShzdHlsZSkpIHsg
fQogCiBwcml2YXRlOgogICAgIFJlbmRlck9iamVjdCogcmVtb3ZlQ2hpbGRXaXRob3V0UmVzdHJ1
Y3R1cmluZyhSZW5kZXJPYmplY3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9tYXRobWwvUmVuZGVyTWF0aE1MUm93LmNwcAppbmRleCA0OTdmNjdkLi4zZTgzMzc4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFJvdy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSb3cu
Y3BwCkBAIC0zOSwxMiArMzksMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNw
YWNlIE1hdGhNTE5hbWVzOwogCiBSZW5kZXJNYXRoTUxSb3c6OlJlbmRlck1hdGhNTFJvdyhFbGVt
ZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlck1h
dGhNTEJsb2NrKGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJNYXRoTUxC
bG9jayhlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogewogfQogCiBSZW5kZXJNYXRoTUxSb3c6
OlJlbmRlck1hdGhNTFJvdyhEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+
IHN0eWxlKQotICAgIDogUmVuZGVyTWF0aE1MQmxvY2soZG9jdW1lbnQsIHN0ZDo6bW92ZShzdHls
ZSkpCisgICAgOiBSZW5kZXJNYXRoTUxCbG9jayhkb2N1bWVudCwgV1RGOjptb3ZlKHN0eWxlKSkK
IHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5k
ZXJNYXRoTUxTY3JpcHRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVu
ZGVyTWF0aE1MU2NyaXB0cy5jcHAKaW5kZXggNmY4MjY5OS4uMGM0Y2IxYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTY3JpcHRzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFNjcmlwdHMu
Y3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHN0YXRpYyBib29sIGlzUHJlc2NyaXB0KFJlbmRlck9iamVj
dCogcmVuZGVyT2JqZWN0KQogfQogCiBSZW5kZXJNYXRoTUxTY3JpcHRzOjpSZW5kZXJNYXRoTUxT
Y3JpcHRzKEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAg
IDogUmVuZGVyTWF0aE1MQmxvY2soZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJl
bmRlck1hdGhNTEJsb2NrKGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiAgICAgLCBtX2Jhc2VX
cmFwcGVyKDApCiB7CiAgICAgLy8gRGV0ZXJtaW5lIHdoYXQga2luZCBvZiBzdWIvc3VwIGV4cHJl
c3Npb24gd2UgaGF2ZSBieSBlbGVtZW50IG5hbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MU2NyaXB0cy5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTY3JpcHRzLmgKaW5kZXggNWNlNDEzMy4uZGMx
ZDZhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJN
YXRoTUxTY3JpcHRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5k
ZXJNYXRoTUxTY3JpcHRzLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgog
ICAgIFJlbmRlck1hdGhNTFNjcmlwdHNXcmFwcGVyKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1Jl
ZjxSZW5kZXJTdHlsZT4gc3R5bGUsIFdyYXBwZXJUeXBlIGtpbmQpCi0gICAgICAgIDogUmVuZGVy
TWF0aE1MQmxvY2soZG9jdW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgICAgIDogUmVuZGVy
TWF0aE1MQmxvY2soZG9jdW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiAgICAgICAgICwgbV9raW5k
KGtpbmQpCiAgICAgewogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9tYXRobWwvUmVuZGVyTWF0aE1MU3BhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxTcGFjZS5jcHAKaW5kZXggMjg4ZTY2Mi4uMjg0NGEwMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTcGFj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxT
cGFjZS5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFt
ZXNwYWNlIE1hdGhNTE5hbWVzOwogCiBSZW5kZXJNYXRoTUxTcGFjZTo6UmVuZGVyTWF0aE1MU3Bh
Y2UoTWF0aE1MVGV4dEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxl
KQotICAgIDogUmVuZGVyTWF0aE1MQmxvY2soZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAg
ICA6IFJlbmRlck1hdGhNTEJsb2NrKGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiAgICAgLCBt
X3dpZHRoKDApCiAgICAgLCBtX2hlaWdodCgwKQogICAgICwgbV9kZXB0aCgwKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTcXVhcmVSb290
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MU3F1YXJl
Um9vdC5jcHAKaW5kZXggNmE4YmNlYi4uNGJlNzYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTcXVhcmVSb290LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFNxdWFyZVJvb3QuY3BwCkBA
IC0zNSwxMiArMzUsMTIgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIFJlbmRlck1hdGhN
TFNxdWFyZVJvb3Q6OlJlbmRlck1hdGhNTFNxdWFyZVJvb3QoRWxlbWVudCYgZWxlbWVudCwgUGFz
c1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJNYXRoTUxSb290KGVsZW1lbnQs
IHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJNYXRoTUxSb290KGVsZW1lbnQsIFdURjo6
bW92ZShzdHlsZSkpCiB7CiB9CiAKIFJlbmRlck1hdGhNTFNxdWFyZVJvb3Q6OlJlbmRlck1hdGhN
TFNxdWFyZVJvb3QoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHls
ZSkKLSAgICA6IFJlbmRlck1hdGhNTFJvb3QoZG9jdW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisg
ICAgOiBSZW5kZXJNYXRoTUxSb290KGRvY3VtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogewogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhN
TFRva2VuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1M
VG9rZW4uY3BwCmluZGV4IDgwMzNlM2EuLmRjNGJhNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVG9rZW4uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVG9rZW4uY3BwCkBAIC0zNywxMyAr
MzcsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIE1hdGhNTE5hbWVz
OwogCiBSZW5kZXJNYXRoTUxUb2tlbjo6UmVuZGVyTWF0aE1MVG9rZW4oRWxlbWVudCYgZWxlbWVu
dCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJNYXRoTUxCbG9jayhl
bGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyTWF0aE1MQmxvY2soZWxlbWVu
dCwgV1RGOjptb3ZlKHN0eWxlKSkKICAgICAsIG1fY29udGFpbnNFbGVtZW50KGZhbHNlKQogewog
fQogCiBSZW5kZXJNYXRoTUxUb2tlbjo6UmVuZGVyTWF0aE1MVG9rZW4oRG9jdW1lbnQmIGRvY3Vt
ZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlck1hdGhNTEJsb2Nr
KGRvY3VtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyTWF0aE1MQmxvY2soZG9j
dW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiAgICAgLCBtX2NvbnRhaW5zRWxlbWVudChmYWxzZSkK
IHsKIH0KQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBSZW5kZXJNYXRoTUxUb2tlbjo6dXBkYXRlU3R5
bGUoKQogICAgICAgICAgICAgbmV3U3R5bGUuZ2V0KCkuZm9udCgpLnVwZGF0ZShmb250U2VsZWN0
b3IpOwogICAgIH0KIAotICAgIHdyYXBwZXItPnNldFN0eWxlKHN0ZDo6bW92ZShuZXdTdHlsZSkp
OworICAgIHdyYXBwZXItPnNldFN0eWxlKFdURjo6bW92ZShuZXdTdHlsZSkpOwogICAgIHdyYXBw
ZXItPnNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFVuZGVyT3Zlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFVuZGVyT3Zl
ci5jcHAKaW5kZXggNjAyZDRjYi4uMTAzMmVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVW5kZXJPdmVyLmNwcApAQCAtMzks
NyArMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgTWF0aE1MTmFt
ZXM7CiAgICAgCiBSZW5kZXJNYXRoTUxVbmRlck92ZXI6OlJlbmRlck1hdGhNTFVuZGVyT3ZlcihF
bGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRl
ck1hdGhNTEJsb2NrKGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJNYXRo
TUxCbG9jayhlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogewogICAgIC8vIERldGVybWluZSB3
aGF0IGtpbmQgb2YgdW5kZXIvb3ZlciBleHByZXNzaW9uIHdlIGhhdmUgYnkgZWxlbWVudCBuYW1l
CiAgICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bXVuZGVyVGFnKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5oCmluZGV4IDNl
YTQ1MTUuLjdhNmFhYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFw
ZXMvUG9seWdvblNoYXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Q
b2x5Z29uU2hhcGUuaApAQCAtNjEsNyArNjEsNyBAQCBjbGFzcyBQb2x5Z29uU2hhcGUgOiBwdWJs
aWMgU2hhcGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBvbHlnb25TaGFwZSk7CiBwdWJs
aWM6CiAgICAgUG9seWdvblNoYXBlKHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8RmxvYXRQb2ludD4+
IHZlcnRpY2VzLCBXaW5kUnVsZSBmaWxsUnVsZSkKLSAgICAgICAgOiBtX3BvbHlnb24oc3RkOjpt
b3ZlKHZlcnRpY2VzKSwgZmlsbFJ1bGUpCisgICAgICAgIDogbV9wb2x5Z29uKFdURjo6bW92ZSh2
ZXJ0aWNlcyksIGZpbGxSdWxlKQogICAgIHsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuaAppbmRleCA3ZWU1ZDA4Li40Y2QxODkyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1Jhc3RlclNoYXBlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SYXN0ZXJTaGFwZS5oCkBAIC04MCw3
ICs4MCw3IEBAIGNsYXNzIFJhc3RlclNoYXBlIDogcHVibGljIFNoYXBlIHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShSYXN0ZXJTaGFwZSk7CiBwdWJsaWM6CiAgICAgUmFzdGVyU2hhcGUoc3Rk
Ojp1bmlxdWVfcHRyPFJhc3RlclNoYXBlSW50ZXJ2YWxzPiBpbnRlcnZhbHMsIGNvbnN0IEludFNp
emUmIG1hcmdpblJlY3RTaXplKQotICAgICAgICA6IG1faW50ZXJ2YWxzKHN0ZDo6bW92ZShpbnRl
cnZhbHMpKQorICAgICAgICA6IG1faW50ZXJ2YWxzKFdURjo6bW92ZShpbnRlcnZhbHMpKQogICAg
ICAgICAsIG1fbWFyZ2luUmVjdFNpemUobWFyZ2luUmVjdFNpemUpCiAgICAgewogICAgICAgICBt
X2ludGVydmFscy0+aW5pdGlhbGl6ZUJvdW5kcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c2hhcGVzL1NoYXBlLmNwcAppbmRleCA4YzcxM2E0Li40YmY4YzZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmNwcApAQCAtNjIsNyArNjIsNyBAQCBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPFNoYXBlPiBjcmVhdGVFbGxpcHNlU2hhcGUoY29uc3QgRmxvYXRQb2ludCYg
Y2VudGVyLCBjb25zdAogCiBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNoYXBlPiBjcmVhdGVQb2x5
Z29uU2hhcGUoc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxGbG9hdFBvaW50Pj4gdmVydGljZXMsIFdp
bmRSdWxlIGZpbGxSdWxlKQogewotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBvbHlnb25T
aGFwZT4oc3RkOjptb3ZlKHZlcnRpY2VzKSwgZmlsbFJ1bGUpOworICAgIHJldHVybiBzdGQ6Om1h
a2VfdW5pcXVlPFBvbHlnb25TaGFwZT4oV1RGOjptb3ZlKHZlcnRpY2VzKSwgZmlsbFJ1bGUpOwog
fQogCiBzdGF0aWMgaW5saW5lIEZsb2F0UmVjdCBwaHlzaWNhbFJlY3RUb0xvZ2ljYWwoY29uc3Qg
RmxvYXRSZWN0JiByZWN0LCBmbG9hdCBsb2dpY2FsQm94SGVpZ2h0LCBXcml0aW5nTW9kZSB3cml0
aW5nTW9kZSkKQEAgLTEzNyw3ICsxMzcsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8U2hhcGU+IFNoYXBl
OjpjcmVhdGVTaGFwZShjb25zdCBCYXNpY1NoYXBlKiBiYXNpY1NoYXBlLCBjb25zdCBMYQogICAg
ICAgICAgICAgKCp2ZXJ0aWNlcylbaSAvIDJdID0gcGh5c2ljYWxQb2ludFRvTG9naWNhbCh2ZXJ0
ZXgsIGxvZ2ljYWxCb3hTaXplLmhlaWdodCgpLCB3cml0aW5nTW9kZSk7CiAgICAgICAgIH0KIAot
ICAgICAgICBzaGFwZSA9IGNyZWF0ZVBvbHlnb25TaGFwZShzdGQ6Om1vdmUodmVydGljZXMpLCBw
b2x5Z29uLndpbmRSdWxlKCkpOworICAgICAgICBzaGFwZSA9IGNyZWF0ZVBvbHlnb25TaGFwZShX
VEY6Om1vdmUodmVydGljZXMpLCBwb2x5Z29uLndpbmRSdWxlKCkpOwogICAgICAgICBicmVhazsK
ICAgICB9CiAKQEAgLTIxNCwxMCArMjE0LDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxTaGFwZT4gU2hh
cGU6OmNyZWF0ZVJhc3RlclNoYXBlKEltYWdlKiBpbWFnZSwgZmxvYXQgdGhyZXNob2xkLCBjCiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBhdXRvIHJhc3RlclNoYXBlID0gc3RkOjptYWtlX3VuaXF1
ZTxSYXN0ZXJTaGFwZT4oc3RkOjptb3ZlKGludGVydmFscyksIG1hcmdpblJlY3Quc2l6ZSgpKTsK
KyAgICBhdXRvIHJhc3RlclNoYXBlID0gc3RkOjptYWtlX3VuaXF1ZTxSYXN0ZXJTaGFwZT4oV1RG
Ojptb3ZlKGludGVydmFscyksIG1hcmdpblJlY3Quc2l6ZSgpKTsKICAgICByYXN0ZXJTaGFwZS0+
bV93cml0aW5nTW9kZSA9IHdyaXRpbmdNb2RlOwogICAgIHJhc3RlclNoYXBlLT5tX21hcmdpbiA9
IG1hcmdpbjsKLSAgICByZXR1cm4gc3RkOjptb3ZlKHJhc3RlclNoYXBlKTsKKyAgICByZXR1cm4g
V1RGOjptb3ZlKHJhc3RlclNoYXBlKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNoYXBlPiBTaGFw
ZTo6Y3JlYXRlQm94U2hhcGUoY29uc3QgUm91bmRlZFJlY3QmIHJvdW5kZWRSZWN0LCBXcml0aW5n
TW9kZSB3cml0aW5nTW9kZSwgZmxvYXQgbWFyZ2luKQpAQCAtMjMwLDcgKzIzMCw3IEBAIHN0ZDo6
dW5pcXVlX3B0cjxTaGFwZT4gU2hhcGU6OmNyZWF0ZUJveFNoYXBlKGNvbnN0IFJvdW5kZWRSZWN0
JiByb3VuZGVkUmVjdCwgV3JpCiAgICAgc2hhcGUtPm1fd3JpdGluZ01vZGUgPSB3cml0aW5nTW9k
ZTsKICAgICBzaGFwZS0+bV9tYXJnaW4gPSBtYXJnaW47CiAKLSAgICByZXR1cm4gc3RkOjptb3Zl
KHNoYXBlKTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKHNoYXBlKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jh
c2ljU2hhcGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBl
cy5jcHAKaW5kZXggMWVjYjJlNi4uMDgyZjk1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuY3BwCkBAIC01NCw4ICs1NCw4IEBAIHZvaWQgQmFzaWNT
aGFwZUNlbnRlckNvb3JkaW5hdGU6OnVwZGF0ZUNvbXB1dGVkTGVuZ3RoKCkKIAogICAgIGF1dG8g
bGhzID0gc3RkOjptYWtlX3VuaXF1ZTxDYWxjRXhwcmVzc2lvbkxlbmd0aD4oTGVuZ3RoKDEwMCwg
UGVyY2VudCkpOwogICAgIGF1dG8gcmhzID0gc3RkOjptYWtlX3VuaXF1ZTxDYWxjRXhwcmVzc2lv
bkxlbmd0aD4obV9sZW5ndGgpOwotICAgIGF1dG8gb3AgPSBzdGQ6Om1ha2VfdW5pcXVlPENhbGNF
eHByZXNzaW9uQmluYXJ5T3BlcmF0aW9uPihzdGQ6Om1vdmUobGhzKSwgc3RkOjptb3ZlKHJocyks
IENhbGNTdWJ0cmFjdCk7Ci0gICAgbV9jb21wdXRlZExlbmd0aCA9IExlbmd0aChDYWxjdWxhdGlv
blZhbHVlOjpjcmVhdGUoc3RkOjptb3ZlKG9wKSwgQ2FsY3VsYXRpb25SYW5nZUFsbCkpOworICAg
IGF1dG8gb3AgPSBzdGQ6Om1ha2VfdW5pcXVlPENhbGNFeHByZXNzaW9uQmluYXJ5T3BlcmF0aW9u
PihXVEY6Om1vdmUobGhzKSwgV1RGOjptb3ZlKHJocyksIENhbGNTdWJ0cmFjdCk7CisgICAgbV9j
b21wdXRlZExlbmd0aCA9IExlbmd0aChDYWxjdWxhdGlvblZhbHVlOjpjcmVhdGUoV1RGOjptb3Zl
KG9wKSwgQ2FsY3VsYXRpb25SYW5nZUFsbCkpOwogfQogCiBib29sIEJhc2ljU2hhcGU6OmNhbkJs
ZW5kKGNvbnN0IEJhc2ljU2hhcGUqIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuaAppbmRleCA4ZTE4ZjQ2Li41ODkyZjEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuaApAQCAtMTUzLDkgKzE1
Myw5IEBAIHB1YmxpYzoKICAgICBjb25zdCBCYXNpY1NoYXBlUmFkaXVzJiByYWRpdXMoKSBjb25z
dCB7IHJldHVybiBtX3JhZGl1czsgfQogICAgIGZsb2F0IGZsb2F0VmFsdWVGb3JSYWRpdXNJbkJv
eChmbG9hdCBib3hXaWR0aCwgZmxvYXQgYm94SGVpZ2h0KSBjb25zdDsKIAotICAgIHZvaWQgc2V0
Q2VudGVyWChCYXNpY1NoYXBlQ2VudGVyQ29vcmRpbmF0ZSBjZW50ZXJYKSB7IG1fY2VudGVyWCA9
IHN0ZDo6bW92ZShjZW50ZXJYKTsgfQotICAgIHZvaWQgc2V0Q2VudGVyWShCYXNpY1NoYXBlQ2Vu
dGVyQ29vcmRpbmF0ZSBjZW50ZXJZKSB7IG1fY2VudGVyWSA9IHN0ZDo6bW92ZShjZW50ZXJZKTsg
fQotICAgIHZvaWQgc2V0UmFkaXVzKEJhc2ljU2hhcGVSYWRpdXMgcmFkaXVzKSB7IG1fcmFkaXVz
ID0gc3RkOjptb3ZlKHJhZGl1cyk7IH0KKyAgICB2b2lkIHNldENlbnRlclgoQmFzaWNTaGFwZUNl
bnRlckNvb3JkaW5hdGUgY2VudGVyWCkgeyBtX2NlbnRlclggPSBXVEY6Om1vdmUoY2VudGVyWCk7
IH0KKyAgICB2b2lkIHNldENlbnRlclkoQmFzaWNTaGFwZUNlbnRlckNvb3JkaW5hdGUgY2VudGVy
WSkgeyBtX2NlbnRlclkgPSBXVEY6Om1vdmUoY2VudGVyWSk7IH0KKyAgICB2b2lkIHNldFJhZGl1
cyhCYXNpY1NoYXBlUmFkaXVzIHJhZGl1cykgeyBtX3JhZGl1cyA9IFdURjo6bW92ZShyYWRpdXMp
OyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcGF0aChQYXRoJiwgY29uc3QgRmxvYXRSZWN0Jikgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEJhc2ljU2hhcGU+IGJsZW5kKGNvbnN0IEJh
c2ljU2hhcGUqLCBkb3VibGUpIGNvbnN0IG92ZXJyaWRlOwpAQCAtMTc5LDEwICsxNzksMTAgQEAg
cHVibGljOgogICAgIGNvbnN0IEJhc2ljU2hhcGVSYWRpdXMmIHJhZGl1c1koKSBjb25zdCB7IHJl
dHVybiBtX3JhZGl1c1k7IH0KICAgICBmbG9hdCBmbG9hdFZhbHVlRm9yUmFkaXVzSW5Cb3goY29u
c3QgQmFzaWNTaGFwZVJhZGl1cyYsIGZsb2F0IGNlbnRlciwgZmxvYXQgYm94V2lkdGhPckhlaWdo
dCkgY29uc3Q7CiAKLSAgICB2b2lkIHNldENlbnRlclgoQmFzaWNTaGFwZUNlbnRlckNvb3JkaW5h
dGUgY2VudGVyWCkgeyBtX2NlbnRlclggPSBzdGQ6Om1vdmUoY2VudGVyWCk7IH0KLSAgICB2b2lk
IHNldENlbnRlclkoQmFzaWNTaGFwZUNlbnRlckNvb3JkaW5hdGUgY2VudGVyWSkgeyBtX2NlbnRl
clkgPSBzdGQ6Om1vdmUoY2VudGVyWSk7IH0KLSAgICB2b2lkIHNldFJhZGl1c1goQmFzaWNTaGFw
ZVJhZGl1cyByYWRpdXNYKSB7IG1fcmFkaXVzWCA9IHN0ZDo6bW92ZShyYWRpdXNYKTsgfQotICAg
IHZvaWQgc2V0UmFkaXVzWShCYXNpY1NoYXBlUmFkaXVzIHJhZGl1c1kpIHsgbV9yYWRpdXNZID0g
c3RkOjptb3ZlKHJhZGl1c1kpOyB9CisgICAgdm9pZCBzZXRDZW50ZXJYKEJhc2ljU2hhcGVDZW50
ZXJDb29yZGluYXRlIGNlbnRlclgpIHsgbV9jZW50ZXJYID0gV1RGOjptb3ZlKGNlbnRlclgpOyB9
CisgICAgdm9pZCBzZXRDZW50ZXJZKEJhc2ljU2hhcGVDZW50ZXJDb29yZGluYXRlIGNlbnRlclkp
IHsgbV9jZW50ZXJZID0gV1RGOjptb3ZlKGNlbnRlclkpOyB9CisgICAgdm9pZCBzZXRSYWRpdXNY
KEJhc2ljU2hhcGVSYWRpdXMgcmFkaXVzWCkgeyBtX3JhZGl1c1ggPSBXVEY6Om1vdmUocmFkaXVz
WCk7IH0KKyAgICB2b2lkIHNldFJhZGl1c1koQmFzaWNTaGFwZVJhZGl1cyByYWRpdXNZKSB7IG1f
cmFkaXVzWSA9IFdURjo6bW92ZShyYWRpdXNZKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHBhdGgo
UGF0aCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxCYXNpY1NoYXBlPiBibGVuZChjb25zdCBCYXNpY1NoYXBlKiwgZG91YmxlKSBjb25zdCBvdmVy
cmlkZTsKQEAgLTIwNiw3ICsyMDYsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgTGVuZ3RoJiBnZXRZ
QXQodW5zaWduZWQgaSkgY29uc3QgeyByZXR1cm4gbV92YWx1ZXNbMiAqIGkgKyAxXTsgfQogCiAg
ICAgdm9pZCBzZXRXaW5kUnVsZShXaW5kUnVsZSB3aW5kUnVsZSkgeyBtX3dpbmRSdWxlID0gd2lu
ZFJ1bGU7IH0KLSAgICB2b2lkIGFwcGVuZFBvaW50KExlbmd0aCB4LCBMZW5ndGggeSkgeyBtX3Zh
bHVlcy5hcHBlbmQoc3RkOjptb3ZlKHgpKTsgbV92YWx1ZXMuYXBwZW5kKHN0ZDo6bW92ZSh5KSk7
IH0KKyAgICB2b2lkIGFwcGVuZFBvaW50KExlbmd0aCB4LCBMZW5ndGggeSkgeyBtX3ZhbHVlcy5h
cHBlbmQoV1RGOjptb3ZlKHgpKTsgbV92YWx1ZXMuYXBwZW5kKFdURjo6bW92ZSh5KSk7IH0KIAog
ICAgIHZpcnR1YWwgdm9pZCBwYXRoKFBhdGgmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4gYmxlbmQoY29uc3QgQmFzaWNTaGFw
ZSosIGRvdWJsZSkgY29uc3Qgb3ZlcnJpZGU7CkBAIC0yMzcsMTUgKzIzNywxNSBAQCBwdWJsaWM6
CiAgICAgY29uc3QgTGVuZ3RoU2l6ZSYgYm90dG9tUmlnaHRSYWRpdXMoKSBjb25zdCB7IHJldHVy
biBtX2JvdHRvbVJpZ2h0UmFkaXVzOyB9CiAgICAgY29uc3QgTGVuZ3RoU2l6ZSYgYm90dG9tTGVm
dFJhZGl1cygpIGNvbnN0IHsgcmV0dXJuIG1fYm90dG9tTGVmdFJhZGl1czsgfQogCi0gICAgdm9p
ZCBzZXRUb3AoTGVuZ3RoIHRvcCkgeyBtX3RvcCA9IHN0ZDo6bW92ZSh0b3ApOyB9Ci0gICAgdm9p
ZCBzZXRSaWdodChMZW5ndGggcmlnaHQpIHsgbV9yaWdodCA9IHN0ZDo6bW92ZShyaWdodCk7IH0K
LSAgICB2b2lkIHNldEJvdHRvbShMZW5ndGggYm90dG9tKSB7IG1fYm90dG9tID0gc3RkOjptb3Zl
KGJvdHRvbSk7IH0KLSAgICB2b2lkIHNldExlZnQoTGVuZ3RoIGxlZnQpIHsgbV9sZWZ0ID0gc3Rk
Ojptb3ZlKGxlZnQpOyB9CisgICAgdm9pZCBzZXRUb3AoTGVuZ3RoIHRvcCkgeyBtX3RvcCA9IFdU
Rjo6bW92ZSh0b3ApOyB9CisgICAgdm9pZCBzZXRSaWdodChMZW5ndGggcmlnaHQpIHsgbV9yaWdo
dCA9IFdURjo6bW92ZShyaWdodCk7IH0KKyAgICB2b2lkIHNldEJvdHRvbShMZW5ndGggYm90dG9t
KSB7IG1fYm90dG9tID0gV1RGOjptb3ZlKGJvdHRvbSk7IH0KKyAgICB2b2lkIHNldExlZnQoTGVu
Z3RoIGxlZnQpIHsgbV9sZWZ0ID0gV1RGOjptb3ZlKGxlZnQpOyB9CiAKLSAgICB2b2lkIHNldFRv
cExlZnRSYWRpdXMoTGVuZ3RoU2l6ZSByYWRpdXMpIHsgbV90b3BMZWZ0UmFkaXVzID0gc3RkOjpt
b3ZlKHJhZGl1cyk7IH0KLSAgICB2b2lkIHNldFRvcFJpZ2h0UmFkaXVzKExlbmd0aFNpemUgcmFk
aXVzKSB7IG1fdG9wUmlnaHRSYWRpdXMgPSBzdGQ6Om1vdmUocmFkaXVzKTsgfQotICAgIHZvaWQg
c2V0Qm90dG9tUmlnaHRSYWRpdXMoTGVuZ3RoU2l6ZSByYWRpdXMpIHsgbV9ib3R0b21SaWdodFJh
ZGl1cyA9IHN0ZDo6bW92ZShyYWRpdXMpOyB9Ci0gICAgdm9pZCBzZXRCb3R0b21MZWZ0UmFkaXVz
KExlbmd0aFNpemUgcmFkaXVzKSB7IG1fYm90dG9tTGVmdFJhZGl1cyA9IHN0ZDo6bW92ZShyYWRp
dXMpOyB9CisgICAgdm9pZCBzZXRUb3BMZWZ0UmFkaXVzKExlbmd0aFNpemUgcmFkaXVzKSB7IG1f
dG9wTGVmdFJhZGl1cyA9IFdURjo6bW92ZShyYWRpdXMpOyB9CisgICAgdm9pZCBzZXRUb3BSaWdo
dFJhZGl1cyhMZW5ndGhTaXplIHJhZGl1cykgeyBtX3RvcFJpZ2h0UmFkaXVzID0gV1RGOjptb3Zl
KHJhZGl1cyk7IH0KKyAgICB2b2lkIHNldEJvdHRvbVJpZ2h0UmFkaXVzKExlbmd0aFNpemUgcmFk
aXVzKSB7IG1fYm90dG9tUmlnaHRSYWRpdXMgPSBXVEY6Om1vdmUocmFkaXVzKTsgfQorICAgIHZv
aWQgc2V0Qm90dG9tTGVmdFJhZGl1cyhMZW5ndGhTaXplIHJhZGl1cykgeyBtX2JvdHRvbUxlZnRS
YWRpdXMgPSBXVEY6Om1vdmUocmFkaXVzKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHBhdGgoUGF0
aCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxC
YXNpY1NoYXBlPiBibGVuZChjb25zdCBCYXNpY1NoYXBlKiwgZG91YmxlKSBjb25zdCBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250ZW50RGF0
YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuY3BwCmlu
ZGV4IGIwYzQ2OWIuLmUxZjdkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9Db250ZW50RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0NvbnRlbnREYXRhLmNwcApAQCAtNDAsNyArNDAsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q29u
dGVudERhdGE+IENvbnRlbnREYXRhOjpjbG9uZSgpIGNvbnN0CiAgICAgQ29udGVudERhdGEqIGxh
c3ROZXdEYXRhID0gcmVzdWx0LmdldCgpOwogICAgIGZvciAoY29uc3QgQ29udGVudERhdGEqIGNv
bnRlbnREYXRhID0gbmV4dCgpOyBjb250ZW50RGF0YTsgY29udGVudERhdGEgPSBjb250ZW50RGF0
YS0+bmV4dCgpKSB7CiAgICAgICAgIGF1dG8gbmV3RGF0YSA9IGNvbnRlbnREYXRhLT5jbG9uZUlu
dGVybmFsKCk7Ci0gICAgICAgIGxhc3ROZXdEYXRhLT5zZXROZXh0KHN0ZDo6bW92ZShuZXdEYXRh
KSk7CisgICAgICAgIGxhc3ROZXdEYXRhLT5zZXROZXh0KFdURjo6bW92ZShuZXdEYXRhKSk7CiAg
ICAgICAgIGxhc3ROZXdEYXRhID0gbGFzdE5ld0RhdGEtPm5leHQoKTsKICAgICB9CiAgICAgICAg
IApAQCAtNTIsMTQgKzUyLDE0IEBAIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IEltYWdlQ29udGVu
dERhdGE6OmNyZWF0ZUNvbnRlbnRSZW5kZXJlcihEb2N1bWVudCYgZG9jdW1lCiAgICAgYXV0byBp
bWFnZSA9IGNyZWF0ZVJlbmRlcmVyPFJlbmRlckltYWdlPihkb2N1bWVudCwgUmVuZGVyU3R5bGU6
OmNyZWF0ZVN0eWxlSW5oZXJpdGluZ0Zyb21Qc2V1ZG9TdHlsZShwc2V1ZG9TdHlsZSksIG1faW1h
Z2UuZ2V0KCkpOwogICAgIGltYWdlLT5pbml0aWFsaXplU3R5bGUoKTsKICAgICBpbWFnZS0+c2V0
QWx0VGV4dChhbHRUZXh0KCkpOwotICAgIHJldHVybiBzdGQ6Om1vdmUoaW1hZ2UpOworICAgIHJl
dHVybiBXVEY6Om1vdmUoaW1hZ2UpOwogfQogCiBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBUZXh0
Q29udGVudERhdGE6OmNyZWF0ZUNvbnRlbnRSZW5kZXJlcihEb2N1bWVudCYgZG9jdW1lbnQsIGNv
bnN0IFJlbmRlclN0eWxlJikgY29uc3QKIHsKICAgICBhdXRvIGZyYWdtZW50ID0gY3JlYXRlUmVu
ZGVyZXI8UmVuZGVyVGV4dEZyYWdtZW50Pihkb2N1bWVudCwgbV90ZXh0KTsKICAgICBmcmFnbWVu
dC0+c2V0QWx0VGV4dChhbHRUZXh0KCkpOwotICAgIHJldHVybiBzdGQ6Om1vdmUoZnJhZ21lbnQp
OworICAgIHJldHVybiBXVEY6Om1vdmUoZnJhZ21lbnQpOwogfQogCiBSZW5kZXJQdHI8UmVuZGVy
T2JqZWN0PiBDb3VudGVyQ29udGVudERhdGE6OmNyZWF0ZUNvbnRlbnRSZW5kZXJlcihEb2N1bWVu
dCYgZG9jdW1lbnQsIGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3QKQEAgLTcxLDcgKzcxLDcgQEAg
UmVuZGVyUHRyPFJlbmRlck9iamVjdD4gUXVvdGVDb250ZW50RGF0YTo6Y3JlYXRlQ29udGVudFJl
bmRlcmVyKERvY3VtZW50JiBkb2N1bWUKIHsKICAgICBhdXRvIHF1b3RlID0gY3JlYXRlUmVuZGVy
ZXI8UmVuZGVyUXVvdGU+KGRvY3VtZW50LCBSZW5kZXJTdHlsZTo6Y3JlYXRlU3R5bGVJbmhlcml0
aW5nRnJvbVBzZXVkb1N0eWxlKHBzZXVkb1N0eWxlKSwgbV9xdW90ZSk7CiAgICAgcXVvdGUtPmlu
aXRpYWxpemVTdHlsZSgpOwotICAgIHJldHVybiBzdGQ6Om1vdmUocXVvdGUpOworICAgIHJldHVy
biBXVEY6Om1vdmUocXVvdGUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250ZW50RGF0YS5oCmluZGV4IGJmMzY5YjYuLmMw
NjVjYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250ZW50
RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250ZW50RGF0YS5o
CkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29udGVudERh
dGE+IGNsb25lKCkgY29uc3Q7CiAKICAgICBDb250ZW50RGF0YSogbmV4dCgpIGNvbnN0IHsgcmV0
dXJuIG1fbmV4dC5nZXQoKTsgfQotICAgIHZvaWQgc2V0TmV4dChzdGQ6OnVuaXF1ZV9wdHI8Q29u
dGVudERhdGE+IG5leHQpIHsgbV9uZXh0ID0gc3RkOjptb3ZlKG5leHQpOyB9CisgICAgdm9pZCBz
ZXROZXh0KHN0ZDo6dW5pcXVlX3B0cjxDb250ZW50RGF0YT4gbmV4dCkgeyBtX25leHQgPSBXVEY6
Om1vdmUobmV4dCk7IH0KIAogICAgIHZvaWQgc2V0QWx0VGV4dChjb25zdCBTdHJpbmcmIGFsdCkg
eyBtX2FsdFRleHQgPSBhbHQ7IH0KICAgICBjb25zdCBTdHJpbmcmIGFsdFRleHQoKSBjb25zdCB7
IHJldHVybiBtX2FsdFRleHQ7IH0KQEAgLTE1NCw3ICsxNTQsNyBAQCBjbGFzcyBDb3VudGVyQ29u
dGVudERhdGEgZmluYWwgOiBwdWJsaWMgQ29udGVudERhdGEgewogcHVibGljOgogICAgIGV4cGxp
Y2l0IENvdW50ZXJDb250ZW50RGF0YShzdGQ6OnVuaXF1ZV9wdHI8Q291bnRlckNvbnRlbnQ+IGNv
dW50ZXIpCiAgICAgICAgIDogQ29udGVudERhdGEoQ291bnRlckRhdGFUeXBlKQotICAgICAgICAs
IG1fY291bnRlcihzdGQ6Om1vdmUoY291bnRlcikpCisgICAgICAgICwgbV9jb3VudGVyKFdURjo6
bW92ZShjb3VudGVyKSkKICAgICB7CiAgICAgICAgIEFTU0VSVChtX2NvdW50ZXIpOwogICAgIH0K
QEAgLTE2Myw3ICsxNjMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDb3VudGVyKHN0ZDo6dW5p
cXVlX3B0cjxDb3VudGVyQ29udGVudD4gY291bnRlcikKICAgICB7CiAgICAgICAgIEFTU0VSVChj
b3VudGVyKTsKLSAgICAgICAgbV9jb3VudGVyID0gc3RkOjptb3ZlKGNvdW50ZXIpOworICAgICAg
ICBtX2NvdW50ZXIgPSBXVEY6Om1vdmUoY291bnRlcik7CiAgICAgfQogCiAgICAgdmlydHVhbCBS
ZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBjcmVhdGVDb250ZW50UmVuZGVyZXIoRG9jdW1lbnQmLCBj
b25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IG92ZXJyaWRlOwpAQCAtMTcyLDcgKzE3Miw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8Q29udGVudERhdGE+IGNsb25lSW50
ZXJuYWwoKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgYXV0byBjb3VudGVyRGF0YSA9
IHN0ZDo6bWFrZV91bmlxdWU8Q291bnRlckNvbnRlbnQ+KGNvdW50ZXIoKSk7Ci0gICAgICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPENvdW50ZXJDb250ZW50RGF0YT4oc3RkOjptb3ZlKGNvdW50
ZXJEYXRhKSk7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPENvdW50ZXJDb250ZW50
RGF0YT4oV1RGOjptb3ZlKGNvdW50ZXJEYXRhKSk7CiAgICAgfQogCiAgICAgc3RkOjp1bmlxdWVf
cHRyPENvdW50ZXJDb250ZW50PiBtX2NvdW50ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvRGF0YVJlZi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0RhdGFSZWYuaAppbmRleCAzZWIxNGUxLi43OTY0Y2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRGF0YVJlZi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9EYXRhUmVmLmgKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgRGF0YVJlZiB7CiBwdWJsaWM6Ci0g
ICAgRGF0YVJlZihQYXNzUmVmPFQ+IGRhdGEpIDogbV9kYXRhKHN0ZDo6bW92ZShkYXRhKSkgeyB9
CisgICAgRGF0YVJlZihQYXNzUmVmPFQ+IGRhdGEpIDogbV9kYXRhKFdURjo6bW92ZShkYXRhKSkg
eyB9CiAgICAgRGF0YVJlZihjb25zdCBEYXRhUmVmJiBvdGhlcikgOiBtX2RhdGEoY29uc3RfY2Fz
dDxUJj4ob3RoZXIubV9kYXRhLmdldCgpKSkgeyB9CiAgICAgRGF0YVJlZiYgb3BlcmF0b3I9KGNv
bnN0IERhdGFSZWYmIG90aGVyKSB7IG1fZGF0YSA9IGNvbnN0X2Nhc3Q8VCY+KG90aGVyLm1fZGF0
YS5nZXQoKSk7IHJldHVybiAqdGhpczsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9GaWxsTGF5ZXIuY3BwCmluZGV4IDdmYmE1NjIuLmI5MWZiZTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCkBAIC0xMDgsNyArMTA4LDcgQEAg
RmlsbExheWVyOjpGaWxsTGF5ZXIoY29uc3QgRmlsbExheWVyJiBvKQogRmlsbExheWVyOjp+Rmls
bExheWVyKCkKIHsKICAgICAvLyBEZWxldGUgdGhlIGxheWVycyBpbiBhIGxvb3AgcmF0aGVyIHRo
YW4gYWxsb3dpbmcgcmVjdXJzaXZlIGNhbGxzIHRvIHRoZSBkZXN0cnVjdG9ycy4KLSAgICBmb3Ig
KHN0ZDo6dW5pcXVlX3B0cjxGaWxsTGF5ZXI+IG5leHQgPSBzdGQ6Om1vdmUobV9uZXh0KTsgbmV4
dDsgbmV4dCA9IHN0ZDo6bW92ZShuZXh0LT5tX25leHQpKSB7IH0KKyAgICBmb3IgKHN0ZDo6dW5p
cXVlX3B0cjxGaWxsTGF5ZXI+IG5leHQgPSBXVEY6Om1vdmUobV9uZXh0KTsgbmV4dDsgbmV4dCA9
IFdURjo6bW92ZShuZXh0LT5tX25leHQpKSB7IH0KIH0KIAogRmlsbExheWVyJiBGaWxsTGF5ZXI6
Om9wZXJhdG9yPShjb25zdCBGaWxsTGF5ZXImIG8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvRmlsbExheWVyLmgKaW5kZXggY2U0YjRmMy4uOWJlYjdiZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaApAQCAtMTAyLDggKzEwMiw4IEBAIHB1Ymxp
YzoKICAgICBib29sIGlzTWFza1NvdXJjZVR5cGVTZXQoKSBjb25zdCB7IHJldHVybiBtX21hc2tT
b3VyY2VUeXBlU2V0OyB9CiAKICAgICB2b2lkIHNldEltYWdlKFBhc3NSZWZQdHI8U3R5bGVJbWFn
ZT4gaW1hZ2UpIHsgbV9pbWFnZSA9IGltYWdlOyBtX2ltYWdlU2V0ID0gdHJ1ZTsgfQotICAgIHZv
aWQgc2V0WFBvc2l0aW9uKExlbmd0aCBsZW5ndGgpIHsgbV94UG9zaXRpb24gPSBzdGQ6Om1vdmUo
bGVuZ3RoKTsgbV94UG9zU2V0ID0gdHJ1ZTsgfQotICAgIHZvaWQgc2V0WVBvc2l0aW9uKExlbmd0
aCBsZW5ndGgpIHsgbV95UG9zaXRpb24gPSBzdGQ6Om1vdmUobGVuZ3RoKTsgbV95UG9zU2V0ID0g
dHJ1ZTsgfQorICAgIHZvaWQgc2V0WFBvc2l0aW9uKExlbmd0aCBsZW5ndGgpIHsgbV94UG9zaXRp
b24gPSBXVEY6Om1vdmUobGVuZ3RoKTsgbV94UG9zU2V0ID0gdHJ1ZTsgfQorICAgIHZvaWQgc2V0
WVBvc2l0aW9uKExlbmd0aCBsZW5ndGgpIHsgbV95UG9zaXRpb24gPSBXVEY6Om1vdmUobGVuZ3Ro
KTsgbV95UG9zU2V0ID0gdHJ1ZTsgfQogICAgIHZvaWQgc2V0QmFja2dyb3VuZFhPcmlnaW4oQmFj
a2dyb3VuZEVkZ2VPcmlnaW4gbykgeyBtX2JhY2tncm91bmRYT3JpZ2luID0gbzsgbV9iYWNrZ3Jv
dW5kT3JpZ2luU2V0ID0gdHJ1ZTsgfQogICAgIHZvaWQgc2V0QmFja2dyb3VuZFlPcmlnaW4oQmFj
a2dyb3VuZEVkZ2VPcmlnaW4gbykgeyBtX2JhY2tncm91bmRZT3JpZ2luID0gbzsgbV9iYWNrZ3Jv
dW5kT3JpZ2luU2V0ID0gdHJ1ZTsgfQogICAgIHZvaWQgc2V0QXR0YWNobWVudChFRmlsbEF0dGFj
aG1lbnQgYXR0YWNobWVudCkgeyBtX2F0dGFjaG1lbnQgPSBhdHRhY2htZW50OyBtX2F0dGFjaG1l
bnRTZXQgPSB0cnVlOyB9CkBAIC0xMzIsNyArMTMyLDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xl
YXJTaXplKCkgeyBtX3NpemVUeXBlID0gU2l6ZU5vbmU7IH0KICAgICB2b2lkIGNsZWFyTWFza1Nv
dXJjZVR5cGUoKSB7IG1fbWFza1NvdXJjZVR5cGVTZXQgPSBmYWxzZTsgfQogCi0gICAgdm9pZCBz
ZXROZXh0KHN0ZDo6dW5pcXVlX3B0cjxGaWxsTGF5ZXI+IG5leHQpIHsgbV9uZXh0ID0gc3RkOjpt
b3ZlKG5leHQpOyB9CisgICAgdm9pZCBzZXROZXh0KHN0ZDo6dW5pcXVlX3B0cjxGaWxsTGF5ZXI+
IG5leHQpIHsgbV9uZXh0ID0gV1RGOjptb3ZlKG5leHQpOyB9CiAKICAgICBGaWxsTGF5ZXImIG9w
ZXJhdG9yPShjb25zdCBGaWxsTGF5ZXImKTsKICAgICBGaWxsTGF5ZXIoY29uc3QgRmlsbExheWVy
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNl
SW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdl
LmNwcAppbmRleCA0M2JkMWIwLi4wNDE0Yzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5jcHAKQEAgLTQyLDkgKzQyLDkgQEAgTmluZVBp
ZWNlSW1hZ2U6Ok5pbmVQaWVjZUltYWdlKFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gaW1hZ2UsIExl
bmd0aEJveCBpbWFnZVNsaWMKICAgICA6IG1fZGF0YShOaW5lUGllY2VJbWFnZURhdGE6OmNyZWF0
ZSgpKQogewogICAgIG1fZGF0YS5hY2Nlc3MoKS0+aW1hZ2UgPSBpbWFnZTsKLSAgICBtX2RhdGEu
YWNjZXNzKCktPmltYWdlU2xpY2VzID0gc3RkOjptb3ZlKGltYWdlU2xpY2VzKTsKLSAgICBtX2Rh
dGEuYWNjZXNzKCktPmJvcmRlclNsaWNlcyA9IHN0ZDo6bW92ZShib3JkZXJTbGljZXMpOwotICAg
IG1fZGF0YS5hY2Nlc3MoKS0+b3V0c2V0ID0gc3RkOjptb3ZlKG91dHNldCk7CisgICAgbV9kYXRh
LmFjY2VzcygpLT5pbWFnZVNsaWNlcyA9IFdURjo6bW92ZShpbWFnZVNsaWNlcyk7CisgICAgbV9k
YXRhLmFjY2VzcygpLT5ib3JkZXJTbGljZXMgPSBXVEY6Om1vdmUoYm9yZGVyU2xpY2VzKTsKKyAg
ICBtX2RhdGEuYWNjZXNzKCktPm91dHNldCA9IFdURjo6bW92ZShvdXRzZXQpOwogICAgIG1fZGF0
YS5hY2Nlc3MoKS0+ZmlsbCA9IGZpbGw7CiAgICAgbV9kYXRhLmFjY2VzcygpLT5ob3Jpem9udGFs
UnVsZSA9IGhvcml6b250YWxSdWxlOwogICAgIG1fZGF0YS5hY2Nlc3MoKS0+dmVydGljYWxSdWxl
ID0gdmVydGljYWxSdWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL05pbmVQaWVjZUltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvTmlu
ZVBpZWNlSW1hZ2UuaAppbmRleCBlMzQ5MjQxLi5kNjg2OGZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuaApAQCAtNjksMTYgKzY5LDE2IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldEltYWdlKFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gaW1hZ2Up
IHsgbV9kYXRhLmFjY2VzcygpLT5pbWFnZSA9IGltYWdlOyB9CiAgICAgCiAgICAgY29uc3QgTGVu
Z3RoQm94JiBpbWFnZVNsaWNlcygpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS0+aW1hZ2VTbGljZXM7
IH0KLSAgICB2b2lkIHNldEltYWdlU2xpY2VzKExlbmd0aEJveCBzbGljZXMpIHsgbV9kYXRhLmFj
Y2VzcygpLT5pbWFnZVNsaWNlcyA9IHN0ZDo6bW92ZShzbGljZXMpOyB9CisgICAgdm9pZCBzZXRJ
bWFnZVNsaWNlcyhMZW5ndGhCb3ggc2xpY2VzKSB7IG1fZGF0YS5hY2Nlc3MoKS0+aW1hZ2VTbGlj
ZXMgPSBXVEY6Om1vdmUoc2xpY2VzKTsgfQogCiAgICAgYm9vbCBmaWxsKCkgY29uc3QgeyByZXR1
cm4gbV9kYXRhLT5maWxsOyB9CiAgICAgdm9pZCBzZXRGaWxsKGJvb2wgZmlsbCkgeyBtX2RhdGEu
YWNjZXNzKCktPmZpbGwgPSBmaWxsOyB9CiAKICAgICBjb25zdCBMZW5ndGhCb3gmIGJvcmRlclNs
aWNlcygpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS0+Ym9yZGVyU2xpY2VzOyB9Ci0gICAgdm9pZCBz
ZXRCb3JkZXJTbGljZXMoTGVuZ3RoQm94IHNsaWNlcykgeyBtX2RhdGEuYWNjZXNzKCktPmJvcmRl
clNsaWNlcyA9IHN0ZDo6bW92ZShzbGljZXMpOyB9CisgICAgdm9pZCBzZXRCb3JkZXJTbGljZXMo
TGVuZ3RoQm94IHNsaWNlcykgeyBtX2RhdGEuYWNjZXNzKCktPmJvcmRlclNsaWNlcyA9IFdURjo6
bW92ZShzbGljZXMpOyB9CiAKICAgICBjb25zdCBMZW5ndGhCb3gmIG91dHNldCgpIGNvbnN0IHsg
cmV0dXJuIG1fZGF0YS0+b3V0c2V0OyB9Ci0gICAgdm9pZCBzZXRPdXRzZXQoTGVuZ3RoQm94IG91
dHNldCkgeyBtX2RhdGEuYWNjZXNzKCktPm91dHNldCA9IHN0ZDo6bW92ZShvdXRzZXQpOyB9Cisg
ICAgdm9pZCBzZXRPdXRzZXQoTGVuZ3RoQm94IG91dHNldCkgeyBtX2RhdGEuYWNjZXNzKCktPm91
dHNldCA9IFdURjo6bW92ZShvdXRzZXQpOyB9CiAKICAgICBFTmluZVBpZWNlSW1hZ2VSdWxlIGhv
cml6b250YWxSdWxlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RU5pbmVQaWVjZUltYWdl
UnVsZT4obV9kYXRhLT5ob3Jpem9udGFsUnVsZSk7IH0KICAgICB2b2lkIHNldEhvcml6b250YWxS
dWxlKEVOaW5lUGllY2VJbWFnZVJ1bGUgcnVsZSkgeyBtX2RhdGEuYWNjZXNzKCktPmhvcml6b250
YWxSdWxlID0gcnVsZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5jcHAKaW5kZXggOTFiMzE1MS4uMzMyMGMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC04NjQsOSArODY0LDkgQEAgdm9p
ZCBSZW5kZXJTdHlsZTo6YXBwZW5kQ29udGVudChzdGQ6OnVuaXF1ZV9wdHI8Q29udGVudERhdGE+
IGNvbnRlbnREYXRhKQogICAgICAgICBsYXN0Q29udGVudCA9IGxhc3RDb250ZW50LT5uZXh0KCk7
CiAKICAgICBpZiAobGFzdENvbnRlbnQpCi0gICAgICAgIGxhc3RDb250ZW50LT5zZXROZXh0KHN0
ZDo6bW92ZShjb250ZW50RGF0YSkpOworICAgICAgICBsYXN0Q29udGVudC0+c2V0TmV4dChXVEY6
Om1vdmUoY29udGVudERhdGEpKTsKICAgICBlbHNlCi0gICAgICAgIGNvbnRlbnQgPSBzdGQ6Om1v
dmUoY29udGVudERhdGEpOworICAgICAgICBjb250ZW50ID0gV1RGOjptb3ZlKGNvbnRlbnREYXRh
KTsKIH0KIAogdm9pZCBSZW5kZXJTdHlsZTo6c2V0Q29udGVudChQYXNzUmVmUHRyPFN0eWxlSW1h
Z2U+IGltYWdlLCBib29sIGFkZCkKQEAgLTkxNywxMSArOTE3LDExIEBAIHZvaWQgUmVuZGVyU3R5
bGU6OnNldENvbnRlbnQoc3RkOjp1bmlxdWVfcHRyPENvdW50ZXJDb250ZW50PiBjb3VudGVyLCBi
b29sIGFkZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGFkZCkgewotICAgICAgICBhcHBl
bmRDb250ZW50KHN0ZDo6bWFrZV91bmlxdWU8Q291bnRlckNvbnRlbnREYXRhPihzdGQ6Om1vdmUo
Y291bnRlcikpKTsKKyAgICAgICAgYXBwZW5kQ29udGVudChzdGQ6Om1ha2VfdW5pcXVlPENvdW50
ZXJDb250ZW50RGF0YT4oV1RGOjptb3ZlKGNvdW50ZXIpKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9jb250ZW50ID0gc3Rk
OjptYWtlX3VuaXF1ZTxDb3VudGVyQ29udGVudERhdGE+KHN0ZDo6bW92ZShjb3VudGVyKSk7Cisg
ICAgcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fY29udGVudCA9IHN0ZDo6bWFrZV91
bmlxdWU8Q291bnRlckNvbnRlbnREYXRhPihXVEY6Om1vdmUoY291bnRlcikpOwogfQogCiB2b2lk
IFJlbmRlclN0eWxlOjpzZXRDb250ZW50KFF1b3RlVHlwZSBxdW90ZSwgYm9vbCBhZGQpCkBAIC0x
MDA5LDI0ICsxMDA5LDI0IEBAIHZvaWQgUmVuZGVyU3R5bGU6OnNldFRleHRTaGFkb3coc3RkOjp1
bmlxdWVfcHRyPFNoYWRvd0RhdGE+IHNoYWRvd0RhdGEsIGJvb2wgYWRkCiAKICAgICBTdHlsZVJh
cmVJbmhlcml0ZWREYXRhKiByYXJlRGF0YSA9IHJhcmVJbmhlcml0ZWREYXRhLmFjY2VzcygpOwog
ICAgIGlmICghYWRkKSB7Ci0gICAgICAgIHJhcmVEYXRhLT50ZXh0U2hhZG93ID0gc3RkOjptb3Zl
KHNoYWRvd0RhdGEpOworICAgICAgICByYXJlRGF0YS0+dGV4dFNoYWRvdyA9IFdURjo6bW92ZShz
aGFkb3dEYXRhKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNoYWRvd0RhdGEtPnNl
dE5leHQoc3RkOjptb3ZlKHJhcmVEYXRhLT50ZXh0U2hhZG93KSk7Ci0gICAgcmFyZURhdGEtPnRl
eHRTaGFkb3cgPSBzdGQ6Om1vdmUoc2hhZG93RGF0YSk7CisgICAgc2hhZG93RGF0YS0+c2V0TmV4
dChXVEY6Om1vdmUocmFyZURhdGEtPnRleHRTaGFkb3cpKTsKKyAgICByYXJlRGF0YS0+dGV4dFNo
YWRvdyA9IFdURjo6bW92ZShzaGFkb3dEYXRhKTsKIH0KIAogdm9pZCBSZW5kZXJTdHlsZTo6c2V0
Qm94U2hhZG93KHN0ZDo6dW5pcXVlX3B0cjxTaGFkb3dEYXRhPiBzaGFkb3dEYXRhLCBib29sIGFk
ZCkKIHsKICAgICBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKiByYXJlRGF0YSA9IHJhcmVOb25J
bmhlcml0ZWREYXRhLmFjY2VzcygpOwogICAgIGlmICghYWRkKSB7Ci0gICAgICAgIHJhcmVEYXRh
LT5tX2JveFNoYWRvdyA9IHN0ZDo6bW92ZShzaGFkb3dEYXRhKTsKKyAgICAgICAgcmFyZURhdGEt
Pm1fYm94U2hhZG93ID0gV1RGOjptb3ZlKHNoYWRvd0RhdGEpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgc2hhZG93RGF0YS0+c2V0TmV4dChzdGQ6Om1vdmUocmFyZURhdGEtPm1fYm94
U2hhZG93KSk7Ci0gICAgcmFyZURhdGEtPm1fYm94U2hhZG93ID0gc3RkOjptb3ZlKHNoYWRvd0Rh
dGEpOworICAgIHNoYWRvd0RhdGEtPnNldE5leHQoV1RGOjptb3ZlKHJhcmVEYXRhLT5tX2JveFNo
YWRvdykpOworICAgIHJhcmVEYXRhLT5tX2JveFNoYWRvdyA9IFdURjo6bW92ZShzaGFkb3dEYXRh
KTsKIH0KIAogc3RhdGljIFJvdW5kZWRSZWN0OjpSYWRpaSBjYWxjUmFkaWlGb3IoY29uc3QgQm9y
ZGVyRGF0YSYgYm9yZGVyLCBjb25zdCBMYXlvdXRTaXplJiBzaXplKQpAQCAtMTM3Nyw3ICsxMzc3
LDcgQEAgdm9pZCBSZW5kZXJTdHlsZTo6c2V0V29yZFNwYWNpbmcoTGVuZ3RoIHZhbHVlKQogICAg
ICAgICBicmVhazsKICAgICB9CiAgICAgaW5oZXJpdGVkLmFjY2VzcygpLT5mb250LnNldFdvcmRT
cGFjaW5nKGZvbnRXb3JkU3BhY2luZyk7Ci0gICAgcmFyZUluaGVyaXRlZERhdGEuYWNjZXNzKCkt
PndvcmRTcGFjaW5nID0gc3RkOjptb3ZlKHZhbHVlKTsKKyAgICByYXJlSW5oZXJpdGVkRGF0YS5h
Y2Nlc3MoKS0+d29yZFNwYWNpbmcgPSBXVEY6Om1vdmUodmFsdWUpOwogfQogCiB2b2lkIFJlbmRl
clN0eWxlOjpzZXRMZXR0ZXJTcGFjaW5nKGZsb2F0IHYpIHsgaW5oZXJpdGVkLmFjY2VzcygpLT5m
b250LnNldExldHRlclNwYWNpbmcodik7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggMWVjMjFmZS4uNDAxMTI1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTExNDEsMzYgKzExNDEsMzYg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0UG9zaXRpb24oRVBvc2l0aW9uIHYpIHsgbm9uaW5oZXJp
dGVkX2ZsYWdzLnNldFBvc2l0aW9uKHYpOyB9CiAgICAgdm9pZCBzZXRGbG9hdGluZyhFRmxvYXQg
dikgeyBub25pbmhlcml0ZWRfZmxhZ3Muc2V0RmxvYXRpbmcodik7IH0KIAotICAgIHZvaWQgc2V0
TGVmdChMZW5ndGggdikgeyBTRVRfVkFSKHN1cnJvdW5kLCBvZmZzZXQubV9sZWZ0LCBzdGQ6Om1v
dmUodikpOyB9Ci0gICAgdm9pZCBzZXRSaWdodChMZW5ndGggdikgeyBTRVRfVkFSKHN1cnJvdW5k
LCBvZmZzZXQubV9yaWdodCwgc3RkOjptb3ZlKHYpKTsgfQotICAgIHZvaWQgc2V0VG9wKExlbmd0
aCB2KSB7IFNFVF9WQVIoc3Vycm91bmQsIG9mZnNldC5tX3RvcCwgc3RkOjptb3ZlKHYpKTsgfQot
ICAgIHZvaWQgc2V0Qm90dG9tKExlbmd0aCB2KSB7IFNFVF9WQVIoc3Vycm91bmQsIG9mZnNldC5t
X2JvdHRvbSwgc3RkOjptb3ZlKHYpKTsgfQorICAgIHZvaWQgc2V0TGVmdChMZW5ndGggdikgeyBT
RVRfVkFSKHN1cnJvdW5kLCBvZmZzZXQubV9sZWZ0LCBXVEY6Om1vdmUodikpOyB9CisgICAgdm9p
ZCBzZXRSaWdodChMZW5ndGggdikgeyBTRVRfVkFSKHN1cnJvdW5kLCBvZmZzZXQubV9yaWdodCwg
V1RGOjptb3ZlKHYpKTsgfQorICAgIHZvaWQgc2V0VG9wKExlbmd0aCB2KSB7IFNFVF9WQVIoc3Vy
cm91bmQsIG9mZnNldC5tX3RvcCwgV1RGOjptb3ZlKHYpKTsgfQorICAgIHZvaWQgc2V0Qm90dG9t
KExlbmd0aCB2KSB7IFNFVF9WQVIoc3Vycm91bmQsIG9mZnNldC5tX2JvdHRvbSwgV1RGOjptb3Zl
KHYpKTsgfQogCi0gICAgdm9pZCBzZXRXaWR0aChMZW5ndGggdikgeyBTRVRfVkFSKG1fYm94LCBt
X3dpZHRoLCBzdGQ6Om1vdmUodikpOyB9Ci0gICAgdm9pZCBzZXRIZWlnaHQoTGVuZ3RoIHYpIHsg
U0VUX1ZBUihtX2JveCwgbV9oZWlnaHQsIHN0ZDo6bW92ZSh2KSk7IH0KKyAgICB2b2lkIHNldFdp
ZHRoKExlbmd0aCB2KSB7IFNFVF9WQVIobV9ib3gsIG1fd2lkdGgsIFdURjo6bW92ZSh2KSk7IH0K
KyAgICB2b2lkIHNldEhlaWdodChMZW5ndGggdikgeyBTRVRfVkFSKG1fYm94LCBtX2hlaWdodCwg
V1RGOjptb3ZlKHYpKTsgfQogCiAgICAgdm9pZCBzZXRMb2dpY2FsV2lkdGgoTGVuZ3RoIHYpCiAg
ICAgewogICAgICAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkgewotICAgICAgICAg
ICAgU0VUX1ZBUihtX2JveCwgbV93aWR0aCwgc3RkOjptb3ZlKHYpKTsKKyAgICAgICAgICAgIFNF
VF9WQVIobV9ib3gsIG1fd2lkdGgsIFdURjo6bW92ZSh2KSk7CiAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICBTRVRfVkFSKG1fYm94LCBtX2hlaWdodCwgc3RkOjptb3ZlKHYpKTsKKyAgICAg
ICAgICAgIFNFVF9WQVIobV9ib3gsIG1faGVpZ2h0LCBXVEY6Om1vdmUodikpOwogICAgICAgICB9
CiAgICAgfQogCiAgICAgdm9pZCBzZXRMb2dpY2FsSGVpZ2h0KExlbmd0aCB2KQogICAgIHsKICAg
ICAgICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpIHsKLSAgICAgICAgICAgIFNFVF9W
QVIobV9ib3gsIG1faGVpZ2h0LCBzdGQ6Om1vdmUodikpOworICAgICAgICAgICAgU0VUX1ZBUiht
X2JveCwgbV9oZWlnaHQsIFdURjo6bW92ZSh2KSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICBTRVRfVkFSKG1fYm94LCBtX3dpZHRoLCBzdGQ6Om1vdmUodikpOworICAgICAgICAgICAg
U0VUX1ZBUihtX2JveCwgbV93aWR0aCwgV1RGOjptb3ZlKHYpKTsKICAgICAgICAgfQogICAgIH0K
IAotICAgIHZvaWQgc2V0TWluV2lkdGgoTGVuZ3RoIHYpIHsgU0VUX1ZBUihtX2JveCwgbV9taW5X
aWR0aCwgc3RkOjptb3ZlKHYpKTsgfQotICAgIHZvaWQgc2V0TWF4V2lkdGgoTGVuZ3RoIHYpIHsg
U0VUX1ZBUihtX2JveCwgbV9tYXhXaWR0aCwgc3RkOjptb3ZlKHYpKTsgfQotICAgIHZvaWQgc2V0
TWluSGVpZ2h0KExlbmd0aCB2KSB7IFNFVF9WQVIobV9ib3gsIG1fbWluSGVpZ2h0LCBzdGQ6Om1v
dmUodikpOyB9Ci0gICAgdm9pZCBzZXRNYXhIZWlnaHQoTGVuZ3RoIHYpIHsgU0VUX1ZBUihtX2Jv
eCwgbV9tYXhIZWlnaHQsIHN0ZDo6bW92ZSh2KSk7IH0KKyAgICB2b2lkIHNldE1pbldpZHRoKExl
bmd0aCB2KSB7IFNFVF9WQVIobV9ib3gsIG1fbWluV2lkdGgsIFdURjo6bW92ZSh2KSk7IH0KKyAg
ICB2b2lkIHNldE1heFdpZHRoKExlbmd0aCB2KSB7IFNFVF9WQVIobV9ib3gsIG1fbWF4V2lkdGgs
IFdURjo6bW92ZSh2KSk7IH0KKyAgICB2b2lkIHNldE1pbkhlaWdodChMZW5ndGggdikgeyBTRVRf
VkFSKG1fYm94LCBtX21pbkhlaWdodCwgV1RGOjptb3ZlKHYpKTsgfQorICAgIHZvaWQgc2V0TWF4
SGVpZ2h0KExlbmd0aCB2KSB7IFNFVF9WQVIobV9ib3gsIG1fbWF4SGVpZ2h0LCBXVEY6Om1vdmUo
dikpOyB9CiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAgICAgVmVjdG9yPFN0eWxl
RGFzaGJvYXJkUmVnaW9uPiBkYXNoYm9hcmRSZWdpb25zKCkgY29uc3QgeyByZXR1cm4gcmFyZU5v
bkluaGVyaXRlZERhdGEtPm1fZGFzaGJvYXJkUmVnaW9uczsgfQpAQCAtMTE4MCwxMCArMTE4MCwx
MCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBTdHlsZURhc2hib2FyZFJlZ2lvbiByZWdpb247
CiAgICAgICAgIHJlZ2lvbi5sYWJlbCA9IGxhYmVsOwotICAgICAgICByZWdpb24ub2Zmc2V0Lm1f
dG9wID0gc3RkOjptb3ZlKHQpOwotICAgICAgICByZWdpb24ub2Zmc2V0Lm1fcmlnaHQgPSBzdGQ6
Om1vdmUocik7Ci0gICAgICAgIHJlZ2lvbi5vZmZzZXQubV9ib3R0b20gPSBzdGQ6Om1vdmUoYik7
Ci0gICAgICAgIHJlZ2lvbi5vZmZzZXQubV9sZWZ0ID0gc3RkOjptb3ZlKGwpOworICAgICAgICBy
ZWdpb24ub2Zmc2V0Lm1fdG9wID0gV1RGOjptb3ZlKHQpOworICAgICAgICByZWdpb24ub2Zmc2V0
Lm1fcmlnaHQgPSBXVEY6Om1vdmUocik7CisgICAgICAgIHJlZ2lvbi5vZmZzZXQubV9ib3R0b20g
PSBXVEY6Om1vdmUoYik7CisgICAgICAgIHJlZ2lvbi5vZmZzZXQubV9sZWZ0ID0gV1RGOjptb3Zl
KGwpOwogICAgICAgICByZWdpb24udHlwZSA9IHR5cGU7CiAgICAgICAgIGlmICghYXBwZW5kKQog
ICAgICAgICAgICAgcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZGFzaGJvYXJkUmVn
aW9ucy5jbGVhcigpOwpAQCAtMTIwNSwxMCArMTIwNSwxMCBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHNldEJhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYgdikgeyBTRVRfVkFSKG1fYmFja2dyb3Vu
ZCwgbV9jb2xvciwgdik7IH0KIAotICAgIHZvaWQgc2V0QmFja2dyb3VuZFhQb3NpdGlvbihMZW5n
dGggbGVuZ3RoKSB7IFNFVF9WQVIobV9iYWNrZ3JvdW5kLCBtX2JhY2tncm91bmQubV94UG9zaXRp
b24sIHN0ZDo6bW92ZShsZW5ndGgpKTsgfQotICAgIHZvaWQgc2V0QmFja2dyb3VuZFlQb3NpdGlv
bihMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIobV9iYWNrZ3JvdW5kLCBtX2JhY2tncm91bmQubV95
UG9zaXRpb24sIHN0ZDo6bW92ZShsZW5ndGgpKTsgfQorICAgIHZvaWQgc2V0QmFja2dyb3VuZFhQ
b3NpdGlvbihMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIobV9iYWNrZ3JvdW5kLCBtX2JhY2tncm91
bmQubV94UG9zaXRpb24sIFdURjo6bW92ZShsZW5ndGgpKTsgfQorICAgIHZvaWQgc2V0QmFja2dy
b3VuZFlQb3NpdGlvbihMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIobV9iYWNrZ3JvdW5kLCBtX2Jh
Y2tncm91bmQubV95UG9zaXRpb24sIFdURjo6bW92ZShsZW5ndGgpKTsgfQogICAgIHZvaWQgc2V0
QmFja2dyb3VuZFNpemUoRUZpbGxTaXplVHlwZSBiKSB7IFNFVF9WQVIobV9iYWNrZ3JvdW5kLCBt
X2JhY2tncm91bmQubV9zaXplVHlwZSwgYik7IH0KLSAgICB2b2lkIHNldEJhY2tncm91bmRTaXpl
TGVuZ3RoKExlbmd0aFNpemUgc2l6ZSkgeyBTRVRfVkFSKG1fYmFja2dyb3VuZCwgbV9iYWNrZ3Jv
dW5kLm1fc2l6ZUxlbmd0aCwgc3RkOjptb3ZlKHNpemUpKTsgfQorICAgIHZvaWQgc2V0QmFja2dy
b3VuZFNpemVMZW5ndGgoTGVuZ3RoU2l6ZSBzaXplKSB7IFNFVF9WQVIobV9iYWNrZ3JvdW5kLCBt
X2JhY2tncm91bmQubV9zaXplTGVuZ3RoLCBXVEY6Om1vdmUoc2l6ZSkpOyB9CiAgICAgCiAgICAg
dm9pZCBzZXRCb3JkZXJJbWFnZShjb25zdCBOaW5lUGllY2VJbWFnZSYgYikgeyBTRVRfVkFSKHN1
cnJvdW5kLCBib3JkZXIubV9pbWFnZSwgYik7IH0KICAgICB2b2lkIHNldEJvcmRlckltYWdlU291
cmNlKFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4pOwpAQCAtMTIxNiwxMCArMTIxNiwxMCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRCb3JkZXJJbWFnZVdpZHRoKExlbmd0aEJveCk7CiAgICAgdm9pZCBz
ZXRCb3JkZXJJbWFnZU91dHNldChMZW5ndGhCb3gpOwogCi0gICAgdm9pZCBzZXRCb3JkZXJUb3BM
ZWZ0UmFkaXVzKExlbmd0aFNpemUgc2l6ZSkgeyBTRVRfVkFSKHN1cnJvdW5kLCBib3JkZXIubV90
b3BMZWZ0LCBzdGQ6Om1vdmUoc2l6ZSkpOyB9Ci0gICAgdm9pZCBzZXRCb3JkZXJUb3BSaWdodFJh
ZGl1cyhMZW5ndGhTaXplIHNpemUpIHsgU0VUX1ZBUihzdXJyb3VuZCwgYm9yZGVyLm1fdG9wUmln
aHQsIHN0ZDo6bW92ZShzaXplKSk7IH0KLSAgICB2b2lkIHNldEJvcmRlckJvdHRvbUxlZnRSYWRp
dXMoTGVuZ3RoU2l6ZSBzaXplKSB7IFNFVF9WQVIoc3Vycm91bmQsIGJvcmRlci5tX2JvdHRvbUxl
ZnQsIHN0ZDo6bW92ZShzaXplKSk7IH0KLSAgICB2b2lkIHNldEJvcmRlckJvdHRvbVJpZ2h0UmFk
aXVzKExlbmd0aFNpemUgc2l6ZSkgeyBTRVRfVkFSKHN1cnJvdW5kLCBib3JkZXIubV9ib3R0b21S
aWdodCwgc3RkOjptb3ZlKHNpemUpKTsgfQorICAgIHZvaWQgc2V0Qm9yZGVyVG9wTGVmdFJhZGl1
cyhMZW5ndGhTaXplIHNpemUpIHsgU0VUX1ZBUihzdXJyb3VuZCwgYm9yZGVyLm1fdG9wTGVmdCwg
V1RGOjptb3ZlKHNpemUpKTsgfQorICAgIHZvaWQgc2V0Qm9yZGVyVG9wUmlnaHRSYWRpdXMoTGVu
Z3RoU2l6ZSBzaXplKSB7IFNFVF9WQVIoc3Vycm91bmQsIGJvcmRlci5tX3RvcFJpZ2h0LCBXVEY6
Om1vdmUoc2l6ZSkpOyB9CisgICAgdm9pZCBzZXRCb3JkZXJCb3R0b21MZWZ0UmFkaXVzKExlbmd0
aFNpemUgc2l6ZSkgeyBTRVRfVkFSKHN1cnJvdW5kLCBib3JkZXIubV9ib3R0b21MZWZ0LCBXVEY6
Om1vdmUoc2l6ZSkpOyB9CisgICAgdm9pZCBzZXRCb3JkZXJCb3R0b21SaWdodFJhZGl1cyhMZW5n
dGhTaXplIHNpemUpIHsgU0VUX1ZBUihzdXJyb3VuZCwgYm9yZGVyLm1fYm90dG9tUmlnaHQsIFdU
Rjo6bW92ZShzaXplKSk7IH0KIAogICAgIHZvaWQgc2V0Qm9yZGVyUmFkaXVzKExlbmd0aFNpemUg
cykKICAgICB7CkBAIC0xMjYxLDE1ICsxMjYxLDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE92
ZXJmbG93WShFT3ZlcmZsb3cgdikgeyBub25pbmhlcml0ZWRfZmxhZ3Muc2V0T3ZlcmZsb3dZKHYp
OyB9CiAgICAgdm9pZCBzZXRWaXNpYmlsaXR5KEVWaXNpYmlsaXR5IHYpIHsgaW5oZXJpdGVkX2Zs
YWdzLl92aXNpYmlsaXR5ID0gdjsgfQogICAgIHZvaWQgc2V0VmVydGljYWxBbGlnbihFVmVydGlj
YWxBbGlnbiB2KSB7IG5vbmluaGVyaXRlZF9mbGFncy5zZXRWZXJ0aWNhbEFsaWduKHYpOyB9Ci0g
ICAgdm9pZCBzZXRWZXJ0aWNhbEFsaWduTGVuZ3RoKExlbmd0aCBsZW5ndGgpIHsgc2V0VmVydGlj
YWxBbGlnbihMRU5HVEgpOyBTRVRfVkFSKG1fYm94LCBtX3ZlcnRpY2FsQWxpZ24sIHN0ZDo6bW92
ZShsZW5ndGgpKTsgfQorICAgIHZvaWQgc2V0VmVydGljYWxBbGlnbkxlbmd0aChMZW5ndGggbGVu
Z3RoKSB7IHNldFZlcnRpY2FsQWxpZ24oTEVOR1RIKTsgU0VUX1ZBUihtX2JveCwgbV92ZXJ0aWNh
bEFsaWduLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KIAogICAgIHZvaWQgc2V0SGFzQ2xpcChib29s
IGIgPSB0cnVlKSB7IFNFVF9WQVIodmlzdWFsLCBoYXNDbGlwLCBiKTsgfQotICAgIHZvaWQgc2V0
Q2xpcExlZnQoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHZpc3VhbCwgY2xpcC5tX2xlZnQsIHN0
ZDo6bW92ZShsZW5ndGgpKTsgfQotICAgIHZvaWQgc2V0Q2xpcFJpZ2h0KExlbmd0aCBsZW5ndGgp
IHsgU0VUX1ZBUih2aXN1YWwsIGNsaXAubV9yaWdodCwgc3RkOjptb3ZlKGxlbmd0aCkpOyB9Ci0g
ICAgdm9pZCBzZXRDbGlwVG9wKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUih2aXN1YWwsIGNsaXAu
bV90b3AsIHN0ZDo6bW92ZShsZW5ndGgpKTsgfQotICAgIHZvaWQgc2V0Q2xpcEJvdHRvbShMZW5n
dGggbGVuZ3RoKSB7IFNFVF9WQVIodmlzdWFsLCBjbGlwLm1fYm90dG9tLCBzdGQ6Om1vdmUobGVu
Z3RoKSk7IH0KKyAgICB2b2lkIHNldENsaXBMZWZ0KExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUih2
aXN1YWwsIGNsaXAubV9sZWZ0LCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lkIHNldENs
aXBSaWdodChMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIodmlzdWFsLCBjbGlwLm1fcmlnaHQsIFdU
Rjo6bW92ZShsZW5ndGgpKTsgfQorICAgIHZvaWQgc2V0Q2xpcFRvcChMZW5ndGggbGVuZ3RoKSB7
IFNFVF9WQVIodmlzdWFsLCBjbGlwLm1fdG9wLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2
b2lkIHNldENsaXBCb3R0b20oTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHZpc3VhbCwgY2xpcC5t
X2JvdHRvbSwgV1RGOjptb3ZlKGxlbmd0aCkpOyB9CiAgICAgdm9pZCBzZXRDbGlwKExlbmd0aCB0
b3AsIExlbmd0aCByaWdodCwgTGVuZ3RoIGJvdHRvbSwgTGVuZ3RoIGxlZnQpOwotICAgIHZvaWQg
c2V0Q2xpcChMZW5ndGhCb3ggYm94KSB7IFNFVF9WQVIodmlzdWFsLCBjbGlwLCBzdGQ6Om1vdmUo
Ym94KSk7IH0KKyAgICB2b2lkIHNldENsaXAoTGVuZ3RoQm94IGJveCkgeyBTRVRfVkFSKHZpc3Vh
bCwgY2xpcCwgV1RGOjptb3ZlKGJveCkpOyB9CiAKICAgICB2b2lkIHNldFVuaWNvZGVCaWRpKEVV
bmljb2RlQmlkaSBiKSB7IG5vbmluaGVyaXRlZF9mbGFncy5zZXRVbmljb2RlQmlkaShiKTsgfQog
CkBAIC0xMjg5LDcgKzEyODksNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZvaWQgc2V0Q29s
b3IoY29uc3QgQ29sb3ImKTsKLSAgICB2b2lkIHNldFRleHRJbmRlbnQoTGVuZ3RoIGxlbmd0aCkg
eyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBpbmRlbnQsIHN0ZDo6bW92ZShsZW5ndGgpKTsg
fQorICAgIHZvaWQgc2V0VGV4dEluZGVudChMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIocmFyZUlu
aGVyaXRlZERhdGEsIGluZGVudCwgV1RGOjptb3ZlKGxlbmd0aCkpOyB9CiAjaWYgRU5BQkxFKENT
UzNfVEVYVCkKICAgICB2b2lkIHNldFRleHRJbmRlbnRMaW5lKFRleHRJbmRlbnRMaW5lIHYpIHsg
U0VUX1ZBUihyYXJlSW5oZXJpdGVkRGF0YSwgbV90ZXh0SW5kZW50TGluZSwgdik7IH0KICAgICB2
b2lkIHNldFRleHRJbmRlbnRUeXBlKFRleHRJbmRlbnRUeXBlIHYpIHsgU0VUX1ZBUihyYXJlSW5o
ZXJpdGVkRGF0YSwgbV90ZXh0SW5kZW50VHlwZSwgdik7IH0KQEAgLTEzNTgsOSArMTM1OCw5IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgc2V0TWFza0JveEltYWdlKGNvbnN0IE5pbmVQaWVjZUltYWdl
JiBiKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fbWFza0JveEltYWdlLCBiKTsg
fQogICAgIHZvaWQgc2V0TWFza0JveEltYWdlU291cmNlKFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4g
dikgeyByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tYXNrQm94SW1hZ2Uuc2V0SW1h
Z2Uodik7IH0KLSAgICB2b2lkIHNldE1hc2tYUG9zaXRpb24oTGVuZ3RoIGxlbmd0aCkgeyBTRVRf
VkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLCBtX21hc2subV94UG9zaXRpb24sIHN0ZDo6bW92ZShs
ZW5ndGgpKTsgfQotICAgIHZvaWQgc2V0TWFza1lQb3NpdGlvbihMZW5ndGggbGVuZ3RoKSB7IFNF
VF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fbWFzay5tX3lQb3NpdGlvbiwgc3RkOjptb3Zl
KGxlbmd0aCkpOyB9Ci0gICAgdm9pZCBzZXRNYXNrU2l6ZShMZW5ndGhTaXplIHNpemUpIHsgU0VU
X1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YSwgbV9tYXNrLm1fc2l6ZUxlbmd0aCwgc3RkOjptb3Zl
KHNpemUpKTsgfQorICAgIHZvaWQgc2V0TWFza1hQb3NpdGlvbihMZW5ndGggbGVuZ3RoKSB7IFNF
VF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fbWFzay5tX3hQb3NpdGlvbiwgV1RGOjptb3Zl
KGxlbmd0aCkpOyB9CisgICAgdm9pZCBzZXRNYXNrWVBvc2l0aW9uKExlbmd0aCBsZW5ndGgpIHsg
U0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YSwgbV9tYXNrLm1feVBvc2l0aW9uLCBXVEY6Om1v
dmUobGVuZ3RoKSk7IH0KKyAgICB2b2lkIHNldE1hc2tTaXplKExlbmd0aFNpemUgc2l6ZSkgeyBT
RVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLCBtX21hc2subV9zaXplTGVuZ3RoLCBXVEY6Om1v
dmUoc2l6ZSkpOyB9CiAKICAgICB2b2lkIHNldEJvcmRlckNvbGxhcHNlKEVCb3JkZXJDb2xsYXBz
ZSBjb2xsYXBzZSkgeyBpbmhlcml0ZWRfZmxhZ3MuX2JvcmRlcl9jb2xsYXBzZSA9IGNvbGxhcHNl
OyB9CiAgICAgdm9pZCBzZXRIb3Jpem9udGFsQm9yZGVyU3BhY2luZyhzaG9ydCk7CkBAIC0xMzc3
LDE5ICsxMzc3LDE5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldExpc3RTdHlsZVBvc2l0aW9uKEVM
aXN0U3R5bGVQb3NpdGlvbiB2KSB7IGluaGVyaXRlZF9mbGFncy5fbGlzdF9zdHlsZV9wb3NpdGlv
biA9IHY7IH0KIAogICAgIHZvaWQgcmVzZXRNYXJnaW4oKSB7IFNFVF9WQVIoc3Vycm91bmQsIG1h
cmdpbiwgTGVuZ3RoQm94KEZpeGVkKSk7IH0KLSAgICB2b2lkIHNldE1hcmdpblRvcChMZW5ndGgg
bGVuZ3RoKSB7IFNFVF9WQVIoc3Vycm91bmQsIG1hcmdpbi5tX3RvcCwgc3RkOjptb3ZlKGxlbmd0
aCkpOyB9Ci0gICAgdm9pZCBzZXRNYXJnaW5Cb3R0b20oTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFS
KHN1cnJvdW5kLCBtYXJnaW4ubV9ib3R0b20sIHN0ZDo6bW92ZShsZW5ndGgpKTsgfQotICAgIHZv
aWQgc2V0TWFyZ2luTGVmdChMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIoc3Vycm91bmQsIG1hcmdp
bi5tX2xlZnQsIHN0ZDo6bW92ZShsZW5ndGgpKTsgfQotICAgIHZvaWQgc2V0TWFyZ2luUmlnaHQo
TGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBtYXJnaW4ubV9yaWdodCwgc3RkOjpt
b3ZlKGxlbmd0aCkpOyB9CisgICAgdm9pZCBzZXRNYXJnaW5Ub3AoTGVuZ3RoIGxlbmd0aCkgeyBT
RVRfVkFSKHN1cnJvdW5kLCBtYXJnaW4ubV90b3AsIFdURjo6bW92ZShsZW5ndGgpKTsgfQorICAg
IHZvaWQgc2V0TWFyZ2luQm90dG9tKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwg
bWFyZ2luLm1fYm90dG9tLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lkIHNldE1hcmdp
bkxlZnQoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBtYXJnaW4ubV9sZWZ0LCBX
VEY6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lkIHNldE1hcmdpblJpZ2h0KExlbmd0aCBsZW5n
dGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgbWFyZ2luLm1fcmlnaHQsIFdURjo6bW92ZShsZW5ndGgp
KTsgfQogICAgIHZvaWQgc2V0TWFyZ2luU3RhcnQoTGVuZ3RoKTsKICAgICB2b2lkIHNldE1hcmdp
bkVuZChMZW5ndGgpOwogCiAgICAgdm9pZCByZXNldFBhZGRpbmcoKSB7IFNFVF9WQVIoc3Vycm91
bmQsIHBhZGRpbmcsIExlbmd0aEJveChBdXRvKSk7IH0KLSAgICB2b2lkIHNldFBhZGRpbmdCb3go
TGVuZ3RoQm94IGJveCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBwYWRkaW5nLCBzdGQ6Om1vdmUoYm94
KSk7IH0KLSAgICB2b2lkIHNldFBhZGRpbmdUb3AoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1
cnJvdW5kLCBwYWRkaW5nLm1fdG9wLCBzdGQ6Om1vdmUobGVuZ3RoKSk7IH0KLSAgICB2b2lkIHNl
dFBhZGRpbmdCb3R0b20oTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBwYWRkaW5n
Lm1fYm90dG9tLCBzdGQ6Om1vdmUobGVuZ3RoKSk7IH0KLSAgICB2b2lkIHNldFBhZGRpbmdMZWZ0
KExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgcGFkZGluZy5tX2xlZnQsIHN0ZDo6
bW92ZShsZW5ndGgpKTsgfQotICAgIHZvaWQgc2V0UGFkZGluZ1JpZ2h0KExlbmd0aCBsZW5ndGgp
IHsgU0VUX1ZBUihzdXJyb3VuZCwgcGFkZGluZy5tX3JpZ2h0LCBzdGQ6Om1vdmUobGVuZ3RoKSk7
IH0KKyAgICB2b2lkIHNldFBhZGRpbmdCb3goTGVuZ3RoQm94IGJveCkgeyBTRVRfVkFSKHN1cnJv
dW5kLCBwYWRkaW5nLCBXVEY6Om1vdmUoYm94KSk7IH0KKyAgICB2b2lkIHNldFBhZGRpbmdUb3Ao
TGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBwYWRkaW5nLm1fdG9wLCBXVEY6Om1v
dmUobGVuZ3RoKSk7IH0KKyAgICB2b2lkIHNldFBhZGRpbmdCb3R0b20oTGVuZ3RoIGxlbmd0aCkg
eyBTRVRfVkFSKHN1cnJvdW5kLCBwYWRkaW5nLm1fYm90dG9tLCBXVEY6Om1vdmUobGVuZ3RoKSk7
IH0KKyAgICB2b2lkIHNldFBhZGRpbmdMZWZ0KExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJy
b3VuZCwgcGFkZGluZy5tX2xlZnQsIFdURjo6bW92ZShsZW5ndGgpKTsgfQorICAgIHZvaWQgc2V0
UGFkZGluZ1JpZ2h0KExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgcGFkZGluZy5t
X3JpZ2h0LCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KIAogICAgIHZvaWQgc2V0Q3Vyc29yKEVDdXJz
b3IgYykgeyBpbmhlcml0ZWRfZmxhZ3MuX2N1cnNvcl9zdHlsZSA9IGM7IH0KICAgICB2b2lkIGFk
ZEN1cnNvcihQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+LCBjb25zdCBJbnRQb2ludCYgaG90U3BvdCA9
IEludFBvaW50KCkpOwpAQCAtMTQ0OCw3ICsxNDQ4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
Qm94U2l6aW5nKEVCb3hTaXppbmcgcykgeyBTRVRfVkFSKG1fYm94LCBtX2JveFNpemluZywgcyk7
IH0KICAgICB2b2lkIHNldEZsZXhHcm93KGZsb2F0IGYpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJp
dGVkRGF0YS5hY2Nlc3MoKS0+bV9mbGV4aWJsZUJveCwgbV9mbGV4R3JvdywgZik7IH0KICAgICB2
b2lkIHNldEZsZXhTaHJpbmsoZmxvYXQgZikgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRh
LmFjY2VzcygpLT5tX2ZsZXhpYmxlQm94LCBtX2ZsZXhTaHJpbmssIGYpOyB9Ci0gICAgdm9pZCBz
ZXRGbGV4QmFzaXMoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRh
LmFjY2VzcygpLT5tX2ZsZXhpYmxlQm94LCBtX2ZsZXhCYXNpcywgc3RkOjptb3ZlKGxlbmd0aCkp
OyB9CisgICAgdm9pZCBzZXRGbGV4QmFzaXMoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHJhcmVO
b25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2ZsZXhpYmxlQm94LCBtX2ZsZXhCYXNpcywgV1RG
Ojptb3ZlKGxlbmd0aCkpOyB9CiAgICAgdm9pZCBzZXRPcmRlcihpbnQgbykgeyBTRVRfVkFSKHJh
cmVOb25Jbmhlcml0ZWREYXRhLCBtX29yZGVyLCBvKTsgfQogICAgIHZvaWQgc2V0QWxpZ25Db250
ZW50KEVBbGlnbkNvbnRlbnQgcCkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLCBtX2Fs
aWduQ29udGVudCwgcCk7IH0KICAgICB2b2lkIHNldEFsaWduSXRlbXMoRUFsaWduSXRlbXMgYSkg
eyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLCBtX2FsaWduSXRlbXMsIGEpOyB9CkBAIC0x
NDc0LDcgKzE0NzQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRHcmlkSXRlbVJvd1N0YXJ0KGNv
bnN0IEdyaWRQb3NpdGlvbiYgcm93U3RhcnRQb3NpdGlvbikgeyBTRVRfVkFSKHJhcmVOb25Jbmhl
cml0ZWREYXRhLmFjY2VzcygpLT5tX2dyaWRJdGVtLCBtX2dyaWRSb3dTdGFydCwgcm93U3RhcnRQ
b3NpdGlvbik7IH0KICAgICB2b2lkIHNldEdyaWRJdGVtUm93RW5kKGNvbnN0IEdyaWRQb3NpdGlv
biYgcm93RW5kUG9zaXRpb24pIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3Mo
KS0+bV9ncmlkSXRlbSwgbV9ncmlkUm93RW5kLCByb3dFbmRQb3NpdGlvbik7IH0KICNlbmRpZiAv
KiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKSAqLwotICAgIHZvaWQgc2V0TWFycXVlZUluY3JlbWVu
dChMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCkt
Pm1fbWFycXVlZSwgaW5jcmVtZW50LCBzdGQ6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lkIHNl
dE1hcnF1ZWVJbmNyZW1lbnQoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0
ZWREYXRhLmFjY2VzcygpLT5tX21hcnF1ZWUsIGluY3JlbWVudCwgV1RGOjptb3ZlKGxlbmd0aCkp
OyB9CiAgICAgdm9pZCBzZXRNYXJxdWVlU3BlZWQoaW50IGYpIHsgU0VUX1ZBUihyYXJlTm9uSW5o
ZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tYXJxdWVlLCBzcGVlZCwgZik7IH0KICAgICB2b2lkIHNl
dE1hcnF1ZWVEaXJlY3Rpb24oRU1hcnF1ZWVEaXJlY3Rpb24gZCkgeyBTRVRfVkFSKHJhcmVOb25J
bmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX21hcnF1ZWUsIGRpcmVjdGlvbiwgZCk7IH0KICAgICB2
b2lkIHNldE1hcnF1ZWVCZWhhdmlvcihFTWFycXVlZUJlaGF2aW9yIGIpIHsgU0VUX1ZBUihyYXJl
Tm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tYXJxdWVlLCBiZWhhdmlvciwgYik7IH0KQEAg
LTE1MjAsOCArMTUyMCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJlZ2lvbkJyZWFrQWZ0ZXIo
RVBhZ2VCcmVhayBwKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fcmVnaW9uQnJl
YWtBZnRlciwgcCk7IH0KICAgICB2b2lkIGluaGVyaXRDb2x1bW5Qcm9wZXJ0aWVzRnJvbShSZW5k
ZXJTdHlsZSogcGFyZW50KSB7IHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX211bHRp
Q29sID0gcGFyZW50LT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9tdWx0aUNvbDsgfQogICAgIHZv
aWQgc2V0VHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMmIG9wcykgeyBTRVRfVkFS
KHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX3RyYW5zZm9ybSwgbV9vcGVyYXRpb25z
LCBvcHMpOyB9Ci0gICAgdm9pZCBzZXRUcmFuc2Zvcm1PcmlnaW5YKExlbmd0aCBsZW5ndGgpIHsg
U0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV90cmFuc2Zvcm0sIG1feCwg
c3RkOjptb3ZlKGxlbmd0aCkpOyB9Ci0gICAgdm9pZCBzZXRUcmFuc2Zvcm1PcmlnaW5ZKExlbmd0
aCBsZW5ndGgpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV90cmFu
c2Zvcm0sIG1feSwgc3RkOjptb3ZlKGxlbmd0aCkpOyB9CisgICAgdm9pZCBzZXRUcmFuc2Zvcm1P
cmlnaW5YKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nl
c3MoKS0+bV90cmFuc2Zvcm0sIG1feCwgV1RGOjptb3ZlKGxlbmd0aCkpOyB9CisgICAgdm9pZCBz
ZXRUcmFuc2Zvcm1PcmlnaW5ZKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJp
dGVkRGF0YS5hY2Nlc3MoKS0+bV90cmFuc2Zvcm0sIG1feSwgV1RGOjptb3ZlKGxlbmd0aCkpOyB9
CiAgICAgdm9pZCBzZXRUcmFuc2Zvcm1PcmlnaW5aKGZsb2F0IGYpIHsgU0VUX1ZBUihyYXJlTm9u
SW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV90cmFuc2Zvcm0sIG1feiwgZik7IH0KICAgICB2b2lk
IHNldFNwZWFrKEVTcGVhayBzKSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIHNwZWFrLCBz
KTsgfQogICAgIHZvaWQgc2V0VGV4dENvbWJpbmUoVGV4dENvbWJpbmUgdikgeyBTRVRfVkFSKHJh
cmVOb25Jbmhlcml0ZWREYXRhLCBtX3RleHRDb21iaW5lLCB2KTsgfQpAQCAtMTU3NCw5ICsxNTc0
LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VHJhbnNmb3JtU3R5bGUzRChFVHJhbnNmb3JtU3R5
bGUzRCBiKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fdHJhbnNmb3JtU3R5bGUz
RCwgYik7IH0KICAgICB2b2lkIHNldEJhY2tmYWNlVmlzaWJpbGl0eShFQmFja2ZhY2VWaXNpYmls
aXR5IGIpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YSwgbV9iYWNrZmFjZVZpc2liaWxp
dHksIGIpOyB9CiAgICAgdm9pZCBzZXRQZXJzcGVjdGl2ZShmbG9hdCBwKSB7IFNFVF9WQVIocmFy
ZU5vbkluaGVyaXRlZERhdGEsIG1fcGVyc3BlY3RpdmUsIHApOyB9Ci0gICAgdm9pZCBzZXRQZXJz
cGVjdGl2ZU9yaWdpblgoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWRE
YXRhLCBtX3BlcnNwZWN0aXZlT3JpZ2luWCwgc3RkOjptb3ZlKGxlbmd0aCkpOyB9Ci0gICAgdm9p
ZCBzZXRQZXJzcGVjdGl2ZU9yaWdpblkoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHJhcmVOb25J
bmhlcml0ZWREYXRhLCBtX3BlcnNwZWN0aXZlT3JpZ2luWSwgc3RkOjptb3ZlKGxlbmd0aCkpOyB9
Ci0gICAgdm9pZCBzZXRQYWdlU2l6ZShMZW5ndGhTaXplIHNpemUpIHsgU0VUX1ZBUihyYXJlTm9u
SW5oZXJpdGVkRGF0YSwgbV9wYWdlU2l6ZSwgc3RkOjptb3ZlKHNpemUpKTsgfQorICAgIHZvaWQg
c2V0UGVyc3BlY3RpdmVPcmlnaW5YKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihyYXJlTm9uSW5o
ZXJpdGVkRGF0YSwgbV9wZXJzcGVjdGl2ZU9yaWdpblgsIFdURjo6bW92ZShsZW5ndGgpKTsgfQor
ICAgIHZvaWQgc2V0UGVyc3BlY3RpdmVPcmlnaW5ZKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihy
YXJlTm9uSW5oZXJpdGVkRGF0YSwgbV9wZXJzcGVjdGl2ZU9yaWdpblksIFdURjo6bW92ZShsZW5n
dGgpKTsgfQorICAgIHZvaWQgc2V0UGFnZVNpemUoTGVuZ3RoU2l6ZSBzaXplKSB7IFNFVF9WQVIo
cmFyZU5vbkluaGVyaXRlZERhdGEsIG1fcGFnZVNpemUsIFdURjo6bW92ZShzaXplKSk7IH0KICAg
ICB2b2lkIHNldFBhZ2VTaXplVHlwZShQYWdlU2l6ZVR5cGUgdCkgeyBTRVRfVkFSKHJhcmVOb25J
bmhlcml0ZWREYXRhLCBtX3BhZ2VTaXplVHlwZSwgdCk7IH0KICAgICB2b2lkIHJlc2V0UGFnZVNp
emVUeXBlKCkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLCBtX3BhZ2VTaXplVHlwZSwg
UEFHRV9TSVpFX0FVVE8pOyB9CiAKQEAgLTE2NDksNyArMTY0OSw3IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgU2hhcGVWYWx1ZSogaW5pdGlhbFNoYXBlT3V0c2lkZSgpIHsgcmV0dXJuIDA7IH0KIAog
ICAgIGNvbnN0IExlbmd0aCYgc2hhcGVNYXJnaW4oKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5o
ZXJpdGVkRGF0YS0+bV9zaGFwZU1hcmdpbjsgfQotICAgIHZvaWQgc2V0U2hhcGVNYXJnaW4oTGVu
Z3RoIHNoYXBlTWFyZ2luKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fc2hhcGVN
YXJnaW4sIHN0ZDo6bW92ZShzaGFwZU1hcmdpbikpOyB9CisgICAgdm9pZCBzZXRTaGFwZU1hcmdp
bihMZW5ndGggc2hhcGVNYXJnaW4pIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YSwgbV9z
aGFwZU1hcmdpbiwgV1RGOjptb3ZlKHNoYXBlTWFyZ2luKSk7IH0KICAgICBzdGF0aWMgTGVuZ3Ro
IGluaXRpYWxTaGFwZU1hcmdpbigpIHsgcmV0dXJuIExlbmd0aCgwLCBGaXhlZCk7IH0KIAogICAg
IGZsb2F0IHNoYXBlSW1hZ2VUaHJlc2hvbGQoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJp
dGVkRGF0YS0+bV9zaGFwZUltYWdlVGhyZXNob2xkOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5oCmluZGV4IGU3NjEyNGQuLmI0MGJkMjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5oCkBA
IC0yNjQsNyArMjY0LDcgQEAgcHVibGljOgogICAgICAgICAgICAgbWlzYy5hY2Nlc3MoKS0+YmFz
ZWxpbmVTaGlmdFZhbHVlID0gb2JqOwogICAgIH0KIAotICAgIHZvaWQgc2V0U2hhZG93KHN0ZDo6
dW5pcXVlX3B0cjxTaGFkb3dEYXRhPiBvYmopIHsgc2hhZG93U1ZHLmFjY2VzcygpLT5zaGFkb3cg
PSBzdGQ6Om1vdmUob2JqKTsgfQorICAgIHZvaWQgc2V0U2hhZG93KHN0ZDo6dW5pcXVlX3B0cjxT
aGFkb3dEYXRhPiBvYmopIHsgc2hhZG93U1ZHLmFjY2VzcygpLT5zaGFkb3cgPSBXVEY6Om1vdmUo
b2JqKTsgfQogCiAgICAgLy8gU2V0dGVycyBmb3Igbm9uLWluaGVyaXRlZCByZXNvdXJjZXMKICAg
ICB2b2lkIHNldENsaXBwZXJSZXNvdXJjZShjb25zdCBTdHJpbmcmIG9iaikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TaGFkb3dEYXRhLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU2hhZG93RGF0YS5oCmluZGV4IGY4MmM3NjYuLjhhMWNhYzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TaGFkb3dEYXRhLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NoYWRvd0RhdGEuaApAQCAtODIs
NyArODIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1dlYmtpdEJveFNoYWRvdygpIGNvbnN0IHsg
cmV0dXJuIG1faXNXZWJraXRCb3hTaGFkb3c7IH0KIAogICAgIGNvbnN0IFNoYWRvd0RhdGEqIG5l
eHQoKSBjb25zdCB7IHJldHVybiBtX25leHQuZ2V0KCk7IH0KLSAgICB2b2lkIHNldE5leHQoc3Rk
Ojp1bmlxdWVfcHRyPFNoYWRvd0RhdGE+IHNoYWRvdykgeyBtX25leHQgPSBzdGQ6Om1vdmUoc2hh
ZG93KTsgfQorICAgIHZvaWQgc2V0TmV4dChzdGQ6OnVuaXF1ZV9wdHI8U2hhZG93RGF0YT4gc2hh
ZG93KSB7IG1fbmV4dCA9IFdURjo6bW92ZShzaGFkb3cpOyB9CiAKICAgICB2b2lkIGFkanVzdFJl
Y3RGb3JTaGFkb3coTGF5b3V0UmVjdCYsIGludCBhZGRpdGlvbmFsT3V0bGluZVNpemUgPSAwKSBj
b25zdDsKICAgICB2b2lkIGFkanVzdFJlY3RGb3JTaGFkb3coRmxvYXRSZWN0JiwgaW50IGFkZGl0
aW9uYWxPdXRsaW5lU2l6ZSA9IDApIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuY3BwCmluZGV4IDBmN2Y3NGYuLmE0
NzUxZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdl
bmVyYXRlZEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVHZW5lcmF0ZWRJbWFnZS5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAKIFN0eWxlR2VuZXJhdGVkSW1hZ2U6OlN0eWxlR2VuZXJhdGVkSW1hZ2UoUGFzc1Jl
ZjxDU1NJbWFnZUdlbmVyYXRvclZhbHVlPiB2YWx1ZSkKLSAgICA6IG1faW1hZ2VHZW5lcmF0b3JW
YWx1ZShzdGQ6Om1vdmUodmFsdWUpKQorICAgIDogbV9pbWFnZUdlbmVyYXRvclZhbHVlKFdURjo6
bW92ZSh2YWx1ZSkpCiAgICAgLCBtX2ZpeGVkU2l6ZShtX2ltYWdlR2VuZXJhdG9yVmFsdWUtPmlz
Rml4ZWRTaXplKCkpCiB7CiAgICAgbV9pc0dlbmVyYXRlZEltYWdlID0gdHJ1ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5oCmlu
ZGV4IDRkYmUxZWUuLmIxY2EyNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBT
dHlsZUdlbmVyYXRlZEltYWdlIGZpbmFsIDogcHVibGljIFN0eWxlSW1hZ2UgewogcHVibGljOgog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0eWxlR2VuZXJhdGVkSW1hZ2U+IGNyZWF0ZShQYXNzUmVm
PENTU0ltYWdlR2VuZXJhdG9yVmFsdWU+IHZhbHVlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBTdHlsZUdlbmVyYXRlZEltYWdlKHN0ZDo6bW92ZSh2YWx1ZSkpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdHlsZUdlbmVyYXRlZEltYWdlKFdURjo6bW92ZSh2YWx1
ZSkpKTsKICAgICB9CiAKICAgICBDU1NJbWFnZUdlbmVyYXRvclZhbHVlJiBpbWFnZVZhbHVlKCkg
eyByZXR1cm4gbV9pbWFnZUdlbmVyYXRvclZhbHVlLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSZWZsZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSZWZsZWN0aW9uLmgKaW5kZXggNDViOTNlMi4uMzFj
ZGJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmVm
bGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJlZmxl
Y3Rpb24uaApAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgTmluZVBpZWNlSW1h
Z2UmIG1hc2soKSBjb25zdCB7IHJldHVybiBtX21hc2s7IH0KIAogICAgIHZvaWQgc2V0RGlyZWN0
aW9uKENTU1JlZmxlY3Rpb25EaXJlY3Rpb24gZGlyKSB7IG1fZGlyZWN0aW9uID0gZGlyOyB9Ci0g
ICAgdm9pZCBzZXRPZmZzZXQoTGVuZ3RoIG9mZnNldCkgeyBtX29mZnNldCA9IHN0ZDo6bW92ZShv
ZmZzZXQpOyB9CisgICAgdm9pZCBzZXRPZmZzZXQoTGVuZ3RoIG9mZnNldCkgeyBtX29mZnNldCA9
IFdURjo6bW92ZShvZmZzZXQpOyB9CiAgICAgdm9pZCBzZXRNYXNrKGNvbnN0IE5pbmVQaWVjZUlt
YWdlJiBpbWFnZSkgeyBtX21hc2sgPSBpbWFnZTsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmNwcAppbmRleCA4ZWI2MzZmLi5k
Y2RmOGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0Jsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Js
b2NrLmNwcApAQCAtMjksNyArMjksNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJT
VkdCbG9jazo6UmVuZGVyU1ZHQmxvY2soU1ZHR3JhcGhpY3NFbGVtZW50JiBlbGVtZW50LCBQYXNz
UmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50LCBz
dGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQsIFdURjo6bW92
ZShzdHlsZSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHQ29udGFpbmVyLmNwcAppbmRleCA4NDdmNDUxLi45ZGJjYTVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuY3BwCkBA
IC0zOCw3ICszOCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclNWR0NvbnRhaW5l
cjo6UmVuZGVyU1ZHQ29udGFpbmVyKFNWR0VsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVy
U3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyU1ZHTW9kZWxPYmplY3QoZWxlbWVudCwgc3RkOjpt
b3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlclNWR01vZGVsT2JqZWN0KGVsZW1lbnQsIFdURjo6bW92
ZShzdHlsZSkpCiAgICAgLCBtX29iamVjdEJvdW5kaW5nQm94VmFsaWQoZmFsc2UpCiAgICAgLCBt
X25lZWRzQm91bmRhcmllc1VwZGF0ZSh0cnVlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdFbGxpcHNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHRWxsaXBzZS5jcHAKaW5kZXggMjRkMTVhZi4uNzg3ODA4OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdFbGxpcHNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0VsbGlwc2Uu
Y3BwCkBAIC0zNCw3ICszNCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclNWR0Vs
bGlwc2U6OlJlbmRlclNWR0VsbGlwc2UoU1ZHR3JhcGhpY3NFbGVtZW50JiBlbGVtZW50LCBQYXNz
UmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlclNWR1NoYXBlKGVsZW1lbnQsIHN0
ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJTVkdTaGFwZShlbGVtZW50LCBXVEY6Om1vdmUo
c3R5bGUpKQogICAgICwgbV91c2VQYXRoRmFsbGJhY2soZmFsc2UpCiB7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNw
cAppbmRleCBiNWQ3NGQ2Li5lOWI2MzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHAKQEAgLTM4LDcgKzM4LDcg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6UmVuZGVy
U1ZHRm9yZWlnbk9iamVjdChTVkdGb3JlaWduT2JqZWN0RWxlbWVudCYgZWxlbWVudCwgUGFzc1Jl
ZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJTVkdCbG9jayhlbGVtZW50LCBzdGQ6
Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyU1ZHQmxvY2soZWxlbWVudCwgV1RGOjptb3ZlKHN0
eWxlKSkKICAgICAsIG1fbmVlZHNUcmFuc2Zvcm1VcGRhdGUodHJ1ZSkKIHsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHR3JhZGllbnRTdG9wLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHR3JhZGllbnRTdG9wLmNw
cAppbmRleCAxNTZmODMyLi4zYTE5MmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR0dyYWRpZW50U3RvcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdHcmFkaWVudFN0b3AuY3BwCkBAIC0zMiw3ICszMiw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBTVkdOYW1lczsKIAogUmVuZGVy
U1ZHR3JhZGllbnRTdG9wOjpSZW5kZXJTVkdHcmFkaWVudFN0b3AoU1ZHU3RvcEVsZW1lbnQmIGVs
ZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyRWxlbWVudChl
bGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpLCAwKQorICAgIDogUmVuZGVyRWxlbWVudChlbGVtZW50
LCBXVEY6Om1vdmUoc3R5bGUpLCAwKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0hpZGRlbkNvbnRhaW5lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0hpZGRlbkNvbnRhaW5lci5jcHAKaW5kZXggMjJi
ZDdlMS4uNmY0NzYyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdIaWRkZW5Db250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyLmNwcApAQCAtMjYsNyArMjYsNyBAQAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJTVkdIaWRkZW5Db250YWluZXI6OlJlbmRlclNWR0hp
ZGRlbkNvbnRhaW5lcihTVkdFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBz
dHlsZSkKLSAgICA6IFJlbmRlclNWR0NvbnRhaW5lcihlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUp
KQorICAgIDogUmVuZGVyU1ZHQ29udGFpbmVyKGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiB7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
SW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5j
cHAKaW5kZXggN2RkNGI2YS4uOTkxMjY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogUmVuZGVyU1ZHSW1hZ2U6OlJlbmRlclNWR0ltYWdlKFNWR0ltYWdlRWxlbWVu
dCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJTVkdN
b2RlbE9iamVjdChlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyU1ZHTW9k
ZWxPYmplY3QoZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKICAgICAsIG1fbmVlZHNCb3VuZGFy
aWVzVXBkYXRlKHRydWUpCiAgICAgLCBtX25lZWRzVHJhbnNmb3JtVXBkYXRlKHRydWUpCiAgICAg
LCBtX2ltYWdlUmVzb3VyY2Uoc3RkOjptYWtlX3VuaXF1ZTxSZW5kZXJJbWFnZVJlc291cmNlPigp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxp
bmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3Bw
CmluZGV4IGQ4ZmQ0MDcuLmQwM2NlZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAKIFJlbmRlclNWR0lubGluZTo6UmVuZGVyU1ZHSW5saW5lKFNWR0dyYXBo
aWNzRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBS
ZW5kZXJJbmxpbmUoZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlcklubGlu
ZShlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogewogICAgIHNldEFsd2F5c0NyZWF0ZUxpbmVC
b3hlcygpOwogfQpAQCAtNDAsNyArNDAsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW5saW5lRmxvd0Jv
eD4gUmVuZGVyU1ZHSW5saW5lOjpjcmVhdGVJbmxpbmVGbG93Qm94KCkKIHsKICAgICBhdXRvIGJv
eCA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHSW5saW5lRmxvd0JveD4oKnRoaXMpOwogICAgIGJveC0+
c2V0SGFzVmlydHVhbExvZ2ljYWxIZWlnaHQoKTsKLSAgICByZXR1cm4gc3RkOjptb3ZlKGJveCk7
CisgICAgcmV0dXJuIFdURjo6bW92ZShib3gpOwogfQogCiBGbG9hdFJlY3QgUmVuZGVyU1ZHSW5s
aW5lOjpvYmplY3RCb3VuZGluZ0JveCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcAppbmRleCA2Y2Y2NGRmLi44NTUz
MGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lu
bGluZVRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
SW5saW5lVGV4dC5jcHAKQEAgLTExMyw3ICsxMTMsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW5saW5l
VGV4dEJveD4gUmVuZGVyU1ZHSW5saW5lVGV4dDo6Y3JlYXRlVGV4dEJveCgpCiB7CiAgICAgYXV0
byBib3ggPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0lubGluZVRleHRCb3g+KCp0aGlzKTsKICAgICBi
b3gtPnNldEhhc1ZpcnR1YWxMb2dpY2FsSGVpZ2h0KCk7Ci0gICAgcmV0dXJuIHN0ZDo6bW92ZShi
b3gpOworICAgIHJldHVybiBXVEY6Om1vdmUoYm94KTsKIH0KIAogTGF5b3V0UmVjdCBSZW5kZXJT
VkdJbmxpbmVUZXh0Ojpsb2NhbENhcmV0UmVjdChJbmxpbmVCb3gqIGJveCwgaW50IGNhcmV0T2Zm
c2V0LCBMYXlvdXRVbml0KikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAKaW5kZXggYzlkMDUyNi4uMGNjNGUwNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVj
dC5jcHAKQEAgLTQwLDcgKzQwLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyU1ZH
TW9kZWxPYmplY3Q6OlJlbmRlclNWR01vZGVsT2JqZWN0KFNWR0VsZW1lbnQmIGVsZW1lbnQsIFBh
c3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyRWxlbWVudChlbGVtZW50LCBz
dGQ6Om1vdmUoc3R5bGUpLCAwKQorICAgIDogUmVuZGVyRWxlbWVudChlbGVtZW50LCBXVEY6Om1v
dmUoc3R5bGUpLCAwKQogICAgICwgbV9oYXNTVkdTaGFkb3coZmFsc2UpCiB7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1BhdGguY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdQYXRoLmNwcAppbmRleCAzZDc5YWVk
Li4wZTFmMWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1BhdGguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
UGF0aC5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVy
U1ZHUGF0aDo6UmVuZGVyU1ZHUGF0aChTVkdHcmFwaGljc0VsZW1lbnQmIGVsZW1lbnQsIFBhc3NS
ZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyU1ZHU2hhcGUoZWxlbWVudCwgc3Rk
Ojptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlclNWR1NoYXBlKGVsZW1lbnQsIFdURjo6bW92ZShz
dHlsZSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1JlY3QuY3BwCmluZGV4IDRhNmY4Y2QuLjhlNTc1YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZWN0LmNwcApAQCAtMzMsNyArMzMsNyBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBSZW5kZXJTVkdSZWN0OjpSZW5kZXJTVkdSZWN0KFNWR1JlY3RFbGVt
ZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlclNW
R1NoYXBlKGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJTVkdTaGFwZShl
bGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogICAgICwgbV91c2VQYXRoRmFsbGJhY2soZmFsc2Up
CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jlc291cmNlQ2xpcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlQ2xpcHBlci5jcHAKaW5kZXggNTNmNjRjYi4uZmIyMDNlZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VD
bGlwcGVyLmNwcApAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBSZW5kZXJT
VkdSZXNvdXJjZVR5cGUgUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyOjpzX3Jlc291cmNlVHlwZSA9
IENsaXBwZXJSZXNvdXJjZVR5cGU7CiAKIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcjo6UmVuZGVy
U1ZHUmVzb3VyY2VDbGlwcGVyKFNWR0NsaXBQYXRoRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxS
ZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcihlbGVt
ZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIo
ZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyLmNwcApp
bmRleCAwMzY5YzcyLi41YjIzM2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyLmNwcApAQCAtMzYsNyAr
MzYsNyBAQCBzdGF0aWMgaW5saW5lIFNWR0RvY3VtZW50RXh0ZW5zaW9ucyYgc3ZnRXh0ZW5zaW9u
c0Zyb21FbGVtZW50KFNWR0VsZW1lbnQmIGVsZW1lbgogfQogCiBSZW5kZXJTVkdSZXNvdXJjZUNv
bnRhaW5lcjo6UmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIoU1ZHRWxlbWVudCYgZWxlbWVudCwg
UGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJTVkdIaWRkZW5Db250YWlu
ZXIoZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlclNWR0hpZGRlbkNvbnRh
aW5lcihlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogICAgICwgbV9pZChlbGVtZW50LmdldElk
QXR0cmlidXRlKCkpCiAgICAgLCBtX3JlZ2lzdGVyZWQoZmFsc2UpCiAgICAgLCBtX2lzSW52YWxp
ZGF0aW5nKGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcAppbmRleCA4N2M4ZWU1Li5jZGUxZmM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmls
dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291
cmNlRmlsdGVyLmNwcApAQCAtNDksNyArNDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBSZW5k
ZXJTVkdSZXNvdXJjZVR5cGUgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OnNfcmVzb3VyY2VUeXBl
ID0gRmlsdGVyUmVzb3VyY2VUeXBlOwogCiBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlcjo6UmVuZGVy
U1ZHUmVzb3VyY2VGaWx0ZXIoU1ZHRmlsdGVyRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5k
ZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcihlbGVtZW50
LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIoZWxl
bWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKIHsKIH0KIApAQCAtMTkyLDcgKzE5Miw3IEBAIGJvb2wg
UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OmFwcGx5UmVzb3VyY2UoUmVuZGVyRWxlbWVudCYgcmVu
ZGVyZXIsIGNvbnN0IFJlbmRlCiAgICAgaWYgKGZpbHRlckRhdGEtPmRyYXdpbmdSZWdpb24uaXNF
bXB0eSgpKSB7CiAgICAgICAgIEFTU0VSVCghbV9maWx0ZXIuY29udGFpbnMoJnJlbmRlcmVyKSk7
CiAgICAgICAgIGZpbHRlckRhdGEtPnNhdmVkQ29udGV4dCA9IGNvbnRleHQ7Ci0gICAgICAgIG1f
ZmlsdGVyLnNldCgmcmVuZGVyZXIsIHN0ZDo6bW92ZShmaWx0ZXJEYXRhKSk7CisgICAgICAgIG1f
ZmlsdGVyLnNldCgmcmVuZGVyZXIsIFdURjo6bW92ZShmaWx0ZXJEYXRhKSk7CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTIwNiw3ICsyMDYsNyBAQCBib29sIFJlbmRlclNWR1Jl
c291cmNlRmlsdGVyOjphcHBseVJlc291cmNlKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBjb25z
dCBSZW5kZQogICAgIGlmICghU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlSW1hZ2VCdWZmZXIo
ZmlsdGVyRGF0YS0+ZHJhd2luZ1JlZ2lvbiwgZWZmZWN0aXZlVHJhbnNmb3JtLCBzb3VyY2VHcmFw
aGljLCBDb2xvclNwYWNlTGluZWFyUkdCLCByZW5kZXJpbmdNb2RlKSkgewogICAgICAgICBBU1NF
UlQoIW1fZmlsdGVyLmNvbnRhaW5zKCZyZW5kZXJlcikpOwogICAgICAgICBmaWx0ZXJEYXRhLT5z
YXZlZENvbnRleHQgPSBjb250ZXh0OwotICAgICAgICBtX2ZpbHRlci5zZXQoJnJlbmRlcmVyLCBz
dGQ6Om1vdmUoZmlsdGVyRGF0YSkpOworICAgICAgICBtX2ZpbHRlci5zZXQoJnJlbmRlcmVyLCBX
VEY6Om1vdmUoZmlsdGVyRGF0YSkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAg
IApAQCAtMjE2LDEzICsyMTYsMTMgQEAgYm9vbCBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlcjo6YXBw
bHlSZXNvdXJjZShSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgY29uc3QgUmVuZGUKICAgICBHcmFw
aGljc0NvbnRleHQqIHNvdXJjZUdyYXBoaWNDb250ZXh0ID0gc291cmNlR3JhcGhpYy0+Y29udGV4
dCgpOwogICAgIEFTU0VSVChzb3VyY2VHcmFwaGljQ29udGV4dCk7CiAgIAotICAgIGZpbHRlckRh
dGEtPnNvdXJjZUdyYXBoaWNCdWZmZXIgPSBzdGQ6Om1vdmUoc291cmNlR3JhcGhpYyk7CisgICAg
ZmlsdGVyRGF0YS0+c291cmNlR3JhcGhpY0J1ZmZlciA9IFdURjo6bW92ZShzb3VyY2VHcmFwaGlj
KTsKICAgICBmaWx0ZXJEYXRhLT5zYXZlZENvbnRleHQgPSBjb250ZXh0OwogCiAgICAgY29udGV4
dCA9IHNvdXJjZUdyYXBoaWNDb250ZXh0OwogCiAgICAgQVNTRVJUKCFtX2ZpbHRlci5jb250YWlu
cygmcmVuZGVyZXIpKTsKLSAgICBtX2ZpbHRlci5zZXQoJnJlbmRlcmVyLCBzdGQ6Om1vdmUoZmls
dGVyRGF0YSkpOworICAgIG1fZmlsdGVyLnNldCgmcmVuZGVyZXIsIFdURjo6bW92ZShmaWx0ZXJE
YXRhKSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTI3MCw3ICsyNzAsNyBAQCB2b2lkIFJl
bmRlclNWR1Jlc291cmNlRmlsdGVyOjpwb3N0QXBwbHlSZXNvdXJjZShSZW5kZXJFbGVtZW50JiBy
ZW5kZXJlciwgR3JhcGhpYwogICAgICAgICAvLyBpbml0aWFsIGZpbHRlcmluZyBwcm9jZXNzLiBX
ZSBqdXN0IHRha2UgdGhlIHN0b3JlZCBmaWx0ZXIgcmVzdWx0IG9uIGEKICAgICAgICAgLy8gc2Vj
b25kIGRyYXdpbmcuCiAgICAgICAgIGlmIChmaWx0ZXJEYXRhLT5zdGF0ZSAhPSBGaWx0ZXJEYXRh
OjpCdWlsdCkKLSAgICAgICAgICAgIGZpbHRlckRhdGEtPmZpbHRlci0+c2V0U291cmNlSW1hZ2Uo
c3RkOjptb3ZlKGZpbHRlckRhdGEtPnNvdXJjZUdyYXBoaWNCdWZmZXIpKTsKKyAgICAgICAgICAg
IGZpbHRlckRhdGEtPmZpbHRlci0+c2V0U291cmNlSW1hZ2UoV1RGOjptb3ZlKGZpbHRlckRhdGEt
PnNvdXJjZUdyYXBoaWNCdWZmZXIpKTsKIAogICAgICAgICAvLyBBbHdheXMgdHJ1ZSBpZiBmaWx0
ZXJEYXRhIGlzIGp1c3QgYnVpbHQgKGZpbHRlckRhdGEtPnN0YXRlID09IEZpbHRlckRhdGE6OkJ1
aWx0KS4KICAgICAgICAgaWYgKCFsYXN0RWZmZWN0LT5oYXNSZXN1bHQoKSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlclBy
aW1pdGl2ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291
cmNlRmlsdGVyUHJpbWl0aXZlLmNwcAppbmRleCBlMTFhNGNiLi5lY2RjYjlmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyUHJp
bWl0aXZlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jl
c291cmNlRmlsdGVyUHJpbWl0aXZlLmNwcApAQCAtMzcsNyArMzcsNyBAQAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlclByaW1pdGl2ZTo6UmVuZGVyU1ZHUmVz
b3VyY2VGaWx0ZXJQcmltaXRpdmUoU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVz
JiBmaWx0ZXJQcmltaXRpdmVFbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAg
ICA6IFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lcihmaWx0ZXJQcmltaXRpdmVFbGVtZW50LCBzdGQ6
Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyKGZpbHRlclByaW1p
dGl2ZUVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VHcmFkaWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlR3JhZGllbnQuY3Bw
CmluZGV4IDYxZTE3NWEuLmRjYjNjMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VHcmFkaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUdyYWRpZW50LmNwcApAQCAtMzEsNyAr
MzEsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJTVkdSZXNvdXJjZUdyYWRpZW50
OjpSZW5kZXJTVkdSZXNvdXJjZUdyYWRpZW50KFNWR0dyYWRpZW50RWxlbWVudCYgbm9kZSwgUGFz
c1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5l
cihub2RlLCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyU1ZHUmVzb3VyY2VDb250YWlu
ZXIobm9kZSwgV1RGOjptb3ZlKHN0eWxlKSkKICAgICAsIG1fc2hvdWxkQ29sbGVjdEdyYWRpZW50
QXR0cmlidXRlcyh0cnVlKQogI2lmIFVTRShDRykKICAgICAsIG1fc2F2ZWRDb250ZXh0KDApCkBA
IC03MSw3ICs3MSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjcmVhdGVNYXNrQW5kU3dhcENvbnRl
eHRGb3JUZXh0R3JhZGllbnQoR3JhcGhpY3NDb250ZXh0KiYgY29uCiAgICAgQVNTRVJUKG1hc2tJ
bWFnZSk7CiAgICAgc2F2ZWRDb250ZXh0ID0gY29udGV4dDsKICAgICBjb250ZXh0ID0gbWFza0lt
YWdlQ29udGV4dDsKLSAgICBpbWFnZUJ1ZmZlciA9IHN0ZDo6bW92ZShtYXNrSW1hZ2UpOworICAg
IGltYWdlQnVmZmVyID0gV1RGOjptb3ZlKG1hc2tJbWFnZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVz
b3VyY2VMaW5lYXJHcmFkaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnQuY3BwCmluZGV4IDgyZThkMzkuLmZkZmM5Njgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3Vy
Y2VMaW5lYXJHcmFkaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50LmNwcApAQCAtMjcsNyArMjcsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBSZW5kZXJTVkdSZXNvdXJjZVR5cGUgUmVuZGVyU1ZHUmVzb3VyY2VM
aW5lYXJHcmFkaWVudDo6c19yZXNvdXJjZVR5cGUgPSBMaW5lYXJHcmFkaWVudFJlc291cmNlVHlw
ZTsKIAogUmVuZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudDo6UmVuZGVyU1ZHUmVzb3VyY2VM
aW5lYXJHcmFkaWVudChTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8
UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyU1ZHUmVzb3VyY2VHcmFkaWVudChlbGVt
ZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyU1ZHUmVzb3VyY2VHcmFkaWVudChl
bGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFya2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXIuY3BwCmluZGV4IDFk
YjY0MDYuLmEyODIxOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXIuY3BwCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIFJlbmRlclNWR1Jlc291cmNlVHlwZSBSZW5kZXJTVkdSZXNvdXJjZU1h
cmtlcjo6c19yZXNvdXJjZVR5cGUgPSBNYXJrZXJSZXNvdXJjZVR5cGU7CiAKIFJlbmRlclNWR1Jl
c291cmNlTWFya2VyOjpSZW5kZXJTVkdSZXNvdXJjZU1hcmtlcihTVkdNYXJrZXJFbGVtZW50JiBl
bGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlclNWR1Jlc291
cmNlQ29udGFpbmVyKGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgOiBSZW5kZXJTVkdS
ZXNvdXJjZUNvbnRhaW5lcihlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogewogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFz
a2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VN
YXNrZXIuY3BwCmluZGV4IGExNDY1YmMuLjcxOGEwOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuY3BwCkBAIC0z
Miw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFJlbmRlclNWR1Jlc291cmNlVHlwZSBS
ZW5kZXJTVkdSZXNvdXJjZU1hc2tlcjo6c19yZXNvdXJjZVR5cGUgPSBNYXNrZXJSZXNvdXJjZVR5
cGU7CiAKIFJlbmRlclNWR1Jlc291cmNlTWFza2VyOjpSZW5kZXJTVkdSZXNvdXJjZU1hc2tlcihT
VkdNYXNrRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAg
OiBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcihlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQor
ICAgIDogUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIoZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxl
KSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSZXNvdXJjZVBhdHRlcm4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4uY3BwCmluZGV4IGJmYWU3ZjIuLjg5M2UzOWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0
ZXJuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291
cmNlUGF0dGVybi5jcHAKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogUmVu
ZGVyU1ZHUmVzb3VyY2VUeXBlIFJlbmRlclNWR1Jlc291cmNlUGF0dGVybjo6c19yZXNvdXJjZVR5
cGUgPSBQYXR0ZXJuUmVzb3VyY2VUeXBlOwogCiBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm46OlJl
bmRlclNWR1Jlc291cmNlUGF0dGVybihTVkdQYXR0ZXJuRWxlbWVudCYgZWxlbWVudCwgUGFzc1Jl
ZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcihl
bGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyU1ZHUmVzb3VyY2VDb250YWlu
ZXIoZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKICAgICAsIG1fc2hvdWxkQ29sbGVjdFBhdHRl
cm5BdHRyaWJ1dGVzKHRydWUpCiB7CiB9CkBAIC0xMjksNyArMTI5LDcgQEAgUGF0dGVybkRhdGEq
IFJlbmRlclNWR1Jlc291cmNlUGF0dGVybjo6YnVpbGRQYXR0ZXJuKFJlbmRlckVsZW1lbnQmIHJl
bmRlcmVyLCB1bnMKICAgICAvLyBWYXJpb3VzIGNhbGxzIGFib3ZlIG1heSB0cmlnZ2VyIGludmFs
aWRhdGlvbnMgaW4gc29tZSBmcmluZ2UgY2FzZXMgKEltYWdlQnVmZmVyIGFsbG9jYXRpb24KICAg
ICAvLyBmYWlsdXJlcyBpbiB0aGUgU1ZHIGltYWdlIGNhY2hlIGZvciBleGFtcGxlKS4gVG8gYXZv
aWQgaGF2aW5nIG91ciBQYXR0ZXJuRGF0YSBkZWxldGVkIGJ5CiAgICAgLy8gcmVtb3ZlQWxsQ2xp
ZW50c0Zyb21DYWNoZSgpLCB3ZSBvbmx5IG1ha2UgaXQgdmlzaWJsZSBpbiB0aGUgY2FjaGUgYXQg
dGhlIHZlcnkgZW5kLgotICAgIHJldHVybiBtX3BhdHRlcm5NYXAuc2V0KCZyZW5kZXJlciwgc3Rk
Ojptb3ZlKHBhdHRlcm5EYXRhKSkuaXRlcmF0b3ItPnZhbHVlLmdldCgpOworICAgIHJldHVybiBt
X3BhdHRlcm5NYXAuc2V0KCZyZW5kZXJlciwgV1RGOjptb3ZlKHBhdHRlcm5EYXRhKSkuaXRlcmF0
b3ItPnZhbHVlLmdldCgpOwogfQogCiBib29sIFJlbmRlclNWR1Jlc291cmNlUGF0dGVybjo6YXBw
bHlSZXNvdXJjZShSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgY29uc3QgUmVuZGVyU3R5bGUmIHN0
eWxlLCBHcmFwaGljc0NvbnRleHQqJiBjb250ZXh0LCB1bnNpZ25lZCBzaG9ydCByZXNvdXJjZU1v
ZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jl
c291cmNlUmFkaWFsR3JhZGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdyYWRpZW50LmNwcAppbmRleCBiZDAzMTRmLi42ZGIwN2M0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291
cmNlUmFkaWFsR3JhZGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2VSYWRpYWxHcmFkaWVudC5jcHAKQEAgLTI3LDcgKzI3LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogUmVuZGVyU1ZHUmVzb3VyY2VUeXBlIFJlbmRlclNWR1Jlc291cmNl
UmFkaWFsR3JhZGllbnQ6OnNfcmVzb3VyY2VUeXBlID0gUmFkaWFsR3JhZGllbnRSZXNvdXJjZVR5
cGU7CiAKIFJlbmRlclNWR1Jlc291cmNlUmFkaWFsR3JhZGllbnQ6OlJlbmRlclNWR1Jlc291cmNl
UmFkaWFsR3JhZGllbnQoU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVm
PFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlclNWR1Jlc291cmNlR3JhZGllbnQoZWxl
bWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlclNWR1Jlc291cmNlR3JhZGllbnQo
ZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKaW5kZXggMDNlZTg5YS4uMDI4YjA3OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCkBAIC01
NCw3ICs1NCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclNWR1Jvb3Q6OlJlbmRl
clNWR1Jvb3QoU1ZHU1ZHRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5
bGUpCi0gICAgOiBSZW5kZXJSZXBsYWNlZChlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAg
IDogUmVuZGVyUmVwbGFjZWQoZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSkKICAgICAsIG1fb2Jq
ZWN0Qm91bmRpbmdCb3hWYWxpZChmYWxzZSkKICAgICAsIG1faXNMYXlvdXRTaXplQ2hhbmdlZChm
YWxzZSkKICAgICAsIG1fbmVlZHNCb3VuZGFyaWVzT3JUcmFuc2Zvcm1VcGRhdGUodHJ1ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKaW5kZXgg
OWY1OGY2My4uOTI5ZDA3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdTaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdTaGFwZS5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgcHJpdmF0ZToKIH07CiAKIFJlbmRl
clNWR1NoYXBlOjpSZW5kZXJTVkdTaGFwZShTVkdHcmFwaGljc0VsZW1lbnQmIGVsZW1lbnQsIFBh
c3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyU1ZHTW9kZWxPYmplY3QoZWxl
bWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlclNWR01vZGVsT2JqZWN0KGVsZW1l
bnQsIFdURjo6bW92ZShzdHlsZSkpCiAgICAgLCBtX25lZWRzQm91bmRhcmllc1VwZGF0ZShmYWxz
ZSkgLy8gRGVmYXVsdCBpcyBmYWxzZSwgdGhlIGNhY2hlZCByZWN0cyBhcmUgZW1wdHkgZnJvbSB0
aGUgYmVnaW5uaW5nLgogICAgICwgbV9uZWVkc1NoYXBlVXBkYXRlKHRydWUpIC8vIERlZmF1bHQg
aXMgdHJ1ZSwgc28gd2UgZ3JhYiBhIFBhdGggb2JqZWN0IG9uY2UgZnJvbSBTVkdHcmFwaGljc0Vs
ZW1lbnQuCiAgICAgLCBtX25lZWRzVHJhbnNmb3JtVXBkYXRlKHRydWUpIC8vIERlZmF1bHQgaXMg
dHJ1ZSwgc28gd2UgZ3JhYiBhIEFmZmluZVRyYW5zZm9ybSBvYmplY3Qgb25jZSBmcm9tIFNWR0dy
YXBoaWNzRWxlbWVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHVFNwYW4uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
VFNwYW4uaAppbmRleCAxZjRhZGRhLi5lOTcyY2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RTcGFuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdUU3Bhbi5oCkBAIC0yOSw3ICsyOSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIFJlbmRlclNWR1RTcGFuIGZpbmFsIDogcHVibGljIFJlbmRlclNWR0lu
bGluZSB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVuZGVyU1ZHVFNwYW4oU1ZHVGV4dFBvc2l0
aW9uaW5nRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAg
ICAgIDogUmVuZGVyU1ZHSW5saW5lKGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCisgICAgICAg
IDogUmVuZGVyU1ZHSW5saW5lKGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiAgICAgewogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdU
ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAK
aW5kZXggZWQ5OTAzNy4uZDM4ZWU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1RleHQuY3BwCkBAIC01Myw3ICs1Myw3IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIFJlbmRlclNWR1RleHQ6OlJlbmRlclNWR1RleHQoU1ZHVGV4dEVsZW1lbnQmIGVsZW1l
bnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQotICAgIDogUmVuZGVyU1ZHQmxvY2soZWxl
bWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlclNWR0Jsb2NrKGVsZW1lbnQsIFdU
Rjo6bW92ZShzdHlsZSkpCiAgICAgLCBtX25lZWRzUmVvcmRlcmluZyhmYWxzZSkKICAgICAsIG1f
bmVlZHNQb3NpdGlvbmluZ1ZhbHVlc1VwZGF0ZShmYWxzZSkKICAgICAsIG1fbmVlZHNUcmFuc2Zv
cm1VcGRhdGUodHJ1ZSkKQEAgLTQzNiw3ICs0MzYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Um9vdElu
bGluZUJveD4gUmVuZGVyU1ZHVGV4dDo6Y3JlYXRlUm9vdElubGluZUJveCgpCiB7CiAgICAgYXV0
byBib3ggPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR1Jvb3RJbmxpbmVCb3g+KCp0aGlzKTsKICAgICBi
b3gtPnNldEhhc1ZpcnR1YWxMb2dpY2FsSGVpZ2h0KCk7Ci0gICAgcmV0dXJuIHN0ZDo6bW92ZShi
b3gpOworICAgIHJldHVybiBXVEY6Om1vdmUoYm94KTsKIH0KIAogYm9vbCBSZW5kZXJTVkdUZXh0
Ojpub2RlQXRGbG9hdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0
UmVzdWx0JiByZXN1bHQsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50SW5QYXJlbnQsIEhpdFRlc3RB
Y3Rpb24gaGl0VGVzdEFjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHVGV4dFBhdGguY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdUZXh0UGF0aC5jcHAKaW5kZXggNzlmN2QzNi4uMDJkZjU2YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0UGF0aC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0UGF0aC5jcHAKQEAg
LTMzLDcgKzMzLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyU1ZHVGV4dFBhdGg6
OlJlbmRlclNWR1RleHRQYXRoKFNWR1RleHRQYXRoRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxS
ZW5kZXJTdHlsZT4gc3R5bGUpCi0gICAgOiBSZW5kZXJTVkdJbmxpbmUoZWxlbWVudCwgc3RkOjpt
b3ZlKHN0eWxlKSkKKyAgICA6IFJlbmRlclNWR0lubGluZShlbGVtZW50LCBXVEY6Om1vdmUoc3R5
bGUpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNwcAppbmRleCBkNTQyODA2
Li4wMWU3MDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHAKQEAgLTI4LDcgKzI4
LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIFJlbmRlclNWR1RyYW5zZm9ybWFibGVD
b250YWluZXI6OlJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIoU1ZHR3JhcGhpY3NFbGVt
ZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJlbmRlclNW
R0NvbnRhaW5lcihlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVyU1ZHQ29u
dGFpbmVyKGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiAgICAgLCBtX25lZWRzVHJhbnNmb3Jt
VXBkYXRlKHRydWUpCiAgICAgLCBtX2RpZFRyYW5zZm9ybVRvUm9vdFVwZGF0ZShmYWxzZSkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVmlld3Bv
cnRDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdW
aWV3cG9ydENvbnRhaW5lci5jcHAKaW5kZXggZWI0YmJkMS4uMzA5OGZlNTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVmlld3BvcnRD
b250YWluZXIuY3BwCkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJl
bmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyOjpSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lcihTVkdT
VkdFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKLSAgICA6IFJl
bmRlclNWR0NvbnRhaW5lcihlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKQorICAgIDogUmVuZGVy
U1ZHQ29udGFpbmVyKGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpCiAgICAgLCBtX2RpZFRyYW5z
Zm9ybVRvUm9vdFVwZGF0ZShmYWxzZSkKICAgICAsIG1faXNMYXlvdXRTaXplQ2hhbmdlZChmYWxz
ZSkKICAgICAsIG1fbmVlZHNUcmFuc2Zvcm1VcGRhdGUodHJ1ZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDEyYWQz
MzEuLmRlOGYxNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
UmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMjY2LDcgKzI2Niw3IEBAIGJvb2wgU1ZHUmVuZGVy
aW5nQ29udGV4dDo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0
LCBjb25zdCBBCiAgICAgaW1hZ2VDb250ZXh0LT50cmFuc2xhdGUoLXBhaW50UmVjdC54KCksIC1w
YWludFJlY3QueSgpKTsKICAgICBpbWFnZUNvbnRleHQtPmNvbmNhdENUTShhYnNvbHV0ZVRyYW5z
Zm9ybSk7CiAKLSAgICBpbWFnZUJ1ZmZlciA9IHN0ZDo6bW92ZShpbWFnZSk7CisgICAgaW1hZ2VC
dWZmZXIgPSBXVEY6Om1vdmUoaW1hZ2UpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0yODks
NyArMjg5LDcgQEAgYm9vbCBTVkdSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVJbWFnZUJ1ZmZlckZv
clBhdHRlcm4oY29uc3QgRmxvYXRSZWN0JiBhYnNvbHV0ZVQKICAgICAvLyBDb21wZW5zYXRlIHJv
dW5kaW5nIGVmZmVjdHMsIGFzIHRoZSBhYnNvbHV0ZSB0YXJnZXQgcmVjdCBpcyB1c2luZyBmbG9h
dGluZy1wb2ludCBudW1iZXJzIGFuZCB0aGUgaW1hZ2UgYnVmZmVyIHNpemUgaXMgaW50ZWdlci4K
ICAgICBpbWFnZUNvbnRleHQtPnNjYWxlKEZsb2F0U2l6ZSh1bmNsYW1wZWRJbWFnZVNpemUud2lk
dGgoKSAvIGFic29sdXRlVGFyZ2V0UmVjdC53aWR0aCgpLCB1bmNsYW1wZWRJbWFnZVNpemUuaGVp
Z2h0KCkgLyBhYnNvbHV0ZVRhcmdldFJlY3QuaGVpZ2h0KCkpKTsKIAotICAgIGltYWdlQnVmZmVy
ID0gc3RkOjptb3ZlKGltYWdlKTsKKyAgICBpbWFnZUJ1ZmZlciA9IFdURjo6bW92ZShpbWFnZSk7
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHUmVzb3VyY2VzQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9TVkdSZXNvdXJjZXNDYWNoZS5jcHAKaW5kZXggYmIzMzcyYi4uMmYyN2YyMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXNDYWNoZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXNDYWNoZS5jcHAK
QEAgLTQ3LDcgKzQ3LDcgQEAgdm9pZCBTVkdSZXNvdXJjZXNDYWNoZTo6YWRkUmVzb3VyY2VzRnJv
bVJlbmRlcmVyKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBjb25zdAogICAgICAgICByZXR1cm47
CiAKICAgICAvLyBQdXQgb2JqZWN0IGluIGNhY2hlLgotICAgIFNWR1Jlc291cmNlcyYgcmVzb3Vy
Y2VzID0gKm1fY2FjaGUuYWRkKCZyZW5kZXJlciwgc3RkOjptb3ZlKG5ld1Jlc291cmNlcykpLml0
ZXJhdG9yLT52YWx1ZTsKKyAgICBTVkdSZXNvdXJjZXMmIHJlc291cmNlcyA9ICptX2NhY2hlLmFk
ZCgmcmVuZGVyZXIsIFdURjo6bW92ZShuZXdSZXNvdXJjZXMpKS5pdGVyYXRvci0+dmFsdWU7CiAK
ICAgICAvLyBSdW4gY3ljbGUtZGV0ZWN0aW9uIF9hZnRlcndhcmRzXywgc28gc2VsZi1yZWZlcmVu
Y2VzIGNhbiBiZSBjYXVnaHQgYXMgd2VsbC4KICAgICBTVkdSZXNvdXJjZXNDeWNsZVNvbHZlciBz
b2x2ZXIocmVuZGVyZXIsIHJlc291cmNlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZXBsYXkvQ2FwdHVyaW5nSW5wdXRDdXJzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L0Nh
cHR1cmluZ0lucHV0Q3Vyc29yLmNwcAppbmRleCBjMTg5N2M3Li5kYWEwNmJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvQ2FwdHVyaW5nSW5wdXRDdXJzb3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlcGxheS9DYXB0dXJpbmdJbnB1dEN1cnNvci5jcHAKQEAgLTU1LDcgKzU1
LDcgQEAgUGFzc1JlZlB0cjxDYXB0dXJpbmdJbnB1dEN1cnNvcj4gQ2FwdHVyaW5nSW5wdXRDdXJz
b3I6OmNyZWF0ZShTZWdtZW50ZWRJbnB1dFN0b3IKIHZvaWQgQ2FwdHVyaW5nSW5wdXRDdXJzb3I6
OnN0b3JlSW5wdXQoc3RkOjp1bmlxdWVfcHRyPE5vbmRldGVybWluaXN0aWNJbnB1dEJhc2U+IGlu
cHV0KQogewogICAgIEFTU0VSVChpbnB1dCk7Ci0gICAgbV9zdG9yYWdlLnN0b3JlKHN0ZDo6bW92
ZShpbnB1dCkpOworICAgIG1fc3RvcmFnZS5zdG9yZShXVEY6Om1vdmUoaW5wdXQpKTsKIH0KIAog
Tm9uZGV0ZXJtaW5pc3RpY0lucHV0QmFzZSogQ2FwdHVyaW5nSW5wdXRDdXJzb3I6OmxvYWRJbnB1
dChJbnB1dFF1ZXVlLCBjb25zdCBBdG9taWNTdHJpbmcmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVwbGF5L01lbW9pemVkRE9NUmVzdWx0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlcGxh
eS9NZW1vaXplZERPTVJlc3VsdC5jcHAKaW5kZXggMGQyY2M2NS4uNWI2MzA5MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L01lbW9pemVkRE9NUmVzdWx0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZXBsYXkvTWVtb2l6ZWRET01SZXN1bHQuY3BwCkBAIC0xMDMsNyArMTAzLDcg
QEAgYm9vbCBJbnB1dFRyYWl0czxNZW1vaXplZERPTVJlc3VsdEJhc2U+OjpkZWNvZGUoRW5jb2Rl
ZFZhbHVlJiBlbmNvZGVkVmFsdWUsIHN0ZDoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVtb2l6ZWRE
T01SZXN1bHRCYXNlPiBkZWNvZGVkSW5wdXQgPSBNZW1vaXplZERPTVJlc3VsdEJhc2U6OmNyZWF0
ZUZyb21FbmNvZGVkUmVzdWx0KGF0dHJpYnV0ZSwgY3R5cGUsIGVuY29kZWRSZXN1bHQsIGV4Y2Vw
dGlvbkNvZGUpOwogICAgIGlmICghZGVjb2RlZElucHV0KQogICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgaW5wdXQgPSBzdGQ6Om1vdmUoZGVjb2RlZElucHV0KTsKKyAgICBpbnB1dCA9IFdURjo6
bW92ZShkZWNvZGVkSW5wdXQpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZXBsYXkvUmVwbGF5Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZXBsYXkvUmVwbGF5Q29udHJvbGxlci5jcHAKaW5kZXggNjdiNDI0Ny4uZDc2ZTRiNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheUNvbnRyb2xsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlDb250cm9sbGVyLmNwcApAQCAtMTc4LDcgKzE3
OCw3IEBAIHZvaWQgUmVwbGF5Q29udHJvbGxlcjo6Y3JlYXRlU2VnbWVudCgpCiAgICAgc3RkOjp1
bmlxdWVfcHRyPEluaXRpYWxOYXZpZ2F0aW9uPiBuYXZpZ2F0aW9uSW5wdXQgPSBJbml0aWFsTmF2
aWdhdGlvbjo6Y3JlYXRlRnJvbVBhZ2UobV9wYWdlKTsKICAgICAvLyBEaXNwYXRjaGluZyB0aGlz
IGlucHV0IHNjaGVkdWxlcyBuYXZpZ2F0aW9uIG9mIHRoZSBtYWluIGZyYW1lLCBjYXVzaW5nIGEg
cmVmcmVzaC4KICAgICBuYXZpZ2F0aW9uSW5wdXQtPmRpc3BhdGNoKCp0aGlzKTsKLSAgICBtX2Fj
dGl2ZUN1cnNvci0+c3RvcmVJbnB1dChzdGQ6Om1vdmUobmF2aWdhdGlvbklucHV0KSk7CisgICAg
bV9hY3RpdmVDdXJzb3ItPnN0b3JlSW5wdXQoV1RGOjptb3ZlKG5hdmlnYXRpb25JbnB1dCkpOwog
fQogCiB2b2lkIFJlcGxheUNvbnRyb2xsZXI6OmNvbXBsZXRlU2VnbWVudCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvU2VnbWVudGVkSW5wdXRTdG9yYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlcGxheS9TZWdtZW50ZWRJbnB1dFN0b3JhZ2UuY3BwCmluZGV4IGU2NjE0MWEu
LjQ2NWJiZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9TZWdtZW50ZWRJbnB1
dFN0b3JhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9TZWdtZW50ZWRJbnB1dFN0
b3JhZ2UuY3BwCkBAIC0xMDUsNyArMTA1LDcgQEAgdm9pZCBTZWdtZW50ZWRJbnB1dFN0b3JhZ2U6
OnN0b3JlKHN0ZDo6dW5pcXVlX3B0cjxOb25kZXRlcm1pbmlzdGljSW5wdXRCYXNlPiBpbnAKIAog
ICAgIExPRyhXZWJSZXBsYXksICIlLTE0cyMlLTV1ICVzOiAlcyAlc1xuIiwgIlJlcGxheUV2ZW50
cyIsIG1faW5wdXRDb3VudCsrLCBxdWV1ZVR5cGVUb0xvZ1ByZWZpeChpbnB1dC0+cXVldWUoKSwg
ZmFsc2UpLCBpbnB1dC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIGpzb25TdHJpbmdG
b3JJbnB1dCgqaW5wdXQpLnV0ZjgoKS5kYXRhKCkpOwogCi0gICAgbV9xdWV1ZXMuYXQob2Zmc2V0
Rm9ySW5wdXRRdWV1ZShpbnB1dC0+cXVldWUoKSkpLT5hcHBlbmQoc3RkOjptb3ZlKGlucHV0KSk7
CisgICAgbV9xdWV1ZXMuYXQob2Zmc2V0Rm9ySW5wdXRRdWV1ZShpbnB1dC0+cXVldWUoKSkpLT5h
cHBlbmQoV1RGOjptb3ZlKGlucHV0KSk7CiB9CiAKIHNpemVfdCBTZWdtZW50ZWRJbnB1dFN0b3Jh
Z2U6OnF1ZXVlU2l6ZShJbnB1dFF1ZXVlIGlucHV0UXVldWUpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZXBsYXkvU2VyaWFsaXphdGlvbk1ldGhvZHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmNwcAppbmRleCBiZTQ1ZjFiLi4yNDBh
YjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvU2VyaWFsaXphdGlvbk1ldGhv
ZHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5j
cHAKQEAgLTIwMSw3ICsyMDEsNyBAQCBib29sIEVuY29kaW5nVHJhaXRzPE5vbmRldGVybWluaXN0
aWNJbnB1dEJhc2U+OjpkZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmIGVuY29kZQogICAgICAgICBp
ZiAoIUlucHV0VHJhaXRzPG5hbWU+OjpkZWNvZGUoZW5jb2RlZFZhbHVlLCBkZWNvZGVkSW5wdXQp
KSBcCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IFwKICAgICAgICAgXAotICAgICAgICBpbnB1
dCA9IHN0ZDo6bW92ZShkZWNvZGVkSW5wdXQpOyBcCisgICAgICAgIGlucHV0ID0gV1RGOjptb3Zl
KGRlY29kZWRJbnB1dCk7IFwKICAgICAgICAgcmV0dXJuIHRydWU7IFwKICAgICB9IFwKIApAQCAt
MjE0LDcgKzIxNCw3IEBAIGJvb2wgRW5jb2RpbmdUcmFpdHM8Tm9uZGV0ZXJtaW5pc3RpY0lucHV0
QmFzZT46OmRlY29kZVZhbHVlKEVuY29kZWRWYWx1ZSYgZW5jb2RlCiAgICAgICAgIGlmICghSW5w
dXRUcmFpdHM8TWVtb2l6ZWRET01SZXN1bHRCYXNlPjo6ZGVjb2RlKGVuY29kZWRWYWx1ZSwgZGVj
b2RlZElucHV0KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBpbnB1dCA9
IHN0ZDo6bW92ZShkZWNvZGVkSW5wdXQpOworICAgICAgICBpbnB1dCA9IFdURjo6bW92ZShkZWNv
ZGVkSW5wdXQpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlcGxheS9Vc2VySW5wdXRCcmlkZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVwbGF5L1VzZXJJbnB1dEJyaWRnZS5jcHAKaW5kZXggMzY0YTNmMC4uNDU4NDVhZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1VzZXJJbnB1dEJyaWRnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVwbGF5L1VzZXJJbnB1dEJyaWRnZS5jcHAKQEAgLTgzLDcgKzgzLDcgQEAg
Ym9vbCBVc2VySW5wdXRCcmlkZ2U6OmhhbmRsZU1vdXNlUHJlc3NFdmVudChjb25zdCBQbGF0Zm9y
bU1vdXNlRXZlbnQmIG1vdXNlRXZlbnQKICAgICBJbnB1dEN1cnNvciYgY3Vyc29yID0gYWN0aXZl
Q3Vyc29yKCk7CiAgICAgaWYgKGN1cnNvci5pc0NhcHR1cmluZygpKSB7CiAgICAgICAgIHN0ZDo6
dW5pcXVlX3B0cjxQbGF0Zm9ybU1vdXNlRXZlbnQ+IG93bmVkRXZlbnQgPSBzdGQ6Om1ha2VfdW5p
cXVlPFBsYXRmb3JtTW91c2VFdmVudD4obW91c2VFdmVudCk7Ci0gICAgICAgIGN1cnNvci5hcHBl
bmRJbnB1dDxIYW5kbGVNb3VzZVByZXNzPihzdGQ6Om1vdmUob3duZWRFdmVudCkpOworICAgICAg
ICBjdXJzb3IuYXBwZW5kSW5wdXQ8SGFuZGxlTW91c2VQcmVzcz4oV1RGOjptb3ZlKG93bmVkRXZl
bnQpKTsKICAgICB9CiAgICAgRXZlbnRMb29wSW5wdXRFeHRlbnQgZXh0ZW50KGN1cnNvcik7CiAj
ZWxzZQpAQCAtMTAxLDcgKzEwMSw3IEBAIGJvb2wgVXNlcklucHV0QnJpZGdlOjpoYW5kbGVNb3Vz
ZVJlbGVhc2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZlCiAgICAgSW5w
dXRDdXJzb3ImIGN1cnNvciA9IGFjdGl2ZUN1cnNvcigpOwogICAgIGlmIChjdXJzb3IuaXNDYXB0
dXJpbmcoKSkgewogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1Nb3VzZUV2ZW50PiBv
d25lZEV2ZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybU1vdXNlRXZlbnQ+KG1vdXNlRXZl
bnQpOwotICAgICAgICBjdXJzb3IuYXBwZW5kSW5wdXQ8SGFuZGxlTW91c2VSZWxlYXNlPihzdGQ6
Om1vdmUob3duZWRFdmVudCkpOworICAgICAgICBjdXJzb3IuYXBwZW5kSW5wdXQ8SGFuZGxlTW91
c2VSZWxlYXNlPihXVEY6Om1vdmUob3duZWRFdmVudCkpOwogICAgIH0KICAgICBFdmVudExvb3BJ
bnB1dEV4dGVudCBleHRlbnQoY3Vyc29yKTsKICNlbHNlCkBAIC0xMTksNyArMTE5LDcgQEAgYm9v
bCBVc2VySW5wdXRCcmlkZ2U6OmhhbmRsZU1vdXNlTW92ZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91
c2VFdmVudCYgbW91c2VFdmVudCwKICAgICBJbnB1dEN1cnNvciYgY3Vyc29yID0gYWN0aXZlQ3Vy
c29yKCk7CiAgICAgaWYgKGN1cnNvci5pc0NhcHR1cmluZygpKSB7CiAgICAgICAgIHN0ZDo6dW5p
cXVlX3B0cjxQbGF0Zm9ybU1vdXNlRXZlbnQ+IG93bmVkRXZlbnQgPSBzdGQ6Om1ha2VfdW5pcXVl
PFBsYXRmb3JtTW91c2VFdmVudD4obW91c2VFdmVudCk7Ci0gICAgICAgIGN1cnNvci5hcHBlbmRJ
bnB1dDxIYW5kbGVNb3VzZU1vdmU+KHN0ZDo6bW92ZShvd25lZEV2ZW50KSwgZmFsc2UpOworICAg
ICAgICBjdXJzb3IuYXBwZW5kSW5wdXQ8SGFuZGxlTW91c2VNb3ZlPihXVEY6Om1vdmUob3duZWRF
dmVudCksIGZhbHNlKTsKICAgICB9CiAgICAgRXZlbnRMb29wSW5wdXRFeHRlbnQgZXh0ZW50KGN1
cnNvcik7CiAjZWxzZQpAQCAtMTM3LDcgKzEzNyw3IEBAIGJvb2wgVXNlcklucHV0QnJpZGdlOjpo
YW5kbGVNb3VzZU1vdmVPblNjcm9sbGJhckV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYK
ICAgICBJbnB1dEN1cnNvciYgY3Vyc29yID0gYWN0aXZlQ3Vyc29yKCk7CiAgICAgaWYgKGN1cnNv
ci5pc0NhcHR1cmluZygpKSB7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybU1vdXNl
RXZlbnQ+IG93bmVkRXZlbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtTW91c2VFdmVudD4o
bW91c2VFdmVudCk7Ci0gICAgICAgIGN1cnNvci5hcHBlbmRJbnB1dDxIYW5kbGVNb3VzZU1vdmU+
KHN0ZDo6bW92ZShvd25lZEV2ZW50KSwgdHJ1ZSk7CisgICAgICAgIGN1cnNvci5hcHBlbmRJbnB1
dDxIYW5kbGVNb3VzZU1vdmU+KFdURjo6bW92ZShvd25lZEV2ZW50KSwgdHJ1ZSk7CiAgICAgfQog
ICAgIEV2ZW50TG9vcElucHV0RXh0ZW50IGV4dGVudChjdXJzb3IpOwogI2Vsc2UKQEAgLTE1NSw3
ICsxNTUsNyBAQCBib29sIFVzZXJJbnB1dEJyaWRnZTo6aGFuZGxlS2V5RXZlbnQoY29uc3QgUGxh
dGZvcm1LZXlib2FyZEV2ZW50JiBrZXlFdmVudCwgSW5wdQogICAgIElucHV0Q3Vyc29yJiBjdXJz
b3IgPSBhY3RpdmVDdXJzb3IoKTsKICAgICBpZiAoY3Vyc29yLmlzQ2FwdHVyaW5nKCkpIHsKICAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtS2V5Ym9hcmRFdmVudD4gb3duZWRFdmVudCA9
IHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1LZXlib2FyZEV2ZW50PihrZXlFdmVudCk7Ci0gICAg
ICAgIGN1cnNvci5hcHBlbmRJbnB1dDxIYW5kbGVLZXlQcmVzcz4oc3RkOjptb3ZlKG93bmVkRXZl
bnQpKTsKKyAgICAgICAgY3Vyc29yLmFwcGVuZElucHV0PEhhbmRsZUtleVByZXNzPihXVEY6Om1v
dmUob3duZWRFdmVudCkpOwogICAgIH0KICAgICBFdmVudExvb3BJbnB1dEV4dGVudCBleHRlbnQo
Y3Vyc29yKTsKICNlbHNlCkBAIC0xNzgsNyArMTc4LDcgQEAgYm9vbCBVc2VySW5wdXRCcmlkZ2U6
OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBJ
bnAKICAgICBJbnB1dEN1cnNvciYgY3Vyc29yID0gYWN0aXZlQ3Vyc29yKCk7CiAgICAgaWYgKGN1
cnNvci5pc0NhcHR1cmluZygpKSB7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVdo
ZWVsRXZlbnQ+IG93bmVkRXZlbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtV2hlZWxFdmVu
dD4od2hlZWxFdmVudCk7Ci0gICAgICAgIGN1cnNvci5hcHBlbmRJbnB1dDxIYW5kbGVXaGVlbEV2
ZW50PihzdGQ6Om1vdmUob3duZWRFdmVudCkpOworICAgICAgICBjdXJzb3IuYXBwZW5kSW5wdXQ8
SGFuZGxlV2hlZWxFdmVudD4oV1RGOjptb3ZlKG93bmVkRXZlbnQpKTsKICAgICB9CiAgICAgRXZl
bnRMb29wSW5wdXRFeHRlbnQgZXh0ZW50KGN1cnNvcik7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZVJlc29sdmVUcmVlLmNwcAppbmRleCA1ZGZhMmY0Li4zMzkyODlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVUcmVlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVUcmVlLmNwcApAQCAtOTUwLDcgKzk1MCw3IEBA
IHZvaWQgcmVzb2x2ZVRyZWUoRG9jdW1lbnQmIGRvY3VtZW50LCBDaGFuZ2UgY2hhbmdlKQogCiAg
ICAgICAgIFN0eWxlOjpDaGFuZ2UgZG9jdW1lbnRDaGFuZ2UgPSBkZXRlcm1pbmVDaGFuZ2UoJmRv
Y3VtZW50U3R5bGUuZ2V0KCksICZkb2N1bWVudC5yZW5kZXJWaWV3KCktPnN0eWxlKCkpOwogICAg
ICAgICBpZiAoZG9jdW1lbnRDaGFuZ2UgIT0gTm9DaGFuZ2UpCi0gICAgICAgICAgICBkb2N1bWVu
dC5yZW5kZXJWaWV3KCktPnNldFN0eWxlKHN0ZDo6bW92ZShkb2N1bWVudFN0eWxlKSk7CisgICAg
ICAgICAgICBkb2N1bWVudC5yZW5kZXJWaWV3KCktPnNldFN0eWxlKFdURjo6bW92ZShkb2N1bWVu
dFN0eWxlKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGRvY3VtZW50U3R5bGUuZHJvcFJl
ZigpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCmluZGV4IGRmOTIwNzMuLmMy
ZjI0ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcApAQCAtMTQxLDkgKzE0MSw5IEBA
IHZvaWQgU1ZHQUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0ck5hbWUpCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHQUVsZW1lbnQ6OmNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKICAgICBpZiAo
cGFyZW50Tm9kZSgpICYmIHBhcmVudE5vZGUoKS0+aXNTVkdFbGVtZW50KCkgJiYgdG9TVkdFbGVt
ZW50KHBhcmVudE5vZGUoKSktPmlzVGV4dENvbnRlbnQoKSkKLSAgICAgICAgcmV0dXJuIGNyZWF0
ZVJlbmRlcmVyPFJlbmRlclNWR0lubGluZT4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAg
ICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHSW5saW5lPigqdGhpcywgV1RGOjpt
b3ZlKHN0eWxlKSk7CiAKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHVHJhbnNm
b3JtYWJsZUNvbnRhaW5lcj4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBj
cmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyPigqdGhpcywgV1RG
Ojptb3ZlKHN0eWxlKSk7CiB9CiAKIHZvaWQgU1ZHQUVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRs
ZXIoRXZlbnQqIGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEds
eXBoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmNw
cAppbmRleCAxMGUyZjZhLi5kMzU0NTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQWx0R2x5cGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5
cGhFbGVtZW50LmNwcApAQCAtODQsNyArODQsNyBAQCBib29sIFNWR0FsdEdseXBoRWxlbWVudDo6
Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJiBjaGlsZCkgY29uc3QKIAogUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0FsdEdseXBoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBjcmVhdGVS
ZW5kZXJlcjxSZW5kZXJTVkdUU3Bhbj4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJl
dHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdUU3Bhbj4oKnRoaXMsIFdURjo6bW92ZShzdHls
ZSkpOwogfQogCiBib29sIFNWR0FsdEdseXBoRWxlbWVudDo6aGFzVmFsaWRHbHlwaEVsZW1lbnRz
KFZlY3RvcjxTdHJpbmc+JiBnbHlwaE5hbWVzKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRQYXRoLmNwcAppbmRleCA4YTA4NzZjLi4xNGMwMzU0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQYXRoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRQYXRoLmNwcApAQCAtMzUsNyArMzUsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmlu
ZyhjbwogewogICAgIGF1dG8gYnl0ZVN0cmVhbSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHUGF0aEJ5
dGVTdHJlYW0+KCk7CiAgICAgYnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TdHJpbmcoc3RyaW5n
LCBieXRlU3RyZWFtLmdldCgpLCBVbmFsdGVyZWRQYXJzaW5nKTsKLSAgICByZXR1cm4gU1ZHQW5p
bWF0ZWRUeXBlOjpjcmVhdGVQYXRoKHN0ZDo6bW92ZShieXRlU3RyZWFtKSk7CisgICAgcmV0dXJu
IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUGF0aChXVEY6Om1vdmUoYnl0ZVN0cmVhbSkpOwogfQog
CiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFBhdGhBbmltYXRv
cjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5
TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTYwLDcgKzYwLDcgQEAgc3RkOjp1bmlxdWVfcHRyPFNW
R0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1h
dGlvbigKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlc3VsdFNpemU7ICsraSkKICAgICAg
ICAgcmVzdWx0W2ldLT5hbmltYXRpb25TdGFydGVkKGJ5dGVTdHJlYW0uZ2V0KCksICZiYXNlVmFs
dWUpOwogCi0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUGF0aChzdGQ6Om1vdmUo
Ynl0ZVN0cmVhbSkpOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBhdGgoV1RG
Ojptb3ZlKGJ5dGVTdHJlYW0pKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6
c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
JiBhbmltYXRlZFR5cGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNs
ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwCmlu
ZGV4IDk5ZjhiNmQuLjIzMzhmMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdD
aXJjbGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVu
dC5jcHAKQEAgLTE0MCw3ICsxNDAsNyBAQCBib29sIFNWR0NpcmNsZUVsZW1lbnQ6OnNlbGZIYXNS
ZWxhdGl2ZUxlbmd0aHMoKSBjb25zdAogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHQ2ly
Y2xlRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0
eWxlKQogewotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdFbGxpcHNlPigqdGhp
cywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNW
R0VsbGlwc2U+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcAppbmRleCAxMWNiZWIxLi45NjFjZmQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcApAQCAtMTE1LDcgKzExNSw3
IEBAIHZvaWQgU1ZHQ2xpcFBhdGhFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRD
aGFuZ2UmIGNoYW5nZSkKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0NsaXBQYXRoRWxl
bWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQog
ewotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXI+KCp0
aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVy
U1ZHUmVzb3VyY2VDbGlwcGVyPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuY3BwCmluZGV4IDI2NDM1YzIuLjhjNTJhZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmNwcApAQCAtNTMsNyArNTMsNyBAQCBib29s
IFNWR0RlZnNFbGVtZW50Ojppc1ZhbGlkKCkgY29uc3QKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IFNWR0RlZnNFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJT
dHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR0hpZGRl
bkNvbnRhaW5lcj4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVS
ZW5kZXJlcjxSZW5kZXJTVkdIaWRkZW5Db250YWluZXI+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUp
KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50RXh0
ZW5zaW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmNw
cAppbmRleCA0YjQyODM4Li4zM2Q0ZWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRG9jdW1lbnRFeHRlbnNpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9j
dW1lbnRFeHRlbnNpb25zLmNwcApAQCAtMjY3LDcgKzI2Nyw3IEBAIHZvaWQgU1ZHRG9jdW1lbnRF
eHRlbnNpb25zOjptYXJrUGVuZGluZ1Jlc291cmNlc0ZvclJlbW92YWwoY29uc3QgQXRvbWljU3Ry
aW5nJiBpCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGVuZGluZ0VsZW1lbnRzPiBleGlzdGluZyA9
IG1fcGVuZGluZ1Jlc291cmNlcy50YWtlKGlkKTsKICAgICBpZiAoZXhpc3RpbmcgJiYgIWV4aXN0
aW5nLT5pc0VtcHR5KCkpCi0gICAgICAgIG1fcGVuZGluZ1Jlc291cmNlc0ZvclJlbW92YWwuYWRk
KGlkLCBzdGQ6Om1vdmUoZXhpc3RpbmcpKTsKKyAgICAgICAgbV9wZW5kaW5nUmVzb3VyY2VzRm9y
UmVtb3ZhbC5hZGQoaWQsIFdURjo6bW92ZShleGlzdGluZykpOwogfQogCiBFbGVtZW50KiBTVkdE
b2N1bWVudEV4dGVuc2lvbnM6OnJlbW92ZUVsZW1lbnRGcm9tUGVuZGluZ1Jlc291cmNlc0ZvclJl
bW92YWxNYXAoY29uc3QgQXRvbWljU3RyaW5nJiBpZCkKQEAgLTMxMSw3ICszMTEsNyBAQCB2b2lk
IFNWR0RvY3VtZW50RXh0ZW5zaW9uczo6YWRkRWxlbWVudFJlZmVyZW5jaW5nVGFyZ2V0KFNWR0Vs
ZW1lbnQqIHJlZmVyZW5jaW5nRQogCiAgICAgYXV0byBlbGVtZW50cyA9IHN0ZDo6bWFrZV91bmlx
dWU8SGFzaFNldDxTVkdFbGVtZW50Kj4+KCk7CiAgICAgZWxlbWVudHMtPmFkZChyZWZlcmVuY2lu
Z0VsZW1lbnQpOwotICAgIG1fZWxlbWVudERlcGVuZGVuY2llcy5zZXQocmVmZXJlbmNlZEVsZW1l
bnQsIHN0ZDo6bW92ZShlbGVtZW50cykpOworICAgIG1fZWxlbWVudERlcGVuZGVuY2llcy5zZXQo
cmVmZXJlbmNlZEVsZW1lbnQsIFdURjo6bW92ZShlbGVtZW50cykpOwogfQogCiB2b2lkIFNWR0Rv
Y3VtZW50RXh0ZW5zaW9uczo6cmVtb3ZlQWxsVGFyZ2V0UmVmZXJlbmNlc0ZvckVsZW1lbnQoU1ZH
RWxlbWVudCogcmVmZXJlbmNpbmdFbGVtZW50KQpAQCAtMzM0LDcgKzMzNCw3IEBAIHZvaWQgU1ZH
RG9jdW1lbnRFeHRlbnNpb25zOjpyZW1vdmVBbGxUYXJnZXRSZWZlcmVuY2VzRm9yRWxlbWVudChT
VkdFbGVtZW50KiByZWZlCiAKIHZvaWQgU1ZHRG9jdW1lbnRFeHRlbnNpb25zOjpyZWJ1aWxkRWxl
bWVudHMoKQogewotICAgIFZlY3RvcjxTVkdFbGVtZW50Kj4gc2hhZG93UmVidWlsZEVsZW1lbnRz
ID0gc3RkOjptb3ZlKG1fcmVidWlsZEVsZW1lbnRzKTsKKyAgICBWZWN0b3I8U1ZHRWxlbWVudCo+
IHNoYWRvd1JlYnVpbGRFbGVtZW50cyA9IFdURjo6bW92ZShtX3JlYnVpbGRFbGVtZW50cyk7CiAg
ICAgZm9yIChhdXRvKiBlbGVtZW50IDogc2hhZG93UmVidWlsZEVsZW1lbnRzKQogICAgICAgICBl
bGVtZW50LT5zdmdBdHRyaWJ1dGVDaGFuZ2VkKFhMaW5rTmFtZXM6OmhyZWZBdHRyKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwCmluZGV4IDA3YmRkY2QuLjk3OWE1
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcApAQCAtMTQ2LDcg
KzE0Niw3IEBAIGJvb2wgU1ZHRWxsaXBzZUVsZW1lbnQ6OnNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMo
KSBjb25zdAogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHRWxsaXBzZUVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKLSAgICBy
ZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHRWxsaXBzZT4oKnRoaXMsIHN0ZDo6bW92ZShz
dHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdFbGxpcHNlPigqdGhp
cywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJF
bGVtZW50LmNwcAppbmRleCA0ZWNiOGZjLi4yMjcyYzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZpbHRlckVsZW1lbnQuY3BwCkBAIC0xOTEsNyArMTkxLDcgQEAgdm9pZCBTVkdGaWx0ZXJFbGVt
ZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKIAogUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IFNWR0ZpbHRlckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVy
ZXI8UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAg
ICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI+KCp0aGlzLCBX
VEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogYm9vbCBTVkdGaWx0ZXJFbGVtZW50OjpjaGlsZFNob3Vs
ZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmIGNoaWxkKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVz
LmNwcAppbmRleCBlZTgxZmRjLi4yY2YwZGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcApAQCAt
MTQ1LDcgKzE0NSw3IEBAIHZvaWQgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVz
OjpzZXRTdGFuZGFyZEF0dHJpYnV0ZXMoRmlsdGVyRWZmZWN0KiBmCiAKIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKLSAgICByZXR1cm4g
Y3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmU+KCp0aGlzLCBz
dGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHUmVz
b3VyY2VGaWx0ZXJQcmltaXRpdmU+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogYm9v
bCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnJlbmRlcmVySXNOZWVkZWQo
Y29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZvbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVudC5j
cHAKaW5kZXggYTIwYTY1Ni4uMTI4YTFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZvbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1l
bnQuY3BwCkBAIC0xNzksNyArMTc5LDcgQEAgdm9pZCBTVkdLZXJuaW5nTWFwOjppbnNlcnQoY29u
c3QgU1ZHS2VybmluZ1BhaXImIGtlcm5pbmdQYWlyKQogICAgICAgICBlbHNlIHsKICAgICAgICAg
ICAgIGF1dG8gbmV3VmVjdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdLZXJuaW5nVmVjdG9yPigp
OwogICAgICAgICAgICAgbmV3VmVjdG9yLT5hcHBlbmQoc3ZnS2VybmluZyk7Ci0gICAgICAgICAg
ICB1bmljb2RlTWFwLmFkZCgqdUl0LCBzdGQ6Om1vdmUobmV3VmVjdG9yKSk7CisgICAgICAgICAg
ICB1bmljb2RlTWFwLmFkZCgqdUl0LCBXVEY6Om1vdmUobmV3VmVjdG9yKSk7CiAgICAgICAgIH0K
ICAgICB9CiAKQEAgLTE5MSw3ICsxOTEsNyBAQCB2b2lkIFNWR0tlcm5pbmdNYXA6Omluc2VydChj
b25zdCBTVkdLZXJuaW5nUGFpciYga2VybmluZ1BhaXIpCiAgICAgICAgIGVsc2UgewogICAgICAg
ICAgICAgYXV0byBuZXdWZWN0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0tlcm5pbmdWZWN0b3I+
KCk7CiAgICAgICAgICAgICBuZXdWZWN0b3ItPmFwcGVuZChzdmdLZXJuaW5nKTsKLSAgICAgICAg
ICAgIGdseXBoTWFwLmFkZCgqZ0l0LCBzdGQ6Om1vdmUobmV3VmVjdG9yKSk7CisgICAgICAgICAg
ICBnbHlwaE1hcC5hZGQoKmdJdCwgV1RGOjptb3ZlKG5ld1ZlY3RvcikpOwogICAgICAgICB9CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNw
cAppbmRleCA3MmI3ZDJhLi45OGY3YTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
b3JlaWduT2JqZWN0RWxlbWVudC5jcHAKQEAgLTEyNyw3ICsxMjcsNyBAQCB2b2lkIFNWR0ZvcmVp
Z25PYmplY3RFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJOYW1lKQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHRm9yZWlnbk9iamVjdEVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkK
IHsKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHRm9yZWlnbk9iamVjdD4oKnRo
aXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJT
VkdGb3JlaWduT2JqZWN0PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAKIGJvb2wgU1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9k
ZSYgY2hpbGQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcAppbmRleCBkY2UwMDg3
Li44MjljM2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAKQEAgLTk1LDkgKzk1LDkg
QEAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0dFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4KICAgICAvLyBzdWJ0cmVlIG1heSBiZSBoaWRkZW4g
LSB3ZSBvbmx5IHdhbnQgdGhlIHJlc291cmNlIHJlbmRlcmVycyB0byBleGlzdCBzbyB0aGV5IGNh
biBiZQogICAgIC8vIHJlZmVyZW5jZWQgZnJvbSBzb21ld2hlcmUgZWxzZS4KICAgICBpZiAoc3R5
bGUuZ2V0KCkuZGlzcGxheSgpID09IE5PTkUpCi0gICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJl
cjxSZW5kZXJTVkdIaWRkZW5Db250YWluZXI+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAg
ICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lcj4oKnRo
aXMsIFdURjo6bW92ZShzdHlsZSkpOwogCi0gICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRl
clNWR1RyYW5zZm9ybWFibGVDb250YWluZXI+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAg
ICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcj4o
KnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiBib29sIFNWR0dFbGVtZW50OjpyZW5kZXJl
cklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBo
aWNzRWxlbWVudC5jcHAKaW5kZXggM2M2MjQ5MC4uYTk0MzVkMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5jcHAKQEAgLTE3Myw3ICsxNzMsNyBAQCBGbG9hdFJlY3Qg
U1ZHR3JhcGhpY3NFbGVtZW50OjpnZXRCQm94KFN0eWxlVXBkYXRlU3RyYXRlZ3kgc3R5bGVVcGRh
dGVTdHJhdGVneSkKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdHcmFwaGljc0VsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKICAg
ICAvLyBCeSBkZWZhdWx0LCBhbnkgc3ViY2xhc3MgaXMgZXhwZWN0ZWQgdG8gZG8gcGF0aC1iYXNl
ZCBkcmF3aW5nCi0gICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1BhdGg+KCp0aGlz
LCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZH
UGF0aD4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiB2b2lkIFNWR0dyYXBoaWNzRWxl
bWVudDo6dG9DbGlwUGF0aChQYXRoJiBwYXRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVt
ZW50LmNwcAppbmRleCBkYTJlNTc0Li42ZTQzNjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1h
Z2VFbGVtZW50LmNwcApAQCAtMTgzLDcgKzE4Myw3IEBAIGJvb2wgU1ZHSW1hZ2VFbGVtZW50Ojpz
ZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3QKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IFNWR0ltYWdlRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5
bGU+IHN0eWxlKQogewotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdJbWFnZT4o
KnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5k
ZXJTVkdJbWFnZT4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiBib29sIFNWR0ltYWdl
RWxlbWVudDo6aGF2ZUxvYWRlZFJlcXVpcmVkUmVzb3VyY2VzKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAKaW5kZXggZTAwZmQ4Ni4uMjZkM2Qw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5j
cHAKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lkIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6c3Zn
QXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZQogCiBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIGNyZWF0
ZVJlbmRlcmVyPFJlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnQ+KCp0aGlzLCBzdGQ6Om1v
dmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHUmVzb3VyY2VM
aW5lYXJHcmFkaWVudD4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiBzdGF0aWMgdm9p
ZCBzZXRHcmFkaWVudEF0dHJpYnV0ZXMoU1ZHR3JhZGllbnRFbGVtZW50JiBlbGVtZW50LCBMaW5l
YXJHcmFkaWVudEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMsIGJvb2wgaXNMaW5lYXIgPSB0cnVlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwCmluZGV4IDc4NmRmNjAuLjczZjQ5
ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKQEAgLTIxNSw3ICsy
MTUsNyBAQCB2b2lkIFNWR01hcmtlckVsZW1lbnQ6OnNldE9yaWVudFRvQW5nbGUoY29uc3QgU1ZH
QW5nbGUmIGFuZ2xlKQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHTWFya2VyRWxlbWVu
dDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewot
ICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdSZXNvdXJjZU1hcmtlcj4oKnRoaXMs
IHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdS
ZXNvdXJjZU1hcmtlcj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiBib29sIFNWR01h
cmtlckVsZW1lbnQ6OnNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNYXNrRWxlbWVudC5jcHAKaW5kZXggMWIyYzFlZi4uNjZhNzJiNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCkBAIC0xNTgsNyArMTU4LDcgQEAgdm9pZCBTVkdNYXNr
RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAKIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdNYXNrRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBjcmVhdGVSZW5k
ZXJlcjxSZW5kZXJTVkdSZXNvdXJjZU1hc2tlcj4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOwor
ICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdSZXNvdXJjZU1hc2tlcj4oKnRoaXMs
IFdURjo6bW92ZShzdHlsZSkpOwogfQogCiBib29sIFNWR01hc2tFbGVtZW50OjpzZWxmSGFzUmVs
YXRpdmVMZW5ndGhzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCmlu
ZGV4IDllNDFmMzIuLmZkZjlhZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNw
cApAQCAtNDA2LDcgKzQwNiw3IEBAIEZsb2F0UmVjdCBTVkdQYXRoRWxlbWVudDo6Z2V0QkJveChT
dHlsZVVwZGF0ZVN0cmF0ZWd5IHN0eWxlVXBkYXRlU3RyYXRlZ3kpCiBSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gU1ZHUGF0aEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJl
bmRlclN0eWxlPiBzdHlsZSkKIHsKICAgICAvLyBCeSBkZWZhdWx0LCBhbnkgc3ViY2xhc3MgaXMg
ZXhwZWN0ZWQgdG8gZG8gcGF0aC1iYXNlZCBkcmF3aW5nCi0gICAgcmV0dXJuIGNyZWF0ZVJlbmRl
cmVyPFJlbmRlclNWR1BhdGg+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4g
Y3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHUGF0aD4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwog
fQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAppbmRleCA0ZThm
Mzk2Li4yMGViZTI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5F
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3Bw
CkBAIC0xODMsNyArMTgzLDcgQEAgdm9pZCBTVkdQYXR0ZXJuRWxlbWVudDo6Y2hpbGRyZW5DaGFu
Z2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBTVkdQYXR0ZXJuRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVy
U3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdSZXNv
dXJjZVBhdHRlcm4+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRl
UmVuZGVyZXI8UmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuPigqdGhpcywgV1RGOjptb3ZlKHN0eWxl
KSk7CiB9CiAKIHN0YXRpYyB2b2lkIHNldFBhdHRlcm5BdHRyaWJ1dGVzKGNvbnN0IFNWR1BhdHRl
cm5FbGVtZW50JiBlbGVtZW50LCBQYXR0ZXJuQXR0cmlidXRlcyYgYXR0cmlidXRlcykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAKaW5kZXggY2Uy
NjRlNy4uMmFlOGQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdy
YWRpZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRp
ZW50RWxlbWVudC5jcHAKQEAgLTEzMSw3ICsxMzEsNyBAQCB2b2lkIFNWR1JhZGlhbEdyYWRpZW50
RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAg
cmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1Jlc291cmNlUmFkaWFsR3JhZGllbnQ+KCp0
aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVy
U1ZHUmVzb3VyY2VSYWRpYWxHcmFkaWVudD4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQog
CiBzdGF0aWMgdm9pZCBzZXRHcmFkaWVudEF0dHJpYnV0ZXMoU1ZHR3JhZGllbnRFbGVtZW50JiBl
bGVtZW50LCBSYWRpYWxHcmFkaWVudEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMsIGJvb2wgaXNSYWRp
YWwgPSB0cnVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAKaW5kZXggNThmN2Vl
MS4uNmQyMzI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwCkBAIC0xNjEs
NyArMTYxLDcgQEAgYm9vbCBTVkdSZWN0RWxlbWVudDo6c2VsZkhhc1JlbGF0aXZlTGVuZ3Rocygp
IGNvbnN0CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdSZWN0RWxlbWVudDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJldHVy
biBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdSZWN0PigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7
CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1JlY3Q+KCp0aGlzLCBXVEY6Om1v
dmUoc3R5bGUpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NW
R0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCmluZGV4
IGE3NjA3NjQuLjYyNTYxNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKQEAg
LTUwNCw5ICs1MDQsOSBAQCBib29sIFNWR1NWR0VsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29u
c3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1NWR0Vs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkK
IHsKICAgICBpZiAoaXNPdXRlcm1vc3RTVkdTVkdFbGVtZW50KCkpCi0gICAgICAgIHJldHVybiBj
cmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdSb290PigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7Cisg
ICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdSb290PigqdGhpcywgV1RGOjpt
b3ZlKHN0eWxlKSk7CiAKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHVmlld3Bv
cnRDb250YWluZXI+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRl
UmVuZGVyZXI8UmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXI+KCp0aGlzLCBXVEY6Om1vdmUoc3R5
bGUpKTsKIH0KIAogTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBTVkdTVkdFbGVt
ZW50OjppbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYgcm9vdFBhcmVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU3RvcEVsZW1lbnQuY3BwCmluZGV4IGQ0YmFmZTAuLjE0MDVkNGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNwcApAQCAtOTksNyArOTksNyBAQCB2b2lkIFNWR1N0b3BF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1l
KQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHU3RvcEVsZW1lbnQ6OmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKLSAgICByZXR1cm4gY3Jl
YXRlUmVuZGVyZXI8UmVuZGVyU1ZHR3JhZGllbnRTdG9wPigqdGhpcywgc3RkOjptb3ZlKHN0eWxl
KSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR0dyYWRpZW50U3RvcD4oKnRo
aXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiBib29sIFNWR1N0b3BFbGVtZW50OjpyZW5kZXJl
cklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hF
bGVtZW50LmNwcAppbmRleCBkNDVkMjk0Li5mYzNlMmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1N3aXRjaEVsZW1lbnQuY3BwCkBAIC02Miw3ICs2Miw3IEBAIGJvb2wgU1ZHU3dpdGNoRWxlbWVu
dDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJiBjaGlsZCkgY29uc3QKIAog
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1N3aXRjaEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKLSAgICByZXR1cm4gY3JlYXRl
UmVuZGVyZXI8UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcj4oKnRoaXMsIHN0ZDo6bW92
ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdUcmFuc2Zvcm1h
YmxlQ29udGFpbmVyPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmNwcAppbmRleCBlOTcyMzU5Li44MTA5MDEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuY3BwCkBAIC0xMDIsNyArMTAyLDcgQEAg
Ym9vbCBTVkdTeW1ib2xFbGVtZW50OjpzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3QKIAog
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1N5bWJvbEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKLSAgICByZXR1cm4gY3JlYXRl
UmVuZGVyZXI8UmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyPigqdGhpcywgc3RkOjptb3ZlKHN0eWxl
KSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lcj4o
KnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZF
bGVtZW50LmNwcAppbmRleCA0N2JkYjgxLi5mYWIwMjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
UmVmRWxlbWVudC5jcHAKQEAgLTIyMCw3ICsyMjAsNyBAQCB2b2lkIFNWR1RSZWZFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogCiBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHVFJlZkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVy
ZXI8UmVuZGVyU1ZHSW5saW5lPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJu
IGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR0lubGluZT4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkp
OwogfQogCiBib29sIFNWR1RSZWZFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNv
bnN0IE5vZGUmIGNoaWxkKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RTcGFuRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFNwYW5FbGVtZW50LmNw
cAppbmRleCBjNTlmNzIzLi5kMzQ0ZjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVFNwYW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFNwYW5FbGVt
ZW50LmNwcApAQCAtNDAsNyArNDAsNyBAQCBQYXNzUmVmUHRyPFNWR1RTcGFuRWxlbWVudD4gU1ZH
VFNwYW5FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZQogCiBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHVFNwYW5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVJlbmRl
cmVyPFJlbmRlclNWR1RTcGFuPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJu
IGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1RTcGFuPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7
CiB9CiAKIGJvb2wgU1ZHVFNwYW5FbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNv
bnN0IE5vZGUmIGNoaWxkKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RleHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5jcHAK
aW5kZXggOWIwYzAzNy4uZTA5ZTJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RleHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQu
Y3BwCkBAIC02OCw3ICs2OCw3IEBAIEFmZmluZVRyYW5zZm9ybSBTVkdUZXh0RWxlbWVudDo6YW5p
bWF0ZWRMb2NhbFRyYW5zZm9ybSgpIGNvbnN0CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBT
VkdUZXh0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+
IHN0eWxlKQogewotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdUZXh0PigqdGhp
cywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNW
R1RleHQ+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KIAogYm9vbCBTVkdUZXh0RWxlbWVu
dDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJiBjaGlsZCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHAKaW5kZXggMDhlNjZiMC4uNzY2
OTY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHAKQEAgLTEy
OCw3ICsxMjgsNyBAQCB2b2lkIFNWR1RleHRQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IFNWR1RleHRQYXRoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVu
ZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdU
ZXh0UGF0aD4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5k
ZXJlcjxSZW5kZXJTVkdUZXh0UGF0aD4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQogCiBi
b29sIFNWR1RleHRQYXRoRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBO
b2RlJiBjaGlsZCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAppbmRleCBl
ZmY4MGU4Li5mZjJiOTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCkBAIC01
MjUsNyArNTI1LDcgQEAgdm9pZCBTVkdVc2VFbGVtZW50OjpidWlsZFNoYWRvd0FuZEluc3RhbmNl
VHJlZShTVkdFbGVtZW50KiB0YXJnZXQpCiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdV
c2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5
bGUpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1RyYW5zZm9ybWFibGVD
b250YWluZXI+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVu
ZGVyZXI8UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcj4oKnRoaXMsIFdURjo6bW92ZShz
dHlsZSkpOwogfQogCiBzdGF0aWMgYm9vbCBpc0RpcmVjdFJlZmVyZW5jZShjb25zdCBTVkdFbGVt
ZW50JiBlbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NW
R0ltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKaW5k
ZXggNGMwNTlkOS4uMDQxMDJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBo
aWNzL1NWR0ltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2UuY3BwCkBAIC01NSw3ICs1NSw3IEBAIFNWR0ltYWdlOjp+U1ZHSW1hZ2UoKQogewogICAgIGlm
IChtX3BhZ2UpIHsKICAgICAgICAgLy8gU3RvcmUgbV9wYWdlIGluIGEgbG9jYWwgdmFyaWFibGUs
IGNsZWFyaW5nIG1fcGFnZSwgc28gdGhhdCBTVkdJbWFnZUNocm9tZUNsaWVudCBrbm93cyB3ZSdy
ZSBkZXN0cnVjdGVkLgotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFnZT4gY3VycmVudFBhZ2Ug
PSBzdGQ6Om1vdmUobV9wYWdlKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFBhZ2U+IGN1cnJl
bnRQYWdlID0gV1RGOjptb3ZlKG1fcGFnZSk7CiAgICAgICAgIGN1cnJlbnRQYWdlLT5tYWluRnJh
bWUoKS5sb2FkZXIoKS5mcmFtZURldGFjaGVkKCk7IC8vIEJyZWFrIGJvdGggdGhlIGxvYWRlciBh
bmQgdmlldyByZWZlcmVuY2VzIHRvIHRoZSBmcmFtZQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQXR0cmlidXRlVG9Qcm9wZXJ0eU1hcC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBdHRyaWJ1dGVUb1Byb3BlcnR5TWFw
LmNwcAppbmRleCA5Zjc3NjhlLi43YzRmYzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdBdHRyaWJ1dGVUb1Byb3BlcnR5TWFwLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBdHRyaWJ1dGVUb1Byb3BlcnR5TWFwLmNwcApAQCAt
NTMsNyArNTMsNyBAQCB2b2lkIFNWR0F0dHJpYnV0ZVRvUHJvcGVydHlNYXA6OmFkZFByb3BlcnR5
KGNvbnN0IFNWR1Byb3BlcnR5SW5mbyogaW5mbykKICAgICAvLyBGSVhNRTogVGhpcyBkb2VzIGEg
c2Vjb25kIGhhc2ggdGFibGUgbG9va3VwLCBidXQgd2l0aCBIYXNoTWFwOjphZGQgd2UgY291bGQg
aW5zdGVhZCBkbyBvbmx5IG9uZS4KICAgICBhdXRvIHZlY3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8
UHJvcGVydGllc1ZlY3Rvcj4oKTsKICAgICB2ZWN0b3ItPmFwcGVuZChpbmZvKTsKLSAgICBtX21h
cC5zZXQoaW5mby0+YXR0cmlidXRlTmFtZSwgc3RkOjptb3ZlKHZlY3RvcikpOworICAgIG1fbWFw
LnNldChpbmZvLT5hdHRyaWJ1dGVOYW1lLCBXVEY6Om1vdmUodmVjdG9yKSk7CiB9CiAKIHZvaWQg
U1ZHQXR0cmlidXRlVG9Qcm9wZXJ0eU1hcDo6YW5pbWF0ZWRQcm9wZXJ0aWVzRm9yQXR0cmlidXRl
KFNWR0VsZW1lbnQqIG93bmVyVHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFt
ZSwgVmVjdG9yPFJlZlB0cjxTVkdBbmltYXRlZFByb3BlcnR5Pj4mIHByb3BlcnRpZXMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggZDBlNWRmOS4uNDBhMmNjNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTQ4NCw3ICsxNDg0LDcgQEAgUGFzc1Jl
ZlB0cjxET01XaW5kb3c+IEludGVybmFsczo6b3BlbkR1bW15SW5zcGVjdG9yRnJvbnRlbmQoY29u
c3QgU3RyaW5nJiB1cmwpCiAKICAgICBhdXRvIGZyb250ZW5kQ2xpZW50ID0gc3RkOjptYWtlX3Vu
aXF1ZTxJbnNwZWN0b3JGcm9udGVuZENsaWVudER1bW15PigmcGFnZS0+aW5zcGVjdG9yQ29udHJv
bGxlcigpLCBmcm9udGVuZFBhZ2UpOwogCi0gICAgZnJvbnRlbmRQYWdlLT5pbnNwZWN0b3JDb250
cm9sbGVyKCkuc2V0SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQoc3RkOjptb3ZlKGZyb250ZW5kQ2xp
ZW50KSk7CisgICAgZnJvbnRlbmRQYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuc2V0SW5zcGVj
dG9yRnJvbnRlbmRDbGllbnQoV1RGOjptb3ZlKGZyb250ZW5kQ2xpZW50KSk7CiAKICAgICBtX2Zy
b250ZW5kQ2hhbm5lbCA9IGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWxEdW1t
eShmcm9udGVuZFBhZ2UpKTsKIApAQCAtMTY4Niw3ICsxNjg2LDcgQEAgdm9pZCBJbnRlcm5hbHM6
Omluc2VydEF1dGhvckNTUyhjb25zdCBTdHJpbmcmIGNzcywgRXhjZXB0aW9uQ29kZSYgZWMpIGNv
bnN0CiAgICAgYXV0byBwYXJzZWRTaGVldCA9IFN0eWxlU2hlZXRDb250ZW50czo6Y3JlYXRlKCpk
b2N1bWVudCk7CiAgICAgcGFyc2VkU2hlZXQuZ2V0KCkuc2V0SXNVc2VyU3R5bGVTaGVldChmYWxz
ZSk7CiAgICAgcGFyc2VkU2hlZXQuZ2V0KCkucGFyc2VTdHJpbmcoY3NzKTsKLSAgICBkb2N1bWVu
dC0+c3R5bGVTaGVldENvbGxlY3Rpb24oKS5hZGRBdXRob3JTaGVldChzdGQ6Om1vdmUocGFyc2Vk
U2hlZXQpKTsKKyAgICBkb2N1bWVudC0+c3R5bGVTaGVldENvbGxlY3Rpb24oKS5hZGRBdXRob3JT
aGVldChXVEY6Om1vdmUocGFyc2VkU2hlZXQpKTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6Omluc2Vy
dFVzZXJDU1MoY29uc3QgU3RyaW5nJiBjc3MsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdApAQCAt
MTcwMCw3ICsxNzAwLDcgQEAgdm9pZCBJbnRlcm5hbHM6Omluc2VydFVzZXJDU1MoY29uc3QgU3Ry
aW5nJiBjc3MsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAgIGF1dG8gcGFyc2VkU2hlZXQg
PSBTdHlsZVNoZWV0Q29udGVudHM6OmNyZWF0ZSgqZG9jdW1lbnQpOwogICAgIHBhcnNlZFNoZWV0
LmdldCgpLnNldElzVXNlclN0eWxlU2hlZXQodHJ1ZSk7CiAgICAgcGFyc2VkU2hlZXQuZ2V0KCku
cGFyc2VTdHJpbmcoY3NzKTsKLSAgICBkb2N1bWVudC0+c3R5bGVTaGVldENvbGxlY3Rpb24oKS5h
ZGRVc2VyU2hlZXQoc3RkOjptb3ZlKHBhcnNlZFNoZWV0KSk7CisgICAgZG9jdW1lbnQtPnN0eWxl
U2hlZXRDb2xsZWN0aW9uKCkuYWRkVXNlclNoZWV0KFdURjo6bW92ZShwYXJzZWRTaGVldCkpOwog
fQogCiBTdHJpbmcgSW50ZXJuYWxzOjpjb3VudGVyVmFsdWUoRWxlbWVudCogZWxlbWVudCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZS5jcHAKaW5kZXggYWJhNWMwMC4uZmZlNDE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTQxLDEzICs0MSwx
MyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFBhc3NSZWZQdHI8RGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGU+IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGUoY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBzdGQ6OnVuaXF1ZV9wdHI8R3JvdXBTZXR0aW5n
cz4gc2V0dGluZ3MsIERlZGljYXRlZFdvcmtlclRocmVhZCYgdGhyZWFkLCBjb25zdCBTdHJpbmcm
IGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBl
IGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRv
cE9yaWdpbikKIHsKLSAgICBSZWZQdHI8RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU+IGNvbnRl
eHQgPSBhZG9wdFJlZihuZXcgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUodXJsLCB1c2VyQWdl
bnQsIHN0ZDo6bW92ZShzZXR0aW5ncyksIHRocmVhZCwgdG9wT3JpZ2luKSk7CisgICAgUmVmUHRy
PERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPiBjb250ZXh0ID0gYWRvcHRSZWYobmV3IERlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlKHVybCwgdXNlckFnZW50LCBXVEY6Om1vdmUoc2V0dGluZ3Mp
LCB0aHJlYWQsIHRvcE9yaWdpbikpOwogICAgIGNvbnRleHQtPmFwcGx5Q29udGVudFNlY3VyaXR5
UG9saWN5RnJvbVN0cmluZyhjb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBv
bGljeVR5cGUpOwogICAgIHJldHVybiBjb250ZXh0LnJlbGVhc2UoKTsKIH0KIAogRGVkaWNhdGVk
V29ya2VyR2xvYmFsU2NvcGU6OkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGlu
Z3M+IHNldHRpbmdzLCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmIHRocmVhZCwgUGFzc1JlZlB0cjxT
ZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKQotICAgIDogV29ya2VyR2xvYmFsU2NvcGUodXJsLCB1
c2VyQWdlbnQsIHN0ZDo6bW92ZShzZXR0aW5ncyksIHRocmVhZCwgdG9wT3JpZ2luKQorICAgIDog
V29ya2VyR2xvYmFsU2NvcGUodXJsLCB1c2VyQWdlbnQsIFdURjo6bW92ZShzZXR0aW5ncyksIHRo
cmVhZCwgdG9wT3JpZ2luKQogewogfQogCkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgRGVkaWNhdGVk
V29ya2VyR2xvYmFsU2NvcGU6OnBvc3RNZXNzYWdlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBtCiAgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiBj
aGFubmVscyA9IE1lc3NhZ2VQb3J0OjpkaXNlbnRhbmdsZVBvcnRzKHBvcnRzLCBlYyk7CiAgICAg
aWYgKGVjKQogICAgICAgICByZXR1cm47Ci0gICAgdGhyZWFkKCkud29ya2VyT2JqZWN0UHJveHko
KS5wb3N0TWVzc2FnZVRvV29ya2VyT2JqZWN0KG1lc3NhZ2UsIHN0ZDo6bW92ZShjaGFubmVscykp
OworICAgIHRocmVhZCgpLndvcmtlck9iamVjdFByb3h5KCkucG9zdE1lc3NhZ2VUb1dvcmtlck9i
amVjdChtZXNzYWdlLCBXVEY6Om1vdmUoY2hhbm5lbHMpKTsKIH0KIAogdm9pZCBEZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZTo6aW1wb3J0U2NyaXB0cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgdXJs
cywgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGlj
YXRlZFdvcmtlclRocmVhZC5jcHAKaW5kZXggZWRmYWIxYy4uNjk5N2ExZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcApAQCAtNTUsNyAr
NTUsNyBAQCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6On5EZWRpY2F0ZWRXb3JrZXJUaHJlYWQoKQog
CiBQYXNzUmVmUHRyPFdvcmtlckdsb2JhbFNjb3BlPiBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNy
ZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJB
Z2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+IHNldHRpbmdzLCBjb25zdCBTdHJp
bmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJU
eXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IHRvcE9yaWdpbikKIHsKLSAgICByZXR1cm4gRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OmNy
ZWF0ZSh1cmwsIHVzZXJBZ2VudCwgc3RkOjptb3ZlKHNldHRpbmdzKSwgKnRoaXMsIGNvbnRlbnRT
ZWN1cml0eVBvbGljeSwgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSwgdG9wT3JpZ2luKTsKKyAg
ICByZXR1cm4gRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZSh1cmwsIHVzZXJBZ2Vu
dCwgV1RGOjptb3ZlKHNldHRpbmdzKSwgKnRoaXMsIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgY29u
dGVudFNlY3VyaXR5UG9saWN5VHlwZSwgdG9wT3JpZ2luKTsKIH0KIAogdm9pZCBEZWRpY2F0ZWRX
b3JrZXJUaHJlYWQ6OnJ1bkV2ZW50TG9vcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCmluZGV4IDFkMDk4ZDgu
LjYyMDExNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJl
ZFdvcmtlclJlcG9zaXRvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVs
dFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCkBAIC0xNTMsNyArMTUzLDcgQEAgdm9pZCBTaGFy
ZWRXb3JrZXJQcm94eTo6cG9zdFRhc2tUb0xvYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpU
YXNrIHRhc2spCiAgICAgLy8gSnVzdCBwaWNrIGFuIGFyYml0cmFyeSBhY3RpdmUgZG9jdW1lbnQg
ZnJvbSB0aGUgSGFzaFNldCBhbmQgcGFzcyBsb2FkIHJlcXVlc3RzIHRvIGl0LgogICAgIC8vIEZJ
WE1FOiBEbyB3ZSBuZWVkIHRvIGRlYWwgd2l0aCB0aGUgY2FzZSB3aGVyZSB0aGUgdXNlciBjbG9z
ZXMgdGhlIGRvY3VtZW50IG1pZC1sb2FkLCB2aWEgYSBzaGFkb3cgZG9jdW1lbnQgb3Igc29tZSBv
dGhlciBzb2x1dGlvbj8KICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSAqKG1fd29ya2VyRG9jdW1l
bnRzLmJlZ2luKCkpOwotICAgIGRvY3VtZW50LT5wb3N0VGFzayhzdGQ6Om1vdmUodGFzaykpOwor
ICAgIGRvY3VtZW50LT5wb3N0VGFzayhXVEY6Om1vdmUodGFzaykpOwogfQogCiBib29sIFNoYXJl
ZFdvcmtlclByb3h5Ojpwb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3BlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ6OlRhc2sgdGFzaywgY29uc3QgU3RyaW5nJiBtb2RlKQpAQCAtMTYxLDcg
KzE2MSw3IEBAIGJvb2wgU2hhcmVkV29ya2VyUHJveHk6OnBvc3RUYXNrRm9yTW9kZVRvV29ya2Vy
R2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4CiAgICAgaWYgKGlzQ2xvc2luZygpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgQVNTRVJUKG1fdGhyZWFkKTsKLSAgICBtX3RocmVh
ZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShzdGQ6Om1vdmUodGFzayksIG1vZGUpOworICAg
IG1fdGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFdURjo6bW92ZSh0YXNrKSwgbW9k
ZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTI4OCw3ICsyODgsNyBAQCBwcml2YXRlOgog
CiBTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXI6OlNoYXJlZFdvcmtlclNjcmlwdExvYWRlcihQYXNz
UmVmUHRyPFNoYXJlZFdvcmtlcj4gd29ya2VyLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRD
aGFubmVsPiBwb3J0LCBQYXNzUmVmUHRyPFNoYXJlZFdvcmtlclByb3h5PiBwcm94eSkKICAgICA6
IG1fd29ya2VyKHdvcmtlcikKLSAgICAsIG1fcG9ydChzdGQ6Om1vdmUocG9ydCkpCisgICAgLCBt
X3BvcnQoV1RGOjptb3ZlKHBvcnQpKQogICAgICwgbV9wcm94eShwcm94eSkKIHsKIH0KQEAgLTMy
MCw3ICszMjAsNyBAQCB2b2lkIFNoYXJlZFdvcmtlclNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNo
ZWQoKQogICAgIGVsc2UgewogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnNjcmlw
dEltcG9ydGVkKG1fd29ya2VyLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fc2NyaXB0TG9h
ZGVyLT5pZGVudGlmaWVyKCksIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSk7CiAgICAgICAgIERl
ZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5OjppbnN0YW5jZSgpLndvcmtlclNjcmlwdExvYWRl
ZCgqbV9wcm94eSwgbV93b3JrZXItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXNlckFnZW50
KG1fc2NyaXB0TG9hZGVyLT51cmwoKSksCi0gICAgICAgICAgICBtX3NjcmlwdExvYWRlci0+c2Ny
aXB0KCksIHN0ZDo6bW92ZShtX3BvcnQpLAorICAgICAgICAgICAgbV9zY3JpcHRMb2FkZXItPnNj
cmlwdCgpLCBXVEY6Om1vdmUobV9wb3J0KSwKICAgICAgICAgICAgIG1fd29ya2VyLT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5kZXByZWNhdGVkSGVh
ZGVyKCksCiAgICAgICAgICAgICBtX3dvcmtlci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5j
b250ZW50U2VjdXJpdHlQb2xpY3koKS0+ZGVwcmVjYXRlZEhlYWRlclR5cGUoKSk7CiAgICAgfQpA
QCAtNDA3LDcgKzQwNyw3IEBAIHZvaWQgRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnk6OmNv
bm5lY3RUb1dvcmtlcihQYXNzUmVmUHRyPFNoYXJlZFdvcmtlcj4gd29yCiAgICAgaWYgKHByb3h5
LT50aHJlYWQoKSkKICAgICAgICAgcHJveHktPnRocmVhZCgpLT5ydW5Mb29wKCkucG9zdFRhc2so
U2hhcmVkV29ya2VyQ29ubmVjdFRhc2socG9ydC5yZWxlYXNlKCkpKTsKICAgICBlbHNlIHsKLSAg
ICAgICAgUmVmUHRyPFNoYXJlZFdvcmtlclNjcmlwdExvYWRlcj4gbG9hZGVyID0gYWRvcHRSZWYo
bmV3IFNoYXJlZFdvcmtlclNjcmlwdExvYWRlcih3b3JrZXIsIHN0ZDo6bW92ZShwb3J0KSwgcHJv
eHkucmVsZWFzZSgpKSk7CisgICAgICAgIFJlZlB0cjxTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXI+
IGxvYWRlciA9IGFkb3B0UmVmKG5ldyBTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXIod29ya2VyLCBX
VEY6Om1vdmUocG9ydCksIHByb3h5LnJlbGVhc2UoKSkpOwogICAgICAgICBsb2FkZXItPmxvYWQo
dXJsKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJl
ZFdvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlci5jcHAKaW5k
ZXggOGViMzVkMi4uYmFiZDdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9T
aGFyZWRXb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2Vy
LmNwcApAQCAtNzcsNyArNzcsNyBAQCBQYXNzUmVmUHRyPFNoYXJlZFdvcmtlcj4gU2hhcmVkV29y
a2VyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgYwogICAgICAgICBy
ZXR1cm4gMDsKICAgICB9CiAKLSAgICBTaGFyZWRXb3JrZXJSZXBvc2l0b3J5Ojpjb25uZWN0KHdv
cmtlci5nZXQoKSwgc3RkOjptb3ZlKHJlbW90ZVBvcnQpLCBzY3JpcHRVUkwsIG5hbWUsIGVjKTsK
KyAgICBTaGFyZWRXb3JrZXJSZXBvc2l0b3J5Ojpjb25uZWN0KHdvcmtlci5nZXQoKSwgV1RGOjpt
b3ZlKHJlbW90ZVBvcnQpLCBzY3JpcHRVUkwsIG5hbWUsIGVjKTsKIAogICAgIHJldHVybiB3b3Jr
ZXIucmVsZWFzZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFy
ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdv
cmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCBkYjBiNGEyLi5jZDhhNzhkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtNTQs
MTMgKzU0LDEzIEBAIFBhc3NSZWZQdHI8TWVzc2FnZUV2ZW50PiBjcmVhdGVDb25uZWN0RXZlbnQo
UGFzc1JlZlB0cjxNZXNzYWdlUG9ydD4gcHJwUG9ydCkKIC8vIHN0YXRpYwogUGFzc1JlZlB0cjxT
aGFyZWRXb3JrZXJHbG9iYWxTY29wZT4gU2hhcmVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZShj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+IHNldHRpbmdzLCBTaGFyZWRXb3JrZXJU
aHJlYWQmIHRocmVhZCwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRl
bnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKQog
ewotICAgIFJlZlB0cjxTaGFyZWRXb3JrZXJHbG9iYWxTY29wZT4gY29udGV4dCA9IGFkb3B0UmVm
KG5ldyBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZShuYW1lLCB1cmwsIHVzZXJBZ2VudCwgc3RkOjpt
b3ZlKHNldHRpbmdzKSwgdGhyZWFkKSk7CisgICAgUmVmUHRyPFNoYXJlZFdvcmtlckdsb2JhbFNj
b3BlPiBjb250ZXh0ID0gYWRvcHRSZWYobmV3IFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlKG5hbWUs
IHVybCwgdXNlckFnZW50LCBXVEY6Om1vdmUoc2V0dGluZ3MpLCB0aHJlYWQpKTsKICAgICBjb250
ZXh0LT5hcHBseUNvbnRlbnRTZWN1cml0eVBvbGljeUZyb21TdHJpbmcoY29udGVudFNlY3VyaXR5
UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKTsKICAgICByZXR1cm4gY29udGV4dC5y
ZWxlYXNlKCk7CiB9CiAKIFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlOjpTaGFyZWRXb3JrZXJHbG9i
YWxTY29wZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+IHNldHRpbmdzLCBTaGFy
ZWRXb3JrZXJUaHJlYWQmIHRocmVhZCkKLSAgICA6IFdvcmtlckdsb2JhbFNjb3BlKHVybCwgdXNl
ckFnZW50LCBzdGQ6Om1vdmUoc2V0dGluZ3MpLCB0aHJlYWQsIDApCisgICAgOiBXb3JrZXJHbG9i
YWxTY29wZSh1cmwsIHVzZXJBZ2VudCwgV1RGOjptb3ZlKHNldHRpbmdzKSwgdGhyZWFkLCAwKQog
ICAgICwgbV9uYW1lKG5hbWUpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1NoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9T
aGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAppbmRleCA1NzFjOWM3Li5hMTg3NTI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKQEAg
LTQzLDcgKzQzLDcgQEAgYm9vbCBTaGFyZWRXb3JrZXJSZXBvc2l0b3J5Ojppc0F2YWlsYWJsZSgp
CiAKIHZvaWQgU2hhcmVkV29ya2VyUmVwb3NpdG9yeTo6Y29ubmVjdChQYXNzUmVmUHRyPFNoYXJl
ZFdvcmtlcj4gd29ya2VyLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsPiBwb3J0
LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKLSAgICBEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeTo6aW5zdGFuY2UoKS5jb25uZWN0
VG9Xb3JrZXIod29ya2VyLCBzdGQ6Om1vdmUocG9ydCksIHVybCwgbmFtZSwgZWMpOworICAgIERl
ZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5OjppbnN0YW5jZSgpLmNvbm5lY3RUb1dvcmtlcih3
b3JrZXIsIFdURjo6bW92ZShwb3J0KSwgdXJsLCBuYW1lLCBlYyk7CiB9CiAKIHZvaWQgU2hhcmVk
V29ya2VyUmVwb3NpdG9yeTo6ZG9jdW1lbnREZXRhY2hlZChEb2N1bWVudCogZG9jdW1lbnQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlclRocmVhZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlclRocmVhZC5jcHAKaW5kZXggZmRh
NzBjZC4uNjU1NzFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRX
b3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2Vy
VGhyZWFkLmNwcApAQCAtNTUsNyArNTUsNyBAQCBTaGFyZWRXb3JrZXJUaHJlYWQ6On5TaGFyZWRX
b3JrZXJUaHJlYWQoKQogCiBQYXNzUmVmUHRyPFdvcmtlckdsb2JhbFNjb3BlPiBTaGFyZWRXb3Jr
ZXJUaHJlYWQ6OmNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBT
dHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+IHNldHRpbmdz
LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9s
aWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIFBhc3NSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+KQogewotICAgIHJldHVybiBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZTo6Y3Jl
YXRlKG1fbmFtZSwgdXJsLCB1c2VyQWdlbnQsIHN0ZDo6bW92ZShzZXR0aW5ncyksICp0aGlzLCBj
b250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpOworICAgIHJl
dHVybiBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZTo6Y3JlYXRlKG1fbmFtZSwgdXJsLCB1c2VyQWdl
bnQsIFdURjo6bW92ZShzZXR0aW5ncyksICp0aGlzLCBjb250ZW50U2VjdXJpdHlQb2xpY3ksIGNv
bnRlbnRTZWN1cml0eVBvbGljeVR5cGUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlci5jcHAKaW5kZXggODI5YzZjZS4uMTNiZDZkNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyLmNwcApAQCAtMTE4LDcgKzExOCw3IEBAIHZvaWQgV29ya2VyOjpwb3N0
TWVzc2FnZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSwgY29uc3Qg
TWVzc2FnCiAgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiBjaGFu
bmVscyA9IE1lc3NhZ2VQb3J0OjpkaXNlbnRhbmdsZVBvcnRzKHBvcnRzLCBlYyk7CiAgICAgaWYg
KGVjKQogICAgICAgICByZXR1cm47Ci0gICAgbV9jb250ZXh0UHJveHktPnBvc3RNZXNzYWdlVG9X
b3JrZXJHbG9iYWxTY29wZShtZXNzYWdlLCBzdGQ6Om1vdmUoY2hhbm5lbHMpKTsKKyAgICBtX2Nv
bnRleHRQcm94eS0+cG9zdE1lc3NhZ2VUb1dvcmtlckdsb2JhbFNjb3BlKG1lc3NhZ2UsIFdURjo6
bW92ZShjaGFubmVscykpOwogfQogCiB2b2lkIFdvcmtlcjo6dGVybWluYXRlKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggMWM2MTBjYS4uZGUx
MjE0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29w
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAK
QEAgLTY2LDcgKzY2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogV29ya2VyR2xvYmFsU2NvcGU6
Oldvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+IHNldHRpbmdzLCBXb3JrZXJUaHJlYWQm
IHRocmVhZCwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKQogICAgIDogbV91
cmwodXJsKQogICAgICwgbV91c2VyQWdlbnQodXNlckFnZW50KQotICAgICwgbV9ncm91cFNldHRp
bmdzKHN0ZDo6bW92ZShzZXR0aW5ncykpCisgICAgLCBtX2dyb3VwU2V0dGluZ3MoV1RGOjptb3Zl
KHNldHRpbmdzKSkKICAgICAsIG1fc2NyaXB0KHN0ZDo6bWFrZV91bmlxdWU8V29ya2VyU2NyaXB0
Q29udHJvbGxlcj4odGhpcykpCiAgICAgLCBtX3RocmVhZCh0aHJlYWQpCiAjaWYgRU5BQkxFKElO
U1BFQ1RPUikKQEAgLTE0OSwxMiArMTQ5LDEyIEBAIFdvcmtlck5hdmlnYXRvciogV29ya2VyR2xv
YmFsU2NvcGU6Om5hdmlnYXRvcigpIGNvbnN0CiAKIHZvaWQgV29ya2VyR2xvYmFsU2NvcGU6OnBv
c3RUYXNrKFRhc2sgdGFzaykKIHsKLSAgICB0aHJlYWQoKS5ydW5Mb29wKCkucG9zdFRhc2soc3Rk
Ojptb3ZlKHRhc2spKTsKKyAgICB0aHJlYWQoKS5ydW5Mb29wKCkucG9zdFRhc2soV1RGOjptb3Zl
KHRhc2spKTsKIH0KIAogaW50IFdvcmtlckdsb2JhbFNjb3BlOjpzZXRUaW1lb3V0KHN0ZDo6dW5p
cXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlvbiwgaW50IHRpbWVvdXQpCiB7Ci0gICAgcmV0
dXJuIERPTVRpbWVyOjppbnN0YWxsKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgc3RkOjptb3Zl
KGFjdGlvbiksIHRpbWVvdXQsIHRydWUpOworICAgIHJldHVybiBET01UaW1lcjo6aW5zdGFsbChz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCksIFdURjo6bW92ZShhY3Rpb24pLCB0aW1lb3V0LCB0cnVl
KTsKIH0KIAogdm9pZCBXb3JrZXJHbG9iYWxTY29wZTo6Y2xlYXJUaW1lb3V0KGludCB0aW1lb3V0
SWQpCkBAIC0xNjQsNyArMTY0LDcgQEAgdm9pZCBXb3JrZXJHbG9iYWxTY29wZTo6Y2xlYXJUaW1l
b3V0KGludCB0aW1lb3V0SWQpCiAKIGludCBXb3JrZXJHbG9iYWxTY29wZTo6c2V0SW50ZXJ2YWwo
c3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uLCBpbnQgdGltZW91dCkKIHsK
LSAgICByZXR1cm4gRE9NVGltZXI6Omluc3RhbGwoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBz
dGQ6Om1vdmUoYWN0aW9uKSwgdGltZW91dCwgZmFsc2UpOworICAgIHJldHVybiBET01UaW1lcjo6
aW5zdGFsbChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIFdURjo6bW92ZShhY3Rpb24pLCB0aW1l
b3V0LCBmYWxzZSk7CiB9CiAKIHZvaWQgV29ya2VyR2xvYmFsU2NvcGU6OmNsZWFySW50ZXJ2YWwo
aW50IHRpbWVvdXRJZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
TWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdp
bmdQcm94eS5jcHAKaW5kZXggNTUwMWY1NS4uMDM3NTkwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCB2
b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0TWVzc2FnZVRvV29ya2VyT2JqZWN0KFBhc3NS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdAogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydEFycmF5PiBwb3J0cyA9IE1lc3NhZ2VQb3J0OjplbnRh
bmdsZVBvcnRzKGNvbnRleHQsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJh
eT4oY2hhbm5lbHNQdHIpKTsKLSAgICAgICAgd29ya2VyT2JqZWN0LT5kaXNwYXRjaEV2ZW50KE1l
c3NhZ2VFdmVudDo6Y3JlYXRlKHN0ZDo6bW92ZShwb3J0cyksIG1lc3NhZ2UpKTsKKyAgICAgICAg
d29ya2VyT2JqZWN0LT5kaXNwYXRjaEV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKFdURjo6bW92
ZShwb3J0cyksIG1lc3NhZ2UpKTsKICAgICB9KTsKIH0KIApAQCAtMTE2LDIyICsxMTYsMjIgQEAg
dm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdE1lc3NhZ2VUb1dvcmtlckdsb2JhbFNjb3Bl
KFBhc3NSZWZQdHI8U2VyaWFsaXplZFMKICAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1Q
TElDQVRJT04oc2NyaXB0Q29udGV4dC5pc1dvcmtlckdsb2JhbFNjb3BlKCkpOwogICAgICAgICBE
ZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSYgY29udGV4dCA9IHN0YXRpY19jYXN0PERlZGljYXRl
ZFdvcmtlckdsb2JhbFNjb3BlJj4oc2NyaXB0Q29udGV4dCk7CiAgICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxNZXNzYWdlUG9ydEFycmF5PiBwb3J0cyA9IE1lc3NhZ2VQb3J0OjplbnRhbmdsZVBvcnRz
KHNjcmlwdENvbnRleHQsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4o
Y2hhbm5lbHNQdHIpKTsKLSAgICAgICAgY29udGV4dC5kaXNwYXRjaEV2ZW50KE1lc3NhZ2VFdmVu
dDo6Y3JlYXRlKHN0ZDo6bW92ZShwb3J0cyksIG1lc3NhZ2UpKTsKKyAgICAgICAgY29udGV4dC5k
aXNwYXRjaEV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKFdURjo6bW92ZShwb3J0cyksIG1lc3Nh
Z2UpKTsKICAgICAgICAgY29udGV4dC50aHJlYWQoKS53b3JrZXJPYmplY3RQcm94eSgpLmNvbmZp
cm1NZXNzYWdlRnJvbVdvcmtlck9iamVjdChjb250ZXh0Lmhhc1BlbmRpbmdBY3Rpdml0eSgpKTsK
ICAgICB9KTsKIAogICAgIGlmIChtX3dvcmtlclRocmVhZCkgewogICAgICAgICArK21fdW5jb25m
aXJtZWRNZXNzYWdlQ291bnQ7Ci0gICAgICAgIG1fd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9z
dFRhc2soc3RkOjptb3ZlKHRhc2spKTsKKyAgICAgICAgbV93b3JrZXJUaHJlYWQtPnJ1bkxvb3Ao
KS5wb3N0VGFzayhXVEY6Om1vdmUodGFzaykpOwogICAgIH0gZWxzZQotICAgICAgICBtX3F1ZXVl
ZEVhcmx5VGFza3MuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8U2NyaXB0RXhlY3V0aW9uQ29udGV4
dDo6VGFzaz4oc3RkOjptb3ZlKHRhc2spKSk7CisgICAgICAgIG1fcXVldWVkRWFybHlUYXNrcy5h
cHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPihXVEY6
Om1vdmUodGFzaykpKTsKIH0KIAogdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdFRhc2tU
b0xvYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrIHRhc2spCiB7CiAgICAgLy8gRklY
TUU6IEluIGNhc2Ugb2YgbmVzdGVkIHdvcmtlcnMsIHRoaXMgc2hvdWxkIGdvIGRpcmVjdGx5IHRv
IHRoZSByb290IERvY3VtZW50IGNvbnRleHQuCiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dC0+aXNEb2N1bWVudCgpKTsKLSAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnBv
c3RUYXNrKHN0ZDo6bW92ZSh0YXNrKSk7CisgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5w
b3N0VGFzayhXVEY6Om1vdmUodGFzaykpOwogfQogCiBib29sIFdvcmtlck1lc3NhZ2luZ1Byb3h5
Ojpwb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OlRhc2sgdGFzaywgY29uc3QgU3RyaW5nJiBtb2RlKQpAQCAtMTQwLDcgKzE0MCw3IEBAIGJv
b2wgV29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2Nv
cGUoU2NyaXB0RXhlY3V0aW9uQ29uCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEFTU0VS
VChtX3dvcmtlclRocmVhZCk7Ci0gICAgbV93b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFz
a0Zvck1vZGUoc3RkOjptb3ZlKHRhc2spLCBtb2RlKTsKKyAgICBtX3dvcmtlclRocmVhZC0+cnVu
TG9vcCgpLnBvc3RUYXNrRm9yTW9kZShXVEY6Om1vdmUodGFzayksIG1vZGUpOwogICAgIHJldHVy
biB0cnVlOwogfQogCkBAIC0xODUsOSArMTg1LDkgQEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94
eTo6d29ya2VyVGhyZWFkQ3JlYXRlZChQYXNzUmVmUHRyPERlZGljYXRlZFdvcmtlclRocmVhZD4K
ICAgICAgICAgbV91bmNvbmZpcm1lZE1lc3NhZ2VDb3VudCA9IG1fcXVldWVkRWFybHlUYXNrcy5z
aXplKCk7CiAgICAgICAgIG1fd29ya2VyVGhyZWFkSGFkUGVuZGluZ0FjdGl2aXR5ID0gdHJ1ZTsg
Ly8gV29ya2VyIGluaXRpYWxpemF0aW9uIG1lYW5zIGEgcGVuZGluZyBhY3Rpdml0eS4KIAotICAg
ICAgICBhdXRvIHF1ZXVlZEVhcmx5VGFza3MgPSBzdGQ6Om1vdmUobV9xdWV1ZWRFYXJseVRhc2tz
KTsKKyAgICAgICAgYXV0byBxdWV1ZWRFYXJseVRhc2tzID0gV1RGOjptb3ZlKG1fcXVldWVkRWFy
bHlUYXNrcyk7CiAgICAgICAgIGZvciAoYXV0byYgdGFzayA6IHF1ZXVlZEVhcmx5VGFza3MpCi0g
ICAgICAgICAgICBtX3dvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrKHN0ZDo6bW92ZSgq
dGFzaykpOworICAgICAgICAgICAgbV93b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFzayhX
VEY6Om1vdmUoKnRhc2spKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clJ1bkxvb3AuY3BwCmluZGV4IGQ3YjdhN2UuLmU3OTU2OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJSdW5Mb29wLmNwcApAQCAtMTk0LDIyICsxOTQsMjIgQEAgdm9pZCBXb3JrZXJS
dW5Mb29wOjp0ZXJtaW5hdGUoKQogCiB2b2lkIFdvcmtlclJ1bkxvb3A6OnBvc3RUYXNrKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgdGFzaykKIHsKLSAgICBwb3N0VGFza0Zvck1vZGUoc3Rk
Ojptb3ZlKHRhc2spLCBkZWZhdWx0TW9kZSgpKTsKKyAgICBwb3N0VGFza0Zvck1vZGUoV1RGOjpt
b3ZlKHRhc2spLCBkZWZhdWx0TW9kZSgpKTsKIH0KIAogdm9pZCBXb3JrZXJSdW5Mb29wOjpwb3N0
VGFza0FuZFRlcm1pbmF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrIHRhc2spCiB7Ci0g
ICAgbV9tZXNzYWdlUXVldWUuYXBwZW5kQW5kS2lsbChUYXNrOjpjcmVhdGUoc3RkOjptb3ZlKHRh
c2spLCBkZWZhdWx0TW9kZSgpLmlzb2xhdGVkQ29weSgpKSk7CisgICAgbV9tZXNzYWdlUXVldWUu
YXBwZW5kQW5kS2lsbChUYXNrOjpjcmVhdGUoV1RGOjptb3ZlKHRhc2spLCBkZWZhdWx0TW9kZSgp
Lmlzb2xhdGVkQ29weSgpKSk7CiB9CiAKIHZvaWQgV29ya2VyUnVuTG9vcDo6cG9zdFRhc2tGb3JN
b2RlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgdGFzaywgY29uc3QgU3RyaW5nJiBtb2Rl
KQogewotICAgIG1fbWVzc2FnZVF1ZXVlLmFwcGVuZChUYXNrOjpjcmVhdGUoc3RkOjptb3ZlKHRh
c2spLCBtb2RlLmlzb2xhdGVkQ29weSgpKSk7CisgICAgbV9tZXNzYWdlUXVldWUuYXBwZW5kKFRh
c2s6OmNyZWF0ZShXVEY6Om1vdmUodGFzayksIG1vZGUuaXNvbGF0ZWRDb3B5KCkpKTsKIH0KIAog
c3RkOjp1bmlxdWVfcHRyPFdvcmtlclJ1bkxvb3A6OlRhc2s+IFdvcmtlclJ1bkxvb3A6OlRhc2s6
OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrIHRhc2ssIGNvbnN0IFN0cmluZyYg
bW9kZSkKIHsKLSAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFRhc2s+KG5ldyBUYXNrKHN0ZDo6
bW92ZSh0YXNrKSwgbW9kZSkpOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8VGFzaz4obmV3
IFRhc2soV1RGOjptb3ZlKHRhc2spLCBtb2RlKSk7CiB9CiAKIHZvaWQgV29ya2VyUnVuTG9vcDo6
VGFzazo6cGVyZm9ybVRhc2soY29uc3QgV29ya2VyUnVuTG9vcCYgcnVuTG9vcCwgV29ya2VyR2xv
YmFsU2NvcGUqIGNvbnRleHQpCkBAIC0yMTksNyArMjE5LDcgQEAgdm9pZCBXb3JrZXJSdW5Mb29w
OjpUYXNrOjpwZXJmb3JtVGFzayhjb25zdCBXb3JrZXJSdW5Mb29wJiBydW5Mb29wLCBXb3JrZXJH
bG9iYWwKIH0KIAogV29ya2VyUnVuTG9vcDo6VGFzazo6VGFzayhTY3JpcHRFeGVjdXRpb25Db250
ZXh0OjpUYXNrIHRhc2ssIGNvbnN0IFN0cmluZyYgbW9kZSkKLSAgICA6IG1fdGFzayhzdGQ6Om1v
dmUodGFzaykpCisgICAgOiBtX3Rhc2soV1RGOjptb3ZlKHRhc2spKQogICAgICwgbV9tb2RlKG1v
ZGUuaXNvbGF0ZWRDb3B5KCkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clNjcmlwdExvYWRlci5jcHAKaW5kZXggMWVmMDMzOS4uMDVjNWZhNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcApAQCAtMTAxLDcgKzEwMSw3IEBA
IHN0ZDo6dW5pcXVlX3B0cjxSZXNvdXJjZVJlcXVlc3Q+IFdvcmtlclNjcmlwdExvYWRlcjo6Y3Jl
YXRlUmVzb3VyY2VSZXF1ZXN0KCkKIHsKICAgICBhdXRvIHJlcXVlc3QgPSBzdGQ6Om1ha2VfdW5p
cXVlPFJlc291cmNlUmVxdWVzdD4obV91cmwpOwogICAgIHJlcXVlc3QtPnNldEhUVFBNZXRob2Qo
IkdFVCIpOwotICAgIHJldHVybiBzdGQ6Om1vdmUocmVxdWVzdCk7CisgICAgcmV0dXJuIFdURjo6
bW92ZShyZXF1ZXN0KTsKIH0KICAgICAKIHZvaWQgV29ya2VyU2NyaXB0TG9hZGVyOjpkaWRSZWNl
aXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAppbmRl
eCAwM2EyZTczLi5lNDQyMjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQu
Y3BwCkBAIC0xNTksNyArMTU5LDcgQEAgdm9pZCBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZCgp
CiAKICAgICB7CiAgICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4
KTsKLSAgICAgICAgbV93b3JrZXJHbG9iYWxTY29wZSA9IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3Bl
KG1fc3RhcnR1cERhdGEtPm1fc2NyaXB0VVJMLCBtX3N0YXJ0dXBEYXRhLT5tX3VzZXJBZ2VudCwg
c3RkOjptb3ZlKG1fc3RhcnR1cERhdGEtPm1fZ3JvdXBTZXR0aW5ncyksIG1fc3RhcnR1cERhdGEt
Pm1fY29udGVudFNlY3VyaXR5UG9saWN5LCBtX3N0YXJ0dXBEYXRhLT5tX2NvbnRlbnRTZWN1cml0
eVBvbGljeVR5cGUsIG1fc3RhcnR1cERhdGEtPm1fdG9wT3JpZ2luLnJlbGVhc2UoKSk7CisgICAg
ICAgIG1fd29ya2VyR2xvYmFsU2NvcGUgPSBjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShtX3N0YXJ0
dXBEYXRhLT5tX3NjcmlwdFVSTCwgbV9zdGFydHVwRGF0YS0+bV91c2VyQWdlbnQsIFdURjo6bW92
ZShtX3N0YXJ0dXBEYXRhLT5tX2dyb3VwU2V0dGluZ3MpLCBtX3N0YXJ0dXBEYXRhLT5tX2NvbnRl
bnRTZWN1cml0eVBvbGljeSwgbV9zdGFydHVwRGF0YS0+bV9jb250ZW50U2VjdXJpdHlQb2xpY3lU
eXBlLCBtX3N0YXJ0dXBEYXRhLT5tX3RvcE9yaWdpbi5yZWxlYXNlKCkpOwogCiAgICAgICAgIGlm
IChtX3J1bkxvb3AudGVybWluYXRlZCgpKSB7CiAgICAgICAgICAgICAvLyBUaGUgd29ya2VyIHdh
cyB0ZXJtaW5hdGVkIGJlZm9yZSB0aGUgdGhyZWFkIGhhZCBhIGNoYW5jZSB0byBydW4uIFNpbmNl
IHRoZSBjb250ZXh0IGRpZG4ndCBleGlzdCB5ZXQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmNwcAppbmRleCA1YTY3NmE5Li5jOTNlYjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdC5jcHAKQEAgLTI0Miw3ICsyNDIsNyBAQCBCbG9iKiBYTUxIdHRwUmVxdWVzdDo6cmVz
cG9uc2VCbG9iKCkKICAgICAgICAgICAgIFZlY3RvcjxjaGFyPiBkYXRhOwogICAgICAgICAgICAg
ZGF0YS5hcHBlbmQobV9iaW5hcnlSZXNwb25zZUJ1aWxkZXItPmRhdGEoKSwgbV9iaW5hcnlSZXNw
b25zZUJ1aWxkZXItPnNpemUoKSk7CiAgICAgICAgICAgICBTdHJpbmcgbm9ybWFsaXplZENvbnRl
bnRUeXBlID0gQmxvYjo6bm9ybWFsaXplZENvbnRlbnRUeXBlKHJlc3BvbnNlTUlNRVR5cGUoKSk7
IC8vIHJlc3BvbnNlTUlNRVR5cGUgZGVmYXVsdHMgdG8gdGV4dC94bWwgd2hpY2ggbWF5IGJlIGlu
Y29ycmVjdC4KLSAgICAgICAgICAgIG1fcmVzcG9uc2VCbG9iID0gQmxvYjo6Y3JlYXRlKHN0ZDo6
bW92ZShkYXRhKSwgbm9ybWFsaXplZENvbnRlbnRUeXBlKTsKKyAgICAgICAgICAgIG1fcmVzcG9u
c2VCbG9iID0gQmxvYjo6Y3JlYXRlKFdURjo6bW92ZShkYXRhKSwgbm9ybWFsaXplZENvbnRlbnRU
eXBlKTsKICAgICAgICAgICAgIG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVyLmNsZWFyKCk7CiAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBJZiB3ZSBlcnJvcmVkIG91dCBvciBnb3Qgbm8g
ZGF0YSwgd2Ugc3RpbGwgcmV0dXJuIGEgYmxvYiwganVzdCBhbiBlbXB0eSBvbmUuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0
bGUuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRo
cm90dGxlLmNwcAppbmRleCA0YTRlZjA1Li5jNjY3ZTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5jcHAK
QEAgLTE0MCw3ICsxNDAsNyBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90
dGxlOjpkaXNwYXRjaERlZmVycmVkRXZlbnRzKFRpbWVyPFhNTEh0dHBSZQogICAgIG1fZGVmZXJF
dmVudHMgPSBmYWxzZTsKIAogICAgIC8vIFRha2Ugb3ZlciB0aGUgZGVmZXJyZWQgZXZlbnRzIGJl
Zm9yZSBkaXNwYXRjaGluZyB0aGVtIHdoaWNoIGNhbiBwb3RlbnRpYWxseSBhZGQgbW9yZS4KLSAg
ICBhdXRvIGRlZmVycmVkRXZlbnRzID0gc3RkOjptb3ZlKG1fZGVmZXJyZWRFdmVudHMpOworICAg
IGF1dG8gZGVmZXJyZWRFdmVudHMgPSBXVEY6Om1vdmUobV9kZWZlcnJlZEV2ZW50cyk7CiAKICAg
ICBSZWZQdHI8RXZlbnQ+IGRlZmVycmVkUHJvZ3Jlc3NFdmVudCA9IG1fZGVmZXJyZWRQcm9ncmVz
c0V2ZW50OwogICAgIG1fZGVmZXJyZWRQcm9ncmVzc0V2ZW50ID0gbnVsbHB0cjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV4cHJlc3Npb24uY3BwIGIvU291cmNlL1dlYkNv
cmUveG1sL1hQYXRoRXhwcmVzc2lvbi5jcHAKaW5kZXggYzY1OWM4Mi4uNzY0YTMwZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXhwcmVzc2lvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUveG1sL1hQYXRoRXhwcmVzc2lvbi5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIFhQYXRoOwogICAgIAogaW5saW5lIFhQYXRo
RXhwcmVzc2lvbjo6WFBhdGhFeHByZXNzaW9uKHN0ZDo6dW5pcXVlX3B0cjxYUGF0aDo6RXhwcmVz
c2lvbj4gZXhwcmVzc2lvbikKLSAgICA6IG1fdG9wRXhwcmVzc2lvbihzdGQ6Om1vdmUoZXhwcmVz
c2lvbikpCisgICAgOiBtX3RvcEV4cHJlc3Npb24oV1RGOjptb3ZlKGV4cHJlc3Npb24pKQogewog
fQogCkBAIC01MSw3ICs1MSw3IEBAIFBhc3NSZWZQdHI8WFBhdGhFeHByZXNzaW9uPiBYUGF0aEV4
cHJlc3Npb246OmNyZWF0ZUV4cHJlc3Npb24oY29uc3QgU3RyaW5nJiBleHByCiAgICAgaWYgKCFw
YXJzZWRFeHByZXNzaW9uKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgWFBhdGhFeHByZXNzaW9uKHN0ZDo6bW92ZShwYXJzZWRFeHByZXNzaW9uKSkp
OworICAgIHJldHVybiBhZG9wdFJlZihuZXcgWFBhdGhFeHByZXNzaW9uKFdURjo6bW92ZShwYXJz
ZWRFeHByZXNzaW9uKSkpOwogfQogCiBYUGF0aEV4cHJlc3Npb246On5YUGF0aEV4cHJlc3Npb24o
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXhwcmVzc2lvbk5vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXhwcmVzc2lvbk5vZGUuY3BwCmluZGV4IDE3Yjgw
MjQxLi4wZjZiM2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFeHByZXNz
aW9uTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXhwcmVzc2lvbk5vZGUu
Y3BwCkBAIC00OSw3ICs0OSw3IEBAIEV4cHJlc3Npb246OkV4cHJlc3Npb24oKQogdm9pZCBFeHBy
ZXNzaW9uOjpzZXRTdWJleHByZXNzaW9ucyhWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Np
b24+PiBzdWJleHByZXNzaW9ucykKIHsKICAgICBBU1NFUlQobV9zdWJleHByZXNzaW9ucy5pc0Vt
cHR5KCkpOwotICAgIG1fc3ViZXhwcmVzc2lvbnMgPSBzdGQ6Om1vdmUoc3ViZXhwcmVzc2lvbnMp
OworICAgIG1fc3ViZXhwcmVzc2lvbnMgPSBXVEY6Om1vdmUoc3ViZXhwcmVzc2lvbnMpOwogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3N1YmV4cHJlc3Npb25zLnNpemUoKTsgKytpKSB7
CiAgICAgICAgIG1faXNDb250ZXh0Tm9kZVNlbnNpdGl2ZSB8PSBtX3N1YmV4cHJlc3Npb25zW2ld
LT5tX2lzQ29udGV4dE5vZGVTZW5zaXRpdmU7CiAgICAgICAgIG1faXNDb250ZXh0UG9zaXRpb25T
ZW5zaXRpdmUgfD0gbV9zdWJleHByZXNzaW9uc1tpXS0+bV9pc0NvbnRleHRQb3NpdGlvblNlbnNp
dGl2ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV4cHJlc3Npb25Ob2Rl
LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFeHByZXNzaW9uTm9kZS5oCmluZGV4IGNmMjYx
MTMuLjA1NDliZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV4cHJlc3Np
b25Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXhwcmVzc2lvbk5vZGUuaApA
QCAtNjYsNyArNjYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIG1faXNDb250ZXh0Tm9kZVNlbnNp
dGl2ZSB8PSBleHByZXNzaW9uLT5tX2lzQ29udGV4dE5vZGVTZW5zaXRpdmU7CiAgICAgICAgIG1f
aXNDb250ZXh0UG9zaXRpb25TZW5zaXRpdmUgfD0gZXhwcmVzc2lvbi0+bV9pc0NvbnRleHRQb3Np
dGlvblNlbnNpdGl2ZTsKICAgICAgICAgbV9pc0NvbnRleHRTaXplU2Vuc2l0aXZlIHw9IGV4cHJl
c3Npb24tPm1faXNDb250ZXh0U2l6ZVNlbnNpdGl2ZTsKLSAgICAgICAgbV9zdWJleHByZXNzaW9u
cy5hcHBlbmQoc3RkOjptb3ZlKGV4cHJlc3Npb24pKTsKKyAgICAgICAgbV9zdWJleHByZXNzaW9u
cy5hcHBlbmQoV1RGOjptb3ZlKGV4cHJlc3Npb24pKTsKICAgICB9CiAKICAgICB2b2lkIHNldFN1
YmV4cHJlc3Npb25zKFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4+KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS94bWwvWFBhdGhGdW5jdGlvbnMuY3BwCmluZGV4IDNiYjFjY2QuLmUzN2Q0MDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUveG1sL1hQYXRoRnVuY3Rpb25zLmNwcApAQCAtMjkxLDcgKzI5MSw3IEBAIHZvaWQg
RnVuY3Rpb246OnNldEFyZ3VtZW50cyhjb25zdCBTdHJpbmcmIG5hbWUsIFZlY3RvcjxzdGQ6OnVu
aXF1ZV9wdHI8RXhwcmVzc2lvCiAgICAgaWYgKG5hbWUgIT0gImxhbmciICYmICFhcmd1bWVudHMu
aXNFbXB0eSgpKQogICAgICAgICBzZXRJc0NvbnRleHROb2RlU2Vuc2l0aXZlKGZhbHNlKTsKIAot
ICAgIHNldFN1YmV4cHJlc3Npb25zKHN0ZDo6bW92ZShhcmd1bWVudHMpKTsKKyAgICBzZXRTdWJl
eHByZXNzaW9ucyhXVEY6Om1vdmUoYXJndW1lbnRzKSk7CiB9CiAKIFZhbHVlIEZ1bkxhc3Q6OmV2
YWx1YXRlKCkgY29uc3QKQEAgLTM1NSw3ICszNTUsNyBAQCBWYWx1ZSBGdW5JZDo6ZXZhbHVhdGUo
KSBjb25zdAogICAgIAogICAgIHJlc3VsdC5tYXJrU29ydGVkKGZhbHNlKTsKICAgICAKLSAgICBy
ZXR1cm4gVmFsdWUoc3RkOjptb3ZlKHJlc3VsdCkpOworICAgIHJldHVybiBWYWx1ZShXVEY6Om1v
dmUocmVzdWx0KSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgU3RyaW5nIGV4cGFuZGVkTmFtZUxvY2Fs
UGFydChOb2RlKiBub2RlKQpAQCAtNzM3LDcgKzczNyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxGdW5j
dGlvbj4gRnVuY3Rpb246OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIFZlY3RvcjxzdGQ6OnVu
aXF1CiB7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEZ1bmN0aW9uPiBmdW5jdGlvbiA9IGNyZWF0ZShu
YW1lLCBhcmd1bWVudHMuc2l6ZSgpKTsKICAgICBpZiAoZnVuY3Rpb24pCi0gICAgICAgIGZ1bmN0
aW9uLT5zZXRBcmd1bWVudHMobmFtZSwgc3RkOjptb3ZlKGFyZ3VtZW50cykpOworICAgICAgICBm
dW5jdGlvbi0+c2V0QXJndW1lbnRzKG5hbWUsIFdURjo6bW92ZShhcmd1bWVudHMpKTsKICAgICBy
ZXR1cm4gZnVuY3Rpb247CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0
aEdyYW1tYXIueSBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueQppbmRleCAyYjNk
NDE0Li4wNGYyNGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFy
LnkKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55CkBAIC0xNjYsOSArMTY2
LDkgQEAgU3RlcDoKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFN0ZXA6Ok5vZGVUZXN0PiBub2Rl
VGVzdCgkMSk7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRy
PEV4cHJlc3Npb24+Pj4gcHJlZGljYXRlTGlzdCgkMik7CiAgICAgICAgIGlmIChwcmVkaWNhdGVM
aXN0KQotICAgICAgICAgICAgJCQgPSBuZXcgU3RlcChTdGVwOjpDaGlsZEF4aXMsIHN0ZDo6bW92
ZSgqbm9kZVRlc3QpLCBzdGQ6Om1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKKyAgICAgICAgICAgICQk
ID0gbmV3IFN0ZXAoU3RlcDo6Q2hpbGRBeGlzLCBXVEY6Om1vdmUoKm5vZGVUZXN0KSwgV1RGOjpt
b3ZlKCpwcmVkaWNhdGVMaXN0KSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICQkID0gbmV3
IFN0ZXAoU3RlcDo6Q2hpbGRBeGlzLCBzdGQ6Om1vdmUoKm5vZGVUZXN0KSk7CisgICAgICAgICAg
ICAkJCA9IG5ldyBTdGVwKFN0ZXA6OkNoaWxkQXhpcywgV1RGOjptb3ZlKCpub2RlVGVzdCkpOwog
ICAgIH0KICAgICB8CiAgICAgTkFNRVRFU1QgT3B0aW9uYWxQcmVkaWNhdGVMaXN0CkBAIC0xODQs
NyArMTg0LDcgQEAgU3RlcDoKICAgICAgICAgfQogCiAgICAgICAgIGlmIChwcmVkaWNhdGVMaXN0
KQotICAgICAgICAgICAgJCQgPSBuZXcgU3RlcChTdGVwOjpDaGlsZEF4aXMsIFN0ZXA6Ok5vZGVU
ZXN0KFN0ZXA6Ok5vZGVUZXN0OjpOYW1lVGVzdCwgbG9jYWxOYW1lLCBuYW1lc3BhY2VVUkkpLCBz
dGQ6Om1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKKyAgICAgICAgICAgICQkID0gbmV3IFN0ZXAoU3Rl
cDo6Q2hpbGRBeGlzLCBTdGVwOjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6TmFtZVRlc3QsIGxv
Y2FsTmFtZSwgbmFtZXNwYWNlVVJJKSwgV1RGOjptb3ZlKCpwcmVkaWNhdGVMaXN0KSk7CiAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgICQkID0gbmV3IFN0ZXAoU3RlcDo6Q2hpbGRBeGlzLCBTdGVw
OjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6TmFtZVRlc3QsIGxvY2FsTmFtZSwgbmFtZXNwYWNl
VVJJKSk7CiAgICAgfQpAQCAtMTk1LDkgKzE5NSw5IEBAIFN0ZXA6CiAgICAgICAgIHN0ZDo6dW5p
cXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+Pj4gcHJlZGljYXRlTGlz
dCgkMyk7CiAKICAgICAgICAgaWYgKHByZWRpY2F0ZUxpc3QpCi0gICAgICAgICAgICAkJCA9IG5l
dyBTdGVwKCQxLCBzdGQ6Om1vdmUoKm5vZGVUZXN0KSwgc3RkOjptb3ZlKCpwcmVkaWNhdGVMaXN0
KSk7CisgICAgICAgICAgICAkJCA9IG5ldyBTdGVwKCQxLCBXVEY6Om1vdmUoKm5vZGVUZXN0KSwg
V1RGOjptb3ZlKCpwcmVkaWNhdGVMaXN0KSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICQk
ID0gbmV3IFN0ZXAoJDEsIHN0ZDo6bW92ZSgqbm9kZVRlc3QpKTsKKyAgICAgICAgICAgICQkID0g
bmV3IFN0ZXAoJDEsIFdURjo6bW92ZSgqbm9kZVRlc3QpKTsKICAgICB9CiAgICAgfAogICAgIEF4
aXNTcGVjaWZpZXIgTkFNRVRFU1QgT3B0aW9uYWxQcmVkaWNhdGVMaXN0CkBAIC0yMTMsNyArMjEz
LDcgQEAgU3RlcDoKICAgICAgICAgfQogCiAgICAgICAgIGlmIChwcmVkaWNhdGVMaXN0KQotICAg
ICAgICAgICAgJCQgPSBuZXcgU3RlcCgkMSwgU3RlcDo6Tm9kZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6
Ok5hbWVUZXN0LCBsb2NhbE5hbWUsIG5hbWVzcGFjZVVSSSksIHN0ZDo6bW92ZSgqcHJlZGljYXRl
TGlzdCkpOworICAgICAgICAgICAgJCQgPSBuZXcgU3RlcCgkMSwgU3RlcDo6Tm9kZVRlc3QoU3Rl
cDo6Tm9kZVRlc3Q6Ok5hbWVUZXN0LCBsb2NhbE5hbWUsIG5hbWVzcGFjZVVSSSksIFdURjo6bW92
ZSgqcHJlZGljYXRlTGlzdCkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICAkJCA9IG5ldyBT
dGVwKCQxLCBTdGVwOjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6TmFtZVRlc3QsIGxvY2FsTmFt
ZSwgbmFtZXNwYWNlVVJJKSk7CiAgICAgfQpAQCAtMzIyLDcgKzMyMiw3IEBAIFByaW1hcnlFeHBy
OgogICAgIExJVEVSQUwKICAgICB7CiAgICAgICAgIFN0cmluZyBsaXRlcmFsID0gYWRvcHRSZWYo
JDEpOwotICAgICAgICAkJCA9IG5ldyBTdHJpbmdFeHByZXNzaW9uKHN0ZDo6bW92ZShsaXRlcmFs
KSk7CisgICAgICAgICQkID0gbmV3IFN0cmluZ0V4cHJlc3Npb24oV1RGOjptb3ZlKGxpdGVyYWwp
KTsKICAgICB9CiAgICAgfAogICAgIE5VTUJFUgpAQCAtMzQ3LDcgKzM0Nyw3IEBAIEZ1bmN0aW9u
Q2FsbDoKICAgICB7CiAgICAgICAgIFN0cmluZyBuYW1lID0gYWRvcHRSZWYoJDEpOwogICAgICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPj4+IGFy
Z3VtZW50TGlzdCgkMyk7Ci0gICAgICAgICQkID0gWFBhdGg6OkZ1bmN0aW9uOjpjcmVhdGUobmFt
ZSwgc3RkOjptb3ZlKCphcmd1bWVudExpc3QpKS5yZWxlYXNlKCk7CisgICAgICAgICQkID0gWFBh
dGg6OkZ1bmN0aW9uOjpjcmVhdGUobmFtZSwgV1RGOjptb3ZlKCphcmd1bWVudExpc3QpKS5yZWxl
YXNlKCk7CiAgICAgICAgIGlmICghJCQpCiAgICAgICAgICAgICBZWUFCT1JUOwogICAgIH0KQEAg
LTQwOCw3ICs0MDgsNyBAQCBGaWx0ZXJFeHByOgogICAgIFByaW1hcnlFeHByIFByZWRpY2F0ZUxp
c3QKICAgICB7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRy
PEV4cHJlc3Npb24+Pj4gcHJlZGljYXRlTGlzdCgkMik7Ci0gICAgICAgICQkID0gbmV3IEZpbHRl
cihzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oJDEpLCBzdGQ6Om1vdmUoKnByZWRpY2F0ZUxp
c3QpKTsKKyAgICAgICAgJCQgPSBuZXcgRmlsdGVyKHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9u
PigkMSksIFdURjo6bW92ZSgqcHJlZGljYXRlTGlzdCkpOwogICAgIH0KICAgICA7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aE5vZGVTZXQuY3BwIGIvU291cmNlL1dlYkNv
cmUveG1sL1hQYXRoTm9kZVNldC5jcHAKaW5kZXggNWZjYmZhYS4uMGQyNjQzYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoTm9kZVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUveG1sL1hQYXRoTm9kZVNldC5jcHAKQEAgLTE3Myw3ICsxNzMsNyBAQCB2b2lkIE5vZGVTZXQ6
OnNvcnQoKSBjb25zdAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBub2RlQ291bnQ7ICsr
aSkKICAgICAgICAgc29ydGVkTm9kZXMuYXBwZW5kKHBhcmVudE1hdHJpeFtpXVswXSk7CiAgICAg
Ci0gICAgbV9ub2RlcyA9IHN0ZDo6bW92ZShzb3J0ZWROb2Rlcyk7CisgICAgbV9ub2RlcyA9IFdU
Rjo6bW92ZShzb3J0ZWROb2Rlcyk7CiAgICAgbV9pc1NvcnRlZCA9IHRydWU7CiB9CiAKQEAgLTIy
Niw3ICsyMjYsNyBAQCB2b2lkIE5vZGVTZXQ6OnRyYXZlcnNhbFNvcnQoKSBjb25zdAogICAgIH0K
IAogICAgIEFTU0VSVChzb3J0ZWROb2Rlcy5zaXplKCkgPT0gbm9kZUNvdW50KTsKLSAgICBtX25v
ZGVzID0gc3RkOjptb3ZlKHNvcnRlZE5vZGVzKTsKKyAgICBtX25vZGVzID0gV1RGOjptb3ZlKHNv
cnRlZE5vZGVzKTsKICAgICBtX2lzU29ydGVkID0gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUveG1sL1hQYXRoUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0
aFBhcnNlci5jcHAKaW5kZXggMWRhZTdmMi4uMzNkNjQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUveG1sL1hQYXRoUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhQ
YXJzZXIuY3BwCkBAIC00NzIsNyArNDcyLDcgQEAgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+
IFBhcnNlcjo6cGFyc2VTdGF0ZW1lbnQoY29uc3QgU3RyaW5nJiBzdGF0ZW1lbnQsIFhQYXQKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgcmV0dXJuIHN0ZDo6bW92ZShwYXJz
ZXIubV9yZXN1bHQpOworICAgIHJldHVybiBXVEY6Om1vdmUocGFyc2VyLm1fcmVzdWx0KTsKIH0K
IAogfSB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhQYXJzZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3htbC9YUGF0aFBhcnNlci5oCmluZGV4IDRlNmY0MzcuLmIyNDM4N2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFBhcnNlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YUGF0aFBhcnNlci5oCkBAIC00Nyw3ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgICAgICAgICAgaW50IGxleChZWVNUWVBFJik7CiAgICAgICAgICAgICBib29s
IGV4cGFuZFF1YWxpZmllZE5hbWUoY29uc3QgU3RyaW5nJiBxdWFsaWZpZWROYW1lLCBTdHJpbmcm
IGxvY2FsTmFtZSwgU3RyaW5nJiBuYW1lc3BhY2VVUkkpOwotICAgICAgICAgICAgdm9pZCBzZXRQ
YXJzZVJlc3VsdChzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4gZXhwcmVzc2lvbikgeyBtX3Jl
c3VsdCA9IHN0ZDo6bW92ZShleHByZXNzaW9uKTsgfQorICAgICAgICAgICAgdm9pZCBzZXRQYXJz
ZVJlc3VsdChzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4gZXhwcmVzc2lvbikgeyBtX3Jlc3Vs
dCA9IFdURjo6bW92ZShleHByZXNzaW9uKTsgfQogCiAgICAgICAgIHByaXZhdGU6CiAgICAgICAg
ICAgICBQYXJzZXIoY29uc3QgU3RyaW5nJiwgWFBhdGhOU1Jlc29sdmVyKik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhQYXRoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9Y
UGF0aFBhdGguY3BwCmluZGV4IDA2ZDczZjkuLjc3MmVlZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9YUGF0aFBhdGguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFBh
dGguY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBY
UGF0aCB7CiAgICAgICAgIAogRmlsdGVyOjpGaWx0ZXIoc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Np
b24+IGV4cHJlc3Npb24sIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4+IHByZWRp
Y2F0ZXMpCi0gICAgOiBtX2V4cHJlc3Npb24oc3RkOjptb3ZlKGV4cHJlc3Npb24pKSwgbV9wcmVk
aWNhdGVzKHN0ZDo6bW92ZShwcmVkaWNhdGVzKSkKKyAgICA6IG1fZXhwcmVzc2lvbihXVEY6Om1v
dmUoZXhwcmVzc2lvbikpLCBtX3ByZWRpY2F0ZXMoV1RGOjptb3ZlKHByZWRpY2F0ZXMpKQogewog
ICAgIHNldElzQ29udGV4dE5vZGVTZW5zaXRpdmUobV9leHByZXNzaW9uLT5pc0NvbnRleHROb2Rl
U2Vuc2l0aXZlKCkpOwogICAgIHNldElzQ29udGV4dFBvc2l0aW9uU2Vuc2l0aXZlKG1fZXhwcmVz
c2lvbi0+aXNDb250ZXh0UG9zaXRpb25TZW5zaXRpdmUoKSk7CkBAIC02NSw3ICs2NSw3IEBAIFZh
bHVlIEZpbHRlcjo6ZXZhbHVhdGUoKSBjb25zdAogICAgICAgICAgICAgaWYgKGV2YWx1YXRlUHJl
ZGljYXRlKCptX3ByZWRpY2F0ZXNbaV0pKQogICAgICAgICAgICAgICAgIG5ld05vZGVzLmFwcGVu
ZChub2RlKTsKICAgICAgICAgfQotICAgICAgICBub2RlcyA9IHN0ZDo6bW92ZShuZXdOb2Rlcyk7
CisgICAgICAgIG5vZGVzID0gV1RGOjptb3ZlKG5ld05vZGVzKTsKICAgICB9CiAKICAgICByZXR1
cm4gcmVzdWx0OwpAQCAtMTAyLDcgKzEwMiw3IEBAIFZhbHVlIExvY2F0aW9uUGF0aDo6ZXZhbHVh
dGUoKSBjb25zdAogICAgIGV2YWx1YXRlKG5vZGVzKTsKICAgICAKICAgICBldmFsdWF0aW9uQ29u
dGV4dCA9IGJhY2t1cENvbnRleHQ7Ci0gICAgcmV0dXJuIFZhbHVlKHN0ZDo6bW92ZShub2Rlcykp
OworICAgIHJldHVybiBWYWx1ZShXVEY6Om1vdmUobm9kZXMpKTsKIH0KIAogdm9pZCBMb2NhdGlv
blBhdGg6OmV2YWx1YXRlKE5vZGVTZXQmIG5vZGVzKSBjb25zdApAQCAtMTM4LDcgKzEzOCw3IEBA
IHZvaWQgTG9jYXRpb25QYXRoOjpldmFsdWF0ZShOb2RlU2V0JiBub2RlcykgY29uc3QKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgbm9kZXMgPSBzdGQ6Om1vdmUo
bmV3Tm9kZXMpOworICAgICAgICBub2RlcyA9IFdURjo6bW92ZShuZXdOb2Rlcyk7CiAgICAgfQog
CiAgICAgbm9kZXMubWFya1NvcnRlZChyZXN1bHRJc1NvcnRlZCk7CkBAIC0xNTQsNyArMTU0LDcg
QEAgdm9pZCBMb2NhdGlvblBhdGg6OmFwcGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRyPFN0ZXA+IHN0
ZXApCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQogICAgIHN0ZXAtPm9wdGltaXplKCk7Ci0g
ICAgbV9zdGVwcy5hcHBlbmQoc3RkOjptb3ZlKHN0ZXApKTsKKyAgICBtX3N0ZXBzLmFwcGVuZChX
VEY6Om1vdmUoc3RlcCkpOwogfQogCiB2b2lkIExvY2F0aW9uUGF0aDo6cHJlcGVuZFN0ZXAoc3Rk
Ojp1bmlxdWVfcHRyPFN0ZXA+IHN0ZXApCkBAIC0xNjMsMTcgKzE2MywxNyBAQCB2b2lkIExvY2F0
aW9uUGF0aDo6cHJlcGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRyPFN0ZXA+IHN0ZXApCiAgICAgICAg
IGJvb2wgZHJvcFNlY29uZFN0ZXA7CiAgICAgICAgIG9wdGltaXplU3RlcFBhaXIoKnN0ZXAsICpt
X3N0ZXBzWzBdLCBkcm9wU2Vjb25kU3RlcCk7CiAgICAgICAgIGlmIChkcm9wU2Vjb25kU3RlcCkg
ewotICAgICAgICAgICAgbV9zdGVwc1swXSA9IHN0ZDo6bW92ZShzdGVwKTsKKyAgICAgICAgICAg
IG1fc3RlcHNbMF0gPSBXVEY6Om1vdmUoc3RlcCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KICAgICB9CiAgICAgc3RlcC0+b3B0aW1pemUoKTsKLSAgICBtX3N0ZXBzLmluc2VydCgw
LCBzdGQ6Om1vdmUoc3RlcCkpOworICAgIG1fc3RlcHMuaW5zZXJ0KDAsIFdURjo6bW92ZShzdGVw
KSk7CiB9CiAKIFBhdGg6OlBhdGgoc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+IGZpbHRlciwg
c3RkOjp1bmlxdWVfcHRyPExvY2F0aW9uUGF0aD4gcGF0aCkKLSAgICA6IG1fZmlsdGVyKHN0ZDo6
bW92ZShmaWx0ZXIpKQotICAgICwgbV9wYXRoKHN0ZDo6bW92ZShwYXRoKSkKKyAgICA6IG1fZmls
dGVyKFdURjo6bW92ZShmaWx0ZXIpKQorICAgICwgbV9wYXRoKFdURjo6bW92ZShwYXRoKSkKIHsK
ICAgICBzZXRJc0NvbnRleHROb2RlU2Vuc2l0aXZlKG1fZmlsdGVyLT5pc0NvbnRleHROb2RlU2Vu
c2l0aXZlKCkpOwogICAgIHNldElzQ29udGV4dFBvc2l0aW9uU2Vuc2l0aXZlKG1fZmlsdGVyLT5p
c0NvbnRleHRQb3NpdGlvblNlbnNpdGl2ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9YUGF0aFByZWRpY2F0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhQcmVkaWNh
dGUuY3BwCmluZGV4IDE0MzEyNjcuLjNkNDk5NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9YUGF0aFByZWRpY2F0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUHJl
ZGljYXRlLmNwcApAQCAtNDcsNyArNDcsNyBAQCBWYWx1ZSBOdW1iZXI6OmV2YWx1YXRlKCkgY29u
c3QKIH0KIAogU3RyaW5nRXhwcmVzc2lvbjo6U3RyaW5nRXhwcmVzc2lvbihTdHJpbmcmJiB2YWx1
ZSkKLSAgICA6IG1fdmFsdWUoc3RkOjptb3ZlKHZhbHVlKSkKKyAgICA6IG1fdmFsdWUoV1RGOjpt
b3ZlKHZhbHVlKSkKIHsKIH0KIApAQCAtNTgsNyArNTgsNyBAQCBWYWx1ZSBTdHJpbmdFeHByZXNz
aW9uOjpldmFsdWF0ZSgpIGNvbnN0CiAKIE5lZ2F0aXZlOjpOZWdhdGl2ZShzdGQ6OnVuaXF1ZV9w
dHI8RXhwcmVzc2lvbj4gZXhwcmVzc2lvbikKIHsKLSAgICBhZGRTdWJleHByZXNzaW9uKHN0ZDo6
bW92ZShleHByZXNzaW9uKSk7CisgICAgYWRkU3ViZXhwcmVzc2lvbihXVEY6Om1vdmUoZXhwcmVz
c2lvbikpOwogfQogCiBWYWx1ZSBOZWdhdGl2ZTo6ZXZhbHVhdGUoKSBjb25zdApAQCAtNjksOCAr
NjksOCBAQCBWYWx1ZSBOZWdhdGl2ZTo6ZXZhbHVhdGUoKSBjb25zdAogTnVtZXJpY09wOjpOdW1l
cmljT3AoT3Bjb2RlIG9wY29kZSwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+IGxocywgc3Rk
Ojp1bmlxdWVfcHRyPEV4cHJlc3Npb24+IHJocykKICAgICA6IG1fb3Bjb2RlKG9wY29kZSkKIHsK
LSAgICBhZGRTdWJleHByZXNzaW9uKHN0ZDo6bW92ZShsaHMpKTsKLSAgICBhZGRTdWJleHByZXNz
aW9uKHN0ZDo6bW92ZShyaHMpKTsKKyAgICBhZGRTdWJleHByZXNzaW9uKFdURjo6bW92ZShsaHMp
KTsKKyAgICBhZGRTdWJleHByZXNzaW9uKFdURjo6bW92ZShyaHMpKTsKIH0KIAogVmFsdWUgTnVt
ZXJpY09wOjpldmFsdWF0ZSgpIGNvbnN0CkBAIC05OCw4ICs5OCw4IEBAIFZhbHVlIE51bWVyaWNP
cDo6ZXZhbHVhdGUoKSBjb25zdAogRXFUZXN0T3A6OkVxVGVzdE9wKE9wY29kZSBvcGNvZGUsIHN0
ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPiBsaHMsIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9u
PiByaHMpCiAgICAgOiBtX29wY29kZShvcGNvZGUpCiB7Ci0gICAgYWRkU3ViZXhwcmVzc2lvbihz
dGQ6Om1vdmUobGhzKSk7Ci0gICAgYWRkU3ViZXhwcmVzc2lvbihzdGQ6Om1vdmUocmhzKSk7Cisg
ICAgYWRkU3ViZXhwcmVzc2lvbihXVEY6Om1vdmUobGhzKSk7CisgICAgYWRkU3ViZXhwcmVzc2lv
bihXVEY6Om1vdmUocmhzKSk7CiB9CiAKIGJvb2wgRXFUZXN0T3A6OmNvbXBhcmUoY29uc3QgVmFs
dWUmIGxocywgY29uc3QgVmFsdWUmIHJocykgY29uc3QKQEAgLTIwMSw4ICsyMDEsOCBAQCBWYWx1
ZSBFcVRlc3RPcDo6ZXZhbHVhdGUoKSBjb25zdAogTG9naWNhbE9wOjpMb2dpY2FsT3AoT3Bjb2Rl
IG9wY29kZSwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+IGxocywgc3RkOjp1bmlxdWVfcHRy
PEV4cHJlc3Npb24+IHJocykKICAgICA6IG1fb3Bjb2RlKG9wY29kZSkKIHsKLSAgICBhZGRTdWJl
eHByZXNzaW9uKHN0ZDo6bW92ZShsaHMpKTsKLSAgICBhZGRTdWJleHByZXNzaW9uKHN0ZDo6bW92
ZShyaHMpKTsKKyAgICBhZGRTdWJleHByZXNzaW9uKFdURjo6bW92ZShsaHMpKTsKKyAgICBhZGRT
dWJleHByZXNzaW9uKFdURjo6bW92ZShyaHMpKTsKIH0KIAogaW5saW5lIGJvb2wgTG9naWNhbE9w
OjpzaG9ydENpcmN1aXRPbigpIGNvbnN0CkBAIC0yMjMsOCArMjIzLDggQEAgVmFsdWUgTG9naWNh
bE9wOjpldmFsdWF0ZSgpIGNvbnN0CiAKIFVuaW9uOjpVbmlvbihzdGQ6OnVuaXF1ZV9wdHI8RXhw
cmVzc2lvbj4gbGhzLCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4gcmhzKQogewotICAgIGFk
ZFN1YmV4cHJlc3Npb24oc3RkOjptb3ZlKGxocykpOwotICAgIGFkZFN1YmV4cHJlc3Npb24oc3Rk
Ojptb3ZlKHJocykpOworICAgIGFkZFN1YmV4cHJlc3Npb24oV1RGOjptb3ZlKGxocykpOworICAg
IGFkZFN1YmV4cHJlc3Npb24oV1RGOjptb3ZlKHJocykpOwogfQogCiBWYWx1ZSBVbmlvbjo6ZXZh
bHVhdGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoU3RlcC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhTdGVwLmNwcAppbmRleCA1YjgxMzQ0Li40ZTJh
NzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhTdGVwLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS94bWwvWFBhdGhTdGVwLmNwcApAQCAtNDEsMTQgKzQxLDE0IEBAIG5hbWVz
cGFjZSBYUGF0aCB7CiAKIFN0ZXA6OlN0ZXAoQXhpcyBheGlzLCBOb2RlVGVzdCBub2RlVGVzdCkK
ICAgICA6IG1fYXhpcyhheGlzKQotICAgICwgbV9ub2RlVGVzdChzdGQ6Om1vdmUobm9kZVRlc3Qp
KQorICAgICwgbV9ub2RlVGVzdChXVEY6Om1vdmUobm9kZVRlc3QpKQogewogfQogCiBTdGVwOjpT
dGVwKEF4aXMgYXhpcywgTm9kZVRlc3Qgbm9kZVRlc3QsIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8
RXhwcmVzc2lvbj4+IHByZWRpY2F0ZXMpCiAgICAgOiBtX2F4aXMoYXhpcykKLSAgICAsIG1fbm9k
ZVRlc3Qoc3RkOjptb3ZlKG5vZGVUZXN0KSkKLSAgICAsIG1fcHJlZGljYXRlcyhzdGQ6Om1vdmUo
cHJlZGljYXRlcykpCisgICAgLCBtX25vZGVUZXN0KFdURjo6bW92ZShub2RlVGVzdCkpCisgICAg
LCBtX3ByZWRpY2F0ZXMoV1RGOjptb3ZlKHByZWRpY2F0ZXMpKQogewogfQogCkBAIC02NSwxMSAr
NjUsMTEgQEAgdm9pZCBTdGVwOjpvcHRpbWl6ZSgpCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBtX3ByZWRpY2F0ZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgYXV0byYgcHJlZGljYXRlID0g
bV9wcmVkaWNhdGVzW2ldOwogICAgICAgICBpZiAoKCFwcmVkaWNhdGVJc0NvbnRleHRQb3NpdGlv
blNlbnNpdGl2ZSgqcHJlZGljYXRlKSB8fCBtX25vZGVUZXN0Lm1fbWVyZ2VkUHJlZGljYXRlcy5p
c0VtcHR5KCkpICYmICFwcmVkaWNhdGUtPmlzQ29udGV4dFNpemVTZW5zaXRpdmUoKSAmJiByZW1h
aW5pbmdQcmVkaWNhdGVzLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIG1fbm9kZVRlc3QubV9tZXJn
ZWRQcmVkaWNhdGVzLmFwcGVuZChzdGQ6Om1vdmUocHJlZGljYXRlKSk7CisgICAgICAgICAgICBt
X25vZGVUZXN0Lm1fbWVyZ2VkUHJlZGljYXRlcy5hcHBlbmQoV1RGOjptb3ZlKHByZWRpY2F0ZSkp
OwogICAgICAgICBlbHNlCi0gICAgICAgICAgICByZW1haW5pbmdQcmVkaWNhdGVzLmFwcGVuZChz
dGQ6Om1vdmUocHJlZGljYXRlKSk7CisgICAgICAgICAgICByZW1haW5pbmdQcmVkaWNhdGVzLmFw
cGVuZChXVEY6Om1vdmUocHJlZGljYXRlKSk7CiAgICAgfQotICAgIG1fcHJlZGljYXRlcyA9IHN0
ZDo6bW92ZShyZW1haW5pbmdQcmVkaWNhdGVzKTsKKyAgICBtX3ByZWRpY2F0ZXMgPSBXVEY6Om1v
dmUocmVtYWluaW5nUHJlZGljYXRlcyk7CiB9CiAKIHZvaWQgb3B0aW1pemVTdGVwUGFpcihTdGVw
JiBmaXJzdCwgU3RlcCYgc2Vjb25kLCBib29sJiBkcm9wU2Vjb25kU3RlcCkKQEAgLTk5LDggKzk5
LDggQEAgdm9pZCBvcHRpbWl6ZVN0ZXBQYWlyKFN0ZXAmIGZpcnN0LCBTdGVwJiBzZWNvbmQsIGJv
b2wmIGRyb3BTZWNvbmRTdGVwKQogICAgICAgICByZXR1cm47CiAKICAgICBmaXJzdC5tX2F4aXMg
PSBTdGVwOjpEZXNjZW5kYW50QXhpczsKLSAgICBmaXJzdC5tX25vZGVUZXN0ID0gc3RkOjptb3Zl
KHNlY29uZC5tX25vZGVUZXN0KTsKLSAgICBmaXJzdC5tX3ByZWRpY2F0ZXMgPSBzdGQ6Om1vdmUo
c2Vjb25kLm1fcHJlZGljYXRlcyk7CisgICAgZmlyc3QubV9ub2RlVGVzdCA9IFdURjo6bW92ZShz
ZWNvbmQubV9ub2RlVGVzdCk7CisgICAgZmlyc3QubV9wcmVkaWNhdGVzID0gV1RGOjptb3ZlKHNl
Y29uZC5tX3ByZWRpY2F0ZXMpOwogICAgIGZpcnN0Lm9wdGltaXplKCk7CiAgICAgZHJvcFNlY29u
ZFN0ZXAgPSB0cnVlOwogfQpAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgU3RlcDo6ZXZhbHVhdGUo
Tm9kZSYgY29udGV4dCwgTm9kZVNldCYgbm9kZXMpIGNvbnN0CiAgICAgICAgICAgICAgICAgbmV3
Tm9kZXMuYXBwZW5kKG5vZGUpOwogICAgICAgICB9CiAKLSAgICAgICAgbm9kZXMgPSBzdGQ6Om1v
dmUobmV3Tm9kZXMpOworICAgICAgICBub2RlcyA9IFdURjo6bW92ZShuZXdOb2Rlcyk7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhTdGVwLmggYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWFBhdGhTdGVwLmgKaW5kZXggYzkxNjEzMS4uY2E3Y2RiYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoU3RlcC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3htbC9YUGF0aFN0ZXAuaApAQCAtNjUsMTcgKzY1LDE3IEBAIHB1YmxpYzoKIAogICAgICAgICBO
b2RlVGVzdChOb2RlVGVzdCYmIG90aGVyKQogICAgICAgICAgICAgOiBtX2tpbmQob3RoZXIubV9r
aW5kKQotICAgICAgICAgICAgLCBtX2RhdGEoc3RkOjptb3ZlKG90aGVyLm1fZGF0YSkpCi0gICAg
ICAgICAgICAsIG1fbmFtZXNwYWNlVVJJKHN0ZDo6bW92ZShvdGhlci5tX25hbWVzcGFjZVVSSSkp
Ci0gICAgICAgICAgICAsIG1fbWVyZ2VkUHJlZGljYXRlcyhzdGQ6Om1vdmUob3RoZXIubV9tZXJn
ZWRQcmVkaWNhdGVzKSkKKyAgICAgICAgICAgICwgbV9kYXRhKFdURjo6bW92ZShvdGhlci5tX2Rh
dGEpKQorICAgICAgICAgICAgLCBtX25hbWVzcGFjZVVSSShXVEY6Om1vdmUob3RoZXIubV9uYW1l
c3BhY2VVUkkpKQorICAgICAgICAgICAgLCBtX21lcmdlZFByZWRpY2F0ZXMoV1RGOjptb3ZlKG90
aGVyLm1fbWVyZ2VkUHJlZGljYXRlcykpCiAgICAgICAgIHsKICAgICAgICAgfQogICAgICAgICBO
b2RlVGVzdCYgb3BlcmF0b3I9KE5vZGVUZXN0JiYgb3RoZXIpCiAgICAgICAgIHsKICAgICAgICAg
ICAgIG1fa2luZCA9IG90aGVyLm1fa2luZDsKLSAgICAgICAgICAgIG1fZGF0YSA9IHN0ZDo6bW92
ZShvdGhlci5tX2RhdGEpOwotICAgICAgICAgICAgbV9uYW1lc3BhY2VVUkkgPSBzdGQ6Om1vdmUo
b3RoZXIubV9uYW1lc3BhY2VVUkkpOwotICAgICAgICAgICAgbV9tZXJnZWRQcmVkaWNhdGVzID0g
c3RkOjptb3ZlKG90aGVyLm1fbWVyZ2VkUHJlZGljYXRlcyk7CisgICAgICAgICAgICBtX2RhdGEg
PSBXVEY6Om1vdmUob3RoZXIubV9kYXRhKTsKKyAgICAgICAgICAgIG1fbmFtZXNwYWNlVVJJID0g
V1RGOjptb3ZlKG90aGVyLm1fbmFtZXNwYWNlVVJJKTsKKyAgICAgICAgICAgIG1fbWVyZ2VkUHJl
ZGljYXRlcyA9IFdURjo6bW92ZShvdGhlci5tX21lcmdlZFByZWRpY2F0ZXMpOwogICAgICAgICAg
ICAgcmV0dXJuICp0aGlzOwogICAgICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9YUGF0aFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhWYWx1ZS5o
CmluZGV4IGZmODBlMWMuLjRkYjJlZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9Y
UGF0aFZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoVmFsdWUuaApAQCAtNDQs
NyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBWYWx1ZShjb25zdCBT
dHJpbmcmIHZhbHVlKSA6IG1fdHlwZShTdHJpbmdWYWx1ZSksIG1fZGF0YShEYXRhOjpjcmVhdGUo
dmFsdWUpKSB7IH0KICAgICAgICAgICAgIFZhbHVlKGNvbnN0IGNoYXIqIHZhbHVlKSA6IG1fdHlw
ZShTdHJpbmdWYWx1ZSksIG1fZGF0YShEYXRhOjpjcmVhdGUodmFsdWUpKSB7IH0KIAotICAgICAg
ICAgICAgZXhwbGljaXQgVmFsdWUoTm9kZVNldCB2YWx1ZSkgOiBtX3R5cGUoTm9kZVNldFZhbHVl
KSwgbV9kYXRhKERhdGE6OmNyZWF0ZShzdGQ6Om1vdmUodmFsdWUpKSkgeyB9CisgICAgICAgICAg
ICBleHBsaWNpdCBWYWx1ZShOb2RlU2V0IHZhbHVlKSA6IG1fdHlwZShOb2RlU2V0VmFsdWUpLCBt
X2RhdGEoRGF0YTo6Y3JlYXRlKFdURjo6bW92ZSh2YWx1ZSkpKSB7IH0KICAgICAgICAgICAgIGV4
cGxpY2l0IFZhbHVlKE5vZGUqIHZhbHVlKSA6IG1fdHlwZShOb2RlU2V0VmFsdWUpLCBtX2RhdGEo
RGF0YTo6Y3JlYXRlKHZhbHVlKSkgeyB9CiAgICAgICAgICAgICBleHBsaWNpdCBWYWx1ZShQYXNz
UmVmUHRyPE5vZGU+IHZhbHVlKSA6IG1fdHlwZShOb2RlU2V0VmFsdWUpLCBtX2RhdGEoRGF0YTo6
Y3JlYXRlKHZhbHVlKSkgeyB9CiAKQEAgLTcwLDcgKzcwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICAgICAgc3RydWN0IERhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxEYXRhPiB7CiAg
ICAgICAgICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YT4gY3JlYXRlKCkgeyByZXR1cm4g
YWRvcHRSZWYobmV3IERhdGEpOyB9CiAgICAgICAgICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
RGF0YT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBhZG9wdFJlZihuZXcg
RGF0YShzdHJpbmcpKTsgfQotICAgICAgICAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGE+
IGNyZWF0ZShOb2RlU2V0IG5vZGVTZXQpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhKHN0ZDo6
bW92ZShub2RlU2V0KSkpOyB9CisgICAgICAgICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0
YT4gY3JlYXRlKE5vZGVTZXQgbm9kZVNldCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IERhdGEoV1RG
Ojptb3ZlKG5vZGVTZXQpKSk7IH0KICAgICAgICAgICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxE
YXRhPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlKSB7IHJldHVybiBhZG9wdFJlZihuZXcg
RGF0YShub2RlKSk7IH0KIAogICAgICAgICAgICAgICAgIFN0cmluZyBzdHJpbmc7CkBAIC03OSw3
ICs3OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIHByaXZhdGU6CiAgICAg
ICAgICAgICAgICAgRGF0YSgpIHsgfQogICAgICAgICAgICAgICAgIGV4cGxpY2l0IERhdGEoY29u
c3QgU3RyaW5nJiBzdHJpbmcpIDogc3RyaW5nKHN0cmluZykgeyB9Ci0gICAgICAgICAgICAgICAg
ZXhwbGljaXQgRGF0YShOb2RlU2V0IG5vZGVTZXQpIDogbm9kZVNldChzdGQ6Om1vdmUobm9kZVNl
dCkpIHsgfQorICAgICAgICAgICAgICAgIGV4cGxpY2l0IERhdGEoTm9kZVNldCBub2RlU2V0KSA6
IG5vZGVTZXQoV1RGOjptb3ZlKG5vZGVTZXQpKSB7IH0KICAgICAgICAgICAgICAgICBleHBsaWNp
dCBEYXRhKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSkgOiBub2RlU2V0KG5vZGUpIHsgfQogICAgICAg
ICAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1
bWVudFBhcnNlckxpYnhtbDIuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1
bWVudFBhcnNlckxpYnhtbDIuY3BwCmluZGV4IDI0MmZmYjguLmUxZGFmNDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5j
cHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBjYWxsYmFjay0+YXR0
cmlidXRlc1tpICogNSArIDRdID0gY2FsbGJhY2stPmF0dHJpYnV0ZXNbaSAqIDUgKyAzXSArIGxl
bjsKICAgICAgICAgfQogCi0gICAgICAgIG1fY2FsbGJhY2tzLmFwcGVuZChzdGQ6Om1vdmUoY2Fs
bGJhY2spKTsKKyAgICAgICAgbV9jYWxsYmFja3MuYXBwZW5kKFdURjo6bW92ZShjYWxsYmFjaykp
OwogICAgIH0KIAogICAgIHZvaWQgYXBwZW5kRW5kRWxlbWVudE5TQ2FsbGJhY2soKQpAQCAtMTQx
LDcgKzE0MSw3IEBAIHB1YmxpYzoKICAgICAgICAgY2FsbGJhY2stPnMgPSB4bWxTdHJuZHVwKHMs
IGxlbik7CiAgICAgICAgIGNhbGxiYWNrLT5sZW4gPSBsZW47CiAKLSAgICAgICAgbV9jYWxsYmFj
a3MuYXBwZW5kKHN0ZDo6bW92ZShjYWxsYmFjaykpOworICAgICAgICBtX2NhbGxiYWNrcy5hcHBl
bmQoV1RGOjptb3ZlKGNhbGxiYWNrKSk7CiAgICAgfQogCiAgICAgdm9pZCBhcHBlbmRQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb25DYWxsYmFjayhjb25zdCB4bWxDaGFyKiB0YXJnZXQsIGNvbnN0IHhtbENo
YXIqIGRhdGEpCkBAIC0xNTEsNyArMTUxLDcgQEAgcHVibGljOgogICAgICAgICBjYWxsYmFjay0+
dGFyZ2V0ID0geG1sU3RyZHVwKHRhcmdldCk7CiAgICAgICAgIGNhbGxiYWNrLT5kYXRhID0geG1s
U3RyZHVwKGRhdGEpOwogCi0gICAgICAgIG1fY2FsbGJhY2tzLmFwcGVuZChzdGQ6Om1vdmUoY2Fs
bGJhY2spKTsKKyAgICAgICAgbV9jYWxsYmFja3MuYXBwZW5kKFdURjo6bW92ZShjYWxsYmFjaykp
OwogICAgIH0KIAogICAgIHZvaWQgYXBwZW5kQ0RBVEFCbG9ja0NhbGxiYWNrKGNvbnN0IHhtbENo
YXIqIHMsIGludCBsZW4pCkBAIC0xNjEsNyArMTYxLDcgQEAgcHVibGljOgogICAgICAgICBjYWxs
YmFjay0+cyA9IHhtbFN0cm5kdXAocywgbGVuKTsKICAgICAgICAgY2FsbGJhY2stPmxlbiA9IGxl
bjsKIAotICAgICAgICBtX2NhbGxiYWNrcy5hcHBlbmQoc3RkOjptb3ZlKGNhbGxiYWNrKSk7Cisg
ICAgICAgIG1fY2FsbGJhY2tzLmFwcGVuZChXVEY6Om1vdmUoY2FsbGJhY2spKTsKICAgICB9CiAK
ICAgICB2b2lkIGFwcGVuZENvbW1lbnRDYWxsYmFjayhjb25zdCB4bWxDaGFyKiBzKQpAQCAtMTcw
LDcgKzE3MCw3IEBAIHB1YmxpYzoKIAogICAgICAgICBjYWxsYmFjay0+cyA9IHhtbFN0cmR1cChz
KTsKIAotICAgICAgICBtX2NhbGxiYWNrcy5hcHBlbmQoc3RkOjptb3ZlKGNhbGxiYWNrKSk7Cisg
ICAgICAgIG1fY2FsbGJhY2tzLmFwcGVuZChXVEY6Om1vdmUoY2FsbGJhY2spKTsKICAgICB9CiAK
ICAgICB2b2lkIGFwcGVuZEludGVybmFsU3Vic2V0Q2FsbGJhY2soY29uc3QgeG1sQ2hhciogbmFt
ZSwgY29uc3QgeG1sQ2hhciogZXh0ZXJuYWxJRCwgY29uc3QgeG1sQ2hhciogc3lzdGVtSUQpCkBA
IC0xODEsNyArMTgxLDcgQEAgcHVibGljOgogICAgICAgICBjYWxsYmFjay0+ZXh0ZXJuYWxJRCA9
IHhtbFN0cmR1cChleHRlcm5hbElEKTsKICAgICAgICAgY2FsbGJhY2stPnN5c3RlbUlEID0geG1s
U3RyZHVwKHN5c3RlbUlEKTsKIAotICAgICAgICBtX2NhbGxiYWNrcy5hcHBlbmQoc3RkOjptb3Zl
KGNhbGxiYWNrKSk7CisgICAgICAgIG1fY2FsbGJhY2tzLmFwcGVuZChXVEY6Om1vdmUoY2FsbGJh
Y2spKTsKICAgICB9CiAKICAgICB2b2lkIGFwcGVuZEVycm9yQ2FsbGJhY2soWE1MRXJyb3JzOjpF
cnJvclR5cGUgdHlwZSwgY29uc3QgeG1sQ2hhciogbWVzc2FnZSwgT3JkaW5hbE51bWJlciBsaW5l
TnVtYmVyLCBPcmRpbmFsTnVtYmVyIGNvbHVtbk51bWJlcikKQEAgLTE5Myw3ICsxOTMsNyBAQCBw
dWJsaWM6CiAgICAgICAgIGNhbGxiYWNrLT5saW5lTnVtYmVyID0gbGluZU51bWJlcjsKICAgICAg
ICAgY2FsbGJhY2stPmNvbHVtbk51bWJlciA9IGNvbHVtbk51bWJlcjsKIAotICAgICAgICBtX2Nh
bGxiYWNrcy5hcHBlbmQoc3RkOjptb3ZlKGNhbGxiYWNrKSk7CisgICAgICAgIG1fY2FsbGJhY2tz
LmFwcGVuZChXVEY6Om1vdmUoY2FsbGJhY2spKTsKICAgICB9CiAKICAgICB2b2lkIGNhbGxBbmRS
ZW1vdmVGaXJzdENhbGxiYWNrKFhNTERvY3VtZW50UGFyc2VyKiBwYXJzZXIpCkBAIC0zNjIsNyAr
MzYyLDcgQEAgY2xhc3MgT2Zmc2V0QnVmZmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKICAgICBPZmZzZXRCdWZmZXIoVmVjdG9yPGNoYXI+IGJ1ZmZlcikKLSAgICAg
ICAgOiBtX2J1ZmZlcihzdGQ6Om1vdmUoYnVmZmVyKSkKKyAgICAgICAgOiBtX2J1ZmZlcihXVEY6
Om1vdmUoYnVmZmVyKSkKICAgICAgICAgLCBtX2N1cnJlbnRPZmZzZXQoMCkKICAgICB7CiAgICAg
fQpAQCAtNDY5LDcgKzQ2OSw3IEBAIHN0YXRpYyB2b2lkKiBvcGVuRnVuYyhjb25zdCBjaGFyKiB1
cmkpCiAgICAgaWYgKCFzaG91bGRBbGxvd0V4dGVybmFsTG9hZChyZXNwb25zZS51cmwoKSkpCiAg
ICAgICAgIHJldHVybiAmZ2xvYmFsRGVzY3JpcHRvcjsKIAotICAgIHJldHVybiBuZXcgT2Zmc2V0
QnVmZmVyKHN0ZDo6bW92ZShkYXRhKSk7CisgICAgcmV0dXJuIG5ldyBPZmZzZXRCdWZmZXIoV1RG
Ojptb3ZlKGRhdGEpKTsKIH0KIAogc3RhdGljIGludCByZWFkRnVuYyh2b2lkKiBjb250ZXh0LCBj
aGFyKiBidWZmZXIsIGludCBsZW4pCkBAIC0xNTQ4LDcgKzE1NDgsNyBAQCBIYXNoTWFwPFN0cmlu
ZywgU3RyaW5nPiBwYXJzZUF0dHJpYnV0ZXMoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGJvb2wmIGF0
dHJzT0spCiAgICAgeG1sUGFyc2VDaHVuayhwYXJzZXItPmNvbnRleHQoKSwgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBjaGFyKj4oU3RyaW5nVmlldyhwYXJzZVN0cmluZykudXBjb252ZXJ0ZWRDaGFy
YWN0ZXJzKCkuZ2V0KCkpLCBwYXJzZVN0cmluZy5sZW5ndGgoKSAqIHNpemVvZihVQ2hhciksIDEp
OwogCiAgICAgYXR0cnNPSyA9IHN0YXRlLmdvdEF0dHJpYnV0ZXM7Ci0gICAgcmV0dXJuIHN0ZDo6
bW92ZShzdGF0ZS5hdHRyaWJ1dGVzKTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKHN0YXRlLmF0dHJp
YnV0ZXMpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cKaW5kZXggNWY4NmI0Zi4uYTdlOWNkMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
aW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE0LTA3LTAxICBEYW5pZWwgQmF0ZXMg
IDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgV1RGOjptb3ZlKCkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDUwMAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1YnN0aXR1dGUgV1RGOjpt
b3ZlKCkgZm9yIHN0ZDo6bW92ZSgpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRml4
ZWRQb3NpdGlvbkNvbnRlbnQubW06CisgICAgICAgICgtW1dlYkZpeGVkUG9zaXRpb25Db250ZW50
IHNldFZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnM6c3RpY2t5Q29udGFpbmVyTWFwOl0pOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudElPUy5tbToKKyAgICAgICAg
KFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudCk6
CisKIDIwMTQtMDctMDEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBbaU9TXSBDb21waWxlIGZpeCB3aXRoIHBvaW50ZXIgbG9jayBlbmFibGVk
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViRml4ZWRQ
b3NpdGlvbkNvbnRlbnQubW0gYi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJG
aXhlZFBvc2l0aW9uQ29udGVudC5tbQppbmRleCBmYTU2NmMyLi5mYWI3MzA1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29udGVu
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0
aW9uQ29udGVudC5tbQpAQCAtMTgyLDkgKzE4Miw5IEBAIFdlYkZpeGVkUG9zaXRpb25Db250ZW50
RGF0YTo6fldlYkZpeGVkUG9zaXRpb25Db250ZW50RGF0YSgpCiAgICAgICAgIGF1dG8gbGF5ZXJE
YXRhID0gc3RkOjptYWtlX3VuaXF1ZTxWaWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJEYXRhPigpOwog
CiAgICAgICAgIGxheWVyRGF0YS0+bV9lbmNsb3NpbmdBY2NlbGVyYXRlZFNjcm9sbExheWVyID0g
c3RpY2t5Q29udGFpbmVycy5nZXQobGF5ZXIpOwotICAgICAgICBsYXllckRhdGEtPm1fdmlld3Bv
cnRDb25zdHJhaW50cyA9IHN0ZDo6bW92ZShsYXllckFuZENvbnN0cmFpbnRzLnZhbHVlKTsKKyAg
ICAgICAgbGF5ZXJEYXRhLT5tX3ZpZXdwb3J0Q29uc3RyYWludHMgPSBXVEY6Om1vdmUobGF5ZXJB
bmRDb25zdHJhaW50cy52YWx1ZSk7CiAKLSAgICAgICAgX3ByaXZhdGUtPm1fdmlld3BvcnRDb25z
dHJhaW5lZExheWVycy5zZXQobGF5ZXIsIHN0ZDo6bW92ZShsYXllckRhdGEpKTsKKyAgICAgICAg
X3ByaXZhdGUtPm1fdmlld3BvcnRDb25zdHJhaW5lZExheWVycy5zZXQobGF5ZXIsIFdURjo6bW92
ZShsYXllckRhdGEpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvaW9z
L1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudElPUy5tbSBiL1NvdXJjZS9XZWJLaXQv
aW9zL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudElPUy5tbQppbmRleCBhMzdmZWYz
Li45MzhiNTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9X
ZWJJbnNwZWN0b3JDbGllbnRJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1
cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50SU9TLm1tCkBAIC0xMTAsNyArMTEwLDcgQEAgdm9pZCBX
ZWJJbnNwZWN0b3JDbGllbnQ6OmRpZFNldFNlYXJjaGluZ0Zvck5vZGUoYm9vbCBlbmFibGVkKQog
I3ByYWdtYSBtYXJrIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50IEltcGxlbWVudGF0aW9uCiAK
IFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudChX
ZWJWaWV3KiBpbnNwZWN0ZWRXZWJWaWV3LCBXZWJJbnNwZWN0b3JXaW5kb3dDb250cm9sbGVyKiB3
aW5kb3dDb250cm9sbGVyLCBJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVy
LCBQYWdlKiBmcm9udGVuZFBhZ2UsIHN0ZDo6dW5pcXVlX3B0cjxTZXR0aW5ncz4gc2V0dGluZ3Mp
Ci0gICAgOiBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsKGluc3BlY3RvckNvbnRyb2xsZXIs
ICBmcm9udGVuZFBhZ2UsIHN0ZDo6bW92ZShzZXR0aW5ncykpCisgICAgOiBJbnNwZWN0b3JGcm9u
dGVuZENsaWVudExvY2FsKGluc3BlY3RvckNvbnRyb2xsZXIsICBmcm9udGVuZFBhZ2UsIFdURjo6
bW92ZShzZXR0aW5ncykpCiB7CiAgICAgLy8gaU9TIGRvZXMgbm90IGhhdmUgYSBsb2NhbCBpbnNw
ZWN0b3IsIHRoaXMgc2hvdWxkIG5vdCBiZSByZWFjaGVkLgogICAgIG5vdEltcGxlbWVudGVkKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKaW5kZXggOTE0YzVlZi4uZDc5ZGU4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI5IEBACisyMDE0LTA3LTAxICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgV1RGOjptb3ZlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDUwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1YnN0aXR1dGUgV1RGOjptb3ZlKCkgZm9yIHN0ZDo6
bW92ZSgpLgorCisgICAgICAgICogSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbToKKyAgICAgICAg
KC1bV2ViSGlzdG9yeUl0ZW0gaW5pdEZyb21EaWN0aW9uYXJ5UmVwcmVzZW50YXRpb246XSk6Cisg
ICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lmg6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c2V0Q3VycmVudFJl
cGx5KToKKyAgICAgICAgKiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbToKKyAgICAg
ICAgKC1bV2ViTmV0c2NhcGVQbHVnaW5WaWV3IHNjaGVkdWxlVGltZXJXaXRoSW50ZXJ2YWw6cmVw
ZWF0OnRpbWVyRnVuYzpdKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbik6CisgICAgICAgIChXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAg
ICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW06CisgICAgICAgIChX
ZWJJbnNwZWN0b3JDbGllbnQ6Om9wZW5JbnNwZWN0b3JGcm9udGVuZCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3JGcm9udGVuZENsaWVudDo6V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQpOgorICAg
ICAgICAqIFdlYlZpZXcvV2ViQXJjaGl2ZS5tbToKKyAgICAgICAgKC1bV2ViQXJjaGl2ZSBpbml0
V2l0aE1haW5SZXNvdXJjZTpzdWJyZXNvdXJjZXM6c3ViZnJhbWVBcmNoaXZlczpdKToKKwogMjAx
NC0wNi0yOSAgWW9hdiBXZWlzcyAgPHlvYXZAeW9hdi53cz4KIAogICAgICAgICBBZGQgc3VwcG9y
dCBmb3IgSFRNTEltYWdlRWxlbWVudCdzIHNpemVzIGF0dHJpYnV0ZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0KaW5kZXggMzVjYmQwMS4uM2JiZmJjMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tCkBAIC0zNzQsNyAr
Mzc0LDcgQEAgV2ViSGlzdG9yeUl0ZW0gKmtpdChIaXN0b3J5SXRlbSogaXRlbSkKICAgICAgICAg
YXV0byByZWRpcmVjdFVSTHNWZWN0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPFZlY3RvcjxTdHJpbmc+
PihzaXplKTsKICAgICAgICAgZm9yIChOU1VJbnRlZ2VyIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQog
ICAgICAgICAgICAgKCpyZWRpcmVjdFVSTHNWZWN0b3IpW2ldID0gU3RyaW5nKFtyZWRpcmVjdFVS
THMgX3dlYmtpdF9zdHJpbmdBdEluZGV4OmldKTsKLSAgICAgICAgY29yZShfcHJpdmF0ZSktPnNl
dFJlZGlyZWN0VVJMcyhzdGQ6Om1vdmUocmVkaXJlY3RVUkxzVmVjdG9yKSk7CisgICAgICAgIGNv
cmUoX3ByaXZhdGUpLT5zZXRSZWRpcmVjdFVSTHMoV1RGOjptb3ZlKHJlZGlyZWN0VVJMc1ZlY3Rv
cikpOwogICAgIH0KIAogICAgIE5TQXJyYXkgKmNoaWxkRGljdHMgPSBbZGljdCBvYmplY3RGb3JL
ZXk6Y2hpbGRyZW5LZXldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9I
b3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9Q
bHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkuaAppbmRleCAzYjJhNTky
Li44NzVmN2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9O
ZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkuaApAQCAtMjUxLDcgKzI1MSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEN1cnJlbnRSZXBseSh1aW50MzJfdCByZXF1ZXN0SUQs
IHN0ZDo6dW5pcXVlX3B0cjxSZXBseT4gcmVwbHkpCiAgICAgewogICAgICAgICBBU1NFUlQoIW1f
cmVwbGllcy5jb250YWlucyhyZXF1ZXN0SUQpKTsKLSAgICAgICAgbV9yZXBsaWVzLmFkZChyZXF1
ZXN0SUQsIHN0ZDo6bW92ZShyZXBseSkpOworICAgICAgICBtX3JlcGxpZXMuYWRkKHJlcXVlc3RJ
RCwgV1RGOjptb3ZlKHJlcGx5KSk7CiAgICAgfQogICAgIAogICAgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBs
dWdpblZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2lu
Vmlldy5tbQppbmRleCBkNGY1NGExLi4wYzFiOTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtMjE2Niw3ICsyMTY2LDcg
QEAgc3RhdGljIGlubGluZSB2b2lkIGdldE5QUmVjdChjb25zdCBOU1JlY3QmIG5yLCBOUFJlY3Qm
IG5wcikKICAgICBpZiAoX3Nob3VsZEZpcmVUaW1lcnMpCiAgICAgICAgIHRpbWVyLT5zdGFydChf
aXNDb21wbGV0ZWx5T2JzY3VyZWQpOwogICAgIAotICAgICpzbG90ID0gc3RkOjptb3ZlKHRpbWVy
KTsKKyAgICAqc2xvdCA9IFdURjo6bW92ZSh0aW1lcik7CiAKICAgICByZXR1cm4gdGltZXJJRDsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQubW0KaW5kZXggOGRiZGFlMy4uNDJjNzI1ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW0KQEAgLTg2Niw3ICs4NjYsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9ucwogICAgICAgICAg
ICAgICAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yTUlNRVR5cGU6cmVzcG9uc2UubWltZVR5cGUo
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q6cmVxdWVz
dC5uc1VSTFJlcXVlc3QoVXBkYXRlSFRUUEJvZHkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmcmFtZTptX3dlYkZyYW1lLmdldCgpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGVjaXNpb25MaXN0ZW5lcjpzZXRVcFBvbGljeUxpc3RlbmVyKHN0ZDo6
bW92ZShmdW5jdGlvbikpLmdldCgpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
ZWNpc2lvbkxpc3RlbmVyOnNldFVwUG9saWN5TGlzdGVuZXIoV1RGOjptb3ZlKGZ1bmN0aW9uKSku
Z2V0KCldOwogfQogCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBv
bGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+IGZvcm1T
dGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIEZyYW1lUG9saWN5RnVuY3Rpb24gZnVuY3Rp
b24pCkBAIC04NzYsNyArODc2LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgTmF2aWdhdGkKICAgICAgICAg
ICAgIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbjphY3Rpb25EaWN0aW9uYXJ5KGFjdGlv
biwgZm9ybVN0YXRlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0
OnJlcXVlc3QubnNVUkxSZXF1ZXN0KFVwZGF0ZUhUVFBCb2R5KQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbmV3RnJhbWVOYW1lOmZyYW1lTmFtZQotICAgICAgICAgICAgICAgICAgICAg
ICAgICBkZWNpc2lvbkxpc3RlbmVyOnNldFVwUG9saWN5TGlzdGVuZXIoc3RkOjptb3ZlKGZ1bmN0
aW9uKSkuZ2V0KCldOworICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpc2lvbkxpc3RlbmVy
OnNldFVwUG9saWN5TGlzdGVuZXIoV1RGOjptb3ZlKGZ1bmN0aW9uKSkuZ2V0KCldOwogfQogCiB2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUsIEZyYW1lUG9s
aWN5RnVuY3Rpb24gZnVuY3Rpb24pCkBAIC04ODYsNyArODg2LDcgQEAgdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0
IE5hdmlnYXQKICAgICAgICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
OmFjdGlvbkRpY3Rpb25hcnkoYWN0aW9uLCBmb3JtU3RhdGUpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDpyZXF1ZXN0Lm5zVVJMUmVxdWVzdChVcGRhdGVI
VFRQQm9keSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1l
Om1fd2ViRnJhbWUuZ2V0KCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpc2lv
bkxpc3RlbmVyOnNldFVwUG9saWN5TGlzdGVuZXIoc3RkOjptb3ZlKGZ1bmN0aW9uKSkuZ2V0KCld
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2lzaW9uTGlzdGVuZXI6c2V0VXBQ
b2xpY3lMaXN0ZW5lcihXVEY6Om1vdmUoZnVuY3Rpb24pKS5nZXQoKV07CiB9CiAKIHZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmNhbmNlbFBvbGljeUNoZWNrKCkKQEAgLTkzMiw3ICs5MzIsNyBA
QCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKFBhc3NS
ZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdAogICAgIH0KIAogICAgIE5TRGljdGlvbmFyeSAqdmFs
dWVzID0gbWFrZUZvcm1GaWVsZFZhbHVlc0RpY3Rpb25hcnkoZm9ybVN0YXRlLmdldCgpKTsKLSAg
ICBDYWxsRm9ybURlbGVnYXRlKGdldFdlYlZpZXcobV93ZWJGcmFtZS5nZXQoKSksIEBzZWxlY3Rv
cihmcmFtZTpzb3VyY2VGcmFtZTp3aWxsU3VibWl0Rm9ybTp3aXRoVmFsdWVzOnN1Ym1pc3Npb25M
aXN0ZW5lcjopLCBtX3dlYkZyYW1lLmdldCgpLCBraXQoZm9ybVN0YXRlLT5zb3VyY2VEb2N1bWVu
dCgpLT5mcmFtZSgpKSwga2l0KGZvcm1TdGF0ZS0+Zm9ybSgpKSwgdmFsdWVzLCBzZXRVcFBvbGlj
eUxpc3RlbmVyKHN0ZDo6bW92ZShmdW5jdGlvbikpLmdldCgpKTsKKyAgICBDYWxsRm9ybURlbGVn
YXRlKGdldFdlYlZpZXcobV93ZWJGcmFtZS5nZXQoKSksIEBzZWxlY3RvcihmcmFtZTpzb3VyY2VG
cmFtZTp3aWxsU3VibWl0Rm9ybTp3aXRoVmFsdWVzOnN1Ym1pc3Npb25MaXN0ZW5lcjopLCBtX3dl
YkZyYW1lLmdldCgpLCBraXQoZm9ybVN0YXRlLT5zb3VyY2VEb2N1bWVudCgpLT5mcmFtZSgpKSwg
a2l0KGZvcm1TdGF0ZS0+Zm9ybSgpKSwgdmFsdWVzLCBzZXRVcFBvbGljeUxpc3RlbmVyKFdURjo6
bW92ZShmdW5jdGlvbikpLmdldCgpKTsKIH0KIAogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
cmV2ZXJ0VG9Qcm92aXNpb25hbFN0YXRlKERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCkBAIC0yMjU3
LDcgKzIyNTcsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRDcmVhdGVRdWlja0xv
b2tIYW5kbGUoV2ViQ29yZTo6UXVpY2tMb29rSGFuZGxlJiBoYQogICAgICAgICByZXR1cm4gbmls
OwogCiAgICAgX2ZyYW1lID0gZnJhbWU7Ci0gICAgX3BvbGljeUZ1bmN0aW9uID0gc3RkOjptb3Zl
KHBvbGljeUZ1bmN0aW9uKTsKKyAgICBfcG9saWN5RnVuY3Rpb24gPSBXVEY6Om1vdmUocG9saWN5
RnVuY3Rpb24pOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CkBAIC0yMjgxLDcgKzIyODEsNyBAQCB2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRDcmVhdGVRdWlja0xvb2tIYW5kbGUoV2ViQ29y
ZTo6UXVpY2tMb29rSGFuZGxlJiBoYQogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsK
IAotICAgIEZyYW1lUG9saWN5RnVuY3Rpb24gcG9saWN5RnVuY3Rpb24gPSBzdGQ6Om1vdmUoX3Bv
bGljeUZ1bmN0aW9uKTsKKyAgICBGcmFtZVBvbGljeUZ1bmN0aW9uIHBvbGljeUZ1bmN0aW9uID0g
V1RGOjptb3ZlKF9wb2xpY3lGdW5jdGlvbik7CiAgICAgX3BvbGljeUZ1bmN0aW9uID0gbnVsbHB0
cjsKIAogICAgIEFTU0VSVChwb2xpY3lGdW5jdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KaW5kZXggNzNjZTJh
My4uMTI0ODkwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViSW5zcGVjdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQpAQCAtMTUwLDcgKzE1MCw3IEBAIEluc3BlY3RvckZy
b250ZW5kQ2hhbm5lbCogV2ViSW5zcGVjdG9yQ2xpZW50OjpvcGVuSW5zcGVjdG9yRnJvbnRlbmQo
SW5zcGVjdG9yQ29uCiAgICAgbV9mcm9udGVuZENsaWVudCA9IGZyb250ZW5kQ2xpZW50LmdldCgp
OwogICAgIFJldGFpblB0cjxXZWJJbnNwZWN0b3JGcm9udGVuZD4gd2ViSW5zcGVjdG9yRnJvbnRl
bmQgPSBhZG9wdE5TKFtbV2ViSW5zcGVjdG9yRnJvbnRlbmQgYWxsb2NdIGluaXRXaXRoRnJvbnRl
bmRDbGllbnQ6ZnJvbnRlbmRDbGllbnQuZ2V0KCldKTsKICAgICBbW21fd2ViVmlldyBpbnNwZWN0
b3JdIHNldEZyb250ZW5kOndlYkluc3BlY3RvckZyb250ZW5kLmdldCgpXTsKLSAgICBtX2Zyb250
ZW5kUGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLnNldEluc3BlY3RvckZyb250ZW5kQ2xpZW50
KHN0ZDo6bW92ZShmcm9udGVuZENsaWVudCkpOworICAgIG1fZnJvbnRlbmRQYWdlLT5pbnNwZWN0
b3JDb250cm9sbGVyKCkuc2V0SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQoV1RGOjptb3ZlKGZyb250
ZW5kQ2xpZW50KSk7CiAgICAgcmV0dXJuIHRoaXM7CiB9CiAKQEAgLTIwMSw3ICsyMDEsNyBAQCB2
b2lkIFdlYkluc3BlY3RvckNsaWVudDo6cmVsZWFzZUZyb250ZW5kKCkKIAogCiBXZWJJbnNwZWN0
b3JGcm9udGVuZENsaWVudDo6V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQoV2ViVmlldyogaW5z
cGVjdGVkV2ViVmlldywgV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlciogd2luZG93Q29udHJv
bGxlciwgSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlciwgUGFnZSogZnJv
bnRlbmRQYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8U2V0dGluZ3M+IHNldHRpbmdzKQotICAgIDogSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbChpbnNwZWN0b3JDb250cm9sbGVyLCAgZnJvbnRlbmRQ
YWdlLCBzdGQ6Om1vdmUoc2V0dGluZ3MpKQorICAgIDogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRM
b2NhbChpbnNwZWN0b3JDb250cm9sbGVyLCAgZnJvbnRlbmRQYWdlLCBXVEY6Om1vdmUoc2V0dGlu
Z3MpKQogICAgICwgbV9pbnNwZWN0ZWRXZWJWaWV3KGluc3BlY3RlZFdlYlZpZXcpCiAgICAgLCBt
X3dpbmRvd0NvbnRyb2xsZXIod2luZG93Q29udHJvbGxlcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQXJjaGl2ZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViQXJjaGl2ZS5tbQppbmRleCAyZmYwODgwLi4yYjZkYTQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFyY2hpdmUubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJBcmNoaXZlLm1tCkBAIC0xODYsNyArMTg2LDcgQEAgc3RhdGljIEJP
T0wgaXNBcnJheU9mQ2xhc3MoaWQgb2JqZWN0LCBDbGFzcyBlbGVtZW50Q2xhc3MpCiAgICAgZm9y
IChXZWJBcmNoaXZlICpzdWJmcmFtZUFyY2hpdmUgaW4gc3ViZnJhbWVBcmNoaXZlcykKICAgICAg
ICAgY29yZUFyY2hpdmVzLmFwcGVuZChbc3ViZnJhbWVBcmNoaXZlLT5fcHJpdmF0ZSBjb3JlQXJj
aGl2ZV0pOwogCi0gICAgUmVmUHRyPExlZ2FjeVdlYkFyY2hpdmU+IGNvcmVBcmNoaXZlID0gTGVn
YWN5V2ViQXJjaGl2ZTo6Y3JlYXRlKGNvcmVNYWluUmVzb3VyY2UucmVsZWFzZSgpLCBzdGQ6Om1v
dmUoY29yZVJlc291cmNlcyksIHN0ZDo6bW92ZShjb3JlQXJjaGl2ZXMpKTsKKyAgICBSZWZQdHI8
TGVnYWN5V2ViQXJjaGl2ZT4gY29yZUFyY2hpdmUgPSBMZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGUo
Y29yZU1haW5SZXNvdXJjZS5yZWxlYXNlKCksIFdURjo6bW92ZShjb3JlUmVzb3VyY2VzKSwgV1RG
Ojptb3ZlKGNvcmVBcmNoaXZlcykpOwogICAgIGlmICghY29yZUFyY2hpdmUpIHsKICAgICAgICAg
W3NlbGYgcmVsZWFzZV07CiAgICAgICAgIHJldHVybiBuaWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXgg
NTJlYzdiZS4uOGQ3ODkyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE0
LTA3LTAxICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQg
V1RGOjptb3ZlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzNDUwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFN1YnN0aXR1dGUgV1RGOjptb3ZlKCkgZm9yIHN0ZDo6bW92ZSgpLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkluc3Bl
Y3RvckNsaWVudDo6b3Blbkluc3BlY3RvckZyb250ZW5kKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50OjpXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudCk6CisgICAgICAgICog
V2ViSGlzdG9yeS5jcHA6CisgICAgICAgIChjcmVhdGVVc2VySW5mb0Zyb21BcnJheSk6CisgICAg
ICAgICogV2ViSGlzdG9yeUl0ZW0uY3BwOgorICAgICAgICAoV2ViSGlzdG9yeUl0ZW06OmluaXRG
cm9tRGljdGlvbmFyeVJlcHJlc2VudGF0aW9uKToKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAg
ICAgICAgKFdlYlZpZXc6OmFkZFRvRGlydHlSZWdpb24pOgorICAgICAgICAoV2ViVmlldzo6c2Ny
b2xsQmFja2luZ1N0b3JlKToKKwogMjAxNC0wNi0yNiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHVzZSBvZiBQbGF0Zm9ybVN0cmF0ZWdpZXMgZm9y
IEdhbWVwYWQgQVBJLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKaW5kZXggN2UwYjE1OS4uMjY2ZWViMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JD
bGllbnQuY3BwCkBAIC0xNzMsNyArMTczLDcgQEAgV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRD
aGFubmVsKiBXZWJJbnNwZWN0b3JDbGllbnQ6Om9wZW5JbnNwZWN0b3JGcm9udGVuZChJbnMKICAg
ICBtX2Zyb250ZW5kUGFnZSA9IGNvcmUoZnJvbnRlbmRXZWJWaWV3LmdldCgpKTsKICAgICBhdXRv
IGZyb250ZW5kQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJJbnNwZWN0b3JGcm9udGVuZENs
aWVudD4obV9pbnNwZWN0ZWRXZWJWaWV3LCByZWludGVycHJldF9jYXN0PEhXTkQ+KG1faW5zcGVj
dGVkV2ViVmlld0hhbmRsZSksIGZyb250ZW5kSHduZCwgZnJvbnRlbmRXZWJWaWV3LCBmcm9udGVu
ZFdlYlZpZXdId25kLCB0aGlzLCBjcmVhdGVGcm9udGVuZFNldHRpbmdzKCkpOwogICAgIG1fZnJv
bnRlbmRDbGllbnQgPSBmcm9udGVuZENsaWVudC5nZXQoKTsKLSAgICBtX2Zyb250ZW5kUGFnZS0+
aW5zcGVjdG9yQ29udHJvbGxlcigpLnNldEluc3BlY3RvckZyb250ZW5kQ2xpZW50KHN0ZDo6bW92
ZShmcm9udGVuZENsaWVudCkpOworICAgIG1fZnJvbnRlbmRQYWdlLT5pbnNwZWN0b3JDb250cm9s
bGVyKCkuc2V0SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQoV1RGOjptb3ZlKGZyb250ZW5kQ2xpZW50
KSk7CiAgICAgbV9mcm9udGVuZEhhbmRsZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8T0xFX0hBTkRMRT4o
ZnJvbnRlbmRId25kKTsKICAgICByZXR1cm4gdGhpczsKIH0KQEAgLTIyNSw3ICsyMjUsNyBAQCB2
b2lkIFdlYkluc3BlY3RvckNsaWVudDo6cmVsZWFzZUZyb250ZW5kKCkKIH0KIAogV2ViSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnQ6OldlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50KFdlYlZpZXcqIGlu
c3BlY3RlZFdlYlZpZXcsIEhXTkQgaW5zcGVjdGVkV2ViVmlld0h3bmQsIEhXTkQgZnJvbnRlbmRI
d25kLCBjb25zdCBDT01QdHI8V2ViVmlldz4mIGZyb250ZW5kV2ViVmlldywgSFdORCBmcm9udGVu
ZFdlYlZpZXdId25kLCBXZWJJbnNwZWN0b3JDbGllbnQqIGluc3BlY3RvckNsaWVudCwgc3RkOjp1
bmlxdWVfcHRyPFNldHRpbmdzPiBzZXR0aW5ncykKLSAgICA6IEluc3BlY3RvckZyb250ZW5kQ2xp
ZW50TG9jYWwoJmluc3BlY3RlZFdlYlZpZXctPnBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigp
LCAgY29yZShmcm9udGVuZFdlYlZpZXcuZ2V0KCkpLCBzdGQ6Om1vdmUoc2V0dGluZ3MpKQorICAg
IDogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbCgmaW5zcGVjdGVkV2ViVmlldy0+cGFnZSgp
LT5pbnNwZWN0b3JDb250cm9sbGVyKCksICBjb3JlKGZyb250ZW5kV2ViVmlldy5nZXQoKSksIFdU
Rjo6bW92ZShzZXR0aW5ncykpCiAgICAgLCBtX2luc3BlY3RlZFdlYlZpZXcoaW5zcGVjdGVkV2Vi
VmlldykKICAgICAsIG1faW5zcGVjdGVkV2ViVmlld0h3bmQoaW5zcGVjdGVkV2ViVmlld0h3bmQp
CiAgICAgLCBtX2luc3BlY3RvckNsaWVudChpbnNwZWN0b3JDbGllbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJIaXN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkhp
c3RvcnkuY3BwCmluZGV4IDFlZDNiNTQuLmI5YTQ2YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkhpc3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkhpc3Rvcnku
Y3BwCkBAIC04Miw3ICs4Miw3IEBAIHN0YXRpYyBDT01QdHI8SVByb3BlcnR5QmFnPiBjcmVhdGVV
c2VySW5mb0Zyb21BcnJheShCU1RSIG5vdGlmaWNhdGlvblN0ciwgSVdlYkhpCiAKICAgICBIYXNo
TWFwPFN0cmluZywgVmVjdG9yPENPTVB0cjxJV2ViSGlzdG9yeUl0ZW0+Pj4gZGljdGlvbmFyeTsK
ICAgICBTdHJpbmcga2V5KG5vdGlmaWNhdGlvblN0ciwgOjpTeXNTdHJpbmdMZW4obm90aWZpY2F0
aW9uU3RyKSk7Ci0gICAgZGljdGlvbmFyeS5zZXQoa2V5LCBzdGQ6Om1vdmUoYXJyYXlJdGVtKSk7
CisgICAgZGljdGlvbmFyeS5zZXQoa2V5LCBXVEY6Om1vdmUoYXJyYXlJdGVtKSk7CiAgICAgcmV0
dXJuIENPTVB0cjxJUHJvcGVydHlCYWc+KEFkb3B0Q09NLCBDT01Qcm9wZXJ0eUJhZzxWZWN0b3I8
Q09NUHRyPElXZWJIaXN0b3J5SXRlbT4+Pjo6YWRvcHQoZGljdGlvbmFyeSkpOwogI2VuZGlmCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJIaXN0b3J5SXRlbS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJIaXN0b3J5SXRlbS5jcHAKaW5kZXggMGYzNDYzZC4uOWI5OTA2YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViSGlzdG9yeUl0ZW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkhpc3RvcnlJdGVtLmNwcApAQCAtMTI4LDcgKzEyOCw3IEBAIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViSGlzdG9yeUl0ZW06OmluaXRGcm9tRGljdGlvbmFy
eVJlcHJlc2VudGF0aW9uKHZvaWQqCiAgICAgICAgIG1faGlzdG9yeUl0ZW0tPnNldExhc3RWaXNp
dFdhc0ZhaWx1cmUodHJ1ZSk7CiAKICAgICBpZiAocmVkaXJlY3RVUkxzVmVjdG9yLmdldCgpKQot
ICAgICAgICBtX2hpc3RvcnlJdGVtLT5zZXRSZWRpcmVjdFVSTHMoc3RkOjptb3ZlKHJlZGlyZWN0
VVJMc1ZlY3RvcikpOworICAgICAgICBtX2hpc3RvcnlJdGVtLT5zZXRSZWRpcmVjdFVSTHMoV1RG
Ojptb3ZlKHJlZGlyZWN0VVJMc1ZlY3RvcikpOwogCiAgICAgcmV0dXJuIFNfT0s7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYlZpZXcuY3BwCmluZGV4IDRhMjZkZGYuLjdlMzYwOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3Bw
CkBAIC04NDgsNyArODQ4LDcgQEAgdm9pZCBXZWJWaWV3OjphZGRUb0RpcnR5UmVnaW9uKGNvbnN0
IEludFJlY3QmIGRpcnR5UmVjdCkKIAogICAgIGF1dG8gbmV3UmVnaW9uID0gYWRvcHRHRElPYmpl
Y3QoOjpDcmVhdGVSZWN0UmduKGRpcnR5UmVjdC54KCksIGRpcnR5UmVjdC55KCksCiAgICAgICAg
IGRpcnR5UmVjdC5tYXhYKCksIGRpcnR5UmVjdC5tYXhZKCkpKTsKLSAgICBhZGRUb0RpcnR5UmVn
aW9uKHN0ZDo6bW92ZShuZXdSZWdpb24pKTsKKyAgICBhZGRUb0RpcnR5UmVnaW9uKFdURjo6bW92
ZShuZXdSZWdpb24pKTsKIH0KIAogdm9pZCBXZWJWaWV3OjphZGRUb0RpcnR5UmVnaW9uKEdESU9i
amVjdDxIUkdOPiBuZXdSZWdpb24pCkBAIC04NjIsOSArODYyLDkgQEAgdm9pZCBXZWJWaWV3Ojph
ZGRUb0RpcnR5UmVnaW9uKEdESU9iamVjdDxIUkdOPiBuZXdSZWdpb24pCiAgICAgaWYgKG1fYmFj
a2luZ1N0b3JlRGlydHlSZWdpb24pIHsKICAgICAgICAgYXV0byBjb21iaW5lZFJlZ2lvbiA9IGFk
b3B0R0RJT2JqZWN0KDo6Q3JlYXRlUmVjdFJnbigwLCAwLCAwLCAwKSk7CiAgICAgICAgIDo6Q29t
YmluZVJnbihjb21iaW5lZFJlZ2lvbi5nZXQoKSwgbV9iYWNraW5nU3RvcmVEaXJ0eVJlZ2lvbi0+
Z2V0KCksIG5ld1JlZ2lvbi5nZXQoKSwgUkdOX09SKTsKLSAgICAgICAgbV9iYWNraW5nU3RvcmVE
aXJ0eVJlZ2lvbiA9IFNoYXJlZEdESU9iamVjdDxIUkdOPjo6Y3JlYXRlKHN0ZDo6bW92ZShjb21i
aW5lZFJlZ2lvbikpOworICAgICAgICBtX2JhY2tpbmdTdG9yZURpcnR5UmVnaW9uID0gU2hhcmVk
R0RJT2JqZWN0PEhSR04+OjpjcmVhdGUoV1RGOjptb3ZlKGNvbWJpbmVkUmVnaW9uKSk7CiAgICAg
fSBlbHNlCi0gICAgICAgIG1fYmFja2luZ1N0b3JlRGlydHlSZWdpb24gPSBTaGFyZWRHRElPYmpl
Y3Q8SFJHTj46OmNyZWF0ZShzdGQ6Om1vdmUobmV3UmVnaW9uKSk7CisgICAgICAgIG1fYmFja2lu
Z1N0b3JlRGlydHlSZWdpb24gPSBTaGFyZWRHRElPYmplY3Q8SFJHTj46OmNyZWF0ZShXVEY6Om1v
dmUobmV3UmVnaW9uKSk7CiAKICAgICBpZiAobV91aURlbGVnYXRlUHJpdmF0ZSkKICAgICAgICAg
bV91aURlbGVnYXRlUHJpdmF0ZS0+d2ViVmlld0RpZEludmFsaWRhdGUodGhpcyk7CkBAIC05MTAs
NyArOTEwLDcgQEAgdm9pZCBXZWJWaWV3OjpzY3JvbGxCYWNraW5nU3RvcmUoRnJhbWVWaWV3KiBm
cmFtZVZpZXcsIGludCBkeCwgaW50IGR5LCBjb25zdCBJbnQKICAgICBHZGlGbHVzaCgpOwogCiAg
ICAgLy8gQWRkIHRoZSBkaXJ0eSByZWdpb24gdG8gdGhlIGJhY2tpbmcgc3RvcmUncyBkaXJ0eSBy
ZWdpb24uCi0gICAgYWRkVG9EaXJ0eVJlZ2lvbihzdGQ6Om1vdmUodXBkYXRlUmVnaW9uKSk7Cisg
ICAgYWRkVG9EaXJ0eVJlZ2lvbihXVEY6Om1vdmUodXBkYXRlUmVnaW9uKSk7CiAKICAgICBpZiAo
bV91aURlbGVnYXRlUHJpdmF0ZSkKICAgICAgICAgbV91aURlbGVnYXRlUHJpdmF0ZS0+d2ViVmll
d1Njcm9sbGVkKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDIwYTAwNzAuLjIyODcyOTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzNSBAQAorMjAxNC0wNy0wMSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0Bh
cHBsZS5jb20+CisKKyAgICAgICAgQWRkIFdURjo6bW92ZSgpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ1MDAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdWJzdGl0dXRlIFdURjo6bW92ZSgpIGZvciBz
dGQ6Om1vdmUoKS4KKworICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3Mu
Y3BwOgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJh
c2UuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZp
Y2UvTmV0d29ya1NlcnZpY2VFbnRyeVBvaW50Lm1tOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAqIFBsYXRmb3Jt
L0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudERl
Y29kZXIuY3BwOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcDoKKyAgICAg
ICAgKiBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9I
YW5kbGVNZXNzYWdlLmg6CisgICAgICAgICogUGxhdGZvcm0vSVBDL01lc3NhZ2VEZWNvZGVyLmNw
cDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvTWVzc2FnZVNlbmRlci5jcHA6CisgICAgICAgICog
UGxhdGZvcm0vSVBDL01lc3NhZ2VTZW5kZXIuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvbWFj
L0Nvbm5lY3Rpb25NYWMubW06CisgICAgICAgICogUGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlv
blVuaXguY3BwOgorICAgICAgICAqIFBsYXRmb3JtL2VmbC9EaXNwYXRjaFF1ZXVlRWZsLmNwcDoK
KyAgICAgICAgKiBQbGF0Zm9ybS9lZmwvRGlzcGF0Y2hRdWV1ZVdvcmtJdGVtRWZsLmg6CisgICAg
ICAgICogUGxhdGZvcm0vZWZsL1dvcmtRdWV1ZUVmbC5jcHA6CisgICAgICAgICogUGxhdGZvcm0v
Z3RrL1dvcmtRdWV1ZUd0ay5jcHA6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50
L21hYy9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tOgorICAgICAgICAqIFBs
dWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgIFsuLi5dCisKIDIw
MTQtMDctMDEgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBCdWls
ZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJh
c2VQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVBy
b2Nlc3MuY3BwCmluZGV4IGZhZGQyMzUuLjNjMDc4YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCkBAIC0xMjksNyArMTI5LDcg
QEAgdm9pZCBEYXRhYmFzZVByb2Nlc3M6OnBvc3REYXRhYmFzZVRhc2soc3RkOjp1bmlxdWVfcHRy
PEFzeW5jVGFzaz4gdGFzaykKIAogICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2RhdGFiYXNlVGFz
a011dGV4KTsKIAotICAgIG1fZGF0YWJhc2VUYXNrcy5hcHBlbmQoc3RkOjptb3ZlKHRhc2spKTsK
KyAgICBtX2RhdGFiYXNlVGFza3MuYXBwZW5kKFdURjo6bW92ZSh0YXNrKSk7CiAKICAgICBtX3F1
ZXVlLT5kaXNwYXRjaChiaW5kKCZEYXRhYmFzZVByb2Nlc3M6OnBlcmZvcm1OZXh0RGF0YWJhc2VU
YXNrLCB0aGlzKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nl
c3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFi
YXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCmluZGV4IGY3MmI5NGUu
LmM0YjM2ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRl
eGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNl
UHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCkBAIC0zMTcsNyArMzE3LDcg
QEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cG9zdFRyYW5zYWN0aW9uT3BlcmF0aW9uKGNvbnN0
IElEQklkZW50aWZpZXImIHRyYW5zYWN0aW8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IHBvc3REYXRhYmFzZVRhc2soc3RkOjptb3ZlKHRhc2spKTsKKyAgICBwb3N0RGF0YWJhc2VUYXNr
KFdURjo6bW92ZSh0YXNrKSk7CiAKICAgICBSZWZQdHI8QXN5bmNSZXF1ZXN0PiByZXF1ZXN0ID0g
QXN5bmNSZXF1ZXN0SW1wbDxib29sPjo6Y3JlYXRlKFtzdWNjZXNzQ2FsbGJhY2tdKGJvb2wgc3Vj
Y2VzcykgewogICAgICAgICBzdWNjZXNzQ2FsbGJhY2soc3VjY2Vzcyk7CkBAIC0xMDgxLDcgKzEw
ODEsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwb3N0TWFpblRocmVhZFRhc2soc3RkOjp1
bmlxdWVfcHRyPEFzeW5jVGFzaz4gdGFzaywgRGF0YQogCiAgICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fbWFpblRocmVhZFRhc2tNdXRleCk7CiAKLSAgICBtX21haW5UaHJlYWRUYXNrcy5hcHBlbmQo
c3RkOjptb3ZlKHRhc2spKTsKKyAgICBtX21haW5UaHJlYWRUYXNrcy5hcHBlbmQoV1RGOjptb3Zl
KHRhc2spKTsKIAogICAgIC8vIEJhbGFuY2VkIGJ5IGFuIGFkb3B0UmVmKCkgaW4gOjpwZXJmb3Jt
TmV4dE1haW5UaHJlYWRUYXNrCiAgICAgcmVmKCk7CkBAIC0xMTI4LDcgKzExMjgsNyBAQCB2b2lk
IFVuaXF1ZUlEQkRhdGFiYXNlOjpwb3N0RGF0YWJhc2VUYXNrKHN0ZDo6dW5pcXVlX3B0cjxBc3lu
Y1Rhc2s+IHRhc2ssIERhdGFiYQogCiAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZGF0YWJhc2VU
YXNrTXV0ZXgpOwogCi0gICAgbV9kYXRhYmFzZVRhc2tzLmFwcGVuZChzdGQ6Om1vdmUodGFzaykp
OworICAgIG1fZGF0YWJhc2VUYXNrcy5hcHBlbmQoV1RGOjptb3ZlKHRhc2spKTsKIAogICAgIERh
dGFiYXNlUHJvY2Vzczo6c2hhcmVkKCkucXVldWUoKS5kaXNwYXRjaChiaW5kKCZVbmlxdWVJREJE
YXRhYmFzZTo6cGVyZm9ybU5leHREYXRhYmFzZVRhc2ssIHRoaXMpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2Uv
TmV0d29ya1NlcnZpY2VFbnRyeVBvaW50Lm1tIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9OZXR3b3JrU2VydmljZUVudHJ5UG9pbnQubW0K
aW5kZXggYmU3M2JjYS4uNjI4ZDJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9OZXR3b3JrU2VydmljZUVudHJ5UG9p
bnQubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMv
WFBDU2VydmljZS9OZXR3b3JrU2VydmljZUVudHJ5UG9pbnQubW0KQEAgLTM1LDcgKzM1LDcgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBOZXR3b3JrU2VydmljZUluaXRpYWxpemVyRGVsZWdh
dGUgOiBwdWJsaWMgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGUgewogcHVibGljOgogICAg
IE5ldHdvcmtTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZShJUEM6OlhQQ1B0cjx4cGNfY29ubmVj
dGlvbl90PiBjb25uZWN0aW9uLCB4cGNfb2JqZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdlKQotICAg
ICAgICA6IFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlKHN0ZDo6bW92ZShjb25uZWN0aW9u
KSwgaW5pdGlhbGl6ZXJNZXNzYWdlKQorICAgICAgICA6IFhQQ1NlcnZpY2VJbml0aWFsaXplckRl
bGVnYXRlKFdURjo6bW92ZShjb25uZWN0aW9uKSwgaW5pdGlhbGl6ZXJNZXNzYWdlKQogICAgIHsK
ICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRmls
ZUFQSS9OZXR3b3JrQmxvYlJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5jcHAKaW5kZXggOWIzMzlmZC4uYzYwMTg4
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRmlsZUFQSS9OZXR3
b3JrQmxvYlJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9G
aWxlQVBJL05ldHdvcmtCbG9iUmVnaXN0cnkuY3BwCkBAIC02Myw3ICs2Myw3IEBAIHZvaWQgTmV0
d29ya0Jsb2JSZWdpc3RyeTo6cmVnaXN0ZXJGaWxlQmxvYlVSTChOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyogY29uCiAKIHZvaWQgTmV0d29ya0Jsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9i
VVJMKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBjb25uZWN0aW9uLCBjb25zdCBVUkwm
IHVybCwgVmVjdG9yPFdlYkNvcmU6OkJsb2JQYXJ0PiBibG9iUGFydHMsIGNvbnN0IFN0cmluZyYg
Y29udGVudFR5cGUpCiB7Ci0gICAgYmxvYlJlZ2lzdHJ5KCkucmVnaXN0ZXJCbG9iVVJMKHVybCwg
c3RkOjptb3ZlKGJsb2JQYXJ0cyksIGNvbnRlbnRUeXBlKTsKKyAgICBibG9iUmVnaXN0cnkoKS5y
ZWdpc3RlckJsb2JVUkwodXJsLCBXVEY6Om1vdmUoYmxvYlBhcnRzKSwgY29udGVudFR5cGUpOwog
CiAgICAgQVNTRVJUKCFtX2Jsb2JzRm9yQ29ubmVjdGlvbi5nZXQoY29ubmVjdGlvbikuY29udGFp
bnModXJsKSk7CiAgICAgQmxvYkZvckNvbm5lY3Rpb25NYXA6Oml0ZXJhdG9yIG1hcEl0ZXJhdG9y
ID0gbV9ibG9ic0ZvckNvbm5lY3Rpb24uZmluZChjb25uZWN0aW9uKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcAppbmRleCA2ZDIyMTAzLi44ZWRkNzNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwCkBAIC0yMjksNyArMjI5LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6cmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmIHVybCwgY29uc3QgU3QK
IAogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJCbG9iVVJMKGNv
bnN0IFVSTCYgdXJsLCBWZWN0b3I8QmxvYlBhcnQ+IGJsb2JQYXJ0cywgY29uc3QgU3RyaW5nJiBj
b250ZW50VHlwZSkKIHsKLSAgICBOZXR3b3JrQmxvYlJlZ2lzdHJ5OjpzaGFyZWQoKS5yZWdpc3Rl
ckJsb2JVUkwodGhpcywgdXJsLCBzdGQ6Om1vdmUoYmxvYlBhcnRzKSwgY29udGVudFR5cGUpOwor
ICAgIE5ldHdvcmtCbG9iUmVnaXN0cnk6OnNoYXJlZCgpLnJlZ2lzdGVyQmxvYlVSTCh0aGlzLCB1
cmwsIFdURjo6bW92ZShibG9iUGFydHMpLCBjb250ZW50VHlwZSk7CiB9CiAKIHZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlZ2lzdGVyQmxvYlVSTEZyb21VUkwoY29uc3QgVVJM
JiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
QXJndW1lbnRDb2RlcnMuaAppbmRleCA3ZjU0OGUxLi43NTUzNmU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaApAQCAtNzcsNyArNzcsNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXVEY6Ok9wdGlvbmFsPFQ+PiB7
CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodmFsdWUpKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgICAgIG9wdGlvbmFsID0gc3RkOjptb3ZlKHZhbHVlKTsKKyAgICAgICAg
b3B0aW9uYWwgPSBXVEY6Om1vdmUodmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
CiB9OwpAQCAtMTQ4LDcgKzE0OCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxp
bmVDYXBhY2l0eT4gc3RydWN0IFZlY3RvckFyZ3VtZW50Q29kZXI8ZmFsc2UsIFQsCiAgICAgICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGVsZW1lbnQpKQogICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgdG1wLmFwcGVuZChzdGQ6Om1vdmUo
ZWxlbWVudCkpOworICAgICAgICAgICAgdG1wLmFwcGVuZChXVEY6Om1vdmUoZWxlbWVudCkpOwog
ICAgICAgICB9CiAKICAgICAgICAgdG1wLnNocmlua1RvRml0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnREZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudERlY29kZXIuY3BwCmluZGV4IDZkMzk2YmUuLjQxMDVh
NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudERlY29k
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudERlY29kZXIu
Y3BwCkBAIC00MCw3ICs0MCw3IEBAIEFyZ3VtZW50RGVjb2Rlcjo6QXJndW1lbnREZWNvZGVyKGNv
bnN0IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90IGJ1ZmZlclNpemUsIFZlY3RvCiB7CiAgICAgaW5p
dGlhbGl6ZShidWZmZXIsIGJ1ZmZlclNpemUpOwogCi0gICAgbV9hdHRhY2htZW50cyA9IHN0ZDo6
bW92ZShhdHRhY2htZW50cyk7CisgICAgbV9hdHRhY2htZW50cyA9IFdURjo6bW92ZShhdHRhY2ht
ZW50cyk7CiB9CiAKIEFyZ3VtZW50RGVjb2Rlcjo6fkFyZ3VtZW50RGVjb2RlcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKaW5kZXggMjkyYWFhNy4uMGNjNTQ4
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcApAQCAtMTU5
LDcgKzE1OSw3IEBAIGJvb2wgQ29ubmVjdGlvbjo6U3luY01lc3NhZ2VTdGF0ZTo6cHJvY2Vzc0lu
Y29taW5nTWVzc2FnZShDb25uZWN0aW9uKiBjb25uZWN0aW9uCiAKICAgICBDb25uZWN0aW9uQW5k
SW5jb21pbmdNZXNzYWdlIGNvbm5lY3Rpb25BbmRJbmNvbWluZ01lc3NhZ2U7CiAgICAgY29ubmVj
dGlvbkFuZEluY29taW5nTWVzc2FnZS5jb25uZWN0aW9uID0gY29ubmVjdGlvbjsKLSAgICBjb25u
ZWN0aW9uQW5kSW5jb21pbmdNZXNzYWdlLm1lc3NhZ2UgPSBzdGQ6Om1vdmUobWVzc2FnZSk7Cisg
ICAgY29ubmVjdGlvbkFuZEluY29taW5nTWVzc2FnZS5tZXNzYWdlID0gV1RGOjptb3ZlKG1lc3Nh
Z2UpOwogCiAgICAgewogICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CkBAIC0x
NjcsNyArMTY3LDcgQEAgYm9vbCBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlOjpwcm9jZXNz
SW5jb21pbmdNZXNzYWdlKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24KICAgICAgICAgaWYgKG1fZGlk
U2NoZWR1bGVEaXNwYXRjaE1lc3NhZ2VzV29ya1NldC5hZGQoY29ubmVjdGlvbikuaXNOZXdFbnRy
eSkKICAgICAgICAgICAgIG1fcnVuTG9vcC5kaXNwYXRjaChiaW5kKCZTeW5jTWVzc2FnZVN0YXRl
OjpkaXNwYXRjaE1lc3NhZ2VBbmRSZXNldERpZFNjaGVkdWxlRGlzcGF0Y2hNZXNzYWdlc0ZvckNv
bm5lY3Rpb24sIHRoaXMsIFJlZlB0cjxDb25uZWN0aW9uPihjb25uZWN0aW9uKSkpOwogCi0gICAg
ICAgIG1fbWVzc2FnZXNUb0Rpc3BhdGNoV2hpbGVXYWl0aW5nRm9yU3luY1JlcGx5LmFwcGVuZChz
dGQ6Om1vdmUoY29ubmVjdGlvbkFuZEluY29taW5nTWVzc2FnZSkpOworICAgICAgICBtX21lc3Nh
Z2VzVG9EaXNwYXRjaFdoaWxlV2FpdGluZ0ZvclN5bmNSZXBseS5hcHBlbmQoV1RGOjptb3ZlKGNv
bm5lY3Rpb25BbmRJbmNvbWluZ01lc3NhZ2UpKTsKICAgICB9CiAKICAgICB3YWtlVXBDbGllbnRS
dW5Mb29wKCk7CkBAIC0xOTQsMTggKzE5NCwxOCBAQCB2b2lkIENvbm5lY3Rpb246OlN5bmNNZXNz
YWdlU3RhdGU6OmRpc3BhdGNoTWVzc2FnZXMoQ29ubmVjdGlvbiogYWxsb3dlZENvbm5lY3Rpbwog
ICAgICAgICBpZiAoYWxsb3dlZENvbm5lY3Rpb24gJiYgYWxsb3dlZENvbm5lY3Rpb24gIT0gY29u
bmVjdGlvbkFuZEluY29taW5nTWVzc2FnZS5jb25uZWN0aW9uKSB7CiAgICAgICAgICAgICAvLyBU
aGlzIGluY29taW5nIG1lc3NhZ2UgYmVsb25ncyB0byBhbm90aGVyIGNvbm5lY3Rpb24gYW5kIHdl
IGRvbid0IHdhbnQgdG8gZGlzcGF0Y2ggaXQgbm93CiAgICAgICAgICAgICAvLyBzbyBtYXJrIGl0
IHRvIGJlIHB1dCBiYWNrIGluIHRoZSBtZXNzYWdlIHF1ZXVlLgotICAgICAgICAgICAgbWVzc2Fn
ZXNUb1B1dEJhY2suYXBwZW5kKHN0ZDo6bW92ZShjb25uZWN0aW9uQW5kSW5jb21pbmdNZXNzYWdl
KSk7CisgICAgICAgICAgICBtZXNzYWdlc1RvUHV0QmFjay5hcHBlbmQoV1RGOjptb3ZlKGNvbm5l
Y3Rpb25BbmRJbmNvbWluZ01lc3NhZ2UpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICB9CiAKLSAgICAgICAgY29ubmVjdGlvbkFuZEluY29taW5nTWVzc2FnZS5jb25uZWN0aW9uLT5k
aXNwYXRjaE1lc3NhZ2Uoc3RkOjptb3ZlKGNvbm5lY3Rpb25BbmRJbmNvbWluZ01lc3NhZ2UubWVz
c2FnZSkpOworICAgICAgICBjb25uZWN0aW9uQW5kSW5jb21pbmdNZXNzYWdlLmNvbm5lY3Rpb24t
PmRpc3BhdGNoTWVzc2FnZShXVEY6Om1vdmUoY29ubmVjdGlvbkFuZEluY29taW5nTWVzc2FnZS5t
ZXNzYWdlKSk7CiAgICAgfQogCiAgICAgaWYgKCFtZXNzYWdlc1RvUHV0QmFjay5pc0VtcHR5KCkp
IHsKICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgICAgIGZvciAo
YXV0byYgbWVzc2FnZSA6IG1lc3NhZ2VzVG9QdXRCYWNrKQotICAgICAgICAgICAgbV9tZXNzYWdl
c1RvRGlzcGF0Y2hXaGlsZVdhaXRpbmdGb3JTeW5jUmVwbHkuYXBwZW5kKHN0ZDo6bW92ZShtZXNz
YWdlKSk7CisgICAgICAgICAgICBtX21lc3NhZ2VzVG9EaXNwYXRjaFdoaWxlV2FpdGluZ0ZvclN5
bmNSZXBseS5hcHBlbmQoV1RGOjptb3ZlKG1lc3NhZ2UpKTsKICAgICB9CiB9CiAKQEAgLTMyMiw3
ICszMjIsNyBAQCB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoV29ya1F1ZXVlTWVzc2FnZVJlY2Vp
dmVyTWVzc2FnZShXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZQogICAgIEFTU0VSVCghZGVjb2Rlci0+
aXNJbnZhbGlkKCkpOwogCiAgICAgaWYgKHJlcGx5RW5jb2RlcikKLSAgICAgICAgc2VuZFN5bmNS
ZXBseShzdGQ6Om1vdmUocmVwbHlFbmNvZGVyKSk7CisgICAgICAgIHNlbmRTeW5jUmVwbHkoV1RG
Ojptb3ZlKHJlcGx5RW5jb2RlcikpOwogfQogCiB2b2lkIENvbm5lY3Rpb246OnNldERpZENsb3Nl
T25Db25uZWN0aW9uV29ya1F1ZXVlQ2FsbGJhY2soRGlkQ2xvc2VPbkNvbm5lY3Rpb25Xb3JrUXVl
dWVDYWxsYmFjayBjYWxsYmFjaykKQEAgLTM3Nyw3ICszNzcsNyBAQCBib29sIENvbm5lY3Rpb246
OnNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlciwgdW5z
aWduZWQgbQogCiAgICAgewogICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9vdXRnb2luZ01l
c3NhZ2VzTG9jayk7Ci0gICAgICAgIG1fb3V0Z29pbmdNZXNzYWdlcy5hcHBlbmQoc3RkOjptb3Zl
KGVuY29kZXIpKTsKKyAgICAgICAgbV9vdXRnb2luZ01lc3NhZ2VzLmFwcGVuZChXVEY6Om1vdmUo
ZW5jb2RlcikpOwogICAgIH0KICAgICAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGFkZCBhIGJv
b2xlYW4gZmxhZyBzbyB3ZSBkb24ndCBjYWxsIHRoaXMgd2hlbiB3b3JrIGhhcyBhbHJlYWR5IGJl
ZW4gc2NoZWR1bGVkLgpAQCAtMzg3LDcgKzM4Nyw3IEBAIGJvb2wgQ29ubmVjdGlvbjo6c2VuZE1l
c3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyLCB1bnNpZ25lZCBt
CiAKIGJvb2wgQ29ubmVjdGlvbjo6c2VuZFN5bmNSZXBseShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2Fn
ZUVuY29kZXI+IGVuY29kZXIpCiB7Ci0gICAgcmV0dXJuIHNlbmRNZXNzYWdlKHN0ZDo6bW92ZShl
bmNvZGVyKSk7CisgICAgcmV0dXJuIHNlbmRNZXNzYWdlKFdURjo6bW92ZShlbmNvZGVyKSk7CiB9
CiAKIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGlvbjo6d2FpdEZvck1l
c3NhZ2UoU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFN0cmluZ1JlZmVyZW5j
ZSBtZXNzYWdlTmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgc3RkOjpjaHJvbm86Om1pbGxp
c2Vjb25kcyB0aW1lb3V0LCB1bnNpZ25lZCB3YWl0Rm9yTWVzc2FnZUZsYWdzKQpAQCAtNDAyLDcg
KzQwMiw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGlvbjo6d2Fp
dEZvck1lc3NhZ2UoU3RyaW5nUmVmZXJlbmNlIG1lc3NhCiAgICAgICAgICAgICBzdGQ6OnVuaXF1
ZV9wdHI8TWVzc2FnZURlY29kZXI+JiBtZXNzYWdlID0gKml0OwogCiAgICAgICAgICAgICBpZiAo
bWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IG1lc3NhZ2VSZWNlaXZlck5hbWUgJiYg
bWVzc2FnZS0+bWVzc2FnZU5hbWUoKSA9PSBtZXNzYWdlTmFtZSAmJiBtZXNzYWdlLT5kZXN0aW5h
dGlvbklEKCkgPT0gZGVzdGluYXRpb25JRCkgewotICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxNZXNzYWdlRGVjb2Rlcj4gcmV0dXJuZWRNZXNzYWdlID0gc3RkOjptb3ZlKG1lc3NhZ2Up
OworICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gcmV0dXJu
ZWRNZXNzYWdlID0gV1RGOjptb3ZlKG1lc3NhZ2UpOwogCiAgICAgICAgICAgICAgICAgbV9pbmNv
bWluZ01lc3NhZ2VzLnJlbW92ZShpdCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJldHVybmVk
TWVzc2FnZTsKQEAgLTQyNiw3ICs0MjYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29k
ZXI+IENvbm5lY3Rpb246OndhaXRGb3JNZXNzYWdlKFN0cmluZ1JlZmVyZW5jZSBtZXNzYQogICAg
ICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobV93YWl0Rm9yTWVzc2FnZU11
dGV4KTsKIAogICAgICAgICBpZiAobV93YWl0aW5nRm9yTWVzc2FnZS0+ZGVjb2RlcikgewotICAg
ICAgICAgICAgYXV0byBkZWNvZGVyID0gc3RkOjptb3ZlKG1fd2FpdGluZ0Zvck1lc3NhZ2UtPmRl
Y29kZXIpOworICAgICAgICAgICAgYXV0byBkZWNvZGVyID0gV1RGOjptb3ZlKG1fd2FpdGluZ0Zv
ck1lc3NhZ2UtPmRlY29kZXIpOwogICAgICAgICAgICAgbV93YWl0aW5nRm9yTWVzc2FnZSA9IG51
bGxwdHI7CiAgICAgICAgICAgICByZXR1cm4gZGVjb2RlcjsKICAgICAgICAgfQpAQCAtNDQ4LDcg
KzQ0OCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGlvbjo6c2Vu
ZFN5bmNNZXNzYWdlKHVpbnQ2NF90IHN5bmNSZXF1ZXN0CiAgICAgaWYgKCZSdW5Mb29wOjpjdXJy
ZW50KCkgIT0gJm1fY2xpZW50UnVuTG9vcCkgewogICAgICAgICAvLyBObyBmbGFncyBhcmUgc3Vw
cG9ydGVkIGZvciBzeW5jaHJvbm91cyBtZXNzYWdlcyBzZW50IGZyb20gc2Vjb25kYXJ5IHRocmVh
ZHMuCiAgICAgICAgIEFTU0VSVCghc3luY1NlbmRGbGFncyk7Ci0gICAgICAgIHJldHVybiBzZW5k
U3luY01lc3NhZ2VGcm9tU2Vjb25kYXJ5VGhyZWFkKHN5bmNSZXF1ZXN0SUQsIHN0ZDo6bW92ZShl
bmNvZGVyKSwgdGltZW91dCk7CisgICAgICAgIHJldHVybiBzZW5kU3luY01lc3NhZ2VGcm9tU2Vj
b25kYXJ5VGhyZWFkKHN5bmNSZXF1ZXN0SUQsIFdURjo6bW92ZShlbmNvZGVyKSwgdGltZW91dCk7
CiAgICAgfQogCiAgICAgaWYgKCFpc1ZhbGlkKCkpIHsKQEAgLTQ3MCw3ICs0NzAsNyBAQCBzdGQ6
OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5lY3Rpb246OnNlbmRTeW5jTWVzc2FnZSh1
aW50NjRfdCBzeW5jUmVxdWVzdAogICAgICsrbV9pblNlbmRTeW5jQ291bnQ7CiAKICAgICAvLyBG
aXJzdCBzZW5kIHRoZSBtZXNzYWdlLgotICAgIHNlbmRNZXNzYWdlKHN0ZDo6bW92ZShlbmNvZGVy
KSwgRGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKKyAgICBzZW5k
TWVzc2FnZShXVEY6Om1vdmUoZW5jb2RlciksIERpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseSk7CiAKICAgICAvLyBUaGVuIHdhaXQgZm9yIGEgcmVwbHkuIFdhaXRpbmcg
Zm9yIGEgcmVwbHkgY291bGQgaW52b2x2ZSBkaXNwYXRjaGluZyBpbmNvbWluZyBzeW5jIG1lc3Nh
Z2VzLCBzbwogICAgIC8vIGtlZXAgYW4gZXh0cmEgcmVmZXJlbmNlIHRvIHRoZSBjb25uZWN0aW9u
IGhlcmUgaW4gY2FzZSBpdCdzIGludmFsaWRhdGVkLgpAQCAtNTExLDcgKzUxMSw3IEBAIHN0ZDo6
dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGlvbjo6c2VuZFN5bmNNZXNzYWdlRnJv
bVNlY29uZGFyeVRocmVhZCh1CiAgICAgICAgIG1fc2Vjb25kYXJ5VGhyZWFkUGVuZGluZ1N5bmNS
ZXBseU1hcC5hZGQoc3luY1JlcXVlc3RJRCwgJnBlbmRpbmdSZXBseSk7CiAgICAgfQogCi0gICAg
c2VuZE1lc3NhZ2Uoc3RkOjptb3ZlKGVuY29kZXIpLCAwKTsKKyAgICBzZW5kTWVzc2FnZShXVEY6
Om1vdmUoZW5jb2RlciksIDApOwogCiAgICAgcGVuZGluZ1JlcGx5LnNlbWFwaG9yZS53YWl0KGN1
cnJlbnRUaW1lKCkgKyAodGltZW91dC5jb3VudCgpIC8gMTAwMC4wKSk7CiAKQEAgLTUyMiw3ICs1
MjIsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5lY3Rpb246OnNlbmRT
eW5jTWVzc2FnZUZyb21TZWNvbmRhcnlUaHJlYWQodQogICAgICAgICBtX3NlY29uZGFyeVRocmVh
ZFBlbmRpbmdTeW5jUmVwbHlNYXAucmVtb3ZlKHN5bmNSZXF1ZXN0SUQpOwogICAgIH0KIAotICAg
IHJldHVybiBzdGQ6Om1vdmUocGVuZGluZ1JlcGx5LnJlcGx5RGVjb2Rlcik7CisgICAgcmV0dXJu
IFdURjo6bW92ZShwZW5kaW5nUmVwbHkucmVwbHlEZWNvZGVyKTsKIH0KIAogc3RkOjp1bmlxdWVf
cHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0aW9uOjp3YWl0Rm9yU3luY1JlcGx5KHVpbnQ2NF90
IHN5bmNSZXF1ZXN0SUQsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dCwgdW5zaWdu
ZWQgc3luY1NlbmRGbGFncykKQEAgLTU0OCw3ICs1NDgsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVz
c2FnZURlY29kZXI+IENvbm5lY3Rpb246OndhaXRGb3JTeW5jUmVwbHkodWludDY0X3Qgc3luY1Jl
cXVlcwogICAgICAgICAgICAgLy8gV2UgZm91bmQgdGhlIHN5bmMgcmVwbHksIG9yIHRoZSBjb25u
ZWN0aW9uIHdhcyBjbG9zZWQuCiAgICAgICAgICAgICBpZiAocGVuZGluZ1N5bmNSZXBseS5kaWRS
ZWNlaXZlUmVwbHkgfHwgIW1fc2hvdWxkV2FpdEZvclN5bmNSZXBsaWVzKSB7CiAgICAgICAgICAg
ICAgICAgZGlkUmVjZWl2ZVN5bmNSZXBseShzeW5jU2VuZEZsYWdzKTsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gc3RkOjptb3ZlKHBlbmRpbmdTeW5jUmVwbHkucmVwbHlEZWNvZGVyKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gV1RGOjptb3ZlKHBlbmRpbmdTeW5jUmVwbHkucmVwbHlEZWNvZGVy
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCkBAIC01OTUsNyArNTk1LDcgQEAgdm9pZCBD
b25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdTeW5jUmVwbHkoc3RkOjp1bmlxdWVfcHRyPE1lc3Nh
Z2VEZWNvZGVyPiBkZWNvZGUKIAogICAgICAgICBBU1NFUlQoIXBlbmRpbmdTeW5jUmVwbHkucmVw
bHlEZWNvZGVyKTsKIAotICAgICAgICBwZW5kaW5nU3luY1JlcGx5LnJlcGx5RGVjb2RlciA9IHN0
ZDo6bW92ZShkZWNvZGVyKTsKKyAgICAgICAgcGVuZGluZ1N5bmNSZXBseS5yZXBseURlY29kZXIg
PSBXVEY6Om1vdmUoZGVjb2Rlcik7CiAgICAgICAgIHBlbmRpbmdTeW5jUmVwbHkuZGlkUmVjZWl2
ZVJlcGx5ID0gdHJ1ZTsKIAogICAgICAgICAvLyBXZSBnb3QgYSByZXBseSB0byB0aGUgbGFzdCBz
ZW5kIG1lc3NhZ2UsIHdha2UgdXAgdGhlIGNsaWVudCBydW4gbG9vcCBzbyBpdCBjYW4gYmUgcHJv
Y2Vzc2VkLgpAQCAtNjEwLDcgKzYxMCw3IEBAIHZvaWQgQ29ubmVjdGlvbjo6cHJvY2Vzc0luY29t
aW5nU3luY1JlcGx5KHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gZGVjb2RlCiAgICAg
aWYgKHNlY29uZGFyeVRocmVhZFJlcGx5TWFwSXRlbSAhPSBtX3NlY29uZGFyeVRocmVhZFBlbmRp
bmdTeW5jUmVwbHlNYXAuZW5kKCkpIHsKICAgICAgICAgU2Vjb25kYXJ5VGhyZWFkUGVuZGluZ1N5
bmNSZXBseSogcmVwbHkgPSBzZWNvbmRhcnlUaHJlYWRSZXBseU1hcEl0ZW0tPnZhbHVlOwogICAg
ICAgICBBU1NFUlQoIXJlcGx5LT5yZXBseURlY29kZXIpOwotICAgICAgICByZXBseS0+cmVwbHlE
ZWNvZGVyID0gc3RkOjptb3ZlKGRlY29kZXIpOworICAgICAgICByZXBseS0+cmVwbHlEZWNvZGVy
ID0gV1RGOjptb3ZlKGRlY29kZXIpOwogICAgICAgICByZXBseS0+c2VtYXBob3JlLnNpZ25hbCgp
OwogICAgIH0KIApAQCAtNjI0LDcgKzYyNCw3IEBAIHZvaWQgQ29ubmVjdGlvbjo6cHJvY2Vzc0lu
Y29taW5nTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IG1lc3NhZ2UpCiAg
ICAgQVNTRVJUKCFtZXNzYWdlLT5tZXNzYWdlTmFtZSgpLmlzRW1wdHkoKSk7CiAKICAgICBpZiAo
bWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09ICJJUEMiICYmIG1lc3NhZ2UtPm1lc3Nh
Z2VOYW1lKCkgPT0gIlN5bmNNZXNzYWdlUmVwbHkiKSB7Ci0gICAgICAgIHByb2Nlc3NJbmNvbWlu
Z1N5bmNSZXBseShzdGQ6Om1vdmUobWVzc2FnZSkpOworICAgICAgICBwcm9jZXNzSW5jb21pbmdT
eW5jUmVwbHkoV1RGOjptb3ZlKG1lc3NhZ2UpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtNjYwLDcgKzY2MCw3IEBAIHZvaWQgQ29ubmVjdGlvbjo6cHJvY2Vzc0luY29taW5nTWVzc2Fn
ZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IG1lc3NhZ2UpCiAgICAgICAgIHN0ZDo6
bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1fd2FpdEZvck1lc3NhZ2VNdXRleCk7CiAKICAg
ICAgICAgaWYgKG1fd2FpdGluZ0Zvck1lc3NhZ2UgJiYgbV93YWl0aW5nRm9yTWVzc2FnZS0+bWVz
c2FnZVJlY2VpdmVyTmFtZSA9PSBtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgJiYgbV93
YWl0aW5nRm9yTWVzc2FnZS0+bWVzc2FnZU5hbWUgPT0gbWVzc2FnZS0+bWVzc2FnZU5hbWUoKSAm
JiBtX3dhaXRpbmdGb3JNZXNzYWdlLT5kZXN0aW5hdGlvbklEID09IG1lc3NhZ2UtPmRlc3RpbmF0
aW9uSUQoKSkgewotICAgICAgICAgICAgbV93YWl0aW5nRm9yTWVzc2FnZS0+ZGVjb2RlciA9IHN0
ZDo6bW92ZShtZXNzYWdlKTsKKyAgICAgICAgICAgIG1fd2FpdGluZ0Zvck1lc3NhZ2UtPmRlY29k
ZXIgPSBXVEY6Om1vdmUobWVzc2FnZSk7CiAgICAgICAgICAgICBBU1NFUlQobV93YWl0aW5nRm9y
TWVzc2FnZS0+ZGVjb2Rlcik7CiAgICAgICAgICAgICBtX3dhaXRGb3JNZXNzYWdlQ29uZGl0aW9u
Lm5vdGlmeV9vbmUoKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTY3Miw3ICs2NzIsNyBAQCB2
b2lkIENvbm5lY3Rpb246OnByb2Nlc3NJbmNvbWluZ01lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPE1l
c3NhZ2VEZWNvZGVyPiBtZXNzYWdlKQogICAgICAgICB9CiAgICAgfQogCi0gICAgZW5xdWV1ZUlu
Y29taW5nTWVzc2FnZShzdGQ6Om1vdmUobWVzc2FnZSkpOworICAgIGVucXVldWVJbmNvbWluZ01l
c3NhZ2UoV1RGOjptb3ZlKG1lc3NhZ2UpKTsKIH0KIAogdm9pZCBDb25uZWN0aW9uOjpwb3N0Q29u
bmVjdGlvbkRpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlKCkKQEAgLTc0OCw3ICs3NDgsNyBA
QCB2b2lkIENvbm5lY3Rpb246OnNlbmRPdXRnb2luZ01lc3NhZ2VzKCkKICAgICAgICAgICAgIG1l
c3NhZ2UgPSBtX291dGdvaW5nTWVzc2FnZXMudGFrZUZpcnN0KCk7CiAgICAgICAgIH0KIAotICAg
ICAgICBpZiAoIXNlbmRPdXRnb2luZ01lc3NhZ2Uoc3RkOjptb3ZlKG1lc3NhZ2UpKSkKKyAgICAg
ICAgaWYgKCFzZW5kT3V0Z29pbmdNZXNzYWdlKFdURjo6bW92ZShtZXNzYWdlKSkpCiAgICAgICAg
ICAgICBicmVhazsKICAgICB9CiB9CkBAIC03NzMsNyArNzczLDcgQEAgdm9pZCBDb25uZWN0aW9u
OjpkaXNwYXRjaFN5bmNNZXNzYWdlKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogICAgIEFTU0VS
VCghZGVjb2Rlci5pc0ludmFsaWQoKSk7CiAKICAgICBpZiAocmVwbHlFbmNvZGVyKQotICAgICAg
ICBzZW5kU3luY1JlcGx5KHN0ZDo6bW92ZShyZXBseUVuY29kZXIpKTsKKyAgICAgICAgc2VuZFN5
bmNSZXBseShXVEY6Om1vdmUocmVwbHlFbmNvZGVyKSk7CiB9CiAKIHZvaWQgQ29ubmVjdGlvbjo6
ZGlzcGF0Y2hEaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoY29uc3QgQ1N0cmluZyYgbWVzc2FnZVJl
Y2VpdmVyTmFtZVN0cmluZywgY29uc3QgQ1N0cmluZyYgbWVzc2FnZU5hbWVTdHJpbmcpCkBAIC03
OTgsNyArNzk4LDcgQEAgdm9pZCBDb25uZWN0aW9uOjplbnF1ZXVlSW5jb21pbmdNZXNzYWdlKHN0
ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gaW5jb21pbmcKIHsKICAgICB7CiAgICAgICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX2luY29taW5nTWVzc2FnZXNMb2NrKTsKLSAgICAgICAgbV9p
bmNvbWluZ01lc3NhZ2VzLmFwcGVuZChzdGQ6Om1vdmUoaW5jb21pbmdNZXNzYWdlKSk7CisgICAg
ICAgIG1faW5jb21pbmdNZXNzYWdlcy5hcHBlbmQoV1RGOjptb3ZlKGluY29taW5nTWVzc2FnZSkp
OwogICAgIH0KIAogICAgIG1fY2xpZW50UnVuTG9vcC5kaXNwYXRjaChXVEY6OmJpbmQoJkNvbm5l
Y3Rpb246OmRpc3BhdGNoT25lTWVzc2FnZSwgdGhpcykpOwpAQCAtODUzLDcgKzg1Myw3IEBAIHZv
aWQgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hPbmVNZXNzYWdlKCkKICAgICAgICAgbWVzc2FnZSA9IG1f
aW5jb21pbmdNZXNzYWdlcy50YWtlRmlyc3QoKTsKICAgICB9CiAKLSAgICBkaXNwYXRjaE1lc3Nh
Z2Uoc3RkOjptb3ZlKG1lc3NhZ2UpKTsKKyAgICBkaXNwYXRjaE1lc3NhZ2UoV1RGOjptb3ZlKG1l
c3NhZ2UpKTsKIH0KIAogdm9pZCBDb25uZWN0aW9uOjp3YWtlVXBSdW5Mb29wKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCmluZGV4IGVhYWVjMzYuLjI5OWEwYTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaApAQCAtMTEyLDcgKzExMiw3
IEBAIHB1YmxpYzoKIAogICAgICAgICBJZGVudGlmaWVyKG1hY2hfcG9ydF90IHBvcnQsIFhQQ1B0
cjx4cGNfY29ubmVjdGlvbl90PiB4cGNDb25uZWN0aW9uKQogICAgICAgICAgICAgOiBwb3J0KHBv
cnQpCi0gICAgICAgICAgICAsIHhwY0Nvbm5lY3Rpb24oc3RkOjptb3ZlKHhwY0Nvbm5lY3Rpb24p
KQorICAgICAgICAgICAgLCB4cGNDb25uZWN0aW9uKFdURjo6bW92ZSh4cGNDb25uZWN0aW9uKSkK
ICAgICAgICAgewogICAgICAgICB9CiAKQEAgLTM0MSw3ICszNDEsNyBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBib29sIENvbm5lY3Rpb246OnNlbmQoVCYmIG1lc3NhZ2UsIHVpbnQ2NF90IGRlc3Rp
bmF0aW9uSUQsCiAgICAgYXV0byBlbmNvZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxNZXNzYWdlRW5j
b2Rlcj4oVDo6cmVjZWl2ZXJOYW1lKCksIFQ6Om5hbWUoKSwgZGVzdGluYXRpb25JRCk7CiAgICAg
ZW5jb2Rlci0+ZW5jb2RlKG1lc3NhZ2UuYXJndW1lbnRzKCkpOwogICAgIAotICAgIHJldHVybiBz
ZW5kTWVzc2FnZShzdGQ6Om1vdmUoZW5jb2RlciksIG1lc3NhZ2VTZW5kRmxhZ3MpOworICAgIHJl
dHVybiBzZW5kTWVzc2FnZShXVEY6Om1vdmUoZW5jb2RlciksIG1lc3NhZ2VTZW5kRmxhZ3MpOwog
fQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBib29sIENvbm5lY3Rpb246OnNlbmRTeW5jKFQmJiBt
ZXNzYWdlLCB0eXBlbmFtZSBUOjpSZXBseSYmIHJlcGx5LCB1aW50NjRfdCBkZXN0aW5hdGlvbklE
LCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIHVuc2lnbmVkIHN5bmNTZW5kRmxh
Z3MpCkBAIC0zNTUsNyArMzU1LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gYm9vbCBDb25uZWN0
aW9uOjpzZW5kU3luYyhUJiYgbWVzc2FnZSwgdHlwZW5hbWUgVDo6UmVwbHkmJgogICAgIGVuY29k
ZXItPmVuY29kZShtZXNzYWdlLmFyZ3VtZW50cygpKTsKIAogICAgIC8vIE5vdyBzZW5kIHRoZSBt
ZXNzYWdlIGFuZCB3YWl0IGZvciBhIHJlcGx5LgotICAgIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdl
RGVjb2Rlcj4gcmVwbHlEZWNvZGVyID0gc2VuZFN5bmNNZXNzYWdlKHN5bmNSZXF1ZXN0SUQsIHN0
ZDo6bW92ZShlbmNvZGVyKSwgdGltZW91dCwgc3luY1NlbmRGbGFncyk7CisgICAgc3RkOjp1bmlx
dWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiByZXBseURlY29kZXIgPSBzZW5kU3luY01lc3NhZ2Uoc3lu
Y1JlcXVlc3RJRCwgV1RGOjptb3ZlKGVuY29kZXIpLCB0aW1lb3V0LCBzeW5jU2VuZEZsYWdzKTsK
ICAgICBpZiAoIXJlcGx5RGVjb2RlcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvSGFuZGxlTWVzc2FnZS5oIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vSVBDL0hhbmRsZU1lc3NhZ2UuaAppbmRleCBhYWFmZjhmLi4xNjM1
OTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvSGFuZGxlTWVzc2Fn
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9IYW5kbGVNZXNzYWdlLmgKQEAg
LTExNyw3ICsxMTcsNyBAQCB2b2lkIGhhbmRsZU1lc3NhZ2UoTWVzc2FnZURlY29kZXImIGRlY29k
ZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjptb3ZlKGFyZ3VtZW50cyksIG9iamVjdCwgZnVuY3Rp
b24pOworICAgIGNhbGxNZW1iZXJGdW5jdGlvbihXVEY6Om1vdmUoYXJndW1lbnRzKSwgb2JqZWN0
LCBmdW5jdGlvbik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEMsIHR5cGVu
YW1lIE1GPgpAQCAtMTMwLDcgKzEzMCw3IEBAIHZvaWQgaGFuZGxlTWVzc2FnZShNZXNzYWdlRGVj
b2RlciYgZGVjb2RlciwgTWVzc2FnZUVuY29kZXImIHJlcGx5RW5jb2RlciwgQyogb2JqCiAgICAg
fQogCiAgICAgdHlwZW5hbWUgVDo6UmVwbHk6OlZhbHVlVHlwZSByZXBseUFyZ3VtZW50czsKLSAg
ICBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjptb3ZlKGFyZ3VtZW50cyksIHJlcGx5QXJndW1lbnRz
LCBvYmplY3QsIGZ1bmN0aW9uKTsKKyAgICBjYWxsTWVtYmVyRnVuY3Rpb24oV1RGOjptb3ZlKGFy
Z3VtZW50cyksIHJlcGx5QXJndW1lbnRzLCBvYmplY3QsIGZ1bmN0aW9uKTsKICAgICByZXBseUVu
Y29kZXIgPDwgcmVwbHlBcmd1bWVudHM7CiB9CiAKQEAgLTE0NCw3ICsxNDQsNyBAQCB2b2lkIGhh
bmRsZU1lc3NhZ2UoQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgTWVzc2FnZURlY29kZXImIGRlY29k
ZXIsIE1lc3NhZ2VFbmNvZAogICAgIH0KIAogICAgIHR5cGVuYW1lIFQ6OlJlcGx5OjpWYWx1ZVR5
cGUgcmVwbHlBcmd1bWVudHM7Ci0gICAgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbm5lY3Rpb24sIHN0
ZDo6bW92ZShhcmd1bWVudHMpLCByZXBseUFyZ3VtZW50cywgb2JqZWN0LCBmdW5jdGlvbik7Cisg
ICAgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbm5lY3Rpb24sIFdURjo6bW92ZShhcmd1bWVudHMpLCBy
ZXBseUFyZ3VtZW50cywgb2JqZWN0LCBmdW5jdGlvbik7CiAgICAgcmVwbHlFbmNvZGVyIDw8IHJl
cGx5QXJndW1lbnRzOwogfQogCkBAIC0xNTYsNyArMTU2LDcgQEAgdm9pZCBoYW5kbGVNZXNzYWdl
KENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmpl
Y3QsIE0KICAgICAgICAgQVNTRVJUKGRlY29kZXIuaXNJbnZhbGlkKCkpOwogICAgICAgICByZXR1
cm47CiAgICAgfQotICAgIGNhbGxNZW1iZXJGdW5jdGlvbihjb25uZWN0aW9uLCBzdGQ6Om1vdmUo
YXJndW1lbnRzKSwgb2JqZWN0LCBmdW5jdGlvbik7CisgICAgY2FsbE1lbWJlckZ1bmN0aW9uKGNv
bm5lY3Rpb24sIFdURjo6bW92ZShhcmd1bWVudHMpLCBvYmplY3QsIGZ1bmN0aW9uKTsKIH0KIAog
dGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5hbWUgTUY+CkBAIC0xNjcsNyAr
MTY3LDcgQEAgdm9pZCBoYW5kbGVNZXNzYWdlVmFyaWFkaWMoTWVzc2FnZURlY29kZXImIGRlY29k
ZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiAgICAgICAgIEFTU0VSVChkZWNvZGVyLmlzSW52
YWxpZCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjYWxsTWVtYmVyRnVuY3Rpb24o
c3RkOjptb3ZlKGFyZ3VtZW50cyksIGRlY29kZXIsIG9iamVjdCwgZnVuY3Rpb24pOworICAgIGNh
bGxNZW1iZXJGdW5jdGlvbihXVEY6Om1vdmUoYXJndW1lbnRzKSwgZGVjb2Rlciwgb2JqZWN0LCBm
dW5jdGlvbik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEMsIHR5cGVuYW1l
IE1GPgpAQCAtMTgwLDcgKzE4MCw3IEBAIHZvaWQgaGFuZGxlTWVzc2FnZVZhcmlhZGljKE1lc3Nh
Z2VEZWNvZGVyJiBkZWNvZGVyLCBNZXNzYWdlRW5jb2RlciYgcmVwbHlFbmNvZGVyCiAgICAgfQog
CiAgICAgdHlwZW5hbWUgVDo6UmVwbHk6OlZhbHVlVHlwZSByZXBseUFyZ3VtZW50czsKLSAgICBj
YWxsTWVtYmVyRnVuY3Rpb24oc3RkOjptb3ZlKGFyZ3VtZW50cyksIGRlY29kZXIsIHJlcGx5QXJn
dW1lbnRzLCBvYmplY3QsIGZ1bmN0aW9uKTsKKyAgICBjYWxsTWVtYmVyRnVuY3Rpb24oV1RGOjpt
b3ZlKGFyZ3VtZW50cyksIGRlY29kZXIsIHJlcGx5QXJndW1lbnRzLCBvYmplY3QsIGZ1bmN0aW9u
KTsKICAgICByZXBseUVuY29kZXIgPDwgcmVwbHlBcmd1bWVudHM7CiB9CiAKQEAgLTE5Myw4ICsx
OTMsOCBAQCB2b2lkIGhhbmRsZU1lc3NhZ2VEZWxheWVkKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OgogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgUmVmUHRyPHR5cGVuYW1lIFQ6OkRlbGF5ZWRSZXBseT4gZGVsYXllZFJlcGx5ID0gYWRv
cHRSZWYobmV3IHR5cGVuYW1lIFQ6OkRlbGF5ZWRSZXBseShjb25uZWN0aW9uLCBzdGQ6Om1vdmUo
cmVwbHlFbmNvZGVyKSkpOwotICAgIGNhbGxNZW1iZXJGdW5jdGlvbihzdGQ6Om1vdmUoYXJndW1l
bnRzKSwgZGVsYXllZFJlcGx5LnJlbGVhc2UoKSwgb2JqZWN0LCBmdW5jdGlvbik7CisgICAgUmVm
UHRyPHR5cGVuYW1lIFQ6OkRlbGF5ZWRSZXBseT4gZGVsYXllZFJlcGx5ID0gYWRvcHRSZWYobmV3
IHR5cGVuYW1lIFQ6OkRlbGF5ZWRSZXBseShjb25uZWN0aW9uLCBXVEY6Om1vdmUocmVwbHlFbmNv
ZGVyKSkpOworICAgIGNhbGxNZW1iZXJGdW5jdGlvbihXVEY6Om1vdmUoYXJndW1lbnRzKSwgZGVs
YXllZFJlcGx5LnJlbGVhc2UoKSwgb2JqZWN0LCBmdW5jdGlvbik7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VE
ZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlRGVjb2Rlci5j
cHAKaW5kZXggMzliZjUzMy4uMjlhMDU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vSVBDL01lc3NhZ2VEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9JUEMvTWVzc2FnZURlY29kZXIuY3BwCkBAIC00Miw3ICs0Miw3IEBAIE1lc3NhZ2VEZWNvZGVy
Ojp+TWVzc2FnZURlY29kZXIoKQogfQogCiBNZXNzYWdlRGVjb2Rlcjo6TWVzc2FnZURlY29kZXIo
Y29uc3QgRGF0YVJlZmVyZW5jZSYgYnVmZmVyLCBWZWN0b3I8QXR0YWNobWVudD4gYXR0YWNobWVu
dHMpCi0gICAgOiBBcmd1bWVudERlY29kZXIoYnVmZmVyLmRhdGEoKSwgYnVmZmVyLnNpemUoKSwg
c3RkOjptb3ZlKGF0dGFjaG1lbnRzKSkKKyAgICA6IEFyZ3VtZW50RGVjb2RlcihidWZmZXIuZGF0
YSgpLCBidWZmZXIuc2l6ZSgpLCBXVEY6Om1vdmUoYXR0YWNobWVudHMpKQogewogICAgIGlmICgh
ZGVjb2RlKG1fbWVzc2FnZUZsYWdzKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNjksNyArNjksNyBA
QCBib29sIE1lc3NhZ2VEZWNvZGVyOjpzaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0Zv
clN5bmNSZXBseSgpIGNvbnN0CiAjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwOTAKIHZvaWQgTWVzc2FnZURlY29kZXI6OnNldEltcG9ydGFu
Y2VBc3NlcnRpb24oc3RkOjp1bmlxdWVfcHRyPEltcG9ydGFuY2VBc3NlcnRpb24+IGFzc2VydGlv
bikKIHsKLSAgICBtX2ltcG9ydGFuY2VBc3NlcnRpb24gPSBzdGQ6Om1vdmUoYXNzZXJ0aW9uKTsK
KyAgICBtX2ltcG9ydGFuY2VBc3NlcnRpb24gPSBXVEY6Om1vdmUoYXNzZXJ0aW9uKTsKIH0KICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZVNl
bmRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZVNlbmRlci5jcHAK
aW5kZXggYTNmM2VmMS4uNTRkOGU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vSVBDL01lc3NhZ2VTZW5kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQ
Qy9NZXNzYWdlU2VuZGVyLmNwcApAQCAtMzYsNyArMzYsNyBAQCBib29sIE1lc3NhZ2VTZW5kZXI6
OnNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlciwgdW5z
aWduZQogewogICAgIEFTU0VSVChtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpKTsKIAotICAgIHJl
dHVybiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpLT5zZW5kTWVzc2FnZShzdGQ6Om1vdmUoZW5j
b2RlciksIG1lc3NhZ2VTZW5kRmxhZ3MpOworICAgIHJldHVybiBtZXNzYWdlU2VuZGVyQ29ubmVj
dGlvbigpLT5zZW5kTWVzc2FnZShXVEY6Om1vdmUoZW5jb2RlciksIG1lc3NhZ2VTZW5kRmxhZ3Mp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0lQQy9NZXNzYWdlU2VuZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
TWVzc2FnZVNlbmRlci5oCmluZGV4IDYzOGJkZWUuLmFiZTFhZTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlU2VuZGVyLmgKKysrIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VTZW5kZXIuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6
CiAgICAgICAgIGF1dG8gZW5jb2RlciA9IHN0ZDo6bWFrZV91bmlxdWU8TWVzc2FnZUVuY29kZXI+
KFU6OnJlY2VpdmVyTmFtZSgpLCBVOjpuYW1lKCksIGRlc3RpbmF0aW9uSUQpOwogICAgICAgICBl
bmNvZGVyLT5lbmNvZGUobWVzc2FnZS5hcmd1bWVudHMoKSk7CiAgICAgICAgIAotICAgICAgICBy
ZXR1cm4gc2VuZE1lc3NhZ2Uoc3RkOjptb3ZlKGVuY29kZXIpLCBtZXNzYWdlU2VuZEZsYWdzKTsK
KyAgICAgICAgcmV0dXJuIHNlbmRNZXNzYWdlKFdURjo6bW92ZShlbmNvZGVyKSwgbWVzc2FnZVNl
bmRGbGFncyk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KQEAgLTU1LDcgKzU1
LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgc3RhdGljX2Fzc2VydChUOjppc1N5bmMsICJN
ZXNzYWdlIGlzIG5vdCBzeW5jISIpOwogCi0gICAgICAgIHJldHVybiBzZW5kU3luYyhzdGQ6OmZv
cndhcmQ8VD4obWVzc2FnZSksIHN0ZDo6bW92ZShyZXBseSksIG1lc3NhZ2VTZW5kZXJEZXN0aW5h
dGlvbklEKCksIHRpbWVvdXQsIHN5bmNTZW5kRmxhZ3MpOworICAgICAgICByZXR1cm4gc2VuZFN5
bmMoc3RkOjpmb3J3YXJkPFQ+KG1lc3NhZ2UpLCBXVEY6Om1vdmUocmVwbHkpLCBtZXNzYWdlU2Vu
ZGVyRGVzdGluYXRpb25JRCgpLCB0aW1lb3V0LCBzeW5jU2VuZEZsYWdzKTsKICAgICB9CiAKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgewog
ICAgICAgICBBU1NFUlQobWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSk7CiAKLSAgICAgICAgcmV0
dXJuIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCktPnNlbmRTeW5jKHN0ZDo6bW92ZShtZXNzYWdl
KSwgc3RkOjptb3ZlKHJlcGx5KSwgZGVzdGluYXRpb25JRCwgdGltZW91dCwgc3luY1NlbmRGbGFn
cyk7CisgICAgICAgIHJldHVybiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpLT5zZW5kU3luYyhX
VEY6Om1vdmUobWVzc2FnZSksIFdURjo6bW92ZShyZXBseSksIGRlc3RpbmF0aW9uSUQsIHRpbWVv
dXQsIHN5bmNTZW5kRmxhZ3MpOwogICAgIH0KIAogICAgIHZpcnR1YWwgYm9vbCBzZW5kTWVzc2Fn
ZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+LCB1bnNpZ25lZCBtZXNzYWdlU2VuZEZs
YWdzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9tYWMvQ29ubmVj
dGlvbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9tYWMvQ29ubmVjdGlvbk1h
Yy5tbQppbmRleCA3Yjk5OTNlLi5lM2Y1NzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9JUEMvbWFjL0Nvbm5lY3Rpb25NYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vSVBDL21hYy9Db25uZWN0aW9uTWFjLm1tCkBAIC0yMDQsNyArMjA0LDcgQEAgYm9vbCBD
b25uZWN0aW9uOjpvcGVuKCkKICAgICAgICAgYXV0byBlbmNvZGVyID0gc3RkOjptYWtlX3VuaXF1
ZTxNZXNzYWdlRW5jb2Rlcj4oIklQQyIsICJJbml0aWFsaXplQ29ubmVjdGlvbiIsIDApOwogICAg
ICAgICBlbmNvZGVyLT5lbmNvZGUoTWFjaFBvcnQobV9yZWNlaXZlUG9ydCwgTUFDSF9NU0dfVFlQ
RV9NQUtFX1NFTkQpKTsKIAotICAgICAgICBzZW5kTWVzc2FnZShzdGQ6Om1vdmUoZW5jb2Rlcikp
OworICAgICAgICBzZW5kTWVzc2FnZShXVEY6Om1vdmUoZW5jb2RlcikpOwogCiAgICAgICAgIGlu
aXRpYWxpemVEZWFkTmFtZVNvdXJjZSgpOwogICAgIH0KQEAgLTIyOCw3ICsyMjgsNyBAQCBib29s
IENvbm5lY3Rpb246Om9wZW4oKQogICAgICAgICBhdXRvIGVuY29kZXIgPSBzdGQ6Om1ha2VfdW5p
cXVlPE1lc3NhZ2VFbmNvZGVyPigiSVBDIiwgIlNldEV4Y2VwdGlvblBvcnQiLCAwKTsKICAgICAg
ICAgZW5jb2Rlci0+ZW5jb2RlKE1hY2hQb3J0KG1fZXhjZXB0aW9uUG9ydCwgTUFDSF9NU0dfVFlQ
RV9NQUtFX1NFTkQpKTsKIAotICAgICAgICBzZW5kTWVzc2FnZShzdGQ6Om1vdmUoZW5jb2Rlcikp
OworICAgICAgICBzZW5kTWVzc2FnZShXVEY6Om1vdmUoZW5jb2RlcikpOwogICAgIH0KICNlbmRp
ZgogCkBAIC00MjMsNyArNDIzLDcgQEAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVj
b2Rlcj4gY3JlYXRlTWVzc2FnZURlY29kZXIobWFjaF9tc2dfaGVhZGVyX3QqIGgKICAgICAgICAg
dWludDhfdCogbWVzc2FnZUJvZHkgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oZGVzY3JpcHRvci0+
b3V0X29mX2xpbmUuYWRkcmVzcyk7CiAgICAgICAgIHNpemVfdCBtZXNzYWdlQm9keVNpemUgPSBk
ZXNjcmlwdG9yLT5vdXRfb2ZfbGluZS5zaXplOwogCi0gICAgICAgIGF1dG8gZGVjb2RlciA9IHN0
ZDo6bWFrZV91bmlxdWU8TWVzc2FnZURlY29kZXI+KERhdGFSZWZlcmVuY2UobWVzc2FnZUJvZHks
IG1lc3NhZ2VCb2R5U2l6ZSksIHN0ZDo6bW92ZShhdHRhY2htZW50cykpOworICAgICAgICBhdXRv
IGRlY29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VEZWNvZGVyPihEYXRhUmVmZXJlbmNl
KG1lc3NhZ2VCb2R5LCBtZXNzYWdlQm9keVNpemUpLCBXVEY6Om1vdmUoYXR0YWNobWVudHMpKTsK
IAogICAgICAgICB2bV9kZWFsbG9jYXRlKG1hY2hfdGFza19zZWxmKCksIHJlaW50ZXJwcmV0X2Nh
c3Q8dm1fYWRkcmVzc190PihkZXNjcmlwdG9yLT5vdXRfb2ZfbGluZS5hZGRyZXNzKSwgZGVzY3Jp
cHRvci0+b3V0X29mX2xpbmUuc2l6ZSk7CiAKQEAgLTUyMyw3ICs1MjMsNyBAQCB2b2lkIENvbm5l
Y3Rpb246OnJlY2VpdmVTb3VyY2VFdmVudEhhbmRsZXIoKQogICAgIH0KICNlbmRpZgogCi0gICAg
cHJvY2Vzc0luY29taW5nTWVzc2FnZShzdGQ6Om1vdmUoZGVjb2RlcikpOworICAgIHByb2Nlc3NJ
bmNvbWluZ01lc3NhZ2UoV1RGOjptb3ZlKGRlY29kZXIpKTsKIH0gICAgCiAKICNpZiAhUExBVEZP
Uk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL3VuaXgvQ29u
bmVjdGlvblVuaXguY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVj
dGlvblVuaXguY3BwCmluZGV4IDQzYTkxZjcuLjE2YmUwMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAKQEAgLTI2Miw5ICsy
NjIsOSBAQCBib29sIENvbm5lY3Rpb246OnByb2Nlc3NNZXNzYWdlKCkKICAgICBpZiAobWVzc2Fn
ZUluZm8uaXNNZXNzYWdlQm9keUlzT3V0T2ZMaW5lKCkpCiAgICAgICAgIG1lc3NhZ2VCb2R5ID0g
cmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4ob29sTWVzc2FnZUJvZHktPmRhdGEoKSk7CiAKLSAg
ICBhdXRvIGRlY29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VEZWNvZGVyPihEYXRhUmVm
ZXJlbmNlKG1lc3NhZ2VCb2R5LCBtZXNzYWdlSW5mby5ib2R5U2l6ZSgpKSwgc3RkOjptb3ZlKGF0
dGFjaG1lbnRzKSk7CisgICAgYXV0byBkZWNvZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxNZXNzYWdl
RGVjb2Rlcj4oRGF0YVJlZmVyZW5jZShtZXNzYWdlQm9keSwgbWVzc2FnZUluZm8uYm9keVNpemUo
KSksIFdURjo6bW92ZShhdHRhY2htZW50cykpOwogCi0gICAgcHJvY2Vzc0luY29taW5nTWVzc2Fn
ZShzdGQ6Om1vdmUoZGVjb2RlcikpOworICAgIHByb2Nlc3NJbmNvbWluZ01lc3NhZ2UoV1RGOjpt
b3ZlKGRlY29kZXIpKTsKIAogICAgIGlmIChtX3JlYWRCdWZmZXJTaXplID4gbWVzc2FnZUxlbmd0
aCkgewogICAgICAgICBtZW1tb3ZlKG1fcmVhZEJ1ZmZlci5kYXRhKCksIG1fcmVhZEJ1ZmZlci5k
YXRhKCkgKyBtZXNzYWdlTGVuZ3RoLCBtX3JlYWRCdWZmZXJTaXplIC0gbWVzc2FnZUxlbmd0aCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9lZmwvRGlzcGF0Y2hRdWV1ZUVm
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5jcHAK
aW5kZXggNzJhODNkMS4uM2NjNTMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vZWZsL0Rpc3BhdGNoUXVldWVFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L2VmbC9EaXNwYXRjaFF1ZXVlRWZsLmNwcApAQCAtOTUsNyArOTUsNyBAQCB2b2lkIERpc3BhdGNo
UXVldWU6OmRpc3BhdGNoKHN0ZDo6dW5pcXVlX3B0cjxXb3JrSXRlbT4gaXRlbSkKIHsKICAgICB7
CiAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3dvcmtJdGVtc0xvY2spOwotICAgICAgICBt
X3dvcmtJdGVtcy5hcHBlbmQoc3RkOjptb3ZlKGl0ZW0pKTsKKyAgICAgICAgbV93b3JrSXRlbXMu
YXBwZW5kKFdURjo6bW92ZShpdGVtKSk7CiAgICAgfQogCiAgICAgd2FrZVVwVGhyZWFkKCk7CkBA
IC0xMDMsNyArMTAzLDcgQEAgdm9pZCBEaXNwYXRjaFF1ZXVlOjpkaXNwYXRjaChzdGQ6OnVuaXF1
ZV9wdHI8V29ya0l0ZW0+IGl0ZW0pCiAKIHZvaWQgRGlzcGF0Y2hRdWV1ZTo6ZGlzcGF0Y2goc3Rk
Ojp1bmlxdWVfcHRyPFRpbWVyV29ya0l0ZW0+IGl0ZW0pCiB7Ci0gICAgaW5zZXJ0VGltZXJXb3Jr
SXRlbShzdGQ6Om1vdmUoaXRlbSkpOworICAgIGluc2VydFRpbWVyV29ya0l0ZW0oV1RGOjptb3Zl
KGl0ZW0pKTsKICAgICB3YWtlVXBUaHJlYWQoKTsKIH0KIApAQCAtMTIwLDcgKzEyMCw3IEBAIHZv
aWQgRGlzcGF0Y2hRdWV1ZTo6c2V0U29ja2V0RXZlbnRIYW5kbGVyKGludCBmaWxlRGVzY3JpcHRv
ciwgc3RkOjpmdW5jdGlvbjx2b2lkCiAgICAgQVNTRVJUKG1fc29ja2V0RGVzY3JpcHRvciA9PSBp
bnZhbGlkU29ja2V0RGVzY3JpcHRvcik7CiAKICAgICBtX3NvY2tldERlc2NyaXB0b3IgPSBmaWxl
RGVzY3JpcHRvcjsKLSAgICBtX3NvY2tldEV2ZW50SGFuZGxlciA9IHN0ZDo6bW92ZShmdW5jdGlv
bik7CisgICAgbV9zb2NrZXRFdmVudEhhbmRsZXIgPSBXVEY6Om1vdmUoZnVuY3Rpb24pOwogCiAg
ICAgaWYgKGZpbGVEZXNjcmlwdG9yID4gbV9tYXhGaWxlRGVzY3JpcHRvcikKICAgICAgICAgbV9t
YXhGaWxlRGVzY3JpcHRvciA9IGZpbGVEZXNjcmlwdG9yOwpAQCAtMTc1LDcgKzE3NSw3IEBAIHZv
aWQgRGlzcGF0Y2hRdWV1ZTo6cGVyZm9ybVRpbWVyV29yaygpCiAKICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHRpbWVyV29ya0l0ZW1zLnNpemUoKTsgKytpKSB7CiAgICAgICAgIGlmICghdGlt
ZXJXb3JrSXRlbXNbaV0tPmhhc0V4cGlyZWQoY3VycmVudFRpbWVOYW5vU2Vjb25kcykpIHsKLSAg
ICAgICAgICAgIGluc2VydFRpbWVyV29ya0l0ZW0oc3RkOjptb3ZlKHRpbWVyV29ya0l0ZW1zW2ld
KSk7CisgICAgICAgICAgICBpbnNlcnRUaW1lcldvcmtJdGVtKFdURjo6bW92ZSh0aW1lcldvcmtJ
dGVtc1tpXSkpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIApAQCAtMjE0LDcg
KzIxNCw3IEBAIHZvaWQgRGlzcGF0Y2hRdWV1ZTo6aW5zZXJ0VGltZXJXb3JrSXRlbShzdGQ6OnVu
aXF1ZV9wdHI8VGltZXJXb3JrSXRlbT4gaXRlbSkKICAgICAgICAgaWYgKGl0ZW0tPmV4cGlyYXRp
b25UaW1lTmFub1NlY29uZHMoKSA8IG1fdGltZXJXb3JrSXRlbXNbcG9zaXRpb25dLT5leHBpcmF0
aW9uVGltZU5hbm9TZWNvbmRzKCkpCiAgICAgICAgICAgICBicmVhazsKIAotICAgIG1fdGltZXJX
b3JrSXRlbXMuaW5zZXJ0KHBvc2l0aW9uLCBzdGQ6Om1vdmUoaXRlbSkpOworICAgIG1fdGltZXJX
b3JrSXRlbXMuaW5zZXJ0KHBvc2l0aW9uLCBXVEY6Om1vdmUoaXRlbSkpOwogfQogCiB2b2lkIERp
c3BhdGNoUXVldWU6OmRpc3BhdGNoUXVldWVUaHJlYWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vZWZsL0Rpc3BhdGNoUXVldWVXb3JrSXRlbUVmbC5oIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vZWZsL0Rpc3BhdGNoUXVldWVXb3JrSXRlbUVmbC5oCmluZGV4IGQyMDll
YjMuLjYwNWE2ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2VmbC9EaXNw
YXRjaFF1ZXVlV29ya0l0ZW1FZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9lZmwv
RGlzcGF0Y2hRdWV1ZVdvcmtJdGVtRWZsLmgKQEAgLTM2LDE0ICszNiwxNCBAQCBjbGFzcyBXb3Jr
SXRlbSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxXb3JrSXRlbT4gY3Jl
YXRlKFBhc3NSZWZQdHI8V29ya1F1ZXVlPiB3b3JrUXVldWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCAo
KT4gZnVuY3Rpb24pCiAgICAgewotICAgICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFdvcmtJ
dGVtPihuZXcgV29ya0l0ZW0od29ya1F1ZXVlLCBzdGQ6Om1vdmUoZnVuY3Rpb24pKSk7CisgICAg
ICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8V29ya0l0ZW0+KG5ldyBXb3JrSXRlbSh3b3JrUXVl
dWUsIFdURjo6bW92ZShmdW5jdGlvbikpKTsKICAgICB9CiAgICAgdm9pZCBkaXNwYXRjaCgpIHsg
bV9mdW5jdGlvbigpOyB9CiAKIHByb3RlY3RlZDoKICAgICBXb3JrSXRlbShQYXNzUmVmUHRyPFdv
cmtRdWV1ZT4gd29ya1F1ZXVlLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGZ1bmN0aW9uKQogICAg
ICAgICA6IG1fd29ya1F1ZXVlKHdvcmtRdWV1ZSkKLSAgICAgICAgLCBtX2Z1bmN0aW9uKHN0ZDo6
bW92ZShmdW5jdGlvbikpCisgICAgICAgICwgbV9mdW5jdGlvbihXVEY6Om1vdmUoZnVuY3Rpb24p
KQogICAgIHsKICAgICB9CiAKQEAgLTU3LDE0ICs1NywxNCBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxUaW1lcldvcmtJdGVtPiBjcmVhdGUoUGFzc1JlZlB0cjxXb3JrUXVl
dWU+IHdvcmtRdWV1ZSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBmdW5jdGlvbiwgc3RkOjpjaHJv
bm86Om5hbm9zZWNvbmRzIGRlbGF5TmFub1NlY29uZHMpCiAgICAgewogICAgICAgICBBU1NFUlQo
ZGVsYXlOYW5vU2Vjb25kcy5jb3VudCgpID49IDApOwotICAgICAgICByZXR1cm4gc3RkOjp1bmlx
dWVfcHRyPFRpbWVyV29ya0l0ZW0+KG5ldyBUaW1lcldvcmtJdGVtKHdvcmtRdWV1ZSwgc3RkOjpt
b3ZlKGZ1bmN0aW9uKSwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgKiAxMDAwMDAwMDAw
LjAgKyBkZWxheU5hbm9TZWNvbmRzLmNvdW50KCkpKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6dW5p
cXVlX3B0cjxUaW1lcldvcmtJdGVtPihuZXcgVGltZXJXb3JrSXRlbSh3b3JrUXVldWUsIFdURjo6
bW92ZShmdW5jdGlvbiksIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpICogMTAwMDAwMDAw
MC4wICsgZGVsYXlOYW5vU2Vjb25kcy5jb3VudCgpKSk7CiAgICAgfQogICAgIGRvdWJsZSBleHBp
cmF0aW9uVGltZU5hbm9TZWNvbmRzKCkgY29uc3QgeyByZXR1cm4gbV9leHBpcmF0aW9uVGltZU5h
bm9TZWNvbmRzOyB9CiAgICAgYm9vbCBoYXNFeHBpcmVkKGRvdWJsZSBjdXJyZW50VGltZU5hbm9T
ZWNvbmRzKSBjb25zdCB7IHJldHVybiBjdXJyZW50VGltZU5hbm9TZWNvbmRzID49IG1fZXhwaXJh
dGlvblRpbWVOYW5vU2Vjb25kczsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgVGltZXJXb3JrSXRlbShQ
YXNzUmVmUHRyPFdvcmtRdWV1ZT4gd29ya1F1ZXVlLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGZ1
bmN0aW9uLCBkb3VibGUgZXhwaXJhdGlvblRpbWVOYW5vU2Vjb25kcykKLSAgICAgICAgOiBXb3Jr
SXRlbSh3b3JrUXVldWUsIHN0ZDo6bW92ZShmdW5jdGlvbikpCisgICAgICAgIDogV29ya0l0ZW0o
d29ya1F1ZXVlLCBXVEY6Om1vdmUoZnVuY3Rpb24pKQogICAgICAgICAsIG1fZXhwaXJhdGlvblRp
bWVOYW5vU2Vjb25kcyhleHBpcmF0aW9uVGltZU5hbm9TZWNvbmRzKQogICAgIHsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9lZmwvV29ya1F1ZXVlRWZsLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2VmbC9Xb3JrUXVldWVFZmwuY3BwCmluZGV4IGM4ZTcw
ZDQuLjE5NWYxNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2VmbC9Xb3Jr
UXVldWVFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2VmbC9Xb3JrUXVldWVF
ZmwuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgV29ya1F1ZXVlOjpyZWdpc3RlclNvY2tldEV2
ZW50SGFuZGxlcihpbnQgZmlsZURlc2NyaXB0b3IsIHN0ZDo6ZnVuY3Rpb248dm9pCiAgICAgaWYg
KCFtX2Rpc3BhdGNoUXVldWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fZGlzcGF0Y2hRdWV1
ZS0+c2V0U29ja2V0RXZlbnRIYW5kbGVyKGZpbGVEZXNjcmlwdG9yLCBzdGQ6Om1vdmUoZnVuY3Rp
b24pKTsKKyAgICBtX2Rpc3BhdGNoUXVldWUtPnNldFNvY2tldEV2ZW50SGFuZGxlcihmaWxlRGVz
Y3JpcHRvciwgV1RGOjptb3ZlKGZ1bmN0aW9uKSk7CiB9CiAKIHZvaWQgV29ya1F1ZXVlOjp1bnJl
Z2lzdGVyU29ja2V0RXZlbnRIYW5kbGVyKGludCBmaWxlRGVzY3JpcHRvcikKQEAgLTU3LDcgKzU3
LDcgQEAgdm9pZCBXb3JrUXVldWU6OmRpc3BhdGNoKHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZnVu
Y3Rpb24pCiAgICAgaWYgKCFtX2Rpc3BhdGNoUXVldWUpCiAgICAgICAgIHJldHVybjsKIAotICAg
IG1fZGlzcGF0Y2hRdWV1ZS0+ZGlzcGF0Y2goV29ya0l0ZW06OmNyZWF0ZSh0aGlzLCBzdGQ6Om1v
dmUoZnVuY3Rpb24pKSk7CisgICAgbV9kaXNwYXRjaFF1ZXVlLT5kaXNwYXRjaChXb3JrSXRlbTo6
Y3JlYXRlKHRoaXMsIFdURjo6bW92ZShmdW5jdGlvbikpKTsKIH0KIAogdm9pZCBXb3JrUXVldWU6
OmRpc3BhdGNoQWZ0ZXIoc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzIGR1cmF0aW9uLCBzdGQ6OmZ1
bmN0aW9uPHZvaWQgKCk+IGZ1bmN0aW9uKQpAQCAtNjUsNSArNjUsNSBAQCB2b2lkIFdvcmtRdWV1
ZTo6ZGlzcGF0Y2hBZnRlcihzdGQ6OmNocm9ubzo6bmFub3NlY29uZHMgZHVyYXRpb24sIHN0ZDo6
ZnVuY3Rpb248dgogICAgIGlmICghbV9kaXNwYXRjaFF1ZXVlKQogICAgICAgICByZXR1cm47CiAK
LSAgICBtX2Rpc3BhdGNoUXVldWUtPmRpc3BhdGNoKFRpbWVyV29ya0l0ZW06OmNyZWF0ZSh0aGlz
LCBzdGQ6Om1vdmUoZnVuY3Rpb24pLCBkdXJhdGlvbikpOworICAgIG1fZGlzcGF0Y2hRdWV1ZS0+
ZGlzcGF0Y2goVGltZXJXb3JrSXRlbTo6Y3JlYXRlKHRoaXMsIFdURjo6bW92ZShmdW5jdGlvbiks
IGR1cmF0aW9uKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsv
V29ya1F1ZXVlR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9Xb3JrUXVldWVH
dGsuY3BwCmluZGV4IDJiNDRiZTYuLmI5NjI1ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL2d0ay9Xb3JrUXVldWVHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL2d0ay9Xb3JrUXVldWVHdGsuY3BwCkBAIC0xMDgsMTMgKzEwOCwxMyBAQCB2b2lkIFdvcmtR
dWV1ZTo6dW5yZWdpc3RlclNvY2tldEV2ZW50SGFuZGxlcihpbnQpCiB2b2lkIFdvcmtRdWV1ZTo6
ZGlzcGF0Y2goc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBmdW5jdGlvbikKIHsKICAgICByZWYoKTsK
LSAgICBHTWFpbkxvb3BTb3VyY2U6OmNyZWF0ZUFuZERlbGV0ZU9uRGVzdHJveSgpLnNjaGVkdWxl
KCJbV2ViS2l0XSBXb3JrUXVldWU6OmRpc3BhdGNoIiwgc3RkOjptb3ZlKGZ1bmN0aW9uKSwgR19Q
UklPUklUWV9ERUZBVUxULAorICAgIEdNYWluTG9vcFNvdXJjZTo6Y3JlYXRlQW5kRGVsZXRlT25E
ZXN0cm95KCkuc2NoZWR1bGUoIltXZWJLaXRdIFdvcmtRdWV1ZTo6ZGlzcGF0Y2giLCBXVEY6Om1v
dmUoZnVuY3Rpb24pLCBHX1BSSU9SSVRZX0RFRkFVTFQsCiAgICAgICAgIFt0aGlzXSB7IGRlcmVm
KCk7IH0sIG1fZXZlbnRDb250ZXh0LmdldCgpKTsKIH0KIAogdm9pZCBXb3JrUXVldWU6OmRpc3Bh
dGNoQWZ0ZXIoc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzIGR1cmF0aW9uLCBzdGQ6OmZ1bmN0aW9u
PHZvaWQgKCk+IGZ1bmN0aW9uKQogewogICAgIHJlZigpOwotICAgIEdNYWluTG9vcFNvdXJjZTo6
Y3JlYXRlQW5kRGVsZXRlT25EZXN0cm95KCkuc2NoZWR1bGVBZnRlckRlbGF5KCJbV2ViS2l0XSBX
b3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXIiLCBzdGQ6Om1vdmUoZnVuY3Rpb24pLAorICAgIEdNYWlu
TG9vcFNvdXJjZTo6Y3JlYXRlQW5kRGVsZXRlT25EZXN0cm95KCkuc2NoZWR1bGVBZnRlckRlbGF5
KCJbV2ViS2l0XSBXb3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXIiLCBXVEY6Om1vdmUoZnVuY3Rpb24p
LAogICAgICAgICBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6bWlsbGlz
ZWNvbmRzPihkdXJhdGlvbiksIEdfUFJJT1JJVFlfREVGQVVMVCwgW3RoaXNdIHsgZGVyZWYoKTsg
fSwgbV9ldmVudENvbnRleHQuZ2V0KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2VFbnRy
eVBvaW50Lm1tIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9Y
UENTZXJ2aWNlL1BsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tCmluZGV4IDVjZjExOGMuLjIyZGYx
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9t
YWMvWFBDU2VydmljZS9QbHVnaW5TZXJ2aWNlRW50cnlQb2ludC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvUGx1Z2luU2Vydmlj
ZUVudHJ5UG9pbnQubW0KQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFz
cyBQbHVnaW5TZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZSA6IHB1YmxpYyBYUENTZXJ2aWNlSW5p
dGlhbGl6ZXJEZWxlZ2F0ZSB7CiBwdWJsaWM6CiAgICAgUGx1Z2luU2VydmljZUluaXRpYWxpemVy
RGVsZWdhdGUoSVBDOjpYUENQdHI8eHBjX2Nvbm5lY3Rpb25fdD4gY29ubmVjdGlvbiwgeHBjX29i
amVjdF90IGluaXRpYWxpemVyTWVzc2FnZSkKLSAgICAgICAgOiBYUENTZXJ2aWNlSW5pdGlhbGl6
ZXJEZWxlZ2F0ZShzdGQ6Om1vdmUoY29ubmVjdGlvbiksIGluaXRpYWxpemVyTWVzc2FnZSkKKyAg
ICAgICAgOiBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZShXVEY6Om1vdmUoY29ubmVjdGlv
biksIGluaXRpYWxpemVyTWVzc2FnZSkKICAgICB7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGY5
MmMxNTIuLjI4Y2NkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3Mv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nl
c3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmFkZFBsdWdpbkNvbnRyb2xsZXJQcm94eShzdGQ6OnVuaXF1ZV9wdHI8
UGx1Z2luQ29udHJvCiAgICAgdWludDY0X3QgcGx1Z2luSW5zdGFuY2VJRCA9IHBsdWdpbkNvbnRy
b2xsZXItPnBsdWdpbkluc3RhbmNlSUQoKTsKIAogICAgIEFTU0VSVCghbV9wbHVnaW5Db250cm9s
bGVycy5jb250YWlucyhwbHVnaW5JbnN0YW5jZUlEKSk7Ci0gICAgbV9wbHVnaW5Db250cm9sbGVy
cy5zZXQocGx1Z2luSW5zdGFuY2VJRCwgc3RkOjptb3ZlKHBsdWdpbkNvbnRyb2xsZXIpKTsKKyAg
ICBtX3BsdWdpbkNvbnRyb2xsZXJzLnNldChwbHVnaW5JbnN0YW5jZUlELCBXVEY6Om1vdmUocGx1
Z2luQ29udHJvbGxlcikpOwogfQogCiB2b2lkIFdlYlByb2Nlc3NDb25uZWN0aW9uOjpkZXN0cm95
UGx1Z2luQ29udHJvbGxlclByb3h5KFBsdWdpbkNvbnRyb2xsZXJQcm94eSogcGx1Z2luQ29udHJv
bGxlcikKQEAgLTIxNiw3ICsyMTYsNyBAQCB2b2lkIFdlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVh
dGVQbHVnaW5JbnRlcm5hbChjb25zdCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMmCiAKICAgICAv
LyBNYWtlIHN1cmUgdG8gYWRkIHRoZSBwcm94eSB0byB0aGUgbWFwIGJlZm9yZSBpbml0aWFsaXpp
bmcgaXQsIHNpbmNlIHRoZSBwbHVnLWluIG1pZ2h0IGNhbGwgb3V0IHRvIHRoZSB3ZWIgcHJvY2Vz
cyBmcm9tIAogICAgIC8vIGl0cyBOUFBfTmV3IGZ1bmN0aW9uLiBUaGlzIHdpbGwgaGFuZCBvdmVy
IG93bmVyc2hpcCBvZiB0aGUgcHJveHkgdG8gdGhlIHdlYiBwcm9jZXNzIGNvbm5lY3Rpb24uCi0g
ICAgYWRkUGx1Z2luQ29udHJvbGxlclByb3h5KHN0ZDo6bW92ZShwbHVnaW5Db250cm9sbGVyUHJv
eHkpKTsKKyAgICBhZGRQbHVnaW5Db250cm9sbGVyUHJveHkoV1RGOjptb3ZlKHBsdWdpbkNvbnRy
b2xsZXJQcm94eSkpOwogCiAgICAgLy8gTm93IHRyeSB0byBpbml0aWFsaXplIHRoZSBwbHVnLWlu
LgogICAgIHJlc3VsdCA9IHBsdWdpbkNvbnRyb2xsZXJQcm94eVB0ci0+aW5pdGlhbGl6ZShjcmVh
dGlvblBhcmFtZXRlcnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJr
aXQyL0xlZ2FjeU1lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9T
Y3JpcHRzL3dlYmtpdDIvTGVnYWN5TWVzc2FnZVJlY2VpdmVyLWV4cGVjdGVkLmNwcAppbmRleCBk
MmFjYjU1Li41MDM1NDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtp
dDIvTGVnYWN5TWVzc2FnZVJlY2VpdmVyLWV4cGVjdGVkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TY3JpcHRzL3dlYmtpdDIvTGVnYWN5TWVzc2FnZVJlY2VpdmVyLWV4cGVjdGVkLmNwcApAQCAt
NjEsNyArNjEsNyBAQCBuYW1lc3BhY2UgV2ViUGFnZSB7CiAKIEdldFBsdWdpblByb2Nlc3NDb25u
ZWN0aW9uOjpEZWxheWVkUmVwbHk6OkRlbGF5ZWRSZXBseShQYXNzUmVmUHRyPElQQzo6Q29ubmVj
dGlvbj4gY29ubmVjdGlvbiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+IGVu
Y29kZXIpCiAgICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKLSAgICAsIG1fZW5jb2Rlcihz
dGQ6Om1vdmUoZW5jb2RlcikpCisgICAgLCBtX2VuY29kZXIoV1RGOjptb3ZlKGVuY29kZXIpKQog
ewogfQogCkBAIC03NCwxNCArNzQsMTQgQEAgYm9vbCBHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bjo6RGVsYXllZFJlcGx5OjpzZW5kKGNvbnN0IElQQzo6Q29ubmVjdGlvbjo6SGFuZGwKIHsKICAg
ICBBU1NFUlQobV9lbmNvZGVyKTsKICAgICAqbV9lbmNvZGVyIDw8IGNvbm5lY3Rpb25IYW5kbGU7
Ci0gICAgYm9vbCBfcmVzdWx0ID0gbV9jb25uZWN0aW9uLT5zZW5kU3luY1JlcGx5KHN0ZDo6bW92
ZShtX2VuY29kZXIpKTsKKyAgICBib29sIF9yZXN1bHQgPSBtX2Nvbm5lY3Rpb24tPnNlbmRTeW5j
UmVwbHkoV1RGOjptb3ZlKG1fZW5jb2RlcikpOwogICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7
CiAgICAgcmV0dXJuIF9yZXN1bHQ7CiB9CiAKIFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5
ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBjb25uZWN0
aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlcikKICAgICA6
IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQotICAgICwgbV9lbmNvZGVyKHN0ZDo6bW92ZShlbmNv
ZGVyKSkKKyAgICAsIG1fZW5jb2RlcihXVEY6Om1vdmUoZW5jb2RlcikpCiB7CiB9CiAKQEAgLTkz
LDcgKzkzLDcgQEAgVGVzdE11bHRpcGxlQXR0cmlidXRlczo6RGVsYXllZFJlcGx5Ojp+RGVsYXll
ZFJlcGx5KCkKIGJvb2wgVGVzdE11bHRpcGxlQXR0cmlidXRlczo6RGVsYXllZFJlcGx5OjpzZW5k
KCkKIHsKICAgICBBU1NFUlQobV9lbmNvZGVyKTsKLSAgICBib29sIF9yZXN1bHQgPSBtX2Nvbm5l
Y3Rpb24tPnNlbmRTeW5jUmVwbHkoc3RkOjptb3ZlKG1fZW5jb2RlcikpOworICAgIGJvb2wgX3Jl
c3VsdCA9IG1fY29ubmVjdGlvbi0+c2VuZFN5bmNSZXBseShXVEY6Om1vdmUobV9lbmNvZGVyKSk7
CiAgICAgbV9jb25uZWN0aW9uID0gbnVsbHB0cjsKICAgICByZXR1cm4gX3Jlc3VsdDsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9NZXNzYWdlUmVjZWl2ZXIt
ZXhwZWN0ZWQuY3BwIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL01lc3NhZ2VSZWNl
aXZlci1leHBlY3RlZC5jcHAKaW5kZXggNTEwNWFlMi4uNzA3YWJjYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL01lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL01lc3NhZ2VSZWNlaXZlci1leHBl
Y3RlZC5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgbmFtZXNwYWNlIFdlYlBhZ2UgewogCiBHZXRQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5OjpEZWxheWVkUmVwbHkoUGFzc1JlZlB0
cjxJUEM6OkNvbm5lY3Rpb24+IGNvbm5lY3Rpb24sIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3Nh
Z2VFbmNvZGVyPiBlbmNvZGVyKQogICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCi0gICAg
LCBtX2VuY29kZXIoc3RkOjptb3ZlKGVuY29kZXIpKQorICAgICwgbV9lbmNvZGVyKFdURjo6bW92
ZShlbmNvZGVyKSkKIHsKIH0KIApAQCAtNzQsMTQgKzc0LDE0IEBAIGJvb2wgR2V0UGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseTo6c2VuZChjb25zdCBJUEM6OkNvbm5lY3Rpb246
OkhhbmRsCiB7CiAgICAgQVNTRVJUKG1fZW5jb2Rlcik7CiAgICAgKm1fZW5jb2RlciA8PCBjb25u
ZWN0aW9uSGFuZGxlOwotICAgIGJvb2wgX3Jlc3VsdCA9IG1fY29ubmVjdGlvbi0+c2VuZFN5bmNS
ZXBseShzdGQ6Om1vdmUobV9lbmNvZGVyKSk7CisgICAgYm9vbCBfcmVzdWx0ID0gbV9jb25uZWN0
aW9uLT5zZW5kU3luY1JlcGx5KFdURjo6bW92ZShtX2VuY29kZXIpKTsKICAgICBtX2Nvbm5lY3Rp
b24gPSBudWxscHRyOwogICAgIHJldHVybiBfcmVzdWx0OwogfQogCiBUZXN0TXVsdGlwbGVBdHRy
aWJ1dGVzOjpEZWxheWVkUmVwbHk6OkRlbGF5ZWRSZXBseShQYXNzUmVmUHRyPElQQzo6Q29ubmVj
dGlvbj4gY29ubmVjdGlvbiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+IGVu
Y29kZXIpCiAgICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKLSAgICAsIG1fZW5jb2Rlcihz
dGQ6Om1vdmUoZW5jb2RlcikpCisgICAgLCBtX2VuY29kZXIoV1RGOjptb3ZlKGVuY29kZXIpKQog
ewogfQogCkBAIC05Myw3ICs5Myw3IEBAIFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5ZWRS
ZXBseTo6fkRlbGF5ZWRSZXBseSgpCiBib29sIFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5
ZWRSZXBseTo6c2VuZCgpCiB7CiAgICAgQVNTRVJUKG1fZW5jb2Rlcik7Ci0gICAgYm9vbCBfcmVz
dWx0ID0gbV9jb25uZWN0aW9uLT5zZW5kU3luY1JlcGx5KHN0ZDo6bW92ZShtX2VuY29kZXIpKTsK
KyAgICBib29sIF9yZXN1bHQgPSBtX2Nvbm5lY3Rpb24tPnNlbmRTeW5jUmVwbHkoV1RGOjptb3Zl
KG1fZW5jb2RlcikpOwogICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7CiAgICAgcmV0dXJuIF9y
ZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVz
c2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKaW5k
ZXggY2I1ZDIxZC4uOTY0Mzg1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93
ZWJraXQyL21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9t
ZXNzYWdlcy5weQpAQCAtNTU2LDcgKzU1Niw3IEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX2hhbmRs
ZXIoZmlsZSk6CiAKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyVzOjpEZWxheWVkUmVwbHk6
OkRlbGF5ZWRSZXBseShQYXNzUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgc3Rk
Ojp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+IGVuY29kZXIpXG4nICUgbWVzc2FnZS5u
YW1lKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIDogbV9jb25uZWN0aW9uKGNvbm5l
Y3Rpb24pXG4nKQotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgICwgbV9lbmNvZGVyKHN0
ZDo6bW92ZShlbmNvZGVyKSlcbicpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgLCBt
X2VuY29kZXIoV1RGOjptb3ZlKGVuY29kZXIpKVxuJykKICAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmQoJ3tcbicpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCd9XG4nKQogICAgICAgICAgICAg
cmVzdWx0LmFwcGVuZCgnXG4nKQpAQCAtNTY5LDcgKzU2OSw3IEBAIGRlZiBnZW5lcmF0ZV9tZXNz
YWdlX2hhbmRsZXIoZmlsZSk6CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQogICAg
ICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIEFTU0VSVChtX2VuY29kZXIpO1xuJykKICAgICAg
ICAgICAgIHJlc3VsdCArPSBbJyAgICAqbV9lbmNvZGVyIDw8ICVzO1xuJyAlIHgubmFtZSBmb3Ig
eCBpbiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnNdCi0gICAgICAgICAgICByZXN1bHQuYXBwZW5k
KCcgICAgYm9vbCBfcmVzdWx0ID0gbV9jb25uZWN0aW9uLT5zZW5kU3luY1JlcGx5KHN0ZDo6bW92
ZShtX2VuY29kZXIpKTtcbicpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgYm9vbCBf
cmVzdWx0ID0gbV9jb25uZWN0aW9uLT5zZW5kU3luY1JlcGx5KFdURjo6bW92ZShtX2VuY29kZXIp
KTtcbicpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgbV9jb25uZWN0aW9uID0gbnVs
bHB0cjtcbicpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgcmV0dXJuIF9yZXN1bHQ7
XG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnfVxuJykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0FycmF5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvYy9XS0FycmF5LmNwcAppbmRleCAzMGY5NzgxLi44ZmIwZmNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tBcnJheS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL1dLQXJyYXkuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFdLQXJyYXlSZWYg
V0tBcnJheUNyZWF0ZShXS1R5cGVSZWYqIHZhbHVlcywgc2l6ZV90IG51bWJlck9mVmFsdWVzKQog
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtYmVyT2ZWYWx1ZXM7ICsraSkKICAgICAgICAg
ZWxlbWVudHMudW5jaGVja2VkQXBwZW5kKGNvbnN0X2Nhc3Q8QVBJOjpPYmplY3QqPihzdGF0aWNf
Y2FzdDxjb25zdCBBUEk6Ok9iamVjdCo+KHZhbHVlc1tpXSkpKTsKIAotICAgIHJldHVybiB0b0FQ
SShBUEk6OkFycmF5OjpjcmVhdGUoc3RkOjptb3ZlKGVsZW1lbnRzKSkubGVha1JlZigpKTsKKyAg
ICByZXR1cm4gdG9BUEkoQVBJOjpBcnJheTo6Y3JlYXRlKFdURjo6bW92ZShlbGVtZW50cykpLmxl
YWtSZWYoKSk7CiB9CiAKIFdLQXJyYXlSZWYgV0tBcnJheUNyZWF0ZUFkb3B0aW5nVmFsdWVzKFdL
VHlwZVJlZiogdmFsdWVzLCBzaXplX3QgbnVtYmVyT2ZWYWx1ZXMpCkBAIC01NSw3ICs1NSw3IEBA
IFdLQXJyYXlSZWYgV0tBcnJheUNyZWF0ZUFkb3B0aW5nVmFsdWVzKFdLVHlwZVJlZiogdmFsdWVz
LCBzaXplX3QgbnVtYmVyT2ZWYWx1ZXMpCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1i
ZXJPZlZhbHVlczsgKytpKQogICAgICAgICBlbGVtZW50cy51bmNoZWNrZWRBcHBlbmQoYWRvcHRS
ZWYoY29uc3RfY2FzdDxBUEk6Ok9iamVjdCo+KHN0YXRpY19jYXN0PGNvbnN0IEFQSTo6T2JqZWN0
Kj4odmFsdWVzW2ldKSkpKTsKIAotICAgIHJldHVybiB0b0FQSShBUEk6OkFycmF5OjpjcmVhdGUo
c3RkOjptb3ZlKGVsZW1lbnRzKSkubGVha1JlZigpKTsKKyAgICByZXR1cm4gdG9BUEkoQVBJOjpB
cnJheTo6Y3JlYXRlKFdURjo6bW92ZShlbGVtZW50cykpLmxlYWtSZWYoKSk7CiB9CiAKIFdLVHlw
ZVJlZiBXS0FycmF5R2V0SXRlbUF0SW5kZXgoV0tBcnJheVJlZiBhcnJheVJlZiwgc2l6ZV90IGlu
ZGV4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLRGljdGlvbmFy
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tEaWN0aW9uYXJ5LmNwcAppbmRl
eCA0NGM2MWUxLi45YWNhZmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L2MvV0tEaWN0aW9uYXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tE
aWN0aW9uYXJ5LmNwcApAQCAtNDMsNyArNDMsNyBAQCBXS19FWFBPUlQgV0tEaWN0aW9uYXJ5UmVm
IFdLRGljdGlvbmFyeUNyZWF0ZShjb25zdCBXS1N0cmluZ1JlZioga2V5cywgY29uc3QgV0tUeQog
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtYmVyT2ZWYWx1ZXM7ICsraSkKICAgICAgICAg
bWFwLmFkZCh0b0ltcGwoa2V5c1tpXSktPnN0cmluZygpLCB0b0ltcGwodmFsdWVzW2ldKSk7CiAK
LSAgICByZXR1cm4gdG9BUEkoSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKHN0ZDo6bW92ZSht
YXApKS5yZWxlYXNlKCkubGVha1JlZigpKTsKKyAgICByZXR1cm4gdG9BUEkoSW1tdXRhYmxlRGlj
dGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShtYXApKS5yZWxlYXNlKCkubGVha1JlZigpKTsKIH0K
IAogV0tUeXBlUmVmIFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkoV0tEaWN0aW9uYXJ5UmVmIGRp
Y3Rpb25hcnlSZWYsIFdLU3RyaW5nUmVmIGtleSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUElBcnJheS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJQXJyYXkuY3Bw
CmluZGV4IDliN2Y2MzguLmQzN2FlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUElBcnJheS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUFycmF5LmNwcApA
QCAtMzcsNyArMzcsNyBAQCBQYXNzUmVmUHRyPEFycmF5PiBBcnJheTo6Y3JlYXRlKCkKIAogUGFz
c1JlZlB0cjxBcnJheT4gQXJyYXk6OmNyZWF0ZShWZWN0b3I8UmVmUHRyPE9iamVjdD4+IGVsZW1l
bnRzKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXJyYXkoc3RkOjptb3ZlKGVsZW1lbnRz
KSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXJyYXkoV1RGOjptb3ZlKGVsZW1lbnRzKSkp
OwogfQogCiBQYXNzUmVmUHRyPEFycmF5PiBBcnJheTo6Y3JlYXRlU3RyaW5nQXJyYXkoY29uc3Qg
VmVjdG9yPFdURjo6U3RyaW5nPiYgc3RyaW5ncykKQEAgLTQ4LDcgKzQ4LDcgQEAgUGFzc1JlZlB0
cjxBcnJheT4gQXJyYXk6OmNyZWF0ZVN0cmluZ0FycmF5KGNvbnN0IFZlY3RvcjxXVEY6OlN0cmlu
Zz4mIHN0cmluZ3MpCiAgICAgZm9yIChjb25zdCBhdXRvJiBzdHJpbmcgOiBzdHJpbmdzKQogICAg
ICAgICBlbGVtZW50cy51bmNoZWNrZWRBcHBlbmQoQVBJOjpTdHJpbmc6OmNyZWF0ZShzdHJpbmcp
KTsKIAotICAgIHJldHVybiBjcmVhdGUoc3RkOjptb3ZlKGVsZW1lbnRzKSk7CisgICAgcmV0dXJu
IGNyZWF0ZShXVEY6Om1vdmUoZWxlbWVudHMpKTsKIH0KIAogVmVjdG9yPFdURjo6U3RyaW5nPiBB
cnJheTo6dG9TdHJpbmdWZWN0b3IoKQpAQCAtNjYsNyArNjYsNyBAQCBWZWN0b3I8V1RGOjpTdHJp
bmc+IEFycmF5Ojp0b1N0cmluZ1ZlY3RvcigpCiB9CiAKIEFycmF5OjpBcnJheShWZWN0b3I8UmVm
UHRyPE9iamVjdD4+IGVsZW1lbnRzKQotICAgIDogbV9lbGVtZW50cyhzdGQ6Om1vdmUoZWxlbWVu
dHMpKQorICAgIDogbV9lbGVtZW50cyhXVEY6Om1vdmUoZWxlbWVudHMpKQogewogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJVVJMLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJVVJMLmgKaW5kZXggYjllMDU4Mi4uYzBiM2ExMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSVVSTC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElV
UkwuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgICAgIGF1dG8gYWJzb2x1dGVVUkwg
PSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvcmU6OlVSTD4oKmJhc2VVUkwtPm1fcGFyc2VkVVJMLmdl
dCgpLCByZWxhdGl2ZVVSTCk7CiAgICAgICAgIGNvbnN0IFdURjo6U3RyaW5nJiBhYnNvbHV0ZVVS
TFN0cmluZyA9IGFic29sdXRlVVJMLT5zdHJpbmcoKTsKIAotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFVSTChzdGQ6Om1vdmUoYWJzb2x1dGVVUkwpLCBhYnNvbHV0ZVVSTFN0cmluZykpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFVSTChXVEY6Om1vdmUoYWJzb2x1dGVVUkwpLCBh
YnNvbHV0ZVVSTFN0cmluZykpOwogICAgIH0KIAogICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyBy
ZXR1cm4gbV9zdHJpbmcuaXNOdWxsKCk7IH0KQEAgLTEwOCw3ICsxMDgsNyBAQCBwcml2YXRlOgog
CiAgICAgVVJMKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpVUkw+IHBhcnNlZFVSTCwgY29uc3Qg
V1RGOjpTdHJpbmcmIHN0cmluZykKICAgICAgICAgOiBtX3N0cmluZyhzdHJpbmcpCi0gICAgICAg
ICwgbV9wYXJzZWRVUkwoc3RkOjptb3ZlKHBhcnNlZFVSTCkpCisgICAgICAgICwgbV9wYXJzZWRV
UkwoV1RGOjptb3ZlKHBhcnNlZFVSTCkpCiAgICAgewogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSVdlYkFyY2hpdmUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSVdlYkFyY2hpdmUuY3BwCmluZGV4IDg2NzQ3NDYuLmMzYjI3OTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElXZWJBcmNoaXZlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJV2ViQXJjaGl2ZS5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgV2ViQXJjaGl2
ZTo6V2ViQXJjaGl2ZShXZWJBcmNoaXZlUmVzb3VyY2UqIG1haW5SZXNvdXJjZSwgUGFzc1JlZlB0
cjxBUEk6OkFycmF5PgogICAgICAgICBjb3JlU3ViZnJhbWVMZWdhY3lXZWJBcmNoaXZlcy51bmNo
ZWNrZWRBcHBlbmQoc3ViZnJhbWVXZWJBcmNoaXZlLT5jb3JlTGVnYWN5V2ViQXJjaGl2ZSgpKTsK
ICAgICB9CiAKLSAgICBtX2xlZ2FjeVdlYkFyY2hpdmUgPSBMZWdhY3lXZWJBcmNoaXZlOjpjcmVh
dGUoY29yZU1haW5SZXNvdXJjZS5yZWxlYXNlKCksIHN0ZDo6bW92ZShjb3JlQXJjaGl2ZVJlc291
cmNlcyksIHN0ZDo6bW92ZShjb3JlU3ViZnJhbWVMZWdhY3lXZWJBcmNoaXZlcykpOworICAgIG1f
bGVnYWN5V2ViQXJjaGl2ZSA9IExlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0ZShjb3JlTWFpblJlc291
cmNlLnJlbGVhc2UoKSwgV1RGOjptb3ZlKGNvcmVBcmNoaXZlUmVzb3VyY2VzKSwgV1RGOjptb3Zl
KGNvcmVTdWJmcmFtZUxlZ2FjeVdlYkFyY2hpdmVzKSk7CiB9CiAKIFdlYkFyY2hpdmU6OldlYkFy
Y2hpdmUoQVBJOjpEYXRhKiBkYXRhKQpAQCAtMTE2LDcgKzExNiw3IEBAIEFQSTo6QXJyYXkqIFdl
YkFyY2hpdmU6OnN1YnJlc291cmNlcygpCiAgICAgICAgIGZvciAoY29uc3QgYXV0byYgc3VicmVz
b3VyY2UgOiBtX2xlZ2FjeVdlYkFyY2hpdmUtPnN1YnJlc291cmNlcygpKQogICAgICAgICAgICAg
c3VicmVzb3VyY2VzLnVuY2hlY2tlZEFwcGVuZChXZWJBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZShz
dWJyZXNvdXJjZSkpOwogCi0gICAgICAgIG1fY2FjaGVkU3VicmVzb3VyY2VzID0gQVBJOjpBcnJh
eTo6Y3JlYXRlKHN0ZDo6bW92ZShzdWJyZXNvdXJjZXMpKTsKKyAgICAgICAgbV9jYWNoZWRTdWJy
ZXNvdXJjZXMgPSBBUEk6OkFycmF5OjpjcmVhdGUoV1RGOjptb3ZlKHN1YnJlc291cmNlcykpOwog
ICAgIH0KIAogICAgIHJldHVybiBtX2NhY2hlZFN1YnJlc291cmNlcy5nZXQoKTsKQEAgLTEzMSw3
ICsxMzEsNyBAQCBBUEk6OkFycmF5KiBXZWJBcmNoaXZlOjpzdWJmcmFtZUFyY2hpdmVzKCkKICAg
ICAgICAgZm9yIChjb25zdCBhdXRvJiBzdWJmcmFtZUFyY2hpdmUgOiBtX2xlZ2FjeVdlYkFyY2hp
dmUtPnN1YmZyYW1lQXJjaGl2ZXMoKSkKICAgICAgICAgICAgIHN1YmZyYW1lV2ViQXJjaGl2ZXMu
dW5jaGVja2VkQXBwZW5kKFdlYkFyY2hpdmU6OmNyZWF0ZShzdGF0aWNfY2FzdDxMZWdhY3lXZWJB
cmNoaXZlKj4oc3ViZnJhbWVBcmNoaXZlLmdldCgpKSkpOwogCi0gICAgICAgIG1fY2FjaGVkU3Vi
ZnJhbWVBcmNoaXZlcyA9IEFQSTo6QXJyYXk6OmNyZWF0ZShzdGQ6Om1vdmUoc3ViZnJhbWVXZWJB
cmNoaXZlcykpOworICAgICAgICBtX2NhY2hlZFN1YmZyYW1lQXJjaGl2ZXMgPSBBUEk6OkFycmF5
OjpjcmVhdGUoV1RGOjptb3ZlKHN1YmZyYW1lV2ViQXJjaGl2ZXMpKTsKICAgICB9CiAKICAgICBy
ZXR1cm4gbV9jYWNoZWRTdWJmcmFtZUFyY2hpdmVzLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FzeW5jUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QXN5bmNSZXF1ZXN0LmNwcAppbmRleCA2YWJiY2Y0Li4wZTE5YmNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQXN5bmNSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQXN5bmNSZXF1ZXN0LmNwcApAQCAtMzksNyArMzksNyBAQCBzdGF0aWMgdWludDY0X3Qg
Z2VuZXJhdGVSZXF1ZXN0SUQoKQogfQogCiBBc3luY1JlcXVlc3Q6OkFzeW5jUmVxdWVzdChzdGQ6
OmZ1bmN0aW9uPHZvaWQgKCk+IGFib3J0SGFuZGxlcikKLSAgICA6IG1fYWJvcnRIYW5kbGVyKHN0
ZDo6bW92ZShhYm9ydEhhbmRsZXIpKQorICAgIDogbV9hYm9ydEhhbmRsZXIoV1RGOjptb3ZlKGFi
b3J0SGFuZGxlcikpCiAgICAgLCBtX3JlcXVlc3RJRChnZW5lcmF0ZVJlcXVlc3RJRCgpKQogewog
fQpAQCAtNTEsNyArNTEsNyBAQCBBc3luY1JlcXVlc3Q6On5Bc3luY1JlcXVlc3QoKQogCiB2b2lk
IEFzeW5jUmVxdWVzdDo6c2V0QWJvcnRIYW5kbGVyKHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gaGFu
ZGxlcikKIHsKLSAgICBtX2Fib3J0SGFuZGxlciA9IHN0ZDo6bW92ZShoYW5kbGVyKTsKKyAgICBt
X2Fib3J0SGFuZGxlciA9IFdURjo6bW92ZShoYW5kbGVyKTsKIH0KIAogdm9pZCBBc3luY1JlcXVl
c3Q6OnJlcXVlc3RBYm9ydGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
c3luY1JlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Bc3luY1JlcXVlc3QuaAppbmRl
eCBlOTI2NDk5Li5lMmVhOGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXN5
bmNSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FzeW5jUmVxdWVzdC5oCkBA
IC01OSwxMiArNTksMTIgQEAgY2xhc3MgQXN5bmNSZXF1ZXN0SW1wbCBmaW5hbCA6IHB1YmxpYyBB
c3luY1JlcXVlc3QgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFzeW5jUmVxdWVz
dD4gY3JlYXRlKHN0ZDo6ZnVuY3Rpb248dm9pZCAoQXJndW1lbnRzLi4uKT4gY29tcGxldGlvbkhh
bmRsZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFzeW5jUmVxdWVzdElt
cGw8QXJndW1lbnRzLi4uPihzdGQ6Om1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBudWxscHRyKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXN5bmNSZXF1ZXN0SW1wbDxBcmd1bWVudHMu
Li4+KFdURjo6bW92ZShjb21wbGV0aW9uSGFuZGxlciksIG51bGxwdHIpKTsKICAgICB9CiAKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxBc3luY1JlcXVlc3Q+IGNyZWF0ZShzdGQ6OmZ1bmN0aW9uPHZv
aWQgKEFyZ3VtZW50cy4uLik+IGNvbXBsZXRpb25IYW5kbGVyLCBzdGQ6OmZ1bmN0aW9uPHZvaWQg
KCk+IGFib3J0SGFuZGxlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXN5
bmNSZXF1ZXN0SW1wbDxBcmd1bWVudHMuLi4+KHN0ZDo6bW92ZShjb21wbGV0aW9uSGFuZGxlciks
IHN0ZDo6bW92ZShhYm9ydEhhbmRsZXIpKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
QXN5bmNSZXF1ZXN0SW1wbDxBcmd1bWVudHMuLi4+KFdURjo6bW92ZShjb21wbGV0aW9uSGFuZGxl
ciksIFdURjo6bW92ZShhYm9ydEhhbmRsZXIpKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+QXN5
bmNSZXF1ZXN0SW1wbCgpCkBAIC04MCw4ICs4MCw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAg
ICBBc3luY1JlcXVlc3RJbXBsKHN0ZDo6ZnVuY3Rpb248dm9pZCAoQXJndW1lbnRzLi4uKT4gY29t
cGxldGlvbkhhbmRsZXIsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gYWJvcnRIYW5kbGVyKQotICAg
ICAgICA6IEFzeW5jUmVxdWVzdChzdGQ6Om1vdmUoYWJvcnRIYW5kbGVyKSkKLSAgICAgICAgLCBt
X2NvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bW92ZShjb21wbGV0aW9uSGFuZGxlcikpCisgICAgICAg
IDogQXN5bmNSZXF1ZXN0KFdURjo6bW92ZShhYm9ydEhhbmRsZXIpKQorICAgICAgICAsIG1fY29t
cGxldGlvbkhhbmRsZXIoV1RGOjptb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKICAgICB7CiAgICAg
ICAgIEFTU0VSVChtX2NvbXBsZXRpb25IYW5kbGVyKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQmxvY2tpbmdSZXNwb25zZU1hcC5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0Jsb2NraW5nUmVzcG9uc2VNYXAuaAppbmRleCBmNDUyOWFmLi5lZTIzMjVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQmxvY2tpbmdSZXNwb25zZU1hcC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9CbG9ja2luZ1Jlc3BvbnNlTWFwLmgKQEAgLTU5LDcgKzU5
LDcgQEAgcHVibGljOgogICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayht
X211dGV4KTsKICAgICAgICAgQVNTRVJUKCFtX3Jlc3BvbnNlcy5jb250YWlucyhyZXF1ZXN0SUQp
KTsKIAotICAgICAgICBtX3Jlc3BvbnNlcy5zZXQocmVxdWVzdElELCBzdGQ6Om1vdmUocmVzcG9u
c2UpKTsKKyAgICAgICAgbV9yZXNwb25zZXMuc2V0KHJlcXVlc3RJRCwgV1RGOjptb3ZlKHJlc3Bv
bnNlKSk7CiAKICAgICAgICAgLy8gRklYTUU6IFdha2luZyB1cCBhbGwgdGhyZWFkcyBpcyBxdWl0
ZSBpbmVmZmljaWVudC4KICAgICAgICAgbV9jb25kaXRpb24ubm90aWZ5X2FsbCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAKaW5kZXggMDFlYzYxNS4uYTVi
YzJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCkBA
IC05MSwxMSArOTEsMTEgQEAgYm9vbCBDaGlsZFByb2Nlc3NQcm94eTo6c2VuZE1lc3NhZ2Uoc3Rk
Ojp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+IGVuY29kZXIKICAgICBzd2l0Y2ggKHN0
YXRlKCkpIHsKICAgICBjYXNlIFN0YXRlOjpMYXVuY2hpbmc6CiAgICAgICAgIC8vIElmIHdlJ3Jl
IHdhaXRpbmcgZm9yIHRoZSBjaGlsZCBwcm9jZXNzIHRvIGxhdW5jaCwgd2UgbmVlZCB0byBzdGFz
aCBhd2F5IHRoZSBtZXNzYWdlcyBzbyB3ZSBjYW4gc2VuZCB0aGVtIG9uY2Ugd2UgaGF2ZSBhIGNv
bm5lY3Rpb24uCi0gICAgICAgIG1fcGVuZGluZ01lc3NhZ2VzLmFwcGVuZChzdGQ6Om1ha2VfcGFp
cihzdGQ6Om1vdmUoZW5jb2RlciksIG1lc3NhZ2VTZW5kRmxhZ3MpKTsKKyAgICAgICAgbV9wZW5k
aW5nTWVzc2FnZXMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKFdURjo6bW92ZShlbmNvZGVyKSwgbWVz
c2FnZVNlbmRGbGFncykpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGNhc2UgU3RhdGU6
OlJ1bm5pbmc6Ci0gICAgICAgIHJldHVybiBjb25uZWN0aW9uKCktPnNlbmRNZXNzYWdlKHN0ZDo6
bW92ZShlbmNvZGVyKSwgbWVzc2FnZVNlbmRGbGFncyk7CisgICAgICAgIHJldHVybiBjb25uZWN0
aW9uKCktPnNlbmRNZXNzYWdlKFdURjo6bW92ZShlbmNvZGVyKSwgbWVzc2FnZVNlbmRGbGFncyk7
CiAKICAgICBjYXNlIFN0YXRlOjpUZXJtaW5hdGVkOgogICAgICAgICByZXR1cm4gZmFsc2U7CkBA
IC0xNDIsOSArMTQyLDkgQEAgdm9pZCBDaGlsZFByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNo
aW5nKFByb2Nlc3NMYXVuY2hlciosIElQQzo6Q29ubmVjdGlvbjo6SWQKICAgICBtX2Nvbm5lY3Rp
b24tPm9wZW4oKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9wZW5kaW5nTWVzc2Fn
ZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVu
Y29kZXI+IG1lc3NhZ2UgPSBzdGQ6Om1vdmUobV9wZW5kaW5nTWVzc2FnZXNbaV0uZmlyc3QpOwor
ICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4gbWVzc2FnZSA9IFdU
Rjo6bW92ZShtX3BlbmRpbmdNZXNzYWdlc1tpXS5maXJzdCk7CiAgICAgICAgIHVuc2lnbmVkIG1l
c3NhZ2VTZW5kRmxhZ3MgPSBtX3BlbmRpbmdNZXNzYWdlc1tpXS5zZWNvbmQ7Ci0gICAgICAgIG1f
Y29ubmVjdGlvbi0+c2VuZE1lc3NhZ2Uoc3RkOjptb3ZlKG1lc3NhZ2UpLCBtZXNzYWdlU2VuZEZs
YWdzKTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kTWVzc2FnZShXVEY6Om1vdmUobWVzc2Fn
ZSksIG1lc3NhZ2VTZW5kRmxhZ3MpOwogICAgIH0KIAogICAgIG1fcGVuZGluZ01lc3NhZ2VzLmNs
ZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5oCmluZGV4IGIy
ZTBjYjIuLjYzZmM1NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFBy
b2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94
eS5oCkBAIC0xMDEsNyArMTAxLDcgQEAgYm9vbCBDaGlsZFByb2Nlc3NQcm94eTo6c2VuZChUJiYg
bWVzc2FnZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgdW5zaWduZWQgbWVzc2EKICAgICBhdXRv
IGVuY29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPElQQzo6TWVzc2FnZUVuY29kZXI+KFQ6OnJlY2Vp
dmVyTmFtZSgpLCBUOjpuYW1lKCksIGRlc3RpbmF0aW9uSUQpOwogICAgIGVuY29kZXItPmVuY29k
ZShtZXNzYWdlLmFyZ3VtZW50cygpKTsKIAotICAgIHJldHVybiBzZW5kTWVzc2FnZShzdGQ6Om1v
dmUoZW5jb2RlciksIG1lc3NhZ2VTZW5kRmxhZ3MpOworICAgIHJldHVybiBzZW5kTWVzc2FnZShX
VEY6Om1vdmUoZW5jb2RlciksIG1lc3NhZ2VTZW5kRmxhZ3MpOwogfQogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBVPiAKQEAgLTExMiw3ICsxMTIsNyBAQCBib29sIENoaWxkUHJvY2Vzc1Byb3h5OjpzZW5k
U3luYyhVJiYgbWVzc2FnZSwgdHlwZW5hbWUgVTo6UmVwbHkmJiByZXBseSwgdWludDY0XwogICAg
IGlmICghbV9jb25uZWN0aW9uKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4g
Y29ubmVjdGlvbigpLT5zZW5kU3luYyhzdGQ6OmZvcndhcmQ8VT4obWVzc2FnZSksIHN0ZDo6bW92
ZShyZXBseSksIGRlc3RpbmF0aW9uSUQsIHRpbWVvdXQpOworICAgIHJldHVybiBjb25uZWN0aW9u
KCktPnNlbmRTeW5jKHN0ZDo6Zm9yd2FyZDxVPihtZXNzYWdlKSwgV1RGOjptb3ZlKHJlcGx5KSwg
ZGVzdGluYXRpb25JRCwgdGltZW91dCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvY29hL1dLTlNEaWN0aW9uYXJ5Lm1tIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0NvY29hL1dLTlNEaWN0aW9uYXJ5Lm1tCmluZGV4IDA0NGRl
YmIuLmMxMmU5YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9XS05T
RGljdGlvbmFyeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV0tOU0RpY3Rp
b25hcnkubW0KQEAgLTgyLDcgKzgyLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKICAgICAg
ICAgcmV0dXJuIFtzZWxmIHJldGFpbl07CiAKICAgICBhdXRvIG1hcCA9IF9kaWN0aW9uYXJ5LT5t
YXAoKTsKLSAgICByZXR1cm4gSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKHN0ZDo6bW92ZSht
YXApKS5yZWxlYXNlKCkubGVha1JlZigpLT53cmFwcGVyKCk7CisgICAgcmV0dXJuIEltbXV0YWJs
ZURpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUobWFwKSkucmVsZWFzZSgpLmxlYWtSZWYoKS0+
d3JhcHBlcigpOwogfQogCiAjcHJhZ21hIG1hcmsgV0tPYmplY3QgcHJvdG9jb2wgaW1wbGVtZW50
YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvRG93bmxv
YWRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvRG93bmxvYWRN
YW5hZ2VyLmNwcAppbmRleCBhMWQ2NTA2Li42N2FiNzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwCkBAIC00NCw3ICs0NCw3
IEBAIHZvaWQgRG93bmxvYWRNYW5hZ2VyOjpzdGFydERvd25sb2FkKHVpbnQ2NF90IGRvd25sb2Fk
SUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYKICAgICBkb3dubG9hZC0+c3RhcnQoKTsKIAogICAg
IEFTU0VSVCghbV9kb3dubG9hZHMuY29udGFpbnMoZG93bmxvYWRJRCkpOwotICAgIG1fZG93bmxv
YWRzLmFkZChkb3dubG9hZElELCBzdGQ6Om1vdmUoZG93bmxvYWQpKTsKKyAgICBtX2Rvd25sb2Fk
cy5hZGQoZG93bmxvYWRJRCwgV1RGOjptb3ZlKGRvd25sb2FkKSk7CiB9CiAKIHZvaWQgRG93bmxv
YWRNYW5hZ2VyOjpjb252ZXJ0SGFuZGxlVG9Eb3dubG9hZCh1aW50NjRfdCBkb3dubG9hZElELCBS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQpAQCAtNTMsNyArNTMsNyBAQCB2b2lkIERv
d25sb2FkTWFuYWdlcjo6Y29udmVydEhhbmRsZVRvRG93bmxvYWQodWludDY0X3QgZG93bmxvYWRJ
RCwgUmVzb3VyY2VIYW5kbAogCiAgICAgZG93bmxvYWQtPnN0YXJ0V2l0aEhhbmRsZShoYW5kbGUs
IHJlc3BvbnNlKTsKICAgICBBU1NFUlQoIW1fZG93bmxvYWRzLmNvbnRhaW5zKGRvd25sb2FkSUQp
KTsKLSAgICBtX2Rvd25sb2Fkcy5hZGQoZG93bmxvYWRJRCwgc3RkOjptb3ZlKGRvd25sb2FkKSk7
CisgICAgbV9kb3dubG9hZHMuYWRkKGRvd25sb2FkSUQsIFdURjo6bW92ZShkb3dubG9hZCkpOwog
fQogCiB2b2lkIERvd25sb2FkTWFuYWdlcjo6Y2FuY2VsRG93bmxvYWQodWludDY0X3QgZG93bmxv
YWRJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0
aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50
cnlQb2ludC5oCmluZGV4IGE2ZWIyMGQuLjM5NTA5MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VF
bnRyeVBvaW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRp
ZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaApAQCAtNDMsNyArNDMsNyBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRl
IHsKIHB1YmxpYzoKICAgICBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZShJUEM6OlhQQ1B0
cjx4cGNfY29ubmVjdGlvbl90PiBjb25uZWN0aW9uLCB4cGNfb2JqZWN0X3QgaW5pdGlhbGl6ZXJN
ZXNzYWdlKQotICAgICAgICA6IG1fY29ubmVjdGlvbihzdGQ6Om1vdmUoY29ubmVjdGlvbikpCisg
ICAgICAgIDogbV9jb25uZWN0aW9uKFdURjo6bW92ZShjb25uZWN0aW9uKSkKICAgICAgICAgLCBt
X2luaXRpYWxpemVyTWVzc2FnZShpbml0aWFsaXplck1lc3NhZ2UpCiAgICAgewogICAgIH0KQEAg
LTY4LDcgKzY4LDcgQEAgcHJvdGVjdGVkOgogdGVtcGxhdGU8dHlwZW5hbWUgWFBDU2VydmljZVR5
cGUsIHR5cGVuYW1lIFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlVHlwZT4KIHZvaWQgWFBD
U2VydmljZUluaXRpYWxpemVyKElQQzo6WFBDUHRyPHhwY19jb25uZWN0aW9uX3Q+IGNvbm5lY3Rp
b24sIHhwY19vYmplY3RfdCBpbml0aWFsaXplck1lc3NhZ2UpCiB7Ci0gICAgWFBDU2VydmljZUlu
aXRpYWxpemVyRGVsZWdhdGVUeXBlIGRlbGVnYXRlKHN0ZDo6bW92ZShjb25uZWN0aW9uKSwgaW5p
dGlhbGl6ZXJNZXNzYWdlKTsKKyAgICBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZVR5cGUg
ZGVsZWdhdGUoV1RGOjptb3ZlKGNvbm5lY3Rpb24pLCBpbml0aWFsaXplck1lc3NhZ2UpOwogCiAg
ICAgLy8gV2UgZG9uJ3Qgd2FudCBYUEMgdG8gYmUgaW4gY2hhcmdlIG9mIHdoZXRoZXIgdGhlIHBy
b2Nlc3Mgc2hvdWxkIGJlIHRlcm1pbmF0ZWQgb3Igbm90LAogICAgIC8vIHNvIGVuc3VyZSB0aGF0
IHdlIGhhdmUgYW4gb3V0c3RhbmRpbmcgdHJhbnNhY3Rpb24gaGVyZS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9JbW11dGFibGVEaWN0aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9JbW11dGFibGVEaWN0aW9uYXJ5LmNwcAppbmRleCBjYWMxNDAzLi4wODFlZjQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvSW1tdXRhYmxlRGljdGlvbmFyeS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0ltbXV0YWJsZURpY3Rpb25hcnkuY3BwCkBA
IC0zOCwxMSArMzgsMTEgQEAgUmVmUHRyPEltbXV0YWJsZURpY3Rpb25hcnk+IEltbXV0YWJsZURp
Y3Rpb25hcnk6OmNyZWF0ZSgpCiAKIFJlZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiBJbW11dGFi
bGVEaWN0aW9uYXJ5OjpjcmVhdGUoTWFwVHlwZSBtYXApCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBJbW11dGFibGVEaWN0aW9uYXJ5KHN0ZDo6bW92ZShtYXApKSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBJbW11dGFibGVEaWN0aW9uYXJ5KFdURjo6bW92ZShtYXApKSk7CiB9CiAKIElt
bXV0YWJsZURpY3Rpb25hcnk6OkltbXV0YWJsZURpY3Rpb25hcnkoTWFwVHlwZSBtYXApCi0gICAg
OiBtX21hcChzdGQ6Om1vdmUobWFwKSkKKyAgICA6IG1fbWFwKFdURjo6bW92ZShtYXApKQogewog
fQogCkBAIC02MSw3ICs2MSw3IEBAIFBhc3NSZWZQdHI8QVBJOjpBcnJheT4gSW1tdXRhYmxlRGlj
dGlvbmFyeTo6a2V5cygpIGNvbnN0CiAgICAgZm9yIChjb25zdCBhdXRvJiBrZXkgOiBtX21hcC5r
ZXlzKCkpCiAgICAgICAgIGtleXMudW5jaGVja2VkQXBwZW5kKEFQSTo6U3RyaW5nOjpjcmVhdGUo
a2V5KSk7CiAKLSAgICByZXR1cm4gQVBJOjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShrZXlzKSk7
CisgICAgcmV0dXJuIEFQSTo6QXJyYXk6OmNyZWF0ZShXVEY6Om1vdmUoa2V5cykpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Q
bHVnaW5zL05ldHNjYXBlL1BsdWdpbkluZm9ybWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9QbHVnaW5zL05ldHNjYXBlL1BsdWdpbkluZm9ybWF0aW9uLmNwcAppbmRleCBmMTg4NDhh
Li5mOWZiMmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OZXRz
Y2FwZS9QbHVnaW5JbmZvcm1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Bs
dWdpbnMvTmV0c2NhcGUvUGx1Z2luSW5mb3JtYXRpb24uY3BwCkBAIC0xMjcsNyArMTI3LDcgQEAg
UGFzc1JlZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiBjcmVhdGVQbHVnaW5JbmZvcm1hdGlvbkRp
Y3Rpb25hcnkoY29uc3QgUGx1Z2luTW8KICAgICBJbW11dGFibGVEaWN0aW9uYXJ5OjpNYXBUeXBl
IG1hcDsKICAgICBnZXRQbHVnaW5Nb2R1bGVJbmZvcm1hdGlvbihwbHVnaW4sIG1hcCk7CiAKLSAg
ICByZXR1cm4gSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKHN0ZDo6bW92ZShtYXApKTsKKyAg
ICByZXR1cm4gSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShtYXApKTsKIH0K
IAogUGFzc1JlZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiBjcmVhdGVQbHVnaW5JbmZvcm1hdGlv
bkRpY3Rpb25hcnkoY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYgcGx1Z2luLCBjb25zdCBTdHJpbmcm
IGZyYW1lVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIHBh
Z2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgcGx1Z2luc3BhZ2VBdHRyaWJ1dGVVUkxTdHJpbmcs
IGNvbnN0IFN0cmluZyYgcGx1Z2luVVJMU3RyaW5nLCBib29sIHJlcGxhY2VtZW50T2JzY3VyZWQp
CkBAIC0xNDcsNyArMTQ3LDcgQEAgUGFzc1JlZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiBjcmVh
dGVQbHVnaW5JbmZvcm1hdGlvbkRpY3Rpb25hcnkoY29uc3QgUGx1Z2luTW8KICAgICAgICAgbWFw
LnNldChwbHVnaW5JbmZvcm1hdGlvblBsdWdpblVSTEtleSgpLCBBUEk6OlVSTDo6Y3JlYXRlKHBs
dWdpblVSTFN0cmluZykpOwogICAgIG1hcC5zZXQocGx1Z0luSW5mb3JtYXRpb25SZXBsYWNlbWVu
dE9ic2N1cmVkS2V5KCksIEFQSTo6Qm9vbGVhbjo6Y3JlYXRlKHJlcGxhY2VtZW50T2JzY3VyZWQp
KTsKIAotICAgIHJldHVybiBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoc3RkOjptb3ZlKG1h
cCkpOworICAgIHJldHVybiBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1h
cCkpOwogfQogCiBQYXNzUmVmUHRyPEltbXV0YWJsZURpY3Rpb25hcnk+IGNyZWF0ZVBsdWdpbklu
Zm9ybWF0aW9uRGljdGlvbmFyeShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcm
IGZyYW1lVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIHBhZ2VVUkxTdHJpbmcpCkBAIC0xNjEsNyAr
MTYxLDcgQEAgUGFzc1JlZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiBjcmVhdGVQbHVnaW5JbmZv
cm1hdGlvbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJgogICAgIGlmICghcGFnZVVSTFN0cmluZy5p
c0VtcHR5KCkpCiAgICAgICAgIG1hcC5zZXQocGx1Z2luSW5mb3JtYXRpb25QYWdlVVJMS2V5KCks
IEFQSTo6VVJMOjpjcmVhdGUocGFnZVVSTFN0cmluZykpOwogCi0gICAgcmV0dXJuIEltbXV0YWJs
ZURpY3Rpb25hcnk6OmNyZWF0ZShzdGQ6Om1vdmUobWFwKSk7CisgICAgcmV0dXJuIEltbXV0YWJs
ZURpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUobWFwKSk7CiB9CiAKICNpZiAhUExBVEZPUk0o
Q09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJpdHlPcmlnaW5E
YXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZWN1cml0eU9yaWdpbkRhdGEuY3BwCmlu
ZGV4IGI2YjRhOWEuLjI3MzIyYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9T
ZWN1cml0eU9yaWdpbkRhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZWN1cml0
eU9yaWdpbkRhdGEuY3BwCkBAIC05NSwxMCArOTUsMTAgQEAgdm9pZCBwZXJmb3JtQVBJQ2FsbGJh
Y2tXaXRoU2VjdXJpdHlPcmlnaW5EYXRhVmVjdG9yKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdp
bkQKICAgICAgICAgUmVmUHRyPEFQSTo6T2JqZWN0PiBvcmlnaW4gPSBXZWJTZWN1cml0eU9yaWdp
bjo6Y3JlYXRlKG9yaWdpbkRhdGEucHJvdG9jb2wsIG9yaWdpbkRhdGEuaG9zdCwgb3JpZ2luRGF0
YS5wb3J0KTsKICAgICAgICAgaWYgKCFvcmlnaW4pCiAgICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgc2VjdXJpdHlPcmlnaW5zLnVuY2hlY2tlZEFwcGVuZChzdGQ6Om1vdmUob3JpZ2luKSk7
CisgICAgICAgIHNlY3VyaXR5T3JpZ2lucy51bmNoZWNrZWRBcHBlbmQoV1RGOjptb3ZlKG9yaWdp
bikpOwogICAgIH0KIAotICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFs
dWUoQVBJOjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShzZWN1cml0eU9yaWdpbnMpKS5nZXQoKSk7
CisgICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZShBUEk6OkFycmF5
OjpjcmVhdGUoV1RGOjptb3ZlKHNlY3VyaXR5T3JpZ2lucykpLmdldCgpKTsKIH0KIAogYm9vbCBv
cGVyYXRvcj09KGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgYSwgY29uc3QgU2VjdXJpdHlPcmln
aW5EYXRhJiBiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFj
a2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5jcHAKaW5kZXgg
YmRjZmZiOS4uYWM3OWE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Np
b25UcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIu
Y3BwCkBAIC04NSw3ICs4NSw3IEBAIHZvaWQgU2Vzc2lvblRyYWNrZXI6OnNldFNlc3Npb24oU2Vz
c2lvbklEIHNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9yCiB7CiAgICAgQVNT
RVJUKHNlc3Npb25JRCAhPSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiAgICAgc3Rv
cmFnZVNlc3Npb25Ub0lEKCkuc2V0KHNlc3Npb24uZ2V0KCksIHNlc3Npb25JRCk7Ci0gICAgc3Rh
dGljU2Vzc2lvbk1hcCgpLnNldChzZXNzaW9uSUQsIHN0ZDo6bW92ZShzZXNzaW9uKSk7CisgICAg
c3RhdGljU2Vzc2lvbk1hcCgpLnNldChzZXNzaW9uSUQsIFdURjo6bW92ZShzZXNzaW9uKSk7CiB9
CiAKIHZvaWQgU2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9u
SUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlckRhdGEuY3BwIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJEYXRhLmNwcAppbmRleCA3YzVkYmE2Li4wYWU1NmUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlckRhdGEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Vc2VyRGF0YS5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgUmVmUHRyPEFQ
STo6T2JqZWN0PiBVc2VyRGF0YTo6dHJhbnNmb3JtKEFQSTo6T2JqZWN0KiBvYmplY3QsIGNvbnN0
IHN0ZDo6ZnVuY3Rpb24KICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBlbGVtZW50IDogYXJyYXku
ZWxlbWVudHMoKSkKICAgICAgICAgICAgIGVsZW1lbnRzLnVuY2hlY2tlZEFwcGVuZCh0cmFuc2Zv
cm0oZWxlbWVudC5nZXQoKSwgdHJhbnNmb3JtZXIpKTsKIAotICAgICAgICByZXR1cm4gQVBJOjpB
cnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShlbGVtZW50cykpOworICAgICAgICByZXR1cm4gQVBJOjpB
cnJheTo6Y3JlYXRlKFdURjo6bW92ZShlbGVtZW50cykpOwogICAgIH0KIAogICAgIGlmIChvYmpl
Y3QtPnR5cGUoKSA9PSBBUEk6Ok9iamVjdDo6VHlwZTo6RGljdGlvbmFyeSkgewpAQCAtNzUsNyAr
NzUsNyBAQCBSZWZQdHI8QVBJOjpPYmplY3Q+IFVzZXJEYXRhOjp0cmFuc2Zvcm0oQVBJOjpPYmpl
Y3QqIG9iamVjdCwgY29uc3Qgc3RkOjpmdW5jdGlvbgogICAgICAgICBmb3IgKGNvbnN0IGF1dG8m
IGtleVZhbHVlUGFpciA6IGRpY3Rpb25hcnkubWFwKCkpCiAgICAgICAgICAgICBtYXAuYWRkKGtl
eVZhbHVlUGFpci5rZXksIHRyYW5zZm9ybShrZXlWYWx1ZVBhaXIudmFsdWUuZ2V0KCksIHRyYW5z
Zm9ybWVyKSk7CiAKLSAgICAgICAgcmV0dXJuIEltbXV0YWJsZURpY3Rpb25hcnk6OmNyZWF0ZShz
dGQ6Om1vdmUobWFwKSk7CisgICAgICAgIHJldHVybiBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVh
dGUoV1RGOjptb3ZlKG1hcCkpOwogICAgIH0KIAogICAgIGlmIChhdXRvIHRyYW5zZm9ybWVkT2Jq
ZWN0ID0gdHJhbnNmb3JtZXIoKm9iamVjdCkpCkBAIC0yMTYsMTAgKzIxNiwxMCBAQCBib29sIFVz
ZXJEYXRhOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxBUEk6
Ok9iamVjdD4mIHJlc3VsdAogICAgICAgICAgICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgZWxlbWVu
dCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgICAgICBlbGVtZW50
cy5hcHBlbmQoc3RkOjptb3ZlKGVsZW1lbnQpKTsKKyAgICAgICAgICAgIGVsZW1lbnRzLmFwcGVu
ZChXVEY6Om1vdmUoZWxlbWVudCkpOwogICAgICAgICB9CiAKLSAgICAgICAgcmVzdWx0ID0gQVBJ
OjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShlbGVtZW50cykpOworICAgICAgICByZXN1bHQgPSBB
UEk6OkFycmF5OjpjcmVhdGUoV1RGOjptb3ZlKGVsZW1lbnRzKSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIApAQCAtMjQ4LDExICsyNDgsMTEgQEAgYm9vbCBVc2VyRGF0YTo6ZGVjb2RlKElQQzo6
QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8QVBJOjpPYmplY3Q+JiByZXN1bHQKICAg
ICAgICAgICAgIGlmICghZGVjb2RlKGRlY29kZXIsIHZhbHVlKSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgICAgIGlmICghbWFwLmFkZChzdGQ6Om1vdmUoa2V5KSwg
c3RkOjptb3ZlKHZhbHVlKSkuaXNOZXdFbnRyeSkKKyAgICAgICAgICAgIGlmICghbWFwLmFkZChX
VEY6Om1vdmUoa2V5KSwgV1RGOjptb3ZlKHZhbHVlKSkuaXNOZXdFbnRyeSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAgICByZXN1bHQgPSBJbW11dGFi
bGVEaWN0aW9uYXJ5OjpjcmVhdGUoc3RkOjptb3ZlKG1hcCkpOworICAgICAgICByZXN1bHQgPSBJ
bW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1hcCkpOwogICAgICAgICBicmVh
azsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2Fn
ZUNvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmgKaW5k
ZXggOGY0ZjU3Ni4uMDFiNjc2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Vz
ZXJNZXNzYWdlQ29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdl
Q29kZXJzLmgKQEAgLTI4Myw3ICsyODMsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgdmVj
dG9yLmFwcGVuZChlbGVtZW50LnJlbGVhc2UoKSk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAg
ICAgIGNvZGVyLm1fcm9vdCA9IEFQSTo6QXJyYXk6OmNyZWF0ZShzdGQ6Om1vdmUodmVjdG9yKSk7
CisgICAgICAgICAgICBjb2Rlci5tX3Jvb3QgPSBBUEk6OkFycmF5OjpjcmVhdGUoV1RGOjptb3Zl
KHZlY3RvcikpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBB
UEk6Ok9iamVjdDo6VHlwZTo6RGljdGlvbmFyeTogewpAQCAtMzA3LDcgKzMwNyw3IEBAIHB1Ymxp
YzoKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfQogCi0g
ICAgICAgICAgICBjb2Rlci5tX3Jvb3QgPSBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoc3Rk
Ojptb3ZlKG1hcCkpOworICAgICAgICAgICAgY29kZXIubV9yb290ID0gSW1tdXRhYmxlRGljdGlv
bmFyeTo6Y3JlYXRlKFdURjo6bW92ZShtYXApKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OlN0cmluZzogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwCmluZGV4IDhjY2Q0
YTcuLmU4OWNmOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYWNrRm9y
d2FyZExpc3RJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmFja0Zvcndh
cmRMaXN0SXRlbS5jcHAKQEAgLTM3LDEyICszNywxMiBAQCBzdGF0aWMgdWludDY0X3QgaGlnaGVz
dFVzZWRJdGVtSUQgPSAwOwogCiBQYXNzUmVmUHRyPFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0+IFdl
YkJhY2tGb3J3YXJkTGlzdEl0ZW06OmNyZWF0ZSh1aW50NjRfdCBpdGVtSUQsIEJhY2tGb3J3YXJk
TGlzdEl0ZW1TdGF0ZSBiYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBXZWJCYWNrRm9yd2FyZExpc3RJdGVtKGl0ZW1JRCwgc3RkOjptb3ZlKGJhY2tG
b3J3YXJkTGlzdEl0ZW1TdGF0ZSkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkJhY2tG
b3J3YXJkTGlzdEl0ZW0oaXRlbUlELCBXVEY6Om1vdmUoYmFja0ZvcndhcmRMaXN0SXRlbVN0YXRl
KSkpOwogfQogCiBXZWJCYWNrRm9yd2FyZExpc3RJdGVtOjpXZWJCYWNrRm9yd2FyZExpc3RJdGVt
KHVpbnQ2NF90IGl0ZW1JRCwgQmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlIGJhY2tGb3J3YXJkTGlz
dEl0ZW1TdGF0ZSkKICAgICA6IG1faXRlbUlEKGl0ZW1JRCkKLSAgICAsIG1faXRlbVN0YXRlKHN0
ZDo6bW92ZShiYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUpKQorICAgICwgbV9pdGVtU3RhdGUoV1RG
Ojptb3ZlKGJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSkpCiB7CiAgICAgaWYgKG1faXRlbUlEID4g
aGlnaGVzdFVzZWRJdGVtSUQpCiAgICAgICAgIGhpZ2hlc3RVc2VkSXRlbUlEID0gbV9pdGVtSUQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmFja0ZvcndhcmRMaXN0SXRl
bS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaAppbmRl
eCBmMGQzZmZmLi4zNGY0MjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYWNr
Rm9yd2FyZExpc3RJdGVtLmgKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAgIHVpbnQ2NF90
IGl0ZW1JRCgpIGNvbnN0IHsgcmV0dXJuIG1faXRlbUlEOyB9CiAgICAgY29uc3QgQmFja0Zvcndh
cmRMaXN0SXRlbVN0YXRlJiBpdGVtU3RhdGUoKSB7IHJldHVybiBtX2l0ZW1TdGF0ZTsgfQogCi0g
ICAgdm9pZCBzZXRQYWdlU3RhdGUoUGFnZVN0YXRlIHBhZ2VTdGF0ZSkgeyBtX2l0ZW1TdGF0ZS5w
YWdlU3RhdGUgPSBzdGQ6Om1vdmUocGFnZVN0YXRlKTsgfQorICAgIHZvaWQgc2V0UGFnZVN0YXRl
KFBhZ2VTdGF0ZSBwYWdlU3RhdGUpIHsgbV9pdGVtU3RhdGUucGFnZVN0YXRlID0gV1RGOjptb3Zl
KHBhZ2VTdGF0ZSk7IH0KIAogICAgIHZvaWQgc2V0T3JpZ2luYWxVUkwoY29uc3QgU3RyaW5nJiBv
cmlnaW5hbFVSTCkgeyBtX2l0ZW1TdGF0ZS5wYWdlU3RhdGUubWFpbkZyYW1lU3RhdGUub3JpZ2lu
YWxVUkxTdHJpbmcgPSBvcmlnaW5hbFVSTDsgfQogICAgIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxV
UkwoKSBjb25zdCB7IHJldHVybiBtX2l0ZW1TdGF0ZS5wYWdlU3RhdGUubWFpbkZyYW1lU3RhdGUu
b3JpZ2luYWxVUkxTdHJpbmc7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb25uZWN0aW9uLmNw
cAppbmRleCA3MTgwZmM2Li4zODUzY2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbm5l
Y3Rpb24uY3BwCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgV2ViQ29ubmVjdGlvbjo6cG9zdE1lc3Nh
Z2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgQVBJOjpPYmplY3QqIG1lc3NhZ2VCCiAgICAg
ZW5jb2Rlci0+ZW5jb2RlKG1lc3NhZ2VOYW1lKTsKICAgICBlbmNvZGVNZXNzYWdlQm9keSgqZW5j
b2RlciwgbWVzc2FnZUJvZHkpOwogCi0gICAgc2VuZE1lc3NhZ2Uoc3RkOjptb3ZlKGVuY29kZXIp
LCAwKTsKKyAgICBzZW5kTWVzc2FnZShXVEY6Om1vdmUoZW5jb2RlciksIDApOwogfQogCiB2b2lk
IFdlYkNvbm5lY3Rpb246OmRpZENsb3NlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb250ZXh0TWVudUl0ZW0uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
bnRleHRNZW51SXRlbS5jcHAKaW5kZXggY2ViOWE4Ni4uZWFmMTcwYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbS5jcHAKQEAgLTczLDcgKzczLDcgQEAgUGFz
c1JlZlB0cjxBUEk6OkFycmF5PiBXZWJDb250ZXh0TWVudUl0ZW06OnN1Ym1lbnVJdGVtc0FzQVBJ
QXJyYXkoKSBjb25zdAogICAgIGZvciAoY29uc3QgYXV0byYgaXRlbSA6IG1fd2ViQ29udGV4dE1l
bnVJdGVtRGF0YS5zdWJtZW51KCkpCiAgICAgICAgIHN1Ym1lbnVJdGVtcy51bmNoZWNrZWRBcHBl
bmQoV2ViQ29udGV4dE1lbnVJdGVtOjpjcmVhdGUoaXRlbSkpOwogCi0gICAgcmV0dXJuIEFQSTo6
QXJyYXk6OmNyZWF0ZShzdGQ6Om1vdmUoc3VibWVudUl0ZW1zKSk7CisgICAgcmV0dXJuIEFQSTo6
QXJyYXk6OmNyZWF0ZShXVEY6Om1vdmUoc3VibWVudUl0ZW1zKSk7CiB9CiAKIEFQSTo6T2JqZWN0
KiBXZWJDb250ZXh0TWVudUl0ZW06OnVzZXJEYXRhKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggYzRkNjdiMS4uZTQ0Yzcx
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHAKQEAgLTcwMCw3ICs3MDAsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXF1ZXN0
Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVzb3VyY2VSZQogICAgICAgICBI
VFRQSGVhZGVyTWFwIGhlYWRlcnM7CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGVhZGVy
cykpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHJlcXVlc3Quc2V0SFRUUEhl
YWRlckZpZWxkcyhzdGQ6Om1vdmUoaGVhZGVycykpOworICAgICAgICByZXF1ZXN0LnNldEhUVFBI
ZWFkZXJGaWVsZHMoV1RGOjptb3ZlKGhlYWRlcnMpKTsKIAogICAgICAgICBib29sIGhhc0hUVFBC
b2R5OwogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc0hUVFBCb2R5KSkKQEAgLTE4MjMs
NyArMTgyMyw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxGaWx0ZXJPcGVyYXRpb25zPjo6ZGVjb2Rl
KEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgRmlsdGVyT3BlCiAgICAgICAgIFJlZlB0cjxGaWx0
ZXJPcGVyYXRpb24+IGZpbHRlcjsKICAgICAgICAgaWYgKCFkZWNvZGVGaWx0ZXJPcGVyYXRpb24o
ZGVjb2RlciwgZmlsdGVyKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgZmls
dGVycy5vcGVyYXRpb25zKCkuYXBwZW5kKHN0ZDo6bW92ZShmaWx0ZXIpKTsKKyAgICAgICAgZmls
dGVycy5vcGVyYXRpb25zKCkuYXBwZW5kKFdURjo6bW92ZShmaWx0ZXIpKTsKICAgICB9CiAKICAg
ICByZXR1cm4gdHJ1ZTsKQEAgLTIxMzgsNyArMjEzOCw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxC
bG9iUGFydD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEJsb2JQYXJ0JiBibG9i
UGFyCiAgICAgICAgIFZlY3RvcjxjaGFyPiBkYXRhOwogICAgICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGRhdGEpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBibG9iUGFydCA9
IEJsb2JQYXJ0KHN0ZDo6bW92ZShkYXRhKSk7CisgICAgICAgIGJsb2JQYXJ0ID0gQmxvYlBhcnQo
V1RGOjptb3ZlKGRhdGEpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgQmxvYlBh
cnQ6OkJsb2I6IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJl
bmNlc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5o
CmluZGV4IGVmM2E1YWQuLmI5NTJkODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBy
ZWZlcmVuY2VzU3RvcmUuaApAQCAtODgsNyArODgsNyBAQCBzdHJ1Y3QgV2ViUHJlZmVyZW5jZXNT
dG9yZSB7CiAgICAgICAgICAgICBjYXNlIFR5cGU6Ok5vbmU6CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICBjYXNlIFR5cGU6OlN0cmluZzoKLSAgICAgICAgICAgICAgICBuZXcg
KCZtX3N0cmluZykgU3RyaW5nKHN0ZDo6bW92ZSh2YWx1ZS5tX3N0cmluZykpOworICAgICAgICAg
ICAgICAgIG5ldyAoJm1fc3RyaW5nKSBTdHJpbmcoV1RGOjptb3ZlKHZhbHVlLm1fc3RyaW5nKSk7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFR5cGU6OkJvb2w6CiAg
ICAgICAgICAgICAgICAgbV9ib29sID0gdmFsdWUubV9ib29sOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlJlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJSZW5kZXJMYXllci5jcHAKaW5kZXggZDY2YmQwNi4uYzk0ZjJiMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUmVuZGVyTGF5ZXIuY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIFBhc3NSZWZQ
dHI8QVBJOjpBcnJheT4gV2ViUmVuZGVyTGF5ZXI6OmNyZWF0ZUFycmF5RnJvbUxheWVyTGlzdChW
ZWN0b3I8UmVuZGVyTGF5CiAgICAgZm9yIChjb25zdCBhdXRvJiBsYXllciA6ICpsaXN0KQogICAg
ICAgICBsYXllcnMudW5jaGVja2VkQXBwZW5kKGFkb3B0UmVmKG5ldyBXZWJSZW5kZXJMYXllcihs
YXllcikpKTsKIAotICAgIHJldHVybiBBUEk6OkFycmF5OjpjcmVhdGUoc3RkOjptb3ZlKGxheWVy
cykpOworICAgIHJldHVybiBBUEk6OkFycmF5OjpjcmVhdGUoV1RGOjptb3ZlKGxheWVycykpOwog
fQogCiBXZWJSZW5kZXJMYXllcjo6V2ViUmVuZGVyTGF5ZXIoUmVuZGVyTGF5ZXIqIGxheWVyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlbmRlck9iamVjdC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVuZGVyT2JqZWN0LmNwcAppbmRleCBkNDY0NmNkLi4x
MTA0ZDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVuZGVyT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVuZGVyT2JqZWN0LmNwcApAQCAt
NzgsNyArNzgsNyBAQCBXZWJSZW5kZXJPYmplY3Q6OldlYlJlbmRlck9iamVjdChSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyLCBib29sIHNob3VsZEluY2x1ZGVEZXNjZQogICAgICAgICAgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwLCBzaXplID0gZWxlbWVudC0+Y2xhc3NOYW1lcygpLnNpemUoKTsgaSA8
IHNpemU7ICsraSkKICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lcy5hcHBlbmQoQVBJOjpT
dHJpbmc6OmNyZWF0ZShlbGVtZW50LT5jbGFzc05hbWVzKClbaV0pKTsKIAotICAgICAgICAgICAg
ICAgIG1fZWxlbWVudENsYXNzTmFtZXMgPSBBUEk6OkFycmF5OjpjcmVhdGUoc3RkOjptb3ZlKGNs
YXNzTmFtZXMpKTsKKyAgICAgICAgICAgICAgICBtX2VsZW1lbnRDbGFzc05hbWVzID0gQVBJOjpB
cnJheTo6Y3JlYXRlKFdURjo6bW92ZShjbGFzc05hbWVzKSk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICB9CkBAIC0xMDEsNyArMTAxLDcgQEAgV2ViUmVuZGVyT2JqZWN0OjpXZWJSZW5k
ZXJPYmplY3QoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgYm9vbCBzaG91bGRJbmNsdWRlRGVzY2UK
IAogICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjb3JlQ2hpbGQgPSByZW5kZXJlci0+Zmlyc3RDaGls
ZFNsb3coKTsgY29yZUNoaWxkOyBjb3JlQ2hpbGQgPSBjb3JlQ2hpbGQtPm5leHRTaWJsaW5nKCkp
IHsKICAgICAgICAgUmVmUHRyPFdlYlJlbmRlck9iamVjdD4gY2hpbGQgPSBhZG9wdFJlZihuZXcg
V2ViUmVuZGVyT2JqZWN0KGNvcmVDaGlsZCwgc2hvdWxkSW5jbHVkZURlc2NlbmRhbnRzKSk7Ci0g
ICAgICAgIGNoaWxkcmVuLmFwcGVuZChzdGQ6Om1vdmUoY2hpbGQpKTsKKyAgICAgICAgY2hpbGRy
ZW4uYXBwZW5kKFdURjo6bW92ZShjaGlsZCkpOwogICAgIH0KIAogICAgIGlmIChyZW5kZXJlci0+
aXNXaWRnZXQoKSkgewpAQCAtMTExLDEzICsxMTEsMTMgQEAgV2ViUmVuZGVyT2JqZWN0OjpXZWJS
ZW5kZXJPYmplY3QoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgYm9vbCBzaG91bGRJbmNsdWRlRGVz
Y2UKICAgICAgICAgICAgICAgICBpZiAoUmVuZGVyVmlldyogY29yZUNvbnRlbnRSZW5kZXJlciA9
IGZyYW1lVmlldy0+ZnJhbWUoKS5jb250ZW50UmVuZGVyZXIoKSkgewogICAgICAgICAgICAgICAg
ICAgICBSZWZQdHI8V2ViUmVuZGVyT2JqZWN0PiBjb250ZW50UmVuZGVyZXIgPSBhZG9wdFJlZihu
ZXcgV2ViUmVuZGVyT2JqZWN0KGNvcmVDb250ZW50UmVuZGVyZXIsIHNob3VsZEluY2x1ZGVEZXNj
ZW5kYW50cykpOwogCi0gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLmFwcGVuZChzdGQ6Om1v
dmUoY29udGVudFJlbmRlcmVyKSk7CisgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLmFwcGVu
ZChXVEY6Om1vdmUoY29udGVudFJlbmRlcmVyKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAgICAgfQogCi0gICAgbV9jaGlsZHJlbiA9IEFQSTo6QXJyYXk6
OmNyZWF0ZShzdGQ6Om1vdmUoY2hpbGRyZW4pKTsKKyAgICBtX2NoaWxkcmVuID0gQVBJOjpBcnJh
eTo6Y3JlYXRlKFdURjo6bW92ZShjaGlsZHJlbikpOwogfQogCiBXZWJSZW5kZXJPYmplY3Q6Oldl
YlJlbmRlck9iamVjdChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZWxlbWVudFRh
Z05hbWUsIGNvbnN0IFN0cmluZyYgZWxlbWVudElELCBQYXNzUmVmUHRyPEFQSTo6QXJyYXk+IGVs
ZW1lbnRDbGFzc05hbWVzLCBXZWJDb3JlOjpJbnRQb2ludCBhYnNvbHV0ZVBvc2l0aW9uLCBXZWJD
b3JlOjpJbnRSZWN0IGZyYW1lUmVjdCwgUGFzc1JlZlB0cjxBUEk6OkFycmF5PiBjaGlsZHJlbikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9jZi9LZXllZERlY29kZXIuY3BwIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL2NmL0tleWVkRGVjb2Rlci5jcHAKaW5kZXggNjQ5OThjOS4u
NDc2OTIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2NmL0tleWVkRGVjb2Rl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2NmL0tleWVkRGVjb2Rlci5jcHAKQEAg
LTM2LDcgKzM2LDcgQEAgS2V5ZWREZWNvZGVyOjpLZXllZERlY29kZXIoY29uc3QgdWludDhfdCog
ZGF0YSwgc2l6ZV90IHNpemUpCiAgICAgYXV0byBjZkRhdGEgPSBhZG9wdENGKENGRGF0YUNyZWF0
ZVdpdGhCeXRlc05vQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkYXRhLCBzaXplLCBrQ0ZBbGxv
Y2F0b3JOdWxsKSk7CiAKICAgICBpZiAoYXV0byByb290RGljdGlvbmFyeSA9IGFkb3B0Q0YoZHlu
YW1pY19jZl9jYXN0PENGRGljdGlvbmFyeVJlZj4oQ0ZQcm9wZXJ0eUxpc3RDcmVhdGVXaXRoRGF0
YShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjZkRhdGEuZ2V0KCksIGtDRlByb3BlcnR5TGlzdEltbXV0
YWJsZSwgbnVsbHB0ciwgbnVsbHB0cikpKSkKLSAgICAgICAgbV9yb290RGljdGlvbmFyeSA9IHN0
ZDo6bW92ZShyb290RGljdGlvbmFyeSk7CisgICAgICAgIG1fcm9vdERpY3Rpb25hcnkgPSBXVEY6
Om1vdmUocm9vdERpY3Rpb25hcnkpOwogICAgIGVsc2UKICAgICAgICAgbV9yb290RGljdGlvbmFy
eSA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxw
dHIsIG51bGxwdHIsIDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVE
aWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKICAgICBtX2RpY3Rpb25hcnlTdGFjay5hcHBlbmQo
bV9yb290RGljdGlvbmFyeS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbGludXgvU2VjY29tcEZpbHRlcnMvT3BlblN5c2NhbGwuY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL2xpbnV4L1NlY2NvbXBGaWx0ZXJzL09wZW5TeXNjYWxsLmNwcAppbmRleCBmZGU0OGUz
Li5kOTUwNTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbGludXgvU2VjY29t
cEZpbHRlcnMvT3BlblN5c2NhbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9saW51
eC9TZWNjb21wRmlsdGVycy9PcGVuU3lzY2FsbC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgc3RkOjp1
bmlxdWVfcHRyPFN5c2NhbGw+IE9wZW5TeXNjYWxsOjpjcmVhdGVGcm9tT3BlbmF0Q29udGV4dCht
Y29udGV4dF90KiBjb250ZXgKIAogICAgIGlmIChwYXRoWzBdID09ICcvJykgewogICAgICAgICBv
cGVuLT5zZXRQYXRoKHBhdGgpOwotICAgICAgICByZXR1cm4gc3RkOjptb3ZlKG9wZW4pOworICAg
ICAgICByZXR1cm4gV1RGOjptb3ZlKG9wZW4pOwogICAgIH0KIAogICAgIHN0cnVjdCBzdGF0IHBh
dGhTdGF0OwpAQCAtOTAsNyArOTAsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8U3lzY2FsbD4gT3BlblN5
c2NhbGw6OmNyZWF0ZUZyb21PcGVuYXRDb250ZXh0KG1jb250ZXh0X3QqIGNvbnRleAogICAgIHNw
cmludGYoJmZkUGF0aFtzaXplXSwgIi8lcyIsIHBhdGgpOwogICAgIG9wZW4tPnNldFBhdGgoZmRQ
YXRoKTsKIAotICAgIHJldHVybiBzdGQ6Om1vdmUob3Blbik7CisgICAgcmV0dXJuIFdURjo6bW92
ZShvcGVuKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFN5c2NhbGw+IE9wZW5TeXNjYWxsOjpjcmVh
dGVGcm9tQ3JlYXRDb250ZXh0KG1jb250ZXh0X3QqIGNvbnRleHQpCkBAIC0xMDIsNyArMTAyLDcg
QEAgc3RkOjp1bmlxdWVfcHRyPFN5c2NhbGw+IE9wZW5TeXNjYWxsOjpjcmVhdGVGcm9tQ3JlYXRD
b250ZXh0KG1jb250ZXh0X3QqIGNvbnRleHQKICAgICBvcGVuLT5zZXRNb2RlKGNvbnRleHQtPmdy
ZWdzW1JFR19BUkcxXSk7CiAgICAgb3Blbi0+c2V0Q29udGV4dChjb250ZXh0KTsKIAotICAgIHJl
dHVybiBzdGQ6Om1vdmUob3Blbik7CisgICAgcmV0dXJuIFdURjo6bW92ZShvcGVuKTsKIH0KIAog
T3BlblN5c2NhbGw6Ok9wZW5TeXNjYWxsKG1jb250ZXh0X3QqIGNvbnRleHQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQppbmRl
eCBhMzE1MmZkLi4wZjBmNzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KQEAgLTM4MCw3ICszODAsNyBAQCB2b2lkIFJl
bW90ZUxheWVyQmFja2luZ1N0b3JlOjphcHBseUJhY2tpbmdTdG9yZVRvTGF5ZXIoQ0FMYXllciAq
bGF5ZXIpCiAKIFJldGFpblB0cjxDR0NvbnRleHRSZWY+IFJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
Ojp0YWtlRnJvbnRDb250ZXh0UGVuZGluZ0ZsdXNoKCkKIHsKLSAgICByZXR1cm4gc3RkOjptb3Zl
KG1fZnJvbnRDb250ZXh0UGVuZGluZ0ZsdXNoKTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKG1fZnJv
bnRDb250ZXh0UGVuZGluZ0ZsdXNoKTsKIH0KIAogI2lmIFVTRShJT1NVUkZBQ0UpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
Lm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bi5tbQppbmRleCA4ZjBmMTAwLi4yZjFjMzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KQEAgLTQxMCw3ICs0
MTAsNyBAQCBib29sIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6
OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZAogICAgICAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZSgqYmFja2luZ1N0b3JlKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgICAgICAKLSAgICAgICAgICAgIHJlc3VsdC5iYWNraW5nU3RvcmUgPSBzdGQ6Om1vdmUo
YmFja2luZ1N0b3JlKTsKKyAgICAgICAgICAgIHJlc3VsdC5iYWNraW5nU3RvcmUgPSBXVEY6Om1v
dmUoYmFja2luZ1N0b3JlKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICByZXN1bHQuYmFj
a2luZ1N0b3JlID0gbnVsbHB0cjsKICAgICB9CkBAIC00MTksNyArNDE5LDcgQEAgYm9vbCBSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzOjpkZWNvZGUoSVBDOjpBcmd1
bWVudERlY29kZXImIGQKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlck9wZXJhdGlvbnM+
IGZpbHRlcnMgPSBzdGQ6Om1ha2VfdW5pcXVlPEZpbHRlck9wZXJhdGlvbnM+KCk7CiAgICAgICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoKmZpbHRlcnMpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICByZXN1bHQuZmlsdGVycyA9IHN0ZDo6bW92ZShmaWx0ZXJzKTsKKyAgICAgICAg
cmVzdWx0LmZpbHRlcnMgPSBXVEY6Om1vdmUoZmlsdGVycyk7CiAgICAgfQogCiAgICAgaWYgKHJl
c3VsdC5jaGFuZ2VkUHJvcGVydGllcyAmIEVkZ2VBbnRpYWxpYXNpbmdNYXNrQ2hhbmdlZCkgewpA
QCAtNTAwLDcgKzUwMCw3IEBAIGJvb2wgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OmRlY29k
ZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVtb3RlTGF5CiAgICAgICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoKmxheWVyUHJvcGVydGllcykpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICAgICAgcmVzdWx0LmNoYW5nZWRMYXllclByb3BlcnRpZXMoKS5zZXQobGF5ZXJJ
RCwgc3RkOjptb3ZlKGxheWVyUHJvcGVydGllcykpOworICAgICAgICByZXN1bHQuY2hhbmdlZExh
eWVyUHJvcGVydGllcygpLnNldChsYXllcklELCBXVEY6Om1vdmUobGF5ZXJQcm9wZXJ0aWVzKSk7
CiAgICAgfQogCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9kZXN0cm95ZWRMYXll
cklEcykpCkBAIC01NjYsMTcgKzU2NiwxNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0
aW9uOjpsYXllclByb3BlcnRpZXNDaGFuZ2VkKFBsYXRmb3JtQ0FMYXllclJlbW90ZSYgcgogCiB2
b2lkIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpzZXRDcmVhdGVkTGF5ZXJzKFZlY3RvcjxM
YXllckNyZWF0aW9uUHJvcGVydGllcz4gY3JlYXRlZExheWVycykKIHsKLSAgICBtX2NyZWF0ZWRM
YXllcnMgPSBzdGQ6Om1vdmUoY3JlYXRlZExheWVycyk7CisgICAgbV9jcmVhdGVkTGF5ZXJzID0g
V1RGOjptb3ZlKGNyZWF0ZWRMYXllcnMpOwogfQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uOjpzZXREZXN0cm95ZWRMYXllcklEcyhWZWN0b3I8R3JhcGhpY3NMYXllcjo6UGxhdGZv
cm1MYXllcklEPiBkZXN0cm95ZWRMYXllcklEcykKIHsKLSAgICBtX2Rlc3Ryb3llZExheWVySURz
ID0gc3RkOjptb3ZlKGRlc3Ryb3llZExheWVySURzKTsKKyAgICBtX2Rlc3Ryb3llZExheWVySURz
ID0gV1RGOjptb3ZlKGRlc3Ryb3llZExheWVySURzKTsKIH0KIAogdm9pZCBSZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbjo6c2V0TGF5ZXJJRHNXaXRoTmV3bHlVbnJlYWNoYWJsZUJhY2tpbmdTdG9y
ZShWZWN0b3I8R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPiBsYXllcklEc1dpdGhOZXds
eVVucmVhY2hhYmxlQmFja2luZ1N0b3JlKQogewotICAgIG1fbGF5ZXJJRHNXaXRoTmV3bHlVbnJl
YWNoYWJsZUJhY2tpbmdTdG9yZSA9IHN0ZDo6bW92ZShsYXllcklEc1dpdGhOZXdseVVucmVhY2hh
YmxlQmFja2luZ1N0b3JlKTsKKyAgICBtX2xheWVySURzV2l0aE5ld2x5VW5yZWFjaGFibGVCYWNr
aW5nU3RvcmUgPSBXVEY6Om1vdmUobGF5ZXJJRHNXaXRoTmV3bHlVbnJlYWNoYWJsZUJhY2tpbmdT
dG9yZSk7CiB9CiAKICNpZiAhZGVmaW5lZChOREVCVUcpIHx8ICFMT0dfRElTQUJMRUQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJU2Vzc2lvblN0YXRlLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJU2Vzc2lvblN0YXRlLmNwcAppbmRleCBi
YjgxYWViLi40MzVhNmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0FQSVNlc3Npb25TdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9B
UElTZXNzaW9uU3RhdGUuY3BwCkBAIC0zMCwxMSArMzAsMTEgQEAgbmFtZXNwYWNlIEFQSSB7CiAK
IFBhc3NSZWZQdHI8U2Vzc2lvblN0YXRlPiBTZXNzaW9uU3RhdGU6OmNyZWF0ZShXZWJLaXQ6OlNl
c3Npb25TdGF0ZSBzZXNzaW9uU3RhdGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXNz
aW9uU3RhdGUoc3RkOjptb3ZlKHNlc3Npb25TdGF0ZSkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFNlc3Npb25TdGF0ZShXVEY6Om1vdmUoc2Vzc2lvblN0YXRlKSkpOwogfQogCiBTZXNzaW9u
U3RhdGU6OlNlc3Npb25TdGF0ZShXZWJLaXQ6OlNlc3Npb25TdGF0ZSBzZXNzaW9uU3RhdGUpCi0g
ICAgOiBtX3Nlc3Npb25TdGF0ZShzdGQ6Om1vdmUoc2Vzc2lvblN0YXRlKSkKKyAgICA6IG1fc2Vz
c2lvblN0YXRlKFdURjo6bW92ZShzZXNzaW9uU3RhdGUpKQogewogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggYmIxZTAwYy4uYzI1ODgwNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaApAQCAtMTQxLDcgKzE0
MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcGlubmVkU3RhdGVEaWRDaGFuZ2UoV2Vi
S2l0OjpXZWJQYWdlUHJveHkmKSB7IH0KIAogI2lmIFBMQVRGT1JNKElPUykKLSAgICB2aXJ0dWFs
IFJldGFpblB0cjxOU0FycmF5PiBhY3Rpb25zRm9yRWxlbWVudChfV0tBY3RpdmF0ZWRFbGVtZW50
SW5mbyAqLCBSZXRhaW5QdHI8TlNBcnJheT4gZGVmYXVsdEFjdGlvbnMpIHsgcmV0dXJuIHN0ZDo6
bW92ZShkZWZhdWx0QWN0aW9ucyk7IH0KKyAgICB2aXJ0dWFsIFJldGFpblB0cjxOU0FycmF5PiBh
Y3Rpb25zRm9yRWxlbWVudChfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqLCBSZXRhaW5QdHI8TlNB
cnJheT4gZGVmYXVsdEFjdGlvbnMpIHsgcmV0dXJuIFdURjo6bW92ZShkZWZhdWx0QWN0aW9ucyk7
IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90SGFuZGxlVGFwQXNDbGljayhjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYpIHsgfQogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcAppbmRleCAzMjE2NjAyLi5jYTRkMjA3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtOTY5LDkgKzk2OSw5IEBAIHZvaWQgV0tQYWdl
U2V0UGFnZUxvYWRlckNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlTG9hZGVy
Q2xpZW50QmFzZSoKICAgICAgICAgICAgICAgICBWZWN0b3I8UmVmUHRyPEFQSTo6T2JqZWN0Pj4g
cmVtb3ZlZEl0ZW1zVmVjdG9yOwogICAgICAgICAgICAgICAgIHJlbW92ZWRJdGVtc1ZlY3Rvci5y
ZXNlcnZlSW5pdGlhbENhcGFjaXR5KHJlbW92ZWRJdGVtcy5zaXplKCkpOwogICAgICAgICAgICAg
ICAgIGZvciAoYXV0byYgcmVtb3ZlZEl0ZW0gOiByZW1vdmVkSXRlbXMpCi0gICAgICAgICAgICAg
ICAgICAgIHJlbW92ZWRJdGVtc1ZlY3Rvci5hcHBlbmQoc3RkOjptb3ZlKHJlbW92ZWRJdGVtKSk7
CisgICAgICAgICAgICAgICAgICAgIHJlbW92ZWRJdGVtc1ZlY3Rvci5hcHBlbmQoV1RGOjptb3Zl
KHJlbW92ZWRJdGVtKSk7CiAKLSAgICAgICAgICAgICAgICByZW1vdmVkSXRlbXNBcnJheSA9IEFQ
STo6QXJyYXk6OmNyZWF0ZShzdGQ6Om1vdmUocmVtb3ZlZEl0ZW1zVmVjdG9yKSk7CisgICAgICAg
ICAgICAgICAgcmVtb3ZlZEl0ZW1zQXJyYXkgPSBBUEk6OkFycmF5OjpjcmVhdGUoV1RGOjptb3Zl
KHJlbW92ZWRJdGVtc1ZlY3RvcikpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBtX2Ns
aWVudC5kaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QodG9BUEkocGFnZSksIHRvQVBJKGFkZGVkSXRl
bSksIHRvQVBJKHJlbW92ZWRJdGVtc0FycmF5LmdldCgpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJ
bmZvKTsKQEAgLTEwNzcsNyArMTA3Nyw3IEBAIHZvaWQgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVu
dChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlTG9hZGVyQ2xpZW50QmFzZSoKICAgICBp
ZiAobWlsZXN0b25lcykKICAgICAgICAgd2ViUGFnZVByb3h5LT5wcm9jZXNzKCkuc2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6TGlzdGVuRm9yTGF5b3V0TWlsZXN0b25lcyhtaWxlc3RvbmVzKSwgd2Vi
UGFnZVByb3h5LT5wYWdlSUQoKSk7CiAKLSAgICB3ZWJQYWdlUHJveHktPnNldExvYWRlckNsaWVu
dChzdGQ6Om1vdmUobG9hZGVyQ2xpZW50KSk7CisgICAgd2ViUGFnZVByb3h5LT5zZXRMb2FkZXJD
bGllbnQoV1RGOjptb3ZlKGxvYWRlckNsaWVudCkpOwogfQogCiB2b2lkIFdLUGFnZVNldFBhZ2VQ
b2xpY3lDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZVBvbGljeUNsaWVudEJh
c2UqIHdrQ2xpZW50KQpAQCAtMTE4Myw3ICsxMTgzLDcgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlD
bGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZVVJQ2xpZW50QmFzZSogd2tDbGll
bnQKICAgICAgICAgICAgIG1hcC5zZXQoInJlc2l6YWJsZSIsIEFQSTo6Qm9vbGVhbjo6Y3JlYXRl
KHdpbmRvd0ZlYXR1cmVzLnJlc2l6YWJsZSkpOwogICAgICAgICAgICAgbWFwLnNldCgiZnVsbHNj
cmVlbiIsIEFQSTo6Qm9vbGVhbjo6Y3JlYXRlKHdpbmRvd0ZlYXR1cmVzLmZ1bGxzY3JlZW4pKTsK
ICAgICAgICAgICAgIG1hcC5zZXQoImRpYWxvZyIsIEFQSTo6Qm9vbGVhbjo6Y3JlYXRlKHdpbmRv
d0ZlYXR1cmVzLmRpYWxvZykpOwotICAgICAgICAgICAgUmVmUHRyPEltbXV0YWJsZURpY3Rpb25h
cnk+IGZlYXR1cmVzTWFwID0gSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKHN0ZDo6bW92ZSht
YXApKTsKKyAgICAgICAgICAgIFJlZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiBmZWF0dXJlc01h
cCA9IEltbXV0YWJsZURpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUobWFwKSk7CiAKICAgICAg
ICAgICAgIGlmICghbV9jbGllbnQuYmFzZS52ZXJzaW9uKQogICAgICAgICAgICAgICAgIHJldHVy
biBhZG9wdFJlZih0b0ltcGwobV9jbGllbnQuY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNl
V2l0aFYwKHRvQVBJKHBhZ2UpLCB0b0FQSShmZWF0dXJlc01hcC5nZXQoKSksIHRvQVBJKG5hdmln
YXRpb25BY3Rpb25EYXRhLm1vZGlmaWVycyksIHRvQVBJKG5hdmlnYXRpb25BY3Rpb25EYXRhLm1v
dXNlQnV0dG9uKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKSkpOwpAQCAtMTc3MCw3ICsxNzcw
LDcgQEAgV0tBcnJheVJlZiBXS1BhZ2VDb3B5UmVsYXRlZFBhZ2VzKFdLUGFnZVJlZiBwYWdlUmVm
KQogICAgICAgICAgICAgcmVsYXRlZFBhZ2VzLmFwcGVuZChwYWdlKTsKICAgICB9CiAKLSAgICBy
ZXR1cm4gdG9BUEkoQVBJOjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShyZWxhdGVkUGFnZXMpKS5s
ZWFrUmVmKCkpOworICAgIHJldHVybiB0b0FQSShBUEk6OkFycmF5OjpjcmVhdGUoV1RGOjptb3Zl
KHJlbGF0ZWRQYWdlcykpLmxlYWtSZWYoKSk7CiB9CiAKIHZvaWQgV0tQYWdlU2V0TWF5U3RhcnRN
ZWRpYVdoZW5JbldpbmRvdyhXS1BhZ2VSZWYgcGFnZVJlZiwgYm9vbCBtYXlTdGFydE1lZGlhKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblN0YXRl
UmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25TdGF0ZVJl
Zi5jcHAKaW5kZXggNmIyOWNmNi4uOTQ2YjAyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblN0YXRlUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tTZXNzaW9uU3RhdGVSZWYuY3BwCkBAIC00Miw1ICs0Miw1IEBA
IFdLU2Vzc2lvblN0YXRlUmVmIFdLU2Vzc2lvblN0YXRlQ3JlYXRlRnJvbURhdGEoV0tEYXRhUmVm
IGRhdGEpCiAgICAgaWYgKCFXZWJLaXQ6OmRlY29kZUxlZ2FjeVNlc3Npb25TdGF0ZSgqV2ViS2l0
Ojp0b0ltcGwoZGF0YSksIHNlc3Npb25TdGF0ZSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgcmV0dXJuIFdlYktpdDo6dG9BUEkoQVBJOjpTZXNzaW9uU3RhdGU6OmNyZWF0ZShzdGQ6
Om1vdmUoc2Vzc2lvblN0YXRlKSkubGVha1JlZigpKTsKKyAgICByZXR1cm4gV2ViS2l0Ojp0b0FQ
SShBUEk6OlNlc3Npb25TdGF0ZTo6Y3JlYXRlKFdURjo6bW92ZShzZXNzaW9uU3RhdGUpKS5sZWFr
UmVmKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL21h
Yy9XS0NvbnRleHRQcml2YXRlTWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L21hYy9XS0NvbnRleHRQcml2YXRlTWFjLm1tCmluZGV4IDdmMDAzM2MuLjE4Njc5N2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJpdmF0
ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4
dFByaXZhdGVNYWMubW0KQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBXS0NvbnRleHRHZXRJbmZvRm9y
SW5zdGFsbGVkUGx1Z0lucyhXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tDb250ZXh0R2V0SW4K
ICAgICBmb3IgKGNvbnN0IGF1dG8mIHBsdWdpbjogcGx1Z2lucykKICAgICAgICAgcGx1Z2luSW5m
b0RpY3Rpb25hcmllcy51bmNoZWNrZWRBcHBlbmQoY3JlYXRlUGx1Z2luSW5mb3JtYXRpb25EaWN0
aW9uYXJ5KHBsdWdpbikpOwogCi0gICAgUmVmUHRyPEFQSTo6QXJyYXk+IGFycmF5ID0gQVBJOjpB
cnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShwbHVnaW5JbmZvRGljdGlvbmFyaWVzKSk7CisgICAgUmVm
UHRyPEFQSTo6QXJyYXk+IGFycmF5ID0gQVBJOjpBcnJheTo6Y3JlYXRlKFdURjo6bW92ZShwbHVn
aW5JbmZvRGljdGlvbmFyaWVzKSk7CiAKICAgICB0b0ltcGwoY29udGV4dFJlZiktPnJlZigpOwog
ICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF4oKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250
ZXh0R3JvdXAubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3Np
bmdDb250ZXh0R3JvdXAubW0KaW5kZXggMGMwNjk1ZC4uZjVmZDBjNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdyb3VwLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRl
eHRHcm91cC5tbQpAQCAtMTI2LDcgKzEyNiw3IEBAIHN0YXRpYyBXS1JldGFpblB0cjxXS0FycmF5
UmVmPiBjcmVhdGVXS0FycmF5KE5TQXJyYXkgKmFycmF5KQogICAgICAgICAgICAgc3RyaW5ncy51
bmNoZWNrZWRBcHBlbmQoYWRvcHRSZWYodG9JbXBsKFdLU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5n
KChDRlN0cmluZ1JlZillbnRyeSkpKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHRvQVBJKEFQSTo6
QXJyYXk6OmNyZWF0ZShzdGQ6Om1vdmUoc3RyaW5ncykpLmxlYWtSZWYoKSk7CisgICAgcmV0dXJu
IHRvQVBJKEFQSTo6QXJyYXk6OmNyZWF0ZShXVEY6Om1vdmUoc3RyaW5ncykpLmxlYWtSZWYoKSk7
CiB9CiAKIC0odm9pZClhZGRVc2VyU3R5bGVTaGVldDooTlNTdHJpbmcgKilzb3VyY2UgYmFzZVVS
TDooTlNVUkwgKiliYXNlVVJMIHdoaXRlbGlzdGVkVVJMUGF0dGVybnM6KE5TQXJyYXkgKil3aGl0
ZWxpc3QgYmxhY2tsaXN0ZWRVUkxQYXR0ZXJuczooTlNBcnJheSAqKWJsYWNrbGlzdCBtYWluRnJh
bWVPbmx5OihCT09MKW1haW5GcmFtZU9ubHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLm1tCmluZGV4IGZlZTcyODkuLmFiNTEzZTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNz
R3JvdXAubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nl
c3NHcm91cC5tbQpAQCAtMTk0LDcgKzE5NCw3IEBAIHN0YXRpYyB2b2lkIHNldFVwSGlzdG9yeUNs
aWVudChXS1Byb2Nlc3NHcm91cCAqcHJvY2Vzc0dyb3VwLCBXS0NvbnRleHRSZWYgY29udGV4CiAK
ICAgICBXZWJDb250ZXh0OjphcHBseVBsYXRmb3JtU3BlY2lmaWNDb25maWd1cmF0aW9uRGVmYXVs
dHMod2ViQ29udGV4dENvbmZpZ3VyYXRpb24pOwogCi0gICAgX2NvbnRleHQgPSBXZWJDb250ZXh0
OjpjcmVhdGUoc3RkOjptb3ZlKHdlYkNvbnRleHRDb25maWd1cmF0aW9uKSk7CisgICAgX2NvbnRl
eHQgPSBXZWJDb250ZXh0OjpjcmVhdGUoV1RGOjptb3ZlKHdlYkNvbnRleHRDb25maWd1cmF0aW9u
KSk7CiAKICAgICBzZXRVcENvbm5lY3Rpb25DbGllbnQoc2VsZiwgdG9BUEkoX2NvbnRleHQuZ2V0
KCkpKTsKICAgICBzZXRVcEluZWN0ZWRCdW5kbGVDbGllbnQoc2VsZiwgdG9BUEkoX2NvbnRleHQu
Z2V0KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcm9jZXNzUG9vbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cm9jZXNzUG9vbC5tbQppbmRleCBjZTdhYmMyLi5jYjJhZjk5OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpAQCAtMTY2LDcg
KzE2Niw3IEBAIHN0YXRpYyBOU1VSTCAqd2Vic2l0ZURhdGFEaXJlY3RvcnlVUkwoTlNTdHJpbmcg
KmRpcmVjdG9yeU5hbWUpCiAgICAgd2ViQ29udGV4dENvbmZpZ3VyYXRpb24ud2ViU1FMRGF0YWJh
c2VEaXJlY3RvcnkgPSB3ZWJzaXRlRGF0YURpcmVjdG9yeVVSTChAIldlYlNRTCIpLmFic29sdXRl
VVJMLnBhdGguZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uOwogICAgIHdlYkNvbnRleHRDb25maWd1
cmF0aW9uLmluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5ID0gd2Vic2l0ZURhdGFEaXJlY3RvcnlV
UkwoQCJJbmRleGVkREIiKS5hYnNvbHV0ZVVSTC5wYXRoLmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlv
bjsKIAotICAgIEFQSTo6T2JqZWN0Ojpjb25zdHJ1Y3RJbldyYXBwZXI8V2ViS2l0OjpXZWJDb250
ZXh0PihzZWxmLCBzdGQ6Om1vdmUod2ViQ29udGV4dENvbmZpZ3VyYXRpb24pKTsKKyAgICBBUEk6
Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPFdlYktpdDo6V2ViQ29udGV4dD4oc2VsZiwgV1RG
Ojptb3ZlKHdlYkNvbnRleHRDb25maWd1cmF0aW9uKSk7CiAgICAgX2NvbnRleHQtPnNldEhpc3Rv
cnlDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxXZWJLaXQ6Okhpc3RvcnlDbGllbnQ+KCkpOwogICAg
IF9jb250ZXh0LT5zZXRVc2VzTmV0d29ya1Byb2Nlc3ModHJ1ZSk7CiAgICAgX2NvbnRleHQtPnNl
dFByb2Nlc3NNb2RlbChXZWJLaXQ6OlByb2Nlc3NNb2RlbE11bHRpcGxlU2Vjb25kYXJ5UHJvY2Vz
c2VzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0KaW5kZXggYWE1OTc1Zi4uNTdjMzNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTI3Nyw3ICsyNzcsNyBAQCBzdGF0aWMgaW50
MzJfdCBkZXZpY2VPcmllbnRhdGlvbigpCiAgICAgW3NlbGYgYWRkU3Vidmlldzpfc2Nyb2xsVmll
dy5nZXQoKV07CiAgICAgW19zY3JvbGxWaWV3IHNldEJhY2tncm91bmRDb2xvcjpbVUlDb2xvciB3
aGl0ZUNvbG9yXV07CiAKLSAgICBfY29udGVudFZpZXcgPSBhZG9wdE5TKFtbV0tDb250ZW50Vmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpib3VuZHMgY29udGV4dDpjb250ZXh0IGNvbmZpZ3VyYXRp
b246c3RkOjptb3ZlKHdlYlBhZ2VDb25maWd1cmF0aW9uKSB3ZWJWaWV3OnNlbGZdKTsKKyAgICBf
Y29udGVudFZpZXcgPSBhZG9wdE5TKFtbV0tDb250ZW50VmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpib3VuZHMgY29udGV4dDpjb250ZXh0IGNvbmZpZ3VyYXRpb246V1RGOjptb3ZlKHdlYlBhZ2VD
b25maWd1cmF0aW9uKSB3ZWJWaWV3OnNlbGZdKTsKIAogICAgIF9wYWdlID0gW19jb250ZW50Vmll
dyBwYWdlXTsKICAgICBfcGFnZS0+c2V0QXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KFtAIk1v
YmlsZS8iIHN0cmluZ0J5QXBwZW5kaW5nU3RyaW5nOltVSURldmljZSBjdXJyZW50RGV2aWNlXS5i
dWlsZFZlcnNpb25dKTsKQEAgLTMwMyw3ICszMDMsNyBAQCBzdGF0aWMgaW50MzJfdCBkZXZpY2VP
cmllbnRhdGlvbigpCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBfd2tWaWV3ID0g
W1tXS1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Ym91bmRzIGNvbnRleHQ6Y29udGV4dCBjb25m
aWd1cmF0aW9uOnN0ZDo6bW92ZSh3ZWJQYWdlQ29uZmlndXJhdGlvbikgd2ViVmlldzpzZWxmXTsK
KyAgICBfd2tWaWV3ID0gW1tXS1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Ym91bmRzIGNvbnRl
eHQ6Y29udGV4dCBjb25maWd1cmF0aW9uOldURjo6bW92ZSh3ZWJQYWdlQ29uZmlndXJhdGlvbikg
d2ViVmlldzpzZWxmXTsKICAgICBbc2VsZiBhZGRTdWJ2aWV3Ol93a1ZpZXcuZ2V0KCldOwogICAg
IF9wYWdlID0gV2ViS2l0Ojp0b0ltcGwoW193a1ZpZXcgcGFnZVJlZl0pOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudUl0ZW0u
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29udGV4dE1lbnVJ
dGVtLmNwcAppbmRleCA4ZDU4MzcxLi5lMmVjOGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudUl0ZW0uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51SXRlbS5jcHAKQEAg
LTEwMyw3ICsxMDMsNyBAQCBXZWJLaXRDb250ZXh0TWVudUl0ZW0qIHdlYmtpdENvbnRleHRNZW51
SXRlbUNyZWF0ZShXZWJDb250ZXh0TWVudUl0ZW0qIHdlYkl0ZW0pCiAgICAgc3ViTWVudUl0ZW1z
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc3ViTWVudS5zaXplKCkpOwogICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgc3ViTWVudS5zaXplKCk7ICsraSkKICAgICAgICAgc3ViTWVudUl0ZW1zLnVu
Y2hlY2tlZEFwcGVuZChXZWJDb250ZXh0TWVudUl0ZW06OmNyZWF0ZShzdWJNZW51W2ldKS5nZXQo
KSk7Ci0gICAgd2Via2l0Q29udGV4dE1lbnVJdGVtU2V0U3ViTWVudShpdGVtLCBhZG9wdEdSZWYo
d2Via2l0Q29udGV4dE1lbnVDcmVhdGUoQVBJOjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShzdWJN
ZW51SXRlbXMpKS5nZXQoKSkpKTsKKyAgICB3ZWJraXRDb250ZXh0TWVudUl0ZW1TZXRTdWJNZW51
KGl0ZW0sIGFkb3B0R1JlZih3ZWJraXRDb250ZXh0TWVudUNyZWF0ZShBUEk6OkFycmF5OjpjcmVh
dGUoV1RGOjptb3ZlKHN1Yk1lbnVJdGVtcykpLmdldCgpKSkpOwogCiAgICAgcmV0dXJuIGl0ZW07
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRG
aWxlQ2hvb3NlclJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0LmNwcAppbmRleCAwODU1ZGVlLi4zNzcwMzM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGaWxlQ2hvb3Nl
clJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEZpbGVDaG9vc2VyUmVxdWVzdC5jcHAKQEAgLTMxNSw3ICszMTUsNyBAQCB2b2lkIHdlYmtpdF9m
aWxlX2Nob29zZXJfcmVxdWVzdF9zZWxlY3RfZmlsZXMoV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0
KiByZXF1ZXN0LAogICAgIGdfcHRyX2FycmF5X2FkZChzZWxlY3RlZEZpbGVzLmdldCgpLCAwKTsK
IAogICAgIC8vIFNlbGVjdCB0aGUgZmlsZXMgaW4gV2ViQ29yZSBhbmQgdXBkYXRlIGxvY2FsIHBy
aXZhdGUgYXR0cmlidXRlcy4KLSAgICByZXF1ZXN0LT5wcml2LT5saXN0ZW5lci0+Y2hvb3NlRmls
ZXMoQVBJOjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShjaG9vc2VuRmlsZXMpKS5nZXQoKSk7Cisg
ICAgcmVxdWVzdC0+cHJpdi0+bGlzdGVuZXItPmNob29zZUZpbGVzKEFQSTo6QXJyYXk6OmNyZWF0
ZShXVEY6Om1vdmUoY2hvb3NlbkZpbGVzKSkuZ2V0KCkpOwogICAgIHJlcXVlc3QtPnByaXYtPnNl
bGVjdGVkRmlsZXMgPSBzZWxlY3RlZEZpbGVzOwogICAgIHJlcXVlc3QtPnByaXYtPmhhbmRsZWRS
ZXF1ZXN0ID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAKaW5kZXggNjI4MDhiNy4uYWU2MDY3NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4
dC5jcHAKQEAgLTI1Niw3ICsyNTYsNyBAQCBzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlRGVmYXVsdFdl
YkNvbnRleHQoZ3BvaW50ZXIpCiAgICAgV2ViQ29udGV4dENvbmZpZ3VyYXRpb24gd2ViQ29udGV4
dENvbmZpZ3VyYXRpb247CiAgICAgd2ViQ29udGV4dENvbmZpZ3VyYXRpb24uaW5qZWN0ZWRCdW5k
bGVQYXRoID0gV2ViQ29yZTo6ZmlsZW5hbWVUb1N0cmluZyhpbmplY3RlZEJ1bmRsZUZpbGVuYW1l
KCkuZGF0YSgpKTsKICAgICBXZWJDb250ZXh0OjphcHBseVBsYXRmb3JtU3BlY2lmaWNDb25maWd1
cmF0aW9uRGVmYXVsdHMod2ViQ29udGV4dENvbmZpZ3VyYXRpb24pOwotICAgIHByaXYtPmNvbnRl
eHQgPSBXZWJDb250ZXh0OjpjcmVhdGUoc3RkOjptb3ZlKHdlYkNvbnRleHRDb25maWd1cmF0aW9u
KSk7CisgICAgcHJpdi0+Y29udGV4dCA9IFdlYkNvbnRleHQ6OmNyZWF0ZShXVEY6Om1vdmUod2Vi
Q29udGV4dENvbmZpZ3VyYXRpb24pKTsKIAogICAgIHByaXYtPnJlcXVlc3RNYW5hZ2VyID0gd2Vi
Q29udGV4dC0+cHJpdi0+Y29udGV4dC0+c3VwcGxlbWVudDxXZWJTb3VwQ3VzdG9tUHJvdG9jb2xS
ZXF1ZXN0TWFuYWdlcj4oKTsKICAgICBwcml2LT5jb250ZXh0LT5zZXRDYWNoZU1vZGVsKENhY2hl
TW9kZWxQcmltYXJ5V2ViQnJvd3Nlcik7CkBAIC04OTMsNyArODkzLDcgQEAgdm9pZCB3ZWJraXRf
d2ViX2NvbnRleHRfcHJlZmV0Y2hfZG5zKFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQsIGNvbnN0
IGNoYXIqIGhvc3QKIAogICAgIEltbXV0YWJsZURpY3Rpb25hcnk6Ok1hcFR5cGUgbWVzc2FnZTsK
ICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJIb3N0bmFtZSIpLCBBUEk6OlN0cmlu
Zzo6Y3JlYXRlKFN0cmluZzo6ZnJvbVVURjgoaG9zdG5hbWUpKSk7Ci0gICAgY29udGV4dC0+cHJp
di0+Y29udGV4dC0+cG9zdE1lc3NhZ2VUb0luamVjdGVkQnVuZGxlKFN0cmluZzo6ZnJvbVVURjgo
IlByZWZldGNoRE5TIiksIEltbXV0YWJsZURpY3Rpb25hcnk6OmNyZWF0ZShzdGQ6Om1vdmUobWVz
c2FnZSkpLmdldCgpKTsKKyAgICBjb250ZXh0LT5wcml2LT5jb250ZXh0LT5wb3N0TWVzc2FnZVRv
SW5qZWN0ZWRCdW5kbGUoU3RyaW5nOjpmcm9tVVRGOCgiUHJlZmV0Y2hETlMiKSwgSW1tdXRhYmxl
RGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShtZXNzYWdlKSkuZ2V0KCkpOwogfQogCiAvKioK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZp
ZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5j
cHAKaW5kZXggNGY4OGEwYi4uMzdkMjg5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKQEAgLTMxMTQsNyArMzExNCw3IEBAIHZv
aWQgd2Via2l0X3dlYl92aWV3X2dldF9zbmFwc2hvdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBX
ZWJLaXRTbmFwc2hvdFJlZ2lvbiByCiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgi
Q2FsbGJhY2tJRCIpLCBBUEk6OlVJbnQ2NDo6Y3JlYXRlKGNhbGxiYWNrSUQpKTsKIAogICAgIHdl
YlZpZXctPnByaXYtPnNuYXBzaG90UmVzdWx0c01hcC5zZXQoY2FsbGJhY2tJRCwgYWRvcHRHUmVm
KGdfdGFza19uZXcod2ViVmlldywgY2FuY2VsbGFibGUsIGNhbGxiYWNrLCB1c2VyRGF0YSkpKTsK
LSAgICBnZXRQYWdlKHdlYlZpZXcpLT5wb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUoU3RyaW5n
Ojpmcm9tVVRGOCgiR2V0U25hcHNob3QiKSwgSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKHN0
ZDo6bW92ZShtZXNzYWdlKSkuZ2V0KCkpOworICAgIGdldFBhZ2Uod2ViVmlldyktPnBvc3RNZXNz
YWdlVG9JbmplY3RlZEJ1bmRsZShTdHJpbmc6OmZyb21VVEY4KCJHZXRTbmFwc2hvdCIpLCBJbW11
dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1lc3NhZ2UpKS5nZXQoKSk7CiB9CiAK
IC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViVmlld0Jhc2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViVmlld0Jhc2UuY3BwCmluZGV4IDcxYzdjZTUuLjNkZWNiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKQEAg
LTk4NCw3ICs5ODQsNyBAQCB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlQ3JlYXRlV2ViUGFnZShXZWJL
aXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jhc2UsIFdlYkNvbgogICAgIFdlYlBhZ2VDb25m
aWd1cmF0aW9uIHdlYlBhZ2VDb25maWd1cmF0aW9uOwogICAgIHdlYlBhZ2VDb25maWd1cmF0aW9u
LnBhZ2VHcm91cCA9IHBhZ2VHcm91cDsKICAgICB3ZWJQYWdlQ29uZmlndXJhdGlvbi5yZWxhdGVk
UGFnZSA9IHJlbGF0ZWRQYWdlOwotICAgIHByaXYtPnBhZ2VQcm94eSA9IGNvbnRleHQtPmNyZWF0
ZVdlYlBhZ2UoKnByaXYtPnBhZ2VDbGllbnQsIHN0ZDo6bW92ZSh3ZWJQYWdlQ29uZmlndXJhdGlv
bikpOworICAgIHByaXYtPnBhZ2VQcm94eSA9IGNvbnRleHQtPmNyZWF0ZVdlYlBhZ2UoKnByaXYt
PnBhZ2VDbGllbnQsIFdURjo6bW92ZSh3ZWJQYWdlQ29uZmlndXJhdGlvbikpOwogICAgIHByaXYt
PnBhZ2VQcm94eS0+aW5pdGlhbGl6ZVdlYlBhZ2UoKTsKIAogI2lmIFVTRShURVhUVVJFX01BUFBF
Ul9HTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYlZpZXdHcm91cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRXZWJWaWV3R3JvdXAuY3BwCmluZGV4IGIyMWU3OWYuLmQyYTViZTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdHcm91cC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0dyb3VwLmNw
cApAQCAtMjQ3LDcgKzI0Nyw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPEFQSTo6QXJyYXk+IHRvQVBJ
QXJyYXkoY29uc3QgY2hhciogY29uc3QqIGxpc3QpCiAgICAgICAgIGVudHJpZXMuYXBwZW5kKEFQ
STo6U3RyaW5nOjpjcmVhdGVGcm9tVVRGOFN0cmluZygqbGlzdCkpOwogICAgICAgICBsaXN0Kys7
CiAgICAgfQotICAgIHJldHVybiBBUEk6OkFycmF5OjpjcmVhdGUoc3RkOjptb3ZlKGVudHJpZXMp
KTsKKyAgICByZXR1cm4gQVBJOjpBcnJheTo6Y3JlYXRlKFdURjo6bW92ZShlbnRyaWVzKSk7CiB9
CiAKIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3MvV0tW
aWV3SU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3MvV0tWaWV3SU9TLm1t
CmluZGV4IDg4NGMyNTEuLmIxYWNiMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvaW9zL1dLVmlld0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2lvcy9XS1ZpZXdJT1MubW0KQEAgLTIyNSw3ICsyMjUsNyBAQCB1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OwogICAgIHdlYlBhZ2VDb25maWd1cmF0aW9uLnBhZ2VHcm91cCA9IHRvSW1wbChwYWdl
R3JvdXBSZWYpOwogICAgIHdlYlBhZ2VDb25maWd1cmF0aW9uLnJlbGF0ZWRQYWdlID0gdG9JbXBs
KHJlbGF0ZWRQYWdlKTsKIAotICAgIF9jb250ZW50VmlldyA9IGFkb3B0TlMoW1tXS0NvbnRlbnRW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOmJvdW5kcyBjb250ZXh0Oip0b0ltcGwoY29udGV4dFJl
ZikgY29uZmlndXJhdGlvbjpzdGQ6Om1vdmUod2ViUGFnZUNvbmZpZ3VyYXRpb24pIHdlYlZpZXc6
bmlsXSk7CisgICAgX2NvbnRlbnRWaWV3ID0gYWRvcHROUyhbW1dLQ29udGVudFZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6Ym91bmRzIGNvbnRleHQ6KnRvSW1wbChjb250ZXh0UmVmKSBjb25maWd1
cmF0aW9uOldURjo6bW92ZSh3ZWJQYWdlQ29uZmlndXJhdGlvbikgd2ViVmlldzpuaWxdKTsKIAog
ICAgIFtbX2NvbnRlbnRWaWV3IGxheWVyXSBzZXRBbmNob3JQb2ludDpDR1BvaW50WmVyb107CiAg
ICAgW19jb250ZW50VmlldyBzZXRGcmFtZTpib3VuZHNdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IDVjZTk1MjguLjdiM2ZhZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTM0OTYsNyArMzQ5Niw3IEBA
IHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcg
KnBhdGgpCiAKICAgICBfZGF0YSA9IFtbV0tWaWV3RGF0YSBhbGxvY10gaW5pdF07CiAgICAgX2Rh
dGEtPl9wYWdlQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlQ2xpZW50SW1wbD4oc2VsZiwg
d2ViVmlldyk7Ci0gICAgX2RhdGEtPl9wYWdlID0gY29udGV4dC5jcmVhdGVXZWJQYWdlKCpfZGF0
YS0+X3BhZ2VDbGllbnQsIHN0ZDo6bW92ZSh3ZWJQYWdlQ29uZmlndXJhdGlvbikpOworICAgIF9k
YXRhLT5fcGFnZSA9IGNvbnRleHQuY3JlYXRlV2ViUGFnZSgqX2RhdGEtPl9wYWdlQ2xpZW50LCBX
VEY6Om1vdmUod2ViUGFnZUNvbmZpZ3VyYXRpb24pKTsKICAgICBfZGF0YS0+X3BhZ2UtPnNldEFk
ZHNWaXNpdGVkTGlua3MoY29udGV4dC5oaXN0b3J5Q2xpZW50KCkuYWRkc1Zpc2l0ZWRMaW5rcygp
KTsKIAogICAgIF9kYXRhLT5fcGFnZS0+c2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoW3Nl
bGYgX2ludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQppbmRleCBjZmNlMTVjLi4zNDI4ZWRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0
YXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3Rh
dGUubW0KQEAgLTMzMiw3ICszMzIsNyBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6UG9saWN5Q2xp
ZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdlYlBhZ2VQcm94eQogCiB2b2lk
IE5hdmlnYXRpb25TdGF0ZTo6UG9saWN5Q2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dB
Y3Rpb24oV2ViUGFnZVByb3h5KiB3ZWJQYWdlUHJveHksIFdlYkZyYW1lUHJveHkqIHNvdXJjZUZy
YW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV1RGOjpTdHJpbmcm
IGZyYW1lTmFtZSwgUmVmUHRyPFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eT4gbGlzdGVuZXIs
IEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkKIHsKLSAgICBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uKHdlYlBhZ2VQcm94eSwgbnVsbHB0ciwgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHNvdXJj
ZUZyYW1lLCByZXF1ZXN0LCByZXF1ZXN0LCBzdGQ6Om1vdmUobGlzdGVuZXIpLCB1c2VyRGF0YSk7
CisgICAgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbih3ZWJQYWdlUHJveHksIG51bGxw
dHIsIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzb3VyY2VGcmFtZSwgcmVxdWVzdCwgcmVxdWVzdCwg
V1RGOjptb3ZlKGxpc3RlbmVyKSwgdXNlckRhdGEpOwogfQogCiB2b2lkIE5hdmlnYXRpb25TdGF0
ZTo6UG9saWN5Q2xpZW50OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJQYWdlUHJveHkqLCBX
ZWJGcmFtZVByb3h5KiBmcmFtZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVz
b3VyY2VSZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJl
cXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBSZWZQdHI8V2ViRnJhbWVQb2xpY3lMaXN0ZW5l
clByb3h5PiBsaXN0ZW5lciwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCA4NDEzZjVkZC4uYTA1ZjRmNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTIz
Miw3ICsyMzIsNyBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpwcmludEZyYW1lKFdlYktp
dDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0OjpXZWJGcmFtZVBybwogUmV0YWluUHRyPE5TQXJyYXk+
IFVJRGVsZWdhdGU6OlVJQ2xpZW50OjphY3Rpb25zRm9yRWxlbWVudChfV0tBY3RpdmF0ZWRFbGVt
ZW50SW5mbyAqZWxlbWVudEluZm8sIFJldGFpblB0cjxOU0FycmF5PiBkZWZhdWx0QWN0aW9ucykK
IHsKICAgICBpZiAoIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3QWN0aW9u
c0ZvckVsZW1lbnREZWZhdWx0QWN0aW9ucykKLSAgICAgICAgcmV0dXJuIHN0ZDo6bW92ZShkZWZh
dWx0QWN0aW9ucyk7CisgICAgICAgIHJldHVybiBXVEY6Om1vdmUoZGVmYXVsdEFjdGlvbnMpOwog
CiAgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOwogICAg
IGlmICghZGVsZWdhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVy
VHJlZUhvc3RQcm94eS5jcHAKaW5kZXggNjhiMjM0Yy4uZmQ0OWQ1NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcApAQCAtNTQsNyAr
NTQsNyBAQCB2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5Ojp1cGRhdGVWaWV3cG9y
dCgpCiAKIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OmRpc3BhdGNoVXBkYXRl
KHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbikKIHsKLSAgICBtX3NjZW5lLT5hcHBlbmRV
cGRhdGUoc3RkOjptb3ZlKGZ1bmN0aW9uKSk7CisgICAgbV9zY2VuZS0+YXBwZW5kVXBkYXRlKFdU
Rjo6bW92ZShmdW5jdGlvbikpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFBy
b3h5Ojpjb21taXRDb29yZGluYXRlZEdyYXBoaWNzU3RhdGUoY29uc3QgQ29vcmRpbmF0ZWRHcmFw
aGljc1N0YXRlJiBncmFwaGljc1N0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJWaWV3LmNwcAppbmRleCBkMjNlNDk2Zi4u
MTFjZjY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvV2ViVmlldy5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgV2ViVmlldzo6V2Vi
VmlldyhXZWJDb250ZXh0KiBjb250ZXh0LCBXZWJQYWdlR3JvdXAqIHBhZ2VHcm91cCkKICAgICB3
ZWJQYWdlQ29uZmlndXJhdGlvbi5wYWdlR3JvdXAgPSBwYWdlR3JvdXA7CiAKICAgICAvLyBOZWVk
IHRvIGNhbGwgY3JlYXRlV2ViUGFnZSBhZnRlciBvdGhlciBkYXRhIG1lbWJlcnMsIHNwZWNpZmlj
YWxseSBtX3Zpc2libGUsIGFyZSBpbml0aWFsaXplZC4KLSAgICBtX3BhZ2UgPSBjb250ZXh0LT5j
cmVhdGVXZWJQYWdlKCp0aGlzLCBzdGQ6Om1vdmUod2ViUGFnZUNvbmZpZ3VyYXRpb24pKTsKKyAg
ICBtX3BhZ2UgPSBjb250ZXh0LT5jcmVhdGVXZWJQYWdlKCp0aGlzLCBXVEY6Om1vdmUod2ViUGFn
ZUNvbmZpZ3VyYXRpb24pKTsKIAogICAgIG1fcGFnZS0+cGFnZUdyb3VwKCkucHJlZmVyZW5jZXMo
KS5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCh0cnVlKTsKICAgICBtX3BhZ2UtPnBh
Z2VHcm91cCgpLnByZWZlcmVuY2VzKCkuc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUodHJ1ZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2VuZXJpY0NhbGxiYWNrLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2VuZXJpY0NhbGxiYWNrLmgKaW5kZXggNTNkZmVmYy4u
OWY3M2E3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dlbmVyaWNDYWxs
YmFjay5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HZW5lcmljQ2FsbGJhY2suaApA
QCAtNzEsNyArNzEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQ2FsbGJhY2tCYXNlKFR5
cGUgdHlwZSwgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rp
dml0eVRva2VuPiBhY3Rpdml0eVRva2VuKQogICAgICAgICA6IG1fdHlwZSh0eXBlKQogICAgICAg
ICAsIG1fY2FsbGJhY2tJRChnZW5lcmF0ZUNhbGxiYWNrSUQoKSkKLSAgICAgICAgLCBtX2FjdGl2
aXR5VG9rZW4oc3RkOjptb3ZlKGFjdGl2aXR5VG9rZW4pKQorICAgICAgICAsIG1fYWN0aXZpdHlU
b2tlbihXVEY6Om1vdmUoYWN0aXZpdHlUb2tlbikpCiAgICAgewogICAgIH0KIApAQCAtOTUsNyAr
OTUsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZW5lcmljQ2FsbGJhY2s+
IGNyZWF0ZShDYWxsYmFja0Z1bmN0aW9uIGNhbGxiYWNrLCBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vz
c1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4+IGFjdGl2aXR5VG9rZW4gPSBudWxs
cHRyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZW5lcmljQ2FsbGJhY2so
Y2FsbGJhY2ssIHN0ZDo6bW92ZShhY3Rpdml0eVRva2VuKSkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEdlbmVyaWNDYWxsYmFjayhjYWxsYmFjaywgV1RGOjptb3ZlKGFjdGl2aXR5VG9r
ZW4pKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+R2VuZXJpY0NhbGxiYWNrKCkKQEAgLTEzMCw3
ICsxMzAsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgR2VuZXJpY0NhbGxiYWNrKENhbGxi
YWNrRnVuY3Rpb24gY2FsbGJhY2ssIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzVGhyb3R0bGVyOjpC
YWNrZ3JvdW5kQWN0aXZpdHlUb2tlbj4gYWN0aXZpdHlUb2tlbikKLSAgICAgICAgOiBDYWxsYmFj
a0Jhc2UodHlwZSgpLCBzdGQ6Om1vdmUoYWN0aXZpdHlUb2tlbikpCisgICAgICAgIDogQ2FsbGJh
Y2tCYXNlKHR5cGUoKSwgV1RGOjptb3ZlKGFjdGl2aXR5VG9rZW4pKQogICAgICAgICAsIG1fY2Fs
bGJhY2soY2FsbGJhY2spCiAgICAgewogICAgIH0KQEAgLTE5Miw3ICsxOTIsNyBAQCBwdWJsaWM6
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gVD4KICAgICB1aW50NjRfdCBwdXQoc3RkOjpmdW5j
dGlvbjx2b2lkIChULi4uKT4gZnVuY3Rpb24sIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzVGhyb3R0
bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbj4gYWN0aXZpdHlUb2tlbikKICAgICB7Ci0gICAg
ICAgIGF1dG8gY2FsbGJhY2sgPSBHZW5lcmljQ2FsbGJhY2tUeXBlPHNpemVvZi4uLihUKSwgVC4u
Lj46OnR5cGU6OmNyZWF0ZShzdGQ6Om1vdmUoZnVuY3Rpb24pLCBzdGQ6Om1vdmUoYWN0aXZpdHlU
b2tlbikpOworICAgICAgICBhdXRvIGNhbGxiYWNrID0gR2VuZXJpY0NhbGxiYWNrVHlwZTxzaXpl
b2YuLi4oVCksIFQuLi4+Ojp0eXBlOjpjcmVhdGUoV1RGOjptb3ZlKGZ1bmN0aW9uKSwgV1RGOjpt
b3ZlKGFjdGl2aXR5VG9rZW4pKTsKICAgICAgICAgcmV0dXJuIHB1dChjYWxsYmFjayk7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVy
L1dlYlNvY2tldFNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9y
U2VydmVyL1dlYlNvY2tldFNlcnZlci5jcHAKaW5kZXggZmZiYzg4ZS4uMTI1NmMyNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJTb2NrZXRT
ZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIv
V2ViU29ja2V0U2VydmVyLmNwcApAQCAtNzksNyArNzksNyBAQCB2b2lkIFdlYlNvY2tldFNlcnZl
cjo6Y2xvc2UoKQogCiB2b2lkIFdlYlNvY2tldFNlcnZlcjo6ZGlkQWNjZXB0Q29ubmVjdGlvbihz
dGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbj4gY29ubmVjdGlvbikKIHsK
LSAgICBtX2Nvbm5lY3Rpb25zLmFwcGVuZChzdGQ6Om1vdmUoY29ubmVjdGlvbikpOworICAgIG1f
Y29ubmVjdGlvbnMuYXBwZW5kKFdURjo6bW92ZShjb25uZWN0aW9uKSk7CiB9CiAKIHZvaWQgV2Vi
U29ja2V0U2VydmVyOjpkaWRDbG9zZVdlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24oV2ViU29ja2V0
U2VydmVyQ29ubmVjdGlvbiogY29ubmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvc291cC9XZWJTb2NrZXRTZXJ2ZXJTb3VwLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvc291cC9XZWJTb2NrZXRT
ZXJ2ZXJTb3VwLmNwcAppbmRleCAzOGU3ZGI1Li5kMDMwNTU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3NvdXAvV2ViU29ja2V0U2VydmVyU291
cC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9zb3Vw
L1dlYlNvY2tldFNlcnZlclNvdXAuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHN0YXRpYyBnYm9vbGVh
biBjb25uZWN0aW9uQ2FsbGJhY2soR1NvY2tldFNlcnZpY2UqIC8qc2VydmljZSovLCBHU29ja2V0
Q29ubmVjdGlvCiAKICAgICBhdXRvIHdlYlNvY2tldENvbm5lY3Rpb24gPSBzdGQ6Om1ha2VfdW5p
cXVlPFdlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24+KHNlcnZlci0+Y2xpZW50KCksIHNlcnZlcik7
CiAgICAgd2ViU29ja2V0Q29ubmVjdGlvbi0+c2V0U29ja2V0SGFuZGxlKFNvY2tldFN0cmVhbUhh
bmRsZTo6Y3JlYXRlKGNvbm5lY3Rpb24sIHdlYlNvY2tldENvbm5lY3Rpb24uZ2V0KCkpKTsKLSAg
ICBzZXJ2ZXItPmRpZEFjY2VwdENvbm5lY3Rpb24oc3RkOjptb3ZlKHdlYlNvY2tldENvbm5lY3Rp
b24pKTsKKyAgICBzZXJ2ZXItPmRpZEFjY2VwdENvbm5lY3Rpb24oV1RGOjptb3ZlKHdlYlNvY2tl
dENvbm5lY3Rpb24pKTsKIAogICAgIHJldHVybiBUUlVFOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKaW5kZXggZDMyZDA0OS4uMDAzNDI2NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0
aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCkBAIC0yMTcsNyArMjE3LDcgQEAg
dm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OnByb3ZpZGVyRGlkQ2xvc2VOb3RpZmlj
YXRpb25zKEFQSTo6QXJyYXkqIGdsb2IKICAgICAgICAgICAgIGlmIChwYWdlSXQgPT0gcGFnZU5v
dGlmaWNhdGlvbklEcy5lbmQoKSkgewogICAgICAgICAgICAgICAgIFZlY3Rvcjx1aW50NjRfdD4g
bmV3VmVjdG9yOwogICAgICAgICAgICAgICAgIG5ld1ZlY3Rvci5yZXNlcnZlSW5pdGlhbENhcGFj
aXR5KHNpemUpOwotICAgICAgICAgICAgICAgIHBhZ2VJdCA9IHBhZ2VOb3RpZmljYXRpb25JRHMu
YWRkKHdlYlBhZ2UsIHN0ZDo6bW92ZShuZXdWZWN0b3IpKS5pdGVyYXRvcjsKKyAgICAgICAgICAg
ICAgICBwYWdlSXQgPSBwYWdlTm90aWZpY2F0aW9uSURzLmFkZCh3ZWJQYWdlLCBXVEY6Om1vdmUo
bmV3VmVjdG9yKSkuaXRlcmF0b3I7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHVpbnQ2
NF90IHBhZ2VOb3RpZmljYXRpb25JRCA9IGl0LT52YWx1ZS5zZWNvbmQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92
aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3Rp
ZmljYXRpb25Qcm92aWRlci5jcHAKaW5kZXggNTQ1ZTQxNS4uYTg4M2NmNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJv
dmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dl
Yk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcApAQCAtNzEsNyArNzEsNyBAQCB2b2lkIFdlYk5vdGlm
aWNhdGlvblByb3ZpZGVyOjpjbGVhck5vdGlmaWNhdGlvbnMoY29uc3QgVmVjdG9yPHVpbnQ2NF90
PiYgbm90aWZpYwogICAgIGZvciAoY29uc3QgYXV0byYgbm90aWZpY2F0aW9uSUQgOiBub3RpZmlj
YXRpb25JRHMpCiAgICAgICAgIGFycmF5SURzLnVuY2hlY2tlZEFwcGVuZChBUEk6OlVJbnQ2NDo6
Y3JlYXRlKG5vdGlmaWNhdGlvbklEKSk7CiAKLSAgICBtX2NsaWVudC5jbGVhck5vdGlmaWNhdGlv
bnModG9BUEkoQVBJOjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShhcnJheUlEcykpLmdldCgpKSwg
bV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICBtX2NsaWVudC5jbGVhck5vdGlmaWNhdGlv
bnModG9BUEkoQVBJOjpBcnJheTo6Y3JlYXRlKFdURjo6bW92ZShhcnJheUlEcykpLmdldCgpKSwg
bV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIAogdm9pZCBXZWJOb3RpZmljYXRpb25Qcm92
aWRlcjo6YWRkTm90aWZpY2F0aW9uTWFuYWdlcihXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkq
IG1hbmFnZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUxvYWRT
dGF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUxvYWRTdGF0ZS5jcHAKaW5k
ZXggZjI3MDIwMC4uODBmNTI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1BhZ2VMb2FkU3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlTG9h
ZFN0YXRlLmNwcApAQCAtNTMsNyArNTMsNyBAQCBQYWdlTG9hZFN0YXRlOjpUcmFuc2FjdGlvbjo6
VHJhbnNhY3Rpb24oUGFnZUxvYWRTdGF0ZSYgcGFnZUxvYWRTdGF0ZSkKIH0KIAogUGFnZUxvYWRT
dGF0ZTo6VHJhbnNhY3Rpb246OlRyYW5zYWN0aW9uKFRyYW5zYWN0aW9uJiYgb3RoZXIpCi0gICAg
OiBtX3dlYlBhZ2VQcm94eShzdGQ6Om1vdmUob3RoZXIubV93ZWJQYWdlUHJveHkpKQorICAgIDog
bV93ZWJQYWdlUHJveHkoV1RGOjptb3ZlKG90aGVyLm1fd2ViUGFnZVByb3h5KSkKICAgICAsIG1f
cGFnZUxvYWRTdGF0ZShvdGhlci5tX3BhZ2VMb2FkU3RhdGUpCiB7CiAgICAgb3RoZXIubV9wYWdl
TG9hZFN0YXRlID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmNwcAppbmRleCBjMjM3NmMx
Li4yODkxMGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9Q
bHVnSW5BdXRvU3RhcnRQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1BsdWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuY3BwCkBAIC05OSwxMCArOTksMTAgQEAg
UGFzc1JlZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiBQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6
YXV0b1N0YXJ0T3JpZ2luc1RhYmxlQ28KICAgICAgICAgICAgICAgICBoYXNoTWFwLnNldChTdHJp
bmc6Om51bWJlcihvcmlnaW5IYXNoLmtleSksIEFQSTo6RG91YmxlOjpjcmVhdGUob3JpZ2luSGFz
aC52YWx1ZSkpOwogICAgICAgICB9CiAgICAgICAgIGlmIChoYXNoTWFwLnNpemUoKSkKLSAgICAg
ICAgICAgIG1hcC5zZXQoc3RyaW5nT3JpZ2luSGFzaC5rZXksIEltbXV0YWJsZURpY3Rpb25hcnk6
OmNyZWF0ZShzdGQ6Om1vdmUoaGFzaE1hcCkpKTsKKyAgICAgICAgICAgIG1hcC5zZXQoc3RyaW5n
T3JpZ2luSGFzaC5rZXksIEltbXV0YWJsZURpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUoaGFz
aE1hcCkpKTsKICAgICB9CiAKLSAgICByZXR1cm4gSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRl
KHN0ZDo6bW92ZShtYXApKTsKKyAgICByZXR1cm4gSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRl
KFdURjo6bW92ZShtYXApKTsKIH0KIAogdm9pZCBQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6c2V0
QXV0b1N0YXJ0T3JpZ2luc1RhYmxlKEltbXV0YWJsZURpY3Rpb25hcnkmIHRhYmxlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01h
bmFnZXIuY3BwCmluZGV4IDE1NmZiNmQuLjgwNzljOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5jcHAKQEAg
LTcxLDcgKzcxLDcgQEAgdWludDY0X3QgUGx1Z2luUHJvY2Vzc01hbmFnZXI6OnBsdWdpblByb2Nl
c3NUb2tlbihjb25zdCBQbHVnaW5Nb2R1bGVJbmZvJiBwbHVnaW4KICAgICBhdHRyaWJ1dGVzLnBy
b2Nlc3NUeXBlID0gcGx1Z2luUHJvY2Vzc1R5cGU7CiAgICAgYXR0cmlidXRlcy5zYW5kYm94UG9s
aWN5ID0gcGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3k7CiAKLSAgICBtX3BsdWdpblByb2Nlc3NU
b2tlbnMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKHN0ZDo6bW92ZShhdHRyaWJ1dGVzKSwgdG9rZW4p
KTsKKyAgICBtX3BsdWdpblByb2Nlc3NUb2tlbnMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKFdURjo6
bW92ZShhdHRyaWJ1dGVzKSwgdG9rZW4pKTsKICAgICBtX2tub3duVG9rZW5zLmFkZCh0b2tlbik7
CiAKICAgICByZXR1cm4gdG9rZW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGx1Z2lucy9XZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcAppbmRleCA0MjRk
YjY5Li5lOGM1MzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lu
cy9XZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QbHVnaW5zL1dlYlBsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAKQEAgLTE0MCw3ICsxNDAs
NyBAQCB2b2lkIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcjo6aW52YWxpZGF0ZSgpCiAKIHZvaWQg
V2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyOjpnZXRTaXRlc1dpdGhEYXRhKHN0ZDo6ZnVuY3Rpb248
dm9pZCAoQVBJOjpBcnJheSosIENhbGxiYWNrQmFzZTo6RXJyb3IpPiBjYWxsYmFja0Z1bmN0aW9u
KQogewotICAgIFJlZlB0cjxBcnJheUNhbGxiYWNrPiBjYWxsYmFjayA9IEFycmF5Q2FsbGJhY2s6
OmNyZWF0ZShzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOworICAgIFJlZlB0cjxBcnJheUNh
bGxiYWNrPiBjYWxsYmFjayA9IEFycmF5Q2FsbGJhY2s6OmNyZWF0ZShXVEY6Om1vdmUoY2FsbGJh
Y2tGdW5jdGlvbikpOwogCiAgICAgaWYgKCFtX3dlYkNvbnRleHQpIHsKICAgICAgICAgY2FsbGJh
Y2stPmludmFsaWRhdGUoKTsKQEAgLTE3MCw3ICsxNzAsNyBAQCB2b2lkIFdlYlBsdWdpblNpdGVE
YXRhTWFuYWdlcjo6ZGlkR2V0U2l0ZXNXaXRoRGF0YShjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2l0
ZXMsCiAKIHZvaWQgV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyOjpjbGVhclNpdGVEYXRhKEFQSTo6
QXJyYXkqIHNpdGVzLCB1aW50NjRfdCBmbGFncywgdWludDY0X3QgbWF4QWdlSW5TZWNvbmRzLCBz
dGQ6OmZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiBjYWxsYmFja0Z1bmN0aW9u
KQogewotICAgIFJlZlB0cjxWb2lkQ2FsbGJhY2s+IGNhbGxiYWNrID0gVm9pZENhbGxiYWNrOjpj
cmVhdGUoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKKyAgICBSZWZQdHI8Vm9pZENhbGxi
YWNrPiBjYWxsYmFjayA9IFZvaWRDYWxsYmFjazo6Y3JlYXRlKFdURjo6bW92ZShjYWxsYmFja0Z1
bmN0aW9uKSk7CiAgICAgaWYgKCFtX3dlYkNvbnRleHQpIHsKICAgICAgICAgLy8gRklYTUU6IElm
IHRoZSBjb250ZXh0IGlzIGludmFsaWQgd2Ugc2hvdWxkIG5vdCBjYWxsIHRoZSBjYWxsYmFjay4g
SXQnZCBiZSBiZXR0ZXIgdG8ganVzdCByZXR1cm4gZmFsc2UgZnJvbSBjbGVhclNpdGVEYXRhLgog
ICAgICAgICBjYWxsYmFjay0+aW52YWxpZGF0ZShDYWxsYmFja0Jhc2U6OkVycm9yOjpPd25lcldh
c0ludmFsaWRhdGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdGF0
aXN0aWNzUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RhdGlzdGljc1Jl
cXVlc3QuY3BwCmluZGV4IDMyMjNkYTUuLmJjMGExZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1N0YXRpc3RpY3NSZXF1ZXN0LmNwcApAQCAtOTAsNyArOTAsNyBAQCB2b2lkIFN0
YXRpc3RpY3NSZXF1ZXN0Ojpjb21wbGV0ZWRSZXF1ZXN0KHVpbnQ2NF90IHJlcXVlc3RJRCwgY29u
c3QgU3RhdGlzdGljc0RhdAogICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHN0YXRpc3RpYyA6IGRh
dGEud2ViQ29yZUNhY2hlU3RhdGlzdGljcykKICAgICAgICAgICAgIGNhY2hlU3RhdGlzdGljcy51
bmNoZWNrZWRBcHBlbmQoY3JlYXRlRGljdGlvbmFyeUZyb21IYXNoTWFwKHN0YXRpc3RpYykpOwog
Ci0gICAgICAgIG1fcmVzcG9uc2VEaWN0aW9uYXJ5LT5zZXQoIldlYkNvcmVDYWNoZVN0YXRpc3Rp
Y3MiLCBBUEk6OkFycmF5OjpjcmVhdGUoc3RkOjptb3ZlKGNhY2hlU3RhdGlzdGljcykpLmdldCgp
KTsKKyAgICAgICAgbV9yZXNwb25zZURpY3Rpb25hcnktPnNldCgiV2ViQ29yZUNhY2hlU3RhdGlz
dGljcyIsIEFQSTo6QXJyYXk6OmNyZWF0ZShXVEY6Om1vdmUoY2FjaGVTdGF0aXN0aWNzKSkuZ2V0
KCkpOwogICAgIH0KIAogICAgIGlmIChtX291dHN0YW5kaW5nUmVxdWVzdHMuaXNFbXB0eSgpKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdl
ci5jcHAKaW5kZXggODFjMDE5Ni4uMjk5ODgxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtNjU5LDcgKzY1OSw3IEBA
IHZvaWQgU3RvcmFnZU1hbmFnZXI6OmdldE9yaWdpbnNJbnRlcm5hbChGdW5jdGlvbkRpc3BhdGNo
ZXIqIGRpc3BhdGNoZXIsIHZvaWQqIGNvCiB2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpnZXRTdG9yYWdl
RGV0YWlsc0J5T3JpZ2luSW50ZXJuYWwoRnVuY3Rpb25EaXNwYXRjaGVyKiBkaXNwYXRjaGVyLCB2
b2lkKiBjb250ZXh0LCB2b2lkICgqY2FsbGJhY2tGdW5jdGlvbikoY29uc3QgVmVjdG9yPExvY2Fs
U3RvcmFnZURldGFpbHM+JiBzdG9yYWdlRGV0YWlscywgdm9pZCogY29udGV4dCkpCiB7CiAgICAg
VmVjdG9yPExvY2FsU3RvcmFnZURldGFpbHM+IHN0b3JhZ2VEZXRhaWxzID0gbV9sb2NhbFN0b3Jh
Z2VEYXRhYmFzZVRyYWNrZXItPmRldGFpbHMoKTsKLSAgICBkaXNwYXRjaGVyLT5kaXNwYXRjaChi
aW5kKGNhbGxiYWNrRnVuY3Rpb24sIHN0ZDo6bW92ZShzdG9yYWdlRGV0YWlscyksIGNvbnRleHQp
KTsKKyAgICBkaXNwYXRjaGVyLT5kaXNwYXRjaChiaW5kKGNhbGxiYWNrRnVuY3Rpb24sIFdURjo6
bW92ZShzdG9yYWdlRGV0YWlscyksIGNvbnRleHQpKTsKIH0KIAogdm9pZCBTdG9yYWdlTWFuYWdl
cjo6ZGVsZXRlRW50cmllc0Zvck9yaWdpbkludGVybmFsKFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0
eU9yaWdpbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyQ29udGVu
dC9XZWJTY3JpcHRNZXNzYWdlSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
VXNlckNvbnRlbnQvV2ViU2NyaXB0TWVzc2FnZUhhbmRsZXIuY3BwCmluZGV4IDFiOGJhZDQuLmY5
ZTJlZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9X
ZWJTY3JpcHRNZXNzYWdlSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1VzZXJDb250ZW50L1dlYlNjcmlwdE1lc3NhZ2VIYW5kbGVyLmNwcApAQCAtNTYsMTIgKzU2LDEy
IEBAIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUlkZW50aWZpZXIoKQogCiBQYXNzUmVmUHRyPFdl
YlNjcmlwdE1lc3NhZ2VIYW5kbGVyPiBXZWJTY3JpcHRNZXNzYWdlSGFuZGxlcjo6Y3JlYXRlKHN0
ZDo6dW5pcXVlX3B0cjxDbGllbnQ+IGNsaWVudCwgY29uc3QgU3RyaW5nJiBuYW1lKQogewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgV2ViU2NyaXB0TWVzc2FnZUhhbmRsZXIoc3RkOjptb3ZlKGNs
aWVudCksIG5hbWUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlNjcmlwdE1lc3NhZ2VI
YW5kbGVyKFdURjo6bW92ZShjbGllbnQpLCBuYW1lKSk7CiB9CiAKIFdlYlNjcmlwdE1lc3NhZ2VI
YW5kbGVyOjpXZWJTY3JpcHRNZXNzYWdlSGFuZGxlcihzdGQ6OnVuaXF1ZV9wdHI8Q2xpZW50PiBj
bGllbnQsIGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICA6IG1faWRlbnRpZmllcihnZW5lcmF0ZUlk
ZW50aWZpZXIoKSkKLSAgICAsIG1fY2xpZW50KHN0ZDo6bW92ZShjbGllbnQpKQorICAgICwgbV9j
bGllbnQoV1RGOjptb3ZlKGNsaWVudCkpCiAgICAgLCBtX25hbWUobmFtZSkKIHsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVu
dENvbnRyb2xsZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlckNvbnRl
bnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3BwCmluZGV4IGYwZGQ2YzcuLmRlNjlh
ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJV
c2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNwcApAQCAtODMs
NyArODMsNyBAQCB2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpyZW1vdmVQcm9j
ZXNzKFdlYlByb2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1BybwogCiB2b2lkIFdlYlVzZXJDb250ZW50
Q29udHJvbGxlclByb3h5OjphZGRVc2VyU2NyaXB0KFdlYkNvcmU6OlVzZXJTY3JpcHQgdXNlclNj
cmlwdCkKIHsKLSAgICBtX3VzZXJTY3JpcHRzLmFwcGVuZChzdGQ6Om1vdmUodXNlclNjcmlwdCkp
OworICAgIG1fdXNlclNjcmlwdHMuYXBwZW5kKFdURjo6bW92ZSh1c2VyU2NyaXB0KSk7CiAKICAg
ICBmb3IgKGF1dG8mIHByb2Nlc3NBbmRDb3VudCA6IG1fcHJvY2Vzc2VzKQogICAgICAgICBwcm9j
ZXNzQW5kQ291bnQua2V5LT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlVzZXJDb250
ZW50Q29udHJvbGxlcjo6QWRkVXNlclNjcmlwdHMoeyBtX3VzZXJTY3JpcHRzLmxhc3QoKSB9KSwg
bV9pZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcAppbmRleCA0ZmFiZDMwLi5iYTdi
YTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6ZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVudCgp
CiAKIHZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6Z2V0QXBwbGljYXRpb25D
YWNoZU9yaWdpbnMoc3RkOjpmdW5jdGlvbjx2b2lkIChBUEk6OkFycmF5KiwgQ2FsbGJhY2tCYXNl
OjpFcnJvcik+IGNhbGxiYWNrRnVuY3Rpb24pCiB7Ci0gICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+
IGNhbGxiYWNrID0gQXJyYXlDYWxsYmFjazo6Y3JlYXRlKHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0
aW9uKSk7CisgICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0gQXJyYXlDYWxsYmFj
azo6Y3JlYXRlKFdURjo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAKICAgICBpZiAoIWNvbnRl
eHQoKSkgewogICAgICAgICBjYWxsYmFjay0+aW52YWxpZGF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcAppbmRleCA5MDE5NWEzOC4uNzZl
MmY0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJk
TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlz
dC5jcHAKQEAgLTE1Niw3ICsxNTYsNyBAQCB2b2lkIFdlYkJhY2tGb3J3YXJkTGlzdDo6YWRkSXRl
bShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBuZXdJdGVtKQogICAgICAgICAgICAgbV9lbnRyaWVz
Lmluc2VydChtX2N1cnJlbnRJbmRleCwgbmV3SXRlbSk7CiAgICAgfQogCi0gICAgbV9wYWdlLT5k
aWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QobmV3SXRlbSwgc3RkOjptb3ZlKHJlbW92ZWRJdGVtcykp
OworICAgIG1fcGFnZS0+ZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KG5ld0l0ZW0sIFdURjo6bW92
ZShyZW1vdmVkSXRlbXMpKTsKIH0KIAogdm9pZCBXZWJCYWNrRm9yd2FyZExpc3Q6OmdvVG9JdGVt
KFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGl0ZW0pCkBAIC0yNzYsNyArMjc2LDcgQEAgUGFzc1Jl
ZlB0cjxBUEk6OkFycmF5PiBXZWJCYWNrRm9yd2FyZExpc3Q6OmJhY2tMaXN0QXNBUElBcnJheVdp
dGhMaW1pdCh1bnNpZ25lZAogICAgICAgICB2ZWN0b3IudW5jaGVja2VkQXBwZW5kKG1fZW50cmll
c1tpXS5nZXQoKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIEFQSTo6QXJyYXk6OmNyZWF0ZShzdGQ6
Om1vdmUodmVjdG9yKSk7CisgICAgcmV0dXJuIEFQSTo6QXJyYXk6OmNyZWF0ZShXVEY6Om1vdmUo
dmVjdG9yKSk7CiB9CiAKIFBhc3NSZWZQdHI8QVBJOjpBcnJheT4gV2ViQmFja0ZvcndhcmRMaXN0
Ojpmb3J3YXJkTGlzdEFzQVBJQXJyYXlXaXRoTGltaXQodW5zaWduZWQgbGltaXQpIGNvbnN0CkBA
IC0zMDAsNyArMzAwLDcgQEAgUGFzc1JlZlB0cjxBUEk6OkFycmF5PiBXZWJCYWNrRm9yd2FyZExp
c3Q6OmZvcndhcmRMaXN0QXNBUElBcnJheVdpdGhMaW1pdCh1bnNpZ24KICAgICAgICAgdmVjdG9y
LnVuY2hlY2tlZEFwcGVuZChtX2VudHJpZXNbaV0uZ2V0KCkpOwogICAgIH0KIAotICAgIHJldHVy
biBBUEk6OkFycmF5OjpjcmVhdGUoc3RkOjptb3ZlKHZlY3RvcikpOworICAgIHJldHVybiBBUEk6
OkFycmF5OjpjcmVhdGUoV1RGOjptb3ZlKHZlY3RvcikpOwogfQogCiB2b2lkIFdlYkJhY2tGb3J3
YXJkTGlzdDo6cmVtb3ZlQWxsSXRlbXMoKQpAQCAtMzE1LDEyICszMTUsMTIgQEAgdm9pZCBXZWJC
YWNrRm9yd2FyZExpc3Q6OnJlbW92ZUFsbEl0ZW1zKCkKICAgICAgICAgICAgIGNvbnRpbnVlOwog
CiAgICAgICAgIG1fcGFnZS0+YmFja0ZvcndhcmRSZW1vdmVkSXRlbShlbnRyeS0+aXRlbUlEKCkp
OwotICAgICAgICByZW1vdmVkSXRlbXMuYXBwZW5kKHN0ZDo6bW92ZShlbnRyeSkpOworICAgICAg
ICByZW1vdmVkSXRlbXMuYXBwZW5kKFdURjo6bW92ZShlbnRyeSkpOwogICAgIH0KIAogICAgIG1f
ZW50cmllcy5jbGVhcigpOwogICAgIG1faGFzQ3VycmVudEluZGV4ID0gZmFsc2U7Ci0gICAgbV9w
YWdlLT5kaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QobnVsbHB0ciwgc3RkOjptb3ZlKHJlbW92ZWRJ
dGVtcykpOworICAgIG1fcGFnZS0+ZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KG51bGxwdHIsIFdU
Rjo6bW92ZShyZW1vdmVkSXRlbXMpKTsKIH0KIAogdm9pZCBXZWJCYWNrRm9yd2FyZExpc3Q6OmNs
ZWFyKCkKQEAgLTM1MCw3ICszNTAsNyBAQCB2b2lkIFdlYkJhY2tGb3J3YXJkTGlzdDo6Y2xlYXIo
KQogCiAgICAgICAgIG1fZW50cmllcy5jbGVhcigpOwogICAgICAgICBtX2hhc0N1cnJlbnRJbmRl
eCA9IGZhbHNlOwotICAgICAgICBtX3BhZ2UtPmRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdChudWxs
cHRyLCBzdGQ6Om1vdmUocmVtb3ZlZEl0ZW1zKSk7CisgICAgICAgIG1fcGFnZS0+ZGlkQ2hhbmdl
QmFja0ZvcndhcmRMaXN0KG51bGxwdHIsIFdURjo6bW92ZShyZW1vdmVkSXRlbXMpKTsKIAogICAg
ICAgICByZXR1cm47CiAgICAgfQpAQCAtMzc3LDcgKzM3Nyw3IEBAIHZvaWQgV2ViQmFja0Zvcndh
cmRMaXN0OjpjbGVhcigpCiAgICAgICAgIG1faGFzQ3VycmVudEluZGV4ID0gZmFsc2U7CiAgICAg
fQogCi0gICAgbV9wYWdlLT5kaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QobnVsbHB0ciwgc3RkOjpt
b3ZlKHJlbW92ZWRJdGVtcykpOworICAgIG1fcGFnZS0+ZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0
KG51bGxwdHIsIFdURjo6bW92ZShyZW1vdmVkSXRlbXMpKTsKIH0KIAogQmFja0ZvcndhcmRMaXN0
U3RhdGUgV2ViQmFja0ZvcndhcmRMaXN0OjpiYWNrRm9yd2FyZExpc3RTdGF0ZShjb25zdCBzdGQ6
OmZ1bmN0aW9uPGJvb2wgKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mKT4mIGZpbHRlcikgY29uc3QK
QEAgLTQxMCwxMSArNDEwLDExIEBAIHZvaWQgV2ViQmFja0ZvcndhcmRMaXN0OjpyZXN0b3JlRnJv
bVN0YXRlKEJhY2tGb3J3YXJkTGlzdFN0YXRlIGJhY2tGb3J3YXJkTGlzdFN0CiAgICAgaXRlbXMu
cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShiYWNrRm9yd2FyZExpc3RTdGF0ZS5pdGVtcy5zaXplKCkp
OwogCiAgICAgZm9yIChhdXRvJiBiYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUgOiBiYWNrRm9yd2Fy
ZExpc3RTdGF0ZS5pdGVtcykKLSAgICAgICAgaXRlbXMudW5jaGVja2VkQXBwZW5kKFdlYkJhY2tG
b3J3YXJkTGlzdEl0ZW06OmNyZWF0ZShnZW5lcmF0ZVdlYkJhY2tGb3J3YXJkSXRlbUlEKCksIHN0
ZDo6bW92ZShiYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUpKSk7CisgICAgICAgIGl0ZW1zLnVuY2hl
Y2tlZEFwcGVuZChXZWJCYWNrRm9yd2FyZExpc3RJdGVtOjpjcmVhdGUoZ2VuZXJhdGVXZWJCYWNr
Rm9yd2FyZEl0ZW1JRCgpLCBXVEY6Om1vdmUoYmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlKSkpOwog
CiAgICAgbV9oYXNDdXJyZW50SW5kZXggPSAhIWJhY2tGb3J3YXJkTGlzdFN0YXRlLmN1cnJlbnRJ
bmRleDsKICAgICBtX2N1cnJlbnRJbmRleCA9IGJhY2tGb3J3YXJkTGlzdFN0YXRlLmN1cnJlbnRJ
bmRleC52YWx1ZU9yKDApOwotICAgIG1fZW50cmllcyA9IHN0ZDo6bW92ZShpdGVtcyk7CisgICAg
bV9lbnRyaWVzID0gV1RGOjptb3ZlKGl0ZW1zKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKaW5kZXggMDU4MzYxYy4uMDA2
ZjE4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcApAQCAtMTM2LDcg
KzEzNiw3IEBAIHZvaWQgV2ViQ29udGV4dDo6YXBwbHlQbGF0Zm9ybVNwZWNpZmljQ29uZmlndXJh
dGlvbkRlZmF1bHRzKFdlYkNvbnRleHRDb25maWd1cmF0CiBQYXNzUmVmUHRyPFdlYkNvbnRleHQ+
IFdlYkNvbnRleHQ6OmNyZWF0ZShXZWJDb250ZXh0Q29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9u
KQogewogICAgIEluaXRpYWxpemVXZWJLaXQyKCk7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBX
ZWJDb250ZXh0KHN0ZDo6bW92ZShjb25maWd1cmF0aW9uKSkpOworICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgV2ViQ29udGV4dChXVEY6Om1vdmUoY29uZmlndXJhdGlvbikpKTsKIH0KIAogc3RhdGlj
IFZlY3RvcjxXZWJDb250ZXh0Kj4mIGNvbnRleHRzKCkKQEAgLTE3MSw4ICsxNzEsOCBAQCBXZWJD
b250ZXh0OjpXZWJDb250ZXh0KFdlYkNvbnRleHRDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24p
CiAjaWYgVVNFKFNPVVApCiAgICAgLCBtX2luaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5KEhU
VFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbikKICNlbmRpZgot
ICAgICwgbV93ZWJTUUxEYXRhYmFzZURpcmVjdG9yeShzdGQ6Om1vdmUoY29uZmlndXJhdGlvbi53
ZWJTUUxEYXRhYmFzZURpcmVjdG9yeSkpCi0gICAgLCBtX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0
b3J5KHN0ZDo6bW92ZShjb25maWd1cmF0aW9uLmluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KSkK
KyAgICAsIG1fd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkoV1RGOjptb3ZlKGNvbmZpZ3VyYXRpb24u
d2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkpKQorICAgICwgbV9pbmRleGVkREJEYXRhYmFzZURpcmVj
dG9yeShXVEY6Om1vdmUoY29uZmlndXJhdGlvbi5pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSkp
CiAgICAgLCBtX3Nob3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbihmYWxzZSkKICAgICAsIG1f
cHJvY2Vzc1Rlcm1pbmF0aW9uRW5hYmxlZCh0cnVlKQogI2lmIEVOQUJMRShORVRXT1JLX1BST0NF
U1MpCkBAIC0yOTYsNyArMjk2LDcgQEAgdm9pZCBXZWJDb250ZXh0OjpzZXRIaXN0b3J5Q2xpZW50
KHN0ZDo6dW5pcXVlX3B0cjxBUEk6Okhpc3RvcnlDbGllbnQ+IGhpc3RvcnlDbGkKICAgICBpZiAo
IWhpc3RvcnlDbGllbnQpCiAgICAgICAgIG1faGlzdG9yeUNsaWVudCA9IHN0ZDo6bWFrZV91bmlx
dWU8QVBJOjpIaXN0b3J5Q2xpZW50PigpOwogICAgIGVsc2UKLSAgICAgICAgbV9oaXN0b3J5Q2xp
ZW50ID0gc3RkOjptb3ZlKGhpc3RvcnlDbGllbnQpOworICAgICAgICBtX2hpc3RvcnlDbGllbnQg
PSBXVEY6Om1vdmUoaGlzdG9yeUNsaWVudCk7CiB9CiAKIHZvaWQgV2ViQ29udGV4dDo6c2V0RG93
bmxvYWRDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6RG93bmxvYWRDbGllbnQ+IGRvd25sb2Fk
Q2xpZW50KQpAQCAtMzA0LDcgKzMwNCw3IEBAIHZvaWQgV2ViQ29udGV4dDo6c2V0RG93bmxvYWRD
bGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6RG93bmxvYWRDbGllbnQ+IGRvd25sb2FkCiAgICAg
aWYgKCFkb3dubG9hZENsaWVudCkKICAgICAgICAgbV9kb3dubG9hZENsaWVudCA9IHN0ZDo6bWFr
ZV91bmlxdWU8QVBJOjpEb3dubG9hZENsaWVudD4oKTsKICAgICBlbHNlCi0gICAgICAgIG1fZG93
bmxvYWRDbGllbnQgPSBzdGQ6Om1vdmUoZG93bmxvYWRDbGllbnQpOworICAgICAgICBtX2Rvd25s
b2FkQ2xpZW50ID0gV1RGOjptb3ZlKGRvd25sb2FkQ2xpZW50KTsKIH0KIAogdm9pZCBXZWJDb250
ZXh0OjpzZXRQcm9jZXNzTW9kZWwoUHJvY2Vzc01vZGVsIHByb2Nlc3NNb2RlbCkKQEAgLTgyOCw3
ICs4MjgsNyBAQCBQYXNzUmVmUHRyPFdlYlBhZ2VQcm94eT4gV2ViQ29udGV4dDo6Y3JlYXRlV2Vi
UGFnZShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQYQogICAgICAgICAgICAgcHJvY2VzcyA9
ICZjcmVhdGVOZXdXZWJQcm9jZXNzUmVzcGVjdGluZ1Byb2Nlc3NDb3VudExpbWl0KCk7CiAgICAg
fQogCi0gICAgcmV0dXJuIHByb2Nlc3MtPmNyZWF0ZVdlYlBhZ2UocGFnZUNsaWVudCwgc3RkOjpt
b3ZlKGNvbmZpZ3VyYXRpb24pKTsKKyAgICByZXR1cm4gcHJvY2Vzcy0+Y3JlYXRlV2ViUGFnZShw
YWdlQ2xpZW50LCBXVEY6Om1vdmUoY29uZmlndXJhdGlvbikpOwogfQogCiBEb3dubG9hZFByb3h5
KiBXZWJDb250ZXh0Ojpkb3dubG9hZChXZWJQYWdlUHJveHkqIGluaXRpYXRpbmdQYWdlLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCkBAIC0xMjM2LDcgKzEyMzYsNyBAQCB2b2lkIFdl
YkNvbnRleHQ6OmdldFN0YXRpc3RpY3ModWludDMyX3Qgc3RhdGlzdGljc01hc2ssIHN0ZDo6ZnVu
Y3Rpb248dm9pZCAoSW1tdQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUmVmUHRyPFN0
YXRpc3RpY3NSZXF1ZXN0PiByZXF1ZXN0ID0gU3RhdGlzdGljc1JlcXVlc3Q6OmNyZWF0ZShEaWN0
aW9uYXJ5Q2FsbGJhY2s6OmNyZWF0ZShzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbikpKTsKKyAg
ICBSZWZQdHI8U3RhdGlzdGljc1JlcXVlc3Q+IHJlcXVlc3QgPSBTdGF0aXN0aWNzUmVxdWVzdDo6
Y3JlYXRlKERpY3Rpb25hcnlDYWxsYmFjazo6Y3JlYXRlKFdURjo6bW92ZShjYWxsYmFja0Z1bmN0
aW9uKSkpOwogCiAgICAgaWYgKHN0YXRpc3RpY3NNYXNrICYgU3RhdGlzdGljc1JlcXVlc3RUeXBl
V2ViQ29udGVudCkKICAgICAgICAgcmVxdWVzdFdlYkNvbnRlbnRTdGF0aXN0aWNzKHJlcXVlc3Qu
Z2V0KCkpOwpAQCAtMTM4NCwxNyArMTM4NCwxNyBAQCB2b2lkIFdlYkNvbnRleHQ6OnBsdWdpbklu
Zm9TdG9yZURpZExvYWRQbHVnaW5zKFBsdWdpbkluZm9TdG9yZSogc3RvcmUpCiAgICAgICAgIG1p
bWVUeXBlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHBsdWdpbk1vZHVsZS5pbmZvLm1pbWVzLnNp
emUoKSk7CiAgICAgICAgIGZvciAoY29uc3QgYXV0byYgbWltZUNsYXNzSW5mbyA6IHBsdWdpbk1v
ZHVsZS5pbmZvLm1pbWVzKQogICAgICAgICAgICAgbWltZVR5cGVzLnVuY2hlY2tlZEFwcGVuZChB
UEk6OlN0cmluZzo6Y3JlYXRlKG1pbWVDbGFzc0luZm8udHlwZSkpOwotICAgICAgICBtYXAuc2V0
KEFTQ0lJTGl0ZXJhbCgibWltZXMiKSwgQVBJOjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShtaW1l
VHlwZXMpKSk7CisgICAgICAgIG1hcC5zZXQoQVNDSUlMaXRlcmFsKCJtaW1lcyIpLCBBUEk6OkFy
cmF5OjpjcmVhdGUoV1RGOjptb3ZlKG1pbWVUeXBlcykpKTsKIAogI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgICAgICBtYXAuc2V0KEFTQ0lJTGl0ZXJhbCgiYnVuZGxlSWQiKSwgQVBJOjpTdHJpbmc6
OmNyZWF0ZShwbHVnaW5Nb2R1bGUuYnVuZGxlSWRlbnRpZmllcikpOwogICAgICAgICBtYXAuc2V0
KEFTQ0lJTGl0ZXJhbCgidmVyc2lvbiIpLCBBUEk6OlN0cmluZzo6Y3JlYXRlKHBsdWdpbk1vZHVs
ZS52ZXJzaW9uU3RyaW5nKSk7CiAjZW5kaWYKIAotICAgICAgICBwbHVnaW5zLnVuY2hlY2tlZEFw
cGVuZChJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoc3RkOjptb3ZlKG1hcCkpKTsKKyAgICAg
ICAgcGx1Z2lucy51bmNoZWNrZWRBcHBlbmQoSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKFdU
Rjo6bW92ZShtYXApKSk7CiAgICAgfQogCi0gICAgbV9jbGllbnQucGx1Z0luSW5mb3JtYXRpb25C
ZWNhbWVBdmFpbGFibGUodGhpcywgQVBJOjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShwbHVnaW5z
KSkuZ2V0KCkpOworICAgIG1fY2xpZW50LnBsdWdJbkluZm9ybWF0aW9uQmVjYW1lQXZhaWxhYmxl
KHRoaXMsIEFQSTo6QXJyYXk6OmNyZWF0ZShXVEY6Om1vdmUocGx1Z2lucykpLmdldCgpKTsKIH0K
ICNlbmRpZgogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNv
b2tpZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2ll
TWFuYWdlclByb3h5LmNwcAppbmRleCBjN2Q0NWM4Li4zYzM0ZDcyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcApAQCAtMTAxLDcg
KzEwMSw3IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpkZXJlZldlYkNvbnRleHRTdXBw
bGVtZW50KCkKIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEhvc3RuYW1lc1dpdGhD
b29raWVzKHN0ZDo6ZnVuY3Rpb248dm9pZCAoQVBJOjpBcnJheSosIENhbGxiYWNrQmFzZTo6RXJy
b3IpPiBjYWxsYmFja0Z1bmN0aW9uKQogewotICAgIFJlZlB0cjxBcnJheUNhbGxiYWNrPiBjYWxs
YmFjayA9IEFycmF5Q2FsbGJhY2s6OmNyZWF0ZShzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbikp
OworICAgIFJlZlB0cjxBcnJheUNhbGxiYWNrPiBjYWxsYmFjayA9IEFycmF5Q2FsbGJhY2s6OmNy
ZWF0ZShXVEY6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwogICAgIHVpbnQ2NF90IGNhbGxiYWNr
SUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOwogICAgIG1fYXJyYXlDYWxsYmFja3Muc2V0KGNh
bGxiYWNrSUQsIGNhbGxiYWNrLnJlbGVhc2UoKSk7CiAKQEAgLTE2Myw3ICsxNjMsNyBAQCB2b2lk
IFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29v
a2llQWNjZXB0UG9saWN5IHBvbAogCiB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0SFRU
UENvb2tpZUFjY2VwdFBvbGljeShzdGQ6OmZ1bmN0aW9uPHZvaWQgKEhUVFBDb29raWVBY2NlcHRQ
b2xpY3ksIENhbGxiYWNrQmFzZTo6RXJyb3IpPiBjYWxsYmFja0Z1bmN0aW9uKQogewotICAgIFJl
ZlB0cjxIVFRQQ29va2llQWNjZXB0UG9saWN5Q2FsbGJhY2s+IGNhbGxiYWNrID0gSFRUUENvb2tp
ZUFjY2VwdFBvbGljeUNhbGxiYWNrOjpjcmVhdGUoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24p
KTsKKyAgICBSZWZQdHI8SFRUUENvb2tpZUFjY2VwdFBvbGljeUNhbGxiYWNrPiBjYWxsYmFjayA9
IEhUVFBDb29raWVBY2NlcHRQb2xpY3lDYWxsYmFjazo6Y3JlYXRlKFdURjo6bW92ZShjYWxsYmFj
a0Z1bmN0aW9uKSk7CiAKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxi
YWNrSUQoKTsKICAgICBtX2h0dHBDb29raWVBY2NlcHRQb2xpY3lDYWxsYmFja3Muc2V0KGNhbGxi
YWNrSUQsIGNhbGxiYWNrLnJlbGVhc2UoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5LmNwcAppbmRleCBjMjBkZjJmLi41OTUzYTIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2Vy
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFn
ZXJQcm94eS5jcHAKQEAgLTE1NCw3ICsxNTQsNyBAQCB2b2lkIFdlYkRhdGFiYXNlTWFuYWdlclBy
b3h5OjpkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkKIAogdm9pZCBXZWJEYXRhYmFzZU1hbmFn
ZXJQcm94eTo6Z2V0RGF0YWJhc2VzQnlPcmlnaW4oc3RkOjpmdW5jdGlvbjx2b2lkIChBUEk6OkFy
cmF5KiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+IGNhbGxiYWNrRnVuY3Rpb24pCiB7Ci0gICAgUmVm
UHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0gQXJyYXlDYWxsYmFjazo6Y3JlYXRlKHN0ZDo6
bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CisgICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxi
YWNrID0gQXJyYXlDYWxsYmFjazo6Y3JlYXRlKFdURjo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7
CiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7CiAgICAg
bV9hcnJheUNhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgY2FsbGJhY2sucmVsZWFzZSgpKTsKIApA
QCAtMTkwLDI0ICsxOTAsMjQgQEAgdm9pZCBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eTo6ZGlkR2V0
RGF0YWJhc2VzQnlPcmlnaW4oY29uc3QgVmVjdG9yPE9yaWdpbkFuZERhdGEKICAgICAgICAgICAg
IGlmIChkYXRhYmFzZURldGFpbHMubW9kaWZpY2F0aW9uVGltZSgpKQogICAgICAgICAgICAgICAg
IGRldGFpbHNNYXAuc2V0KGRhdGFiYXNlRGV0YWlsc01vZGlmaWNhdGlvblRpbWVLZXkoKSwgQVBJ
OjpEb3VibGU6OmNyZWF0ZShkYXRhYmFzZURldGFpbHMubW9kaWZpY2F0aW9uVGltZSgpKSk7CiAK
LSAgICAgICAgICAgIGRhdGFiYXNlcy51bmNoZWNrZWRBcHBlbmQoSW1tdXRhYmxlRGljdGlvbmFy
eTo6Y3JlYXRlKHN0ZDo6bW92ZShkZXRhaWxzTWFwKSkpOworICAgICAgICAgICAgZGF0YWJhc2Vz
LnVuY2hlY2tlZEFwcGVuZChJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKGRl
dGFpbHNNYXApKSk7CiAgICAgICAgIH0KIAogICAgICAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRy
PEFQSTo6T2JqZWN0Pj4gb3JpZ2luQW5kRGF0YWJhc2VzTWFwOwogICAgICAgICBvcmlnaW5BbmRE
YXRhYmFzZXNNYXAuc2V0KG9yaWdpbktleSgpLCBvcmlnaW4pOwogICAgICAgICBvcmlnaW5BbmRE
YXRhYmFzZXNNYXAuc2V0KG9yaWdpblF1b3RhS2V5KCksIEFQSTo6VUludDY0OjpjcmVhdGUob3Jp
Z2luQW5kRGF0YWJhc2VzLm9yaWdpblF1b3RhKSk7CiAgICAgICAgIG9yaWdpbkFuZERhdGFiYXNl
c01hcC5zZXQob3JpZ2luVXNhZ2VLZXkoKSwgQVBJOjpVSW50NjQ6OmNyZWF0ZShvcmlnaW5BbmRE
YXRhYmFzZXMub3JpZ2luVXNhZ2UpKTsKLSAgICAgICAgb3JpZ2luQW5kRGF0YWJhc2VzTWFwLnNl
dChkYXRhYmFzZURldGFpbHNLZXkoKSwgQVBJOjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShkYXRh
YmFzZXMpKSk7CisgICAgICAgIG9yaWdpbkFuZERhdGFiYXNlc01hcC5zZXQoZGF0YWJhc2VEZXRh
aWxzS2V5KCksIEFQSTo6QXJyYXk6OmNyZWF0ZShXVEY6Om1vdmUoZGF0YWJhc2VzKSkpOwogCi0g
ICAgICAgIHJlc3VsdC51bmNoZWNrZWRBcHBlbmQoSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRl
KHN0ZDo6bW92ZShvcmlnaW5BbmREYXRhYmFzZXNNYXApKSk7CisgICAgICAgIHJlc3VsdC51bmNo
ZWNrZWRBcHBlbmQoSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShvcmlnaW5B
bmREYXRhYmFzZXNNYXApKSk7CiAgICAgfQogCi0gICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFj
a1dpdGhSZXR1cm5WYWx1ZShBUEk6OkFycmF5OjpjcmVhdGUoc3RkOjptb3ZlKHJlc3VsdCkpLmdl
dCgpKTsKKyAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKEFQSTo6
QXJyYXk6OmNyZWF0ZShXVEY6Om1vdmUocmVzdWx0KSkuZ2V0KCkpOwogfQogCiB2b2lkIFdlYkRh
dGFiYXNlTWFuYWdlclByb3h5OjpnZXREYXRhYmFzZU9yaWdpbnMoc3RkOjpmdW5jdGlvbjx2b2lk
IChBUEk6OkFycmF5KiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+IGNhbGxiYWNrRnVuY3Rpb24pCiB7
Ci0gICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0gQXJyYXlDYWxsYmFjazo6Y3Jl
YXRlKHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CisgICAgUmVmUHRyPEFycmF5Q2FsbGJh
Y2s+IGNhbGxiYWNrID0gQXJyYXlDYWxsYmFjazo6Y3JlYXRlKFdURjo6bW92ZShjYWxsYmFja0Z1
bmN0aW9uKSk7CiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lE
KCk7CiAgICAgbV9hcnJheUNhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgY2FsbGJhY2sucmVsZWFz
ZSgpKTsKIApAQCAtMjI4LDcgKzIyOCw3IEBAIHZvaWQgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk6
OmRpZEdldERhdGFiYXNlT3JpZ2lucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3JpZ2luCiAgICAg
Zm9yIChjb25zdCBhdXRvJiBvcmlnaW5JZGVudGlmaWVyIDogb3JpZ2luSWRlbnRpZmllcnMpCiAg
ICAgICAgIHNlY3VyaXR5T3JpZ2lucy51bmNoZWNrZWRBcHBlbmQoV2ViU2VjdXJpdHlPcmlnaW46
OmNyZWF0ZShTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbURhdGFiYXNlSWRlbnRpZmllcihvcmln
aW5JZGVudGlmaWVyKSkpOwogCi0gICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1
cm5WYWx1ZShBUEk6OkFycmF5OjpjcmVhdGUoc3RkOjptb3ZlKHNlY3VyaXR5T3JpZ2lucykpLmdl
dCgpKTsKKyAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKEFQSTo6
QXJyYXk6OmNyZWF0ZShXVEY6Om1vdmUoc2VjdXJpdHlPcmlnaW5zKSkuZ2V0KCkpOwogfQogCiB2
b2lkIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5OjpkZWxldGVEYXRhYmFzZVdpdGhOYW1lRm9yT3Jp
Z2luKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VJZGVudGlmaWVyLCBXZWJTZWN1cml0eU9yaWdpbiog
b3JpZ2luKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZvcm1DbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZvcm1DbGllbnQuY3BwCmluZGV4
IDEyZjBjNzYuLmRmMzM4MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJGb3JtQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRm9ybUNs
aWVudC5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgYm9vbCBXZWJGb3JtQ2xpZW50Ojp3aWxsU3VibWl0
Rm9ybShXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBXZWIKICAgICBJ
bW11dGFibGVEaWN0aW9uYXJ5OjpNYXBUeXBlIG1hcDsKICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IHRleHRGaWVsZFZhbHVlcy5zaXplKCk7ICsraSkKICAgICAgICAgbWFwLnNldCh0ZXh0Rmll
bGRWYWx1ZXNbaV0uZmlyc3QsIEFQSTo6U3RyaW5nOjpjcmVhdGUodGV4dEZpZWxkVmFsdWVzW2ld
LnNlY29uZCkpOwotICAgIFJlZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiB0ZXh0RmllbGRzTWFw
ID0gSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKHN0ZDo6bW92ZShtYXApKTsKKyAgICBSZWZQ
dHI8SW1tdXRhYmxlRGljdGlvbmFyeT4gdGV4dEZpZWxkc01hcCA9IEltbXV0YWJsZURpY3Rpb25h
cnk6OmNyZWF0ZShXVEY6Om1vdmUobWFwKSk7CiAKICAgICBtX2NsaWVudC53aWxsU3VibWl0Rm9y
bSh0b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSShzb3VyY2VGcmFtZSksIHRvQVBJKHRl
eHRGaWVsZHNNYXAuZ2V0KCkpLCB0b0FQSSh1c2VyRGF0YSksIHRvQVBJKGxpc3RlbmVyKSwgbV9j
bGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHcmFtbWFyRGV0YWlsLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJHcmFtbWFyRGV0YWlsLmNwcAppbmRleCAwNjRmYzM1Li43NWIwMzRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR3JhbW1hckRldGFpbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdyYW1tYXJEZXRhaWwuY3BwCkBA
IC02MSw3ICs2MSw3IEBAIFBhc3NSZWZQdHI8QVBJOjpBcnJheT4gV2ViR3JhbW1hckRldGFpbDo6
Z3Vlc3NlcygpIGNvbnN0CiAgICAgVmVjdG9yPFJlZlB0cjxBUEk6Ok9iamVjdD4gPiB3a0d1ZXNz
ZXMobnVtR3Vlc3Nlcyk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bUd1ZXNzZXM7
ICsraSkKICAgICAgICAgd2tHdWVzc2VzW2ldID0gQVBJOjpTdHJpbmc6OmNyZWF0ZShtX2dyYW1t
YXJEZXRhaWwuZ3Vlc3Nlc1tpXSk7Ci0gICAgcmV0dXJuIEFQSTo6QXJyYXk6OmNyZWF0ZShzdGQ6
Om1vdmUod2tHdWVzc2VzKSk7CisgICAgcmV0dXJuIEFQSTo6QXJyYXk6OmNyZWF0ZShXVEY6Om1v
dmUod2tHdWVzc2VzKSk7CiB9CiAKIFdlYkdyYW1tYXJEZXRhaWw6OldlYkdyYW1tYXJEZXRhaWwo
Y29uc3QgV2ViQ29yZTo6R3JhbW1hckRldGFpbCYgZ3JhbW1hckRldGFpbCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcApp
bmRleCA1MWQzODE3Li5kZmYzNmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC05NiwxMiArOTYsMTIgQEAg
c3RhdGljIHZvaWQgZGlkR2V0S2V5VmFsdWVTdG9yYWdlT3JpZ2lucyhjb25zdCBWZWN0b3I8UmVm
UHRyPFNlY3VyaXR5T3JpZ2luPj4mIHMKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2Vj
dXJpdHlPcmlnaW5zLnNpemUoKTsgKytpKQogICAgICAgICB3ZWJTZWN1cml0eU9yaWdpbnMudW5j
aGVja2VkQXBwZW5kKFdlYlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoc2VjdXJpdHlPcmlnaW5zW2ld
KSk7CiAKLSAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKEFQSTo6
QXJyYXk6OmNyZWF0ZShzdGQ6Om1vdmUod2ViU2VjdXJpdHlPcmlnaW5zKSkuZ2V0KCkpOworICAg
IGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUoQVBJOjpBcnJheTo6Y3Jl
YXRlKFdURjo6bW92ZSh3ZWJTZWN1cml0eU9yaWdpbnMpKS5nZXQoKSk7CiB9CiAKIHZvaWQgV2Vi
S2V5VmFsdWVTdG9yYWdlTWFuYWdlcjo6Z2V0S2V5VmFsdWVTdG9yYWdlT3JpZ2lucyhzdGQ6OmZ1
bmN0aW9uPHZvaWQgKEFQSTo6QXJyYXkqLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4gY2FsbGJhY2tG
dW5jdGlvbikKIHsKLSAgICBjb250ZXh0KCktPnN0b3JhZ2VNYW5hZ2VyKCkuZ2V0T3JpZ2lucyhS
dW5Mb29wOjptYWluKCksIEFycmF5Q2FsbGJhY2s6OmNyZWF0ZShzdGQ6Om1vdmUoY2FsbGJhY2tG
dW5jdGlvbikpLmxlYWtSZWYoKSwgZGlkR2V0S2V5VmFsdWVTdG9yYWdlT3JpZ2lucyk7CisgICAg
Y29udGV4dCgpLT5zdG9yYWdlTWFuYWdlcigpLmdldE9yaWdpbnMoUnVuTG9vcDo6bWFpbigpLCBB
cnJheUNhbGxiYWNrOjpjcmVhdGUoV1RGOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKS5sZWFrUmVm
KCksIGRpZEdldEtleVZhbHVlU3RvcmFnZU9yaWdpbnMpOwogfQogCiBzdGF0aWMgdm9pZCBkaWRH
ZXRTdG9yYWdlRGV0YWlsc0J5T3JpZ2luKGNvbnN0IFZlY3RvcjxMb2NhbFN0b3JhZ2VEZXRhaWxz
PiYgc3RvcmFnZURldGFpbHMsIHZvaWQqIGNvbnRleHQpCkBAIC0xMjIsMTUgKzEyMiwxNSBAQCBz
dGF0aWMgdm9pZCBkaWRHZXRTdG9yYWdlRGV0YWlsc0J5T3JpZ2luKGNvbnN0IFZlY3RvcjxMb2Nh
bFN0b3JhZ2VEZXRhaWxzPiYgc3RvcgogICAgICAgICBpZiAob3JpZ2luRGV0YWlscy5tb2RpZmlj
YXRpb25UaW1lKQogICAgICAgICAgICAgZGV0YWlsc01hcC5zZXQoV2ViS2V5VmFsdWVTdG9yYWdl
TWFuYWdlcjo6bW9kaWZpY2F0aW9uVGltZUtleSgpLCBBUEk6OkRvdWJsZTo6Y3JlYXRlKG9yaWdp
bkRldGFpbHMubW9kaWZpY2F0aW9uVGltZSkpOwogCi0gICAgICAgIHJlc3VsdC51bmNoZWNrZWRB
cHBlbmQoSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKHN0ZDo6bW92ZShkZXRhaWxzTWFwKSkp
OworICAgICAgICByZXN1bHQudW5jaGVja2VkQXBwZW5kKEltbXV0YWJsZURpY3Rpb25hcnk6OmNy
ZWF0ZShXVEY6Om1vdmUoZGV0YWlsc01hcCkpKTsKICAgICB9CiAKLSAgICBjYWxsYmFjay0+cGVy
Zm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKEFQSTo6QXJyYXk6OmNyZWF0ZShzdGQ6Om1vdmUo
cmVzdWx0KSkuZ2V0KCkpOworICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJu
VmFsdWUoQVBJOjpBcnJheTo6Y3JlYXRlKFdURjo6bW92ZShyZXN1bHQpKS5nZXQoKSk7CiB9CiAK
IHZvaWQgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcjo6Z2V0U3RvcmFnZURldGFpbHNCeU9yaWdp
bihzdGQ6OmZ1bmN0aW9uPHZvaWQgKEFQSTo6QXJyYXkqLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4g
Y2FsbGJhY2tGdW5jdGlvbikKIHsKLSAgICBjb250ZXh0KCktPnN0b3JhZ2VNYW5hZ2VyKCkuZ2V0
U3RvcmFnZURldGFpbHNCeU9yaWdpbihSdW5Mb29wOjptYWluKCksIEFycmF5Q2FsbGJhY2s6OmNy
ZWF0ZShzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbikpLmxlYWtSZWYoKSwgZGlkR2V0U3RvcmFn
ZURldGFpbHNCeU9yaWdpbik7CisgICAgY29udGV4dCgpLT5zdG9yYWdlTWFuYWdlcigpLmdldFN0
b3JhZ2VEZXRhaWxzQnlPcmlnaW4oUnVuTG9vcDo6bWFpbigpLCBBcnJheUNhbGxiYWNrOjpjcmVh
dGUoV1RGOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKS5sZWFrUmVmKCksIGRpZEdldFN0b3JhZ2VE
ZXRhaWxzQnlPcmlnaW4pOwogfQogCiB2b2lkIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXI6OmRl
bGV0ZUVudHJpZXNGb3JPcmlnaW4oV2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmNw
cAppbmRleCAzYjNmNWFiLi5kNTJjYjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCkBAIC04Myw3ICs4Myw3IEBA
IHZvaWQgV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eTo6ZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVu
dCgpCiAKIHZvaWQgV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eTo6Z2V0SG9zdG5hbWVzV2l0aE1l
ZGlhQ2FjaGUoc3RkOjpmdW5jdGlvbjx2b2lkIChBUEk6OkFycmF5KiwgQ2FsbGJhY2tCYXNlOjpF
cnJvcik+IGNhbGxiYWNrRnVuY3Rpb24pCiB7Ci0gICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNh
bGxiYWNrID0gQXJyYXlDYWxsYmFjazo6Y3JlYXRlKHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9u
KSk7CisgICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0gQXJyYXlDYWxsYmFjazo6
Y3JlYXRlKFdURjo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgdWludDY0X3QgY2FsbGJh
Y2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7CiAgICAgbV9hcnJheUNhbGxiYWNrcy5zZXQo
Y2FsbGJhY2tJRCwgY2FsbGJhY2sucmVsZWFzZSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDA1NjA0
MWYuLjJkMmM1MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgdm9pZCBXZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5OjpkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkKIAogdm9pZCBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpnZXRPcmlnaW5zKFdLT3JpZ2luRGF0YVR5cGVzIHR5
cGVzLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKEFQSTo6QXJyYXkqLCBDYWxsYmFja0Jhc2U6OkVycm9y
KT4gY2FsbGJhY2tGdW5jdGlvbikKIHsKLSAgICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2FsbGJh
Y2sgPSBBcnJheUNhbGxiYWNrOjpjcmVhdGUoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsK
KyAgICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2FsbGJhY2sgPSBBcnJheUNhbGxiYWNrOjpjcmVh
dGUoV1RGOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKIAogICAgIGlmICghY29udGV4dCgpKSB7
CiAgICAgICAgIGNhbGxiYWNrLT5pbnZhbGlkYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwCmluZGV4IDJmYzM0MGYu
LmFhZWNlYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlQ29u
dGV4dE1lbnVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
Q29udGV4dE1lbnVDbGllbnQuY3BwCkBAIC01NCw5ICs1NCw5IEBAIGJvb2wgV2ViUGFnZUNvbnRl
eHRNZW51Q2xpZW50OjpnZXRDb250ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnUoV2ViUGFnZVByb3h5
KiBwYWdlCiAgICAgV0tBcnJheVJlZiBuZXdNZW51ID0gbnVsbHB0cjsKICAgICBpZiAobV9jbGll
bnQuYmFzZS52ZXJzaW9uID49IDIpIHsKICAgICAgICAgUmVmUHRyPFdlYkhpdFRlc3RSZXN1bHQ+
IHdlYkhpdFRlc3RSZXN1bHQgPSBXZWJIaXRUZXN0UmVzdWx0OjpjcmVhdGUoaGl0VGVzdFJlc3Vs
dERhdGEpOwotICAgICAgICBtX2NsaWVudC5nZXRDb250ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnUo
dG9BUEkocGFnZSksIHRvQVBJKEFQSTo6QXJyYXk6OmNyZWF0ZShzdGQ6Om1vdmUocHJvcG9zZWRN
ZW51SXRlbXMpKS5nZXQoKSksICZuZXdNZW51LCB0b0FQSSh3ZWJIaXRUZXN0UmVzdWx0LmdldCgp
KSwgdG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICBt
X2NsaWVudC5nZXRDb250ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnUodG9BUEkocGFnZSksIHRvQVBJ
KEFQSTo6QXJyYXk6OmNyZWF0ZShXVEY6Om1vdmUocHJvcG9zZWRNZW51SXRlbXMpKS5nZXQoKSks
ICZuZXdNZW51LCB0b0FQSSh3ZWJIaXRUZXN0UmVzdWx0LmdldCgpKSwgdG9BUEkodXNlckRhdGEp
LCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgIH0gZWxzZQotICAgICAgICBtX2NsaWVu
dC5nZXRDb250ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnVfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCh0
b0FQSShwYWdlKSwgdG9BUEkoQVBJOjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShwcm9wb3NlZE1l
bnVJdGVtcykpLmdldCgpKSwgJm5ld01lbnUsIHRvQVBJKHVzZXJEYXRhKSwgbV9jbGllbnQuYmFz
ZS5jbGllbnRJbmZvKTsKKyAgICAgICAgbV9jbGllbnQuZ2V0Q29udGV4dE1lbnVGcm9tUHJvcG9z
ZWRNZW51X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAodG9BUEkocGFnZSksIHRvQVBJKEFQSTo6QXJy
YXk6OmNyZWF0ZShXVEY6Om1vdmUocHJvcG9zZWRNZW51SXRlbXMpKS5nZXQoKSksICZuZXdNZW51
LCB0b0FQSSh1c2VyRGF0YSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAKICAgICBSZWZQ
dHI8QVBJOjpBcnJheT4gYXJyYXkgPSBhZG9wdFJlZih0b0ltcGwobmV3TWVudSkpOwogICAgIApA
QCAtMTA0LDcgKzEwNCw3IEBAIGJvb2wgV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50OjpzaG93Q29u
dGV4dE1lbnUoV2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBXZWJDb3JlCiAgICAgZm9yIChjb25z
dCBhdXRvJiBtZW51SXRlbSA6IG1lbnVJdGVtc1ZlY3RvcikKICAgICAgICAgbWVudUl0ZW1zLnVu
Y2hlY2tlZEFwcGVuZChXZWJDb250ZXh0TWVudUl0ZW06OmNyZWF0ZShtZW51SXRlbSkpOwogCi0g
ICAgbV9jbGllbnQuc2hvd0NvbnRleHRNZW51KHRvQVBJKHBhZ2UpLCB0b0FQSShtZW51TG9jYXRp
b24pLCB0b0FQSShBUEk6OkFycmF5OjpjcmVhdGUoc3RkOjptb3ZlKG1lbnVJdGVtcykpLmdldCgp
KSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICBtX2NsaWVudC5zaG93Q29udGV4dE1l
bnUodG9BUEkocGFnZSksIHRvQVBJKG1lbnVMb2NhdGlvbiksIHRvQVBJKEFQSTo6QXJyYXk6OmNy
ZWF0ZShXVEY6Om1vdmUobWVudUl0ZW1zKSkuZ2V0KCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudElu
Zm8pOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCmluZGV4IDA4MzZlNzYuLmQyMGFlNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMTUsMTIgKzIxNSwxMiBAQCBzdGQ6OnVuaXF1
ZV9wdHI8RXhjZWVkZWREYXRhYmFzZVF1b3RhUmVjb3Jkczo6UmVjb3JkPiBFeGNlZWRlZERhdGFi
YXNlUXVvdGFSZWNvcgogICAgIHJlY29yZC0+Y3VycmVudERhdGFiYXNlVXNhZ2UgPSBjdXJyZW50
RGF0YWJhc2VVc2FnZTsKICAgICByZWNvcmQtPmV4cGVjdGVkVXNhZ2UgPSBleHBlY3RlZFVzYWdl
OwogICAgIHJlY29yZC0+cmVwbHkgPSByZXBseTsKLSAgICByZXR1cm4gc3RkOjptb3ZlKHJlY29y
ZCk7CisgICAgcmV0dXJuIFdURjo6bW92ZShyZWNvcmQpOwogfQogCiB2b2lkIEV4Y2VlZGVkRGF0
YWJhc2VRdW90YVJlY29yZHM6OmFkZChzdGQ6OnVuaXF1ZV9wdHI8RXhjZWVkZWREYXRhYmFzZVF1
b3RhUmVjb3Jkczo6UmVjb3JkPiByZWNvcmQpCiB7Ci0gICAgbV9yZWNvcmRzLmFwcGVuZChzdGQ6
Om1vdmUocmVjb3JkKSk7CisgICAgbV9yZWNvcmRzLmFwcGVuZChXVEY6Om1vdmUocmVjb3JkKSk7
CiB9CiAKIEV4Y2VlZGVkRGF0YWJhc2VRdW90YVJlY29yZHM6OlJlY29yZCogRXhjZWVkZWREYXRh
YmFzZVF1b3RhUmVjb3Jkczo6bmV4dCgpCkBAIC00NzUsNyArNDc1LDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnNldExvYWRlckNsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpMb2FkZXJDbGllbnQ+
IGxvYWRlckNsaWUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fbG9hZGVyQ2xpZW50
ID0gc3RkOjptb3ZlKGxvYWRlckNsaWVudCk7CisgICAgbV9sb2FkZXJDbGllbnQgPSBXVEY6Om1v
dmUobG9hZGVyQ2xpZW50KTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnNldFBvbGljeUNsaWVu
dChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpQb2xpY3lDbGllbnQ+IHBvbGljeUNsaWVudCkKQEAgLTQ4
NSw3ICs0ODUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0UG9saWN5Q2xpZW50KHN0ZDo6dW5p
cXVlX3B0cjxBUEk6OlBvbGljeUNsaWVudD4gcG9saWN5Q2xpZQogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgbV9wb2xpY3lDbGllbnQgPSBzdGQ6Om1vdmUocG9saWN5Q2xpZW50KTsKKyAg
ICBtX3BvbGljeUNsaWVudCA9IFdURjo6bW92ZShwb2xpY3lDbGllbnQpOwogfQogCiB2b2lkIFdl
YlBhZ2VQcm94eTo6c2V0Rm9ybUNsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpGb3JtQ2xpZW50
PiBmb3JtQ2xpZW50KQpAQCAtNDk1LDcgKzQ5NSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRG
b3JtQ2xpZW50KHN0ZDo6dW5pcXVlX3B0cjxBUEk6OkZvcm1DbGllbnQ+IGZvcm1DbGllbnQpCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2Zvcm1DbGllbnQgPSBzdGQ6Om1vdmUoZm9y
bUNsaWVudCk7CisgICAgbV9mb3JtQ2xpZW50ID0gV1RGOjptb3ZlKGZvcm1DbGllbnQpOwogfQog
CiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0VUlDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6VUlD
bGllbnQ+IHVpQ2xpZW50KQpAQCAtNTA1LDcgKzUwNSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpz
ZXRVSUNsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpVSUNsaWVudD4gdWlDbGllbnQpCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX3VpQ2xpZW50ID0gc3RkOjptb3ZlKHVpQ2xpZW50
KTsKKyAgICBtX3VpQ2xpZW50ID0gV1RGOjptb3ZlKHVpQ2xpZW50KTsKIAogICAgIGlmICghaXNW
YWxpZCgpKQogICAgICAgICByZXR1cm47CkBAIC01MjEsNyArNTIxLDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnNldEZpbmRDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6RmluZENsaWVudD4gZmlu
ZENsaWVudCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBtX2ZpbmRDbGllbnQg
PSBzdGQ6Om1vdmUoZmluZENsaWVudCk7CisgICAgbV9maW5kQ2xpZW50ID0gV1RGOjptb3ZlKGZp
bmRDbGllbnQpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6aW5pdGlhbGl6ZUZpbmRNYXRjaGVz
Q2xpZW50KGNvbnN0IFdLUGFnZUZpbmRNYXRjaGVzQ2xpZW50QmFzZSogY2xpZW50KQpAQCAtOTM0
LDcgKzkzNCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp0cnlSZXN0b3JlU2Nyb2xsUG9zaXRpb24o
KQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdlYkJhY2tG
b3J3YXJkTGlzdEl0ZW0qIGFkZGVkLCBWZWN0b3I8UmVmUHRyPFdlYkJhY2tGb3J3YXJkTGlzdEl0
ZW0+PiByZW1vdmVkKQogewotICAgIG1fbG9hZGVyQ2xpZW50LT5kaWRDaGFuZ2VCYWNrRm9yd2Fy
ZExpc3QodGhpcywgYWRkZWQsIHN0ZDo6bW92ZShyZW1vdmVkKSk7CisgICAgbV9sb2FkZXJDbGll
bnQtPmRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdCh0aGlzLCBhZGRlZCwgV1RGOjptb3ZlKHJlbW92
ZWQpKTsKIAogICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX3BhZ2VMb2FkU3RhdGUudHJhbnNhY3Rp
b24oKTsKIApAQCAtMTI1Nyw3ICsxMjU3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnZhbGlkYXRl
Q29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxi
YWNrcy5wdXQoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBzdGQ6Om1ha2VfdW5pcXVlPFBy
b2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2VuPihtX3Byb2Nlc3MtPnRocm90
dGxlcigpKSk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChXVEY6
Om1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxl
cjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4+KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKICAg
ICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlZhbGlkYXRlQ29tbWFuZChjb21t
YW5kTmFtZSwgY2FsbGJhY2tJRCksIG1fcGFnZUlEKTsKIH0KIApAQCAtMTQ4MSw3ICsxNDgxLDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgTmF0aXZlV2ViV2hl
ZWxFdmVudCYgZXZlbnQpCiAKICAgICBhdXRvIGNvYWxlc2NlZFdoZWVsRXZlbnQgPSBzdGQ6Om1h
a2VfdW5pcXVlPFZlY3RvcjxOYXRpdmVXZWJXaGVlbEV2ZW50Pj4oKTsKICAgICBjb2FsZXNjZWRX
aGVlbEV2ZW50LT5hcHBlbmQoZXZlbnQpOwotICAgIG1fY3VycmVudGx5UHJvY2Vzc2VkV2hlZWxF
dmVudHMuYXBwZW5kKHN0ZDo6bW92ZShjb2FsZXNjZWRXaGVlbEV2ZW50KSk7CisgICAgbV9jdXJy
ZW50bHlQcm9jZXNzZWRXaGVlbEV2ZW50cy5hcHBlbmQoV1RGOjptb3ZlKGNvYWxlc2NlZFdoZWVs
RXZlbnQpKTsKICAgICBzZW5kV2hlZWxFdmVudChldmVudCk7CiB9CiAKQEAgLTE0ODksNyArMTQ4
OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpwcm9jZXNzTmV4dFF1ZXVlZFdoZWVsRXZlbnQoKQog
ewogICAgIGF1dG8gbmV4dENvYWxlc2NlZEV2ZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxWZWN0b3I8
TmF0aXZlV2ViV2hlZWxFdmVudD4+KCk7CiAgICAgV2ViV2hlZWxFdmVudCBuZXh0V2hlZWxFdmVu
dCA9IGNvYWxlc2NlZFdoZWVsRXZlbnQobV93aGVlbEV2ZW50UXVldWUsICpuZXh0Q29hbGVzY2Vk
RXZlbnQuZ2V0KCkpOwotICAgIG1fY3VycmVudGx5UHJvY2Vzc2VkV2hlZWxFdmVudHMuYXBwZW5k
KHN0ZDo6bW92ZShuZXh0Q29hbGVzY2VkRXZlbnQpKTsKKyAgICBtX2N1cnJlbnRseVByb2Nlc3Nl
ZFdoZWVsRXZlbnRzLmFwcGVuZChXVEY6Om1vdmUobmV4dENvYWxlc2NlZEV2ZW50KSk7CiAgICAg
c2VuZFdoZWVsRXZlbnQobmV4dFdoZWVsRXZlbnQpOwogfQogCkBAIC0xODY1LDcgKzE4NjUsNyBA
QCBTZXNzaW9uU3RhdGUgV2ViUGFnZVByb3h5OjpzZXNzaW9uU3RhdGUoY29uc3Qgc3RkOjpmdW5j
dGlvbjxib29sIChXZWJCYWNrRm9yd2FyZAogCiB1aW50NjRfdCBXZWJQYWdlUHJveHk6OnJlc3Rv
cmVGcm9tU3RhdGUoU2Vzc2lvblN0YXRlIHNlc3Npb25TdGF0ZSkKIHsKLSAgICBtX2JhY2tGb3J3
YXJkTGlzdC0+cmVzdG9yZUZyb21TdGF0ZShzdGQ6Om1vdmUoc2Vzc2lvblN0YXRlLmJhY2tGb3J3
YXJkTGlzdFN0YXRlKSk7CisgICAgbV9iYWNrRm9yd2FyZExpc3QtPnJlc3RvcmVGcm9tU3RhdGUo
V1RGOjptb3ZlKHNlc3Npb25TdGF0ZS5iYWNrRm9yd2FyZExpc3RTdGF0ZSkpOwogCiAgICAgTGVn
YWN5U2Vzc2lvblN0YXRlIHN0YXRlKG1fYmFja0ZvcndhcmRMaXN0LT5lbnRyaWVzKCksIG1fYmFj
a0ZvcndhcmRMaXN0LT5jdXJyZW50SW5kZXgoKSk7CiAgICAgcHJvY2VzcygpLnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OlJlc3RvcmVTZXNzaW9uKHN0YXRlKSwgbV9wYWdlSUQpOwpAQCAtMjIzNSw3
ICsyMjM1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZShj
b25zdCBTdHJpbmcmIHNjcmlwdCwgc3RkOjpmdW5jdGlvbjwKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoc3RkOjptb3Zl
KGNhbGxiYWNrRnVuY3Rpb24pLCBzdGQ6Om1ha2VfdW5pcXVlPFByb2Nlc3NUaHJvdHRsZXI6OkJh
Y2tncm91bmRBY3Rpdml0eVRva2VuPihtX3Byb2Nlc3MtPnRocm90dGxlcigpKSk7CisgICAgdWlu
dDY0X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChXVEY6Om1vdmUoY2FsbGJhY2tGdW5j
dGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2
aXR5VG9rZW4+KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKICAgICBtX3Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OlJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZShzY3JpcHQsIGNhbGxi
YWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAKQEAgLTIyNDYsNyArMjI0Niw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpnZXRSZW5kZXJUcmVlRXh0ZXJuYWxSZXByZXNlbnRhdGlvbihzdGQ6OmZ1bmN0aW9u
PHZvaWQgKGNvbnN0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgdWludDY0X3Qg
Y2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbiks
IHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5VG9r
ZW4+KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0g
bV9jYWxsYmFja3MucHV0KFdURjo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgc3RkOjptYWtlX3Vu
aXF1ZTxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbj4obV9wcm9jZXNz
LT50aHJvdHRsZXIoKSkpOwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
R2V0UmVuZGVyVHJlZUV4dGVybmFsUmVwcmVzZW50YXRpb24oY2FsbGJhY2tJRCksIG1fcGFnZUlE
KTsKIH0KIApAQCAtMjI1Nyw3ICsyMjU3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmdldFNvdXJj
ZUZvckZyYW1lKFdlYkZyYW1lUHJveHkqIGZyYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKGMKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9j
YWxsYmFja3MucHV0KHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgc3RkOjptYWtlX3VuaXF1
ZTxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbj4obV9wcm9jZXNzLT50
aHJvdHRsZXIoKSkpOworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQo
V1RGOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBzdGQ6Om1ha2VfdW5pcXVlPFByb2Nlc3NUaHJv
dHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2VuPihtX3Byb2Nlc3MtPnRocm90dGxlcigpKSk7
CiAgICAgbV9sb2FkRGVwZW5kZW50U3RyaW5nQ2FsbGJhY2tJRHMuYWRkKGNhbGxiYWNrSUQpOwog
ICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R2V0U291cmNlRm9yRnJhbWUo
ZnJhbWUtPmZyYW1lSUQoKSwgY2FsbGJhY2tJRCksIG1fcGFnZUlEKTsKIH0KQEAgLTIyNjksNyAr
MjI2OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRDb250ZW50c0FzU3RyaW5nKHN0ZDo6ZnVu
Y3Rpb248dm9pZCAoY29uc3QgU3RyaW5nJiwgQ2FsbGJhCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgCi0gICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChzdGQ6Om1v
dmUoY2FsbGJhY2tGdW5jdGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxlcjo6
QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4+KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKKyAgICB1
aW50NjRfdCBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KFdURjo6bW92ZShjYWxsYmFja0Z1
bmN0aW9uKSwgc3RkOjptYWtlX3VuaXF1ZTxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0
aXZpdHlUb2tlbj4obV9wcm9jZXNzLT50aHJvdHRsZXIoKSkpOwogICAgIG1fbG9hZERlcGVuZGVu
dFN0cmluZ0NhbGxiYWNrSURzLmFkZChjYWxsYmFja0lEKTsKICAgICBtX3Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OkdldENvbnRlbnRzQXNTdHJpbmcoY2FsbGJhY2tJRCksIG1fcGFn
ZUlEKTsKIH0KQEAgLTIyODEsNyArMjI4MSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRCeXRl
Y29kZVByb2ZpbGUoc3RkOjpmdW5jdGlvbjx2b2lkIChjb25zdCBTdHJpbmcmLCBDYWxsYmFjCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1f
Y2FsbGJhY2tzLnB1dChzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIHN0ZDo6bWFrZV91bmlx
dWU8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4+KG1fcHJvY2Vzcy0+
dGhyb3R0bGVyKCkpKTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0
KFdURjo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgc3RkOjptYWtlX3VuaXF1ZTxQcm9jZXNzVGhy
b3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbj4obV9wcm9jZXNzLT50aHJvdHRsZXIoKSkp
OwogICAgIG1fbG9hZERlcGVuZGVudFN0cmluZ0NhbGxiYWNrSURzLmFkZChjYWxsYmFja0lEKTsK
ICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdldEJ5dGVjb2RlUHJvZmls
ZShjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQpAQCAtMjI5NCw3ICsyMjk0LDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmdldENvbnRlbnRzQXNNSFRNTERhdGEoc3RkOjpmdW5jdGlvbjx2b2lkIChB
UEk6OkRhdGEqLCBDYWxsYmEKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHVpbnQ2NF90
IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24p
LCBzdGQ6Om1ha2VfdW5pcXVlPFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRv
a2VuPihtX3Byb2Nlc3MtPnRocm90dGxlcigpKSk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9
IG1fY2FsbGJhY2tzLnB1dChXVEY6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIHN0ZDo6bWFrZV91
bmlxdWU8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4+KG1fcHJvY2Vz
cy0+dGhyb3R0bGVyKCkpKTsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkdldENvbnRlbnRzQXNNSFRNTERhdGEoY2FsbGJhY2tJRCwgdXNlQmluYXJ5RW5jb2RpbmcpLCBt
X3BhZ2VJRCk7CiB9CiAjZW5kaWYKQEAgLTIzMDYsNyArMjMwNiw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpnZXRTZWxlY3Rpb25PckNvbnRlbnRzQXNTdHJpbmcoc3RkOjpmdW5jdGlvbjx2b2lkIChj
b25zdCBTdHJpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgdWludDY0X3QgY2Fs
bGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIHN0
ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4+
KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9j
YWxsYmFja3MucHV0KFdURjo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgc3RkOjptYWtlX3VuaXF1
ZTxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbj4obV9wcm9jZXNzLT50
aHJvdHRsZXIoKSkpOwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R2V0
U2VsZWN0aW9uT3JDb250ZW50c0FzU3RyaW5nKGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAK
QEAgLTIzMTcsNyArMjMxNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRTZWxlY3Rpb25Bc1dl
YkFyY2hpdmVEYXRhKHN0ZDo6ZnVuY3Rpb248dm9pZCAoQVBJOjpEYXRhKiwKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICAgICAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9jYWxsYmFja3Mu
cHV0KHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgc3RkOjptYWtlX3VuaXF1ZTxQcm9jZXNz
VGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbj4obV9wcm9jZXNzLT50aHJvdHRsZXIo
KSkpOworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RGOjptb3Zl
KGNhbGxiYWNrRnVuY3Rpb24pLCBzdGQ6Om1ha2VfdW5pcXVlPFByb2Nlc3NUaHJvdHRsZXI6OkJh
Y2tncm91bmRBY3Rpdml0eVRva2VuPihtX3Byb2Nlc3MtPnRocm90dGxlcigpKSk7CiAgICAgbV9w
cm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRTZWxlY3Rpb25Bc1dlYkFyY2hpdmVE
YXRhKGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAKQEAgLTIzMjgsNyArMjMyOCw3IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpnZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZShXZWJGcmFtZVByb3h5
KiBmcmFtZSwgc3RkOjpmdW5jdGlvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAg
dWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChzdGQ6Om1vdmUoY2FsbGJhY2tG
dW5jdGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFj
dGl2aXR5VG9rZW4+KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKKyAgICB1aW50NjRfdCBjYWxs
YmFja0lEID0gbV9jYWxsYmFja3MucHV0KFdURjo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgc3Rk
OjptYWtlX3VuaXF1ZTxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbj4o
bV9wcm9jZXNzLT50aHJvdHRsZXIoKSkpOwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6R2V0TWFpblJlc291cmNlRGF0YU9mRnJhbWUoZnJhbWUtPmZyYW1lSUQoKSwgY2Fs
bGJhY2tJRCksIG1fcGFnZUlEKTsKIH0KIApAQCAtMjMzOSw3ICsyMzM5LDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmdldFJlc291cmNlRGF0YUZyb21GcmFtZShXZWJGcmFtZVByb3h5KiBmcmFtZSwg
QVBJOjpVUkwqIHJlc28KICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICB1aW50NjRf
dCBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9u
KSwgc3RkOjptYWtlX3VuaXF1ZTxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlU
b2tlbj4obV9wcm9jZXNzLT50aHJvdHRsZXIoKSkpOworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQg
PSBtX2NhbGxiYWNrcy5wdXQoV1RGOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBzdGQ6Om1ha2Vf
dW5pcXVlPFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2VuPihtX3Byb2Nl
c3MtPnRocm90dGxlcigpKSk7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpHZXRSZXNvdXJjZURhdGFGcm9tRnJhbWUoZnJhbWUtPmZyYW1lSUQoKSwgcmVzb3VyY2VVUkwt
PnN0cmluZygpLCBjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCkBAIC0yMzUwLDcgKzIzNTAs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0V2ViQXJjaGl2ZU9mRnJhbWUoV2ViRnJhbWVQcm94
eSogZnJhbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZAogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoc3RkOjptb3ZlKGNh
bGxiYWNrRnVuY3Rpb24pLCBzdGQ6Om1ha2VfdW5pcXVlPFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tn
cm91bmRBY3Rpdml0eVRva2VuPihtX3Byb2Nlc3MtPnRocm90dGxlcigpKSk7CisgICAgdWludDY0
X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChXVEY6Om1vdmUoY2FsbGJhY2tGdW5jdGlv
biksIHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5
VG9rZW4+KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OkdldFdlYkFyY2hpdmVPZkZyYW1lKGZyYW1lLT5mcmFtZUlEKCksIGNh
bGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAKQEAgLTI4MjQsNyArMjgyNCw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IG5hCiAgICAgbV9pbkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24g
PSB0cnVlOwogICAgIG1fc3luY05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBY3Rpb25Jc1ZhbGlkID0g
ZmFsc2U7CiAKLSAgICBtX3BvbGljeUNsaWVudC0+ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbih0aGlzLCBmcmFtZSwgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIG9yaWdpbmF0aW5nRnJhbWUs
IG9yaWdpbmFsUmVxdWVzdCwgcmVxdWVzdCwgc3RkOjptb3ZlKGxpc3RlbmVyKSwgdXNlckRhdGEu
Z2V0KCkpOworICAgIG1fcG9saWN5Q2xpZW50LT5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKHRoaXMsIGZyYW1lLCBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgb3JpZ2luYXRpbmdGcmFtZSwg
b3JpZ2luYWxSZXF1ZXN0LCByZXF1ZXN0LCBXVEY6Om1vdmUobGlzdGVuZXIpLCB1c2VyRGF0YS5n
ZXQoKSk7CiAKICAgICBtX2luRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiA9IGZhbHNl
OwogCkBAIC0yODQ5LDcgKzI4NDksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5
Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IE5hdmlnYQogCiAgICAg
UmVmUHRyPFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eT4gbGlzdGVuZXIgPSBmcmFtZS0+c2V0
VXBQb2xpY3lMaXN0ZW5lclByb3h5KGxpc3RlbmVySUQpOwogCi0gICAgbV9wb2xpY3lDbGllbnQt
PmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih0aGlzLCBmcmFtZSwgbmF2aWdhdGlvbkFj
dGlvbkRhdGEsIHJlcXVlc3QsIGZyYW1lTmFtZSwgc3RkOjptb3ZlKGxpc3RlbmVyKSwgdXNlckRh
dGEuZ2V0KCkpOworICAgIG1fcG9saWN5Q2xpZW50LT5kZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dB
Y3Rpb24odGhpcywgZnJhbWUsIG5hdmlnYXRpb25BY3Rpb25EYXRhLCByZXF1ZXN0LCBmcmFtZU5h
bWUsIFdURjo6bW92ZShsaXN0ZW5lciksIHVzZXJEYXRhLmdldCgpKTsKIH0KIAogdm9pZCBXZWJQ
YWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiBkZWNvZGVyKQpAQCAtMjg2Niw3ICsyODY2LDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlc291
cmNlUmVzcG8KIAogICAgIFJlZlB0cjxXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk+IGxpc3Rl
bmVyID0gZnJhbWUtPnNldFVwUG9saWN5TGlzdGVuZXJQcm94eShsaXN0ZW5lcklEKTsKIAotICAg
IG1fcG9saWN5Q2xpZW50LT5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh0aGlzLCBmcmFtZSwgcmVz
cG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgc3RkOjptb3ZlKGxpc3RlbmVyKSwgdXNl
ckRhdGEuZ2V0KCkpOworICAgIG1fcG9saWN5Q2xpZW50LT5kZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZSh0aGlzLCBmcmFtZSwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgV1RGOjpt
b3ZlKGxpc3RlbmVyKSwgdXNlckRhdGEuZ2V0KCkpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJv
b2wgY2FuU2hvd01JTUVUeXBlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJiBkZWNvZGVyLCBib29sJiByZWNlaXZlZFBvbGljeUFjdGlvbiwgdWludDY0X3QmIHBvbGlj
eUFjdGlvbiwgdWludDY0X3QmIGRvd25sb2FkSUQpCkBAIC0zNDk3LDEwICszNDk3LDEwIEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpkaWRGaW5kU3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmIHN0cmlu
ZywgY29uc3QgVmVjdG9yPFZlY3RvCiAgICAgICAgIGZvciAoY29uc3QgYXV0byYgcmVjdCA6IHJl
Y3RzKQogICAgICAgICAgICAgYXBpUmVjdHMudW5jaGVja2VkQXBwZW5kKEFQSTo6UmVjdDo6Y3Jl
YXRlKHRvQVBJKHJlY3QpKSk7CiAKLSAgICAgICAgbWF0Y2hlcy51bmNoZWNrZWRBcHBlbmQoQVBJ
OjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShhcGlSZWN0cykpKTsKKyAgICAgICAgbWF0Y2hlcy51
bmNoZWNrZWRBcHBlbmQoQVBJOjpBcnJheTo6Y3JlYXRlKFdURjo6bW92ZShhcGlSZWN0cykpKTsK
ICAgICB9CiAKLSAgICBtX2ZpbmRNYXRjaGVzQ2xpZW50LmRpZEZpbmRTdHJpbmdNYXRjaGVzKHRo
aXMsIHN0cmluZywgQVBJOjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShtYXRjaGVzKSkuZ2V0KCks
IGZpcnN0SW5kZXhBZnRlclNlbGVjdGlvbik7CisgICAgbV9maW5kTWF0Y2hlc0NsaWVudC5kaWRG
aW5kU3RyaW5nTWF0Y2hlcyh0aGlzLCBzdHJpbmcsIEFQSTo6QXJyYXk6OmNyZWF0ZShXVEY6Om1v
dmUobWF0Y2hlcykpLmdldCgpLCBmaXJzdEluZGV4QWZ0ZXJTZWxlY3Rpb24pOwogfQogCiB2b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFRvRmluZFN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykK
QEAgLTM1MTAsNyArMzUxMCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsVG9GaW5kU3Ry
aW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogCiBib29sIFdlYlBhZ2VQcm94eTo6c2VuZE1lc3Nh
Z2Uoc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+IGVuY29kZXIsIHVuc2lnbmVk
IG1lc3NhZ2VTZW5kRmxhZ3MpCiB7Ci0gICAgcmV0dXJuIG1fcHJvY2Vzcy0+c2VuZE1lc3NhZ2Uo
c3RkOjptb3ZlKGVuY29kZXIpLCBtZXNzYWdlU2VuZEZsYWdzKTsKKyAgICByZXR1cm4gbV9wcm9j
ZXNzLT5zZW5kTWVzc2FnZShXVEY6Om1vdmUoZW5jb2RlciksIG1lc3NhZ2VTZW5kRmxhZ3MpOwog
fQogCiBJUEM6OkNvbm5lY3Rpb24qIFdlYlBhZ2VQcm94eTo6bWVzc2FnZVNlbmRlckNvbm5lY3Rp
b24oKQpAQCAtNDQ5NSw3ICs0NDk1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmV4Y2VlZGVkRGF0
YWJhc2VRdW90YSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbkkKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8RXhjZWVkZWREYXRhYmFzZVF1b3RhUmVjb3Jkczo6UmVjb3JkPiBuZXdS
ZWNvcmQgPSByZWNvcmRzLmNyZWF0ZVJlY29yZChmcmFtZUlELAogICAgICAgICBvcmlnaW5JZGVu
dGlmaWVyLCBkYXRhYmFzZU5hbWUsIGRpc3BsYXlOYW1lLCBjdXJyZW50UXVvdGEsIGN1cnJlbnRP
cmlnaW5Vc2FnZSwKICAgICAgICAgY3VycmVudERhdGFiYXNlVXNhZ2UsIGV4cGVjdGVkVXNhZ2Us
IHJlcGx5KTsKLSAgICByZWNvcmRzLmFkZChzdGQ6Om1vdmUobmV3UmVjb3JkKSk7CisgICAgcmVj
b3Jkcy5hZGQoV1RGOjptb3ZlKG5ld1JlY29yZCkpOwogCiAgICAgaWYgKHJlY29yZHMuYXJlQmVp
bmdQcm9jZXNzZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNTAxOCw3ICs1MDE4LDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmdldE1hcmtlZFJhbmdlQXN5bmMoc3RkOjpmdW5jdGlvbjx2b2lkIChF
ZGl0aW5nUmFuZ2UsIENhbGxiYWMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHVpbnQ2
NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rp
b24pLCBzdGQ6Om1ha2VfdW5pcXVlPFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0
eVRva2VuPihtX3Byb2Nlc3MtPnRocm90dGxlcigpKSk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJ
RCA9IG1fY2FsbGJhY2tzLnB1dChXVEY6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIHN0ZDo6bWFr
ZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4+KG1fcHJv
Y2Vzcy0+dGhyb3R0bGVyKCkpKTsKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6R2V0TWFya2VkUmFuZ2VBc3luYyhjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCkBAIC01
MDI5LDcgKzUwMjksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0U2VsZWN0ZWRSYW5nZUFzeW5j
KHN0ZDo6ZnVuY3Rpb248dm9pZCAoRWRpdGluZ1JhbmdlLCBDYWxsYgogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChzdGQ6
Om1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxl
cjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4+KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKKyAg
ICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KFdURjo6bW92ZShjYWxsYmFj
a0Z1bmN0aW9uKSwgc3RkOjptYWtlX3VuaXF1ZTxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5k
QWN0aXZpdHlUb2tlbj4obV9wcm9jZXNzLT50aHJvdHRsZXIoKSkpOwogICAgIHByb2Nlc3MoKS5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRTZWxlY3RlZFJhbmdlQXN5bmMoY2FsbGJhY2tJRCks
IG1fcGFnZUlEKTsKIH0KIApAQCAtNTA0MCw3ICs1MDQwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmNoYXJhY3RlckluZGV4Rm9yUG9pbnRBc3luYyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9p
bnQsIHMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQg
PSBtX2NhbGxiYWNrcy5wdXQoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBzdGQ6Om1ha2Vf
dW5pcXVlPFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2VuPihtX3Byb2Nl
c3MtPnRocm90dGxlcigpKSk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tz
LnB1dChXVEY6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vz
c1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4+KG1fcHJvY2Vzcy0+dGhyb3R0bGVy
KCkpKTsKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Q2hhcmFjdGVySW5k
ZXhGb3JQb2ludEFzeW5jKHBvaW50LCBjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCkBAIC01
MDUxLDcgKzUwNTEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Zmlyc3RSZWN0Rm9yQ2hhcmFjdGVy
UmFuZ2VBc3luYyhjb25zdCBFZGl0aW5nUmFuZ2UmIHJhbmdlLCBzdAogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChzdGQ6
Om1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxl
cjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4+KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKKyAg
ICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KFdURjo6bW92ZShjYWxsYmFj
a0Z1bmN0aW9uKSwgc3RkOjptYWtlX3VuaXF1ZTxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5k
QWN0aXZpdHlUb2tlbj4obV9wcm9jZXNzLT50aHJvdHRsZXIoKSkpOwogICAgIHByb2Nlc3MoKS5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpGaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZUFzeW5jKHJh
bmdlLCBjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCkBAIC01MDgzLDcgKzUwODMsNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6dGFrZVNuYXBzaG90KEludFJlY3QgcmVjdCwgSW50U2l6ZSBiaXRt
YXBTaXplLCBTbmFwc2hvdE9wdGlvbgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgdWlu
dDY0X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChzdGQ6Om1vdmUoY2FsbGJhY2tGdW5j
dGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2
aXR5VG9rZW4+KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKKyAgICB1aW50NjRfdCBjYWxsYmFj
a0lEID0gbV9jYWxsYmFja3MucHV0KFdURjo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgc3RkOjpt
YWtlX3VuaXF1ZTxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbj4obV9w
cm9jZXNzLT50aHJvdHRsZXIoKSkpOwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6VGFrZVNuYXBzaG90KHJlY3QsIGJpdG1hcFNpemUsIG9wdGlvbnMsIGNhbGxiYWNrSUQp
LCBtX3BhZ2VJRCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKaW5kZXggNDE1MzA3MC4uNTg3MmYxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTMxOSw3ICszMTksNyBAQCB2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6YWRkQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IGl0ZW1JRCwgY29uc3QgUGFn
ZVN0YXRlJiBwYWdlUwogICAgIGlmICghYmFja0ZvcndhcmRMaXN0SXRlbSkgewogICAgICAgICBC
YWNrRm9yd2FyZExpc3RJdGVtU3RhdGUgYmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlOwogICAgICAg
ICBiYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUucGFnZVN0YXRlID0gcGFnZVN0YXRlOwotICAgICAg
ICBiYWNrRm9yd2FyZExpc3RJdGVtID0gV2ViQmFja0ZvcndhcmRMaXN0SXRlbTo6Y3JlYXRlKGl0
ZW1JRCwgc3RkOjptb3ZlKGJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSkpOworICAgICAgICBiYWNr
Rm9yd2FyZExpc3RJdGVtID0gV2ViQmFja0ZvcndhcmRMaXN0SXRlbTo6Y3JlYXRlKGl0ZW1JRCwg
V1RGOjptb3ZlKGJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSkpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VD
YWNoZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggZjkyMGFlMi4uZDAxZTY1MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdl
clByb3h5LmNwcApAQCAtOTAsNyArOTAsNyBAQCB2b2lkIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
UHJveHk6OmRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKQogCiB2b2lkIFdlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyUHJveHk6OmdldENhY2hlT3JpZ2lucyhzdGQ6OmZ1bmN0aW9uPHZvaWQgKEFQSTo6
QXJyYXkqLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4gY2FsbGJhY2tGdW5jdGlvbikKIHsKLSAgICBS
ZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2FsbGJhY2sgPSBBcnJheUNhbGxiYWNrOjpjcmVhdGUoc3Rk
Ojptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKKyAgICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2Fs
bGJhY2sgPSBBcnJheUNhbGxiYWNrOjpjcmVhdGUoV1RGOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24p
KTsKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKICAg
ICBtX2FycmF5Q2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFjay5yZWxlYXNlKCkpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvY2YvV2ViUGFnZVByb3h5Q0Yu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2NmL1dlYlBhZ2VQcm94eUNGLmNwcAppbmRl
eCA2MjM3YWZkLi4zNGZmYzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Y2YvV2ViUGFnZVByb3h5Q0YuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9jZi9X
ZWJQYWdlUHJveHlDRi5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgUGFzc1JlZlB0cjxBUEk6OkRhdGE+
IFdlYlBhZ2VQcm94eTo6c2Vzc2lvblN0YXRlRGF0YShzdGQ6OmZ1bmN0aW9uPGJvb2wgKFdlYkJh
Y2sKICAgICBjb25zdCB2b2lkKiB2YWx1ZXNbMl07CiAgICAgQ0ZJbmRleCBudW1WYWx1ZXMgPSAw
OwogCi0gICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gc2Vzc2lvbkhpc3RvcnlEaWN0aW9u
YXJ5ID0gYWRvcHRDRihtX2JhY2tGb3J3YXJkTGlzdC0+Y3JlYXRlQ0ZEaWN0aW9uYXJ5UmVwcmVz
ZW50YXRpb24oc3RkOjptb3ZlKGZpbHRlcikpKTsKKyAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5
UmVmPiBzZXNzaW9uSGlzdG9yeURpY3Rpb25hcnkgPSBhZG9wdENGKG1fYmFja0ZvcndhcmRMaXN0
LT5jcmVhdGVDRkRpY3Rpb25hcnlSZXByZXNlbnRhdGlvbihXVEY6Om1vdmUoZmlsdGVyKSkpOwog
ICAgIGlmIChzZXNzaW9uSGlzdG9yeURpY3Rpb25hcnkpIHsKICAgICAgICAga2V5c1tudW1WYWx1
ZXNdID0gc2Vzc2lvbkhpc3RvcnlLZXk7CiAgICAgICAgIHZhbHVlc1tudW1WYWx1ZXNdID0gc2Vz
c2lvbkhpc3RvcnlEaWN0aW9uYXJ5LmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9JbnB1dE1ldGhvZENvbnRleHRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9JbnB1dE1ldGhvZENvbnRleHRFZmwuY3BwCmluZGV4IGMwOTgzMzguLmYy
YjJhYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvSW5wdXRNZXRo
b2RDb250ZXh0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0lucHV0
TWV0aG9kQ29udGV4dEVmbC5jcHAKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiAKIElucHV0TWV0aG9kQ29udGV4dEVmbDo6SW5wdXRNZXRob2RDb250ZXh0RWZsKEV3a1ZpZXcq
IHZpZXcsIEVmbFVuaXF1ZVB0cjxFY29yZV9JTUZfQ29udGV4dD4gY29udGV4dCkKICAgICA6IG1f
dmlldyh2aWV3KQotICAgICwgbV9jb250ZXh0KHN0ZDo6bW92ZShjb250ZXh0KSkKKyAgICAsIG1f
Y29udGV4dChXVEY6Om1vdmUoY29udGV4dCkpCiAgICAgLCBtX2ZvY3VzZWQoZmFsc2UpCiB7CiAg
ICAgQVNTRVJUKG1fY29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZWZsL0lucHV0TWV0aG9kQ29udGV4dEVmbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9JbnB1dE1ldGhvZENvbnRleHRFZmwuaAppbmRleCAwM2RiZjc4Li45ZTllOTRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0lucHV0TWV0aG9kQ29udGV4dEVm
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvSW5wdXRNZXRob2RDb250ZXh0
RWZsLmgKQEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoIWNvbnRleHQpCiAg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICByZXR1cm4gc3RkOjptYWtlX3Vu
aXF1ZTxJbnB1dE1ldGhvZENvbnRleHRFZmw+KHZpZXdJbXBsLCBzdGQ6Om1vdmUoY29udGV4dCkp
OworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxJbnB1dE1ldGhvZENvbnRleHRFZmw+
KHZpZXdJbXBsLCBXVEY6Om1vdmUoY29udGV4dCkpOwogICAgIH0KICAgICBJbnB1dE1ldGhvZENv
bnRleHRFZmwoRXdrVmlldyosIEVmbFVuaXF1ZVB0cjxFY29yZV9JTUZfQ29udGV4dD4pOwogICAg
IH5JbnB1dE1ldGhvZENvbnRleHRFZmwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvV2ViVUlQb3B1cE1lbnVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9XZWJVSVBvcHVwTWVudUNsaWVudC5jcHAKaW5kZXggNmJlNzU3ZC4uMjRmMzIw
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJVSVBvcHVwTWVu
dUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJVSVBvcHVw
TWVudUNsaWVudC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgdm9pZCBXZWJVSVBvcHVwTWVudUNsaWVu
dDo6c2hvd1BvcHVwTWVudShXZWJQYWdlUHJveHkqIHBhZ2VQcm94eSwgV2ViUG9wdXBNZW51UHIK
IAogICAgIFJlZlB0cjxBUEk6OkFycmF5PiBJdGVtc0FycmF5OwogICAgIGlmICghd2ViUG9wdXBJ
dGVtcy5pc0VtcHR5KCkpCi0gICAgICAgIEl0ZW1zQXJyYXkgPSBBUEk6OkFycmF5OjpjcmVhdGUo
c3RkOjptb3ZlKHdlYlBvcHVwSXRlbXMpKTsKKyAgICAgICAgSXRlbXNBcnJheSA9IEFQSTo6QXJy
YXk6OmNyZWF0ZShXVEY6Om1vdmUod2ViUG9wdXBJdGVtcykpOwogCiAgICAgbV9jbGllbnQuc2hv
d1BvcHVwTWVudSh0b0FQSShwYWdlUHJveHkpLCB0b0FQSShzdGF0aWNfY2FzdDxXZWJQb3B1cE1l
bnVMaXN0ZW5lckVmbCo+KHBvcHVwTWVudVByb3h5KSksIHRvQVBJKHJlY3QpLCB0b0FQSSh0ZXh0
RGlyZWN0aW9uKSwgcGFnZVNjYWxlRmFjdG9yLCB0b0FQSShJdGVtc0FycmF5LmdldCgpKSwgc2Vs
ZWN0ZWRJbmRleCwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQppbmRl
eCA3YmMwY2Q1Li44NTNmYWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tCkBAIC0yMzUsNyArMjM1LDcgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKICAgICBhdXRvIGVsZW1lbnRJbmZvID0gYWRvcHROUyhbW19X
S0FjdGl2YXRlZEVsZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhUeXBlOl9XS0FjdGl2YXRlZEVs
ZW1lbnRUeXBlSW1hZ2UKICAgICAgICAgVVJMOnRhcmdldFVSTCBsb2NhdGlvbjpwb3NpdGlvbklu
Zm9ybWF0aW9uLnBvaW50IHRpdGxlOnBvc2l0aW9uSW5mb3JtYXRpb24udGl0bGUgcmVjdDpwb3Np
dGlvbkluZm9ybWF0aW9uLmJvdW5kc10pOwogCi0gICAgUmV0YWluUHRyPE5TQXJyYXk+IGFjdGlv
bnMgPSBfdmlldy5wYWdlLT51aUNsaWVudCgpLmFjdGlvbnNGb3JFbGVtZW50KGVsZW1lbnRJbmZv
LmdldCgpLCBzdGQ6Om1vdmUoZGVmYXVsdEFjdGlvbnMpKTsKKyAgICBSZXRhaW5QdHI8TlNBcnJh
eT4gYWN0aW9ucyA9IF92aWV3LnBhZ2UtPnVpQ2xpZW50KCkuYWN0aW9uc0ZvckVsZW1lbnQoZWxl
bWVudEluZm8uZ2V0KCksIFdURjo6bW92ZShkZWZhdWx0QWN0aW9ucykpOwogCiAgICAgaWYgKCFb
YWN0aW9ucyBjb3VudF0pCiAgICAgICAgIHJldHVybjsKQEAgLTI0NCw3ICsyNDQsNyBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgIGlmICghX2ludGVyYWN0aW9uU2hlZXQpCiAgICAgICAg
IHJldHVybjsKIAotICAgIF9lbGVtZW50SW5mbyA9IHN0ZDo6bW92ZShlbGVtZW50SW5mbyk7Cisg
ICAgX2VsZW1lbnRJbmZvID0gV1RGOjptb3ZlKGVsZW1lbnRJbmZvKTsKIAogICAgIGlmICghW19p
bnRlcmFjdGlvblNoZWV0IHByZXNlbnRTaGVldF0pCiAgICAgICAgIFtzZWxmIGNsZWFudXBTaGVl
dF07CkBAIC0yNzEsNyArMjcxLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKICAgICBSZXRh
aW5QdHI8X1dLQWN0aXZhdGVkRWxlbWVudEluZm8+IGVsZW1lbnRJbmZvID0gYWRvcHROUyhbW19X
S0FjdGl2YXRlZEVsZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhUeXBlOl9XS0FjdGl2YXRlZEVs
ZW1lbnRUeXBlTGluawogICAgICAgICBVUkw6dGFyZ2V0VVJMIGxvY2F0aW9uOnBvc2l0aW9uSW5m
b3JtYXRpb24ucG9pbnQgdGl0bGU6cG9zaXRpb25JbmZvcm1hdGlvbi50aXRsZSByZWN0OnBvc2l0
aW9uSW5mb3JtYXRpb24uYm91bmRzXSk7CiAKLSAgICBSZXRhaW5QdHI8TlNBcnJheT4gYWN0aW9u
cyA9IF92aWV3LnBhZ2UtPnVpQ2xpZW50KCkuYWN0aW9uc0ZvckVsZW1lbnQoZWxlbWVudEluZm8u
Z2V0KCksIHN0ZDo6bW92ZShkZWZhdWx0QWN0aW9ucykpOworICAgIFJldGFpblB0cjxOU0FycmF5
PiBhY3Rpb25zID0gX3ZpZXcucGFnZS0+dWlDbGllbnQoKS5hY3Rpb25zRm9yRWxlbWVudChlbGVt
ZW50SW5mby5nZXQoKSwgV1RGOjptb3ZlKGRlZmF1bHRBY3Rpb25zKSk7CiAKICAgICBpZiAoIVth
Y3Rpb25zIGNvdW50XSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjgwLDcgKzI4MCw3IEBAIHVzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7CiAgICAgaWYgKCFfaW50ZXJhY3Rpb25TaGVldCkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgX2VsZW1lbnRJbmZvID0gc3RkOjptb3ZlKGVsZW1lbnRJbmZvKTsKKyAg
ICBfZWxlbWVudEluZm8gPSBXVEY6Om1vdmUoZWxlbWVudEluZm8pOwogCiAgICAgaWYgKCFbX2lu
dGVyYWN0aW9uU2hlZXQgcHJlc2VudFNoZWV0XSkKICAgICAgICAgW3NlbGYgY2xlYW51cFNoZWV0
XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
dy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQppbmRl
eCA4MTJjODQ2Li4zZjZiNjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3Lm1tCkBAIC00MzIsNyArNDMyLDcgQEAgc3RhdGljIHZvaWQgbGF5ZXJQYXRo
KENBU2hhcGVMYXllciAqbGF5ZXIsIGNvbnN0IEZsb2F0UXVhZCYgb3V0ZXJRdWFkKQogCiAgICAg
X3BhZ2VDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VDbGllbnRJbXBsPihzZWxmLCB3ZWJW
aWV3KTsKIAotICAgIF9wYWdlID0gY29udGV4dC5jcmVhdGVXZWJQYWdlKCpfcGFnZUNsaWVudCwg
c3RkOjptb3ZlKHdlYlBhZ2VDb25maWd1cmF0aW9uKSk7CisgICAgX3BhZ2UgPSBjb250ZXh0LmNy
ZWF0ZVdlYlBhZ2UoKl9wYWdlQ2xpZW50LCBXVEY6Om1vdmUod2ViUGFnZUNvbmZpZ3VyYXRpb24p
KTsKICAgICBfcGFnZS0+aW5pdGlhbGl6ZVdlYlBhZ2UoKTsKICAgICBfcGFnZS0+c2V0SW50cmlu
c2ljRGV2aWNlU2NhbGVGYWN0b3IoV0tHZXRTY2FsZUZhY3RvckZvclNjcmVlbihbVUlTY3JlZW4g
bWFpblNjcmVlbl0pKTsKICAgICBfcGFnZS0+c2V0VXNlRml4ZWRMYXlvdXQodHJ1ZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRl
cklPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3Zp
ZGVySU9TLm1tCmluZGV4IDI1MmY3YmQuLjQ2N2QwNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCkBAIC0x
NzAsNyArMTcwLDcgQEAgc3RhdGljIHZvaWQgc2V0RW5hYmxlSGlnaEFjY3VyYWN5KFdLR2VvbG9j
YXRpb25NYW5hZ2VyUmVmIGdlb2xvY2F0aW9uTWFuYWdlciwgYm8KIC0gKHZvaWQpZ2VvbG9jYXRp
b25BdXRob3JpemF0aW9uR3JhbnRlZAogewogICAgIC8vIFN0ZXAgMjogYXNrIHRoZSB1c2VyIGlm
IHRoZSB0aGlzIHBhcnRpY3VsYXIgcGFnZSBjYW4gdXNlIGdlbG9jYXRpb24uCi0gICAgVmVjdG9y
PEdlb2xvY2F0aW9uUmVxdWVzdERhdGE+IHJlcXVlc3RzID0gc3RkOjptb3ZlKF9yZXF1ZXN0c1dh
aXRpbmdGb3JDb3JlTG9jYXRpb25BdXRob3JpemF0aW9uKTsKKyAgICBWZWN0b3I8R2VvbG9jYXRp
b25SZXF1ZXN0RGF0YT4gcmVxdWVzdHMgPSBXVEY6Om1vdmUoX3JlcXVlc3RzV2FpdGluZ0ZvckNv
cmVMb2NhdGlvbkF1dGhvcml6YXRpb24pOwogICAgIGZvciAoY29uc3QgYXV0byYgcmVxdWVzdCA6
IHJlcXVlc3RzKSB7CiAgICAgICAgIFJldGFpblB0cjxXS1dlYkFsbG93RGVueVBvbGljeUxpc3Rl
bmVyPiBwb2xpY3lMaXN0ZW5lciA9IGFkb3B0TlMoW1tXS1dlYkFsbG93RGVueVBvbGljeUxpc3Rl
bmVyIGFsbG9jXSBpbml0V2l0aFBlcm1pc3Npb25SZXF1ZXN0UHJveHk6cmVxdWVzdC5wZXJtaXNz
aW9uUmVxdWVzdC5nZXQoKV0pOwogICAgICAgICBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblJl
cXVlc3RGcm9tT3JpZ2luKHJlcXVlc3Qub3JpZ2luLmdldCgpLCByZXF1ZXN0LmZyYW1lLT51cmwo
KSwgcG9saWN5TGlzdGVuZXIuZ2V0KCksIHJlcXVlc3Qud2luZG93LmdldCgpKTsKQEAgLTE3OSw3
ICsxNzksNyBAQCBzdGF0aWMgdm9pZCBzZXRFbmFibGVIaWdoQWNjdXJhY3koV0tHZW9sb2NhdGlv
bk1hbmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2VyLCBibwogCiAtICh2b2lkKWdlb2xvY2F0aW9u
QXV0aG9yaXphdGlvbkRlbmllZAogewotICAgIFZlY3RvcjxHZW9sb2NhdGlvblJlcXVlc3REYXRh
PiByZXF1ZXN0cyA9IHN0ZDo6bW92ZShfcmVxdWVzdHNXYWl0aW5nRm9yQ29yZUxvY2F0aW9uQXV0
aG9yaXphdGlvbik7CisgICAgVmVjdG9yPEdlb2xvY2F0aW9uUmVxdWVzdERhdGE+IHJlcXVlc3Rz
ID0gV1RGOjptb3ZlKF9yZXF1ZXN0c1dhaXRpbmdGb3JDb3JlTG9jYXRpb25BdXRob3JpemF0aW9u
KTsKICAgICBmb3IgKGNvbnN0IGF1dG8mIHJlcXVlc3REYXRhIDogcmVxdWVzdHMpCiAgICAgICAg
IHJlcXVlc3REYXRhLnBlcm1pc3Npb25SZXF1ZXN0LT5kZW55KCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IGMzMTI1ZWIuLjM3
NGM2MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVBy
b3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5
SU9TLm1tCkBAIC0zMjAsNyArMzIwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNlbGVjdFdpdGhH
ZXN0dXJlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBXZWJDb3JlOjpUZXgKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNr
cy5wdXQoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBzdGQ6Om1ha2VfdW5pcXVlPFByb2Nl
c3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2VuPihtX3Byb2Nlc3MtPnRocm90dGxl
cigpKSk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChXVEY6Om1v
dmUoY2FsbGJhY2tGdW5jdGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxlcjo6
QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4+KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKICAgICBt
X3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNlbGVjdFdpdGhHZXN0dXJlKHBvaW50
LCAodWludDMyX3QpZ3JhbnVsYXJpdHksIGdlc3R1cmVUeXBlLCBnZXN0dXJlU3RhdGUsIGNhbGxi
YWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAKQEAgLTMzMSw3ICszMzEsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6dXBkYXRlU2VsZWN0aW9uV2l0aFRvdWNoZXMoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQg
cG9pbnQsIHVpbgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgdWludDY0X3QgY2FsbGJh
Y2tJRCA9IG1fY2FsbGJhY2tzLnB1dChzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIHN0ZDo6
bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4+KG1f
cHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9jYWxs
YmFja3MucHV0KFdURjo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgc3RkOjptYWtlX3VuaXF1ZTxQ
cm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbj4obV9wcm9jZXNzLT50aHJv
dHRsZXIoKSkpOwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VXBkYXRl
U2VsZWN0aW9uV2l0aFRvdWNoZXMocG9pbnQsIHRvdWNoZXMsIGJhc2VJc1N0YXJ0LCBjYWxsYmFj
a0lEKSwgbV9wYWdlSUQpOwogfQogICAgIApAQCAtMzUyLDcgKzM1Miw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpyZXF1ZXN0QXV0b2NvcnJlY3Rpb25EYXRhKGNvbnN0IFN0cmluZyYgdGV4dEZvckF1
dG9jb3JyZWN0aW9uCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICB1aW50NjRfdCBjYWxs
YmFja0lEID0gbV9jYWxsYmFja3MucHV0KHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgc3Rk
OjptYWtlX3VuaXF1ZTxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbj4o
bV9wcm9jZXNzLT50aHJvdHRsZXIoKSkpOworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2Nh
bGxiYWNrcy5wdXQoV1RGOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBzdGQ6Om1ha2VfdW5pcXVl
PFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2VuPihtX3Byb2Nlc3MtPnRo
cm90dGxlcigpKSk7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpSZXF1
ZXN0QXV0b2NvcnJlY3Rpb25EYXRhKHRleHRGb3JBdXRvY29ycmVjdGlvbiwgY2FsbGJhY2tJRCks
IG1fcGFnZUlEKTsKIH0KIApAQCAtMzYzLDcgKzM2Myw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojph
cHBseUF1dG9jb3JyZWN0aW9uKGNvbnN0IFN0cmluZyYgY29ycmVjdGlvbiwgY29uc3QgU3RyaW5n
JiBvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0g
bV9jYWxsYmFja3MucHV0KHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgc3RkOjptYWtlX3Vu
aXF1ZTxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbj4obV9wcm9jZXNz
LT50aHJvdHRsZXIoKSkpOworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5w
dXQoV1RGOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBzdGQ6Om1ha2VfdW5pcXVlPFByb2Nlc3NU
aHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2VuPihtX3Byb2Nlc3MtPnRocm90dGxlcigp
KSk7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpBcHBseUF1dG9jb3Jy
ZWN0aW9uKGNvcnJlY3Rpb24sIG9yaWdpbmFsVGV4dCwgY2FsbGJhY2tJRCksIG1fcGFnZUlEKTsK
IH0KIApAQCAtMzgxLDcgKzM4MSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0RGljdGF0
aW9uQ29udGV4dChzdGQ6OmZ1bmN0aW9uPHZvaWQgKGNvbnN0IFN0cmluZyYsIGNvCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9jYWxsYmFja3Mu
cHV0KHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgc3RkOjptYWtlX3VuaXF1ZTxQcm9jZXNz
VGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbj4obV9wcm9jZXNzLT50aHJvdHRsZXIo
KSkpOworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RGOjptb3Zl
KGNhbGxiYWNrRnVuY3Rpb24pLCBzdGQ6Om1ha2VfdW5pcXVlPFByb2Nlc3NUaHJvdHRsZXI6OkJh
Y2tncm91bmRBY3Rpdml0eVRva2VuPihtX3Byb2Nlc3MtPnRocm90dGxlcigpKSk7CiAgICAgbV9w
cm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpSZXF1ZXN0RGljdGF0aW9uQ29udGV4dChj
YWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCkBAIC0zOTIsNyArMzkyLDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnJlcXVlc3RBdXRvY29ycmVjdGlvbkNvbnRleHQoc3RkOjpmdW5jdGlvbjx2b2lk
IChjb25zdCBTdHJpbmcKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHVpbnQ2NF90IGNh
bGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBz
dGQ6Om1ha2VfdW5pcXVlPFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2Vu
PihtX3Byb2Nlc3MtPnRocm90dGxlcigpKSk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1f
Y2FsbGJhY2tzLnB1dChXVEY6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIHN0ZDo6bWFrZV91bmlx
dWU8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4+KG1fcHJvY2Vzcy0+
dGhyb3R0bGVyKCkpKTsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlJl
cXVlc3RBdXRvY29ycmVjdGlvbkNvbnRleHQoY2FsbGJhY2tJRCksIG1fcGFnZUlEKTsKIH0KIApA
QCAtNDA4LDcgKzQwOCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZWxlY3RXaXRoVHdvVG91Y2hl
cyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCBmcm9tLCBjb25zdCBXZWJDCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KHN0
ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgc3RkOjptYWtlX3VuaXF1ZTxQcm9jZXNzVGhyb3R0
bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbj4obV9wcm9jZXNzLT50aHJvdHRsZXIoKSkpOwor
ICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RGOjptb3ZlKGNhbGxi
YWNrRnVuY3Rpb24pLCBzdGQ6Om1ha2VfdW5pcXVlPFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91
bmRBY3Rpdml0eVRva2VuPihtX3Byb2Nlc3MtPnRocm90dGxlcigpKSk7CiAgICAgbV9wcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZWxlY3RXaXRoVHdvVG91Y2hlcyhmcm9tLCB0bywg
Z2VzdHVyZVR5cGUsIGdlc3R1cmVTdGF0ZSwgY2FsbGJhY2tJRCksIG1fcGFnZUlEKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxv
YWRQYW5lbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBs
b2FkUGFuZWwubW0KaW5kZXggNjk2MWExYi4uNDI5ODRjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1tCkBAIC0y
ODUsNyArMjg1LDcgQEAgc3RhdGljIFVJSW1hZ2UgKnRodW1ibmFpbFNpemVkSW1hZ2VGb3JJbWFn
ZShVSUltYWdlICppbWFnZSkKICAgICB1cmxzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY291bnQp
OwogICAgIGZvciAoTlNVUkwgKmZpbGVVUkwgaW4gZmlsZVVSTHMpCiAgICAgICAgIHVybHMudW5j
aGVja2VkQXBwZW5kKGFkb3B0UmVmKHRvSW1wbChXS1VSTENyZWF0ZVdpdGhDRlVSTCgoQ0ZVUkxS
ZWYpZmlsZVVSTCkpKSk7Ci0gICAgUmVmUHRyPEFQSTo6QXJyYXk+IGZpbGVVUkxzUmVmID0gQVBJ
OjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZSh1cmxzKSk7CisgICAgUmVmUHRyPEFQSTo6QXJyYXk+
IGZpbGVVUkxzUmVmID0gQVBJOjpBcnJheTo6Y3JlYXRlKFdURjo6bW92ZSh1cmxzKSk7CiAKICAg
ICBOU0RhdGEgKmpwZWcgPSBVSUltYWdlSlBFR1JlcHJlc2VudGF0aW9uKGljb25JbWFnZSwgMS4w
KTsKICAgICBSZWZQdHI8QVBJOjpEYXRhPiBpY29uSW1hZ2VEYXRhUmVmID0gYWRvcHRSZWYodG9J
bXBsKFdLRGF0YUNyZWF0ZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2lnbmVkIGNoYXIqPihb
anBlZyBieXRlc10pLCBbanBlZyBsZW5ndGhdKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuY3BwCmluZGV4IGM3
ZWQ3OWIuLmQ1ZGM4ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
TGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5jcHAKQEAgLTE4NSw3ICsxODUsNyBAQCBw
dWJsaWM6CiAgICAgTWFsbG9jUHRyPHVpbnQ4X3Q+IGZpbmlzaEVuY29kaW5nKHNpemVfdCYgc2l6
ZSkKICAgICB7CiAgICAgICAgIHNpemUgPSBtX2J1ZmZlclNpemU7Ci0gICAgICAgIHJldHVybiBz
dGQ6Om1vdmUobV9idWZmZXIpOworICAgICAgICByZXR1cm4gV1RGOjptb3ZlKG1fYnVmZmVyKTsK
ICAgICB9CiAKIHByaXZhdGU6CkBAIC04MjYsNyArODI2LDcgQEAgc3RhdGljIHZvaWQgZGVjb2Rl
Rm9ybURhdGEoSGlzdG9yeUVudHJ5RGF0YURlY29kZXImIGRlY29kZXIsIEhUVFBCb2R5JiBmb3Jt
RGF0YSkKICAgICAgICAgSFRUUEJvZHk6OkVsZW1lbnQgZm9ybURhdGFFbGVtZW50OwogICAgICAg
ICBkZWNvZGVGb3JtRGF0YUVsZW1lbnQoZGVjb2RlciwgZm9ybURhdGFFbGVtZW50KTsKIAotICAg
ICAgICBmb3JtRGF0YS5lbGVtZW50cy5hcHBlbmQoc3RkOjptb3ZlKGZvcm1EYXRhRWxlbWVudCkp
OworICAgICAgICBmb3JtRGF0YS5lbGVtZW50cy5hcHBlbmQoV1RGOjptb3ZlKGZvcm1EYXRhRWxl
bWVudCkpOwogICAgIH0KIAogICAgIGJvb2wgaGFzR2VuZXJhdGVkRmlsZXM7CkBAIC04NDcsNyAr
ODQ3LDcgQEAgc3RhdGljIHZvaWQgZGVjb2RlQmFja0ZvcndhcmRUcmVlTm9kZShIaXN0b3J5RW50
cnlEYXRhRGVjb2RlciYgZGVjb2RlciwgRnJhbWVTdGEKICAgICAgICAgZGVjb2RlciA+PiBjaGls
ZEZyYW1lU3RhdGUudXJsU3RyaW5nOwogCiAgICAgICAgIGRlY29kZUJhY2tGb3J3YXJkVHJlZU5v
ZGUoZGVjb2RlciwgY2hpbGRGcmFtZVN0YXRlKTsKLSAgICAgICAgZnJhbWVTdGF0ZS5jaGlsZHJl
bi5hcHBlbmQoc3RkOjptb3ZlKGNoaWxkRnJhbWVTdGF0ZSkpOworICAgICAgICBmcmFtZVN0YXRl
LmNoaWxkcmVuLmFwcGVuZChXVEY6Om1vdmUoY2hpbGRGcmFtZVN0YXRlKSk7CiAgICAgfQogCiAg
ICAgZGVjb2RlciA+PiBmcmFtZVN0YXRlLmRvY3VtZW50U2VxdWVuY2VOdW1iZXI7CkBAIC04NTks
NyArODU5LDcgQEAgc3RhdGljIHZvaWQgZGVjb2RlQmFja0ZvcndhcmRUcmVlTm9kZShIaXN0b3J5
RW50cnlEYXRhRGVjb2RlciYgZGVjb2RlciwgRnJhbWVTdGEKICAgICAgICAgU3RyaW5nIHN0YXRl
OwogICAgICAgICBkZWNvZGVyID4+IHN0YXRlOwogCi0gICAgICAgIGZyYW1lU3RhdGUuZG9jdW1l
bnRTdGF0ZS5hcHBlbmQoc3RkOjptb3ZlKHN0YXRlKSk7CisgICAgICAgIGZyYW1lU3RhdGUuZG9j
dW1lbnRTdGF0ZS5hcHBlbmQoV1RGOjptb3ZlKHN0YXRlKSk7CiAgICAgfQogCiAgICAgU3RyaW5n
IGZvcm1Db250ZW50VHlwZTsKQEAgLTg3MCwxMSArODcwLDExIEBAIHN0YXRpYyB2b2lkIGRlY29k
ZUJhY2tGb3J3YXJkVHJlZU5vZGUoSGlzdG9yeUVudHJ5RGF0YURlY29kZXImIGRlY29kZXIsIEZy
YW1lU3RhCiAKICAgICBpZiAoaGFzRm9ybURhdGEpIHsKICAgICAgICAgSFRUUEJvZHkgaHR0cEJv
ZHk7Ci0gICAgICAgIGh0dHBCb2R5LmNvbnRlbnRUeXBlID0gc3RkOjptb3ZlKGZvcm1Db250ZW50
VHlwZSk7CisgICAgICAgIGh0dHBCb2R5LmNvbnRlbnRUeXBlID0gV1RGOjptb3ZlKGZvcm1Db250
ZW50VHlwZSk7CiAKICAgICAgICAgZGVjb2RlRm9ybURhdGEoZGVjb2RlciwgaHR0cEJvZHkpOwog
Ci0gICAgICAgIGZyYW1lU3RhdGUuaHR0cEJvZHkgPSBzdGQ6Om1vdmUoaHR0cEJvZHkpOworICAg
ICAgICBmcmFtZVN0YXRlLmh0dHBCb2R5ID0gV1RGOjptb3ZlKGh0dHBCb2R5KTsKICAgICB9CiAK
ICAgICBkZWNvZGVyID4+IGZyYW1lU3RhdGUuaXRlbVNlcXVlbmNlTnVtYmVyOwpAQCAtODk4LDcg
Kzg5OCw3IEBAIHN0YXRpYyB2b2lkIGRlY29kZUJhY2tGb3J3YXJkVHJlZU5vZGUoSGlzdG9yeUVu
dHJ5RGF0YURlY29kZXImIGRlY29kZXIsIEZyYW1lU3RhCiAgICAgICAgIFZlY3Rvcjx1aW50OF90
PiBzdGF0ZU9iamVjdERhdGE7CiAgICAgICAgIGRlY29kZXIgPj4gc3RhdGVPYmplY3REYXRhOwog
Ci0gICAgICAgIGZyYW1lU3RhdGUuc3RhdGVPYmplY3REYXRhID0gc3RkOjptb3ZlKHN0YXRlT2Jq
ZWN0RGF0YSk7CisgICAgICAgIGZyYW1lU3RhdGUuc3RhdGVPYmplY3REYXRhID0gV1RGOjptb3Zl
KHN0YXRlT2JqZWN0RGF0YSk7CiAgICAgfQogCiAgICAgZGVjb2RlciA+PiBmcmFtZVN0YXRlLnRh
cmdldDsKQEAgLTk3NSw3ICs5NzUsNyBAQCBzdGF0aWMgYm9vbCBkZWNvZGVTZXNzaW9uSGlzdG9y
eUVudHJpZXMoQ0ZBcnJheVJlZiBlbnRyaWVzQXJyYXksIFZlY3RvcjxCYWNrRm9ydwogICAgICAg
ICBpZiAoIWRlY29kZVNlc3Npb25IaXN0b3J5RW50cnkoZW50cnlEaWN0aW9uYXJ5LCBlbnRyeSkp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgZW50cmllcy5hcHBlbmQoc3Rk
Ojptb3ZlKGVudHJ5KSk7CisgICAgICAgIGVudHJpZXMuYXBwZW5kKFdURjo6bW92ZShlbnRyeSkp
OwogICAgIH0KIAogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyLmgKaW5kZXggYzE2ZmYzMi4uYWZmYWIy
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNv
bnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJl
Q29udHJvbGxlci5oCkBAIC05NCw3ICs5NCw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhbmRsZVNj
cm9sbFdoZWVsRXZlbnQoTlNFdmVudCAqKTsKICAgICB2b2lkIHdoZWVsRXZlbnRXYXNOb3RIYW5k
bGVkQnlXZWJDb3JlKE5TRXZlbnQgKik7CiAKLSAgICB2b2lkIHNldEN1c3RvbVN3aXBlVmlld3Mo
VmVjdG9yPFJldGFpblB0cjxOU1ZpZXc+PiB2aWV3cykgeyBtX2N1c3RvbVN3aXBlVmlld3MgPSBz
dGQ6Om1vdmUodmlld3MpOyB9CisgICAgdm9pZCBzZXRDdXN0b21Td2lwZVZpZXdzKFZlY3RvcjxS
ZXRhaW5QdHI8TlNWaWV3Pj4gdmlld3MpIHsgbV9jdXN0b21Td2lwZVZpZXdzID0gV1RGOjptb3Zl
KHZpZXdzKTsgfQogICAgIHZvaWQgc2V0Q3VzdG9tU3dpcGVWaWV3c1RvcENvbnRlbnRJbnNldChm
bG9hdCB0b3BDb250ZW50SW5zZXQpIHsgbV9jdXN0b21Td2lwZVZpZXdzVG9wQ29udGVudEluc2V0
ID0gdG9wQ29udGVudEluc2V0OyB9CiAgICAgV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd1JlbGF0
aXZlQm91bmRzRm9yQ3VzdG9tU3dpcGVWaWV3cygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCmluZGV4IDcxMDM5MTguLmMzMDA0
NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFj
Lm1tCkBAIC0zMzIsNyArMzMyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmF0dHJpYnV0ZWRTdWJz
dHJpbmdGb3JDaGFyYWN0ZXJSYW5nZUFzeW5jKGNvbnN0IEVkaXRpbmdSYW5nZSYKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5w
dXQoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBzdGQ6Om1ha2VfdW5pcXVlPFByb2Nlc3NU
aHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2VuPihtX3Byb2Nlc3MtPnRocm90dGxlcigp
KSk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChXVEY6Om1vdmUo
Y2FsbGJhY2tGdW5jdGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxlcjo6QmFj
a2dyb3VuZEFjdGl2aXR5VG9rZW4+KG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkpKTsKIAogICAgIHBy
b2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpBdHRyaWJ1dGVkU3Vic3RyaW5nRm9yQ2hh
cmFjdGVyUmFuZ2VBc3luYyhyYW5nZSwgY2FsbGJhY2tJRCksIG1fcGFnZUlEKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQYWdlLmNwcAppbmRleCAzOGEyYWIzLi4yMTE0ZjU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVBhZ2UuY3BwCkBAIC0xODUsNyArMTg1LDcgQEAgc3RhdGljIFBhc3NSZWZQ
dHI8QVBJOjpBcnJheT4gY29udGV4dE1lbnVJdGVtcyhjb25zdCBXZWJDb250ZXh0TWVudSYgY29u
dGV4dE1lbnUKICAgICBmb3IgKGNvbnN0IGF1dG8mIGl0ZW0gOiBpdGVtcykKICAgICAgICAgbWVu
dUl0ZW1zLnVuY2hlY2tlZEFwcGVuZChXZWJDb250ZXh0TWVudUl0ZW06OmNyZWF0ZShpdGVtKSk7
CiAKLSAgICByZXR1cm4gQVBJOjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShtZW51SXRlbXMpKTsK
KyAgICByZXR1cm4gQVBJOjpBcnJheTo6Y3JlYXRlKFdURjo6bW92ZShtZW51SXRlbXMpKTsKIH0K
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFnZS5jcHAKaW5kZXggYzFkZGY5
My4uMzEwNGI0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdlLmNwcApAQCAtMTU3
LDcgKzE1Nyw3IEBAIHN0YXRpYyB2b2lkIGRpZEluaXRpYXRlTG9hZEZvclJlc291cmNlKFdLQnVu
ZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyCiAgICAgbWVzc2FnZS5zZXQoU3Ry
aW5nOjpmcm9tVVRGOCgiRnJhbWUiKSwgdG9JbXBsKGZyYW1lKSk7CiAgICAgbWVzc2FnZS5zZXQo
U3RyaW5nOjpmcm9tVVRGOCgiSWRlbnRpZmllciIpLCBBUEk6OlVJbnQ2NDo6Y3JlYXRlKGlkZW50
aWZpZXIpKTsKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJSZXF1ZXN0IiksIHRv
SW1wbChyZXF1ZXN0KSk7Ci0gICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuaW5qZWN0ZWRCdW5kbGUo
KS0+cG9zdE1lc3NhZ2UoU3RyaW5nOjpmcm9tVVRGOCgiV2ViUGFnZS5EaWRJbml0aWF0ZUxvYWRG
b3JSZXNvdXJjZSIpLCBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoc3RkOjptb3ZlKG1lc3Nh
Z2UpKS5nZXQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuaW5qZWN0ZWRCdW5kbGUoKS0+
cG9zdE1lc3NhZ2UoU3RyaW5nOjpmcm9tVVRGOCgiV2ViUGFnZS5EaWRJbml0aWF0ZUxvYWRGb3JS
ZXNvdXJjZSIpLCBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1lc3NhZ2Up
KS5nZXQoKSk7CiB9CiAKIHN0YXRpYyBXS1VSTFJlcXVlc3RSZWYgd2lsbFNlbmRSZXF1ZXN0Rm9y
RnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYsIHVpbnQ2NF90IGlk
ZW50aWZpZXIsIFdLVVJMUmVxdWVzdFJlZiB3a1JlcXVlc3QsIFdLVVJMUmVzcG9uc2VSZWYgd2tS
ZWRpcmVjdFJlc3BvbnNlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQpAQCAtMTgyLDcgKzE4Miw3
IEBAIHN0YXRpYyBXS1VSTFJlcXVlc3RSZWYgd2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUoV0tCdW5k
bGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhCiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9t
VVRGOCgiUmVxdWVzdCIpLCBuZXdSZXF1ZXN0LmdldCgpKTsKICAgICBpZiAoIXJlZGlyZWN0UmVz
b3VyY2VSZXNwb25zZS5pc051bGwoKSkKICAgICAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9t
VVRGOCgiUmVkaXJlY3RSZXNwb25zZSIpLCB0b0ltcGwod2tSZWRpcmVjdFJlc3BvbnNlKSk7Ci0g
ICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuaW5qZWN0ZWRCdW5kbGUoKS0+cG9zdE1lc3NhZ2UoU3Ry
aW5nOjpmcm9tVVRGOCgiV2ViUGFnZS5EaWRTZW5kUmVxdWVzdEZvclJlc291cmNlIiksIEltbXV0
YWJsZURpY3Rpb25hcnk6OmNyZWF0ZShzdGQ6Om1vdmUobWVzc2FnZSkpLmdldCgpKTsKKyAgICBX
ZWJQcm9jZXNzOjpzaGFyZWQoKS5pbmplY3RlZEJ1bmRsZSgpLT5wb3N0TWVzc2FnZShTdHJpbmc6
OmZyb21VVEY4KCJXZWJQYWdlLkRpZFNlbmRSZXF1ZXN0Rm9yUmVzb3VyY2UiKSwgSW1tdXRhYmxl
RGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShtZXNzYWdlKSkuZ2V0KCkpOwogCiAgICAgcmV0
dXJuIHRvQVBJKG5ld1JlcXVlc3QucmVsZWFzZSgpLmxlYWtSZWYoKSk7CiB9CkBAIC0xOTMsNyAr
MTkzLDcgQEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UoV0tCdW5k
bGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYKICAgICBtZXNzYWdlLnNldChTdHJpbmc6
OmZyb21VVEY4KCJQYWdlIiksIHRvSW1wbChwYWdlKSk7CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5n
Ojpmcm9tVVRGOCgiSWRlbnRpZmllciIpLCBBUEk6OlVJbnQ2NDo6Y3JlYXRlKGlkZW50aWZpZXIp
KTsKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJSZXNwb25zZSIpLCB0b0ltcGwo
cmVzcG9uc2UpKTsKLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5pbmplY3RlZEJ1bmRsZSgpLT5w
b3N0TWVzc2FnZShTdHJpbmc6OmZyb21VVEY4KCJXZWJQYWdlLkRpZFJlY2VpdmVSZXNwb25zZUZv
clJlc291cmNlIiksIEltbXV0YWJsZURpY3Rpb25hcnk6OmNyZWF0ZShzdGQ6Om1vdmUobWVzc2Fn
ZSkpLmdldCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5pbmplY3RlZEJ1bmRsZSgpLT5w
b3N0TWVzc2FnZShTdHJpbmc6OmZyb21VVEY4KCJXZWJQYWdlLkRpZFJlY2VpdmVSZXNwb25zZUZv
clJlc291cmNlIiksIEltbXV0YWJsZURpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUobWVzc2Fn
ZSkpLmdldCgpKTsKIH0KIAogc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGhGb3JS
ZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiwgdWludDY0X3Qg
aWRlbnRpZmllciwgdWludDY0X3QgbGVuZ3RoLCBjb25zdCB2b2lkKikKQEAgLTIwMiw3ICsyMDIs
NyBAQCBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlQ29udGVudExlbmd0aEZvclJlc291cmNlKFdLQnVu
ZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYQogICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6ZnJv
bVVURjgoIlBhZ2UiKSwgdG9JbXBsKHBhZ2UpKTsKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZy
b21VVEY4KCJJZGVudGlmaWVyIiksIEFQSTo6VUludDY0OjpjcmVhdGUoaWRlbnRpZmllcikpOwog
ICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6ZnJvbVVURjgoIkNvbnRlbnRMZW5ndGgiKSwgQVBJOjpV
SW50NjQ6OmNyZWF0ZShsZW5ndGgpKTsKLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5pbmplY3Rl
ZEJ1bmRsZSgpLT5wb3N0TWVzc2FnZShTdHJpbmc6OmZyb21VVEY4KCJXZWJQYWdlLkRpZFJlY2Vp
dmVDb250ZW50TGVuZ3RoRm9yUmVzb3VyY2UiKSwgSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRl
KHN0ZDo6bW92ZShtZXNzYWdlKSkuZ2V0KCkpOworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmlu
amVjdGVkQnVuZGxlKCktPnBvc3RNZXNzYWdlKFN0cmluZzo6ZnJvbVVURjgoIldlYlBhZ2UuRGlk
UmVjZWl2ZUNvbnRlbnRMZW5ndGhGb3JSZXNvdXJjZSIpLCBJbW11dGFibGVEaWN0aW9uYXJ5Ojpj
cmVhdGUoV1RGOjptb3ZlKG1lc3NhZ2UpKS5nZXQoKSk7CiB9CiAKIHN0YXRpYyB2b2lkIGRpZEZp
bmlzaExvYWRGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJl
ZiwgdWludDY0X3QgaWRlbnRpZmllciwgY29uc3Qgdm9pZCopCkBAIC0yMTAsNyArMjEwLDcgQEAg
c3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZEZvclJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiBwYWdl
LCBXS0J1bmRsZUZyYW1lUmVmLCB1aW4KICAgICBJbW11dGFibGVEaWN0aW9uYXJ5OjpNYXBUeXBl
IG1lc3NhZ2U7CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiUGFnZSIpLCB0b0lt
cGwocGFnZSkpOwogICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6ZnJvbVVURjgoIklkZW50aWZpZXIi
KSwgQVBJOjpVSW50NjQ6OmNyZWF0ZShpZGVudGlmaWVyKSk7Ci0gICAgV2ViUHJvY2Vzczo6c2hh
cmVkKCkuaW5qZWN0ZWRCdW5kbGUoKS0+cG9zdE1lc3NhZ2UoU3RyaW5nOjpmcm9tVVRGOCgiV2Vi
UGFnZS5EaWRGaW5pc2hMb2FkRm9yUmVzb3VyY2UiKSwgSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3Jl
YXRlKHN0ZDo6bW92ZShtZXNzYWdlKSkuZ2V0KCkpOworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgp
LmluamVjdGVkQnVuZGxlKCktPnBvc3RNZXNzYWdlKFN0cmluZzo6ZnJvbVVURjgoIldlYlBhZ2Uu
RGlkRmluaXNoTG9hZEZvclJlc291cmNlIiksIEltbXV0YWJsZURpY3Rpb25hcnk6OmNyZWF0ZShX
VEY6Om1vdmUobWVzc2FnZSkpLmdldCgpKTsKIH0KIAogc3RhdGljIHZvaWQgZGlkRmFpbExvYWRG
b3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiwgdWludDY0
X3QgaWRlbnRpZmllciwgV0tFcnJvclJlZiBlcnJvciwgY29uc3Qgdm9pZCopCkBAIC0yMTksNyAr
MjE5LDcgQEAgc3RhdGljIHZvaWQgZGlkRmFpbExvYWRGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiwgdWludDYKICAgICBtZXNzYWdlLnNldChTdHJpbmc6
OmZyb21VVEY4KCJQYWdlIiksIHRvSW1wbChwYWdlKSk7CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5n
Ojpmcm9tVVRGOCgiSWRlbnRpZmllciIpLCBBUEk6OlVJbnQ2NDo6Y3JlYXRlKGlkZW50aWZpZXIp
KTsKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJFcnJvciIpLCB0b0ltcGwoZXJy
b3IpKTsKLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5pbmplY3RlZEJ1bmRsZSgpLT5wb3N0TWVz
c2FnZShTdHJpbmc6OmZyb21VVEY4KCJXZWJQYWdlLkRpZEZhaWxMb2FkRm9yUmVzb3VyY2UiKSwg
SW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKHN0ZDo6bW92ZShtZXNzYWdlKSkuZ2V0KCkpOwor
ICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmluamVjdGVkQnVuZGxlKCktPnBvc3RNZXNzYWdlKFN0
cmluZzo6ZnJvbVVURjgoIldlYlBhZ2UuRGlkRmFpbExvYWRGb3JSZXNvdXJjZSIpLCBJbW11dGFi
bGVEaWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1lc3NhZ2UpKS5nZXQoKSk7CiB9CiAKIHN0
YXRpYyB2b2lkIHdlYmtpdFdlYlBhZ2VHZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50
IHByb3BJZCwgR1ZhbHVlKiB2YWx1ZSwgR1BhcmFtU3BlYyogcGFyYW1TcGVjKQpAQCAtNDAyLDcg
KzQwMiw3IEBAIHZvaWQgd2Via2l0V2ViUGFnZURpZFJlY2VpdmVNZXNzYWdlKFdlYktpdFdlYlBh
Z2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hCiAgICAgICAgIG1lc3NhZ2VSZXBseS5z
ZXQoIlBhZ2UiLCB3ZWJQYWdlKTsKICAgICAgICAgbWVzc2FnZVJlcGx5LnNldCgiQ2FsbGJhY2tJ
RCIsIEFQSTo6VUludDY0OjpjcmVhdGUoY2FsbGJhY2tJRCkpOwogICAgICAgICBtZXNzYWdlUmVw
bHkuc2V0KCJTbmFwc2hvdCIsIHNuYXBzaG90SW1hZ2UpOwotICAgICAgICBXZWJQcm9jZXNzOjpz
aGFyZWQoKS5pbmplY3RlZEJ1bmRsZSgpLT5wb3N0TWVzc2FnZSgiV2ViUGFnZS5EaWRHZXRTbmFw
c2hvdCIsIEltbXV0YWJsZURpY3Rpb25hcnk6OmNyZWF0ZShzdGQ6Om1vdmUobWVzc2FnZVJlcGx5
KSkuZ2V0KCkpOworICAgICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5pbmplY3RlZEJ1bmRsZSgp
LT5wb3N0TWVzc2FnZSgiV2ViUGFnZS5EaWRHZXRTbmFwc2hvdCIsIEltbXV0YWJsZURpY3Rpb25h
cnk6OmNyZWF0ZShXVEY6Om1vdmUobWVzc2FnZVJlcGx5KSkuZ2V0KCkpOwogICAgIH0gZWxzZQog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5k
ZXggMGM0NjVmOC4uMWE2NzI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTExNyw3ICsx
MTcsNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpwb3N0TWVzc2FnZShjb25zdCBTdHJpbmcmIG1l
c3NhZ2VOYW1lLCBBUEk6Ok9iamVjdCogbWVzc2FnZQogICAgIGVuY29kZXItPmVuY29kZShtZXNz
YWdlTmFtZSk7CiAgICAgZW5jb2Rlci0+ZW5jb2RlKEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VF
bmNvZGVyKG1lc3NhZ2VCb2R5KSk7CiAKLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kTWVzc2FnZShzdGQ6Om1vdmUoZW5jb2RlcikpOworICAg
IFdlYlByb2Nlc3M6OnNoYXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRNZXNz
YWdlKFdURjo6bW92ZShlbmNvZGVyKSk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnBvc3RT
eW5jaHJvbm91c01lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgQVBJOjpPYmplY3Qq
IG1lc3NhZ2VCb2R5LCBSZWZQdHI8QVBJOjpPYmplY3Q+JiByZXR1cm5EYXRhKQpAQCAtMTI5LDcg
KzEyOSw3IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnBvc3RTeW5jaHJvbm91c01lc3NhZ2UoY29u
c3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgQVBJOjpPYmplCiAgICAgZW5jb2Rlci0+ZW5jb2RlKG1l
c3NhZ2VOYW1lKTsKICAgICBlbmNvZGVyLT5lbmNvZGUoSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2Fn
ZUVuY29kZXIobWVzc2FnZUJvZHkpKTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3Nh
Z2VEZWNvZGVyPiByZXBseURlY29kZXIgPSBXZWJQcm9jZXNzOjpzaGFyZWQoKS5wYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luY01lc3NhZ2Uoc3luY1JlcXVlc3RJRCwgc3RkOjptb3Zl
KGVuY29kZXIpLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzOjptYXgoKSk7CisgICAgc3RkOjp1
bmlxdWVfcHRyPElQQzo6TWVzc2FnZURlY29kZXI+IHJlcGx5RGVjb2RlciA9IFdlYlByb2Nlc3M6
OnNoYXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jTWVzc2FnZShzeW5j
UmVxdWVzdElELCBXVEY6Om1vdmUoZW5jb2RlciksIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6
Om1heCgpKTsKICAgICBpZiAoIXJlcGx5RGVjb2RlciB8fCAhcmVwbHlEZWNvZGVyLT5kZWNvZGUo
bWVzc2FnZURlY29kZXIpKSB7CiAgICAgICAgIHJldHVybkRhdGEgPSBudWxscHRyOwogICAgICAg
ICByZXR1cm47CkBAIC00MTUsNyArNDE1LDcgQEAgUGFzc1JlZlB0cjxBUEk6OkFycmF5PiBJbmpl
Y3RlZEJ1bmRsZTo6b3JpZ2luc1dpdGhBcHBsaWNhdGlvbkNhY2hlKCkKICAgICBmb3IgKGNvbnN0
IGF1dG8mIG9yaWdpbiA6IG9yaWdpbnMpCiAgICAgICAgIG9yaWdpbklkZW50aWZpZXJzLnVuY2hl
Y2tlZEFwcGVuZChBUEk6OlN0cmluZzo6Y3JlYXRlKG9yaWdpbi0+ZGF0YWJhc2VJZGVudGlmaWVy
KCkpKTsKIAotICAgIHJldHVybiBBUEk6OkFycmF5OjpjcmVhdGUoc3RkOjptb3ZlKG9yaWdpbklk
ZW50aWZpZXJzKSk7CisgICAgcmV0dXJuIEFQSTo6QXJyYXk6OmNyZWF0ZShXVEY6Om1vdmUob3Jp
Z2luSWRlbnRpZmllcnMpKTsKIH0KIAogaW50IEluamVjdGVkQnVuZGxlOjpudW1iZXJPZlBhZ2Vz
KFdlYkZyYW1lKiBmcmFtZSwgZG91YmxlIHBhZ2VXaWR0aEluUGl4ZWxzLCBkb3VibGUgcGFnZUhl
aWdodEluUGl4ZWxzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3
YXJkTGlzdEl0ZW0uY3BwCmluZGV4IDc5YzU0NWIuLjI4OTE5MzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVCYWNrRm9y
d2FyZExpc3RJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAKQEAgLTQwLDcgKzQw
LDcgQEAgUGFzc1JlZlB0cjxBUEk6OkFycmF5PiBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlz
dEl0ZW06OmNoaWxkcmVuKCkgY29uc3QKICAgICBmb3IgKGNvbnN0IGF1dG8mIGNoaWxkIDogbV9p
dGVtLT5jaGlsZHJlbigpKQogICAgICAgICBjaGlsZHJlbi51bmNoZWNrZWRBcHBlbmQoSW5qZWN0
ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtOjpjcmVhdGUoY2hpbGQpKTsKIAotICAgIHJldHVy
biBBUEk6OkFycmF5OjpjcmVhdGUoc3RkOjptb3ZlKGNoaWxkcmVuKSk7CisgICAgcmV0dXJuIEFQ
STo6QXJyYXk6OmNyZWF0ZShXVEY6Om1vdmUoY2hpbGRyZW4pKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4
dE1lbnVDbGllbnQuY3BwCmluZGV4IDM2MjMzODcuLjRkZWRiMzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlQ29u
dGV4dE1lbnVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwCkBAIC01Myw3
ICs1Myw3IEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQ6OmdldEN1
c3RvbU1lbnVGcm9tRGVmYXVsdEl0ZW1zKFdlYlBhZ2UqCiAKICAgICBXS0FycmF5UmVmIG5ld01l
bnVXSyA9IDA7CiAgICAgV0tUeXBlUmVmIHVzZXJEYXRhVG9QYXNzID0gMDsKLSAgICBtX2NsaWVu
dC5nZXRDb250ZXh0TWVudUZyb21EZWZhdWx0TWVudSh0b0FQSShwYWdlKSwgdG9BUEkoaGl0VGVz
dFJlc3VsdCksIHRvQVBJKEFQSTo6QXJyYXk6OmNyZWF0ZShzdGQ6Om1vdmUoZGVmYXVsdE1lbnVJ
dGVtcykpLmdldCgpKSwgJm5ld01lbnVXSywgJnVzZXJEYXRhVG9QYXNzLCBtX2NsaWVudC5iYXNl
LmNsaWVudEluZm8pOworICAgIG1fY2xpZW50LmdldENvbnRleHRNZW51RnJvbURlZmF1bHRNZW51
KHRvQVBJKHBhZ2UpLCB0b0FQSShoaXRUZXN0UmVzdWx0KSwgdG9BUEkoQVBJOjpBcnJheTo6Y3Jl
YXRlKFdURjo6bW92ZShkZWZhdWx0TWVudUl0ZW1zKSkuZ2V0KCkpLCAmbmV3TWVudVdLLCAmdXNl
ckRhdGFUb1Bhc3MsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAgICAgUmVmUHRyPEFQSTo6
QXJyYXk+IGFycmF5ID0gYWRvcHRSZWYodG9JbXBsKG5ld01lbnVXSykpOwogICAgIHVzZXJEYXRh
ID0gYWRvcHRSZWYodG9JbXBsKHVzZXJEYXRhVG9QYXNzKSk7CiAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZUZvcm1DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNwcAppbmRleCAwYzgzNDdlLi42MmMyZjk0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHAKQEAg
LTEzNCw3ICsxMzQsNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6OndpbGxT
ZW5kU3VibWl0RXZlbnQoV2ViUGFnZSogcGFnZSwgSFRNTEZvcm1FbAogICAgIEltbXV0YWJsZURp
Y3Rpb25hcnk6Ok1hcFR5cGUgbWFwOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFsdWVz
LnNpemUoKTsgKytpKQogICAgICAgICBtYXAuc2V0KHZhbHVlc1tpXS5maXJzdCwgQVBJOjpTdHJp
bmc6OmNyZWF0ZSh2YWx1ZXNbaV0uc2Vjb25kKSk7Ci0gICAgYXV0byB0ZXh0RmllbGRzTWFwID0g
SW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKHN0ZDo6bW92ZShtYXApKTsKKyAgICBhdXRvIHRl
eHRGaWVsZHNNYXAgPSBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1hcCkp
OwogCiAgICAgbV9jbGllbnQud2lsbFNlbmRTdWJtaXRFdmVudCh0b0FQSShwYWdlKSwgdG9BUEko
bm9kZUhhbmRsZS5nZXQoKSksIHRvQVBJKGZyYW1lKSwgdG9BUEkoc291cmNlRnJhbWUpLCB0b0FQ
SSh0ZXh0RmllbGRzTWFwLmdldCgpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KQEAg
LTE0OSw3ICsxNDksNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6OndpbGxT
dWJtaXRGb3JtKFdlYlBhZ2UqIHBhZ2UsIEhUTUxGb3JtRWxlbWVudAogICAgIEltbXV0YWJsZURp
Y3Rpb25hcnk6Ok1hcFR5cGUgbWFwOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFsdWVz
LnNpemUoKTsgKytpKQogICAgICAgICBtYXAuc2V0KHZhbHVlc1tpXS5maXJzdCwgQVBJOjpTdHJp
bmc6OmNyZWF0ZSh2YWx1ZXNbaV0uc2Vjb25kKSk7Ci0gICAgYXV0byB0ZXh0RmllbGRzTWFwID0g
SW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKHN0ZDo6bW92ZShtYXApKTsKKyAgICBhdXRvIHRl
eHRGaWVsZHNNYXAgPSBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1hcCkp
OwogCiAgICAgV0tUeXBlUmVmIHVzZXJEYXRhVG9QYXNzID0gMDsKICAgICBtX2NsaWVudC53aWxs
U3VibWl0Rm9ybSh0b0FQSShwYWdlKSwgdG9BUEkobm9kZUhhbmRsZS5nZXQoKSksIHRvQVBJKGZy
YW1lKSwgdG9BUEkoc291cmNlRnJhbWUpLCB0b0FQSSh0ZXh0RmllbGRzTWFwLmdldCgpKSwgJnVz
ZXJEYXRhVG9QYXNzLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwpAQCAtMTY3LDcgKzE2Nyw3
IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNv
bnRyb2xzKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0CiAgICAgZm9yIChjb25zdCBhdXRvJiBlbGVtZW50
IDogZWxlbWVudHMpCiAgICAgICAgIGVsZW1lbnRIYW5kbGVzLnVuY2hlY2tlZEFwcGVuZChJbmpl
Y3RlZEJ1bmRsZU5vZGVIYW5kbGU6OmdldE9yQ3JlYXRlKGVsZW1lbnQuZ2V0KCkpKTsKIAotICAg
IG1fY2xpZW50LmRpZEFzc29jaWF0ZUZvcm1Db250cm9scyh0b0FQSShwYWdlKSwgdG9BUEkoQVBJ
OjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShlbGVtZW50SGFuZGxlcykpLmdldCgpKSwgbV9jbGll
bnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICBtX2NsaWVudC5kaWRBc3NvY2lhdGVGb3JtQ29udHJv
bHModG9BUEkocGFnZSksIHRvQVBJKEFQSTo6QXJyYXk6OmNyZWF0ZShXVEY6Om1vdmUoZWxlbWVu
dEhhbmRsZXMpKS5nZXQoKSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAKIGJvb2wg
SW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6c2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlcyhX
ZWJQYWdlKiBwYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAKaW5kZXgg
NGFjMWY0OC4uMzI4NjQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3Bw
CkBAIC0yOTksNyArMjk5LDcgQEAgc3RhdGljIE5QRXJyb3IgTlBOX1Bvc3RVUkwoTlBQIG5wcCwg
Y29uc3QgY2hhciogdXJsLCBjb25zdCBjaGFyKiB0YXJnZXQsIHVpbnQzMl8KICAgICAgICAgcmV0
dXJuIGVycm9yOwogCiAgICAgUmVmUHRyPE5ldHNjYXBlUGx1Z2luPiBwbHVnaW4gPSBOZXRzY2Fw
ZVBsdWdpbjo6ZnJvbU5QUChucHApOwotICAgIHBsdWdpbi0+bG9hZFVSTCgiUE9TVCIsIG1ha2VV
UkxTdHJpbmcodXJsKSwgdGFyZ2V0LCBzdGQ6Om1vdmUoaGVhZGVyRmllbGRzKSwgcG9zdERhdGEs
IGZhbHNlLCAwKTsKKyAgICBwbHVnaW4tPmxvYWRVUkwoIlBPU1QiLCBtYWtlVVJMU3RyaW5nKHVy
bCksIHRhcmdldCwgV1RGOjptb3ZlKGhlYWRlckZpZWxkcyksIHBvc3REYXRhLCBmYWxzZSwgMCk7
CiAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNw
cAppbmRleCA4NmQzMmExLi5kYWFiMjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5jcHAKQEAg
LTM2Myw3ICszNjMsNyBAQCB1aW50MzJfdCBOZXRzY2FwZVBsdWdpbjo6c2NoZWR1bGVUaW1lcih1
bnNpZ25lZCBpbnRlcnZhbCwgYm9vbCByZXBlYXQsIHZvaWQgKCp0aQogICAgIAogICAgIC8vIEZJ
WE1FOiBCYXNlZCBvbiB0aGUgcGx1Zy1pbiB2aXNpYmlsaXR5LCBmaWd1cmUgb3V0IGlmIHdlIHNo
b3VsZCB0aHJvdHRsZSB0aGUgdGltZXIsIG9yIGlmIHdlIHNob3VsZCBzdGFydCBpdCBhdCBhbGwu
CiAgICAgdGltZXItPnN0YXJ0KCk7Ci0gICAgbV90aW1lcnMuc2V0KHRpbWVySUQsIHN0ZDo6bW92
ZSh0aW1lcikpOworICAgIG1fdGltZXJzLnNldCh0aW1lcklELCBXVEY6Om1vdmUodGltZXIpKTsK
IAogICAgIHJldHVybiB0aW1lcklEOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5N
YWMubW0KaW5kZXggM2VmNGQzNC4uZmIzZDY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBl
UGx1Z2luTWFjLm1tCkBAIC05OTQsNyArOTk0LDcgQEAgc3RhdGljIGJvb2wgY29udmVydFN0cmlu
Z1RvS2V5Q29kZXMoU3RyaW5nVmlldyBzdHJpbmcsIFNjcmlwdENvZGUgc2NyaXB0Q29kZSwgVmUK
ICAgICBpZiAoc3RhdHVzICE9IG5vRXJyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBr
ZXlDb2RlcyA9IHN0ZDo6bW92ZShvdXRwdXREYXRhKTsKKyAgICBrZXlDb2RlcyA9IFdURjo6bW92
ZShvdXRwdXREYXRhKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL2NmL1dlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyQ0ZOZXQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNh
Y2hlL2NmL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyQ0ZOZXQuY3BwCmluZGV4IDdjNzg4ZjkuLjU4
OGU0ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNo
ZS9jZi9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlckNGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUvY2YvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJDRk5l
dC5jcHAKQEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcjo6Y2ZV
UkxDYWNoZUhvc3ROYW1lc1dpdGhDYWxsYmFjayhDYWNoZUNhbGxiYWNrIGNhbGwKICAgICAgICAg
ICAgIENGQXJyYXlBcHBlbmRBcnJheShob3N0TmFtZXMuZ2V0KCksIHBhcnRpdGlvbk5hbWVzLCBD
RlJhbmdlTWFrZSgwLCBDRkFycmF5R2V0Q291bnQocGFydGl0aW9uTmFtZXMpKSk7CiAgICAgICAg
ICAgICBDRlJlbGVhc2UocGFydGl0aW9uTmFtZXMpOwogICAgICAgICB9Ci0gICAgICAgIGNhbGxi
YWNrKHN0ZDo6bW92ZShob3N0TmFtZXMpKTsKKyAgICAgICAgY2FsbGJhY2soV1RGOjptb3ZlKGhv
c3ROYW1lcykpOwogICAgIH0pOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252
ZXJzaW9uLmNwcAppbmRleCBiNTkwZDI2Li5iMDk0MDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vzc2lvblN0
YXRlQ29udmVyc2lvbi5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgc3RhdGljIEhUVFBCb2R5IHRvSFRU
UEJvZHkoY29uc3QgRm9ybURhdGEmIGZvcm1EYXRhKQogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KIAotICAgICAgICBodHRwQm9keS5lbGVtZW50cy5hcHBlbmQoc3RkOjptb3ZlKGVsZW1l
bnQpKTsKKyAgICAgICAgaHR0cEJvZHkuZWxlbWVudHMuYXBwZW5kKFdURjo6bW92ZShlbGVtZW50
KSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGh0dHBCb2R5OwpAQCAtOTEsNyArOTEsNyBAQCBzdGF0
aWMgRnJhbWVTdGF0ZSB0b0ZyYW1lU3RhdGUoY29uc3QgSGlzdG9yeUl0ZW0mIGhpc3RvcnlJdGVt
KQogICAgICAgICBIVFRQQm9keSBodHRwQm9keSA9IHRvSFRUUEJvZHkoKmZvcm1EYXRhKTsKICAg
ICAgICAgaHR0cEJvZHkuY29udGVudFR5cGUgPSBoaXN0b3J5SXRlbS5mb3JtQ29udGVudFR5cGUo
KTsKIAotICAgICAgICBmcmFtZVN0YXRlLmh0dHBCb2R5ID0gc3RkOjptb3ZlKGh0dHBCb2R5KTsK
KyAgICAgICAgZnJhbWVTdGF0ZS5odHRwQm9keSA9IFdURjo6bW92ZShodHRwQm9keSk7CiAgICAg
fQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtMTA0LDcgKzEwNCw3IEBAIHN0YXRpYyBGcmFtZVN0
YXRlIHRvRnJhbWVTdGF0ZShjb25zdCBIaXN0b3J5SXRlbSYgaGlzdG9yeUl0ZW0pCiAKICAgICBm
b3IgKGF1dG8mIGNoaWxkSGlzdG9yeUl0ZW0gOiBoaXN0b3J5SXRlbS5jaGlsZHJlbigpKSB7CiAg
ICAgICAgIEZyYW1lU3RhdGUgY2hpbGRGcmFtZVN0YXRlID0gdG9GcmFtZVN0YXRlKCpjaGlsZEhp
c3RvcnlJdGVtKTsKLSAgICAgICAgZnJhbWVTdGF0ZS5jaGlsZHJlbi5hcHBlbmQoc3RkOjptb3Zl
KGNoaWxkRnJhbWVTdGF0ZSkpOworICAgICAgICBmcmFtZVN0YXRlLmNoaWxkcmVuLmFwcGVuZChX
VEY6Om1vdmUoY2hpbGRGcmFtZVN0YXRlKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGZyYW1lU3Rh
dGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDdiODEyOGEuLmE0MzJl
MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC02NTcsNyArNjU3LDcg
QEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNw
b25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnMKIAogICAgIGJvb2wgY2FuU2hvd01JTUVUeXBlID0g
d2ViUGFnZS0+Y2FuU2hvd01JTUVUeXBlKHJlc3BvbnNlLm1pbWVUeXBlKCkpOwogCi0gICAgdWlu
dDY0X3QgbGlzdGVuZXJJRCA9IG1fZnJhbWUtPnNldFVwUG9saWN5TGlzdGVuZXIoc3RkOjptb3Zl
KGZ1bmN0aW9uKSk7CisgICAgdWludDY0X3QgbGlzdGVuZXJJRCA9IG1fZnJhbWUtPnNldFVwUG9s
aWN5TGlzdGVuZXIoV1RGOjptb3ZlKGZ1bmN0aW9uKSk7CiAgICAgYm9vbCByZWNlaXZlZFBvbGlj
eUFjdGlvbjsKICAgICB1aW50NjRfdCBwb2xpY3lBY3Rpb247CiAgICAgdWludDY0X3QgZG93bmxv
YWRJRDsKQEAgLTY5MSw3ICs2OTEsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZpZ2F0aQogICAgIH0K
IAogCi0gICAgdWludDY0X3QgbGlzdGVuZXJJRCA9IG1fZnJhbWUtPnNldFVwUG9saWN5TGlzdGVu
ZXIoc3RkOjptb3ZlKGZ1bmN0aW9uKSk7CisgICAgdWludDY0X3QgbGlzdGVuZXJJRCA9IG1fZnJh
bWUtPnNldFVwUG9saWN5TGlzdGVuZXIoV1RGOjptb3ZlKGZ1bmN0aW9uKSk7CiAKICAgICBOYXZp
Z2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YTsKICAgICBuYXZpZ2F0aW9uQWN0
aW9uRGF0YS5uYXZpZ2F0aW9uVHlwZSA9IGFjdGlvbi0+bmF2aWdhdGlvblR5cGUoKTsKQEAgLTcy
Nyw3ICs3MjcsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdAogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIAotICAgIHVpbnQ2NF90IGxpc3RlbmVySUQgPSBtX2ZyYW1lLT5zZXRVcFBvbGlj
eUxpc3RlbmVyKHN0ZDo6bW92ZShmdW5jdGlvbikpOworICAgIHVpbnQ2NF90IGxpc3RlbmVySUQg
PSBtX2ZyYW1lLT5zZXRVcFBvbGljeUxpc3RlbmVyKFdURjo6bW92ZShmdW5jdGlvbikpOwogICAg
IGJvb2wgcmVjZWl2ZWRQb2xpY3lBY3Rpb247CiAgICAgdWludDY0X3QgbmV3TmF2aWdhdGlvbklE
OwogICAgIHVpbnQ2NF90IHBvbGljeUFjdGlvbjsKQEAgLTgzMCw3ICs4MzAsNyBAQCB2b2lkIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKFBhc3NSZWZQdHI8Rm9y
bVN0YXRlPiBwcnBGb3JtUwogICAgIHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlRm9ybUNsaWVudCgp
LndpbGxTdWJtaXRGb3JtKHdlYlBhZ2UsIGZvcm0sIG1fZnJhbWUsIHNvdXJjZUZyYW1lLCB2YWx1
ZXMsIHVzZXJEYXRhKTsKIAogCi0gICAgdWludDY0X3QgbGlzdGVuZXJJRCA9IG1fZnJhbWUtPnNl
dFVwUG9saWN5TGlzdGVuZXIoc3RkOjptb3ZlKGZ1bmN0aW9uKSk7CisgICAgdWludDY0X3QgbGlz
dGVuZXJJRCA9IG1fZnJhbWUtPnNldFVwUG9saWN5TGlzdGVuZXIoV1RGOjptb3ZlKGZ1bmN0aW9u
KSk7CiAKICAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OldpbGxTdWJt
aXRGb3JtKG1fZnJhbWUtPmZyYW1lSUQoKSwgc291cmNlRnJhbWUtPmZyYW1lSUQoKSwgdmFsdWVz
LCBsaXN0ZW5lcklELCBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rlcih1c2VyRGF0YS5n
ZXQoKSkpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUGFzdGVib2FyZE92ZXJyaWRlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBhc3RlYm9hcmRPdmVycmlkZXMuY3BwCmluZGV4IDc2
YjAwNGYuLjFhMTMxZjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlBhc3RlYm9hcmRPdmVycmlkZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGFzdGVib2FyZE92ZXJyaWRlcy5jcHAK
QEAgLTQ0LDcgKzQ0LDcgQEAgdm9pZCBXZWJQYXN0ZWJvYXJkT3ZlcnJpZGVzOjphZGRPdmVycmlk
ZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBTdHIKIAogICAgIGlmIChhZGRS
ZXN1bHQuaXNOZXdFbnRyeSkgewogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8SGFzaE1hcDxTdHJp
bmcsIFZlY3Rvcjx1aW50OF90Pj4+IHR5cGVNYXAgPSBzdGQ6Om1ha2VfdW5pcXVlPEhhc2hNYXA8
U3RyaW5nLCBWZWN0b3I8dWludDhfdD4+PigpOwotICAgICAgICBhZGRSZXN1bHQuaXRlcmF0b3It
PnZhbHVlID0gc3RkOjptb3ZlKHR5cGVNYXApOworICAgICAgICBhZGRSZXN1bHQuaXRlcmF0b3It
PnZhbHVlID0gV1RGOjptb3ZlKHR5cGVNYXApOwogICAgIH0KIAogICAgIGFkZFJlc3VsdC5pdGVy
YXRvci0+dmFsdWUtPnNldCh0eXBlLCBkYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVkaXRvckNsaWVudEd0ay5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFZGl0b3JDbGll
bnRHdGsuY3BwCmluZGV4IGJmYmI0NDYuLjQ2OWQ5NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVkaXRvckNsaWVudEd0ay5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRWRp
dG9yQ2xpZW50R3RrLmNwcApAQCAtNTUsNyArNTUsNyBAQCBib29sIFdlYkVkaXRvckNsaWVudDo6
ZXhlY3V0ZVBlbmRpbmdFZGl0b3JDb21tYW5kcyhGcmFtZSogZnJhbWUsIGNvbnN0IFZlY3RvcjxX
VAogICAgICAgICBpZiAoY29tbWFuZC5pc1RleHRJbnNlcnRpb24oKSAmJiAhYWxsb3dUZXh0SW5z
ZXJ0aW9uKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIGNvbW1hbmRzLmFw
cGVuZChzdGQ6Om1vdmUoY29tbWFuZCkpOworICAgICAgICBjb21tYW5kcy5hcHBlbmQoV1RGOjpt
b3ZlKGNvbW1hbmQpKTsKICAgICB9CiAKICAgICBmb3IgKGF1dG8mIGNvbW1hbmQgOiBjb21tYW5k
cykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50
RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnRE
aXNwYXRjaGVyLmNwcAppbmRleCA2NjAyMDM4Li5jOTg2NGZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcApAQCAtMTU2
LDcgKzE1Niw3IEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjpjbGVhclF1ZXVlZFRvdWNoRXZlbnRz
Rm9yUGFnZShjb25zdCBXZWJQYWdlJiB3ZWJQYWdlKQogdm9pZCBFdmVudERpc3BhdGNoZXI6Omdl
dFF1ZXVlZFRvdWNoRXZlbnRzRm9yUGFnZShjb25zdCBXZWJQYWdlJiB3ZWJQYWdlLCBUb3VjaEV2
ZW50UXVldWUmIGRlc3RpbmF0aW9uUXVldWUpCiB7CiAgICAgU3BpbkxvY2tIb2xkZXIgbG9ja2Vy
KCZtX3RvdWNoRXZlbnRzTG9jayk7Ci0gICAgZGVzdGluYXRpb25RdWV1ZSA9IHN0ZDo6bW92ZSht
X3RvdWNoRXZlbnRzLnRha2Uod2ViUGFnZS5wYWdlSUQoKSkpOworICAgIGRlc3RpbmF0aW9uUXVl
dWUgPSBXVEY6Om1vdmUobV90b3VjaEV2ZW50cy50YWtlKHdlYlBhZ2UucGFnZUlEKCkpKTsKIH0K
IAogdm9pZCBFdmVudERpc3BhdGNoZXI6OnRvdWNoRXZlbnQodWludDY0X3QgcGFnZUlELCBjb25z
dCBXZWJLaXQ6OldlYlRvdWNoRXZlbnQmIHRvdWNoRXZlbnQpCkBAIC0xNjUsNyArMTY1LDcgQEAg
dm9pZCBFdmVudERpc3BhdGNoZXI6OnRvdWNoRXZlbnQodWludDY0X3QgcGFnZUlELCBjb25zdCBX
ZWJLaXQ6OldlYlRvdWNoRXZlbnQmIHQKICAgICB7CiAgICAgICAgIFNwaW5Mb2NrSG9sZGVyIGxv
Y2tlcigmbV90b3VjaEV2ZW50c0xvY2spOwogICAgICAgICB1cGRhdGVMaXN0V2FzRW1wdHkgPSBt
X3RvdWNoRXZlbnRzLmlzRW1wdHkoKTsKLSAgICAgICAgYXV0byBhZGRSZXN1bHQgPSBtX3RvdWNo
RXZlbnRzLmFkZChwYWdlSUQsIHN0ZDo6bW92ZShUb3VjaEV2ZW50UXVldWUoKSkpOworICAgICAg
ICBhdXRvIGFkZFJlc3VsdCA9IG1fdG91Y2hFdmVudHMuYWRkKHBhZ2VJRCwgV1RGOjptb3ZlKFRv
dWNoRXZlbnRRdWV1ZSgpKSk7CiAgICAgICAgIGlmIChhZGRSZXN1bHQuaXNOZXdFbnRyeSkKICAg
ICAgICAgICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUuYXBwZW5kKHRvdWNoRXZlbnQpOwog
ICAgICAgICBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9GaW5kQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvRmluZENvbnRyb2xsZXIuY3BwCmluZGV4IGQwYjM4ZWMuLmJiODQ3ZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcApA
QCAtMjQ5LDcgKzI0OSw3IEBAIHZvaWQgRmluZENvbnRyb2xsZXI6OmZpbmRTdHJpbmdNYXRjaGVz
KGNvbnN0IFN0cmluZyYgc3RyaW5nLCBGaW5kT3B0aW9ucyBvcHRpb25zCiAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBtX2ZpbmRNYXRjaGVzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIFZlY3Rv
cjxJbnRSZWN0PiByZWN0czsKICAgICAgICAgbV9maW5kTWF0Y2hlc1tpXS0+dGV4dFJlY3RzKHJl
Y3RzKTsKLSAgICAgICAgbWF0Y2hSZWN0cy5hcHBlbmQoc3RkOjptb3ZlKHJlY3RzKSk7CisgICAg
ICAgIG1hdGNoUmVjdHMuYXBwZW5kKFdURjo6bW92ZShyZWN0cykpOwogICAgIH0KIAogICAgIG1f
d2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRGaW5kU3RyaW5nTWF0Y2hl
cyhzdHJpbmcsIG1hdGNoUmVjdHMsIGluZGV4Rm9yU2VsZWN0aW9uKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xs
ZXIuY3BwCmluZGV4IGVkNmY0YTQuLjRmN2IxOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCkBA
IC0xMDYsNyArMTA2LDcgQEAgdm9pZCBQYWdlT3ZlcmxheUNvbnRyb2xsZXI6Omluc3RhbGxQYWdl
T3ZlcmxheShQYXNzUmVmUHRyPFBhZ2VPdmVybGF5PiBwYWdlT3ZlcmwKICAgICAgICAgYnJlYWs7
CiAgICAgfQogCi0gICAgbV9vdmVybGF5R3JhcGhpY3NMYXllcnMuc2V0KG92ZXJsYXkuZ2V0KCks
IHN0ZDo6bW92ZShsYXllcikpOworICAgIG1fb3ZlcmxheUdyYXBoaWNzTGF5ZXJzLnNldChvdmVy
bGF5LmdldCgpLCBXVEY6Om1vdmUobGF5ZXIpKTsKIAogICAgIHVwZGF0ZUZvcmNlU3luY2hyb25v
dXNTY3JvbGxMYXllclBvc2l0aW9uVXBkYXRlcygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggN2Y2NWNkMC4uZTM0MDdhYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC0x
MzUsNyArMTM1LDcgQEAgUGFzc1JlZlB0cjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZVN1YmZy
YW1lKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgZnJhbWUKIAogUGFzc1JlZlB0cjxXZWJG
cmFtZT4gV2ViRnJhbWU6OmNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGll
bnQ+IGZyYW1lTG9hZGVyQ2xpZW50KQogewotICAgIFJlZlB0cjxXZWJGcmFtZT4gZnJhbWUgPSBh
ZG9wdFJlZihuZXcgV2ViRnJhbWUoc3RkOjptb3ZlKGZyYW1lTG9hZGVyQ2xpZW50KSkpOworICAg
IFJlZlB0cjxXZWJGcmFtZT4gZnJhbWUgPSBhZG9wdFJlZihuZXcgV2ViRnJhbWUoV1RGOjptb3Zl
KGZyYW1lTG9hZGVyQ2xpZW50KSkpOwogCiAgICAgLy8gQWRkIGV4cGxpY3QgcmVmKCkgdGhhdCB3
aWxsIGJlIGJhbGFuY2VkIGluIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUxvYWRlckRlc3Ry
b3llZCgpLgogICAgIGZyYW1lLT5yZWYoKTsKQEAgLTE0OCw3ICsxNDgsNyBAQCBXZWJGcmFtZTo6
V2ViRnJhbWUoc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50PiBmcmFtZUxvYWRl
ckNsaWVudCkKICAgICAsIG1fcG9saWN5TGlzdGVuZXJJRCgwKQogICAgICwgbV9wb2xpY3lGdW5j
dGlvbigwKQogICAgICwgbV9wb2xpY3lEb3dubG9hZElEKDApCi0gICAgLCBtX2ZyYW1lTG9hZGVy
Q2xpZW50KHN0ZDo6bW92ZShmcmFtZUxvYWRlckNsaWVudCkpCisgICAgLCBtX2ZyYW1lTG9hZGVy
Q2xpZW50KFdURjo6bW92ZShmcmFtZUxvYWRlckNsaWVudCkpCiAgICAgLCBtX2xvYWRMaXN0ZW5l
cigwKQogICAgICwgbV9mcmFtZUlEKGdlbmVyYXRlRnJhbWVJRCgpKQogewpAQCAtMjI5LDcgKzIy
OSw3IEBAIHZvaWQgV2ViRnJhbWU6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbih1aW50NjRfdCBs
aXN0ZW5lcklELCBQb2xpY3lBY3Rpb24gYWN0aW9uCiAKICAgICBBU1NFUlQobV9wb2xpY3lGdW5j
dGlvbik7CiAKLSAgICBGcmFtZVBvbGljeUZ1bmN0aW9uIGZ1bmN0aW9uID0gc3RkOjptb3ZlKG1f
cG9saWN5RnVuY3Rpb24pOworICAgIEZyYW1lUG9saWN5RnVuY3Rpb24gZnVuY3Rpb24gPSBXVEY6
Om1vdmUobV9wb2xpY3lGdW5jdGlvbik7CiAKICAgICBpbnZhbGlkYXRlUG9saWN5TGlzdGVuZXIo
KTsKIApAQCAtNDU3LDcgKzQ1Nyw3IEBAIFBhc3NSZWZQdHI8QVBJOjpBcnJheT4gV2ViRnJhbWU6
OmNoaWxkRnJhbWVzKCkKICAgICAgICAgdmVjdG9yLnVuY2hlY2tlZEFwcGVuZCh3ZWJGcmFtZSk7
CiAgICAgfQogCi0gICAgcmV0dXJuIEFQSTo6QXJyYXk6OmNyZWF0ZShzdGQ6Om1vdmUodmVjdG9y
KSk7CisgICAgcmV0dXJuIEFQSTo6QXJyYXk6OmNyZWF0ZShXVEY6Om1vdmUodmVjdG9yKSk7CiB9
CiAKIFN0cmluZyBXZWJGcmFtZTo6bGF5ZXJUcmVlQXNUZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKaW5kZXggYWYy
NmQwMC4uODY0YzA4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkluc3BlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkluc3BlY3Rvci5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgV2ViUGFnZSogV2ViSW5zcGVj
dG9yOjpjcmVhdGVJbnNwZWN0b3JQYWdlKCkKIAogICAgIGF1dG8gZnJvbnRlbmRDbGllbnQgPSBz
dGQ6Om1ha2VfdW5pcXVlPFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50PihtX3BhZ2UsIG1faW5z
cGVjdG9yUGFnZSk7CiAgICAgbV9mcm9udGVuZENsaWVudCA9IGZyb250ZW5kQ2xpZW50LmdldCgp
OwotICAgIG1faW5zcGVjdG9yUGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigp
LnNldEluc3BlY3RvckZyb250ZW5kQ2xpZW50KHN0ZDo6bW92ZShmcm9udGVuZENsaWVudCkpOwor
ICAgIG1faW5zcGVjdG9yUGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLnNl
dEluc3BlY3RvckZyb250ZW5kQ2xpZW50KFdURjo6bW92ZShmcm9udGVuZENsaWVudCkpOwogICAg
IHJldHVybiBtX2luc3BlY3RvclBhZ2U7CiB9CiAKQEAgLTEyMiw3ICsxMjIsNyBAQCBXZWJQYWdl
KiBXZWJJbnNwZWN0b3I6OmNyZWF0ZUluc3BlY3RvclBhZ2VGb3JUZXN0KCkKIAogICAgIGF1dG8g
ZnJvbnRlbmRDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkluc3BlY3RvckZyb250ZW5kQ2xp
ZW50PihtX3BhZ2UsIG1faW5zcGVjdG9yUGFnZSk7CiAgICAgbV9mcm9udGVuZENsaWVudCA9IGZy
b250ZW5kQ2xpZW50LmdldCgpOwotICAgIG1faW5zcGVjdG9yUGFnZS0+Y29yZVBhZ2UoKS0+aW5z
cGVjdG9yQ29udHJvbGxlcigpLnNldEluc3BlY3RvckZyb250ZW5kQ2xpZW50KHN0ZDo6bW92ZShm
cm9udGVuZENsaWVudCkpOworICAgIG1faW5zcGVjdG9yUGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVj
dG9yQ29udHJvbGxlcigpLnNldEluc3BlY3RvckZyb250ZW5kQ2xpZW50KFdURjo6bW92ZShmcm9u
dGVuZENsaWVudCkpOwogICAgIHJldHVybiBtX2luc3BlY3RvclBhZ2U7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA5Y2I3MzkzLi5l
NWY3MWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCkBAIC01NjEsNyArNTYxLDcgQEAgdm9pZCBXZWJQYWdlOjpzZXRJbmplY3RlZEJ1bmRsZUZv
cm1DbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkYKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIG1fZm9ybUNsaWVudCA9IHN0ZDo6bW92ZShmb3JtQ2xpZW50
KTsKKyAgICBtX2Zvcm1DbGllbnQgPSBXVEY6Om1vdmUoZm9ybUNsaWVudCk7CiB9CiAKIHZvaWQg
V2ViUGFnZTo6aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlTG9hZGVyQ2xpZW50KFdLQnVuZGxlUGFn
ZUxvYWRlckNsaWVudEJhc2UqIGNsaWVudCkKQEAgLTYwMCw3ICs2MDAsNyBAQCB2b2lkIFdlYlBh
Z2U6OnNldEluamVjdGVkQnVuZGxlVUlDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6SW5qZWN0
ZWRCdW5kbGU6OlBhZwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV91aUNsaWVudCA9
IHN0ZDo6bW92ZSh1aUNsaWVudCk7CisgICAgbV91aUNsaWVudCA9IFdURjo6bW92ZSh1aUNsaWVu
dCk7CiB9CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCkBAIC03OTcsNyArNzk3LDcgQEAg
UGFzc1JlZlB0cjxBUEk6OkFycmF5PiBXZWJQYWdlOjp0cmFja2VkUmVwYWludFJlY3RzKCkKICAg
ICBmb3IgKGNvbnN0IGF1dG8mIHJlcGFpbnRSZWN0IDogdmlldy0+dHJhY2tlZFJlcGFpbnRSZWN0
cygpKQogICAgICAgICByZXBhaW50UmVjdHMudW5jaGVja2VkQXBwZW5kKEFQSTo6UmVjdDo6Y3Jl
YXRlKHRvQVBJKHJlcGFpbnRSZWN0KSkpOwogCi0gICAgcmV0dXJuIEFQSTo6QXJyYXk6OmNyZWF0
ZShzdGQ6Om1vdmUocmVwYWludFJlY3RzKSk7CisgICAgcmV0dXJuIEFQSTo6QXJyYXk6OmNyZWF0
ZShXVEY6Om1vdmUocmVwYWludFJlY3RzKSk7CiB9CiAKIFBsdWdpblZpZXcqIFdlYlBhZ2U6OmZv
Y3VzZWRQbHVnaW5WaWV3Rm9yRnJhbWUoRnJhbWUmIGZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5jcHAK
aW5kZXggOTZiZDhiOC4uMWEyNmRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuY3BwCkBAIC0zNzEsNyAr
MzcxLDcgQEAgdm9pZCBMYXllclRyZWVIb3N0R3RrOjpjcmVhdGVQYWdlT3ZlcmxheUxheWVyKFBh
Z2VPdmVybGF5KiBwYWdlT3ZlcmxheSkKICAgICBsYXllci0+c2V0U2hvd1JlcGFpbnRDb3VudGVy
KG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5zaG93UmVwYWludENvdW50ZXIoKSk7
CiAKICAgICBtX3Jvb3RMYXllci0+YWRkQ2hpbGQobGF5ZXIuZ2V0KCkpOwotICAgIG1fcGFnZU92
ZXJsYXlMYXllcnMuYWRkKHBhZ2VPdmVybGF5LCBzdGQ6Om1vdmUobGF5ZXIpKTsKKyAgICBtX3Bh
Z2VPdmVybGF5TGF5ZXJzLmFkZChwYWdlT3ZlcmxheSwgV1RGOjptb3ZlKGxheWVyKSk7CiB9CiAK
IHZvaWQgTGF5ZXJUcmVlSG9zdEd0azo6ZGVzdHJveVBhZ2VPdmVybGF5TGF5ZXIoUGFnZU92ZXJs
YXkqIHBhZ2VPdmVybGF5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDY5M2Y2ZDAuLmNiNTI2NmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAg
LTI1MjcsNyArMjUyNyw3IEBAIHZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdB
bmRTdGFydERyYXdpbmdUb1BERih1aW50NjRfdCBmcmFtZUlELCBjb25zCiAgICAgZG91YmxlIHRv
dGFsU2NhbGVGYWN0b3IgPSAxOwogICAgIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nSW1wbChmcmFt
ZUlELCBwcmludEluZm8sIHBhZ2VSZWN0cywgdG90YWxTY2FsZUZhY3Rvcik7CiAgICAgc3RkOjpz
aXplX3QgcGFnZUNvdW50ID0gcGFnZVJlY3RzLnNpemUoKTsKLSAgICByZXBseS0+c2VuZChzdGQ6
Om1vdmUocGFnZVJlY3RzKSwgdG90YWxTY2FsZUZhY3Rvcik7CisgICAgcmVwbHktPnNlbmQoV1RG
Ojptb3ZlKHBhZ2VSZWN0cyksIHRvdGFsU2NhbGVGYWN0b3IpOwogCiAgICAgUmV0YWluUHRyPENG
TXV0YWJsZURhdGFSZWY+IHBkZlBhZ2VEYXRhOwogICAgIGRyYXdQYWdlc1RvUERGSW1wbChmcmFt
ZUlELCBwcmludEluZm8sIGZpcnN0UGFnZSwgcGFnZUNvdW50IC0gZmlyc3RQYWdlLCBwZGZQYWdl
RGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0KaW5kZXggYzY4OWVlYS4u
Y2UzYTNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbQpAQCAtNDAxLDcg
KzQwMSw3IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0VGltaW5nRnVuY3Rp
b24oY29uc3QgVGltaW5nRnVuY3Rpb24qIHZhbHVlLCBiCiAgICAgVmVjdG9yPFJlZlB0cjxUaW1p
bmdGdW5jdGlvbj4+IHRpbWluZ0Z1bmN0aW9uczsKICAgICB0aW1pbmdGdW5jdGlvbnMuYXBwZW5k
KHZhbHVlLT5jbG9uZSgpKTsKIAotICAgIG1fcHJvcGVydGllcy50aW1pbmdGdW5jdGlvbnMgPSBz
dGQ6Om1vdmUodGltaW5nRnVuY3Rpb25zKTsKKyAgICBtX3Byb3BlcnRpZXMudGltaW5nRnVuY3Rp
b25zID0gV1RGOjptb3ZlKHRpbWluZ0Z1bmN0aW9ucyk7CiAgICAgbV9wcm9wZXJ0aWVzLnJldmVy
c2VUaW1pbmdGdW5jdGlvbnMgPSByZXZlcnNlOwogfQogCkBAIC01NjksNyArNTY5LDcgQEAgdm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPGZsb2F0
PiYgdmFsdWVzKQogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFsdWVzLnNpemUoKTsgKytp
KQogICAgICAgICBrZXlmcmFtZXMudW5jaGVja2VkQXBwZW5kKEtleWZyYW1lVmFsdWUodmFsdWVz
W2ldKSk7CiAgICAgCi0gICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlcyA9IHN0ZDo6bW92ZShrZXlm
cmFtZXMpOworICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXMgPSBXVEY6Om1vdmUoa2V5ZnJhbWVz
KTsKIH0KIAogdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRWYWx1ZXMoY29uc3Qg
VmVjdG9yPFRyYW5zZm9ybWF0aW9uTWF0cml4PiYgdmFsdWVzKQpAQCAtNTgzLDcgKzU4Myw3IEBA
IHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxU
cmFuc2Zvcm1hdGlvbk1hdHJpeD4mIHZhCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2YWx1
ZXMuc2l6ZSgpOyArK2kpCiAgICAgICAgIGtleWZyYW1lcy51bmNoZWNrZWRBcHBlbmQoS2V5ZnJh
bWVWYWx1ZSh2YWx1ZXNbaV0pKTsKICAgICAKLSAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVzID0g
c3RkOjptb3ZlKGtleWZyYW1lcyk7CisgICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlcyA9IFdURjo6
bW92ZShrZXlmcmFtZXMpOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNl
dFZhbHVlcyhjb25zdCBWZWN0b3I8RmxvYXRQb2ludDNEPiYgdmFsdWVzKQpAQCAtNTk3LDcgKzU5
Nyw3IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0VmFsdWVzKGNvbnN0IFZl
Y3RvcjxGbG9hdFBvaW50M0Q+JiB2YWx1ZXMpCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2
YWx1ZXMuc2l6ZSgpOyArK2kpCiAgICAgICAgIGtleWZyYW1lcy51bmNoZWNrZWRBcHBlbmQoS2V5
ZnJhbWVWYWx1ZSh2YWx1ZXNbaV0pKTsKICAgICAKLSAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVz
ID0gc3RkOjptb3ZlKGtleWZyYW1lcyk7CisgICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlcyA9IFdU
Rjo6bW92ZShrZXlmcmFtZXMpOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6
OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8Q29sb3I+JiB2YWx1ZXMpCkBAIC02MTEsNyArNjExLDcg
QEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9y
PENvbG9yPiYgdmFsdWVzKQogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFsdWVzLnNpemUo
KTsgKytpKQogICAgICAgICBrZXlmcmFtZXMudW5jaGVja2VkQXBwZW5kKEtleWZyYW1lVmFsdWUo
dmFsdWVzW2ldKSk7CiAgICAgCi0gICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlcyA9IHN0ZDo6bW92
ZShrZXlmcmFtZXMpOworICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXMgPSBXVEY6Om1vdmUoa2V5
ZnJhbWVzKTsKIH0KIAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKQEAgLTYyOCw3ICs2MjgsNyBA
QCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8
UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4+JgogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFs
dWVzLnNpemUoKTsgKytpKQogICAgICAgICBrZXlmcmFtZXMudW5jaGVja2VkQXBwZW5kKEtleWZy
YW1lVmFsdWUodmFsdWVzW2ldKSk7CiAgICAgCi0gICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlcyA9
IHN0ZDo6bW92ZShrZXlmcmFtZXMpOworICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXMgPSBXVEY6
Om1vdmUoa2V5ZnJhbWVzKTsKIH0KICNlbmRpZgogCkBAIC02NTcsNyArNjU3LDcgQEAgdm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVjdG9y
PGNvbnN0IFRpbWluZ0Z1bmMKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZhbHVlcy5zaXpl
KCk7ICsraSkKICAgICAgICAgdGltaW5nRnVuY3Rpb25zLnVuY2hlY2tlZEFwcGVuZCh2YWx1ZXNb
aV0tPmNsb25lKCkpOwogICAgIAotICAgIG1fcHJvcGVydGllcy50aW1pbmdGdW5jdGlvbnMgPSBz
dGQ6Om1vdmUodGltaW5nRnVuY3Rpb25zKTsKKyAgICBtX3Byb3BlcnRpZXMudGltaW5nRnVuY3Rp
b25zID0gV1RGOjptb3ZlKHRpbWluZ0Z1bmN0aW9ucyk7CiAgICAgbV9wcm9wZXJ0aWVzLnJldmVy
c2VUaW1pbmdGdW5jdGlvbnMgPSByZXZlcnNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0gYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRl
eHQubW0KaW5kZXggNjBjZmNmYy4uOTg4ZmMzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4
dC5tbQpAQCAtMTA5LDggKzEwOSw4IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6YnVp
bGRUcmFuc2FjdGlvbihSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYgdHJhbnNhCiAgICAgcm9v
dExheWVyUmVtb3RlLnJlY3Vyc2l2ZUJ1aWxkVHJhbnNhY3Rpb24oKnRoaXMsIHRyYW5zYWN0aW9u
KTsKICAgICBtX2N1cnJlbnRUcmFuc2FjdGlvbiA9IG51bGxwdHI7CiAKLSAgICB0cmFuc2FjdGlv
bi5zZXRDcmVhdGVkTGF5ZXJzKHN0ZDo6bW92ZShtX2NyZWF0ZWRMYXllcnMpKTsKLSAgICB0cmFu
c2FjdGlvbi5zZXREZXN0cm95ZWRMYXllcklEcyhzdGQ6Om1vdmUobV9kZXN0cm95ZWRMYXllcnMp
KTsKKyAgICB0cmFuc2FjdGlvbi5zZXRDcmVhdGVkTGF5ZXJzKFdURjo6bW92ZShtX2NyZWF0ZWRM
YXllcnMpKTsKKyAgICB0cmFuc2FjdGlvbi5zZXREZXN0cm95ZWRMYXllcklEcyhXVEY6Om1vdmUo
bV9kZXN0cm95ZWRMYXllcnMpKTsKIH0KIAogdm9pZCBSZW1vdGVMYXllclRyZWVDb250ZXh0Ojps
YXllclByb3BlcnR5Q2hhbmdlZFdoaWxlQnVpbGRpbmdUcmFuc2FjdGlvbihQbGF0Zm9ybUNBTGF5
ZXJSZW1vdGUmIGxheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KaW5k
ZXggZTA3ODEzMS4uOGMxOThlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
Lm1tCkBAIC0zNTYsNyArMzU2LDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6
Zmx1c2hMYXllcnMoKQogICAgIGlmIChoYWRBbnlDaGFuZ2VkQmFja2luZ1N0b3JlKQogICAgICAg
ICBiYWNraW5nU3RvcmVDb2xsZWN0aW9uLnNjaGVkdWxlVm9sYXRpbGl0eVRpbWVyKCk7CiAKLSAg
ICBSZWZQdHI8QmFja2luZ1N0b3JlRmx1c2hlcj4gYmFja2luZ1N0b3JlRmx1c2hlciA9IEJhY2tp
bmdTdG9yZUZsdXNoZXI6OmNyZWF0ZShXZWJQcm9jZXNzOjpzaGFyZWQoKS5wYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpLCBzdGQ6Om1vdmUoY29tbWl0RW5jb2RlciksIHN0ZDo6bW92ZShjb250ZXh0
c1RvRmx1c2gpKTsKKyAgICBSZWZQdHI8QmFja2luZ1N0b3JlRmx1c2hlcj4gYmFja2luZ1N0b3Jl
Rmx1c2hlciA9IEJhY2tpbmdTdG9yZUZsdXNoZXI6OmNyZWF0ZShXZWJQcm9jZXNzOjpzaGFyZWQo
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLCBXVEY6Om1vdmUoY29tbWl0RW5jb2RlciksIFdU
Rjo6bW92ZShjb250ZXh0c1RvRmx1c2gpKTsKICAgICBtX3BlbmRpbmdCYWNraW5nU3RvcmVGbHVz
aGVyID0gYmFja2luZ1N0b3JlRmx1c2hlcjsKIAogICAgIGRpc3BhdGNoX2FzeW5jKG1fY29tbWl0
UXVldWUsIFtiYWNraW5nU3RvcmVGbHVzaGVyXXsKQEAgLTQwMSwxMyArNDAxLDEzIEBAIGJvb2wg
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6Om1hcmtMYXllcnNWb2xhdGlsZUltbWVkaWF0ZWx5
SWZQb3NzaWJsZSgpCiAKIFBhc3NSZWZQdHI8UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OkJh
Y2tpbmdTdG9yZUZsdXNoZXI+IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpCYWNraW5nU3Rv
cmVGbHVzaGVyOjpjcmVhdGUoSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBzdGQ6OnVuaXF1
ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlciwgVmVjdG9yPFJldGFpblB0cjxDR0Nv
bnRleHRSZWY+PiBjb250ZXh0c1RvRmx1c2gpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6QmFja2luZ1N0b3JlRmx1c2hlcihjb25uZWN0aW9u
LCBzdGQ6Om1vdmUoZW5jb2RlciksIHN0ZDo6bW92ZShjb250ZXh0c1RvRmx1c2gpKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6QmFja2luZ1N0
b3JlRmx1c2hlcihjb25uZWN0aW9uLCBXVEY6Om1vdmUoZW5jb2RlciksIFdURjo6bW92ZShjb250
ZXh0c1RvRmx1c2gpKSk7CiB9CiAKIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpCYWNraW5n
U3RvcmVGbHVzaGVyOjpCYWNraW5nU3RvcmVGbHVzaGVyKElQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+IGVuY29kZXIsIFZlY3Rv
cjxSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPj4gY29udGV4dHNUb0ZsdXNoKQogICAgIDogbV9jb25u
ZWN0aW9uKGNvbm5lY3Rpb24pCi0gICAgLCBtX2NvbW1pdEVuY29kZXIoc3RkOjptb3ZlKGVuY29k
ZXIpKQotICAgICwgbV9jb250ZXh0c1RvRmx1c2goc3RkOjptb3ZlKGNvbnRleHRzVG9GbHVzaCkp
CisgICAgLCBtX2NvbW1pdEVuY29kZXIoV1RGOjptb3ZlKGVuY29kZXIpKQorICAgICwgbV9jb250
ZXh0c1RvRmx1c2goV1RGOjptb3ZlKGNvbnRleHRzVG9GbHVzaCkpCiAgICAgLCBtX2hhc0ZsdXNo
ZWQoZmFsc2UpCiB7CiB9CkBAIC00MjAsNyArNDIwLDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYTo6QmFja2luZ1N0b3JlRmx1c2hlcjo6Zmx1c2goKQogICAgICAgICBDR0NvbnRl
eHRGbHVzaChjb250ZXh0LmdldCgpKTsKICAgICBtX2hhc0ZsdXNoZWQgPSB0cnVlOwogCi0gICAg
bV9jb25uZWN0aW9uLT5zZW5kTWVzc2FnZShzdGQ6Om1vdmUobV9jb21taXRFbmNvZGVyKSk7Cisg
ICAgbV9jb25uZWN0aW9uLT5zZW5kTWVzc2FnZShXVEY6Om1vdmUobV9jb21taXRFbmNvZGVyKSk7
CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnZpZXdTdGF0ZURpZENoYW5n
ZShWaWV3U3RhdGU6OkZsYWdzLCBib29sIHdhbnRzRGlkVXBkYXRlVmlld1N0YXRlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIubW0KaW5kZXggOTg3MmFjYy4uZTBkMzNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1t
CkBAIC0xNDIsNyArMTQyLDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRT
ZWVrYWJsZVJhbmdlcyhjb25zdCBXZWJDb3JlOjpUaW1lUmFuZ2VzJiB0aW0KICAgICAgICAgcmFu
Z2VzVmVjdG9yLmFwcGVuZChzdGQ6OnBhaXI8ZG91YmxlLGRvdWJsZT4oc3RhcnQsIGVuZCkpOwog
ICAgIH0KIAotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5OjpTZXRTZWVrYWJsZVJhbmdlc1ZlY3RvcihzdGQ6Om1vdmUocmFuZ2VzVmVjdG9y
KSksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRTZWVrYWJsZVJhbmdlc1ZlY3RvcihXVEY6Om1v
dmUocmFuZ2VzVmVjdG9yKSksIG1fcGFnZS0+cGFnZUlEKCkpOwogfQogCiB2b2lkIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXI6OnNldEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBvcHRpb25zLCB1aW50NjRfdCBzZWxlY3RlZEluZGV4KQpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDRiMmY0YWIuLmFkYWM3
YjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMSBAQAorMjAxNC0wNy0wMSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIFdURjo6bW92ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ1MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTdWJzdGl0dXRlIFdURjo6bW92ZSgpIGZvciBzdGQ6Om1v
dmUoKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9EUlREYXRhT2JqZWN0LmNwcDoK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoTWFwLmNwcDoKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoU2V0LmNwcDoKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9SZWZQdHIuY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1ZlY3Rvci5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RG
U3RyaW5nLmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9ucy9SZXRhaW5Q
dHIubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NhbGN1bGF0aW9u
VmFsdWUuY3BwOgorCiAyMDE0LTA3LTAxICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgW0NvY29hXVtNYWNdIFdLV2ViVmlldyBzaG91bGQgYXV0b21hdGljYWxseSBzZXQg
dG9wQ29udGVudEluc2V0IHdoZW4gYmVuZWF0aCBhIHRvb2xiYXIKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3dpbi9EUlREYXRhT2JqZWN0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9EUlREYXRhT2JqZWN0LmNwcAppbmRleCAwYTZkOTY0Li5hMzMwMzZiIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRFJURGF0YU9iamVjdC5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0RSVERhdGFPYmplY3QuY3BwCkBAIC0yNTUsMTMgKzI1NSwx
MyBAQCBTVERNRVRIT0RJTVAgRFJURGF0YU9iamVjdDo6U2V0RGF0YShGT1JNQVRFVEMqIHBmb3Jt
YXRldGMsIFNUR01FRElVTSogcG1lZGl1bSwgQgogICAgIFplcm9NZW1vcnkocFN0Z01lZC5nZXQo
KSwgc2l6ZW9mKFNUR01FRElVTSkpOwogCiAgICAgKmZvcm1hdGV0YyA9ICpwZm9ybWF0ZXRjOwot
ICAgIG1fZm9ybWF0cy5hcHBlbmQoc3RkOjptb3ZlKGZvcm1hdGV0YykpOworICAgIG1fZm9ybWF0
cy5hcHBlbmQoV1RGOjptb3ZlKGZvcm1hdGV0YykpOwogCiAgICAgaWYgKGZSZWxlYXNlKQogICAg
ICAgICAqcFN0Z01lZCA9ICpwbWVkaXVtOwogICAgIGVsc2UKICAgICAgICAgQ29weU1lZGl1bShw
U3RnTWVkLmdldCgpLCBwbWVkaXVtLCBwZm9ybWF0ZXRjKTsKLSAgICBtX21lZGl1bS5hcHBlbmQo
c3RkOjptb3ZlKHBTdGdNZWQpKTsKKyAgICBtX21lZGl1bS5hcHBlbmQoV1RGOjptb3ZlKHBTdGdN
ZWQpKTsKIAogICAgIHJldHVybiBTX09LOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvSGFzaE1hcC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9IYXNoTWFwLmNwcAppbmRleCBkMDNmYjk1Li40MjJiYTZkIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoTWFwLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9IYXNoTWFwLmNwcApAQCAtOTAsNyArOTAsNyBAQCBURVNUKFdURl9IYXNo
TWFwLCBNb3ZlT25seVZhbHVlcykKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMTAwOyAr
K2kpIHsKICAgICAgICAgTW92ZU9ubHkgbW92ZU9ubHkoaSArIDEpOwotICAgICAgICBtb3ZlT25s
eVZhbHVlcy5zZXQoaSArIDEsIHN0ZDo6bW92ZShtb3ZlT25seSkpOworICAgICAgICBtb3ZlT25s
eVZhbHVlcy5zZXQoaSArIDEsIFdURjo6bW92ZShtb3ZlT25seSkpOwogICAgIH0KIAogICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKQEAgLTExMyw3ICsxMTMsNyBAQCBURVNU
KFdURl9IYXNoTWFwLCBNb3ZlT25seUtleXMpCiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IDEwMDsgKytpKSB7CiAgICAgICAgIE1vdmVPbmx5IG1vdmVPbmx5KGkgKyAxKTsKLSAgICAgICAg
bW92ZU9ubHlLZXlzLnNldChzdGQ6Om1vdmUobW92ZU9ubHkpLCBpICsgMSk7CisgICAgICAgIG1v
dmVPbmx5S2V5cy5zZXQoV1RGOjptb3ZlKG1vdmVPbmx5KSwgaSArIDEpOwogICAgIH0KIAogICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hhc2hTZXQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvSGFzaFNldC5jcHAKaW5kZXggZGQ0OTEzZC4uMTI4N2I3NCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGFzaFNldC5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvSGFzaFNldC5jcHAKQEAgLTg0LDcgKzg0LDcgQEAgVEVTVChX
VEZfSGFzaFNldCwgTW92ZU9ubHkpCiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDEwMDsg
KytpKSB7CiAgICAgICAgIE1vdmVPbmx5IG1vdmVPbmx5KGkgKyAxKTsKLSAgICAgICAgaGFzaFNl
dC5hZGQoc3RkOjptb3ZlKG1vdmVPbmx5KSk7CisgICAgICAgIGhhc2hTZXQuYWRkKFdURjo6bW92
ZShtb3ZlT25seSkpOwogICAgIH0KIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMTAwOyAr
K2kpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZQdHIuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNwcAppbmRleCBiYzFlMWU0
Li4yNGFlOTRkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZQ
dHIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZlB0ci5jcHAKQEAg
LTY5LDcgKzY5LDcgQEAgVEVTVChXVEZfUmVmUHRyLCBCYXNpYykKIAogICAgIHsKICAgICAgICAg
UmVmUHRyPFJlZkxvZ2dlcj4gcDEgPSAmYTsKLSAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcDIg
PSBzdGQ6Om1vdmUocDEpOworICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwMiA9IFdURjo6bW92
ZShwMSk7CiAgICAgICAgIEFTU0VSVF9FUShudWxscHRyLCBwMS5nZXQoKSk7CiAgICAgICAgIEFT
U0VSVF9FUSgmYSwgcDIuZ2V0KCkpOwogICAgIH0KQEAgLTc3LDcgKzc3LDcgQEAgVEVTVChXVEZf
UmVmUHRyLCBCYXNpYykKIAogICAgIHsKICAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcDEgPSAm
YTsKLSAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcDIoc3RkOjptb3ZlKHAxKSk7CisgICAgICAg
IFJlZlB0cjxSZWZMb2dnZXI+IHAyKFdURjo6bW92ZShwMSkpOwogICAgICAgICBBU1NFUlRfRVEo
bnVsbHB0ciwgcDEuZ2V0KCkpOwogICAgICAgICBBU1NFUlRfRVEoJmEsIHAyLmdldCgpKTsKICAg
ICB9CkBAIC05Myw3ICs5Myw3IEBAIFRFU1QoV1RGX1JlZlB0ciwgQmFzaWMpCiAKICAgICB7CiAg
ICAgICAgIFJlZlB0cjxEZXJpdmVkUmVmTG9nZ2VyPiBwMSA9ICZhOwotICAgICAgICBSZWZQdHI8
UmVmTG9nZ2VyPiBwMiA9IHN0ZDo6bW92ZShwMSk7CisgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+
IHAyID0gV1RGOjptb3ZlKHAxKTsKICAgICAgICAgQVNTRVJUX0VRKG51bGxwdHIsIHAxLmdldCgp
KTsKICAgICAgICAgQVNTRVJUX0VRKCZhLCBwMi5nZXQoKSk7CiAgICAgfQpAQCAtMTIxLDcgKzEy
MSw3IEBAIFRFU1QoV1RGX1JlZlB0ciwgQXNzaWduUGFzc1JlZlRvUmVmUHRyKQogICAgIERlcml2
ZWRSZWZMb2dnZXIgYSgiYSIpOwogICAgIHsKICAgICAgICAgUGFzc1JlZjxSZWZMb2dnZXI+IHBh
c3NSZWYoYSk7Ci0gICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHB0ciA9IHN0ZDo6bW92ZShwYXNz
UmVmKTsKKyAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcHRyID0gV1RGOjptb3ZlKHBhc3NSZWYp
OwogICAgICAgICBBU1NFUlRfRVEoJmEsIHB0ci5nZXQoKSk7CiAgICAgICAgIHB0ci5yZWxlYXNl
KCk7CiAgICAgICAgIEFTU0VSVF9FUShudWxscHRyLCBwdHIuZ2V0KCkpOwpAQCAtMjA0LDcgKzIw
NCw3IEBAIFRFU1QoV1RGX1JlZlB0ciwgQXNzaWdubWVudCkKICAgICAgICAgQVNTRVJUX0VRKCZh
LCBwMS5nZXQoKSk7CiAgICAgICAgIEFTU0VSVF9FUSgmYiwgcDIuZ2V0KCkpOwogICAgICAgICBs
b2coKSA8PCAifCAiOwotICAgICAgICBwMSA9IHN0ZDo6bW92ZShwMik7CisgICAgICAgIHAxID0g
V1RGOjptb3ZlKHAyKTsKICAgICAgICAgQVNTRVJUX0VRKCZiLCBwMS5nZXQoKSk7CiAgICAgICAg
IEFTU0VSVF9FUShudWxscHRyLCBwMi5nZXQoKSk7CiAgICAgICAgIGxvZygpIDw8ICJ8ICI7CkBA
IC0yNTAsNyArMjUwLDcgQEAgVEVTVChXVEZfUmVmUHRyLCBBc3NpZ25tZW50KQogICAgICAgICBB
U1NFUlRfRVEoJmEsIHAxLmdldCgpKTsKICAgICAgICAgQVNTRVJUX0VRKCZjLCBwMi5nZXQoKSk7
CiAgICAgICAgIGxvZygpIDw8ICJ8ICI7Ci0gICAgICAgIHAxID0gc3RkOjptb3ZlKHAyKTsKKyAg
ICAgICAgcDEgPSBXVEY6Om1vdmUocDIpOwogICAgICAgICBBU1NFUlRfRVEoJmMsIHAxLmdldCgp
KTsKICAgICAgICAgQVNTRVJUX0VRKG51bGxwdHIsIHAyLmdldCgpKTsKICAgICAgICAgbG9nKCkg
PDwgInwgIjsKQEAgLTI3MCw3ICsyNzAsNyBAQCBURVNUKFdURl9SZWZQdHIsIEFzc2lnbm1lbnQp
CiAgICAgewogICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwdHIoJmEpOwogICAgICAgICBBU1NF
UlRfRVEoJmEsIHB0ci5nZXQoKSk7Ci0gICAgICAgIHB0ciA9IHN0ZDo6bW92ZShwdHIpOworICAg
ICAgICBwdHIgPSBXVEY6Om1vdmUocHRyKTsKICAgICAgICAgQVNTRVJUX0VRKCZhLCBwdHIuZ2V0
KCkpOwogICAgIH0KICAgICBBU1NFUlRfU1RSRVEoInJlZihhKSBkZXJlZihhKSAiLCB0YWtlTG9n
U3RyKCkuY19zdHIoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9WZWN0b3IuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcApp
bmRleCBiYmIxYTYzLi5kMjA3YTBmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9WZWN0b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1Zl
Y3Rvci5jcHAKQEAgLTE0OSw3ICsxNDksNyBAQCBURVNUKFdURl9WZWN0b3IsIE1vdmVPbmx5X1Vu
Y2hlY2tlZEFwcGVuZCkKICAgICB2ZWN0b3IucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSgxMDApOwog
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKICAgICAgICAgTW92ZU9ubHkg
bW92ZU9ubHkoaSk7Ci0gICAgICAgIHZlY3Rvci51bmNoZWNrZWRBcHBlbmQoc3RkOjptb3ZlKG1v
dmVPbmx5KSk7CisgICAgICAgIHZlY3Rvci51bmNoZWNrZWRBcHBlbmQoV1RGOjptb3ZlKG1vdmVP
bmx5KSk7CiAgICAgICAgIEVYUEVDVF9FUSgwVSwgbW92ZU9ubHkudmFsdWUoKSk7CiAgICAgfQog
CkBAIC0xNjMsNyArMTYzLDcgQEAgVEVTVChXVEZfVmVjdG9yLCBNb3ZlT25seV9BcHBlbmQpCiAK
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDEwMDsgKytpKSB7CiAgICAgICAgIE1vdmVPbmx5
IG1vdmVPbmx5KGkpOwotICAgICAgICB2ZWN0b3IuYXBwZW5kKHN0ZDo6bW92ZShtb3ZlT25seSkp
OworICAgICAgICB2ZWN0b3IuYXBwZW5kKFdURjo6bW92ZShtb3ZlT25seSkpOwogICAgICAgICBF
WFBFQ1RfRVEoMFUsIG1vdmVPbmx5LnZhbHVlKCkpOwogICAgIH0KIApAQCAtMTc3LDcgKzE3Nyw3
IEBAIFRFU1QoV1RGX1ZlY3RvciwgTW92ZU9ubHlfQXBwZW5kKQogCiAgICAgICAgIGZvciAoc2l6
ZV90IGogPSAwOyBqIDwgaTsgKytqKQogICAgICAgICAgICAgdmVjdG9yLmFwcGVuZChqKTsKLSAg
ICAgICAgdmVjdG9yLmFwcGVuZChzdGQ6Om1vdmUodmVjdG9yWzBdKSk7CisgICAgICAgIHZlY3Rv
ci5hcHBlbmQoV1RGOjptb3ZlKHZlY3RvclswXSkpOwogCiAgICAgICAgIEVYUEVDVF9FUSgwVSwg
dmVjdG9yWzBdLnZhbHVlKCkpOwogCkBAIC0xOTMsNyArMTkzLDcgQEAgVEVTVChXVEZfVmVjdG9y
LCBNb3ZlT25seV9JbnNlcnQpCiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDEwMDsgKytp
KSB7CiAgICAgICAgIE1vdmVPbmx5IG1vdmVPbmx5KGkpOwotICAgICAgICB2ZWN0b3IuaW5zZXJ0
KDAsIHN0ZDo6bW92ZShtb3ZlT25seSkpOworICAgICAgICB2ZWN0b3IuaW5zZXJ0KDAsIFdURjo6
bW92ZShtb3ZlT25seSkpOwogICAgICAgICBFWFBFQ1RfRVEoMFUsIG1vdmVPbmx5LnZhbHVlKCkp
OwogICAgIH0KIApAQCAtMjAzLDcgKzIwMyw3IEBAIFRFU1QoV1RGX1ZlY3RvciwgTW92ZU9ubHlf
SW5zZXJ0KQogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCAyMDA7IGkgKz0gMikgewogICAg
ICAgICBNb3ZlT25seSBtb3ZlT25seSgxMDAwICsgaSk7Ci0gICAgICAgIHZlY3Rvci5pbnNlcnQo
aSwgc3RkOjptb3ZlKG1vdmVPbmx5KSk7CisgICAgICAgIHZlY3Rvci5pbnNlcnQoaSwgV1RGOjpt
b3ZlKG1vdmVPbmx5KSk7CiAgICAgICAgIEVYUEVDVF9FUSgwVSwgbW92ZU9ubHkudmFsdWUoKSk7
CiAgICAgfQogCkBAIC0yMjIsNyArMjIyLDcgQEAgVEVTVChXVEZfVmVjdG9yLCBNb3ZlT25seV9U
YWtlTGFzdCkKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKICAgICAg
ICAgTW92ZU9ubHkgbW92ZU9ubHkoaSk7Ci0gICAgICAgIHZlY3Rvci5hcHBlbmQoc3RkOjptb3Zl
KG1vdmVPbmx5KSk7CisgICAgICAgIHZlY3Rvci5hcHBlbmQoV1RGOjptb3ZlKG1vdmVPbmx5KSk7
CiAgICAgICAgIEVYUEVDVF9FUSgwVSwgbW92ZU9ubHkudmFsdWUoKSk7CiAgICAgfQogCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAppbmRleCA4Mjk4YzMyLi5h
Mzk1Zjc5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJp
bmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAK
QEAgLTE1Niw3ICsxNTYsNyBAQCBURVNUKFdURiwgU3RyaW5nUmVwbGFjZVdpdGhMaXRlcmFsKQog
VEVTVChXVEYsIFN0cmluZ0lzb2xhdGVkQ29weSkKIHsKICAgICBTdHJpbmcgb3JpZ2luYWwgPSAi
MTIzNCI7Ci0gICAgYXV0byBjb3B5ID0gc3RkOjptb3ZlKG9yaWdpbmFsKS5pc29sYXRlZENvcHko
KTsKKyAgICBhdXRvIGNvcHkgPSBXVEY6Om1vdmUob3JpZ2luYWwpLmlzb2xhdGVkQ29weSgpOwog
ICAgIEFTU0VSVF9GQUxTRShvcmlnaW5hbC5pbXBsKCkgPT0gY29weS5pbXBsKCkpOwogfQogCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9ucy9SZXRhaW5QdHIubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9ucy9SZXRhaW5QdHIubW0KaW5kZXggYWRh
ZDU4MS4uYzM3YjkzYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
bnMvUmV0YWluUHRyLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL25zL1Jl
dGFpblB0ci5tbQpAQCAtNTMsNyArNTMsNyBAQCBURVNUKFJldGFpblB0ciwgTW92ZUFzc2lnbm1l
bnRGcm9tU2FtZVR5cGUpCiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiB0ZW1wID0gc3RyaW5nOwog
CiAgICAgLy8gVGhpcyBzaG91bGQgaW52b2tlIFJldGFpblB0cidzIG1vdmUgYXNzaWdubWVudCBv
cGVyYXRvci4KLSAgICBwdHIgPSBzdGQ6Om1vdmUodGVtcCk7CisgICAgcHRyID0gV1RGOjptb3Zl
KHRlbXApOwogCiAgICAgRVhQRUNUX0VRKHN0cmluZywgcHRyKTsKICAgICBFWFBFQ1RfRVEoKE5T
U3RyaW5nICopMCwgdGVtcCk7CkBAIC03Myw3ICs3Myw3IEBAIFRFU1QoUmV0YWluUHRyLCBNb3Zl
QXNzaWdubWVudEZyb21TaW1pbGFyVHlwZSkKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlU3RyaW5n
PiB0ZW1wID0gc3RyaW5nOwogCiAgICAgLy8gVGhpcyBzaG91bGQgaW52b2tlIFJldGFpblB0cidz
IG1vdmUgYXNzaWdubWVudCBvcGVyYXRvci4KLSAgICBwdHIgPSBzdGQ6Om1vdmUodGVtcCk7Cisg
ICAgcHRyID0gV1RGOjptb3ZlKHRlbXApOwogCiAgICAgRVhQRUNUX0VRKHN0cmluZywgcHRyKTsK
ICAgICBFWFBFQ1RfRVEoKE5TU3RyaW5nICopMCwgdGVtcCk7CkBAIC05MSw3ICs5MSw3IEBAIFRF
U1QoUmV0YWluUHRyLCBDb25zdHJ1Y3Rpb25Gcm9tU2FtZVR5cGUpCiAgICAgUmV0YWluUHRyPE5T
U3RyaW5nPiB0ZW1wID0gc3RyaW5nOwogCiAgICAgLy8gVGhpcyBzaG91bGQgaW52b2tlIFJldGFp
blB0cidzIG1vdmUgY29uc3RydWN0b3IuCi0gICAgUmV0YWluUHRyPE5TU3RyaW5nPiBwdHIyKHN0
ZDo6bW92ZSh0ZW1wKSk7CisgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBwdHIyKFdURjo6bW92ZSh0
ZW1wKSk7CiAKICAgICBFWFBFQ1RfRVEoc3RyaW5nLCBwdHIyKTsKICAgICBFWFBFQ1RfRVEoKE5T
U3RyaW5nICopMCwgdGVtcCk7CkBAIC0xMDksNyArMTA5LDcgQEAgVEVTVChSZXRhaW5QdHIsIENv
bnN0cnVjdGlvbkZyb21TaW1pbGFyVHlwZSkKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlU3RyaW5n
PiB0ZW1wID0gc3RyaW5nOwogCiAgICAgLy8gVGhpcyBzaG91bGQgaW52b2tlIFJldGFpblB0cidz
IG1vdmUgY29uc3RydWN0b3IuCi0gICAgUmV0YWluUHRyPE5TU3RyaW5nPiBwdHIyKHN0ZDo6bW92
ZSh0ZW1wKSk7CisgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBwdHIyKFdURjo6bW92ZSh0ZW1wKSk7
CiAKICAgICBFWFBFQ1RfRVEoc3RyaW5nLCBwdHIyKTsKICAgICBFWFBFQ1RfRVEoKE5TU3RyaW5n
ICopMCwgdGVtcCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvQ2FsY3VsYXRpb25WYWx1ZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvQ2FsY3VsYXRpb25WYWx1ZS5jcHAKaW5kZXggNDllNzUwNC4uMGFlODVkNyAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NhbGN1bGF0aW9uVmFsdWUuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DYWxjdWxhdGlvblZhbHVl
LmNwcApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiBzdGF0aWMgUGFzc1JlZjxXZWJDb3JlOjpD
YWxjdWxhdGlvblZhbHVlPiBjcmVhdGVUZXN0VmFsdWUoKQogewogICAgIGF1dG8gbm9kZSA9IHN0
ZDo6bWFrZV91bmlxdWU8Q2FsY3VsYXRpb25EZWxldGlvblRlc3ROb2RlPigpOwotICAgIHJldHVy
biBXZWJDb3JlOjpDYWxjdWxhdGlvblZhbHVlOjpjcmVhdGUoc3RkOjptb3ZlKG5vZGUpLCBXZWJD
b3JlOjpDYWxjdWxhdGlvblJhbmdlQWxsKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6Q2FsY3VsYXRp
b25WYWx1ZTo6Y3JlYXRlKFdURjo6bW92ZShub2RlKSwgV2ViQ29yZTo6Q2FsY3VsYXRpb25SYW5n
ZUFsbCk7CiB9CiAKIFRFU1QoQ2FsY3VsYXRpb25WYWx1ZSwgTGVuZ3RoQ29uc3RydWN0aW9uKQpA
QCAtNzMsNyArNzMsNyBAQCBURVNUKENhbGN1bGF0aW9uVmFsdWUsIExlbmd0aENvbnN0cnVjdGlv
bikKICAgICB7CiAgICAgICAgIFdlYkNvcmU6Okxlbmd0aCBsZW5ndGhDKCp2YWx1ZSk7CiAgICAg
ICAgIEVYUEVDVF9FUSgyVSwgdmFsdWUtPnJlZkNvdW50KCkpOwotICAgICAgICBXZWJDb3JlOjpM
ZW5ndGggbGVuZ3RoRChzdGQ6Om1vdmUobGVuZ3RoQykpOworICAgICAgICBXZWJDb3JlOjpMZW5n
dGggbGVuZ3RoRChXVEY6Om1vdmUobGVuZ3RoQykpOwogICAgICAgICBFWFBFQ1RfRVEoMlUsIHZh
bHVlLT5yZWZDb3VudCgpKTsKICAgICB9CiAKQEAgLTEyMyw3ICsxMjMsNyBAQCBURVNUKENhbGN1
bGF0aW9uVmFsdWUsIExlbmd0aENvbnN0cnVjdGlvblJlbGVhc2VkVmFsdWUpCiAgICAgICAgIGF1
dG8qIHJhd1ZhbHVlID0gdmFsdWUuZ2V0KCk7CiAgICAgICAgIFdlYkNvcmU6Okxlbmd0aCBsZW5n
dGhDKHZhbHVlLnJlbGVhc2VOb25OdWxsKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMVUsIHJhd1Zh
bHVlLT5yZWZDb3VudCgpKTsKLSAgICAgICAgV2ViQ29yZTo6TGVuZ3RoIGxlbmd0aEQoc3RkOjpt
b3ZlKGxlbmd0aEMpKTsKKyAgICAgICAgV2ViQ29yZTo6TGVuZ3RoIGxlbmd0aEQoV1RGOjptb3Zl
KGxlbmd0aEMpKTsKICAgICAgICAgRVhQRUNUX0VRKDFVLCByYXdWYWx1ZS0+cmVmQ291bnQoKSk7
CiAKICAgICAgICAgRVhQRUNUX0VRKDBVLCBkZWxldGlvbkNvdW50KTsKQEAgLTE1Myw3ICsxNTMs
NyBAQCBURVNUKENhbGN1bGF0aW9uVmFsdWUsIExlbmd0aEFzc2lnbm1lbnQpCiAgICAgICAgIFdl
YkNvcmU6Okxlbmd0aCBsZW5ndGhDKCp2YWx1ZSk7CiAgICAgICAgIEVYUEVDVF9FUSgyVSwgdmFs
dWUtPnJlZkNvdW50KCkpOwogICAgICAgICBXZWJDb3JlOjpMZW5ndGggbGVuZ3RoRDsKLSAgICAg
ICAgbGVuZ3RoRCA9IHN0ZDo6bW92ZShsZW5ndGhDKTsKKyAgICAgICAgbGVuZ3RoRCA9IFdURjo6
bW92ZShsZW5ndGhDKTsKICAgICAgICAgRVhQRUNUX0VRKDJVLCB2YWx1ZS0+cmVmQ291bnQoKSk7
CiAgICAgfQogCkBAIC0xODgsNyArMTg4LDcgQEAgVEVTVChDYWxjdWxhdGlvblZhbHVlLCBMZW5n
dGhBc3NpZ25tZW50KQogICAgICAgICBFWFBFQ1RfRVEoMlUsIHZhbHVlLT5yZWZDb3VudCgpKTsK
ICAgICAgICAgV2ViQ29yZTo6TGVuZ3RoIGxlbmd0aEgoKnZhbHVlMik7CiAgICAgICAgIEVYUEVD
VF9FUSgyVSwgdmFsdWUyLT5yZWZDb3VudCgpKTsKLSAgICAgICAgbGVuZ3RoRyA9IHN0ZDo6bW92
ZShsZW5ndGhIKTsKKyAgICAgICAgbGVuZ3RoRyA9IFdURjo6bW92ZShsZW5ndGhIKTsKICAgICAg
ICAgRVhQRUNUX0VRKDFVLCB2YWx1ZS0+cmVmQ291bnQoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgy
VSwgdmFsdWUyLT5yZWZDb3VudCgpKTsKICAgICB9CkBAIC0yMjYsNyArMjI2LDcgQEAgVEVTVChD
YWxjdWxhdGlvblZhbHVlLCBMZW5ndGhBc3NpZ25tZW50UmVsZWFzZWRWYWx1ZSkKICAgICAgICAg
V2ViQ29yZTo6TGVuZ3RoIGxlbmd0aEModmFsdWUucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAg
IEVYUEVDVF9FUSgxVSwgcmF3VmFsdWUtPnJlZkNvdW50KCkpOwogICAgICAgICBXZWJDb3JlOjpM
ZW5ndGggbGVuZ3RoRDsKLSAgICAgICAgbGVuZ3RoRCA9IHN0ZDo6bW92ZShsZW5ndGhDKTsKKyAg
ICAgICAgbGVuZ3RoRCA9IFdURjo6bW92ZShsZW5ndGhDKTsKICAgICAgICAgRVhQRUNUX0VRKDFV
LCByYXdWYWx1ZS0+cmVmQ291bnQoKSk7CiAKICAgICAgICAgRVhQRUNUX0VRKDBVLCBkZWxldGlv
bkNvdW50KTsKQEAgLTI3MSw3ICsyNzEsNyBAQCBURVNUKENhbGN1bGF0aW9uVmFsdWUsIExlbmd0
aEFzc2lnbm1lbnRSZWxlYXNlZFZhbHVlKQogICAgICAgICBXZWJDb3JlOjpMZW5ndGggbGVuZ3Ro
SCh2YWx1ZTIucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxVSwgcmF3VmFs
dWUyLT5yZWZDb3VudCgpKTsKIAotICAgICAgICBsZW5ndGhHID0gc3RkOjptb3ZlKGxlbmd0aEgp
OworICAgICAgICBsZW5ndGhHID0gV1RGOjptb3ZlKGxlbmd0aEgpOwogICAgICAgICBFWFBFQ1Rf
RVEoMVUsIGRlbGV0aW9uQ291bnQpOwogICAgICAgICBFWFBFQ1RfRVEoMVUsIHJhd1ZhbHVlMi0+
cmVmQ291bnQoKSk7CiAgICAgfQotLSAKMS45LjMgKEFwcGxlIEdpdC01MCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234284</attachid>
            <date>2014-07-02 14:52:45 -0700</date>
            <delta_ts>2014-07-03 09:53:12 -0700</delta_ts>
            <desc>Patch 1 of 2 - Only adds WTF::move()</desc>
            <filename>Bug134500-OnlyWTFMove.patch</filename>
            <type>text/plain</type>
            <size>3352</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">RnJvbSA2YTY3YzFlZTUyNTViZWRlODVkNTdiMmEyNDY5OGM1ZDVhMWZkNWVhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgQmF0ZXMgPGRiYXRlc0B3ZWJraXQub3JnPgpEYXRl
OiBXZWQsIDIgSnVsIDIwMTQgMTQ6NDg6NTkgLTA3MDAKU3ViamVjdDogW1BBVENIXSBBZGQgV1RG
Ojptb3ZlKCkKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ1MDAK
ClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKUGFydCAxIG9mIDIuCgpJbXBsZW1lbnQgV1RG
Ojptb3ZlKCksIGEgcmVwbGFjZW1lbnQgZm9yIHN0ZDo6bW92ZSgpLiBXVEY6Om1vdmUoKSBpcyBs
ZXNzIGVycm9yCnByb25lIHRoYW4gc3RkOjptb3ZlKCkgYXMgaXQgY29tcGlsZSBhc3NlcnRzIHRo
YXQgaXRzIGFyZ3VtZW50IGlzIGF0IGxlYXN0IGEKbm9uLWNvbnN0IGx2YWx1ZSBiZWZvcmUgdWx0
aW1hdGVseSBjYXN0aW5nIGl0IHRvIGFuIHJ2YWx1ZSByZWZlcmVuY2UgKHZpYSBzdGQ6Om1vdmUp
LgpGb3IgY29tcGlsZXJzIG90aGVyIHRoYW4gR0NDIGFuZCBNU1ZDIChzZWUgdGhlIGJ1ZyBmb3Ig
bW9yZSBkZXRhaWxzKSwgc3VjaCBhcyBDbGFuZywKV1RGOjptb3ZlKCkgYWxzbyBjb21waWxlIGFz
c2VydHMgdGhhdCB0aGUgZGF0YXR5cGUgb2YgdGhlIHBhc3NlZCBhcmd1bWVudCBpcyBtb3ZhYmxl
LgoKKiB3dGYvU3RkTGliRXh0cmFzLmg6CihXVEY6Om1vdmUpOiBBZGRlZC4KLS0tCiBTb3VyY2Uv
V1RGL0NoYW5nZUxvZyAgICAgICAgICB8IDE4ICsrKysrKysrKysrKysrKysrKwogU291cmNlL1dU
Ri93dGYvU3RkTGliRXh0cmFzLmggfCAxOSArKysrKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNo
YW5nZWQsIDM3IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDFjNTEyMjUuLjU3MTEwYWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjEgQEAKKzIwMTQtMDctMDIgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCBXVEY6Om1vdmUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0NTAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUGFydCAxIG9mIDIuCisKKyAgICAgICAgSW1wbGVtZW50IFdU
Rjo6bW92ZSgpLCBhIHJlcGxhY2VtZW50IGZvciBzdGQ6Om1vdmUoKS4gV1RGOjptb3ZlKCkgaXMg
bGVzcyBlcnJvcgorICAgICAgICBwcm9uZSB0aGFuIHN0ZDo6bW92ZSgpIGFzIGl0IGNvbXBpbGUg
YXNzZXJ0cyB0aGF0IGl0cyBhcmd1bWVudCBpcyBhdCBsZWFzdCBhCisgICAgICAgIG5vbi1jb25z
dCBsdmFsdWUgYmVmb3JlIHVsdGltYXRlbHkgY2FzdGluZyBpdCB0byBhbiBydmFsdWUgcmVmZXJl
bmNlICh2aWEgc3RkOjptb3ZlKS4KKyAgICAgICAgRm9yIGNvbXBpbGVycyBvdGhlciB0aGFuIEdD
QyBhbmQgTVNWQyAoc2VlIHRoZSBidWcgZm9yIG1vcmUgZGV0YWlscyksIHN1Y2ggYXMgQ2xhbmcs
CisgICAgICAgIFdURjo6bW92ZSgpIGFsc28gY29tcGlsZSBhc3NlcnRzIHRoYXQgdGhlIGRhdGF0
eXBlIG9mIHRoZSBwYXNzZWQgYXJndW1lbnQgaXMgbW92YWJsZS4KKworICAgICAgICAqIHd0Zi9T
dGRMaWJFeHRyYXMuaDoKKyAgICAgICAgKFdURjo6bW92ZSk6IEFkZGVkLgorCiAyMDE0LTA3LTAy
ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CiAKICAgICAgICAgaU9TIGJ1aWxk
IGZpeCBhZnRlciBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xNzA2OTcuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaCBiL1NvdXJjZS9XVEYvd3RmL1N0
ZExpYkV4dHJhcy5oCmluZGV4IDg5MWZhNjEuLjEzZjYzNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1N0ZExpYkV4dHJhcy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1N0ZExpYkV4dHJhcy5o
CkBAIC0xMTksNiArMTE5LDI1IEBAIGlubGluZSBib29sIGlzUG9pbnRlclR5cGVBbGlnbm1lbnRP
a2F5KFR5cGUqKQogCiBuYW1lc3BhY2UgV1RGIHsKIAordGVtcGxhdGU8Y2xhc3MgVD4KK0FMV0FZ
U19JTkxJTkUgdHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPFQ+Ojp0eXBlJiYgbW92ZShU
JiYgdmFsdWUpCit7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2x2YWx1ZV9yZWZlcmVuY2U8
VD46OnZhbHVlLCAiVCBpcyBub3QgYW4gbHZhbHVlIHJlZmVyZW5jZTsgbW92ZSgpIGlzIHVubmVj
ZXNzYXJ5LiIpOworCisgICAgdXNpbmcgTm9uUmVmUXVhbGlmaWVkVHlwZSA9IHR5cGVuYW1lIHN0
ZDo6cmVtb3ZlX3JlZmVyZW5jZTxUPjo6dHlwZTsKKyAgICBzdGF0aWNfYXNzZXJ0KCFzdGQ6Omlz
X2NvbnN0PE5vblJlZlF1YWxpZmllZFR5cGU+Ojp2YWx1ZSwgIlQgaXMgY29uc3QgcXVhbGlmaWVk
LiIpOworCisjaWYgIUNPTVBJTEVSKE1TVkMpICYmICghQ09NUElMRVIoR0NDKSB8fCBDT01QSUxF
UihDTEFORykpCisgICAgLy8gQXMgb2YgdGhlIHRpbWUgb2Ygd3JpdGluZyAoMDcvMDEvMjAxNCks
IEdDQyA0LjggYW5kIE1TVkMgMjAxMyBzZWVtIHRvIGNvbnNpZGVyIGFjY2VzcyBjb250cm9sIGZh
aWx1cmVzIHdoZW4KKyAgICAvLyBldmFsdWF0aW5nIHN0ZDo6aXNfbW92ZV9jb25zdHJ1Y3RpYmxl
IGFuZCBzdGQ6OmlzX21vdmVfYXNzaWduYWJsZSBhcyBhIGNvbXBpbGVyIGVycm9yIGluc3RlYWQg
b2YgYSBTdWJzdGl0dXRpb24KKyAgICAvLyBGYWlsdXJlIElzIE5vdCBBbiBFcnJvciAoU0ZJTkFF
KSBkZWR1Y3Rpb24gZmFpbHVyZS4gU2VlIDxodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1N1
YnN0aXR1dGlvbl9mYWlsdXJlX2lzX25vdF9hbl9lcnJvcj4uCisgICAgdXNpbmcgTm9uQ29uc3RO
b25SZWZRdWFsaWZpZWRUeXBlID0gdHlwZW5hbWUgc3RkOjpyZW1vdmVfY29uc3Q8Tm9uUmVmUXVh
bGlmaWVkVHlwZT46OnR5cGU7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX21vdmVfY29uc3Ry
dWN0aWJsZTxOb25Db25zdE5vblJlZlF1YWxpZmllZFR5cGU+Ojp2YWx1ZSB8fCBzdGQ6OmlzX21v
dmVfYXNzaWduYWJsZTxOb25Db25zdE5vblJlZlF1YWxpZmllZFR5cGU+Ojp2YWx1ZSwgIlQgaXMg
bm90IG1vdmFibGUuIik7CisjZW5kaWYKKworICAgIHJldHVybiBzdGQ6Om1vdmUodmFsdWUpOwor
fQorCiBzdGF0aWMgY29uc3Qgc2l6ZV90IEtCID0gMTAyNDsKIHN0YXRpYyBjb25zdCBzaXplX3Qg
TUIgPSAxMDI0ICogMTAyNDsKIAotLSAKMS45LjMgKEFwcGxlIEdpdC01MCkKCg==
</data>
<flag name="review"
          id="258824"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="258839"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>234298</attachid>
            <date>2014-07-02 17:28:28 -0700</date>
            <delta_ts>2014-07-02 17:28:28 -0700</delta_ts>
            <desc>Archive of layout-test-results from webkit-ews-12 for mac-mountainlion-wk2</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>679583</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
zS0oUSjJV0jNKyxNLU1VSFQozy/KVsgESiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBL
AwQUAAIACAD4guJEjRB9KxYBAAAIAgAAIAAcAGZhc3QvY3NzL2hvdmVyLXVwZGF0ZS1hY3R1YWwu
dHh0VVQJAAOElLRThJS0U3V4CwABBPUBAAAEFAAAAKWPwU7DMBBE7/mKuTWVoqgtKiq90UIhEhIH
QIijnWzTio23cmxS8/U4SW/c4GKtPDP7djZvDyju1tj4+vvIrKB9jevVYo7d8Yy9WCxvVlfoogYj
Doo7FVr4U6Uc4SBfZFGKtVQ6DnmSvAqsN2iU8Yo5ZGiiBUG8jZNvCUPCHQiaVfkJLeccH+LRHsRz
hZYICrUlMqNW7Pv0+G8CJEZ7IovNhjWOWoe9OnIb6c+GwyVspEseL+dFMzTFMqN9DVvrdLFcZhie
2TTZ3RZPsaSppMtrcltpTt5R9eICU1pJ6RsyrlfumfpxE4oqnejJNIPxzNNcxzK1FW+q7YC71NE0
sGYZ5otVT8rxrtpf/PyPB6h/HzAb8ckPUEsDBBQAAgAIAPiC4kRqdw1NFQEAAOsCAAAeABwAZmFz
dC9jc3MvaG92ZXItdXBkYXRlLWRpZmYudHh0VVQJAAOElLRThJS0U3V4CwABBPUBAAAEFAAAALXQ
wU4CMRAG4Ps+xcQLkN1ukYgxnhYQI9FE4yZy7m6HZePQknYq7NtL0YvxJOplZpKm+eYfIQTIF0th
g17eKFZyvizlEqv7lj/bNLSk5TMSKo+SVGcDC0bPwqEPxF6ulGdZey/X9g2dCFutGAXut1gz6pz3
nKRp+l+OqjkoOipFAeIiu4Q0lqJIIIFHQx00DtGAsbsE7uJXqC1ZBxWurEOIxjW4puqPxuMMjmU4
SMTTpCxh1xptd3mDPLObbTjkKbkj7GtbH7IYji9zwjhOu4Xu96reIAMTiAZ5perXxtlg9OzotR7O
IjPM4Hx0FZGzUxX1MyW9nSwe/jSLX9tA+nBC+GrlsFT+2zHzUzdQv95g+OFD8g5QSwMEFAACAAgA
+ILiRFRoeoUMAQAA0gEAACIAHABmYXN0L2Nzcy9ob3Zlci11cGRhdGUtZXhwZWN0ZWQudHh0VVQJ
AAOElLRThJS0U3V4CwABBPUBAAAEFAAAAJ2PzW7CMBCE73mKERdAiiKgoqLcCv3j1Eq0hx7teAlR
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
LWltYWdlbWFwLXN0ZGVyci50eHRVVAkAA6GUtFNWirRTdXgLAAEE9QEAAAQUAAAAy80vLU71zS9L
DclXSEvMzElNUSgBsjLzUhQSFUoSi9JTSxTKMlPLFRJLFMwNDPQMwEBH1xDO5gIAUEsDBBQAAgAI
AAmD4kTnrr1fOwAAAEMAAAAvABwAZmFzdC9ldmVudHMvbW91c2V1cC1vdXRzaWRlLWRvY3VtZW50
LXN0ZGVyci50eHRVVAkAA6GUtFNWirRTdXgLAAEE9QEAAAQUAAAAy80vLU71zS9LDclXSEvMzElN
USgBsjLzUhQSFUoSi9JTSxTKMlPLFRJLFEwMDAz0DMBAx9jCFMrkAgBQSwMECgAAAAAADX3iRAAA
AAAAAAAAAAAAAAwAHABmYXN0L2ZyYW1lcy9VVAkAA1mKtFNUlrRTdXgLAAEE9QEAAAQUAAAAUEsD
BBQAAgAIAAqD4kTbCNNCOwAAAD8AAAAvABwAZmFzdC9mcmFtZXMvZnJhbWUtZGlzcGxheS1ub25l
LWZvY3VzLXN0ZGVyci50eHRVVAkAA6OUtFNZirRTdXgLAAEE9QEAAAQUAAAAcywpSc0tKFEoyVdI
zSssTS1NVUhUKM8vylbIBEoolGdk5qQqQMQzixWSUjPz0hUKivKTU4uLU1P0uABQSwMECgAAAAAA
F33iRAAAAAAAAAAAAAAAAAwAHABmYXN0L2xvYWRlci9VVAkAA22KtFNUlrRTdXgLAAEE9QEAAAQU
AAAAUEsDBBQAAgAIAA+D4kTbCNNCOwAAAD8AAABSABwAZmFzdC9sb2FkZXIvZGlzcGxheS1pbWFn
ZS11bnNldC1jYW4tYmxvY2staW1hZ2UtYW5kLWNhbi1yZWxvYWQtaW4tcGxhY2Utc3RkZXJyLnR4
dFVUCQADrpS0U2OKtFN1eAsAAQT1AQAABBQAAABzLClJzS0oUSjJV0jNKyxNLU1VSFQozy/KVsgE
SiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBLAwQUAAIACAAQg+JE2wjTQjsAAAA/AAAA
UwAcAGZhc3QvbG9hZGVyL2ltYWdlcy1lbmFibGVkLXVuc2V0LWNhbi1ibG9jay1pbWFnZS1hbmQt
Y2FuLXJlbG9hZC1pbi1wbGFjZS1zdGRlcnIudHh0VVQJAAOvlLRTZYq0U3V4CwABBPUBAAAEFAAA
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
dGVudFNlY3VyaXR5UG9saWN5L1VUCQADo4q0U1SWtFN1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA
MYPiRGOqrGyCAAAAqAAAAEAAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS94c2wtYWxsb3dlZC1zdGRlcnIudHh0VVQJAAPulLRTooq0U3V4CwABBPUBAAAEFAAAAC2N
QQrDMAwE73mFXhA7vaT4FYW+ILgbYlAsIyml/n1NKXtahtnNcrbCmxepBFXRRHth0OHeUgjLbZ3j
yJLuMcZgyJcW7yFLdVR//vtDuOQeFCaXZlgw74z5Y0xcKmglMM4h0A/YAfg0aHpDbVwnksqdljnS
js2vMUSbguxqTdTxmr5QSwMEFAACAAgAMoPiRGOqrGyCAAAAqAAAAFIAHABodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtdW5hZmZlY3RlZC1ieS1zdHlsZS1zcmMt
Mi1zdGRlcnIudHh0VVQJAAPvlLRTo4q0U3V4CwABBPUBAAAEFAAAAC2NQQrDMAwE73mFXhA7vaT4
FYW+ILgbYlAsIyml/n1NKXtahtnNcrbCmxepBFXRRHth0OHeUgjLbZ3jyJLuMcZgyJcW7yFLdVR/
/vtDuOQeFCaXZlgw74z5Y0xcKmglMM4h0A/YAfg0aHpDbVwnksqdljnSjs2vMUSbguxqTdTxmr5Q
SwMEFAACAAgAKYPiRGBLZhCRAAAA+wEAAEUAHABodHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5J
RUQteHNsLWRvY3VtZW50LXNlY3VyaXR5T3JpZ2luLXN0ZGVyci50eHRVVAkAA92UtFORirRTdXgL
AAEE9QEAAAQUAAAA7Y4xDoMwDEV3TuELhASWVplh6NKeAQVTIpkksp0Kbl869AYdq7++r/dC3kqk
SWNOgMyZPSyREFbV4q3t+kvrznX+6pyzgqFy1MPuImYY77dxMLuQmXOoGyY1X+DB8RlTu28EFBNC
D0j4IUD0IJQVUZvz6V/Icro95EQHdK2DBSetjAITI0gtJbPi3IR/6I9D31BLAwQUAAIACADHguJE
6op8QmEFAAAFDwAACgAcAGh0dHBkLmNvbmZVVAkAAyaUtFOYlbRTdXgLAAEE9QEAAAQUAAAArVdt
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
AAAAAAAACgAcAG1lZGlhL1czQy9VVAkAAzCLtFNUlrRTdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAA
AIB94kQAAAAAAAAAAAAAAAAQABwAbWVkaWEvVzNDL3ZpZGVvL1VUCQADMIu0U1SWtFN1eAsAAQT1
AQAABBQAAABQSwMECgAAAAAA5X3iRAAAAAAAAAAAAAAAAB0AHABtZWRpYS9XM0MvdmlkZW8vbmV0
d29ya1N0YXRlL1VUCQAD7ou0U1SWtFN1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAfIPiRMkvJOmm
AAAA2QAAAEgAHABtZWRpYS9XM0MvdmlkZW8vbmV0d29ya1N0YXRlL25ldHdvcmtTdGF0ZV9kdXJp
bmdfbG9hZHN0YXJ0LWNyYXNoLWxvZy50eHRVVAkAA3uVtFMwi7RTdXgLAAEE9QEAAAQUAAAATY7N
CoMwEITv+xQLXtpDi+CpXksKvaiY/pyjWTVUs5LE0sdvLKX0Mszs8LFTMLZO+QFH7rHjxeqoDu/U
VI5b8j4/ZFma7uEbsVNmJI2BsaGWJ0JHfmbrzZPiJbKEwUzG9shL2AP4oKPJ4WKmiEUbPym99qpZ
i2ZU9vEjB0JLr4CBfFhRci6HpKrLo5ASr0UtZFUW8nwTuPsbiZvZaPws3UIiyhPAG1BLAwQUAAIA
CADwg+JElB8/TP1nAADLcwIARQAcAG1lZGlhL1czQy92aWRlby9uZXR3b3JrU3RhdGUvbmV0d29y
a1N0YXRlX2R1cmluZ19sb2Fkc3RhcnQtc2FtcGxlLnR4dFVUCQADU5a0U+6LtFN1eAsAAQT1AQAA
BBQAAADsXWlv27jW/p5foQtcFM4yqahdRhEgdZKZdLK9cdpeYFAYlEgnupEljyS3yeD++JeLFkqi
vMR2ph10PnTiRTzPc0geHp5zSB9HMHxOg1SJx0oKJ9MwiO6Vz9i7SWIfp6nSmwZIcXVdVXcV/BUn
zwpQlUkQhkGK/ThC6U7+zb5S/Cc8/Qd78svODcweqi+Q/95+isPZBKdvT2AG355+Hr4lT/0eZPn/
3s+CEL29xSGGKc7fOxwncIK/xcnj20rCIZxO3w7iKMNRlr69hP71UPh05yKGSDlGKCkAqk9ARZ5j
q6q6c47IQ8E4wEkOzY8ntL0QHwpNfMJJGsRRhd7UnX2lR/49NIz93Z1BjLBy9zzFxTf+41i/WIbS
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
UzCLtFN1eAsAAQT1AQAABBQAAAAjUFJPQ0VTUyBVTlJFU1BPTlNJVkUgLSBXZWJQcm9jZXNzIChw
aWQgOTMzMDApCiNFT0YKUEsDBAoAAAAAAGd94kQAAAAAAAAAAAAAAAAJABwAcGxhdGZvcm0vVVQJ
AAMBi7RTVJa0U3V4CwABBPUBAAAEFAAAAFBLAwQKAAAAAABnfeJEAAAAAAAAAAAAAAAADQAcAHBs
YXRmb3JtL21hYy9VVAkAAwGLtFNUlrRTdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAGd94kQAAAAA
AAAAAAAAAAASABwAcGxhdGZvcm0vbWFjL2Zhc3QvVVQJAAMBi7RTVJa0U3V4CwABBPUBAAAEFAAA
AFBLAwQKAAAAAABnfeJEAAAAAAAAAAAAAAAAHAAcAHBsYXRmb3JtL21hYy9mYXN0L3Njcm9sbGlu
Zy9VVAkAAwGLtFNUlrRTdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAGSD4kT3P02KbQAAAPcDAAA9
ABwAcGxhdGZvcm0vbWFjL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1kaXYtc3Rk
ZXJyLnR4dFVUCQADS5W0UwGLtFN1eAsAAQT1AQAABBQAAADLzS8tTvXNL0sNyVdIS8zMSU1RKAGy
MvNSFBIVShKL0lNLFMoyU8sVEksUjCz0DMBAR9fQAMrkygUZEJxclJ+T41QZnlmSEZ6RmprjmJfi
m5+bmldSmhuQkVicWoxueElG6qjxo8aPGj8wxgMAUEsDBBQAAgAIAFuD4kTa5D38OgIAAGYOAAAr
ABwAcHl3ZWJzb2NrZXQud3MubG9nLTAySnVsMjAxNC0xNjIyMTUtZXJyLnR4dFVUCQADPZW0UyiU
tFN1eAsAAQT1AQAABBQAAADtlltv2jAUgN/5FUd9KWhpTEIIJW+70G3a1E1QtQ8IWU5yUiycODs2
Zdmvn6F0pVo7TdPapyiWIt/kL+ccf8o87AfRSX900g8hiJPQtbE3jAcLmE+m0y/TBXBeCllx7l9h
OtPZCu0M6QYpgcn3DGsrdQWygpp0hsbI6hoIv63RWChIlwl0j4Nw5PfdExx7MIyiQdTrXJDIMBXZ
CrqldksJM6wsZEIpUMLYXtIBOJMK4YjNGmOxZJ9lSoIadkaixI2mlWFfG7vUlV/cjbBLJON4DAv9
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
AAAEFAAAAFBLAwQUAAIACADNg+JEIfT28DoAAABCAAAAMAAcAHN2Zy9jdXN0b20vdXNlLWludmFs
aWRhdGUtY2xpY2stY3Jhc2gtc3RkZXJyLnR4dFVUCQADEZa0U+OLtFN1eAsAAQT1AQAABBQAAADL
zS8tTvXNL0sNyVdIS8zMSU1RKAGyMvNSFBIVShKL0lNLFMoyU8sVEksUdA3N9AzAQMfMwAjK5AIA
UEsDBAoAAAAAAKh94kQAAAAAAAAAAAAAAAALABwAc3ZnL3N0cm9rZS9VVAkAA3uLtFNUlrRTdXgL
AAEE9QEAAAQUAAAAUEsDBBQAAgAIAK6D4kR4BVUCgwAAAJAAAAAlABwAc3ZnL3N0cm9rZS96ZXJv
LXdpZHRoLWhhbmctc3RkZXJyLnR4dFVUCQAD2JW0U3uLtFN1eAsAAQT1AQAABBQAAAANyD0KwkAQ
BtDeU3wXSCDrD2YRmyiCWAgWFmIxiQMubnZgdmLU05vyveMQAYdq5V3t3Rojt69gBY+5qFwZpaOI
K7dnlY5zvtULN1/esdmrim49mkMjyfhjF7ZTSLyj/PQI6U0xPPCYBFKlrwcZIlM2SGJw5J6ToR+m
aBlJUvFjlXL2B1BLAwQKAAAAAAC1feJEAAAAAAAAAAAAAAAADAAcAHRyYW5zaXRpb25zL1VUCQAD
lYu0U1SWtFN1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAwIPiRF9FWZqIAAAALAIAADcAHAB0cmFu
c2l0aW9ucy9jdWJpYy1iZXppZXItb3ZlcmZsb3ctc3ZnLWxlbmd0aC1zdGRlcnIudHh0VVQJAAP4
lbRTlYu0U3V4CwABBPUBAAAEFAAAAO3OsQrCMBRG4d2n+F+gJW1VMIhLEaE4CA4dxCFtLhq8JJDc
Nj6+BV/CwfU7y+kmBmpUW90orRQyDS8nBeVUVHXJYTSMnoZLDCOldNut62Zzx/4YY4gHjfbUBi/0
livJ2XnqnZWnhvOzYWfBCyF/zdPDiJsJS5oowUSCDwLDHDLZctX9V3575QNQSwMEFAACAAgAb33i
REMWXZgtQwEA8mgKABsAHABXZWJQcm9jZXNzLTgwNjY4LXNhbXBsZS50eHRVVAkAAxKLtFMSi7RT
dXgLAAEE9QEAAAQUAAAA7F1rb9u4tv2eX+EDXAycTiclJVEvFBlk3OZMevOaOG0PMCgESqISTWTJ
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
AAABAAAApIFUoAEAZmFzdC9jc3MvaG92ZXItdXBkYXRlLWV4cGVjdGVkLnR4dFVUBQADhJS0U3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPiC4kQb6BffRAgAAOcdAAAmABgAAAAAAAEAAACkgbyh
AQBmYXN0L2Nzcy9ob3Zlci11cGRhdGUtcHJldHR5LWRpZmYuaHRtbFVUBQADhJS0U3V4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAAt94kQAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQWCqAQBmYXN0
L2V2ZW50cy9VVAUAA1aKtFN1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAGg+JEWCpndTkAAABD
AAAAMgAYAAAAAAABAAAApIGmqgEAZmFzdC9ldmVudHMvZGlzcGxheS1ub25lLW9uLWZvY3VzLWNy
YXNoLXN0ZGVyci50eHRVVAUAA5uUtFN1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAJg+JEMLVt
4zkAAABDAAAAKwAYAAAAAAABAAAApIFLqwEAZmFzdC9ldmVudHMvbW91c2UtZm9jdXMtaW1hZ2Vt
YXAtc3RkZXJyLnR4dFVUBQADoZS0U3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAmD4kTnrr1f
OwAAAEMAAAAvABgAAAAAAAEAAACkgemrAQBmYXN0L2V2ZW50cy9tb3VzZXVwLW91dHNpZGUtZG9j
dW1lbnQtc3RkZXJyLnR4dFVUBQADoZS0U3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAA194kQA
AAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQY2sAQBmYXN0L2ZyYW1lcy9VVAUAA1mKtFN1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAAKg+JE2wjTQjsAAAA/AAAALwAYAAAAAAABAAAApIHTrAEAZmFz
dC9mcmFtZXMvZnJhbWUtZGlzcGxheS1ub25lLWZvY3VzLXN0ZGVyci50eHRVVAUAA6OUtFN1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAAAXfeJEAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UF3rQEA
ZmFzdC9sb2FkZXIvVVQFAANtirRTdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAD4PiRNsI00I7
AAAAPwAAAFIAGAAAAAAAAQAAAKSBva0BAGZhc3QvbG9hZGVyL2Rpc3BsYXktaW1hZ2UtdW5zZXQt
Y2FuLWJsb2NrLWltYWdlLWFuZC1jYW4tcmVsb2FkLWluLXBsYWNlLXN0ZGVyci50eHRVVAUAA66U
tFN1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAQg+JE2wjTQjsAAAA/AAAAUwAYAAAAAAABAAAA
pIGErgEAZmFzdC9sb2FkZXIvaW1hZ2VzLWVuYWJsZWQtdW5zZXQtY2FuLWJsb2NrLWltYWdlLWFu
ZC1jYW4tcmVsb2FkLWluLXBsYWNlLXN0ZGVyci50eHRVVAUAA6+UtFN1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAAUg+JE2wjTQjsAAAA/AAAALQAYAAAAAAABAAAApIFMrwEAZmFzdC9sb2FkZXIv
cmVsb2FkLXBvbGljeS1kZWxlZ2F0ZS1zdGRlcnIudHh0VVQFAAO4lLRTdXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAAL33iRAAAAAAAAAAAAAAAAA0AGAAAAAAAAAAQAO1B7q8BAGZhc3QvcmVnaW9u
cy9VVAUAA5mKtFN1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAArg+JEOQHL3UAAAAB6AAAAKwAY
AAAAAAABAAAApIE1sAEAZmFzdC9yZWdpb25zL3doZWVsLXNjcm9sbC1hYnNwb3Mtc3RkZXJyLnR4
dFVUBQAD4ZS0U3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACuD4kQ5AcvdQAAAAHoAAAAkABgA
AAAAAAEAAACkgdqwAQBmYXN0L3JlZ2lvbnMvd2hlZWwtc2Nyb2xsLXN0ZGVyci50eHRVVAUAA+KU
tFN1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAArg+JE5IrHQzwAAAA9AAAANgAYAAAAAAABAAAA
pIF4sQEAZmFzdC9yZWdpb25zL3doZWVsLXNjcm9sbGFibGUtc2luZ2xlLXJlZ2lvbi1zdGRlcnIu
dHh0VVQFAAPilLRTdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAMX3iRAAAAAAAAAAAAAAAAAkA
GAAAAAAAAAAQAO1BJLIBAGZhc3QveHNsL1VUBQADnYq0U3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAC2D4kRy/WXyhQAAAOkAAAAlABgAAAAAAAEAAACkgWeyAQBmYXN0L3hzbC90cmFuc2Zvcm0t
eGhyLWRvYy1zdGRlcnIudHh0VVQFAAPllLRTdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALYPi
RAWPVY6TAAAA0AIAACcAGAAAAAAAAQAAAKSBS7MBAGZhc3QveHNsL3hzbHQtYmFkLWltcG9ydC11
cmktc3RkZXJyLnR4dFVUBQAD5ZS0U3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAC2D4kSBSnet
SwAAAKwAAAA0ABgAAAAAAAEAAACkgT+0AQBmYXN0L3hzbC94c2x0LXRyYW5zZm9ybS10by1mcmFn
bWVudC1jcmFzaC1zdGRlcnIudHh0VVQFAAPmlLRTdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
8IPiRDW58w1SAQAAJgIAABEAGAAAAAAAAQAAAKSB+LQBAGZ1bGxfcmVzdWx0cy5qc29uVVQFAANU
lrRTdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAADH3iRAAAAAAAAAAAAAAAAAUAGAAAAAAAAAAQ
AO1BlbYBAGh0dHAvVVQFAANYirRTdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAK33iRAAAAAAA
AAAAAAAAAAsAGAAAAAAAAAAQAO1B1LYBAGh0dHAvdGVzdHMvVVQFAAORirRTdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAADH3iRAAAAAAAAAAAAAAAABAAGAAAAAAAAAAQAO1BGbcBAGh0dHAvdGVz
dHMvbWlzYy9VVAUAA1iKtFN1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAKg+JEFTU1knoAAAC8
AAAAKgAYAAAAAAABAAAApIFjtwEAaHR0cC90ZXN0cy9taXNjL3hzbHQtYmFkLWltcG9ydC1zdGRl
cnIudHh0VVQFAAOklLRTdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAEX3iRAAAAAAAAAAAAAAA
ABYAGAAAAAAAAAAQAO1BQbgBAGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9VVAUAA2KKtFN1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAAPg+JE2wjTQjsAAAA/AAAANwAYAAAAAAABAAAApIGRuAEAaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL2ZhbGxiYWNrLWFuY2hvci1yZWxvYWQtc3RkZXJyLnR4dFVUBQAD
rpS0U3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAADN94kQAAAAAAAAAAAAAAAAUABgAAAAAAAAA
EADtQT25AQBodHRwL3Rlc3RzL3NlY3VyaXR5L1VUBQADooq0U3V4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAADR94kQAAAAAAAAAAAAAAAAqABgAAAAAAAAAEADtQYu5AQBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9VVAUAA6OKtFN1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAxg+JEY6qsbIIAAACoAAAAQAAYAAAAAAABAAAApIHvuQEAaHR0cC90ZXN0cy9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLWFsbG93ZWQtc3RkZXJyLnR4dFVUBQAD7pS0U3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADKD4kRjqqxsggAAAKgAAABSABgAAAAAAAEAAACkgeu6
AQBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtdW5hZmZlY3Rl
ZC1ieS1zdHlsZS1zcmMtMi1zdGRlcnIudHh0VVQFAAPvlLRTdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAKYPiRGBLZhCRAAAA+wEAAEUAGAAAAAAAAQAAAKSB+bsBAGh0dHAvdGVzdHMvc2VjdXJp
dHkveHNzLURFTklFRC14c2wtZG9jdW1lbnQtc2VjdXJpdHlPcmlnaW4tc3RkZXJyLnR4dFVUBQAD
3ZS0U3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMeC4kTqinxCYQUAAAUPAAAKABgAAAAAAAEA
AACkgQm9AQBodHRwZC5jb25mVVQFAAMmlLRTdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAgH3i
RAAAAAAAAAAAAAAAAAYAGAAAAAAAAAAQAO1BrsIBAG1lZGlhL1VUBQADMIu0U3V4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAGJ94kQAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQe7CAQBtZWRpYS90
cmFjay9VVAUAA/eKtFN1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABifeJE8G+eY7YAAAADAQAA
OAAYAAAAAAABAAAApIE0wwEAbWVkaWEvdHJhY2svdHJhY2stY3Vlcy1zb3J0ZWQtYmVmb3JlLWRp
c3BhdGNoLXN0ZGVyci50eHRVVAUAA/eKtFN1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACAfeJE
AAAAAAAAAAAAAAAACgAYAAAAAAAAABAA7UFcxAEAbWVkaWEvVzNDL1VUBQADMIu0U3V4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAIB94kQAAAAAAAAAAAAAAAAQABgAAAAAAAAAEADtQaDEAQBtZWRp
YS9XM0MvdmlkZW8vVVQFAAMwi7RTdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA5X3iRAAAAAAA
AAAAAAAAAB0AGAAAAAAAAAAQAO1B6sQBAG1lZGlhL1czQy92aWRlby9uZXR3b3JrU3RhdGUvVVQF
AAPui7RTdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAfIPiRMkvJOmmAAAA2QAAAEgAGAAAAAAA
AQAAAKSBQcUBAG1lZGlhL1czQy92aWRlby9uZXR3b3JrU3RhdGUvbmV0d29ya1N0YXRlX2R1cmlu
Z19sb2Fkc3RhcnQtY3Jhc2gtbG9nLnR4dFVUBQADe5W0U3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAPCD4kSUHz9M/WcAAMtzAgBFABgAAAAAAAEAAACkgWnGAQBtZWRpYS9XM0MvdmlkZW8vbmV0
d29ya1N0YXRlL25ldHdvcmtTdGF0ZV9kdXJpbmdfbG9hZHN0YXJ0LXNhbXBsZS50eHRVVAUAA1OW
tFN1eAsAAQT1AQAABBQAAABQSwECHgMKAAIAAAB8g+JEy+IxPTQAAAA0AAAARQAYAAAAAAABAAAA
pIHlLgIAbWVkaWEvVzNDL3ZpZGVvL25ldHdvcmtTdGF0ZS9uZXR3b3JrU3RhdGVfZHVyaW5nX2xv
YWRzdGFydC1zdGRlcnIudHh0VVQFAAN7lbRTdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAZ33i
RAAAAAAAAAAAAAAAAAkAGAAAAAAAAAAQAO1BmC8CAHBsYXRmb3JtL1VUBQADAYu0U3V4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAGd94kQAAAAAAAAAAAAAAAANABgAAAAAAAAAEADtQdsvAgBwbGF0
Zm9ybS9tYWMvVVQFAAMBi7RTdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAZ33iRAAAAAAAAAAA
AAAAABIAGAAAAAAAAAAQAO1BIjACAHBsYXRmb3JtL21hYy9mYXN0L1VUBQADAYu0U3V4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAGd94kQAAAAAAAAAAAAAAAAcABgAAAAAAAAAEADtQW4wAgBwbGF0
Zm9ybS9tYWMvZmFzdC9zY3JvbGxpbmcvVVQFAAMBi7RTdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAZIPiRPc/TYptAAAA9wMAAD0AGAAAAAAAAQAAAKSBxDACAHBsYXRmb3JtL21hYy9mYXN0L3Nj
cm9sbGluZy9zY3JvbGwtZGl2LWxhdGNoZWQtZGl2LXN0ZGVyci50eHRVVAUAA0uVtFN1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACABbg+JE2uQ9/DoCAABmDgAAKwAYAAAAAAABAAAApIGoMQIAcHl3
ZWJzb2NrZXQud3MubG9nLTAySnVsMjAxNC0xNjIyMTUtZXJyLnR4dFVUBQADPZW0U3V4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAFuD4kTV50u+BwEAAI8CAAArABgAAAAAAAEAAACkgUc0AgBweXdl
YnNvY2tldC53cy5sb2ctMDJKdWwyMDE0LTE2MjIxNS1vdXQudHh0VVQFAAM9lbRTdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgA8IPiRIcK0RmGJgAAYaQAAAwAGAAAAAAAAQAAAKSBszUCAHJlc3Vs
dHMuaHRtbFVUBQADVJa0U3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAOV94kQAAAAAAAAAAAAA
AAAIABgAAAAAAAAAEADtQX9cAgByZXRyaWVzL1VUBQAD7Yu0U3V4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAAHF94kQAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQcFcAgBzY3JvbGxiYXJzL1VUBQAD
Fou0U3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGuD4kRuvSNhOQAAAEIAAAA7ABgAAAAAAAEA
AACkgQZdAgBzY3JvbGxiYXJzL3Njcm9sbGV2ZW50LWlmcmFtZS1uby1zY3JvbGxpbmctd2hlZWwt
c3RkZXJyLnR4dFVUBQADWpW0U3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPCD4kQiLv0vDDQG
AOywIwAKABgAAAAAAAEAAACkgbRdAgBzdGF0cy5qc29uVVQFAANUlrRTdXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAA4H3iRAAAAAAAAAAAAAAAAAQAGAAAAAAAAAAQAO1BBJIIAHN2Zy9VVAUAA+OL
tFN1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADgfeJEAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA
7UFCkggAc3ZnL2N1c3RvbS9VVAUAA+OLtFN1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADNg+JE
IfT28DoAAABCAAAAMAAYAAAAAAABAAAApIGHkggAc3ZnL2N1c3RvbS91c2UtaW52YWxpZGF0ZS1j
bGljay1jcmFzaC1zdGRlcnIudHh0VVQFAAMRlrRTdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
qH3iRAAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1BK5MIAHN2Zy9zdHJva2UvVVQFAAN7i7RTdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAroPiRHgFVQKDAAAAkAAAACUAGAAAAAAAAQAAAKSBcJMI
AHN2Zy9zdHJva2UvemVyby13aWR0aC1oYW5nLXN0ZGVyci50eHRVVAUAA9iVtFN1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAAAAAC1feJEAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UFSlAgAdHJhbnNp
dGlvbnMvVVQFAAOVi7RTdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAwIPiRF9FWZqIAAAALAIA
ADcAGAAAAAAAAQAAAKSBmJQIAHRyYW5zaXRpb25zL2N1YmljLWJlemllci1vdmVyZmxvdy1zdmct
bGVuZ3RoLXN0ZGVyci50eHRVVAUAA/iVtFN1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABvfeJE
QxZdmC1DAQDyaAoAGwAYAAAAAAABAAAApIGRlQgAV2ViUHJvY2Vzcy04MDY2OC1zYW1wbGUudHh0
VVQFAAMSi7RTdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAbYPiRJQfP0z9ZwAAy3MCABsAGAAA
AAAAAQAAAKSBE9kJAFdlYlByb2Nlc3MtOTMzMDAtc2FtcGxlLnR4dFVUBQADXZW0U3V4CwABBPUB
AAAEFAAAAFBLBQYAAAAASQBJACQdAABlQQoAAAA=
</data>

          </attachment>
      

    </bug>

</bugzilla>